{"version":3,"sources":["theme/options/overrides/MuiLinearProgress.jsx","helpers/reduxReuquest.util.ts","redux/constants/auth.constants.ts","reportWebVitals.js","theme/options/breakpoints.jsx","theme/options/palette.tsx","theme/options/custom.jsx","theme/options/mixins.jsx","theme/options/spacing.jsx","theme/options/typography.jsx","theme/options/overrides/MuiAlert.jsx","theme/options/overrides/MuiAlertTitle.jsx","theme/options/overrides/MuiAppBar.jsx","theme/options/overrides/MuiAutocomplete.jsx","theme/options/overrides/MuiAvatar.jsx","theme/options/overrides/MuiAvatarGroup.jsx","theme/options/overrides/MuiBackdrop.jsx","theme/options/overrides/MuiBadge.jsx","theme/options/overrides/MuiBottomNavigation.jsx","theme/options/overrides/MuiBottomNavigationAction.jsx","theme/options/overrides/MuiBreadcrumbs.jsx","theme/options/shadows.jsx","theme/options/overrides/MuiButton.jsx","theme/options/overrides/MuiButtonGroup.jsx","theme/options/overrides/MuiCardActions.jsx","theme/options/overrides/MuiCardContent.jsx","theme/options/overrides/MuiCardHeader.jsx","theme/options/overrides/MuiCssBaseline.jsx","theme/options/overrides/MuiCheckbox.jsx","theme/options/overrides/MuiChip.jsx","theme/options/overrides/MuiContainer.jsx","theme/options/overrides/MuiDialog.jsx","theme/options/overrides/MuiDialogActions.jsx","theme/options/overrides/MuiDialogContent.jsx","theme/options/overrides/MuiDialogTitle.jsx","theme/options/overrides/MuiFab.jsx","theme/options/overrides/MuiFormControlLabel.jsx","theme/options/overrides/MuiFormGroup.jsx","theme/options/overrides/MuiFormHelperText.jsx","theme/options/overrides/MuiFormLabel.jsx","theme/options/overrides/MuiIconButton.jsx","theme/options/overrides/MuiInput.jsx","theme/options/overrides/MuiInputAdornment.jsx","theme/options/overrides/MuiInputLabel.jsx","theme/options/overrides/MuiListItem.jsx","theme/options/overrides/MuiListItemIcon.jsx","theme/options/overrides/MuiListSubheader.jsx","theme/options/overrides/MuiMenuItem.jsx","theme/options/overrides/MuiOutlinedInput.jsx","theme/options/overrides/MuiPickersCalendar.jsx","theme/options/overrides/MuiPickersDateRangeDay.jsx","theme/options/overrides/MuiPickersDateRangePickerInput.jsx","theme/options/overrides/MuiPickersDay.jsx","theme/options/overrides/MuiPickersDesktopDateRangeCalendar.jsx","theme/options/overrides/MuiPickersToolbar.jsx","theme/options/overrides/MuiPickersToolbarButton.jsx","theme/options/overrides/MuiPickersToolbarText.jsx","theme/options/overrides/MuiPaper.jsx","theme/options/overrides/MuiPopover.jsx","theme/options/overrides/MuiRadio.jsx","theme/options/overrides/MuiSlider.jsx","theme/options/overrides/MuiSnackbar.jsx","theme/options/overrides/MuiSnackbarContent.jsx","theme/options/overrides/MuiSwitch.jsx","theme/options/overrides/MuiTableCell.jsx","theme/options/overrides/MuiTableSortLabel.jsx","theme/options/overrides/MuiTab.jsx","theme/options/overrides/MuiToolbar.jsx","theme/options/overrides/MuiTooltip.jsx","theme/options/overrides/MuiTypography.jsx","theme/options/overrides/PrivateBreadcrumbCollapsed.jsx","theme/options/overrides/PrivateNotchedOutline.jsx","theme/options/overrides/PrivateRadioButtonIcon.jsx","theme/options/overrides/index.js","theme/options/overrides/MuiButtonBase.jsx","theme/options/overrides/MuiCard.jsx","theme/options/overrides/MuiDrawer.jsx","theme/options/overrides/MuiFormControl.jsx","theme/options/overrides/MuiInputBase.jsx","theme/options/overrides/MuiList.jsx","theme/options/overrides/MuiListItemSecondaryAction.jsx","theme/options/overrides/MuiListItemText.jsx","theme/options/overrides/MuiNativeSelect.jsx","theme/options/overrides/MuiPickersArrowSwitcher.jsx","theme/options/overrides/MuiPickersDateRangePickerToolbarProps.jsx","theme/options/overrides/MuiPickersModalDialog.jsx","theme/options/overrides/MuiPickersPopper.jsx","theme/options/overrides/MuiSelect.jsx","theme/options/overrides/MuiTableRow.jsx","theme/options/overrides/MuiTabs.jsx","theme/options/overrides/MuiTouchRipple.jsx","theme/options/overrides/PrivateSwitchBase.jsx","components/CustomIcon/icons/Alert.jsx","components/CustomIcon/icons/None.jsx","components/CustomIcon/icons/Alarm.jsx","components/CustomIcon/icons/AlarmAdd.jsx","components/CustomIcon/icons/AlertFull.jsx","components/CustomIcon/icons/Archive.jsx","components/CustomIcon/icons/AlignCenter.jsx","components/CustomIcon/icons/AlignJustify.jsx","components/CustomIcon/icons/AlignLeft.jsx","components/CustomIcon/icons/AlignRight.jsx","components/CustomIcon/icons/Anchor.jsx","components/CustomIcon/icons/Apple.jsx","components/CustomIcon/icons/Apps.jsx","components/CustomIcon/icons/ArrowDownSLine.jsx","components/CustomIcon/icons/ArrowCircleDown.jsx","components/CustomIcon/icons/ArrowCircleLeft.jsx","components/CustomIcon/icons/ArrowCircleRight.jsx","components/CustomIcon/icons/ArrowCircleTop.jsx","components/CustomIcon/icons/ArrowDown.jsx","components/CustomIcon/icons/ArrowLeftSLine.jsx","components/CustomIcon/icons/ArrowRightSLine.jsx","components/CustomIcon/icons/ArrowLeft.jsx","components/CustomIcon/icons/ArrowTopSLine.jsx","components/CustomIcon/icons/ArrowRight.jsx","components/CustomIcon/icons/ArrowTop.jsx","components/CustomIcon/icons/CalendarAdd.jsx","components/CustomIcon/icons/AspectRatio.jsx","components/CustomIcon/icons/Attachment.jsx","components/CustomIcon/icons/AudioNext.jsx","components/CustomIcon/icons/AudioPrev.jsx","components/CustomIcon/icons/BatteryCharging.jsx","components/CustomIcon/icons/BatteryEmpty.jsx","components/CustomIcon/icons/BatteryFull.jsx","components/CustomIcon/icons/BatteryLow.jsx","components/CustomIcon/icons/BatteryMedium.jsx","components/CustomIcon/icons/Block.jsx","components/CustomIcon/icons/Bluetooth.jsx","components/CustomIcon/icons/Bolt.jsx","components/CustomIcon/icons/Book.jsx","components/CustomIcon/icons/BookmarkAdd.jsx","components/CustomIcon/icons/BookmarkFull.jsx","components/CustomIcon/icons/Bookmark.jsx","components/CustomIcon/icons/BorderAll.jsx","components/CustomIcon/icons/BorderBottom.jsx","components/CustomIcon/icons/BorderHorizontal.jsx","components/CustomIcon/icons/BorderInner.jsx","components/CustomIcon/icons/BorderLeft.jsx","components/CustomIcon/icons/BorderOutline.jsx","components/CustomIcon/icons/BorderRight.jsx","components/CustomIcon/icons/BorderStyle.jsx","components/CustomIcon/icons/BorderTop.jsx","components/CustomIcon/icons/BorderVertical.jsx","components/CustomIcon/icons/BrightnessAuto.jsx","components/CustomIcon/icons/BrightnessHigh.jsx","components/CustomIcon/icons/BrightnessLow.jsx","components/CustomIcon/icons/BrightnessMedium.jsx","components/CustomIcon/icons/Bug.jsx","components/CustomIcon/icons/Bulb.jsx","components/CustomIcon/icons/CalendarEdit.jsx","components/CustomIcon/icons/CalendarDays.jsx","components/CustomIcon/icons/CalendarSelectDay.jsx","components/CustomIcon/icons/CalendarRemove.jsx","components/CustomIcon/icons/Check.jsx","components/CustomIcon/icons/Calendar.jsx","components/CustomIcon/icons/Camera.jsx","components/CustomIcon/icons/Car.jsx","components/CustomIcon/icons/ChartBar.jsx","components/CustomIcon/icons/ChartPie.jsx","components/CustomIcon/icons/ChatBalloon.jsx","components/CustomIcon/icons/CheckFill.jsx","components/CustomIcon/icons/CheckboxBlankOutlined.jsx","components/CustomIcon/icons/CheckboxMarked.jsx","components/CustomIcon/icons/ChevronLeft.jsx","components/CustomIcon/icons/CheckboxMultipleBlank.jsx","components/CustomIcon/icons/CheckboxMultipleMarked.jsx","components/CustomIcon/icons/ChevronDown.jsx","components/CustomIcon/icons/ChevronRight.jsx","components/CustomIcon/icons/Close.jsx","components/CustomIcon/icons/ChevronTop.jsx","components/CustomIcon/icons/Copy.jsx","components/CustomIcon/icons/Cloud.jsx","components/CustomIcon/icons/Column2Vertical.jsx","components/CustomIcon/icons/CommentAdd.jsx","components/CustomIcon/icons/Comment.jsx","components/CustomIcon/icons/Company.jsx","components/CustomIcon/icons/Cut.jsx","components/CustomIcon/icons/Copyright.jsx","components/CustomIcon/icons/CreditCard.jsx","components/CustomIcon/icons/Crop.jsx","components/CustomIcon/icons/Delete.jsx","components/CustomIcon/icons/Dashboard.jsx","components/CustomIcon/icons/Download.jsx","components/CustomIcon/icons/Desktop.jsx","components/CustomIcon/icons/Difference.jsx","components/CustomIcon/icons/Direction.jsx","components/CustomIcon/icons/Dns.jsx","components/CustomIcon/icons/Dollar.jsx","components/CustomIcon/icons/Drag.jsx","components/CustomIcon/icons/DragIndicator.jsx","components/CustomIcon/icons/Edit.jsx","components/CustomIcon/icons/DropDownFill.jsx","components/CustomIcon/icons/DropUpFill.jsx","components/CustomIcon/icons/Email.jsx","components/CustomIcon/icons/EmailAlt.jsx","components/CustomIcon/icons/FileAdd.jsx","components/CustomIcon/icons/Equal.jsx","components/CustomIcon/icons/Equalizer.jsx","components/CustomIcon/icons/Euro.jsx","components/CustomIcon/icons/Explore.jsx","components/CustomIcon/icons/Extension.jsx","components/CustomIcon/icons/Facebook.jsx","components/CustomIcon/icons/FileColor.jsx","components/CustomIcon/icons/FileEdit.jsx","components/CustomIcon/icons/FileRemove.jsx","components/CustomIcon/icons/File.jsx","components/CustomIcon/icons/MultipleFiles.jsx","components/CustomIcon/icons/FolderAdd.jsx","components/CustomIcon/icons/FileZipColor.jsx","components/CustomIcon/icons/FilmCamera.jsx","components/CustomIcon/icons/FilmCameraOutlined.jsx","components/CustomIcon/icons/Filter.jsx","components/CustomIcon/icons/Flag.jsx","components/CustomIcon/icons/FlipToBack.jsx","components/CustomIcon/icons/FlipToFront.jsx","components/CustomIcon/icons/FolderColor.jsx","components/CustomIcon/icons/FolderOpen.jsx","components/CustomIcon/icons/Folder.jsx","components/CustomIcon/icons/FullscreenExit.jsx","components/CustomIcon/icons/FormatBold.jsx","components/CustomIcon/icons/FormatIndentDecrease.jsx","components/CustomIcon/icons/FormatIndentIncrease.jsx","components/CustomIcon/icons/FormatItalic.jsx","components/CustomIcon/icons/FormatLineSpacing.jsx","components/CustomIcon/icons/FormatStrikethrough.jsx","components/CustomIcon/icons/FormatUnderline.jsx","components/CustomIcon/icons/Franc.jsx","components/CustomIcon/icons/Fullscreen.jsx","components/CustomIcon/icons/Globe.jsx","components/CustomIcon/icons/Functions.jsx","components/CustomIcon/icons/GoogleAuthenticatorColor.jsx","components/CustomIcon/icons/Glyph.jsx","components/CustomIcon/icons/Google.jsx","components/CustomIcon/icons/Help.jsx","components/CustomIcon/icons/GpsFixed.jsx","components/CustomIcon/icons/GpsOff.jsx","components/CustomIcon/icons/Gps.jsx","components/CustomIcon/icons/Health.jsx","components/CustomIcon/icons/HeartFull.jsx","components/CustomIcon/icons/Heart.jsx","components/CustomIcon/icons/HourglassProgress.jsx","components/CustomIcon/icons/Home.jsx","components/CustomIcon/icons/HorizontalAlignCenter.jsx","components/CustomIcon/icons/HorizontalAlignLeft.jsx","components/CustomIcon/icons/HorizontalAlignRight.jsx","components/CustomIcon/icons/HourglassEmpty.jsx","components/CustomIcon/icons/HourglassFull.jsx","components/CustomIcon/icons/ImportExport.jsx","components/CustomIcon/icons/Info.jsx","components/CustomIcon/icons/Inbox.jsx","components/CustomIcon/icons/IndeterminateCheckbox.jsx","components/CustomIcon/icons/InsertEmoticon.jsx","components/CustomIcon/icons/Instagram.jsx","components/CustomIcon/icons/Intersect.jsx","components/CustomIcon/icons/Key.jsx","components/CustomIcon/icons/InvertColor.jsx","components/CustomIcon/icons/Layers.jsx","components/CustomIcon/icons/Keyboard.jsx","components/CustomIcon/icons/Label.jsx","components/CustomIcon/icons/LayerAlignBottomCenter.jsx","components/CustomIcon/icons/LayerAlignHorizontal.jsx","components/CustomIcon/icons/LayerAlignLeftCenter.jsx","components/CustomIcon/icons/LayerAlignRightCenter.jsx","components/CustomIcon/icons/LayerAlignTopCenter.jsx","components/CustomIcon/icons/LayerAlignVertical.jsx","components/CustomIcon/icons/Linkedin.jsx","components/CustomIcon/icons/LinkIcon.jsx","components/CustomIcon/icons/Menu.jsx","components/CustomIcon/icons/ListBullet.jsx","components/CustomIcon/icons/Lock.jsx","components/CustomIcon/icons/Map.jsx","components/CustomIcon/icons/Medium.jsx","components/CustomIcon/icons/MoreHor.jsx","components/CustomIcon/icons/MicOff.jsx","components/CustomIcon/icons/Mic.jsx","components/CustomIcon/icons/MinusCircle.jsx","components/CustomIcon/icons/Minus.jsx","components/CustomIcon/icons/Mobile.jsx","components/CustomIcon/icons/Notification.jsx","components/CustomIcon/icons/MoreVer.jsx","components/CustomIcon/icons/Mouse.jsx","components/CustomIcon/icons/Navigation.jsx","components/CustomIcon/icons/NearMe.jsx","components/CustomIcon/icons/OpenInNew.jsx","components/CustomIcon/icons/Opacity.jsx","components/CustomIcon/icons/OpenInBrowser.jsx","components/CustomIcon/icons/Paste.jsx","components/CustomIcon/icons/Parking.jsx","components/CustomIcon/icons/PauseCircle.jsx","components/CustomIcon/icons/PenOutlined.jsx","components/CustomIcon/icons/Pause.jsx","components/CustomIcon/icons/Pen.jsx","components/CustomIcon/icons/Preview.jsx","components/CustomIcon/icons/Performance.jsx","components/CustomIcon/icons/PhoneCallback.jsx","components/CustomIcon/icons/PhoneForwarded.jsx","components/CustomIcon/icons/PhoneInTalk.jsx","components/CustomIcon/icons/PhoneMissed.jsx","components/CustomIcon/icons/PhonePaused.jsx","components/CustomIcon/icons/Phone.jsx","components/CustomIcon/icons/PhotoAdd.jsx","components/CustomIcon/icons/Photo.jsx","components/CustomIcon/icons/Photos.jsx","components/CustomIcon/icons/Plane.jsx","components/CustomIcon/icons/PlayCircle.jsx","components/CustomIcon/icons/Play.jsx","components/CustomIcon/icons/Plugin.jsx","components/CustomIcon/icons/Plus.jsx","components/CustomIcon/icons/PlusCircle.jsx","components/CustomIcon/icons/Publish.jsx","components/CustomIcon/icons/Pound.jsx","components/CustomIcon/icons/Protect.jsx","components/CustomIcon/icons/Refresh.jsx","components/CustomIcon/icons/Quote.jsx","components/CustomIcon/icons/RadioButtonChecked.jsx","components/CustomIcon/icons/RadioButtonUnchecked.jsx","components/CustomIcon/icons/Redo.jsx","components/CustomIcon/icons/Logout.jsx","components/CustomIcon/icons/Remove.jsx","components/CustomIcon/icons/Reply.jsx","components/CustomIcon/icons/PublicOff.jsx","components/CustomIcon/icons/MobileDataOff.jsx","components/CustomIcon/icons/Search.jsx","components/CustomIcon/icons/Report.jsx","components/CustomIcon/icons/Rotate.jsx","components/CustomIcon/icons/Ruble.jsx","components/CustomIcon/icons/Settings.jsx","components/CustomIcon/icons/SelectAll.jsx","components/CustomIcon/icons/Send.jsx","components/CustomIcon/icons/Share.jsx","components/CustomIcon/icons/Shield.jsx","components/CustomIcon/icons/Slider.jsx","components/CustomIcon/icons/ShoppingCart.jsx","components/CustomIcon/icons/Shuffle.jsx","components/CustomIcon/icons/SmsColor.jsx","components/CustomIcon/icons/Sort.jsx","components/CustomIcon/icons/SortingDown.jsx","components/CustomIcon/icons/SortingUp.jsx","components/CustomIcon/icons/Stopwatch.jsx","components/CustomIcon/icons/StarEmpty.jsx","components/CustomIcon/icons/Star.jsx","components/CustomIcon/icons/Success.jsx","components/CustomIcon/icons/Substract.jsx","components/CustomIcon/icons/Time.jsx","components/CustomIcon/icons/Suitcase.jsx","components/CustomIcon/icons/Sync.jsx","components/CustomIcon/icons/Tablet.jsx","components/CustomIcon/icons/Tag.jsx","components/CustomIcon/icons/TextFields.jsx","components/CustomIcon/icons/ThumbDown.jsx","components/CustomIcon/icons/ThumbUp.jsx","components/CustomIcon/icons/Ticket.jsx","components/CustomIcon/icons/Upload.jsx","components/CustomIcon/icons/Transaction.jsx","components/CustomIcon/icons/TrendingDown.jsx","components/CustomIcon/icons/TrendingUp.jsx","components/CustomIcon/icons/Trophy.jsx","components/CustomIcon/icons/TurnOff.jsx","components/CustomIcon/icons/Tv.jsx","components/CustomIcon/icons/Twitter.jsx","components/CustomIcon/icons/Undo.jsx","components/CustomIcon/icons/UnfoldLess.jsx","components/CustomIcon/icons/UnfoldMore.jsx","components/CustomIcon/icons/Union.jsx","components/CustomIcon/icons/Unlink.jsx","components/CustomIcon/icons/Unlock.jsx","components/CustomIcon/icons/UserAdd.jsx","components/CustomIcon/icons/UserDelete.jsx","components/CustomIcon/icons/User.jsx","components/CustomIcon/icons/Users.jsx","components/CustomIcon/icons/UserSettings.jsx","components/CustomIcon/icons/Drive.jsx","components/CustomIcon/icons/UsersFill.jsx","components/CustomIcon/icons/ViewBoxes.jsx","components/CustomIcon/icons/Verified.jsx","components/CustomIcon/icons/VerticalAlignBottom.jsx","components/CustomIcon/icons/VerticalAlignCenter.jsx","components/CustomIcon/icons/VerticalAlignTop.jsx","components/CustomIcon/icons/Video.jsx","components/CustomIcon/icons/VisibilityOff.jsx","components/CustomIcon/icons/ViewDay.jsx","components/CustomIcon/icons/ViewLp.jsx","components/CustomIcon/icons/ViewSchedule.jsx","components/CustomIcon/icons/ViewSlider.jsx","components/CustomIcon/icons/ViewTable.jsx","components/CustomIcon/icons/ViewThreeColumns.jsx","components/CustomIcon/icons/ViewTwoColumns.jsx","components/CustomIcon/icons/ViewWeek.jsx","components/CustomIcon/icons/Visibility.jsx","components/CustomIcon/icons/Wallet.jsx","components/CustomIcon/icons/Voice.jsx","components/CustomIcon/icons/VolumeMax.jsx","components/CustomIcon/icons/VolumeMid.jsx","components/CustomIcon/icons/VolumeMin.jsx","components/CustomIcon/icons/VolumeOff.jsx","components/CustomIcon/icons/Workspaces.jsx","components/CustomIcon/icons/Warning.jsx","components/CustomIcon/icons/Wifi.jsx","components/CustomIcon/icons/CertificateIcon.jsx","components/CustomIcon/icons/Yen.jsx","components/CustomIcon/icons/ZoomIn.jsx","components/CustomIcon/icons/ZoomOut.jsx","components/CustomIcon/icons/FilesWithShield.jsx","components/CustomIcon/icons/CertificateIcon2.jsx","components/CustomIcon/icons/CertificateFileIcon.jsx","components/CustomIcon/icons/ESign.jsx","components/CustomIcon/icons/DriveIcon.jsx","theme/options/props.jsx","theme/index.jsx","redux/reducers/auth.reducer.js","redux/constants/avatar.constants.ts","redux/reducers/avatar.reducer.js","redux/constants/billing.constants.ts","redux/reducers/billing.reducer.ts","redux/constants/communications.constants.ts","redux/reducers/communications.reducer.ts","redux/constants/contacts.constants.ts","redux/reducers/contacts.reducer.js","redux/constants/documentCreation.constants.ts","redux/reducers/documentCreation.reducer.js","redux/constants/documentDisplay.constants.ts","redux/reducers/documentDisplay.reducer.js","redux/constants/documentDownload.constants.ts","redux/reducers/documentDownload.reducer.js","redux/constants/certificateManagement.constants.ts","redux/constants/documentInvitiation.constants.ts","redux/reducers/documentInvitiations.reducer.js","redux/constants/documentJoin.constants.ts","redux/reducers/documentJoin.reducer.js","components/DateDropdown/DateDropdown.tsx","models/documents.model.ts","models/document.model.js","redux/constants/documentManagement.constants.ts","redux/reducers/documentManagement.reducer.js","redux/constants/documents.constants.ts","redux/reducers/documents.reducer.ts","redux/constants/identity.constants.ts","redux/constants/workspaceGroups.constants.ts","redux/reducers/workspaceGroups.reducer.js","redux/reducers/identity.reducer.ts","redux/constants/snackbar.constants.ts","redux/reducers/snackbar.reducer.js","redux/constants/twoFactor.constants.ts","redux/constants/twoFactorConfig.constants.ts","redux/reducers/twoFactor.reducer.js","redux/reducers/twoFactorConfig.reducer.js","redux/reducers/workspaceUser.reducer.ts","redux/constants/certificateCreator.constants.ts","models/certificate.model.js","helpers/cookieHelper.js","helpers/i18n.js","helpers/regex.js","helpers/globalUtils.js","helpers/certificateHelper.js","redux/reducers/certificateCreator.reducer.js","redux/constants/documentUsersManager.constants.ts","models/documentUsersManagement.model.ts","redux/reducers/documentUsersManager.reducer.ts","redux/reducers/index.ts","redux/store.js","helpers/WebSocketHelper.js","components/AddAndRemoveUsers/styles.js","components/Sortable/sortableUtils.js","components/Sortable/styles.js","components/Sortable/DragHandle.jsx","components/Sortable/SortableItem.jsx","components/Sortable/SortableContainer.jsx","components/AddAndRemoveUsers/helpers.js","components/AddAndRemoveUsers/subcomponents/AutocompleteOption.jsx","components/AddAndRemoveUsers/subcomponents/styles.js","components/AddAndRemoveUsers/subcomponents/RoleSelection.jsx","components/AddAndRemoveUsers/subcomponents/AddAndRemoveUsersListItem.jsx","components/AddAndRemoveUsers/subcomponents/AutocompleteInput.jsx","components/AddAndRemoveUsers/AddAndRemoveUsers.jsx","components/UserAvatar/styles.js","helpers/globalUtilsTS.ts","components/UserAvatar/UserAvatar.jsx","components/UserAvatarAndTextItem/styles.js","components/UserAvatarAndTextItem/UserAvatarAndTextItem.jsx","components/UserAvatarGroup/styles.js","components/UserAvatarGroup/UserAvatarGroup.jsx","components/DropZone/helpers.js","components/AvatarUpload/AvatarUpload.jsx","components/UserAvatarWithBadge/styles.js","components/UserAvatarWithBadge/UserAvatarWithBadge.jsx","components/CardCollapseItem/styles.jsx","components/CardCollapseItem/CardCollapseItem.jsx","customEvents/helpers.js","components/CertificationCreationModal/styles.js","components/CertificationCreationModal/CertificationCreationModal.jsx","components/CodeInput/styles.js","components/CodeInput/CodeInput.jsx","components/CollapseItem/styles.jsx","components/CollapseItem/CollapseItem.jsx","components/ConfirmDialog/styles.jsx","components/ConfirmDialog/ConfirmDialog.jsx","components/ContentContainer/styles.js","components/ContentContainer/ContentContainer.jsx","components/ContentHeader/styles.js","components/ContentHeader/ContentHeader.jsx","components/CountrySelect/CountrySelect.jsx","models/common.model.ts","helpers/parseErrors.js","redux/services/auth.service.js","redux/actions/snackbar.actions.js","models/errors.model.ts","redux/actions/auth.actions.js","helpers/axios.js","redux/services/identity.service.js","redux/services/contacts.service.js","redux/actions/contacts.actions.js","redux/services/documentDSL.service.js","redux/actions/userCom.actions.ts","redux/services/billing.service.ts","redux/actions/billing.actions.ts","redux/actions/identity.actions.js","models/workspaceUser.model.ts","helpers/hooks/useForm.js","helpers/formValidationRules.js","components/CreateWorkspace/CreateWorkspace.jsx","components/CreatorDocument/styles.js","components/SmallContentWithScrollbar/styles.js","components/SmallContentWithScrollbar/SmallContentWithScrollbar.jsx","components/WaitingForBlockchain/WaitingForBlockchain.tsx","components/WaitingForBlockchain/styles.ts","components/CreatorDocument/CreatorDocument.jsx","components/CustomizedBreadcrumbs/styles.js","components/CustomizedBreadcrumbs/BreadcrumbCollapsed.jsx","components/CustomizedBreadcrumbs/CustomizedBreadcrumbs.jsx","components/CustomLink/CustomLink.jsx","components/DataTable/styles.js","components/DataTable/DataTableHeader.jsx","helpers/contactHelper.js","components/DataTable/cells/BadgeCell.jsx","components/DataTable/cells/DocumentStatusCell.jsx","components/DataTable/cells/EnterButtonCell.jsx","components/DataTable/cells/IconCell.jsx","components/DataTable/cells/TextCell.jsx","helpers/dateTimeFormats.jsx","components/DataTable/cells/TimeAgoCell.jsx","components/DataTable/DataTableRow.jsx","components/DataTable/subcomponents/NoItems/styles.js","components/DataTable/subcomponents/NoItems/NoDataItems.jsx","components/DataTable/DataTable.jsx","components/DialogTitleWithButton/styles.js","components/DialogTitleWithButton/DialogTitleWithButton.jsx","redux/services/documentCore.service.js","redux/services/filesModule.service.js","redux/actions/documentCreation.actions.js","components/DropZone/styles.js","components/DropZone/steps/StepUpload/StepUpload.jsx","components/DropZone/steps/StepList/styles.js","components/DropZone/steps/StepList/subcomponents/LinearProgressWithLabel.jsx","components/DropZone/steps/StepList/StepList.jsx","components/DropZone/DropZone.jsx","components/EmptyBanner/styles.js","components/EmptyBanner/EmptyBanner.jsx","components/ExtendedGrid/styles.js","components/ExtendedGrid/ExtendedGrid.jsx","components/FullPageLoader/styles.js","components/FullPageLoader/FullPageLoader.jsx","components/FullScreenDialog/subcomponents/DialogTitle.jsx","components/FullScreenDialog/subcomponents/DialogContent.jsx","components/FullScreenDialog/styles.js","components/FullScreenDialog/FullScreenDialog.jsx","components/FullScreenDialogContentWrapper/styles.js","components/FullScreenDialogContentWrapper/FullScreenDialogContentWrapper.jsx","components/Gap/styles.js","components/Gap/Gap.jsx","components/HeaderButton/styles.jsx","components/HeaderButton/HeaderButton.jsx","redux/services/documents.service.js","redux/actions/documents.actions.js","models/identity.model.ts","helpers/fileAndFolderColsConfig.jsx","redux/selectors/identity.selector.ts","components/PermissionResolver/permissionUtils.js","redux/selectors/documents.selector.ts","components/HeaderSearch/subcomponents/HeaderSearchItem/styles.js","components/HeaderSearch/subcomponents/HeaderSearchItem/HeaderSearchItem.jsx","components/HeaderSearch/styles.jsx","components/AdvancedSearchModal/styles.ts","components/AdvancedSearchModal/subcomponents/AdvancedSearchModalTitle.tsx","components/AdvancedSearchModal/subcomponents/AdvancedSearchModalActions.tsx","components/AdvancedSearchModal/subcomponents/AdvancedSearchModalField.tsx","components/AdvancedSearchModal/fields/NameField/NameField.tsx","components/DocumentTypeDropdown/styles.ts","components/DocumentTypeDropdown/DocumentTypeDropdown.tsx","components/AdvancedSearchModal/fields/DocumentTypeField/styles.ts","components/AdvancedSearchModal/fields/DocumentTypeField/DocumentTypeField.tsx","components/DocumentStatusDropdown/styles.ts","components/DocumentStatusChip/DocumentStatusChip.tsx","components/DocumentStatusDropdown/DocumentStatusDropdown.tsx","components/AdvancedSearchModal/fields/DocumentStatusField/styles.ts","components/AdvancedSearchModal/fields/DocumentStatusField/DocumentStatusField.tsx","components/AdvancedSearchModal/fields/DateField/styles.ts","components/AdvancedSearchModal/fields/DateField/DateField.tsx","redux/services/documentInvitations.service.js","redux/actions/documentUserManager.actions.ts","redux/selectors/documentUserManager.selector.ts","components/RecipientsDropdown/styles.ts","redux/selectors/documentDisplay.selector.js","components/DocumentUsersManager/subcomponents/UserItem/HighlightString.tsx","components/DocumentUsersManager/subcomponents/UserItem/styles.ts","components/DocumentUsersManager/subcomponents/UserItem/UserItemTitle.tsx","components/DocumentUsersManager/subcomponents/UserItem/UserItemDescription.tsx","components/RecipientsDropdown/RecipientsDropdown.tsx","components/AdvancedSearchModal/fields/RecipientsField/styles.ts","components/AdvancedSearchModal/fields/RecipientsField/RecipientsField.tsx","components/DirectoryExplorer/styles.js","components/DirectoryExplorer/useFolderStructure.js","components/DirectoryExplorer/DirectoryExplorerCreateInput.jsx","helpers/hooks/usePrevious.ts","components/DirectoryExplorer/DirectoryExplorer.jsx","components/AdvancedSearchModal/fields/LocationField/styles.ts","components/AdvancedSearchModal/fields/LocationField/LocationField.tsx","components/AdvancedSearchModal/AdvancedSearchModal.tsx","components/HeaderSearch/HeaderSearch.tsx","components/HeaderMenuMobile/styles.ts","components/HeaderMenuMobile/HeaderMenuMobile.tsx","components/LinkDnd/styles.js","components/LinkDnd/LinkDnd.jsx","components/ListChoiceButton/styles.js","components/ListChoiceButton/ListChoiceButton.jsx","components/Logo/styles.js","components/Logo/Logo.jsx","components/MenuNavigationList/styles.jsx","components/MenuNavigationList/MenuNavigationList.jsx","models/billing.model.ts","components/MenuSidebar/styles.js","components/MenuSidebar/MenuSidebar.jsx","components/MobileBottomMenuList/styles.js","components/MobileBottomMenuList/MobileBottomMenuList.jsx","components/NoDocumentsBanner/styles.js","components/SelectTemplateDropdown/styles.ts","components/AddNewFolderModal/AddNewFolderModal.tsx","components/SelectTemplateDropdown/SubscriptionModal.tsx","components/SelectTemplateDropdown/SelectTemplateDropdown.tsx","components/NoDocumentsBanner/NoDocumentsBanner.jsx","components/OutsideClickHandlerClickExcpetion/OutsideClickHandlerClickExcpetion.jsx","components/PasswordMeter/styles.js","components/PasswordMeter/PasswordMeter.jsx","components/QrImage/styles.js","components/QrImage/QrImage.jsx","components/ResponsiveDateRangePicker/styles.js","components/ResponsiveDateRangePicker/ResponsiveDateRangePicker.jsx","components/SnackbarItem/styles.js","components/SnackbarItem/SnackbarItem.jsx","components/Tag/styles.js","components/Tag/Tag.jsx","components/TimerButton/TimerButton.jsx","components/TopBarContainer/styles.js","components/TopBarContainer/TopBarContainer.jsx","redux/services/twoFactor.service.js","redux/actions/twoFactor.actions.js","helpers/token.helper.js","components/TwoFactorModal/subcomponents/TwoFactorForm.jsx","components/TwoFactorModal/TwoFactorModal.jsx","components/AutocompleteWithChip/styles.ts","components/AutocompleteWithChip/AutocompleteWithChip.tsx","redux/actions/documentDownload.actions.js","pages/App/Links.jsx","redux/services/communications.service.js","redux/actions/communications.actions.js","components/HeaderNotifications/config.tsx","components/ButtonTabs/styles.ts","components/ButtonTabs/ButtonTabs.tsx","components/HeaderNotifications/styles.ts","models/communications.model.ts","components/HeaderNotifications/subcomponents/styles.ts","components/HeaderNotifications/subcomponents/HeaderNotificationsItem.tsx","components/HeaderNotifications/HeaderNotificationsWebsocket.tsx","components/HeaderNotifications/HeaderNotifications.tsx","pages/App/subcomponents/AppHeader/styles.jsx","pages/App/subcomponents/AppHeader/subcomponents/HeaderHelp/styles.ts","pages/App/subcomponents/AppHeader/subcomponents/HeaderHelp/HeaderHelp.tsx","pages/App/subcomponents/AppHeader/subcomponents/HeaderUser/styles.ts","pages/App/subcomponents/AppHeader/subcomponents/HeaderUser/HeaderUser.tsx","pages/App/subcomponents/AppHeader/AppHeader.jsx","pages/App/subcomponents/AppMenuMobile/styles.jsx","pages/App/subcomponents/AppMenuMobile/AppMenuMobile.jsx","pages/App/subcomponents/AppMenuSidebar/styles.jsx","pages/App/subcomponents/SidebarWorkspaceSwitch/styles.ts","redux/services/avatar.service.js","redux/actions/avatar.actions.js","pages/App/subcomponents/SidebarWorkspaceSwitch/SidebarWorkspaceSwitch.tsx","pages/App/subcomponents/AppMenuSidebar/AppMenuSidebar.jsx","pages/App/subcomponents/Notifier/Notifier.jsx","pages/App/styles.jsx","components/AdvancedSearchFilterBar/styles.tsx","components/AdvancedSearchFilterBar/FilterChip.tsx","components/ScrollableXaxis/styles.ts","components/ScrollableXaxis/ScrollableXaxis.tsx","components/AdvancedSearchFilterBar/AdvancedSearchFilterBar.tsx","pages/SearchPage/styles.ts","pages/SearchPage/SearchPageWebsocket.tsx","pages/SearchPage/SearchPage.tsx","pages/App/subcomponents/UserComUrlChange/UserComUrlChange.tsx","pages/App/subcomponents/SubscriptionWatcher/SubscriptionWatcher.tsx","pages/App/App.jsx","redux/actions/documentDisplay.actions.js","redux/actions/documentInvitiation.actions.js","redux/services/blockchainExplorer.service.js","redux/actions/documentManagement.actions.js","helpers/goBack.js","redux/selectors/documentManagement.selector.js","pages/DocumentActions/subcomponents/ActionsTabs/styles.jsx","pages/DocumentActions/subcomponents/ActionsTabs/ActionsTabs.jsx","pages/DocumentActions/subcomponents/DocumentContent/styles.jsx","pages/DocumentActions/subcomponents/DocumentContent/DocumentContent.jsx","pages/DocumentActions/subcomponents/RightSidebar/styles.jsx","pages/DocumentActions/subcomponents/RightSidebar/RightSidebarSkeleton.tsx","pages/DocumentActions/subcomponents/RightSidebar/RightSidebar.jsx","pages/DocumentActions/subcomponents/SignBanner/styles.jsx","pages/DocumentActions/subcomponents/SignBanner/SignBanner.jsx","pages/DocumentActions/subcomponents/TabHeader/styles.jsx","pages/DocumentActions/subcomponents/TabHeader/TabHeader.jsx","pages/DocumentActions/subcomponents/TopBar/styles.jsx","pages/DocumentActions/subcomponents/TopBar/TopBar.jsx","pages/DocumentActions/subcomponents/TopBarOptionsMenu/styles.jsx","pages/DocumentActions/subcomponents/TopBarOptionsMenu/TopBarOptionsMenu.jsx","redux/actions/certificateManagement.actions.js","pages/DocumentActions/subcomponents/editDialogs/RejectDocument/RejectDocument.jsx","pages/DocumentActions/subcomponents/editDialogs/ReloadDocument/ReloadDocument.jsx","pages/DocumentActions/subcomponents/editDialogs/SignDocument/SignDocument.jsx","pages/DocumentActions/tabs/History/subcomponents/HistoryItem/styles.jsx","pages/DocumentActions/tabs/History/subcomponents/HistoryItem/HistoryItem.jsx","pages/DocumentActions/tabs/History/styles.jsx","pages/DocumentActions/tabs/History/History.jsx","pages/DocumentActions/tabs/Recipients/subcomponents/RecipientsItem/styles.jsx","pages/DocumentActions/tabs/Recipients/subcomponents/RecipientsItem/RecipientItemStep.jsx","pages/DocumentActions/tabs/Recipients/subcomponents/RecipientsItem/RecipientsItem.jsx","pages/DocumentActions/tabs/Recipients/subcomponents/SingersCounter.jsx","pages/DocumentActions/tabs/Recipients/styles.jsx","pages/DocumentActions/helpers.js","pages/DocumentActions/tabs/Recipients/Recipients.jsx","pages/DocumentActions/tabs/Info/styles.js","pages/DocumentActions/tabs/Info/subcomponents/styles.js","pages/DocumentActions/tabs/Info/subcomponents/InfoSection.js","pages/DocumentActions/tabs/Info/subcomponents/LabelValueReadonly.js","pages/DocumentActions/tabs/Info/Info.jsx","pages/DocumentActions/subcomponents/Dialogs/SigningBannerAfterTextModal.jsx","components/DocumentStatusNotification/styles.js","components/DocumentStatusNotification/DocumentStatusNotification.jsx","pages/DocumentActions/subcomponents/DocumentStatusFrame/DocumentStatusFrame.jsx","pages/DocumentActions/CertificateActionsWebsocket.js","pages/DocumentActions/styles.js","components/DocumentUsersManager/subcomponents/styles.ts","components/DocumentUsersManager/subcomponents/Section.tsx","components/DocumentUsersManager/subcomponents/ItemsWrapper.tsx","components/DocumentUsersManager/subcomponents/SectionButton.tsx","components/DocumentUsersManager/subcomponents/UserItem/UserItemRoles.tsx","components/DocumentUsersManager/subcomponents/UserItem/UserItem.tsx","components/DocumentUsersManager/subcomponents/InfoTooltip.tsx","components/DocumentUsersManager/subcomponents/UsersManagerContext.tsx","components/DocumentUsersManager/subcomponents/UserItem/UserItemSkeleton.tsx","components/DocumentUsersManager/subcomponents/UserItem/AddNewItem.tsx","components/DocumentUsersManager/sections/UsersManagerSigners.tsx","pages/TransferOwnership/components/steps/TransferOwnership/TransferOwnershipWebsocket.jsx","components/DocumentUsersManager/sections/styles.ts","components/DocumentUsersManager/sections/UsersManagerHolder.tsx","components/DocumentUsersManager/sections/UsersManagerOtherRoles.tsx","redux/selectors/documentInvitations.selector.js","components/DocumentUsersManager/subcomponents/confirmPublicAccessModal/styles.js","components/DocumentUsersManager/subcomponents/confirmPublicAccessModal/ConfirmPublicAccessModal.jsx","components/DocumentUsersManager/sections/UsersManagerAdvancedSettings.tsx","redux/actions/certificateCreator.actions.js","redux/services/documentInvitationsTs.service.ts","redux/actions/documentInvitationsTs.actions.ts","components/DocumentUsersManager/subcomponents/MultipleInvitationWarningBar.tsx","components/DocumentUsersManager/DocumentUsersManager.tsx","helpers/hooks/useIsDocumentOwner.js","helpers/hooks/useLinkedInSharingLinks.js","pages/DocumentActions/subcomponents/LinkedInShareButton/LinkedInShareButton.jsx","pages/DocumentActions/DocumentActionsPage.jsx","pages/CertificateCreator/steps/SelectQuantityType/styles.js","pages/CertificateCreator/steps/SelectQuantityType/SelectQuantityType.jsx","pages/CertificateCreator/steps/TemplatePreview/styles.js","pages/CertificateCreator/steps/TemplatePreview/TemplatePreview.jsx","pages/CertificateCreator/steps/components/MappingLayout/styles.js","pages/CertificateCreator/steps/components/MappingLayout/MappingLayout.js","pages/CertificateCreator/steps/components/MapField/styles.js","pages/CertificateCreator/steps/components/MapField/MapField.jsx","pages/CertificateCreator/steps/MapSingleFields/styles.js","pages/CertificateCreator/steps/MapSingleFields/MapSingleFields.jsx","pages/CertificateCreator/steps/ImportMultipleData/styles.js","pages/CertificateCreator/steps/ImportMultipleData/components/ActionButtons.jsx","pages/CertificateCreator/steps/components/DropzoneButton/config.js","pages/CertificateCreator/steps/components/DropzoneButton/DropzoneButton.js","pages/CertificateCreator/steps/ImportMultipleData/components/ImportDataTable.jsx","pages/CertificateCreator/steps/ImportMultipleData/ImportMultipleData.jsx","pages/CertificateCreator/steps/MapMultipleData/styles.js","pages/CertificateCreator/steps/MapMultipleData/MapMultipleData.jsx","pages/CertificateCreator/steps/UploadAdditionalDocuments.jsx","pages/CertificateCreator/styles.js","pages/CertificateCreator/steps/SelectTemplateType/styles.js","pages/CertificateCreator/steps/SelectTemplateType/CertificateOption.jsx","pages/CertificateCreator/steps/SelectTemplateType/SelectTemplateType.jsx","redux/selectors/certificateCreator.selector.js","components/DirectoryExplorer/ChooseLocationCertificateButton.js","pages/CertificateCreator/steps/ChooseLocation/styles.js","pages/CertificateCreator/steps/ChooseLocation/ChooseLocation.jsx","pages/CertificateCreator/steps/InvitePeople/InvitePeople.jsx","pages/CertificateCreator/steps/CreateFilesForCertProgressScreen/CreateFilesForCertProgressScreen.js","pages/CertificateCreator/steps/StepsResolver.jsx","pages/CertificateCreator/CertificateCreatorLongPooling.js","pages/CertificateCreator/CertificateCreatorWebsocket.js","pages/CertificateCreator/CertificateCreator.jsx","pages/DocumentCreator/DocumentCreatorWebsocket.jsx","pages/DocumentCreator/DocumentCreatorPage.jsx","redux/services/documentJoin.service.js","redux/actions/documentJoin.actions.js","pages/JoinToDocument/styles.jsx","pages/JoinToDocument/JoinToDocumentWebsocket.jsx","pages/JoinToDocument/DiffMailInfo.tsx","pages/JoinToDocument/JoinToDocument.jsx","pages/DrivePage/subcomponents/BreadcrumbsAndSettings/styles.js","pages/DrivePage/subcomponents/BreadcrumbsAndSettings/BreadcrumbsAndSettings.jsx","pages/DrivePage/subcomponents/ItemsActions/ItemsActions.jsx","pages/DrivePage/subcomponents/MobileBreadcrumbs/styles.js","pages/DrivePage/subcomponents/MobileBreadcrumbs/MobileBreadcrumbs.jsx","pages/DrivePage/subcomponents/SpeedDial/styles.ts","pages/DrivePage/subcomponents/SpeedDial/SpeedDial.tsx","pages/Recent/styles.js","pages/Recent/RecentPageWebsocket.jsx","pages/Recent/RecentPage.jsx","pages/WorkspaceConfiguration/subcomponents/ContentHeading/ContentHeading.jsx","pages/WorkspaceConfiguration/subcomponents/HeaderAndButton/styles.js","pages/WorkspaceConfiguration/subcomponents/HeaderAndButton/HeaderAndButton.jsx","pages/WorkspaceConfiguration/subcomponents/styles.js","pages/WorkspaceConfiguration/subcomponents/GroupItem/GroupItem.jsx","pages/WorkspaceConfiguration/subcomponents/Search/styles.js","pages/WorkspaceConfiguration/subcomponents/Search/Search.jsx","pages/WorkspaceConfiguration/subcomponents/UserItem/UserItem.tsx","pages/UserConfiguration/subpages/Basic/editDialogs/AvatarEdit/AvatarEdit.jsx","pages/UserConfiguration/subpages/Basic/editDialogs/AvatarEdit/AvatarDelete.jsx","pages/UserConfiguration/subpages/Basic/editDialogs/UsernameEdit/UsernameEdit.jsx","pages/UserConfiguration/subpages/Basic/editDialogs/PasswordEdit/styles.js","pages/UserConfiguration/subpages/Basic/editDialogs/PasswordEdit/PasswordEdit.jsx","pages/UserConfiguration/subpages/Basic/editDialogs/PhoneEdit/styles.js","pages/UserConfiguration/subpages/Basic/editDialogs/PhoneEdit/PhoneEdit.jsx","pages/UserConfiguration/subpages/Basic/editDialogs/EmailEdit/EmailEdit.jsx","pages/UserConfiguration/subpages/Basic/editDialogs/AccountDeleteError/AccountDeleteError.jsx","pages/UserConfiguration/subpages/Basic/subcomponents/BasicItem/styles.js","pages/UserConfiguration/subpages/Basic/subcomponents/BasicItem/BasicItem.jsx","pages/UserConfiguration/subpages/ConfirmModal/ConfirmModal.jsx","pages/UserConfiguration/subpages/styles.js","pages/UserConfiguration/subpages/Basic/editDialogs/LanguageEdit/LanguageEdit.tsx","pages/UserConfiguration/subpages/Basic/Basic.jsx","pages/UserConfiguration/subpages/Identity/subcomponents/Item/styles.js","pages/UserConfiguration/subpages/Identity/subcomponents/Item/Item.jsx","pages/UserConfiguration/subpages/Identity/subcomponents/ItemWrapper/styles.js","pages/UserConfiguration/subpages/Identity/subcomponents/ItemWrapper/ItemWrapper.jsx","pages/UserConfiguration/subpages/Identity/Identity.jsx","redux/actions/twoFactorConfig.actions.js","pages/UserConfiguration/subcomponents/MethodItem/styles.js","pages/UserConfiguration/subcomponents/MethodItem/MethodItem.jsx","pages/UserConfiguration/subpages/Security/editDialogs/GoogleAuthenticatorDone.jsx","pages/UserConfiguration/subpages/Security/editDialogs/GoogleAuthenticatorStep1.jsx","pages/UserConfiguration/subpages/Security/editDialogs/GoogleAuthenticatorStep2.jsx","pages/UserConfiguration/subpages/Security/Security.jsx","pages/UserConfiguration/subpages/Notifications/subcomponents/NotificationItem/styles.js","pages/UserConfiguration/subpages/Notifications/subcomponents/NotificationItem/NotificationItem.jsx","pages/UserConfiguration/subpages/Notifications/styles.js","pages/UserConfiguration/subpages/Notifications/Notifications.jsx","pages/UserConfiguration/subpages/ApiKeys/styles.ts","pages/UserConfiguration/subpages/ApiKeys/subcomponents/AddKeyDialog.tsx","pages/UserConfiguration/subpages/ApiKeys/subcomponents/PermissionsDialog.tsx","pages/UserConfiguration/subpages/ApiKeys/subcomponents/ApiKeysTable.tsx","pages/UserConfiguration/subpages/ApiKeys/ApiKeys.tsx","pages/UserConfiguration/Links.jsx","pages/UserConfiguration/UserConfigurationPage.jsx","components/DataTable/editDialogs/AddNewFolder.jsx","components/DataTable/editDialogs/DeleteFolder.jsx","components/DataTable/editDialogs/RenameFolder.jsx","components/DataTable/dragLayer/styles.js","components/DataTable/dragLayer/ItemsTemplate.tsx","components/DataTable/dragLayer/ItemsDragLayer.tsx","pages/DrivePage/styles.js","pages/DrivePage/DrivePageWebsocket.jsx","pages/WorkspaceConfiguration/subpages/Users/Users.tsx","SubscriptionAlert/styles.ts","SubscriptionAlert/SubscriptionAlert.tsx","pages/DrivePage/DrivePage.jsx","redux/actions/workspaceGroups.actions.js","pages/WorkspaceConfiguration/subpages/Groups/editDialogs/AddNewGroup.jsx","pages/WorkspaceConfiguration/subpages/Groups/editDialogs/DeleteGroup.jsx","pages/WorkspaceConfiguration/subpages/Groups/editDialogs/ManageGroupUsers.jsx","pages/WorkspaceConfiguration/subpages/Groups/editDialogs/RenameGroup.jsx","pages/WorkspaceConfiguration/subpages/styles.js","pages/WorkspaceConfiguration/subpages/Groups/Groups.jsx","pages/WorkspaceConfiguration/subpages/Settings/editDialogs/EditName.jsx","pages/WorkspaceConfiguration/subpages/Settings/editDialogs/DeleteAvatar.jsx","pages/WorkspaceConfiguration/subpages/Settings/editDialogs/EditData.jsx","pages/WorkspaceConfiguration/subpages/Settings/Settings.jsx","pages/WorkspaceConfiguration/subpages/Users/editDialogs/InviteUsers.jsx","pages/WorkspaceConfiguration/subpages/Users/editDialogs/DeleteUser.jsx","pages/WorkspaceConfiguration/subpages/Subscription/styles.ts","pages/WorkspaceConfiguration/subpages/Subscription/SubscriptionProduct.tsx","pages/WorkspaceConfiguration/subpages/Subscription/Subscription.tsx","pages/WorkspaceConfiguration/Links.jsx","pages/WorkspaceConfiguration/WorkspaceConfigurationPage.jsx","pages/TransferOwnership/components/context/SteperContext.jsx","pages/TransferOwnership/components/steps/TransferByEmail/styles.js","pages/TransferOwnership/components/steps/TransferByEmail/TransferByEmail.jsx","pages/TransferOwnership/components/steps/TransferOwnership/styles.js","pages/TransferOwnership/components/steps/TransferOwnership/TransferOwnership.jsx","pages/TransferOwnership/components/resolver/StepResolver.jsx","pages/TransferOwnership/styles.js","pages/TransferOwnership/TransferOwnership.jsx","index.jsx"],"names":["color","RequestStatus","authConstants","reportWebVitals","onPerfEntry","Function","then","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","createBreakpoints","keys","values","xs","sm","md","lg","xl","common","light","dark","lightest","main","darkest","createPalette","type","black","white","red","green","orange","purple","coral","primary","contrastText","secondary","slightDark","success","lighten","darken","warning","info","error","text","disabled","hint","fade","background","paper","default","action","selected","hover","disabledBackground","active","hoverOpacity","greySimple","icon","colors","blueGrey","link","divider","bottomLineColor","tonalOffset","leftMenuWidth","userMenuMaxWidth","fullModalMenuWidth","documentEditSidebarWidth","headerMobileNavHeight","headerNavHeight","bottomNavigationHeight","tooltipBackground","palette","userMenuHoverBackground","breadcrumbsMenuHeight","toolbar","_defineProperty","minHeight","custom","breakpoints","up","createSpacing","fontFamily","htmlFontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","h1","lineHeight","letterSpacing","fontSize","h2","h3","h4","h5","h6","body1","fontWeight","body2","caption","subtitle1","subtitle2","overline","textTransform","button","root","borderRadius","spacing","typography","filledSuccess","filledInfo","filledWarning","filledError","padding","display","marginRight","margin","message","colorDefault","backgroundColor","tag","maxWidth","minWidth","tagSizeSmall","input","inputRoot","paddingRight","width","paddingBottom","paddingLeft","right","endAdornment","top","clearIndicator","popupIndicator","popupIndicatorOpen","transform","listbox","maxHeight","loading","noOptions","option","_option","WebkitTapHighlightColor","paddingTop","borderBottom","concat","transitions","create","duration","short","opacity","disabledOpacity","groupLabel","groupUl","height","avatar","border","marginLeft","badge","dot","anchorOriginTopRightRectangle","transformOrigin","anchorOriginBottomRightRectangle","bottom","anchorOriginTopLeftRectangle","left","anchorOriginBottomLeftRectangle","position","justifyContent","content","backgroundBlendMode","ol","li","alignItems","textDecoration","separator","userSelect","transition","boxShadow","shadows","textPrimary","contained","containedPrimary","containedSecondary","sizeSmall","sizeLarge","startIcon","marginTop","marginBottom","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge","grouped","groupedHorizontal","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","groupedOutlinedHorizontal","borderLeftColor","_root","alignSelf","overflow","a","scrollbarColor","scrollbarWidth","filter","colorPrimary","colorSecondary","label","labelSmall","deleteIconSmall","boxSizing","container","outline","paperScrollPaper","paperWidthFalse","paperWidthXs","Math","max","down","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","overflowX","borderColor","sizeMedium","extended","labelPlacementStart","labelPlacementTop","labelPlacementBottom","underline","zIndex","multiline","inputMarginDense","formControl","positionEnd","positionStart","marginDense","shrink","outlined","bar","bar1Determinate","bar1Buffer","bar2Buffer","gutters","dense","sticky","cursor","borderWidth","focused","adornedStart","adornedEnd","notchedOutline","inputMultiline","inputAdornedStart","inputAdornedEnd","loadingContainer","weekContainer","week","iconButton","previousMonthButton","daysHeader","weekDayLabel","borderRightColor","rangeIntervalDayHighlight","day","rangeIntervalDayHighlightStart","rangeIntervalDayHighlightEnd","dayOutsideRangeInterval","dayInsideRangeInterval","getContrastText","notSelectedDate","rangeIntervalPreview","rangeIntervalDayPreview","rangeIntervalDayPreviewStart","rangeIntervalDayPreviewEnd","flexDirection","toLabelDelimiter","today","rangeCalendarContainer","borderRight","calendar","arrowSwitcher","dateTitleContainer","toolbarLandscape","checked","valueLabel","thumb","track","rail","mark","markActive","anchorOriginTopCenter","_anchorOriginTopCente","anchorOriginBottomCenter","_anchorOriginBottomCe","anchorOriginTopRight","_anchorOriginTopRight","anchorOriginBottomRight","_anchorOriginBottomRi","anchorOriginTopLeft","_anchorOriginTopLeft","anchorOriginBottomLeft","_anchorOriginBottomLe","flexWrap","switchBase","shortest","head","stickyHeader","body","footer","shape","wrapper","labelIcon","textColorPrimary","fill","tooltip","backdropFilter","textAlign","arrow","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","legend","legendLabelled","legendNotched","easing","easeOut","layer","easeIn","d","MuiAlert","MuiAlertTitle","MuiAppBar","MuiAutocomplete","MuiAvatar","MuiAvatarGroup","MuiBackdrop","MuiBadge","MuiBottomNavigation","MuiBottomNavigationAction","MuiBreadcrumbs","MuiButton","MuiButtonBase","MuiButtonGroup","MuiCard","MuiCardActions","MuiCardContent","MuiCardHeader","MuiCssBaseline","MuiCheckbox","MuiChip","MuiContainer","MuiDialog","MuiDialogActions","MuiDialogContent","MuiDialogTitle","MuiDrawer","paperAnchorDockedLeft","paperAnchorDockedTop","paperAnchorDockedRight","borderLeft","paperAnchorDockedBottom","borderTop","MuiFab","MuiFormControl","MuiFormControlLabel","MuiFormGroup","MuiFormHelperText","MuiFormLabel","MuiIconButton","MuiInput","MuiInputAdornment","MuiInputBase","MuiInputLabel","MuiLinearProgress","MuiList","MuiListItem","MuiListItemIcon","MuiListItemSecondaryAction","MuiListItemText","inset","MuiListSubheader","MuiNativeSelect","select","selectMenu","MuiMenuItem","MuiOutlinedInput","MuiPickersArrowSwitcher","previousMonthButtonMargin","hidden","MuiPickersCalendar","MuiPickersDateRangeDay","MuiPickersDateRangePickerInput","MuiPickersDateRangePickerToolbarProps","penIcon","dateTextContainer","MuiPickersDay","MuiPickersDesktopDateRangeCalendar","MuiPickersModalDialog","dialogRoot","dialogRootWider","dialogContainer","dialog","dialogAction","withAdditionalAction","MuiPickersPopper","MuiPickersToolbar","MuiPickersToolbarButton","MuiPickersToolbarText","MuiPaper","MuiPopover","MuiRadio","MuiSelect","MuiSlider","MuiSnackbar","MuiSnackbarContent","MuiSwitch","MuiTableCell","MuiTableRow","MuiTableSortLabel","MuiTab","MuiTabs","scroller","indicator","MuiToolbar","MuiTooltip","MuiTouchRipple","ripple","rippleVisible","child","childLeaving","MuiTypography","PrivateBreadcrumbCollapsed","PrivateNotchedOutline","PrivateRadioButtonIcon","PrivateSwitchBase","createSvgIcon","_jsx","_jsxs","_Fragment","children","id","gradientUnits","y2","x2","y1","x1","stopColor","offset","gradientTransform","clipPath","fillOpacity","fillRule","clipRule","viewBox","xmlns","x","y","rx","stroke","strokeWidth","popupIcon","ChevronDownIcon","forcePopupIcon","closeIcon","CloseIcon","elevation","focusRipple","centerRipple","disablePadding","disableTypography","textColor","variant","size","CheckboxIcon","checkedIcon","CheckboxCheckedIcon","indeterminateIcon","CheckboxIndeterminateIcon","MuiTextField","InputProps","rows","InputLabelProps","disableAnimation","MuiCircularProgress","thickness","IconComponent","MuiLabel","PaperProps","enterDelay","enterTouchDelay","disableTouchListener","leaveTouchDelay","MuiHidden","implementation","marginThreshold","transitionDuration","TransitionComponent","Fade","raised","titleTypographyProps","overlap","anchorOrigin","vertical","horizontal","ChevronRightIcon","enter","exit","Slide","iconMapping","AlertIcon","MuiToggleButtonGroup","exclusive","MuiLink","theme","createMuiTheme","mixins","overrides","props","initialState","apiKeys","apiKeysRequestStatus","IDLE","permissions","permissionsStatus","createNewApiKeyStatus","deleteApiKeyStatus","deleteTokenRequestStatus","deleteUserAccountStatus","emailBeforeConfirmation","lastSendEmailTimestamp","lastSendSmsTimestamp","patchEmailRequestStatus","patchLanguageStatus","patchPasswordRequestStatus","patchPhoneRequestStatus","patchUsernameRequestStatus","phoneNumberBeforeConfirmation","postEmailRequestError","postEmailRequestStatus","postPhoneRequestError","postPhoneRequestStatus","tokenStatus","userProfile","userProfileRequestStatus","auth","avatarConstants","state","arguments","length","undefined","GET_API_KEYS_REQUEST","_objectSpread","PENDING","GET_API_KEYS_SUCCESS","payload","GET_API_KEYS_ERROR","ERROR","GET_PERMISSIONS_REQUEST","GET_PERMISSIONS_SUCCESS","GET_PERMISSIONS_ERROR","CREATE_API_KEY_REQUEST","CREATE_API_KEY_SUCCESS","CREATE_API_KEY_ERROR","DELETE_API_KEY_REQUEST","DELETE_API_KEY_SUCCESS","DELETE_API_KEY_ERROR","GET_USER_PROFILE_REQUEST","GET_USER_PROFILE_SUCCESS","SUCCESS","response","data","GET_USER_PROFILE_ERROR","PATCH_USER_PROFILE_USERNAME_REQUEST","PATCH_USER_PROFILE_USERNAME_SUCCESS","userName","updatedUsername","PATCH_USER_PROFILE_USERNAME_ERROR","PATCH_USER_PROFILE_PASSWORD_REQUEST","PATCH_USER_PROFILE_PASSWORD_SUCCESS","PATCH_USER_PROFILE_PASSWORD_ERROR","PATCH_USER_PROFILE_EMAIL_REQUEST","PATCH_USER_PROFILE_EMAIL_SUCCESS","updatedEmail","Date","now","PATCH_USER_PROFILE_EMAIL_ERROR","POST_USER_PROFILE_EMAIL_REQUEST","POST_USER_PROFILE_EMAIL_SUCCESS","email","POST_USER_PROFILE_EMAIL_ERROR","code","PATCH_USER_PROFILE_PHONE_REQUEST","PATCH_USER_PROFILE_PHONE_SUCCESS","updatedPhoneNumber","PATCH_USER_PROFILE_PHONE_ERROR","POST_USER_PROFILE_PHONE_REQUEST","POST_USER_PROFILE_PHONE_SUCCESS","POST_USER_PROFILE_PHONE_ERROR","CHECK_TOKEN_STATUS_REQUEST","CHECK_TOKEN_STATUS_SUCCESS","CHECK_TOKEN_STATUS_FAILURE","DELETE_TOKEN_USER_REQUEST","DELETE_TOKEN_USER_SUCCESS","DELETE_TOKEN_USER_FAILURE","PATCH_USER_PROFILE_LANGUAGE_REQUEST","PATCH_USER_PROFILE_LANGUAGE_SUCCESS","language","newLanguage","PATCH_USER_PROFILE_LANGUAGE_FAILURE","DELETE_USER_ACCOUNT_REQUEST","DELETE_USER_ACCOUNT_SUCCESS","DELETE_USER_ACCOUNT_FAILURE","deleteUserAvatarRequestStatus","deleteWorkspaceAvatarRequestStatus","getUserAvatarRequestStatus","getWorkspaceAvatarRequestStatus","putUserAvatarRequestStatus","putWorkspaceAvatarRequestStatus","userAvatar","workspaceAvatar","avatarStore","billingConstants","GET_USER_AVATAR_REQUEST","GET_USER_AVATAR_SUCCESS","GET_USER_AVATAR_ERROR","PUT_USER_AVATAR_REQUEST","PUT_USER_AVATAR_SUCCESS","PUT_USER_AVATAR_ERROR","DELETE_USER_AVATAR_REQUEST","DELETE_USER_AVATAR_SUCCESS","DELETE_USER_AVATAR_ERROR","GET_WORKSPACE_AVATAR_REQUEST","GET_WORKSPACE_AVATAR_SUCCESS","GET_WORKSPACE_AVATAR_ERROR","PUT_WORKSPACE_AVATAR_REQUEST","PUT_WORKSPACE_AVATAR_SUCCESS","PUT_WORKSPACE_AVATAR_ERROR","DELETE_WORKSPACE_AVATAR_REQUEST","DELETE_WORKSPACE_AVATAR_SUCCESS","DELETE_WORKSPACE_AVATAR_ERROR","subscriptions","fetchSubscriptionsStatus","setTrialSubscriptionStatus","setCustomerStatus","isCustomerCreated","billingStore","communicationsConstants","BillingConstants","FETCH_SUBSCRIPTIONS_REQUEST","FETCH_SUBSCRIPTIONS_SUCCESS","FETCH_SUBSCRIPTIONS_FAILURE","SET_TRIAL_SUBSCRIPTION_REQUEST","SET_TRIAL_SUBSCRIPTION_SUCCESS","SET_TRIAL_SUBSCRIPTION_FAILURE","SET_TRIAL_SUBSCRIPTION_IDLE","FETCH_CUSTOMER_SUCCESS","FETCH_CUSTOMER_REQUEST","FETCH_CUSTOMER_FAILURE","SET_CUSTOMER_REQUEST","SET_CUSTOMER_SUCCESS","SET_CUSTOMER_FAILURE","RESET_BILLING","prepareUpdateChannelsMethodStatuses","channels","statusesObject","forEach","item","notificationTemplate","updateChannelMethodStatus","channelsStatuses","template","status","newChannelsStatuses","updateChannelMethod","newChannel","updatedIndex","findIndex","newChannelsObject","_toConsumableArray","setSystemMessageAsRead","systemMessages","notificationId","channelsStatus","updateChannelsStatuses","setSystemAllMessagesAsRead","settingSystemMessageAsReadById","unreadSystemMessagesCounter","unreadSystemMessagesCounterStatus","unreadSystemMessages","fetchUnreadSystemMessages","readSystemMessages","fetchReadSystemMessages","hasMoreUnreadSystemMessages","hasMoreReadSystemMessages","communicationsStore","contactsConstants","GET_USER_NOTIFICATIONS_CHANNELS_REQUEST","GET_USER_NOTIFICATIONS_CHANNELS_SUCCESS","GET_USER_NOTIFICATIONS_CHANNELS_FAILURE","UPDATE_NOTIFICATION_CHANNEL_REQUEST","UPDATE_NOTIFICATION_CHANNEL_SUCCESS","UPDATE_NOTIFICATION_CHANNEL_FAILURE","GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST","GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS","replace","hasNextPage","GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE","GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_REQUEST","GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_SUCCESS","GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_FAILURE","UPDATE_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER","GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST","GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS","GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE","SET_USER_NOTIFICATION_AS_READ_REQUEST","SET_USER_NOTIFICATION_AS_READ_SUCCESS","readMessage","find","read","SET_USER_NOTIFICATION_AS_READ_FAILURE","SET_USER_ALL_NOTIFICATIONS_AS_READ_REQUEST","SET_USER_ALL_NOTIFICATIONS_AS_READ_SUCCESS","map","SET_USER_ALL_NOTIFICATIONS_AS_READ_FAILURE","CLEAR_COMMUNICATIONS_STORE","contactBookEntitiesFetchStatus","contacts","contactsAvailable","contactsQueue","fetchingContacts","groups","addUniqueItemsToArray","currentInProgress","toAdd","finalProgress","contactId","indexOf","push","removeItemsFromArray","toRemove","finalArray","contactsStore","documentCreationConstants","INITIALIZE_CONTACTS","CONTACTS_ADD_TO_QUEUE","ids","CONTACTS_FETCH_ENTITIES_REQUEST","CONTACTS_FETCH_ENTITIES_SUCCESS","newEntityContacts","newEntityGroups","entitiesFound","Object","initialIds","initialItem","identityId","workspaceName","CONTACTS_FETCH_ENTITIES_FAILURE","createNewDocumentStatus","filesListDropzone","getUploadTokenStatus","newDocument","templateDocument","uploadFileStatus","uploadTokens","deleteToken","index","elIndex","deleteFile","renderFiles","file","_uploadTokens$index","_uploadTokens$index2","token","fileId","renderUploadProgress","progress","fileToken","changeStatusUploadFile","uploadStatus","documentCreatorStore","documentDisplayConstants","UPLOAD_FILE_REQUEST","UPLOAD_FILE_SUCCESS","UPLOAD_FILE_FAILURE","GET_UPLOAD_TOKEN_REQUEST","GET_UPLOAD_TOKEN_SUCCESS","GET_UPLOAD_TOKEN_FAILURE","CREATE_NEW_DOCUMENT_REQUEST","CREATE_NEW_DOCUMENT_SUCCESS","CREATE_NEW_DOCUMENT_FAILURE","ADD_FILE_DROPZONE","DELETE_FILE_DROPZONE","SET_PROGRESS_UPLOAD_FILE","SET_TEMPLATE_DOCUMENT","CLEAR_DOCUMENT_CREATOR_STORE","activeFileIndex","allFilesLoadedStatus","document","downloadFileStatus","downloadFiles","downloadTokens","getDocumentStatus","getDownloadTokenStatus","renderTokens","tokens","indexFile","page","parseFloat","config","url","split","renderDocument","_document$files","files","sort","b","addEmptyFile","emptyFile","pages","filesMap","URL","createObjectURL","checkAllFilesLoaded","_state$document","_state$document$files","allFilesCount","updateDocumentByWebSocket","documentState","newDocumentData","newDocumentState","name","tags","updatedAt","documentManagementStore","documentDownloadConstants","_action$data","_action$data$files","GET_DOCUMENT_REQUEST","GET_DOCUMENT_SUCCESS","GET_DOCUMENT_FAILURE","GET_DOWNLOAD_TOKEN_REQUEST","GET_DOWNLOAD_TOKEN_SUCCESS","GET_DOWNLOAD_TOKEN_FAILURE","DOWNLOAD_FILE_REQUEST","DOWNLOAD_FILE_SUCCESS","folders","DOWNLOAD_FILE_FAILURE","ADD_EMPTY_FILE","SET_ACTIVE_FILE_INDEX","CLEAR_FILES_AND_TOKENS","WS_UPDATE_DOCUMENT","documentData","CLEAR_DOCUMENT_DISPLAY_STORE","documentDownloadStatus","downloadDocuments","filesToDownloadStatus","updateDownloadDocumentFromState","documents","documentId","documentsArray","deleteDownloadDocumentFromState","splice","documentDownloadStore","certificateManagementConstants","DOWNLOAD_DOCUMENT_REQUEST","DOWNLOAD_DOCUMENT_SUCCESS","DOWNLOAD_DOCUMENT_FAILURE","DOWNLOAD_DOCUMENT_FILE_REQUEST","DOWNLOAD_DOCUMENT_FILE_SUCCESS","DOWNLOAD_DOCUMENT_FILE_FAILURE","WS_DOWNLOAD_DOCUMENT","documentInvitationConstants","deleteUsersByMailStatus","documentRoles","documentRoleTypes","fetchDocumentRoleTypesStatus","documentSigners","fetchDocumentRolesStatus","fetchDocumentSignersStatus","fetchWorkspaceEntitiesStatus","inviteUsersByMailStatus","isOrderSignificant","replaceDocumentRolesStatus","replaceDocumentSignersStatus","documentTransferabilityChangeStatus","documentPublicAccessChangeStatus","requiredSignersCount","workspaceEntities","documentInvitationsStore","documentJoinConstants","documentInvitationsConstants","FETCH_DOCUMENT_SIGNERS_REQUEST","FETCH_DOCUMENT_SIGNERS_SUCCESS","_action$payload","FETCH_DOCUMENT_SIGNERS_ERROR","REPLACE_DOCUMENT_SIGNERS_REQUEST","REPLACE_DOCUMENT_SIGNERS_SUCCESS","REPLACE_DOCUMENT_SIGNERS_ERROR","FETCH_DOCUMENT_ROLES_REQUEST","FETCH_DOCUMENT_ROLES_SUCCESS","FETCH_DOCUMENT_ROLES_ERROR","FETCH_DOCUMENT_ROLES_TYPES_REQUEST","FETCH_DOCUMENT_ROLES_TYPES_SUCCESS","FETCH_DOCUMENT_ROLES_TYPES_ERROR","INVITE_USERS_BY_MAIL_REQUEST","INVITE_USERS_BY_MAIL_SUCCESS","INVITE_USERS_BY_MAIL_ERROR","DELETE_USERS_MAIL_INVITATION_REQUEST","DELETE_USERS_MAIL_INVITATION_SUCCESS","DELETE_USERS_MAIL_INVITATION_ERROR","GET_WORKSPACE_ENTITIES_REQUEST","GET_WORKSPACE_ENTITIES_SUCCESS","GET_WORKSPACE_ENTITIES_ERROR","CLEAR_DOCUMENT_INVITATIONS_STORE","DOCUMENT_SET_TRANSFERABILITY_REQUEST","DOCUMENT_SET_TRANSFERABILITY_SUCCESS","DOCUMENT_SET_TRANSFERABILITY_ERROR","DOCUMENT_SET_ACCESS_LEVEL_REQUEST","DOCUMENT_SET_ACCESS_LEVEL_SUCCESS","DOCUMENT_SET_ACCESS_LEVEL_ERROR","documentInvitationData","fetchAcceptationDocumentInvitationStatus","fetchDocumentInvitationStatus","DateDropdownType","DocumentStatus","DocumentItemCategoryType","DateDropdown","selectedItem","onSelect","t","useTranslation","_useState","useState","_useState2","_slicedToArray","anchorEl","setAnchorEl","options","useMemo","value","ANY","TODAY","YESTERDAY","LAST_7_DAYS","LAST_30_DAYS","BETWEEN","handleClose","isOpen","Boolean","aria-hidden","onClick","e","currentTarget","Menu","open","getContentAnchorEl","autoFocus","onClose","MenuItem","style","offsetWidth","val","Divider","AdvancedSearchFields","DocumentType","ExtraDocumentType","TemplateDocumentType","getDateFromDateRangeType","dateType","from","moment","startOf","valueOf","to","endOf","subtract","advancedSearchTypeToQuery","search","sortKey","sortOrder","NAME","TYPE","el","FOLDER","STATUS","dateCreated","DATE_CREATED","dateModified","DATE_MODIFIED","recipients","RECIPIENTS","location","LOCATION","query","limit","folderDepth","folderIdLst","idPath","documentType","READY_FOR_PREVIEW","EDITING","createdAt","anyOfRecipients","_id","sortBy","encodeURIComponent","JSON","stringify","documentManagementConstants","DocumentRole","mapToDocumentRole","role","toLowerCase","getStatusName","_ref2","isShort","_ref2$isCertificate","isCertificate","prefix","SIGNING","ISSUING","REJECTED","FINISHED","VALID","INVALIDATED","TEMPORARILY_INVALIDATE","EXPIRED","HistoryType","getInitialStateOfRoles","clearHistoryStatus","documentInvalidationStatus","documentInvitations","documentMembers","documentRenameStatus","documentSigningStatus","documentTemporarilyInvalidationStatus","documentValidationStatus","documentTransferOwnershipStatus","getDocumentCardStatus","getDocumentHistoryStatus","getDocumentInvitationsStatus","getDocumentMembersByRoleStatus","getDocumentMembersStatus","getSignaturesStatus","historyDocument","historyHasNextPage","historyLength","rejectingDocumentStatus","roles","signatures","updateRolesByType","roleType","rolesStatus","roleTypeCollection","newRolesStatus","updateAllRoles","allMembers","groupName","documentsConstants","RENAME_DOCUMENT_REQUEST","RENAME_DOCUMENT_SUCCESS","RENAME_DOCUMENT_FAILURE","SIGN_DOCUMENT_REQUEST","DOCUMENT_SIGN_REQUEST","SIGN_DOCUMENT_SUCCESS","DOCUMENT_SIGN_SUCCESS","SIGN_DOCUMENT_FAILURE","DOCUMENT_SIGN_ERROR","REJECT_DOCUMENT_REQUEST","DOCUMENT_REJECT_REQUEST","REJECT_DOCUMENT_SUCCESS","DOCUMENT_REJECT_SUCCESS","REJECT_DOCUMENT_FAILURE","DOCUMENT_REJECT_ERROR","GET_HISTORY_DOCUMENT_REQUEST","GET_HISTORY_DOCUMENT_SUCCESS","history","collection","GET_HISTORY_DOCUMENT_FAILURE","RELOAD_DOCUMENT_HISTORY","GET_DOCUMENT_MEMBERS_REQUEST","GET_DOCUMENT_MEMBERS_SUCCESS","members","GET_DOCUMENT_MEMBERS_FAILURE","GET_DOCUMENT_INVITATIONS_REQUEST","GET_DOCUMENT_INVITATIONS_SUCCESS","GET_DOCUMENT_INVITATIONS_FAILURE","GET_DOCUMENT_MEMBERS_BY_ROLE_REQUEST","GET_DOCUMENT_MEMBERS_BY_ROLE_SUCCESS","GET_DOCUMENT_MEMBERS_BY_ROLE_FAILURE","GET_SIGNATURES_REQUEST","GET_SIGNATURES_SUCCESS","GET_SIGNATURES_FAILURE","UPDATE_DOCUMENT_SIGNERS","signers","GET_DOCUMENT_CARD_REQUEST","GET_DOCUMENT_CARD_SUCCESS","GET_DOCUMENT_CARD_FAILURE","WS_UPDATE_DOCUMENT_MANAGEMENT","CLEAR_DOCUMENT_HISTORY","CLEAR_DOCUMENT_MANAGEMENT_STORE","DOCUMENT_INVALIDATE_REQUEST","DOCUMENT_INVALIDATE_SUCCESS","DOCUMENT_INVALIDATE_ERROR","DOCUMENT_INVALIDATE_TEMPORARILY_REQUEST","DOCUMENT_INVALIDATE_TEMPORARILY_SUCCESS","DOCUMENT_INVALIDATE_TEMPORARILY_ERROR","DOCUMENT_VALIDATE_REQUEST","DOCUMENT_VALIDATE_SUCCESS","DOCUMENT_VALIDATE_ERROR","TRANSFER_OWNERSHIP_REQUEST","TRANSFER_OWNERSHIP_SUCCESS","TRANSFER_OWNERSHIP_ERROR","FolderOperationType","advancedSearchInitialState","_advancedSearchInitia","createFolderStatus","currentFolderId","currentPath","defaultSortKey","defaultSortOrder","documentsQuery","documentsSearchFetchStatus","fetchDocumentsStatus","fetchFolderPathStatus","fetchFoldersStatus","folderPath","namePath","folderTree","foldersSearchFetchStatus","hasMoreDocuments","moveDocumentsStatus","removeFolderStatus","renameFolderStatus","quickSearchedDocuments","quickSearchedFolders","advancedSearchedDocuments","advancedSearchedDocumentsStatus","advancedSearchedDocumentsQuery","advancedSearchedFolders","advancedSearch","draftAdvancedSearch","selectedFolders","sortByKeyAndOrder","keyToSort","direction","slice","objectA","objectB","valueA","valueB","updateOnlyOneDocumentInState","updatedDocument","documentExists","some","doc","newDocsArr","deleteOnlyOneDocumentFromState","deletedDocument","getCurrentFolderId","rootFolderId","folder","updateFolderTree","currentFolderTree","updatedFolder","operation","newFolders","Array","folderIndex","UPDATE","DELETE","updateDocument","currentDocuments","newDocuments","folderId","MOVE","documentIndex","addDocument","unshift","updateFolderPath","pathIds","pathNames","targetIndex","i","join","documentsStore","identityConstants","FETCH_FOLDER_TREE_REQUEST","FETCH_FOLDER_TREE_SUCCESS","FETCH_FOLDER_TREE_FAILURE","FETCH_DOCUMENTS_SEARCH_REQUEST","FETCH_DOCUMENTS_SEARCH_SUCCESS","FETCH_DOCUMENTS_SEARCH_FAILURE","FETCH_FOLDERS_SEARCH_REQUEST","FETCH_FOLDERS_SEARCH_SUCCESS","FETCH_FOLDERS_SEARCH_FAILURE","CREATE_FOLDER_REQUEST","CREATE_FOLDER_SUCCESS","CREATE_FOLDER_FAILURE","FETCH_DOCUMENTS_REQUEST","FETCH_DOCUMENTS_SUCCESS","FETCH_DOCUMENTS_FAILURE","FETCH_FOLDER_PATH_REQUEST","FETCH_FOLDER_PATH_SUCCESS","path","FETCH_FOLDER_PATH_FAILURE","RENAME_FOLDER_REQUEST","RENAME_FOLDER_SUCCESS","RENAME_FOLDER_FAILURE","REMOVE_FOLDER_REQUEST","REMOVE_FOLDER_SUCCESS","REMOVE_FOLDER_FAILURE","WS_ADD_FOLDER","prev","newFolder","WS_UPDATE_FOLDER","WS_DELETE_FOLDER","deletedFolder","WS_MOVED_DOCUMENT","movedFile","WS_CREATED_DOCUMENT","WS_UPDATED_DOCUMENT","WS_DELETE_DOCUMENT","MOVE_DOCUMENT_REQUEST","MOVE_DOCUMENT_SUCCESS","MOVE_DOCUMENT_FAILURE","SUBMIT_ADVANCED_SEARCH","RESET_DRAFT_ADVANCED_SEARCH","UPDATE_DRAFT_ADVANCED_SEARCH","field","UPDATE_ADVANCED_SEARCH","RESET_FIELD_DRAFT_ADVANCED_SEARCH","actionField","FETCH_DOCUMENTS_ADVANCED_SEARCH_REQUEST","FETCH_DOCUMENTS_ADVANCED_SEARCH_SUCCESS","FETCH_DOCUMENTS_ADVANCED_SEARCH_FAILURE","FETCH_FOLDERS_ADVANCED_SEARCH_SUCCESS","SET_SELECTED_FOLDERS","CLEAR_STORE","CLEAR_SEARCH","CLEAR_ADVANCED_SEARCH","excludeName","CLEAR_FOLDER_PATH","workspaceGroupsConstants","activeGroup","addMembersToWorkspaceGroupStatus","deleteMembersFromWorkspaceGroupStatus","deleteWorkspaceGroupStatus","fetchGroupStructureStatus","fetchWorkspaceGroupStatus","fetchWorkspaceGroupsStatus","groupMembers","pageIndex","searchWorkspaceGroupsStatus","updateWorkspaceGroupStatus","workspaceGroups","addOnlyOneGroupToState","deactivatedGroup","groupId","group","updateOnlyOneGroupInState","_newWorkspaceGroupsAr","changedGroupIndex","_type$info","_type$info2","newWorkspaceGroupsArray","description","deleteOnlyOneGroupFromState","_type$info3","_type$info4","reduce","structure","structureStatus","createWorkspaceStatus","currentIdentity","isOwner","nonEmptyWorkspaces","sendTransactionFromNewDocumentStatus","sendTransactionFromNewCertificateStatus","switchContactEmailRequestError","switchContactEmailRequestStatus","updateWorkspaceDetailsStatus","updateWorkspaceInfoStatus","workspaceDetails","workspaceInfo","workspaceInfoStatus","workspacePermissions","workspacePermissionsStatus","workspaceWorkflows","workspaceWorkflowsStatus","workspaceWorkflowsErrorCode","workspaceStructureStatus","workspaceUsers","parseGroupsToUsers","_allGroup$members","allGroup","_group$info","updateStructureWorkspace","newWorkspace","targetWorkspaceId","newStructure","workspace","workspaceId","updateStructureIdentityContactMail","user","identity","contactEmail","updateMembersInGroup","identityStore","snackbarConstants","_state$currentIdentit","_state$currentIdentit2","_state$currentIdentit3","_state$currentIdentit4","_state$structure","FETCH_STRUCTURE_REQUEST","FETCH_STRUCTURE_SUCCESS","FETCH_STRUCTURE_FAILURE","SET_ACTIVE_IDENTITY","FETCH_WORKSPACE_STRUCTURE_REQUEST","FETCH_WORKSPACE_STRUCTURE_SUCCESS","FETCH_WORKSPACE_STRUCTURE_FAILURE","FETCH_WORKSPACE_INFO_REQUEST","FETCH_WORKSPACE_INFO_SUCCESS","FETCH_WORKSPACE_INFO_FAILURE","UPDATE_WORKSPACE_INFO_REQUEST","UPDATE_WORKSPACE_INFO_SUCCESS","UPDATE_WORKSPACE_INFO_FAILURE","CREATE_NEW_WORKSPACE_FAILURE","CREATE_NEW_WORKSPACE_SUCCESS","CREATE_NEW_WORKSPACE_REQUEST","SWITCH_CONTACT_EMAIL_REQUEST","SWITCH_CONTACT_EMAIL_SUCCESS","SWITCH_CONTACT_EMAIL_FAILURE","UPDATE_WORKSPACE_DETAILS_REQUEST","UPDATE_WORKSPACE_DETAILS_SUCCESS","UPDATE_WORKSPACE_DETAILS_FAILURE","SEND_TRANSACTION_FROM_NEW_DOCUMENT_REQUEST","SEND_TRANSACTION_FROM_NEW_DOCUMENT_SUCCESS","SEND_TRANSACTION_FROM_NEW_DOCUMENT_FAILURE","SEND_TRANSACTION_FROM_NEW_CERTIFICATE_REQUEST","SEND_TRANSACTION_FROM_NEW_CERTIFICATE_SUCCESS","SEND_TRANSACTION_FROM_NEW_CERTIFICATE_FAILURE","FETCH_WORKSPACE_PERMISSIONS_REQUEST","FETCH_WORKSPACE_PERMISSIONS_SUCCESS","FETCH_WORKSPACE_PERMISSIONS_FAILURE","FETCH_WORKSPACE_WORKFLOWS_REQUEST","FETCH_WORKSPACE_WORKFLOWS_SUCCESS","FETCH_WORKSPACE_WORKFLOWS_FAILURE","UPDATE_WORKSPACE_GROUP_AFTER_FETCHING","UPDATE_WORKSPACE_MEMBERS_GROUP","DELETE_WORKSPACE_GROUP_AFTER_REMOVING","UPDATE_NON_EMPTY_WORKSPACE_ONLY_OWNER","includes","notifications","snackbar","twoFactorConstants","ENQUEUE_SNACKBAR","key","notification","CLOSE_SNACKBAR","dismissAll","dismissed","REMOVE_SNACKBAR","twoFactorConfigConstants","modalMode","requestData","twoFactorActive","twoFactorInitError","twoFactorInitStatus","twoFactorInitTimestamp","twoFactorMethod","twoFactorReSendStatus","twoFactorSendStatus","twoFactorToken","changeTwoFactorActiveTypeRequestStatus","confirmTwoFactorTypeChangeRequestError","confirmTwoFactorTypeChangeRequestStatus","deleteTwoFactorTypeRequestError","deleteTwoFactorTypeRequestStatus","getTwoFactorConfigRequestError","getTwoFactorConfigRequestStatus","initTwoFactorMethod","initTwoFactorTypeChangeRequestError","initTwoFactorTypeChangeRequestStatus","initTwoFactorTypeConfig","twoFactorActiveMethod","twoFactorConfig","workspaceInvitedUsers","fetchWorkspaceUsersStatus","inviteUsersToWorkspaceStatus","searchWorkspaceUsersStatus","fetchWorkspaceInvitedUsersStatus","deleteUserFromWorkspaceStatus","deleteUserInvitationFromWorkspaceStatus","workspaceUserStore","certificateCreatorConstants","FETCH_WORKSPACE_USERS_REQUEST","FETCH_WORKSPACE_USERS_SUCCESS","queryPage","FETCH_WORKSPACE_USERS_FAILURE","FETCH_WORKSPACE_INVITED_USERS_REQUEST","FETCH_WORKSPACE_INVITED_USERS_SUCCESS","FETCH_WORKSPACE_INVITED_USERS_FAILURE","FETCH_WORKSPACE_USERS_SEARCH_REQUEST","FETCH_WORKSPACE_USERS_SEARCH_SUCCESS","FETCH_WORKSPACE_USERS_SEARCH_FAILURE","INVITE_USER_TO_WORKSPACE_REQUEST","INVITE_USER_TO_WORKSPACE_SUCCESS","INVITE_USER_TO_WORKSPACE_FAILURE","DELETE_USER_FROM_WORKSPACE_REQUEST","DELETE_USER_FROM_WORKSPACE_SUCCESS","DELETE_USER_FROM_WORKSPACE_FAILURE","DELETE_USER_INVITATION_FROM_WORKSPACE_REQUEST","DELETE_USER_INVITATION_FROM_WORKSPACE_SUCCESS","DELETE_USER_INVITATION_FROM_WORKSPACE_FAILURE","CLEAR_WORKSPACE_USERS_STORE","CertificateSteps","SelectTemplateType","SelectQuantityType","MapSingleFields","TemplatePreview","ImportMultipleData","MapMultipleData","UploadAdditionalDocuments","ChooseLocation","InvitePeople","ProgressScreen","CreatingCertificatesProgressScreen","CertificateQuantityType","cookieHelper","setCookie","expDate","setTime","getTime","cookie","toUTCString","getCookie","parts","pop","shift","removeCookie","customLanguageDetector","async","init","services","detectorOptions","i18nextOptions","this","supportedLngs","failbackLng","detect","lang","foundLang","cookieLang","browserLang","window","navigator","substr","cacheUserLanguage","i18n","use","initReactI18next","resources","en","translation","pl","fallbackLng","debug","process","interpolation","escapeValue","cleanCode","react","wait","bindI18n","bindStore","nsMode","RegexFormulas","folderName","base64","uuidV4","isMail","test","switchLanguageInBrowser","locale","changeLanguage","sortGroupsAllOwnersFirst","first","second","dataLength","others","similarity","firstBigrams","Map","bigram","substring","count","has","get","set","intersectionSize","splitArrayIntoTwo","list","listCopy","middleIndex","ceil","generateUUID","d2","performance","c","r","random","floor","toString","toBase64","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","onerror","CertificateHelper","parseImportedData","rawImportedCSV","importedHeaders","importedBody","mappedHeadersWithFields","row","resultRow","lastNotEmptyHeader","header","nextHeader","trim","headersWithNoArrayValues","isArray","createCertificateAttributeForTransactionPost","_ref$documentName","documentName","txnAttributes","signatureLevel","viewers","admins","ownersGroupId","editors","ordered","currentStep","stepsHistory","templateListStatus","templateList","templateListTokensStatus","templateListTokens","selectedTemplate","templatePreviewImageStatus","templatePreviewImage","currentLocation","certificateQuantityType","templateDetailsStatus","templateDetails","rawImportedData","draftImportedData","selectedDraftImportedData","mappedFields","draftSingleData","sentForGeneratingList","sentForGeneratingListStatus","generatedCertFileList","createdCertificates","multipleHolders","certificateCreatorStore","documentUsersManagerConstants","DocumentMemberRole","DocumentInvitationMemberRole","DocumentMemberStatus","DocumentUserAction","SET_CREATOR_STEP","SET_CREATOR_STEP_BACK","SET_SELECTED_TEMPLATE_ID","SET_CERTIFICATE_QUANTITY_TYPE","SET_RAW_IMPORTED_DATA","_CertificateHelper$pa","fields","mostSimilarArr","apply","maxIndex","UPDATE_DRAFT_IMPORTED_DATA","SET_DRAFT_FROM_IMPORTED_DATA","_CertificateHelper$pa2","draftData","res","ADD_NEW_ROW_TO_DRAFT_IMPORTED_DATA","newRow","UPDATE_SELECTED_DRAFT_IMPORTED_DATA","DELETED_SELECTED_DRAFT_IMPORTED_DATA","SET_MAPPED_FIELDS","FETCH_TEMPLATE_LIST_REQUEST","FETCH_TEMPLATE_LIST_SUCCESS","FETCH_TEMPLATE_LIST_FAILURE","FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_REQUEST","FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_SUCCESS","FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_FAILURE","FETCH_TEMPLATE_PREVIEW_REQUEST","FETCH_TEMPLATE_PREVIEW_SUCCESS","FETCH_TEMPLATE_PREVIEW_FAILURE","FETCH_TEMPLATE_FIELDS_REQUEST","FETCH_TEMPLATE_FIELDS_SUCCESS","order","holderMailMulti","placeholder","required","attached_files","format","UPDATE_DRAFT_SINGLE_FIELDS","FETCH_TEMPLATE_FIELDS_FAILURE","SET_CURRENT_LOCATION","CREATE_NEW_CERTIFICATE_FILE_REQUEST","CREATE_NEW_CERTIFICATE_FILE_SUCCESS","CREATE_NEW_CERTIFICATE_FILE_FAILURE","UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST","SET_MULTIPLE_HOLDERS","ADD_CREATED_CERTIFICATE","RESET_FOR_NEW_TEMPLATE","CLEAR","invitedDocumentMembers","invitedDocumentMembersStatus","documentMembersStatus","availableRoles","availableRolesStatus","documentSignersStatus","searchedEntities","searchedEntitiesStatus","externalContactEntities","externalGroupEntities","externalEntitiesStatus","availableDocumentActions","availableDocumentActionsStatus","draftTransferability","draftRoles","_draftRoles","HOLDER","SIGNER","VIEWER","EDITOR","AUDITOR","ADMIN","signersChanged","otherRecipientsChanged","documentUsersManagerStore","FETCH_DOCUMENT_MEMBERS_REQUEST","FETCH_DOCUMENT_MEMBERS_SUCCESS","FETCH_DOCUMENT_MEMBERS_FAILURE","FETCH_AVAILABLE_ROLES_REQUEST","FETCH_AVAILABLE_ROLES_SUCCESS","FETCH_AVAILABLE_ROLES_FAILURE","FETCH_DOCUMENT_SIGNERS_FAILURE","FETCH_DOCUMENT_INVITATIONS_REQUEST","FETCH_DOCUMENT_INVITATIONS_SUCCESS","FETCH_DOCUMENT_INVITATIONS_FAILURE","FETCH_ENTITIES_BY_NAME_REQUEST","FETCH_ENTITIES_BY_NAME_SUCCESS","FETCH_ENTITIES_BY_NAME_FAILURE","FETCH_DOCUMENT_ENTITIES_REQUEST","FETCH_DOCUMENT_ENTITIES_SUCCESS","FETCH_DOCUMENT_ENTITIES_FAILURE","FETCH_AVAILABLE_DOCUMENT_ACTIONS_REQUEST","FETCH_AVAILABLE_DOCUMENT_ACTIONS_SUCCESS","FETCH_AVAILABLE_DOCUMENT_ACTIONS_FAILURE","UPDATE_DRAFT_ROLES","UPDATE_DRAFT_TRANSFERABILITY","UPDATE_SIGNERS_CHANGED","UPDATE_OTHER_RECIPIENTS_CHANGED","rootReducer","combineReducers","authStore","documentCreationStore","documentDisplayStore","documentJoinStore","GET_DOCUMENT_INVITATION_REQUEST","GET_DOCUMENT_INVITATION_SUCCESS","GET_DOCUMENT_INVITATION_FAILURE","ACCEPT_DOCUMENT_INVITATION_REQUEST","ACCEPT_DOCUMENT_INVITATION_SUCCESS","ACCEPT_DOCUMENT_INVITATION_FAILURE","CLEAR_DOCUMENT_INVITATION_STORE","snackbarStore","twoFactor","TWO_FACTOR_INIT","mode","is2faError","TWO_FACTOR_REQUEST","TWO_FACTOR_SUCCESS","TWO_FACTOR_ERROR","twoFactorError","TWO_FACTOR_RESEND_REQUEST","TWO_FACTOR_RESEND_SUCCESS","TWO_FACTOR_RESEND_ERROR","TWO_FACTOR_CLOSE","TWO_FACTOR_INIT_SESSION_REQUEST","TWO_FACTOR_INIT_SESSION_SUCCESS","TWO_FACTOR_INIT_SESSION_ERROR","_action$response$data","_action$response$data2","_action$response$data3","GET_TWO_FACTOR_CONFIG_REQUEST","GET_TWO_FACTOR_CONFIG_SUCCESS","GET_TWO_FACTOR_CONFIG_ERROR","CHANGE_TWO_FACTOR_ACTIVE_TYPE_REQUEST","CHANGE_TWO_FACTOR_ACTIVE_TYPE_SUCCESS","CHANGE_TWO_FACTOR_ACTIVE_TYPE_ERROR","changeTwoFactorActiveTypeRequestError","DELETE_TWO_FACTOR_TYPE_REQUEST","DELETE_TWO_FACTOR_TYPE_SUCCESS","DELETE_TWO_FACTOR_TYPE_ERROR","INIT_TWO_FACTOR_TYPE_CHANGE_REQUEST","INIT_TWO_FACTOR_TYPE_CHANGE_SUCCESS","INIT_TWO_FACTOR_TYPE_CHANGE_ERROR","CONFIRM_TWO_FACTOR_TYPE_CHANGE_REQUEST","CONFIRM_TWO_FACTOR_TYPE_CHANGE_SUCCESS","CONFIRM_TWO_FACTOR_TYPE_CHANGE_ERROR","CLEAR_CONFIRM_TWO_FACTOR_TYPE_STATUS","workspaceGroupsStore","FETCH_WORKSPACE_GROUPS_REQUEST","FETCH_WORKSPACE_GROUPS_SUCCESS","force","FETCH_WORKSPACE_GROUPS_FAILURE","FETCH_WORKSPACE_GROUPS_SEARCH_REQUEST","FETCH_WORKSPACE_GROUPS_SEARCH_SUCCESS","FETCH_WORKSPACE_GROUPS_SEARCH_FAILURE","CREATE_NEW_WORKSPACE_GROUP_REQUEST","createWorkspaceGroupStatus","CREATE_NEW_WORKSPACE_GROUP_SUCCESS","CREATE_NEW_WORKSPACE_GROUP_FAILURE","DELETE_WORKSPACE_GROUP_REQUEST","DELETE_WORKSPACE_GROUP_SUCCESS","DELETE_WORKSPACE_GROUP_FAILURE","UPDATE_WORKSPACE_GROUP_REQUEST","UPDATE_WORKSPACE_GROUP_SUCCESS","UPDATE_WORKSPACE_GROUP_FAILURE","ADD_MEMBER_TO_WORKSPACE_GROUP_REQUEST","ADD_MEMBER_TO_WORKSPACE_GROUP_SUCCESS","ADD_MEMBER_TO_WORKSPACE_GROUP_FAILURE","DELETE_MEMBER_FROM_WORKSPACE_GROUP_REQUEST","DELETE_MEMBER_FROM_WORKSPACE_GROUP_SUCCESS","DELETE_MEMBER_FROM_WORKSPACE_GROUP_FAILURE","FETCH_WORKSPACE_GROUP_REQUEST","FETCH_WORKSPACE_GROUP_SUCCESS","FETCH_WORKSPACE_GROUP_FAILURE","FETCH_WORKSPACE_GROUP_MEMBERS_REQUEST","FETCH_WORKSPACE_GROUP_MEMBERS_SUCCESS","FETCH_WORKSPACE_GROUP_MEMBERS_FAILURE","SET_ACTIVE_GROUP","CLEAR_WORKSPACE_GROUPS_STATE","composeEnhancers","createLogger","compose","middleware","thunkMiddleware","store","createStore","applyMiddleware","websocketInstance","WebSocketHelper","_this","_classCallCheck","sockJs","connected","subQueue","subscriptionTree","SockJS","onopen","console","warn","processQueue","onmessage","parsePush","onclose","_createClass","_this2","sub","subscribe","subData","module","onMessage","onSubscribe","subId","pushData","parseMessage","jsonData","parse","processPush","topic","confirmSubscriptions","propagateMessage","unsubscribe","_this3","subFound","subsIds","subscribed","subscriptionPending","subKey","_this$parseTopic","parseTopic","topicParts","_topicParts$splice","uuid","forceId","subExist","prototype","hasOwnProperty","call","send","_this$subscriptionTre","_this$subscriptionTre2","_this$subscriptionTre3","subscriptionAlive","targetModule","targetPath","availableModules","foundSub","availablePaths","queueIndex","queueItem","isAlive","subAlive","clearSubscriptionCallBack","useStyles","makeStyles","createStyles","smallRoot","cardContent","addedListItem","addedListItemContent","flex","addedListItemAdditionalContent","addedListItemAction","removeButton","avatarAndItemRoot","authorBox","inputLoader","pointerEvents","disabledListBox","groupHeader","arrayMoveImmutable","array","fromIndex","toIndex","newArray","startIndex","endIndex","_array$splice","arrayMoveMutable","_dragIcon","dragIcon","Handle","classes","className","Drag","DragHandle","sortableHandle","SortableItem","sortableElement","allowItemsSorting","ListItem","propTypes","PropTypes","node","bool","isRequired","string","SortableContainer","sortableContainer","List","renderOptionDescription","documentInvitationMode","inputValue","filterOptionsFunctions","items","_ref2$allowDuplicated","allowDuplicatedForDiffIds","AutocompleteOption","currentIdentityId","additionalText","AvatarAndTextItem","mainImageSrc","Typography","opened","RoleSelection","_availableRoles$find","classNameProp","handleRoleChange","Button","clsx","event","keepMounted","defaultProps","AddAndRemoveUsersListItem","onDeleteClick","authorAction","disableInviting","onRoleUpdate","mobileScreen","useMediaQuery","_user$id","isAuthor","invitedRole","hideRemove","component","Tooltip","title","Fab","RemoveIcon","AutocompleteInput","params","TextField","CircularProgress","AddAndRemoveUsers","_workspace$currentIde","_workspace$currentIde2","_workspace$currentIde3","isSmall","availableItems","noResultsText","_ref$hideNoResults","hideNoResults","_ref$hideInput","hideInput","_ref$disabled","_ref$loading","_ref$isPending","isPending","_ref$clearInput","clearInput","_ref$allowDuplicatedF","onAddClick","onAddNewEmailClick","onInputChange","_ref$disableInviting","_ref$sortByGroup","sortByGroup","_ref$isOrderSignifica","onItemsOrderChange","setFocused","_useState3","_useState4","setValue","_useState5","_useState6","setInputValue","_useState7","_useState8","openGroupAllDialog","setOpenGroupAllDialog","_useState9","_useState10","groupAllDialogValue","setGroupAllDialogValue","useSelector","extendedAutocompleteOptions","object","firstLetter","toUpperCase","localeCompare","autocompleteOptions","o","o1","o2","hasAddedItems","createFilterOptions","Box","Autocomplete","renderOption","filterOptions","filtered","freeSolo","getOptionLabel","getOptionSelected","renderGroup","ListSubheader","groupBy","String","fullWidth","blurOnSelect","clearText","noOptionsText","renderInput","onChange","newValue","newRole","onFocus","onBlur","newInputValue","Card","CardContent","align","onSortEnd","oldIndex","newIndex","sorted","useDragHandle","lockAxis","ConfirmDialog","subtitle","applyButtonText","cancelButtonText","actionAccept","actionCancel","largeSize","mediumSize","smallSize","miniSize","errorColor","warningColor","infoColor","successColor","pink","deepPurple","indigo","blue","lightBlue","cyan","teal","lightGreen","lime","yellow","amber","deepOrange","getColorFromText","charCodes","char","charCodeAt","parseInt","getInitials","splitText","charAt","UserAvatar","customColor","extraAvatars","coefficientColor","other","_objectWithoutProperties","_excluded","defaultColor","initials","colorByChild","renderAvatar","_clsx","Avatar","_labels","spacingRoot","clickElement","fullWidthRoot","iconWrapper","labels","textOverflow","settingsIcon","UserAvatarAndTextItem","classesProp","isButton","additionalTextArray","mainImageAlt","badgeChildren","badgeImageAlt","badgeImageSrc","onClickButtonProps","showSettingsIcon","Component","displayDescription","displayLabels","renderComponent","AvatarWithBadge","src","alt","badgeAlt","badgeSrc","dangerouslySetInnerHTML","__html","SettingsIcon","extraAvatar","SPACINGS","small","medium","UserAvatarGroup","React","forwardRef","ref","childrenProp","_ref$max","_ref$spacing","clampedMax","Children","toArray","isValidElement","cloneElement","DropzoneVariant","DropzoneStep","getAcceptableFiles","getMaxSize","AvatarUpload","handleUpdate","isLoading","editor","cropperOpen","img","zoom","croppedImg","picture","setPicture","setEditorRef","ed","gridGap","AvatarEditor","image","rotate","scale","Slider","aria-label","min","step","getImage","toDataURL","DropZone","handleFileChange","uploadStepTitle","UserAvatarWithBadge","badgeSize","badgeTooltip","badgeColor","badgeCustomColor","Badge","badgeContent","rootOpen","headerRoot","headerRootButton","CardCollapseItem","openOnStart","setOpen","CardHeader","ArrowTopIcon","ArrowDownIcon","Collapse","in","timeout","unmountOnExit","EVENT_TYPES","modal","errorButton","CertificationCreationModal","subRef","useRef","successHandler","log","detail","errorHandler","useEffect","current","fromEvent","next","_subRef$current","smallScreen","Modal","sx","mt","inputContainer","inputFocus","inputFilled","CodeInput","codeLength","onValueChange","onAcceptValue","defaultValue","codeValue","setCodeValue","isPasting","setIsPasting","inputs","inputRefs","clearCode","useImperativeHandle","onPaste","str","clipboardData","getData","valueToSetFromClipboard","Number","isNaN","splitClipboardData","renderSingleInput","isAutofocus","inputRef","onInput","inputRefCurrent","inputRefToFocus","focus","inputRefNext","inputRefPrev","target","onKeyUp","keyCode","onKeyDown","preventDefault","inputProps","maxLength","newRef","createRef","notClickable","headerIcon","CollapseItem","alwaysOpen","ButtonBase","disableRipple","primaryRootVariant","successRootVariant","errorRootVariant","informationRootVariant","actionsWrapper","applyButton","subtitleWrapper","smallTitle","subtitleColor","onExit","isDisabled","useTheme","Dialog","disableBackdropClick","disableEscapeKeyDown","DialogTitle","DialogContent","DialogActions","_$mediumSize","_$largeSize","_$mediumSize2","_$largeSize2","_$mediumSize3","_$largeSize3","_$mediumSize4","_$largeSize4","topVertical","bottomVertical","leftHorizontal","rightHorizontal","ContentContainer","_ref$size","_ref$horizontal","_ref$vertical","otherProps","_mediumMargin","_largeMargin","smallMargin","mediumMargin","largeMargin","ContentHeader","gutterBottom","SNACKBAR_VARIANT","API_MODULE","parseError","hasErrorData","errors","statusText","authService","getUserProfile","axios","catch","getApiKeys","getPermissions","createNewApiKey","post","withPermissions","withTwoFactor","deleteApiKey","publicKey","delete","patchUserName","updatedUserName","patch","patchPassword","oldPassword","newPassword","patchEmail","postEmail","confirmationCode","headers","patchPhoneNumber","updatedPhone","postPhoneNumber","validatePermissions","localStorage","removeItem","patchUserLanguage","deleteUserAccount","snackbarActions","ErrorCode","enqueueSnackbar","dispatch","closeSnackbar","removeSnackbar","deleteTokenDefaultCallback","href","authActions","checkTokenStatus","confirmEmail","confirmPhoneNumber","deleteAccount","errorCallback","delPath","translator","translate","_error$data","NON_EMPTY_WORKSPACE_ONLY_OWNER","workspaceIds","callback","UE","pageHit","apiKey","user_id","userId","patchLanguage","updateEmail","updatePassword","passwords","updatePhoneNumber","updateUsername","instance","baseURL","withCredentials","interceptors","request","identityValue","newConfig","onTwoFactorCallback","twoFactorCode","twoFactorSigned","closeTwoFactor","prepare2FAPromise","_error$response$data","_error$response","errorCode","is2FAError","isForbidden","isMaintenance","mntPath","isTwoFactorError","errorResponse","getState","moduleName","identityService","getWorkspaceStructure","fetchWorkspaceInfo","updateWorkspaceInfo","newData","put","updateWorkspaceDetails","newWorkspaceDetails","getWorkspaceGroupUsers","queryObj","memberIdentifier","getWorkspaceInvitedUsers","searchWorkspaceGroupUsers","getUserStructure","createWorkspace","newWorkspaceData","inviteUserToWorkspace","usersData","emails","deleteUserFromWorkspace","deleteUserInvitationFromWorkspace","sendTransaction","txn","incompleteTransaction","fetchWorkspaceGroups","searchWorkspaceGroups","createWorkspaceGroup","newWorkspaceGroupData","deleteWorkspaceGroup","updateWorkspaceGroup","addMembersToWorkspaceGroup","identityIds","deleteMembersFromWorkspaceGroup","fetchWorkspaceGroup","fetchWorkspaceGroupMembers","fetchWorkspaceEntities","entityName","entityTypes","switchContactEmail","getWorkspacePermissions","contactsService","getEntities","entityIds","contactsActions","initializeContacts","addMissingToQueue","entitiesIds","_response$data","_response$data$identi","_response$data2","_response$data2$group","parsedContacts","parsedGroups","identities","contactInfo","PhoneConfirmationStepType","WorkspaceSelectedType","WorkspaceDataChangedType","DocumentNoDriveType","SubscriptionChangeType","MUTATION_NAMES","documentDSLServices","checkAvailableMutations","service","checkCreatedFileIds","documentIds","createCertificate","_ref3","templateId","certificateList","certificatesData","deleteRoleByMail","fetchTemplateDetails","fetchTemplateList","fetchTemplateListThumbnailToken","templateThumbnailId","fetchWorkspaceWorkflows","invalidateCertificate","_ref9","mutationName","documentMutations","reason","invalidateTemporarilyCertificate","_ref10","inviteRoleByMail","rejectCertificate","_ref8","sendCertificateDocuments","_ref4","setCertificateAccessLevel","_ref13","documentsAccess","publicAccess","isPublic","setTransferabilityCertificate","_ref12","transferable","signCertificate","_ref6","transferOwnership","updateCertificateRoles","_ref5","_ref5$admins","_ref5$editors","_ref5$viewers","updateCertificateSigner","_ref7","_ref7$signers","inviteMultipleByRole","validateCertificate","_ref11","generateHolderInvitationToken","billingService","fetchSubscriptions","BillingService","setTrialSubscription","product","fetchCustomer","setCustomer","billingActions","setTimeout","resetSetTrialSubscription","CONFLICT","resetBilling","userengage","templateTypeToDocumentType","DOCUMENT_TO_BE_SIGNED","ESign","DURABLE_MEDIA","Drive","CERTIFICATES","Certificate","userComActions","subTrialStarted","productType","subChangesNeeded","submitRequest","userJoinedWorkspace","activeSubscriptions","active_subscriptions","docAdded","number","docSigned","docRejected","docSignersUpdated","docRecipientsUpdated","docDownloaded","docCardDownloaded","dataMemberInvited","dataChanged","typeSelected","setCurrentIdentity","identityActions","workspaceData","switchWorkspace","invitedUsers","addedAt","clearWorkspaceUsersStore","Name","updateMembersWorkspaceGroup","sendTransactionFromNewDocument","IDENTITY_NOT_READY","_identityData","_identityData$identit","_identityData2","identityData","availableIdentities","structureItem","_availableIdentities","_identityData3","_identityData3$worksp","_identityData4","_identityData4$worksp","sendTransactionFromNewCertificate","useForm","validate","initialValues","setValues","setErrors","isSubmitting","setIsSubmitting","handleChange","persist","handleSubmit","username","confirmPassword","workspaceNewName","CreateWorkspace","_errors$workspaceName","noIdentity","structureError","_ref$showLogout","showLogout","useHistory","setPage","useDispatch","_useForm","showForm","FullScreenDialog","withLogo","SmallContentWithScrollbar","startContent","endContent","Gap","hasForm","formProps","noValidate","autoComplete","onSubmit","helperText","EmptyBanner","buttonLabel","reload","enteringScreen","leavingScreen","rootWithScrollableContent","scrollableContent","overflowY","smallRootSize","mediumRootSize","largeRootSize","bigRootSize","noPaddingTop","noPaddingBottom","additionalProps","Variant","contentWrapper","whiteSpace","titleWrapper","standard","titleActive","WaitingForBlockchain","_lottieAnimation","_ref$variant","BlockchainProcessing","_ref$isPlural","isPlural","mediumScreen","titleNr","setTitleNr","lottieAnimation","cubeLottie","DocumentsGenerating","documentLottie","titleTranslationsList","descriptionTranslation","clearTimeout","Lottie","loop","autoplay","animationData","CreatorDocument","openedStep","creatorDocumentStepper","renderStep","listStyle","firstLi","lastLi","menuItem","dropBackground","useStylesCollapsed","iconChevron","BreadcrumbCollapsed","MoreIcon","CustomizedBreadcrumbs","expandText","itemsAfterCollapse","itemsBeforeCollapse","expanded","setExpanded","handleClickExpand","focusable","listRef","querySelector","handleCollapse","ellipsisRef","allItems","ReactChildren","isFirst","isLast","FolderIcon","_useDrop","useDrop","accept","drop","collect","monitor","isOver","shallow","_useDrop2","useDragDropManager","getMonitor","menuRef","minX","maxX","minY","maxY","menuCoords","setMenuCoords","between","subscribeToOffsetChange","getClientOffset","_menuRef$current$getB","getBoundingClientRect","itemsInPopover","disableGutters","LinkDnd","isMenuLink","acc","insertSeparators","CustomLink","Link","RouterLink","_notLastChild","_container","_header","_itemRow","_itemTileRow","certIcon","dataTableWrapper","tilesContainer","headerWrapper","headerCell","headerEndElement","circularLoader","headerTitle","itemRowContent","hasItemBeforeRowContent","hasItemAfterRowContent","sortable","sortArrow","sortActive","itemRow","itemRowSelected","draggingRow","itemTileRow","clickableRow","cell","iconCell","iconCellAuto","statusCell","timeAgoCell","mobileCell","noItems","DataTable","cols","withTableHeader","iconWidth","headerTextWidthLikeIcon","headerAction","titleRef","titleVariant","mediumTitleVariant","disableTitle","onChangeSort","rightSpace","titleTextRef","setTitleTextRef","titleTextWidth","element","ExtendedGrid","spacingX","alignItemsXxs","col","_col$colProps","dataKey","headerClasses","colProps","addSpaceToFirstColumn","onSortChange","SortDownIcon","SortUpIcon","ContactHelper","getEntityData","entityId","_store$getState","matchedUserIdentity","isFromOrganisation","isGroup","matchedGroupIdentity","contactData","identityName","groupData","checkIfIsInProgress","addContactsToQueue","checkIfUserBelongsToDocument","allUserEntities","userEntities","getAllUserEntities","belongs","roleKeys","allRolesUsers","userEntity","BadgeCell","person","DocumentStatusCell","isOnlyToPreview","getStatusComponent","Tag","componentProps","classNameProperties","statusName","getContent","smallFab","EnterButtonCell","stopPropagation","getButton","IconCell","onRowCheckboxClick","isHover","isSelected","showCheckbox","Checkbox","TextCell","DateTimeFormats","FormatDate","_ref$date","date","_ref$dateFormat","dateFormat","timeFormat","finalDate","TimeAgoCell","timeRangeAgo","live","timeago","TimeAgo","datetime","DataTableRow","onDblClick","isHovered","onMouseEnter","onRowClick","rowClasses","onLongPress","tile","defaultIcon","onDrag","onDrop","isDrag","longPressProps","useLongPress","_useDrag","useDrag","end","dropResult","getDropResult","isDragging","handlerId","getHandlerId","_useDrag2","drag","preview","canDrop","getEmptyImage","captureDraggingState","isRightActionButton","onDoubleClick","_row$documentType","_row$documentType2","CertificateFileIcon","DriveIcon","ESignIcon","getIcon","_row$roles","_row$roles2","NoDataItems","buttonText","disableHeader","headerRef","selectable","selectedRows","paginationType","totalItems","isLoadingMore","onLoadMore","tileRows","hasMoreItems","dragMode","hoverable","loaderRef","setHover","handleObserver","entities","isIntersecting","observer","IntersectionObserver","rootMargin","threshold","observe","getRow","isTile","DataTableHeader","onMouseLeave","LinearProgress","noItemsLabel","noItemsButtonText","noItemsOnClick","NoItems","renderNoItems","closeButton","DialogTitleWithButton","titleAlign","wrapXxs","xxs","HeaderButton","documentCoreService","getUploadToken","createNewDocument","filesIds","viewersIds","auditsIds","editorsIds","adminsIds","getDocument","downloadDocument","getDownloadToken","renameDocument","signDocument","rejectDocument","getHistoryDocument","performedAction","rangeDate","dateFrom","dateTo","getDocumentMembers","getDocumentInvitations","getDocumentMembersByRole","getDocumentRoleTypes","getSignatures","filesModuleService","uploadFile","fileSize","formData","FormData","append","downloadFile","responseType","documentCreationActions","clearDocumentCreatorStore","addFileListDropzone","deleteFileListDropzone","setProgressUpload","setTemplateDocument","setSignatureDocument","signature","SET_SIGNATURE_DOCUMENT","_dropzone","hiddenStep","visibility","dropzoneWrapper","dropzone","dropzoneActive","dropzoneReject","dropzoneAccept","dropzoneDisabled","iconBox","textSmall","smallIconBox","smallIcon","alert","StepUpload","_DropzoneVariant$AVAT","_DropzoneVariant$AVAT2","handleDrop","avatarUploadMode","isHavePermissions","acceptableFiles","MAX_SIZE","Alert","severity","Dropzone","maxSize","isDragActive","multiple","_DropzoneVariant$AVAT3","getRootProps","getInputProps","isDragAccept","isDragReject","FileColorIcon","_uploadItem","_uploadItemContent","_iconBox","_icon","_actionButtons","uploadList","uploadItems","uploadItem","uploadItemContent","uploadItemTitle","uploadName","checkIcon","valueText","valueTextSuccess","barBox","progressEnd","addItem","iconAdd","deleteDesktopButton","deleteButton","actionButtons","actionButton","textAdd","LinearProgressWithLabel","_ref$value","isProgressEnd","mr","round","StepList","changeStep","_useSelector","uploadedFileList","noWrap","DeleteIcon","SuccessIcon","PlusIcon","uploadStepEndContent","useSnackbar","useLocation","apiService","dslService","documentService","activeStep","setStep","documentTemplateType","pathname","replaceAll","onUploadProgress","progressEvent","loaded","total","percent","addFile","acceptedFiles","rejectedFiles","openSnackbar","splitName","newFile","_notLastChil","_img","inner","imageContainer","imageLoader","bottomContent","disabledImage","onLoad","didMount","setDidMount","Img","useSuspense","loader","breakpointKeys","GRID_SIZES","getOffset","div","zeroMinWidth","space","styles","spacingItem","themeSpacing","generateGutter","accumulator","globalStyles","breakpoint","flexBasis","flexGrow","alignContent","assign","generateGrid","alignContentXxs","alignContentXs","alignContentSm","alignContentMd","alignContentLg","alignContentXl","alignItemsXs","alignItemsSm","alignItemsMd","alignItemsLg","alignItemsXl","justifyContentXxs","justifyContentXs","justifyContentSm","justifyContentMd","justifyContentLg","justifyContentXl","directionXxs","directionXs","directionSm","directionMd","directionLg","directionXl","wrapXs","wrapSm","wrapMd","wrapLg","wrapXl","textAlignXxs","textAlignXs","textAlignSm","textAlignMd","textAlignLg","textAlignXl","offsetXxs","offsetXs","offsetSm","offsetMd","offsetLg","offsetXl","orderXxs","orderXs","orderSm","orderMd","orderLg","orderXl","spacingY","_ref$component","FullPageLoader","Backdrop","headerWithLeftSpace","headerWithLogo","onBack","leftSpace","TopBarContainer","Logo","backButton","BackIcon","greyBackground","titleLeftSpace","backgroundVariant","disableEnforceFocus","fullScreen","_drawerRoot","drawerRoot","only","drawerPaper","FullScreenDialogContentWrapper","menuLinks","drawerToggle","close","toggle","Drawer","anchor","ModalProps","onBackdropClick","MenuSidebar","onToggle","OpenIcon","_medium","_large","_card","_cardHalf","clear","mini","large","card","cardHalf","_extendedVariant","_iconWrapper","roundVariant","extendedVariant","additionalContent","textWrapper","shorter","arrowExpanded","chevron","chevronDirection","desktopDevice","renderButton","invisible","prevFolderController","prevDocController","documentsService","createFolder","fetchAnyDocuments","orderBy","filterKey","filterValue","rolesId","notSigned","notRejected","pathQuery","fetchDocuments","fetchDocumentsByQuery","fetchFolderByQuery","fetchFolderTree","depth","findDocument","abort","controller","AbortController","signal","findFolder","getDocumentsInFolder","getFolderPath","moveDocument","sourceFolderId","targetFolderId","removeFolder","renameFolder","documentsActions","Permission","getFolderTree","_response$data2$colle","f","isRoot","INFO","_ref$limit","_ref$offset","fetchAdvancedSearchedDocuments","searchQuery","fetchAdvancedSearchedFolders","FETCH_FOLDERS_ADVANCED_SEARCH_REQUEST","_response$data4","FETCH_FOLDERS_ADVANCED_SEARCH_FAILURE","getCurrentFolderPath","newFolderName","websocketAddFolder","folderData","websocketUpdateFolder","websocketDeleteFolder","websocketMoveDocument","websocketCreateDocument","websocketUpdateDocument","websocketDeleteDocument","moveDocuments","getDocumentsBySearchQuery","_response$data3","getFoldersBySearchQuery","_response$data5","clearDocumentsStore","clearFolderPath","clearSearched","clearAdvancedSearch","updateDraftAdvancedSearch","updateAdvancedSearch","submitAdvancedSearch","resetDraftAdvancedSearch","setSelectedFolders","FileColsConfig","nameSortable","statusSortable","updatedAtSortable","FolderColsConfig","DOCUMENT_SERVICE_USER_GET_FILE_UPLOAD","DOCUMENT_SERVICE_USER_POST_DOCUMENTS","DOCUMENT_SERVICE_USER_SIGN_ORDER","IdentitySelector","permission","hasPermission","_state$identityStore$","_state$identityStore$2","_state$identityStore","_state$identityStore$6","_state$identityStore$7","_state$identityStore$3","_state$identityStore$4","_state$identityStore$5","_state$identityStore2","_state$identityStore3","DocumentsSelector","_state$documentsStore","isTrash","category","DOCUMENTS","arr","FOLDERS","mapFolderItemsToSearchedItem","listItemRoot","lastCell","dataTableRow","HeaderSearchItem","tileRowsOnMobile","listItemContainer","_smallScreenInputRoot","_not$smallScreenPo","_popperDisablePortal","_smallScreenListBox","searchEdited","smallScreenRoot","smallScreenGroupHeader","appBar","smallScreenInputRoot","smallScreenInput","smallScreenPopper","popperDisablePortal","smallScreenPopperDisablePortal","smallScreenPaper","listBox","smallScreenListBox","smallScreenNoOptionsAndLoading","smallScreenEndAdornment","smallScreenClearIndicator","hasClearIcon","smallScreenHasClearIcon","titleText","fieldWrapper","fieldTitle","fieldContent","textField","fieldInputArrowDown","fieldInputContent","borderStyle","AdvancedSearchModalTitle","AdvancedSearchModalActions","AdvancedSearchModalField","_ref$withInputWrapper","withInputWrapper","NameField","nameValue","Field","menuFooter","esignIcon","driveIcon","certificateIcon","folderIcon","DocumentTypeDropdown","initialDocumentTypes","editingDocumentTypes","setEditingDocumentTypes","allSelected","DSL","DRIVE","ESIGN","someSelected","docType","ListItemIcon","indeterminate","EsignIcon","CertificateIcon","DocumentTypeField","draftDocumentTypes","isEmpty","menuItemAll","itemsWrapper","DocumentStatusColorVariant","_DocumentStatusColorV","DocumentStatusChip","DocumentStatusDropdown","initialStatusTypes","editingStatusTypes","setEditingStatusTypes","docsStatus","suffix","DocumentStatusField","draftStatusTypes","nrSuffix","orderedStatuses","statuses","dateInput","textShadow","DateField","_fieldName","_title","_useTranslation","_React$useState","_React$useState2","setError","openState","setOpenState","dateValue","setDateValue","fieldName","onDateChange","newDate","newType","LocalizationProvider","dateAdapter","MomentAdapter","DateRangePicker","inputFormat","mask","onOpen","onError","startReason","endReason","start","showToolbar","allowSameDateSelection","disableCloseOnSelect","onAccept","startProps","endProps","Grid","wrap","startAdornment","InputAdornment","CalendarIcon","getDocumentSigners","replaceDocumentSigners","replaceDocumentRoles","membersIds","documentManagementActions","getAvailableRoles","documentInvitationsService","_response$data$data","_response$data2$data","_response$data3$data","getEntitiesByName","getDocumentExternalWorkspaceEntities","_response$data4$ident","_response$data5$group","getAvailableDocumentUserActions","DocumentService","mutationCollection","transitionName","updateDraftRoles","draftHolders","draftSigners","draftOtherRoles","s","auditors","isToken","updateSignersChanged","changed","updateRecipientsChanged","invitationMemberRoleToDocumentMemberRole","ADMINS","SIGNERS","EDITORS","AUDITORS","VIEWERS","documentMemberRoleToInvitationRole","getUserDetails","documentMember","_name","_status","isInvited","isInvitationToBeSend","isExternal","creatorId","selectInvitedDocumentMembersWithDetails","invitedMember","mail","selectSignersInOrder","member","idsOrder","selectDocumentHolder","selectOtherRoles","hasDocumentActionPermission","DocumentUserManagerSelector","selectSignersInOrderWithDetails","sortedSigners","invitedSignersWithDetails","selectHoldersWithDetails","holders","invitedHoldersWithDetails","selectOtherRolesWithDetails","otherRoles","invitedOtherRolesWithDetails","selectSearchedEntitiesWithDetails","currentWorkspace","entity","selectDocumentAction","canRejectDocCert","RejectDocument","canEditFileDoc","EditFile","canAddSignerDocCert","AddSigner","canAddSignerByInvitationDocCert","AddSignerByInvitation","canAddUserDocCert","AddUser","canModifyRoleDocCert","ModifyRole","canModifySignersDocCert","ModifySigners","canSignDocCert","Sign","canRejectSignatureDoc","RejectSignature","canLinkDoc","LinkDocument","canUnlinkDoc","UnlinkDocument","canViewDoc","View","canRenameDoc","RenameDocument","canUpdateTagsDoc","UpdateTags","canSetTransferabilityCert","SetTransferability","canInvalidateTemporarilyCert","InvalidateTemporarilyDocument","canValidateCert","ValidateDocument","canInvalidateCert","InvalidateDocument","canChangeHolderCert","ChangeHolder","selectCalculatedSignersCount","_state$documentUsersM","selectRecipientsUpdated","_documentInfo$additio","_state$documentUsersM2","additionalAttributes","rolesCountInSet","every","selectDraftSignersCount","selectDraftOtherRolesCount","searchInput","listCheckbox","avatarCheckboxWrapper","documentDisplaySelector","activeIdentity","getCurrentUserSignerFromMembers","_activeIdentity$ident","_state$documentDispla4","_state$documentDispla5","_state$documentDispla12","_state$documentDispla13","expiresOn","_state$documentDispla","authorId","HighlightString","highlightString","matches","match","insideWords","findAllOccurrences","part","highlight","useAddNewItemStyles","inputSkeleton","autocompleteOption","useUserItemStyles","useUserItemTitleStyles","author","you","sentChip","pendingChip","useUserItemDescriptionStyles","useUserItemRolesStyles","menuWrapper","UserItemTitle","userData","_ref$showTitleAdditio","showTitleAdditionalTexts","isYou","isSentInvitation","isNewInvitation","isCurrentHolder","Chip","UserItemDescription","isNameSameAsMail","RecipientsDropdown","initialRecipients","selectedRecipients","setSelectedRecipients","searchTerm","setSearchTerm","handleMouseLeave","selectedIds","documentUserManagerActions","SearchIcon","_el$_name","_el$email","recipient","handleMouseEnter","chip","RecipientsField","draftRecipients","firstRecipient","recipientsCounter","tilesContainerGrayed","popover","changeLocationButton","locationExplorer","locationExplorerHeader","locationExplorerContent","locationExplorerContentCategory","locationExplorerContentCategoryHeader","locationExplorerFooter","locationExplorerSubmitButton","locationExplorerHeaderText","locationExplorerItem","locationExplorerItemSelected","locationExplorerItemIcon","centerWrapper","inputButton","createNewFolderContent","form","useFolderStructure","refetch","_requestState$folderS","folderStructure","requestState","setRequestState","fetchStructure","useCallback","_asyncToGenerator","_regeneratorRuntime","_callee","_folderStructureRespo","folderStructureResponse","documentsInFolder","dataWithLeafs","_context","sent","hasChildrenInCurrentSet","parent","isLeaf","t0","stop","DirectoryExplorerCreateInput","validationSchema","yup","formik","useFormik","enableReinitialize","autocomplete","touched","CheckRounded","usePrevious","DirectoryExplorer","_folderStructureState","_folderStructureState2","initialFolderId","confirmText","_ref$hideCreateNew","hideCreateNew","parentId","locationState","setLocationState","selectedLocation","setSelectedLocation","selectedLocationDetails","setSelectedLocationDetails","showCreateNewFolder","setShowCreateNewFolder","createPending","setCreateFolderPending","prevState","shouldRefetch","_useFolderStructure","_useFolderStructure2","folderStructureState","currentFolder","ws","onFolderClick","isDoubleClick","foldersRowsData","noFoldersConfig","noDocumentsConfig","currentFolderName","setPending","onWebSocketMessage","Popover","ChevronLeft","Close","firstHeader","CreateNewFolderRounded","LocationField","draftLocation","AdvancedSearchModal","HeaderSearch","_ref$showOpenButton","showOpenButton","_ref$iconWidth","isSearchPage","setLoading","isSearchActive","setSearchActive","isAdvancedSettingsModalOpen","setIsAdvancedSettingsModalOpen","toggleSearchActive","searchValue","foldersColConfig","filesColConfig","searchedList","isOpenDropdown","isSearchEdited","toggleAdvanceSearchOpen","documentActions","onAutocompleteSelect","getRowParams","groupParams","onMouseDown","AdvancedIcon","renderAutocomplete","popper","clearOnBlur","disableClearable","disablePortal","loadingText","AppBar","_newButtonIcon","imageAppStore","imagePlay","userWrapper","appImageWrapper","workspaceItem","availableWorkspaces","accordionDetailsWrapper","accordionDetails","accordionTitle","currentWorkspaceText","newButton","newButtonIcon","logout","HeaderMenuMobile","createWorkspaceDialogOpen","setCreateWorkspaceDialogOpen","colorByInitials","avatarSize","userText","userDescription","isEn","openPage","expandIcon","UserSettingsIcon","Accordion","AccordionSummary","sizes","AccordionDetails","UsersIcon","Wallet","Help","LogoutIcon","menuLink","breadcrumbLink","LinkBehavior","clickable","notActive","fontStyle","iconSelected","iconVariant","informationModalOpen","ListChoiceButton","additionalLabel","hasModalInfo","onMoreInfoClick","disableFocusRipple","iconColor","radio","infoButtonRef","additionalButtonProps","InfoIcon","Radio","_mediumItemSize","_largeItemSize","mainItem","smallMainItem","mediumMainItem","largeMainItem","smallItemSize","mediumItemSize","largeItemSize","nestedItem","itemActive","itemIcon","itemNoClick","subItems","invertedColor","MenuNavigationList","checkIfChildrenRouteActive","subitems","_clsx3","onlyMobile","ListItemText","NavLink","activeClassName","subItem","subItemIndex","exact","BillingProductType","BillingProductStatus","setCurrentLocation","listItem","listItemActive","listItemWithSecondaryAction","listItemIcon","listItemText","listItemSecondaryAction","MobileBottomMenuList","actions","subheader","secondaryIcon","ListItemSecondaryAction","mobileTitle","buttons","alertButton","textDescription","optionItem","optionIcon","useSubscriptionModalStyles","confirmButton","certColor","esignColor","AddNewFolderModal","_vErrors$folderName","vErrors","checkSubscription","daysLeft","cancelAt","diff","showProductAlert","Trialing","Active","alertLevel","SubscriptionModal","esignProduct","EsignDrive","certProduct","Certificates","startTrialLoading","setStartTrialLoading","isCustomerCreating","selectedProduct","Trans","i18nKey","components","span","TrialFinished","Canceled","PurchaseAfterTrial","NewPurchase","SelectTemplateDropdown","_currentIdentity$work","addNewFolderDialogOpen","setAddNewFolderDialogOpen","subscriptionModalProduct","setSubscriptionModalProduct","_useSelector2","goToCreatePage","slugTemplate","CreateNewFolderOutlined","NoDocumentsBanner","headerVariant","showButton","bars","activeBar","easyBar","mediumBar","strongBar","noneStrengthText","easyStrengthText","mediumStrengthText","strongStrengthText","PasswordMeter","passwordRating","pass","score","letters","variations","digits","lower","upper","nonWords","variationCount","check","ratePassword","PasswordBar","rating","strengthKey","getLabelClassByRating","responsive","inside","loaderInner","QrImage","dimension","loaderSize","noImage","noImageUrl","Paper","square","responsiveElement","imgSrc","qrCode","qrDimensions","QRious","level","inputsContainer","inputNotchedOutline","inputAdornment","inputDisabled","ResponsiveDateRangePicker","smallDevice","asButton","onApply","placeholderFrom","placeholderEnd","buttonComponent","_React$useState3","_React$useState4","buttonRef","calendars","cancelText","okText","startText","endText","PopperProps","placement","toolbarTitle","toolbarPlaceholder","startInputProps","startError","startLabel","endInputProps","endError","endLabel","startValue","endValue","OutlinedInput","readOnly","startDate","endDate","autoWidth","SnackbarItem","SnackbarContent","ErrorIcon","WarningIcon","IconButton","AlertTitle","notClickableRoot","clickableRoot","automaticColor","automaticCoefficientColor","colorFromText","timeCounter","buttonSend","TimerButton","cooldown","buttonDisabled","awaitMessage","initTimestamp","baseTimestamp","setBaseTimestamp","timePassed","setTimePassed","intervalId","setInterval","clearInterval","getHumanTime","timeLeft","minutes","seconds","pad","n","handleClick","twoFactorService","initTwoFactorSession","authToken","Authorization","sendTwoFactor","twoFactorId","reSendTwoFactorCode","getUserTwoFactorConfig","changeActiveTwoFactorType","deleteTwoFactorType","initTwoFactorTypeChange","confirmTwoFactorTypeChange","twoFactorActions","openTwoFactor","getToken","tokenData","getItem","expiresAt","tokenHelper","getAnyToken","updateToken","setItem","TwoFactorForm","method","lastSendTimestamp","isSending","isReSending","hasErrors","onSend","onReSend","onClearErrors","authCode","setAuthCode","codeInputsRef","methodHasTimer","basicTranslations","desc","sendButton","havingTrouble","contactSupport","errorMessage","translations","hasNotArrived","retryTimer","retryButton","TwoFactorModal","setHasErrors","twoFactorCallbacks","shortToken","startNewTwoFactorSession","finalToken","onCloseTwoFactor","onTwoFactorResolution","axiosConfig","retryRequest","successCallback","onTwoFactor","showClose","optionWrapper","wordBreak","partHighlight","AutocompleteWithChip","_ref$defaultValues","defaultValues","selectedValues","setSelectedValues","_React$useState5","_React$useState6","pendingValues","setPendingValues","InputLabel","htmlFor","newValues","renderTags","onDelete","idx","documentDownloadActions","websocketDownloadDocument","downloadDocumentFile","createElement","appendChild","click","removeChild","download","responseURL","SidenavLinks","TimeIcon","SidenavMobileLinks","communicationsService","getUserNotificationChannelsSettings","updateNotificationChannel","getUserNotificationSystemMessages","_ref$read","setNotificationSystemMessageAsRead","clearAll","urlRequest","getUserNotificationSystemMessagesCounter","communicationsActions","NotificationTabType","getUnreadSystemMessages","_ref$replace","systemMessageResponse","hasMoreData","getUnreadSystemMessagesCounter","updateUnreadSystemMessagesCounter","counter","getReadSystemMessages","callbackOnSuccess","setAllNotificationSystemMessagesAsRead","clearCommunicationsStore","_tabRoot","tabsRoot","tabsScroller","tabRoot","disabledTab","selectedTab","ButtonTabs","tabs","miniScreen","Tabs","tab","Tab","_tabs","mainContent","listTop","fullList","listNotifications","noContent","clearButtonWrapper","clearButton","tabPanel","newNotification","animation","SystemMessageType","notificationTabs","UnreadIcon","Unread","ReadIcon","Read","textMultiline","pending","notRead","notificationContent","checkIconWrapper","HeaderNotificationsItem","_ref$timeRangeAgo","goToSystemMessageSubjectCallback","translationKey","messageContent","isSetAsRead","setIsSetAsRead","systemMessageSubjectToConfirm","setSystemMessageSubjectToConfirm","systemMessageSubjectToConfirmTitle","_item$workspace","User","Document","Workspace","FileIcon","UserIcon","WorkspaceIcon","CheckIcon","strong","CertificateActionsWebsocket","HeaderNotifications","_groupedUnreadSystemM","_groupedUnreadSystemM2","_groupedReadSystemMes","_groupedReadSystemMes2","isAnyUnreadSystemMessages","isAnyReadSystemMessages","showRingAnimation","setShowRingAnimation","activeTab","setActiveTab","hasMoreMessages","handleDrawerToggle","groupedUnreadSystemMessages","todaySystemMessages","isSame","earlierSystemMessages","groupedReadSystemMessages","fetchMoreMessages","onDrawerClose","HeaderNotificationsWebsocket","NotificationIcon","InfiniteScroll","scrollThreshold","hasMore","refreshFunction","scrollableTarget","searchField","actionsLeft","actionsRight","menu","HeaderHelp","mainAvatar","HeaderUserDrawer","AppHeader","isMainHeader","additionalLeftAction","additionalRightAction","titles","_titles$find","extractTitle","pathnameSplit","isVaultHeader","isDocumentHeader","isNotRootVault","isVaultAndNotRoot","showSearchEngine","HeaderUser","rootOnAnimation","itemMobile","itemTextMobile","moreMenu","moreMenuPaper","moreMenuItem","moreMenuItemIconWrapper","TransitionUp","AppMenuMobile","moreItems","menuIsAnimating","setMenuIsAnimating","onMenuAnimatingToggle","onStart","onEnd","isMoreOpen","handleMoreClose","itemClasses","renderItemIcon","BottomNavigation","showLabels","onlyDesktop","BottomNavigationAction","onEnter","onEntered","onExited","_addButton","toolbarH","menuWidth","topContent","logoText","logo","addButton","menuDesktop","menuButton","navLink","navItem","navItemActive","navItemText","navItemIcon","currentWorkspaceOpen","arrowsIcon","arrowIconOpen","currentWorkspaceTextOpen","workspacesWrapper","workspaceText","contentOpen","avatarService","getIdentityAvatar","kind","getUserAvatar","uploadUserAvatar","deleteUserAvatar","getWorkspaceAvatar","uploadWorkspaceAvatar","deleteWorkspaceAvatar","avatarActions","refreshAvatars","avatarPromises","all","updateUserAvatar","updatedAvatar","updateWorkspaceAvatar","SidebarWorkspaceSwitch","_currentIdentity$work2","showWorkspaceDropdown","setShowWorkspaceDropdown","closeDropdown","UnfoldLessOutlined","UnfoldMoreOutlined","OutsideClickHandler","onOutsideClick","getElementsByClassName","AppMenuSidebar","desktopScreen","displayed","Notifier","_useSnackbar","_ref$options","_ref$dismissed","myKey","_snackbarAnchorOrigin","headerVerticalPadding","appHeader","snackbarContainerRoot","snackbarAnchorOriginTopCenter","snackbarCollapseContainer","snackbarCollapseWrapper","snackbarWrappedRoot","authorizationLoader","filterBar","clearIcon","clearWrapper","borderTopColor","chipActive","dropdownIcon","chipIcon","FilterChip","_properties","isActive","properties","FileCopyOutlined","InfoOutlined","CalendarAddIcon","CalendarEditIcon","countText","firstEl","_advancedSearch$varia4","toDate","activeText","scrollContent","leftArrow","rightArrow","disabledArrow","ScrollableXaxis","elementRef","leftArrowDisabled","setLeftArrowDisabled","rightArrowDisabled","setRightArrowDisabled","updateArrows","scrollLeft","clientWidth","scrollWidth","handleHorizantalScroll","speed","distance","scrollAmount","slideTimer","abs","addEventListener","removeEventListener","AdvancedSearchFilterBar","clearRef","showClearButton","obj1","obj2","excludeKeys","_step","_iterator","_createForOfIteratorHelper","_loop","value1","value2","v","done","_ret","err","areAdvancedSearchObjectsDifferent","types","ClearOutlined","foldersTitle","documentsTitle","SearchPageWebsocket","_message$data","_message$data$result","resultCode","messagePart","SearchPage","setDragMode","selectedFilesRowName","setSelectedFilesRowName","selectedFilesRows","setSelectedFilesRows","searchLocation","folderIsRoot","setSortKey","_useState11","_useState12","setSortOrder","selectedDocumentTypes","hideDocuments","hideFolders","isLoadingMoreFiles","isLoadingFiles","allLoaded","_useState13","_useState14","setOffset","filteredDocuments","filterDocuments","goToDocument","onFileRowSelection","newRowsId","newRowsName","loadFilesRows","_prevState$advancedSe","searchName","includeRoot","UserComUrlChange","SubscriptionWatcher","urlState","URLSearchParams","BillingActions","App","downloadDocumentSubscriptionIds","authorized","setAuthorized","isCreateWorkspaceDialogOpen","setIsCreateWorkspaceDialogOpen","identityIsEmpty","identityAndWorkspaceLoaded","getDownloadFileSubscriptionId","downloadDocumentSubscribe","subscription","downloadToken","downloadDocumentUnsubscribe","handleDocumentDownload","workspaceIdUrl","identityFromLocalStorage","_currentIdentity$work3","SnackbarProvider","autoHideDuration","maxSnack","containerRoot","collapseContainer","collapseWrapper","wrappedRoot","optionsString","Router","DndProvider","backend","TouchBackend","enableMouseEvents","Switch","Route","DocumentActionsPage","TransferOwnershipPage","DocumentCreatorPage","JoinToDocumentPage","RecentPage","UserConfigurationPage","DrivePage","WorkspaceConfigurationPage","Redirect","documentDisplayActions","clearDocumentDisplayStore","clearFilesAndTokens","getDownloadTokens","startPage","tokenPromises","downloadFilePromises","setActiveFileIndex","genericErrorHelper","msg","documentInvitationActions","documentInvitiationConstants","documentInvitiationsService","_response$data4$data","updateSignersCount","UPDATE_SIGNERS_COUNT_REQUEST","_response$data5$data","UPDATE_SIGNERS_COUNT_SUCCESS","UPDATE_SIGNERS_COUNT_ERROR","getDocumentRoles","membersByRolePromises","allSettled","results","fulfilledPromises","rejectedPromises","roleName","documentRolesPromises","admin","auditor","viewer","REPLACE_DOCUMENT_ROLES_REQUEST","filteredResults","_result$value","_result$value$data","_result$value$data$da","txnPromises","promise","REPLACE_DOCUMENT_ROLES_ERROR","REPLACE_DOCUMENT_ROLES_SUCCESS","REPLACE_DOCUMENT_ROLES_PARTIAL_SUCCESS","inviteRolesByMail","users","invitationPromises","documentDSLService","_promise$value2","_promise$value2$data","_promise$value2$data$","_promise$value","_promise$value$data","_promise$value$data$d","_promise$value$data$d2","emailsSend","rejectedPromise","_JSON$parse","deleteRolesByMail","deletionPromises","getWorkspaceEntities","downloadTransferOwnershipPDF","DOWNLOAD_TRANSFER_OWNERSHIP_PDF_REQUEST","DOWNLOAD_TRANSFER_OWNERSHIP_PDF_ERROR","clearStore","blockchainExplorerService","getDocumentCard","invalidSignersCountCallback","reloadDocumentHistory","totalRowCount","filename","exec","fileName","msSaveOrOpenBlob","blob","Blob","remove","revokeObjectURL","websocketUpdate","clearDocumentHistory","clearDocumentManagementStore","goBack","lastMainPage","isUserInSpecifiedGroup","rolesArray","_rolesArray$filter","documentManagementSelector","_admins$filter","_editors$filter","_activeIdentity$ident2","ActionsTabs","showIcon","a11yProps","_","_imageContainer","_watermark","_watermarkInner","_emptyImageBoxInner","_emptyImageIcon","layers","layersInner","layersMenu","layersMenuItem","layersMenuItemIcon","layersMenuCloseButton","activeLayersFabButton","documentWrapper","imageInner","watermark","watermarkInner","imageEmptyContainer","imageMaximized","imageLoaderWrapper","loaderFile","emptyFilesInfoBox","emptyImageBoxContainer","emptyImageBox","emptyImageBoxInner","emptyImageIcon","firstLoader","loaderMenu","DocumentContent","filesSrc","activeFileIndexRedux","setActiveFileIndexDocument","smallContent","changeFileIndex","checkShowScroll","disabledMenu","setDisabledMenu","watermarkText","layersButtonSize","largeContent","documentMaximized","setDocumentMaximized","anchorLayersEl","setAnchorLayersEl","tooltipPlacement","handleCloseLayers","checkActiveFileOnScroll","mainNavLinks","fromTop","getElementById","scrollTop","section","querySelectorAll","sectionFirst","sectionLast","offsetTop","offsetHeight","_filesSrc$","layersOpen","fetchMoreData","filesEmpty","filesIsNotEmpty","isArrowButtonsDisabled","LayersIcon","FullScreenExitIcon","FullScreenIcon","pullDownToRefresh","pullDownToRefreshThreshold","_files$src$indexFile","EmptyImageIcon","_contentWrapper","drawer","flexShrink","drawerPaperNotScrollable","contentTop","contentBottom","childrenWrapper","RightSidebarSkeleton","signersCount","otherRolesCount","Skeleton","RightSidebar","signBanner","fullHeightContent","contentScrollable","setContentScrollable","documentInfo","isRecipientsUpdated","onCollapseToggle","templateType","SignBanner","_ref$user","userWorkspaceName","afterText","rejectionButton","onSignClick","signText","_ref$canSign","canSign","isRejectLoading","displayUser","displayAction","TabHeader","_titleInput","topBar","topBarContainer","topBarBackButton","topBarOptions","topBarOptionButton","topBarTitleWrapper","titleInput","disabledTitleInput","infoWithIcon","errorIcon","TopBar","disableChangeTitle","mainOptions","rightContent","optionsAnchorEl","setOptionsAnchorEl","openDialog","setOpenDialog","canMakeError","setCanMakeError","handleToggle","hasAnyOptions","REGEX_PATTERN","ChevronLeftIcon","pattern","targetValue","currentValue","MoreHorizontalIcon","TopBarOptionsMenu","menuRoot","MenuListProps","certificateManagementActions","collecton","flat","setCertificateTransferability","_response$data$data$c","_response$data$data2","_response$data$data2$","rowsMax","ReloadDocument","SignDocument","calculatedSignersCount","hideDots","timeText","entriesDividerText","primaryColor","HistoryItem","metadata","dateGroup","dateActive","lastDateInGroup","_getItemProps","oldName","newHolder","oldHolder","newName","entryType","public","matchedIdentity","defaultTitle","variables","VisibilityIcon","EditIcon","EmailIcon","UserDeleteIcon","UserAddIcon","DownloadIcon","FileRemoveIcon","FileEditIcon","FileAddIcon","GlobeIcon","SortIcon","context","ImportExportIcon","StopwatchIcon","DefaultIcon","getItemProps","itemByText","unix","yesterday","getDateGroup","topElement","createdItemsList","createdItemCell","createdItem","createdItemIcon","entriesList","entriesListSpacingBottom","hideShowFullWrapper","hideFullWrapper","showFullWrapper","historyChipDisabled","historyChipDeleteButton","textButton","History","fullHeight","onCollapseClick","shortListMaxItems","useParams","historyType","setHistoryType","setRangeDate","missingContacts","setMissingContacts","historyTypes","getHistoryTypesTranslations","normal","documentHistoryStatusSuccess","dateFilterIsChange","scrollElement","scrollHeight","clientHeight","fetchMoreHistoryData","fetchFilterHistoryData","clearFilterSetting","isFilters","contactsNotFound","historyObject","_historyObject","_historyObject2","optionText","getTagProps","deleteIcon","deleteItem","additionalUserText","authorText","youText","additionalInfo","weightMedium","itemStep","RecipientItemStep","getItemColor","RecipientsItem","isSigningOrderAvailable","_getColorAndTextStatu","getColorAndTextStatus","tagColor","tagText","_getColorAndTextRole","getColorAndTextRole","roleColor","roleText","SingersCounter","invitedNr","signedNr","obj","is","tabHeader","advancedSettings","iconSuccess","iconDefault","entriesListTitle","helpIcon","sortInvitedSigners","itemsToSort","sortingArray","prepareDocumentMembers","Recipients","_document$additionalA","_document$additionalA2","enableInviting","openInvitationsManagementDialog","getEntityStatus","setGetEntityStatus","parsedMembers","setParsedMembers","allMembersAndInvitations","setAllMembersAndInvitations","preparedMembers","invitationsRender","itemId","_a$userData","_b$userData","_a$userData2","_b$userData2","_allMembersAndInvitat","p","_allMembersAndInvitat2","restOfMembers","hasSigners","hasRestOfMembers","publicFile","PublicRounded","PublicOff","ImportExportRounded","MobileDataOff","documentStatusText","messageWithWarning","messageWithError","submitButton","textArea","documentStatus","successButton","warningButton","bold","InfoSection","endButton","LabelValueReadonly","MODAL_TYPES","Info","_useTransactions","listener","allowedTransactions","setState","refresh","pipe","debounceTime","_subRef$current2","useTransactions","settingsAnchorEl","setSettingsAnchorEl","modalState","setModalState","setReason","handleCloseModal","handleSettingsClose","isDownloadingDocumentCard","handleChangeReason","getDocumentTabInfo","SignedDocumentIcon","ShieldIcon","renderModal","submit","maxRows","containerStyle","CheckCircleOutline","HourglassProgress","PenOutlined","AVAILABLE_MUTATIONS","mutation","hasAnyAction","aria-labelledby","aria-describedby","OpenInNewIcon","FilesWithShieldIcon","SigningBannerAfterTextModal","_ref$open","_ref$description","_notification","_notificationHeader","notificationHeader","alignItem","notificationContentAvatar","notificationContentMessage","DocumentStatusNotification","rejection","hasUserSignedDocument","readyForPreview","isFinished","isRejected","isTemporaryInvalidated","isInvalidated","isExpired","isValid","showForSigning","visible","notificationsStyles","notificationContentStyles","notificationHeaderStyles","DocumentStatusFrame","MAP_WS_ACTION_TO_MESSAGE","TRANSFERABILITY_CHANGE","VALIDATE","INVALIDATE_TEMPORARY","INVALIDATE","SIGN","REJECT","CHANGE_HOLDER","MEMBERS_CHANGE","_content","mobileMain","mobileBottomContent","documentCardButton","useUsersManagerSectionStyle","sectionWrapper","leftContentWrapper","leftContentChildren","rightContentWrapper","Section","leftContent","_ref$hideDivider","hideDivider","classesOverride","buttonWrapper","ItemsWrapper","SectionButton","UserItemRoles","onRoleChange","UserItem","_ref$highlightString","_ref$canRemove","canRemove","_ref$canChangeRole","canChangeRole","_ref$showRoles","showRoles","_ref$hoverEnabled","hoverEnabled","onRemove","avatarSrc","getTitle","verticalAlign","InfoTooltip","HelpOutlineIcon","UsersManagerContext","createContext","UsersManagerContextProvider","setDraftHolders","setDraftSigners","setDraftOtherRoles","isDraftPublicAccess","setIsPublicAccess","isDraftTransferable","setIsDraftTransferable","isDraftIsOrderSignificant","setIsDraftIsOrderSignificant","Provider","updateDraftHolders","updateDraftSigners","singers","updateDraftOtherRoles","updateDraftPublicAccess","isPublicAccess","updateDraftTransferable","updateDraftIsOrderSignificant","UserItemSkeleton","AddNewItem","onInputBlur","_ref$addedItems","addedItems","_ref$canInviteByMail","canInviteByMail","skeletonAnimation","hasGroup","checkMailNotRepeatedInAdded","mailNotRepeatedInContactBook","mailNotRepeatedInAdded","UsersManagerSigners","userItemClasses","hasSigningOrderPermission","hasSomeSigning","useContext","showSigningOrderConfirmModal","setShowSigningOrderConfirmModal","focusInput","setFocusInput","showAddNewItem","setShowAddNewItem","isAutocompleteLoading","isSortable","autocompleteItems","isSearchable","signer","skeleton","FormControlLabel","labelPlacement","control","onSignerRemove","TransferOwnershipWebsocket","_ref$callback","func","centerHolder","UsersManagerHolder","isGenerateTokenLoading","setIsGenerateTokenLoading","hasHolders","onHolderRemove","DocumentDslService","documentInvitiationActions","holder","canChangeRoleOwner","UsersManagerOtherRoles","dR","onOtherRoleRemove","documentInvitationsSelector","ConfirmPublicAccessModal","UsersManagerAdvancedSettings","showConfirmationModal","setShowConfirmationModal","_documentInfo$additio2","certificateCreatorActions","setCreatorStep","setCreatorStepBack","setSelectedTemplate","setQuantityType","setRawImportedData","importedData","setDraftFromImportedData","updateDraftImportedData","addNewRowToDraftImportedData","updateSelectedDraftImportedData","deleteSelectedDraftImportedData","updateDraftSingleFields","setMappedFields","keyValuePair","thumbnailPreviewId","fetchTemplatePreview","previewId","createCertificateTransaction","workflowName","documentAttributes","CREATE_NEW_CERTIFICATE_REQUEST","CREATE_NEW_CERTIFICATE_SUCCESS","CREATE_NEW_CERTIFICATE_FAILURE","fileIds","UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST_FAILURE","UPDATE_CERTIFICATE_ROLES_REQUEST","UPDATE_CERTIFICATE_ROLES_SUCCESS","UPDATE_CERTIFICATE_ROLES_FAILURE","updateCertificateSigners","UPDATE_CERTIFICATE_SIGNERS_REQUEST","UPDATE_CERTIFICATE_SIGNERS_SUCCESS","UPDATE_CERTIFICATE_SIGNERS_FAILURE","setMultipleHolders","INVITE_MULTIPLE_HOLDERS_REQUEST","txnCollection","INVITE_MULTIPLE_HOLDERS_SUCCESS","INVITE_MULTIPLE_HOLDERS_FAILURE","resetForNewTemplate","addCreatedCertificates","documentInvitationsTsServices","deleteInvitationByMail","documentInvitationsTsActions","parsedInvitations","successPromises","rejectedResults","_promise$data","_promise$data$data","failedResults","inviteMultipleByRoleDSL","updateDocumentRoles","_result$value2","_result$value2$data","_result$value2$data$d","deleteInvitationPromises","allValues","MultipleInvitationWarningBar","containsAll","arr1","arr2","arr2Item","sameMembers","DocumentUsersManager","_ref$showHolders","showHolders","_useSelector2$documen","apiModule","isButtonDisabled","showSignersSection","submitSigners","signersIds","draftSignersIds","hasSameOrder","hasSameSigners","updateSigners","inviteNewRolesByMail","deleteUnusedInvitations","submitOtherRoles","updateOtherRoles","adminsChanged","rolesChanged","auditorsChanged","editorsChanged","viewersChanged","draftIds","submitHolders","holdersIds","draftHoldersIds","isSameHolders","submitAdvancedSettings","dId","newUsersToInvite","draftUsers","invited","draftInvited","removedInvited","useIsDocumentOwner","_roles$holder","constructUrl","baseUrl","useLinkedInSharingLinks","explorerCertificateLink","createPostLink","issueDate","isoString","year","getFullYear","month","getMonth","extractFromISO","expirationDate","timestamp","extractFromUnix","addToProfileLink","organizationId","issueYear","issueMonth","expirationYear","expirationMonth","certId","certUrl","LinkedInShareButton","isDocumentOwner","_useLinkedInSharingLi","LinkedInIcon","rel","ShareIcon","DocumentActionModalUrlModals","_activeIdentity$works","modalFromUrl","miniDevice","actualizationBannerOpen","setActualizationBannerOpen","editedSubpage","setEditedSubpage","fullSidebarHeight","setFullSidebarHeight","selectedActionTab","setSelectedActionTab","tryCount","setTryCount","_useState15","_useState16","_useState17","_useState18","activeFileIndexDocument","_useState19","_useState20","invitationsManagementDialogOpen","setInvitationsManagementDialogOpen","_useState21","_useState22","isSigningBannerAfterTextModal","setSigningBannerAfterTextModal","downloadFilesImage","_useSelector3","getDocumentAdminsStatus","documentHistoryStatus","_useSelector4","downloadDocumentsPending","_useSelector6","isDocumentAdmin","isDocumentEditor","isDocumentFinished","isRejectInProgress","downloadTokenStatusSuccess","documentStatusError","documentStatusSuccess","disableForInvitedSigners","availableTabs","previewTab","PreviewIcon","basicTabs","RecipientsIcon","HistoryIcon","_documentInfo$files","_documentInfo$files$f","fileIndexNext","activeFilesCount","pagesSum","filePages","checkLoadedThisDocument","addEmptyFileImage","scrollToDocument","downloadDocumentCard","fetchAvailableDocumentActions","_message$data2","_message$data2$result","handleDocumentUpdate","preparedSigners","handleBack","handleFullSidebarToggle","createdDocumentFolderId","_getOrderSigningRestr","userToSign","canSignDueToOrder","getOrderSigningRestrictions","canDownload","canRequestDownload","canInvite","canRenameDocument","getTabContent","NavigationTabs","getSigningBannerAfterText","SigningBanner","ArchiveIcon","LinkedinIcon","File","MultipleFiles","containerWrapper","previewWrapper","previewImage","objectFit","Container","MappingLayout","Preview","renderTabs","buttonUploadActive","buttonUpload","buttonUploadError","MapField","onFieldChange","datePickerOpen","setDatePickerOpen","setFileName","setDate","isImportedFile","base64Placeholder","handleClickAway","FormControl","mb","ClickAwayListener","onClickAway","DesktopDatePicker","minDate","add","Publish","FormHelperText","fieldsWrapper","_Object$keys2","setFieldValue","getValidationSchema","_Object$keys","validationFields","_templateDetails$fiel","typeError","validation","templateFields","correlationId","onCreateClick","renderTemplateDetails","fieldIndex","_templateDetails$fiel2","filesWrapper","actionButtonsWrapper","actionButtonRight","fileInput","tableWrapper","th","cellSelect","ActionButtons","Papa","skipEmptyLines","newline","complete","hasDraftData","isMoment","csv","unparse","downloadLink","Download","Delete","acceptableFileTypes","dropzoneErrors","_dropzoneErrors","DropzoneButton","onDropSuccess","_callee2","_context2","t1","abrupt","_x2","_x","onDropRejected","_useDropzone","useDropzone","maxFiles","Upload","ImportDataTable","_useFormikContext","useFormikContext","importedCertificateCount","onTableInputChange","onCheckboxClick","handleCloseFileMenu","TableContainer","Table","TableHead","TableRow","TableCell","fieldKey","TableBody","FieldArray","render","fIndex","_touched$fields","_touched$fields$index","_errors$fields","_errors$fields$index","_touched$fields2","_touched$fields2$inde","_errors$fields2","_errors$fields2$index","scope","handleOpenFileMenu","AttachFile","fileIndex","onFileRemove","DeleteForever","colSpan","Formik","emptyRows","hasAllEmptyFields","isValidSync","when","otherwise","additionalFiles","Form","bottomButton","selectLabel","Select","displayEmpty","onContinueClick","loaderWrapper","pageWrapper","itemWrapper","thumbnailWrapper","thumbnail","objectPosition","nameWrapper","mobileList","buttonActive","itemPreview","CertificateOption","onOptionClick","onPreviewClick","setThumbnail","certificateTemplatesStatus","creatorClasses","useCreatorStyles","templateName","selectCurrentLocation","ChooseLocationCertificateButton","onOpenClick","Folder","centered","documentDslService","roleCollection","CreateFilesForCertProgressScreen","StepsResolver","_CertificateCreatorSt","CertificateCreatorLongPooling","CertificateCreatorWebsocket","wsCreate","CertificateCreator","_generatedCertFileLis","_generatedCertFileLis2","getStepTitle","DocumentCreatorWebsocket","isEsign","param","_message$data$result2","_message$data$result3","setOpenedStep","signatureDocument","createDocument","filesId","stepNumber","documentJoinService","getDocumentInvitation","invitationId","acceptDocumentInvitation","documentJoinActions","clearDocumentJoinStore","_svg","differentMailWrapper","differentMailCol","differentMailColContent","differentMailContent","differentMailTitle","differentMailButton","selectFormControl","avatarAndTextItemRoot","imageContainerFullScreen","imageContainerClickable","imageNotLoadedContainer","_message$data$result4","DiffMailInfo","invitedEmail","JoinToDocument","useRouteMatch","pinCode","shortTermSubmitButton","selectedIdentityId","setSelectedIdentityId","submitting","setSubmitting","isPreviewFull","setIsPreviewFull","disabledSubmit","getInvitationSuccess","getInvitationError","imageDownloadToken","inviterName","isSigner","isHolder","hasDiffMails","isAllLoaded","parsedStructureList","identityStructure","displayContent","selectTitle","togglePreview","imageContent","inModal","unloader","NotDownloadedImageIcon","NoImageIcon","JoinToDocumentWebsocket","MenuProps","_structure","pin","BreadcrumbsAndSettings","parsedPath","names","parsePath","orientation","settingsButton","renderMenuActions","ItemsActions","OutsideClickHandlerClickExcpetion","MobileBreadcrumbs","lastIds","lastNames","SpeedDial","AddIcon","datePickerRoot","noDocumentsBanner","filesTableTitleRef","setIsLoadingMore","hasAnyDocument","RecentPageWebsocket","ContentHeading","Hidden","smDown","_searchButton","searchButton","HeaderAndButton","onButtonClick","_listItemRoot","invitedChip","deletedChip","listItemDeleted","userDataWrapper","actionButtonIcon","mobileActionButtonWrapper","membersCell","GroupItem","_workspaceGroups$grou","groupIndex","colorOnHover","AvatarGroup","ActionsIcon","searchAdornmentIcon","Search","handleSetSearchTerm","inputLabel","valueInput","canDelete","isDeleted","userMail","AvatarEdit","updateBasicData","AvatarDelete","UsernameEdit","_errors$username","inputPassword","passwordMeter","PasswordEdit","_errors$oldPassword","_errors$newPassword","_errors$confirmPasswo","oldPasswordVisible","setOldPasswordVisible","newPasswordVisible","setNewPasswordVisible","confirmPasswordVisible","setConfirmPasswordVisible","VisibilityOff","Visibility","adornmentContainer","validIcon","invalidIcon","PhoneEdit","setUpdatedPhone","phoneCountry","setPhoneCountry","initialCountry","setInitialCountry","isPhoneValid","setIsPhoneValid","formSubmitted","setFormSubmitted","phoneNumber","dialCode","PhoneInput","searchPlaceholder","searchNotFound","country","countryCode","parsePhoneNumber","handleInputChange","enableSearch","disableSearchIcon","specialLabel","copyNumbersOnly","iso2","classList","validatePhoneNumber","EmailEdit","_errors$email","AccountDeleteError","ownerIdentities","rootContainer","BasicItem","_ref$alignItems","_ref$oneRowMobile","oneRowMobile","ConfirmModal","handleConfirmDialogClose","onResend","handleSetCode","listHeader","listItemHeader","fullScreenDialog","LanguageEdit","setLang","getLanguageIconAndName","languageItems","toLocaleUpperCase","Basic","deleteAvatarDialogOpen","setDeleteAvatarDialogOpen","downloadDialogOpen","setDownloadDialogOpen","deleteAccountDialogOpen","setDeleteAccountDialogOpen","deleteAccountErrorDialogOpen","setDeleteAccountErrorDialogOpen","requiredConfirmationMethod","setRequiredConfirmationMethod","structureIdentity","firstRender","deleteAvatarDialogToggle","downloadDialogToggle","deleteAccountDialogToggle","deleteAccountErrorDialogToggle","handleDataUpdate","showEditPage","renderDownloadButton","DownloadData","extractHeader","renderEditPage","_list","selectWrapper","Item","onExport","disabledEmail","_item$data","otherAvatarProps","ItemWrapper","ExportIcon","Identity","twoFactorConfigActions","clearConfirmTwoFactorStatus","_$additionalActionB","_additionalActionButt","nameBox","mediumText","inActive","additionalActionButtonsWrapper","additionalActionButton","additionalActionButtonIcon","MethodItem","actionButtonText","additionalActions","hasAdditionalActions","GoogleAuthenticatorDone","nextHandle","listItemNumber","qrImage","GoogleAuthenticatorStep1","secret","secretDialogOpen","setSecretDialogOpen","steps","GoogleAuthenticatorStep2","typoInTypo","Security","checkIfTypeConfigured","changeTwoFactorType","editPages","googleAuthenticator1","authUrl","googleAuthenticator2","googleAuthenticatorDone","googleAuthenticatorActions","GoogleAuthenticatorIcon","SmsIcon","renderSummaryPage","_withSubtitle","updating","withSubtitle","NotificationItem","channelUpdatingStatus","isUpdatePending","FormGroup","newProperties","sms","systemMessage","Notifications","channelsRequestStatus","disabledChannels","filteredChannels","channel","accountNotifications","documentNotifications","certificateNotifications","renderHeader","headings","heading","defaultExpanded","_apiKeysHeaderWrapper","apiKeysHeaderWrapper","dialogTitleWrapper","keysTable","tableContent","overflowWrap","tableRow","tableHead","closeIconColor","permissionInput","keyName","of","AddKeyDialog","mappedItems","PermissionsDialog","ApiKeysTableHeader","ApiKeysTableRow","created","onShowPermissionsClick","onRemoveClick","clipboard","writeText","justify","KeyIcon","ApiKeysTable","permissionToPreview","setPermissionToPreview","apiKeyToRemove","setApiKeyToRemove","br","ApiKeys","isAddKeyOpen","setIsAddKeyOpen","toggleIsAddKeyOpen","prevOpen","Links","BasicIcon","SecurityIcon","NotificationsIcon","_Links$find","AddNewFolder","_errors$folderName","DeleteFolder","RenameFolder","dragItem","dragItemCell","ItemsTemplate","selectedDocuments","FieldDragLayer","_useDragLayer","useDragLayer","itemType","getItemType","currentOffset","itemStyle","WebkitTransform","getItemStyles","breadcrumbs","secondHeader","inFolderHeader","DrivePageWebsocket","_ref$folderDeleteCall","folderDeleteCallback","prevFolderId","folderPathIds","arrayOf","EditedSubpage","alertWrapper","SubscriptionAlert","subscriptionAlertStorage","hasStorageSubscription","setHasStorageSubscription","isTrialEsign","isTrialCertificate","_checkSubscription","esignDaysLeft","esignAlertLevel","esignShowAlert","_checkSubscription2","certDaysLeft","certAlertLevel","certShowAlert","_storage$workspaceId","_storage$workspaceId2","storage","esignLevelStorage","certLevelStorage","lvls","getSeverenity","subscriptionType","PurchaseDuringTrial","Renewal","outlinedPrimary","_match$params","_match$params2","_foldersList$find","foldersList","deleteFolderDialogOpen","setDeleteFolderDialogOpen","renameFolderDialogOpen","setRenameFolderDialogOpen","dialogsToggle","addNewFolderDialog","deleteDialog","renameDialog","selectedFilesRowsRef","sourceFolder","urlFolderId","onCut","_selectedFilesRowsRef","loadFolderPath","isLoadingFolders","isAnyFileSelected","isAnyFolderSelected","isAnythingSelected","onlyFilesSelected","onlyFoldersSelected","isAnyCut","mainActions","folderActions","filesActions","CutIcon","PasteIcon","commonActions","ClearIcon","allAvailableActions","getAllActions","newSelection","prevSelection","addFolderAction","AddFolderIcon","canShowFolderActions","showNoDocumentsBanner","targetFolder","onLoadMoreFiles","workspaceGroupsActions","workspaceGroupData","clearWorkspaceGroupsStore","setActiveGroup","AddNewGroup","DeleteGroup","ManageGroupUsers","availableMembers","confirmDialogOpen","setConfirmDialogOpen","activeIdentityId","setActiveIdentityId","addMembersToGroupStatus","deleteMembersFromGroupStatus","fetchGroupStructureStatusPending","confirmDialogToggle","memberActions","RenameGroup","_divider","_image","generateCardDivider","_after","contentContainer","contentLoader","cardHeader","cardActions","cardActionsLeft","oldPrice","cardTitle","actionButtonCancel","actionButtonCode","imageBank","searchWrapper","Groups","deleteDialogOpen","setDeleteDialogOpen","workspaceGroupsHasNextPage","workspaceGroupsPageIndex","workspaceGroupsRequestStatus","getDeleteWorkspaceGroupStatus","workspaceMembers","deleteDialogToggle","manage","rename","delayDebounceFn","hasVerticalScrollbar","membersAmount","canEditName","canManage","ManageIcon","EditWorkspace","_errors$workspaceNewN","update","DeleteAvatar","checkboxRoot","checkboxFormControlRoot","checkboxFormControlLabel","checkedCheckboxFormControlLabel","Settings","titleDialog","setTitleDialog","updateWorkspaceData","prevInfoStatus","prevDetailsStatus","prevUpdateInfoStatus","prevPutWorkspaceAvatarRequestStatus","copyWorkspaceId","_currentIdentity$work4","_currentIdentity$work5","_currentIdentity$work6","_currentIdentity$work7","CopyIcon","EditName","editWorkspaceData","addNextButton","innerContent","InviteUsers","clearSignersInput","setClearSignersInput","invitedSigners","setInvitedSigners","emailsArray","emailRole","handleNewEmailAdd","roleId","handleRoleDelete","buttonBox","DeleteUser","handleDeleteUser","repeatCheckDocumentsUser","setFilesColConfig","getDocTypePath","docTypePath","Users","_activeIdentity$group","_editPages","workspaceID","showDeletedUsers","setShowDeletedUsers","setRepeatCheckDocumentsUser","groupAllId","actionUser","setActionUser","isUserInvitation","filteredWorkspaceUsers","filteredInvitedUsers","onDeleteUserConfirm","checkDeleteUserHasDocuments","toggleShowDeletedUsers","showInfo","Invite","textCol","buttonsWrapper","wideButton","infoCol","notStarted","trial","trialCompleted","completed","innerBar","barWrapper","barText","UsageBar","SubscriptionProduct","onContactSales","TrialExtension","Upgrade","Cancellation","Subscription","full","ViewBoxes","_Links$map$flat$find","StepperContext","TRANSFER_OWNERSHIP_STEPS","StepperContextProvider","setCurrentStep","validateSchema","Email","TransferByEmailStep","setEmail","handleValidation","TRANSFER_OPTIONS","TransferOwnershipStep","setOption","setIsLoading","StepResolver","_Steps","TransferOwnership","ReactDOM","ThemeProvider","CssBaseline"],"mappings":"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","file":"static/js/main.1fd8a784.chunk.js","sourcesContent":["import { darken, lighten } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nconst getColor = function getColor(color) {\n return palette.type === 'light' ? lighten(color, 0.75) : darken(color, 0.5);\n};\n\nexport default {\n bar: {\n transition: 'transform 0.15s linear',\n },\n bar1Determinate: {\n transition: 'transform 0.15s linear',\n },\n bar1Buffer: {\n transition: 'transform 0.15s linear',\n },\n bar2Buffer: {\n transition: 'transform 0.15s linear',\n },\n colorPrimary: {\n backgroundColor: getColor(palette.primary.main),\n },\n};\n","import { ActionWithPayload } from './redux.util';\n\nexport enum RequestStatus {\n IDLE = 'idle',\n SUCCESS = 'success',\n PENDING = 'pending',\n ERROR = 'Error',\n}\n\nexport interface ActionWithRequestStatus extends ActionWithPayload {\n requestNames?: string[];\n requestStatus: RequestStatus;\n}\n\nexport function createActionInProgress(\n type: T,\n payload: P,\n ...requestNames: string[]\n): ActionWithRequestStatus {\n return createAction(type, payload, [...requestNames], RequestStatus.PENDING);\n}\n\nexport function createActionSuccess(\n type: T,\n payload: P,\n ...requestNames: string[]\n): ActionWithRequestStatus {\n return createAction(type, payload, [...requestNames], RequestStatus.SUCCESS);\n}\n\nexport function createActionFailure(\n type: T,\n payload: P,\n ...requestNames: string[]\n): ActionWithRequestStatus {\n return createAction(type, payload, [...requestNames], RequestStatus.ERROR);\n}\n\nfunction createAction(\n type: T,\n payload: P,\n requestNames: string[],\n status: RequestStatus\n): ActionWithRequestStatus {\n return { type, payload, requestNames, requestStatus: status };\n}\n","enum authConstants {\n GET_USER_PROFILE_REQUEST = 'GET_USER_PROFILE_REQUEST',\n GET_USER_PROFILE_SUCCESS = 'GET_USER_PROFILE_SUCCESS',\n GET_USER_PROFILE_ERROR = 'GET_USER_PROFILE_ERROR',\n\n GET_PERMISSIONS_REQUEST = 'GET_PERMISSIONS_REQUEST',\n GET_PERMISSIONS_SUCCESS = 'GET_PERMISSIONS_SUCCESS',\n GET_PERMISSIONS_ERROR = 'GET_PERMISSIONS_ERROR',\n\n GET_API_KEYS_REQUEST = 'GET_API_KEYS_REQUEST',\n GET_API_KEYS_SUCCESS = 'GET_API_KEYS_SUCCESS',\n GET_API_KEYS_ERROR = 'GET_API_KEYS_ERROR',\n\n CREATE_API_KEY_REQUEST = 'CREATE_API_KEY_REQUEST',\n CREATE_API_KEY_SUCCESS = 'CREATE_API_KEY_SUCCESS',\n CREATE_API_KEY_ERROR = 'CREATE_API_KEY_ERROR',\n\n DELETE_API_KEY_REQUEST = 'DELETE_API_KEY_REQUEST',\n DELETE_API_KEY_SUCCESS = 'DELETE_API_KEY_SUCCESS',\n DELETE_API_KEY_ERROR = 'DELETE_API_KEY_ERROR',\n\n PATCH_USER_PROFILE_USERNAME_REQUEST = 'PATCH_USER_PROFILE_USERNAME_REQUEST',\n PATCH_USER_PROFILE_USERNAME_SUCCESS = 'PATCH_USER_PROFILE_USERNAME_SUCCESS',\n PATCH_USER_PROFILE_USERNAME_ERROR = 'PATCH_USER_PROFILE_USERNAME_ERROR',\n\n PATCH_USER_PROFILE_PASSWORD_REQUEST = 'PATCH_USER_PROFILE_PASSWORD_REQUEST',\n PATCH_USER_PROFILE_PASSWORD_SUCCESS = 'PATCH_USER_PROFILE_PASSWORD_SUCCESS',\n PATCH_USER_PROFILE_PASSWORD_ERROR = 'PATCH_USER_PROFILE_PASSWORD_ERROR',\n\n PATCH_USER_PROFILE_EMAIL_REQUEST = 'PATCH_USER_PROFILE_EMAIL_REQUEST',\n PATCH_USER_PROFILE_EMAIL_SUCCESS = 'PATCH_USER_PROFILE_EMAIL_SUCCESS',\n PATCH_USER_PROFILE_EMAIL_ERROR = 'PATCH_USER_PROFILE_EMAIL_ERROR',\n\n PATCH_USER_PROFILE_PHONE_REQUEST = 'PATCH_USER_PROFILE_PHONE_REQUEST',\n PATCH_USER_PROFILE_PHONE_SUCCESS = 'PATCH_USER_PROFILE_PHONE_SUCCESS',\n PATCH_USER_PROFILE_PHONE_ERROR = 'PATCH_USER_PROFILE_PHONE_ERROR',\n\n POST_USER_PROFILE_EMAIL_REQUEST = 'POST_USER_PROFILE_EMAIL_REQUEST',\n POST_USER_PROFILE_EMAIL_SUCCESS = 'POST_USER_PROFILE_EMAIL_SUCCESS',\n POST_USER_PROFILE_EMAIL_ERROR = 'POST_USER_PROFILE_EMAIL_ERROR',\n\n POST_USER_PROFILE_PHONE_REQUEST = 'POST_USER_PROFILE_PHONE_REQUEST',\n POST_USER_PROFILE_PHONE_SUCCESS = 'POST_USER_PROFILE_PHONE_SUCCESS',\n POST_USER_PROFILE_PHONE_ERROR = 'POST_USER_PROFILE_PHONE_ERROR',\n\n CHECK_TOKEN_STATUS_REQUEST = 'CHECK_TOKEN_STATUS_REQUEST',\n CHECK_TOKEN_STATUS_SUCCESS = 'CHECK_TOKEN_STATUS_SUCCESS',\n CHECK_TOKEN_STATUS_FAILURE = 'CHECK_TOKEN_STATUS_FAILURE',\n\n DELETE_TOKEN_USER_REQUEST = 'DELETE_TOKEN_USER_REQUEST',\n DELETE_TOKEN_USER_SUCCESS = 'DELETE_TOKEN_USER_SUCCESS',\n DELETE_TOKEN_USER_FAILURE = 'DELETE_TOKEN_USER_FAILURE',\n\n PATCH_USER_PROFILE_LANGUAGE_REQUEST = 'PATCH_USER_PROFILE_LANGUAGE_REQUEST',\n PATCH_USER_PROFILE_LANGUAGE_SUCCESS = 'PATCH_USER_PROFILE_LANGUAGE_SUCCESS',\n PATCH_USER_PROFILE_LANGUAGE_FAILURE = 'PATCH_USER_PROFILE_LANGUAGE_FAILURE',\n\n DELETE_USER_ACCOUNT_REQUEST = 'DELETE_USER_ACCOUNT_REQUEST',\n DELETE_USER_ACCOUNT_SUCCESS = 'DELETE_USER_ACCOUNT_SUCCESS',\n DELETE_USER_ACCOUNT_FAILURE = 'DELETE_USER_ACCOUNT_FAILURE',\n}\n\nexport default authConstants;\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import createBreakpoints from '@material-ui/core/styles/createBreakpoints';\n\nexport default createBreakpoints({\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n values: {\n xs: 400,\n sm: 640,\n md: 960,\n lg: 1280,\n xl: 1520,\n },\n});\n","import { colors } from '@material-ui/core';\nimport { fade, lighten, darken } from '@material-ui/core/styles';\nimport createPalette from '@material-ui/core/styles/createPalette';\n\nconst common = {\n black: '#09121D',\n white: '#FFFFFF',\n backgroundColor: {\n light: '#FEFEFE',\n dark: '#FAFBFD',\n },\n bluePrimary: {\n lightest: '#99e0ff',\n light: '#00B1FF',\n main: '#005DFF',\n dark: '#024BC6',\n },\n grey: {\n lightest: '#F5F6FA',\n light: '#E7EAF4',\n main: '#A5B4CA',\n dark: '#77869B',\n darkest: '#576273',\n },\n green: '#16B15C',\n orange: '#EE7A0F',\n blue: '#188CE0',\n red: '#EA1C1C',\n purple: '#ED63D2',\n coral: '#FF7D51',\n};\n\ndeclare module '@material-ui/core/styles/createPalette' {\n interface CommonColors {\n black: string;\n white: string;\n red: string;\n green: string;\n orange: string;\n coral: string;\n purple: string;\n }\n\n interface SimplePaletteColorOptions {\n lightest?: string;\n light?: string;\n main: string;\n slightDark?: string;\n dark?: string;\n darkest?: string;\n contrastText?: string;\n }\n\n interface PaletteOptions {\n greySimple?: SimplePaletteColorOptions;\n icon?: string;\n link?: string;\n bottomLineColor?: string;\n }\n}\n\nexport default createPalette({\n type: 'light',\n common: {\n black: common.black,\n white: common.white,\n red: common.red,\n green: common.green,\n orange: common.orange,\n purple: common.purple,\n coral: common.coral,\n },\n primary: {\n lightest: common.bluePrimary.lightest,\n light: common.bluePrimary.light,\n main: common.bluePrimary.main,\n dark: common.bluePrimary.dark,\n contrastText: common.white,\n },\n secondary: {\n light: common.grey.lightest,\n main: common.grey.main,\n slightDark: common.grey.dark,\n dark: common.grey.darkest,\n contrastText: common.white,\n },\n success: {\n light: lighten(common.green, 0.2),\n main: common.green,\n dark: darken(common.green, 0.2),\n contrastText: common.white,\n },\n warning: {\n light: lighten(common.orange, 0.2),\n main: common.orange,\n dark: darken(common.orange, 0.2),\n contrastText: common.white,\n },\n info: {\n light: lighten(common.blue, 0.2),\n main: common.blue,\n dark: darken(common.blue, 0.2),\n contrastText: common.white,\n },\n error: {\n light: lighten(common.red, 0.2),\n main: common.red,\n dark: darken(common.red, 0.2),\n contrastText: common.white,\n },\n text: {\n primary: common.black,\n secondary: common.grey.dark,\n disabled: common.grey.main,\n hint: fade(common.black, 0.38),\n },\n background: {\n paper: common.backgroundColor.light,\n default: common.backgroundColor.dark,\n },\n action: {\n selected: common.grey.light,\n hover: common.grey.lightest,\n disabledBackground: common.grey.light,\n disabled: common.grey.main,\n active: 'rgba(0, 0, 0, 0.54)',\n hoverOpacity: 0.08,\n },\n greySimple: {\n lightest: common.grey.lightest,\n light: common.grey.light,\n main: common.grey.main,\n dark: common.grey.dark,\n darkest: common.grey.darkest,\n contrastText: '#FFFFFF',\n },\n icon: colors.blueGrey[600],\n link: common.bluePrimary.main,\n divider: common.grey.lightest,\n bottomLineColor: common.grey.light,\n tonalOffset: 0.15,\n});\n","import { fade } from '@material-ui/core/styles';\nimport palette from './palette';\n\nexport default {\n leftMenuWidth: 245,\n userMenuMaxWidth: 360,\n fullModalMenuWidth: 350,\n documentEditSidebarWidth: 490,\n headerMobileNavHeight: 76,\n headerNavHeight: 80,\n bottomNavigationHeight: 88,\n tooltipBackground: fade(palette.common.black, 0.6),\n userMenuHoverBackground: fade(palette.primary.main, 0.225),\n breadcrumbsMenuHeight: 40,\n};\n","import breakpoints from './breakpoints';\nimport custom from './custom';\n\nexport default {\n toolbar: {\n minHeight: custom.headerMobileNavHeight,\n [breakpoints.up('md')]: {\n minHeight: custom.headerNavHeight,\n },\n },\n};\n","import createSpacing from '@material-ui/core/styles/createSpacing';\n\nexport default createSpacing(8);\n","export default {\n fontFamily: \"'Inter', 'Arial', sans-serif\",\n htmlFontSize: 14,\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 500,\n fontWeightBold: 600,\n h1: {\n fontFamily: \"'Poppins', 'Inter', 'Arial', sans-serif\",\n lineHeight: 1.5,\n color: 'inherit',\n letterSpacing: 0,\n fontSize: '2rem',\n },\n h2: {\n fontFamily: \"'Poppins', 'Inter', 'Arial', sans-serif\",\n lineHeight: 1.5,\n color: 'inherit',\n letterSpacing: 0,\n fontSize: '1.715rem',\n },\n h3: {\n fontFamily: \"'Poppins', 'Inter', 'Arial', sans-serif\",\n lineHeight: 1.5,\n color: 'inherit',\n letterSpacing: '0.01em',\n fontSize: '1.43rem',\n },\n h4: {\n fontFamily: \"'Poppins', 'Inter', 'Arial', sans-serif\",\n lineHeight: 1.5,\n color: 'inherit',\n letterSpacing: '0.01em',\n fontSize: '1.285rem',\n },\n h5: {\n fontFamily: \"'Poppins', 'Inter', 'Arial', sans-serif\",\n lineHeight: 1.5,\n color: 'inherit',\n letterSpacing: '0.01em',\n fontSize: '1.15rem',\n },\n h6: {\n fontFamily: \"'Poppins', 'Inter', 'Arial', sans-serif\",\n lineHeight: 1.5,\n color: 'inherit',\n letterSpacing: '0.01em',\n fontSize: '1rem',\n },\n body1: {\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n lineHeight: 1.5,\n color: 'inherit',\n letterSpacing: '0.01em',\n fontSize: '1rem',\n },\n body2: {\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n lineHeight: 1.6,\n color: 'inherit',\n letterSpacing: '0.012em',\n fontSize: 12,\n },\n caption: {\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n lineHeight: 1.6,\n letterSpacing: '0.015em',\n fontSize: 10,\n },\n subtitle1: {\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n lineHeight: 1.6,\n color: 'inherit',\n letterSpacing: '0.012em',\n fontSize: '1rem',\n },\n subtitle2: {\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n lineHeight: 1.6,\n color: 'inherit',\n letterSpacing: '0.015em',\n fontSize: 12,\n },\n overline: {\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n lineHeight: 1.5,\n fontSize: 12,\n textTransform: 'uppercase',\n },\n button: {\n textTransform: 'none',\n fontFamily: \"'Poppins', 'Inter', 'Arial', sans-serif\",\n color: 'inherit',\n fontSize: '1.0715rem',\n },\n};\n","import spacing from '../spacing';\nimport typography from '../typography';\n\nexport default {\n root: {\n borderRadius: spacing(0.5),\n fontWeight: typography.fontWeightRegular,\n },\n filledSuccess: {\n fontWeight: typography.fontWeightRegular,\n },\n filledInfo: {\n fontWeight: typography.fontWeightRegular,\n },\n filledWarning: {\n fontWeight: typography.fontWeightRegular,\n },\n filledError: {\n fontWeight: typography.fontWeightRegular,\n },\n icon: {\n padding: '8px 0',\n fontSize: 21,\n '& > svg': {\n fontSize: 'inherit',\n },\n },\n action: {\n display: 'block',\n marginRight: -9,\n '& button': {\n margin: '3px 0 0 0 !important',\n color: 'inherit',\n },\n },\n message: {\n fontSize: 14,\n },\n};\n","import typography from '../typography';\n\nexport default {\n root: {\n fontWeight: typography.fontWeightBold,\n },\n};\n","import palette from '../palette';\n\nexport default {\n colorDefault: {\n color: palette.text.primary,\n backgroundColor: palette.background.paper,\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\nimport breakpoints from '../breakpoints';\nimport palette from '../palette';\n\nexport default {\n tag: {\n margin: '2px 4px 2px 0',\n maxWidth: 'calc(100% - 4px)',\n '& + $input': {\n marginRight: '0 !important',\n minWidth: '64px !important',\n },\n },\n tagSizeSmall: {\n margin: '3px 6px 3px 0',\n maxWidth: 'calc(100% - 6px)',\n },\n input: {},\n inputRoot: {\n '$hasPopupIcon &, $hasClearIcon &': {\n paddingRight: 26 + 4,\n },\n '$hasPopupIcon$hasClearIcon &': {\n paddingRight: 52 + 4,\n },\n '& $input': {\n width: 0,\n minWidth: 30,\n },\n '&[class*=\"MuiInput-root\"]': {\n paddingBottom: 1,\n '& $input': {\n padding: 4,\n },\n '& $input:first-child': {\n padding: '6px 0',\n },\n },\n '&[class*=\"MuiOutlinedInput-root\"]': {\n minHeight: 48,\n padding: '10px 12px',\n '& $input': {\n padding: '10px 12px',\n margin: '-10px -12px',\n },\n '$hasPopupIcon &, $hasClearIcon &': {\n paddingRight: 26 + 4 + 9,\n },\n '$hasPopupIcon$hasClearIcon &': {\n paddingRight: 52 + 4 + 9,\n },\n '& $input:first-child': {\n paddingLeft: 12,\n },\n '& $endAdornment': {\n right: 12,\n },\n },\n },\n endAdornment: {\n top: 'calc(50% - 12px)',\n },\n clearIndicator: {\n marginRight: -2,\n padding: 5,\n // visibility: 'unset',\n '& svg': {\n fontSize: 14,\n },\n },\n popupIndicator: {\n padding: 2,\n marginRight: -2,\n },\n popupIndicatorOpen: {\n transform: 'rotate(180deg)',\n },\n paper: {\n margin: 0,\n },\n listbox: {\n padding: 0,\n maxHeight: 'calc(50vh - 24px)',\n },\n loading: {\n color: palette.text.secondary,\n padding: '14px 16px',\n },\n noOptions: {\n color: palette.text.secondary,\n padding: '14px 16px',\n },\n\n option: {\n WebkitTapHighlightColor: 'transparent',\n paddingLeft: 12,\n paddingRight: 12,\n paddingTop: 6,\n paddingBottom: 6,\n minHeight: 48,\n borderBottom: `1px solid ${palette.divider}`,\n [breakpoints.up('sm')]: {\n minHeight: 48,\n },\n transition: transitions.create(['background-color', 'border', 'color', 'opacity'], {\n duration: transitions.duration.short,\n }),\n '&[aria-selected=\"true\"]': {\n backgroundColor: palette.background.paper,\n color: palette.primary.main,\n '&[data-focus=\"true\"]': {\n backgroundColor: palette.action.hover,\n },\n },\n '&:active': {\n backgroundColor: palette.background.paper,\n color: palette.primary.main,\n },\n '&[data-focus=\"true\"]': {\n backgroundColor: palette.action.hover,\n },\n '&[aria-disabled=\"true\"]': {\n opacity: palette.action.disabledOpacity,\n },\n },\n groupLabel: {\n backgroundColor: palette.background.paper,\n top: -8,\n },\n groupUl: {\n padding: 0,\n '& $option': {\n paddingLeft: 24,\n },\n },\n};\n","import { lighten } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nexport default {\n root: {\n fontSize: '1.2rem',\n width: 40,\n height: 40,\n },\n colorDefault: {\n color: palette.greySimple.dark,\n backgroundColor: lighten(palette.greySimple.dark, 0.825),\n },\n};\n","import palette from '../palette';\n\nexport default {\n root: {},\n avatar: {\n border: `2px solid ${palette.background.paper}`,\n marginLeft: -4,\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nexport default {\n root: {\n backgroundColor: fade(palette.common.black, 0.6),\n },\n};\n","import spacing from '../spacing';\nimport palette from '../palette';\n\nexport default {\n badge: {\n height: spacing(2),\n minWidth: spacing(2),\n fontSize: 8,\n borderRadius: spacing(1),\n background: palette.secondary.main,\n padding: 0,\n },\n dot: {\n height: spacing(1),\n minWidth: spacing(1),\n padding: 0,\n borderRadius: '50%',\n },\n anchorOriginTopRightRectangle: {\n top: spacing(0.25),\n right: spacing(0.25),\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, -50%)',\n },\n },\n anchorOriginBottomRightRectangle: {\n bottom: spacing(0.25),\n right: spacing(0.25),\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(50%, 50%)',\n },\n },\n anchorOriginTopLeftRectangle: {\n top: spacing(0.25),\n left: spacing(0.25),\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, -50%)',\n },\n },\n anchorOriginBottomLeftRectangle: {\n bottom: spacing(0.25),\n left: spacing(0.25),\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n '&$invisible': {\n transform: 'scale(0) translate(-50%, 50%)',\n },\n },\n};\n","import palette from '../palette';\nimport custom from '../custom';\n\nexport default {\n root: {\n position: 'relative',\n justifyContent: 'space-between',\n height: custom.bottomNavigationHeight,\n maxHeight: '19vh',\n backgroundColor: '#3C4163',\n color: palette.common.white,\n '&:before': {\n content: \"''\",\n display: 'block',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: 'radial-gradient(84.9% 84.9% at 50% -34.9%, #FFFFFF 0%, #0C0C1F 100%), #0C0C1F',\n backgroundBlendMode: 'color-dodge, normal',\n },\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n background: 'transparent',\n padding: spacing(0.25, 0.5),\n minWidth: 64,\n maxWidth: 'auto',\n },\n};\n","import typography from '../typography';\nimport spacing from '../spacing';\nimport palette from '../palette';\n\nexport default {\n root: {},\n ol: {\n '& svg': {\n fontSize: typography.htmlFontSize,\n },\n },\n li: {\n display: 'flex',\n fontSize: 12,\n '& p': {\n fontSize: 'inherit',\n fontWeight: 'inherit',\n },\n '& a': {\n display: 'flex',\n alignItems: 'center',\n color: palette.text.secondary,\n '&:hover, &:focus': {\n color: palette.text.primary,\n },\n },\n '& svg': {\n marginRight: spacing(0.5),\n },\n '&:last-child': {\n fontWeight: typography.fontWeightBold,\n },\n '&:not(:last-child)': {\n textDecoration: 'underline',\n },\n },\n separator: {\n display: 'flex',\n userSelect: 'none',\n marginLeft: 6,\n marginRight: 6,\n },\n};\n","export default [\n 'none',\n '0 1px 3px 0 rgba(0, 0, 0, 0.04), 0 1px 1px 1px rgba(0, 0, 0, 0.024), 0 2px 0 -1px rgba(0, 0, 0, 0.02)',\n '0 1px 5px 0 rgba(0, 0, 0, 0.04), 0 2px 3px 1px rgba(0, 0, 0, 0.024), 0 3px 0 -2px rgba(0, 0, 0, 0.02)',\n '0 1px 8px 0 rgba(0, 0, 0, 0.04), 0 3px 5px 1px rgba(0, 0, 0, 0.024), 0 3px 1px -2px rgba(0, 0, 0, 0.02)',\n '0 2px 4px -1px rgba(0, 0, 0, 0.04), 0 4px 6px 1px rgba(0, 0, 0, 0.024), 0 1px 8px 0 rgba(0, 0, 0, 0.02)',\n '0 3px 5px -1px rgba(0, 0, 0, 0.04), 0 5px 10px 1px rgba(0, 0, 0, 0.024), 0 1px 12px 0 rgba(0, 0, 0, 0.02)',\n '0 3px 5px -1px rgba(0, 0, 0, 0.04), 0 6px 12px 1px rgba(0, 0, 0, 0.024), 0 1px 16px 0 rgba(0, 0, 0, 0.02)',\n '0 4px 5px -2px rgba(0, 0, 0, 0.04), 0 6px 12px 2px rgba(0, 0, 0, 0.024), 0 2px 14px 1px rgba(0, 0, 0, 0.02)',\n '0 5px 5px -3px rgba(0, 0, 0, 0.04), 0 7px 12px 2px rgba(0, 0, 0, 0.024), 0 3px 12px 2px rgba(0, 0, 0, 0.02)',\n '0 5px 6px -3px rgba(0, 0, 0, 0.04), 0 7px 14px 2px rgba(0, 0, 0, 0.024), 0 3px 14px 2px rgba(0, 0, 0, 0.02)',\n '0 6px 6px -3px rgba(0, 0, 0, 0.04), 0 8px 17px 2px rgba(0, 0, 0, 0.024), 0 4px 16px 3px rgba(0, 0, 0, 0.02)',\n '0 6px 7px -4px rgba(0, 0, 0, 0.04), 0 8px 18px 2px rgba(0, 0, 0, 0.024), 0 4px 18px 3px rgba(0, 0, 0, 0.02)',\n '0 7px 8px -4px rgba(0, 0, 0, 0.04), 0 9px 21px 3px rgba(0, 0, 0, 0.024), 0 5px 20px 4px rgba(0, 0, 0, 0.02)',\n '0 7px 8px -4px rgba(0, 0, 0, 0.04), 0 9px 25px 3px rgba(0, 0, 0, 0.024), 0 5px 22px 4px rgba(0, 0, 0, 0.02)',\n '0 7px 9px -4px rgba(0, 0, 0, 0.04), 0 10px 26px 3px rgba(0, 0, 0, 0.024), 0 5px 24px 4px rgba(0, 0, 0, 0.02)',\n '0 8px 9px -5px rgba(0, 0, 0, 0.04), 0 11px 27px 3px rgba(0, 0, 0, 0.024), 0 6px 26px 5px rgba(0, 0, 0, 0.02)',\n '0 8px 10px -5px rgba(0, 0, 0, 0.04), 0 12px 29px 3px rgba(0, 0, 0, 0.024), 0 6px 28px 5px rgba(0, 0, 0, 0.02)',\n '0 8px 11px -5px rgba(0, 0, 0, 0.04), 0 13px 31px 3px rgba(0, 0, 0, 0.024), 0 6px 30px 5px rgba(0, 0, 0, 0.02)',\n '0 9px 11px -5px rgba(0, 0, 0, 0.04), 0 14px 33px 3px rgba(0, 0, 0, 0.024), 0 7px 32px 6px rgba(0, 0, 0, 0.02)',\n '0 9px 12px -6px rgba(0, 0, 0, 0.04), 0 15px 35px 3px rgba(0, 0, 0, 0.024), 0 7px 34px 6px rgba(0, 0, 0, 0.02)',\n '0 10px 13px -6px rgba(0, 0, 0, 0.04), 0 16px 37px 4px rgba(0, 0, 0, 0.024), 0 8px 36px 7px rgba(0, 0, 0, 0.02)',\n '0 10px 13px -6px rgba(0, 0, 0, 0.04), 0 17px 40px 4px rgba(0, 0, 0, 0.024), 0 8px 38px 7px rgba(0, 0, 0, 0.02)',\n '0 10px 14px -6px rgba(0, 0, 0, 0.04), 0 18px 42px 4px rgba(0, 0, 0, 0.024), 0 8px 40px 7px rgba(0, 0, 0, 0.02)',\n '0 11px 14px -7px rgba(0, 0, 0, 0.04), 0 19px 43px 4px rgba(0, 0, 0, 0.024), 0 9px 42px 8px rgba(0, 0, 0, 0.02)',\n '0 11px 15px -7px rgba(0, 0, 0, 0.04), 0 20px 46px 4px rgba(0, 0, 0, 0.024), 0 9px 44px 8px rgba(0, 0, 0, 0.02)',\n];\n","import transitions from '@material-ui/core/styles/transitions';\nimport { lighten } from '@material-ui/core/styles';\nimport palette from '../palette';\nimport typography from '../typography';\nimport spacing from '../spacing';\nimport shadows from '../shadows';\n\nexport default {\n root: {\n borderRadius: spacing(0.75),\n fontSize: typography.button.fontSize,\n minWidth: 'auto',\n padding: '11px 20px',\n textTransform: typography.button.textTransform,\n lineHeight: '1.2',\n fontWeight: typography.fontWeightMedium,\n transition: transitions.create(\n ['background-color', 'box-shadow', 'border', 'color', 'opacity'],\n {\n duration: transitions.duration.short,\n }\n ),\n '&:hover': {\n boxShadow: shadows[15],\n },\n '&$focusVisible': {\n boxShadow: shadows[6],\n },\n '&$disabled': {\n boxShadow: 'none',\n },\n },\n text: {\n padding: '11px 24px',\n '&:hover': {\n backgroundColor: 'transparent',\n },\n '&:focus, &:active': {\n color: palette.primary.main,\n },\n },\n textPrimary: {\n color: palette.secondary.dark,\n '&:hover': {\n backgroundColor: 'transparent',\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n '&:not($disabled) $startIcon': {\n color: palette.primary.main,\n },\n '&:not($disabled) $endIcon': {\n color: palette.primary.main,\n },\n },\n contained: {\n backgroundColor: palette.action.selected,\n boxShadow: 'none',\n '&:hover': {\n boxShadow: shadows[15],\n },\n '&$focusVisible': {\n boxShadow: shadows[6],\n },\n '&$disabled': {\n backgroundColor: palette.action.disabledBackground,\n color: palette.action.disabled,\n },\n },\n containedPrimary: {\n border: `1px solid ${palette.primary.main}`,\n\n '&:hover': {\n backgroundColor: lighten(palette.primary.main, 0.075),\n },\n '&:focus, &:active': {\n backgroundColor: palette.primary.dark,\n },\n '&$disabled': {\n backgroundColor: palette.action.disabledBackground,\n color: palette.action.disabled,\n border: `1px solid ${palette.action.disabledBackground}`,\n },\n },\n containedSecondary: {\n color: palette.primary.main,\n backgroundColor: lighten(palette.primary.main, 0.925),\n border: `1px solid ${lighten(palette.primary.main, 0.925)}`,\n padding: '10px 19px',\n '&:hover': {\n color: palette.primary.contrastText,\n backgroundColor: lighten(palette.primary.main, 0.075),\n border: `1px solid ${lighten(palette.primary.main, 0.075)}`,\n },\n '&:focus, &:active': {\n color: palette.primary.main,\n backgroundColor: lighten(palette.primary.main, 0.925),\n border: `1px solid ${palette.primary.main}`,\n },\n '&$disabled': {\n backgroundColor: palette.action.disabledBackground,\n color: palette.action.disabled,\n },\n },\n sizeSmall: {\n padding: '9px 16px',\n fontSize: 12,\n minWidth: 'auto',\n '&$containedSecondary': {\n padding: '8px 15px',\n },\n },\n sizeLarge: {\n padding: '15px 24px',\n fontSize: '1.1rem',\n minWidth: 'auto',\n '&$containedSecondary': {\n padding: '14px 23px',\n },\n },\n startIcon: {\n marginRight: spacing(1),\n marginTop: -1,\n marginBottom: -1,\n marginLeft: -2,\n '&$iconSizeSmall': {\n marginLeft: 0,\n },\n },\n endIcon: {\n display: 'inherit',\n marginTop: -1,\n marginBottom: -1,\n marginRight: -2,\n marginLeft: spacing(1),\n '&$iconSizeSmall': {\n marginRight: 0,\n },\n },\n iconSizeSmall: {\n '& > *:first-child': {\n fontSize: 16,\n },\n },\n iconSizeMedium: {\n '& > *:first-child': {\n fontSize: 18,\n },\n },\n iconSizeLarge: {\n '& > *:first-child': {\n fontSize: 20,\n },\n },\n};\n","import palette from '../palette';\nimport spacing from '../spacing';\n\nexport default {\n root: {\n borderRadius: spacing(0.75),\n },\n grouped: {},\n groupedHorizontal: {\n '&:not(:first-child)': {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n '&:not(:last-child)': {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n },\n groupedOutlinedHorizontal: {\n '&:not(:first-child)': {\n '& *[class*=\"MuiOutlinedInput-notchedOutline\"]': {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderLeftColor: `${palette.bottomLineColor} !important`,\n },\n },\n '&:not(:last-child)': {\n '& *[class*=\"MuiOutlinedInput-notchedOutline\"]': {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n },\n },\n};\n","import spacing from '../spacing';\nimport breakpoints from '../breakpoints';\n\nexport default {\n root: {\n padding: `0 ${spacing(2)}px ${spacing(2)}px ${spacing(2)}px`,\n [breakpoints.up('md')]: {\n padding: `0 ${spacing(3)}px ${spacing(2)}px ${spacing(3)}px`,\n },\n [breakpoints.up('lg')]: {\n padding: `0 ${spacing(5)}px ${spacing(2.5)}px ${spacing(5)}px`,\n },\n },\n};\n","import spacing from '../spacing';\nimport breakpoints from '../breakpoints';\n\nexport default {\n root: {\n paddingTop: spacing(2),\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n paddingBottom: spacing(2),\n '&:last-child': {\n paddingBottom: spacing(2),\n },\n [breakpoints.up('sm')]: {\n paddingTop: spacing(2),\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n paddingBottom: spacing(2),\n },\n [breakpoints.up('md')]: {\n paddingTop: spacing(3),\n paddingLeft: spacing(3),\n paddingRight: spacing(3),\n paddingBottom: spacing(3),\n '&:last-child': {\n paddingBottom: spacing(3),\n },\n },\n [breakpoints.up('lg')]: {\n paddingTop: spacing(5),\n paddingLeft: spacing(5),\n paddingRight: spacing(5),\n paddingBottom: spacing(5),\n '&:last-child': {\n paddingBottom: spacing(5),\n },\n '& + [class^=\"MuiCardActions-root\"], & + [class*=\"MuiCardActions-root\"]': {\n marginTop: spacing(-2),\n },\n },\n },\n};\n","import spacing from '../spacing';\nimport breakpoints from '../breakpoints';\n\nexport default {\n root: {\n paddingTop: spacing(2),\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n paddingBottom: 0,\n [breakpoints.up('sm')]: {\n paddingTop: spacing(2),\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n paddingBottom: 0,\n },\n [breakpoints.up('md')]: {\n paddingTop: spacing(3),\n paddingLeft: spacing(3),\n paddingRight: spacing(3),\n },\n [breakpoints.up('lg')]: {\n paddingTop: spacing(5),\n paddingLeft: spacing(5),\n paddingRight: spacing(5),\n paddingBottom: 0,\n '& + [class^=\"MuiCardContent-root\"], & + [class*=\"MuiCardContent-root\"]': {\n marginTop: spacing(-1),\n },\n },\n },\n action: {\n marginTop: 0,\n marginRight: 0,\n alignSelf: 'center',\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport palette from '../palette';\nimport typography from '../typography';\n\nexport default {\n '@global': {\n 'html, body': {\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n overflow: 'hidden',\n fontFamily: typography.fontFamily,\n fontSize: typography.htmlFontSize,\n color: palette.text.primary,\n },\n a: {\n textDecoration: 'none',\n color: palette.primary.main,\n },\n '#app': {\n height: '100%',\n },\n '::-moz-selection': {\n background: palette.primary.main,\n color: palette.primary.contrastText,\n },\n '::selection': {\n background: palette.primary.main,\n color: palette.primary.contrastText,\n },\n '::-webkit-scrollbar': {\n width: 6,\n height: 6,\n },\n '::-webkit-scrollbar-thumb': {\n border: 'none',\n background: palette.primary.main,\n borderRadius: 3,\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: palette.primary.dark,\n },\n '::-webkit-scrollbar-track': {\n background: 'transparent',\n borderRadius: 0,\n },\n '*': {\n scrollbarColor: `${palette.primary.main} ${fade(palette.greySimple.main, 0.1)}`,\n scrollbarWidth: 'thin',\n },\n 'strong, b': {\n fontWeight: `${typography.fontWeightBold} !important`,\n },\n '.MuiMenuItem-root.country': {},\n\n '.MuiAutocomplete-option[data-focus=\"true\"]': {\n '& .avatarWrapper .MuiAvatar-root': {\n transition: 'all .3s',\n boxShadow: '2px 5px 12px -4px rgb(0 0 0 / 20%)',\n },\n '& .itemTitleHover': {\n color: palette.primary.main,\n },\n\n '& .hoverEnabled': {\n background: palette.action.hover,\n },\n },\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nexport default {\n root: {\n '&$checked': {\n '& + span': {\n '& a': {\n textDecoration: 'underline',\n },\n },\n },\n '&$disabled': {\n '& svg': {\n filter: 'none !important',\n },\n },\n },\n colorPrimary: {\n color: palette.bottomLineColor,\n '&.MuiCheckbox-indeterminate': {\n color: `${palette.primary.main}!important`,\n },\n '&$checked': {\n color: palette.primary.main,\n '& svg': {\n filter: `drop-shadow(0 3px 6px ${fade(palette.primary.main, 0.225)})`,\n },\n },\n '&$disabled': {\n color: palette.action.disabledBackground,\n },\n },\n colorSecondary: {\n color: palette.error.main,\n '&$checked': {\n color: palette.error.main,\n '& svg': {\n filter: `drop-shadow(0 3px 6px ${fade(palette.error.main, 0.225)})`,\n },\n },\n '&$disabled': {\n color: palette.action.disabledBackground,\n },\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport palette from '../palette';\nimport spacing from '../spacing';\nimport typography from '../typography';\n\nexport default {\n root: {\n textTransform: typography.button.textTransform,\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.2',\n minHeight: 25,\n color: palette.text.secondary,\n fontSize: typography.body2.fontSize,\n backgroundColor: fade(palette.greySimple.light, 0.5),\n },\n sizeSmall: {\n fontSize: typography.subtitle2.fontSize,\n },\n label: {\n paddingLeft: spacing(1.75),\n paddingRight: spacing(1.75),\n },\n labelSmall: {\n paddingLeft: spacing(1.5),\n paddingRight: spacing(1.5),\n },\n deleteIconSmall: {\n width: 17,\n height: 17,\n },\n};\n","import spacing from '../spacing';\nimport breakpoints from '../breakpoints';\n\nexport default {\n root: {\n width: '100%',\n marginLeft: 'auto',\n boxSizing: 'border-box',\n marginRight: 'auto',\n paddingLeft: spacing(1),\n paddingRight: spacing(1),\n [breakpoints.up('sm')]: {\n paddingLeft: spacing(1.5),\n paddingRight: spacing(1.5),\n },\n [breakpoints.up('md')]: {\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n },\n [breakpoints.up('lg')]: {\n paddingLeft: spacing(2.5),\n paddingRight: spacing(2.5),\n },\n },\n};\n","import spacing from '../spacing';\nimport breakpoints from '../breakpoints';\n\nexport default {\n container: {\n outline: 'none !important',\n '& *': {\n outline: 'inherit !important',\n },\n },\n paper: {\n width: '100%',\n margin: spacing(2),\n },\n paperScrollPaper: {\n maxHeight: `calc(100% - ${spacing(4)}px)`,\n },\n paperWidthFalse: {\n maxWidth: `calc(100% - ${spacing(4)}px)`,\n },\n paperWidthXs: {\n maxWidth: Math.max(breakpoints.values.xs),\n '&$paperScrollBody': {\n [breakpoints.down(Math.max(breakpoints.values.xs) + spacing(4))]: {\n maxWidth: `calc(100% - ${spacing(2)})`,\n },\n },\n },\n paperWidthSm: {\n maxWidth: breakpoints.values.sm,\n '&$paperScrollBody': {\n [breakpoints.down(breakpoints.values.sm + spacing(4))]: {\n maxWidth: `calc(100% - ${spacing(2)})`,\n },\n },\n },\n paperWidthMd: {\n maxWidth: breakpoints.values.md,\n '&$paperScrollBody': {\n [breakpoints.down(breakpoints.values.md + spacing(4))]: {\n maxWidth: `calc(100% - ${spacing(2)})`,\n },\n },\n },\n paperWidthLg: {\n maxWidth: breakpoints.values.lg,\n '&$paperScrollBody': {\n [breakpoints.down(breakpoints.values.lg + spacing(4))]: {\n maxWidth: `calc(100% - ${spacing(2)})`,\n },\n },\n },\n paperWidthXl: {\n maxWidth: breakpoints.values.xl,\n '&$paperScrollBody': {\n [breakpoints.down(breakpoints.values.xl + spacing(4))]: {\n maxWidth: `calc(100% - ${spacing(2)})`,\n },\n },\n },\n paperFullWidth: {\n width: `calc(100% - ${spacing(4)}px)`,\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n justifyContent: 'flex-end',\n paddingBottom: spacing(2),\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n padding: `0 ${spacing(2)}px ${spacing(2)}px`,\n overflowX: 'hidden',\n '&:first-child': {\n paddingTop: spacing(2),\n },\n },\n};\n","import spacing from '../spacing';\nimport typography from '../typography';\n\nexport default {\n root: {\n padding: spacing(2),\n '& h2': {\n fontSize: typography.h2.fontSize,\n },\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\nimport { lighten } from '@material-ui/core/styles';\nimport palette from '../palette';\nimport typography from '../typography';\nimport spacing from '../spacing';\nimport shadows from '../shadows';\n\nexport default {\n root: {\n width: 48,\n height: 48,\n minHeight: 48,\n minWidth: 48,\n textTransform: 'none',\n fontSize: '1.1rem',\n boxShadow: 'none',\n color: palette.secondary.main,\n backgroundColor: 'transparent',\n transition: transitions.create(['background-color', 'color', 'box-shadow', 'border'], {\n duration: transitions.duration.short,\n }),\n '&:hover': {\n backgroundColor: 'transparent',\n },\n '&:focus, &:active': {\n backgroundColor: palette.secondary.light,\n },\n '&:hover, &:focus, &:active': {\n color: palette.primary.main,\n },\n '&$disabled': {\n color: lighten(palette.secondary.main, 0.65),\n backgroundColor: 'transparent',\n },\n '&$focusVisible': {\n boxShadow: shadows[6],\n },\n },\n primary: {\n color: palette.secondary.main,\n backgroundColor: palette.common.white,\n border: `1px solid ${palette.secondary.light}`,\n '&:hover': {\n borderColor: palette.secondary.main,\n backgroundColor: `${palette.common.white} !important`,\n },\n '&:focus, &:active': {\n borderColor: palette.primary.main,\n backgroundColor: palette.common.white,\n },\n '&:hover, &:focus, &:active': {\n color: palette.primary.main,\n backgroundColor: palette.common.white,\n },\n '&$disabled': {\n borderColor: palette.secondary.light,\n backgroundColor: palette.common.white,\n\n color: lighten(palette.secondary.main, 0.65),\n },\n },\n secondary: {\n color: palette.secondary.main,\n backgroundColor: 'transparent',\n '&:hover': {\n color: palette.primary.main,\n boxShadow: shadows[15],\n backgroundColor: 'transparent',\n },\n '&:focus, &:active': {\n backgroundColor: palette.secondary.light,\n },\n '&$disabled': {\n opacity: 0.75,\n backgroundColor: palette.secondary.light,\n color: palette.secondary.main,\n },\n },\n sizeMedium: {\n width: 40,\n height: 40,\n minHeight: 40,\n minWidth: 40,\n fontSize: '1rem',\n },\n sizeSmall: {\n width: 32,\n height: 32,\n minHeight: 32,\n minWidth: 32,\n fontSize: '1rem',\n '& svg': {\n width: 20,\n height: 20,\n },\n },\n extended: {\n '& $label': {\n fontSize: typography.button.fontSize,\n },\n '&$sizeSmall': {\n '& $label': {\n fontSize: 12,\n },\n },\n '&$sizeMedium': {\n '& $label': {\n fontSize: '1.1rem',\n },\n },\n '& svg': {\n marginRight: spacing(1),\n },\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n marginLeft: 0,\n '& .MuiRadio-root, & .MuiCheckbox-root': {\n marginLeft: (14 - spacing(1)) * -1,\n },\n },\n label: {\n lineHeight: 1.3,\n },\n labelPlacementStart: {\n marginRight: 0,\n '& > .MuiSwitch-root': {\n marginLeft: spacing(1),\n '&.MuiSwitch-sizeSmall': {\n marginLeft: spacing(0.5),\n },\n },\n },\n labelPlacementTop: {\n marginLeft: 0,\n marginRight: 0,\n },\n labelPlacementBottom: {\n marginLeft: 0,\n marginRight: 0,\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n '& > *:not(:last-child)': {\n marginBottom: spacing(0.5),\n },\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n position: 'relative',\n fontSize: 12,\n marginTop: spacing(0.75),\n lineHeight: 1.2,\n },\n contained: {\n marginLeft: 0,\n marginRight: 0,\n },\n};\n","import typography from '../typography';\nimport palette from '../palette';\n\nexport default {\n root: {\n fontSize: 12,\n '&$focused': {\n color: palette.primary.main,\n },\n '&$error': {\n fontWeight: typography.fontWeightMedium,\n },\n },\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n fontSize: 24,\n padding: 12,\n '&:hover': {\n backgroundColor: palette.action.hover,\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n '&$disabled': {\n backgroundColor: 'transparent',\n },\n },\n },\n sizeSmall: {\n padding: 6,\n fontSize: 20,\n },\n};\n","import { darken } from '@material-ui/core/styles';\nimport typography from '../typography';\nimport palette from '../palette';\n\nexport default {\n root: {\n fontWeight: typography.fontWeightMedium,\n fontSize: '1rem',\n },\n underline: {\n '&:before': {\n zIndex: 1,\n borderBottom: `1px solid ${palette.bottomLineColor}`,\n },\n '&:after': {\n zIndex: 1,\n borderBottom: `2px solid ${palette.primary.main}`,\n },\n '&:hover:not($disabled):not($focused):not($error):before': {\n borderBottom: `2px solid ${darken(palette.bottomLineColor, 0.5)}`,\n },\n '&$disabled': {\n color: palette.text.secondary,\n },\n '&$disabled:before': {\n borderBottom: `1px solid ${palette.bottomLineColor}`,\n },\n },\n multiline: {\n padding: `${10 - 2}px 0 ${10 - 1}px`,\n },\n input: {\n padding: `${10 - 2}px 0 ${10 - 1}px`,\n },\n inputMarginDense: {\n paddingTop: `${10 - 2}px`,\n paddingBottom: `${10 - 2}px`,\n },\n formControl: {\n 'label + &': {\n marginTop: '1rem',\n },\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n height: 'auto',\n '& svg': {\n fontSize: spacing(2.5),\n },\n },\n positionEnd: {\n marginLeft: 8,\n marginRight: 2,\n },\n positionStart: {\n marginLeft: 2,\n marginRight: 8,\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\nimport spacing from '../spacing';\n\nexport default {\n root: {\n transformOrigin: 'top left',\n transition: transitions.create(['all'], {\n duration: transitions.duration.short,\n }),\n },\n formControl: {\n transform: 'translate(0, 24px) scale(1)',\n },\n marginDense: {\n transform: 'translate(0, 21px) scale(1)',\n },\n shrink: {\n position: 'relative',\n transform: 'none',\n transition: 'none',\n },\n outlined: {\n transform: 'translate(12px, 17px) scale(1.165)',\n '&$marginDense': {\n transform: 'translate(12px, 17px) scale(1.165)',\n },\n '&$shrink': {\n transform: 'none',\n marginBottom: spacing(0.75),\n },\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\nimport typography from '../typography';\nimport palette from '../palette';\nimport spacing from '../spacing';\n\nexport default {\n root: {\n borderRadius: spacing(1),\n marginLeft: spacing(1),\n marginRight: spacing(1),\n marginTop: 2,\n marginBottom: 2,\n color: palette.text.secondary,\n paddingTop: spacing(1),\n paddingBottom: spacing(1),\n fontSize: typography.htmlFontSize,\n lineHeight: 'inherit',\n '&:hover': {\n color: palette.text.primary,\n },\n '&$focusVisible': {\n color: palette.text.primary,\n },\n '&$selected': {\n fontWeight: typography.fontWeightMedium,\n color: palette.primary.main,\n backgroundColor: palette.background.paper,\n '&:hover': {\n backgroundColor: palette.action.hover,\n },\n },\n },\n divider: {\n borderBottom: `1px solid ${palette.divider}`,\n },\n gutters: {\n paddingLeft: 12,\n paddingRight: 12,\n },\n dense: {\n minHeight: 36,\n paddingTop: spacing(0.5),\n paddingBottom: spacing(0.5),\n },\n button: {\n transition: transitions.create(['background-color', 'box-shadow', 'border', 'color'], {\n duration: transitions.duration.short,\n }),\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n color: 'inherit',\n minWidth: 20,\n marginRight: spacing(1.5),\n '& > svg': {\n fontSize: 20,\n },\n },\n};\n","import typography from '../typography';\nimport palette from '../palette';\n\nexport default {\n root: {\n display: 'flex',\n alignItems: 'center',\n color: `${palette.text.primary} !important`,\n fontSize: typography.htmlFontSize,\n lineHeight: 'inherit',\n height: 'auto',\n minHeight: 48,\n outline: 0,\n },\n gutters: {\n paddingLeft: 12,\n paddingRight: 12,\n },\n sticky: {\n backgroundColor: palette.background.paper,\n },\n};\n","import typography from '../typography';\nimport palette from '../palette';\nimport breakpoints from '../breakpoints';\n\nexport default {\n root: {\n color: palette.text.secondary,\n fontSize: typography.htmlFontSize,\n lineHeight: 'inherit',\n height: 'auto',\n minHeight: 48,\n transition: 'all .3s',\n [breakpoints.up('sm')]: {\n minHeight: 48,\n },\n '&:hover': {\n color: palette.primary.main,\n backgroundColor: palette.action.hover,\n },\n '&$selected, &$selected:hover': {\n color: palette.primary.main,\n backgroundColor: palette.action.selected,\n },\n '&:hover .MuiTypography-colorTextPrimary': {\n color: palette.primary.main,\n },\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\nimport palette from '../palette';\nimport typography from '../typography';\nimport spacing from '../spacing';\nimport shadows from '../shadows';\n\nexport default {\n root: {\n position: 'relative',\n borderRadius: spacing(0.75),\n '& input': {\n transition: transitions.create(['background-color', 'color', 'box-shadow', 'border'], {\n duration: transitions.duration.short,\n }),\n '&[readonly]': {\n cursor: 'default',\n },\n },\n '&:hover $notchedOutline': {\n borderColor: palette.primary.main,\n },\n '&$focused $notchedOutline': {\n borderColor: palette.primary.main,\n borderWidth: 1,\n boxShadow: shadows[8],\n },\n '&$error $notchedOutline': {\n borderColor: palette.error.main,\n },\n '&$disabled $notchedOutline': {\n borderColor: palette.bottomLineColor,\n },\n '&$disabled': {\n backgroundColor: palette.secondary.light,\n },\n '&.Mui-error': {\n '& input, & .MuiSelect-root': {\n color: palette.error.main,\n },\n },\n },\n colorSecondary: {\n '&$focused $notchedOutline': {\n borderColor: palette.secondary.main,\n },\n },\n focused: {},\n disabled: {},\n adornedStart: {\n paddingLeft: 12,\n },\n adornedEnd: {\n paddingRight: 12,\n },\n error: {},\n marginDense: {},\n notchedOutline: {\n borderColor: palette.bottomLineColor,\n },\n multiline: {\n padding: '12px',\n minHeight: 48,\n '&$marginDense': {\n paddingTop: 10.5,\n paddingBottom: 10.5,\n },\n },\n input: {\n fontSize: '1rem',\n fontWeight: typography.fontWeightMedium,\n padding: 12,\n minHeight: 48,\n boxSizing: 'border-box',\n '&:-webkit-autofill': {\n borderRadius: 'inherit',\n },\n '&::placeholder': {\n fontWeight: typography.fontWeightRegular,\n color: `${palette.secondary.main} !important`,\n opacity: 1,\n },\n },\n inputMarginDense: {\n paddingTop: 10.5,\n paddingBottom: 10.5,\n },\n inputMultiline: {\n padding: 0,\n },\n inputAdornedStart: {\n paddingLeft: 0,\n },\n inputAdornedEnd: {\n paddingRight: 0,\n },\n};\n","import palette from '../palette';\nimport spacing from '../spacing';\n\nexport default {\n root: {},\n loadingContainer: {},\n weekContainer: {},\n week: {},\n iconButton: {\n backgroundColor: palette.background.paper,\n },\n previousMonthButton: {\n marginRight: spacing(1.5),\n },\n daysHeader: {},\n weekDayLabel: {\n width: 32,\n height: 48,\n margin: '0 2px',\n color: palette.text.secondary,\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nexport default {\n root: {\n '&:first-child $rangeIntervalDayPreview': {\n borderLeftColor: palette.divider,\n },\n '&:last-child $rangeIntervalDayPreview': {\n borderRightColor: palette.divider,\n },\n },\n rangeIntervalDayHighlight: {\n borderRadius: 0,\n color: palette.primary.contrastText,\n backgroundColor: fade(palette.primary.light, 0.15),\n },\n day: {\n transform: 'none',\n '& > *': {\n transform: 'none',\n },\n },\n rangeIntervalDayHighlightStart: {},\n rangeIntervalDayHighlightEnd: {},\n dayOutsideRangeInterval: {},\n dayInsideRangeInterval: {\n color: palette.getContrastText(fade(palette.primary.light, 0.6)),\n },\n notSelectedDate: {\n backgroundColor: 'transparent',\n },\n rangeIntervalPreview: {\n border: '2px solid transparent',\n },\n rangeIntervalDayPreview: {\n borderRadius: 0,\n border: `2px dashed ${palette.bottomLineColor}`,\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n '&$rangeIntervalDayPreviewStart': {\n borderLeftColor: palette.bottomLineColor,\n },\n '&$rangeIntervalDayPreviewEnd': {\n borderRightColor: palette.bottomLineColor,\n },\n },\n rangeIntervalDayPreviewStart: {},\n rangeIntervalDayPreviewEnd: {},\n};\n","import breakpoints from '../breakpoints';\nimport spacing from '../spacing';\n\nexport default {\n root: {\n display: 'flex',\n alignItems: 'center',\n [breakpoints.down('xs')]: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n },\n toLabelDelimiter: {\n margin: `${spacing(1)}px 0`,\n [breakpoints.up('sm')]: {\n margin: `0 ${spacing(2)}px`,\n },\n },\n};\n","import palette from '../palette';\nimport typography from '../typography';\n\nexport default {\n root: {\n fontSize: typography.subtitle2.fontSize,\n width: 32,\n height: 32,\n '&:disabled': {\n color: palette.text.disabled,\n },\n },\n today: {\n '&:not($selected)': {\n border: `1px solid ${palette.primary.main}`,\n '&:hover, &:focus': {\n borderColor: palette.primary.main,\n color: palette.primary.main,\n },\n },\n },\n};\n","import palette from '../palette';\nimport spacing from '../spacing';\n\nexport default {\n root: {},\n rangeCalendarContainer: {\n '&:not(:last-child)': {\n borderRight: `1px solid ${palette.divider}`,\n },\n },\n calendar: {\n minWidth: 280,\n minHeight: 240,\n },\n arrowSwitcher: {\n padding: spacing(2),\n backgroundColor: palette.background.default,\n borderBottom: `1px solid ${palette.divider}`,\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport spacing from '../spacing';\nimport palette from '../palette';\n\nexport default {\n root: {\n backgroundColor: palette.primary.dark,\n borderBottom: `1px solid ${palette.divider}`,\n color: fade(palette.common.white, 0.5),\n padding: spacing(2),\n },\n dateTitleContainer: {\n position: 'relative',\n },\n toolbarLandscape: {\n minWidth: 200,\n },\n};\n","import spacing from '../spacing';\n\nexport default {\n root: {\n padding: spacing(0, 1),\n overflow: 'hidden',\n },\n};\n","import typography from '../typography';\n\nexport default {\n root: {\n textTransform: 'lowercase',\n opacity: 0.65,\n fontSize: typography.h4.fontSize,\n '&:hover:not($selected)': {\n opacity: 0.8,\n // color: palette.text.primary,\n },\n '&$selected': {\n opacity: 1,\n // color: palette.primary.main,\n },\n },\n selected: {},\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n position: 'relative',\n },\n outlined: {\n border: `1px solid ${palette.divider}`,\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nexport default {\n root: {},\n paper: {\n border: `1px solid ${fade(palette.divider, 0.5)}`,\n },\n};\n","import { fade } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nexport default {\n root: {\n color: palette.bottomLineColor,\n '&$disabled': {\n '& svg': {\n filter: 'none !important',\n },\n },\n },\n checked: {},\n disabled: {},\n colorPrimary: {\n '&$checked': {\n color: palette.primary.main,\n '& svg': {\n filter: `drop-shadow(0 3px 6px ${fade(palette.primary.main, 0.175)})`,\n },\n },\n '&$disabled': {\n color: palette.action.disabledBackground,\n },\n },\n colorSecondary: {\n color: palette.error.main,\n '&$checked': {\n color: palette.error.main,\n '& svg': {\n filter: `drop-shadow(0 3px 6px ${fade(palette.error.main, 0.175)})`,\n },\n },\n '&$disabled': {\n color: palette.action.disabledBackground,\n },\n },\n};\n","import { lighten } from '@material-ui/core/styles';\nimport palette from '../palette';\n\nexport default {\n root: {\n height: 6,\n padding: '6px 0',\n },\n valueLabel: {\n left: 'calc(-50% - 8px)',\n },\n thumb: {\n height: 16,\n width: 16,\n backgroundColor: palette.common.white,\n border: '4px solid currentColor',\n marginTop: -5,\n marginLeft: -8,\n '&:focus,&:hover,&$active': {\n boxShadow: 'inherit',\n },\n '&$disabled': {\n '& $thumb': {\n border: '2px solid #fff',\n backgroundColor: 'currentColor',\n width: '10px !important',\n height: '10px !important',\n marginLeft: '-5px !important',\n },\n '& $track': {\n opacity: 0.65,\n },\n '& $rail': {\n opacity: 0.25,\n },\n },\n },\n track: {\n height: 6,\n borderRadius: 3,\n },\n rail: {\n height: 6,\n borderRadius: 3,\n opacity: 0.35,\n backgroundColor: palette.text.secondary,\n },\n mark: {\n width: 4,\n height: 4,\n borderRadius: 3,\n border: `1px solid ${palette.common.white}`,\n backgroundColor: lighten(palette.text.secondary, 0.2),\n marginTop: 0,\n marginLeft: -3,\n },\n markActive: {\n border: '1px solid currentColor',\n backgroundColor: palette.background.paper,\n opacity: 1,\n },\n};\n","import spacing from '../spacing';\nimport breakpoints from '../breakpoints';\n\nexport default {\n root: {\n width: '100%',\n maxWidth: breakpoints.values.md,\n left: 0,\n right: 0,\n '& > *': {\n width: '100%',\n [breakpoints.down('xs')]: {\n borderRadius: '0 !important',\n },\n },\n [breakpoints.up('sm')]: {\n left: spacing(1.5),\n right: spacing(1.5),\n '& > *': {\n width: `calc(100% - ${spacing(3)}px)`,\n },\n },\n [breakpoints.up('md')]: {\n left: spacing(3),\n right: spacing(3),\n '& > *': {\n width: `calc(100% - ${spacing(6)}px)`,\n },\n },\n },\n anchorOriginTopCenter: {\n top: 0,\n [breakpoints.up('sm')]: {\n top: spacing(1.5),\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)',\n },\n [breakpoints.up('md')]: {\n top: spacing(3),\n },\n },\n anchorOriginBottomCenter: {\n bottom: 0,\n [breakpoints.up('sm')]: {\n bottom: spacing(1.5),\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)',\n },\n [breakpoints.up('md')]: {\n bottom: spacing(3),\n },\n },\n anchorOriginTopRight: {\n top: 0,\n right: 0,\n [breakpoints.up('sm')]: {\n left: 'auto',\n top: spacing(1.5),\n right: spacing(1.5),\n },\n [breakpoints.up('md')]: {\n top: spacing(3),\n right: spacing(3),\n },\n },\n anchorOriginBottomRight: {\n bottom: 0,\n right: 0,\n [breakpoints.up('sm')]: {\n left: 'auto',\n bottom: spacing(1.5),\n right: spacing(1.5),\n },\n [breakpoints.up('md')]: {\n bottom: spacing(3),\n right: spacing(3),\n },\n },\n anchorOriginTopLeft: {\n top: 0,\n left: 0,\n [breakpoints.up('sm')]: {\n right: 'auto',\n top: spacing(1.5),\n left: spacing(1.5),\n },\n [breakpoints.up('md')]: {\n top: spacing(3),\n left: spacing(3),\n },\n },\n anchorOriginBottomLeft: {\n bottom: 0,\n left: 0,\n [breakpoints.up('sm')]: {\n right: 'auto',\n bottom: spacing(1.5),\n left: spacing(1.5),\n },\n [breakpoints.up('md')]: {\n bottom: spacing(3),\n left: spacing(3),\n },\n },\n};\n","import spacing from '../spacing';\nimport breakpoints from '../breakpoints';\n\nexport default {\n root: {\n flexWrap: 'nowrap',\n padding: spacing(1.5),\n borderRadius: 'unset',\n [breakpoints.up('sm')]: {\n minWidth: 'auto',\n maxWidth: 'none',\n width: 300,\n borderRadius: spacing(1),\n },\n [breakpoints.up('xl')]: {\n width: 320,\n },\n },\n message: {\n padding: `0 ${22 + spacing(1)}px`,\n position: 'relative',\n width: '100%',\n '& > svg': {\n position: 'absolute',\n top: -2,\n left: -2,\n fontSize: 24,\n },\n },\n action: {\n position: 'absolute',\n top: spacing(0.5),\n right: spacing(0.5),\n marginRight: 0,\n paddingLeft: spacing(1.5),\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\nimport { lighten } from '@material-ui/core/styles';\nimport spacing from '../spacing';\nimport palette from '../palette';\n\nexport default {\n root: {\n padding: 0,\n width: 28,\n height: 20,\n marginRight: spacing(1),\n overflow: 'unset',\n },\n switchBase: {\n width: 40,\n height: 40,\n padding: 8,\n left: -10,\n top: -10,\n color: palette.action.hover,\n '&$checked': {\n transform: 'translateX(8px)',\n },\n '&$disabled': {\n color: palette.secondary.light,\n },\n '&$checked + $track': {\n opacity: 1,\n },\n '&$disabled + $track, &$disabled $thumb': {\n opacity: 1,\n },\n },\n colorPrimary: {\n '&$checked': {\n color: palette.primary.main,\n },\n '&$disabled': {\n color: palette.secondary.light,\n },\n '&$disabled$checked': {\n color: palette.primary.main,\n },\n '&$checked + $track': {\n backgroundColor: palette.primary.main,\n },\n '&$disabled + $track': {\n backgroundColor: lighten(palette.secondary.main, 0.65),\n },\n '&$disabled$checked + $track': {\n backgroundColor: lighten(palette.secondary.main, 0.65),\n },\n },\n colorSecondary: {\n '& + $track': {\n backgroundColor: palette.error.main,\n },\n '&$checked': {\n color: palette.error.main,\n },\n '&$disabled': {\n color: palette.secondary.main,\n },\n '&$disabled$checked': {\n color: palette.error.main,\n },\n '&$checked + $track': {\n backgroundColor: palette.error.main,\n },\n '&$disabled + $track': {\n backgroundColor: lighten(palette.secondary.main, 0.65),\n },\n '&$disabled$checked + $track': {\n backgroundColor: lighten(palette.secondary.main, 0.65),\n },\n },\n track: {\n transition: transitions.create(['background-color'], {\n duration: transitions.duration.shortest,\n }),\n width: '100%',\n height: 20,\n position: 'absolute',\n left: 0,\n top: '50%',\n marginTop: -10,\n borderRadius: 10,\n backgroundColor: palette.secondary.main,\n opacity: 1,\n },\n thumb: {\n width: 16,\n height: 16,\n backgroundColor: palette.common.white,\n boxShadow: 'none',\n },\n sizeSmall: {\n padding: 0,\n width: 24,\n height: 16,\n marginRight: spacing(0.5),\n '& $track': {\n height: 16,\n marginTop: -8,\n borderRadius: 8,\n },\n '& $thumb': {\n width: 12,\n height: 12,\n },\n '& $switchBase': {\n width: 32,\n height: 32,\n top: -8,\n left: -8,\n padding: 4,\n '&$checked': {\n transform: 'translateX(8px)',\n },\n },\n '& + .MuiFormControlLabel-label': {\n fontSize: 12,\n },\n },\n};\n","import typography from '../typography';\nimport spacing from '../spacing';\nimport palette from '../palette';\n\nexport default {\n root: {\n padding: spacing(1.5, 1),\n\n '&:first-child': {\n paddingLeft: 0,\n },\n '&:last-child': {\n paddingRight: 0,\n },\n },\n head: {\n paddingTop: spacing(0.5),\n paddingBottom: spacing(0.5),\n fontSize: 12,\n fontWeight: typography.fontWeightRegular,\n textTransform: 'none',\n color: palette.text.secondary,\n lineHeight: 1,\n },\n stickyHeader: {\n backgroundColor: palette.common.white,\n },\n body: {\n fontSize: typography.htmlFontSize,\n color: 'inherit',\n },\n footer: {\n paddingTop: spacing(0.5),\n paddingBottom: spacing(0.5),\n fontSize: 12,\n fontWeight: typography.fontWeightRegular,\n },\n sizeSmall: {\n padding: spacing(0.5),\n '&:first-child': {\n paddingLeft: 0,\n },\n '&:last-child': {\n paddingRight: 0,\n },\n },\n};\n","import typography from '../typography';\nimport palette from '../palette';\n\nexport default {\n root: {\n '&:hover > *': {\n color: 'inherit',\n },\n '&:focus > *': {\n color: 'inherit',\n },\n },\n active: {\n color: palette.primary.main,\n fontWeight: typography.fontWeightMedium,\n '&:hover': {\n color: palette.primary.dark,\n },\n '&:focus': {\n color: palette.primary.dark,\n },\n '& $icon': {\n opacity: 1,\n },\n '& > *': {\n color: 'inherit',\n },\n },\n icon: {\n opacity: 0.75,\n marginRight: 2,\n marginLeft: 2,\n },\n};\n","import shape from '@material-ui/core/styles/shape';\nimport transitions from '@material-ui/core/styles/transitions';\nimport breakpoints from '../breakpoints';\nimport palette from '../palette';\nimport spacing from '../spacing';\nimport shadows from '../shadows';\nimport typography from '../typography';\n\nexport default {\n root: {\n borderRadius: shape.borderRadius,\n padding: spacing(0, 1),\n minHeight: 48,\n lineHeight: 1.2,\n fontSize: typography.htmlFontSize,\n minWidth: 'auto',\n transition: transitions.create(['background-color', 'color', 'box-shadow', 'border'], {\n duration: transitions.duration.short,\n }),\n [breakpoints.up('sm')]: {\n minWidth: 'auto',\n },\n [breakpoints.up('md')]: {\n minWidth: 'auto',\n padding: spacing(0, 1.5),\n },\n [breakpoints.up('lg')]: {\n padding: spacing(0, 2),\n },\n },\n wrapper: {},\n labelIcon: {\n minHeight: 48,\n paddingTop: 0,\n '& $wrapper': {\n flexDirection: 'row',\n '& > *:first-child': {\n fontSize: 20,\n marginBottom: 0,\n marginRight: spacing(0.75),\n [breakpoints.up('md')]: {\n marginRight: spacing(1),\n },\n },\n },\n },\n selected: {},\n textColorPrimary: {\n color: palette.text.primary,\n '& svg': {\n fill: palette.text.disabled,\n },\n '&$selected': {\n boxShadow: shadows[6],\n backgroundColor: palette.background.paper,\n '& svg': {\n fill: palette.primary.light,\n },\n },\n },\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n background: palette.background.paper,\n color: palette.text.primary,\n },\n};\n","import breakpoints from '../breakpoints';\nimport custom from '../custom';\nimport palette from '../palette';\nimport spacing from '../spacing';\nimport typography from '../typography';\n\nexport default {\n tooltip: {\n backdropFilter: 'blur(3px)',\n backgroundColor: custom.tooltipBackground,\n color: palette.common.white,\n borderRadius: spacing(0.375),\n padding: spacing(0.75, 1.5),\n fontSize: 12,\n fontWeight: typography.fontWeightRegular,\n lineHeight: 1,\n maxWidth: 300,\n textAlign: 'center',\n userSelect: 'none',\n },\n arrow: {\n fontSize: 8,\n color: custom.tooltipBackground,\n },\n tooltipPlacementLeft: {\n margin: spacing(0, 1.5),\n [breakpoints.up('sm')]: {\n margin: spacing(0, 0.75),\n },\n },\n tooltipPlacementRight: {\n margin: spacing(0, 1.5),\n [breakpoints.up('sm')]: {\n margin: spacing(0, 0.75),\n },\n },\n tooltipPlacementTop: {\n margin: spacing(1.5, 0),\n [breakpoints.up('sm')]: {\n margin: spacing(0.75, 0),\n },\n },\n tooltipPlacementBottom: {\n margin: spacing(1.5, 0),\n [breakpoints.up('sm')]: {\n margin: spacing(0.75, 0),\n },\n },\n};\n","import typography from '../typography';\nimport palette from '../palette';\n\nexport default {\n h1: {\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.5',\n color: 'inherit',\n },\n h2: {\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.5',\n color: 'inherit',\n },\n h3: {\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.5',\n color: 'inherit',\n },\n h4: {\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.5',\n color: 'inherit',\n },\n h5: {\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.5',\n color: 'inherit',\n },\n h6: {\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.5',\n color: 'inherit',\n },\n body1: {\n fontFamily: 'inherit',\n lineHeight: '1.5',\n color: 'inherit',\n },\n body2: {\n fontFamily: 'inherit',\n lineHeight: '1.6',\n color: 'inherit',\n },\n caption: {\n fontWeight: 'inherit',\n fontFamily: 'inherit',\n lineHeight: '1.6',\n },\n subtitle1: {\n fontFamily: 'inherit',\n lineHeight: '1.5',\n color: palette.text.secondary,\n },\n subtitle2: {\n fontFamily: 'inherit',\n lineHeight: '1.6',\n color: palette.text.secondary,\n },\n button: {},\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n marginLeft: 0,\n marginRight: 0,\n backgroundColor: 'transparent',\n color: palette.text.secondary,\n borderRadius: 2,\n '&:hover, &:focus': {\n backgroundColor: 'transparent',\n color: palette.primary.main,\n },\n '&:active': {\n backgroundColor: 'transparent',\n },\n },\n icon: {\n width: 24,\n height: 14,\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\n\nexport default {\n root: {\n bottom: 0,\n right: 0,\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n transition: transitions.create(['background-color', 'color', 'box-shadow', 'border'], {\n duration: transitions.duration.short,\n }),\n },\n legend: {\n display: 'none',\n },\n legendLabelled: {\n display: 'none',\n },\n legendNotched: {\n maxWidth: 1000,\n },\n};\n","import transitions from '@material-ui/core/styles/transitions';\n\nexport default {\n root: {\n '& svg:not($layer)': {\n transform: 'scale(1.1)',\n },\n '&$checked svg': {\n '&$layer': {\n transform: 'scale(1.1)',\n transition: transitions.create('transform', {\n easing: transitions.easing.easeOut,\n duration: transitions.duration.shortest,\n }),\n },\n '&:not($layer)': {\n transform: 'scale(1.0)',\n },\n },\n },\n layer: {\n transform: 'scale(0)',\n transition: transitions.create('transform', {\n easing: transitions.easing.easeIn,\n duration: transitions.duration.shortest,\n }),\n '& path': {\n d:\n 'path(\"M 12 2 C 6.4771525 2 2 6.4771525 2 12 C 2 17.522847 6.4771525 22 12 22 C 17.522847 22 22 17.522847 22 12 C 22 6.4771525 17.522847 2 12 2 z M 12 7 C 14.761424 7 17 9.2385763 17 12 C 17 14.761424 14.761424 17 12 17 C 9.2385762 17 7 14.761424 7 12 C 7 9.2385763 9.2385762 7 12 7 z\")',\n },\n },\n checked: {},\n};\n","import MuiAlert from './MuiAlert';\nimport MuiAlertTitle from './MuiAlertTitle';\nimport MuiAppBar from './MuiAppBar';\nimport MuiAutocomplete from './MuiAutocomplete';\nimport MuiAvatar from './MuiAvatar';\nimport MuiAvatarGroup from './MuiAvatarGroup';\nimport MuiBackdrop from './MuiBackdrop';\nimport MuiBadge from './MuiBadge';\nimport MuiBottomNavigation from './MuiBottomNavigation';\nimport MuiBottomNavigationAction from './MuiBottomNavigationAction';\nimport MuiBreadcrumbs from './MuiBreadcrumbs';\nimport MuiButton from './MuiButton';\nimport MuiButtonBase from './MuiButtonBase';\nimport MuiButtonGroup from './MuiButtonGroup';\nimport MuiCard from './MuiCard';\nimport MuiCardActions from './MuiCardActions';\nimport MuiCardContent from './MuiCardContent';\nimport MuiCardHeader from './MuiCardHeader';\nimport MuiCssBaseline from './MuiCssBaseline';\nimport MuiCheckbox from './MuiCheckbox';\nimport MuiChip from './MuiChip';\nimport MuiContainer from './MuiContainer';\nimport MuiDialog from './MuiDialog';\nimport MuiDialogActions from './MuiDialogActions';\nimport MuiDialogContent from './MuiDialogContent';\nimport MuiDialogTitle from './MuiDialogTitle';\nimport MuiDrawer from './MuiDrawer';\nimport MuiFab from './MuiFab';\nimport MuiFormControl from './MuiFormControl';\nimport MuiFormControlLabel from './MuiFormControlLabel';\nimport MuiFormGroup from './MuiFormGroup';\nimport MuiFormHelperText from './MuiFormHelperText';\nimport MuiFormLabel from './MuiFormLabel';\nimport MuiIconButton from './MuiIconButton';\nimport MuiInput from './MuiInput';\nimport MuiInputAdornment from './MuiInputAdornment';\nimport MuiInputBase from './MuiInputBase';\nimport MuiInputLabel from './MuiInputLabel';\nimport MuiLinearProgress from './MuiLinearProgress';\nimport MuiList from './MuiList';\nimport MuiListItem from './MuiListItem';\nimport MuiListItemIcon from './MuiListItemIcon';\nimport MuiListItemSecondaryAction from './MuiListItemSecondaryAction';\nimport MuiListItemText from './MuiListItemText';\nimport MuiListSubheader from './MuiListSubheader';\nimport MuiNativeSelect from './MuiNativeSelect';\nimport MuiMenuItem from './MuiMenuItem';\nimport MuiOutlinedInput from './MuiOutlinedInput';\nimport MuiPickersArrowSwitcher from './MuiPickersArrowSwitcher';\n// import MuiPickersBasePicker from './MuiPickersBasePicker';\nimport MuiPickersCalendar from './MuiPickersCalendar';\n// import MuiPickersCalendarHeader from './MuiPickersCalendarHeader';\n// import MuiPickersDatePickerRoot from './MuiPickersDatePickerRoot';\nimport MuiPickersDateRangeDay from './MuiPickersDateRangeDay';\nimport MuiPickersDateRangePickerInput from './MuiPickersDateRangePickerInput';\nimport MuiPickersDateRangePickerToolbarProps from './MuiPickersDateRangePickerToolbarProps';\nimport MuiPickersDay from './MuiPickersDay';\nimport MuiPickersDesktopDateRangeCalendar from './MuiPickersDesktopDateRangeCalendar';\nimport MuiPickersModalDialog from './MuiPickersModalDialog';\nimport MuiPickersPopper from './MuiPickersPopper';\nimport MuiPickersToolbar from './MuiPickersToolbar';\nimport MuiPickersToolbarButton from './MuiPickersToolbarButton';\nimport MuiPickersToolbarText from './MuiPickersToolbarText';\n// import MuiPickersYear from './MuiPickersYear';\n// import MuiPickersYearSelection from './MuiPickersYearSelection';\nimport MuiPaper from './MuiPaper';\nimport MuiPopover from './MuiPopover';\nimport MuiRadio from './MuiRadio';\nimport MuiSelect from './MuiSelect';\nimport MuiSlider from './MuiSlider';\nimport MuiSnackbar from './MuiSnackbar';\nimport MuiSnackbarContent from './MuiSnackbarContent';\nimport MuiSwitch from './MuiSwitch';\nimport MuiTableCell from './MuiTableCell';\nimport MuiTableRow from './MuiTableRow';\nimport MuiTableSortLabel from './MuiTableSortLabel';\nimport MuiTab from './MuiTab';\nimport MuiTabs from './MuiTabs';\nimport MuiToolbar from './MuiToolbar';\nimport MuiTooltip from './MuiTooltip';\nimport MuiTouchRipple from './MuiTouchRipple';\nimport MuiTypography from './MuiTypography';\nimport PrivateBreadcrumbCollapsed from './PrivateBreadcrumbCollapsed';\nimport PrivateNotchedOutline from './PrivateNotchedOutline';\nimport PrivateRadioButtonIcon from './PrivateRadioButtonIcon';\nimport PrivateSwitchBase from './PrivateSwitchBase';\n\nexport default {\n MuiAlert,\n MuiAlertTitle,\n MuiAppBar,\n MuiAutocomplete,\n MuiAvatar,\n MuiAvatarGroup,\n MuiBackdrop,\n MuiBadge,\n MuiBottomNavigation,\n MuiBottomNavigationAction,\n MuiBreadcrumbs,\n MuiButton,\n MuiButtonBase,\n MuiButtonGroup,\n MuiCard,\n MuiCardActions,\n MuiCardContent,\n MuiCardHeader,\n MuiCssBaseline,\n MuiCheckbox,\n MuiChip,\n MuiContainer,\n MuiDialog,\n MuiDialogActions,\n MuiDialogContent,\n MuiDialogTitle,\n MuiDrawer,\n MuiFab,\n MuiFormControl,\n MuiFormControlLabel,\n MuiFormGroup,\n MuiFormHelperText,\n MuiFormLabel,\n MuiIconButton,\n MuiInput,\n MuiInputAdornment,\n MuiInputBase,\n MuiInputLabel,\n MuiLinearProgress,\n MuiList,\n MuiListItem,\n MuiListItemIcon,\n MuiListItemSecondaryAction,\n MuiListItemText,\n MuiListSubheader,\n MuiNativeSelect,\n MuiMenuItem,\n MuiOutlinedInput,\n MuiPickersArrowSwitcher,\n // MuiPickersBasePicker,\n MuiPickersCalendar,\n // MuiPickersCalendarHeader,\n // MuiPickersDatePickerRoot,\n MuiPickersDateRangeDay,\n MuiPickersDateRangePickerInput,\n MuiPickersDateRangePickerToolbarProps,\n MuiPickersDay,\n MuiPickersDesktopDateRangeCalendar,\n MuiPickersModalDialog,\n MuiPickersPopper,\n MuiPickersToolbar,\n MuiPickersToolbarButton,\n MuiPickersToolbarText,\n // MuiPickersYear,\n // MuiPickersYearSelection,\n MuiPaper,\n MuiPopover,\n MuiRadio,\n MuiSelect,\n MuiSlider,\n MuiSnackbar,\n MuiSnackbarContent,\n MuiSwitch,\n MuiTableCell,\n MuiTableRow,\n MuiTableSortLabel,\n MuiTab,\n MuiTabs,\n MuiToolbar,\n MuiTooltip,\n MuiTouchRipple,\n MuiTypography,\n PrivateBreadcrumbCollapsed,\n PrivateNotchedOutline,\n PrivateRadioButtonIcon,\n PrivateSwitchBase,\n};\n","export default {\n root: {\n fontFamily: 'inherit',\n },\n};\n","export default {\n root: {},\n};\n","export default {\n paperAnchorDockedLeft: {\n borderRight: 'none',\n },\n paperAnchorDockedTop: {\n borderBottom: 'none',\n },\n paperAnchorDockedRight: {\n borderLeft: 'none',\n },\n paperAnchorDockedBottom: {\n borderTop: 'none',\n },\n};\n","export default {\n marginDense: {\n marginTop: 0,\n marginBottom: 0,\n },\n};\n","export default {\n adornedStart: {\n '& > svg': {\n fontSize: 18,\n marginRight: 6,\n },\n },\n adornedEnd: {\n '& > svg': {\n fontSize: 18,\n marginLeft: 6,\n },\n },\n};\n","export default {\n root: {\n paddingTop: 4,\n paddingBottom: 4,\n '& > .MuiListItem-divider:last-child': {\n borderBottom: 'none',\n },\n },\n};\n","export default {\n root: {\n right: 12,\n },\n};\n","export default {\n root: {\n marginTop: 0,\n marginBottom: 0,\n },\n inset: {\n paddingLeft: 32,\n },\n};\n","export default {\n select: {\n '&:focus': {\n backgroundColor: 'transparent',\n },\n },\n selectMenu: {\n paddingRight: 16,\n },\n icon: {\n width: 18,\n height: 18,\n top: 'calc(50% - 10px)',\n right: -3,\n },\n};\n","export default {\n root: {},\n iconButton: {\n backgroundColor: 'transparent',\n },\n previousMonthButtonMargin: {\n marginRight: 0,\n },\n hidden: {},\n};\n","export default {\n root: {},\n penIcon: {\n display: 'none',\n /* position: 'absolute',\n top: '50%',\n right: 0,\n transform: 'translateY(-50%)', */\n },\n dateTextContainer: {\n display: 'flex',\n },\n};\n","export default {\n dialogRoot: {\n minWidth: 'auto',\n maxWidth: 280,\n },\n dialogRootWider: {\n minWidth: 286,\n },\n dialogContainer: {\n '&:focus > $dialogRoot': {\n outline: 'auto',\n '@media (pointer:coarse)': {\n outline: 0,\n },\n },\n },\n dialog: {\n '&:first-child': {\n padding: 0,\n },\n },\n dialogAction: {},\n withAdditionalAction: {\n justifyContent: 'flex-start',\n '& > *:first-child': {\n marginRight: 'auto',\n },\n },\n};\n","export default {\n paper: {\n overflow: 'hidden',\n },\n};\n","export default {\n selectMenu: {\n minHeight: 48,\n lineHeight: '24px',\n paddingRight: 32,\n '&[class*=\"MuiOutlinedInput-input-\"] + input + $icon': {\n right: '2px !important',\n },\n },\n icon: {\n width: 16,\n height: 16,\n top: '50%',\n lineHeight: 1,\n marginTop: -8,\n right: 3,\n },\n select: {\n '&:focus': {\n backgroundColor: 'transparent',\n },\n },\n};\n","export default {\n root: {\n height: 'auto',\n },\n head: {\n height: '1.8rem',\n },\n footer: {\n height: '1.8rem',\n },\n};\n","export default {\n root: {\n minHeight: 48,\n },\n scroller: {},\n indicator: {\n display: 'none',\n },\n};\n","export default {\n ripple: {\n opacity: 0,\n },\n rippleVisible: {\n opacity: 0.075,\n },\n child: {\n opacity: 1,\n },\n childLeaving: {\n opacity: 0,\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.05,\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.075,\n },\n },\n '@keyframes exit': {\n '0%': {\n opacity: 0.075,\n },\n '100%': {\n opacity: 0,\n },\n },\n};\n","export default {\n root: {\n padding: 6,\n },\n};\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Alert'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'None'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Alarm'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AlarmAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AlertFull'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Archive'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AlignCenter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AlignJustify'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AlignLeft'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AlignRight'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Anchor'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Apple'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Apps'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowDownSLine'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowCircleDown'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowCircleLeft'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowCircleRight'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowCircleTop'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowDown'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowLeftSLine'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowRightSLine'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowLeft'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowTopSLine'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowRight'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ArrowTop'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CalendarAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AspectRatio'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Attachment'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AudioNext'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'AudioPrev'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BatteryCharging'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BatteryEmpty'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BatteryFull'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BatteryLow'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BatteryMedium'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Block'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Bluetooth'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Bolt'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Book'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BookmarkAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BookmarkFull'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Bookmark'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderAll'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderBottom'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderHorizontal'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderInner'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderLeft'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderOutline'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderRight'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderStyle'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderTop'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BorderVertical'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BrightnessAuto'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BrightnessHigh'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BrightnessLow'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'BrightnessMedium'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Bug'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Bulb'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CalendarEdit'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CalendarDays'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CalendarSelectDay'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CalendarRemove'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Check'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Calendar'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Camera'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Car'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ChartBar'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ChartPie'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ChatBalloon'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CheckFill'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CheckboxBlankOutlined'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CheckboxMarked'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ChevronLeft'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CheckboxMultipleBlank'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CheckboxMultipleMarked'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ChevronDown'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ChevronRight'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Close'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ChevronTop'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Copy'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Cloud'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Column2Vertical'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CommentAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Comment'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Company'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Cut'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Copyright'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'CreditCard'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Crop'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Delete'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Dashboard'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Download'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Desktop'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Difference'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Direction'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Dns'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Dollar'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Drag'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'DragIndicator'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Edit'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(, 'DropDownFill');\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(, 'DropUpFill');\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Email'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'EmailAlt'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FileAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(, 'Equal');\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Equalizer'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Euro'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Explore'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Extension'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Facebook'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n 'FileColor'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FileEdit'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FileRemove'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'File'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'MultipleFiles'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FolderAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n 'FileZipColor'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FilmCamera'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FilmCameraOutlined'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Filter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Flag'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FlipToBack'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FlipToFront'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n \n \n \n \n \n \n \n ,\n 'FolderColor'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FolderOpen'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Folder'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FullscreenExit'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FormatBold'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FormatIndentDecrease'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FormatIndentIncrease'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FormatItalic'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FormatLineSpacing'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FormatStrikethrough'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'FormatUnderline'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Franc'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Fullscreen'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Globe'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Functions'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n 'GoogleAuthenticatorColor'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Glyph'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Google'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Help'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'GpsFixed'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'GpsOff'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Gps'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Health'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'HeartFull'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Heart'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'HourglassProgress'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Home'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'HorizontalAlignCenter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'HorizontalAlignLeft'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'HorizontalAlignRight'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'HourglassEmpty'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'HourglassFull'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ImportExport'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Info'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Inbox'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'IndeterminateCheckbox'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'InsertEmoticon'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Instagram'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Intersect'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Key'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'InvertColor'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Layers'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Keyboard'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Label'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'LayerAlignBottomCenter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'LayerAlignHorizontal'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'LayerAlignLeftCenter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'LayerAlignRightCenter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'LayerAlignTopCenter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'LayerAlignVertical'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Linkedin'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'LinkIcon'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Menu'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ListBullet'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Lock'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Map'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Medium'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'MoreHor'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'MicOff'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Mic'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'MinusCircle'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Minus'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Mobile'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Notification'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'MoreVer'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Mouse'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Navigation'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'NearMe'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'OpenInNew'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Opacity'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'OpenInBrowser'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Paste'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Parking'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PauseCircle'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Pen'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Pause'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Pen'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Preview'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Performance'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PhoneCallback'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PhoneForwarded'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PhoneInTalk'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PhoneMissed'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PhonePaused'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Phone'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PhotoAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Photo'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Photos'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Plane'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PlayCircle'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Play'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Plugin'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Plus'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PlusCircle'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Publish'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Pound'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Protect'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Refresh'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Quote'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'RadioButtonChecked'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'RadioButtonUnchecked'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Redo'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Logout'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Remove'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Reply'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'PublicOff'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'MobileDataOff'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Search'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Report'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Rotate'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Ruble'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Settings'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'SelectAll'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Send'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Share'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Shield'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Slider'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ShoppingCart'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Shuffle'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n ,\n 'Sms'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Sort'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'SortingDown'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'SortingUp'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Stopwatch'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'StarEmpty'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Star'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Success'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Substract'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Time'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Suitcase'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Sync'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Tablet'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Tag'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'TextFields'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ThumbDown'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ThumbUp'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Ticket'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Upload'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Transaction'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'TrendingDown'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'TrendingUp'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Trophy'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'TurnOff'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Tv'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Twitter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Undo'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'UnfoldLess'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'UnfoldMore'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Union'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Unlink'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Unlock'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'UserAdd'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'UserDelete'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'User'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Users'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n ,\n 'UserSettings'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Drive'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'UsersFill'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewBoxes'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Verified'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VerticalAlignBottom'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VerticalAlignCenter'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VerticalAlignTop'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Video'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VisibilityOff'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewDay'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewLp'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewSchedule'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewSlider'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewTable'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewThreeColumns'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewTwoColumns'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ViewWeek'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Visibility'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Wallet'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Voice'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VolumeMax'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VolumeMid'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VolumeMin'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'VolumeOff'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n \n \n ,\n 'Workspaces'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Warning'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Wifi'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n \n \n \n \n \n ,\n 'CertificateIcon'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'Yen'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ZoomIn'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n ,\n 'ZoomOut'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n \n \n \n ,\n 'FilesWithShield'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\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 'CertificateIcon2'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n 'CertificateFileIcon'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n 'ESignIcon'\n);\n","import React from 'react';\nimport createSvgIcon from '@material-ui/icons/utils/createSvgIcon';\n\nexport default createSvgIcon(\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n 'DriveIcon'\n);\n","import React from 'react';\nimport { Fade, Slide } from '@material-ui/core';\n\nimport {\n CheckboxBlankOutlined as CheckboxIcon,\n CheckboxMarked as CheckboxCheckedIcon,\n IndeterminateCheckbox as CheckboxIndeterminateIcon,\n Alert as AlertIcon,\n ArrowDownSLine as ChevronDownIcon,\n ArrowRightSLine as ChevronRightIcon,\n Close as CloseIcon,\n} from 'src/components/CustomIcon';\n\nexport default {\n MuiAutocomplete: {\n popupIcon: ,\n forcePopupIcon: false,\n closeIcon: ,\n },\n MuiAppBar: {\n elevation: 0,\n color: 'default',\n },\n MuiButtonBase: {\n focusRipple: true,\n },\n MuiIconButton: {\n centerRipple: false,\n },\n MuiList: {\n disablePadding: true,\n },\n MuiListItem: {\n divider: true,\n },\n MuiListItemText: {\n disableTypography: true,\n },\n MuiTabs: {\n textColor: 'primary',\n },\n MuiButton: {\n variant: 'contained',\n color: 'primary',\n },\n MuiFab: {\n size: 'large',\n color: 'default',\n },\n MuiCheckbox: {\n color: 'primary',\n icon: ,\n checkedIcon: ,\n indeterminateIcon: ,\n },\n MuiRadio: {\n color: 'primary',\n },\n MuiTextField: {\n variant: 'outlined',\n size: 'medium',\n InputProps: {\n rows: 4,\n },\n InputLabelProps: {\n disableAnimation: true,\n shrink: true,\n },\n },\n MuiCircularProgress: {\n color: 'primary',\n size: 32,\n thickness: 2.5,\n },\n MuiSwitch: {\n color: 'primary',\n },\n MuiSelect: {\n IconComponent: ChevronDownIcon,\n variant: 'outlined',\n },\n MuiInputLabel: {\n variant: 'outlined',\n },\n MuiLabel: {\n disableAnimation: true,\n shrink: true,\n },\n MuiDrawer: {\n elevation: 12,\n },\n MuiPaper: {\n elevation: 8,\n variant: 'elevation',\n },\n MuiDialog: {\n PaperProps: {\n elevation: 12,\n },\n },\n MuiTooltip: {\n enterDelay: 100,\n enterTouchDelay: 600,\n disableTouchListener: false,\n leaveTouchDelay: 1000,\n arrow: true,\n },\n MuiHidden: {\n implementation: 'css',\n },\n MuiPopover: {\n marginThreshold: 8,\n elevation: 12,\n transitionDuration: 200,\n TransitionComponent: Fade,\n },\n MuiCard: {\n raised: false,\n },\n MuiCardHeader: {\n titleTypographyProps: {\n variant: 'h5',\n },\n },\n MuiAvatar: {},\n MuiBadge: {\n color: 'primary',\n overlap: 'circle',\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n },\n MuiBreadcrumbs: {\n separator: ,\n },\n MuiSnackbar: {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center',\n },\n transitionDuration: {\n enter: 200,\n exit: 200,\n },\n TransitionComponent: Slide,\n },\n MuiAlert: {\n variant: 'filled',\n elevation: 0,\n iconMapping: {\n error: ,\n info: ,\n success: ,\n warning: ,\n },\n },\n MuiAvatarGroup: {\n max: 6,\n },\n MuiToggleButtonGroup: {\n exclusive: true,\n },\n MuiLink: {\n underline: 'none',\n },\n};\n","import createMuiTheme from '@material-ui/core/styles/createMuiTheme';\nimport breakpoints from './options/breakpoints';\nimport mixins from './options/mixins';\nimport overrides from './options/overrides';\nimport palette from './options/palette';\nimport props from './options/props';\nimport shadows from './options/shadows';\nimport spacing from './options/spacing';\nimport typography from './options/typography';\nimport custom from './options/custom';\n\nconst theme = createMuiTheme({\n shape: {\n borderRadius: 6,\n },\n breakpoints,\n mixins,\n overrides,\n palette,\n props,\n shadows,\n spacing,\n typography,\n custom,\n});\n\nexport default theme;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport authConstants from 'src/redux/constants/auth.constants';\n\nconst initialState = {\n apiKeys: [],\n apiKeysRequestStatus: RequestStatus.IDLE,\n permissions: [],\n permissionsStatus: RequestStatus.IDLE,\n createNewApiKeyStatus: RequestStatus.IDLE,\n deleteApiKeyStatus: RequestStatus.IDLE,\n deleteTokenRequestStatus: RequestStatus.IDLE,\n deleteUserAccountStatus: RequestStatus.IDLE,\n emailBeforeConfirmation: null,\n lastSendEmailTimestamp: 0,\n lastSendSmsTimestamp: 0,\n patchEmailRequestStatus: RequestStatus.IDLE,\n patchLanguageStatus: RequestStatus.IDLE,\n patchPasswordRequestStatus: RequestStatus.IDLE,\n patchPhoneRequestStatus: RequestStatus.IDLE,\n patchUsernameRequestStatus: RequestStatus.IDLE,\n phoneNumberBeforeConfirmation: null,\n postEmailRequestError: null,\n postEmailRequestStatus: RequestStatus.IDLE,\n postPhoneRequestError: null,\n postPhoneRequestStatus: RequestStatus.IDLE,\n tokenStatus: RequestStatus.IDLE,\n userProfile: null,\n userProfileRequestStatus: RequestStatus.IDLE,\n};\nfunction auth(state = initialState, action) {\n switch (action.type) {\n case authConstants.GET_API_KEYS_REQUEST:\n return {\n ...state,\n apiKeysRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.GET_API_KEYS_SUCCESS:\n return {\n ...state,\n apiKeys: action.payload,\n apiKeysRequestStatus: RequestStatus.IDLE,\n };\n case authConstants.GET_API_KEYS_ERROR:\n return {\n ...state,\n apiKeysRequestStatus: RequestStatus.ERROR,\n };\n\n case authConstants.GET_PERMISSIONS_REQUEST:\n return {\n ...state,\n apiKeysRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.GET_PERMISSIONS_SUCCESS:\n return {\n ...state,\n permissions: action.payload,\n permissionsStatus: RequestStatus.IDLE,\n };\n case authConstants.GET_PERMISSIONS_ERROR:\n return {\n ...state,\n apiKeysRequestStatus: RequestStatus.ERROR,\n };\n\n case authConstants.CREATE_API_KEY_REQUEST:\n return {\n ...state,\n createNewApiKeyStatus: RequestStatus.PENDING,\n };\n case authConstants.CREATE_API_KEY_SUCCESS:\n return {\n ...state,\n createNewApiKeyStatus: RequestStatus.IDLE,\n };\n case authConstants.CREATE_API_KEY_ERROR:\n return {\n ...state,\n createNewApiKeyStatus: RequestStatus.ERROR,\n };\n\n case authConstants.DELETE_API_KEY_REQUEST:\n return {\n ...state,\n deleteApiKeyStatus: RequestStatus.PENDING,\n };\n case authConstants.DELETE_API_KEY_SUCCESS:\n return {\n ...state,\n deleteApiKeyStatus: RequestStatus.IDLE,\n };\n case authConstants.DELETE_API_KEY_ERROR:\n return {\n ...state,\n deleteApiKeyStatus: RequestStatus.ERROR,\n };\n\n case authConstants.GET_USER_PROFILE_REQUEST:\n return {\n ...state,\n userProfileRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.GET_USER_PROFILE_SUCCESS:\n return {\n ...state,\n userProfileRequestStatus: RequestStatus.SUCCESS,\n userProfile: action.response.data,\n };\n case authConstants.GET_USER_PROFILE_ERROR:\n return {\n ...state,\n userProfileRequestStatus: RequestStatus.ERROR,\n };\n case authConstants.PATCH_USER_PROFILE_USERNAME_REQUEST:\n return {\n ...state,\n patchUsernameRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.PATCH_USER_PROFILE_USERNAME_SUCCESS:\n return {\n ...state,\n patchUsernameRequestStatus: RequestStatus.SUCCESS,\n userProfile: {\n ...state.userProfile,\n userName: action.updatedUsername,\n },\n };\n case authConstants.PATCH_USER_PROFILE_USERNAME_ERROR:\n return {\n ...state,\n patchUsernameRequestStatus: RequestStatus.ERROR,\n };\n case authConstants.PATCH_USER_PROFILE_PASSWORD_REQUEST:\n return {\n ...state,\n patchPasswordRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.PATCH_USER_PROFILE_PASSWORD_SUCCESS:\n return {\n ...state,\n patchPasswordRequestStatus: RequestStatus.SUCCESS,\n };\n case authConstants.PATCH_USER_PROFILE_PASSWORD_ERROR:\n return {\n ...state,\n patchPasswordRequestStatus: RequestStatus.ERROR,\n };\n case authConstants.PATCH_USER_PROFILE_EMAIL_REQUEST:\n return {\n ...state,\n patchEmailRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.PATCH_USER_PROFILE_EMAIL_SUCCESS:\n return {\n ...state,\n patchEmailRequestStatus: RequestStatus.SUCCESS,\n emailBeforeConfirmation: action.updatedEmail,\n lastSendEmailTimestamp: Date.now(),\n };\n case authConstants.PATCH_USER_PROFILE_EMAIL_ERROR:\n return {\n ...state,\n patchEmailRequestStatus: RequestStatus.ERROR,\n };\n case authConstants.POST_USER_PROFILE_EMAIL_REQUEST:\n return {\n ...state,\n postEmailRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.POST_USER_PROFILE_EMAIL_SUCCESS:\n return {\n ...state,\n postEmailRequestStatus: RequestStatus.SUCCESS,\n postEmailRequestError: null,\n userProfile: {\n ...state.userProfile,\n email: state.emailBeforeConfirmation,\n },\n emailBeforeConfirmation: null,\n };\n case authConstants.POST_USER_PROFILE_EMAIL_ERROR:\n return {\n ...state,\n postEmailRequestStatus: RequestStatus.ERROR,\n postEmailRequestError: action.error.code,\n };\n case authConstants.PATCH_USER_PROFILE_PHONE_REQUEST:\n return {\n ...state,\n patchPhoneRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.PATCH_USER_PROFILE_PHONE_SUCCESS:\n return {\n ...state,\n patchPhoneRequestStatus: RequestStatus.SUCCESS,\n phoneNumberBeforeConfirmation: action.updatedPhoneNumber,\n lastSendSmsTimestamp: Date.now(),\n };\n case authConstants.PATCH_USER_PROFILE_PHONE_ERROR:\n return {\n ...state,\n patchPhoneRequestStatus: RequestStatus.ERROR,\n };\n case authConstants.POST_USER_PROFILE_PHONE_REQUEST:\n return {\n ...state,\n postPhoneRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.POST_USER_PROFILE_PHONE_SUCCESS:\n return {\n ...state,\n postPhoneRequestStatus: RequestStatus.SUCCESS,\n postPhoneRequestError: null,\n userProfile: {\n ...state.userProfile,\n ...state.phoneNumberBeforeConfirmation,\n },\n phoneNumberBeforeConfirmation: null,\n };\n case authConstants.POST_USER_PROFILE_PHONE_ERROR:\n return {\n ...state,\n postPhoneRequestStatus: RequestStatus.ERROR,\n postPhoneRequestError: action.error.code,\n };\n case authConstants.CHECK_TOKEN_STATUS_REQUEST:\n return {\n ...state,\n tokenStatus: RequestStatus.PENDING,\n };\n case authConstants.CHECK_TOKEN_STATUS_SUCCESS:\n return {\n ...state,\n tokenStatus: RequestStatus.SUCCESS,\n };\n case authConstants.CHECK_TOKEN_STATUS_FAILURE:\n return {\n ...state,\n tokenStatus: RequestStatus.ERROR,\n };\n case authConstants.DELETE_TOKEN_USER_REQUEST:\n return {\n ...state,\n deleteTokenRequestStatus: RequestStatus.PENDING,\n };\n case authConstants.DELETE_TOKEN_USER_SUCCESS:\n return {\n ...state,\n deleteTokenRequestStatus: RequestStatus.SUCCESS,\n };\n case authConstants.DELETE_TOKEN_USER_FAILURE:\n return {\n ...state,\n deleteTokenRequestStatus: RequestStatus.ERROR,\n };\n case authConstants.PATCH_USER_PROFILE_LANGUAGE_REQUEST:\n return {\n ...state,\n patchLanguageStatus: RequestStatus.PENDING,\n };\n case authConstants.PATCH_USER_PROFILE_LANGUAGE_SUCCESS:\n return {\n ...state,\n patchLanguageStatus: RequestStatus.SUCCESS,\n userProfile: {\n ...state.userProfile,\n language: action.newLanguage,\n },\n };\n case authConstants.PATCH_USER_PROFILE_LANGUAGE_FAILURE:\n return {\n ...state,\n patchLanguageStatus: RequestStatus.ERROR,\n };\n case authConstants.DELETE_USER_ACCOUNT_REQUEST:\n return {\n ...state,\n deleteUserAccountStatus: RequestStatus.PENDING,\n };\n case authConstants.DELETE_USER_ACCOUNT_SUCCESS:\n return {\n ...state,\n patchLanguageStatus: RequestStatus.SUCCESS,\n };\n case authConstants.DELETE_USER_ACCOUNT_FAILURE:\n return {\n ...state,\n patchLanguageStatus: RequestStatus.ERROR,\n };\n default:\n return state;\n }\n}\n\nexport default auth;\n","enum avatarConstants {\n GET_USER_AVATAR_REQUEST = 'GET_USER_AVATAR_REQUEST',\n GET_USER_AVATAR_SUCCESS = 'GET_USER_AVATAR_SUCCESS',\n GET_USER_AVATAR_ERROR = 'GET_USER_AVATAR_ERROR',\n\n PUT_USER_AVATAR_REQUEST = 'PUT_USER_AVATAR_REQUEST',\n PUT_USER_AVATAR_SUCCESS = 'PUT_USER_AVATAR_SUCCESS',\n PUT_USER_AVATAR_ERROR = 'PUT_USER_AVATAR_ERROR',\n\n DELETE_USER_AVATAR_REQUEST = 'DELETE_USER_AVATAR_REQUEST',\n DELETE_USER_AVATAR_SUCCESS = 'DELETE_USER_AVATAR_SUCCESS',\n DELETE_USER_AVATAR_ERROR = 'DELETE_USER_AVATAR_ERROR',\n\n GET_WORKSPACE_AVATAR_REQUEST = 'GET_WORKSPACE_AVATAR_REQUEST',\n GET_WORKSPACE_AVATAR_SUCCESS = 'GET_WORKSPACE_AVATAR_SUCCESS',\n GET_WORKSPACE_AVATAR_ERROR = 'GET_WORKSPACE_AVATAR_ERROR',\n\n PUT_WORKSPACE_AVATAR_REQUEST = 'PUT_WORKSPACE_AVATAR_REQUEST',\n PUT_WORKSPACE_AVATAR_SUCCESS = 'PUT_WORKSPACE_AVATAR_SUCCESS',\n PUT_WORKSPACE_AVATAR_ERROR = 'PUT_WORKSPACE_AVATAR_ERROR',\n\n DELETE_WORKSPACE_AVATAR_REQUEST = 'DELETE_WORKSPACE_AVATAR_REQUEST',\n DELETE_WORKSPACE_AVATAR_SUCCESS = 'DELETE_WORKSPACE_AVATAR_SUCCESS',\n DELETE_WORKSPACE_AVATAR_ERROR = 'DELETE_WORKSPACE_AVATAR_ERROR',\n}\n\nexport default avatarConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport avatarConstants from '../constants/avatar.constants';\n\nconst initialState = {\n deleteUserAvatarRequestStatus: RequestStatus.IDLE,\n deleteWorkspaceAvatarRequestStatus: RequestStatus.IDLE,\n getUserAvatarRequestStatus: RequestStatus.IDLE,\n getWorkspaceAvatarRequestStatus: RequestStatus.IDLE,\n putUserAvatarRequestStatus: RequestStatus.IDLE,\n putWorkspaceAvatarRequestStatus: RequestStatus.IDLE,\n userAvatar: null,\n workspaceAvatar: null,\n};\n\nfunction avatarStore(state = initialState, action) {\n switch (action.type) {\n case avatarConstants.GET_USER_AVATAR_REQUEST:\n return {\n ...state,\n userAvatar: null,\n getUserAvatarRequestStatus: RequestStatus.PENDING,\n };\n case avatarConstants.GET_USER_AVATAR_SUCCESS:\n return {\n ...state,\n userAvatar: true,\n getUserAvatarRequestStatus: RequestStatus.SUCCESS,\n };\n case avatarConstants.GET_USER_AVATAR_ERROR:\n return {\n ...state,\n userAvatar: false,\n getUserAvatarRequestStatus: RequestStatus.ERROR,\n };\n case avatarConstants.PUT_USER_AVATAR_REQUEST:\n return {\n ...state,\n putUserAvatarRequestStatus: RequestStatus.PENDING,\n };\n case avatarConstants.PUT_USER_AVATAR_SUCCESS:\n return {\n ...state,\n putUserAvatarRequestStatus: RequestStatus.SUCCESS,\n };\n case avatarConstants.PUT_USER_AVATAR_ERROR:\n return {\n ...state,\n putUserAvatarRequestStatus: RequestStatus.ERROR,\n };\n case avatarConstants.DELETE_USER_AVATAR_REQUEST:\n return {\n ...state,\n deleteUserAvatarRequestStatus: RequestStatus.PENDING,\n };\n case avatarConstants.DELETE_USER_AVATAR_SUCCESS:\n return {\n ...state,\n deleteUserAvatarRequestStatus: RequestStatus.SUCCESS,\n };\n case avatarConstants.DELETE_USER_AVATAR_ERROR:\n return {\n ...state,\n deleteUserAvatarRequestStatus: RequestStatus.ERROR,\n };\n\n case avatarConstants.GET_WORKSPACE_AVATAR_REQUEST:\n return {\n ...state,\n workspaceAvatar: null,\n getWorkspaceAvatarRequestStatus: RequestStatus.PENDING,\n };\n case avatarConstants.GET_WORKSPACE_AVATAR_SUCCESS:\n return {\n ...state,\n workspaceAvatar: true,\n getWorkspaceAvatarRequestStatus: RequestStatus.SUCCESS,\n };\n case avatarConstants.GET_WORKSPACE_AVATAR_ERROR:\n return {\n ...state,\n workspaceAvatar: false,\n getWorkspaceAvatarRequestStatus: RequestStatus.ERROR,\n };\n case avatarConstants.PUT_WORKSPACE_AVATAR_REQUEST:\n return {\n ...state,\n putWorkspaceAvatarRequestStatus: RequestStatus.PENDING,\n };\n case avatarConstants.PUT_WORKSPACE_AVATAR_SUCCESS:\n return {\n ...state,\n putWorkspaceAvatarRequestStatus: RequestStatus.SUCCESS,\n };\n case avatarConstants.PUT_WORKSPACE_AVATAR_ERROR:\n return {\n ...state,\n putWorkspaceAvatarRequestStatus: RequestStatus.ERROR,\n };\n case avatarConstants.DELETE_WORKSPACE_AVATAR_REQUEST:\n return {\n ...state,\n deleteWorkspaceAvatarRequestStatus: RequestStatus.PENDING,\n };\n case avatarConstants.DELETE_WORKSPACE_AVATAR_SUCCESS:\n return {\n ...state,\n deleteWorkspaceAvatarRequestStatus: RequestStatus.SUCCESS,\n };\n case avatarConstants.DELETE_WORKSPACE_AVATAR_ERROR:\n return {\n ...state,\n deleteWorkspaceAvatarRequestStatus: RequestStatus.ERROR,\n };\n default:\n return state;\n }\n}\n\nexport default avatarStore;\n","enum billingConstants {\n FETCH_SUBSCRIPTIONS_REQUEST = 'billingConstants/FETCH_SUBSCRIPTIONS_REQUEST',\n FETCH_SUBSCRIPTIONS_SUCCESS = 'billingConstants/FETCH_SUBSCRIPTIONS_SUCCESS',\n FETCH_SUBSCRIPTIONS_FAILURE = 'billingConstants/FETCH_SUBSCRIPTIONS_FAILURE',\n\n SET_TRIAL_SUBSCRIPTION_REQUEST = 'billingConstants/SET_TRIAL_SUBSCRIPTION_REQUEST',\n SET_TRIAL_SUBSCRIPTION_SUCCESS = 'billingConstants/SET_TRIAL_SUBSCRIPTION_SUCCESS',\n SET_TRIAL_SUBSCRIPTION_FAILURE = 'billingConstants/SET_TRIAL_SUBSCRIPTION_FAILURE',\n SET_TRIAL_SUBSCRIPTION_IDLE = 'billingConstants/SET_TRIAL_SUBSCRIPTION_IDLE',\n\n FETCH_CUSTOMER_REQUEST = 'billingConstants/FETCH_CUSTOMER_REQUEST',\n FETCH_CUSTOMER_SUCCESS = 'billingConstants/FETCH_CUSTOMER_SUCCESS',\n FETCH_CUSTOMER_FAILURE = 'billingConstants/FETCH_CUSTOMER_FAILURE',\n\n SET_CUSTOMER_REQUEST = 'billingConstants/SET_CUSTOMER_REQUEST',\n SET_CUSTOMER_SUCCESS = 'billingConstants/SET_CUSTOMER_SUCCESS',\n SET_CUSTOMER_FAILURE = 'billingConstants/SET_CUSTOMER_FAILURE',\n\n RESET_BILLING = 'billingConstants/RESET_BILLING',\n}\n\nexport default billingConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { BillingProduct } from 'src/models/billing.model';\nimport BillingConstants from '../constants/billing.constants';\n\ntype BillingStateType = {\n subscriptions: BillingProduct[];\n fetchSubscriptionsStatus: RequestStatus;\n setTrialSubscriptionStatus: RequestStatus;\n setCustomerStatus: RequestStatus;\n isCustomerCreated: boolean;\n};\n\nconst initialState: BillingStateType = {\n subscriptions: [],\n fetchSubscriptionsStatus: RequestStatus.IDLE,\n setTrialSubscriptionStatus: RequestStatus.IDLE,\n setCustomerStatus: RequestStatus.IDLE,\n isCustomerCreated: false,\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\nfunction billingStore(state: BillingStateType = initialState, action: any): BillingStateType {\n switch (action.type) {\n case BillingConstants.FETCH_SUBSCRIPTIONS_REQUEST:\n return {\n ...state,\n fetchSubscriptionsStatus: RequestStatus.PENDING,\n };\n case BillingConstants.FETCH_SUBSCRIPTIONS_SUCCESS:\n return {\n ...state,\n fetchSubscriptionsStatus: RequestStatus.SUCCESS,\n subscriptions: action.payload,\n };\n case BillingConstants.FETCH_SUBSCRIPTIONS_FAILURE:\n return {\n ...state,\n fetchSubscriptionsStatus: RequestStatus.ERROR,\n subscriptions: [],\n };\n case BillingConstants.SET_TRIAL_SUBSCRIPTION_REQUEST:\n return {\n ...state,\n setTrialSubscriptionStatus: RequestStatus.PENDING,\n };\n case BillingConstants.SET_TRIAL_SUBSCRIPTION_SUCCESS:\n return {\n ...state,\n setTrialSubscriptionStatus: RequestStatus.SUCCESS,\n };\n case BillingConstants.SET_TRIAL_SUBSCRIPTION_FAILURE:\n return {\n ...state,\n setTrialSubscriptionStatus: RequestStatus.ERROR,\n };\n case BillingConstants.SET_TRIAL_SUBSCRIPTION_IDLE:\n return {\n ...state,\n setTrialSubscriptionStatus: RequestStatus.IDLE,\n };\n case BillingConstants.FETCH_CUSTOMER_SUCCESS:\n return {\n ...state,\n isCustomerCreated: true,\n };\n case BillingConstants.FETCH_CUSTOMER_REQUEST:\n case BillingConstants.FETCH_CUSTOMER_FAILURE:\n return {\n ...state,\n isCustomerCreated: false,\n };\n case BillingConstants.SET_CUSTOMER_REQUEST:\n return {\n ...state,\n setCustomerStatus: RequestStatus.PENDING,\n };\n case BillingConstants.SET_CUSTOMER_SUCCESS:\n return {\n ...state,\n setCustomerStatus: RequestStatus.SUCCESS,\n };\n case BillingConstants.SET_CUSTOMER_FAILURE:\n return {\n ...state,\n setCustomerStatus: RequestStatus.ERROR,\n };\n case BillingConstants.RESET_BILLING:\n return initialState;\n default:\n return state;\n }\n}\n\nexport default billingStore;\n","enum communicationsConstants {\n GET_USER_NOTIFICATIONS_CHANNELS_REQUEST = 'GET_USER_NOTIFICATIONS_CHANNELS_REQUEST',\n GET_USER_NOTIFICATIONS_CHANNELS_SUCCESS = 'GET_USER_NOTIFICATIONS_CHANNELS_SUCCESS',\n GET_USER_NOTIFICATIONS_CHANNELS_FAILURE = 'GET_USER_NOTIFICATIONS_CHANNELS_FAILURE',\n\n UPDATE_NOTIFICATION_CHANNEL_REQUEST = 'UPDATE_NOTIFICATION_CHANNEL_REQUEST',\n UPDATE_NOTIFICATION_CHANNEL_SUCCESS = 'UPDATE_NOTIFICATION_CHANNEL_SUCCESS',\n UPDATE_NOTIFICATION_CHANNEL_FAILURE = 'UPDATE_NOTIFICATION_CHANNEL_FAILURE',\n\n GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST = 'GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST',\n GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS = 'GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS',\n GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE = 'GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE',\n\n UPDATE_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER = 'UPDATE_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER',\n GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_REQUEST = 'GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_REQUEST',\n GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_SUCCESS = 'GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_SUCCESS',\n GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_FAILURE = 'GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_FAILURE',\n\n GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST = 'GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST',\n GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS = 'GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS',\n GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE = 'GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE',\n\n SET_USER_NOTIFICATION_AS_READ_REQUEST = 'SET_USER_NOTIFICATION_AS_READ_REQUEST',\n SET_USER_NOTIFICATION_AS_READ_SUCCESS = 'SET_USER_NOTIFICATION_AS_READ_SUCCESS',\n SET_USER_NOTIFICATION_AS_READ_FAILURE = 'SET_USER_NOTIFICATION_AS_READ_FAILURE',\n\n SET_USER_ALL_NOTIFICATIONS_AS_READ_REQUEST = 'SET_USER_ALL_NOTIFICATIONS_AS_READ_REQUEST',\n SET_USER_ALL_NOTIFICATIONS_AS_READ_SUCCESS = 'SET_USER_ALL_NOTIFICATIONS_AS_READ_SUCCESS',\n SET_USER_ALL_NOTIFICATIONS_AS_READ_FAILURE = 'SET_USER_ALL_NOTIFICATIONS_AS_READ_FAILURE',\n\n CLEAR_COMMUNICATIONS_STORE = 'CLEAR_COMMUNICATIONS_STORE',\n}\n\nexport default communicationsConstants;\n","import communicationsConstants from 'src/redux/constants/communications.constants';\nimport { Channel, SystemMessage } from 'src/models/communications.model';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\ntype UpdateChannelsStatusesType = { [k: string]: RequestStatus };\n\nconst prepareUpdateChannelsMethodStatuses = (channels: Channel[]) => {\n const statusesObject: UpdateChannelsStatusesType = {};\n channels.forEach((item) => {\n statusesObject[`${item.notificationTemplate}`] = RequestStatus.IDLE;\n });\n return statusesObject;\n};\n\nconst updateChannelMethodStatus = (\n channelsStatuses: UpdateChannelsStatusesType,\n template: string,\n status: RequestStatus\n) => {\n const newChannelsStatuses = channelsStatuses;\n newChannelsStatuses[template] = status;\n return newChannelsStatuses;\n};\n\nconst updateChannelMethod = (channels: Channel[], newChannel: Channel) => {\n const updatedIndex = channels.findIndex(\n (item) => item.notificationTemplate === newChannel.notificationTemplate\n );\n const newChannelsObject = [...channels];\n newChannelsObject[updatedIndex] = newChannel;\n\n return newChannelsObject;\n};\n\nconst setSystemMessageAsRead = (systemMessages: SystemMessage[], notificationId: number) =>\n systemMessages.filter((item) => item.id !== notificationId);\n\nexport type CommunicationsState = {\n channels: Channel[];\n channelsStatus: RequestStatus;\n updateChannelsStatuses: UpdateChannelsStatusesType;\n setSystemAllMessagesAsRead: RequestStatus;\n setSystemMessageAsRead: RequestStatus;\n settingSystemMessageAsReadById: number | null;\n unreadSystemMessagesCounter: number;\n unreadSystemMessagesCounterStatus: RequestStatus;\n unreadSystemMessages: SystemMessage[];\n fetchUnreadSystemMessages: RequestStatus;\n readSystemMessages: SystemMessage[];\n fetchReadSystemMessages: RequestStatus;\n hasMoreUnreadSystemMessages: boolean;\n hasMoreReadSystemMessages: boolean;\n};\n\nconst initialState = {\n channels: [],\n channelsStatus: RequestStatus.IDLE,\n updateChannelsStatuses: {},\n setSystemAllMessagesAsRead: RequestStatus.IDLE,\n setSystemMessageAsRead: RequestStatus.IDLE,\n settingSystemMessageAsReadById: null,\n unreadSystemMessagesCounter: 0,\n unreadSystemMessagesCounterStatus: RequestStatus.IDLE,\n unreadSystemMessages: [],\n fetchUnreadSystemMessages: RequestStatus.IDLE,\n readSystemMessages: [],\n fetchReadSystemMessages: RequestStatus.IDLE,\n hasMoreUnreadSystemMessages: false,\n hasMoreReadSystemMessages: false,\n};\n\nfunction communicationsStore(\n state: CommunicationsState = initialState,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n action: any // FIXME: fix this in next stage\n): CommunicationsState {\n switch (action.type) {\n case communicationsConstants.GET_USER_NOTIFICATIONS_CHANNELS_REQUEST:\n return {\n ...state,\n channelsStatus: RequestStatus.PENDING,\n };\n case communicationsConstants.GET_USER_NOTIFICATIONS_CHANNELS_SUCCESS:\n return {\n ...state,\n channels: action.channels,\n channelsStatus: RequestStatus.SUCCESS,\n updateChannelsStatuses: prepareUpdateChannelsMethodStatuses(action.channels),\n };\n case communicationsConstants.GET_USER_NOTIFICATIONS_CHANNELS_FAILURE:\n return {\n ...state,\n channelsStatus: RequestStatus.ERROR,\n };\n\n case communicationsConstants.UPDATE_NOTIFICATION_CHANNEL_REQUEST:\n return {\n ...state,\n updateChannelsStatuses: updateChannelMethodStatus(\n state.updateChannelsStatuses || {},\n action.data.notificationTemplate,\n RequestStatus.PENDING\n ),\n };\n case communicationsConstants.UPDATE_NOTIFICATION_CHANNEL_SUCCESS: {\n return {\n ...state,\n updateChannelsStatuses: updateChannelMethodStatus(\n state.updateChannelsStatuses || {},\n action.newChannel.notificationTemplate,\n RequestStatus.SUCCESS\n ),\n channels: updateChannelMethod(state.channels || [], action.newChannel),\n };\n }\n\n case communicationsConstants.UPDATE_NOTIFICATION_CHANNEL_FAILURE:\n return {\n ...state,\n updateChannelsStatuses: updateChannelMethodStatus(\n state.updateChannelsStatuses || {},\n action.data.notificationTemplate,\n RequestStatus.ERROR\n ),\n };\n\n case communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST:\n return {\n ...state,\n fetchUnreadSystemMessages: RequestStatus.PENDING,\n };\n case communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS:\n return {\n ...state,\n unreadSystemMessages: action.replace\n ? action.data\n : [...state.unreadSystemMessages, ...action.data],\n hasMoreUnreadSystemMessages: action.hasNextPage,\n fetchUnreadSystemMessages: RequestStatus.SUCCESS,\n };\n case communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE:\n return {\n ...state,\n fetchUnreadSystemMessages: RequestStatus.ERROR,\n };\n\n case communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_REQUEST:\n return {\n ...state,\n unreadSystemMessagesCounterStatus: RequestStatus.PENDING,\n };\n case communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_SUCCESS:\n return {\n ...state,\n unreadSystemMessagesCounter: action.data,\n unreadSystemMessagesCounterStatus: RequestStatus.SUCCESS,\n };\n case communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_FAILURE:\n return {\n ...state,\n unreadSystemMessagesCounterStatus: RequestStatus.ERROR,\n };\n case communicationsConstants.UPDATE_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER:\n return {\n ...state,\n unreadSystemMessagesCounter: action.payload,\n };\n\n case communicationsConstants.GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST:\n return {\n ...state,\n fetchReadSystemMessages: RequestStatus.PENDING,\n };\n case communicationsConstants.GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS:\n return {\n ...state,\n readSystemMessages: [...state.readSystemMessages, ...action.data],\n hasMoreReadSystemMessages: action.hasNextPage,\n fetchReadSystemMessages: RequestStatus.SUCCESS,\n };\n case communicationsConstants.GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE:\n return {\n ...state,\n fetchReadSystemMessages: RequestStatus.ERROR,\n };\n\n case communicationsConstants.SET_USER_NOTIFICATION_AS_READ_REQUEST:\n return {\n ...state,\n settingSystemMessageAsReadById: action.notificationId,\n setSystemMessageAsRead: RequestStatus.PENDING,\n };\n case communicationsConstants.SET_USER_NOTIFICATION_AS_READ_SUCCESS: {\n // get message marked as read\n const readMessage = state.unreadSystemMessages.find(\n (item) => item.id === action.notificationId\n );\n // update read flag\n if (readMessage) readMessage.read = true;\n return {\n ...state,\n // Filter unread messages by selected id\n unreadSystemMessages: setSystemMessageAsRead(\n state.unreadSystemMessages,\n action.notificationId\n ),\n // Add selected message to read list\n readSystemMessages:\n readMessage && state.readSystemMessages.length > 0\n ? [readMessage, ...state.readSystemMessages]\n : [...state.readSystemMessages],\n settingSystemMessageAsReadById: null,\n unreadSystemMessagesCounter: state.unreadSystemMessagesCounter - 1,\n setSystemMessageAsRead: RequestStatus.SUCCESS,\n };\n }\n\n case communicationsConstants.SET_USER_NOTIFICATION_AS_READ_FAILURE:\n return {\n ...state,\n settingSystemMessageAsReadById: null,\n setSystemMessageAsRead: RequestStatus.ERROR,\n };\n\n case communicationsConstants.SET_USER_ALL_NOTIFICATIONS_AS_READ_REQUEST:\n return {\n ...state,\n setSystemAllMessagesAsRead: RequestStatus.PENDING,\n };\n case communicationsConstants.SET_USER_ALL_NOTIFICATIONS_AS_READ_SUCCESS:\n return {\n ...state,\n unreadSystemMessages: [],\n unreadSystemMessagesCounter: initialState.unreadSystemMessagesCounter,\n readSystemMessages:\n state.unreadSystemMessages.length > 0\n ? [\n ...state.unreadSystemMessages.map((message) => {\n if (!message.read) {\n message.read = true;\n }\n return message;\n }),\n ...state.readSystemMessages,\n ]\n : [],\n setSystemAllMessagesAsRead: RequestStatus.SUCCESS,\n };\n case communicationsConstants.SET_USER_ALL_NOTIFICATIONS_AS_READ_FAILURE:\n return {\n ...state,\n setSystemAllMessagesAsRead: RequestStatus.ERROR,\n };\n\n case communicationsConstants.CLEAR_COMMUNICATIONS_STORE:\n return {\n ...initialState,\n unreadSystemMessagesCounter: state.unreadSystemMessagesCounter,\n };\n\n default:\n return state;\n }\n}\n\nexport default communicationsStore;\n","enum contactsConstants {\n CONTACTS_FETCH_ENTITIES_REQUEST = 'CONTACTS_FETCH_ENTITIES_REQUEST',\n CONTACTS_FETCH_ENTITIES_SUCCESS = 'CONTACTS_FETCH_ENTITIES_SUCCESS',\n CONTACTS_FETCH_ENTITIES_FAILURE = 'CONTACTS_FETCH_ENTITIES_FAILURE',\n\n INITIALIZE_CONTACTS = 'INITIALIZE_CONTACTS',\n CONTACTS_ADD_TO_QUEUE = 'CONTACTS_ADD_TO_QUEUE',\n}\n\nexport default contactsConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport contactsConstants from '../constants/contacts.constants';\n\nconst initialState = {\n contactBookEntitiesFetchStatus: RequestStatus.IDLE,\n contacts: {},\n contactsAvailable: [],\n contactsQueue: [],\n fetchingContacts: [],\n groups: {},\n};\n\nconst addUniqueItemsToArray = (currentInProgress, toAdd) => {\n const finalProgress = [...currentInProgress];\n toAdd.forEach((contactId) => {\n if (currentInProgress.indexOf(contactId) === -1) {\n finalProgress.push(contactId);\n }\n });\n return finalProgress;\n};\n\nconst removeItemsFromArray = (currentInProgress, toRemove) => {\n const finalArray = [];\n currentInProgress.forEach((item) => {\n if (toRemove.indexOf(item) === -1) {\n finalArray.push(item);\n }\n });\n return finalArray;\n};\n\nfunction contactsStore(state = initialState, action) {\n switch (action.type) {\n case contactsConstants.INITIALIZE_CONTACTS:\n return {\n ...initialState,\n };\n case contactsConstants.CONTACTS_ADD_TO_QUEUE:\n return {\n ...state,\n contactsQueue: addUniqueItemsToArray(\n state.contactsQueue,\n removeItemsFromArray(action.ids, [...state.fetchingContacts, ...state.contactsAvailable]) // filter out contacts that are already available and in progress\n ), // and then add unique ids to queue\n };\n case contactsConstants.CONTACTS_FETCH_ENTITIES_REQUEST:\n return {\n ...state,\n fetchingContacts: addUniqueItemsToArray(state.fetchingContacts, action.ids),\n contactsQueue: removeItemsFromArray(state.contactsQueue, action.ids),\n contactBookEntitiesFetchStatus: RequestStatus.PENDING,\n };\n case contactsConstants.CONTACTS_FETCH_ENTITIES_SUCCESS: {\n const newEntityContacts = { ...state.contacts, ...action.contacts };\n const newEntityGroups = { ...state.groups, ...action.groups };\n const entitiesFound = [...Object.keys(action.contacts), ...Object.keys(action.groups)];\n action.initialIds.forEach((initialItem) => {\n if (entitiesFound.indexOf(initialItem) === -1) {\n entitiesFound[initialItem] = {\n identityId: initialItem,\n email: initialItem,\n workspaceName: initialItem,\n }; // if contact is not found, then we have to assume that, it's unavailable anymore, so we need to add dummy\n entitiesFound.push(initialItem);\n }\n });\n return {\n ...state,\n contactBookEntitiesFetchStatus: RequestStatus.SUCCESS,\n contacts: newEntityContacts,\n groups: newEntityGroups,\n contactsAvailable: addUniqueItemsToArray(state.contactsAvailable, entitiesFound),\n fetchingContacts: removeItemsFromArray(state.fetchingContacts, action.initialIds),\n };\n }\n case contactsConstants.CONTACTS_FETCH_ENTITIES_FAILURE: {\n return {\n ...state,\n contactBookEntitiesFetchStatus: RequestStatus.ERROR,\n };\n }\n default:\n return state;\n }\n}\n\nexport default contactsStore;\n","enum documentCreationConstants {\n UPLOAD_FILE_REQUEST = 'UPLOAD_FILE_REQUEST',\n UPLOAD_FILE_SUCCESS = 'UPLOAD_FILE_SUCCESS',\n UPLOAD_FILE_FAILURE = 'UPLOAD_FILE_FAILURE',\n\n GET_UPLOAD_TOKEN_REQUEST = 'GET_UPLOAD_TOKEN_REQUEST',\n GET_UPLOAD_TOKEN_SUCCESS = 'GET_UPLOAD_TOKEN_SUCCESS',\n GET_UPLOAD_TOKEN_FAILURE = 'GET_UPLOAD_TOKEN_FAILURE',\n\n CREATE_NEW_DOCUMENT_REQUEST = 'CREATE_NEW_DOCUMENT_REQUEST',\n CREATE_NEW_DOCUMENT_SUCCESS = 'CREATE_NEW_DOCUMENT_SUCCESS',\n CREATE_NEW_DOCUMENT_FAILURE = 'CREATE_NEW_DOCUMENT_FAILURE',\n\n ADD_FILE_DROPZONE = 'ADD_FILE_DROPZONE',\n\n DELETE_FILE_DROPZONE = 'DELETE_FILE_DROPZONE',\n\n SET_PROGRESS_UPLOAD_FILE = 'SET_PROGRESS_UPLOAD_FILE',\n\n SET_TEMPLATE_DOCUMENT = 'SET_TEMPLATE_DOCUMENT',\n\n SET_SIGNATURE_DOCUMENT = 'SET_SIGNATURE_DOCUMENT',\n\n CLEAR_DOCUMENT_CREATOR_STORE = 'CLEAR_DOCUMENT_CREATOR_STORE',\n}\n\nexport default documentCreationConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport documentCreationConstants from '../constants/documentCreation.constants';\n\nconst initialState = {\n createNewDocumentStatus: RequestStatus.IDLE,\n filesListDropzone: [],\n getUploadTokenStatus: RequestStatus.IDLE,\n newDocument: {},\n templateDocument: '',\n uploadFileStatus: RequestStatus.IDLE,\n uploadTokens: [],\n};\n\nconst deleteToken = (state, index) =>\n state.uploadTokens.filter((item, elIndex) => elIndex !== index);\n\nconst deleteFile = (state, index) =>\n state.filesListDropzone.filter((item, elIndex) => elIndex !== index);\n\nconst renderFiles = (state, uploadTokens) =>\n state.filesListDropzone.map((file, index) => ({\n ...file,\n token: uploadTokens[index]?.token,\n fileId: uploadTokens[index]?.fileId,\n }));\n\nconst renderUploadProgress = (state, progress, fileToken) =>\n state.filesListDropzone.map((file) => {\n if (file.token === fileToken) {\n return {\n ...file,\n progress,\n };\n }\n return {\n ...file,\n };\n });\n\nconst changeStatusUploadFile = (state, status, token) =>\n state.filesListDropzone.map((file) => {\n if (file.token === token) {\n return {\n ...file,\n uploadStatus: status,\n };\n }\n return {\n ...file,\n progress: file.progress,\n };\n });\n\nfunction documentCreatorStore(state = initialState, action) {\n switch (action.type) {\n case documentCreationConstants.UPLOAD_FILE_REQUEST:\n return {\n ...state,\n uploadFileStatus: RequestStatus.PENDING,\n };\n case documentCreationConstants.UPLOAD_FILE_SUCCESS:\n return {\n ...state,\n uploadFileStatus: RequestStatus.SUCCESS,\n filesListDropzone: changeStatusUploadFile(state, RequestStatus.SUCCESS, action.token),\n };\n case documentCreationConstants.UPLOAD_FILE_FAILURE:\n return {\n ...state,\n uploadFileStatus: RequestStatus.ERROR,\n filesListDropzone: changeStatusUploadFile(state, RequestStatus.ERROR, action.token),\n };\n case documentCreationConstants.GET_UPLOAD_TOKEN_REQUEST:\n return {\n ...state,\n getUploadTokenStatus: RequestStatus.PENDING,\n };\n case documentCreationConstants.GET_UPLOAD_TOKEN_SUCCESS:\n return {\n ...state,\n getUploadTokenStatus: RequestStatus.SUCCESS,\n uploadTokens: [...state.uploadTokens, action.data],\n filesListDropzone: renderFiles(state, [...state.uploadTokens, action.data]),\n };\n case documentCreationConstants.GET_UPLOAD_TOKEN_FAILURE:\n return {\n ...state,\n getUploadTokenStatus: RequestStatus.ERROR,\n };\n\n case documentCreationConstants.CREATE_NEW_DOCUMENT_REQUEST:\n return {\n ...state,\n createNewDocumentStatus: RequestStatus.PENDING,\n };\n case documentCreationConstants.CREATE_NEW_DOCUMENT_SUCCESS:\n return {\n ...state,\n createNewDocumentStatus: RequestStatus.SUCCESS,\n newDocument: action.data,\n };\n case documentCreationConstants.CREATE_NEW_DOCUMENT_FAILURE:\n return {\n ...state,\n createNewDocumentStatus: RequestStatus.ERROR,\n };\n\n case documentCreationConstants.ADD_FILE_DROPZONE:\n return {\n ...state,\n filesListDropzone: [...state.filesListDropzone, action.file],\n };\n\n case documentCreationConstants.DELETE_FILE_DROPZONE:\n return {\n ...state,\n uploadTokens: deleteToken(state, action.index),\n filesListDropzone: deleteFile(state, action.index),\n uploadFileStatus: RequestStatus.IDLE,\n };\n case documentCreationConstants.SET_PROGRESS_UPLOAD_FILE:\n return {\n ...state,\n filesListDropzone: renderUploadProgress(state, action.progress, action.token),\n };\n case documentCreationConstants.SET_TEMPLATE_DOCUMENT:\n return {\n ...state,\n templateDocument: action.template,\n };\n case documentCreationConstants.CLEAR_DOCUMENT_CREATOR_STORE:\n return {\n ...initialState,\n };\n default:\n return state;\n }\n}\n\nexport default documentCreatorStore;\n","enum documentDisplayConstants {\n GET_DOCUMENT_REQUEST = 'GET_DOCUMENT_REQUEST',\n GET_DOCUMENT_SUCCESS = 'GET_DOCUMENT_SUCCESS',\n GET_DOCUMENT_FAILURE = 'GET_DOCUMENT_FAILURE',\n\n GET_DOWNLOAD_TOKEN_REQUEST = 'GET_DOWNLOAD_TOKEN_REQUEST',\n GET_DOWNLOAD_TOKEN_SUCCESS = 'GET_DOWNLOAD_TOKEN_SUCCESS',\n GET_DOWNLOAD_TOKEN_FAILURE = 'GET_DOWNLOAD_TOKEN_FAILURE',\n\n DOWNLOAD_FILE_REQUEST = 'DOWNLOAD_FILE_REQUEST',\n DOWNLOAD_FILE_SUCCESS = 'DOWNLOAD_FILE_SUCCESS',\n DOWNLOAD_FILE_FAILURE = 'DOWNLOAD_FILE_FAILURE',\n\n ADD_EMPTY_FILE = 'ADD_EMPTY_FILE',\n SET_ACTIVE_FILE_INDEX = 'SET_ACTIVE_FILE_INDEX',\n\n CLEAR_FILES_AND_TOKENS = 'CLEAR_FILES_AND_TOKENS',\n CLEAR_DOCUMENT_DISPLAY_STORE = 'CLEAR_DOCUMENT_DISPLAY_STORE',\n\n WS_UPDATE_DOCUMENT = 'WS_UPDATE_DOCUMENT',\n\n DOCUMENT_SIGN = 'DOCUMENT_SIGN',\n DOCUMENT_REJECT = 'DOCUMENT_REJECT',\n DOCUMENT_INVALIDATE = 'DOCUMENT_INVALIDATE',\n DOCUMENT_INVALIDATE_TEMPORARILY = 'DOCUMENT_INVALIDATE_TEMPORARILY',\n DOCUMENT_VALIDATE = 'DOCUMENT_VALIDATE',\n DOCUMENT_SET_TRANSFERABILITY = 'DOCUMENT_SET_TRANSFERABILITY',\n}\n\nexport default documentDisplayConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport documentDisplayConstants from '../constants/documentDisplay.constants';\n\nconst initialState = {\n activeFileIndex: -1,\n allFilesLoadedStatus: false,\n document: {},\n downloadFileStatus: RequestStatus.IDLE,\n downloadFiles: [],\n downloadTokens: [],\n getDocumentStatus: RequestStatus.IDLE,\n getDownloadTokenStatus: RequestStatus.IDLE,\n};\n\nconst renderTokens = (state, tokens, indexFile) => {\n if (state.activeFileIndex !== indexFile) {\n return [];\n }\n return tokens.map((item) => ({\n token: item.data.data.token,\n page: parseFloat(item.config.url.split('=')[2]),\n indexFile,\n }));\n};\n\nconst renderDocument = (document) => {\n document.files = document?.files?.sort((a, b) => (a.index > b.index ? 1 : -1)) || [];\n return document;\n};\n\nconst addEmptyFile = (state, indexFile) => {\n const emptyFile = [\n {\n file: '',\n page: 0,\n indexFile,\n },\n ];\n if (state.document.files) {\n return emptyFile.filter((item) => item.page <= state.document.files[item.indexFile].pages);\n }\n\n return emptyFile;\n};\n\nconst renderFiles = (state, files, indexFile) => {\n if (state.activeFileIndex !== indexFile) {\n return [];\n }\n\n const filesMap = files.map((item, index) => ({\n file: URL.createObjectURL(item.data),\n page:\n state.downloadFiles.filter((item) => item.indexFile === state.activeFileIndex).length + index,\n indexFile,\n }));\n\n return indexFile > -1\n ? filesMap.filter((item) => item.page < state.document.files[item.indexFile].pages)\n : filesMap;\n};\n\nconst checkAllFilesLoaded = (state, files) => {\n let allFilesCount = 0;\n state.document?.files?.forEach((file) => {\n if (file.pages === 0) {\n allFilesCount += 1;\n } else {\n allFilesCount += file.pages;\n }\n });\n return state.downloadFiles.length + files.length === allFilesCount;\n};\n\nconst updateDocumentByWebSocket = (documentState, newDocumentData) => {\n const newDocumentState = documentState;\n newDocumentState.name = newDocumentData.name;\n newDocumentState.tags = newDocumentData.tags;\n newDocumentState.updatedAt = newDocumentData.updatedAt;\n newDocumentState.status = newDocumentData.status;\n\n return newDocumentState;\n};\n\nfunction documentManagementStore(state = initialState, action) {\n switch (action.type) {\n case documentDisplayConstants.GET_DOCUMENT_REQUEST:\n return {\n ...state,\n getDocumentStatus: RequestStatus.PENDING,\n };\n case documentDisplayConstants.GET_DOCUMENT_SUCCESS:\n return {\n ...state,\n getDocumentStatus: RequestStatus.SUCCESS,\n document: renderDocument(action.data),\n activeFileIndex: action.data?.files?.length ? action.data.files[0].index : -1,\n };\n case documentDisplayConstants.GET_DOCUMENT_FAILURE:\n return {\n ...state,\n getDocumentStatus: RequestStatus.ERROR,\n };\n case documentDisplayConstants.GET_DOWNLOAD_TOKEN_REQUEST:\n return {\n ...state,\n getDownloadTokenStatus: RequestStatus.PENDING,\n };\n case documentDisplayConstants.GET_DOWNLOAD_TOKEN_SUCCESS:\n return {\n ...state,\n getDownloadTokenStatus: RequestStatus.SUCCESS,\n downloadTokens: [\n ...state.downloadTokens,\n ...renderTokens(state, action.data, action.index),\n ],\n };\n case documentDisplayConstants.GET_DOWNLOAD_TOKEN_FAILURE:\n return {\n ...state,\n getDownloadTokenStatus: RequestStatus.ERROR,\n };\n case documentDisplayConstants.DOWNLOAD_FILE_REQUEST:\n return {\n ...state,\n downloadFileStatus: RequestStatus.PENDING,\n };\n case documentDisplayConstants.DOWNLOAD_FILE_SUCCESS:\n return {\n ...state,\n downloadFileStatus: RequestStatus.SUCCESS,\n downloadFiles: [\n ...state.downloadFiles,\n ...renderFiles(state, action.folders, action.index),\n ],\n allFilesLoadedStatus: checkAllFilesLoaded(state, action.folders),\n };\n case documentDisplayConstants.DOWNLOAD_FILE_FAILURE:\n return {\n ...state,\n downloadFileStatus: RequestStatus.ERROR,\n };\n\n case documentDisplayConstants.ADD_EMPTY_FILE:\n return {\n ...state,\n downloadFiles: [...state.downloadFiles, ...addEmptyFile(state, action.index)],\n allFilesLoadedStatus: checkAllFilesLoaded(state, addEmptyFile(state, action.index)),\n };\n case documentDisplayConstants.SET_ACTIVE_FILE_INDEX:\n return {\n ...state,\n activeFileIndex: action.index,\n };\n case documentDisplayConstants.CLEAR_FILES_AND_TOKENS:\n return {\n ...state,\n getDownloadTokenStatus: RequestStatus.IDLE,\n downloadFileStatus: RequestStatus.IDLE,\n downloadFiles: [],\n downloadTokens: [],\n activeFileIndex: action.index >= 0 ? action.index : -1,\n };\n\n case documentDisplayConstants.WS_UPDATE_DOCUMENT:\n return {\n ...state,\n document: updateDocumentByWebSocket(state.document, action.documentData),\n };\n\n case documentDisplayConstants.CLEAR_DOCUMENT_DISPLAY_STORE:\n return {\n ...initialState,\n };\n\n default:\n return state;\n }\n}\n\nexport default documentManagementStore;\n","enum documentDownloadConstants {\n DOWNLOAD_DOCUMENT_REQUEST = 'DOWNLOAD_DOCUMENT_REQUEST',\n DOWNLOAD_DOCUMENT_SUCCESS = 'DOWNLOAD_DOCUMENT_SUCCESS',\n DOWNLOAD_DOCUMENT_FAILURE = 'DOWNLOAD_DOCUMENT_FAILURE',\n\n DOWNLOAD_DOCUMENT_FILE_REQUEST = 'DOWNLOAD_DOCUMENT_FILE_REQUEST',\n DOWNLOAD_DOCUMENT_FILE_SUCCESS = 'DOWNLOAD_DOCUMENT_FILE_SUCCESS',\n DOWNLOAD_DOCUMENT_FILE_FAILURE = 'DOWNLOAD_DOCUMENT_FILE_FAILURE',\n\n WS_DOWNLOAD_DOCUMENT = 'WP_DOWNLOAD_DOCUMENT',\n}\n\nexport default documentDownloadConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport documentDownloadConstants from '../constants/documentDownload.constants';\n\nconst initialState = {\n documentDownloadStatus: RequestStatus.IDLE,\n downloadDocuments: [],\n filesToDownloadStatus: RequestStatus.IDLE,\n};\n\nconst updateDownloadDocumentFromState = (documents, documentId) => {\n const documentsArray = [...documents];\n const index = documentsArray.indexOf(documentId);\n\n if (index !== -1) {\n return documentsArray;\n }\n\n return [...documentsArray, documentId];\n};\n\nconst deleteDownloadDocumentFromState = (documents, documentId) => {\n const documentsArray = [...documents];\n const index = documentsArray.indexOf(documentId);\n\n if (index !== -1) {\n documentsArray.splice(index, 1);\n }\n return documentsArray;\n};\n\nfunction documentDownloadStore(state = initialState, action) {\n switch (action.type) {\n case documentDownloadConstants.DOWNLOAD_DOCUMENT_REQUEST:\n return {\n ...state,\n downloadDocuments: updateDownloadDocumentFromState(\n state.downloadDocuments,\n action.documentId\n ),\n documentDownloadStatus: RequestStatus.PENDING,\n };\n case documentDownloadConstants.DOWNLOAD_DOCUMENT_SUCCESS:\n return {\n ...state,\n documentDownloadStatus: RequestStatus.SUCCESS,\n };\n case documentDownloadConstants.DOWNLOAD_DOCUMENT_FAILURE:\n return {\n ...state,\n downloadDocuments: deleteDownloadDocumentFromState(\n state.downloadDocuments,\n action.documentId\n ),\n documentDownloadStatus: RequestStatus.ERROR,\n };\n\n case documentDownloadConstants.DOWNLOAD_DOCUMENT_FILE_REQUEST:\n return {\n ...state,\n filesToDownloadStatus: RequestStatus.PENDING,\n };\n case documentDownloadConstants.DOWNLOAD_DOCUMENT_FILE_SUCCESS:\n return {\n ...state,\n filesToDownloadStatus: RequestStatus.SUCCESS,\n };\n case documentDownloadConstants.DOWNLOAD_DOCUMENT_FILE_FAILURE:\n return {\n ...state,\n filesToDownloadStatus: RequestStatus.ERROR,\n };\n\n case documentDownloadConstants.WS_DOWNLOAD_DOCUMENT:\n return {\n ...state,\n downloadDocuments: deleteDownloadDocumentFromState(\n state.downloadDocuments,\n action.documentId\n ),\n documentDownloadStatus: RequestStatus.IDLE,\n };\n\n default:\n return state;\n }\n}\n\nexport default documentDownloadStore;\n","enum certificateManagementConstants {\n DOCUMENT_SIGN_REQUEST = 'DOCUMENT_SIGN_REQUEST',\n DOCUMENT_SIGN_SUCCESS = 'DOCUMENT_SIGN_SUCCESS',\n DOCUMENT_SIGN_ERROR = 'DOCUMENT_SIGN_ERROR',\n\n DOCUMENT_REJECT_REQUEST = 'DOCUMENT_REJECT_REQUEST',\n DOCUMENT_REJECT_SUCCESS = 'DOCUMENT_REJECT_SUCCESS',\n DOCUMENT_REJECT_ERROR = 'DOCUMENT_REJECT_ERROR',\n\n DOCUMENT_INVALIDATE_REQUEST = 'DOCUMENT_INVALIDATE_REQUEST',\n DOCUMENT_INVALIDATE_SUCCESS = 'DOCUMENT_INVALIDATE_SUCCESS',\n DOCUMENT_INVALIDATE_ERROR = 'DOCUMENT_INVALIDATE_ERROR',\n\n DOCUMENT_INVALIDATE_TEMPORARILY_REQUEST = 'DOCUMENT_INVALIDATE_TEMPORARILY_REQUEST',\n DOCUMENT_INVALIDATE_TEMPORARILY_SUCCESS = 'DOCUMENT_INVALIDATE_TEMPORARILY_SUCCESS',\n DOCUMENT_INVALIDATE_TEMPORARILY_ERROR = 'DOCUMENT_INVALIDATE_TEMPORARILY_ERROR',\n\n DOCUMENT_VALIDATE_REQUEST = 'DOCUMENT_VALIDATE_REQUEST',\n DOCUMENT_VALIDATE_SUCCESS = 'DOCUMENT_VALIDATE_SUCCESS',\n DOCUMENT_VALIDATE_ERROR = 'DOCUMENT_VALIDATE_ERROR',\n\n DOCUMENT_SET_TRANSFERABILITY_REQUEST = 'DOCUMENT_SET_TRANSFERABILITY_REQUEST',\n DOCUMENT_SET_TRANSFERABILITY_SUCCESS = 'DOCUMENT_SET_TRANSFERABILITY_SUCCESS',\n DOCUMENT_SET_TRANSFERABILITY_ERROR = 'DOCUMENT_SET_TRANSFERABILITY_ERROR',\n\n DOCUMENT_SET_ACCESS_LEVEL_REQUEST = 'DOCUMENT_SET_ACCESS_LEVEL_REQUEST',\n DOCUMENT_SET_ACCESS_LEVEL_SUCCESS = 'DOCUMENT_SET_ACCESS_LEVEL_SUCCESS',\n DOCUMENT_SET_ACCESS_LEVEL_ERROR = 'DOCUMENT_SET_ACCESS_LEVEL_ERROR',\n\n DELETE_USERS_MAIL_INVITATION_REQUEST = 'DELETE_USERS_MAIL_INVITATION_REQUEST',\n DELETE_USERS_MAIL_INVITATION_SUCCESS = 'DELETE_USERS_MAIL_INVITATION_SUCCESS',\n DELETE_USERS_MAIL_INVITATION_ERROR = 'DELETE_USERS_MAIL_INVITATION_ERROR',\n\n INVITE_USERS_BY_MAIL_ERROR = 'INVITE_USERS_BY_MAIL_ERROR',\n\n TRANSFER_OWNERSHIP_REQUEST = 'TRANSFER_OWNERSHIP_REQUEST',\n TRANSFER_OWNERSHIP_SUCCESS = 'TRANSFER_OWNERSHIP_SUCCESS',\n TRANSFER_OWNERSHIP_ERROR = 'TRANSFER_OWNERSHIP_ERROR',\n}\n\nexport default certificateManagementConstants;\n","enum documentInvitationConstants {\n FETCH_DOCUMENT_SIGNERS_REQUEST = 'FETCH_DOCUMENT_SIGNERS_REQUEST',\n FETCH_DOCUMENT_SIGNERS_SUCCESS = 'FETCH_DOCUMENT_SIGNERS_SUCCESS',\n FETCH_DOCUMENT_SIGNERS_ERROR = 'FETCH_DOCUMENT_SIGNERS_ERROR',\n\n REPLACE_DOCUMENT_SIGNERS_REQUEST = 'REPLACE_DOCUMENT_SIGNERS_REQUEST',\n REPLACE_DOCUMENT_SIGNERS_SUCCESS = 'REPLACE_DOCUMENT_SIGNERS_SUCCESS',\n REPLACE_DOCUMENT_SIGNERS_ERROR = 'REPLACE_DOCUMENT_SIGNERS_ERROR',\n\n FETCH_DOCUMENT_ROLES_REQUEST = 'FETCH_DOCUMENT_ROLES_REQUEST',\n FETCH_DOCUMENT_ROLES_SUCCESS = 'FETCH_DOCUMENT_ROLES_SUCCESS',\n FETCH_DOCUMENT_ROLES_ERROR = 'FETCH_DOCUMENT_ROLES_ERROR',\n\n FETCH_DOCUMENT_ROLES_TYPES_REQUEST = 'FETCH_DOCUMENT_ROLES_TYPES_REQUEST',\n FETCH_DOCUMENT_ROLES_TYPES_SUCCESS = 'FETCH_DOCUMENT_ROLES_TYPES_SUCCESS',\n FETCH_DOCUMENT_ROLES_TYPES_ERROR = 'FETCH_DOCUMENT_ROLES_TYPES_ERROR',\n\n UPDATE_SIGNERS_COUNT_REQUEST = 'UPDATE_SIGNERS_COUNT_REQUEST',\n UPDATE_SIGNERS_COUNT_SUCCESS = 'UPDATE_SIGNERS_COUNT_SUCCESS',\n UPDATE_SIGNERS_COUNT_ERROR = 'UPDATE_SIGNERS_COUNT_ERROR',\n\n REPLACE_DOCUMENT_ROLES_REQUEST = 'REPLACE_DOCUMENT_ROLES_REQUEST',\n REPLACE_DOCUMENT_ROLES_PARTIAL_SUCCESS = 'REPLACE_DOCUMENT_ROLES_PARTIAL_SUCCESS',\n REPLACE_DOCUMENT_ROLES_SUCCESS = 'REPLACE_DOCUMENT_ROLES_SUCCESS',\n REPLACE_DOCUMENT_ROLES_ERROR = 'REPLACE_DOCUMENT_ROLES_ERROR',\n\n INVITE_USERS_BY_MAIL_REQUEST = 'INVITE_USERS_BY_MAIL_REQUEST',\n INVITE_USERS_BY_MAIL_SUCCESS = 'INVITE_USERS_BY_MAIL_SUCCESS',\n INVITE_USERS_BY_MAIL_ERROR = 'INVITE_USERS_BY_MAIL_ERROR',\n\n DELETE_USERS_MAIL_INVITATION_REQUEST = 'DELETE_USERS_MAIL_INVITATION_REQUEST',\n DELETE_USERS_MAIL_INVITATION_SUCCESS = 'DELETE_USERS_MAIL_INVITATION_SUCCESS',\n DELETE_USERS_MAIL_INVITATION_ERROR = 'DELETE_USERS_MAIL_INVITATION_ERROR',\n\n GET_WORKSPACE_ENTITIES_REQUEST = 'GET_WORKSPACE_ENTITIES_REQUEST',\n GET_WORKSPACE_ENTITIES_SUCCESS = 'GET_WORKSPACE_ENTITIES_SUCCESS',\n GET_WORKSPACE_ENTITIES_ERROR = 'GET_WORKSPACE_ENTITIES_ERROR',\n\n DOWNLOAD_TRANSFER_OWNERSHIP_PDF_REQUEST = 'DOWNLOAD_TRANSFER_OWNERSHIP_PDF_REQUEST',\n DOWNLOAD_TRANSFER_OWNERSHIP_PDF_SUCCESS = 'DOWNLOAD_TRANSFER_OWNERSHIP_PDF_SUCCESS',\n DOWNLOAD_TRANSFER_OWNERSHIP_PDF_ERROR = 'DOWNLOAD_TRANSFER_OWNERSHIP_PDF_ERROR',\n\n CLEAR_DOCUMENT_INVITATIONS_STORE = 'CLEAR_DOCUMENT_INVITATIONS_STORE',\n}\n\nexport default documentInvitationConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport certificateManagementConstants from 'src/redux/constants/certificateManagement.constants';\nimport documentInvitationsConstants from '../constants/documentInvitiation.constants';\n\nconst initialState = {\n deleteUsersByMailStatus: RequestStatus.IDLE,\n documentRoles: [],\n documentRoleTypes: [],\n fetchDocumentRoleTypesStatus: RequestStatus.IDLE,\n documentSigners: [],\n fetchDocumentRolesStatus: RequestStatus.IDLE,\n fetchDocumentSignersStatus: RequestStatus.IDLE,\n fetchWorkspaceEntitiesStatus: RequestStatus.IDLE,\n inviteUsersByMailStatus: RequestStatus.IDLE,\n isOrderSignificant: false,\n replaceDocumentRolesStatus: RequestStatus.IDLE,\n replaceDocumentSignersStatus: RequestStatus.IDLE,\n documentTransferabilityChangeStatus: RequestStatus.IDLE,\n documentPublicAccessChangeStatus: RequestStatus.IDLE,\n requiredSignersCount: 0,\n workspaceEntities: [],\n};\n\nfunction documentInvitationsStore(state = initialState, action) {\n switch (action.type) {\n case documentInvitationsConstants.FETCH_DOCUMENT_SIGNERS_REQUEST:\n return {\n ...state,\n fetchDocumentSignersStatus: RequestStatus.PENDING,\n };\n case documentInvitationsConstants.FETCH_DOCUMENT_SIGNERS_SUCCESS: {\n const { documentSigners, isOrderSignificant, requiredSignersCount } = action.payload;\n return {\n ...state,\n documentSigners,\n isOrderSignificant,\n requiredSignersCount,\n fetchDocumentSignersStatus: RequestStatus.SUCCESS,\n };\n }\n case documentInvitationsConstants.FETCH_DOCUMENT_SIGNERS_ERROR:\n return {\n ...state,\n fetchDocumentSignersStatus: RequestStatus.ERROR,\n };\n\n case documentInvitationsConstants.REPLACE_DOCUMENT_SIGNERS_REQUEST:\n return {\n ...state,\n replaceDocumentSignersStatus: RequestStatus.PENDING,\n };\n case documentInvitationsConstants.REPLACE_DOCUMENT_SIGNERS_SUCCESS:\n return {\n ...state,\n replaceDocumentSignersStatus: RequestStatus.SUCCESS,\n };\n case documentInvitationsConstants.REPLACE_DOCUMENT_SIGNERS_ERROR:\n return {\n ...state,\n replaceDocumentSignersStatus: RequestStatus.ERROR,\n };\n\n case documentInvitationsConstants.FETCH_DOCUMENT_ROLES_REQUEST:\n return {\n ...state,\n fetchDocumentRolesStatus: RequestStatus.PENDING,\n };\n case documentInvitationsConstants.FETCH_DOCUMENT_ROLES_SUCCESS:\n return {\n ...state,\n fetchDocumentRolesStatus: RequestStatus.SUCCESS,\n documentRoles: action.documentRoles,\n };\n case documentInvitationsConstants.FETCH_DOCUMENT_ROLES_ERROR:\n return {\n ...state,\n fetchDocumentRolesStatus: RequestStatus.ERROR,\n };\n\n case documentInvitationsConstants.FETCH_DOCUMENT_ROLES_TYPES_REQUEST:\n return {\n ...state,\n fetchDocumentRoleTypesStatus: RequestStatus.PENDING,\n };\n case documentInvitationsConstants.FETCH_DOCUMENT_ROLES_TYPES_SUCCESS:\n return {\n ...state,\n fetchDocumentRoleTypesStatus: RequestStatus.SUCCESS,\n documentRoleTypes: action.payload,\n };\n case documentInvitationsConstants.FETCH_DOCUMENT_ROLES_TYPES_ERROR:\n return {\n ...state,\n fetchDocumentRoleTypesStatus: RequestStatus.ERROR,\n };\n\n case documentInvitationsConstants.INVITE_USERS_BY_MAIL_REQUEST:\n return {\n ...state,\n inviteUsersByMailStatus: RequestStatus.PENDING,\n };\n case documentInvitationsConstants.INVITE_USERS_BY_MAIL_SUCCESS:\n return {\n ...state,\n inviteUsersByMailStatus: RequestStatus.SUCCESS,\n };\n case documentInvitationsConstants.INVITE_USERS_BY_MAIL_ERROR:\n return {\n ...state,\n inviteUsersByMailStatus: RequestStatus.ERROR,\n };\n\n case documentInvitationsConstants.DELETE_USERS_MAIL_INVITATION_REQUEST:\n return {\n ...state,\n deleteUsersByMailStatus: RequestStatus.PENDING,\n };\n case documentInvitationsConstants.DELETE_USERS_MAIL_INVITATION_SUCCESS:\n return {\n ...state,\n deleteUsersByMailStatus: RequestStatus.SUCCESS,\n };\n case documentInvitationsConstants.DELETE_USERS_MAIL_INVITATION_ERROR:\n return {\n ...state,\n deleteUsersByMailStatus: RequestStatus.ERROR,\n };\n\n case documentInvitationsConstants.GET_WORKSPACE_ENTITIES_REQUEST:\n return {\n ...state,\n fetchWorkspaceEntitiesStatus: RequestStatus.PENDING,\n };\n case documentInvitationsConstants.GET_WORKSPACE_ENTITIES_SUCCESS:\n return {\n ...state,\n workspaceEntities: action.data,\n fetchWorkspaceEntitiesStatus: RequestStatus.SUCCESS,\n };\n case documentInvitationsConstants.GET_WORKSPACE_ENTITIES_ERROR:\n return {\n ...state,\n fetchWorkspaceEntitiesStatus: RequestStatus.ERROR,\n };\n case documentInvitationsConstants.CLEAR_DOCUMENT_INVITATIONS_STORE:\n return {\n ...initialState,\n };\n\n case certificateManagementConstants.DOCUMENT_SET_TRANSFERABILITY_REQUEST:\n return {\n ...state,\n documentTransferabilityChangeStatus: RequestStatus.PENDING,\n };\n case certificateManagementConstants.DOCUMENT_SET_TRANSFERABILITY_SUCCESS:\n return {\n ...state,\n documentTransferabilityChangeStatus: RequestStatus.SUCCESS,\n };\n case certificateManagementConstants.DOCUMENT_SET_TRANSFERABILITY_ERROR:\n return {\n ...state,\n documentTransferabilityChangeStatus: RequestStatus.ERROR,\n };\n\n case certificateManagementConstants.DOCUMENT_SET_ACCESS_LEVEL_REQUEST:\n return {\n ...state,\n documentPublicAccessChangeStatus: RequestStatus.PENDING,\n };\n case certificateManagementConstants.DOCUMENT_SET_ACCESS_LEVEL_SUCCESS:\n return {\n ...state,\n documentPublicAccessChangeStatus: RequestStatus.SUCCESS,\n };\n case certificateManagementConstants.DOCUMENT_SET_ACCESS_LEVEL_ERROR:\n return {\n ...state,\n documentPublicAccessChangeStatus: RequestStatus.ERROR,\n };\n\n default:\n return state;\n }\n}\n\nexport default documentInvitationsStore;\n","enum documentJoinConstants {\n GET_DOCUMENT_INVITATION_REQUEST = 'GET_DOCUMENT_INVITATION_REQUEST',\n GET_DOCUMENT_INVITATION_SUCCESS = 'GET_DOCUMENT_INVITATION_SUCCESS',\n GET_DOCUMENT_INVITATION_FAILURE = 'GET_DOCUMENT_INVITATION_FAILURE',\n\n ACCEPT_DOCUMENT_INVITATION_REQUEST = 'ACCEPT_DOCUMENT_INVITATION_REQUEST',\n ACCEPT_DOCUMENT_INVITATION_SUCCESS = 'ACCEPT_DOCUMENT_INVITATION_SUCCESS',\n ACCEPT_DOCUMENT_INVITATION_FAILURE = 'ACCEPT_DOCUMENT_INVITATION_FAILURE',\n\n CLEAR_DOCUMENT_INVITATION_STORE = 'CLEAR_DOCUMENT_INVITATION_STORE',\n}\n\nexport default documentJoinConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport documentJoinConstants from '../constants/documentJoin.constants';\n\nconst initialState = {\n documentInvitationData: {},\n fetchAcceptationDocumentInvitationStatus: RequestStatus.IDLE,\n fetchDocumentInvitationStatus: RequestStatus.IDLE,\n};\n\nexport default function documentJoinStore(state = initialState, action) {\n switch (action.type) {\n case documentJoinConstants.GET_DOCUMENT_INVITATION_REQUEST:\n return {\n ...state,\n fetchDocumentInvitationStatus: RequestStatus.PENDING,\n };\n case documentJoinConstants.GET_DOCUMENT_INVITATION_SUCCESS:\n return {\n ...state,\n documentInvitationData: action.data,\n fetchDocumentInvitationStatus: RequestStatus.SUCCESS,\n };\n case documentJoinConstants.GET_DOCUMENT_INVITATION_FAILURE:\n return {\n ...state,\n fetchDocumentInvitationStatus: RequestStatus.ERROR,\n };\n\n case documentJoinConstants.ACCEPT_DOCUMENT_INVITATION_REQUEST:\n return {\n ...state,\n fetchAcceptationDocumentInvitationStatus: RequestStatus.PENDING,\n };\n case documentJoinConstants.ACCEPT_DOCUMENT_INVITATION_SUCCESS:\n return {\n ...state,\n documentInvitationData: action.data,\n fetchAcceptationDocumentInvitationStatus: RequestStatus.SUCCESS,\n };\n case documentJoinConstants.ACCEPT_DOCUMENT_INVITATION_FAILURE:\n return {\n ...state,\n fetchAcceptationDocumentInvitationStatus: RequestStatus.ERROR,\n };\n\n case documentJoinConstants.CLEAR_DOCUMENT_INVITATION_STORE:\n return {\n ...initialState,\n };\n\n default:\n return state;\n }\n}\n","import React, { MouseEvent, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Divider, Menu, MenuItem } from '@material-ui/core';\n\nexport enum DateDropdownType {\n ANY = 'any',\n TODAY = 'today',\n YESTERDAY = 'yesterday',\n LAST_7_DAYS = 'last7Days',\n LAST_30_DAYS = 'last30Days',\n BETWEEN = 'between',\n}\ntype DateDropdownProps = {\n selectedItem: DateDropdownType;\n children: JSX.Element;\n onSelect: (newSelected: DateDropdownType) => void;\n};\n\nconst DateDropdown = ({ selectedItem, onSelect, children }: DateDropdownProps): JSX.Element => {\n const { t } = useTranslation();\n\n const [anchorEl, setAnchorEl] = useState(null);\n\n const options = useMemo(\n () => [\n {\n value: DateDropdownType.ANY,\n label: t('advancedSearch.dateOptions.anyTime'),\n divider: true,\n },\n {\n value: DateDropdownType.TODAY,\n label: t('advancedSearch.dateOptions.today'),\n divider: false,\n },\n {\n value: DateDropdownType.YESTERDAY,\n label: t('advancedSearch.dateOptions.yesterday'),\n divider: true,\n },\n {\n value: DateDropdownType.LAST_7_DAYS,\n label: t('advancedSearch.dateOptions.last7Days'),\n divider: false,\n },\n {\n value: DateDropdownType.LAST_30_DAYS,\n label: t('advancedSearch.dateOptions.last30Days'),\n divider: true,\n },\n {\n value: DateDropdownType.BETWEEN,\n label: t('advancedSearch.dateOptions.between'),\n divider: false,\n },\n ],\n [t]\n );\n\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const onItemClick = (val: DateDropdownType) => {\n onSelect(val);\n handleClose();\n };\n\n const isOpen = Boolean(anchorEl);\n\n return (\n <>\n
\n {children}\n
\n \n {options.map((option) => (\n <>\n onItemClick(option.value)}\n >\n {option.label}\n \n {option.divider && }\n \n ))}\n \n \n );\n};\n\nexport default DateDropdown;\n","import moment from 'moment/moment';\nimport { UserManagerPerson } from './documentUsersManagement.model';\nimport { DateDropdownType } from '../components/DateDropdown/DateDropdown';\n\ntype DocumentRole = {\n admins: string[];\n auditors?: string[];\n editors?: string[];\n signers: string[];\n viewers?: string[];\n holder?: string[];\n};\n\nexport enum DocumentStatus {\n EDITING = 'editing',\n SIGNING = 'signing',\n ISSUING = 'issuing',\n REJECTED = 'rejected',\n VALID = 'valid',\n INVALIDATED = 'invalidated',\n TEMPORARILY_INVALIDATE = 'temporarilyInvalidated',\n EXPIRED = 'expired',\n READY_FOR_PREVIEW = 'readyForPreview',\n FINISHED = 'finished',\n}\nexport enum DocumentItemCategoryType {\n FOLDERS = 'folders',\n DOCUMENTS = 'documents',\n}\n\nexport interface DocumentItem {\n author: string; // Identifier of document author\n createdAt: number; // Timestamp of creation\n documentType: string; // Document type (dsl or legacy-esign or legacy-drive)\n folderId: string; // Identifier of file directory\n folderName: string; // Name of directory\n id: string; // Document Identifier\n name: string; // Document name\n roles: DocumentRole; // Roles with Id's\n status: DocumentStatus; // Current document status\n rejected: string[]; // List of identifier\n singed: string[]; // List of identifier\n tags: string[]; // List of identifier\n updatedAt: number; // Timestamp of last update\n workspaceId: string; // Workspace id\n}\n\nexport interface FolderItem {\n createdAt: number; // Timestamp of creation\n createdBy: string; // Identifier of user who created directory\n id: string; // Folder identifier\n isRoot: boolean; // Boolean if is root directory\n isTrash: boolean; // Boolean if is trash\n name: string; // Folder name\n parent: string; // Identifier of parent folder\n updatedAt: number; // Timestamp of last update\n workspaceId: string; // Workspace id\n}\n\nexport interface SearchedItem {\n category: DocumentItemCategoryType; // Searched item category\n createdBy?: string; // Identifier of user who created directory\n isRoot?: boolean; // Boolean if is root directory\n isTrash?: boolean; // Boolean if is trash\n parent?: string; // Identifier of parent folder\n author?: string; // Identifier of document author\n createdAt: number; // Timestamp of creation\n documentType?: string; // Document type (dsl or legacy-esign or legacy-drive)\n folderId?: string; // Identifier of file directory\n folderName?: string; // Name of directory\n id: string; // Document Identifier\n name: string; // Document name\n roles?: DocumentRole; // Roles with Id's\n status?: DocumentStatus; // Current document status\n rejected?: string[]; // List of identifier\n singed?: string[]; // List of identifier\n tags?: string[]; // List of identifier\n updatedAt: number; // Timestamp of last update\n workspaceId: string; // Workspace id\n}\n\nexport interface FolderTreeItem {\n createdAt: number; // Timestamp of creation\n createdBy: string; // Identifier of user who created\n id: string; // Identifier of folder\n isRoot: boolean; // Boolean if folder is root\n isTrash: boolean; // Boolean if folder is trash\n name: string; // Name of folder\n updatedAt: number; // Timestamp of last update\n workspaceId: string; // Workspace id\n}\n\nexport const mapDocumentsItemToSearchedItem = (arr: DocumentItem[]): SearchedItem[] =>\n arr.map((el) => ({\n ...el,\n category: DocumentItemCategoryType.DOCUMENTS,\n }));\n\nexport const mapFolderItemsToSearchedItem = (arr: FolderItem[]): SearchedItem[] =>\n arr.map((el) => ({\n ...el,\n category: DocumentItemCategoryType.FOLDERS,\n }));\n\nexport enum AdvancedSearchFields {\n NAME = 'name',\n TYPE = 'documentType',\n STATUS = 'status',\n DATE_CREATED = 'dateCreated',\n DATE_MODIFIED = 'dateModified',\n RECIPIENTS = 'recipients',\n LOCATION = 'location',\n}\n\nexport enum DocumentType {\n DSL = 'dsl',\n ESIGN = 'legacy-esign',\n DRIVE = 'legacy-drive',\n}\n\nexport enum ExtraDocumentType {\n FOLDER = 'folder',\n}\n\nexport type FolderPathType = { idPath: string; namePath: string };\n\ntype DateRangeType = {\n type: DateDropdownType;\n from: moment.Moment;\n to: moment.Moment;\n};\n\nexport type AdvancedSearchType = {\n [AdvancedSearchFields.NAME]: string;\n [AdvancedSearchFields.TYPE]: Array;\n [AdvancedSearchFields.STATUS]: DocumentStatus[];\n [AdvancedSearchFields.DATE_CREATED]: DateRangeType;\n [AdvancedSearchFields.DATE_MODIFIED]: DateRangeType;\n [AdvancedSearchFields.RECIPIENTS]: UserManagerPerson[];\n [AdvancedSearchFields.LOCATION]: FolderPathType | null;\n};\n\nexport type AdvancedDocumentsQueryType = {\n hasMoreDocuments: boolean;\n limit: number;\n offset: number;\n};\nexport type DocumentsQueryType = {\n limit: number;\n offset: number;\n};\n\ntype queryDateType = {\n from: number;\n to: number;\n};\nconst getDateFromDateRangeType = (dateType: DateRangeType): queryDateType | null => {\n switch (dateType.type) {\n case DateDropdownType.ANY:\n return null;\n case DateDropdownType.TODAY:\n return {\n from: moment().startOf('day').valueOf(),\n to: moment().endOf('day').valueOf(),\n };\n case DateDropdownType.YESTERDAY:\n return {\n from: moment().subtract(1, 'days').startOf('day').valueOf(),\n to: moment().subtract(1, 'days').endOf('day').valueOf(),\n };\n case DateDropdownType.LAST_7_DAYS:\n return {\n from: moment().subtract(7, 'days').startOf('day').valueOf(),\n to: moment().endOf('day').valueOf(),\n };\n case DateDropdownType.LAST_30_DAYS:\n return {\n from: moment().subtract(30, 'days').startOf('day').valueOf(),\n to: moment().endOf('day').valueOf(),\n };\n case DateDropdownType.BETWEEN:\n return {\n from: moment(dateType.from).valueOf(),\n to: moment(dateType.to).valueOf(),\n };\n default:\n return null;\n }\n};\nexport const advancedSearchTypeToQuery = (\n search: AdvancedSearchType,\n offset: number,\n sortKey: string,\n sortOrder: string\n): string => {\n const name = search[AdvancedSearchFields.NAME];\n const type = search[AdvancedSearchFields.TYPE].filter((el) => el !== ExtraDocumentType.FOLDER);\n const status = search[AdvancedSearchFields.STATUS];\n const dateCreated = getDateFromDateRangeType(search[AdvancedSearchFields.DATE_CREATED]);\n\n const dateModified = getDateFromDateRangeType(search[AdvancedSearchFields.DATE_MODIFIED]);\n const recipients = search[AdvancedSearchFields.RECIPIENTS];\n const location = search[AdvancedSearchFields.LOCATION];\n\n const query = {\n limit: 20,\n ...(location && { folderDepth: 10000 }),\n offset,\n ...(location && { folderIdLst: [location.idPath] }),\n ...(name.length > 0 && { document: name }),\n ...(type.length > 0 && { documentType: type }),\n ...(status.length > 0 && {\n status: status.map((el) => {\n if (el === DocumentStatus.READY_FOR_PREVIEW) {\n return DocumentStatus.EDITING;\n }\n return el;\n }),\n }),\n ...(dateCreated !== null && {\n createdAt: {\n from: dateCreated.from,\n to: dateCreated.to,\n },\n }),\n ...(dateModified !== null && {\n updatedAt: {\n from: dateModified.from,\n to: dateModified.to,\n },\n }),\n ...(recipients.length > 0 && { anyOfRecipients: recipients.map((el) => el._id) }),\n sortBy: {\n [sortKey]: sortOrder,\n },\n };\n\n return encodeURIComponent(JSON.stringify(query));\n};\n\n// Document type for document creation\nexport enum TemplateDocumentType {\n DOCUMENT_TO_BE_SIGNED = 'DOCUMENT_TO_BE_SIGNED',\n DURABLE_MEDIA = 'DURABLE_MEDIA',\n CERTIFICATES = 'CERTIFICATES',\n}\n\nexport function areAdvancedSearchObjectsDifferent(\n obj1: AdvancedSearchType | null,\n obj2: AdvancedSearchType | null,\n excludeKeys: AdvancedSearchFields[] = []\n): boolean {\n if (obj1 === null && obj2 === null) {\n return false;\n }\n\n if (obj1 === null || obj2 === null) {\n return true;\n }\n\n const keys = Object.values(AdvancedSearchFields).filter((key) => !excludeKeys.includes(key));\n\n for (const key of keys) {\n const value1 = obj1[key];\n const value2 = obj2[key];\n\n if (key === AdvancedSearchFields.DATE_CREATED || key === AdvancedSearchFields.DATE_MODIFIED) {\n if (!obj1[key].from.isSame(obj2[key].from) || !obj1[key].to.isSame(obj2[key].to)) {\n return true;\n }\n } else if (Array.isArray(value1) && Array.isArray(value2)) {\n if (value1.length !== value2.length || value1.some((el, index) => el !== value2[index])) {\n return true;\n }\n } else if (value1 !== value2) {\n return true;\n }\n }\n\n return false;\n}\n","import { DocumentStatus } from './documents.model';\n\nexport const DocumentRole = {\n ADMINS: 'admins',\n AUDITORS: 'auditors',\n EDITORS: 'editors',\n VIEWERS: 'viewers',\n SIGNERS: 'signers',\n HOLDER: 'holder',\n};\n\nexport const mapToDocumentRole = (role) => {\n switch (role.toLowerCase()) {\n case 'admin':\n return DocumentRole.ADMINS;\n case 'auditor':\n return DocumentRole.AUDITORS;\n case 'editor':\n return DocumentRole.EDITORS;\n case 'viewer':\n return DocumentRole.VIEWERS;\n case 'signer':\n return DocumentRole.SIGNERS;\n case 'holders':\n return DocumentRole.HOLDER;\n default:\n return role.toLowerCase();\n }\n};\n\nexport const rolesTranslations = (t) => ({\n [DocumentRole.ADMINS]: t('inviteToDocument.section.roles.types.admins'),\n [DocumentRole.AUDITORS]: t('inviteToDocument.section.roles.types.auditors'),\n [DocumentRole.EDITORS]: t('inviteToDocument.section.roles.types.editors'),\n [DocumentRole.VIEWERS]: t('inviteToDocument.section.roles.types.viewers'),\n});\n\nexport const getStatusName = ({ status, isShort, t, isCertificate = false }) => {\n const prefix = isCertificate ? t('documentType.certificate') : t('documentType.document');\n const type = isShort ? null : prefix;\n switch (status) {\n case DocumentStatus.EDITING:\n case DocumentStatus.SIGNING:\n case DocumentStatus.ISSUING:\n case DocumentStatus.REJECTED:\n case DocumentStatus.FINISHED:\n case DocumentStatus.VALID:\n case DocumentStatus.INVALIDATED:\n case DocumentStatus.TEMPORARILY_INVALIDATE:\n case DocumentStatus.EXPIRED:\n case DocumentStatus.READY_FOR_PREVIEW:\n return t(`statuses.${status}.${isShort ? 'short' : 'long'}`, { type });\n default:\n return status;\n }\n};\n\nexport const HistoryType = {\n CREATE: 'CREATE',\n ADD_ENTITY: 'ADD_ENTITY',\n DELETE_ENTITY: 'DELETE_ENTITY',\n DELETE_INVITATION: 'DELETE_INVITATION',\n DOWNLOAD: 'DOWNLOAD',\n REJECT: 'REJECT',\n RENAME: 'RENAME',\n SIGN: 'SIGN',\n SEND_INVITATION: 'SEND_INVITATION',\n VIEW: 'VIEW',\n VISIBILITY_CHANGE: 'VISIBILITY_CHANGE',\n CHANGE_SIGN_ORDER: 'CHANGE_SIGN_ORDER',\n CHANGE_HOLDER: 'CHANGE_HOLDER',\n INVALIDATE: 'INVALIDATE',\n INVALIDATE_TEMPORARY: 'INVALIDATE_TEMPORARY',\n EXPIRED: 'EXPIRED',\n VALIDATE: 'VALIDATE',\n TRANSFERABILITY_CHANGE: 'TRANSFERABILITY_CHANGE',\n TRANSFER_INVITATION_CREATED: 'TRANSFER_INVITATION_CREATED',\n TRANSFER_INVITATION_REVOKED: 'TRANSFER_INVITATION_REVOKED',\n GENERATE_PDF_INVITATION: 'GENERATE_PDF_INVITATION',\n DELETE_PDF_INVITATION: 'DELETE_PDF_INVITATION',\n};\n","enum documentManagementConstants {\n RENAME_DOCUMENT_REQUEST = 'RENAME_DOCUMENT_REQUEST',\n RENAME_DOCUMENT_SUCCESS = 'RENAME_DOCUMENT_SUCCESS',\n RENAME_DOCUMENT_FAILURE = 'RENAME_DOCUMENT_FAILURE',\n\n SIGN_DOCUMENT_REQUEST = 'SIGN_DOCUMENT_REQUEST',\n SIGN_DOCUMENT_SUCCESS = 'SIGN_DOCUMENT_SUCCESS',\n SIGN_DOCUMENT_FAILURE = 'SIGN_DOCUMENT_FAILURE',\n\n REJECT_DOCUMENT_REQUEST = 'REJECT_DOCUMENT_REQUEST',\n REJECT_DOCUMENT_SUCCESS = 'REJECT_DOCUMENT_SUCCESS',\n REJECT_DOCUMENT_FAILURE = 'REJECT_DOCUMENT_FAILURE',\n\n GET_HISTORY_DOCUMENT_REQUEST = 'GET_HISTORY_DOCUMENT_REQUEST',\n GET_HISTORY_DOCUMENT_SUCCESS = 'GET_HISTORY_DOCUMENT_SUCCESS',\n GET_HISTORY_DOCUMENT_FAILURE = 'GET_HISTORY_DOCUMENT_FAILURE',\n\n RELOAD_DOCUMENT_HISTORY = 'RELOAD_DOCUMENT_HISTORY',\n\n GET_DOCUMENT_MEMBERS_BY_ROLE_REQUEST = 'GET_DOCUMENT_MEMBERS_BY_ROLE_REQUEST',\n GET_DOCUMENT_MEMBERS_BY_ROLE_SUCCESS = 'GET_DOCUMENT_MEMBERS_BY_ROLE_SUCCESS',\n GET_DOCUMENT_MEMBERS_BY_ROLE_FAILURE = 'GET_DOCUMENT_MEMBERS_BY_ROLE_FAILURE',\n\n GET_SIGNATURES_REQUEST = 'GET_SIGNATURES_REQUEST',\n GET_SIGNATURES_SUCCESS = 'GET_SIGNATURES_SUCCESS',\n GET_SIGNATURES_FAILURE = 'GET_SIGNATURES_FAILURE',\n\n GET_DOCUMENT_MEMBERS_REQUEST = 'GET_DOCUMENT_MEMBERS_REQUEST',\n GET_DOCUMENT_MEMBERS_SUCCESS = 'GET_DOCUMENT_MEMBERS_SUCCESS',\n GET_DOCUMENT_MEMBERS_FAILURE = 'GET_DOCUMENT_MEMBERS_FAILURE',\n\n GET_DOCUMENT_INVITATIONS_REQUEST = 'GET_DOCUMENT_INVITATIONS_REQUEST',\n GET_DOCUMENT_INVITATIONS_SUCCESS = 'GET_DOCUMENT_INVITATIONS_SUCCESS',\n GET_DOCUMENT_INVITATIONS_FAILURE = 'GET_DOCUMENT_INVITATIONS_FAILURE',\n\n UPDATE_DOCUMENT_SIGNERS = 'UPDATE_DOCUMENT_SIGNERS',\n\n GET_DOCUMENT_CARD_REQUEST = 'GET_DOCUMENT_CARD_REQUEST',\n GET_DOCUMENT_CARD_SUCCESS = 'GET_DOCUMENT_CARD_SUCCESS',\n GET_DOCUMENT_CARD_FAILURE = 'GET_DOCUMENT_CARD_FAILURE',\n\n WS_UPDATE_DOCUMENT_MANAGEMENT = 'WS_UPDATE_DOCUMENT_MANAGEMENT',\n\n CLEAR_DOCUMENT_HISTORY = 'CLEAR_DOCUMENT_HISTORY',\n\n CLEAR_DOCUMENT_MANAGEMENT_STORE = 'CLEAR_DOCUMENT_MANAGEMENT_STORE',\n}\n\nexport default documentManagementConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport certificateManagementConstants from 'src/redux/constants/certificateManagement.constants';\nimport { DocumentRole, mapToDocumentRole } from 'src/models/document.model';\nimport documentManagementConstants from 'src/redux/constants/documentManagement.constants';\n\nconst getInitialStateOfRoles = () => ({\n [DocumentRole.ADMINS]: [],\n [DocumentRole.AUDITORS]: [],\n [DocumentRole.EDITORS]: [],\n [DocumentRole.SIGNERS]: [],\n [DocumentRole.VIEWERS]: [],\n [DocumentRole.HOLDER]: [],\n});\n\nconst initialState = {\n clearHistoryStatus: true,\n documentInvalidationStatus: RequestStatus.IDLE,\n documentInvitations: [],\n documentMembers: [],\n documentRenameStatus: RequestStatus.IDLE,\n documentSigners: [],\n documentSigningStatus: RequestStatus.IDLE,\n documentTemporarilyInvalidationStatus: RequestStatus.IDLE,\n documentValidationStatus: RequestStatus.IDLE,\n documentTransferOwnershipStatus: RequestStatus.IDLE,\n getDocumentCardStatus: RequestStatus.IDLE,\n getDocumentHistoryStatus: RequestStatus.IDLE,\n getDocumentInvitationsStatus: RequestStatus.IDLE,\n getDocumentMembersByRoleStatus: RequestStatus.IDLE,\n getDocumentMembersStatus: RequestStatus.IDLE,\n getSignaturesStatus: RequestStatus.IDLE,\n historyDocument: [],\n historyHasNextPage: false,\n historyLength: 0,\n rejectingDocumentStatus: RequestStatus.IDLE,\n roles: getInitialStateOfRoles(),\n signatures: [],\n};\n\nconst updateRolesByType = (roleType, rolesStatus, roleTypeCollection) => {\n const newRolesStatus = rolesStatus;\n newRolesStatus[roleType] = roleTypeCollection;\n return newRolesStatus;\n};\n\nconst updateAllRoles = (allMembers) => {\n const newRolesStatus = getInitialStateOfRoles();\n allMembers.forEach((item) => {\n const groupName = mapToDocumentRole(item.role);\n newRolesStatus[groupName].push(item.id);\n });\n return newRolesStatus;\n};\n\nfunction documentManagementStore(state = initialState, action) {\n switch (action.type) {\n case documentManagementConstants.RENAME_DOCUMENT_REQUEST:\n return {\n ...state,\n documentRenameStatus: RequestStatus.PENDING,\n };\n case documentManagementConstants.RENAME_DOCUMENT_SUCCESS:\n return {\n ...state,\n name: action.name,\n documentRenameStatus: RequestStatus.SUCCESS,\n };\n case documentManagementConstants.RENAME_DOCUMENT_FAILURE:\n return {\n ...state,\n documentRenameStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.SIGN_DOCUMENT_REQUEST:\n case certificateManagementConstants.DOCUMENT_SIGN_REQUEST:\n return {\n ...state,\n documentSigningStatus: RequestStatus.PENDING,\n };\n\n case documentManagementConstants.SIGN_DOCUMENT_SUCCESS:\n case certificateManagementConstants.DOCUMENT_SIGN_SUCCESS:\n return {\n ...state,\n data: action.data,\n documentSigningStatus: RequestStatus.SUCCESS,\n };\n\n case documentManagementConstants.SIGN_DOCUMENT_FAILURE:\n case certificateManagementConstants.DOCUMENT_SIGN_ERROR:\n return {\n ...state,\n documentSigningStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.REJECT_DOCUMENT_REQUEST:\n case certificateManagementConstants.DOCUMENT_REJECT_REQUEST:\n return {\n ...state,\n rejectingDocumentStatus: RequestStatus.PENDING,\n };\n\n case documentManagementConstants.REJECT_DOCUMENT_SUCCESS:\n case certificateManagementConstants.DOCUMENT_REJECT_SUCCESS:\n return {\n ...state,\n data: action.data,\n rejectingDocumentStatus: RequestStatus.SUCCESS,\n };\n\n case documentManagementConstants.REJECT_DOCUMENT_FAILURE:\n case certificateManagementConstants.DOCUMENT_REJECT_ERROR:\n return {\n ...state,\n rejectingDocumentStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.GET_HISTORY_DOCUMENT_REQUEST:\n return {\n ...state,\n getDocumentHistoryStatus: RequestStatus.PENDING,\n };\n case documentManagementConstants.GET_HISTORY_DOCUMENT_SUCCESS:\n return {\n ...state,\n historyHasNextPage: action.history.hasNextPage,\n historyDocument: [...state.historyDocument, ...action.history.collection],\n historyLength: state.historyLength + action.history.collection.length,\n getDocumentHistoryStatus: RequestStatus.SUCCESS,\n clearHistoryStatus: false,\n };\n case documentManagementConstants.GET_HISTORY_DOCUMENT_FAILURE:\n return {\n ...state,\n getDocumentHistoryStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.RELOAD_DOCUMENT_HISTORY:\n return {\n ...state,\n clearHistoryStatus: true,\n historyHasNextPage: initialState.historyHasNextPage,\n historyDocument: initialState.historyDocument,\n historyLength: initialState.historyLength,\n };\n\n case documentManagementConstants.GET_DOCUMENT_MEMBERS_REQUEST:\n return {\n ...state,\n getDocumentMembersStatus: RequestStatus.PENDING,\n };\n case documentManagementConstants.GET_DOCUMENT_MEMBERS_SUCCESS:\n return {\n ...state,\n documentMembers: action.members.collection.map((el) => {\n el.role = mapToDocumentRole(el.role);\n return el;\n }),\n getDocumentMembersStatus: RequestStatus.SUCCESS,\n roles: updateAllRoles(action.members.collection),\n };\n case documentManagementConstants.GET_DOCUMENT_MEMBERS_FAILURE:\n return {\n ...state,\n getDocumentMembersStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.GET_DOCUMENT_INVITATIONS_REQUEST:\n return {\n ...state,\n getDocumentInvitationsStatus: RequestStatus.PENDING,\n };\n case documentManagementConstants.GET_DOCUMENT_INVITATIONS_SUCCESS:\n return {\n ...state,\n documentInvitations: action.members.collection.map((el) => {\n el.role = mapToDocumentRole(el.role);\n return el;\n }),\n getDocumentInvitationsStatus: RequestStatus.SUCCESS,\n };\n case documentManagementConstants.GET_DOCUMENT_INVITATIONS_FAILURE:\n return {\n ...state,\n getDocumentInvitationsStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.GET_DOCUMENT_MEMBERS_BY_ROLE_REQUEST:\n return {\n ...state,\n getDocumentMembersByRoleStatus: RequestStatus.PENDING,\n };\n case documentManagementConstants.GET_DOCUMENT_MEMBERS_BY_ROLE_SUCCESS:\n return {\n ...state,\n roles: updateRolesByType(\n mapToDocumentRole(action.roleType),\n state.roles,\n action.members.collection\n ),\n getDocumentMembersByRoleStatus: RequestStatus.SUCCESS,\n };\n case documentManagementConstants.GET_DOCUMENT_MEMBERS_BY_ROLE_FAILURE:\n return {\n ...state,\n getDocumentMembersByRoleStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.GET_SIGNATURES_REQUEST:\n return {\n ...state,\n getSignaturesStatus: RequestStatus.PENDING,\n };\n case documentManagementConstants.GET_SIGNATURES_SUCCESS:\n return {\n ...state,\n signatures: action.signatures.collection,\n getSignaturesStatus: RequestStatus.SUCCESS,\n };\n case documentManagementConstants.GET_SIGNATURES_FAILURE:\n return {\n ...state,\n getSignaturesStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.UPDATE_DOCUMENT_SIGNERS: {\n return {\n ...state,\n documentSigners: action.signers,\n };\n }\n\n case documentManagementConstants.GET_DOCUMENT_CARD_REQUEST:\n return {\n ...state,\n getDocumentCardStatus: RequestStatus.PENDING,\n };\n case documentManagementConstants.GET_DOCUMENT_CARD_SUCCESS:\n return {\n ...state,\n getDocumentCardStatus: RequestStatus.SUCCESS,\n };\n case documentManagementConstants.GET_DOCUMENT_CARD_FAILURE:\n return {\n ...state,\n getDocumentCardStatus: RequestStatus.ERROR,\n };\n\n case documentManagementConstants.WS_UPDATE_DOCUMENT_MANAGEMENT:\n return {\n ...state,\n roles: action.data.roles,\n };\n case documentManagementConstants.CLEAR_DOCUMENT_HISTORY:\n return {\n ...state,\n clearHistoryStatus: true,\n historyHasNextPage: initialState.historyHasNextPage,\n historyDocument: initialState.historyDocument,\n historyLength: initialState.historyLength,\n };\n case documentManagementConstants.CLEAR_DOCUMENT_MANAGEMENT_STORE:\n return {\n ...initialState,\n roles: getInitialStateOfRoles(),\n };\n\n case certificateManagementConstants.DOCUMENT_INVALIDATE_REQUEST:\n return {\n ...state,\n documentInvalidationStatus: RequestStatus.PENDING,\n };\n case certificateManagementConstants.DOCUMENT_INVALIDATE_SUCCESS:\n return {\n ...state,\n documentInvalidationStatus: RequestStatus.SUCCESS,\n };\n case certificateManagementConstants.DOCUMENT_INVALIDATE_ERROR:\n return {\n ...state,\n documentInvalidationStatus: RequestStatus.ERROR,\n };\n\n case certificateManagementConstants.DOCUMENT_INVALIDATE_TEMPORARILY_REQUEST:\n return {\n ...state,\n documentTemporarilyInvalidationStatus: RequestStatus.PENDING,\n };\n case certificateManagementConstants.DOCUMENT_INVALIDATE_TEMPORARILY_SUCCESS:\n return {\n ...state,\n documentTemporarilyInvalidationStatus: RequestStatus.SUCCESS,\n };\n case certificateManagementConstants.DOCUMENT_INVALIDATE_TEMPORARILY_ERROR:\n return {\n ...state,\n documentTemporarilyInvalidationStatus: RequestStatus.ERROR,\n };\n\n case certificateManagementConstants.DOCUMENT_VALIDATE_REQUEST:\n return {\n ...state,\n documentValidationStatus: RequestStatus.PENDING,\n };\n case certificateManagementConstants.DOCUMENT_VALIDATE_SUCCESS:\n return {\n ...state,\n documentValidationStatus: RequestStatus.SUCCESS,\n };\n case certificateManagementConstants.DOCUMENT_VALIDATE_ERROR:\n return {\n ...state,\n documentValidationStatus: RequestStatus.ERROR,\n };\n\n case certificateManagementConstants.TRANSFER_OWNERSHIP_REQUEST:\n return {\n ...state,\n documentTransferOwnershipStatus: RequestStatus.PENDING,\n };\n\n case certificateManagementConstants.TRANSFER_OWNERSHIP_SUCCESS:\n return {\n ...state,\n documentTransferOwnershipStatus: RequestStatus.SUCCESS,\n };\n\n case certificateManagementConstants.TRANSFER_OWNERSHIP_ERROR:\n return {\n ...state,\n documentTransferOwnershipStatus: RequestStatus.ERROR,\n };\n\n default:\n return state;\n }\n}\n\nexport default documentManagementStore;\n","enum documentsConstants {\n FETCH_FOLDER_TREE_REQUEST = 'FETCH_FOLDER_TREE_REQUEST',\n FETCH_FOLDER_TREE_SUCCESS = 'FETCH_FOLDER_TREE_SUCCESS',\n FETCH_FOLDER_TREE_FAILURE = 'FETCH_FOLDER_TREE_FAILURE',\n\n FETCH_FOLDER_PATH_REQUEST = 'FETCH_FOLDER_PATH_REQUEST',\n FETCH_FOLDER_PATH_SUCCESS = 'FETCH_FOLDER_PATH_SUCCESS',\n FETCH_FOLDER_PATH_FAILURE = 'FETCH_FOLDER_PATH_FAILURE',\n\n RENAME_FOLDER_REQUEST = 'RENAME_FOLDER_REQUEST',\n RENAME_FOLDER_SUCCESS = 'RENAME_FOLDER_SUCCESS',\n RENAME_FOLDER_FAILURE = 'RENAME_FOLDER_FAILURE',\n\n CREATE_FOLDER_REQUEST = 'CREATE_FOLDER_REQUEST',\n CREATE_FOLDER_SUCCESS = 'CREATE_FOLDER_SUCCESS',\n CREATE_FOLDER_FAILURE = 'CREATE_FOLDER_FAILURE',\n\n REMOVE_FOLDER_REQUEST = 'REMOVE_FOLDER_REQUEST',\n REMOVE_FOLDER_SUCCESS = 'REMOVE_FOLDER_SUCCESS',\n REMOVE_FOLDER_FAILURE = 'REMOVE_FOLDER_FAILURE',\n\n MOVE_DOCUMENT_REQUEST = 'MOVE_DOCUMENT_REQUEST',\n MOVE_DOCUMENT_SUCCESS = 'MOVE_DOCUMENT_SUCCESS',\n MOVE_DOCUMENT_FAILURE = 'MOVE_DOCUMENT_FAILURE',\n\n FETCH_DOCUMENTS_REQUEST = 'FETCH_DOCUMENTS_REQUEST',\n FETCH_DOCUMENTS_SUCCESS = 'FETCH_DOCUMENTS_SUCCESS',\n FETCH_DOCUMENTS_FAILURE = 'FETCH_DOCUMENTS_FAILURE',\n\n FETCH_DOCUMENTS_ADVANCED_SEARCH_REQUEST = 'documents/FETCH_DOCUMENTS_ADVANCED_SEARCH_REQUEST',\n FETCH_DOCUMENTS_ADVANCED_SEARCH_SUCCESS = 'documents/FETCH_DOCUMENTS_ADVANCED_SEARCH_SUCCESS',\n FETCH_DOCUMENTS_ADVANCED_SEARCH_FAILURE = 'documents/FETCH_DOCUMENTS_ADVANCED_SEARCH_FAILURE',\n\n FETCH_FOLDERS_ADVANCED_SEARCH_REQUEST = 'documents/FETCH_FOLDERS_ADVANCED_SEARCH_REQUEST',\n FETCH_FOLDERS_ADVANCED_SEARCH_SUCCESS = 'documents/FETCH_FOLDERS_ADVANCED_SEARCH_SUCCESS',\n FETCH_FOLDERS_ADVANCED_SEARCH_FAILURE = 'documents/FETCH_FOLDERS_ADVANCED_SEARCH_FAILURE',\n\n FETCH_DOCUMENTS_SEARCH_REQUEST = 'FETCH_DOCUMENTS_SEARCH_REQUEST',\n FETCH_DOCUMENTS_SEARCH_SUCCESS = 'FETCH_DOCUMENTS_SEARCH_SUCCESS',\n FETCH_DOCUMENTS_SEARCH_FAILURE = 'FETCH_DOCUMENTS_SEARCH_FAILURE',\n\n FETCH_FOLDERS_SEARCH_REQUEST = 'FETCH_FOLDERS_SEARCH_REQUEST',\n FETCH_FOLDERS_SEARCH_SUCCESS = 'FETCH_FOLDERS_SEARCH_SUCCESS',\n FETCH_FOLDERS_SEARCH_FAILURE = 'FETCH_FOLDERS_SEARCH_FAILURE',\n\n CLEAR_FOLDER_PATH = 'CLEAR_FOLDER_PATH',\n\n CLEAR_STORE = 'CLEAR_STORE',\n CLEAR_SEARCH = 'CLEAR_SEARCH',\n CLEAR_ADVANCED_SEARCH = 'documents/CLEAR_ADVANCED_SEARCH',\n\n WS_ADD_FOLDER = 'WS_ADD_FOLDER',\n WS_UPDATE_FOLDER = 'WS_UPDATE_FOLDER',\n WS_DELETE_FOLDER = 'WS_DELETE_FOLDER',\n WS_MOVED_DOCUMENT = 'WS_MOVED_DOCUMENT',\n WS_CREATED_DOCUMENT = 'WS_CREATED_DOCUMENT',\n WS_UPDATED_DOCUMENT = 'WS_UPDATED_DOCUMENT',\n WS_DELETE_DOCUMENT = 'WS_DELETE_DOCUMENT',\n\n SUBMIT_ADVANCED_SEARCH = 'documents/SUBMIT_ADVANCED_SEARCH',\n UPDATE_DRAFT_ADVANCED_SEARCH = 'documents/UPDATE_DRAFT_ADVANCED_SEARCH',\n UPDATE_ADVANCED_SEARCH = 'documents/UPDATE_ADVANCED_SEARCH',\n RESET_FIELD_DRAFT_ADVANCED_SEARCH = 'documents/RESET_FIELD_DRAFT_ADVANCED_SEARCH',\n RESET_DRAFT_ADVANCED_SEARCH = 'documents/RESET_DRAFT_ADVANCED_SEARCH',\n SET_SELECTED_FOLDERS = 'documents/SET_SELECTED_FOLDERS',\n}\n\nexport default documentsConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport documentsConstants from 'src/redux/constants/documents.constants';\nimport moment from 'moment';\nimport {\n AdvancedDocumentsQueryType,\n AdvancedSearchFields,\n AdvancedSearchType,\n DocumentItem,\n DocumentsQueryType,\n FolderItem,\n FolderPathType,\n FolderTreeItem,\n} from 'src/models/documents.model';\nimport { DateDropdownType } from 'src/components/DateDropdown/DateDropdown';\n\ntype SortDirection = 'asc' | 'desc' | 'none';\n\nenum FolderOperationType {\n UPDATE = 'update',\n MOVE = 'move',\n DELETE = 'delete',\n}\n\nexport const advancedSearchInitialState: AdvancedSearchType = {\n [AdvancedSearchFields.NAME]: '',\n [AdvancedSearchFields.TYPE]: [],\n [AdvancedSearchFields.STATUS]: [],\n [AdvancedSearchFields.DATE_CREATED]: {\n type: DateDropdownType.ANY,\n from: moment().subtract(1, 'days'),\n to: moment(),\n },\n [AdvancedSearchFields.DATE_MODIFIED]: {\n type: DateDropdownType.ANY,\n from: moment().subtract(1, 'days'),\n to: moment(),\n },\n [AdvancedSearchFields.RECIPIENTS]: [],\n [AdvancedSearchFields.LOCATION]: null,\n};\n\nexport type DocumentsStoreState = {\n createFolderStatus: RequestStatus;\n currentFolderId: string | null;\n currentPath: string | null;\n defaultSortKey: string;\n defaultSortOrder: string;\n documents: DocumentItem[];\n documentsQuery: DocumentsQueryType;\n advancedSearchedDocumentsQuery: AdvancedDocumentsQueryType;\n documentsSearchFetchStatus: RequestStatus;\n fetchDocumentsStatus: RequestStatus;\n fetchFolderPathStatus: RequestStatus;\n fetchFoldersStatus: RequestStatus;\n folderPath: FolderPathType;\n folderTree: FolderTreeItem[] | null;\n foldersSearchFetchStatus: RequestStatus;\n hasMoreDocuments: boolean;\n moveDocumentsStatus: RequestStatus;\n removeFolderStatus: RequestStatus;\n renameFolderStatus: RequestStatus;\n quickSearchedDocuments: DocumentItem[];\n quickSearchedFolders: FolderItem[];\n advancedSearchedDocuments: DocumentItem[];\n advancedSearchedDocumentsStatus: RequestStatus;\n advancedSearchedFolders: FolderItem[];\n advancedSearch: AdvancedSearchType;\n draftAdvancedSearch: AdvancedSearchType;\n selectedFolders: string[];\n};\n\nconst initialState = {\n createFolderStatus: RequestStatus.IDLE,\n currentFolderId: null,\n currentPath: null,\n defaultSortKey: 'updatedAt',\n defaultSortOrder: 'desc',\n documents: [],\n documentsQuery: {\n limit: 20,\n offset: 0,\n },\n documentsSearchFetchStatus: RequestStatus.IDLE,\n fetchDocumentsStatus: RequestStatus.IDLE,\n fetchFolderPathStatus: RequestStatus.IDLE,\n fetchFoldersStatus: RequestStatus.IDLE,\n folderPath: { idPath: '', namePath: '' },\n folderTree: null,\n foldersSearchFetchStatus: RequestStatus.IDLE,\n hasMoreDocuments: false,\n moveDocumentsStatus: RequestStatus.IDLE,\n removeFolderStatus: RequestStatus.IDLE,\n renameFolderStatus: RequestStatus.IDLE,\n quickSearchedDocuments: [],\n quickSearchedFolders: [],\n advancedSearchedDocuments: [],\n advancedSearchedDocumentsStatus: RequestStatus.IDLE,\n advancedSearchedDocumentsQuery: {\n limit: 20,\n offset: 0,\n hasMoreDocuments: true,\n },\n advancedSearchedFolders: [],\n advancedSearch: advancedSearchInitialState,\n draftAdvancedSearch: advancedSearchInitialState,\n selectedFolders: [],\n};\n\nconst sortByKeyAndOrder = (\n data: T[],\n keyToSort: keyof T,\n direction: 'asc' | 'desc' | 'none'\n) => {\n if (direction === 'none') {\n return data;\n }\n const compare = (objectA: T, objectB: T) => {\n const valueA = objectA[keyToSort];\n const valueB = objectB[keyToSort];\n\n if (valueA === valueB) {\n return 0;\n }\n\n if (valueA > valueB) {\n return direction === 'asc' ? 1 : -1;\n }\n return direction === 'asc' ? -1 : 1;\n };\n\n return data.slice().sort(compare);\n};\n\nconst updateOnlyOneDocumentInState = (\n documents: DocumentItem[],\n updatedDocument: DocumentItem,\n sortKey: keyof DocumentItem,\n sortOrder: SortDirection\n) => {\n const documentExists = documents.some((doc: DocumentItem) => doc.id === updatedDocument.id);\n const newDocsArr = [...documents];\n if (documentExists) {\n newDocsArr.map((document) => {\n if (document.id === updatedDocument.id) return updatedDocument;\n return document;\n });\n } else {\n newDocsArr.push(updatedDocument);\n }\n return sortByKeyAndOrder(newDocsArr, sortKey, sortOrder);\n};\n\nconst deleteOnlyOneDocumentFromState = (documents: DocumentItem[], deletedDocument: DocumentItem) =>\n documents.filter((document) => document.id !== deletedDocument.id);\n\nconst getCurrentFolderId = (rootFolderId: string, folders: FolderItem[]) => {\n let currentFolderId = null;\n if (rootFolderId) {\n currentFolderId = rootFolderId;\n } else {\n folders.forEach((folder: FolderItem) => {\n if (folder.name === '/') {\n currentFolderId = folder.id;\n }\n });\n }\n return currentFolderId;\n};\n\nconst updateFolderTree = (\n currentFolderTree: FolderTreeItem[] | null,\n updatedFolder: FolderItem,\n operation: FolderOperationType\n) => {\n const newFolders = Array.from(currentFolderTree || []);\n let folderIndex = -1;\n\n newFolders.forEach((folder: FolderTreeItem, index) => {\n if (folder.id === updatedFolder.id) {\n folderIndex = index;\n }\n });\n if (folderIndex >= 0) {\n if (operation === FolderOperationType.UPDATE) {\n newFolders[folderIndex] = updatedFolder;\n } else if (operation === FolderOperationType.DELETE) {\n newFolders.splice(folderIndex, 1);\n }\n\n return newFolders;\n }\n return currentFolderTree;\n};\n\nconst updateDocument = (\n currentDocuments: DocumentItem[],\n currentFolderId: string,\n updatedDocument: DocumentItem,\n operation: FolderOperationType,\n sortKey: keyof DocumentItem,\n sortOrder: SortDirection\n) => {\n const newDocuments = Array.from(currentDocuments);\n if (currentFolderId === updatedDocument.folderId) {\n if (operation === FolderOperationType.MOVE) {\n newDocuments.push(updatedDocument);\n }\n } else if (operation === FolderOperationType.MOVE) {\n let documentIndex = -1;\n newDocuments.forEach((document: DocumentItem, index) => {\n if (document.id === updatedDocument.id) {\n documentIndex = index;\n }\n });\n if (documentIndex >= 0) {\n newDocuments.splice(documentIndex, 1);\n }\n }\n\n return sortByKeyAndOrder(newDocuments, sortKey, sortOrder);\n};\n\nconst addDocument = (\n currentDocuments: DocumentItem[],\n newDocument: DocumentItem,\n sortKey: keyof DocumentItem,\n sortOrder: SortDirection\n) => {\n const newDocuments = Array.from(currentDocuments);\n const changedGroupIndex = currentDocuments.findIndex(\n (type: DocumentItem) => type.id === newDocument.id\n );\n if (changedGroupIndex === -1) {\n newDocuments.unshift(newDocument);\n }\n return sortByKeyAndOrder(newDocuments, sortKey, sortOrder);\n};\n\nconst updateFolderPath = (currentPath: FolderPathType, updatedFolder: FolderItem) => {\n const pathIds = currentPath.idPath.split('/');\n const pathNames = currentPath.namePath.split('/');\n let targetIndex = -1;\n for (let i = 0; i < pathIds.length; i += 1) {\n if (pathIds[i] === updatedFolder.id) {\n targetIndex = i;\n break;\n }\n }\n if (targetIndex >= 0) {\n pathNames[targetIndex] = updatedFolder.name;\n return {\n idPath: pathIds.join('/'),\n namePath: pathNames.join('/'),\n };\n }\n return currentPath;\n};\n\nfunction documentsStore(\n state: DocumentsStoreState = initialState,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n action: any // FIXME: fix this in next stage\n): DocumentsStoreState {\n switch (action.type) {\n case documentsConstants.FETCH_FOLDER_TREE_REQUEST:\n return {\n ...state,\n fetchFoldersStatus: RequestStatus.PENDING,\n folderTree: initialState.folderTree,\n };\n case documentsConstants.FETCH_FOLDER_TREE_SUCCESS:\n return {\n ...state,\n fetchFoldersStatus: RequestStatus.IDLE,\n folderTree: action.folders,\n currentFolderId: getCurrentFolderId(action.rootFolderId, action.folders),\n };\n case documentsConstants.FETCH_FOLDER_TREE_FAILURE:\n return {\n ...state,\n fetchFoldersStatus: RequestStatus.ERROR,\n };\n case documentsConstants.FETCH_DOCUMENTS_SEARCH_REQUEST:\n return {\n ...state,\n documentsSearchFetchStatus: RequestStatus.PENDING,\n };\n case documentsConstants.FETCH_DOCUMENTS_SEARCH_SUCCESS:\n return {\n ...state,\n documentsSearchFetchStatus: RequestStatus.SUCCESS,\n quickSearchedDocuments: [...action.documents],\n };\n case documentsConstants.FETCH_DOCUMENTS_SEARCH_FAILURE:\n return {\n ...state,\n documentsSearchFetchStatus: RequestStatus.ERROR,\n };\n case documentsConstants.FETCH_FOLDERS_SEARCH_REQUEST:\n return {\n ...state,\n foldersSearchFetchStatus: RequestStatus.PENDING,\n };\n case documentsConstants.FETCH_FOLDERS_SEARCH_SUCCESS:\n return {\n ...state,\n foldersSearchFetchStatus: RequestStatus.SUCCESS,\n quickSearchedFolders: [...action.folders],\n };\n case documentsConstants.FETCH_FOLDERS_SEARCH_FAILURE:\n return {\n ...state,\n foldersSearchFetchStatus: RequestStatus.ERROR,\n };\n case documentsConstants.CREATE_FOLDER_REQUEST:\n return {\n ...state,\n createFolderStatus: RequestStatus.PENDING,\n };\n case documentsConstants.CREATE_FOLDER_SUCCESS:\n return {\n ...state,\n createFolderStatus: RequestStatus.SUCCESS,\n };\n case documentsConstants.CREATE_FOLDER_FAILURE:\n return {\n ...state,\n createFolderStatus: RequestStatus.ERROR,\n };\n case documentsConstants.FETCH_DOCUMENTS_REQUEST:\n return {\n ...state,\n fetchDocumentsStatus: RequestStatus.PENDING,\n };\n case documentsConstants.FETCH_DOCUMENTS_SUCCESS: {\n const { documentsQuery, hasMoreDocuments, documents } = action;\n\n return {\n ...state,\n fetchDocumentsStatus: RequestStatus.IDLE,\n documents: documentsQuery.offset === 0 ? documents : [...state.documents, ...documents],\n hasMoreDocuments,\n documentsQuery: {\n limit: documentsQuery.limit,\n offset: documentsQuery.offset,\n },\n };\n }\n case documentsConstants.FETCH_DOCUMENTS_FAILURE:\n return {\n ...state,\n fetchDocumentsStatus: RequestStatus.ERROR,\n };\n case documentsConstants.FETCH_FOLDER_PATH_REQUEST:\n return {\n ...state,\n fetchFolderPathStatus: RequestStatus.PENDING,\n };\n case documentsConstants.FETCH_FOLDER_PATH_SUCCESS:\n return {\n ...state,\n folderPath: action.path,\n fetchFolderPathStatus: RequestStatus.SUCCESS,\n };\n case documentsConstants.FETCH_FOLDER_PATH_FAILURE:\n return {\n ...state,\n fetchFolderPathStatus: RequestStatus.ERROR,\n };\n case documentsConstants.RENAME_FOLDER_REQUEST:\n return {\n ...state,\n renameFolderStatus: RequestStatus.PENDING,\n };\n case documentsConstants.RENAME_FOLDER_SUCCESS:\n return {\n ...state,\n renameFolderStatus: RequestStatus.SUCCESS,\n };\n case documentsConstants.RENAME_FOLDER_FAILURE:\n return {\n ...state,\n renameFolderStatus: RequestStatus.ERROR,\n };\n case documentsConstants.REMOVE_FOLDER_REQUEST:\n return {\n ...state,\n removeFolderStatus: RequestStatus.PENDING,\n };\n case documentsConstants.REMOVE_FOLDER_SUCCESS:\n return {\n ...state,\n removeFolderStatus: RequestStatus.SUCCESS,\n };\n case documentsConstants.REMOVE_FOLDER_FAILURE:\n return {\n ...state,\n removeFolderStatus: RequestStatus.ERROR,\n };\n case documentsConstants.WS_ADD_FOLDER: {\n const prev = state.folderTree ? state.folderTree : [];\n return {\n ...state,\n folderTree: [...prev, action.newFolder],\n };\n }\n case documentsConstants.WS_UPDATE_FOLDER:\n return {\n ...state,\n folderTree: updateFolderTree(\n state.folderTree,\n action.updatedFolder,\n FolderOperationType.UPDATE\n ),\n folderPath: updateFolderPath(state.folderPath, action.updatedFolder),\n };\n case documentsConstants.WS_DELETE_FOLDER:\n return {\n ...state,\n folderTree: updateFolderTree(\n state.folderTree,\n action.deletedFolder,\n FolderOperationType.DELETE\n ),\n };\n case documentsConstants.WS_MOVED_DOCUMENT:\n return {\n ...state,\n documents: updateDocument(\n state.documents,\n action.currentFolderId,\n action.movedFile,\n FolderOperationType.MOVE,\n action.sortKey,\n action.sortOrder\n ),\n };\n case documentsConstants.WS_CREATED_DOCUMENT:\n return {\n ...state,\n documents: addDocument(\n state.documents,\n action.documentData,\n action.sortKey,\n action.sortOrder\n ),\n };\n case documentsConstants.WS_UPDATED_DOCUMENT:\n return {\n ...state,\n documents: updateOnlyOneDocumentInState(\n state.documents,\n action.documentData,\n action.sortKey,\n action.sortOrder\n ),\n };\n case documentsConstants.WS_DELETE_DOCUMENT:\n return {\n ...state,\n documents: deleteOnlyOneDocumentFromState(state.documents, action.documentData),\n };\n case documentsConstants.MOVE_DOCUMENT_REQUEST:\n return {\n ...state,\n moveDocumentsStatus: RequestStatus.PENDING,\n };\n case documentsConstants.MOVE_DOCUMENT_SUCCESS:\n return {\n ...state,\n moveDocumentsStatus: RequestStatus.SUCCESS,\n };\n case documentsConstants.MOVE_DOCUMENT_FAILURE:\n return {\n ...state,\n moveDocumentsStatus: RequestStatus.ERROR,\n };\n case documentsConstants.SUBMIT_ADVANCED_SEARCH:\n return {\n ...state,\n advancedSearch: action.payload,\n };\n case documentsConstants.RESET_DRAFT_ADVANCED_SEARCH:\n return {\n ...state,\n draftAdvancedSearch: initialState.draftAdvancedSearch,\n };\n case documentsConstants.UPDATE_DRAFT_ADVANCED_SEARCH:\n return {\n ...state,\n draftAdvancedSearch: {\n ...state.draftAdvancedSearch,\n [action.payload.field]: action.payload.value,\n },\n };\n case documentsConstants.UPDATE_ADVANCED_SEARCH:\n return {\n ...state,\n advancedSearch: {\n ...state.advancedSearch,\n [action.payload.field]: action.payload.value,\n },\n };\n case documentsConstants.RESET_FIELD_DRAFT_ADVANCED_SEARCH: {\n const actionField: AdvancedSearchFields = action.payload.field;\n\n return {\n ...state,\n draftAdvancedSearch: {\n ...state.draftAdvancedSearch,\n [action.payload.field]: state.advancedSearch[actionField],\n },\n };\n }\n case documentsConstants.FETCH_DOCUMENTS_ADVANCED_SEARCH_REQUEST: {\n return {\n ...state,\n advancedSearchedDocumentsStatus: RequestStatus.PENDING,\n };\n }\n case documentsConstants.FETCH_DOCUMENTS_ADVANCED_SEARCH_SUCCESS: {\n const { documentsQuery, documents } = action;\n\n return {\n ...state,\n advancedSearchedDocumentsStatus: RequestStatus.SUCCESS,\n advancedSearchedDocuments:\n documentsQuery.offset === 0\n ? documents\n : [...state.advancedSearchedDocuments, ...documents],\n advancedSearchedDocumentsQuery: {\n hasMoreDocuments: documentsQuery.hasMoreDocuments,\n limit: documentsQuery.limit,\n offset: documentsQuery.offset,\n },\n };\n }\n case documentsConstants.FETCH_DOCUMENTS_ADVANCED_SEARCH_FAILURE: {\n return {\n ...state,\n advancedSearchedDocumentsStatus: RequestStatus.ERROR,\n advancedSearchedDocuments: initialState.advancedSearchedDocuments,\n };\n }\n case documentsConstants.FETCH_FOLDERS_ADVANCED_SEARCH_SUCCESS: {\n return {\n ...state,\n advancedSearchedFolders: action.payload,\n };\n }\n case documentsConstants.SET_SELECTED_FOLDERS: {\n return {\n ...state,\n selectedFolders: action.payload,\n };\n }\n case documentsConstants.CLEAR_STORE:\n return {\n ...initialState,\n quickSearchedDocuments: state.quickSearchedDocuments,\n quickSearchedFolders: state.quickSearchedFolders,\n advancedSearch: state.advancedSearch,\n draftAdvancedSearch: state.draftAdvancedSearch,\n };\n case documentsConstants.CLEAR_SEARCH:\n return {\n ...state,\n quickSearchedDocuments: [],\n documentsSearchFetchStatus: RequestStatus.IDLE,\n quickSearchedFolders: [],\n foldersSearchFetchStatus: RequestStatus.IDLE,\n };\n case documentsConstants.CLEAR_ADVANCED_SEARCH: {\n const excludeName = action.payload;\n return {\n ...state,\n advancedSearchedDocumentsStatus: initialState.advancedSearchedDocumentsStatus,\n advancedSearchedDocuments: initialState.advancedSearchedDocuments,\n advancedSearchedDocumentsQuery: initialState.advancedSearchedDocumentsQuery,\n advancedSearchedFolders: initialState.advancedSearchedFolders,\n advancedSearch: {\n ...initialState.advancedSearch,\n [AdvancedSearchFields.NAME]: excludeName\n ? state.advancedSearch[AdvancedSearchFields.NAME]\n : initialState.advancedSearch[AdvancedSearchFields.NAME],\n },\n draftAdvancedSearch: {\n ...initialState.draftAdvancedSearch,\n [AdvancedSearchFields.NAME]: excludeName\n ? state.draftAdvancedSearch[AdvancedSearchFields.NAME]\n : initialState.draftAdvancedSearch[AdvancedSearchFields.NAME],\n },\n };\n }\n\n case documentsConstants.CLEAR_FOLDER_PATH:\n return {\n ...state,\n folderPath: initialState.folderPath,\n };\n default:\n return state;\n }\n}\n\nexport default documentsStore;\n","enum identityConstants {\n FETCH_STRUCTURE_REQUEST = 'FETCH_STRUCTURE_REQUEST',\n FETCH_STRUCTURE_SUCCESS = 'FETCH_STRUCTURE_SUCCESS',\n FETCH_STRUCTURE_FAILURE = 'FETCH_STRUCTURE_FAILURE',\n\n FETCH_WORKSPACE_STRUCTURE_REQUEST = 'FETCH_WORKSPACE_STRUCTURE_REQUEST',\n FETCH_WORKSPACE_STRUCTURE_SUCCESS = 'FETCH_WORKSPACE_STRUCTURE_SUCCESS',\n FETCH_WORKSPACE_STRUCTURE_FAILURE = 'FETCH_WORKSPACE_STRUCTURE_FAILURE',\n\n FETCH_WORKSPACE_GROUPS_STRUCTURE_REQUEST = 'FETCH_WORKSPACE_GROUPS_STRUCTURE_REQUEST',\n FETCH_WORKSPACE_GROUPS_STRUCTURE_SUCCESS = 'FETCH_WORKSPACE_GROUPS_STRUCTURE_SUCCESS',\n FETCH_WORKSPACE_GROUPS_STRUCTURE_FAILURE = 'FETCH_WORKSPACE_GROUPS_STRUCTURE_FAILURE',\n\n FETCH_WORKSPACE_INFO_REQUEST = 'FETCH_WORKSPACE_INFO_REQUEST',\n FETCH_WORKSPACE_INFO_SUCCESS = 'FETCH_WORKSPACE_INFO_SUCCESS',\n FETCH_WORKSPACE_INFO_FAILURE = 'FETCH_WORKSPACE_INFO_FAILURE',\n\n UPDATE_WORKSPACE_INFO_REQUEST = 'UPDATE_WORKSPACE_INFO_REQUEST',\n UPDATE_WORKSPACE_INFO_SUCCESS = 'UPDATE_WORKSPACE_INFO_SUCCESS',\n UPDATE_WORKSPACE_INFO_FAILURE = 'UPDATE_WORKSPACE_INFO_FAILURE',\n\n SET_ACTIVE_IDENTITY = 'SET_ACTIVE_IDENTITY',\n\n CREATE_NEW_WORKSPACE_REQUEST = 'CREATE_NEW_WORKSPACE_REQUEST',\n CREATE_NEW_WORKSPACE_SUCCESS = 'CREATE_NEW_WORKSPACE_SUCCESS',\n CREATE_NEW_WORKSPACE_FAILURE = 'CREATE_NEW_WORKSPACE_FAILURE',\n\n SWITCH_CONTACT_EMAIL_REQUEST = 'SWITCH_CONTACT_EMAIL_REQUEST',\n SWITCH_CONTACT_EMAIL_SUCCESS = 'SWITCH_CONTACT_EMAIL_SUCCESS',\n SWITCH_CONTACT_EMAIL_FAILURE = 'SWITCH_CONTACT_EMAIL_FAILURE',\n\n FETCH_WORKSPACE_USERS_REQUEST = 'FETCH_WORKSPACE_USERS_REQUEST',\n FETCH_WORKSPACE_USERS_SUCCESS = 'FETCH_WORKSPACE_USERS_SUCCESS',\n FETCH_WORKSPACE_USERS_FAILURE = 'FETCH_WORKSPACE_USERS_FAILURE',\n\n FETCH_WORKSPACE_INVITED_USERS_REQUEST = 'FETCH_WORKSPACE_INVITED_USERS_REQUEST',\n FETCH_WORKSPACE_INVITED_USERS_SUCCESS = 'FETCH_WORKSPACE_INVITED_USERS_SUCCESS',\n FETCH_WORKSPACE_INVITED_USERS_FAILURE = 'FETCH_WORKSPACE_INVITED_USERS_FAILURE',\n\n FETCH_WORKSPACE_USERS_SEARCH_REQUEST = 'FETCH_WORKSPACE_USERS_SEARCH_REQUEST',\n FETCH_WORKSPACE_USERS_SEARCH_SUCCESS = 'FETCH_WORKSPACE_USERS_SEARCH_SUCCESS',\n FETCH_WORKSPACE_USERS_SEARCH_FAILURE = 'FETCH_WORKSPACE_USERS_SEARCH_FAILURE',\n\n INVITE_USER_TO_WORKSPACE_REQUEST = 'INVITE_USER_TO_WORKSPACE_REQUEST',\n INVITE_USER_TO_WORKSPACE_SUCCESS = 'INVITE_USER_TO_WORKSPACE_SUCCESS',\n INVITE_USER_TO_WORKSPACE_FAILURE = 'INVITE_USER_TO_WORKSPACE_FAILURE',\n\n DELETE_USER_FROM_WORKSPACE_REQUEST = 'DELETE_USER_FROM_WORKSPACE_REQUEST',\n DELETE_USER_FROM_WORKSPACE_SUCCESS = 'DELETE_USER_FROM_WORKSPACE_SUCCESS',\n DELETE_USER_FROM_WORKSPACE_FAILURE = 'DELETE_USER_FROM_WORKSPACE_FAILURE',\n\n DELETE_USER_INVITATION_FROM_WORKSPACE_REQUEST = 'DELETE_USER_INVITATION_FROM_WORKSPACE_REQUEST',\n DELETE_USER_INVITATION_FROM_WORKSPACE_SUCCESS = 'DELETE_USER_INVITATION_FROM_WORKSPACE_SUCCESS',\n DELETE_USER_INVITATION_FROM_WORKSPACE_FAILURE = 'DELETE_USER_INVITATION_FROM_WORKSPACE_FAILURE',\n\n UPDATE_WORKSPACE_MEMBERS_GROUP = 'UPDATE_WORKSPACE_MEMBERS_GROUP',\n\n CLEAR_WORKSPACE_USERS_STORE = 'CLEAR_WORKSPACE_USERS_STORE',\n\n UPDATE_NON_EMPTY_WORKSPACE_ONLY_OWNER = 'UPDATE_NON_EMPTY_WORKSPACE_ONLY_OWNER',\n\n UPDATE_WORKSPACE_DETAILS_REQUEST = 'UPDATE_WORKSPACE_DETAILS_REQUEST',\n UPDATE_WORKSPACE_DETAILS_SUCCESS = 'UPDATE_WORKSPACE_DETAILS_SUCCESS',\n UPDATE_WORKSPACE_DETAILS_FAILURE = 'UPDATE_WORKSPACE_DETAILS_FAILURE',\n\n SEND_TRANSACTION_FROM_NEW_DOCUMENT_REQUEST = 'SEND_TRANSACTION_FROM_NEW_DOCUMENT_REQUEST',\n SEND_TRANSACTION_FROM_NEW_DOCUMENT_SUCCESS = 'SEND_TRANSACTION_FROM_NEW_DOCUMENT_SUCCESS',\n SEND_TRANSACTION_FROM_NEW_DOCUMENT_FAILURE = 'SEND_TRANSACTION_FROM_NEW_DOCUMENT_FAILURE',\n\n SEND_TRANSACTION_FROM_NEW_CERTIFICATE_REQUEST = 'SEND_TRANSACTION_FROM_NEW_CERTIFICATE_REQUEST',\n SEND_TRANSACTION_FROM_NEW_CERTIFICATE_SUCCESS = 'SEND_TRANSACTION_FROM_NEW_CERTIFICATE_SUCCESS',\n SEND_TRANSACTION_FROM_NEW_CERTIFICATE_FAILURE = 'SEND_TRANSACTION_FROM_NEW_CERTIFICATE_FAILURE',\n\n UPDATE_WORKSPACE_GROUP_AFTER_FETCHING = 'UPDATE_WORKSPACE_GROUP_AFTER_FETCHING',\n DELETE_WORKSPACE_GROUP_AFTER_REMOVING = 'DELETE_WORKSPACE_GROUP_AFTER_REMOVING',\n\n FETCH_WORKSPACE_PERMISSIONS_REQUEST = 'FETCH_WORKSPACE_PERMISSIONS_REQUEST',\n FETCH_WORKSPACE_PERMISSIONS_SUCCESS = 'FETCH_WORKSPACE_PERMISSIONS_SUCCESS',\n FETCH_WORKSPACE_PERMISSIONS_FAILURE = 'FETCH_WORKSPACE_PERMISSIONS_FAILURE',\n\n FETCH_WORKSPACE_WORKFLOWS_REQUEST = 'FETCH_WORKSPACE_WORKFLOWS_REQUEST',\n FETCH_WORKSPACE_WORKFLOWS_SUCCESS = 'FETCH_WORKSPACE_WORKFLOWS_SUCCESS',\n FETCH_WORKSPACE_WORKFLOWS_FAILURE = 'FETCH_WORKSPACE_WORKFLOWS_FAILURE',\n}\n\nexport default identityConstants;\n","enum workspaceGroupsConstants {\n CREATE_NEW_WORKSPACE_GROUP_REQUEST = 'CREATE_NEW_WORKSPACE_GROUP_REQUEST',\n CREATE_NEW_WORKSPACE_GROUP_SUCCESS = 'CREATE_NEW_WORKSPACE_GROUP_SUCCESS',\n CREATE_NEW_WORKSPACE_GROUP_FAILURE = 'CREATE_NEW_WORKSPACE_GROUP_FAILURE',\n\n FETCH_WORKSPACE_GROUPS_SEARCH_REQUEST = 'FETCH_WORKSPACE_GROUPS_SEARCH_REQUEST',\n FETCH_WORKSPACE_GROUPS_SEARCH_SUCCESS = 'FETCH_WORKSPACE_GROUPS_SEARCH_SUCCESS',\n FETCH_WORKSPACE_GROUPS_SEARCH_FAILURE = 'FETCH_WORKSPACE_GROUPS_SEARCH_FAILURE',\n\n DELETE_WORKSPACE_GROUP_REQUEST = 'DELETE_WORKSPACE_GROUP_REQUEST',\n DELETE_WORKSPACE_GROUP_SUCCESS = 'DELETE_WORKSPACE_GROUP_SUCCESS',\n DELETE_WORKSPACE_GROUP_FAILURE = 'DELETE_WORKSPACE_GROUP_FAILURE',\n\n UPDATE_WORKSPACE_GROUP_REQUEST = 'UPDATE_WORKSPACE_GROUP_REQUEST',\n UPDATE_WORKSPACE_GROUP_SUCCESS = 'UPDATE_WORKSPACE_GROUP_SUCCESS',\n UPDATE_WORKSPACE_GROUP_FAILURE = 'UPDATE_WORKSPACE_GROUP_FAILURE',\n\n ADD_MEMBER_TO_WORKSPACE_GROUP_REQUEST = 'ADD_MEMBER_TO_WORKSPACE_GROUP_REQUEST',\n ADD_MEMBER_TO_WORKSPACE_GROUP_SUCCESS = 'ADD_MEMBER_TO_WORKSPACE_GROUP_SUCCESS',\n ADD_MEMBER_TO_WORKSPACE_GROUP_FAILURE = 'ADD_MEMBER_TO_WORKSPACE_GROUP_FAILURE',\n\n DELETE_MEMBER_FROM_WORKSPACE_GROUP_REQUEST = 'DELETE_MEMBER_FROM_WORKSPACE_GROUP_REQUEST',\n DELETE_MEMBER_FROM_WORKSPACE_GROUP_SUCCESS = 'DELETE_MEMBER_FROM_WORKSPACE_GROUP_SUCCESS',\n DELETE_MEMBER_FROM_WORKSPACE_GROUP_FAILURE = 'DELETE_MEMBER_FROM_WORKSPACE_GROUP_FAILURE',\n\n FETCH_WORKSPACE_GROUPS_REQUEST = 'FETCH_WORKSPACE_GROUPS_REQUEST',\n FETCH_WORKSPACE_GROUPS_SUCCESS = 'FETCH_WORKSPACE_GROUPS_SUCCESS',\n FETCH_WORKSPACE_GROUPS_FAILURE = 'FETCH_WORKSPACE_GROUPS_FAILURE',\n\n FETCH_WORKSPACE_GROUP_MEMBERS_REQUEST = 'FETCH_WORKSPACE_GROUP_MEMBERS_REQUEST',\n FETCH_WORKSPACE_GROUP_MEMBERS_SUCCESS = 'FETCH_WORKSPACE_GROUP_MEMBERS_SUCCESS',\n FETCH_WORKSPACE_GROUP_MEMBERS_FAILURE = 'FETCH_WORKSPACE_GROUP_MEMBERS_FAILURE',\n\n FETCH_WORKSPACE_GROUP_REQUEST = 'FETCH_WORKSPACE_GROUP_REQUEST',\n FETCH_WORKSPACE_GROUP_SUCCESS = 'FETCH_WORKSPACE_GROUP_SUCCESS',\n FETCH_WORKSPACE_GROUP_FAILURE = 'FETCH_WORKSPACE_GROUP_FAILURE',\n\n SET_ACTIVE_GROUP = 'SET_ACTIVE_GROUP',\n\n CLEAR_WORKSPACE_GROUPS_STATE = 'CLEAR_WORKSPACE_GROUPS_STATE',\n}\n\nexport default workspaceGroupsConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport workspaceGroupsConstants from '../constants/workspaceGroups.constants';\n\nconst initialState = {\n activeGroup: {},\n addMembersToWorkspaceGroupStatus: RequestStatus.IDLE,\n deleteMembersFromWorkspaceGroupStatus: RequestStatus.IDLE,\n deleteWorkspaceGroupStatus: RequestStatus.IDLE,\n fetchGroupStructureStatus: RequestStatus.IDLE,\n fetchWorkspaceGroupStatus: RequestStatus.IDLE,\n fetchWorkspaceGroupsStatus: RequestStatus.IDLE,\n groupMembers: [],\n hasNextPage: false,\n pageIndex: 0,\n searchWorkspaceGroupsStatus: RequestStatus.IDLE,\n updateWorkspaceGroupStatus: RequestStatus.IDLE,\n workspaceGroups: [],\n};\n\nconst addOnlyOneGroupToState = (groups, data) =>\n [{ ...data, active: true }].concat(groups).sort((a, b) => (a.name > b.name ? 1 : -1));\n\nexport const deactivatedGroup = (groups, groupId) =>\n groups.map((group) => {\n if (group.info.groupId === groupId) {\n group.info.active = false;\n }\n return group;\n });\n\nexport const updateOnlyOneGroupInState = (groups, data) => {\n const changedGroupIndex = groups.findIndex(\n (type) => (type?.info?.groupId ? type?.info?.groupId : type?.groupId) === data?.groupId\n );\n const newWorkspaceGroupsArray = [...groups];\n if (!newWorkspaceGroupsArray[changedGroupIndex]) return newWorkspaceGroupsArray;\n\n if (newWorkspaceGroupsArray[changedGroupIndex]?.info) {\n newWorkspaceGroupsArray[changedGroupIndex].info.name = data.name;\n newWorkspaceGroupsArray[changedGroupIndex].info.description = data.description;\n } else {\n newWorkspaceGroupsArray[changedGroupIndex].name = data.name;\n newWorkspaceGroupsArray[changedGroupIndex].description = data.description;\n }\n\n return newWorkspaceGroupsArray;\n};\n\nexport const deleteOnlyOneGroupFromState = (groups, groupId) => {\n const changedGroupIndex = groups.findIndex(\n (type) => (type?.info?.groupId ? type?.info?.groupId : type?.groupId) === groupId\n );\n const groupsArray = [...groups];\n return groupsArray.reduce((prev, x, i) => prev.concat(i !== changedGroupIndex ? [x] : []), []);\n};\n\nexport default function workspaceGroupsStore(state = initialState, action) {\n switch (action.type) {\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_REQUEST:\n return {\n ...state,\n fetchWorkspaceGroupsStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SUCCESS:\n return {\n ...state,\n fetchWorkspaceGroupsStatus: RequestStatus.SUCCESS,\n hasNextPage: action.hasNextPage,\n pageIndex: action.hasNextPage ? state.pageIndex + 1 : state.pageIndex,\n workspaceGroups:\n action.force === true\n ? [...action.workspaceGroups]\n : [...state.workspaceGroups, ...action.workspaceGroups],\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_FAILURE:\n return {\n ...state,\n fetchWorkspaceGroupsStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SEARCH_REQUEST:\n return {\n ...state,\n searchWorkspaceGroupsStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SEARCH_SUCCESS:\n return {\n ...state,\n searchWorkspaceGroupsStatus: RequestStatus.SUCCESS,\n pageIndex: 0,\n workspaceGroups: [...action.workspaceUsers],\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SEARCH_FAILURE:\n return {\n ...state,\n searchWorkspaceGroupsStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.CREATE_NEW_WORKSPACE_GROUP_REQUEST:\n return {\n ...state,\n createWorkspaceGroupStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.CREATE_NEW_WORKSPACE_GROUP_SUCCESS:\n return {\n ...state,\n workspaceGroups: addOnlyOneGroupToState(state.workspaceGroups, action.data),\n createWorkspaceGroupStatus: RequestStatus.SUCCESS,\n };\n case workspaceGroupsConstants.CREATE_NEW_WORKSPACE_GROUP_FAILURE:\n return {\n ...state,\n createWorkspaceGroupStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.DELETE_WORKSPACE_GROUP_REQUEST:\n return {\n ...state,\n deleteWorkspaceGroupStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.DELETE_WORKSPACE_GROUP_SUCCESS:\n return {\n ...state,\n workspaceGroups: deleteOnlyOneGroupFromState(state.workspaceGroups, action.groupId),\n deleteWorkspaceGroupStatus: RequestStatus.SUCCESS,\n };\n case workspaceGroupsConstants.DELETE_WORKSPACE_GROUP_FAILURE:\n return {\n ...state,\n deleteWorkspaceGroupStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.UPDATE_WORKSPACE_GROUP_REQUEST:\n return {\n ...state,\n updateWorkspaceGroupStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.UPDATE_WORKSPACE_GROUP_SUCCESS:\n return {\n ...state,\n updateWorkspaceGroupStatus: RequestStatus.SUCCESS,\n };\n case workspaceGroupsConstants.UPDATE_WORKSPACE_GROUP_FAILURE:\n return {\n ...state,\n updateWorkspaceGroupStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.ADD_MEMBER_TO_WORKSPACE_GROUP_REQUEST:\n return {\n ...state,\n addMembersToWorkspaceGroupStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.ADD_MEMBER_TO_WORKSPACE_GROUP_SUCCESS:\n return {\n ...state,\n addMembersToWorkspaceGroupStatus: RequestStatus.SUCCESS,\n };\n case workspaceGroupsConstants.ADD_MEMBER_TO_WORKSPACE_GROUP_FAILURE:\n return {\n ...state,\n addMembersToWorkspaceGroupStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.DELETE_MEMBER_FROM_WORKSPACE_GROUP_REQUEST:\n return {\n ...state,\n deleteMembersFromWorkspaceGroupStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.DELETE_MEMBER_FROM_WORKSPACE_GROUP_SUCCESS:\n return {\n ...state,\n deleteMembersFromWorkspaceGroupStatus: RequestStatus.SUCCESS,\n };\n case workspaceGroupsConstants.DELETE_MEMBER_FROM_WORKSPACE_GROUP_FAILURE:\n return {\n ...state,\n deleteMembersFromWorkspaceGroupStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_REQUEST:\n return {\n ...state,\n fetchWorkspaceGroupStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_SUCCESS:\n return {\n ...state,\n workspaceGroups: updateOnlyOneGroupInState(state.workspaceGroups, action.data),\n fetchWorkspaceGroupStatus: RequestStatus.SUCCESS,\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_FAILURE:\n return {\n ...state,\n fetchWorkspaceGroupStatus: RequestStatus.ERROR,\n };\n\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_MEMBERS_REQUEST:\n return {\n ...state,\n fetchGroupStructureStatus: RequestStatus.PENDING,\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_MEMBERS_SUCCESS:\n return {\n ...state,\n fetchGroupStructureStatus: RequestStatus.SUCCESS,\n groupMembers: action.members,\n };\n case workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_MEMBERS_FAILURE:\n return {\n ...state,\n fetchGroupStructureStatus: RequestStatus.ERROR,\n };\n case workspaceGroupsConstants.SET_ACTIVE_GROUP:\n return {\n ...state,\n activeGroup: action.payload,\n };\n case workspaceGroupsConstants.CLEAR_WORKSPACE_GROUPS_STATE:\n return initialState;\n\n default:\n return state;\n }\n}\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport identityConstants from 'src/redux/constants/identity.constants';\nimport {\n StructureGroup,\n StructureIdentity,\n StructureItemType,\n StructureWorkspace,\n WorkspaceDetailsInfo,\n WorkspaceInfo,\n} from 'src/models/identity.model';\nimport { TemplateDocumentType } from 'src/models/documents.model';\nimport { ErrorResponse } from 'src/models/errors.model';\nimport { deactivatedGroup, updateOnlyOneGroupInState } from './workspaceGroups.reducer';\n\ntype WorkspaceGroupItemType = {\n info: StructureGroup;\n members: StructureIdentity[];\n};\n\ntype IdentityStateType = {\n structure: StructureItemType[] | null; // List of all identities\n structureStatus: RequestStatus; // Status of the structure request\n createWorkspaceStatus: RequestStatus; // Status of the create workspace request\n currentIdentity: StructureItemType | null; // Current identity\n isOwner: boolean | null; // Is the current identity the owner of the workspace\n nonEmptyWorkspaces: StructureItemType[]; // When user tries to delete account, this list contains all non empty workspaces\n sendTransactionFromNewDocumentStatus: RequestStatus; // Status of the send transaction from new document request\n sendTransactionFromNewCertificateStatus: RequestStatus; // Status of the send transaction from new certificate request\n switchContactEmailRequestError: ErrorResponse | null; // Error response when trying to switch contact email\n switchContactEmailRequestStatus: RequestStatus; // Status of the switch contact email request\n updateWorkspaceDetailsStatus: RequestStatus; // Status of the update workspace details request\n updateWorkspaceInfoStatus: RequestStatus; // Status of the update workspace info request\n workspaceDetails: WorkspaceDetailsInfo | null; // Workspace details, details\n workspaceGroups: WorkspaceGroupItemType[]; // List of all groups in the workspace\n workspaceInfo: WorkspaceInfo | null; // Workspace info, details\n workspaceInfoStatus: RequestStatus; // Status of the fetch workspace info request\n workspacePermissions: string[]; // List of all permissions in the workspace\n workspacePermissionsStatus: RequestStatus; // Status of the fetch permissions request\n workspaceWorkflows: TemplateDocumentType[]; // List of all available workflows in the workspace (user has permission)\n workspaceWorkflowsStatus: RequestStatus; // Status of the fetch workflows request\n workspaceWorkflowsErrorCode: string | null; // Error code when trying to fetch workflows\n workspaceStructureStatus: RequestStatus; // Status of the fetch structure request\n workspaceUsers: StructureIdentity[]; // List of all users in the workspace\n};\n\nconst initialState: IdentityStateType = {\n structure: null,\n structureStatus: RequestStatus.IDLE,\n createWorkspaceStatus: RequestStatus.IDLE,\n currentIdentity: null,\n isOwner: null,\n nonEmptyWorkspaces: [],\n sendTransactionFromNewDocumentStatus: RequestStatus.IDLE,\n sendTransactionFromNewCertificateStatus: RequestStatus.IDLE,\n switchContactEmailRequestError: null,\n switchContactEmailRequestStatus: RequestStatus.IDLE,\n updateWorkspaceDetailsStatus: RequestStatus.IDLE,\n updateWorkspaceInfoStatus: RequestStatus.IDLE,\n workspaceDetails: null,\n workspaceGroups: [],\n workspaceInfo: null,\n workspaceInfoStatus: RequestStatus.IDLE,\n workspacePermissions: [],\n workspacePermissionsStatus: RequestStatus.IDLE,\n workspaceWorkflows: [],\n workspaceWorkflowsStatus: RequestStatus.IDLE,\n workspaceWorkflowsErrorCode: null,\n workspaceStructureStatus: RequestStatus.IDLE,\n workspaceUsers: [],\n};\n\nconst parseGroupsToUsers = (groups: WorkspaceGroupItemType[]): StructureIdentity[] => {\n const allGroup = groups.find((group) => group?.info?.name === 'All');\n return allGroup?.members ?? [];\n};\n\nconst updateStructureWorkspace = (\n structure: StructureItemType[] | null,\n newWorkspace: StructureWorkspace,\n targetWorkspaceId: string\n) => {\n if (structure === null) return null;\n\n const newStructure = [...structure];\n for (let i = 0; i < structure.length; i += 1) {\n if (structure[i].workspace.workspaceId === targetWorkspaceId) {\n newStructure[i].workspace = { ...structure[i].workspace, ...newWorkspace };\n }\n }\n return newStructure;\n};\n\nconst updateStructureIdentityContactMail = (\n structure: StructureItemType[] | null,\n currentIdentity: StructureItemType | null,\n email: string\n): StructureItemType[] | null => {\n if (structure === null) return null;\n const newStructure = [...structure];\n const updatedIndex = newStructure.findIndex(\n (user) => user.identity.identityId === currentIdentity?.identity.identityId\n );\n\n return [\n ...newStructure.slice(0, updatedIndex),\n {\n ...newStructure[updatedIndex],\n identity: {\n ...newStructure[updatedIndex].identity,\n contactEmail: email,\n },\n },\n ...newStructure.slice(updatedIndex + 1),\n ];\n};\n\nconst isOwner = (currentIdentity: StructureItemType): boolean => {\n if (!currentIdentity) return false;\n const ownersGroup = currentIdentity.groups.find(\n (group) => group.name === 'Owners' && group.active\n );\n return !!ownersGroup;\n};\n\nconst updateMembersInGroup = (\n state: IdentityStateType,\n groupId: string,\n members: StructureIdentity[]\n) =>\n state.workspaceGroups.map((group) => {\n if (group.info.groupId === groupId) {\n group.members = members;\n }\n return group;\n });\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\nfunction identityStore(state: IdentityStateType = initialState, action: any): IdentityStateType {\n switch (action.type) {\n case identityConstants.FETCH_STRUCTURE_REQUEST:\n return {\n ...state,\n structureStatus: RequestStatus.PENDING,\n };\n case identityConstants.FETCH_STRUCTURE_SUCCESS:\n return {\n ...state,\n structureStatus: RequestStatus.SUCCESS,\n structure: action.structure,\n };\n case identityConstants.FETCH_STRUCTURE_FAILURE:\n return {\n ...state,\n structureStatus: RequestStatus.ERROR,\n };\n case identityConstants.SET_ACTIVE_IDENTITY:\n return {\n ...state,\n currentIdentity: action.identity,\n isOwner: isOwner(action.identity),\n };\n case identityConstants.FETCH_WORKSPACE_STRUCTURE_REQUEST:\n return {\n ...state,\n workspaceStructureStatus: RequestStatus.PENDING,\n };\n case identityConstants.FETCH_WORKSPACE_STRUCTURE_SUCCESS:\n return {\n ...state,\n workspaceStructureStatus: RequestStatus.SUCCESS,\n workspaceDetails: action.info,\n workspaceGroups: action.groups,\n workspaceUsers: parseGroupsToUsers(action.groups),\n };\n case identityConstants.FETCH_WORKSPACE_STRUCTURE_FAILURE:\n return {\n ...state,\n workspaceStructureStatus: RequestStatus.ERROR,\n };\n case identityConstants.FETCH_WORKSPACE_INFO_REQUEST: {\n return {\n ...state,\n workspaceInfoStatus: RequestStatus.PENDING,\n };\n }\n case identityConstants.FETCH_WORKSPACE_INFO_SUCCESS:\n return {\n ...state,\n workspaceInfoStatus: RequestStatus.SUCCESS,\n workspaceInfo: action.workspaceInfo,\n };\n case identityConstants.FETCH_WORKSPACE_INFO_FAILURE:\n return {\n ...state,\n workspaceInfoStatus: RequestStatus.ERROR,\n };\n case identityConstants.UPDATE_WORKSPACE_INFO_REQUEST:\n return {\n ...state,\n updateWorkspaceInfoStatus: RequestStatus.PENDING,\n };\n case identityConstants.UPDATE_WORKSPACE_INFO_SUCCESS:\n return {\n ...state,\n updateWorkspaceInfoStatus: RequestStatus.SUCCESS,\n workspaceInfo: {\n ...state.workspaceInfo,\n ...action.workspaceInfo,\n },\n };\n case identityConstants.UPDATE_WORKSPACE_INFO_FAILURE:\n return {\n ...state,\n updateWorkspaceInfoStatus: RequestStatus.ERROR,\n };\n case identityConstants.CREATE_NEW_WORKSPACE_FAILURE:\n return {\n ...state,\n createWorkspaceStatus: RequestStatus.ERROR,\n };\n case identityConstants.CREATE_NEW_WORKSPACE_SUCCESS:\n return {\n ...state,\n createWorkspaceStatus: RequestStatus.SUCCESS,\n };\n case identityConstants.CREATE_NEW_WORKSPACE_REQUEST:\n return {\n ...state,\n createWorkspaceStatus: RequestStatus.PENDING,\n };\n case identityConstants.SWITCH_CONTACT_EMAIL_REQUEST:\n return {\n ...state,\n switchContactEmailRequestStatus: RequestStatus.PENDING,\n };\n case identityConstants.SWITCH_CONTACT_EMAIL_SUCCESS:\n return {\n ...state,\n switchContactEmailRequestStatus: RequestStatus.SUCCESS,\n currentIdentity: state.currentIdentity\n ? {\n ...state.currentIdentity,\n identity: {\n ...state.currentIdentity.identity,\n contactEmail: action.email,\n },\n }\n : null,\n structure: updateStructureIdentityContactMail(\n state.structure,\n state.currentIdentity,\n action.email\n ),\n };\n case identityConstants.SWITCH_CONTACT_EMAIL_FAILURE:\n return {\n ...state,\n switchContactEmailRequestStatus: RequestStatus.ERROR,\n switchContactEmailRequestError: action.error,\n };\n case identityConstants.UPDATE_WORKSPACE_DETAILS_REQUEST:\n return {\n ...state,\n updateWorkspaceDetailsStatus: RequestStatus.PENDING,\n };\n case identityConstants.UPDATE_WORKSPACE_DETAILS_SUCCESS:\n return {\n ...state,\n structure: state.currentIdentity?.workspace?.workspaceId\n ? updateStructureWorkspace(\n state.structure,\n action.workspaceDetails,\n state.currentIdentity?.workspace?.workspaceId\n )\n : state.structure,\n updateWorkspaceDetailsStatus: RequestStatus.SUCCESS,\n workspaceDetails: {\n ...state.workspaceDetails,\n ...action.workspaceDetails,\n },\n\n currentIdentity: state.currentIdentity\n ? {\n ...state.currentIdentity,\n workspace: {\n ...state.currentIdentity.workspace,\n ...action.workspaceDetails,\n },\n }\n : state.currentIdentity,\n };\n case identityConstants.UPDATE_WORKSPACE_DETAILS_FAILURE:\n return {\n ...state,\n updateWorkspaceDetailsStatus: RequestStatus.ERROR,\n };\n case identityConstants.SEND_TRANSACTION_FROM_NEW_DOCUMENT_REQUEST:\n return {\n ...state,\n sendTransactionFromNewDocumentStatus: RequestStatus.PENDING,\n };\n case identityConstants.SEND_TRANSACTION_FROM_NEW_DOCUMENT_SUCCESS:\n return {\n ...state,\n sendTransactionFromNewDocumentStatus: RequestStatus.SUCCESS,\n };\n case identityConstants.SEND_TRANSACTION_FROM_NEW_DOCUMENT_FAILURE:\n return {\n ...state,\n sendTransactionFromNewDocumentStatus: RequestStatus.ERROR,\n };\n case identityConstants.SEND_TRANSACTION_FROM_NEW_CERTIFICATE_REQUEST:\n return {\n ...state,\n sendTransactionFromNewCertificateStatus: RequestStatus.PENDING,\n };\n case identityConstants.SEND_TRANSACTION_FROM_NEW_CERTIFICATE_SUCCESS:\n return {\n ...state,\n sendTransactionFromNewCertificateStatus: RequestStatus.SUCCESS,\n };\n case identityConstants.SEND_TRANSACTION_FROM_NEW_CERTIFICATE_FAILURE:\n return {\n ...state,\n sendTransactionFromNewCertificateStatus: RequestStatus.ERROR,\n };\n case identityConstants.FETCH_WORKSPACE_PERMISSIONS_REQUEST:\n return {\n ...state,\n workspacePermissionsStatus: RequestStatus.PENDING,\n };\n case identityConstants.FETCH_WORKSPACE_PERMISSIONS_SUCCESS:\n return {\n ...state,\n workspacePermissionsStatus: RequestStatus.SUCCESS,\n workspacePermissions: action.data,\n };\n case identityConstants.FETCH_WORKSPACE_PERMISSIONS_FAILURE:\n return {\n ...state,\n workspacePermissionsStatus: RequestStatus.ERROR,\n };\n case identityConstants.FETCH_WORKSPACE_WORKFLOWS_REQUEST:\n return {\n ...state,\n workspaceWorkflowsStatus: RequestStatus.PENDING,\n };\n case identityConstants.FETCH_WORKSPACE_WORKFLOWS_SUCCESS:\n return {\n ...state,\n workspaceWorkflowsStatus: RequestStatus.SUCCESS,\n workspaceWorkflows: action.data,\n workspaceWorkflowsErrorCode: null,\n };\n case identityConstants.FETCH_WORKSPACE_WORKFLOWS_FAILURE:\n return {\n ...state,\n workspaceWorkflowsStatus: RequestStatus.ERROR,\n workspaceWorkflowsErrorCode: action.payload,\n };\n case identityConstants.UPDATE_WORKSPACE_GROUP_AFTER_FETCHING:\n return {\n ...state,\n workspaceGroups: updateOnlyOneGroupInState(state.workspaceGroups, action.data),\n };\n\n case identityConstants.UPDATE_WORKSPACE_MEMBERS_GROUP:\n return {\n ...state,\n workspaceGroups: updateMembersInGroup(state, action.groupId, action.members),\n };\n\n case identityConstants.DELETE_WORKSPACE_GROUP_AFTER_REMOVING:\n return {\n ...state,\n workspaceGroups: deactivatedGroup(state.workspaceGroups, action.groupId),\n };\n case identityConstants.UPDATE_NON_EMPTY_WORKSPACE_ONLY_OWNER:\n return {\n ...state,\n nonEmptyWorkspaces:\n state.structure?.filter((structure) =>\n action.payload.includes(structure.workspace.workspaceId)\n ) || [],\n };\n\n default:\n return state;\n }\n}\n\nexport default identityStore;\n","enum snackbarConstants {\n ENQUEUE_SNACKBAR = 'ENQUEUE_SNACKBAR',\n CLOSE_SNACKBAR = 'CLOSE_SNACKBAR',\n REMOVE_SNACKBAR = 'REMOVE_SNACKBAR',\n}\n\nexport default snackbarConstants;\n","import snackbarConstants from '../constants/snackbar.constants';\n\nconst initialState = {\n notifications: [],\n};\n\nfunction snackbar(state = initialState, action) {\n switch (action.type) {\n case snackbarConstants.ENQUEUE_SNACKBAR:\n return {\n ...state,\n notifications: [\n ...state.notifications,\n {\n key: action.key,\n ...action.notification,\n },\n ],\n };\n\n case snackbarConstants.CLOSE_SNACKBAR:\n return {\n ...state,\n notifications: state.notifications.map((notification) =>\n action.dismissAll || notification.key === action.key\n ? { ...notification, dismissed: true }\n : { ...notification }\n ),\n };\n\n case snackbarConstants.REMOVE_SNACKBAR:\n return {\n ...state,\n notifications: state.notifications.filter(\n (notification) => notification.key !== action.key\n ),\n };\n\n default:\n return state;\n }\n}\n\nexport default snackbar;\n","enum twoFactorConstants {\n TWO_FACTOR_INIT = 'TWO_FACTOR_INIT',\n TWO_FACTOR_CLOSE = 'TWO_FACTOR_CLOSE',\n\n TWO_FACTOR_INIT_SESSION_REQUEST = 'TWO_FACTOR_INIT_SESSION_REQUEST',\n TWO_FACTOR_INIT_SESSION_SUCCESS = 'TWO_FACTOR_INIT_SESSION_SUCCESS',\n TWO_FACTOR_INIT_SESSION_ERROR = 'TWO_FACTOR_INIT_SESSION_ERROR',\n\n TWO_FACTOR_REQUEST = 'TWO_FACTOR_REQUEST',\n TWO_FACTOR_SUCCESS = 'TWO_FACTOR_SUCCESS',\n TWO_FACTOR_ERROR = 'TWO_FACTOR_ERROR',\n\n TWO_FACTOR_RESEND_REQUEST = 'TWO_FACTOR_RESEND_REQUEST',\n TWO_FACTOR_RESEND_SUCCESS = 'TWO_FACTOR_RESEND_SUCCESS',\n TWO_FACTOR_RESEND_ERROR = 'TWO_FACTOR_RESEND_ERROR',\n}\n\nexport default twoFactorConstants;\n","enum twoFactorConfigConstants {\n GET_TWO_FACTOR_CONFIG_REQUEST = 'GET_TWO_FACTOR_CONFIG_REQUEST',\n GET_TWO_FACTOR_CONFIG_SUCCESS = 'GET_TWO_FACTOR_CONFIG_SUCCESS',\n GET_TWO_FACTOR_CONFIG_ERROR = 'GET_TWO_FACTOR_CONFIG_ERROR',\n\n CHANGE_TWO_FACTOR_ACTIVE_TYPE_REQUEST = 'CHANGE_TWO_FACTOR_ACTIVE_TYPE_REQUEST',\n CHANGE_TWO_FACTOR_ACTIVE_TYPE_SUCCESS = 'CHANGE_TWO_FACTOR_ACTIVE_TYPE_SUCCESS',\n CHANGE_TWO_FACTOR_ACTIVE_TYPE_ERROR = 'CHANGE_TWO_FACTOR_ACTIVE_TYPE_ERROR',\n\n DELETE_TWO_FACTOR_TYPE_REQUEST = 'DELETE_TWO_FACTOR_TYPE_REQUEST',\n DELETE_TWO_FACTOR_TYPE_SUCCESS = 'DELETE_TWO_FACTOR_TYPE_SUCCESS',\n DELETE_TWO_FACTOR_TYPE_ERROR = 'DELETE_TWO_FACTOR_TYPE_ERROR',\n\n INIT_TWO_FACTOR_TYPE_CHANGE_REQUEST = 'INIT_TWO_FACTOR_TYPE_CHANGE_REQUEST',\n INIT_TWO_FACTOR_TYPE_CHANGE_SUCCESS = 'INIT_TWO_FACTOR_TYPE_CHANGE_SUCCESS',\n INIT_TWO_FACTOR_TYPE_CHANGE_ERROR = 'INIT_TWO_FACTOR_TYPE_CHANGE_ERROR',\n\n CONFIRM_TWO_FACTOR_TYPE_CHANGE_REQUEST = 'CONFIRM_TWO_FACTOR_TYPE_CHANGE_REQUEST',\n CONFIRM_TWO_FACTOR_TYPE_CHANGE_SUCCESS = 'CONFIRM_TWO_FACTOR_TYPE_CHANGE_SUCCESS',\n CONFIRM_TWO_FACTOR_TYPE_CHANGE_ERROR = 'CONFIRM_TWO_FACTOR_TYPE_CHANGE_ERROR',\n\n CLEAR_CONFIRM_TWO_FACTOR_TYPE_STATUS = 'CLEAR_CONFIRM_TWO_FACTOR_TYPE_STATUS',\n CLEAR_STORE = 'CLEAR_STORE',\n}\n\nexport default twoFactorConfigConstants;\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport twoFactorConstants from '../constants/twoFactor.constants';\n\nconst initialState = {\n modalMode: 'initial',\n requestData: null,\n twoFactorActive: false,\n twoFactorInitError: null,\n twoFactorInitStatus: RequestStatus.IDLE,\n twoFactorInitTimestamp: null,\n twoFactorMethod: null,\n twoFactorReSendStatus: RequestStatus.IDLE,\n twoFactorSendStatus: RequestStatus.IDLE,\n twoFactorToken: null,\n};\n\nexport default function twoFactor(state = initialState, action) {\n switch (action.type) {\n case twoFactorConstants.TWO_FACTOR_INIT:\n return {\n ...state,\n twoFactorActive: true,\n requestData: action.requestData,\n modalMode: action.mode,\n twoFactorInitTimestamp: Date.now(),\n twoFactorSendStatus:\n action.is2faError === '2FA_CODE_ERROR' ? RequestStatus.ERROR : RequestStatus.IDLE,\n };\n case twoFactorConstants.TWO_FACTOR_REQUEST:\n return {\n ...state,\n twoFactorSendStatus: RequestStatus.PENDING,\n };\n case twoFactorConstants.TWO_FACTOR_SUCCESS:\n return {\n ...state,\n twoFactorSendStatus: RequestStatus.SUCCESS,\n twoFactorToken: action.response.data.data.twoFactorToken,\n };\n case twoFactorConstants.TWO_FACTOR_ERROR:\n return {\n ...state,\n twoFactorSendStatus: RequestStatus.ERROR,\n twoFactorError: action.error,\n };\n case twoFactorConstants.TWO_FACTOR_RESEND_REQUEST:\n return {\n ...state,\n twoFactorReSendStatus: RequestStatus.PENDING,\n };\n case twoFactorConstants.TWO_FACTOR_RESEND_SUCCESS:\n return {\n ...state,\n twoFactorReSendStatus: RequestStatus.SUCCESS,\n twoFactorInitTimestamp: Date.now(),\n };\n case twoFactorConstants.TWO_FACTOR_RESEND_ERROR:\n return {\n ...state,\n twoFactorReSendStatus: RequestStatus.ERROR,\n };\n case twoFactorConstants.TWO_FACTOR_CLOSE:\n return {\n ...initialState,\n };\n\n case twoFactorConstants.TWO_FACTOR_INIT_SESSION_REQUEST:\n return {\n ...state,\n twoFactorInitStatus: RequestStatus.PENDING,\n twoFactorInitError: null,\n };\n\n case twoFactorConstants.TWO_FACTOR_INIT_SESSION_SUCCESS:\n return {\n ...state,\n twoFactorToken: action.response.data,\n twoFactorMethod: action.response.data.type,\n twoFactorInitStatus: RequestStatus.SUCCESS,\n twoFactorInitTimestamp: Date.now(),\n twoFactorInitError: null,\n };\n case twoFactorConstants.TWO_FACTOR_INIT_SESSION_ERROR:\n return {\n ...state,\n twoFactorInitStatus: RequestStatus.ERROR,\n twoFactorInitError: action.error,\n };\n default:\n return state;\n }\n}\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport twoFactorConfigConstants from '../constants/twoFactorConfig.constants';\n\nconst initialState = {\n changeTwoFactorActiveTypeRequestStatus: RequestStatus.IDLE,\n confirmTwoFactorTypeChangeRequestError: null,\n confirmTwoFactorTypeChangeRequestStatus: RequestStatus.IDLE,\n deleteTwoFactorTypeRequestError: null,\n deleteTwoFactorTypeRequestStatus: RequestStatus.IDLE,\n getTwoFactorConfigRequestError: null,\n getTwoFactorConfigRequestStatus: RequestStatus.IDLE,\n initTwoFactorMethod: null,\n initTwoFactorTypeChangeRequestError: null,\n initTwoFactorTypeChangeRequestStatus: RequestStatus.IDLE,\n initTwoFactorTypeConfig: null,\n twoFactorActiveMethod: null,\n twoFactorConfig: null,\n};\n\nexport default function twoFactorConfig(state = initialState, action) {\n switch (action.type) {\n case twoFactorConfigConstants.GET_TWO_FACTOR_CONFIG_REQUEST:\n return {\n ...state,\n getTwoFactorConfigRequestStatus: RequestStatus.PENDING,\n };\n case twoFactorConfigConstants.GET_TWO_FACTOR_CONFIG_SUCCESS:\n return {\n ...state,\n getTwoFactorConfigRequestStatus: RequestStatus.SUCCESS,\n twoFactorConfig: action.response.data?.collection,\n twoFactorActiveMethod: action.response.data?.collection?.find((type) => type.active).type,\n };\n case twoFactorConfigConstants.GET_TWO_FACTOR_CONFIG_ERROR:\n return {\n ...state,\n getTwoFactorConfigRequestStatus: RequestStatus.ERROR,\n getTwoFactorConfigRequestError: action.error,\n };\n case twoFactorConfigConstants.CHANGE_TWO_FACTOR_ACTIVE_TYPE_REQUEST:\n return {\n ...state,\n changeTwoFactorActiveTypeRequestStatus: RequestStatus.PENDING,\n };\n case twoFactorConfigConstants.CHANGE_TWO_FACTOR_ACTIVE_TYPE_SUCCESS:\n return {\n ...state,\n changeTwoFactorActiveTypeRequestStatus: RequestStatus.SUCCESS,\n twoFactorActiveMethod: action.twoFactorActiveMethod,\n };\n case twoFactorConfigConstants.CHANGE_TWO_FACTOR_ACTIVE_TYPE_ERROR:\n return {\n ...state,\n changeTwoFactorActiveTypeRequestStatus: RequestStatus.ERROR,\n changeTwoFactorActiveTypeRequestError: action.error,\n };\n case twoFactorConfigConstants.DELETE_TWO_FACTOR_TYPE_REQUEST:\n return {\n ...state,\n deleteTwoFactorTypeRequestStatus: RequestStatus.PENDING,\n };\n case twoFactorConfigConstants.DELETE_TWO_FACTOR_TYPE_SUCCESS:\n return {\n ...state,\n deleteTwoFactorTypeRequestStatus: RequestStatus.SUCCESS,\n };\n case twoFactorConfigConstants.DELETE_TWO_FACTOR_TYPE_ERROR:\n return {\n ...state,\n deleteTwoFactorTypeRequestStatus: RequestStatus.ERROR,\n deleteTwoFactorTypeRequestError: action.error,\n };\n case twoFactorConfigConstants.INIT_TWO_FACTOR_TYPE_CHANGE_REQUEST:\n return {\n ...state,\n initTwoFactorTypeChangeRequestStatus: RequestStatus.PENDING,\n };\n case twoFactorConfigConstants.INIT_TWO_FACTOR_TYPE_CHANGE_SUCCESS:\n return {\n ...state,\n initTwoFactorTypeChangeRequestStatus: RequestStatus.SUCCESS,\n initTwoFactorTypeConfig: action.response.data,\n initTwoFactorMethod: action.initTwoFactorMethod,\n };\n case twoFactorConfigConstants.INIT_TWO_FACTOR_TYPE_CHANGE_ERROR:\n return {\n ...state,\n initTwoFactorTypeChangeRequestStatus: RequestStatus.ERROR,\n initTwoFactorTypeChangeRequestError: action.error,\n };\n case twoFactorConfigConstants.CONFIRM_TWO_FACTOR_TYPE_CHANGE_REQUEST:\n return {\n ...state,\n confirmTwoFactorTypeChangeRequestStatus: RequestStatus.PENDING,\n };\n case twoFactorConfigConstants.CONFIRM_TWO_FACTOR_TYPE_CHANGE_SUCCESS:\n return {\n ...state,\n twoFactorActiveMethod: action.twoFactorActiveMethod,\n confirmTwoFactorTypeChangeRequestStatus: RequestStatus.SUCCESS,\n };\n case twoFactorConfigConstants.CONFIRM_TWO_FACTOR_TYPE_CHANGE_ERROR:\n return {\n ...state,\n confirmTwoFactorTypeChangeRequestStatus: RequestStatus.ERROR,\n confirmTwoFactorTypeChangeRequestError: action.error.code,\n };\n case twoFactorConfigConstants.CLEAR_CONFIRM_TWO_FACTOR_TYPE_STATUS:\n return {\n ...state,\n confirmTwoFactorTypeChangeRequestStatus: RequestStatus.IDLE,\n confirmTwoFactorTypeChangeRequestError: null,\n };\n case twoFactorConfigConstants.CLEAR_STORE:\n return {\n ...initialState,\n };\n default:\n return state;\n }\n}\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { WorkspaceUser } from 'src/models/workspaceUser.model';\nimport identityConstants from '../constants/identity.constants';\n\nexport type WorkspaceUserState = {\n workspaceUsers: WorkspaceUser[];\n workspaceInvitedUsers: WorkspaceUser[];\n hasNextPage: boolean;\n pageIndex: number;\n fetchWorkspaceUsersStatus: RequestStatus;\n fetchWorkspaceInvitedUsersStatus: RequestStatus;\n inviteUsersToWorkspaceStatus: RequestStatus;\n searchWorkspaceUsersStatus: RequestStatus;\n deleteUserFromWorkspaceStatus: RequestStatus;\n deleteUserInvitationFromWorkspaceStatus: RequestStatus;\n};\n\nconst initialState = {\n workspaceUsers: [],\n workspaceInvitedUsers: [],\n hasNextPage: false,\n pageIndex: 0,\n fetchWorkspaceUsersStatus: RequestStatus.IDLE,\n inviteUsersToWorkspaceStatus: RequestStatus.IDLE,\n searchWorkspaceUsersStatus: RequestStatus.IDLE,\n fetchWorkspaceInvitedUsersStatus: RequestStatus.IDLE,\n deleteUserFromWorkspaceStatus: RequestStatus.IDLE,\n deleteUserInvitationFromWorkspaceStatus: RequestStatus.IDLE,\n};\n\nfunction workspaceUserStore(\n state: WorkspaceUserState = initialState,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n action: any // FIXME: fix this in next stage\n): WorkspaceUserState {\n switch (action.type) {\n case identityConstants.FETCH_WORKSPACE_USERS_REQUEST:\n return {\n ...state,\n fetchWorkspaceUsersStatus: RequestStatus.PENDING,\n };\n case identityConstants.FETCH_WORKSPACE_USERS_SUCCESS:\n return {\n ...state,\n fetchWorkspaceUsersStatus: RequestStatus.SUCCESS,\n hasNextPage: action.hasNextPage,\n pageIndex: action.hasNextPage ? state.pageIndex + 1 : state.pageIndex,\n workspaceUsers:\n action.queryPage === 0\n ? action.workspaceUsers\n : [...state.workspaceUsers, ...action.workspaceUsers],\n };\n case identityConstants.FETCH_WORKSPACE_USERS_FAILURE:\n return {\n ...state,\n fetchWorkspaceUsersStatus: RequestStatus.ERROR,\n };\n case identityConstants.FETCH_WORKSPACE_INVITED_USERS_REQUEST:\n return {\n ...state,\n fetchWorkspaceInvitedUsersStatus: RequestStatus.PENDING,\n };\n case identityConstants.FETCH_WORKSPACE_INVITED_USERS_SUCCESS:\n return {\n ...state,\n fetchWorkspaceInvitedUsersStatus: RequestStatus.SUCCESS,\n workspaceInvitedUsers: action.payload,\n };\n case identityConstants.FETCH_WORKSPACE_INVITED_USERS_FAILURE:\n return {\n ...state,\n fetchWorkspaceInvitedUsersStatus: RequestStatus.ERROR,\n };\n\n case identityConstants.FETCH_WORKSPACE_USERS_SEARCH_REQUEST:\n return {\n ...state,\n searchWorkspaceUsersStatus: RequestStatus.PENDING,\n };\n case identityConstants.FETCH_WORKSPACE_USERS_SEARCH_SUCCESS:\n return {\n ...state,\n searchWorkspaceUsersStatus: RequestStatus.SUCCESS,\n pageIndex: 0,\n workspaceUsers: [...action.workspaceUsers],\n };\n case identityConstants.FETCH_WORKSPACE_USERS_SEARCH_FAILURE:\n return {\n ...state,\n searchWorkspaceUsersStatus: RequestStatus.ERROR,\n };\n case identityConstants.INVITE_USER_TO_WORKSPACE_REQUEST:\n return {\n ...state,\n inviteUsersToWorkspaceStatus: RequestStatus.PENDING,\n };\n case identityConstants.INVITE_USER_TO_WORKSPACE_SUCCESS:\n return {\n ...state,\n inviteUsersToWorkspaceStatus: RequestStatus.SUCCESS,\n };\n case identityConstants.INVITE_USER_TO_WORKSPACE_FAILURE:\n return {\n ...state,\n inviteUsersToWorkspaceStatus: RequestStatus.ERROR,\n };\n\n case identityConstants.DELETE_USER_FROM_WORKSPACE_REQUEST:\n return {\n ...state,\n deleteUserFromWorkspaceStatus: RequestStatus.PENDING,\n };\n case identityConstants.DELETE_USER_FROM_WORKSPACE_SUCCESS:\n return {\n ...state,\n deleteUserFromWorkspaceStatus: RequestStatus.SUCCESS,\n };\n case identityConstants.DELETE_USER_FROM_WORKSPACE_FAILURE:\n return {\n ...state,\n deleteUserFromWorkspaceStatus: RequestStatus.ERROR,\n };\n\n case identityConstants.DELETE_USER_INVITATION_FROM_WORKSPACE_REQUEST:\n return {\n ...state,\n deleteUserInvitationFromWorkspaceStatus: RequestStatus.PENDING,\n };\n case identityConstants.DELETE_USER_INVITATION_FROM_WORKSPACE_SUCCESS:\n return {\n ...state,\n deleteUserInvitationFromWorkspaceStatus: RequestStatus.SUCCESS,\n };\n case identityConstants.DELETE_USER_INVITATION_FROM_WORKSPACE_FAILURE:\n return {\n ...state,\n deleteUserInvitationFromWorkspaceStatus: RequestStatus.ERROR,\n };\n case identityConstants.CLEAR_WORKSPACE_USERS_STORE:\n return initialState;\n default:\n return state;\n }\n}\n\nexport default workspaceUserStore;\n","enum certificateCreatorConstants {\n SET_CREATOR_STEP = 'SET_CREATOR_STEP',\n SET_CREATOR_STEP_BACK = 'SET_CREATOR_STEP_BACK',\n SET_SELECTED_TEMPLATE_ID = 'SET_SELECTED_TEMPLATE_ID',\n SET_CERTIFICATE_QUANTITY_TYPE = 'SET_CERTIFICATE_QUANTITY_TYPE',\n SET_MAPPED_FIELDS = 'SET_MAPPED_FIELDS',\n SET_RAW_IMPORTED_DATA = 'SET_RAW_IMPORTED_DATA',\n SET_DRAFT_FROM_IMPORTED_DATA = 'SET_DRAFT_FROM_IMPORTED_DATA',\n SET_CURRENT_LOCATION = 'SET_CURRENT_LOCATION',\n UPDATE_DRAFT_IMPORTED_DATA = 'UPDATE_DRAFT_IMPORTED_DATA',\n UPDATE_DRAFT_SINGLE_FIELDS = 'UPDATE_DRAFT_SINGLE_FIELDS',\n ADD_NEW_ROW_TO_DRAFT_IMPORTED_DATA = 'ADD_NEW_ROW_TO_DRAFT_IMPORTED_DATA',\n UPDATE_SELECTED_DRAFT_IMPORTED_DATA = 'UPDATE_SELECTED_DRAFT_IMPORTED_DATA',\n DELETED_SELECTED_DRAFT_IMPORTED_DATA = 'DELETED_SELECTED_DRAFT_IMPORTED_DATA',\n\n FETCH_TEMPLATE_LIST_REQUEST = 'FETCH_TEMPLATE_LIST_REQUEST',\n FETCH_TEMPLATE_LIST_SUCCESS = 'FETCH_TEMPLATE_LIST_SUCCESS',\n FETCH_TEMPLATE_LIST_FAILURE = 'FETCH_TEMPLATE_LIST_FAILURE',\n\n FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_REQUEST = 'FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_REQUEST',\n FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_SUCCESS = 'FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_SUCCESS',\n FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_FAILURE = 'FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_FAILURE',\n\n FETCH_TEMPLATE_PREVIEW_REQUEST = 'FETCH_TEMPLATE_PREVIEW_REQUEST',\n FETCH_TEMPLATE_PREVIEW_SUCCESS = 'FETCH_TEMPLATE_PREVIEW_SUCCESS',\n FETCH_TEMPLATE_PREVIEW_FAILURE = 'FETCH_TEMPLATE_PREVIEW_FAILURE',\n\n FETCH_TEMPLATE_FIELDS_REQUEST = 'FETCH_TEMPLATE_FIELDS_REQUEST',\n FETCH_TEMPLATE_FIELDS_SUCCESS = 'FETCH_TEMPLATE_FIELDS_SUCCESS',\n FETCH_TEMPLATE_FIELDS_FAILURE = 'FETCH_TEMPLATE_FIELDS_FAILURE',\n\n CREATE_NEW_CERTIFICATE_FILE_REQUEST = 'CREATE_NEW_CERTIFICATE_FILE_REQUEST',\n CREATE_NEW_CERTIFICATE_FILE_SUCCESS = 'CREATE_NEW_CERTIFICATE_FILE_SUCCESS',\n CREATE_NEW_CERTIFICATE_FILE_FAILURE = 'CREATE_NEW_CERTIFICATE_FILE_FAILURE',\n\n UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST = 'UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST',\n UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST_FAILURE = 'UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST_UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST_FAILURE',\n\n CREATE_NEW_CERTIFICATE_REQUEST = 'CREATE_NEW_CERTIFICATE_REQUEST',\n CREATE_NEW_CERTIFICATE_SUCCESS = 'CREATE_NEW_CERTIFICATE_SUCCESS',\n CREATE_NEW_CERTIFICATE_FAILURE = 'CREATE_NEW_CERTIFICATE_FAILURE',\n\n UPDATE_CERTIFICATE_ROLES_REQUEST = 'UPDATE_CERTIFICATE_ROLES_REQUEST',\n UPDATE_CERTIFICATE_ROLES_SUCCESS = 'UPDATE_CERTIFICATE_ROLES_SUCCESS',\n UPDATE_CERTIFICATE_ROLES_FAILURE = 'UPDATE_CERTIFICATE_ROLES_FAILURE',\n\n UPDATE_CERTIFICATE_SIGNERS_REQUEST = 'UPDATE_CERTIFICATE_SIGNERS_REQUEST',\n UPDATE_CERTIFICATE_SIGNERS_SUCCESS = 'UPDATE_CERTIFICATE_SIGNERS_SUCCESS',\n UPDATE_CERTIFICATE_SIGNERS_FAILURE = 'UPDATE_CERTIFICATE_SIGNERS_FAILURE',\n\n INVITE_MULTIPLE_HOLDERS_REQUEST = 'INVITE_MULTIPLE_HOLDERS_REQUEST',\n INVITE_MULTIPLE_HOLDERS_SUCCESS = 'INVITE_MULTIPLE_HOLDERS_SUCCESS',\n INVITE_MULTIPLE_HOLDERS_FAILURE = 'INVITE_MULTIPLE_HOLDERS_FAILURE',\n\n SET_MULTIPLE_HOLDERS = 'SET_MULTIPLE_HOLDERS',\n\n ADD_CREATED_CERTIFICATE = 'ADD_CREATED_CERTIFICATE',\n\n RESET_FOR_NEW_TEMPLATE = 'RESET_FOR_NEW_TEMPLATE',\n CLEAR = 'CLEAR',\n}\n\nexport const MAX_CSV_DOCUMENTS = 50;\n\nexport default certificateCreatorConstants;\n","export const CertificateSteps = {\n SelectTemplateType: 'SelectTemplateType',\n SelectQuantityType: 'SelectQuantityType',\n MapSingleFields: 'MapSingleFields',\n TemplatePreview: 'TemplatePreview',\n ImportMultipleData: 'ImportMultipleData',\n MapMultipleData: 'MapMultipleData',\n UploadAdditionalDocuments: 'UploadAdditionalDocuments',\n ChooseLocation: 'ChooseLocation',\n InvitePeople: 'InvitePeople',\n ProgressScreen: 'ProgressScreen',\n CreatingCertificatesProgressScreen: 'CreatingCertificatesProgressScreen',\n};\n\nexport const TransferOwnershipStep = {\n TransferOwnership: 'TransferOwnership',\n ByEmail: 'ByEmail',\n};\n\nexport const CertificateQuantityType = {\n Single: 'single',\n Multiple: 'multiple',\n};\n","const cookieHelper = { setCookie, getCookie, removeCookie };\n\nfunction setCookie(key, value) {\n const expDate = new Date();\n\n expDate.setTime(expDate.getTime() + 365 * 24 * 60 * 60 * 1000);\n\n document.cookie = `${key}=${value}; expires=${expDate.toUTCString()}; path=/; domain=doxychain.com; secure; samesite=strict`;\n}\n\nfunction getCookie(key) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${key}=`);\n if (parts.length === 2) return parts.pop().split(';').shift();\n return '';\n}\n\nfunction removeCookie(key) {\n document.cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=doxychain.com; secure; samesite=strict`;\n}\n\nexport default cookieHelper;\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport en from '../translations/en.json';\nimport pl from '../translations/pl.json';\nimport cookieHelper from './cookieHelper';\n\nconst customLanguageDetector = {\n type: 'languageDetector',\n async: false,\n init(services, detectorOptions, i18nextOptions) {\n this.supportedLngs = i18nextOptions.supportedLngs;\n this.failbackLng = i18nextOptions.failbackLng;\n },\n detect() {\n let lang = this.failbackLng;\n let foundLang = false;\n\n const cookieLang = cookieHelper.getCookie('lang');\n if (this.supportedLngs.indexOf(cookieLang.toLowerCase()) !== -1) {\n lang = cookieLang.toLowerCase();\n foundLang = true;\n }\n\n if (!foundLang) {\n let browserLang = window.navigator.language;\n if (browserLang.length > 4) {\n browserLang = browserLang.substr(0, 2);\n }\n lang = browserLang;\n }\n return lang;\n },\n cacheUserLanguage() {\n return undefined;\n },\n};\n\ni18n\n .use(customLanguageDetector)\n .use(initReactI18next)\n .init({\n supportedLngs: ['pl', 'en'],\n resources: {\n en: {\n translation: en,\n },\n pl: {\n translation: pl,\n },\n },\n fallbackLng: 'en',\n debug: process.env.NODE_ENV !== 'production',\n interpolation: {\n escapeValue: false,\n },\n cleanCode: true,\n react: {\n wait: true,\n bindI18n: 'languageChanged loaded',\n bindStore: 'added removed',\n nsMode: 'default',\n },\n });\n\nexport default i18n;\n","// eslint-disable-next-line no-control-regex\nconst email = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\nconst folderName = /^[^\\\\/?%*:|\"<>;]*$/;\nconst base64 = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\nconst uuidV4 = /^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;\n\nexport const RegexFormulas = {\n email,\n folderName,\n base64,\n uuidV4,\n};\n","import moment from 'moment';\nimport i18n from './i18n';\nimport cookieHelper from './cookieHelper';\nimport { RegexFormulas } from './regex';\n\nexport const isMail = (value) => RegexFormulas.email.test(value.toLowerCase());\n\nexport const switchLanguageInBrowser = (language) => {\n moment.locale(language);\n i18n.changeLanguage(language).then(() => true);\n cookieHelper.setCookie('lang', language.toLowerCase());\n};\n\nexport const sortGroupsAllOwnersFirst = (data) => {\n const dataLength = data.length;\n if (dataLength === 0) return [];\n let first;\n let second;\n const others = [];\n for (let i = 0; i < dataLength; i += 1) {\n if (data[i].name === 'All') {\n first = data[i];\n } else if (data[i].name === 'Owners') {\n second = data[i];\n } else {\n others.push(data[i]);\n }\n }\n\n others.sort();\n return [first, second, ...others].filter((el) => el);\n};\n\nexport function similarity(first, second) {\n first = first.replace(/\\s+/g, '');\n second = second.replace(/\\s+/g, '');\n\n if (first === second) return 1; // identical or empty\n if (first.length < 2 || second.length < 2) return 0; // if either is a 0-letter or 1-letter string\n\n const firstBigrams = new Map();\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < first.length - 1; i++) {\n const bigram = first.substring(i, i + 2);\n const count = firstBigrams.has(bigram) ? firstBigrams.get(bigram) + 1 : 1;\n\n firstBigrams.set(bigram, count);\n }\n\n let intersectionSize = 0;\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < second.length - 1; i++) {\n const bigram = second.substring(i, i + 2);\n const count = firstBigrams.has(bigram) ? firstBigrams.get(bigram) : 0;\n\n if (count > 0) {\n firstBigrams.set(bigram, count - 1);\n // eslint-disable-next-line no-plusplus\n intersectionSize++;\n }\n }\n\n return (2.0 * intersectionSize) / (first.length + second.length - 2);\n}\n\nexport function splitArrayIntoTwo(list) {\n const listCopy = [...list];\n const middleIndex = Math.ceil(listCopy.length / 2);\n\n const firstHalf = listCopy.splice(0, middleIndex);\n const secondHalf = listCopy.splice(-middleIndex);\n\n return [firstHalf, secondHalf];\n}\n\n// This function is used only as helper function, DO NOT USE IT FOR BLOCKCHAIN\nexport function generateUUID() {\n // Public Domain/MIT\n let d = new Date().getTime(); // Timestamp\n let d2 = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0; // Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16; // random number between 0 and 16\n if (d > 0) {\n // Use timestamp until depleted\n // eslint-disable-next-line no-bitwise\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n } else {\n // Use microseconds since page-load if supported\n // eslint-disable-next-line no-bitwise\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n // eslint-disable-next-line no-bitwise\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n}\n\nexport function capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport const toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n","import i18n from 'i18next';\nimport { RegexFormulas } from './regex';\n\nconst parseImportedData = (rawImportedCSV) => {\n const importedHeaders = rawImportedCSV ? [...rawImportedCSV[0]] : [];\n const importedBody = rawImportedCSV ? [...rawImportedCSV] : [];\n importedBody.shift();\n\n const mappedHeadersWithFields = importedBody.map((row) => {\n const resultRow = {};\n let lastNotEmptyHeader = '';\n\n importedHeaders.forEach((header, index) => {\n const nextHeader = importedHeaders[index + 1];\n if (header !== '') {\n lastNotEmptyHeader = header;\n // if value for header is base64, check length cause '2022' is valid for regex\n // or if value for header is 'attached_files'\n // or if next header has no name\n if (\n (row[index] &&\n RegexFormulas.base64.test(row[index].slice(0, 500)) &&\n row[index].length > 100 &&\n !nextHeader) ||\n (header === 'attached_files' && row[index].trim() !== '') ||\n nextHeader === ''\n ) {\n resultRow[header] = [{ base64: row[index], name: i18n.t('dropzones.importedFile') }];\n } else {\n resultRow[header] = row[index];\n }\n } else if (resultRow[lastNotEmptyHeader] && row[index]) {\n resultRow[lastNotEmptyHeader].push({\n base64: row[index],\n name: i18n.t('dropzones.importedFile'),\n });\n }\n });\n return resultRow;\n });\n\n const headersWithNoArrayValues = importedHeaders.filter(\n (header) =>\n !mappedHeadersWithFields\n .map((item) => Object.keys(item).find((key) => Array.isArray(item[key])))\n .includes(header)\n );\n\n return {\n mappedHeadersWithFields,\n importedHeaders,\n importedBody,\n headersWithNoArrayValues,\n };\n};\n\nconst createCertificateAttributeForTransactionPost = ({\n documentName = null,\n documentId,\n files,\n identityId,\n ownersGroupId,\n}) => ({\n documentName,\n documentId,\n txnAttributes: {\n signatureLevel: 'MAIL_SMS',\n files,\n roles: {\n viewers: [],\n signers: [identityId],\n admins: [identityId, ownersGroupId].filter((el) => el),\n editors: [],\n },\n ordered: false,\n },\n});\n\nconst CertificateHelper = {\n parseImportedData,\n createCertificateAttributeForTransactionPost,\n};\n\nexport default CertificateHelper;\n","import certificateCreatorConstants, {\n MAX_CSV_DOCUMENTS,\n} from 'src/redux/constants/certificateCreator.constants';\nimport { CertificateQuantityType, CertificateSteps } from 'src/models/certificate.model';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { similarity } from 'src/helpers/globalUtils';\nimport CertificateHelper from 'src/helpers/certificateHelper';\nimport i18n from 'src/helpers/i18n';\n\nconst initialState = {\n currentStep: CertificateSteps.SelectTemplateType,\n stepsHistory: [CertificateSteps.SelectTemplateType],\n templateListStatus: RequestStatus.IDLE,\n templateList: undefined,\n templateListTokensStatus: RequestStatus.IDLE,\n templateListTokens: {},\n selectedTemplate: undefined,\n templatePreviewImageStatus: RequestStatus.IDLE,\n templatePreviewImage: undefined,\n currentLocation: undefined,\n certificateQuantityType: CertificateQuantityType.Single,\n templateDetailsStatus: RequestStatus.IDLE,\n templateDetails: undefined,\n rawImportedData: [],\n draftImportedData: [],\n selectedDraftImportedData: [],\n mappedFields: undefined,\n draftSingleData: undefined,\n sentForGeneratingList: [],\n sentForGeneratingListStatus: RequestStatus.IDLE,\n generatedCertFileList: {},\n createdCertificates: [],\n multipleHolders: {},\n};\n\nfunction certificateCreatorStore(state = initialState, action) {\n switch (action.type) {\n case certificateCreatorConstants.SET_CREATOR_STEP: {\n return {\n ...state,\n currentStep: action.payload,\n stepsHistory: [...state.stepsHistory, action.payload],\n };\n }\n case certificateCreatorConstants.SET_CREATOR_STEP_BACK: {\n state.stepsHistory.pop();\n\n return {\n ...state,\n currentStep: state.stepsHistory.slice(-1)[0],\n stepsHistory: [...state.stepsHistory],\n };\n }\n case certificateCreatorConstants.SET_SELECTED_TEMPLATE_ID: {\n return {\n ...state,\n selectedTemplate: action.payload,\n };\n }\n case certificateCreatorConstants.SET_CERTIFICATE_QUANTITY_TYPE: {\n return {\n ...state,\n certificateQuantityType: action.payload,\n };\n }\n case certificateCreatorConstants.SET_RAW_IMPORTED_DATA: {\n let mappedFields = {};\n\n const { headersWithNoArrayValues } = CertificateHelper.parseImportedData(action.payload);\n\n // initial map imported header to template headers\n if (state.templateDetails && headersWithNoArrayValues) {\n Object.keys(state.templateDetails.fields).forEach((field) => {\n const mostSimilarArr = headersWithNoArrayValues.map((item) => similarity(item, field));\n const max = Math.max(...mostSimilarArr);\n const maxIndex = mostSimilarArr.indexOf(max);\n if (field === 'attached_files') {\n mappedFields[field] = [];\n } else {\n mappedFields[field] = headersWithNoArrayValues[maxIndex];\n headersWithNoArrayValues.splice(maxIndex, 1);\n }\n });\n } else {\n mappedFields = undefined;\n }\n return {\n ...state,\n rawImportedData: action.payload,\n mappedFields,\n };\n }\n\n // UPDATE MAPPED FIELDS\n case certificateCreatorConstants.UPDATE_DRAFT_IMPORTED_DATA: {\n const { index, key, value } = action.payload;\n const data = [...state.draftImportedData];\n data[index][key] = value;\n return {\n ...state,\n draftImportedData: [...data],\n };\n }\n\n // Set mapped draft from imported data [[][]] => [{key: value}]\n case certificateCreatorConstants.SET_DRAFT_FROM_IMPORTED_DATA: {\n const { mappedHeadersWithFields } = CertificateHelper.parseImportedData(\n state.rawImportedData\n );\n const draftData = mappedHeadersWithFields.slice(0, MAX_CSV_DOCUMENTS).map((item) => {\n const res = {};\n Object.keys(state.mappedFields).forEach((field) => {\n res[field] = item[state.mappedFields[field]];\n });\n Object.keys(item).forEach((key) => {\n if (Array.isArray(item[key])) {\n res[key] = item[key];\n }\n });\n return res;\n });\n\n return {\n ...state,\n draftImportedData: [...draftData],\n };\n }\n\n // Add new row to draft\n case certificateCreatorConstants.ADD_NEW_ROW_TO_DRAFT_IMPORTED_DATA: {\n const newRow = {};\n if (state.templateDetails) {\n Object.keys(state.templateDetails.fields).forEach((field) => {\n if (field === 'attached_files') newRow[field] = [];\n else newRow[field] = '';\n });\n }\n\n const draftImportedData =\n Object.keys(newRow).length !== 0\n ? [...state.draftImportedData, newRow]\n : state.draftImportedData;\n\n return {\n ...state,\n draftImportedData,\n };\n }\n\n // Update selected rows in for imported data\n case certificateCreatorConstants.UPDATE_SELECTED_DRAFT_IMPORTED_DATA: {\n return {\n ...state,\n selectedDraftImportedData: action.payload,\n };\n }\n\n // Delete selected row in for imported data\n case certificateCreatorConstants.DELETED_SELECTED_DRAFT_IMPORTED_DATA: {\n return {\n ...state,\n selectedDraftImportedData: [],\n draftImportedData: state.draftImportedData.filter(\n (row, index) => !state.selectedDraftImportedData.includes(index)\n ),\n };\n }\n\n // SET MAPPED FIELDS\n case certificateCreatorConstants.SET_MAPPED_FIELDS: {\n return {\n ...state,\n mappedFields: { ...state.mappedFields, ...action.payload },\n };\n }\n\n // AVAILABLE TEMPLATES LIST\n case certificateCreatorConstants.FETCH_TEMPLATE_LIST_REQUEST: {\n return {\n ...state,\n templateListStatus: RequestStatus.PENDING,\n templateList: undefined,\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_LIST_SUCCESS: {\n return {\n ...state,\n templateListStatus: RequestStatus.SUCCESS,\n templateList: action.payload,\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_LIST_FAILURE: {\n return {\n ...state,\n templateListStatus: RequestStatus.ERROR,\n templateList: undefined,\n };\n }\n // AVAILABLE TEMPLATES LIST\n case certificateCreatorConstants.FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_REQUEST: {\n return {\n ...state,\n templateListTokensStatus: RequestStatus.PENDING,\n templateListTokens: {},\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_SUCCESS: {\n return {\n ...state,\n templateListTokensStatus: RequestStatus.SUCCESS,\n templateListTokens: { ...state.templateListTokens, ...action.payload },\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_FAILURE: {\n return {\n ...state,\n templateListTokensStatus: RequestStatus.ERROR,\n templateListTokens: {},\n };\n }\n\n // TEMPLATE PREVIEW IMAGE\n case certificateCreatorConstants.FETCH_TEMPLATE_PREVIEW_REQUEST: {\n return {\n ...state,\n templatePreviewImageStatus: RequestStatus.PENDING,\n templatePreviewImage: undefined,\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_PREVIEW_SUCCESS: {\n return {\n ...state,\n templatePreviewImageStatus: RequestStatus.SUCCESS,\n templatePreviewImage: action.payload,\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_PREVIEW_FAILURE: {\n return {\n ...state,\n templatePreviewImageStatus: RequestStatus.ERROR,\n templatePreviewImage: undefined,\n };\n }\n\n // TEMPLATE PREVIEW IMAGE\n case certificateCreatorConstants.FETCH_TEMPLATE_FIELDS_REQUEST: {\n return {\n ...state,\n templateDetailsStatus: RequestStatus.PENDING,\n templateDetails: undefined,\n draftSingleData: undefined,\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_FIELDS_SUCCESS: {\n const data = {};\n\n Object.keys(action.payload.fields).forEach((key) => {\n if (action.payload.fields[key].order === undefined) action.payload.fields[key].order = 0;\n });\n action.payload.fields = {\n holderMailMulti: {\n label: i18n.t('createCertificate.holderMailField.label'),\n placeholder: i18n.t('createCertificate.holderMailField.placeholder'),\n required: false,\n order: -1,\n type: 'string',\n },\n documentName: {\n label: i18n.t('createCertificate.documentNameField.label'),\n placeholder: i18n.t('createCertificate.documentNameField.placeholder'),\n required: false,\n order: -2,\n type: 'string',\n },\n ...action.payload.fields,\n };\n\n Object.keys(action.payload.fields).forEach((key) => {\n data[key] = '';\n });\n action.payload.fields = {\n ...action.payload.fields,\n attached_files: {\n label: i18n.t('createCertificate.attachedFiles.label'),\n required: false,\n order: 20,\n type: 'string',\n format: 'base64',\n },\n };\n\n return {\n ...state,\n templateDetailsStatus: RequestStatus.SUCCESS,\n templateDetails: action.payload,\n draftSingleData: data,\n };\n }\n case certificateCreatorConstants.UPDATE_DRAFT_SINGLE_FIELDS: {\n return {\n ...state,\n draftSingleData: { ...state.draftSingleData, ...action.payload },\n };\n }\n case certificateCreatorConstants.FETCH_TEMPLATE_FIELDS_FAILURE: {\n return {\n ...state,\n templateDetailsStatus: RequestStatus.ERROR,\n templateDetails: undefined,\n draftSingleData: undefined,\n };\n }\n\n case certificateCreatorConstants.SET_CURRENT_LOCATION: {\n return {\n ...state,\n currentLocation: action.payload,\n };\n }\n case certificateCreatorConstants.CREATE_NEW_CERTIFICATE_FILE_REQUEST: {\n return {\n ...state,\n sentForGeneratingList: [],\n sentForGeneratingListStatus: RequestStatus.PENDING,\n };\n }\n case certificateCreatorConstants.CREATE_NEW_CERTIFICATE_FILE_SUCCESS: {\n return {\n ...state,\n sentForGeneratingList: action.payload,\n sentForGeneratingListStatus: RequestStatus.SUCCESS,\n };\n }\n case certificateCreatorConstants.CREATE_NEW_CERTIFICATE_FILE_FAILURE: {\n return {\n ...state,\n sentForGeneratingList: [],\n sentForGeneratingListStatus: RequestStatus.ERROR,\n };\n }\n case certificateCreatorConstants.UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST: {\n return {\n ...state,\n generatedCertFileList: action.payload,\n };\n }\n case certificateCreatorConstants.SET_MULTIPLE_HOLDERS: {\n return {\n ...state,\n multipleHolders: action.payload,\n };\n }\n case certificateCreatorConstants.ADD_CREATED_CERTIFICATE: {\n return {\n ...state,\n createdCertificates: [...state.createdCertificates, action.payload],\n };\n }\n\n case certificateCreatorConstants.RESET_FOR_NEW_TEMPLATE:\n return {\n ...initialState,\n templateListTokensStatus: state.templateListTokensStatus,\n templateListTokens: state.templateListTokens,\n templateList: state.templateList,\n templateListStatus: state.templateListStatus,\n stepsHistory: state.stepsHistory,\n currentStep: state.currentStep,\n };\n case certificateCreatorConstants.CLEAR:\n return initialState;\n default:\n return state;\n }\n}\n\nexport default certificateCreatorStore;\n","export enum documentUsersManagerConstants {\n FETCH_DOCUMENT_MEMBERS_REQUEST = 'documentUsersManager/FETCH_DOCUMENT_MEMBERS_REQUEST',\n FETCH_DOCUMENT_MEMBERS_SUCCESS = 'documentUsersManager/FETCH_DOCUMENT_MEMBERS_SUCCESS',\n FETCH_DOCUMENT_MEMBERS_FAILURE = 'documentUsersManager/FETCH_DOCUMENT_MEMBERS_FAILURE',\n\n FETCH_AVAILABLE_ROLES_REQUEST = 'documentUsersManager/FETCH_AVAILABLE_ROLES_REQUEST',\n FETCH_AVAILABLE_ROLES_SUCCESS = 'documentUsersManager/FETCH_AVAILABLE_ROLES_SUCCESS',\n FETCH_AVAILABLE_ROLES_FAILURE = 'documentUsersManager/FETCH_AVAILABLE_ROLES_FAILURE',\n\n FETCH_DOCUMENT_SIGNERS_REQUEST = 'documentUsersManager/FETCH_DOCUMENT_SIGNERS_REQUEST',\n FETCH_DOCUMENT_SIGNERS_SUCCESS = 'documentUsersManager/FETCH_DOCUMENT_SIGNERS_SUCCESS',\n FETCH_DOCUMENT_SIGNERS_FAILURE = 'documentUsersManager/FETCH_DOCUMENT_SIGNERS_FAILURE',\n\n FETCH_DOCUMENT_INVITATIONS_REQUEST = 'documentUsersManager/FETCH_DOCUMENT_INVITATIONS_REQUEST',\n FETCH_DOCUMENT_INVITATIONS_SUCCESS = 'documentUsersManager/FETCH_DOCUMENT_INVITATIONS_SUCCESS',\n FETCH_DOCUMENT_INVITATIONS_FAILURE = 'documentUsersManager/FETCH_DOCUMENT_INVITATIONS_FAILURE',\n\n FETCH_ENTITIES_BY_NAME_REQUEST = 'documentUsersManager/FETCH_ENTITIES_BY_NAME_REQUEST',\n FETCH_ENTITIES_BY_NAME_SUCCESS = 'documentUsersManager/FETCH_ENTITIES_BY_NAME_SUCCESS',\n FETCH_ENTITIES_BY_NAME_FAILURE = 'documentUsersManager/FETCH_ENTITIES_BY_NAME_FAILURE',\n\n FETCH_DOCUMENT_ENTITIES_REQUEST = 'documentUsersManager/FETCH_DOCUMENT_ENTITIES_REQUEST',\n FETCH_DOCUMENT_ENTITIES_SUCCESS = 'documentUsersManager/FETCH_DOCUMENT_ENTITIES_SUCCESS',\n FETCH_DOCUMENT_ENTITIES_FAILURE = 'documentUsersManager/FETCH_DOCUMENT_ENTITIES_FAILURE',\n\n FETCH_AVAILABLE_DOCUMENT_ACTIONS_REQUEST = 'documentUsersManager/FETCH_AVAILABLE_DOCUMENT_ACTIONS_REQUEST',\n FETCH_AVAILABLE_DOCUMENT_ACTIONS_SUCCESS = 'documentUsersManager/FETCH_AVAILABLE_DOCUMENT_ACTIONS_SUCCESS',\n FETCH_AVAILABLE_DOCUMENT_ACTIONS_FAILURE = 'documentUsersManager/FETCH_AVAILABLE_DOCUMENT_ACTIONS_FAILURE',\n\n UPDATE_DRAFT_ROLES = 'documentUsersManager/UPDATE_DRAFT_ROLES',\n UPDATE_DRAFT_TRANSFERABILITY = 'documentUsersManager/UPDATE_DRAFT_TRANSFERABILITY',\n\n UPDATE_SIGNERS_CHANGED = 'documentUsersManager/UPDATE_SIGNERS_CHANGED',\n UPDATE_OTHER_RECIPIENTS_CHANGED = 'documentUsersManager/UPDATE_OTHER_RECIPIENTS_CHANGED',\n\n CLEAR = 'documentUsersManager/CLEAR',\n}\n","export enum DocumentMemberRole {\n SIGNER = 'SIGNER',\n ADMIN = 'ADMIN',\n AUDITOR = 'AUDITOR',\n EDITOR = 'EDITOR',\n VIEWER = 'VIEWER',\n HOLDER = 'HOLDER',\n}\n\nexport enum DocumentInvitationMemberRole {\n ADMINS = 'admins',\n AUDITORS = 'auditors',\n EDITORS = 'editors',\n VIEWERS = 'viewers',\n SIGNERS = 'signers',\n HOLDER = 'holder',\n}\n\nexport enum DocumentMemberStatus {\n SIGNED = 'SIGNED',\n REJECTED_SIGNATURE = 'REJECTED_SIGNATURE',\n AWAITING_SIGNATURE = 'AWAITING_SIGNATURE',\n PARTICIPANT = 'PARTICIPANT',\n}\n\nexport interface DocumentMember {\n id: string;\n role: DocumentInvitationMemberRole;\n status: DocumentMemberStatus;\n}\n\nexport interface InvitedDocumentMember {\n mail: string | null;\n role: DocumentInvitationMemberRole;\n}\n\nexport interface DocumentSigner {\n isOrderSignificant: boolean;\n requiredSignersCount: number;\n ids: string[];\n}\n\nexport interface UserManagerPerson {\n _id?: string; // entity id\n creatorId?: string; // entity id of user who created group\n email?: string; // entity mail\n contactEmail?: string;\n _name?: string; // entity name\n description?: string; // group description\n workspaceId?: string; // external workspace id\n workspaceName?: string; // external workspace name\n active?: boolean;\n role?: DocumentMemberRole;\n _status?: DocumentMemberStatus;\n isGroup: boolean; // entity is group\n isToken?: boolean; // invitation is generated token\n isInvited: boolean; // invitation sent, but not accepted yet\n isInvitationToBeSend: boolean; // new user - invitation not sent yet\n isExternal?: boolean; // is from external workspace\n}\n\nexport enum DocumentUserAction {\n RejectDocument = 'reject_document',\n EditFile = 'edit_file',\n AddSigner = 'add_signer',\n AddSignerByInvitation = 'add_signer_by_invitation',\n AddUser = 'add_user',\n ModifyRole = 'modify_role',\n ModifySigners = 'modify_signers',\n Sign = 'sign',\n RejectSignature = 'reject_signature',\n LinkDocument = 'link_document',\n UnlinkDocument = 'unlink_document',\n View = 'view',\n RenameDocument = 'rename_document',\n UpdateTags = 'update_tags',\n SetTransferability = 'set_transferability',\n InvalidateTemporarilyDocument = 'invalidate_temporarily_document',\n ValidateDocument = 'validate_document',\n InvalidateDocument = 'invalidate_document',\n ChangeHolder = 'change_holder',\n}\n","import { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { documentUsersManagerConstants } from 'src/redux/constants/documentUsersManager.constants';\nimport {\n DocumentMember,\n DocumentMemberRole,\n DocumentSigner,\n DocumentUserAction,\n InvitedDocumentMember,\n} from 'src/models/documentUsersManagement.model';\nimport { SingleEntity } from 'src/models/identity.model';\nimport { ExternalContactGroup, ExternalContactIdentity } from 'src/models/contacts.model';\n\nexport type DraftRolesType = { [key in DocumentMemberRole]: string[] };\nexport type DocumentUsersManagerState = {\n invitedDocumentMembers: InvitedDocumentMember[];\n invitedDocumentMembersStatus: RequestStatus;\n documentMembers: DocumentMember[];\n documentMembersStatus: RequestStatus;\n availableRoles: DocumentMemberRole[];\n availableRolesStatus: RequestStatus;\n documentSigners: DocumentSigner;\n documentSignersStatus: RequestStatus;\n searchedEntities: SingleEntity[];\n searchedEntitiesStatus: RequestStatus;\n externalContactEntities: { [key: string]: ExternalContactIdentity } | Record;\n externalGroupEntities: { [key: string]: ExternalContactGroup } | Record;\n externalEntitiesStatus: RequestStatus;\n availableDocumentActions: DocumentUserAction[];\n availableDocumentActionsStatus: RequestStatus;\n draftRoles: DraftRolesType;\n draftTransferability: boolean | null;\n signersChanged: boolean;\n otherRecipientsChanged: boolean;\n};\n\nconst initialState = {\n invitedDocumentMembers: [],\n invitedDocumentMembersStatus: RequestStatus.IDLE,\n documentMembers: [],\n documentMembersStatus: RequestStatus.IDLE,\n availableRoles: [],\n availableRolesStatus: RequestStatus.IDLE,\n documentSigners: {\n ids: [],\n isOrderSignificant: false,\n requiredSignersCount: 0,\n },\n documentSignersStatus: RequestStatus.IDLE,\n searchedEntities: [],\n searchedEntitiesStatus: RequestStatus.IDLE,\n externalContactEntities: {},\n externalGroupEntities: {},\n externalEntitiesStatus: RequestStatus.IDLE,\n availableDocumentActions: [],\n availableDocumentActionsStatus: RequestStatus.IDLE,\n draftTransferability: null,\n draftRoles: {\n [DocumentMemberRole.HOLDER]: [],\n [DocumentMemberRole.SIGNER]: [],\n [DocumentMemberRole.VIEWER]: [],\n [DocumentMemberRole.EDITOR]: [],\n [DocumentMemberRole.AUDITOR]: [],\n [DocumentMemberRole.ADMIN]: [],\n },\n signersChanged: false,\n otherRecipientsChanged: false,\n};\n\nfunction documentUsersManagerStore(\n state: DocumentUsersManagerState = initialState,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n action: any // FIXME: fix this in next stage\n): DocumentUsersManagerState {\n switch (action.type) {\n case documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_REQUEST:\n return {\n ...state,\n documentMembersStatus: RequestStatus.PENDING,\n };\n case documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_SUCCESS: {\n return {\n ...state,\n documentMembers: action.payload,\n documentMembersStatus: RequestStatus.IDLE,\n };\n }\n case documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_FAILURE: {\n return {\n ...state,\n documentMembersStatus: RequestStatus.ERROR,\n };\n }\n\n case documentUsersManagerConstants.FETCH_AVAILABLE_ROLES_REQUEST:\n return {\n ...state,\n availableRolesStatus: RequestStatus.PENDING,\n };\n case documentUsersManagerConstants.FETCH_AVAILABLE_ROLES_SUCCESS: {\n return {\n ...state,\n availableRoles: action.payload,\n availableRolesStatus: RequestStatus.IDLE,\n };\n }\n case documentUsersManagerConstants.FETCH_AVAILABLE_ROLES_FAILURE: {\n return {\n ...state,\n availableRolesStatus: RequestStatus.ERROR,\n };\n }\n\n case documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_REQUEST:\n return {\n ...state,\n documentSignersStatus: RequestStatus.PENDING,\n };\n case documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_SUCCESS: {\n return {\n ...state,\n documentSigners: {\n ids: action.payload.documentSigners,\n requiredSignersCount: action.payload.requiredSignersCount,\n isOrderSignificant: action.payload.isOrderSignificant,\n },\n documentSignersStatus: RequestStatus.IDLE,\n };\n }\n case documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_FAILURE: {\n return {\n ...state,\n documentSignersStatus: RequestStatus.ERROR,\n };\n }\n\n case documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_REQUEST:\n return {\n ...state,\n invitedDocumentMembersStatus: RequestStatus.PENDING,\n };\n case documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_SUCCESS: {\n return {\n ...state,\n invitedDocumentMembers: action.payload,\n invitedDocumentMembersStatus: RequestStatus.IDLE,\n };\n }\n case documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_FAILURE: {\n return {\n ...state,\n invitedDocumentMembersStatus: RequestStatus.ERROR,\n };\n }\n\n case documentUsersManagerConstants.FETCH_ENTITIES_BY_NAME_REQUEST:\n return {\n ...state,\n searchedEntitiesStatus: RequestStatus.PENDING,\n };\n case documentUsersManagerConstants.FETCH_ENTITIES_BY_NAME_SUCCESS: {\n return {\n ...state,\n searchedEntities: action.payload,\n searchedEntitiesStatus: RequestStatus.IDLE,\n };\n }\n case documentUsersManagerConstants.FETCH_ENTITIES_BY_NAME_FAILURE: {\n return {\n ...state,\n searchedEntitiesStatus: RequestStatus.ERROR,\n };\n }\n\n case documentUsersManagerConstants.FETCH_DOCUMENT_ENTITIES_REQUEST:\n return {\n ...state,\n externalEntitiesStatus: RequestStatus.PENDING,\n };\n case documentUsersManagerConstants.FETCH_DOCUMENT_ENTITIES_SUCCESS: {\n return {\n ...state,\n externalContactEntities: action.payload.contacts,\n externalGroupEntities: action.payload.groups,\n externalEntitiesStatus: RequestStatus.IDLE,\n };\n }\n case documentUsersManagerConstants.FETCH_DOCUMENT_ENTITIES_FAILURE: {\n return {\n ...state,\n externalEntitiesStatus: RequestStatus.ERROR,\n };\n }\n\n case documentUsersManagerConstants.FETCH_AVAILABLE_DOCUMENT_ACTIONS_REQUEST:\n return {\n ...state,\n availableDocumentActionsStatus: RequestStatus.PENDING,\n };\n case documentUsersManagerConstants.FETCH_AVAILABLE_DOCUMENT_ACTIONS_SUCCESS: {\n return {\n ...state,\n availableDocumentActions: action.payload,\n availableDocumentActionsStatus: RequestStatus.SUCCESS,\n };\n }\n case documentUsersManagerConstants.FETCH_AVAILABLE_DOCUMENT_ACTIONS_FAILURE: {\n return {\n ...state,\n availableDocumentActionsStatus: RequestStatus.ERROR,\n };\n }\n case documentUsersManagerConstants.UPDATE_DRAFT_ROLES: {\n return {\n ...state,\n draftRoles: {\n ...state.draftRoles,\n [action.payload.role]: action.payload.ids,\n },\n };\n }\n case documentUsersManagerConstants.UPDATE_DRAFT_TRANSFERABILITY: {\n return {\n ...state,\n draftTransferability: action.payload,\n };\n }\n case documentUsersManagerConstants.UPDATE_SIGNERS_CHANGED: {\n return {\n ...state,\n signersChanged: action.payload,\n };\n }\n case documentUsersManagerConstants.UPDATE_OTHER_RECIPIENTS_CHANGED: {\n return {\n ...state,\n otherRecipientsChanged: action.payload,\n };\n }\n\n case documentUsersManagerConstants.CLEAR:\n return {\n ...initialState,\n availableDocumentActions: state.availableDocumentActions,\n draftRoles: state.draftRoles,\n draftTransferability: state.draftTransferability,\n otherRecipientsChanged: state.otherRecipientsChanged,\n signersChanged: state.signersChanged,\n };\n\n default:\n return state;\n }\n}\n\nexport default documentUsersManagerStore;\n","import { combineReducers } from 'redux';\n\nimport authStore from './auth.reducer';\nimport avatarStore from './avatar.reducer';\nimport billingStore from './billing.reducer';\nimport communicationsStore from './communications.reducer';\nimport contactsStore from './contacts.reducer';\nimport documentCreationStore from './documentCreation.reducer';\nimport documentDisplayStore from './documentDisplay.reducer';\nimport documentDownloadStore from './documentDownload.reducer';\nimport documentInvitationsStore from './documentInvitiations.reducer';\nimport documentJoinStore from './documentJoin.reducer';\nimport documentManagementStore from './documentManagement.reducer';\nimport documentsStore from './documents.reducer';\nimport identityStore from './identity.reducer';\nimport snackbarStore from './snackbar.reducer';\nimport twoFactor from './twoFactor.reducer';\nimport twoFactorConfig from './twoFactorConfig.reducer';\nimport workspaceGroupsStore from './workspaceGroups.reducer';\nimport workspaceUserStore from './workspaceUser.reducer';\nimport certificateCreatorStore from './certificateCreator.reducer';\nimport documentUsersManagerStore from './documentUsersManager.reducer';\n\nexport const rootReducer = combineReducers({\n authStore,\n avatarStore,\n billingStore,\n communicationsStore,\n contactsStore,\n documentCreationStore,\n documentDisplayStore,\n documentDownloadStore,\n documentInvitationsStore,\n documentJoinStore,\n documentManagementStore,\n documentUsersManagerStore,\n documentsStore,\n identityStore,\n snackbarStore,\n twoFactor,\n twoFactorConfig,\n workspaceGroupsStore,\n workspaceUserStore,\n certificateCreatorStore,\n});\n\nexport type RootState = ReturnType;\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport { createLogger } from 'redux-logger';\nimport { rootReducer } from './reducers';\n\nconst loggerMiddleware = createLogger();\nconst composeEnhancers =\n process.env.NODE_ENV !== 'production' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n : compose;\nconst debug = process.env.NODE_ENV !== 'production';\nconst middleware = [thunkMiddleware, debug && loggerMiddleware].filter(Boolean);\nconst store = createStore(rootReducer, composeEnhancers(applyMiddleware(...middleware)));\n\nexport default store;\n","import SockJS from 'sockjs-client';\n\nclass WebSocketHelper {\n sockJs = null;\n\n connected = false;\n\n subQueue = [];\n\n subscriptionTree = {\n /* module: {\n path: {\n subscribed: true/false,\n subscriptionPending: true/false,\n subscriptions: {\n id: {\n onMessage: func\n onSubscribe: func\n }\n }\n }\n } */\n };\n\n constructor() {\n this.sockJs = new SockJS(`${process.env.REACT_APP_BASE_URL}/sockjs`);\n this.sockJs.onopen = () => {\n console.warn('WS opened');\n this.connected = true;\n this.processQueue();\n };\n\n this.sockJs.onmessage = (e) => {\n this.parsePush(e);\n };\n\n this.sockJs.onclose = () => {\n this.connected = false;\n console.warn('WS closed');\n };\n }\n\n processQueue() {\n this.subQueue.forEach((sub) => {\n this.subscribe(\n sub.subData.module,\n sub.subData.path,\n sub.subData.onMessage,\n sub.subData.onSubscribe,\n sub.subId\n );\n });\n }\n\n parsePush(pushData) {\n switch (pushData.type) {\n case 'message':\n default:\n this.parseMessage(pushData.data);\n }\n }\n\n parseMessage(message) {\n let jsonData = null;\n try {\n jsonData = JSON.parse(message);\n } catch (e) {}\n if (jsonData) {\n switch (jsonData.action) {\n case 'push':\n this.processPush(jsonData.topic, jsonData.message);\n break;\n case 'subscribe-private-confirm':\n this.confirmSubscriptions(jsonData.module, jsonData.path);\n break;\n default:\n break;\n }\n }\n }\n\n confirmSubscriptions(module, path) {\n const subFound = this.propagateMessage(module, path, 'onSubscribe');\n if (!subFound) {\n this.unsubscribe(module, path);\n }\n }\n\n propagateMessage(module, path, type, message) {\n let subFound = false;\n if (this.subscriptionTree[module]) {\n if (this.subscriptionTree[module][path]) {\n const subsIds = Object.keys(this.subscriptionTree[module][path].subscriptions);\n if (subsIds.length > 0) {\n subFound = true;\n if (type === 'onSubscribe') {\n this.subscriptionTree[module][path].subscribed = true;\n this.subscriptionTree[module][path].subscriptionPending = false;\n }\n subsIds.forEach((subKey) => {\n if (\n this.subscriptionTree[module][path].subscriptions[subKey] &&\n typeof this.subscriptionTree[module][path].subscriptions[subKey][type] === 'function'\n ) {\n if (\n type === 'onSubscribe' &&\n this.subscriptionTree[module][path].subscriptions[subKey].onSubscribe\n ) {\n this.subscriptionTree[module][path].subscriptions[subKey].onSubscribe(subKey);\n } else if (this.subscriptionTree[module][path].subscriptions[subKey].onMessage) {\n this.subscriptionTree[module][path].subscriptions[subKey].onMessage(message);\n }\n }\n });\n }\n }\n }\n return subFound;\n }\n\n processPush(topic, message) {\n const { module, path } = this.parseTopic(topic);\n this.propagateMessage(module, path, 'onMessage', message);\n }\n\n parseTopic(topic) {\n const topicParts = topic.split('/');\n const [module] = topicParts.splice(0, 1);\n const path = topicParts.join('/');\n return { module, path };\n }\n\n generateUUID() {\n let uuid = '';\n for (let i = 0; i < 32; i += 1) {\n // eslint-disable-next-line no-bitwise\n const random = (Math.random() * 16) | 0;\n\n // eslint-disable-next-line eqeqeq\n if (i == 8 || i == 12 || i == 16 || i == 20) {\n uuid += '-';\n }\n // eslint-disable-next-line no-bitwise,eqeqeq,no-nested-ternary\n uuid += (i == 12 ? 4 : i == 16 ? (random & 3) | 8 : random).toString(16);\n }\n return uuid;\n }\n\n subscribe(module, path, onMessage, onSubscribe, forceId) {\n const subId = forceId || this.generateUUID();\n if (!this.connected) {\n this.subQueue.push({ subId, subData: { module, path, onMessage, onSubscribe } });\n return subId;\n }\n let subExist = true;\n const { subscriptionTree } = this;\n if (!Object.prototype.hasOwnProperty.call(subscriptionTree, module)) {\n this.subscriptionTree[module] = {};\n subExist = false;\n }\n if (!Object.prototype.hasOwnProperty.call(subscriptionTree[module], path)) {\n this.subscriptionTree[module][path] = {\n subscribed: false,\n subscriptionPending: true,\n subscriptions: {},\n };\n subExist = false;\n } else if (\n this.subscriptionTree[module][path].subscribed &&\n !this.subscriptionTree[module][path].subscriptionPending\n ) {\n subExist = true;\n } else if (\n !this.subscriptionTree[module][path].subscribed &&\n !this.subscriptionTree[module][path].subscriptionPending\n ) {\n subExist = false;\n }\n\n this.subscriptionTree[module][path].subscriptions[subId] = { onMessage, onSubscribe };\n\n if (!subExist) {\n this.sockJs.send(\n JSON.stringify({\n module,\n path,\n action: 'subscribe-private',\n })\n );\n } else if (typeof onSubscribe === 'function') {\n onSubscribe(subId);\n }\n return subId;\n }\n\n clearSubscriptionCallBack(id, module, path) {\n let subscriptionAlive = true;\n let targetModule = module;\n let targetPath = path;\n if (!targetModule && !targetPath) {\n const availableModules = Object.keys(this.subscriptionTree);\n let foundSub = false;\n for (let i = 0; i < availableModules.length; i += 1) {\n const availablePaths = Object.keys(this.subscriptionTree[availableModules[i]]);\n for (let x = 0; x < availablePaths.length; x += 1) {\n if (this.subscriptionTree[availableModules[i]][availablePaths[x]].subscriptions[id]) {\n targetPath = availablePaths[x];\n targetModule = availableModules[i];\n foundSub = true;\n break;\n }\n }\n if (foundSub) {\n break;\n }\n }\n }\n\n if ((!targetPath && !targetModule) || !this.connected) {\n let queueIndex = -1;\n this.subQueue.forEach((queueItem, index) => {\n if (queueItem.id === id) {\n queueIndex = index;\n }\n });\n this.subQueue.splice(queueIndex, 1);\n } else if (this.subscriptionTree?.[targetModule]?.[targetPath]?.subscriptions[id]) {\n delete this.subscriptionTree[targetModule][targetPath].subscriptions[id];\n const keysLeft = Object.keys(this.subscriptionTree[targetModule][targetPath].subscriptions);\n if (keysLeft.length === 0) {\n subscriptionAlive = false;\n this.subscriptionTree[targetModule][targetPath].subscribed = false;\n }\n }\n\n return { isAlive: subscriptionAlive, module: targetModule, path: targetPath };\n }\n\n unsubscribe(id, module, path) {\n if (id) {\n const subAlive = this.clearSubscriptionCallBack(id, module, path);\n if (!subAlive.isAlive) {\n this.sockJs.send(\n JSON.stringify({\n module: subAlive.module,\n path: subAlive.path,\n action: 'unsubscribe',\n })\n );\n }\n }\n }\n}\n\nconst websocketInstance = new WebSocketHelper();\n\nexport default websocketInstance;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, typography }) =>\n createStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n width: '100%',\n height: '100%',\n },\n smallRoot: {\n maxWidth: 460,\n margin: '0 auto',\n },\n content: {\n padding: spacing(1, 0),\n },\n cardContent: {\n height: '100%',\n overflow: 'visible',\n },\n addedListItem: {\n color: palette.text.primary,\n '&:hover, &:focus': {\n color: palette.primary.main,\n '& $removeButton': {\n color: palette.primary.main,\n },\n },\n },\n addedListItemContent: {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n overflow: 'hidden',\n },\n addedListItemAdditionalContent: {\n fontSize: typography.subtitle2.fontSize,\n fontWeight: typography.fontWeightRegular,\n color: palette.text.secondary,\n },\n addedListItemAction: {\n display: 'flex',\n alignItems: 'center',\n '& > *': {\n marginLeft: spacing(1),\n },\n },\n removeButton: {\n width: 24,\n minWidth: 24,\n height: 24,\n minHeight: 24,\n '& svg': {\n width: 12,\n height: 12,\n },\n },\n avatarAndItemRoot: {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n marginTop: spacing(0.5),\n marginBottom: spacing(0.5),\n },\n authorBox: {\n display: 'flex',\n alignItems: 'center',\n color: palette.text.primary,\n '& > *:not(:last-child)': {\n marginRight: spacing(1),\n },\n },\n loading: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: -6,\n marginBottom: -6,\n },\n inputLoader: {\n position: 'absolute',\n right: spacing(1.25),\n zIndex: 1,\n pointerEvents: 'none',\n },\n disabledListBox: {\n '& *': {\n pointerEvents: 'none',\n },\n },\n groupHeader: {\n minHeight: spacing(4),\n },\n }),\n { index: 0 }\n);\n","export const arrayMoveMutable = (array, fromIndex, toIndex) => {\n const startIndex = fromIndex < 0 ? array.length + fromIndex : fromIndex;\n\n if (startIndex >= 0 && startIndex < array.length) {\n const endIndex = toIndex < 0 ? array.length + toIndex : toIndex;\n\n const [item] = array.splice(fromIndex, 1);\n array.splice(endIndex, 0, item);\n }\n};\n\nexport const arrayMoveImmutable = (array, fromIndex, toIndex) => {\n const newArray = [...array];\n arrayMoveMutable(newArray, fromIndex, toIndex);\n return newArray;\n};\n","import { makeStyles, createStyles } from '@material-ui/core';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n dragIcon: {\n position: 'absolute',\n cursor: 'grab',\n right: '100%',\n padding: 8,\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n [breakpoints.down('sm')]: {\n left: -23,\n },\n '& svg': {\n fontSize: 16,\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { sortableHandle } from 'react-sortable-hoc';\nimport { useStyles } from './styles';\nimport { Drag } from '../CustomIcon';\n\nconst Handle = () => {\n const classes = useStyles();\n\n return (\n
\n \n
\n );\n};\n\nconst DragHandle = sortableHandle(() => );\n\nexport default DragHandle;\n","import React from 'react';\nimport { sortableElement } from 'react-sortable-hoc';\nimport PropTypes from 'prop-types';\nimport { ListItem } from '@material-ui/core';\nimport DragHandle from './DragHandle';\n\nconst SortableItem = sortableElement(({ allowItemsSorting, className, children }) => (\n \n {allowItemsSorting && }\n {children}\n \n));\nSortableItem.propTypes = {\n children: PropTypes.node,\n allowItemsSorting: PropTypes.bool.isRequired,\n className: PropTypes.string,\n};\n\nexport default SortableItem;\n","import React from 'react';\nimport { sortableContainer } from 'react-sortable-hoc';\nimport PropTypes from 'prop-types';\nimport { List } from '@material-ui/core';\n\nconst SortableContainer = sortableContainer(({ children }) => {children});\n\nSortableContainer.propTypes = {\n children: PropTypes.node,\n};\n\nexport default SortableContainer;\n","import i18n from '../../helpers/i18n';\nimport { isMail } from '../../helpers/globalUtils';\n\nexport const extendOptionsByIdAndFirstLetter = (object) =>\n object.map((option) => {\n const firstLetter = option.name[0].toUpperCase();\n return {\n ...option,\n firstLetter: /[0-9]/.test(firstLetter) ? '0-9' : firstLetter,\n id: option?.id || option?.identityId,\n };\n });\n\nexport const renderOptionDescription = ({ option, documentInvitationMode, workspaceId }) => {\n let description = option.name;\n if (documentInvitationMode) {\n // group\n if (option.group) {\n // group from workspace\n if (option.workspaceId === workspaceId) {\n description = `${i18n.t('inviteToDocument.entitiesList.group')}`;\n }\n // group from external workspace\n else {\n description = `${i18n.t(\n 'inviteToDocument.entitiesList.groupOutsideOrganization'\n )}: ${option.workspaceName}`;\n }\n }\n // new mail invitation, on typing from keyboard\n else if (option.inputValue) {\n description = i18n.t('inviteToDocument.entitiesList.mailInvitationToBeSend');\n }\n // mail invitation, field email describes type of invitation\n else if (typeof option.id !== 'string') {\n description = option.email;\n }\n // user from workspace\n else if (option.workspaceId === workspaceId) {\n // user from workspace with name different from mail\n if (option.name !== option.email) {\n description = `${option.email} (${i18n\n .t('inviteToDocument.entitiesList.user')\n .toLowerCase()})`;\n }\n // user from workspace with same name and email\n else {\n description = `${i18n.t('inviteToDocument.entitiesList.user')}`;\n }\n }\n // user from outside workspace\n else if (option.workspaceId !== workspaceId) {\n // user from outside workspace with name different from email\n if (option.name !== option.email) {\n description = `${option.email} (${i18n\n .t('inviteToDocument.entitiesList.outsideOrganization')\n .toLowerCase()}: ${option.workspaceName})`;\n }\n // user from outside workspace with name same as email\n else {\n description = `${i18n.t(\n 'inviteToDocument.entitiesList.outsideOrganization'\n )}: ${option.workspaceName}`;\n }\n }\n }\n return description;\n};\n\nexport const filterOptionsFunctions = {\n isMail: (value) => isMail(value),\n isNotEmptyString: (value) => value !== '',\n isNameAndMailNotRepeated: ({ items, value, allowDuplicatedForDiffIds = false }) =>\n allowDuplicatedForDiffIds\n ? !items.some((e) => (e.name === value || e.email === value) && !e.identityId)\n : !items.some((e) => e.name === value || e.email === value),\n};\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { AvatarAndTextItem } from '../../index';\nimport { renderOptionDescription } from '../helpers';\nimport { useStyles } from '../styles';\n\nconst AutocompleteOption = ({\n option,\n documentInvitationMode,\n workspaceId,\n currentIdentityId,\n additionalText,\n}) => {\n const { name, type, identityId, group, inputValue } = option;\n const classes = useStyles();\n\n return (\n <>\n \n {type && (\n \n {type}\n \n )}\n \n );\n};\n\nAutocompleteOption.propTypes = {\n option: PropTypes.shape({\n contactEmail: PropTypes.string,\n email: PropTypes.string,\n identityId: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.string,\n group: PropTypes.bool,\n inputValue: PropTypes.string,\n }),\n documentInvitationMode: PropTypes.bool,\n currentIdentityId: PropTypes.string,\n workspaceId: PropTypes.string,\n additionalText: PropTypes.string,\n};\n\nexport default AutocompleteOption;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, transitions }) =>\n createStyles({\n root: {\n padding: spacing(1),\n color: palette.text.secondary,\n },\n opened: {\n color: palette.primary.main,\n '& $icon': {\n transform: 'rotate(-180deg)',\n },\n },\n icon: {\n width: 16,\n height: 16,\n marginLeft: spacing(-0.5),\n lineHeight: 1,\n color: 'inherit',\n transition: transitions.create(['color', 'transform', 'opacity'], {\n duration: transitions.duration.short,\n }),\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Button, Menu, MenuItem } from '@material-ui/core';\nimport { ArrowDownSLine as ChevronDownIcon } from 'src/components/CustomIcon';\n\nimport { useStyles } from './styles';\n\nconst RoleSelection = ({\n className: classNameProp,\n role,\n availableRoles,\n handleRoleChange,\n active,\n}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const classes = useStyles();\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const isOpen = Boolean(anchorEl);\n\n return (\n <>\n }\n >\n {availableRoles.find((item) => item.value === role)?.label}\n \n \n {availableRoles.map((item, index) => (\n {\n handleRoleChange(item.value);\n handleClose();\n }}\n >\n {item.label}\n \n ))}\n \n \n );\n};\n\nRoleSelection.propTypes = {\n className: PropTypes.string,\n role: PropTypes.string,\n availableRoles: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n })\n ),\n handleRoleChange: PropTypes.func,\n active: PropTypes.bool,\n};\n\nRoleSelection.defaultProps = {};\n\nexport default RoleSelection;\n","import React from 'react';\nimport { Fab, Tooltip, Typography, useMediaQuery } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { AvatarAndTextItem } from 'src/components';\nimport { DocumentRole } from 'src/models/document.model';\nimport { renderOptionDescription } from '../helpers';\nimport RoleSelection from './RoleSelection';\nimport { Close as RemoveIcon } from '../../CustomIcon';\nimport { useStyles } from '../styles';\n\nconst AddAndRemoveUsersListItem = ({\n user,\n onDeleteClick,\n currentIdentityId,\n workspaceId,\n documentInvitationMode,\n authorAction,\n disableInviting,\n onRoleUpdate,\n availableRoles,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const mobileScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('xs'));\n\n const { name, email, identityId /* src */, isAuthor, id, role, invitedRole, hideRemove } = {\n ...user,\n id: user?.id || user?.identityId,\n };\n\n return (\n <>\n \n
\n {isAuthor && (\n
\n {authorAction}\n {!mobileScreen && (\n \n {t('common.author')}\n \n )}\n
\n )}\n {role && availableRoles && (\n
\n onRoleUpdate(id, role)}\n active={!invitedRole}\n />\n
\n )}\n {!disableInviting && !isAuthor && !hideRemove && (\n \n {\n !invitedRole\n ? onDeleteClick(id, false, role || DocumentRole.SIGNERS)\n : onDeleteClick(name, true, role || DocumentRole.SIGNERS);\n }\n : undefined\n }\n >\n \n \n \n )}\n
\n \n );\n};\n\nAddAndRemoveUsersListItem.propTypes = {\n user: PropTypes.shape({\n name: PropTypes.string,\n email: PropTypes.string,\n identityId: PropTypes.string,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n isAuthor: PropTypes.bool,\n role: PropTypes.string,\n invitedRole: PropTypes.bool,\n }),\n onDeleteClick: PropTypes.func,\n onRoleUpdate: PropTypes.func,\n availableRoles: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n })\n ),\n currentIdentityId: PropTypes.string,\n documentInvitationMode: PropTypes.bool,\n disableInviting: PropTypes.bool,\n authorAction: PropTypes.node,\n workspaceId: PropTypes.string,\n};\n\nexport default AddAndRemoveUsersListItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CircularProgress, TextField } from '@material-ui/core';\nimport { useStyles } from '../styles';\n\nconst AutocompleteInput = ({ params, placeholder, loading, focused }) => {\n const classes = useStyles();\n return (\n \n {loading && focused && }\n {params.InputProps.endAdornment}\n \n ),\n }}\n />\n );\n};\n\nAutocompleteInput.propTypes = {\n params: PropTypes.shape({\n InputProps: PropTypes.shape({\n endAdornment: PropTypes.node,\n }),\n }),\n placeholder: PropTypes.string,\n loading: PropTypes.bool,\n focused: PropTypes.bool,\n};\n\nexport default AutocompleteInput;\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport {\n Box,\n Card,\n CardContent,\n CircularProgress,\n ListSubheader,\n Typography,\n} from '@material-ui/core';\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\nimport { ConfirmDialog } from 'src/components';\nimport { useStyles } from './styles';\nimport { arrayMoveImmutable } from '../Sortable/sortableUtils';\nimport { SortableItem, SortableContainer } from '../Sortable';\nimport { extendOptionsByIdAndFirstLetter, filterOptionsFunctions } from './helpers';\nimport { AutocompleteOption, AutocompleteInput, AddAndRemoveUsersListItem } from './subcomponents';\n\nconst AddAndRemoveUsers = ({\n className: classNameProp,\n isSmall,\n items,\n availableItems,\n placeholder,\n noResultsText,\n hideNoResults = false,\n hideInput = false,\n disabled = false,\n loading = false,\n isPending = false,\n clearInput = false,\n allowDuplicatedForDiffIds = false,\n onAddClick,\n onDeleteClick,\n authorAction,\n onAddNewEmailClick,\n documentInvitationMode,\n onRoleUpdate,\n onInputChange,\n disableInviting = false,\n sortByGroup = false,\n isOrderSignificant = false,\n onItemsOrderChange,\n availableRoles,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const [focused, setFocused] = useState(false);\n const [value, setValue] = useState(null);\n const [inputValue, setInputValue] = useState('');\n const [openGroupAllDialog, setOpenGroupAllDialog] = useState(false);\n const [groupAllDialogValue, setGroupAllDialogValue] = useState(null);\n\n const workspace = useSelector((state) => state.identityStore, undefined);\n const workspaceId = workspace.currentIdentity?.workspace?.workspaceId;\n const currentIdentityId = workspace.currentIdentity?.identity.identityId;\n\n const extendedAutocompleteOptions = useMemo(\n () =>\n extendOptionsByIdAndFirstLetter(availableItems).sort(\n (a, b) => -b.firstLetter.localeCompare(a.firstLetter)\n ),\n [availableItems]\n );\n\n const autocompleteOptions = useMemo(\n () =>\n extendedAutocompleteOptions\n .filter((o) => (isOrderSignificant ? o.workspaceId === workspaceId : true)) // check if isOrderSignificant then user is in same workspace\n .filter((o1) => !items.some((o2) => o1?.id === o2?.id)), // check if user is not already on list\n [extendedAutocompleteOptions, items, workspaceId, isOrderSignificant]\n );\n\n const hasAddedItems = useMemo(() => items?.length > 0, [items?.length]);\n\n useMemo(() => {\n if (clearInput) {\n setValue(null);\n setInputValue('');\n }\n }, [clearInput]);\n\n const filter = createFilterOptions();\n const additionalText = documentInvitationMode\n ? `(${t('common.author')})`\n : `(${t('common.you')})`;\n\n const onSortEnd = ({ oldIndex, newIndex }) => {\n const sorted = arrayMoveImmutable(items, oldIndex, newIndex);\n onItemsOrderChange(sorted);\n };\n\n const renderGroup = (params) => [\n \n \n {t(`common.${params.group === 'true' ? 'groups' : 'users'}`)}\n \n ,\n params.children,\n ];\n\n const onAutocompleteChange = (event, newValue) => {\n if (documentInvitationMode && typeof newValue === 'string') {\n // Value selected with enter, right from the input\n const newRole = {\n id: Date.now(),\n name: newValue.trim(),\n email: newValue.trim(),\n identityId: null,\n active: true,\n };\n if (typeof onAddNewEmailClick === 'function') {\n onAddNewEmailClick(newRole);\n }\n setValue(newRole);\n } else if (documentInvitationMode && newValue && newValue.inputValue) {\n // Create a new value from the user input\n const newRole = {\n id: Date.now(),\n name: newValue.inputValue.trim(),\n email: newValue.inputValue.trim(),\n identityId: null,\n active: true,\n };\n\n if (typeof onAddNewEmailClick === 'function') {\n onAddNewEmailClick(newRole);\n }\n setValue(newRole);\n } else if (newValue?.name === 'All' && newValue?.identityId === null) {\n // Adding group 'All'\n setGroupAllDialogValue(newValue);\n setOpenGroupAllDialog(true);\n } else {\n setValue(newValue);\n if (newValue !== null) {\n const { id } = newValue;\n onAddClick(id);\n }\n }\n };\n\n const getOptionLabel = (option) => {\n // Value selected with enter, right from the input\n if (documentInvitationMode && typeof option === 'string') {\n return option;\n }\n // Add option created dynamically\n if (documentInvitationMode && option.inputValue) {\n return option.inputValue;\n }\n // Regular option\n return option.name === option.email ? option.name : `${option.name} ${option.email}`;\n };\n\n const filterOptions = (options, params) => {\n const filtered = filter(options, params);\n const value = params.inputValue;\n // Suggest the creation of a new value and new mails are not available when order is important\n if (\n !isOrderSignificant &&\n documentInvitationMode &&\n filterOptionsFunctions.isMail(value) &&\n filterOptionsFunctions.isNotEmptyString(value) &&\n filterOptionsFunctions.isNameAndMailNotRepeated({\n items: [...filtered, ...items],\n value,\n allowDuplicatedForDiffIds,\n })\n ) {\n filtered.push({\n inputValue: value,\n name: value,\n });\n }\n\n return filtered;\n };\n\n return (\n <>\n \n {!disableInviting && !hideInput && (\n -b?.group) || []}\n renderOption={(option) => (\n \n )}\n filterOptions={filterOptions}\n freeSolo={documentInvitationMode}\n getOptionLabel={getOptionLabel}\n getOptionSelected={(option) => option.name || ''}\n renderGroup={sortByGroup ? renderGroup : null}\n groupBy={sortByGroup ? (option) => String(option.group) : null}\n fullWidth\n blurOnSelect\n clearText={t('common.clear')}\n noOptionsText={t('common.noResults')}\n renderInput={(params) => (\n \n )}\n onChange={onAutocompleteChange}\n onFocus={() => {\n setFocused(true);\n if (typeof onInputChange === 'function') {\n onInputChange(inputValue);\n }\n }}\n onBlur={() => setFocused(false)}\n onInputChange={(event, newInputValue) => {\n setInputValue(newInputValue);\n if (typeof onInputChange === 'function') {\n onInputChange(newInputValue);\n }\n }}\n />\n )}\n\n {!hideNoResults && (\n
\n \n {!hasAddedItems && (\n \n {isPending ? (\n
\n \n
\n ) : (\n \n {noResultsText}\n \n )}\n
\n )}\n {hasAddedItems && (\n \n {items.map((user, index) => (\n \n \n \n ))}\n \n )}\n
\n
\n )}\n
\n\n {\n setValue(groupAllDialogValue);\n if (groupAllDialogValue !== null) {\n const { id } = groupAllDialogValue;\n onAddClick(id);\n setGroupAllDialogValue(null);\n }\n setOpenGroupAllDialog(false);\n }}\n actionCancel={() => {\n setValue(null);\n setInputValue('');\n setGroupAllDialogValue(null);\n setOpenGroupAllDialog(false);\n }}\n />\n \n );\n};\n\nAddAndRemoveUsers.propTypes = {\n className: PropTypes.string,\n isSmall: PropTypes.bool,\n placeholder: PropTypes.string,\n noResultsText: PropTypes.string.isRequired,\n availableRoles: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n })\n ),\n availableItems: PropTypes.arrayOf(\n PropTypes.shape({\n contactEmail: PropTypes.string,\n email: PropTypes.string,\n identityId: PropTypes.string,\n name: PropTypes.string,\n })\n ).isRequired,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n email: PropTypes.string,\n identityId: PropTypes.string,\n name: PropTypes.string,\n })\n ).isRequired,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isPending: PropTypes.bool,\n hideNoResults: PropTypes.bool,\n hideInput: PropTypes.bool,\n clearInput: PropTypes.bool,\n onAddClick: PropTypes.func,\n onDeleteClick: PropTypes.func,\n authorAction: PropTypes.node,\n onAddNewEmailClick: PropTypes.func,\n allowDuplicatedForDiffIds: PropTypes.bool,\n documentInvitationMode: PropTypes.bool,\n isOrderSignificant: PropTypes.bool,\n onRoleUpdate: PropTypes.func,\n onInputChange: PropTypes.func,\n disableInviting: PropTypes.bool,\n sortByGroup: PropTypes.bool,\n onItemsOrderChange: PropTypes.func,\n};\n\nexport default AddAndRemoveUsers;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n largeSize: {},\n mediumSize: {\n width: 32,\n height: 32,\n fontSize: '0.93rem',\n },\n smallSize: {\n width: 24,\n height: 24,\n fontSize: '0.65rem',\n },\n miniSize: {\n width: 16,\n height: 16,\n fontSize: 8,\n '&.MuiAvatar-root': {\n lineHeight: '16px !important',\n },\n },\n errorColor: {\n backgroundColor: palette.error.main,\n color: palette.error.contrastText,\n },\n warningColor: {\n backgroundColor: palette.warning.main,\n color: palette.warning.contrastText,\n },\n infoColor: {\n backgroundColor: palette.primary.main,\n color: palette.info.contrastText,\n },\n successColor: {\n backgroundColor: palette.success.main,\n color: palette.success.contrastText,\n },\n }),\n { index: 0 }\n);\n","import {\n amber,\n blue,\n cyan,\n deepOrange,\n deepPurple,\n green,\n indigo,\n lightBlue,\n lightGreen,\n lime,\n orange,\n pink,\n purple,\n red,\n teal,\n yellow,\n} from '@material-ui/core/colors';\n\nconst colors = [\n red[600],\n pink[600],\n purple[600],\n deepPurple[600],\n indigo[600],\n blue[600],\n lightBlue[600],\n cyan[600],\n teal[600],\n green[600],\n lightGreen[600],\n lime[600],\n yellow[600],\n amber[600],\n orange[600],\n deepOrange[600],\n];\n\nexport const getColorFromText = (text: string): string => {\n const charCodes = String(text)\n .split('')\n .map((char) => char.charCodeAt(0))\n .join('');\n\n return colors[parseInt(charCodes, 10) % colors.length];\n};\n\nexport const getInitials = (text: string): string => {\n const splitText = text.replace(/[^a-zA-Z0-9À-ž ]/g, '').split(/\\s+/);\n return `${splitText[0].charAt(0).toUpperCase()}${\n splitText?.length > 1 ? splitText[1].charAt(0).toUpperCase() : ''\n }`;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Avatar, Tooltip } from '@material-ui/core';\nimport { lighten } from '@material-ui/core/styles';\nimport { blueGrey } from '@material-ui/core/colors';\nimport { useStyles } from './styles';\nimport { getColorFromText, getInitials } from '../../helpers/globalUtilsTS';\n\nconst UserAvatar = ({\n className: classNameProp,\n size,\n color,\n customColor,\n children,\n extraAvatars,\n coefficientColor,\n tooltip,\n ...other\n}) => {\n const classes = useStyles();\n const defaultColor = blueGrey[600];\n const initials = getInitials(children || ' ');\n const colorByChild = initials ? getColorFromText(initials) : defaultColor;\n\n const renderAvatar = () => (\n \n {extraAvatars && '+'}\n {children ? initials : undefined}\n \n );\n\n return <>{tooltip ? {renderAvatar()} : renderAvatar()};\n};\n\nUserAvatar.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n className: PropTypes.string,\n size: PropTypes.oneOf(['large', 'medium', 'small', 'mini']),\n color: PropTypes.oneOf(['default', 'error', 'warning', 'success', 'info']),\n customColor: PropTypes.string,\n coefficientColor: PropTypes.number,\n tooltip: PropTypes.string,\n extraAvatars: PropTypes.bool,\n};\n\nUserAvatar.defaultProps = {\n size: 'large',\n coefficientColor: 0.825,\n};\n\nexport default UserAvatar;\n","import { lighten } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing, typography, palette }) =>\n createStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n spacingRoot: {\n paddingTop: spacing(1),\n paddingBottom: spacing(1),\n [breakpoints.up('lg')]: {\n paddingTop: spacing(1.5),\n paddingBottom: spacing(1.5),\n },\n },\n clickElement: {\n cursor: 'pointer',\n textAlign: 'left',\n width: `calc(100% + ${spacing(2)}px)`,\n paddingLeft: spacing(1),\n paddingRight: spacing(1),\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n },\n fullWidthRoot: {\n width: '100%',\n },\n iconWrapper: {},\n labels: {\n flex: 1,\n overflow: 'hidden',\n marginLeft: spacing(1),\n [breakpoints.up('lg')]: {\n marginLeft: spacing(1.5),\n },\n [breakpoints.up('xl')]: {\n marginLeft: spacing(2),\n },\n '& > *': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n },\n text: {\n padding: '1px 0',\n lineHeight: 1.1,\n fontWeight: typography.fontWeightMedium,\n },\n additionalText: {\n fontWeight: typography.fontWeightRegular,\n },\n description: {\n display: 'block',\n marginTop: '0.25em',\n lineHeight: 1.3,\n fontWeight: typography.fontWeightRegular,\n '& .highlighted': {\n fontWeight: typography.fontWeightMedium,\n color: lighten(palette.primary.main, 0.3),\n },\n },\n iconButton: {\n marginRight: -6,\n },\n settingsIcon: {\n marginLeft: spacing(1),\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Fab, Typography, Button, Tooltip } from '@material-ui/core';\nimport { AvatarWithBadge } from '../index';\nimport { Settings as SettingsIcon } from '../CustomIcon';\nimport { useStyles } from './styles';\n\nconst UserAvatarAndTextItem = ({\n classes: classesProp,\n className: classNameProp,\n spacing,\n isButton,\n fullWidth,\n size,\n text,\n additionalText,\n additionalTextArray,\n description,\n mainImageAlt,\n mainImageSrc,\n badgeChildren,\n badgeImageAlt,\n badgeImageSrc,\n onClick,\n onClickButtonProps,\n tooltip,\n showSettingsIcon,\n}) => {\n const classes = useStyles();\n const Component = isButton ? Button : 'div';\n const displayDescription = description && text !== description;\n const displayLabels = text || additionalText || displayDescription;\n\n const renderComponent = () => (\n \n
\n \n {text}\n \n
\n\n {displayLabels && (\n
\n {(additionalTextArray || text || additionalText) && (\n \n {text}\n {additionalText && (\n <>\n  \n \n {additionalText}\n \n \n )}\n \n )}\n {additionalTextArray && (\n <>\n {additionalTextArray.map((item, index) => (\n \n {item.text} \n \n ))}\n \n )}\n {displayDescription && (\n \n )}\n
\n )}\n\n {showSettingsIcon && }\n\n {onClick && !isButton && (\n \n {onClickButtonProps.icon}\n \n )}\n \n );\n return (\n <>{tooltip ? {renderComponent()} : renderComponent()}\n );\n};\n\nUserAvatarAndTextItem.propTypes = {\n className: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n classes: PropTypes.object,\n fullWidth: PropTypes.bool,\n size: PropTypes.oneOf(['large', 'medium', 'small', 'mini']),\n text: PropTypes.string,\n additionalText: PropTypes.string,\n additionalTextArray: PropTypes.arrayOf(PropTypes.shape({})),\n description: PropTypes.string,\n mainImageAlt: PropTypes.string,\n mainImageSrc: PropTypes.string,\n badgeChildren: PropTypes.node,\n badgeImageAlt: PropTypes.string,\n badgeImageSrc: PropTypes.string,\n spacing: PropTypes.bool,\n isButton: PropTypes.bool,\n tooltip: PropTypes.node,\n onClickButtonProps: PropTypes.shape({\n icon: PropTypes.node,\n color: PropTypes.oneOf(['inherit', 'primary', 'secondary', 'default']),\n }),\n onClick: PropTypes.func,\n showSettingsIcon: PropTypes.bool,\n};\n\nUserAvatarAndTextItem.defaultProps = {\n spacing: false,\n mainImageAlt: '',\n badgeImageAlt: '',\n fullWidth: false,\n onClickButtonProps: {\n icon: ,\n color: 'default',\n },\n};\n\nexport default UserAvatarAndTextItem;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n },\n avatar: {\n border: `2px solid ${palette.background.default}`,\n boxSizing: 'content-box',\n marginLeft: -5,\n borderRadius: '50%',\n '&:first-child': {\n marginLeft: 0,\n },\n },\n extraAvatar: {\n color: `${palette.primary.contrastText} !important`,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { AvatarGroup } from '@material-ui/lab';\nimport { Avatar } from 'src/components';\nimport { useStyles } from './styles';\n\nconst SPACINGS = {\n small: -16,\n medium: null,\n};\n\nconst UserAvatarGroup = React.forwardRef(\n ({ children: childrenProp, className, max = 5, spacing = 'medium', size }, ref) => {\n const classes = useStyles();\n const clampedMax = max < 2 ? 2 : max;\n\n const children = React.Children.toArray(childrenProp).filter((child) =>\n React.isValidElement(child)\n );\n\n const extraAvatars = children.length > clampedMax ? children.length - clampedMax + 1 : 0;\n\n const marginLeft = spacing && SPACINGS[spacing] !== undefined ? SPACINGS[spacing] : -spacing;\n\n return (\n
\n {children.slice(0, children.length - extraAvatars).map((child) =>\n React.cloneElement(child, {\n className: clsx(child.props.className, classes.avatar),\n style: {\n marginLeft,\n ...child.props.style,\n },\n size,\n })\n )}\n {extraAvatars ? (\n \n {`+${extraAvatars}`}\n \n ) : null}\n
\n );\n }\n);\n\nUserAvatarGroup.propTypes = {\n ...AvatarGroup.props,\n size: PropTypes.oneOf(['large', 'medium', 'small', 'mini']),\n};\n\nUserAvatarGroup.defaultProps = {\n size: 'large',\n};\n\nexport default UserAvatarGroup;\n","export const DropzoneVariant = {\n AVATAR: 'avatar',\n DOCUMENT: 'document',\n CERTIFICATE: 'certificate',\n};\nexport const DropzoneStep = {\n UPLOAD: 'upload',\n LIST: 'list',\n};\n\nexport const getAcceptableFiles = (variant) => {\n switch (variant) {\n case DropzoneVariant.AVATAR:\n return 'image/jpeg, image/png';\n case DropzoneVariant.DOCUMENT:\n case DropzoneVariant.CERTIFICATE:\n return 'application/pdf, .zip, .doc, .docx, image/jpeg, image/png, application/x-zip-compressed,multipart/x-zip';\n default:\n return '';\n }\n};\n\nexport const getMaxSize = (variant) => {\n switch (variant) {\n case DropzoneVariant.AVATAR:\n return 10485760;\n case DropzoneVariant.DOCUMENT:\n case DropzoneVariant.CERTIFICATE:\n return 1073741824;\n default:\n return 0;\n }\n};\n","import { Button, Box, Slider, Typography, CircularProgress } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport AvatarEditor from 'react-avatar-editor';\nimport { DropZone } from 'src/components';\nimport { DropzoneVariant } from '../DropZone/helpers';\n\nconst AvatarUpload = ({ handleUpdate, isLoading }) => {\n const { t } = useTranslation();\n let editor = '';\n const [picture, setPicture] = useState({\n cropperOpen: false,\n img: null,\n zoom: 2,\n croppedImg: '',\n });\n\n const handleSlider = (event, value) => {\n setPicture({\n ...picture,\n zoom: value,\n });\n };\n\n const setEditorRef = (ed) => {\n editor = ed;\n };\n\n const handleFileChange = (file) => {\n setPicture({\n ...picture,\n img: file,\n cropperOpen: true,\n });\n };\n\n const handleUploadAvatar = () => {\n if (setEditorRef) {\n const canvasScaled = editor.getImage();\n const croppedImg = canvasScaled.toDataURL();\n setPicture({\n ...picture,\n croppedImg,\n });\n handleUpdate(croppedImg.slice(5));\n }\n };\n\n return (\n <>\n {picture.cropperOpen ? (\n <>\n \n \n {t('userConfigurationPage.basic.avatarPage.title')}\n \n \n \n \n }\n >\n {t('userConfigurationPage.basic.avatarPage.button')}\n \n \n ) : (\n \n )}\n \n );\n};\n\nAvatarUpload.propTypes = {\n handleUpdate: PropTypes.func,\n isLoading: PropTypes.bool,\n};\n\nexport default AvatarUpload;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n root: {},\n largeSize: {},\n mediumSize: {\n width: 34,\n height: 34,\n fontSize: '0.93rem',\n },\n smallSize: {\n width: 26,\n height: 26,\n fontSize: '0.65rem',\n },\n miniSize: {\n width: 18,\n height: 18,\n fontSize: '0.57rem',\n },\n badge: {\n width: 18,\n height: 18,\n borderRadius: '25%',\n backgroundColor: palette.background.paper,\n padding: 1,\n zIndex: 'auto',\n\n '& .MuiAvatar-root': {\n borderRadius: '25%',\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Badge } from '@material-ui/core';\nimport { Avatar } from '../index';\n\nimport { useStyles } from './styles';\n\nconst UserAvatarWithBadge = ({\n children,\n className: classNameProp,\n tooltip,\n color,\n customColor,\n size,\n alt,\n src,\n badgeChildren,\n badgeSize,\n badgeAlt,\n badgeSrc,\n badgeTooltip,\n badgeColor,\n badgeCustomColor,\n}) => {\n const classes = useStyles();\n return (\n \n {badgeChildren}\n \n )\n }\n className={clsx(classes.root, classNameProp)}\n >\n \n {children}\n \n \n );\n};\n\nUserAvatarWithBadge.propTypes = {\n className: PropTypes.string,\n size: PropTypes.oneOf(['large', 'medium', 'small', 'mini']),\n tooltip: PropTypes.string,\n color: PropTypes.oneOf(['default', 'error', 'warning', 'success', 'info']),\n customColor: PropTypes.string,\n children: PropTypes.node,\n alt: PropTypes.string,\n src: PropTypes.string,\n badgeSize: PropTypes.oneOf(['large', 'medium', 'small', 'mini']),\n badgeChildren: PropTypes.node,\n badgeAlt: PropTypes.string,\n badgeSrc: PropTypes.string,\n badgeTooltip: PropTypes.string,\n badgeColor: PropTypes.oneOf(['default', 'error', 'warning', 'success', 'info']),\n badgeCustomColor: PropTypes.string,\n};\n\nUserAvatarWithBadge.defaultProps = {\n size: 'large',\n badgeSize: 'mini',\n};\n\nexport default UserAvatarWithBadge;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing }) =>\n createStyles({\n root: {},\n rootOpen: {\n '& $headerRootButton': {\n color: palette.primary.main,\n borderColor: palette.primary.main,\n backgroundColor: palette.common.white,\n },\n },\n headerRoot: {\n padding: spacing(1.5, 2),\n cursor: 'pointer',\n boxShadow: `0 0 0 1px ${palette.divider}`,\n [breakpoints.up('md')]: {\n padding: spacing(2, 3),\n },\n },\n headerRootButton: {},\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Card, CardContent, CardHeader, Collapse, Fab } from '@material-ui/core';\nimport {\n ArrowTopSLine as ArrowTopIcon,\n ArrowDownSLine as ArrowDownIcon,\n} from 'src/components/CustomIcon';\n\nimport { useStyles } from './styles';\n\nconst CardCollapseItem = ({ className: classNameProp, children, title, openOnStart }) => {\n const [opened, setOpen] = useState(openOnStart);\n const classes = useStyles();\n const handleClick = () => {\n setOpen(!opened);\n };\n\n return (\n \n \n {opened ? : }\n \n }\n classes={{\n root: classes.headerRoot,\n }}\n />\n \n {children}\n \n \n );\n};\n\nCardCollapseItem.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n title: PropTypes.node,\n openOnStart: PropTypes.bool,\n};\n\nCardCollapseItem.defaultProps = {\n openOnStart: false,\n};\n\nexport default CardCollapseItem;\n","export const EVENT_TYPES = {\n OPEN_CERTIFICATE_ERROR_MODAL: 'OPEN_CERTIFICATE_ERROR_MODAL',\n};\n\n// Progress is a string that might be injected into error message\n// We listen on this event in modal component\nexport function dispatchOpenCertificateErrorModalEvent(progress) {\n const event = new CustomEvent(EVENT_TYPES.OPEN_CERTIFICATE_ERROR_MODAL, {\n bubbles: true,\n detail: {\n progress,\n },\n });\n\n document.dispatchEvent(event);\n}\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n modal: {\n height: '370px',\n width: '400px',\n borderRadius: '6px',\n background: palette.common.white,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n padding: '20px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'space-around',\n boxSizing: 'border-box',\n },\n\n header: {\n textAlign: 'center',\n marginBottom: '15px',\n },\n message: {\n textAlign: 'center',\n color: palette.error.main,\n marginBottom: '20px',\n },\n errorButton: {\n marginBottom: '10px',\n backgroundColor: palette.error.main,\n color: palette.common.white,\n border: `1px solid ${palette.error.main}`,\n\n '&:hover': {\n backgroundColor: palette.error.main,\n borderColor: palette.common.white,\n boxShadow: 'none',\n },\n '&:active': {\n backgroundColor: palette.error.main,\n borderColor: palette.common.white,\n },\n },\n }),\n { index: 0 }\n);\n","import { Box, Button, Modal, Typography, useMediaQuery } from '@material-ui/core';\nimport { EVENT_TYPES } from 'src/customEvents';\nimport React, { useState, useRef, useEffect } from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { fromEvent } from 'rxjs';\n\nimport { useStyles } from './styles';\n\nconst CertificationCreationModal = () => {\n const [open, setOpen] = useState(false);\n const subRef = useRef(null);\n const { t } = useTranslation();\n\n const successHandler = (event) => {\n console.log('event.detail -', event.detail);\n setOpen(true);\n };\n\n const errorHandler = (error) => {\n throw error;\n };\n\n useEffect(() => {\n subRef.current = fromEvent(document, EVENT_TYPES.OPEN_CERTIFICATE_ERROR_MODAL).subscribe({\n next: successHandler,\n error: errorHandler,\n });\n\n return () => {\n subRef.current?.unsubscribe();\n };\n }, []);\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const classes = useStyles();\n\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n return (\n \n \n \n {t('createCertificate.exceedLimit')}\n \n \n {t('createCertificate.exceedLimitMessage')}\n \n\n
\n \n {t('createCertificate.exceedLimitConfirmation')}\n \n \n
\n
\n
\n );\n};\n\nexport default CertificationCreationModal;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, transitions }) =>\n createStyles({\n root: {\n display: 'flex',\n },\n inputContainer: {\n position: 'relative',\n width: spacing(7.5),\n height: spacing(9),\n '&:not(:last-child)': {\n marginRight: spacing(1),\n },\n '& $underline': {\n position: 'absolute',\n bottom: spacing(2.5),\n left: '50%',\n marginLeft: '-15%',\n },\n '&:hover, &:focus': {\n '& $underline': {\n backgroundColor: palette.primary.main,\n },\n },\n },\n input: {\n minHeight: spacing(9),\n textAlign: 'center',\n fontSize: '1.285rem',\n '&[type=number]': {\n '-moz-appearance': 'textfield',\n },\n '&::-webkit-outer-spin-button': {\n '-webkit-appearance': 'none',\n margin: 0,\n },\n '&::-webkit-inner-spin-button': {\n '-webkit-appearance': 'none',\n margin: 0,\n },\n },\n inputFocus: {\n '& $underline': {\n backgroundColor: palette.primary.main,\n },\n },\n inputRoot: {},\n inputFilled: {\n '& $input + $underline': {\n backgroundColor: palette.text.primary,\n },\n },\n notchedOutline: {},\n underline: {\n width: '30%',\n height: 1,\n background: palette.bottomLineColor,\n transition: transitions.create(['background-color'], {\n duration: transitions.duration.short,\n }),\n },\n }),\n { index: 0 }\n);\n","import React, { createRef, forwardRef, useImperativeHandle, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { TextField } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst CodeInput = forwardRef(({ codeLength, onValueChange, onAcceptValue }, ref) => {\n const classes = useStyles();\n const defaultValue = Array(codeLength).join('.').split('.');\n const [codeValue, setCodeValue] = useState(defaultValue);\n const [isPasting, setIsPasting] = useState(false);\n\n const inputs = [];\n const inputRefs = [];\n\n const isNumeric = (str) =>\n (typeof str === 'number' || typeof str === 'string') && !Number.isNaN(str - parseFloat(str));\n\n const clearCode = () => {\n const newValue = defaultValue;\n setCodeValue(newValue);\n\n if (typeof onValueChange === 'function') {\n onValueChange(newValue.join(''));\n }\n };\n\n useImperativeHandle(ref, () => ({\n clearCode,\n }));\n\n const onInputChange = (value, index) => {\n if (!isPasting) {\n if (value.length < 2) {\n const newValue = Array.from(codeValue);\n newValue[index] = value;\n setCodeValue(newValue);\n\n if (typeof onValueChange === 'function') {\n onValueChange(newValue.join(''));\n }\n }\n if (value !== '') {\n if (index < codeLength - 1) {\n const inputRefNext = inputRefs[index + 1].current;\n if (inputRefNext) {\n inputRefNext.focus();\n }\n }\n } else if (index > 0) {\n const inputRefPrev = inputRefs[index - 1].current;\n if (inputRefPrev) {\n inputRefPrev.focus();\n }\n }\n } else {\n const inputRefCurrent = inputRefs[index].current;\n if (inputRefCurrent) {\n inputRefCurrent.value = '';\n\n const inputRefToFocus =\n inputRefs[value.length >= codeLength ? codeLength - 1 : value.length].current;\n\n if (inputRefToFocus) {\n inputRefToFocus.focus();\n }\n\n setIsPasting(false);\n }\n\n if (typeof onValueChange === 'function') {\n onValueChange(codeValue.join(''));\n }\n }\n };\n\n const onInputFocus = (event) => {\n if (event.target.value.length > 0) {\n event.target.select();\n }\n };\n\n const onKeyUp = (event, index) => {\n const { keyCode } = event;\n\n if (keyCode === 13 && onAcceptValue) {\n onAcceptValue(codeValue.join(''));\n }\n\n const inputRefCurrent = inputRefs[index].current;\n\n if (inputRefCurrent) {\n if (\n index > 0 &&\n ((keyCode === 8 && (inputRefCurrent.value === '' || inputRefCurrent.value === undefined)) ||\n keyCode === 37)\n ) {\n const inputRefPrev = inputRefs[index - 1].current;\n if (inputRefPrev) {\n inputRefPrev.focus();\n }\n }\n }\n if (index < codeLength - 1 && keyCode === 39) {\n const inputRefNext = inputRefs[index + 1].current;\n if (inputRefNext) {\n inputRefNext.focus();\n }\n }\n };\n\n const onKeyDown = (event) => {\n const { keyCode } = event;\n\n const canTypeSign =\n keyCode === 8 || keyCode === 9 || keyCode === 17 || keyCode === 46 || keyCode === 86\n ? true\n : !Number.isNaN(Number(event.key));\n\n if (!canTypeSign) {\n event.preventDefault();\n }\n };\n\n const onPaste = (event) => {\n setIsPasting(true);\n const clipboardData = event.clipboardData.getData('text/plain').replace(/\\s/g, '');\n const valueToSetFromClipboard = [];\n\n if (isNumeric(clipboardData)) {\n const splitClipboardData = clipboardData.split(/(?!$)/u);\n for (let i = 0; i < codeLength; i += 1) {\n valueToSetFromClipboard[i] = splitClipboardData[i] || '';\n }\n\n return setCodeValue(valueToSetFromClipboard);\n }\n return false;\n };\n\n const renderSingleInput = (index, ref) => {\n const isAutofocus = index === 0;\n return (\n
\n {\n onInputChange(e.target.value, index);\n }}\n onFocus={(e) => {\n onInputFocus(e, index);\n }}\n onKeyUp={(e) => {\n onKeyUp(e, index);\n }}\n onKeyDown={(event) => {\n onKeyDown(event);\n }}\n onPaste={(e) => {\n onPaste(e);\n }}\n autoFocus={isAutofocus}\n value={codeValue[index]}\n fullWidth\n type=\"number\"\n inputProps={{\n maxLength: 1,\n }}\n /* eslint-disable-next-line react/jsx-no-duplicate-props */\n InputProps={{\n classes: {\n root: clsx(\n classes.inputRoot,\n // hasErrors && classes.inputError,\n codeValue[index] !== '' && classes.inputFilled\n ),\n input: classes.input,\n focused: classes.inputFocus,\n notchedOutline: classes.notchedOutline,\n },\n endAdornment:
,\n }}\n />\n
\n );\n };\n\n for (let i = 0; i < codeLength; i += 1) {\n const newRef = createRef();\n inputs.push(renderSingleInput(i, newRef));\n inputRefs.push(newRef);\n }\n return (\n
\n {inputs}\n
\n );\n});\n\nCodeInput.propTypes = {\n codeLength: PropTypes.number,\n onValueChange: PropTypes.func,\n onAcceptValue: PropTypes.func,\n};\n\nexport default CodeInput;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, shape, spacing, transitions }) =>\n createStyles({\n root: {},\n rootOpen: {\n '& $header': {\n color: palette.primary.main,\n },\n '& $headerIcon': {\n transform: 'rotate(-180deg)',\n },\n },\n notClickable: {\n cursor: 'default',\n },\n header: {\n padding: spacing(1, 2),\n width: '100%',\n minHeight: 48,\n justifyContent: 'space-between',\n borderRadius: shape.borderRadius,\n backgroundColor: palette.background.default,\n },\n headerIcon: {\n transition: transitions.create(['color', 'transform', 'opacity'], {\n duration: transitions.duration.short,\n }),\n '& svg': {\n display: 'block',\n width: 16,\n height: 16,\n },\n },\n content: {\n padding: `${spacing(2)}px 0 ${spacing(1)}px 0`,\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { ButtonBase, Collapse, Typography } from '@material-ui/core';\nimport { ArrowDownSLine as ArrowDownIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst CollapseItem = ({ className: classNameProp, children, title, openOnStart, alwaysOpen }) => {\n const [opened, setOpen] = useState(openOnStart);\n const classes = useStyles();\n const handleClick = () => {\n setOpen(!opened);\n };\n\n return (\n
\n \n {title}\n\n {!alwaysOpen && (\n
\n {' '}\n \n
\n )}\n \n\n \n
{children}
\n
\n
\n );\n};\n\nCollapseItem.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n title: PropTypes.node,\n alwaysOpen: PropTypes.bool,\n openOnStart: PropTypes.bool,\n};\n\nCollapseItem.defaultProps = {\n openOnStart: false,\n alwaysOpen: false,\n};\n\nexport default CollapseItem;\n","import { lighten } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing }) =>\n createStyles({\n root: {\n textAlign: 'center',\n },\n primaryRootVariant: {},\n successRootVariant: {\n '& $applyButton': {\n backgroundColor: palette.success.main,\n '&:hover': {\n backgroundColor: lighten(palette.success.main, 0.075),\n },\n '&:focus, &:active': {\n backgroundColor: palette.success.dark,\n },\n '&[disabled]': {\n backgroundColor: palette.action.disabledBackground,\n color: palette.action.disabled,\n },\n },\n },\n errorRootVariant: {\n '& $applyButton': {\n backgroundColor: palette.error.main,\n '&:hover': {\n backgroundColor: lighten(palette.error.main, 0.075),\n },\n '&:focus, &:active': {\n backgroundColor: palette.error.dark,\n },\n '&[disabled]': {\n backgroundColor: palette.action.disabledBackground,\n color: palette.action.disabled,\n },\n },\n },\n informationRootVariant: {\n textAlign: 'left',\n },\n actionsWrapper: {\n flexDirection: 'column',\n },\n button: {\n '&:not(:first-child)': {\n marginLeft: 0,\n },\n '&:not(:last-child)': {\n marginBottom: spacing(0.75),\n },\n },\n applyButton: {},\n subtitleWrapper: {},\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport {\n Button,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Typography,\n useTheme,\n} from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst ConfirmDialog = ({\n className: classNameProp,\n children,\n open,\n smallTitle,\n variant,\n title,\n subtitle,\n subtitleColor,\n applyButtonText,\n cancelButtonText,\n actionAccept,\n actionCancel,\n onExit,\n maxWidth,\n isLoading,\n isDisabled,\n}) => {\n const theme = useTheme();\n const classes = useStyles();\n\n return (\n \n {title && (\n \n {title}\n \n )}\n\n {subtitle && (\n \n \n {subtitle}\n \n \n )}\n\n {children}\n\n {(applyButtonText || cancelButtonText) && (\n \n {applyButtonText && (\n }\n >\n {applyButtonText}\n \n )}\n {cancelButtonText && (\n \n {cancelButtonText}\n \n )}\n \n )}\n \n );\n};\n\nConfirmDialog.propTypes = {\n className: PropTypes.string,\n variant: PropTypes.oneOf(['primary', 'success', 'error', 'information']),\n open: PropTypes.bool,\n smallTitle: PropTypes.bool,\n title: PropTypes.string,\n subtitle: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n subtitleColor: PropTypes.oneOf([false, 'error']),\n applyButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n actionAccept: PropTypes.func,\n actionCancel: PropTypes.func,\n onExit: PropTypes.func,\n children: PropTypes.node,\n isLoading: PropTypes.bool,\n isDisabled: PropTypes.bool,\n maxWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]),\n};\n\nConfirmDialog.defaultProps = {\n open: false,\n subtitleColor: false,\n variant: 'primary',\n maxWidth: 'xs',\n isLoading: false,\n isDisabled: false,\n};\n\nexport default ConfirmDialog;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {},\n smallSize: {},\n mediumSize: {},\n largeSize: {},\n topVertical: {\n paddingTop: spacing(2),\n '&$mediumSize': {\n [breakpoints.up('md')]: {\n paddingTop: spacing(2.5),\n },\n [breakpoints.up('lg')]: {\n paddingTop: spacing(3.5),\n },\n },\n '&$largeSize': {\n [breakpoints.up('md')]: {\n paddingTop: spacing(3),\n },\n [breakpoints.up('lg')]: {\n paddingTop: spacing(5),\n },\n },\n },\n bottomVertical: {\n paddingBottom: spacing(2),\n '&$mediumSize': {\n [breakpoints.up('md')]: {\n paddingBottom: spacing(2.5),\n },\n [breakpoints.up('lg')]: {\n paddingBottom: spacing(3.5),\n },\n },\n '&$largeSize': {\n [breakpoints.up('md')]: {\n paddingBottom: spacing(3),\n },\n [breakpoints.up('lg')]: {\n paddingBottom: spacing(5),\n },\n },\n },\n leftHorizontal: {\n paddingLeft: spacing(2),\n '&$mediumSize': {\n [breakpoints.up('md')]: {\n paddingLeft: spacing(2.5),\n },\n [breakpoints.up('lg')]: {\n paddingLeft: spacing(3.5),\n },\n },\n '&$largeSize': {\n [breakpoints.up('md')]: {\n paddingLeft: spacing(3),\n },\n [breakpoints.up('lg')]: {\n paddingLeft: spacing(5),\n },\n },\n },\n rightHorizontal: {\n paddingRight: spacing(2),\n '&$mediumSize': {\n [breakpoints.up('md')]: {\n paddingRight: spacing(2.5),\n },\n [breakpoints.up('lg')]: {\n paddingRight: spacing(3.5),\n },\n },\n '&$largeSize': {\n [breakpoints.up('md')]: {\n paddingRight: spacing(3),\n },\n [breakpoints.up('lg')]: {\n paddingRight: spacing(5),\n },\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst ContentContainer = ({\n className: classNameProp,\n children,\n size = 'large',\n horizontal = true,\n vertical = true,\n ...otherProps\n}) => {\n const classes = useStyles();\n return (\n \n {children}\n
\n );\n};\n\nContentContainer.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n horizontal: PropTypes.oneOf([true, false, 'left', 'right']),\n vertical: PropTypes.oneOf([true, false, 'top', 'bottom']),\n};\n\nexport default ContentContainer;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {},\n smallMargin: {\n marginBottom: spacing(2),\n },\n mediumMargin: {\n marginBottom: spacing(2),\n [breakpoints.up('md')]: {\n marginBottom: spacing(2.5),\n },\n [breakpoints.up('lg')]: {\n marginBottom: spacing(3.5),\n },\n },\n largeMargin: {\n marginBottom: spacing(2),\n [breakpoints.up('md')]: {\n marginBottom: spacing(3),\n },\n [breakpoints.up('lg')]: {\n marginBottom: spacing(5),\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Typography } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst ContentHeader = ({\n className: classNameProp,\n children,\n subtitle,\n variant,\n color,\n margin,\n}) => {\n const classes = useStyles();\n\n return (\n \n \n {children}\n \n\n {subtitle && {subtitle}}\n \n );\n};\n\nContentHeader.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n subtitle: PropTypes.string,\n variant: PropTypes.oneOfType([\n PropTypes.oneOf([\n 'body1',\n 'body2',\n 'button',\n 'caption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'inherit',\n 'overline',\n 'subtitle1',\n 'subtitle2',\n ]),\n PropTypes.string,\n ]),\n color: PropTypes.oneOf([\n 'error',\n 'inherit',\n 'initial',\n 'primary',\n 'secondary',\n 'textPrimary',\n 'textSecondary',\n ]),\n margin: PropTypes.oneOf([false, 'small', 'medium', 'large']),\n};\n\nContentHeader.defaultProps = {\n variant: 'h3',\n color: 'textPrimary',\n margin: 'large',\n};\n\nexport default ContentHeader;\n","import React from 'react';\nimport { TextField } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { makeStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\n// ISO 3166-1 alpha-2\n// ⚠️ No support for IE 11\nfunction countryToFlag(isoCode) {\n return typeof String.fromCodePoint !== 'undefined'\n ? isoCode\n .toUpperCase()\n .replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397))\n : isoCode;\n}\n\nconst useStyles = makeStyles(\n {\n option: {\n fontSize: 15,\n '& > span': {\n marginRight: 10,\n fontSize: 18,\n },\n },\n },\n { index: 0 }\n);\n\nconst CountrySelect = (props) => {\n const {\n label,\n placeholder,\n country,\n countryCode,\n changeCountry,\n error,\n disabled,\n helperText,\n } = props;\n const [newCountry, setCountry] = React.useState({\n code: countryCode,\n label: country,\n });\n const classes = useStyles();\n\n const handleTextFieldChange2 = (country) => {\n setCountry(country);\n changeCountry(country);\n };\n return (\n {\n handleTextFieldChange2(newValue);\n }}\n name=\"country\"\n options={countries}\n classes={{\n option: classes.option,\n }}\n disabled={disabled}\n fullWidth\n autoHighlight\n getOptionLabel={(option) => option.label}\n getOptionSelected={(option) => option.label === newCountry.label}\n renderOption={(option) => (\n <>\n {countryToFlag(option.code)}\n {option.label} ({option.code})\n \n )}\n renderInput={(params) => (\n \n )}\n />\n );\n};\n\n// From https://bitbucket.org/atlassian/atlaskit-mk-2/raw/4ad0e56649c3e6c973e226b7efaeb28cb240ccb0/packages/core/select/src/data/countries.js\nconst countries = [\n { code: 'AD', label: 'Andorra', phone: '376' },\n { code: 'AE', label: 'United Arab Emirates', phone: '971' },\n { code: 'AF', label: 'Afghanistan', phone: '93' },\n { code: 'AG', label: 'Antigua and Barbuda', phone: '1-268' },\n { code: 'AI', label: 'Anguilla', phone: '1-264' },\n { code: 'AL', label: 'Albania', phone: '355' },\n { code: 'AM', label: 'Armenia', phone: '374' },\n { code: 'AO', label: 'Angola', phone: '244' },\n { code: 'AQ', label: 'Antarctica', phone: '672' },\n { code: 'AR', label: 'Argentina', phone: '54' },\n { code: 'AS', label: 'American Samoa', phone: '1-684' },\n { code: 'AT', label: 'Austria', phone: '43' },\n { code: 'AU', label: 'Australia', phone: '61', suggested: true },\n { code: 'AW', label: 'Aruba', phone: '297' },\n { code: 'AX', label: 'Alland Islands', phone: '358' },\n { code: 'AZ', label: 'Azerbaijan', phone: '994' },\n { code: 'BA', label: 'Bosnia and Herzegovina', phone: '387' },\n { code: 'BB', label: 'Barbados', phone: '1-246' },\n { code: 'BD', label: 'Bangladesh', phone: '880' },\n { code: 'BE', label: 'Belgium', phone: '32' },\n { code: 'BF', label: 'Burkina Faso', phone: '226' },\n { code: 'BG', label: 'Bulgaria', phone: '359' },\n { code: 'BH', label: 'Bahrain', phone: '973' },\n { code: 'BI', label: 'Burundi', phone: '257' },\n { code: 'BJ', label: 'Benin', phone: '229' },\n { code: 'BL', label: 'Saint Barthelemy', phone: '590' },\n { code: 'BM', label: 'Bermuda', phone: '1-441' },\n { code: 'BN', label: 'Brunei Darussalam', phone: '673' },\n { code: 'BO', label: 'Bolivia', phone: '591' },\n { code: 'BR', label: 'Brazil', phone: '55' },\n { code: 'BS', label: 'Bahamas', phone: '1-242' },\n { code: 'BT', label: 'Bhutan', phone: '975' },\n { code: 'BV', label: 'Bouvet Island', phone: '47' },\n { code: 'BW', label: 'Botswana', phone: '267' },\n { code: 'BY', label: 'Belarus', phone: '375' },\n { code: 'BZ', label: 'Belize', phone: '501' },\n { code: 'CA', label: 'Canada', phone: '1', suggested: true },\n { code: 'CC', label: 'Cocos (Keeling) Islands', phone: '61' },\n { code: 'CD', label: 'Congo, Democratic Republic of the', phone: '243' },\n { code: 'CF', label: 'Central African Republic', phone: '236' },\n { code: 'CG', label: 'Congo, Republic of the', phone: '242' },\n { code: 'CH', label: 'Switzerland', phone: '41' },\n { code: 'CI', label: \"Cote d'Ivoire\", phone: '225' },\n { code: 'CK', label: 'Cook Islands', phone: '682' },\n { code: 'CL', label: 'Chile', phone: '56' },\n { code: 'CM', label: 'Cameroon', phone: '237' },\n { code: 'CN', label: 'China', phone: '86' },\n { code: 'CO', label: 'Colombia', phone: '57' },\n { code: 'CR', label: 'Costa Rica', phone: '506' },\n { code: 'CU', label: 'Cuba', phone: '53' },\n { code: 'CV', label: 'Cape Verde', phone: '238' },\n { code: 'CW', label: 'Curacao', phone: '599' },\n { code: 'CX', label: 'Christmas Island', phone: '61' },\n { code: 'CY', label: 'Cyprus', phone: '357' },\n { code: 'CZ', label: 'Czech Republic', phone: '420' },\n { code: 'DE', label: 'Germany', phone: '49', suggested: true },\n { code: 'DJ', label: 'Djibouti', phone: '253' },\n { code: 'DK', label: 'Denmark', phone: '45' },\n { code: 'DM', label: 'Dominica', phone: '1-767' },\n { code: 'DO', label: 'Dominican Republic', phone: '1-809' },\n { code: 'DZ', label: 'Algeria', phone: '213' },\n { code: 'EC', label: 'Ecuador', phone: '593' },\n { code: 'EE', label: 'Estonia', phone: '372' },\n { code: 'EG', label: 'Egypt', phone: '20' },\n { code: 'EH', label: 'Western Sahara', phone: '212' },\n { code: 'ER', label: 'Eritrea', phone: '291' },\n { code: 'ES', label: 'Spain', phone: '34' },\n { code: 'ET', label: 'Ethiopia', phone: '251' },\n { code: 'FI', label: 'Finland', phone: '358' },\n { code: 'FJ', label: 'Fiji', phone: '679' },\n { code: 'FK', label: 'Falkland Islands (Malvinas)', phone: '500' },\n { code: 'FM', label: 'Micronesia, Federated States of', phone: '691' },\n { code: 'FO', label: 'Faroe Islands', phone: '298' },\n { code: 'FR', label: 'France', phone: '33', suggested: true },\n { code: 'GA', label: 'Gabon', phone: '241' },\n { code: 'GB', label: 'United Kingdom', phone: '44' },\n { code: 'GD', label: 'Grenada', phone: '1-473' },\n { code: 'GE', label: 'Georgia', phone: '995' },\n { code: 'GF', label: 'French Guiana', phone: '594' },\n { code: 'GG', label: 'Guernsey', phone: '44' },\n { code: 'GH', label: 'Ghana', phone: '233' },\n { code: 'GI', label: 'Gibraltar', phone: '350' },\n { code: 'GL', label: 'Greenland', phone: '299' },\n { code: 'GM', label: 'Gambia', phone: '220' },\n { code: 'GN', label: 'Guinea', phone: '224' },\n { code: 'GP', label: 'Guadeloupe', phone: '590' },\n { code: 'GQ', label: 'Equatorial Guinea', phone: '240' },\n { code: 'GR', label: 'Greece', phone: '30' },\n { code: 'GS', label: 'South Georgia and the South Sandwich Islands', phone: '500' },\n { code: 'GT', label: 'Guatemala', phone: '502' },\n { code: 'GU', label: 'Guam', phone: '1-671' },\n { code: 'GW', label: 'Guinea-Bissau', phone: '245' },\n { code: 'GY', label: 'Guyana', phone: '592' },\n { code: 'HK', label: 'Hong Kong', phone: '852' },\n { code: 'HM', label: 'Heard Island and McDonald Islands', phone: '672' },\n { code: 'HN', label: 'Honduras', phone: '504' },\n { code: 'HR', label: 'Croatia', phone: '385' },\n { code: 'HT', label: 'Haiti', phone: '509' },\n { code: 'HU', label: 'Hungary', phone: '36' },\n { code: 'ID', label: 'Indonesia', phone: '62' },\n { code: 'IE', label: 'Ireland', phone: '353' },\n { code: 'IL', label: 'Israel', phone: '972' },\n { code: 'IM', label: 'Isle of Man', phone: '44' },\n { code: 'IN', label: 'India', phone: '91' },\n { code: 'IO', label: 'British Indian Ocean Territory', phone: '246' },\n { code: 'IQ', label: 'Iraq', phone: '964' },\n { code: 'IR', label: 'Iran, Islamic Republic of', phone: '98' },\n { code: 'IS', label: 'Iceland', phone: '354' },\n { code: 'IT', label: 'Italy', phone: '39' },\n { code: 'JE', label: 'Jersey', phone: '44' },\n { code: 'JM', label: 'Jamaica', phone: '1-876' },\n { code: 'JO', label: 'Jordan', phone: '962' },\n { code: 'JP', label: 'Japan', phone: '81', suggested: true },\n { code: 'KE', label: 'Kenya', phone: '254' },\n { code: 'KG', label: 'Kyrgyzstan', phone: '996' },\n { code: 'KH', label: 'Cambodia', phone: '855' },\n { code: 'KI', label: 'Kiribati', phone: '686' },\n { code: 'KM', label: 'Comoros', phone: '269' },\n { code: 'KN', label: 'Saint Kitts and Nevis', phone: '1-869' },\n { code: 'KP', label: \"Korea, Democratic People's Republic of\", phone: '850' },\n { code: 'KR', label: 'Korea, Republic of', phone: '82' },\n { code: 'KW', label: 'Kuwait', phone: '965' },\n { code: 'KY', label: 'Cayman Islands', phone: '1-345' },\n { code: 'KZ', label: 'Kazakhstan', phone: '7' },\n { code: 'LA', label: \"Lao People's Democratic Republic\", phone: '856' },\n { code: 'LB', label: 'Lebanon', phone: '961' },\n { code: 'LC', label: 'Saint Lucia', phone: '1-758' },\n { code: 'LI', label: 'Liechtenstein', phone: '423' },\n { code: 'LK', label: 'Sri Lanka', phone: '94' },\n { code: 'LR', label: 'Liberia', phone: '231' },\n { code: 'LS', label: 'Lesotho', phone: '266' },\n { code: 'LT', label: 'Lithuania', phone: '370' },\n { code: 'LU', label: 'Luxembourg', phone: '352' },\n { code: 'LV', label: 'Latvia', phone: '371' },\n { code: 'LY', label: 'Libya', phone: '218' },\n { code: 'MA', label: 'Morocco', phone: '212' },\n { code: 'MC', label: 'Monaco', phone: '377' },\n { code: 'MD', label: 'Moldova, Republic of', phone: '373' },\n { code: 'ME', label: 'Montenegro', phone: '382' },\n { code: 'MF', label: 'Saint Martin (French part)', phone: '590' },\n { code: 'MG', label: 'Madagascar', phone: '261' },\n { code: 'MH', label: 'Marshall Islands', phone: '692' },\n { code: 'MK', label: 'Macedonia, the Former Yugoslav Republic of', phone: '389' },\n { code: 'ML', label: 'Mali', phone: '223' },\n { code: 'MM', label: 'Myanmar', phone: '95' },\n { code: 'MN', label: 'Mongolia', phone: '976' },\n { code: 'MO', label: 'Macao', phone: '853' },\n { code: 'MP', label: 'Northern Mariana Islands', phone: '1-670' },\n { code: 'MQ', label: 'Martinique', phone: '596' },\n { code: 'MR', label: 'Mauritania', phone: '222' },\n { code: 'MS', label: 'Montserrat', phone: '1-664' },\n { code: 'MT', label: 'Malta', phone: '356' },\n { code: 'MU', label: 'Mauritius', phone: '230' },\n { code: 'MV', label: 'Maldives', phone: '960' },\n { code: 'MW', label: 'Malawi', phone: '265' },\n { code: 'MX', label: 'Mexico', phone: '52' },\n { code: 'MY', label: 'Malaysia', phone: '60' },\n { code: 'MZ', label: 'Mozambique', phone: '258' },\n { code: 'NA', label: 'Namibia', phone: '264' },\n { code: 'NC', label: 'New Caledonia', phone: '687' },\n { code: 'NE', label: 'Niger', phone: '227' },\n { code: 'NF', label: 'Norfolk Island', phone: '672' },\n { code: 'NG', label: 'Nigeria', phone: '234' },\n { code: 'NI', label: 'Nicaragua', phone: '505' },\n { code: 'NL', label: 'Netherlands', phone: '31' },\n { code: 'NO', label: 'Norway', phone: '47' },\n { code: 'NP', label: 'Nepal', phone: '977' },\n { code: 'NR', label: 'Nauru', phone: '674' },\n { code: 'NU', label: 'Niue', phone: '683' },\n { code: 'NZ', label: 'New Zealand', phone: '64' },\n { code: 'OM', label: 'Oman', phone: '968' },\n { code: 'PA', label: 'Panama', phone: '507' },\n { code: 'PE', label: 'Peru', phone: '51' },\n { code: 'PF', label: 'French Polynesia', phone: '689' },\n { code: 'PG', label: 'Papua New Guinea', phone: '675' },\n { code: 'PH', label: 'Philippines', phone: '63' },\n { code: 'PK', label: 'Pakistan', phone: '92' },\n { code: 'PL', label: 'Poland', phone: '48' },\n { code: 'PM', label: 'Saint Pierre and Miquelon', phone: '508' },\n { code: 'PN', label: 'Pitcairn', phone: '870' },\n { code: 'PR', label: 'Puerto Rico', phone: '1' },\n { code: 'PS', label: 'Palestine, State of', phone: '970' },\n { code: 'PT', label: 'Portugal', phone: '351' },\n { code: 'PW', label: 'Palau', phone: '680' },\n { code: 'PY', label: 'Paraguay', phone: '595' },\n { code: 'QA', label: 'Qatar', phone: '974' },\n { code: 'RE', label: 'Reunion', phone: '262' },\n { code: 'RO', label: 'Romania', phone: '40' },\n { code: 'RS', label: 'Serbia', phone: '381' },\n { code: 'RU', label: 'Russian Federation', phone: '7' },\n { code: 'RW', label: 'Rwanda', phone: '250' },\n { code: 'SA', label: 'Saudi Arabia', phone: '966' },\n { code: 'SB', label: 'Solomon Islands', phone: '677' },\n { code: 'SC', label: 'Seychelles', phone: '248' },\n { code: 'SD', label: 'Sudan', phone: '249' },\n { code: 'SE', label: 'Sweden', phone: '46' },\n { code: 'SG', label: 'Singapore', phone: '65' },\n { code: 'SH', label: 'Saint Helena', phone: '290' },\n { code: 'SI', label: 'Slovenia', phone: '386' },\n { code: 'SJ', label: 'Svalbard and Jan Mayen', phone: '47' },\n { code: 'SK', label: 'Slovakia', phone: '421' },\n { code: 'SL', label: 'Sierra Leone', phone: '232' },\n { code: 'SM', label: 'San Marino', phone: '378' },\n { code: 'SN', label: 'Senegal', phone: '221' },\n { code: 'SO', label: 'Somalia', phone: '252' },\n { code: 'SR', label: 'Suriname', phone: '597' },\n { code: 'SS', label: 'South Sudan', phone: '211' },\n { code: 'ST', label: 'Sao Tome and Principe', phone: '239' },\n { code: 'SV', label: 'El Salvador', phone: '503' },\n { code: 'SX', label: 'Sint Maarten (Dutch part)', phone: '1-721' },\n { code: 'SY', label: 'Syrian Arab Republic', phone: '963' },\n { code: 'SZ', label: 'Swaziland', phone: '268' },\n { code: 'TC', label: 'Turks and Caicos Islands', phone: '1-649' },\n { code: 'TD', label: 'Chad', phone: '235' },\n { code: 'TF', label: 'French Southern Territories', phone: '262' },\n { code: 'TG', label: 'Togo', phone: '228' },\n { code: 'TH', label: 'Thailand', phone: '66' },\n { code: 'TJ', label: 'Tajikistan', phone: '992' },\n { code: 'TK', label: 'Tokelau', phone: '690' },\n { code: 'TL', label: 'Timor-Leste', phone: '670' },\n { code: 'TM', label: 'Turkmenistan', phone: '993' },\n { code: 'TN', label: 'Tunisia', phone: '216' },\n { code: 'TO', label: 'Tonga', phone: '676' },\n { code: 'TR', label: 'Turkey', phone: '90' },\n { code: 'TT', label: 'Trinidad and Tobago', phone: '1-868' },\n { code: 'TV', label: 'Tuvalu', phone: '688' },\n { code: 'TW', label: 'Taiwan, Province of China', phone: '886' },\n { code: 'TZ', label: 'United Republic of Tanzania', phone: '255' },\n { code: 'UA', label: 'Ukraine', phone: '380' },\n { code: 'UG', label: 'Uganda', phone: '256' },\n { code: 'US', label: 'United States', phone: '1', suggested: true },\n { code: 'UY', label: 'Uruguay', phone: '598' },\n { code: 'UZ', label: 'Uzbekistan', phone: '998' },\n { code: 'VA', label: 'Holy See (Vatican City State)', phone: '379' },\n { code: 'VC', label: 'Saint Vincent and the Grenadines', phone: '1-784' },\n { code: 'VE', label: 'Venezuela', phone: '58' },\n { code: 'VG', label: 'British Virgin Islands', phone: '1-284' },\n { code: 'VI', label: 'US Virgin Islands', phone: '1-340' },\n { code: 'VN', label: 'Vietnam', phone: '84' },\n { code: 'VU', label: 'Vanuatu', phone: '678' },\n { code: 'WF', label: 'Wallis and Futuna', phone: '681' },\n { code: 'WS', label: 'Samoa', phone: '685' },\n { code: 'XK', label: 'Kosovo', phone: '383' },\n { code: 'YE', label: 'Yemen', phone: '967' },\n { code: 'YT', label: 'Mayotte', phone: '262' },\n { code: 'ZA', label: 'South Africa', phone: '27' },\n { code: 'ZM', label: 'Zambia', phone: '260' },\n { code: 'ZW', label: 'Zimbabwe', phone: '263' },\n];\n\nCountrySelect.propTypes = {\n label: PropTypes.string,\n placeholder: PropTypes.string,\n country: PropTypes.string,\n countryCode: PropTypes.string,\n changeCountry: PropTypes.func,\n error: PropTypes.bool,\n disabled: PropTypes.bool,\n helperText: PropTypes.oneOfType([PropTypes.any, PropTypes.string]),\n};\n\nexport default CountrySelect;\n","export enum SNACKBAR_VARIANT {\n SUCCESS = 'success',\n ERROR = 'error',\n INFO = 'info',\n}\n\nexport enum API_MODULE {\n DocumentDslService = 'document-dsl-service',\n DocumentService = 'document-service',\n DocumentIndexingService = 'document-indexing-service',\n IdentityService = 'identity-service',\n BillingService = 'billing-service',\n AvatarService = 'avatar-service',\n BlockchainExplorer = 'blockchain-explorer',\n CommunicationsModule = 'communications-module',\n FilesModule = 'files-module',\n}\n","/* eslint-disable prefer-promise-reject-errors */\n/* eslint-disable no-nested-ternary */\nexport const parseError = (error) => {\n const hasErrorData = Object.prototype.hasOwnProperty.call(error.response.data, 'errors');\n return Promise.reject(\n hasErrorData\n ? {\n code: error.response.data.errors[0].code.toString(),\n message: error.response.data.errors[0].message,\n data: error.response.data.errors[0].data,\n }\n : `${error.response.status}: ${error.response.statusText}`\n );\n};\n","/* eslint-disable import/no-cycle */\nimport axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst authService = {\n getUserProfile,\n getApiKeys,\n getPermissions,\n createNewApiKey,\n deleteApiKey,\n patchUserName,\n patchPassword,\n patchEmail,\n postEmail,\n patchPhoneNumber,\n postPhoneNumber,\n validatePermissions,\n deleteToken,\n patchUserLanguage,\n deleteUserAccount,\n};\n\nfunction getUserProfile() {\n return axios\n .get('rest/auth/profile')\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getPermissions() {\n return axios\n .get('rest/auth/profile/permissions')\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getApiKeys() {\n const queryObj = {\n page: 0,\n limit: 20,\n };\n const query = encodeURIComponent(JSON.stringify(queryObj));\n return axios\n .get(`rest/auth/api-keys?query=${query}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction deleteApiKey(publicKey) {\n return axios\n .delete(`rest/auth/api-keys/${publicKey}`, {\n withPermissions: ['AUTH_USER_DELETE_API_KEYS'],\n withTwoFactor: true,\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction createNewApiKey({ permissions, name }) {\n return axios\n .post(\n '/rest/auth/api-keys',\n { permissions, name },\n { withPermissions: ['AUTH_USER_POST_API_KEYS'], withTwoFactor: true }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction patchUserName(updatedUserName) {\n return axios\n .patch(\n 'rest/auth/profile/user-name',\n { userName: updatedUserName },\n { withPermissions: ['AUTH_USER_PATCH_USER_NAME'], withTwoFactor: true }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction patchPassword(oldPassword, newPassword) {\n return axios\n .patch(\n 'rest/auth/profile/password',\n { oldPassword, newPassword },\n { withPermissions: ['AUTH_USER_PATCH_PASSWORD'], withTwoFactor: true }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction patchEmail(updatedEmail) {\n return axios\n .patch(\n 'rest/auth/profile/email',\n { email: updatedEmail },\n { withPermissions: ['AUTH_USER_PATCH_EMAIL'], withTwoFactor: true }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction postEmail(confirmationCode) {\n return axios\n .post('/rest/auth/profile/email/confirm', null, {\n withPermissions: ['AUTH_USER_POST_EMAIL_CONFIRM'],\n headers: { 'Two-Factor-Code': confirmationCode },\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction patchPhoneNumber(updatedPhone) {\n return axios\n .patch(\n 'rest/auth/profile/phone',\n { ...updatedPhone },\n { withPermissions: ['AUTH_USER_PATCH_PHONE'], withTwoFactor: true }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction postPhoneNumber(confirmationCode) {\n return axios\n .post('/rest/auth/profile/phone/confirm', null, {\n withPermissions: ['AUTH_USER_POST_PHONE_CONFIRM'],\n headers: { 'Two-Factor-Code': confirmationCode },\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction validatePermissions(permissions = []) {\n return axios\n .post(`/rest/auth/token/validation`, { permissions })\n .then((response) => response)\n .catch((error) => {\n localStorage.removeItem('subscriptionAlert');\n return parseError(error);\n });\n}\n\nfunction deleteToken() {\n return axios\n .delete('/rest/auth/token', null, {\n withPermissions: ['AUTH_USER_DELETE_TOKEN'],\n })\n .then((response) => {\n localStorage.removeItem('subscriptionAlert');\n return response;\n })\n .catch((error) => parseError(error));\n}\n\nfunction patchUserLanguage(newLanguage) {\n return axios\n .patch(\n `/rest/auth/profile/language`,\n { language: newLanguage.toUpperCase() },\n {\n withPermissions: ['AUTH_USER_PATCH_LANGUAGE'],\n }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction deleteUserAccount() {\n return axios\n .delete('rest/auth/profile', {\n withPermissions: ['AUTH_USER_DELETE_PROFILE'],\n withTwoFactor: true,\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nexport default authService;\n","import snackbarConstants from '../constants/snackbar.constants';\n\nconst snackbarActions = {\n enqueueSnackbar,\n closeSnackbar,\n removeSnackbar,\n};\n\nfunction enqueueSnackbar(variant, title, message, params) {\n return (dispatch) => {\n dispatch({\n type: snackbarConstants.ENQUEUE_SNACKBAR,\n notification: { message: JSON.stringify({ variant, title, message, params }) },\n key: new Date().getTime() + Math.random(),\n });\n };\n}\n\nfunction closeSnackbar(key) {\n return (dispatch) => {\n dispatch({\n type: snackbarConstants.CLOSE_SNACKBAR,\n dismissAll: !key, // dismiss all if no key has been defined\n key,\n });\n };\n}\n\nfunction removeSnackbar(key) {\n return (dispatch) => {\n dispatch({ type: snackbarConstants.REMOVE_SNACKBAR, key });\n };\n}\n\nexport default snackbarActions;\n","export enum ErrorCode {\n IDENTITY_NOT_READY = 'IDENTITY_NOT_READY', // identity is not ready, not created by backend yet\n TOO_MANY_REQUESTS = 'TOO_MANY_REQUESTS', // too many requests in a short period of time\n NON_EMPTY_WORKSPACE_ONLY_OWNER = 'NON_EMPTY_WORKSPACE_ONLY_OWNER', // workspace owner can't be empty, occurs when user is the only one admin\n CONFLICT = 'CONFLICT', // subscription customer already exists\n}\n\nexport type ErrorResponse = {\n code: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: any;\n message: string;\n};\n","/* eslint-disable import/no-cycle */\nimport i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport identityConstants from 'src/redux/constants/identity.constants';\nimport authConstants from 'src/redux/constants/auth.constants';\nimport authService from 'src/redux/services/auth.service';\nimport { switchLanguageInBrowser } from 'src/helpers/globalUtils';\nimport snackbarActions from './snackbar.actions';\nimport { ErrorCode } from '../../models/errors.model';\n\nconst getUserProfile = () => (dispatch) => {\n dispatch({ type: authConstants.GET_USER_PROFILE_REQUEST });\n authService\n .getUserProfile()\n .then((response) => {\n if (response) {\n // set chat bot user data\n if (window.UE) {\n window.UE.pageHit({\n apiKey: 'w8jwni',\n email: response.data.email,\n user_id: response.data.userId,\n });\n }\n switchLanguageInBrowser(response.data.language.toUpperCase());\n dispatch({ type: authConstants.GET_USER_PROFILE_SUCCESS, response });\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.GET_USER_PROFILE_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst getPermissions = () => (dispatch) => {\n dispatch({ type: authConstants.GET_PERMISSIONS_REQUEST });\n authService\n .getPermissions()\n .then((response) => {\n dispatch({ type: authConstants.GET_PERMISSIONS_SUCCESS, payload: response.data });\n })\n .catch((error) => {\n dispatch({ type: authConstants.GET_PERMISSIONS_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst getApiKeys = () => (dispatch) => {\n dispatch({ type: authConstants.GET_API_KEYS_REQUEST });\n authService\n .getApiKeys()\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.GET_API_KEYS_SUCCESS, payload: response.data.collection });\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.GET_API_KEYS_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst createNewApiKey = ({ permissions, name }) => (dispatch) => {\n dispatch({ type: authConstants.CREATE_API_KEY_REQUEST });\n authService\n .createNewApiKey({ permissions, name })\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.CREATE_API_KEY_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.CREATE_API_KEY_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst deleteApiKey = (publicKey) => (dispatch) => {\n dispatch({ type: authConstants.DELETE_API_KEY_REQUEST });\n authService\n .deleteApiKey(publicKey)\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.DELETE_API_KEY_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.DELETE_API_KEY_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst updateUsername = (updatedUsername) => (dispatch) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_USERNAME_REQUEST });\n authService\n .patchUserName(updatedUsername)\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_USERNAME_SUCCESS, updatedUsername });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_USERNAME_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst updatePassword = (passwords) => (dispatch) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_PASSWORD_REQUEST });\n authService\n .patchPassword(passwords.oldPassword, passwords.newPassword)\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_PASSWORD_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_PASSWORD_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst updateEmail = (updatedEmail) => (dispatch) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_EMAIL_REQUEST });\n authService\n .patchEmail(updatedEmail)\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_EMAIL_SUCCESS, updatedEmail });\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_EMAIL_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst confirmEmail = (confirmationCode) => (dispatch) => {\n dispatch({ type: authConstants.POST_USER_PROFILE_EMAIL_REQUEST });\n authService\n .postEmail(confirmationCode)\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.POST_USER_PROFILE_EMAIL_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.POST_USER_PROFILE_EMAIL_ERROR, error });\n if (error.code !== 'CODE_VERIFICATION_FAILED') {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n `${i18n.t('snackbars.common.errorTitle')}`,\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n }\n });\n};\n\nconst updatePhoneNumber = (updatedPhoneNumber) => (dispatch) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_PHONE_REQUEST });\n authService\n .patchPhoneNumber(updatedPhoneNumber)\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_PHONE_SUCCESS, updatedPhoneNumber });\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_PHONE_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst confirmPhoneNumber = (confirmationCode) => (dispatch) => {\n dispatch({ type: authConstants.POST_USER_PROFILE_PHONE_REQUEST });\n authService\n .postPhoneNumber(confirmationCode)\n .then((response) => {\n if (response) {\n dispatch({ type: authConstants.POST_USER_PROFILE_PHONE_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: authConstants.POST_USER_PROFILE_PHONE_ERROR, error });\n if (error.code !== 'CODE_VERIFICATION_FAILED') {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n }\n });\n};\n\nconst checkTokenStatus = (permissions = []) => (dispatch) => {\n dispatch({ type: authConstants.CHECK_TOKEN_STATUS_REQUEST });\n authService\n .validatePermissions(permissions)\n .then(() => {\n dispatch({ type: authConstants.CHECK_TOKEN_STATUS_SUCCESS });\n })\n .catch((error) => {\n dispatch({ type: authConstants.CHECK_TOKEN_STATUS_FAILURE, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('snackbars.common.error') + error\n )\n );\n });\n};\n\nconst deleteTokenDefaultCallback = () => {\n window.location.href = process.env.REACT_APP_AUTH_FRONT_URL;\n};\n\nconst deleteToken = (callback = deleteTokenDefaultCallback) => (dispatch) => {\n dispatch({ type: authConstants.DELETE_TOKEN_USER_REQUEST });\n authService\n .deleteToken()\n .then(() => {\n dispatch({ type: authConstants.DELETE_TOKEN_USER_SUCCESS });\n callback();\n })\n .catch((error) => {\n dispatch({ type: authConstants.DELETE_TOKEN_USER_FAILURE, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('snackbars.common.error') + error\n )\n );\n });\n};\n\nconst patchLanguage = (newLanguage) => (dispatch) => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_LANGUAGE_REQUEST });\n authService\n .patchUserLanguage(newLanguage)\n .then(() => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_LANGUAGE_SUCCESS, newLanguage });\n })\n .catch(() => {\n dispatch({ type: authConstants.PATCH_USER_PROFILE_LANGUAGE_FAILURE });\n });\n};\n\nconst deleteAccount = (errorCallback) => (dispatch) => {\n dispatch({ type: authConstants.DELETE_USER_ACCOUNT_REQUEST });\n authService\n .deleteUserAccount()\n .then(() => {\n dispatch({ type: authConstants.DELETE_USER_ACCOUNT_SUCCESS });\n const delPath = i18n.translator.translate('urls.accountDeleted');\n window.location.href = `${process.env.REACT_APP_AUTH_FRONT_URL}${delPath}`;\n })\n .catch((error) => {\n if (error?.code === ErrorCode.NON_EMPTY_WORKSPACE_ONLY_OWNER) {\n dispatch({\n type: identityConstants.UPDATE_NON_EMPTY_WORKSPACE_ONLY_OWNER,\n payload: error?.data?.workspaceIds,\n });\n errorCallback();\n }\n dispatch({ type: authConstants.DELETE_USER_ACCOUNT_FAILURE });\n });\n};\n\nconst authActions = {\n getApiKeys,\n getPermissions,\n createNewApiKey,\n deleteApiKey,\n checkTokenStatus,\n confirmEmail,\n confirmPhoneNumber,\n deleteAccount,\n deleteToken,\n getUserProfile,\n patchLanguage,\n updateEmail,\n updatePassword,\n updatePhoneNumber,\n updateUsername,\n};\n\nexport default authActions;\n","/* eslint-disable import/no-cycle */\nimport axios from 'axios';\nimport authActions from 'src/redux/actions/auth.actions';\nimport store from 'src/redux/store';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport cookieHelper from './cookieHelper';\nimport i18n from './i18n';\n\nconst { dispatch } = store;\n\nconst instance = axios.create({\n baseURL: process.env.REACT_APP_BASE_URL,\n withCredentials: true,\n});\n\nconst isTwoFactorError = (errors, config, errorCode) => {\n let is2FAError = false;\n let isForbidden = false;\n let isMaintenance = false;\n if (errors) {\n errors.forEach((error) => {\n if (error.code === 'TWO_FA_REQUIRED') {\n is2FAError = '2FA_REQUIRED';\n }\n if (error.code === 'FORBIDDEN') {\n isForbidden = true;\n }\n if (error.code === 'UNDER_MAINTENANCE_ERROR') {\n isMaintenance = true;\n }\n });\n }\n\n if (config.twoFactorSigned && errorCode === 403 && isForbidden) {\n is2FAError = '2FA_CODE_ERROR';\n }\n\n if (isMaintenance) {\n const mntPath = i18n.translator.translate('urls.maintenance');\n window.location.href = `${process.env.REACT_APP_AUTH_FRONT_URL}/${mntPath}`;\n }\n return is2FAError;\n};\n\nconst prepare2FAPromise = (config) =>\n new Promise((resolve, reject) => {\n /*\n * prepare callbacks to resolve configs\n * callbacks will be stored in App.js\n * */\n const successCallback = (response) => {\n /*\n * We got code from user, lets try it\n * */\n const newConfig = {\n ...config,\n headers: {\n ...config.headers,\n 'Two-Factor-Code': response.twoFactorCode,\n 'Two-Factor-Token': response.twoFactorToken,\n },\n twoFactorSigned: true,\n };\n resolve(newConfig);\n };\n const errorCallback = (response) => {\n /*\n * For some reason 2FA flow has been interrupted, pass default configs\n * */\n if (response) {\n reject(response);\n }\n reject(config);\n instance.closeTwoFactor();\n };\n /*\n * call callback from App.js to initialize 2FA modal and pass data to store\n * */\n instance.onTwoFactorCallback(\n config, // original request config\n successCallback, // callback when 2FA is resolved successfully\n errorCallback, // callback when user failed to authorize request with 2FA\n 'initial',\n '2FA_REQUIRED'\n );\n });\n\ninstance.interceptors.request.use((config) => {\n const identityValue = cookieHelper.getCookie('activeIdentity');\n const newConfig = {\n ...config,\n withCredentials: true,\n };\n if (identityValue) {\n newConfig.headers['X-Identity-Id'] = identityValue;\n }\n\n /*\n * TODO: Remove when token passing to document-indexing-service is fixed\n * */\n\n if (newConfig.withTwoFactor && newConfig.withPermissions.length > 0) {\n return prepare2FAPromise(newConfig);\n }\n return newConfig;\n});\n\ninstance.interceptors.response.use(\n (response) => {\n if (response.config.twoFactorSigned) {\n instance.closeTwoFactor();\n }\n return response;\n },\n (error) => {\n /*\n * Check if failed request failed due to 2FA\n * */\n const is2faError = isTwoFactorError(\n error.response.data?.errors,\n error.config,\n error?.response?.status\n );\n\n if (is2faError) {\n /*\n * create proxy promise\n * */\n return new Promise((resolve, reject) => {\n /*\n * prepare callbacks to resolve this promise\n * callbacks will be stored in App.js\n * */\n const successCallback = (response) => {\n resolve(response);\n instance.closeTwoFactor();\n };\n const errorCallback = (errorResponse) => {\n reject(errorResponse);\n instance.closeTwoFactor();\n };\n /*\n * call callback from App.js to initialize 2FA modal and pass data to store\n * */\n instance.onTwoFactorCallback(\n error.config, // original request config\n successCallback, // callback when 2FA is resolved successfully\n errorCallback, // callback when user failed to authorize request with 2FA\n 'repeat',\n is2faError\n );\n });\n }\n if (error.response.status === 401 || error.response.status === 403) {\n if (store.getState().authStore.tokenStatus !== RequestStatus.PENDING) {\n dispatch(authActions.checkTokenStatus(['AUTH_USER_GET_PROFILE']));\n }\n }\n\n /*\n * Request failed because of other reasons than 2FA, pass error normally\n * */\n return Promise.reject(error);\n }\n);\n\nexport default instance;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nexport const moduleName = 'identity-service';\n\nconst identityService = {\n getWorkspaceStructure,\n fetchWorkspaceInfo,\n updateWorkspaceInfo,\n updateWorkspaceDetails,\n\n getWorkspaceGroupUsers,\n getWorkspaceInvitedUsers,\n searchWorkspaceGroupUsers,\n getUserStructure,\n createWorkspace,\n inviteUserToWorkspace,\n deleteUserFromWorkspace,\n deleteUserInvitationFromWorkspace,\n sendTransaction,\n\n fetchWorkspaceGroups,\n searchWorkspaceGroups,\n createWorkspaceGroup,\n deleteWorkspaceGroup,\n updateWorkspaceGroup,\n addMembersToWorkspaceGroup,\n deleteMembersFromWorkspaceGroup,\n fetchWorkspaceGroup,\n fetchWorkspaceGroupMembers,\n fetchWorkspaceEntities,\n\n switchContactEmail,\n\n getWorkspacePermissions,\n};\n\nfunction getWorkspaceStructure(workspaceId) {\n return axios\n .get(`/rest/${moduleName}/structure/workspaces/${workspaceId}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_WORKSPACE_STRUCTURE'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction fetchWorkspaceInfo(workspaceId) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/info`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction updateWorkspaceInfo(workspaceId, newData) {\n return axios\n .put(`/rest/${moduleName}/workspaces/${workspaceId}/info`, newData)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction updateWorkspaceDetails(workspaceId, newWorkspaceDetails) {\n return axios\n .put(`/rest/${moduleName}/workspaces/${workspaceId}`, newWorkspaceDetails)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getWorkspaceGroupUsers(groupId, page = 0, limit = 10, value = '') {\n const queryObj = {\n page,\n limit,\n memberIdentifier: value,\n sortBy: [{ name: 'name', order: 'ASC' }],\n };\n const query = encodeURIComponent(JSON.stringify(queryObj));\n return axios\n .get(`/rest/${moduleName}/structure/groups/${groupId}/members?query=${query}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_GROUP_MEMBERS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getWorkspaceInvitedUsers(workspaceId) {\n return axios\n .get(`/rest/${moduleName}/invitations/${workspaceId}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction searchWorkspaceGroupUsers(groupId, page = 0, limit = 50, value = '') {\n const queryObj = { page, limit, memberIdentifier: value };\n const query = encodeURIComponent(JSON.stringify(queryObj));\n return axios\n .get(`/rest/${moduleName}/structure/groups/${groupId}/members?query=${query}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_GROUP_MEMBERS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getUserStructure() {\n return axios\n .get(`/rest/${moduleName}/structure`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_USER_STRUCTURE'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction createWorkspace(newWorkspaceData) {\n return axios\n .post(`/rest/${moduleName}/workspaces`, newWorkspaceData, {\n withPermissions: ['IDENTITY_SERVICE_USER_POST_WORKSPACES'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction inviteUserToWorkspace(workspaceId, usersData) {\n const data = {\n emails: usersData,\n };\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/invite`, data, {\n withPermissions: ['IDENTITY_SERVICE_USER_POST_INVITATIONS'],\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction deleteUserInvitationFromWorkspace(workspaceId, email) {\n return axios\n .delete(`/rest/${moduleName}/invitations/${workspaceId}`, {\n data: {\n email,\n },\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction deleteUserFromWorkspace(workspaceId, identityId) {\n return axios\n .delete(`/rest/${moduleName}/workspaces/${workspaceId}/members/${identityId}`)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction sendTransaction(txn) {\n const data = {\n incompleteTransaction: `${txn}`,\n };\n return axios\n .post(`/rest/${moduleName}/transactions`, data, {\n withPermissions: ['IDENTITY_SERVICE_USER_POST_TRANSACTIONS'],\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction fetchWorkspaceGroups(\n workspaceId,\n force = false,\n page = 0,\n limit = 50,\n groupName = '',\n active = true\n) {\n const query = force\n ? ''\n : `?query=${encodeURIComponent(\n JSON.stringify({ page, limit, groupName, active, sortBy: [{ name: 'name', order: 'ASC' }] })\n )}`;\n return axios\n .get(`/rest/${moduleName}/structure/workspaces/${workspaceId}/groups${query}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_WORKSPACE_GROUPS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction searchWorkspaceGroups(workspaceId, page, limit, groupName = '', active = true) {\n const query = encodeURIComponent(\n JSON.stringify({ page, limit, groupName, active, sortBy: [{ name: 'name', order: 'ASC' }] })\n );\n return axios\n .get(`/rest/${moduleName}/structure/workspaces/${workspaceId}/groups?query=${query}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_WORKSPACE_GROUPS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction createWorkspaceGroup(workspaceId, newWorkspaceGroupData) {\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/groups`, newWorkspaceGroupData, {\n withPermissions: ['IDENTITY_SERVICE_USER_POST_GROUPS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction deleteWorkspaceGroup(groupId) {\n return axios\n .delete(`/rest/${moduleName}/groups/${groupId}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_DELETE_GROUPS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction updateWorkspaceGroup(groupId, newWorkspaceGroupData) {\n return axios\n .put(`/rest/${moduleName}/groups/${groupId}`, newWorkspaceGroupData, {\n withPermissions: ['IDENTITY_SERVICE_USER_PUT_GROUPS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction addMembersToWorkspaceGroup(groupId, identityIds) {\n return axios\n .post(\n `/rest/${moduleName}/groups/${groupId}/members`,\n { identityIds },\n {\n withPermissions: ['IDENTITY_SERVICE_USER_POST_GROUP_MEMBERSHIP'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction deleteMembersFromWorkspaceGroup(groupId, identityIds) {\n return axios\n .delete(`/rest/${moduleName}/groups/${groupId}/members`, {\n data: {\n identityIds,\n },\n withPermissions: ['IDENTITY_SERVICE_USER_DELETE_GROUP_MEMBERSHIP'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction fetchWorkspaceGroup(groupId) {\n return axios\n .get(`/rest/${moduleName}/groups/${groupId}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_GROUPS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction fetchWorkspaceGroupMembers(\n groupId,\n page = 0,\n limit = 100,\n memberIdentifier = '',\n active = true\n) {\n const query = encodeURIComponent(JSON.stringify({ page, limit, memberIdentifier, active }));\n\n return axios\n .get(`/rest/${moduleName}/structure/groups/${groupId}/members?query=${query}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_GROUP_MEMBERS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction fetchWorkspaceEntities(\n workspaceId,\n entityName,\n limit = 20,\n page = 0,\n sortBy = [{ name: 'entityName', order: 'ASC' }],\n workspaceName = '',\n entityTypes = ['IDENTITY', 'GROUP', 'CONTACT_BOOK_IDENTITY', 'CONTACT_BOOK_GROUP'],\n active = true\n) {\n const query = encodeURIComponent(\n JSON.stringify({ entityName, active, limit, page, sortBy, workspaceName, entityTypes })\n );\n\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/entities?query=${query}`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_WORKSPACE_ENTITIES'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction switchContactEmail() {\n return axios\n .put(`/rest/${moduleName}/identities/contact-email/switch`, null, {\n withPermissions: ['IDENTITY_SERVICE_USER_PUT_SWITCH_CONTACT_EMAIL'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getWorkspacePermissions(workspaceId) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/permissions`, {\n withPermissions: ['IDENTITY_SERVICE_USER_GET_WORKSPACE_PERMISSIONS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nexport default identityService;\n","import axios from '../../helpers/axios';\nimport { parseError } from '../../helpers/parseErrors';\n\nexport const moduleName = 'identity-service';\n\nconst contactsService = {\n getEntities,\n};\n\nfunction getEntities(workspaceId, entityIds) {\n return axios\n .post(\n `/rest/${moduleName}/workspaces/${workspaceId}/contact-book`,\n {\n entityIds,\n },\n {\n withPermissions: ['IDENTITY_SERVICE_USER_POST_CONTACT_BOOK'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nexport default contactsService;\n","import contactsConstants from '../constants/contacts.constants';\nimport contactsService from '../services/contacts.service';\n\nconst contactsActions = { initializeContacts, addMissingToQueue, getEntities };\n\nfunction getEntities(workspaceId, entitiesIds) {\n return (dispatch) => {\n dispatch({ type: contactsConstants.CONTACTS_FETCH_ENTITIES_REQUEST, ids: entitiesIds });\n contactsService\n .getEntities(workspaceId, entitiesIds)\n .then((response) => {\n const parsedContacts = {};\n const parsedGroups = {};\n response?.data?.identities?.forEach((contactInfo) => {\n parsedContacts[contactInfo.identityId] = contactInfo;\n });\n response?.data?.groups?.forEach((contactInfo) => {\n parsedGroups[contactInfo.groupId] = contactInfo;\n });\n dispatch({\n type: contactsConstants.CONTACTS_FETCH_ENTITIES_SUCCESS,\n workspaceId,\n contacts: parsedContacts,\n groups: parsedGroups,\n initialIds: entitiesIds,\n });\n })\n .catch(() => {\n dispatch({ type: contactsConstants.CONTACTS_FETCH_ENTITIES_FAILURE });\n });\n };\n}\n\nfunction initializeContacts() {\n return { type: contactsConstants.INITIALIZE_CONTACTS };\n}\n\nfunction addMissingToQueue(ids) {\n return { type: contactsConstants.CONTACTS_ADD_TO_QUEUE, ids };\n}\n\nexport default contactsActions;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst moduleName = 'document-dsl-service';\n\nfunction checkCreatedFileIds(documentIds) {\n return axios\n .get(`/rest/${moduleName}/documents/file-ids?documentIds=${documentIds}`)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction fetchWorkspaceWorkflows(workspaceId) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/workflows`)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction fetchTemplateList(workspaceId) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/templates`)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction fetchTemplateListThumbnailToken({ workspaceId, templateId, templateThumbnailId }) {\n return axios\n .get(\n `/rest/${moduleName}/workspaces/${workspaceId}/templates/${templateId}/previews/${templateThumbnailId}`\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction fetchTemplateDetails({ workspaceId, templateId }) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/templates/${templateId}`)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction createCertificate({ workspaceId, templateId, certificateList }) {\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/templates/${templateId}`, {\n certificatesData: certificateList,\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\nfunction sendCertificateDocuments({ workspaceId, body, folderId }) {\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents?folderId=${folderId}`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction updateCertificateRoles({\n workspaceId,\n documentIds,\n admins = [],\n editors = [],\n viewers = [],\n}) {\n const body = {\n mutationName: 'modify_role',\n documentMutations: documentIds.map((documentId) => ({\n documentId,\n txnAttributes: {\n roles: {\n admins,\n editors,\n viewers,\n },\n },\n })),\n };\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction signCertificate({ workspaceId, documentId }) {\n const body = {\n mutationName: 'sign',\n documentMutations: [\n {\n documentId,\n },\n ],\n };\n\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction updateCertificateSigner({ workspaceId, documentIds, signers = [], isOrderSignificant }) {\n const body = {\n mutationName: 'modify_signers',\n documentMutations: documentIds.map((documentId) => ({\n documentId,\n txnAttributes: {\n signers,\n ordered: isOrderSignificant,\n },\n })),\n };\n\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction rejectCertificate({ workspaceId, documentId, reason }) {\n const body = {\n mutationName: 'reject_document',\n documentMutations: [\n {\n documentId,\n txnAttributes: {\n reason,\n },\n },\n ],\n };\n\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction invalidateCertificate({ workspaceId, documentId, reason }) {\n const body = {\n mutationName: 'invalidate_document',\n documentMutations: [\n {\n documentId,\n txnAttributes: {\n reason,\n },\n },\n ],\n };\n\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction invalidateTemporarilyCertificate({ workspaceId, documentId, reason }) {\n const body = {\n mutationName: 'invalidate_temporarily_document',\n documentMutations: [\n {\n documentId,\n txnAttributes: {\n reason,\n },\n },\n ],\n };\n\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction validateCertificate({ workspaceId, documentId, reason }) {\n const body = {\n mutationName: 'validate_document',\n documentMutations: [\n {\n documentId,\n txnAttributes: {\n reason,\n },\n },\n ],\n };\n\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction setTransferabilityCertificate({ workspaceId, documentId, transferable }) {\n const body = {\n mutationName: 'set_transferability',\n documentMutations: [\n {\n documentId,\n txnAttributes: {\n transferable,\n },\n },\n ],\n };\n\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents-mutation`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction setCertificateAccessLevel({ documentId, isPublic }) {\n const body = {\n documentsAccess: [\n {\n documentId,\n publicAccess: isPublic,\n },\n ],\n };\n\n return axios\n .post(`/rest/${moduleName}/documents/access-level`, body)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction checkAvailableMutations(documentId, service = moduleName) {\n return axios\n .get(`/rest/${service}/mutation/${documentId}`)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction inviteRoleByMail(documentId, role, email) {\n return axios\n .post(\n `/rest/${moduleName}/documents/${documentId}/roles/${role}/invite`,\n { emails: [email] },\n { withPermissions: ['DOCUMENT_SERVICE_USER_POST_DOCUMENT_INVITE'] }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction inviteMultipleByRole(collection) {\n return axios\n .post(`/rest/${moduleName}/invitations/invite`, { collection })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction generateHolderInvitationToken(documentId) {\n return axios\n .post(`/rest/${moduleName}/documents/${documentId}/roles/holder/invitation-token`, {})\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction deleteRoleByMail(documentId, role, email) {\n return axios\n .delete(\n `/rest/${moduleName}/documents/${documentId}/roles/${role}/invitations?mail=${encodeURIComponent(\n JSON.stringify(email)\n )}`\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction transferOwnership(documentId, role, email) {\n return axios\n .post(\n `/rest/${moduleName}/invitations/invite`,\n {\n collection: [\n {\n email,\n role,\n documentId,\n },\n ],\n },\n { withPermissions: ['DOCUMENT_SERVICE_USER_POST_DOCUMENT_INVITE'] }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nconst MUTATION_NAMES = {\n MODIFY_ROLE: 'modify_role',\n CHANGE_HOLDER: 'change_holder',\n MODIFY_SIGNERS: 'modify_signers',\n SIGN: 'sign',\n REJECT_DOCUMENT: 'reject_document',\n INVALIDATE_DOCUMENT: 'invalidate_document',\n INVALIDATE_TEMPORARILY_DOCUMENT: 'invalidate_temporarily_document',\n VALIDATE_DOCUMENT: 'validate_document',\n SET_TRANSFERABILITY: 'set_transferability',\n};\n\nconst documentDSLServices = {\n checkAvailableMutations,\n checkCreatedFileIds,\n createCertificate,\n deleteRoleByMail,\n fetchTemplateDetails,\n fetchTemplateList,\n fetchTemplateListThumbnailToken,\n fetchWorkspaceWorkflows,\n invalidateCertificate,\n invalidateTemporarilyCertificate,\n inviteRoleByMail,\n rejectCertificate,\n sendCertificateDocuments,\n setCertificateAccessLevel,\n setTransferabilityCertificate,\n signCertificate,\n transferOwnership,\n updateCertificateRoles,\n updateCertificateSigner,\n inviteMultipleByRole,\n validateCertificate,\n generateHolderInvitationToken,\n};\n\nexport { documentDSLServices as default, MUTATION_NAMES, moduleName };\n","import { BillingProductType } from 'src/models/billing.model';\nimport { TemplateDocumentType } from '../../models/documents.model';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n userengage: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n UE: any;\n }\n}\n\nwindow.userengage = window.userengage || {};\nwindow.UE = window.UE || {};\n\nexport enum PhoneConfirmationStepType {\n Launched = '1_launched',\n Completed = '2_completed',\n}\nexport enum WorkspaceSelectedType {\n Team = 'team',\n Personal = 'personal',\n}\n\nexport enum WorkspaceDataChangedType {\n Logo = 'logo',\n Name = 'name',\n}\nexport enum DocumentType {\n ESign = 'esign',\n Drive = 'drive',\n Certificate = 'certificate',\n}\n\nexport enum DocumentNoDriveType {\n ESign = 'esign',\n Certificate = 'certificate',\n}\n\nexport enum SubscriptionChangeType {\n TrialExtension = 'trial_extension',\n PurchaseDuringTrial = 'purchase_during_trial',\n PurchaseAfterTrial = 'purchase_after_trial',\n Renewal = 'renewal',\n Cancellation = 'cancellation',\n NewPurchase = 'new_purchase',\n Upgrade = 'upgrade',\n}\n\nexport const templateTypeToDocumentType = (type: TemplateDocumentType): DocumentType => {\n switch (type) {\n case TemplateDocumentType.DOCUMENT_TO_BE_SIGNED:\n return DocumentType.ESign;\n case TemplateDocumentType.DURABLE_MEDIA:\n return DocumentType.Drive;\n case TemplateDocumentType.CERTIFICATES:\n default:\n return DocumentType.Certificate;\n }\n};\n\nconst openChat = (): void => window.userengage('widget.open');\n\nconst document = {\n docAdded: (type: DocumentType, number: number, workspaceId: string): void =>\n window.userengage('event.doc_added', {\n type,\n number,\n workspaceId,\n }),\n docSigned: (type: DocumentNoDriveType, workspaceId: string): void =>\n window.userengage('event.doc_signed', {\n type,\n workspaceId,\n }),\n docRejected: (type: DocumentNoDriveType, workspaceId: string): void =>\n window.userengage('event.doc_rejected', {\n type,\n workspaceId,\n }),\n docSignersUpdated: (type: DocumentNoDriveType, number: number, workspaceId: string): void =>\n window.userengage('event.doc_signers_updated', {\n type,\n number,\n workspaceId,\n }),\n docRecipientsUpdated: (type: DocumentType, workspaceId: string): void =>\n window.userengage('event.doc_recipients_updated', {\n type,\n workspaceId,\n }),\n docDownloaded: (type: DocumentType, workspaceId: string): void =>\n window.userengage('event.doc_downloaded', {\n type,\n workspaceId,\n }),\n docCardDownloaded: (type: DocumentType, workspaceId: string): void =>\n window.userengage('event.doc_card_downloaded', {\n type,\n workspaceId,\n }),\n};\n\nconst workspace = {\n dataMemberInvited: (number: number): void =>\n window.userengage('event.workspace_member_invited', {\n number,\n }),\n dataChanged: (type: WorkspaceDataChangedType): void =>\n window.userengage('event.workspace_data_changed', {\n type,\n }),\n typeSelected: (type: WorkspaceSelectedType, name: string): void =>\n window.userengage('event.workspace_type_selected', {\n type,\n name,\n }),\n};\n\nconst user = {\n submitRequest: (workspaceId: string): void =>\n window.userengage('event.user_submit_request', {\n workspaceId,\n }),\n userJoinedWorkspace: (activeSubscriptions: BillingProductType[], workspaceId: string): void =>\n window.userengage('event.user_joined_workspace', {\n active_subscriptions: activeSubscriptions,\n workspaceId,\n }),\n};\n\nconst subscription = {\n subTrialStarted: (productType: BillingProductType, workspaceId: string): void =>\n window.userengage('event.sub_trial_started', {\n product: productType,\n workspaceId,\n }),\n\n subChangesNeeded: (\n productType: BillingProductType,\n type: SubscriptionChangeType,\n workspaceId: string\n ): void =>\n window.userengage('event.sub_changes_needed', {\n product: productType,\n type,\n workspaceId,\n }),\n};\n\nexport const userComActions = {\n openChat,\n subscription,\n user,\n document,\n workspace,\n};\n","import { AxiosPromise } from 'axios';\nimport axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\nimport { API_MODULE } from 'src/models/common.model';\nimport { BillingProductType } from '../../models/billing.model';\n\ntype fetchSubscriptionsType = {\n workspaceId: string;\n};\nconst fetchSubscriptions = ({ workspaceId }: fetchSubscriptionsType): AxiosPromise =>\n axios\n .get(`/rest/${API_MODULE.BillingService}/workspaces/${workspaceId}/subscription`)\n .then((response) => response)\n .catch((error) => parseError(error));\n\ntype setTrialSubscriptionType = {\n workspaceId: string;\n product: BillingProductType;\n};\nconst setTrialSubscription = ({ workspaceId, product }: setTrialSubscriptionType): AxiosPromise =>\n axios\n .post(\n `/rest/${API_MODULE.BillingService}/workspaces/${workspaceId}/subscription/trial?product=${product}`\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n\ntype fetchCustomerType = {\n workspaceId: string;\n};\nconst fetchCustomer = ({ workspaceId }: fetchCustomerType): AxiosPromise =>\n axios\n .get(`/rest/${API_MODULE.BillingService}/workspaces/${workspaceId}/customer`)\n .then((response) => response)\n .catch((error) => parseError(error));\n\ntype setCustomerType = {\n workspaceId: string;\n workspaceName: string;\n};\n\nconst setCustomer = ({\n workspaceId,\n workspaceName,\n}: setCustomerType): AxiosPromise<{ name: string }> =>\n axios\n .post(`/rest/${API_MODULE.BillingService}/workspaces/${workspaceId}/customer`, {\n name: workspaceName,\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n\nconst billingService = { fetchSubscriptions, setTrialSubscription, fetchCustomer, setCustomer };\n\nexport default billingService;\n","import { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { AppDispatch } from 'src/redux/storeTs';\nimport i18n from 'src/helpers/i18n';\nimport billingConstants from 'src/redux/constants/billing.constants';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport billingService from '../services/billing.service';\nimport { BillingProductType } from '../../models/billing.model';\nimport { ErrorCode } from '../../models/errors.model';\n\n// TODO: implement action types\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst fetchSubscriptions = (workspaceId: string) => (dispatch: AppDispatch) => {\n dispatch({ type: billingConstants.FETCH_SUBSCRIPTIONS_REQUEST });\n billingService\n .fetchSubscriptions({ workspaceId })\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n dispatch({\n type: billingConstants.FETCH_SUBSCRIPTIONS_SUCCESS,\n payload: response.data.data.collection,\n });\n })\n .catch(() => {\n dispatch({ type: billingConstants.FETCH_SUBSCRIPTIONS_FAILURE });\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst setTrialSubscription = (workspaceId: string, product: BillingProductType) => (\n dispatch: AppDispatch\n) => {\n dispatch({ type: billingConstants.SET_TRIAL_SUBSCRIPTION_REQUEST });\n billingService\n .setTrialSubscription({ workspaceId, product })\n .then(() => {\n setTimeout(() => {\n dispatch({\n type: billingConstants.SET_TRIAL_SUBSCRIPTION_SUCCESS,\n });\n dispatch(billingActions.fetchSubscriptions(workspaceId));\n }, 1000);\n })\n .catch((error) => {\n dispatch({ type: billingConstants.SET_TRIAL_SUBSCRIPTION_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst fetchCustomer = (workspaceId: string) => (dispatch: AppDispatch) => {\n dispatch({ type: billingConstants.FETCH_CUSTOMER_REQUEST });\n billingService\n .fetchCustomer({ workspaceId })\n .then(() => {\n dispatch({\n type: billingConstants.FETCH_CUSTOMER_SUCCESS,\n });\n })\n .catch(() => {\n dispatch({ type: billingConstants.FETCH_CUSTOMER_FAILURE });\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst setCustomer = (workspaceId: string, workspaceName: string, callback: () => void) => (\n dispatch: AppDispatch\n) => {\n dispatch({ type: billingConstants.SET_CUSTOMER_REQUEST });\n billingService\n .setCustomer({ workspaceId, workspaceName })\n .then(() => {\n dispatch(billingActions.fetchCustomer(workspaceId));\n dispatch({\n type: billingConstants.SET_CUSTOMER_SUCCESS,\n });\n callback();\n })\n .catch((error) => {\n if (error.code === ErrorCode.CONFLICT) {\n callback();\n } else {\n dispatch({ type: billingConstants.SET_CUSTOMER_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n }\n });\n};\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst resetBilling = () => (dispatch: AppDispatch) =>\n dispatch({ type: billingConstants.RESET_BILLING });\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst resetSetTrialSubscription = () => (dispatch: AppDispatch) =>\n dispatch({ type: billingConstants.SET_TRIAL_SUBSCRIPTION_IDLE });\n\nconst billingActions = {\n fetchSubscriptions,\n setTrialSubscription,\n resetSetTrialSubscription,\n fetchCustomer,\n setCustomer,\n resetBilling,\n};\n\nexport default billingActions;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport identityConstants from '../constants/identity.constants';\nimport identityService from '../services/identity.service';\nimport snackbarActions from './snackbar.actions';\nimport cookieHelper from '../../helpers/cookieHelper';\nimport contactsActions from './contacts.actions';\nimport documentDSLServices from '../services/documentDSL.service';\nimport { ErrorCode } from '../../models/errors.model';\nimport { mapWorkspaceInvitedUserToWorkspaceUser } from '../../models/workspaceUser.model';\nimport billingActions from './billing.actions';\nimport { userComActions, WorkspaceDataChangedType } from './userCom.actions';\n\nfunction getUserStructure() {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_STRUCTURE_REQUEST });\n identityService\n .getUserStructure()\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_STRUCTURE_SUCCESS,\n structure: response?.data?.collection,\n });\n })\n .catch(() => {\n dispatch({ type: identityConstants.FETCH_STRUCTURE_FAILURE });\n });\n };\n}\n\nfunction getWorkspaceStructure(workspaceId) {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_STRUCTURE_REQUEST });\n identityService\n .getWorkspaceStructure(workspaceId)\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_STRUCTURE_SUCCESS,\n groups: response.data.groups,\n info: response.data.info,\n });\n })\n .catch(() => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_STRUCTURE_FAILURE });\n });\n };\n}\n\nfunction fetchWorkspaceInfo(workspaceId) {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_INFO_REQUEST });\n identityService\n .fetchWorkspaceInfo(workspaceId)\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_INFO_SUCCESS,\n workspaceInfo: response.data,\n });\n })\n .catch(() => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_INFO_FAILURE });\n });\n };\n}\n\nfunction updateWorkspaceInfo(workspaceId, newData) {\n return (dispatch) => {\n dispatch({ type: identityConstants.UPDATE_WORKSPACE_INFO_REQUEST });\n identityService\n .updateWorkspaceInfo(workspaceId, newData)\n .then(() => {\n dispatch({ type: identityConstants.UPDATE_WORKSPACE_INFO_SUCCESS, workspaceInfo: newData });\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.settings.updateDataSuccess')\n )\n );\n })\n .catch(() => {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.settings.updateDataFailed')\n )\n );\n dispatch({ type: identityConstants.UPDATE_WORKSPACE_INFO_FAILURE });\n });\n };\n}\n\nfunction updateWorkspaceDetails(workspaceId, workspaceInfo) {\n return (dispatch) => {\n dispatch({ type: identityConstants.UPDATE_WORKSPACE_DETAILS_REQUEST });\n identityService\n .updateWorkspaceDetails(workspaceId, workspaceInfo)\n .then(() => {\n userComActions.workspace.dataChanged(WorkspaceDataChangedType.Name);\n dispatch({\n type: identityConstants.UPDATE_WORKSPACE_DETAILS_SUCCESS,\n workspaceDetails: workspaceInfo,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.settings.updateNameSuccess')\n )\n );\n })\n .catch(() => {\n dispatch({ type: identityConstants.UPDATE_WORKSPACE_DETAILS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.settings.updateNameFailed')\n )\n );\n });\n };\n}\n\nfunction setCurrentIdentity(identity) {\n return { type: identityConstants.SET_ACTIVE_IDENTITY, identity };\n}\n\nfunction createWorkspace(workspaceData, callback = () => undefined) {\n return (dispatch) => {\n dispatch({ type: identityConstants.CREATE_NEW_WORKSPACE_REQUEST });\n identityService\n .createWorkspace(workspaceData)\n .then((response) => {\n dispatch(identityActions.getUserStructure());\n setTimeout(() => {\n dispatch({\n type: identityConstants.CREATE_NEW_WORKSPACE_SUCCESS,\n data: response,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('createWorkspace.success')\n )\n );\n\n dispatch(identityActions.switchWorkspace(response.data.workspaceId, callback));\n }, 2000);\n })\n .catch(() => {\n dispatch({ type: identityConstants.CREATE_NEW_WORKSPACE_FAILURE });\n });\n };\n}\n\nfunction switchContactEmail(email) {\n return (dispatch) => {\n dispatch({ type: identityConstants.SWITCH_CONTACT_EMAIL_REQUEST });\n identityService\n .switchContactEmail()\n .then((response) => {\n if (response) {\n dispatch({ type: identityConstants.SWITCH_CONTACT_EMAIL_SUCCESS, email });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('userConfigurationPage.identity.emailSwitch')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: identityConstants.SWITCH_CONTACT_EMAIL_FAILURE, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction getWorkspaceGroupUsers(groupId, page, limit, value) {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_USERS_REQUEST });\n identityService\n .getWorkspaceGroupUsers(groupId, page, limit, value)\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_USERS_SUCCESS,\n workspaceUsers: response.data.collection,\n hasNextPage: response.data.hasNextPage,\n queryPage: page,\n });\n })\n .catch(() => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_USERS_FAILURE });\n });\n };\n}\n\nfunction getWorkspaceInvitedUsers(groupId, page, limit, value) {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_INVITED_USERS_REQUEST });\n identityService\n .getWorkspaceInvitedUsers(groupId, page, limit, value)\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_INVITED_USERS_SUCCESS,\n payload: mapWorkspaceInvitedUserToWorkspaceUser(response.data),\n });\n })\n .catch(() => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_INVITED_USERS_FAILURE });\n });\n };\n}\n\nfunction searchWorkspaceGroupUsers(groupId, page, limit, value) {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_USERS_SEARCH_REQUEST });\n identityService\n .searchWorkspaceGroupUsers(groupId, page, limit, value)\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_USERS_SEARCH_SUCCESS,\n workspaceUsers: response.data.collection,\n hasNextPage: response.data.hasNextPage,\n });\n })\n .catch(() => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_USERS_SEARCH_FAILURE });\n });\n };\n}\n\nfunction inviteUserToWorkspace(workspaceId, usersData) {\n return (dispatch) => {\n dispatch({ type: identityConstants.INVITE_USER_TO_WORKSPACE_REQUEST });\n identityService\n .inviteUserToWorkspace(workspaceId, usersData)\n .then((response) => {\n userComActions.workspace.dataMemberInvited(usersData.length);\n dispatch({\n type: identityConstants.INVITE_USER_TO_WORKSPACE_SUCCESS,\n status: response,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n usersData.length > 1\n ? i18n.t('workspacePage.users.invitationsSentComplete')\n : i18n.t('workspacePage.users.invitationSentComplete')\n )\n );\n })\n .catch((error) => {\n dispatch({ type: identityConstants.INVITE_USER_TO_WORKSPACE_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction deleteUserFromWorkspace(workspaceId, identityId) {\n return (dispatch) => {\n dispatch({ type: identityConstants.DELETE_USER_FROM_WORKSPACE_REQUEST });\n identityService\n .deleteUserFromWorkspace(workspaceId, identityId)\n .then((response) => {\n dispatch({\n type: identityConstants.DELETE_USER_FROM_WORKSPACE_SUCCESS,\n identityId,\n status: response,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.users.deleteUserSuccess')\n )\n );\n })\n .catch((error) => {\n dispatch({ type: identityConstants.DELETE_USER_FROM_WORKSPACE_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction deleteUserInvitationFromWorkspace(workspaceId, email) {\n return (dispatch) => {\n dispatch({ type: identityConstants.DELETE_USER_INVITATION_FROM_WORKSPACE_REQUEST });\n identityService\n .deleteUserInvitationFromWorkspace(workspaceId, email)\n .then(() => {\n dispatch({\n type: identityConstants.DELETE_USER_INVITATION_FROM_WORKSPACE_SUCCESS,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.users.deleteUserSuccess')\n )\n );\n })\n .catch((error) => {\n dispatch({ type: identityConstants.DELETE_USER_INVITATION_FROM_WORKSPACE_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction updateMembersWorkspaceGroup(groupId, members) {\n return { type: identityConstants.UPDATE_WORKSPACE_MEMBERS_GROUP, groupId, members };\n}\n\nfunction clearWorkspaceUsersStore() {\n return { type: identityConstants.CLEAR_WORKSPACE_USERS_STORE };\n}\n\nfunction sendTransactionFromNewDocument(txn, callback = () => undefined) {\n return (dispatch) => {\n dispatch({ type: identityConstants.SEND_TRANSACTION_FROM_NEW_DOCUMENT_REQUEST });\n identityService\n .sendTransaction(txn)\n .then((response) => {\n dispatch({\n type: identityConstants.SEND_TRANSACTION_FROM_NEW_DOCUMENT_SUCCESS,\n data: response,\n });\n callback();\n })\n .catch(() => {\n dispatch({ type: identityConstants.SEND_TRANSACTION_FROM_NEW_DOCUMENT_FAILURE });\n });\n };\n}\n\nconst sendTransactionFromNewCertificate = (txn, callback = () => undefined) => (dispatch) => {\n dispatch({ type: identityConstants.SEND_TRANSACTION_FROM_NEW_CERTIFICATE_REQUEST });\n identityService\n .sendTransaction(txn)\n .then((response) => {\n dispatch({\n type: identityConstants.SEND_TRANSACTION_FROM_NEW_CERTIFICATE_SUCCESS,\n data: response,\n });\n callback();\n })\n .catch(() => {\n dispatch({ type: identityConstants.SEND_TRANSACTION_FROM_NEW_CERTIFICATE_FAILURE });\n });\n};\n\nfunction getWorkspacePermissions(workspaceId) {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_PERMISSIONS_REQUEST });\n identityService\n .getWorkspacePermissions(workspaceId)\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_PERMISSIONS_SUCCESS,\n data: response.data.collection,\n });\n })\n .catch(() => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_PERMISSIONS_FAILURE });\n });\n };\n}\n\nfunction fetchWorkspaceWorkflows(workspaceId) {\n return (dispatch) => {\n dispatch({ type: identityConstants.FETCH_WORKSPACE_WORKFLOWS_REQUEST });\n documentDSLServices\n .fetchWorkspaceWorkflows(workspaceId)\n .then((response) => {\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_WORKFLOWS_SUCCESS,\n data: response.data.data,\n });\n })\n .catch((errors) => {\n if (errors.code === ErrorCode.IDENTITY_NOT_READY) {\n setTimeout(() => {\n dispatch(fetchWorkspaceWorkflows(workspaceId));\n }, 5000);\n }\n dispatch({\n type: identityConstants.FETCH_WORKSPACE_WORKFLOWS_FAILURE,\n payload: errors.code,\n });\n });\n };\n}\nfunction switchWorkspace(workspaceId, callback = () => undefined) {\n return (dispatch, getState) => {\n const { structure } = getState().identityStore;\n let identityData = false;\n\n const availableIdentities = structure\n ? structure.filter((structureItem) => structureItem.identity.active)\n : structure;\n\n availableIdentities.forEach((item) => {\n if (item.workspace.workspaceId === workspaceId) {\n identityData = item;\n }\n });\n\n if (!identityData) {\n [identityData] = availableIdentities;\n }\n cookieHelper.setCookie('activeIdentity', identityData?.identity?.identityId);\n\n if (identityData?.workspace) {\n const workspaceId = identityData?.workspace?.workspaceId;\n dispatch(getWorkspaceStructure(workspaceId));\n dispatch(contactsActions.initializeContacts(workspaceId));\n dispatch(getWorkspacePermissions(identityData?.workspace?.workspaceId));\n }\n dispatch(setCurrentIdentity(identityData));\n dispatch(billingActions.resetBilling());\n callback();\n };\n}\n\nconst identityActions = {\n getUserStructure,\n setCurrentIdentity,\n getWorkspaceStructure,\n fetchWorkspaceInfo,\n updateWorkspaceInfo,\n createWorkspace,\n switchContactEmail,\n getWorkspaceGroupUsers,\n getWorkspaceInvitedUsers,\n deleteUserInvitationFromWorkspace,\n searchWorkspaceGroupUsers,\n inviteUserToWorkspace,\n deleteUserFromWorkspace,\n clearWorkspaceUsersStore,\n updateWorkspaceDetails,\n updateMembersWorkspaceGroup,\n sendTransactionFromNewDocument,\n getWorkspacePermissions,\n fetchWorkspaceWorkflows,\n switchWorkspace,\n sendTransactionFromNewCertificate,\n};\n\nexport default identityActions;\n","export interface WorkspaceUser {\n active?: boolean;\n addedAt?: number;\n email: string;\n identityId?: string;\n name?: string;\n}\n\nexport interface WorkspaceInvitedUser {\n email: string;\n}\n\nexport const mapWorkspaceInvitedUserToWorkspaceUser = (\n invitedUsers: WorkspaceInvitedUser[]\n): WorkspaceUser[] =>\n invitedUsers.map((el) => ({\n active: undefined,\n addedAt: undefined,\n email: el.email,\n identityId: undefined,\n name: undefined,\n }));\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport { useState, useEffect } from 'react';\n\nconst useForm = (callback, validate, initialValues) => {\n const [values, setValues] = useState(initialValues || {});\n const [errors, setErrors] = useState({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n useEffect(() => {\n if (Object.keys(errors).length === 0 && isSubmitting) {\n callback();\n }\n }, [errors]);\n\n const handleSubmit = (event) => {\n if (event) event.preventDefault();\n setErrors(validate(values));\n setIsSubmitting(true);\n };\n\n const handleChange = (event) => {\n event.persist();\n setValues((values) => ({ ...values, [event.target.name]: event.target.value }));\n setErrors({ ...errors, [event.target.name]: '' });\n if (isSubmitting) {\n setIsSubmitting(false);\n }\n };\n\n const setValue = (name, value) => {\n setValues((values) => ({ ...values, [name]: value }));\n setErrors({ ...errors, [name]: '' });\n if (isSubmitting) {\n setIsSubmitting(false);\n }\n };\n\n return {\n handleChange,\n handleSubmit,\n values,\n errors,\n setValue,\n };\n};\n\nexport default useForm;\n","import i18n from 'src/helpers/i18n';\nimport { isMail } from './globalUtils';\nimport { RegexFormulas } from './regex';\n\nexport default function validate(values) {\n const errors = {};\n\n // email change form\n if (Object.keys(values).includes('email')) {\n if (!values.email) {\n errors.email = i18n.t('userConfigurationPage.basic.emailPage.errorEmpty');\n } else if (!isMail(values.email)) {\n errors.email = i18n.t('userConfigurationPage.basic.emailPage.errorFormat');\n }\n }\n\n // username change form\n if (Object.keys(values).includes('username')) {\n if (!values.username) {\n errors.username = i18n.t('userConfigurationPage.basic.usernamePage.errorEmpty');\n } else if (values.username.length < 3) {\n errors.username = i18n.t('userConfigurationPage.basic.usernamePage.errorFormat');\n }\n }\n\n // create workspace change form\n if (Object.keys(values).includes('workspaceName')) {\n if (!values.workspaceName) {\n errors.workspaceName = i18n.t('createWorkspace.errorEmpty');\n } else if (values.workspaceName.length < 3) {\n errors.workspaceName = i18n.t('createWorkspace.errorFormat');\n }\n }\n\n // password change form\n if (Object.keys(values).includes('oldPassword')) {\n if (!values.oldPassword) {\n errors.oldPassword = i18n.t('userConfigurationPage.basic.passwordPage.errorEmpty');\n }\n if (!values.newPassword) {\n errors.newPassword = i18n.t('userConfigurationPage.basic.passwordPage.errorEmpty');\n } else if (values.newPassword.length < 8) {\n errors.newPassword = i18n.t('userConfigurationPage.basic.passwordPage.errorTooShort');\n }\n if (!values.confirmPassword) {\n errors.confirmPassword = i18n.t('userConfigurationPage.basic.passwordPage.errorEmpty');\n }\n if (values.newPassword !== values.confirmPassword) {\n errors.newPassword = i18n.t('userConfigurationPage.basic.passwordPage.errorMismatch');\n errors.confirmPassword = i18n.t('userConfigurationPage.basic.passwordPage.errorMismatch');\n }\n }\n\n if (Object.keys(values).includes('folderName')) {\n if (!values.folderName) {\n errors.folderName = i18n.t('drivePage.foldersDialog.errorEmpty');\n } else if (!RegexFormulas.folderName.test(values.folderName)) {\n errors.folderName = i18n.t('drivePage.foldersDialog.addNew.invalidName');\n }\n }\n\n if (Object.keys(values).includes('workspaceNewName')) {\n if (!values.workspaceNewName || values.workspaceNewName.trim().length === 0) {\n errors.workspaceNewName = i18n.t('workspacePage.editModals.valueCannotBeEmpty');\n }\n }\n\n return errors;\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\nimport {\n Button,\n CircularProgress,\n duration,\n TextField,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\nimport { EmptyBanner, FullScreenDialog, Gap, SmallContentWithScrollbar } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport authActions from '../../redux/actions/auth.actions';\n\nconst CreateWorkspace = ({\n isOpen,\n handleClose,\n noIdentity,\n transitionDuration,\n structureError,\n showLogout = false,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const [page, setPage] = useState(noIdentity || structureError ? 'no-identity-banner' : 'form');\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const dispatch = useDispatch();\n const createWorkspaceStatus = useSelector((state) => state.identityStore.createWorkspaceStatus);\n\n const handleUpdate = () => {\n dispatch(\n identityActions.createWorkspace({ name: values.workspaceName, description: '' }, () => {\n history.push('/');\n if (typeof handleClose === 'function') {\n handleClose();\n }\n })\n );\n };\n const handleLogout = () => {\n dispatch(authActions.deleteToken());\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(handleUpdate, validate, {\n workspaceName: '',\n });\n\n const showForm = page === 'form';\n const isPending = createWorkspaceStatus === RequestStatus.PENDING;\n\n useEffect(() => {\n if (structureError) {\n setPage('no-identity-banner');\n }\n }, [structureError]);\n\n return (\n \n \n {t('createWorkspace.title')}\n \n )\n }\n endContent={\n <>\n {showForm && (\n }\n >\n {t('createWorkspace.button')}\n \n )}\n {showLogout && (\n <>\n \n \n \n )}\n \n }\n hasForm={showForm}\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n {showForm && !structureError && (\n handleChange(event)}\n error={errors.workspaceName?.length > 0}\n helperText={errors.workspaceName}\n fullWidth\n />\n )}\n {!showForm && !structureError && (\n setPage('form')}\n />\n )}\n {structureError && (\n {\n window.location.reload();\n }}\n />\n )}\n \n \n );\n};\n\nCreateWorkspace.propTypes = {\n isOpen: PropTypes.bool,\n showLogout: PropTypes.bool,\n handleClose: PropTypes.func,\n noIdentity: PropTypes.bool,\n transitionDuration: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number,\n }),\n ]),\n structureError: PropTypes.bool,\n};\n\nCreateWorkspace.defaultProps = {\n noIdentity: false,\n transitionDuration: { enter: duration.enteringScreen, exit: duration.leavingScreen },\n};\n\nexport default CreateWorkspace;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n root: {},\n }),\n { index: 0 }\n);\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n width: '100%',\n margin: '0 auto',\n minHeight: '100%',\n },\n rootWithScrollableContent: {\n height: '100%',\n },\n scrollableContent: {\n overflowX: 'hidden',\n overflowY: 'auto',\n },\n smallRootSize: {\n maxWidth: breakpoints.values.xs,\n },\n mediumRootSize: {\n maxWidth: breakpoints.values.sm - 100,\n },\n largeRootSize: {\n maxWidth: breakpoints.values.md,\n },\n bigRootSize: {\n maxWidth: breakpoints.values.lg,\n },\n startContent: {\n paddingBottom: spacing(1),\n },\n content: {\n padding: spacing(1, 2, 1, 3),\n marginLeft: spacing(-3),\n width: `calc(100% + ${spacing(5)}px)`,\n [breakpoints.up('md')]: {\n paddingTop: spacing(2),\n paddingBottom: spacing(2),\n },\n },\n endContent: {\n paddingTop: spacing(1),\n },\n noPaddingTop: {\n paddingTop: 0,\n },\n noPaddingBottom: {\n paddingBottom: 0,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst SmallContentWithScrollbar = ({\n className: classNameProp,\n classes: classesProp,\n scrollableContent,\n size,\n startContent,\n children,\n endContent,\n hasForm,\n formProps,\n}) => {\n const classes = useStyles();\n\n const Component = hasForm ? 'form' : 'div';\n const additionalProps = hasForm ? formProps : undefined;\n\n return (\n \n {startContent &&
{startContent}
}\n\n \n {children}\n \n\n {endContent &&
{endContent}
}\n \n );\n};\n\nSmallContentWithScrollbar.propTypes = {\n scrollableContent: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large', 'big']),\n className: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n classes: PropTypes.object,\n startContent: PropTypes.node,\n children: PropTypes.node,\n endContent: PropTypes.node,\n hasForm: PropTypes.bool,\n formProps: PropTypes.shape({}),\n};\n\nSmallContentWithScrollbar.defaultProps = {\n scrollableContent: false,\n size: 'small',\n hasForm: false,\n};\n\nexport default SmallContentWithScrollbar;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport Lottie from 'react-lottie';\nimport cubeLottie from 'src/components/WaitingForBlockchain/cube.json';\nimport documentLottie from 'src/components/WaitingForBlockchain/document.json';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport { Theme, Typography, useMediaQuery } from '@material-ui/core';\nimport SmallContentWithScrollbar from '../SmallContentWithScrollbar';\nimport { useStyles } from './styles';\n\nexport enum Variant {\n BlockchainProcessing,\n DocumentsGenerating,\n}\n\ntype WaitingForBlockchainProps = {\n variant?: Variant;\n isPlural?: boolean;\n};\n\nconst WaitingForBlockchain = ({\n variant = Variant.BlockchainProcessing,\n isPlural = false,\n}: WaitingForBlockchainProps): JSX.Element => {\n const { t } = useTranslation();\n const mediumScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('md'));\n const classes = useStyles();\n const [titleNr, setTitleNr] = useState(0);\n const lottieAnimation = {\n [Variant.BlockchainProcessing]: cubeLottie,\n [Variant.DocumentsGenerating]: documentLottie,\n };\n\n const titleTranslationsList = useMemo(\n () => ({\n [Variant.BlockchainProcessing]: [\n t('waitingForBlockchain.title1'),\n t('waitingForBlockchain.title2'),\n t('waitingForBlockchain.title3'),\n t('waitingForBlockchain.title4'),\n t('waitingForBlockchain.title5'),\n t('waitingForBlockchain.title6'),\n t('waitingForBlockchain.title7'),\n ],\n [Variant.DocumentsGenerating]: [\n t('waitingForBlockchain.generatingCertFilesTitle1'),\n t('waitingForBlockchain.generatingCertFilesTitle2'),\n ],\n }),\n [t]\n );\n\n const descriptionTranslation = useMemo(\n () => ({\n [Variant.BlockchainProcessing]: t('waitingForBlockchain.description'),\n\n [Variant.DocumentsGenerating]: isPlural\n ? 'waitingForBlockchain.generatingCertFilesDescription'\n : t('waitingForBlockchain.generatingCertFileDescription'),\n }),\n [t, isPlural]\n );\n\n useEffect(() => {\n const t = setTimeout(() => {\n if (titleNr < titleTranslationsList[variant].length - 1) {\n setTitleNr((t) => t + 1);\n } else clearTimeout(t);\n }, 2000);\n\n return () => clearTimeout(t);\n }, [titleNr, titleTranslationsList, variant]);\n\n return (\n \n
\n \n \n {titleTranslationsList[variant].map((title, index) => (\n
\n {title}\n
\n ))}\n \n {descriptionTranslation[variant]}\n
\n \n );\n};\n\nexport default WaitingForBlockchain;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, transitions }) =>\n createStyles({\n root: { textAlign: 'center' },\n content: {\n height: '100%',\n [breakpoints.down('sm')]: {\n flex: 1,\n },\n },\n contentWrapper: {\n minHeight: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: -40,\n },\n description: {\n whiteSpace: 'break-spaces',\n color: palette.secondary.dark,\n },\n titleWrapper: {\n position: 'relative',\n marginTop: -60,\n width: '100%',\n },\n title: {\n opacity: 0,\n display: 'none',\n textAlign: 'center',\n transition: transitions.create(['opacity'], {\n duration: transitions.duration.standard,\n }),\n },\n titleActive: {\n opacity: 1,\n display: 'block',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useMediaQuery } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { DropZone, FullScreenDialog } from '../index';\nimport { useStyles } from './styles';\nimport { DropzoneVariant } from '../DropZone/helpers';\nimport WaitingForBlockchain from '../WaitingForBlockchain/WaitingForBlockchain';\n\nconst CreatorDocument = ({ openedStep, handleClose, creatorDocumentStepper }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const open = openedStep !== false;\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const renderStep = () => {\n switch (openedStep) {\n case 1:\n return (\n \n );\n\n case 4:\n return ;\n\n default:\n return null;\n }\n };\n\n return (\n
\n \n {renderStep()}\n \n
\n );\n};\n\nCreatorDocument.propTypes = {\n openedStep: PropTypes.oneOf([false, 1, 2, 3, 4, 5]),\n handleClose: PropTypes.func,\n creatorDocumentStepper: PropTypes.func,\n};\nCreatorDocument.defaultProps = {\n openedStep: false,\n};\n\nexport default CreatorDocument;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, typography }) =>\n createStyles({\n root: {},\n ol: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'center',\n padding: 0,\n margin: 0,\n listStyle: 'none',\n '& svg': {\n fontSize: 20,\n },\n },\n li: {\n height: 20,\n display: 'flex',\n borderRadius: 2,\n padding: `0 ${spacing(0.5)}px`,\n fontSize: 16,\n '& a, & p': {\n textDecoration: 'none',\n display: 'flex',\n alignItems: 'center',\n },\n '& p': {\n fontSize: 'inherit',\n fontWeight: 'inherit',\n },\n '& a': {\n color: palette.text.secondary,\n '&:hover, &:focus': {\n color: palette.text.primary,\n },\n },\n '& svg': {\n marginRight: spacing(0.5),\n },\n },\n firstLi: {\n marginLeft: spacing(-0.5),\n },\n lastLi: {\n fontWeight: typography.fontWeightBold,\n marginRight: spacing(-0.5),\n cursor: 'default',\n },\n menuItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n padding: 0,\n minHeight: spacing(4),\n },\n separator: {\n display: 'flex',\n userSelect: 'none',\n marginLeft: spacing(1),\n marginRight: spacing(1),\n },\n dropBackground: {\n backgroundColor: palette.primary.lightest,\n borderRadius: spacing(0.5),\n },\n }),\n { index: 0 }\n);\n\nexport const useStylesCollapsed = makeStyles(\n ({ palette }) =>\n createStyles({\n button: {\n height: 20,\n display: 'flex',\n color: palette.text.secondary,\n borderRadius: 2,\n '&:hover, &:focus, &:active': {\n '& $iconChevron': {\n color: palette.primary.main,\n },\n },\n },\n active: {\n color: palette.primary.main,\n },\n icon: {\n width: 28,\n fontSize: `${20}px!important`,\n },\n iconChevron: {\n marginLeft: -2,\n marginRight: 2,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { ButtonBase } from '@material-ui/core';\nimport { MoreHor as MoreIcon } from '../CustomIcon';\nimport { useStylesCollapsed } from './styles';\n\nconst BreadcrumbCollapsed = React.forwardRef(({ active, ...other }, ref) => {\n const classes = useStylesCollapsed();\n\n return (\n
  • \n \n \n \n
  • \n );\n});\n\nBreadcrumbCollapsed.propTypes = {\n active: PropTypes.bool,\n};\n\nexport default BreadcrumbCollapsed;\n","import React, {\n Children as ReactChildren,\n cloneElement,\n forwardRef,\n isValidElement,\n useRef,\n useState,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useDrop, useDragDropManager } from 'react-dnd';\nimport { LinkDnd } from 'src/components';\nimport { ButtonBase, Menu, MenuItem, Typography } from '@material-ui/core';\nimport BreadcrumbCollapsed from './BreadcrumbCollapsed';\nimport { ArrowRightSLine as ChevronRightIcon, FolderOpen as FolderIcon } from '../CustomIcon';\nimport { useStyles } from './styles';\n\nconst CustomizedBreadcrumbs = forwardRef(\n (\n {\n children,\n className,\n component: Component,\n expandText,\n itemsAfterCollapse,\n itemsBeforeCollapse,\n separator,\n ...other\n },\n ref\n ) => {\n const classes = useStyles();\n\n const [expanded, setExpanded] = useState(false);\n\n const handleClickExpand = () => {\n setExpanded(true);\n\n const focusable = listRef.current.querySelector('a[href],button,[tabindex]');\n if (focusable) {\n focusable.focus();\n }\n };\n\n const handleCollapse = () => {\n setExpanded(false);\n };\n\n const insertSeparators = (items, className, separator) =>\n items.reduce((acc, current, index) => {\n if (index < items.length - 1) {\n acc = acc.concat(\n current,\n
  • \n {separator}\n
  • \n );\n } else {\n acc.push(current);\n }\n\n return acc;\n }, []);\n\n const listRef = useRef(null);\n const ellipsisRef = useRef(null);\n\n const allItems = ReactChildren.toArray(children)\n .filter((child) => isValidElement(child))\n .map((child, index, allItems) => {\n const isFirst = index === 0;\n const isLast = index === allItems.length - 1;\n return (\n \n {cloneElement(\n child,\n {\n ...child.props,\n },\n <>\n {isFirst && }\n {child.props.children}\n \n )}\n \n );\n });\n\n const [{ isOver }, drop] = useDrop(() => ({\n accept: 'ITEM',\n hover: () => {\n setExpanded(true);\n },\n drop: () => {\n setExpanded(false);\n },\n collect: (monitor) => ({\n isOver: monitor.isOver({ shallow: true }),\n }),\n }));\n\n const dragDropManager = useDragDropManager();\n const monitor = dragDropManager.getMonitor();\n const menuRef = useRef();\n const [menuCoords, setMenuCoords] = useState({ minX: '', maxX: '', minY: '', maxY: '' });\n\n const between = (x, min, max) => x >= min && x <= max;\n\n useEffect(\n () =>\n monitor.subscribeToOffsetChange(() => {\n const offset = monitor.getClientOffset();\n if (\n offset &&\n !(\n between(offset.x, menuCoords.minX, menuCoords.maxX) &&\n between(offset.y, menuCoords.minY - 30, menuCoords.maxY)\n )\n ) {\n setExpanded(false);\n }\n }),\n [monitor, expanded, menuCoords]\n );\n\n useEffect(() => {\n if (expanded) {\n const { x, y, width, height } = menuRef.current.getBoundingClientRect();\n const coordsObj = { minX: x, maxX: x + width, minY: y, maxY: y + height };\n setMenuCoords(coordsObj);\n }\n }, [expanded]);\n\n const beforeAndAfterItems = () => {\n if (itemsBeforeCollapse + itemsAfterCollapse + 1 >= allItems.length) {\n return allItems;\n }\n\n return [\n ...allItems.slice(0, itemsBeforeCollapse),\n
    \n \n
    ,\n ...allItems.slice(allItems.length - itemsAfterCollapse, allItems.length),\n ];\n };\n\n const betweenItems = () => {\n if (itemsBeforeCollapse + itemsAfterCollapse + 1 >= allItems.length) {\n return null;\n }\n\n const childrenInArray = ReactChildren.toArray(children).slice(\n itemsBeforeCollapse,\n allItems.length - itemsAfterCollapse\n );\n\n return childrenInArray\n .filter((child) => isValidElement(child))\n .map((child, index) => (\n \n \n \n ));\n };\n\n const itemsInPopover = betweenItems();\n\n return (\n \n
      \n {insertSeparators(beforeAndAfterItems(), classes.separator, separator)}\n
    \n\n \n {itemsInPopover}\n \n \n );\n }\n);\n\nCustomizedBreadcrumbs.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n component: PropTypes.elementType,\n expandText: PropTypes.string,\n itemsAfterCollapse: PropTypes.number,\n itemsBeforeCollapse: PropTypes.number,\n separator: PropTypes.node,\n};\n\nCustomizedBreadcrumbs.defaultProps = {\n component: 'nav',\n expandText: 'Show path',\n itemsAfterCollapse: 1,\n itemsBeforeCollapse: 1,\n separator: ,\n};\n\nexport default CustomizedBreadcrumbs;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from '@material-ui/core';\nimport { Link as RouterLink } from 'react-router-dom';\n\nconst CustomLink = (props) => {\n const { children } = props;\n return (\n \n {children}\n \n );\n};\n\nCustomLink.propTypes = {\n to: PropTypes.string,\n children: PropTypes.shape({}),\n classes: PropTypes.objectOf(PropTypes.shape()),\n color: PropTypes.oneOf([\n 'initial',\n 'primary',\n 'secondary',\n 'textPrimary',\n 'textSecondary',\n 'error',\n ]),\n component: PropTypes.elementType,\n TypographyClasses: PropTypes.objectOf(PropTypes.shape()),\n underline: PropTypes.oneOf(['none', 'hover', 'always']),\n variant: PropTypes.string,\n};\n\nCustomLink.defaultProps = {\n color: 'primary',\n underline: 'hover',\n variant: 'inherit',\n};\n\nexport default CustomLink;\n","import { fade } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shadows, shape, spacing, transitions, typography }) =>\n createStyles({\n certIcon: {\n color: '#2575ff',\n display: 'flex',\n },\n dataTableWrapper: {\n '&:not(:last-child)': {\n marginBottom: spacing(4),\n '& $noItems': {\n marginBottom: spacing(2),\n },\n [breakpoints.up('md')]: {\n marginBottom: spacing(2.5),\n },\n [breakpoints.up('lg')]: {\n marginBottom: spacing(1),\n },\n },\n },\n container: {\n width: `calc(100% + ${spacing(1)}px)`,\n margin: `0 ${spacing(-0.5)}px`,\n [breakpoints.up('sm')]: {\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n width: `calc(100% + ${spacing(2)}px)`,\n },\n [breakpoints.up('md')]: {\n marginLeft: spacing(-1.5),\n marginRight: spacing(-1.5),\n width: `calc(100% + ${spacing(3)}px)`,\n },\n },\n tilesContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n [breakpoints.up('xs')]: {\n marginBottom: spacing(-2),\n },\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n backgroundColor: palette.background.paper,\n paddingTop: spacing(0.5),\n paddingLeft: spacing(0.5),\n paddingRight: spacing(0.5),\n minHeight: 48,\n [breakpoints.up('sm')]: {\n paddingLeft: spacing(1),\n paddingRight: spacing(1),\n },\n [breakpoints.up('md')]: {\n paddingLeft: spacing(1.5),\n paddingRight: spacing(1.5),\n },\n },\n headerWrapper: {},\n headerCell: {\n lineHeight: 1.2,\n '& *': {\n lineHeight: 'inherit !important',\n textAlign: 'inherit !important',\n },\n },\n headerEndElement: {\n height: 2,\n width: 32,\n minWidth: 32,\n },\n title: {\n minWidth: 24,\n },\n circularLoader: {\n display: 'block',\n margin: `${spacing(1)}px auto`,\n },\n headerTitle: {\n fontWeight: typography.fontWeightBold,\n fontSize: typography.h4.fontSize,\n color: palette.common.black,\n '& span': {\n fontWeight: 'inherit',\n fontSize: 'inherit',\n color: 'inherit',\n },\n },\n itemRowContent: {},\n hasItemBeforeRowContent: {\n marginLeft: '0 !important',\n [breakpoints.up('md')]: {\n marginLeft: `${spacing(1)}px !important`,\n },\n },\n hasItemAfterRowContent: {\n [breakpoints.up('md')]: {\n marginRight: `${spacing(1)}px !important`,\n },\n },\n sortable: {\n '& span': {\n userSelect: 'none',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n },\n },\n sortArrow: {\n marginLeft: 1,\n width: 24,\n minWidth: 24,\n height: 24,\n minHeight: 24,\n marginTop: -4,\n marginBottom: -4,\n borderRadius: '50%',\n transition: transitions.create(['background-color', 'color'], {\n duration: transitions.duration.short,\n }),\n '& svg': {\n display: 'block',\n width: 'inherit',\n height: 'inherit',\n },\n '&:hover, &:focus': {\n backgroundColor: palette.action.hover,\n },\n },\n sortActive: {\n '& $sortArrow': {\n '& svg': {\n color: palette.primary.main,\n },\n },\n },\n itemRow: {\n display: 'flex',\n alignItems: 'center',\n minHeight: 48,\n padding: spacing(1.75, 0.5),\n borderRadius: shape.borderRadius * 0.5,\n marginBottom: 1,\n width: '100%',\n [breakpoints.up('md')]: {\n padding: spacing(0.5, 1.5),\n },\n '& .MuiFab-root': {\n backgroundColor: palette.common.white,\n },\n '& .titleCell': {\n fontWeight: typography.fontWeightMedium,\n transition: transitions.create(['color'], {\n duration: transitions.duration.short,\n }),\n },\n '&:not($itemTileRow)': {\n '& [class^=\"IconCell-iconCell-\"], & [class*=\"IconCell-iconCell-\"]': {\n '& svg': {\n [breakpoints.down('xs')]: {\n width: 32,\n height: 32,\n },\n },\n },\n },\n /* '& [class^=\"DataTableRow-iconCellAuto-\"], & [class*=\"DataTableRow-iconCellAuto-\"]': {\n minWidth: 'auto !important',\n }, */\n },\n itemRowSelected: {\n backgroundColor: fade(palette.primary.light, 0.15),\n },\n draggingRow: {\n opacity: 0.5,\n },\n itemTileRow: {\n justifyContent: 'left',\n border: `1px solid ${palette.divider}`,\n borderRadius: shape.borderRadius,\n padding: spacing(2, 1.5),\n '&:not(:last-child)': {\n marginBottom: spacing(1),\n },\n '&:hover': {\n boxShadow: shadows[6],\n },\n '& span': {\n lineHeight: 1.3,\n },\n [breakpoints.up('xs')]: {\n width: `calc(50% - ${spacing(1)}px)`,\n marginBottom: `${spacing(2)}px !important`,\n marginRight: spacing(0.5),\n marginLeft: spacing(0.5),\n },\n [breakpoints.up('sm')]: {\n width: `calc(33.333333% - ${spacing(1)}px)`,\n marginBottom: `${spacing(2)}px !important`,\n marginRight: spacing(0.5),\n marginLeft: spacing(0.5),\n },\n [breakpoints.up('lg')]: {\n width: `calc(25% - ${spacing(1)}px)`,\n marginBottom: `${spacing(2)}px !important`,\n marginRight: spacing(0.5),\n marginLeft: spacing(0.5),\n },\n [breakpoints.up('xl')]: {\n width: `calc(20% - ${spacing(1)}px)`,\n marginBottom: `${spacing(2)}px !important`,\n marginRight: spacing(0.5),\n marginLeft: spacing(0.5),\n },\n },\n clickableRow: {\n cursor: 'default',\n transition: transitions.create(['background-color', 'color'], {\n duration: transitions.duration.standard,\n }),\n '&:hover:not($itemRowSelected)': {\n backgroundColor: fade(palette.primary.light, 0.075),\n '& .titleCell': {\n color: palette.primary.main,\n },\n },\n },\n cell: {\n paddingTop: spacing(0.25),\n paddingBottom: spacing(0.25),\n lineHeight: 1.2,\n '& *': {\n lineHeight: 'inherit !important',\n },\n },\n iconCell: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n [breakpoints.down('sm')]: {\n minWidth: 'auto !important',\n },\n },\n iconCellAuto: {\n [breakpoints.up('md')]: {\n minWidth: '40px !important',\n },\n },\n statusCell: {\n fontWeight: typography.fontWeightMedium,\n '& span': {\n display: 'inline-flex',\n alignItems: 'center',\n },\n '& svg': {\n fontSize: 16,\n marginLeft: spacing(0.5),\n },\n '&.CREATED': {\n color: palette.secondary.dark,\n },\n '&.signed': {\n color: palette.primary.main,\n '& svg': {\n color: palette.primary.light,\n },\n },\n '&$mobileCell': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n paddingLeft: spacing(1),\n minWidth: 160,\n [breakpoints.down('xs')]: {\n minWidth: 120,\n },\n },\n },\n timeAgoCell: {},\n mobileCell: {},\n badge: {\n marginTop: -4,\n marginBottom: -4,\n display: 'inline-flex',\n },\n tag: {\n minWidth: '100px !important',\n justifyContent: 'center',\n },\n dropBackground: {\n backgroundColor: palette.primary.lightest,\n },\n noItems: {},\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { ButtonBase, Typography, useMediaQuery, useTheme } from '@material-ui/core';\nimport { SortingDown as SortDownIcon, SortingUp as SortUpIcon } from 'src/components/CustomIcon';\nimport { ExtendedGrid } from 'src/components';\n\nimport { useStyles } from './styles';\n\nconst DataTable = React.forwardRef(\n (\n {\n className: classNameProp,\n cols,\n withTableHeader,\n iconWidth,\n headerTextWidthLikeIcon,\n headerAction,\n title,\n titleRef,\n titleVariant,\n mediumTitleVariant,\n disableTitle,\n sortBy,\n sortOrder,\n onChangeSort,\n isLoading,\n smallScreen,\n rightSpace,\n },\n ref\n ) => {\n const classes = useStyles();\n const mediumScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('md'));\n const theme = useTheme();\n const [titleTextRef, setTitleTextRef] = useState(null);\n\n const titleTextWidth =\n !headerTextWidthLikeIcon && iconWidth !== 'auto' && titleTextRef !== null\n ? titleTextRef.offsetWidth - iconWidth + theme.spacing(1)\n : null;\n\n const getSortingArrow = (dataKey) => {\n const getArrow = () => {\n if (dataKey === sortBy) {\n if (sortOrder === 'desc') {\n return ;\n }\n return ;\n }\n return ;\n };\n\n return (\n \n {getArrow()}\n \n );\n };\n\n const swapOrder = (order) => (order === 'asc' ? 'desc' : 'asc');\n\n const onSortChange = (dataKey) => {\n if (onChangeSort) {\n if (dataKey === sortBy) {\n onChangeSort({ sortKey: dataKey, sortOrder: swapOrder(sortOrder) });\n } else {\n onChangeSort({ sortKey: dataKey, sortOrder: 'desc' });\n }\n }\n };\n\n return (\n
    \n {!disableTitle && title && (\n \n setTitleTextRef(element)}>{title}\n \n )}\n\n {headerAction &&
    {headerAction}
    }\n\n {withTableHeader && cols && !smallScreen && (\n <>\n \n {cols.map((col, index) => {\n const headerClasses = [classes.headerCell, col?.colProps?.className];\n const addSpaceToFirstColumn = index === 0 && !headerTextWidthLikeIcon;\n\n if (col.sortable && onChangeSort) {\n headerClasses.push(classes.sortable);\n if (col.dataKey === sortBy && !isLoading) {\n headerClasses.push(classes.sortActive);\n }\n }\n\n return (\n \n {onChangeSort ? (\n <>\n {col.title && col.sortable && (\n {\n if (col.sortable && !isLoading) {\n onSortChange(col.dataKey);\n }\n }}\n >\n \n {col.title}\n \n {col.sortable && onChangeSort && getSortingArrow(col.dataKey)}\n \n )}\n\n {col.title && !col.sortable && (\n \n {col.title}\n \n )}\n \n ) : (\n \n {col.title}\n \n )}\n \n );\n })}\n \n\n {rightSpace &&
    }\n \n )}\n
    \n );\n }\n);\n\nDataTable.propTypes = {\n className: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n cols: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n dataKey: PropTypes.string.isRequired,\n sortable: PropTypes.bool,\n type: PropTypes.oneOf(['icon', 'text', 'time-ago', 'person-badge', 'document-status']),\n icon: PropTypes.oneOf(['file', 'folder']),\n colProps: PropTypes.shape(),\n })\n ),\n withTableHeader: PropTypes.bool,\n headerAction: PropTypes.node,\n sortBy: PropTypes.string,\n sortOrder: PropTypes.oneOf(['asc', 'desc']),\n onChangeSort: PropTypes.func,\n isLoading: PropTypes.bool,\n iconWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\n headerTextWidthLikeIcon: PropTypes.bool,\n title: PropTypes.string,\n titleVariant: PropTypes.oneOfType([\n PropTypes.oneOf([\n 'body1',\n 'body2',\n 'button',\n 'caption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'inherit',\n 'overline',\n 'subtitle1',\n 'subtitle2',\n ]),\n PropTypes.string,\n ]),\n mediumTitleVariant: PropTypes.oneOfType([\n PropTypes.oneOf([\n 'body1',\n 'body2',\n 'button',\n 'caption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'inherit',\n 'overline',\n 'subtitle1',\n 'subtitle2',\n ]),\n PropTypes.string,\n ]),\n titleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n disableTitle: PropTypes.bool,\n smallScreen: PropTypes.bool,\n rightSpace: PropTypes.bool,\n};\n\nDataTable.defaultProps = {\n withTableHeader: false,\n disableTitle: false,\n titleVariant: 'h4',\n mediumTitleVariant: 'h5',\n isLoading: false,\n rightSpace: true,\n};\n\nexport default DataTable;\n","import store from 'src/redux/store';\nimport contactsActions from '../redux/actions/contacts.actions';\n\nconst ContactHelper = {\n getEntityData,\n checkIfIsInProgress,\n addContactsToQueue,\n checkIfUserBelongsToDocument,\n};\n\nfunction getEntityData(entityId) {\n const { identityStore, contactsStore } = store.getState();\n const { workspaceUsers, workspaceGroups } = identityStore;\n const matchedUserIdentity = workspaceUsers.find((user) => user.identityId === entityId);\n if (matchedUserIdentity) {\n return { ...matchedUserIdentity, isFromOrganisation: true, isGroup: false };\n }\n const matchedGroupIdentity = workspaceGroups.find((group) => group.info.groupId === entityId);\n if (matchedGroupIdentity) {\n return { ...matchedGroupIdentity.info, isFromOrganisation: true, isGroup: true };\n }\n const { contacts, groups, contactsAvailable } = contactsStore;\n if (contactsAvailable.indexOf(entityId) !== -1) {\n const contactData = contacts[entityId];\n if (contactData) {\n return {\n ...contactData,\n name: contactData.identityName !== undefined ? contactData.identityName : contactData.email,\n email: contactData.email,\n isFromOrganisation: false,\n isGroup: false,\n };\n }\n const groupData = groups[entityId];\n if (groupData) {\n return {\n ...groupData,\n name: groupData.groupName,\n isFromOrganisation: false,\n isGroup: true,\n };\n }\n }\n return false;\n}\n\nfunction checkIfIsInProgress(id) {\n const { contactsStore } = store.getState();\n const { contactsAvailable, contactsQueue, fetchingContacts } = contactsStore;\n return (\n contactsAvailable.indexOf(id) !== -1 ||\n contactsQueue.indexOf(id) !== -1 ||\n fetchingContacts.indexOf(id) !== -1\n );\n}\n\nfunction addContactsToQueue(ids) {\n store.dispatch(contactsActions.addMissingToQueue(ids));\n}\n\nfunction getAllUserEntities() {\n const { identityStore } = store.getState();\n const { currentIdentity } = identityStore;\n const userEntities = [];\n if (currentIdentity) {\n userEntities.push(currentIdentity.identity.identityId);\n currentIdentity.groups.forEach((group) => {\n if (group.active) {\n userEntities.push(group.groupId);\n }\n });\n }\n return userEntities;\n}\n\nfunction checkIfUserBelongsToDocument(document) {\n const allUserEntities = getAllUserEntities();\n let belongs = false;\n if (document) {\n const roleKeys = Object.keys(document.roles);\n let allRolesUsers = [];\n roleKeys.forEach((role) => {\n allRolesUsers = [...allRolesUsers, ...document.roles[role]];\n });\n allUserEntities.forEach((userEntity) => {\n if (allRolesUsers.indexOf(userEntity) !== -1) {\n belongs = true;\n }\n });\n }\n return belongs;\n}\n\nexport default ContactHelper;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Avatar, AvatarWithBadge, ExtendedGrid } from 'src/components';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport { useStyles } from '../styles';\n\nconst BadgeCell = ({ className: classNameProp, person, size, ...otherProps }) => {\n const classes = useStyles();\n const user = ContactHelper.getEntityData(person);\n const userName = user ? user.name : '-';\n return (\n \n {(!user || user.isFromOrganisation) && (\n \n {userName}\n \n )}\n {user && !user.isFromOrganisation && (\n \n {userName}\n \n )}\n \n );\n};\n\nBadgeCell.propTypes = {\n className: PropTypes.string,\n person: PropTypes.string,\n size: PropTypes.oneOf(['large', 'medium', 'small', 'mini']),\n};\n\nBadgeCell.defaultProps = {\n size: 'medium',\n};\n\nexport default BadgeCell;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '@material-ui/core';\nimport { ExtendedGrid, Tag } from 'src/components';\n\nimport { useStyles } from '../styles';\nimport { getStatusName } from '../../../models/document.model';\nimport { DocumentStatus } from '../../../models/documents.model';\n\nconst DocumentStatusCell = React.forwardRef(\n ({ className, status, isOnlyToPreview, smallScreen, ...otherProps }, ref) => {\n const classes = useStyles();\n const { t } = useTranslation();\n // TODO: remove after decision\n const temporaryTagAlwaysVisible = true;\n\n const getStatusComponent = (text, color = 'default', icon = null) =>\n temporaryTagAlwaysVisible ? (\n \n {text}\n \n ) : (\n \n {text}\n {icon}\n \n );\n\n const getContent = () => {\n const statusName = getStatusName({\n status,\n isShort: true,\n t,\n });\n\n if (isOnlyToPreview) {\n return getStatusComponent(\n getStatusName({\n status: DocumentStatus.READY_FOR_PREVIEW,\n isShort: true,\n t,\n }),\n 'success'\n );\n }\n\n switch (status) {\n case DocumentStatus.ISSUING:\n case DocumentStatus.SIGNING:\n return getStatusComponent(statusName, 'info');\n case DocumentStatus.EDITING:\n return getStatusComponent(statusName, 'default');\n case DocumentStatus.VALID:\n case DocumentStatus.READY_FOR_PREVIEW:\n case DocumentStatus.FINISHED:\n return getStatusComponent(statusName, 'success');\n case DocumentStatus.INVALIDATED:\n case DocumentStatus.EXPIRED:\n case DocumentStatus.REJECTED:\n return getStatusComponent(statusName, 'error');\n case DocumentStatus.TEMPORARILY_INVALIDATE:\n return getStatusComponent(statusName, 'warning');\n default:\n return getStatusComponent(status[0].toUpperCase() + status.toLowerCase().slice(1));\n }\n };\n\n const Component = smallScreen ? 'div' : ExtendedGrid;\n const componentProps = smallScreen ? {} : { item: true, ...otherProps };\n const classNameProperties = clsx(smallScreen && classes.mobileCell, [\n classes.cell,\n classes.statusCell,\n status,\n className,\n ]);\n\n return (\n \n {getContent()}\n \n );\n }\n);\n\nDocumentStatusCell.propTypes = {\n className: PropTypes.string,\n status: PropTypes.string,\n isOnlyToPreview: PropTypes.bool,\n smallScreen: PropTypes.bool,\n};\n\nDocumentStatusCell.defaultProps = {\n className: '',\n isOnlyToPreview: false,\n};\n\nexport default DocumentStatusCell;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Button, Fab, useMediaQuery, createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n smallFab: {\n width: 24,\n minWidth: 24,\n height: 24,\n minHeight: 24,\n '& svg': {\n width: 18,\n height: 18,\n },\n },\n }),\n { index: 0 }\n);\n\nconst EnterButtonCell = ({ className: classNameProp, onClick, type, label, icon }) => {\n const classes = useStyles();\n const mobileScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('xs'));\n\n const getButton = () => {\n switch (type) {\n case 'icon':\n return (\n {\n e.preventDefault();\n e.stopPropagation();\n onClick();\n return false;\n }}\n size=\"small\"\n classes={{\n root: classNameProp,\n sizeSmall: clsx(mobileScreen && classes.smallFab),\n }}\n >\n {icon}\n \n );\n case 'text':\n default:\n return (\n {\n e.preventDefault();\n e.stopPropagation();\n onClick();\n return false;\n }}\n >\n {label}\n \n );\n }\n };\n\n return getButton();\n};\n\nEnterButtonCell.propTypes = {\n className: PropTypes.string,\n onClick: PropTypes.func,\n type: PropTypes.oneOf(['icon', 'text']),\n label: PropTypes.string,\n icon: PropTypes.node,\n};\n\nexport default EnterButtonCell;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Checkbox } from '@material-ui/core';\nimport { useStyles } from '../styles';\n\nconst IconCell = ({\n onRowCheckboxClick,\n className: classNameProp,\n icon,\n isHover,\n isSelected,\n ...otherProps\n}) => {\n const classes = useStyles();\n const showCheckbox = isHover || isSelected;\n return (\n
    \n {\n e.stopPropagation();\n onRowCheckboxClick();\n }}\n checked={isSelected}\n style={{ display: showCheckbox ? 'block' : 'none' }}\n />\n
    {icon}
    \n
    \n );\n};\n\nIconCell.propTypes = {\n icon: PropTypes.node,\n isHover: PropTypes.bool,\n onRowCheckboxClick: PropTypes.func,\n isSelected: PropTypes.bool,\n className: PropTypes.string,\n};\n\nexport default IconCell;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Typography } from '@material-ui/core';\nimport { ExtendedGrid } from '../../index';\nimport { useStyles } from '../styles';\n\nconst TextCell = ({ className: classNameProp, value, ...otherProps }) => {\n const classes = useStyles();\n return (\n \n \n {value}\n \n \n );\n};\n\nTextCell.propTypes = {\n className: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nTextCell.defaultProps = {\n className: '',\n};\n\nexport default TextCell;\n","import React from 'react';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nconst dateLong = 'LL';\nconst dateLongShortMonth = 'll';\nconst dateShort = 'yyyy-MM-DD';\nconst timeLong = 'LTS';\nconst timeShort = 'LT';\n\nexport const DateTimeFormats = {\n dateLong,\n dateLongShortMonth,\n dateShort,\n timeLong,\n timeShort,\n};\n\n// English\n// January 3, 2023 at 6:04:23 PM UTC // dateFormat: dateLong, timeFormat: timeLong\n// January 3, 2023 at 6:04:23 PM // dateFormat: dateLong, timeFormat: timeLong\n// January 3, 2023 at 6:04 PM // dateFormat: dateLong, timeFormat: timeShort\n// Jan 3, 2023 at 06:04 PM // dateFormat: dateLongShortMonth, timeFormat: timeShort\n// 2023-01-03 // dateFormat: dateShort\n//\n// Polish\n// 3 stycznia 2023 o 18:01:25 CET // dateFormat: dateLong, timeFormat: timeLong\n// 3 stycznia 2023 o 18:01:25 // dateFormat: dateLong, timeFormat: timeLong\n// 3 stycznia 2023 o 18:01 // dateFormat: dateLong, timeFormat: timeShort\n// 3 sty 2023 o 18:01 // dateFormat: dateLongShortMonth, timeFormat: timeShort\n// 2023-01-03 // dateFormat: dateShort\n\nexport const FormatDate = ({\n date = new Date(),\n dateFormat = DateTimeFormats.dateShort,\n timeFormat,\n}) => {\n const { t } = useTranslation();\n let finalDate = moment(date).format(dateFormat);\n\n if (timeFormat) {\n finalDate = finalDate.concat(` ${t('common.at')} ${moment(date).format(timeFormat)}`);\n }\n\n return <>{finalDate};\n};\n\nFormatDate.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n date: PropTypes.object,\n dateFormat: PropTypes.string,\n timeFormat: PropTypes.string,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport TimeAgo from 'timeago-react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '@material-ui/core';\nimport { DateTimeFormats, FormatDate } from 'src/helpers/dateTimeFormats';\nimport * as timeago from 'timeago.js';\nimport pl from 'timeago.js/lib/lang/pl';\nimport { ExtendedGrid } from '../../index';\nimport { useStyles } from '../styles';\n\nconst TimeAgoCell = ({\n className: classNameProp,\n value,\n timeRangeAgo,\n live,\n smallScreen,\n ...otherProps\n}) => {\n const classes = useStyles();\n const { i18n } = useTranslation();\n const { language } = i18n;\n timeago.register('pl', pl);\n const type = Date.now() - new Date(value) <= timeRangeAgo ? 'ago' : 'date';\n const date = new Date(value);\n return (\n \n \n {type === 'ago' && }\n {type === 'date' && (\n \n )}\n \n \n );\n};\n\nTimeAgoCell.propTypes = {\n className: PropTypes.string,\n value: PropTypes.number,\n timeRangeAgo: PropTypes.number,\n live: PropTypes.bool,\n smallScreen: PropTypes.bool,\n};\n\nTimeAgoCell.defaultProps = {\n live: true,\n className: '',\n timeRangeAgo: 86400000,\n};\n\nexport default TimeAgoCell;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useDrag, useDrop } from 'react-dnd';\nimport { ButtonBase } from '@material-ui/core';\nimport { useLongPress } from 'use-long-press';\n\nimport {\n BadgeCell,\n DocumentStatusCell,\n EnterButtonCell,\n IconCell,\n TextCell,\n TimeAgoCell,\n} from './cells';\nimport { ExtendedGrid } from '../index';\nimport {\n CertificateFileIcon,\n DriveIcon,\n ESign as ESignIcon,\n ChevronRight as ChevronRightIcon,\n FolderColor as FolderIcon,\n} from '../CustomIcon';\nimport { useStyles } from './styles';\n\nconst DataTableRow = ({\n className: classNameProp,\n cols,\n onDblClick,\n smallScreen,\n i,\n isSelected,\n isHovered,\n iconWidth,\n row,\n onMouseEnter,\n onClick: onRowClick,\n onRowCheckboxClick,\n rowClasses,\n onLongPress,\n tile,\n defaultIcon,\n isLoading,\n onDrag,\n onDrop,\n isDrag,\n}) => {\n const classes = useStyles();\n const longPressProps = useLongPress(() => {\n if (smallScreen && !!onLongPress) {\n onLongPress(row);\n }\n });\n\n const getIcon = (row) => {\n const iconData = row.icon ? row.icon : defaultIcon;\n\n if (iconData === 'folder') {\n return ;\n }\n if (row?.documentType?.includes('dsl')) {\n return ;\n }\n if (row?.documentType?.includes('legacy-drive')) {\n return ;\n }\n return ;\n };\n\n const isButtonItem =\n typeof onDblClick === 'function' ||\n typeof onRowClick === 'function' ||\n typeof onLongPress === 'function';\n\n const Component = isButtonItem ? ButtonBase : 'div';\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n type: 'ITEM',\n item: { row },\n end: (item, monitor) => {\n const dropResult = monitor.getDropResult();\n return dropResult?.folderId ? onDrop(dropResult?.folderId) : onDrop(dropResult?.id);\n },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n handlerId: monitor.getHandlerId(),\n }),\n }));\n\n const [{ isOver }, drop] = useDrop(() => ({\n accept: 'ITEM',\n item: { row },\n drop: () => row,\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n }),\n }));\n\n useEffect(() => {\n if (onDrag && isDragging && typeof onDrag === 'function') {\n onDrag(row);\n }\n }, [isDragging]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n preview(getEmptyImage(), {\n captureDraggingState: true,\n });\n }, [preview]);\n\n const isRightActionButton = typeof onDblClick === 'function' && !tile && !smallScreen;\n\n return (\n {\n if (typeof onDblClick === 'function') {\n onDblClick(row);\n }\n }}\n onClick={() => {\n if (onRowClick) {\n if (typeof onRowClick === 'function') {\n onRowClick(row);\n }\n }\n }}\n onMouseEnter={onMouseEnter}\n {...longPressProps}\n >\n {(row.icon || defaultIcon) && (\n onRowCheckboxClick(row)}\n isSelected={isSelected && defaultIcon !== 'folder'}\n icon={getIcon(row)}\n style={{ minWidth: iconWidth, width: iconWidth }}\n className={clsx(iconWidth === 'auto' && classes.iconCellAuto)}\n />\n )}\n\n \n {cols.map((col) => {\n switch (col.type) {\n case 'person-badge':\n return (\n \n );\n case 'document-status':\n return !smallScreen ? (\n \n ) : null;\n case 'time-ago':\n return (\n \n );\n case 'text':\n default:\n return (\n \n );\n }\n })}\n \n\n {smallScreen && (\n <>\n {cols.map(\n (col) =>\n col.type === 'document-status' && (\n \n )\n )}\n \n )}\n\n {isRightActionButton && (\n onDblClick(row)} type=\"icon\" icon={} />\n )}\n \n );\n};\n\nDataTableRow.propTypes = {\n className: PropTypes.string,\n cols: PropTypes.arrayOf(PropTypes.shape()),\n onClick: PropTypes.func,\n onRowCheckboxClick: PropTypes.func,\n onDblClick: PropTypes.func,\n smallScreen: PropTypes.bool,\n i: PropTypes.number,\n iconWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\n row: PropTypes.shape(),\n rowClasses: PropTypes.arrayOf(PropTypes.string),\n onLongPress: PropTypes.func,\n tile: PropTypes.bool,\n defaultIcon: PropTypes.string,\n isLoading: PropTypes.bool,\n onDrag: PropTypes.func,\n onDrop: PropTypes.func,\n isDrag: PropTypes.bool,\n isSelected: PropTypes.bool,\n isHovered: PropTypes.bool,\n onMouseLeave: PropTypes.func,\n onMouseEnter: PropTypes.func,\n};\n\nDataTableRow.defaultProps = {\n iconWidth: 'auto',\n tile: false,\n};\n\nexport default DataTableRow;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n root: {\n width: '100%',\n textAlign: 'center',\n textTransform: 'uppercase',\n },\n button: {\n minWidth: breakpoints.values.xs / 2,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Button, Typography } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst NoDataItems = ({ className: classNameProp, label, buttonText, onClick }) => {\n const classes = useStyles();\n return (\n
    \n {label && (\n \n {label}\n \n )}\n\n {buttonText && !!onClick && (\n \n )}\n
    \n );\n};\n\nNoDataItems.propTypes = {\n className: PropTypes.string,\n label: PropTypes.string,\n buttonText: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport default NoDataItems;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { CircularProgress, LinearProgress } from '@material-ui/core';\nimport { ContentContainer } from 'src/components';\nimport DataTableHeader from './DataTableHeader';\nimport DataTableRow from './DataTableRow';\nimport { NoItems } from './subcomponents';\nimport { useStyles } from './styles';\n\nconst DataTable = ({\n rows,\n cols,\n withTableHeader,\n iconWidth,\n headerTextWidthLikeIcon,\n headerAction,\n title,\n titleRef,\n disableTitle,\n disableHeader,\n headerRef,\n onClick,\n onRowCheckboxClick,\n onDblClick,\n onLongPress,\n selectable,\n selectedRows,\n sortBy,\n sortOrder,\n onChangeSort,\n paginationType,\n totalItems,\n isLoading,\n isLoadingMore,\n onLoadMore,\n tileRows,\n smallScreen,\n defaultIcon,\n hasMoreItems,\n noItems,\n isDrag,\n onDrag,\n onDrop,\n dragMode,\n hoverable,\n classes: classesProp,\n}) => {\n const loaderRef = useRef(null);\n const classes = useStyles();\n const [hover, setHover] = useState(-1);\n const handleObserver = (entities) => {\n const target = entities[0];\n if (target.isIntersecting && !isLoadingMore) {\n onLoadMore();\n }\n };\n\n const handleMouseEnter = (index) => {\n if (hoverable) setHover(index);\n };\n\n const handleMouseLeave = () => {\n if (hoverable) setHover(-1);\n };\n\n useEffect(() => {\n if (paginationType === 'infinite') {\n const options = {\n root: null,\n rootMargin: '20px',\n threshold: 1.0,\n };\n const observer = new IntersectionObserver(handleObserver, options);\n if (loaderRef.current) {\n observer.observe(loaderRef.current);\n }\n }\n });\n\n const getRow = (row, i) => {\n const isTile = tileRows;\n const rowClasses = [];\n const isSelected =\n selectable && selectedRows !== undefined && selectedRows.indexOf(row.id) !== -1;\n rowClasses.push(classes.clickableRow);\n\n if (isTile) {\n rowClasses.push(classes.itemTileRow);\n }\n if (isSelected) {\n rowClasses.push(classes.itemRowSelected, dragMode ? classes.draggingRow : null);\n }\n\n return (\n handleMouseEnter(i)}\n />\n );\n };\n\n const renderRows = () => rows.map((row, i) => getRow(row, i));\n\n const getInfiniteLoader = () => {\n if (totalItems <= rows.length || isLoading || !hasMoreItems) {\n return null;\n }\n return (\n \n \n \n );\n };\n\n const renderNoItems = () => {\n const { label: noItemsLabel, buttonText: noItemsButtonText, onClick: noItemsOnClick } = noItems;\n\n return (\n \n );\n };\n\n return (\n
    \n {!disableHeader && (\n \n }\n titleRef={titleRef}\n disableTitle={disableTitle}\n sortBy={sortBy}\n sortOrder={sortOrder}\n onChangeSort={onChangeSort}\n isLoading={isLoading || isLoadingMore}\n smallScreen={smallScreen}\n />\n
    \n )}\n \n {rows && (\n <>\n {renderRows()}\n\n {paginationType === 'infinite' && getInfiniteLoader()}\n\n {isLoading && rows.length === 0 && (\n \n )}\n\n {!isLoading && rows.length === 0 && noItems && renderNoItems()}\n\n {/* TODO: Add classic pagination support */}\n \n )}\n
    \n \n );\n};\n\nDataTable.propTypes = {\n classes: PropTypes.shape({\n dataTableWrapper: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n itemRowSelected: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n draggingRow: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n itemTileRow: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n clickableRow: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n headerWrapper: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n container: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n tilesContainer: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n circularLoader: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n noItems: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n }),\n rows: PropTypes.arrayOf(PropTypes.shape),\n cols: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n dataKey: PropTypes.string.isRequired,\n sortable: PropTypes.bool,\n type: PropTypes.oneOf(['icon', 'text', 'time-ago', 'person-badge', 'document-status']),\n icon: PropTypes.oneOf(['file', 'folder']),\n colProps: PropTypes.shape(),\n })\n ),\n withTableHeader: PropTypes.bool,\n headerAction: PropTypes.node,\n selectable: PropTypes.bool,\n selectedRows: PropTypes.arrayOf(PropTypes.string),\n onClick: PropTypes.func,\n onRowCheckboxClick: PropTypes.func,\n onDblClick: PropTypes.func,\n onLongPress: PropTypes.func,\n sortBy: PropTypes.string,\n sortOrder: PropTypes.oneOf(['asc', 'desc']),\n onChangeSort: PropTypes.func,\n isLoading: PropTypes.bool,\n isLoadingMore: PropTypes.bool,\n totalItems: PropTypes.number,\n paginationType: PropTypes.oneOf(['infinite', 'pagination']),\n onLoadMore: PropTypes.func,\n iconWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\n headerTextWidthLikeIcon: PropTypes.bool,\n headerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n titleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n disableTitle: PropTypes.bool,\n disableHeader: PropTypes.bool,\n tileRows: PropTypes.bool,\n smallScreen: PropTypes.bool,\n defaultIcon: PropTypes.string,\n hasMoreItems: PropTypes.bool,\n noItems: PropTypes.shape({\n label: PropTypes.string,\n buttonText: PropTypes.string,\n onClick: PropTypes.func,\n }),\n isDrag: PropTypes.bool,\n onDrag: PropTypes.func,\n onDrop: PropTypes.func,\n dragMode: PropTypes.bool,\n hoverable: PropTypes.bool,\n};\n\nDataTable.defaultProps = {\n selectable: false,\n hoverable: false,\n paginationType: 'pagination',\n withTableHeader: false,\n disableHeader: false,\n disableTitle: false,\n tileRows: false,\n};\n\nexport default DataTable;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, mixins, palette, spacing }) =>\n createStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n minHeight: mixins.toolbar.minHeight,\n [breakpoints.up('lg')]: {\n paddingTop: spacing(3),\n paddingBottom: spacing(3),\n },\n },\n title: {\n flex: 1,\n },\n iconWrapper: {\n '& > svg': {\n display: 'block',\n opacity: 0.66,\n color: palette.text.secondary,\n },\n },\n closeButton: {\n margin: `${spacing(-0.5)}px 0 ${spacing(-0.5)}px ${spacing(1)}px`,\n [breakpoints.up('md')]: {\n marginRight: spacing(-0.5),\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DialogTitle, Typography, useMediaQuery } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { ExtendedGrid, HeaderButton } from 'src/components';\nimport { Close as CloseIcon } from '../CustomIcon';\n\nimport { useStyles } from './styles';\n\nconst DialogTitleWithButton = ({ onClose, title, titleAlign, titleVariant, icon }) => {\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const classes = useStyles();\n\n return (\n \n {icon ? (\n \n \n {icon}\n \n\n \n \n {title}\n \n \n \n ) : (\n \n {title}\n \n )}\n\n }\n tooltip={smallScreen && t('common.close')}\n />\n \n );\n};\n\nDialogTitleWithButton.propTypes = {\n onClose: PropTypes.func,\n title: PropTypes.string,\n titleVariant: PropTypes.oneOf([\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'subtitle1',\n 'subtitle2',\n 'body1',\n 'body2',\n 'caption',\n 'button',\n 'overline',\n 'inherit',\n ]),\n titleAlign: PropTypes.oneOf(['inherit', 'left', 'center', 'right', 'justify']),\n icon: PropTypes.node,\n};\n\nDialogTitleWithButton.defaultProps = {\n titleAlign: 'left',\n titleVariant: 'h2',\n};\n\nexport default DialogTitleWithButton;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\nimport { DocumentRole } from 'src/models/document.model';\n\nexport const moduleName = 'document-service';\n\nconst getUploadToken = (service = moduleName) =>\n axios\n .get(`/rest/${service}/files/upload-token?t=${Date.now()}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst createNewDocument = (workspaceId, name, documentType, filesIds, signatureLevel, folderId) => {\n const body = {\n name,\n documentType,\n filesIds,\n tags: [],\n roles: {\n viewersIds: [],\n auditsIds: [],\n signers: {\n isOrderSignificant: false,\n requiredSignersCount: 0,\n ids: [],\n },\n editorsIds: [],\n adminsIds: [],\n },\n signatureLevel: signatureLevel || null,\n };\n return axios\n .post(`/rest/${moduleName}/workspaces/${workspaceId}/documents`, body, {\n params: { folderId },\n withPermissions: ['DOCUMENT_SERVICE_USER_POST_DOCUMENTS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n};\n\nconst getDocument = (documentId, service = moduleName) =>\n axios\n .get(`/rest/${service}/documents/${documentId}`, {\n withPermissions: ['DOCUMENT_SERVICE_USER_GET_DOCUMENTS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst downloadDocument = (documentId, service = moduleName) =>\n axios\n .post(`/rest/${service}/documents/${documentId}/download`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst getDownloadToken = (documentId, index, page, service = moduleName) =>\n axios\n .get(\n `/rest/${service}/documents/${documentId}/files/download-token?index=${index}&page=${page}`,\n {\n withPermissions: ['DOCUMENT_SERVICE_USER_GET_FILE_DOWNLOAD'],\n }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n\nconst renameDocument = (documentId, name, service = moduleName) =>\n axios\n .put(\n `/rest/${service}/documents/${documentId}/name`,\n { name },\n {\n withPermissions: ['DOCUMENT_SERVICE_USER_PUT_DOCUMENT_NAME'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst signDocument = (documentId) =>\n axios\n .post(`/rest/${moduleName}/documents/${documentId}/sign`, null, {\n withPermissions: ['DOCUMENT_SERVICE_USER_POST_SIGN_DOCUMENT'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst rejectDocument = (documentId, reason) =>\n axios\n .post(\n `/rest/${moduleName}/documents/${documentId}/reject`,\n { reason },\n {\n withPermissions: ['DOCUMENT_SERVICE_USER_POST_REJECT_DOCUMENT'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst getHistoryDocument = (\n documentId,\n workspaceId,\n limit = 10,\n offset = 0,\n performedAction = [],\n rangeDate = [],\n service = moduleName\n) => {\n const query = encodeURIComponent(\n JSON.stringify({\n limit,\n offset,\n documentId,\n workspaceId,\n performedAction,\n dateFrom: rangeDate.length ? rangeDate[0] : null,\n dateTo: rangeDate.length ? rangeDate[1] : null,\n })\n );\n return axios\n .get(`/rest/${service}/documents/history?query=${query}`, {\n withPermissions: ['DOCUMENT_SERVICE_USER_GET_DOCUMENT_HISTORY'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n};\n\nconst getDocumentMembers = (documentId, service = moduleName) =>\n axios\n .get(`/rest/${service}/documents/${documentId}/members`, {\n withPermissions: ['DOCUMENT_SERVICE_USER_GET_ROLES'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst getDocumentInvitations = (documentId, service = moduleName) =>\n axios\n .get(`/rest/${service}/documents/${documentId}/invitations`, {\n withPermissions: ['DOCUMENT_SERVICE_USER_GET_DOCUMENT_INVITE'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst getDocumentRoleTypes = (documentId, service = moduleName) =>\n axios\n .get(`/rest/${service}/documents/${documentId}/roles`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst getDocumentMembersByRole = (documentId, role = DocumentRole.ADMINS, service = moduleName) =>\n axios\n .get(`/rest/${service}/documents/${documentId}/roles/${role}`, {\n withPermissions: ['DOCUMENT_SERVICE_USER_GET_ROLES'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst getSignatures = (documentId) =>\n axios\n .get(`/rest/${moduleName}/documents/${documentId}/signatures`, {\n withPermissions: ['DOCUMENT_SERVICE_USER_GET_ROLES'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n\nconst documentCoreService = {\n getUploadToken,\n createNewDocument,\n getDocument,\n downloadDocument,\n getDownloadToken,\n renameDocument,\n signDocument,\n rejectDocument,\n getHistoryDocument,\n getDocumentMembers,\n getDocumentInvitations,\n getDocumentMembersByRole,\n getDocumentRoleTypes,\n getSignatures,\n};\n\nexport default documentCoreService;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst moduleName = 'files-module';\n\nconst filesModuleService = {\n uploadFile,\n downloadFile,\n};\n\nfunction uploadFile(file, token, fileSize, config) {\n const formData = new FormData();\n formData.append('upfile', file);\n formData.append('token', token);\n formData.append('file_size', fileSize);\n\n return axios\n .post(`/rest/${moduleName}/v1/file`, formData, config)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction downloadFile(token, config = { responseType: 'blob' }) {\n return axios\n .get(`/rest/${moduleName}/v1/file?token=${token}`, config)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nexport default filesModuleService;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport documentCreationConstants from '../constants/documentCreation.constants';\nimport documentCoreService from '../services/documentCore.service';\nimport filesModuleService from '../services/filesModule.service';\nimport snackbarActions from './snackbar.actions';\n\nconst documentCreationActions = {\n uploadFile,\n clearDocumentCreatorStore,\n getUploadToken,\n createNewDocument,\n addFileListDropzone,\n deleteFileListDropzone,\n setProgressUpload,\n setTemplateDocument,\n setSignatureDocument,\n};\n\nfunction uploadFile(file, token, fileSize, config) {\n return (dispatch) => {\n dispatch({ type: documentCreationConstants.UPLOAD_FILE_REQUEST });\n filesModuleService\n .uploadFile(file, token, fileSize, config)\n .then((response) => {\n dispatch({\n type: documentCreationConstants.UPLOAD_FILE_SUCCESS,\n folders: response,\n token,\n });\n })\n .catch(() => {\n dispatch({ type: documentCreationConstants.UPLOAD_FILE_FAILURE, token });\n });\n };\n}\n\nfunction getUploadToken(service) {\n return (dispatch) => {\n dispatch({ type: documentCreationConstants.GET_UPLOAD_TOKEN_REQUEST });\n documentCoreService\n .getUploadToken(service)\n .then((response) => {\n dispatch({\n type: documentCreationConstants.GET_UPLOAD_TOKEN_SUCCESS,\n data: response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentCreationConstants.GET_UPLOAD_TOKEN_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction createNewDocument(workspaceId, name, documentType, fileId, signatureLevel, folderId) {\n return (dispatch) => {\n dispatch({ type: documentCreationConstants.CREATE_NEW_DOCUMENT_REQUEST });\n documentCoreService\n .createNewDocument(workspaceId, name, documentType, fileId, signatureLevel, folderId)\n .then((response) => {\n dispatch({\n type: documentCreationConstants.CREATE_NEW_DOCUMENT_SUCCESS,\n data: response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentCreationConstants.CREATE_NEW_DOCUMENT_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction clearDocumentCreatorStore() {\n return { type: documentCreationConstants.CLEAR_DOCUMENT_CREATOR_STORE };\n}\n\nfunction addFileListDropzone(file) {\n return { type: documentCreationConstants.ADD_FILE_DROPZONE, file };\n}\n\nfunction deleteFileListDropzone(index) {\n return { type: documentCreationConstants.DELETE_FILE_DROPZONE, index };\n}\n\nfunction setProgressUpload(progress, token) {\n return { type: documentCreationConstants.SET_PROGRESS_UPLOAD_FILE, progress, token };\n}\n\nfunction setTemplateDocument(template) {\n return { type: documentCreationConstants.SET_TEMPLATE_DOCUMENT, template };\n}\n\nfunction setSignatureDocument(signature) {\n return { type: documentCreationConstants.SET_SIGNATURE_DOCUMENT, signature };\n}\n\nexport default documentCreationActions;\n","import { fade } from '@material-ui/core/styles';\nimport { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, transitions }) =>\n createStyles({\n root: {},\n content: {\n [breakpoints.down('sm')]: {},\n },\n hiddenStep: {\n opacity: 0,\n visibility: 'hidden',\n position: 'fixed',\n pointerEvents: 'none',\n width: 0,\n height: 0,\n },\n title: {},\n subtitle: {\n [breakpoints.up('lg')]: {\n marginBottom: spacing(1),\n },\n },\n dropzoneWrapper: {\n [breakpoints.down('sm')]: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minHeight: '100%',\n },\n },\n dropzone: {\n position: 'relative',\n backgroundColor: palette.background.default,\n padding: spacing(5, 3),\n border: 'none !important',\n outline: 'none !important',\n boxSizing: 'border-box',\n borderRadius: 6,\n overflow: 'hidden',\n cursor: 'grabbing',\n justifyContent: 'center',\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n width: '100%',\n maxWidth: breakpoints.values.sm,\n marginLeft: 'auto',\n marginRight: 'auto',\n transition: transitions.create(['background'], {\n duration: transitions.duration.short,\n }),\n background: `linear-gradient(to right, ${palette.primary.light} 33%, #fff 0%) top/14px 1px repeat-x,\n linear-gradient(${palette.primary.light} 33%, #fff 0%) right/1px 14px repeat-y, \n linear-gradient(to right, ${palette.primary.light} 33%, #fff 0%) bottom/14px 1px repeat-x, \n linear-gradient(${palette.primary.light} 33%, #fff 0%) left/1px 14px repeat-y`,\n '&:focus, &:active': {\n border: `0.5px dashed ${palette.primary.light}`,\n },\n [breakpoints.down('sm')]: {\n padding: spacing(4, 3),\n },\n [breakpoints.down('xs')]: {\n padding: spacing(3, 2),\n minHeight: breakpoints.values.xs * 0.75,\n },\n },\n dropzoneActive: {\n backgroundColor: palette.background.default,\n background: `linear-gradient(to right, #222 33%, #fff 0%) top/14px 1px repeat-x,\n linear-gradient(#222 33%, #fff 0%) right/1px 14px repeat-y, \n linear-gradient(to right, #222 33%, #fff 0%) bottom/14px 1px repeat-x, \n linear-gradient(#222 33%, #fff 0%) left/1px 14px repeat-y`,\n },\n dropzoneReject: {\n backgroundColor: fade(palette.common.red, 0.08),\n background: `linear-gradient(to right, ${fade(\n palette.common.red,\n 0.28\n )} 33%, #fff 0%) top/14px 1px repeat-x,\n linear-gradient(${fade(palette.common.red, 0.28)} 33%, #fff 0%) right/1px 14px repeat-y, \n linear-gradient(to right, ${fade(\n palette.common.red,\n 0.28\n )} 33%, #fff 0%) bottom/14px 1px repeat-x, \n linear-gradient(${fade(palette.common.red, 0.28)} 33%, #fff 0%) left/1px 14px repeat-y`,\n },\n dropzoneAccept: {\n backgroundColor: fade(palette.common.green, 0.08),\n background: `linear-gradient(to right, ${fade(\n palette.common.green,\n 0.48\n )} 33%, #fff 0%) top/14px 1px repeat-x,\n linear-gradient(${fade(palette.common.green, 0.48)} 33%, #fff 0%) right/1px 14px repeat-y, \n linear-gradient(to right, ${fade(\n palette.common.green,\n 0.28\n )} 33%, #fff 0%) bottom/14px 1px repeat-x, \n linear-gradient(${fade(palette.common.green, 0.48)} 33%, #fff 0%) left/1px 14px repeat-y`,\n },\n dropzoneDisabled: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n iconBox: {\n position: 'relative',\n marginBottom: spacing(3),\n },\n icon: {\n fontSize: 58,\n },\n textSmall: {\n fontSize: 12,\n },\n smallIconBox: {\n width: spacing(2.2),\n height: spacing(2.2),\n borderRadius: '50%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: '#fff',\n position: 'absolute',\n right: 6,\n bottom: 10,\n },\n smallIcon: {\n fontSize: 12,\n color: palette.primary.main,\n },\n alert: {\n marginBottom: spacing(2),\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { ButtonBase, Typography } from '@material-ui/core';\nimport Dropzone from 'react-dropzone';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport { FileColor as FileColorIcon, ArrowTop as ArrowTopIcon } from 'src/components/CustomIcon';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport Alert from '@material-ui/lab/Alert';\nimport { useStyles } from '../../styles';\nimport { DropzoneVariant, getAcceptableFiles, getMaxSize } from '../../helpers';\n\nconst StepUpload = ({ classes: classesProp, smallScreen, endContent, handleDrop, variant }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const workspacePermissions = useSelector(\n (state) => state.identityStore.workspacePermissions,\n undefined\n );\n const avatarUploadMode = variant === DropzoneVariant.AVATAR;\n\n const isHavePermissions =\n (workspacePermissions.includes('DOCUMENT_SERVICE_USER_GET_FILE_UPLOAD') &&\n workspacePermissions.includes('DOCUMENT_SERVICE_USER_POST_DOCUMENTS')) ||\n avatarUploadMode ||\n variant === DropzoneVariant.CERTIFICATE;\n\n const acceptableFiles = getAcceptableFiles(variant);\n const MAX_SIZE = getMaxSize(variant);\n\n return (\n \n \n {\n {\n [DropzoneVariant.AVATAR]: t('dropzones.uploadPhotosTitle'),\n [DropzoneVariant.DOCUMENT]: t('dropzones.uploadTitle'),\n [DropzoneVariant.CERTIFICATE]: t('dropzones.uploadCertificateTitle'),\n }[variant]\n }\n \n\n {!smallScreen && (\n \n {\n {\n [DropzoneVariant.AVATAR]: t('dropzones.uploadPhotosSubTitle'),\n [DropzoneVariant.DOCUMENT]: t('dropzones.uploadSubTitle'),\n [DropzoneVariant.CERTIFICATE]: t('dropzones.uploadSubTitle'),\n }[variant]\n }\n \n )}\n \n }\n endContent={endContent}\n >\n
    \n {!isHavePermissions && (\n \n {t('selectTemplate.permissionAlert')}\n \n )}\n \n {({ getRootProps, getInputProps, isDragAccept, isDragReject, isDragActive }) => (\n \n \n
    \n \n
    \n \n
    \n
    \n \n {t('dropzones.uploadFileTitle')}\n \n \n {\n {\n [DropzoneVariant.AVATAR]: t('dropzones.uploadImageFileSubTitle'),\n [DropzoneVariant.DOCUMENT]: t('dropzones.uploadFileSubTitle'),\n [DropzoneVariant.CERTIFICATE]: t('dropzones.uploadFileSubTitle'),\n }[variant]\n }\n \n \n )}\n \n
    \n \n );\n};\n\nStepUpload.propTypes = {\n classes: PropTypes.string,\n smallScreen: PropTypes.bool,\n handleDrop: PropTypes.func,\n endContent: PropTypes.node,\n variant: PropTypes.oneOf([\n DropzoneVariant.AVATAR,\n DropzoneVariant.DOCUMENT,\n DropzoneVariant.CERTIFICATE,\n ]).isRequired,\n};\n\nexport default StepUpload;\n","import { fade, lighten } from '@material-ui/core/styles';\nimport { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shadows, shape, spacing, transitions, typography }) =>\n createStyles({\n root: {\n textAlign: 'center',\n },\n content: {\n [breakpoints.down('sm')]: {\n flex: 1,\n },\n },\n title: {},\n subtitle: {\n marginBottom: spacing(2),\n padding: spacing(0, 2),\n },\n uploadList: {\n marginBottom: spacing(6),\n [breakpoints.down('sm')]: {\n marginBottom: spacing(6),\n },\n },\n uploadItems: {\n display: 'flex',\n justifyContent: 'center',\n flexWrap: 'wrap',\n width: '100%',\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n minHeight: '100%',\n },\n },\n uploadItem: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n padding: spacing(2, 0),\n width: '100%',\n '&:not(:last-child)': {\n borderBottom: `1px solid ${palette.divider}`,\n },\n [breakpoints.down('sm')]: {\n '&:first-child': {\n paddingTop: 0,\n },\n '&:last-child': {\n paddingBottom: spacing(1),\n },\n },\n [breakpoints.up('md')]: {\n flexDirection: 'column',\n justifyContent: 'space-between',\n alignItems: 'normal',\n width: '25%',\n padding: spacing(2, 1),\n '&:not(:last-child)': {\n borderBottom: 0,\n },\n },\n '&:hover': {\n '& $deleteDesktopButton': {\n opacity: 1,\n },\n },\n },\n uploadItemContent: {\n width: `calc(100% - 60px - 32px - ${spacing(2 * 2)}px)`,\n [breakpoints.up('sm')]: {\n width: `calc(100% - 68px - 32px - ${spacing(2 * 2)}px)`,\n },\n [breakpoints.up('md')]: {\n width: '100%',\n },\n },\n uploadItemTitle: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n margin: `${spacing(2)}px 0 ${spacing(1)}px 0`,\n [breakpoints.down('sm')]: {\n marginTop: spacing(0),\n marginBottom: spacing(1),\n display: 'flex',\n justifyContent: 'flex-start',\n },\n },\n uploadName: {\n lineHeight: 1.3,\n [breakpoints.down('sm')]: {\n overflow: 'hidden',\n whiteSpace: 'normal',\n textOverflow: 'ellipsis',\n },\n },\n checkIcon: {\n display: 'inline-flex',\n color: palette.common.green,\n fontSize: 14,\n minWidth: 14,\n marginLeft: spacing(1),\n },\n iconBox: {\n width: 60,\n minWidth: 60,\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n backgroundColor: palette.secondary.light,\n borderRadius: shape.borderRadius,\n padding: spacing(0.5, 1),\n marginRight: spacing(2),\n transition: transitions.create(['box-shadow'], {\n duration: transitions.duration.short,\n }),\n [breakpoints.up('xs')]: {\n width: 68,\n minWidth: 68,\n },\n [breakpoints.up('md')]: {\n width: '100%',\n minWidth: 'initial',\n marginRight: 0,\n padding: spacing(1, 2),\n },\n },\n icon: {\n fontSize: spacing(4),\n [breakpoints.up('xs')]: {\n fontSize: spacing(5),\n },\n [breakpoints.up('md')]: {\n fontSize: spacing(7),\n },\n },\n valueText: {\n fontWeight: typography.fontWeightMedium,\n },\n valueTextSuccess: {\n color: palette.common.green,\n },\n barBox: {\n borderRadius: 4,\n },\n progressEnd: {\n backgroundColor: `${palette.common.green} !important`,\n },\n addItem: {\n color: palette.primary.main,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n height: '100%',\n borderRadius: shape.borderRadius,\n },\n iconAdd: {\n position: 'relative',\n zIndex: 1,\n color: palette.greySimple.main,\n width: spacing(8),\n height: spacing(8),\n margin: '0 auto',\n backgroundColor: fade(palette.background.paper, 0.5),\n border: `1px solid ${palette.divider}`,\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginBottom: spacing(1),\n transform: `translateY(${spacing(0.65)}px)`,\n },\n deleteDesktopButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n width: '100%',\n borderRadius: 'inherit',\n boxShadow: `0 0 0 1px ${palette.primary.main}`,\n opacity: 0,\n transition: transitions.create(['opacity'], {\n duration: transitions.duration.short,\n }),\n '& svg': {\n backgroundColor: palette.error.main,\n color: palette.error.contrastText,\n borderRadius: '50%',\n width: 32,\n height: 32,\n padding: 6,\n boxShadow: shadows[6],\n },\n },\n deleteButton: {\n backgroundColor: palette.error.main,\n marginLeft: spacing(2),\n transition: transitions.create(['opacity', 'color', 'background-color'], {\n duration: transitions.duration.short,\n }),\n '&:hover': {\n backgroundColor: lighten(palette.error.main, 0.075),\n },\n '&:focus, &:active': {\n backgroundColor: palette.error.dark,\n },\n '& svg': {\n color: palette.common.white,\n },\n },\n actionButtons: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n [breakpoints.up('sm')]: {\n flexDirection: 'row',\n justifyContent: 'center',\n },\n '& > *:not(:last-child)': {\n marginBottom: spacing(1),\n [breakpoints.up('sm')]: {\n marginBottom: 0,\n marginRight: spacing(2),\n },\n },\n },\n actionButton: {\n maxWidth: breakpoints.values.xs,\n },\n textAdd: {\n margin: spacing(0),\n marginTop: spacing(2),\n },\n }),\n { index: 0 }\n);\n","import { Box, LinearProgress, Typography } from '@material-ui/core';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useStyles } from '../styles';\n\nconst LinearProgressWithLabel = ({ value = 0 }) => {\n const classes = useStyles();\n const isProgressEnd = value === 100;\n return (\n \n \n \n \n \n {`${Math.round(value)}%`}\n \n \n );\n};\n\nLinearProgressWithLabel.propTypes = {\n value: PropTypes.number,\n};\n\nexport default LinearProgressWithLabel;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Button, ButtonBase, Fab, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport {\n FileColor as FileColorIcon,\n Plus as PlusIcon,\n Check as SuccessIcon,\n Delete as DeleteIcon,\n} from 'src/components/CustomIcon';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useSelector } from 'react-redux';\nimport Dropzone from 'react-dropzone';\nimport LinearProgressWithLabel from './subcomponents';\nimport { useStyles } from './styles';\nimport { DropzoneStep, DropzoneVariant, getAcceptableFiles, getMaxSize } from '../../helpers';\n\nconst StepList = ({\n className: classesProp,\n deleteFile,\n changeStep,\n smallScreen,\n creatorDocumentStepper,\n variant,\n handleDrop,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const { uploadFileStatus, filesListDropzone } = useSelector(\n (state) => state.documentCreationStore,\n undefined\n );\n const acceptableFiles = getAcceptableFiles(variant);\n const MAX_SIZE = getMaxSize(variant);\n const avatarUploadMode = variant === DropzoneVariant.AVATAR;\n const uploadedFileList = filesListDropzone.filter(\n (file) => file.uploadStatus === RequestStatus.SUCCESS\n );\n\n return (\n \n \n {t('dropzones.uploadListTitle')}\n \n {!smallScreen && (\n \n {t('dropzones.uploadListSubTitle')}\n \n )}\n \n }\n endContent={\n
    \n {smallScreen && (\n changeStep(DropzoneStep.UPLOAD)}\n >\n {filesListDropzone.length ? t('common.addAnotherFile') : t('common.addFile')}\n \n )}\n creatorDocumentStepper(2, filesListDropzone)}\n disabled={uploadedFileList.length === 0 || uploadFileStatus === RequestStatus.PENDING}\n >\n {\n {\n [DropzoneVariant.AVATAR]: t('common.createDocument'),\n [DropzoneVariant.DOCUMENT]: t('common.createDocument'),\n [DropzoneVariant.CERTIFICATE]: t('createCertificate.continue'),\n }[variant]\n }\n \n
    \n }\n >\n
    \n {filesListDropzone.map((item, key) => (\n
    \n
    \n \n \n {item.type}\n \n {!smallScreen && item.token && (\n deleteFile(key)}>\n \n \n )}\n
    \n
    \n
    \n \n {item.name}\n \n {Math.round(item.progress) === 100 &&\n item.uploadStatus === RequestStatus.SUCCESS && (\n \n )}\n
    \n\n {item.uploadStatus !== RequestStatus.ERROR ? (\n \n ) : (\n \n {t('dropzones.errorUploadFileText')}\n \n )}\n
    \n {smallScreen && item.token && (\n deleteFile(key)}>\n \n \n )}\n
    \n ))}\n\n {!smallScreen && (\n
    \n \n {({ getRootProps, getInputProps }) => (\n \n \n
    \n \n
    \n
    \n \n {filesListDropzone.length ? t('common.addAnotherFile') : t('common.addFile')}\n \n
    \n
    \n )}\n \n
    \n )}\n
    \n \n );\n};\n\nStepList.propTypes = {\n deleteFile: PropTypes.func,\n className: PropTypes.string,\n changeStep: PropTypes.func,\n smallScreen: PropTypes.bool,\n creatorDocumentStepper: PropTypes.func,\n handleDrop: PropTypes.func,\n variant: PropTypes.oneOf([\n DropzoneVariant.AVATAR,\n DropzoneVariant.DOCUMENT,\n DropzoneVariant.CERTIFICATE,\n ]).isRequired,\n};\n\nexport default StepList;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport documentCreationActions from 'src/redux/actions/documentCreation.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useSnackbar } from 'notistack';\nimport { useTranslation } from 'react-i18next';\nimport { moduleName as dslService } from 'src/redux/services/documentDSL.service';\nimport { StepUpload, StepList } from './steps';\nimport { useStyles } from './styles';\nimport { DropzoneStep, DropzoneVariant, getMaxSize } from './helpers';\nimport { moduleName as documentService } from '../../redux/services/documentCore.service';\n\nconst DropZone = ({\n smallScreen,\n creatorDocumentStepper,\n handleFileChange,\n uploadStepEndContent,\n variant,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { enqueueSnackbar } = useSnackbar();\n const location = useLocation();\n const dispatch = useDispatch();\n const isCertificate = variant === DropzoneVariant.CERTIFICATE;\n const apiService = isCertificate ? dslService : documentService;\n\n const getUploadTokenStatus = useSelector(\n (state) => state.documentCreationStore.getUploadTokenStatus,\n undefined\n );\n const uploadTokens = useSelector((state) => state.documentCreationStore.uploadTokens, undefined);\n const filesListDropzone = useSelector(\n (state) => state.documentCreationStore.filesListDropzone,\n undefined\n );\n const templateDocument = useSelector(\n (state) => state.documentCreationStore.templateDocument,\n undefined\n );\n const [activeStep, setStep] = useState(\n filesListDropzone.length > 0 ? DropzoneStep.LIST : DropzoneStep.UPLOAD\n );\n\n const avatarUploadMode = variant === DropzoneVariant.AVATAR;\n const MAX_SIZE = getMaxSize(variant);\n\n useEffect(() => {\n if (getUploadTokenStatus === RequestStatus.SUCCESS) {\n if (uploadTokens.length === filesListDropzone.length) {\n filesListDropzone.forEach((file) => {\n if (file.progress === 0) {\n uploadFile(file);\n }\n });\n }\n }\n if (getUploadTokenStatus === RequestStatus.ERROR) {\n if (uploadTokens.length !== filesListDropzone.length) {\n filesListDropzone.forEach((file, index) => {\n if (file.progress === 0) {\n deleteFile(index);\n }\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [uploadTokens, getUploadTokenStatus]);\n\n useEffect(() => {\n if (!templateDocument && !avatarUploadMode) {\n const documentTemplateType = location.pathname\n .split('/')\n .pop()\n .toUpperCase()\n .replaceAll('-', '_');\n dispatch(documentCreationActions.setTemplateDocument(documentTemplateType));\n // handleClose();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [templateDocument]);\n\n const setProgressUpload = (percent, token) => {\n dispatch(documentCreationActions.setProgressUpload(percent, token));\n };\n\n const uploadFile = (file) => {\n const config = {\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: (progressEvent) => {\n const { loaded, total } = progressEvent;\n const percent = Math.floor((loaded * 100) / total);\n setProgressUpload(percent, file.token);\n },\n };\n if (file) {\n dispatch(documentCreationActions.uploadFile(file.file, file.token, file.size, config));\n }\n };\n\n const deleteFile = (index) => {\n if (index !== -1) {\n dispatch(documentCreationActions.deleteFileListDropzone(index));\n }\n };\n\n const addFile = (file) => {\n avatarUploadMode ? handleFileChange(file) : changeStep(DropzoneStep.LIST);\n };\n\n const changeStep = (type) => {\n setStep(type);\n };\n\n const handleDrop = (acceptedFiles, rejectedFiles) => {\n if (rejectedFiles && rejectedFiles.length) {\n rejectedFiles.forEach((file) => {\n file.errors.forEach((error) => {\n if (error.code === 'file-too-large') {\n openSnackbar(\n RequestStatus.ERROR,\n `${t('dropzones.file')} ${file.file.name} ${t('dropzones.greaterThan')} ${\n MAX_SIZE / 1000000\n } mb.`\n );\n }\n });\n });\n }\n\n acceptedFiles.forEach((file, index) => {\n if (!avatarUploadMode) {\n getUploadToken();\n const splitName = file.name.split('.');\n const newFile = {\n name: splitName.slice(0, -1).join('.'),\n type: `.${splitName.pop()}`,\n size: file.size,\n progress: 0,\n file,\n };\n dispatch(documentCreationActions.addFileListDropzone(newFile));\n if (index === acceptedFiles.length - 1) {\n addFile(acceptedFiles);\n }\n } else {\n addFile(file);\n }\n });\n };\n\n const getUploadToken = () => {\n dispatch(documentCreationActions.getUploadToken(apiService));\n };\n\n const openSnackbar = (type, content) => {\n const options = {\n variant: type,\n message: content,\n };\n enqueueSnackbar(JSON.stringify(options));\n };\n\n return (\n <>\n \n \n \n );\n};\n\nDropZone.propTypes = {\n smallScreen: PropTypes.bool,\n creatorDocumentStepper: PropTypes.func,\n handleFileChange: PropTypes.func,\n uploadStepEndContent: PropTypes.node,\n variant: PropTypes.string.isRequired,\n};\n\nexport default DropZone;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {\n minHeight: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n inner: {\n maxWidth: breakpoints.values.sm,\n '& > *:not(:last-child)': {\n marginBottom: spacing(3),\n [breakpoints.up('sm')]: {\n marginBottom: spacing(4),\n },\n [breakpoints.up('lg')]: {\n marginBottom: spacing(5),\n },\n },\n },\n image: {\n minHeight: 32,\n },\n imageContainer: {\n '& img': {\n display: 'block',\n margin: '0 auto',\n width: '100%',\n maxWidth: 160,\n [breakpoints.up('xs')]: {\n maxWidth: 200,\n },\n [breakpoints.up('sm')]: {\n maxWidth: 240,\n },\n [breakpoints.up('lg')]: {\n maxWidth: 280,\n },\n },\n },\n imageLoader: {\n margin: '0 auto',\n },\n button: {\n width: '100%',\n maxWidth: 300,\n },\n disabled: {\n opacity: 0,\n display: 'none !important',\n },\n title: {\n whiteSpace: 'pre-line',\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Box, Button, CircularProgress, Typography } from '@material-ui/core';\nimport Img from 'react-image';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst EmptyBanner = ({\n children,\n bottomContent,\n src,\n title,\n titleVariant,\n description,\n buttonLabel,\n disabledImage,\n onClick,\n onLoad,\n}) => {\n const [didMount, setDidMount] = useState(false);\n const classes = useStyles();\n useEffect(() => {\n setDidMount(true);\n return () => setDidMount(false);\n }, []);\n\n if (!didMount) {\n return null;\n }\n return (\n
    \n \n {src && (\n (\n
    \n {children}\n
    \n )}\n loader={!disabledImage && }\n />\n )}\n
    \n {children}\n\n {title && (\n \n {title}\n \n )}\n {description && (\n \n {description}\n \n )}\n {bottomContent}\n
    \n\n {onClick && buttonLabel && (\n \n )}\n
    \n
    \n );\n};\n\nEmptyBanner.propTypes = {\n children: PropTypes.node,\n bottomContent: PropTypes.node,\n src: PropTypes.string,\n title: PropTypes.string,\n titleVariant: PropTypes.oneOfType([\n PropTypes.oneOf([\n 'body1',\n 'body2',\n 'button',\n 'caption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'inherit',\n 'overline',\n 'subtitle1',\n 'subtitle2',\n ]),\n PropTypes.string,\n ]),\n description: PropTypes.string,\n buttonLabel: PropTypes.string,\n disabledImage: PropTypes.bool,\n onClick: PropTypes.func,\n onLoad: PropTypes.func,\n};\n\nEmptyBanner.defaultProps = {\n titleVariant: 'h1',\n};\n\nexport default EmptyBanner;\n","import { keys as breakpointKeys } from '@material-ui/core/styles/createBreakpoints';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nbreakpointKeys.unshift('xxs');\n\nexport const SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nexport const GRID_SIZES = ['auto', true, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nconst generateGrid = (globalStyles, breakpoints, breakpoint) => {\n const styles = {};\n\n GRID_SIZES.forEach((size) => {\n const key = `item-${breakpoint}-${size}`;\n\n if (size >= 0 && size <= 12) {\n if (size !== 0) {\n const width = `${Math.round((size / 12) * 10e7) / 10e5}%`;\n\n styles[`item-offset-${breakpoint}-${size}`] = { marginLeft: width };\n styles[`item-order-${breakpoint}-${size}`] = { order: size };\n styles[key] = {\n display: 'block',\n flexBasis: width,\n flexGrow: 0,\n maxWidth: width,\n };\n }\n if (size === 0) {\n styles[`item-offset-${breakpoint}-${size}`] = { marginLeft: 0 };\n styles[key] = { display: 'none' };\n }\n }\n\n if (size === true) {\n styles[key] = {\n display: 'block',\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: '100%',\n };\n return;\n }\n\n if (size === 'auto') {\n styles[key] = {\n display: 'block',\n flexBasis: 'auto',\n flexGrow: 0,\n maxWidth: 'none',\n };\n }\n });\n\n // multi-line alignment in main axis\n styles[`align-content-${breakpoint}-stretch`] = { alignContent: 'stretch' };\n styles[`align-content-${breakpoint}-center`] = { alignContent: 'center' };\n styles[`align-content-${breakpoint}-flex-start`] = { alignContent: 'flex-start' };\n styles[`align-content-${breakpoint}-flex-end`] = { alignContent: 'flex-end' };\n styles[`align-content-${breakpoint}-space-between`] = { alignContent: 'space-between' };\n styles[`align-content-${breakpoint}-space-around`] = { alignContent: 'space-around' };\n\n // alignment in cross axis\n styles[`align-items-${breakpoint}-stretch`] = { alignItems: 'stretch' };\n styles[`align-items-${breakpoint}-center`] = { alignItems: 'center' };\n styles[`align-items-${breakpoint}-flex-start`] = { alignItems: 'flex-start' };\n styles[`align-items-${breakpoint}-flex-end`] = { alignItems: 'flex-end' };\n styles[`align-items-${breakpoint}-baseline`] = { alignItems: 'baseline' };\n\n // alignment in main axis\n styles[`justify-content-${breakpoint}-center`] = { justifyContent: 'center' };\n styles[`justify-content-${breakpoint}-flex-start`] = { justifyContent: 'flex-start' };\n styles[`justify-content-${breakpoint}-flex-end`] = { justifyContent: 'flex-end' };\n styles[`justify-content-${breakpoint}-space-between`] = { justifyContent: 'space-between' };\n styles[`justify-content-${breakpoint}-space-around`] = { justifyContent: 'space-around' };\n styles[`justify-content-${breakpoint}-space-evenly`] = {\n justifyContent: 'space-evenly',\n };\n\n // layout (direction)\n styles[`direction-${breakpoint}-column`] = { flexDirection: 'column' };\n styles[`direction-${breakpoint}-column-reverse`] = { flexDirection: 'column-reverse' };\n styles[`direction-${breakpoint}-row`] = { flexDirection: 'row' };\n styles[`direction-${breakpoint}-row-reverse`] = { flexDirection: 'row-reverse' };\n\n // wrapping\n styles[`wrap-${breakpoint}-wrap`] = { flexWrap: 'wrap' };\n styles[`wrap-${breakpoint}-nowrap`] = { flexWrap: 'nowrap' };\n styles[`wrap-${breakpoint}-wrap-reverse`] = { flexWrap: 'wrap-reverse' };\n\n // text alignment\n styles[`text-align-${breakpoint}-left`] = { textAlign: 'left' };\n styles[`text-align-${breakpoint}-right`] = { textAlign: 'right' };\n styles[`text-align-${breakpoint}-center`] = { textAlign: 'center' };\n styles[`text-align-${breakpoint}-justify`] = { textAlign: 'justify' };\n styles[`text-align-${breakpoint}-inherit`] = { textAlign: 'inherit' };\n styles[`text-align-${breakpoint}-unset`] = { textAlign: 'unset' };\n\n // No need for a media query for the first size.\n if (breakpoint === 'xxs') {\n Object.assign(globalStyles, styles);\n } else {\n // eslint-disable-next-line no-param-reassign\n globalStyles[breakpoints.up(breakpoint)] = styles;\n }\n};\n\nconst getOffset = (val, div = 1) => {\n const parse = parseFloat(val);\n return `${parse / div}${String(val).replace(String(parse), '') || 'px'}`;\n};\n\nconst generateGutter = (space) => {\n const styles = {};\n\n SPACINGS.forEach((spacingItem) => {\n const themeSpacing = space(spacingItem);\n\n if (themeSpacing === 0) {\n return;\n }\n\n styles[`spacing-${spacingItem}`] = {\n margin: `-${getOffset(themeSpacing, 2)}`,\n width: `calc(100% + ${getOffset(themeSpacing)})`,\n '& > $item': {\n padding: getOffset(themeSpacing, 2),\n },\n };\n\n styles[`spacing-x-${spacingItem}`] = {\n marginLeft: `-${getOffset(themeSpacing, 2)}`,\n marginRight: `-${getOffset(themeSpacing, 2)}`,\n width: `calc(100% + ${getOffset(themeSpacing)})`,\n '& > $item': {\n paddingLeft: getOffset(themeSpacing, 2),\n paddingRight: getOffset(themeSpacing, 2),\n },\n };\n\n styles[`spacing-y-${spacingItem}`] = {\n marginTop: `-${getOffset(themeSpacing, 2)}`,\n marginBottom: `-${getOffset(themeSpacing, 2)}`,\n '& > $item': {\n paddingTop: getOffset(themeSpacing, 2),\n paddingBottom: getOffset(themeSpacing, 2),\n },\n };\n });\n\n return styles;\n};\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {},\n container: {\n boxSizing: 'border-box',\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n },\n item: {\n boxSizing: 'border-box',\n margin: '0', // For instance, it's useful when used with a `figure` element.\n },\n zeroMinWidth: {\n minWidth: 0,\n },\n ...generateGutter(spacing),\n ...breakpointKeys.reduce((accumulator, key) => {\n // Use side effect over immutability for better performance.\n generateGrid(accumulator, breakpoints, key);\n return accumulator;\n }, {}),\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst ExtendedGrid = ({\n xxs,\n xs,\n sm,\n md,\n lg,\n xl,\n alignContentXxs,\n alignContentXs,\n alignContentSm,\n alignContentMd,\n alignContentLg,\n alignContentXl,\n alignItemsXxs,\n alignItemsXs,\n alignItemsSm,\n alignItemsMd,\n alignItemsLg,\n alignItemsXl,\n justifyContentXxs,\n justifyContentXs,\n justifyContentSm,\n justifyContentMd,\n justifyContentLg,\n justifyContentXl,\n directionXxs,\n directionXs,\n directionSm,\n directionMd,\n directionLg,\n directionXl,\n wrapXxs,\n wrapXs,\n wrapSm,\n wrapMd,\n wrapLg,\n wrapXl,\n textAlignXxs,\n textAlignXs,\n textAlignSm,\n textAlignMd,\n textAlignLg,\n textAlignXl,\n offsetXxs,\n offsetXs,\n offsetSm,\n offsetMd,\n offsetLg,\n offsetXl,\n orderXxs,\n orderXs,\n orderSm,\n orderMd,\n orderLg,\n orderXl,\n spacing,\n spacingX,\n spacingY,\n className: classNameProp,\n container,\n item,\n zeroMinWidth,\n component: Component = 'div',\n ...other\n}) => {\n const classes = useStyles();\n const className = clsx(\n classes.root,\n {\n [classes.container]: container,\n [classes.item]: item,\n [classes.zeroMinWidth]: zeroMinWidth,\n\n [classes[`spacing-${String(spacing)}`]]: container && spacing !== 0,\n [classes[`spacing-x-${String(spacingX)}`]]: container && spacingX !== 0,\n [classes[`spacing-y-${String(spacingY)}`]]: container && spacingY !== 0,\n\n [classes[`item-xxs-${String(xxs)}`]]: xxs !== false,\n [classes[`item-xs-${String(xs)}`]]: xs !== false,\n [classes[`item-sm-${String(sm)}`]]: sm !== false,\n [classes[`item-md-${String(md)}`]]: md !== false,\n [classes[`item-lg-${String(lg)}`]]: lg !== false,\n [classes[`item-xl-${String(xl)}`]]: xl !== false,\n\n [classes[`direction-xxs-${String(directionXxs)}`]]: container && directionXxs !== 'row',\n [classes[`direction-xs-${String(directionXs)}`]]: container && directionXs !== false,\n [classes[`direction-sm-${String(directionSm)}`]]: container && directionSm !== false,\n [classes[`direction-md-${String(directionMd)}`]]: container && directionMd !== false,\n [classes[`direction-lg-${String(directionLg)}`]]: container && directionLg !== false,\n [classes[`direction-xl-${String(directionXl)}`]]: container && directionXl !== false,\n\n [classes[`wrap-xxs-${String(wrapXxs)}`]]: container && wrapXxs !== 'wrap',\n [classes[`wrap-xs-${String(wrapXs)}`]]: container && wrapXs !== false,\n [classes[`wrap-sm-${String(wrapSm)}`]]: container && wrapSm !== false,\n [classes[`wrap-md-${String(wrapMd)}`]]: container && wrapMd !== false,\n [classes[`wrap-lg-${String(wrapLg)}`]]: container && wrapLg !== false,\n [classes[`wrap-xl-${String(wrapXl)}`]]: container && wrapXl !== false,\n\n [classes[`align-items-xxs-${String(alignItemsXxs)}`]]:\n container && alignItemsXxs !== 'stretch',\n [classes[`align-items-xs-${String(alignItemsXs)}`]]: container && alignItemsXs !== false,\n [classes[`align-items-sm-${String(alignItemsSm)}`]]: container && alignItemsSm !== false,\n [classes[`align-items-md-${String(alignItemsMd)}`]]: container && alignItemsMd !== false,\n [classes[`align-items-lg-${String(alignItemsLg)}`]]: container && alignItemsLg !== false,\n [classes[`align-items-xl-${String(alignItemsXl)}`]]: container && alignItemsXl !== false,\n\n [classes[`align-content-xxs-${String(alignContentXxs)}`]]:\n container && alignContentXxs !== 'stretch',\n [classes[`align-content-xs-${String(alignContentXs)}`]]:\n container && alignContentXs !== false,\n [classes[`align-content-sm-${String(alignContentSm)}`]]:\n container && alignContentSm !== false,\n [classes[`align-content-md-${String(alignContentMd)}`]]:\n container && alignContentMd !== false,\n [classes[`align-content-lg-${String(alignContentLg)}`]]:\n container && alignContentLg !== false,\n [classes[`align-content-xl-${String(alignContentXl)}`]]:\n container && alignContentXl !== false,\n\n [classes[`justify-content-xxs-${String(justifyContentXxs)}`]]:\n container && justifyContentXxs !== 'flex-start',\n [classes[`justify-content-xs-${String(justifyContentXs)}`]]:\n container && justifyContentXs !== false,\n [classes[`justify-content-sm-${String(justifyContentSm)}`]]:\n container && justifyContentSm !== false,\n [classes[`justify-content-md-${String(justifyContentMd)}`]]:\n container && justifyContentMd !== false,\n [classes[`justify-content-lg-${String(justifyContentLg)}`]]:\n container && justifyContentLg !== false,\n [classes[`justify-content-xl-${String(justifyContentXl)}`]]:\n container && justifyContentXl !== false,\n\n [classes[`text-align-xxs-${String(textAlignXxs)}`]]: textAlignXxs !== false,\n [classes[`text-align-xs-${String(textAlignXs)}`]]: textAlignXs !== false,\n [classes[`text-align-sm-${String(textAlignSm)}`]]: textAlignSm !== false,\n [classes[`text-align-md-${String(textAlignMd)}`]]: textAlignMd !== false,\n [classes[`text-align-lg-${String(textAlignLg)}`]]: textAlignLg !== false,\n [classes[`text-align-xl-${String(textAlignXl)}`]]: textAlignXl !== false,\n\n [classes[`item-offset-xxs-${String(offsetXxs)}`]]: item && offsetXxs !== false,\n [classes[`item-offset-xs-${String(offsetXs)}`]]: item && offsetXs !== false,\n [classes[`item-offset-sm-${String(offsetSm)}`]]: item && offsetSm !== false,\n [classes[`item-offset-md-${String(offsetMd)}`]]: item && offsetMd !== false,\n [classes[`item-offset-lg-${String(offsetLg)}`]]: item && offsetLg !== false,\n [classes[`item-offset-xl-${String(offsetXl)}`]]: item && offsetXl !== false,\n\n [classes[`item-order-xxs-${String(orderXxs)}`]]: item && orderXxs !== false,\n [classes[`item-order-xs-${String(orderXs)}`]]: item && orderXs !== false,\n [classes[`item-order-sm-${String(orderSm)}`]]: item && orderSm !== false,\n [classes[`item-order-md-${String(orderMd)}`]]: item && orderMd !== false,\n [classes[`item-order-lg-${String(orderLg)}`]]: item && orderLg !== false,\n [classes[`item-order-xl-${String(orderXl)}`]]: item && orderXl !== false,\n },\n classNameProp\n );\n\n return ;\n};\n\nExtendedGrid.propTypes = {\n xxs: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n PropTypes.bool,\n ]),\n xs: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n PropTypes.bool,\n ]),\n sm: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n PropTypes.bool,\n ]),\n md: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n PropTypes.bool,\n ]),\n lg: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n PropTypes.bool,\n ]),\n xl: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n PropTypes.bool,\n ]),\n alignContentXxs: PropTypes.oneOf([\n 'stretch',\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n ]),\n alignContentXs: PropTypes.oneOf([\n false,\n 'stretch',\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n ]),\n alignContentSm: PropTypes.oneOf([\n false,\n 'stretch',\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n ]),\n alignContentMd: PropTypes.oneOf([\n false,\n 'stretch',\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n ]),\n alignContentLg: PropTypes.oneOf([\n false,\n 'stretch',\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n ]),\n alignContentXl: PropTypes.oneOf([\n false,\n 'stretch',\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n ]),\n alignItemsXxs: PropTypes.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n alignItemsXs: PropTypes.oneOf([false, 'flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n alignItemsSm: PropTypes.oneOf([false, 'flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n alignItemsMd: PropTypes.oneOf([false, 'flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n alignItemsLg: PropTypes.oneOf([false, 'flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n alignItemsXl: PropTypes.oneOf([false, 'flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n justifyContentXxs: PropTypes.oneOf([\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ]),\n justifyContentXs: PropTypes.oneOf([\n false,\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ]),\n justifyContentSm: PropTypes.oneOf([\n false,\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ]),\n justifyContentMd: PropTypes.oneOf([\n false,\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ]),\n justifyContentLg: PropTypes.oneOf([\n false,\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ]),\n justifyContentXl: PropTypes.oneOf([\n false,\n 'center',\n 'flex-start',\n 'flex-end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n ]),\n directionXxs: PropTypes.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),\n directionXs: PropTypes.oneOf([false, 'row', 'row-reverse', 'column', 'column-reverse']),\n directionSm: PropTypes.oneOf([false, 'row', 'row-reverse', 'column', 'column-reverse']),\n directionMd: PropTypes.oneOf([false, 'row', 'row-reverse', 'column', 'column-reverse']),\n directionLg: PropTypes.oneOf([false, 'row', 'row-reverse', 'column', 'column-reverse']),\n directionXl: PropTypes.oneOf([false, 'row', 'row-reverse', 'column', 'column-reverse']),\n textAlignXxs: PropTypes.oneOf([false, 'left', 'right', 'center', 'justify', 'inherit', 'unset']),\n textAlignXs: PropTypes.oneOf([false, 'left', 'right', 'center', 'justify', 'inherit', 'unset']),\n textAlignSm: PropTypes.oneOf([false, 'left', 'right', 'center', 'justify', 'inherit', 'unset']),\n textAlignMd: PropTypes.oneOf([false, 'left', 'right', 'center', 'justify', 'inherit', 'unset']),\n textAlignLg: PropTypes.oneOf([false, 'left', 'right', 'center', 'justify', 'inherit', 'unset']),\n textAlignXl: PropTypes.oneOf([false, 'left', 'right', 'center', 'justify', 'inherit', 'unset']),\n offsetXxs: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n offsetXs: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n offsetSm: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n offsetMd: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n offsetLg: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n offsetXl: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n wrapXxs: PropTypes.oneOf(['nowrap', 'wrap', 'wrap-reverse']),\n wrapXs: PropTypes.oneOf([false, 'nowrap', 'wrap', 'wrap-reverse']),\n wrapSm: PropTypes.oneOf([false, 'nowrap', 'wrap', 'wrap-reverse']),\n wrapMd: PropTypes.oneOf([false, 'nowrap', 'wrap', 'wrap-reverse']),\n wrapLg: PropTypes.oneOf([false, 'nowrap', 'wrap', 'wrap-reverse']),\n wrapXl: PropTypes.oneOf([false, 'nowrap', 'wrap', 'wrap-reverse']),\n orderXxs: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n orderXs: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n orderSm: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n orderMd: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n orderLg: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n orderXl: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n spacing: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n spacingX: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n spacingY: PropTypes.oneOf([false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),\n children: PropTypes.node,\n className: PropTypes.string,\n container: PropTypes.bool,\n item: PropTypes.bool,\n zeroMinWidth: PropTypes.bool,\n component: PropTypes.elementType,\n};\n\nExtendedGrid.defaultProps = {\n xxs: false,\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n alignContentXxs: 'stretch',\n alignContentXs: false,\n alignContentSm: false,\n alignContentMd: false,\n alignContentLg: false,\n alignContentXl: false,\n alignItemsXxs: 'stretch',\n alignItemsXs: false,\n alignItemsSm: false,\n alignItemsMd: false,\n alignItemsLg: false,\n alignItemsXl: false,\n justifyContentXxs: 'flex-start',\n justifyContentXs: false,\n justifyContentSm: false,\n justifyContentMd: false,\n justifyContentLg: false,\n justifyContentXl: false,\n directionXxs: 'row',\n directionXs: false,\n directionSm: false,\n directionMd: false,\n directionLg: false,\n directionXl: false,\n wrapXxs: 'wrap',\n wrapXs: false,\n wrapSm: false,\n wrapMd: false,\n wrapLg: false,\n wrapXl: false,\n textAlignXxs: false,\n textAlignXs: false,\n textAlignSm: false,\n textAlignMd: false,\n textAlignLg: false,\n textAlignXl: false,\n offsetXxs: false,\n offsetXs: false,\n offsetSm: false,\n offsetMd: false,\n offsetLg: false,\n offsetXl: false,\n orderXxs: false,\n orderXs: false,\n orderSm: false,\n orderMd: false,\n orderLg: false,\n orderXl: false,\n spacing: 0,\n spacingX: false,\n spacingY: false,\n container: false,\n item: false,\n zeroMinWidth: false,\n};\n\nexport default ExtendedGrid;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n root: {\n zIndex: 2,\n color: palette.primary.main,\n background: palette.common.white,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Backdrop, CircularProgress } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst FullPageLoader = ({ className: classNameProp, open, transitionDuration }) => {\n const classes = useStyles();\n\n return (\n \n \n \n );\n};\n\nFullPageLoader.propTypes = {\n className: PropTypes.string,\n open: PropTypes.bool,\n transitionDuration: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number,\n }),\n ]),\n};\n\nFullPageLoader.defaultProps = {\n open: false,\n transitionDuration: { enter: 300, exit: 300 },\n};\n\nexport default FullPageLoader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Typography } from '@material-ui/core';\nimport { ContentContainer, HeaderButton, TopBarContainer, Logo } from 'src/components';\nimport { ArrowLeftSLine as BackIcon, Close as CloseIcon } from 'src/components/CustomIcon';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(\n ({ breakpoints }) => ({\n header: {\n justifyContent: 'space-between',\n [breakpoints.up('sm')]: {\n justifyContent: 'flex-end',\n },\n },\n headerWithLeftSpace: {\n marginLeft: 40,\n [breakpoints.up('md')]: {\n marginLeft: 48,\n },\n },\n headerWithLogo: {\n justifyContent: 'space-between',\n },\n title: {\n flex: 1,\n overflow: 'hidden',\n },\n closeButton: {\n [breakpoints.up('lg')]: {\n marginRight: -12,\n },\n },\n }),\n { index: 0 }\n);\n\nconst DialogTitle = (props) => {\n const classes = useStyles({});\n const { t } = useTranslation();\n const { children, onClose, onBack, leftSpace, withLogo } = props;\n\n const titleContentHorizontalProp = () => {\n if ((leftSpace || onBack) && onClose) {\n return true;\n }\n if (leftSpace || onBack) {\n return 'left';\n }\n if (onClose) {\n return 'right';\n }\n return false;\n };\n\n return (\n \n {withLogo ? :
    }\n\n {onBack ? (\n <>\n }\n tooltip={t('common.back')}\n />\n \n ) : (\n
    \n )}\n\n \n {children}\n \n\n {onClose && (\n }\n tooltip={t('common.close')}\n />\n )}\n \n );\n};\n\nDialogTitle.propTypes = {\n children: PropTypes.node,\n onClose: PropTypes.func,\n onBack: PropTypes.func,\n withLogo: PropTypes.bool,\n leftSpace: PropTypes.bool,\n};\n\nDialogTitle.defaultProps = {\n leftSpace: false,\n};\n\nexport default DialogTitle;\n","/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ContentContainer } from 'src/components';\n\nconst useStyles = makeStyles(() => ({\n root: {},\n}));\n\nconst DialogContent = (props) => {\n const classes = useStyles({});\n\n const { children, ...other } = props;\n return (\n \n {children}\n \n );\n};\n\nDialogContent.propTypes = {\n children: PropTypes.node,\n classes: PropTypes.objectOf(PropTypes.string),\n dividers: PropTypes.bool,\n};\n\nexport default DialogContent;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, custom, palette }) =>\n createStyles({\n root: {},\n greyBackground: {\n background: palette.background.default,\n },\n content: {\n width: '100%',\n flex: '1 1 auto',\n overflowX: 'hidden',\n overflowY: 'auto',\n paddingTop: '0 !important',\n height: `calc(100vh - ${custom.headerMobileNavHeight}px)`,\n [breakpoints.up('md')]: {\n height: `calc(100vh - ${custom.headerNavHeight}px)`,\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Dialog, duration } from '@material-ui/core';\nimport { DialogTitle, DialogContent } from './subcomponents';\n\nimport { useStyles } from './styles';\n\nconst FullScreenDialog = ({\n className: classNameProp,\n isOpen,\n children,\n onClose,\n onBack,\n title,\n titleLeftSpace,\n backgroundVariant,\n withLogo,\n transitionDuration,\n}) => {\n const classes = useStyles();\n return (\n \n \n {title}\n \n \n {children}\n \n \n );\n};\n\nFullScreenDialog.propTypes = {\n className: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n isOpen: PropTypes.bool,\n children: PropTypes.node,\n onClose: PropTypes.func,\n onBack: PropTypes.func,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n backgroundVariant: PropTypes.oneOf(['default', 'grey']),\n titleLeftSpace: PropTypes.bool,\n withLogo: PropTypes.bool,\n transitionDuration: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number,\n }),\n ]),\n};\n\nFullScreenDialog.defaultProps = {\n titleLeftSpace: false,\n backgroundVariant: 'default',\n transitionDuration: { enter: duration.enteringScreen, exit: duration.leavingScreen },\n};\n\nexport default FullScreenDialog;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, custom, mixins, palette }) =>\n createStyles({\n root: {\n display: 'flex',\n minHeight: '100%',\n width: '100%',\n },\n drawerRoot: {\n width: '100%',\n maxWidth: '100%',\n [breakpoints.up('xs')]: {\n width: custom.fullModalMenuWidth,\n maxWidth: '100%',\n },\n [breakpoints.only('sm')]: {\n width: '50%',\n minWidth: custom.fullModalMenuWidth,\n },\n },\n drawerPaper: {\n width: 'inherit',\n maxWidth: 'inherit',\n minWidth: 'inherit',\n borderRight: `none`,\n [breakpoints.up('md')]: {\n borderRight: `1px solid ${palette.greySimple.lightest}`,\n },\n },\n content: {\n flexGrow: 1,\n position: 'relative',\n },\n backButton: {\n display: 'flex',\n alignItems: 'center',\n position: 'fixed',\n top: 0,\n left: 0,\n ...mixins.toolbar,\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { Drawer, useMediaQuery } from '@material-ui/core';\nimport { ContentContainer, HeaderButton, MenuSidebar } from 'src/components';\nimport { Menu as OpenIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst FullScreenDialogContentWrapper = ({ className: classNameProp, children, menuLinks }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const [open, setOpen] = useState(false);\n\n const drawerToggle = {\n open: () => {\n setOpen(true);\n },\n close: () => {\n setOpen(false);\n },\n toggle: () => {\n setOpen(!open);\n },\n };\n\n return (\n
    \n \n \n \n\n
    \n {smallScreen && (\n \n }\n tooltip={t('common.openMenu')}\n />\n \n )}\n\n {children}\n
    \n
    \n );\n};\n\nFullScreenDialogContentWrapper.propTypes = {\n className: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n children: PropTypes.node,\n // eslint-disable-next-line react/forbid-prop-types\n menuLinks: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default FullScreenDialogContentWrapper;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing, breakpoints }) =>\n createStyles({\n root: {\n width: '100%',\n clear: 'both',\n },\n mini: {\n height: spacing(0.5),\n [breakpoints.up('lg')]: {\n height: spacing(0.75),\n },\n },\n small: {\n height: spacing(1),\n },\n default: {\n height: spacing(2),\n },\n medium: {\n height: spacing(2),\n [breakpoints.up('md')]: {\n height: spacing(2.5),\n },\n [breakpoints.up('lg')]: {\n height: spacing(3.5),\n },\n },\n large: {\n height: spacing(2.5),\n [breakpoints.up('md')]: {\n height: spacing(3),\n },\n [breakpoints.up('lg')]: {\n height: spacing(5),\n },\n },\n card: {\n height: spacing(1.5),\n [breakpoints.up('md')]: {\n height: spacing(3),\n },\n [breakpoints.up('lg')]: {\n height: spacing(5),\n },\n },\n cardHalf: {\n height: spacing(1.5),\n [breakpoints.up('md')]: {\n height: spacing(2),\n },\n [breakpoints.up('lg')]: {\n height: spacing(2.5),\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst Gap = ({ className: classNameProp, size }) => {\n const classes = useStyles();\n return (\n \n );\n};\n\nGap.propTypes = {\n className: PropTypes.string,\n size: PropTypes.oneOf(['default', 'mini', 'small', 'medium', 'large', 'cardHalf', 'card']),\n};\nGap.defaultProps = {\n size: 'default',\n};\n\nexport default Gap;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, shape, transitions }) =>\n createStyles({\n root: {\n fontFamily: 'inherit',\n padding: 0,\n color: palette.text.primary,\n minHeight: 48,\n '& svg': {\n marginRight: 0,\n },\n '&:not(:hover):not(:focus):not(:active)': {\n '& $iconWrapper': {\n color: palette.greySimple.darkest,\n },\n },\n },\n mediumSize: {\n minHeight: 40,\n },\n roundVariant: {},\n extendedVariant: {\n [breakpoints.up('sm')]: {\n height: 'auto',\n padding: spacing(1),\n borderRadius: shape.borderRadius,\n },\n [breakpoints.up('lg')]: {\n paddingLeft: spacing(1.5),\n paddingRight: spacing(1.5),\n },\n },\n iconWrapper: {\n [breakpoints.up('sm')]: {\n '& + *': {\n marginLeft: spacing(1),\n },\n },\n [breakpoints.up('lg')]: {\n '& + *': {\n marginLeft: spacing(1.5),\n },\n },\n [breakpoints.up('xl')]: {\n '& + *': {\n marginLeft: spacing(2),\n },\n },\n },\n badge: {\n paddingLeft: 2.5,\n paddingRight: 2.5,\n boxShadow: `0 0 0 1px ${palette.background.paper}`,\n zIndex: 'auto',\n },\n dot: {\n backgroundColor: palette.primary.main,\n },\n additionalContent: {\n display: 'none',\n [breakpoints.up('sm')]: {\n display: 'block',\n '& + $arrow': {\n marginLeft: spacing(0.75),\n },\n '&$arrow': {\n marginLeft: spacing(0.75),\n },\n },\n },\n textWrapper: {\n textAlign: 'left',\n },\n arrow: {\n fontSize: spacing(2),\n color: palette.text.disabled,\n transition: transitions.create('transform', {\n duration: transitions.duration.shorter,\n easing: transitions.easing.easeOut,\n }),\n },\n arrowExpanded: {\n color: palette.primary.main,\n transform: 'rotate(-180deg)',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Badge, Fab, Tooltip, useMediaQuery } from '@material-ui/core';\nimport { ArrowDownSLine as ChevronDownIcon } from '../CustomIcon';\nimport { useStyles } from './styles';\n\nconst HeaderButton = ({\n className: classNameProp,\n classes: classesProp,\n component,\n badge,\n badgeContent,\n color,\n chevron,\n chevronDirection,\n icon,\n children,\n onClick,\n tooltip,\n variant,\n}) => {\n const desktopDevice = useMediaQuery(({ breakpoints }) => breakpoints.up('md'));\n const classes = useStyles();\n\n const renderButton = () => (\n \n {icon && (\n \n {icon}\n \n )}\n\n {variant === 'extended' && (\n <>\n {children && (\n
    {children}
    \n )}\n {chevron && (\n \n )}\n \n )}\n \n );\n\n return <>{tooltip ? {renderButton()} : renderButton()};\n};\n\nHeaderButton.propTypes = {\n component: PropTypes.elementType,\n className: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n classes: PropTypes.object,\n children: PropTypes.node,\n color: PropTypes.oneOf(['default', 'primary', 'secondary']),\n chevron: PropTypes.bool,\n chevronDirection: PropTypes.oneOf(['down', 'up']),\n icon: PropTypes.node,\n onClick: PropTypes.func,\n tooltip: PropTypes.node,\n variant: PropTypes.oneOf(['round', 'extended']),\n badge: PropTypes.bool,\n badgeContent: PropTypes.node,\n};\n\nHeaderButton.defaultProps = {\n badge: false,\n chevron: false,\n chevronDirection: 'down',\n variant: 'round',\n};\n\nexport default HeaderButton;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst moduleName = 'document-indexing-service';\n\nconst documentsService = {\n createFolder,\n fetchAnyDocuments,\n fetchDocuments,\n fetchDocumentsByQuery,\n fetchFolderByQuery,\n fetchFolderTree,\n findDocument,\n findFolder,\n getDocumentsInFolder,\n getFolderPath,\n moveDocument,\n removeFolder,\n renameFolder,\n};\n\nfunction fetchFolderTree(workspaceId, rootFolderId, depth = 1) {\n const folderPath = rootFolderId ? `/${rootFolderId}` : '';\n const query = encodeURIComponent(\n JSON.stringify({\n depth,\n })\n );\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/folders${folderPath}?query=${query}`, {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_GET_FOLDERS'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getFolderPath(workspaceId, folderId) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/folders/${folderId}/path`, {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_GET_FOLDER_PATH'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getDocumentsInFolder(workspaceId, folderId) {\n const query = encodeURIComponent(\n JSON.stringify({\n limit: 10,\n offset: 0,\n })\n );\n return axios\n .get(\n `/rest/${moduleName}/workspaces/${workspaceId}/folders/${folderId}/documents?query=${query}`,\n {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_GET_FOLDERS'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction createFolder(workspaceId, folderId, name) {\n return axios\n .post(\n `/rest/${moduleName}/workspaces/${workspaceId}/folders/${folderId}`,\n { name },\n {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_POST_FOLDER'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction removeFolder(workspaceId, folderId) {\n return axios\n .delete(`/rest/${moduleName}/workspaces/${workspaceId}/folders/${folderId}`, {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_DELETE_FOLDER'],\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction renameFolder(workspaceId, folderId, name) {\n return axios\n .put(\n `/rest/${moduleName}/workspaces/${workspaceId}/folders/${folderId}`,\n { name },\n {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_PUT_MOVE_DOCUMENT'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nlet prevFolderController;\nfunction findFolder(workspaceId, value) {\n if (prevFolderController) {\n prevFolderController.abort();\n }\n const controller = new AbortController();\n const { signal } = controller;\n prevFolderController = controller;\n\n const queryObj = { limit: 10, name: value };\n const query = encodeURIComponent(JSON.stringify(queryObj));\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/folders?query=${query}`, {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_GET_FOLDERS'],\n signal,\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction moveDocument(workspaceId, documents, sourceFolderId, targetFolderId) {\n return axios\n .put(\n `/rest/${moduleName}/workspaces/${workspaceId}/folders/${sourceFolderId}/documents`,\n {\n folderId: targetFolderId,\n documents,\n },\n {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_PUT_MOVE_DOCUMENT'],\n }\n )\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nlet prevDocController;\nfunction findDocument(workspaceId, value) {\n if (prevDocController) {\n prevDocController.abort();\n }\n const controller = new AbortController();\n const { signal } = controller;\n prevDocController = controller;\n\n const queryObj = {\n limit: 12,\n document: value,\n };\n const query = encodeURIComponent(JSON.stringify(queryObj));\n\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/documents?query=${query}`, {\n withPermissions: ['DOCUMENT_INDEXING_SERVICE_USER_GET_DOCUMENTS'],\n signal,\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction fetchDocuments({\n workspaceId,\n folder,\n limit,\n offset,\n orderBy,\n sortOrder,\n filterKey,\n filterValue,\n}) {\n const query = {\n limit: 20,\n offset: 0,\n sortBy: { updatedAt: 'DESC' },\n };\n if (limit) {\n query.limit = limit;\n }\n if (offset) {\n query.offset = offset;\n }\n if (orderBy && sortOrder) {\n query.sortBy = {}; // [orderBy] = sortOrder;\n query.sortBy[orderBy] = sortOrder;\n }\n if (!query.sortBy.id) {\n query.sortBy.id = 'desc';\n }\n if (filterKey && filterValue) {\n query[filterKey] = filterValue;\n }\n const pathQuery = encodeURIComponent(JSON.stringify(query));\n return (\n axios\n .get(\n `/rest/${moduleName}/workspaces/${workspaceId}/folders/${folder}/documents?query=${pathQuery}`\n )\n // .get(`/rest/${moduleName}/workspaces/${workspaceId}/documents?query=${pathQuery}`)\n .then((response) => response.data)\n .catch((error) => parseError(error))\n );\n}\nfunction fetchDocumentsByQuery({ workspaceId, query }) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/documents?query=${query}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction fetchFolderByQuery({ workspaceId, query, folderId }) {\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/folders/${folderId || ''}?query=${query}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction fetchAnyDocuments(\n workspaceId,\n limit,\n offset,\n orderBy,\n sortOrder,\n filterKey,\n filterValue,\n rolesId = []\n) {\n const query = {\n limit: 20,\n offset: 0,\n sortBy: { updatedAt: 'DESC' },\n };\n if (limit) {\n query.limit = limit;\n }\n if (offset) {\n query.offset = offset;\n }\n if (orderBy && sortOrder) {\n query.sortBy = {}; // [orderBy] = sortOrder;\n query.sortBy[orderBy] = sortOrder;\n }\n if (!query.sortBy.id) {\n query.sortBy.id = 'desc';\n }\n if (filterKey && filterValue) {\n query[filterKey] = filterValue;\n }\n if (rolesId.length) {\n query.roles = {\n signers: rolesId,\n };\n query.notSigned = rolesId;\n query.notRejected = rolesId;\n }\n const pathQuery = encodeURIComponent(JSON.stringify(query));\n return axios\n .get(`/rest/${moduleName}/workspaces/${workspaceId}/documents?query=${pathQuery}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nexport default documentsService;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport documentsConstants from '../constants/documents.constants';\nimport documentsService from '../services/documents.service';\nimport snackbarActions from './snackbar.actions';\n\nconst documentsActions = {\n getFolderTree,\n createFolder,\n fetchDocuments,\n fetchAdvancedSearchedDocuments,\n fetchAdvancedSearchedFolders,\n getCurrentFolderPath,\n renameFolder,\n removeFolder,\n websocketAddFolder,\n websocketUpdateFolder,\n websocketDeleteFolder,\n websocketMoveDocument,\n websocketCreateDocument,\n websocketUpdateDocument,\n websocketDeleteDocument,\n moveDocuments,\n getDocumentsBySearchQuery,\n getFoldersBySearchQuery,\n clearDocumentsStore,\n fetchAnyDocuments,\n clearFolderPath,\n clearSearched,\n clearAdvancedSearch,\n updateDraftAdvancedSearch,\n updateAdvancedSearch,\n submitAdvancedSearch,\n resetDraftAdvancedSearch,\n setSelectedFolders,\n};\n\nfunction getFolderTree(workspaceId, rootFolderId, depth) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_FOLDER_TREE_REQUEST });\n documentsService\n .fetchFolderTree(workspaceId, rootFolderId, depth)\n .then((response) => {\n dispatch({\n type: documentsConstants.FETCH_FOLDER_TREE_SUCCESS,\n folders: response?.data?.collection,\n rootFolderId:\n response?.data?.collection.find((f) => f.isRoot)?.id || rootFolderId || null,\n });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_FOLDER_TREE_FAILURE });\n });\n };\n}\n\nfunction getDocumentsBySearchQuery(workspaceId, query, rolesId) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_SEARCH_REQUEST });\n documentsService\n .findDocument(workspaceId, query, rolesId)\n .then((response) => {\n dispatch({\n type: documentsConstants.FETCH_DOCUMENTS_SEARCH_SUCCESS,\n documents: response?.data?.collection,\n });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_SEARCH_FAILURE });\n });\n };\n}\n\nfunction createFolder(workspaceId, rootFolderId, name) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.CREATE_FOLDER_REQUEST });\n documentsService\n .createFolder(workspaceId, rootFolderId, name)\n .then(() => {\n dispatch({ type: documentsConstants.CREATE_FOLDER_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('drivePage.foldersDialog.addNew.toastSuccessText')\n )\n );\n })\n .catch(() => {\n dispatch({ type: documentsConstants.CREATE_FOLDER_FAILURE });\n });\n };\n}\n\nfunction fetchDocuments({\n workspaceId,\n folderId,\n limit = 20,\n offset = 0,\n orderBy,\n sortOrder,\n filterKey,\n filterValue,\n}) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_REQUEST });\n documentsService\n .fetchDocuments({\n workspaceId,\n folder: folderId,\n limit,\n offset,\n orderBy,\n sortOrder,\n filterKey,\n filterValue,\n })\n .then((response) => {\n dispatch({\n type: documentsConstants.FETCH_DOCUMENTS_SUCCESS,\n documents: response.data.collection,\n hasMoreDocuments: response.data.hasNextPage,\n documentsQuery: response.data.query,\n });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_FAILURE });\n });\n };\n}\n\nfunction fetchAdvancedSearchedDocuments({ workspaceId, searchQuery }) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_ADVANCED_SEARCH_REQUEST });\n documentsService\n .fetchDocumentsByQuery({\n workspaceId,\n query: searchQuery,\n })\n .then((response) => {\n dispatch({\n type: documentsConstants.FETCH_DOCUMENTS_ADVANCED_SEARCH_SUCCESS,\n documents: response.data.collection,\n documentsQuery: {\n limit: response.data.query.limit,\n offset: response.data.query.offset,\n hasMoreDocuments: response.data.hasNextPage,\n },\n });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_ADVANCED_SEARCH_FAILURE });\n });\n };\n}\nfunction fetchAdvancedSearchedFolders({ workspaceId, searchQuery, folderId }) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_FOLDERS_ADVANCED_SEARCH_REQUEST });\n documentsService\n .fetchFolderByQuery({\n workspaceId,\n folderId,\n query: searchQuery,\n })\n .then((response) => {\n dispatch({\n type: documentsConstants.FETCH_FOLDERS_ADVANCED_SEARCH_SUCCESS,\n payload: response?.data?.collection,\n });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_FOLDERS_ADVANCED_SEARCH_FAILURE });\n });\n };\n}\n\nfunction fetchAnyDocuments(\n workspaceId,\n limit,\n offset,\n orderBy,\n sortOrder,\n append,\n filterKey,\n filterValue,\n rolesId\n) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_REQUEST, append });\n documentsService\n .fetchAnyDocuments(\n workspaceId,\n limit,\n offset,\n orderBy,\n sortOrder,\n filterKey,\n filterValue,\n rolesId\n )\n .then((response) => {\n dispatch({\n type: documentsConstants.FETCH_DOCUMENTS_SUCCESS,\n documents: response.data.collection,\n hasMoreDocuments: response.data.hasNextPage,\n documentsQuery: response.data.query,\n append,\n });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_DOCUMENTS_FAILURE });\n });\n };\n}\n\nfunction getFoldersBySearchQuery(workspaceId, query) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_FOLDERS_SEARCH_REQUEST });\n documentsService\n .findFolder(workspaceId, query)\n .then((response) => {\n dispatch({\n type: documentsConstants.FETCH_FOLDERS_SEARCH_SUCCESS,\n folders: response?.data?.collection,\n });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_FOLDERS_SEARCH_FAILURE });\n });\n };\n}\n\nfunction getCurrentFolderPath(workspaceId, rootFolderId) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.FETCH_FOLDER_PATH_REQUEST });\n documentsService\n .getFolderPath(workspaceId, rootFolderId)\n .then((response) => {\n dispatch({ type: documentsConstants.FETCH_FOLDER_PATH_SUCCESS, path: response.data });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.FETCH_FOLDER_PATH_FAILURE });\n });\n };\n}\n\nfunction renameFolder(workspaceId, folderId, newFolderName) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.RENAME_FOLDER_REQUEST });\n documentsService\n .renameFolder(workspaceId, folderId, newFolderName)\n .then(() => {\n dispatch({ type: documentsConstants.RENAME_FOLDER_SUCCESS });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.RENAME_FOLDER_FAILURE });\n });\n };\n}\n\nfunction removeFolder(workspaceId, folderId) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.REMOVE_FOLDER_REQUEST });\n documentsService\n .removeFolder(workspaceId, folderId)\n .then(() => {\n dispatch({ type: documentsConstants.REMOVE_FOLDER_SUCCESS });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.REMOVE_FOLDER_FAILURE });\n });\n };\n}\n\nfunction moveDocuments(workspaceId, sourceFolderId, targetFolderId, documents) {\n return (dispatch) => {\n dispatch({ type: documentsConstants.MOVE_DOCUMENT_REQUEST });\n documentsService\n .moveDocument(workspaceId, documents, sourceFolderId, targetFolderId)\n .then(() => {\n dispatch({ type: documentsConstants.MOVE_DOCUMENT_SUCCESS });\n })\n .catch(() => {\n dispatch({ type: documentsConstants.MOVE_DOCUMENT_FAILURE });\n });\n };\n}\n\nfunction websocketAddFolder(folderData) {\n return { type: documentsConstants.WS_ADD_FOLDER, newFolder: folderData };\n}\n\nfunction websocketUpdateFolder(folderData) {\n return { type: documentsConstants.WS_UPDATE_FOLDER, updatedFolder: folderData };\n}\nfunction websocketDeleteFolder(folderData) {\n return { type: documentsConstants.WS_DELETE_FOLDER, deletedFolder: folderData };\n}\nfunction websocketMoveDocument(currentFolderId, documentData, sortKey, sortOrder) {\n return {\n type: documentsConstants.WS_MOVED_DOCUMENT,\n currentFolderId,\n movedFile: documentData,\n sortKey,\n sortOrder,\n };\n}\n\nfunction websocketCreateDocument(data, sortKey, sortOrder) {\n return { type: documentsConstants.WS_CREATED_DOCUMENT, documentData: data, sortKey, sortOrder };\n}\n\nfunction websocketUpdateDocument(data, sortKey, sortOrder) {\n return { type: documentsConstants.WS_UPDATED_DOCUMENT, documentData: data, sortKey, sortOrder };\n}\n\nfunction websocketDeleteDocument(data) {\n return { type: documentsConstants.WS_DELETE_DOCUMENT, documentData: data };\n}\n\nfunction clearDocumentsStore() {\n return { type: documentsConstants.CLEAR_STORE };\n}\n\nfunction clearSearched() {\n return { type: documentsConstants.CLEAR_SEARCH };\n}\nfunction clearAdvancedSearch(excludeName = false) {\n return { type: documentsConstants.CLEAR_ADVANCED_SEARCH, payload: excludeName };\n}\n\nfunction clearFolderPath() {\n return { type: documentsConstants.CLEAR_FOLDER_PATH };\n}\n\nfunction updateDraftAdvancedSearch(field, value) {\n return {\n type: documentsConstants.UPDATE_DRAFT_ADVANCED_SEARCH,\n payload: {\n field,\n value,\n },\n };\n}\nfunction updateAdvancedSearch(field, value) {\n return {\n type: documentsConstants.UPDATE_ADVANCED_SEARCH,\n payload: {\n field,\n value,\n },\n };\n}\n\nfunction submitAdvancedSearch(search) {\n return {\n type: documentsConstants.SUBMIT_ADVANCED_SEARCH,\n payload: search,\n };\n}\nfunction resetDraftAdvancedSearch() {\n return {\n type: documentsConstants.RESET_DRAFT_ADVANCED_SEARCH,\n };\n}\nfunction setSelectedFolders(folders) {\n return {\n type: documentsConstants.SET_SELECTED_FOLDERS,\n payload: folders,\n };\n}\n\nexport default documentsActions;\n","export enum Permission {\n DOCUMENT_SERVICE_USER_GET_FILE_UPLOAD = 'DOCUMENT_SERVICE_USER_GET_FILE_UPLOAD',\n DOCUMENT_SERVICE_USER_POST_DOCUMENTS = 'DOCUMENT_SERVICE_USER_POST_DOCUMENTS',\n DOCUMENT_SERVICE_USER_SIGN_ORDER = 'DOCUMENT_SERVICE_USER_SIGN_ORDER',\n}\n\nexport const PermissionList = [\n Permission.DOCUMENT_SERVICE_USER_GET_FILE_UPLOAD,\n Permission.DOCUMENT_SERVICE_USER_POST_DOCUMENTS,\n Permission.DOCUMENT_SERVICE_USER_SIGN_ORDER,\n];\n\nexport interface WorkspaceUser {\n active: boolean;\n addedAt: number;\n contactEmail: string;\n email: string;\n identityId: string;\n language: string;\n name: string;\n}\n\nexport interface WorkspaceDetailsInfo {\n active: boolean;\n creatorId: string;\n description: string;\n groupId: string;\n name: string;\n}\n\nexport interface WorkspaceGroup {\n info: WorkspaceDetailsInfo;\n members: WorkspaceUser[];\n}\n\nexport interface SingleEntity {\n active: boolean;\n email: string;\n entityId: string;\n entityName: string;\n group: boolean;\n workspaceId: string;\n workspaceName: string;\n}\n\nexport interface StructureGroup {\n active: boolean;\n addedAt: number;\n description: string;\n groupId: string;\n name: string;\n}\nexport interface StructureIdentity {\n active: boolean;\n addedAt: number;\n contactEmail: string;\n email: string;\n identityId: string;\n language: string;\n name: string;\n}\n\nexport interface StructureWorkspace {\n description: string;\n name: string;\n workspaceId: string;\n}\n\nexport interface WorkspaceInfo {\n workspaceId: string;\n companyName?: string;\n vatId?: string;\n country?: string;\n city?: string;\n address?: string;\n postcode?: string;\n}\n\nexport type StructureItemType = {\n identity: StructureIdentity;\n groups: StructureGroup[];\n workspace: StructureWorkspace;\n};\n","export const FileColsConfig = (\n t,\n nameSortable = true,\n statusSortable = true,\n updatedAtSortable = true\n) => [\n {\n title: t('drivePage.documentsTable.fileName'),\n sortable: nameSortable,\n dataKey: 'name',\n type: 'text',\n colProps: {\n className: 'titleCell',\n xxs: 12,\n sm: true,\n md: true,\n orderXxs: 1,\n },\n },\n {\n title: t('drivePage.documentsTable.status'),\n sortable: statusSortable,\n dataKey: 'status',\n type: 'document-status',\n colProps: {\n xxs: 0,\n md: 3,\n textAlignXxs: 'right',\n textAlignMd: 'left',\n orderSm: 4,\n orderMd: 2,\n },\n },\n {\n title: t('drivePage.documentsTable.author'),\n sortable: false,\n dataKey: 'author',\n type: 'person-badge',\n colProps: {\n xxs: 0,\n sm: 'auto',\n md: 1,\n xl: 2,\n textAlignXxs: 'center',\n orderXxs: 2,\n orderSm: 3,\n orderMd: 3,\n },\n },\n {\n title: t('drivePage.documentsTable.updatedAt'),\n sortable: updatedAtSortable,\n dataKey: 'updatedAt',\n type: 'time-ago',\n colProps: {\n xxs: 12,\n sm: 'auto',\n md: 3,\n lg: 2,\n orderXxs: 3,\n orderSm: 2,\n orderMd: 4,\n },\n },\n];\n\nexport const FolderColsConfig = (t) => [\n {\n title: t('drivePage.documentsTable.fileName'),\n dataKey: 'name',\n type: 'text',\n colProps: {\n className: 'titleCell',\n xxs: 12,\n },\n },\n];\n\nexport default { FileColsConfig, FolderColsConfig };\n","import { hasPermission } from 'src/components/PermissionResolver/permissionUtils';\nimport {\n Permission,\n StructureIdentity,\n StructureItemType,\n WorkspaceDetailsInfo,\n} from 'src/models/identity.model';\nimport { RootState } from '../reducers';\n\nconst hasSigningOrderPermission = (state: RootState): boolean =>\n hasPermission({\n workspacePermissions: state.identityStore.workspacePermissions,\n permission: Permission.DOCUMENT_SERVICE_USER_SIGN_ORDER,\n });\n\nconst selectWorkspaceDetails = (state: RootState): WorkspaceDetailsInfo | null =>\n state.identityStore.workspaceDetails;\nconst selectWorkspaceId = (state: RootState): string | undefined =>\n state.identityStore.currentIdentity?.workspace?.workspaceId;\nconst selectCurrentIdentityId = (state: RootState): string | undefined =>\n state.identityStore.currentIdentity?.identity?.identityId;\nconst selectCurrentIdentity = (state: RootState): StructureIdentity | undefined =>\n state.identityStore.currentIdentity?.identity;\n\nconst selectCurrentIdentityOwnersGroupId = (state: RootState): string | undefined =>\n state.identityStore?.workspaceGroups.find((group) => group?.info?.name === 'Owners')?.info\n ?.groupId;\nconst selectAvailableWorkspaces = (state: RootState): StructureItemType[] =>\n state.identityStore?.structure?.filter((structure) => structure.identity.active) || [];\nexport const IdentitySelector = {\n hasSigningOrderPermission,\n selectWorkspaceDetails,\n selectWorkspaceId,\n selectCurrentIdentityOwnersGroupId,\n selectCurrentIdentityId,\n selectCurrentIdentity,\n selectAvailableWorkspaces,\n};\n","export const resolveVariant = {\n DISABLE: 'disable',\n HIDE: 'hide',\n};\n\nexport const hasPermission = ({ workspacePermissions, permission }) =>\n workspacePermissions.includes(permission);\n","import { RootState } from '../reducers';\nimport {\n FolderTreeItem,\n mapDocumentsItemToSearchedItem,\n mapFolderItemsToSearchedItem,\n SearchedItem,\n} from '../../models/documents.model';\n\nconst selectAllFolders = (state: RootState): FolderTreeItem[] =>\n state.documentsStore.folderTree || [];\n\nconst selectOrdinaryFolders = (state: RootState): FolderTreeItem[] => {\n const { currentFolderId, folderTree } = state.documentsStore;\n if (!folderTree) return [];\n return folderTree.filter(\n (folder) => folder.id !== currentFolderId && !folder.isTrash && !folder.isRoot\n );\n};\nconst selectAdvancedSearchFolders = (state: RootState): FolderTreeItem[] => {\n const { advancedSearchedFolders } = state.documentsStore;\n if (!advancedSearchedFolders) return [];\n return advancedSearchedFolders.filter((folder) => !folder.isTrash && !folder.isRoot);\n};\n\nconst selectTrash = (state: RootState): FolderTreeItem | undefined =>\n state.documentsStore?.folderTree\n ? state.documentsStore.folderTree.find((folder) => folder.isTrash)\n : undefined;\n\nconst selectSearchedList = (state: RootState): SearchedItem[] => {\n const documents = mapDocumentsItemToSearchedItem(state.documentsStore.quickSearchedDocuments);\n const folders = mapFolderItemsToSearchedItem(state.documentsStore.quickSearchedFolders);\n\n return folders.concat(documents).filter((item) => item.name !== 'trash' && item.name !== '/');\n};\nexport const DocumentsSelector = {\n selectAllFolders,\n selectOrdinaryFolders,\n selectTrash,\n selectSearchedList,\n selectAdvancedSearchFolders,\n};\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, transitions }) =>\n createStyles({\n listItemRoot: {\n color: palette.text.primary,\n border: 'none',\n padding: 0,\n '& .titleCell': {\n transition: transitions.create(['color'], {\n duration: transitions.duration.short,\n }),\n },\n '&:hover': {\n '& .titleCell': {\n color: `${palette.primary.main}`,\n },\n },\n },\n title: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '1rem',\n },\n avatar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: {\n fontSize: 20,\n color: palette.primary.main,\n marginRight: spacing(2),\n\n [breakpoints.down('sm')]: {\n marginRight: spacing(1),\n },\n },\n lastCell: {\n display: 'flex',\n justifyContent: 'flex-end',\n paddingRight: spacing(2),\n textAlign: 'right',\n\n [breakpoints.up('sm')]: {\n paddingRight: spacing(1),\n },\n },\n\n dataTableRow: {\n width: '100%',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ListItem } from '@material-ui/core';\nimport DataTableRow from 'src/components/DataTable/DataTableRow';\n\nimport { useStyles } from './styles';\n\nconst HeaderSearchItem = ({ item, defaultIcon, cols, smallScreen, iconWidth, rowClasses }) => {\n const tileRowsOnMobile = smallScreen;\n const classes = useStyles();\n if (tileRowsOnMobile) {\n rowClasses.push(classes.itemTileRow);\n }\n\n return (\n \n \n \n );\n};\n\nHeaderSearchItem.propTypes = {\n item: PropTypes.shape({\n name: PropTypes.string,\n category: PropTypes.string,\n group: PropTypes.string,\n author: PropTypes.string,\n avatar: PropTypes.string,\n status: PropTypes.string,\n createdAt: PropTypes.number,\n updatedAt: PropTypes.number,\n }),\n defaultIcon: PropTypes.string,\n cols: PropTypes.arrayOf(PropTypes.shape()),\n smallScreen: PropTypes.bool,\n iconWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]),\n rowClasses: PropTypes.arrayOf(PropTypes.string),\n};\n\nHeaderSearchItem.defaultProps = {\n iconWidth: 'auto',\n rowClasses: [],\n};\n\nexport default HeaderSearchItem;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, custom, mixins, palette, spacing }) =>\n createStyles({\n root: {\n '&:not($smallScreenRoot)': {\n flex: 1,\n padding: 0,\n },\n },\n searchEdited: {\n color: palette.primary.main,\n },\n smallScreenRoot: {},\n groupHeader: {\n position: 'sticky',\n top: 0,\n backgroundColor: palette.background.paper,\n zIndex: 1,\n minHeight: 48,\n '& h6': {\n width: 40,\n whiteSpace: 'nowrap',\n },\n '& .titleCell': {\n '& > *': {\n display: 'none',\n },\n },\n },\n smallScreenGroupHeader: {\n minHeight: 40,\n '&:before': {\n content: \"''\",\n display: 'block',\n backgroundColor: 'inherit',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '100%',\n },\n '& > *': {\n position: 'relative',\n },\n },\n option: {\n border: 'none !important',\n padding: 0,\n },\n appBar: {\n // borderBottom: `1px solid ${palette.divider}`,\n },\n backButton: {\n marginRight: spacing(1),\n },\n\n inputRoot: {\n paddingRight: '12px!important',\n '&:not($smallScreenInputRoot)': {\n backgroundColor: palette.background.default,\n },\n },\n smallScreenInputRoot: {\n padding: spacing(0, 2),\n [breakpoints.up('md')]: {\n padding: spacing(0, 3),\n },\n [breakpoints.up('lg')]: {\n padding: spacing(0, 5),\n },\n '& $loader': {\n right: spacing(2),\n },\n },\n smallScreenInput: {\n marginTop: -1,\n paddingLeft: '0 !important',\n paddingRight: `${spacing(1)}px !important`,\n boxSizing: 'border-box',\n ...mixins.toolbar,\n },\n smallScreenPopper: {\n width: '100% !important',\n left: 0,\n top: custom.headerMobileNavHeight,\n [breakpoints.up('md')]: {\n top: custom.headerNavHeight,\n },\n },\n popperDisablePortal: {\n [breakpoints.up('md')]: {\n marginTop: spacing(1),\n },\n '&:not($smallScreenPopperDisablePortal)': {\n [breakpoints.between('md', 'lg')]: {\n position: 'fixed',\n top: custom.headerNavHeight / 2 + 48 / 2,\n },\n [breakpoints.only('md')]: {\n left: `calc(${custom.leftMenuWidth}px + ${spacing(3)}px)`,\n right: spacing(3),\n minWidth: `calc(100% - ${custom.leftMenuWidth + spacing(6)}px)`,\n maxHeight: `calc(100% - ${custom.headerNavHeight + spacing(3)}px)`,\n },\n [breakpoints.only('lg')]: {\n left: `calc(${custom.leftMenuWidth}px + ${spacing(5)}px)`,\n right: spacing(5),\n minWidth: `calc(100% - ${custom.leftMenuWidth + spacing(10)}px)`,\n maxHeight: `calc(100% - ${custom.headerNavHeight + spacing(5)}px)`,\n },\n },\n },\n smallScreenPopperDisablePortal: {},\n smallScreenPaper: {},\n listBox: {\n maxHeight: `calc(100vh - ${custom.headerMobileNavHeight}px)`,\n [breakpoints.up('md')]: {\n maxHeight: `calc(100vh - ${custom.headerNavHeight}px)`,\n },\n },\n smallScreenListBox: {\n overflowX: 'hidden',\n maxHeight: 'none',\n height: `calc(100vh - ${custom.headerMobileNavHeight}px)`,\n padding: spacing(2, 1.5),\n paddingTop: '0 !important',\n '& $smallScreenGroupHeader': {\n padding: spacing(1, 2),\n marginLeft: spacing(-1.5),\n marginRight: spacing(-1.5),\n },\n [breakpoints.up('sm')]: {\n padding: spacing(2, 1),\n '& $smallScreenGroupHeader': {\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n },\n },\n [breakpoints.up('md')]: {\n height: `calc(100vh - ${custom.headerNavHeight}px)`,\n padding: spacing(2, 1.5),\n '& $smallScreenGroupHeader': {\n marginLeft: spacing(-1.5),\n marginRight: spacing(-1.5),\n },\n },\n [breakpoints.up('lg')]: {\n padding: spacing(2, 2.5),\n '& $smallScreenGroupHeader': {\n marginLeft: spacing(-2.5),\n marginRight: spacing(-2.5),\n },\n },\n },\n smallScreenNoOptionsAndLoading: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...mixins.toolbar,\n },\n endAdornment: {\n position: 'relative',\n },\n smallScreenEndAdornment: {\n right: spacing(2),\n },\n clearIndicator: {\n visibility: 'visible',\n },\n smallScreenClearIndicator: {\n height: 40,\n minHeight: 40,\n width: 40,\n minWidth: 40,\n '& svg': {\n fontSize: 24,\n },\n },\n hasClearIcon: {\n '& $inputRoot': {\n paddingRight: '48px !important',\n },\n },\n smallScreenHasClearIcon: {\n '& $smallScreenInputRoot': {\n paddingRight: 40 + spacing(2),\n },\n },\n }),\n { index: 0 }\n);\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport transitions from '@material-ui/core/styles/transitions';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n title: {\n display: 'flex',\n alignItems: 'center',\n },\n titleText: {\n flex: 1,\n },\n fieldWrapper: {\n display: 'flex',\n marginBottom: 16,\n alignItems: 'center',\n },\n fieldTitle: {\n width: '100%',\n maxWidth: 180,\n },\n fieldContent: {\n width: '100%',\n },\n textField: {\n width: '100%',\n },\n fieldInputArrowDown: {\n position: 'absolute',\n width: 16,\n height: 16,\n lineHeight: 1,\n right: 12,\n top: '50%',\n transform: 'translateY(-50%)',\n color: palette.secondary.main,\n transition: transitions.create(['color', 'transform', 'opacity'], {\n duration: transitions.duration.short,\n }),\n },\n fieldInputContent: {\n width: '100%',\n position: 'relative',\n\n '& > div': {\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n height: 48,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: palette.action.selected,\n borderRadius: 6,\n padding: '0 12px',\n transition: transitions.create(['background-color', 'color', 'box-shadow', 'border'], {\n duration: transitions.duration.short,\n }),\n cursor: 'pointer',\n\n '&:hover': {\n borderColor: palette.primary.main,\n },\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { DialogTitle, Fab, Tooltip, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Close as CloseIcon } from 'src/components/CustomIcon';\nimport { useStyles } from '../styles';\n\ntype AdvancedSearchModalTitleProps = {\n onClose: () => void;\n};\n\nconst AdvancedSearchModalTitle = ({ onClose }: AdvancedSearchModalTitleProps): JSX.Element => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n return (\n \n \n {t('advancedSearch.title')}\n \n ('common.close')}>\n \n \n \n \n \n );\n};\n\nexport default AdvancedSearchModalTitle;\n","import React from 'react';\nimport { Button, DialogActions } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { useHistory } from 'react-router-dom';\nimport documentsActions from 'src/redux/actions/documents.actions';\n\ntype AdvancedSearchModalActionsProps = {\n onClose: () => void;\n};\n\nconst AdvancedSearchModalActions = ({ onClose }: AdvancedSearchModalActionsProps): JSX.Element => {\n const dispatch = useDispatch();\n const history = useHistory();\n const { t } = useTranslation();\n\n const { draftAdvancedSearch } = useSelector((state: RootState) => state.documentsStore);\n\n const onReset = () => {\n dispatch(documentsActions.resetDraftAdvancedSearch());\n };\n\n const onSubmit = () => {\n dispatch(documentsActions.submitAdvancedSearch(draftAdvancedSearch));\n onClose();\n history.push('/search');\n };\n\n return (\n \n \n \n \n );\n};\n\nexport default AdvancedSearchModalActions;\n","import React from 'react';\nimport { ArrowDownSLine as ChevronDownIcon } from 'src/components/CustomIcon';\nimport { useStyles } from '../styles';\n\ntype AdvancedSearchModalFieldProps = {\n title: string;\n children: JSX.Element;\n withInputWrapper?: boolean;\n};\n\nconst AdvancedSearchModalField = ({\n title,\n children,\n withInputWrapper = false,\n}: AdvancedSearchModalFieldProps): JSX.Element => {\n const classes = useStyles();\n\n return (\n
    \n
    {title}
    \n\n {withInputWrapper ? (\n
    \n {children} \n
    \n ) : (\n
    {children}
    \n )}\n
    \n );\n};\n\nexport default AdvancedSearchModalField;\n","import React, { ChangeEvent } from 'react';\nimport { TextField } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { AdvancedSearchFields } from 'src/models/documents.model';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport Field from '../../subcomponents/AdvancedSearchModalField';\n\nimport { useStyles } from '../../styles';\n\nconst NameField = (): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const classes = useStyles();\n\n const nameValue = useSelector(\n (state: RootState) => state.documentsStore.draftAdvancedSearch[AdvancedSearchFields.NAME]\n );\n\n const onChange = (event: ChangeEvent) =>\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.NAME, event.target.value)\n );\n\n return (\n ('advancedSearch.fields.name.label')}>\n \n \n );\n};\n\nexport default NameField;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n menuItem: {\n width: 250,\n },\n menuFooter: {\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'space-between',\n },\n esignIcon: {\n fontSize: 16,\n marginRight: 6,\n color: palette.primary.light,\n },\n driveIcon: {\n fontSize: 16,\n marginRight: 6,\n color: palette.common.purple,\n },\n certificateIcon: {\n fontSize: 16,\n marginRight: 6,\n color: palette.common.green,\n },\n folderIcon: {\n fontSize: 16,\n marginRight: 6,\n },\n }),\n { index: 0 }\n);\n","import React, { MouseEvent, useEffect, useState } from 'react';\nimport { Button, Checkbox, Divider, ListItemIcon, Menu, MenuItem } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport {\n FileEdit as EsignIcon,\n FilesWithShield as DriveIcon,\n CertificateIcon,\n Folder as FolderIcon,\n} from 'src/components/CustomIcon';\nimport { DocumentType, ExtraDocumentType } from 'src/models/documents.model';\nimport { useStyles } from './styles';\n\ntype DocumentTypeDropdownProps = {\n children: JSX.Element;\n onSubmit: (types: Array) => void;\n initialDocumentTypes: Array;\n};\n\nconst DocumentTypeDropdown = ({\n children,\n onSubmit,\n initialDocumentTypes,\n}: DocumentTypeDropdownProps): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const [editingDocumentTypes, setEditingDocumentTypes] = useState(initialDocumentTypes);\n\n const [anchorEl, setAnchorEl] = useState(null);\n const allSelected =\n editingDocumentTypes.includes(ExtraDocumentType.FOLDER) &&\n editingDocumentTypes.includes(DocumentType.DSL) &&\n editingDocumentTypes.includes(DocumentType.DRIVE) &&\n editingDocumentTypes.includes(DocumentType.ESIGN);\n\n const someSelected =\n editingDocumentTypes.includes(ExtraDocumentType.FOLDER) ||\n editingDocumentTypes.includes(DocumentType.DSL) ||\n editingDocumentTypes.includes(DocumentType.DRIVE) ||\n editingDocumentTypes.includes(DocumentType.ESIGN);\n\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n setEditingDocumentTypes(initialDocumentTypes);\n };\n\n const handleChange = (docType: DocumentType | ExtraDocumentType) => {\n if (editingDocumentTypes.includes(docType))\n setEditingDocumentTypes(editingDocumentTypes.filter((el) => el !== docType));\n else setEditingDocumentTypes([...editingDocumentTypes, docType]);\n };\n\n const handleSelectAll = () => {\n setEditingDocumentTypes(\n allSelected\n ? []\n : [ExtraDocumentType.FOLDER, DocumentType.ESIGN, DocumentType.DSL, DocumentType.DRIVE]\n );\n };\n\n const onSubmitClick = () => {\n onSubmit(editingDocumentTypes);\n setAnchorEl(null);\n };\n\n useEffect(() => {\n setEditingDocumentTypes(initialDocumentTypes);\n }, [initialDocumentTypes]);\n\n const isOpen = Boolean(anchorEl);\n\n return (\n <>\n
    \n {children}\n
    \n \n \n \n \n \n {t('common.selectAll')}\n \n \n handleChange(ExtraDocumentType.FOLDER)}>\n \n \n \n \n {t('common.folders')}\n \n handleChange(DocumentType.ESIGN)}>\n \n \n \n \n {t('common.esign')}\n \n handleChange(DocumentType.DRIVE)}>\n \n \n \n \n {t('common.drive')}\n \n handleChange(DocumentType.DSL)}>\n \n \n \n \n {t('common.certificates')}\n \n \n\n
    \n \n \n
    \n \n \n );\n};\n\nexport default DocumentTypeDropdown;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n folderIcon: {\n fontSize: 16,\n marginRight: 6,\n },\n esignIcon: {\n fontSize: 16,\n marginRight: 6,\n color: palette.common.purple,\n },\n driveIcon: {\n fontSize: 16,\n marginRight: 6,\n color: palette.common.green,\n },\n certificateIcon: {\n fontSize: 16,\n marginRight: 6,\n color: palette.primary.light,\n },\n text: {\n display: 'inline-flex',\n alignItems: 'center',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { AdvancedSearchFields, DocumentType, ExtraDocumentType } from 'src/models/documents.model';\nimport {\n FileEdit as EsignIcon,\n FilesWithShield as DriveIcon,\n CertificateIcon,\n Folder as FolderIcon,\n} from 'src/components/CustomIcon';\nimport DocumentTypeDropdown from 'src/components/DocumentTypeDropdown/DocumentTypeDropdown';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport { useStyles } from './styles';\nimport Field from '../../subcomponents/AdvancedSearchModalField';\n\nconst DocumentTypeField = (): JSX.Element => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const draftDocumentTypes = useSelector(\n (state: RootState) => state.documentsStore.draftAdvancedSearch[AdvancedSearchFields.TYPE]\n );\n const isEmpty = draftDocumentTypes.length === 0;\n const onSubmit = (editingDocumentTypes: Array) => {\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.TYPE, editingDocumentTypes)\n );\n };\n return (\n ('advancedSearch.fields.documentType.label')} withInputWrapper>\n \n <>\n {isEmpty && (\n {t('advancedSearch.fields.documentType.placeholder')}\n )}\n {draftDocumentTypes.map((docType, index) => {\n if (docType === ExtraDocumentType.FOLDER)\n return (\n \n {index > 0 && ', '}\n 0 ? 4 : 0 }}\n className={classes.folderIcon}\n />\n {t('common.folders')}\n \n );\n if (docType === DocumentType.ESIGN)\n return (\n \n {index > 0 && ', '}\n 0 ? 4 : 0 }}\n className={classes.esignIcon}\n />\n {t('common.esign')}\n \n );\n if (docType === DocumentType.DRIVE)\n return (\n \n {index > 0 && ', '}\n 0 ? 4 : 0 }}\n className={classes.driveIcon}\n />\n {t('common.drive')}\n \n );\n if (docType === DocumentType.DSL)\n return (\n \n {index > 0 && ', '}\n 0 ? 4 : 0 }}\n className={classes.certificateIcon}\n />\n {t('common.certificates')}\n \n );\n return null;\n })}\n \n \n \n );\n};\n\nexport default DocumentTypeField;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n menuItemAll: {\n width: 250,\n },\n itemsWrapper: {\n maxHeight: 200,\n overflowY: 'scroll',\n },\n menuFooter: {\n width: '100%',\n display: 'flex',\n // position: 'absolute',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'space-between',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { DocumentStatus } from 'src/models/documents.model';\nimport { Tag } from 'src/components';\nimport { useTranslation } from 'react-i18next';\n\ntype DocumentStatusChipProps = {\n status: DocumentStatus;\n};\n\ntype DocumentStatusColorVariantType = {\n [k in DocumentStatus]: string;\n};\n\nconst DocumentStatusColorVariant: DocumentStatusColorVariantType = {\n [DocumentStatus.ISSUING]: 'info',\n [DocumentStatus.SIGNING]: 'info',\n [DocumentStatus.EDITING]: 'default',\n [DocumentStatus.VALID]: 'success',\n [DocumentStatus.READY_FOR_PREVIEW]: 'success',\n [DocumentStatus.FINISHED]: 'success',\n [DocumentStatus.INVALIDATED]: 'error',\n [DocumentStatus.EXPIRED]: 'error',\n [DocumentStatus.REJECTED]: 'error',\n [DocumentStatus.TEMPORARILY_INVALIDATE]: 'warning',\n};\n\nconst DocumentStatusChip = ({ status }: DocumentStatusChipProps): JSX.Element => {\n const { t } = useTranslation();\n const color = DocumentStatusColorVariant[status];\n\n return {t(`statuses.${status}.short`)};\n};\n\nexport default DocumentStatusChip;\n","import React, { MouseEvent, useEffect, useState } from 'react';\nimport { Button, Checkbox, Divider, ListItemIcon, Menu, MenuItem } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { DocumentStatus } from 'src/models/documents.model';\nimport { useStyles } from './styles';\nimport DocumentStatusChip from '../DocumentStatusChip/DocumentStatusChip';\n\ntype DocumentStatusDropdownProps = {\n children: JSX.Element;\n initialStatusTypes: DocumentStatus[];\n onSubmit: (statuses: DocumentStatus[]) => void;\n};\n\nconst DocumentStatusDropdown = ({\n initialStatusTypes,\n onSubmit,\n children,\n}: DocumentStatusDropdownProps): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const [editingStatusTypes, setEditingStatusTypes] = useState(initialStatusTypes);\n\n const [anchorEl, setAnchorEl] = useState(null);\n const allSelected = Object.values(DocumentStatus).length === editingStatusTypes.length;\n\n const someSelected = editingStatusTypes.length > 0;\n\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n setEditingStatusTypes(initialStatusTypes);\n };\n\n const handleChange = (docsStatus: DocumentStatus) => {\n if (editingStatusTypes.includes(docsStatus))\n setEditingStatusTypes(editingStatusTypes.filter((el) => el !== docsStatus));\n else setEditingStatusTypes([...editingStatusTypes, docsStatus]);\n };\n\n const handleSelectAll = () => {\n setEditingStatusTypes(allSelected ? [] : Object.values(DocumentStatus));\n };\n\n const onSubmitClick = () => {\n onSubmit(editingStatusTypes);\n setAnchorEl(null);\n };\n\n const isOpen = Boolean(anchorEl);\n\n useEffect(() => {\n setEditingStatusTypes(initialStatusTypes);\n }, [initialStatusTypes]);\n\n return (\n <>\n
    \n {children}\n
    \n \n \n \n \n \n {t('common.selectAll')}\n \n \n
    \n {Object.values(DocumentStatus).map((status, index) => (\n <>\n handleChange(status)}\n divider={false}\n >\n \n \n \n \n \n \n \n ))}\n
    \n\n
    \n \n \n
    \n \n \n );\n};\n\nexport default DocumentStatusDropdown;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n suffix: {\n marginLeft: 8,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { AdvancedSearchFields, DocumentStatus } from 'src/models/documents.model';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport DocumentStatusDropdown from 'src/components/DocumentStatusDropdown/DocumentStatusDropdown';\nimport DocumentStatusChip from 'src/components/DocumentStatusChip/DocumentStatusChip';\nimport { useStyles } from './styles';\nimport Field from '../../subcomponents/AdvancedSearchModalField';\n\nconst DocumentStatusField = (): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const classes = useStyles();\n const draftStatusTypes = useSelector(\n (state: RootState) => state.documentsStore.draftAdvancedSearch[AdvancedSearchFields.STATUS]\n );\n\n const isEmpty = draftStatusTypes.length === 0;\n const nrSuffix =\n draftStatusTypes.length > 2 ? (\n \n +{draftStatusTypes.length - 2}\n \n ) : null;\n\n const orderedStatuses = Object.values(DocumentStatus).filter((el) =>\n draftStatusTypes.includes(el)\n );\n\n const onSubmit = (statuses: DocumentStatus[]) => {\n dispatch(documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.STATUS, statuses));\n };\n\n return (\n ('advancedSearch.fields.status.label')} withInputWrapper>\n \n <>\n {isEmpty ? (\n {t('advancedSearch.fields.status.placeholder')}\n ) : (\n <>\n {orderedStatuses[0] && }\n {orderedStatuses[1] && (\n
    \n \n
    \n )}\n {nrSuffix}\n \n )}\n \n
    \n
    \n );\n};\n\nexport default DocumentStatusField;\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport transitions from '@material-ui/core/styles/transitions';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n fieldWrapper: {\n display: 'flex',\n },\n dateInput: {\n '& input': {\n cursor: 'pointer',\n color: 'transparent !important',\n textShadow: `0 0 0 ${palette.text.primary}`,\n },\n },\n field: {\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n height: 48,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: palette.action.selected,\n borderRadius: 6,\n padding: '0 12px',\n transition: transitions.create(['background-color', 'color', 'box-shadow', 'border'], {\n duration: transitions.duration.short,\n }),\n cursor: 'pointer',\n\n '&:hover': {\n borderColor: palette.primary.main,\n },\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport { Grid, InputAdornment, TextField, Typography } from '@material-ui/core';\nimport DateDropdown, { DateDropdownType } from 'src/components/DateDropdown/DateDropdown';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { RootState } from 'src/redux/reducers';\nimport MomentAdapter from '@material-ui/pickers/adapter/moment';\nimport { DateRangePicker, LocalizationProvider } from '@material-ui/pickers';\nimport { AdvancedSearchFields } from 'src/models/documents.model';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport Field from '../../subcomponents/AdvancedSearchModalField';\nimport { CalendarSelectDay as CalendarIcon } from '../../../CustomIcon';\nimport { useStyles } from './styles';\n\ntype DateFieldProps = {\n type: AdvancedSearchFields.DATE_CREATED | AdvancedSearchFields.DATE_MODIFIED;\n};\n\nconst DateField = ({ type }: DateFieldProps): JSX.Element => {\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n const { language } = i18n;\n const classes = useStyles();\n const date = useSelector((state: RootState) => state.documentsStore.draftAdvancedSearch[type]);\n const [error, setError] = React.useState>([null, null]);\n const [openState, setOpenState] = useState(false);\n const [dateValue, setDateValue] = useState>([date.from, date.to]);\n\n const fieldName = {\n [DateDropdownType.ANY]: t('advancedSearch.dateOptions.anyTime'),\n [DateDropdownType.TODAY]: t('advancedSearch.dateOptions.today'),\n [DateDropdownType.YESTERDAY]: t('advancedSearch.dateOptions.yesterday'),\n [DateDropdownType.LAST_7_DAYS]: t('advancedSearch.dateOptions.last7Days'),\n [DateDropdownType.LAST_30_DAYS]: t('advancedSearch.dateOptions.last30Days'),\n [DateDropdownType.BETWEEN]: t('advancedSearch.dateOptions.between'),\n };\n const onSelect = (newType: DateDropdownType) =>\n dispatch(\n documentsActions.updateDraftAdvancedSearch(type, {\n ...date,\n type: newType,\n })\n );\n\n const onDateChange = (newDate: Array) => {\n dispatch(\n documentsActions.updateDraftAdvancedSearch(type, {\n ...date,\n from: newDate[0],\n to: newDate[1],\n })\n );\n };\n\n const title = {\n [AdvancedSearchFields.DATE_CREATED]: t('advancedSearch.fields.dateCreated.label'),\n [AdvancedSearchFields.DATE_MODIFIED]: t('advancedSearch.fields.dateModified.label'),\n };\n\n return (\n <>\n \n \n {fieldName[date.type]}\n \n \n {date.type === DateDropdownType.BETWEEN && (\n \n \n {\n setOpenState(true);\n }}\n onError={([startReason, endReason], [start, end]) => {\n if (\n startReason === 'invalidRange' &&\n start &&\n end &&\n start.valueOf() === end.valueOf()\n ) {\n setOpenState(false);\n setError([null, null]);\n const date = [moment(start), moment(end)];\n setDateValue(date);\n return;\n }\n\n setError([startReason, endReason]);\n }}\n showToolbar={false}\n allowSameDateSelection\n disableCloseOnSelect={false}\n onAccept={(date: unknown) => {\n const newDate: Array = date as Array;\n onDateChange(newDate);\n setOpenState(false);\n }}\n value={[dateValue[0], dateValue[1]]}\n onChange={setDateValue}\n renderInput={(startProps, endProps) => (\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 DateField;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst moduleName = 'document-service';\n\nconst documentsService = {\n getDocumentSigners,\n replaceDocumentSigners,\n replaceDocumentRoles,\n inviteRoleByMail,\n deleteRoleByMail,\n};\n\nfunction getDocumentSigners(documentId, service = moduleName) {\n return axios\n .get(`/rest/${service}/documents/${documentId}/roles/signers`)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction replaceDocumentSigners(documentId, isOrderSignificant = false, requiredSignersCount, ids) {\n const signers = {\n isOrderSignificant,\n requiredSignersCount,\n ids,\n };\n\n return axios\n .put(\n `/rest/${moduleName}/documents/${documentId}/roles/signers`,\n { signers },\n { withPermissions: ['DOCUMENT_SERVICE_USER_PUT_ROLES'] }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction replaceDocumentRoles(documentId, role, membersIds) {\n return axios\n .put(\n `/rest/${moduleName}/documents/${documentId}/roles/${role}`,\n { membersIds },\n { withPermissions: ['DOCUMENT_SERVICE_USER_PUT_ROLES'] }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction inviteRoleByMail(documentId, role, email) {\n return axios\n .post(\n `/rest/${moduleName}/documents/${documentId}/roles/${role}/invite`,\n { email },\n { withPermissions: ['DOCUMENT_SERVICE_USER_POST_DOCUMENT_INVITE'] }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nfunction deleteRoleByMail(documentId, role, email) {\n return axios\n .delete(\n `/rest/${moduleName}/documents/${documentId}/roles/${role}/invitations?mail=${encodeURIComponent(\n email\n )}`,\n {\n withPermissions: [' DOCUMENT_SERVICE_USER_DELETE_DOCUMENT_INVITE'],\n }\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nexport default documentsService;\n","import i18n from 'src/helpers/i18n';\nimport { AppDispatch } from 'src/redux/storeTs';\nimport { API_MODULE, SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { documentUsersManagerConstants } from 'src/redux/constants/documentUsersManager.constants';\nimport documentInvitationsService from 'src/redux/services/documentInvitations.service';\nimport {\n DocumentMemberRole,\n DocumentUserAction,\n UserManagerPerson,\n} from 'src/models/documentUsersManagement.model';\nimport documentCoreService from '../services/documentCore.service';\nimport snackbarActions from './snackbar.actions';\nimport identityService from '../services/identity.service';\nimport contactsService from '../services/contacts.service';\nimport { ExternalContactGroup, ExternalContactIdentity } from '../../models/contacts.model';\nimport documentDSLServices from '../services/documentDSL.service';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst getDocumentMembers = (documentId: string, service: API_MODULE) => (dispatch: AppDispatch) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_REQUEST });\n documentCoreService\n .getDocumentMembers(documentId, service)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n dispatch({\n type: documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_SUCCESS,\n payload: response.data.collection ? response.data.collection : response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst getAvailableRoles = (documentId: string, service: API_MODULE) => (dispatch: AppDispatch) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_AVAILABLE_ROLES_REQUEST });\n documentCoreService\n .getDocumentRoleTypes(documentId, service)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n dispatch({\n type: documentUsersManagerConstants.FETCH_AVAILABLE_ROLES_SUCCESS,\n payload: response.data.collection ? response.data.collection : response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_AVAILABLE_ROLES_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst getDocumentSigners = (documentId: string, service: API_MODULE) => (dispatch: AppDispatch) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_REQUEST });\n documentInvitationsService\n .getDocumentSigners(documentId, service)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n if (response) {\n const documentSigners = response?.data?.data?.ids;\n const isOrderSignificant = response?.data?.data?.isOrderSignificant;\n const requiredSignersCount = response?.data?.data?.requiredSignersCount;\n\n dispatch({\n type: documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_SUCCESS,\n payload: {\n documentSigners,\n isOrderSignificant,\n requiredSignersCount,\n },\n });\n }\n })\n .catch((error) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst getDocumentInvitations = (documentId: string, service: string) => (dispatch: AppDispatch) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_REQUEST });\n documentCoreService\n .getDocumentInvitations(documentId, service)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n dispatch({\n type: documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_SUCCESS,\n payload: response.data.collection,\n });\n })\n .catch((error) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst getEntitiesByName = (workspaceId: string, entityName: string, limit?: number) => (\n dispatch: AppDispatch\n) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_ENTITIES_BY_NAME_REQUEST });\n identityService\n .fetchWorkspaceEntities(workspaceId, entityName, limit)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n dispatch({\n type: documentUsersManagerConstants.FETCH_ENTITIES_BY_NAME_SUCCESS,\n payload: response.data.collection,\n });\n })\n .catch((error) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_ENTITIES_BY_NAME_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst getDocumentExternalWorkspaceEntities = (workspaceId: string, ids: string[]) => (\n dispatch: AppDispatch\n) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_ENTITIES_REQUEST });\n contactsService\n .getEntities(workspaceId, ids)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parsedContacts: any = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const parsedGroups: any = {};\n response?.data?.identities?.forEach((contactInfo: ExternalContactIdentity) => {\n parsedContacts[contactInfo.identityId] = contactInfo;\n });\n response?.data?.groups?.forEach((contactInfo: ExternalContactGroup) => {\n parsedGroups[contactInfo.groupId] = contactInfo;\n });\n dispatch({\n type: documentUsersManagerConstants.FETCH_DOCUMENT_ENTITIES_SUCCESS,\n payload: {\n contacts: parsedContacts,\n groups: parsedGroups,\n },\n });\n })\n .catch((error) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_ENTITIES_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\ntype mutationType = {\n transitionName: DocumentUserAction;\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst getAvailableDocumentUserActions = (documentId: string, service: API_MODULE) => (\n dispatch: AppDispatch\n) => {\n dispatch({ type: documentUsersManagerConstants.FETCH_AVAILABLE_DOCUMENT_ACTIONS_REQUEST });\n documentDSLServices\n .checkAvailableMutations(documentId, service)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n dispatch({\n type: documentUsersManagerConstants.FETCH_AVAILABLE_DOCUMENT_ACTIONS_SUCCESS,\n payload:\n service === API_MODULE.DocumentService\n ? response.data.data.mutationCollection.map((el: mutationType) => el.transitionName)\n : response.data.data.mutationCollection.map((el: mutationType) => el.transitionName),\n });\n })\n .catch(() => {\n dispatch({ type: documentUsersManagerConstants.FETCH_AVAILABLE_DOCUMENT_ACTIONS_FAILURE });\n });\n};\n\ntype updateDraftRolesType = {\n draftHolders: UserManagerPerson[];\n draftSigners: UserManagerPerson[];\n draftOtherRoles: UserManagerPerson[];\n draftTransferability: boolean | null;\n};\n\nconst updateDraftRoles = ({\n draftHolders,\n draftSigners,\n draftOtherRoles,\n draftTransferability,\n}: // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nupdateDraftRolesType) => (dispatch: AppDispatch) => {\n const admins = draftOtherRoles\n .filter((role) => role.role === DocumentMemberRole.ADMIN)\n .map((s) => s._id || s.email || '')\n .filter((el) => el);\n const auditors = draftOtherRoles\n .filter((role) => role.role === DocumentMemberRole.AUDITOR)\n .map((s) => s._id || s.email || '')\n .filter((el) => el);\n const editors = draftOtherRoles\n .filter((role) => role.role === DocumentMemberRole.EDITOR)\n .map((s) => s._id || s.email || '')\n .filter((el) => el);\n const viewers = draftOtherRoles\n .filter((role) => role.role === DocumentMemberRole.VIEWER)\n .map((s) => s._id || s.email || '')\n .filter((el) => el);\n\n dispatch({\n type: documentUsersManagerConstants.UPDATE_DRAFT_ROLES,\n payload: {\n role: DocumentMemberRole.HOLDER,\n ids: draftHolders\n .map((s) => (s.isToken ? 'token' : s._id || s.email || ''))\n .filter((el) => el),\n },\n });\n dispatch({\n type: documentUsersManagerConstants.UPDATE_DRAFT_ROLES,\n payload: {\n role: DocumentMemberRole.SIGNER,\n ids: draftSigners.map((s) => s._id || s.email || '').filter((el) => el),\n },\n });\n dispatch({\n type: documentUsersManagerConstants.UPDATE_DRAFT_ROLES,\n payload: {\n role: DocumentMemberRole.ADMIN,\n ids: admins,\n },\n });\n dispatch({\n type: documentUsersManagerConstants.UPDATE_DRAFT_ROLES,\n payload: {\n role: DocumentMemberRole.AUDITOR,\n ids: auditors,\n },\n });\n dispatch({\n type: documentUsersManagerConstants.UPDATE_DRAFT_ROLES,\n payload: {\n role: DocumentMemberRole.EDITOR,\n ids: editors,\n },\n });\n dispatch({\n type: documentUsersManagerConstants.UPDATE_DRAFT_ROLES,\n payload: {\n role: DocumentMemberRole.VIEWER,\n ids: viewers,\n },\n });\n dispatch({\n type: documentUsersManagerConstants.UPDATE_DRAFT_TRANSFERABILITY,\n payload: draftTransferability,\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst updateSignersChanged = (changed: boolean) => (dispatch: AppDispatch) =>\n dispatch({ type: documentUsersManagerConstants.UPDATE_SIGNERS_CHANGED, payload: changed });\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst updateRecipientsChanged = (changed: boolean) => (dispatch: AppDispatch) =>\n dispatch({\n type: documentUsersManagerConstants.UPDATE_OTHER_RECIPIENTS_CHANGED,\n payload: changed,\n });\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst clear = () => (dispatch: AppDispatch) =>\n dispatch({ type: documentUsersManagerConstants.CLEAR });\n\nconst documentManagementActions = {\n getDocumentMembers,\n getAvailableRoles,\n getDocumentSigners,\n getDocumentInvitations,\n getEntitiesByName,\n getDocumentExternalWorkspaceEntities,\n getAvailableDocumentUserActions,\n updateDraftRoles,\n updateSignersChanged,\n updateRecipientsChanged,\n clear,\n};\n\nexport default documentManagementActions;\n","import { RootState } from 'src/redux/reducers';\nimport {\n DocumentInvitationMemberRole,\n DocumentMember,\n DocumentMemberRole,\n DocumentUserAction,\n InvitedDocumentMember,\n UserManagerPerson,\n} from 'src/models/documentUsersManagement.model';\nimport { SingleEntity, WorkspaceGroup, WorkspaceUser } from 'src/models/identity.model';\nimport { IdentitySelector } from './identity.selector';\n\nconst invitationMemberRoleToDocumentMemberRole = (\n role: DocumentInvitationMemberRole | DocumentMemberRole\n): DocumentMemberRole => {\n switch (role) {\n case DocumentInvitationMemberRole.ADMINS:\n return DocumentMemberRole.ADMIN;\n case DocumentInvitationMemberRole.SIGNERS:\n return DocumentMemberRole.SIGNER;\n case DocumentInvitationMemberRole.EDITORS:\n return DocumentMemberRole.EDITOR;\n case DocumentInvitationMemberRole.AUDITORS:\n return DocumentMemberRole.AUDITOR;\n case DocumentInvitationMemberRole.VIEWERS:\n return DocumentMemberRole.VIEWER;\n case DocumentInvitationMemberRole.HOLDER:\n return DocumentMemberRole.HOLDER;\n default:\n return role;\n }\n};\n\nexport const documentMemberRoleToInvitationRole = (\n role: DocumentMemberRole | undefined\n): DocumentInvitationMemberRole => {\n switch (role) {\n case DocumentMemberRole.ADMIN:\n return DocumentInvitationMemberRole.ADMINS;\n case DocumentMemberRole.SIGNER:\n return DocumentInvitationMemberRole.SIGNERS;\n case DocumentMemberRole.EDITOR:\n return DocumentInvitationMemberRole.EDITORS;\n case DocumentMemberRole.AUDITOR:\n return DocumentInvitationMemberRole.AUDITORS;\n case DocumentMemberRole.VIEWER:\n return DocumentInvitationMemberRole.VIEWERS;\n case DocumentMemberRole.HOLDER:\n return DocumentInvitationMemberRole.HOLDER;\n default:\n return DocumentInvitationMemberRole.VIEWERS;\n }\n};\n\n// Remove disable rule when all state typed\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getUserDetails = (state: any, documentMember: DocumentMember): UserManagerPerson => {\n const { identityStore, documentUsersManagerStore } = state;\n const { workspaceUsers, workspaceGroups } = identityStore;\n\n // check in workspace users\n const matchedUserIdentity = workspaceUsers?.find(\n (user: WorkspaceUser) => user.identityId === documentMember.id\n );\n\n if (matchedUserIdentity) {\n // assign value for UserManagerPerson\n return {\n _id: matchedUserIdentity.identityId,\n email: matchedUserIdentity.email,\n contactEmail: matchedUserIdentity.contactEmail,\n _name: matchedUserIdentity.name,\n active: matchedUserIdentity.active,\n role: invitationMemberRoleToDocumentMemberRole(documentMember.role),\n _status: documentMember.status,\n isGroup: false,\n isInvited: false,\n isInvitationToBeSend: false,\n isExternal: false,\n };\n }\n // check in workspace groups\n const matchedGroupIdentity = workspaceGroups.find(\n (group: WorkspaceGroup) => group.info.groupId === documentMember.id\n );\n if (matchedGroupIdentity) {\n // assign value for UserManagerPerson\n return {\n _id: matchedGroupIdentity.info.groupId,\n creatorId: matchedGroupIdentity.info.creatorId,\n _name: matchedGroupIdentity.info.name,\n description: matchedGroupIdentity.info.description,\n active: matchedGroupIdentity.info.active,\n role: invitationMemberRoleToDocumentMemberRole(documentMember.role),\n _status: documentMember.status,\n isGroup: true,\n isInvited: false,\n isInvitationToBeSend: false,\n isExternal: false,\n };\n }\n const { externalGroupEntities, externalContactEntities } = documentUsersManagerStore;\n if (externalContactEntities[documentMember.id] || externalGroupEntities[documentMember.id]) {\n const contactData = externalContactEntities[documentMember.id];\n // check identities from contact book\n if (contactData) {\n return {\n _id: contactData.identityId,\n _name: contactData.identityName,\n email: contactData.email,\n active: contactData.active,\n role: invitationMemberRoleToDocumentMemberRole(documentMember.role),\n _status: documentMember.status,\n isGroup: false,\n isInvited: false,\n isInvitationToBeSend: false,\n isExternal: true,\n workspaceId: contactData.workspaceId,\n workspaceName: contactData.workspaceName,\n };\n }\n const groupData = externalGroupEntities[documentMember.id];\n // check groups from contact book\n if (groupData) {\n return {\n _id: groupData.groupId,\n active: groupData.active,\n role: invitationMemberRoleToDocumentMemberRole(documentMember.role),\n _status: documentMember.status,\n _name: groupData.groupName,\n isGroup: true,\n isInvited: false,\n isInvitationToBeSend: false,\n isExternal: true,\n workspaceId: groupData.workspaceId,\n workspaceName: groupData.workspaceName,\n };\n }\n }\n\n return {\n _id: undefined,\n email: undefined,\n contactEmail: undefined,\n _name: undefined,\n active: false,\n role: DocumentMemberRole.VIEWER,\n _status: undefined,\n isGroup: false,\n isInvited: false,\n isInvitationToBeSend: false,\n isExternal: false,\n };\n};\n\nconst selectInvitedDocumentMembersWithDetails = (state: RootState): UserManagerPerson[] =>\n state.documentUsersManagerStore.invitedDocumentMembers.map(\n (invitedMember: InvitedDocumentMember) => ({\n email: invitedMember.mail || '',\n active: true,\n role: invitationMemberRoleToDocumentMemberRole(invitedMember.role),\n isToken: invitedMember.mail === null,\n isGroup: false,\n isInvited: true,\n isInvitationToBeSend: false,\n isExternal: false,\n })\n );\n\nconst selectSearchedEntitiesWithDetails = (state: RootState): UserManagerPerson[] => {\n const currentWorkspace = IdentitySelector.selectWorkspaceId(state);\n return state.documentUsersManagerStore.searchedEntities.map((entity: SingleEntity) => ({\n active: entity.active,\n email: entity.email,\n _id: entity.entityId,\n _name: entity.entityName,\n isGroup: entity.group,\n workspaceId: entity.workspaceId,\n workspaceName: entity.workspaceName,\n isInvited: false,\n isInvitationToBeSend: false,\n isExternal: entity.workspaceId !== currentWorkspace,\n }));\n};\n\nconst selectSignersInOrder = (state: RootState): DocumentMember[] => {\n const signers = state.documentUsersManagerStore.documentMembers.filter(\n (member) => invitationMemberRoleToDocumentMemberRole(member.role) === DocumentMemberRole.SIGNER\n );\n const idsOrder = state.documentUsersManagerStore.documentSigners.ids;\n\n const sortFunc = (a: DocumentMember, b: DocumentMember) =>\n idsOrder.indexOf(a.id) - idsOrder.indexOf(b.id);\n\n return signers.sort(sortFunc);\n};\n\nconst selectDocumentHolder = (state: RootState): DocumentMember[] =>\n state.documentUsersManagerStore.documentMembers.filter(\n (member) => invitationMemberRoleToDocumentMemberRole(member.role) === DocumentMemberRole.HOLDER\n );\n\nconst selectOtherRoles = (state: RootState): DocumentMember[] =>\n state.documentUsersManagerStore.documentMembers.filter(\n (member) =>\n invitationMemberRoleToDocumentMemberRole(member.role) !== DocumentMemberRole.HOLDER &&\n invitationMemberRoleToDocumentMemberRole(member.role) !== DocumentMemberRole.SIGNER\n );\n\nconst selectSignersInOrderWithDetails = (state: RootState): UserManagerPerson[] => {\n const sortedSigners = selectSignersInOrder(state);\n const invitedSignersWithDetails = selectInvitedDocumentMembersWithDetails(state).filter(\n (member) => member.role === DocumentMemberRole.SIGNER\n );\n\n return [\n ...sortedSigners.map((item) => getUserDetails(state, item)),\n ...invitedSignersWithDetails,\n ];\n};\n\nconst selectOtherRolesWithDetails = (state: RootState): UserManagerPerson[] => {\n const otherRoles = selectOtherRoles(state);\n const invitedOtherRolesWithDetails = selectInvitedDocumentMembersWithDetails(state).filter(\n (member) =>\n member.role !== DocumentMemberRole.SIGNER && member.role !== DocumentMemberRole.HOLDER\n );\n\n return [\n ...otherRoles.map((item) => getUserDetails(state, item)),\n ...invitedOtherRolesWithDetails,\n ];\n};\n\nconst selectHoldersWithDetails = (state: RootState): UserManagerPerson[] => {\n const holders = selectDocumentHolder(state);\n const invitedHoldersWithDetails = selectInvitedDocumentMembersWithDetails(state).filter(\n (member) => member.role === DocumentMemberRole.HOLDER\n );\n\n return [...holders.map((item) => getUserDetails(state, item)), ...invitedHoldersWithDetails];\n};\n\nconst hasDocumentActionPermission = (state: RootState, action: DocumentUserAction): boolean =>\n state.documentUsersManagerStore.availableDocumentActions.includes(action);\n\ntype selectDocumentActionType = {\n canRejectDocCert: boolean;\n canEditFileDoc: boolean;\n canAddSignerDocCert: boolean;\n canAddSignerByInvitationDocCert: boolean;\n canAddUserDocCert: boolean;\n canModifyRoleDocCert: boolean;\n canModifySignersDocCert: boolean;\n canSignDocCert: boolean;\n canRejectSignatureDoc: boolean;\n canLinkDoc: boolean;\n canUnlinkDoc: boolean;\n canViewDoc: boolean;\n canRenameDoc: boolean;\n canUpdateTagsDoc: boolean;\n canSetTransferabilityCert: boolean;\n canInvalidateTemporarilyCert: boolean;\n canValidateCert: boolean;\n canInvalidateCert: boolean;\n canChangeHolderCert: boolean;\n};\n\nconst selectDocumentAction = (state: RootState): selectDocumentActionType => ({\n canRejectDocCert: hasDocumentActionPermission(state, DocumentUserAction.RejectDocument),\n canEditFileDoc: hasDocumentActionPermission(state, DocumentUserAction.EditFile),\n canAddSignerDocCert: hasDocumentActionPermission(state, DocumentUserAction.AddSigner),\n canAddSignerByInvitationDocCert: hasDocumentActionPermission(\n state,\n DocumentUserAction.AddSignerByInvitation\n ),\n canAddUserDocCert: hasDocumentActionPermission(state, DocumentUserAction.AddUser),\n canModifyRoleDocCert: hasDocumentActionPermission(state, DocumentUserAction.ModifyRole),\n canModifySignersDocCert: hasDocumentActionPermission(state, DocumentUserAction.ModifySigners),\n canSignDocCert: hasDocumentActionPermission(state, DocumentUserAction.Sign),\n canRejectSignatureDoc: hasDocumentActionPermission(state, DocumentUserAction.RejectSignature),\n canLinkDoc: hasDocumentActionPermission(state, DocumentUserAction.LinkDocument),\n canUnlinkDoc: hasDocumentActionPermission(state, DocumentUserAction.UnlinkDocument),\n canViewDoc: hasDocumentActionPermission(state, DocumentUserAction.View),\n canRenameDoc: hasDocumentActionPermission(state, DocumentUserAction.RenameDocument),\n canUpdateTagsDoc: hasDocumentActionPermission(state, DocumentUserAction.UpdateTags),\n canSetTransferabilityCert: hasDocumentActionPermission(\n state,\n DocumentUserAction.SetTransferability\n ),\n canInvalidateTemporarilyCert: hasDocumentActionPermission(\n state,\n DocumentUserAction.InvalidateTemporarilyDocument\n ),\n canValidateCert: hasDocumentActionPermission(state, DocumentUserAction.ValidateDocument),\n canInvalidateCert: hasDocumentActionPermission(state, DocumentUserAction.InvalidateDocument),\n canChangeHolderCert: hasDocumentActionPermission(state, DocumentUserAction.ChangeHolder),\n});\n\nconst selectCalculatedSignersCount = (state: RootState): number => {\n const {\n documentSigners: { ids },\n invitedDocumentMembers,\n } = state.documentUsersManagerStore;\n return (\n invitedDocumentMembers.filter(\n (el) => invitationMemberRoleToDocumentMemberRole(el.role) === DocumentMemberRole.SIGNER\n ).length + ids.length\n );\n};\n\nconst selectDraftSignersCount = (state: RootState): number => {\n const { draftRoles } = state.documentUsersManagerStore;\n return draftRoles[DocumentMemberRole.SIGNER].length;\n};\n\nconst selectDraftOtherRolesCount = (state: RootState): number => {\n const { draftRoles } = state.documentUsersManagerStore;\n const draftHoldersCount = draftRoles[DocumentMemberRole.HOLDER].length;\n const draftAdminsCount = draftRoles[DocumentMemberRole.ADMIN].length;\n const draftAuditorsCount = draftRoles[DocumentMemberRole.AUDITOR].length;\n const draftEditorsCount = draftRoles[DocumentMemberRole.EDITOR].length;\n const draftViewersCount = draftRoles[DocumentMemberRole.VIEWER].length;\n\n return (\n draftHoldersCount +\n draftAdminsCount +\n draftAuditorsCount +\n draftEditorsCount +\n draftViewersCount\n );\n};\n\nconst selectRecipientsUpdated = (state: RootState, roles: DocumentMemberRole[]): boolean => {\n // Destructure the needed values from the state.\n const {\n documentUsersManagerStore: {\n documentMembers,\n invitedDocumentMembers,\n draftRoles,\n draftTransferability,\n },\n documentDisplayStore: { document },\n } = state;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const documentInfo: any = document as any;\n\n // Get the transferable attribute from the document object.\n const transferable = documentInfo?.additionalAttributes?.transferable;\n // Function to count the number of a certain role in a set.\n const rolesCountInSet = (\n set: Array,\n role: DocumentMemberRole\n ) => set.filter((el) => invitationMemberRoleToDocumentMemberRole(el.role) === role).length;\n\n // Check if there are roles in the draft for the roles we care about.\n const draftUpdated = roles.some(\n (role) => draftRoles[invitationMemberRoleToDocumentMemberRole(role)].length > 0\n );\n\n // If there are no roles in the draft, return true.\n if (!draftUpdated) return true;\n\n // Function to check if the number of a role in draftRoles is the same as in documentMembers and invitedDocumentMembers.\n const isRoleCountSame = (role: DocumentMemberRole) =>\n draftRoles[invitationMemberRoleToDocumentMemberRole(role)].length ===\n rolesCountInSet(documentMembers, role) + rolesCountInSet(invitedDocumentMembers, role);\n\n // Check if the number of each role in draftRoles is the same as in documentMembers and invitedDocumentMembers\n // and if the transferable property is either undefined or the same as in draftTransferability.\n return (\n roles.every(isRoleCountSame) &&\n (transferable === undefined || draftTransferability === transferable)\n );\n};\n\nconst DocumentUserManagerSelector = {\n selectSignersInOrder,\n selectSignersInOrderWithDetails,\n selectDocumentHolder,\n selectHoldersWithDetails,\n selectOtherRoles,\n selectOtherRolesWithDetails,\n selectSearchedEntitiesWithDetails,\n selectDocumentAction,\n selectCalculatedSignersCount,\n selectRecipientsUpdated,\n selectDraftSignersCount,\n selectDraftOtherRolesCount,\n};\n\nexport default DocumentUserManagerSelector;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing, palette }) =>\n createStyles({\n menuFooter: {\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'space-between',\n },\n itemsWrapper: {\n minWidth: 350,\n maxHeight: 250,\n overflowY: 'scroll',\n },\n searchInput: {\n padding: '6px 12px',\n width: '100%',\n '& div:before, div:after': {\n display: 'none',\n },\n },\n textWrapper: {\n paddingLeft: spacing(2),\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n '& .highlight': {\n fontWeight: 700,\n color: palette.primary.main,\n textDecoration: 'underline',\n },\n },\n listCheckbox: {\n marginRight: -4,\n },\n avatarCheckboxWrapper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 34,\n },\n }),\n { index: 0 }\n);\n","import { DocumentRole } from 'src/models/document.model';\nimport { DocumentStatus, TemplateDocumentType } from '../../models/documents.model';\n\nconst selectDocumentAuthorId = (state) => state.documentDisplayStore.document?.authorId;\n\nconst isDocumentExpired = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.EXPIRED;\n\nconst isDocumentRejected = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.REJECTED;\n\nconst isCertificate = (state) =>\n state.documentDisplayStore.document?.documentType === TemplateDocumentType.CERTIFICATES;\n\nconst isDocumentFinished = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.FINISHED;\n\nconst isDocumentSigning = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.SIGNING;\n\nconst isDocumentIssuing = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.ISSUING;\n\nconst isDocumentEditing = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.EDITING;\n\nconst isDocumentValid = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.VALID;\n\nconst isDocumentTempInvalidated = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.TEMPORARILY_INVALIDATE;\n\nconst isDocumentInvalidated = (state) =>\n state.documentDisplayStore.document?.status === DocumentStatus.INVALIDATED;\n\nconst hasUserSignedDocument = (state) => {\n const { documentMembers } = state.documentManagementStore;\n const activeIdentity = state.identityStore.currentIdentity;\n\n const getCurrentUserSignerFromMembers = documentMembers.find(\n (key) => key.id === activeIdentity?.identity?.identityId && key.role === DocumentRole.SIGNERS\n );\n\n return getCurrentUserSignerFromMembers !== undefined\n ? getCurrentUserSignerFromMembers?.status === 'SIGNED'\n : false;\n};\n\nconst selectDocumentExpiresOn = (state) =>\n state.documentDisplayStore.document?.additionalAttributes?.expiresOn;\n\nexport const documentDisplaySelector = {\n hasUserSignedDocument,\n isCertificate,\n isDocumentEditing,\n isDocumentFinished,\n isDocumentInvalidated,\n isDocumentIssuing,\n isDocumentRejected,\n isDocumentExpired,\n isDocumentSigning,\n isDocumentTempInvalidated,\n isDocumentValid,\n selectDocumentExpiresOn,\n selectDocumentAuthorId,\n};\n","import React from 'react';\nimport match from 'autosuggest-highlight/match';\nimport parse from 'autosuggest-highlight/parse';\n\ninterface HighlightStringProps {\n text: string;\n highlightString: string;\n}\n\nconst HighlightString = ({ text, highlightString }: HighlightStringProps): JSX.Element => {\n const matches = match(text, highlightString, {\n insideWords: true,\n findAllOccurrences: true,\n });\n const parts = parse(text, matches);\n\n return (\n <>\n {parts.map((part, index) => (\n \n {part.text}\n \n ))}\n \n );\n};\n\nexport default HighlightString;\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport palette from '../../../../theme/options/palette';\n\nexport const useAddNewItemStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n wrapper: {\n display: 'flex',\n padding: spacing(2),\n alignItems: 'center',\n },\n textWrapper: {\n width: '100%',\n paddingLeft: spacing(2),\n display: 'flex',\n flexDirection: 'column',\n },\n inputSkeleton: {\n transform: 'unset',\n marginBottom: 4,\n width: '100%',\n maxWidth: 600,\n },\n autocompleteOption: {\n padding: 0,\n '&>div': {\n paddingTop: 4,\n paddingBottom: 4,\n minHeight: 54,\n width: '100%',\n },\n },\n groupHeader: {\n minHeight: 32,\n borderBottom: `1px solid ${palette.secondary.light}`,\n },\n input: {},\n inputRoot: {\n padding: '0 12px!important',\n minHeight: '24px!important',\n width: '100%',\n maxWidth: 600,\n '& input': {\n padding: 0,\n },\n },\n }),\n { index: 0 }\n);\n\nexport const useUserItemStyles = makeStyles(\n ({ spacing, palette }) =>\n createStyles({\n sortable: {\n display: 'block',\n padding: 0,\n color: 'unset',\n marginLeft: 0,\n },\n wrapper: {\n display: 'flex',\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n minHeight: 76,\n alignItems: 'center',\n transition: 'all .3s',\n background: palette.background.paper,\n borderRadius: 8,\n '& .avatarWrapper .MuiAvatar-root': {\n transition: 'all .3s',\n },\n '&:hover .itemTitleHover': {\n color: palette.primary.main,\n },\n '&:hover .avatarWrapper .MuiAvatar-root': {\n boxShadow: '2px 5px 12px -4px rgb(0 0 0 / 20%)',\n },\n '&.hoverEnabled:hover': {\n background: palette.action.hover,\n },\n },\n textWrapper: {\n paddingLeft: spacing(2),\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n '& .highlight': {\n fontWeight: 700,\n color: palette.primary.main,\n textDecoration: 'underline',\n },\n },\n title: {\n fontWeight: 500,\n },\n removeButton: {\n color: palette.text.secondary,\n '&:hover': {\n color: palette.primary.main,\n },\n },\n }),\n { index: 0 }\n);\n\nexport const useUserItemTitleStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n title: {\n display: 'flex',\n transition: 'color .3s ease',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n '& *': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n },\n author: {\n marginLeft: 6,\n color: palette.warning.main,\n },\n you: {\n marginLeft: 6,\n color: palette.text.secondary,\n },\n group: {\n marginLeft: 6,\n color: palette.common.purple,\n },\n sentChip: {\n color: palette.common.purple,\n background: '#fef7fd',\n marginLeft: 6,\n },\n pendingChip: {\n color: '#FFCE51',\n background: '#fffdf6',\n marginLeft: 6,\n },\n }),\n { index: 0 }\n);\n\nexport const useUserItemDescriptionStyles = makeStyles(\n () =>\n createStyles({\n description: {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n }),\n { index: 0 }\n);\n\nexport const useUserItemRolesStyles = makeStyles(\n ({ palette, spacing, transitions }) =>\n createStyles({\n menuWrapper: {\n color: palette.text.primary,\n flexDirection: 'column',\n alignItems: 'flex-start',\n\n '&:hover, &.Mui-selected': {\n transition: 'all .3s',\n backgroundColor: palette.action.hover,\n },\n '&:hover, &.Mui-selected:hover': {\n backgroundColor: palette.action.hover,\n transition: 'all .3s',\n },\n },\n title: {\n marginBottom: 4,\n },\n description: {\n color: palette.text.secondary,\n whiteSpace: 'normal',\n maxWidth: 280,\n },\n button: {\n color: palette.secondary.dark,\n '&:hover': {\n color: palette.primary.main,\n },\n },\n opened: {\n color: palette.primary.main,\n '& $icon': {\n transform: 'rotate(-180deg)',\n },\n },\n icon: {\n width: 16,\n height: 16,\n marginLeft: spacing(-0.5),\n lineHeight: 1,\n color: 'inherit',\n transition: transitions.create(['color', 'transform', 'opacity'], {\n duration: transitions.duration.short,\n }),\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { DocumentMemberRole, UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport { Chip, Tooltip, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport clsx from 'clsx';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport HighlightString from './HighlightString';\nimport { useUserItemTitleStyles } from './styles';\n\ninterface UserItemTitleProps {\n userData: UserManagerPerson;\n highlightString: string;\n showTitleAdditionalTexts?: boolean;\n}\n\nconst UserItemTitle = ({\n userData,\n highlightString,\n showTitleAdditionalTexts = true,\n}: UserItemTitleProps): JSX.Element | null => {\n const classes = useUserItemTitleStyles();\n const { t } = useTranslation();\n const isAuthor = useSelector(documentDisplaySelector.selectDocumentAuthorId) === userData._id;\n const isYou = useSelector(IdentitySelector.selectCurrentIdentityId) === userData._id;\n const isSentInvitation = userData.isInvited;\n const isNewInvitation = userData.isInvitationToBeSend;\n const isCurrentHolder =\n userData.role === DocumentMemberRole.HOLDER && !isSentInvitation && !isNewInvitation;\n const { isGroup, isToken } = userData;\n\n return (\n
    \n \n {isToken ? (\n t('common.generatedToken')\n ) : (\n \n )}\n \n {!isToken && showTitleAdditionalTexts && (\n <>\n {isAuthor && (\n \n ({t('common.author')})\n \n )}\n {isYou && (\n \n ({t('common.you')})\n \n )}\n {isGroup && (\n \n ({t('common.groupLowerCase')})\n \n )}\n {isSentInvitation && (\n ('documentUserManager.sentInvitationTooltip')}>\n ('common.sent')} />\n \n )}\n {isNewInvitation && (\n ('documentUserManager.newInvitationTooltip')}>\n ('common.new')} />\n \n )}\n {isCurrentHolder && (\n ('documentUserManager.currentOwnerTooltip')}>\n ('documentUserManager.currentOwner')}\n />\n \n )}\n \n )}\n
    \n );\n};\nexport default UserItemTitle;\n","import React from 'react';\nimport { UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport { Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport HighlightString from './HighlightString';\nimport { useUserItemDescriptionStyles } from './styles';\n\ninterface UserItemTitleProps {\n userData: UserManagerPerson;\n highlightString: string;\n}\n\nconst UserItemDescription = ({\n userData,\n highlightString,\n}: UserItemTitleProps): JSX.Element | null => {\n const classes = useUserItemDescriptionStyles();\n const { t } = useTranslation();\n const {\n isToken,\n isInvited,\n isInvitationToBeSend,\n isExternal,\n email,\n _name,\n workspaceName,\n } = userData;\n if (isToken) return null;\n\n const isNameSameAsMail = Boolean(_name) && Boolean(email) && _name === email;\n\n return (\n <>\n {isInvited || isInvitationToBeSend ? (\n \n {t('documentUserManager.invitationByMail')}\n \n ) : (\n <>\n {/* Description: when external workspace and mail is different from name */}\n {isExternal && !isNameSameAsMail && (\n \n \n {t('documentUserManager.externalWorkspace')}\n )\n \n )}\n {/* Same workspace and mail different from name */}\n {!isExternal && !isNameSameAsMail && (\n \n \n \n )}\n {/* External workspace and mail is same as name */}\n {isExternal && isNameSameAsMail && (\n \n {t('documentUserManager.externalWorkspace')}\n )\n \n )}\n \n )}\n \n );\n};\nexport default UserItemDescription;\n","import React, { KeyboardEvent, ChangeEvent, MouseEvent, useEffect, useMemo, useState } from 'react';\nimport {\n Button,\n Checkbox,\n Divider,\n Fab,\n ListItemIcon,\n Menu,\n MenuItem,\n TextField,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentUserManagerActions from 'src/redux/actions/documentUserManager.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\nimport { UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport { Search as SearchIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\nimport { AvatarWithBadge } from '../index';\nimport UserItemTitle from '../DocumentUsersManager/subcomponents/UserItem/UserItemTitle';\nimport UserItemDescription from '../DocumentUsersManager/subcomponents/UserItem/UserItemDescription';\n\ntype DocumentTypeDropdownProps = {\n children: JSX.Element;\n onSubmit: (types: UserManagerPerson[]) => void;\n initialRecipients: UserManagerPerson[];\n};\n\nconst RecipientsDropdown = ({\n children,\n onSubmit,\n initialRecipients,\n}: DocumentTypeDropdownProps): JSX.Element => {\n const dispatch = useDispatch();\n const classes = useStyles();\n const { t } = useTranslation();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const searchedEntities = useSelector(\n DocumentUserManagerSelector.selectSearchedEntitiesWithDetails,\n undefined\n );\n const [hover, setHover] = useState(-1);\n const [selectedRecipients, setSelectedRecipients] = useState(initialRecipients);\n const [searchTerm, setSearchTerm] = useState('');\n const [anchorEl, setAnchorEl] = useState(null);\n const allSelected =\n selectedRecipients.length > 0 && searchedEntities.length === selectedRecipients.length;\n\n const someSelected = selectedRecipients.length > 0;\n\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const handleClose = () => {\n setSearchTerm('');\n setAnchorEl(null);\n setSelectedRecipients(initialRecipients);\n };\n\n const handleChange = (recipient: UserManagerPerson) => {\n if (selectedRecipients.find((el) => el._id === recipient._id))\n setSelectedRecipients(selectedRecipients.filter((el) => el._id !== recipient._id));\n else setSelectedRecipients([...selectedRecipients, recipient]);\n };\n\n const handleSelectAll = () => {\n setSelectedRecipients(allSelected ? [] : searchedEntities);\n };\n\n const onSubmitClick = () => {\n onSubmit(selectedRecipients);\n setSearchTerm('');\n setAnchorEl(null);\n };\n\n const onSearchChange = (event: ChangeEvent) =>\n setSearchTerm(event.target.value);\n\n const onKeyDown = (event: KeyboardEvent) => {\n event.stopPropagation();\n };\n const handleMouseEnter = (index: number) => {\n setHover(index);\n };\n\n const handleMouseLeave = () => {\n setHover(-1);\n };\n const isOpen = Boolean(anchorEl);\n const selectedIds = useMemo(() => selectedRecipients.map((el) => el._id), [selectedRecipients]);\n\n useEffect(() => {\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, '', 100));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setSelectedRecipients(initialRecipients);\n }, [initialRecipients]);\n\n return (\n <>\n
    \n {children}\n
    \n \n \n \n \n ),\n }}\n />\n \n \n \n \n \n {t('common.selectAll')}\n \n \n
    \n {searchedEntities\n .filter(\n (el) =>\n el._name?.toLowerCase().includes(searchTerm.toLowerCase()) ||\n el.email?.toLowerCase().includes(searchTerm.toLowerCase())\n )\n .map((el, index) => {\n const checked = selectedIds.includes(el._id);\n const showCheckbox = checked || hover === index;\n return (\n <>\n handleChange(el)}\n onMouseEnter={() => handleMouseEnter(index)}\n onMouseLeave={handleMouseLeave}\n divider={false}\n >\n
    \n \n
    \n \n {el.email || el._name}\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 RecipientsDropdown;\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport { lighten } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n chip: {\n marginRight: 6,\n background: lighten(palette.primary.main, 0.95),\n color: palette.primary.main,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Chip, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { AdvancedSearchFields } from 'src/models/documents.model';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport { UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport Field from '../../subcomponents/AdvancedSearchModalField';\nimport RecipientsDropdown from '../../../RecipientsDropdown/RecipientsDropdown';\nimport { useStyles } from './styles';\n\nconst RecipientsField = (): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const classes = useStyles();\n const draftRecipients = useSelector(\n (state: RootState) => state.documentsStore.draftAdvancedSearch[AdvancedSearchFields.RECIPIENTS]\n );\n const [firstRecipient] = draftRecipients;\n const recipientsCounter = draftRecipients.length - 1;\n const isEmpty = draftRecipients.length === 0;\n\n const onSubmit = (recipients: UserManagerPerson[]) =>\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.RECIPIENTS, recipients)\n );\n\n return (\n ('advancedSearch.fields.recipients.label')} withInputWrapper>\n \n <>\n {isEmpty && (\n {t('advancedSearch.fields.recipients.placeholder')}\n )}\n {firstRecipient && (\n \n )}\n {recipientsCounter > 0 && +{recipientsCounter}}\n \n \n \n );\n};\n\nexport default RecipientsField;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, typography }) =>\n createStyles({\n header: {\n width: '100%!important',\n margin: '0!important',\n top: 0,\n left: 0,\n position: 'sticky',\n zIndex: 1,\n '& > div': {\n minHeight: '40px',\n paddingTop: 'unset',\n },\n '& h4 strong': {\n fontWeight: '500 !important',\n fontSize: 16,\n },\n },\n tilesContainer: {\n width: '100%!important',\n margin: '0!important',\n '& > div': {\n minHeight: '40px',\n\n [breakpoints.down('sm')]: {\n padding: '0 12px',\n },\n },\n },\n tilesContainerGrayed: {\n opacity: 0.5,\n '& > div:hover': {\n backgroundColor: 'unset !important',\n '& .titleCell': {\n color: `${palette.text.primary} !important`,\n },\n },\n },\n popover: {\n overflow: 'hidden',\n },\n textField: {\n '& .Mui-disabled': {\n background: 'white',\n cursor: 'pointer',\n color: palette.text.primary,\n },\n },\n changeLocationButton: {\n color: palette.primary.main,\n textDecoration: 'underline',\n fontWeight: typography.fontWeightBold,\n cursor: 'pointer',\n },\n locationExplorer: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n position: 'relative',\n alignItems: 'flex-start',\n width: '400px',\n height: '400px',\n boxSizing: 'border-box',\n [breakpoints.down('sm')]: {\n width: '360px',\n height: '400px',\n },\n },\n locationExplorerHeader: {\n position: 'absolute',\n height: 50,\n padding: '0 12px',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n borderBottom: `1px solid ${palette.secondary.light}`,\n },\n locationExplorerContent: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100%',\n boxSizing: 'border-box',\n margin: '50px 0',\n overflowY: 'auto',\n },\n locationExplorerContentCategory: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n flexDirection: 'column',\n width: '100%',\n boxSizing: 'border-box',\n },\n locationExplorerContentCategoryHeader: {\n color: palette.secondary.dark,\n fontWeight: typography.fontWeightBold,\n cursor: 'pointer',\n },\n locationExplorerFooter: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n position: 'absolute',\n bottom: 0,\n height: 50,\n padding: '0 16px',\n borderTop: `1px solid ${palette.secondary.light}`,\n },\n locationExplorerSubmitButton: {\n display: 'flex',\n alignItems: 'center',\n color: palette.primary.main,\n fontWeight: typography.fontWeightBold,\n cursor: 'pointer',\n },\n locationExplorerHeaderText: {\n display: 'flex',\n alignItems: 'center',\n fontWeight: typography.fontWeightBold,\n cursor: 'pointer',\n width: '100%',\n },\n locationExplorerItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n cursor: 'pointer',\n width: '100%',\n background: 'white',\n margin: '10px 0',\n borderRadius: '5px',\n border: `1px solid transparent`,\n },\n locationExplorerItemSelected: {\n border: `1px solid ${palette.primary.main}`,\n },\n locationExplorerItemIcon: {\n marginRight: '10px',\n color: palette.primary.main,\n },\n centerWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%',\n },\n backButton: {\n marginRight: '10px',\n },\n input: {\n width: '100%',\n '& input': {\n minHeight: 32,\n lineHeight: '32px',\n },\n '& .MuiFormHelperText-root': {\n position: 'absolute',\n top: '100%',\n },\n },\n inputRoot: {\n paddingRight: 0,\n },\n inputButton: {\n height: 32,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 8,\n borderBottomRightRadius: 8,\n padding: 8,\n },\n createNewFolderContent: {\n display: 'flex',\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n form: {\n width: '100%',\n },\n dataTableWrapper: {\n width: '100%',\n boxSizing: 'border-box',\n\n [breakpoints.down('sm')]: {\n width: '100%',\n padding: '0 5px',\n },\n },\n }),\n { index: 0 }\n);\n","import { useCallback, useEffect, useState } from 'react';\nimport documentsService from 'src/redux/services/documents.service';\n\nconst useFolderStructure = (workspaceId, folderId, refetch) => {\n const [requestState, setRequestState] = useState({\n isLoading: false,\n error: null,\n folderStructure: null,\n documents: null,\n });\n\n const fetchStructure = useCallback(async () => {\n try {\n setRequestState((state) => ({\n ...state,\n error: null,\n isLoading: true,\n }));\n\n const folderStructureResponse = await documentsService.fetchFolderTree(\n workspaceId,\n folderId,\n 2\n );\n\n const rootFolderId =\n folderId === 'root'\n ? folderStructureResponse.data.collection.find((f) => f.isRoot)?.id\n : folderId;\n const documentsInFolder = await documentsService.getDocumentsInFolder(\n workspaceId,\n rootFolderId\n );\n\n const dataWithLeafs = folderStructureResponse.data.collection.map((folder) => {\n const hasChildrenInCurrentSet = !!folderStructureResponse.data.collection.find(\n (f) => f.parent === folder.id\n );\n\n return {\n ...folder,\n isLeaf: !hasChildrenInCurrentSet,\n };\n });\n\n setRequestState((state) => ({\n ...state,\n isLoading: false,\n folderStructure: dataWithLeafs,\n documents: documentsInFolder.data.collection,\n }));\n } catch (err) {\n setRequestState((state) => ({\n ...state,\n isLoading: false,\n error: err.message,\n }));\n }\n }, [folderId, workspaceId]);\n\n useEffect(() => {\n fetchStructure().then();\n }, [workspaceId, folderId, fetchStructure]);\n\n useEffect(() => {\n if (refetch) {\n fetchStructure().then();\n }\n }, [refetch, fetchStructure]);\n\n const currentFolder = requestState.folderStructure?.find((folder) => {\n if (folderId === 'root') {\n return folder.isRoot;\n }\n\n return folderId === folder.id;\n });\n\n return [requestState, currentFolder];\n};\n\nexport { useFolderStructure };\n","import { Button, TextField } from '@material-ui/core';\nimport { CheckRounded } from '@material-ui/icons';\nimport React from 'react';\nimport * as yup from 'yup';\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { func } from 'prop-types';\nimport { useStyles } from './styles';\nimport { RegexFormulas } from '../../helpers/regex';\n\nconst DirectoryExplorerCreateInput = ({ onSubmit }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n\n const validationSchema = yup.object({\n name: yup\n .string(t('directoryExplorer.enterName'))\n .matches(RegexFormulas.folderName, t('validation.folderName'))\n .required(t('validation.required')),\n });\n const formik = useFormik({\n initialValues: {\n name: '',\n },\n validationSchema,\n enableReinitialize: true,\n onSubmit: (values) => {\n onSubmit(values);\n },\n });\n\n return (\n
    \n \n \n \n ),\n classes: {\n root: classes.inputRoot,\n },\n }}\n />\n \n );\n};\n\nDirectoryExplorerCreateInput.propTypes = {\n onSubmit: func,\n};\n\nexport default DirectoryExplorerCreateInput;\n","import { useEffect, useRef } from 'react';\n\nfunction usePrevious(value: T): T | undefined {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nexport default usePrevious;\n","import { CircularProgress, Fab, Popover, Typography, useMediaQuery } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { DataTable } from 'src/components/index';\nimport { Close, ChevronLeft } from 'src/components/CustomIcon';\nimport { CreateNewFolderRounded } from '@material-ui/icons';\nimport { FolderColsConfig } from 'src/helpers/fileAndFolderColsConfig';\nimport { any, func, string, bool } from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport { useStyles } from './styles';\nimport { useFolderStructure } from './useFolderStructure';\nimport DirectoryExplorerCreateInput from './DirectoryExplorerCreateInput';\nimport WebSocketHelper from '../../helpers/WebSocketHelper';\nimport usePrevious from '../../helpers/hooks/usePrevious';\n\nconst DirectoryExplorer = ({\n handleChange,\n onClose,\n anchorEl,\n workspaceId,\n initialFolderId,\n anchorOrigin,\n transformOrigin,\n confirmText,\n hideCreateNew = false,\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const [locationState, setLocationState] = useState({\n id: initialFolderId || 'root',\n parentId: null,\n });\n const [selectedLocation, setSelectedLocation] = useState([]);\n const [selectedLocationDetails, setSelectedLocationDetails] = useState(null);\n const [showCreateNewFolder, setShowCreateNewFolder] = useState(false);\n const [createPending, setCreateFolderPending] = useState(false);\n const prevState = usePrevious({ createPending });\n const shouldRefetch = prevState?.createPending && !createPending;\n const [folderStructureState, currentFolder] = useFolderStructure(\n workspaceId,\n locationState.id,\n shouldRefetch\n );\n const classes = useStyles();\n const ws = useRef(null);\n useEffect(() => {\n if (initialFolderId) {\n setLocationState({ id: initialFolderId, parentId: null });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!anchorEl && !initialFolderId) {\n setLocationState({ id: 'root', parentId: null });\n setSelectedLocation([]);\n }\n }, [anchorEl, initialFolderId]);\n\n const open = !!anchorEl;\n const id = open ? 'location-explorer-popover' : undefined;\n\n const handleSelect = () => {\n const name = (() => {\n if (selectedLocation.length > 0) {\n return selectedLocationDetails.name;\n }\n\n if (currentFolder.name === '/') {\n return 'Drive';\n }\n\n return currentFolder.name;\n })();\n\n handleChange({\n id: selectedLocation.length > 0 ? selectedLocationDetails.id : currentFolder.id,\n name,\n });\n onClose();\n };\n\n const handleGoBack = () => {\n if (showCreateNewFolder) {\n setShowCreateNewFolder(false);\n } else {\n setLocationState((state) => ({\n ...state,\n id: currentFolder.parent || 'root',\n parentId: null,\n }));\n }\n };\n\n const onFolderClick = (row, isDoubleClick) => {\n if (!isDoubleClick) {\n const prevSelection = selectedLocation.length > 0;\n\n if (!prevSelection) {\n setSelectedLocation([row.id]);\n setSelectedLocationDetails(row);\n return;\n }\n\n setSelectedLocation([]);\n setSelectedLocationDetails(null);\n } else {\n setSelectedLocation([]);\n setSelectedLocationDetails(null);\n setLocationState({\n name: row.name,\n id: row.id,\n parentId: row.parent,\n });\n }\n };\n\n const foldersRowsData = folderStructureState?.folderStructure?.filter(\n (folder) => folder.parent === currentFolder?.id && !folder.isRoot && !folder.isTrash\n );\n\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const noFoldersConfig = {\n label: t('drivePage.foldersTable.noItems'),\n };\n\n const noDocumentsConfig = {\n label: t('drivePage.documentsTable.noItems'),\n };\n\n const currentFolderName = currentFolder?.isRoot ? 'Drive' : currentFolder?.name;\n\n const onCreateSubmit = ({ name }) => {\n dispatch(documentsActions.createFolder(workspaceId, currentFolder.id, name));\n setCreateFolderPending(true);\n };\n\n const onWebSocketMessage = (message, setPending) => {\n if (message.type === 'RESULT') {\n switch (message.code) {\n case 'FOLDER_CREATED':\n onFolderClick(message.data.result, true);\n setPending(false);\n setShowCreateNewFolder(false);\n break;\n default:\n console.warn(`Unknown code [${message.code}]`, message);\n break;\n }\n }\n };\n\n useEffect(() => {\n if (workspaceId) {\n ws.current = WebSocketHelper.subscribe(\n 'document-indexing-service',\n `workspaces/${workspaceId}`,\n (message) => {\n onWebSocketMessage(message, setCreateFolderPending);\n }\n );\n }\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, [workspaceId, setCreateFolderPending]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const confirmTranslation = () => {\n if (confirmText) return confirmText;\n return selectedLocation.length > 0\n ? t('createCertificate.putThere')\n : t('createCertificate.putHere');\n };\n\n return (\n <>\n \n
    \n {folderStructureState.isLoading && (\n
    \n \n
    \n )}\n {!!folderStructureState.error && (\n
    \n {folderStructureState.error}\n
    \n )}\n\n {!folderStructureState.isLoading && !folderStructureState.error && (\n <>\n
    \n \n {(!currentFolder?.isRoot || showCreateNewFolder) && (\n \n \n \n )}\n {showCreateNewFolder ? (\n \n ) : (\n currentFolderName\n )}\n \n {!showCreateNewFolder && (\n \n \n \n )}\n
    \n
    \n {showCreateNewFolder ? (\n
    \n \n {t('directoryExplorer.contentText', { value: currentFolderName })}\n \n
    \n ) : (\n <>\n
    \n {\n onFolderClick(row, false);\n }}\n selectable\n onDblClick={(row) => {\n onFolderClick(row, true);\n }}\n selectedRows={selectedLocation}\n isLoading={folderStructureState.isLoading}\n defaultIcon=\"folder\"\n tileRowsOnMobile\n smallScreen={smallScreen}\n noItems={noFoldersConfig}\n />\n
    \n
    \n 0 &&\n classes.tilesContainerGrayed\n ),\n }}\n title={t('drivePage.documentsTable.title')}\n iconWidth={40}\n headerTextWidthLikeIcon\n rows={folderStructureState.documents}\n cols={FolderColsConfig(t)}\n selectable\n selectedRows={selectedLocation}\n isLoading={folderStructureState.isLoading}\n defaultIcon=\"file\"\n tileRowsOnMobile\n smallScreen={smallScreen}\n noItems={noDocumentsConfig}\n />\n
    \n \n )}\n
    \n
    \n {hideCreateNew ? (\n
    \n ) : (\n setShowCreateNewFolder(true)}\n >\n \n \n )}\n \n {confirmTranslation()}\n \n
    \n \n )}\n
    \n \n \n );\n};\n\nDirectoryExplorer.propTypes = {\n handleChange: func,\n onClose: func,\n // eslint-disable-next-line react/forbid-prop-types\n anchorEl: any,\n // eslint-disable-next-line react/forbid-prop-types\n anchorOrigin: any,\n // eslint-disable-next-line react/forbid-prop-types\n transformOrigin: any,\n workspaceId: string,\n confirmText: string,\n hideCreateNew: bool,\n initialFolderId: string,\n};\n\nexport default DirectoryExplorer;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n icon: {\n color: palette.secondary.main,\n marginRight: 10,\n width: 20,\n },\n }),\n { index: 0 }\n);\n","import React, { MouseEvent, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport DirectoryExplorer from 'src/components/DirectoryExplorer/DirectoryExplorer';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { AdvancedSearchFields } from 'src/models/documents.model';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport { Folder as FolderIcon } from 'src/components/CustomIcon';\n\nimport Field from '../../subcomponents/AdvancedSearchModalField';\nimport { useStyles } from './styles';\n\ntype DirectoryExplorerReturnType = {\n id: string;\n name: string;\n};\n\nconst LocationField = (): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const [anchorEl, setAnchorEl] = useState(null);\n const draftLocation = useSelector(\n (state: RootState) => state.documentsStore.draftAdvancedSearch[AdvancedSearchFields.LOCATION]\n );\n const closeLocationExplorer = () => {\n setAnchorEl(null);\n };\n\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const currentFolderId = useSelector((state: RootState) => state.documentsStore.currentFolderId);\n const handleChange = (value: DirectoryExplorerReturnType) =>\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.LOCATION, {\n idPath: value.id,\n namePath: value.name,\n })\n );\n\n return (\n ('advancedSearch.fields.location.label')} withInputWrapper>\n <>\n
    \n \n {draftLocation && (\n \n {draftLocation.namePath === '/' ? t('common.drive') : draftLocation.namePath}\n \n )}\n {draftLocation === null && (\n {t('advancedSearch.fields.location.placeholder')}\n )}\n
    \n {anchorEl && (\n ('common.apply')}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n />\n )}\n \n
    \n );\n};\n\nexport default LocationField;\n","import React from 'react';\nimport { Dialog, DialogContent } from '@material-ui/core';\nimport AdvancedSearchModalTitle from './subcomponents/AdvancedSearchModalTitle';\nimport AdvancedSearchModalActions from './subcomponents/AdvancedSearchModalActions';\nimport NameField from './fields/NameField/NameField';\nimport DocumentTypeField from './fields/DocumentTypeField/DocumentTypeField';\nimport DocumentStatusField from './fields/DocumentStatusField/DocumentStatusField';\nimport DateField from './fields/DateField/DateField';\nimport { AdvancedSearchFields } from '../../models/documents.model';\nimport RecipientsField from './fields/RecipientsField/RecipientsField';\nimport LocationField from './fields/LocationField/LocationField';\n\ntype AdvancedSearchModalProps = {\n onClose: () => void;\n};\n\nconst AdvancedSearchModal = ({ onClose }: AdvancedSearchModalProps): JSX.Element => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default AdvancedSearchModal;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport clsx from 'clsx';\nimport documentActions from 'src/redux/actions/documents.actions';\nimport { Autocomplete } from '@material-ui/lab';\nimport {\n AppBar,\n CircularProgress,\n Dialog,\n Fab,\n TextField,\n Theme,\n Tooltip,\n useMediaQuery,\n useTheme,\n} from '@material-ui/core';\nimport {\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n AutocompleteInputChangeReason,\n} from '@material-ui/lab/Autocomplete/Autocomplete';\nimport { HeaderButton, TopBarContainer } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport {\n ArrowLeftSLine as BackIcon,\n Search as SearchIcon,\n Slider as AdvancedIcon,\n Close as CloseIcon,\n} from 'src/components/CustomIcon';\nimport { FileColsConfig, FolderColsConfig } from 'src/helpers/fileAndFolderColsConfig';\nimport { RootState } from 'src/redux/reducers';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { DocumentsSelector } from 'src/redux/selectors/documents.selector';\nimport {\n AdvancedSearchFields,\n DocumentItemCategoryType,\n SearchedItem,\n} from 'src/models/documents.model';\nimport DataTableHeader from '../DataTable/DataTableHeader';\nimport { HeaderSearchItem } from './subcomponents';\nimport { useStyles } from './styles';\nimport AdvancedSearchModal from '../AdvancedSearchModal/AdvancedSearchModal';\nimport { advancedSearchInitialState } from '../../redux/reducers/documents.reducer';\n\ntype HeaderSearchProps = {\n showOpenButton?: boolean;\n iconWidth?: number | 'auto';\n};\n\nconst HeaderSearch = ({\n showOpenButton = true,\n iconWidth = 'auto',\n}: HeaderSearchProps): JSX.Element | null => {\n const classes = useStyles();\n const { palette } = useTheme();\n const { t } = useTranslation();\n const history = useHistory();\n const isSearchPage = history.location.pathname.includes('search');\n const dispatch = useDispatch();\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n const [open, setOpen] = useState(false);\n const [loading, setLoading] = useState(false);\n const [isSearchActive, setSearchActive] = useState(false);\n const [isAdvancedSettingsModalOpen, setIsAdvancedSettingsModalOpen] = useState(false);\n const toggleSearchActive = () => {\n if (smallScreen) {\n setSearchActive(!isSearchActive);\n } else {\n setSearchActive(false);\n }\n };\n const [searchTerm, setSearchTerm] = useState('');\n const { foldersSearchFetchStatus, documentsSearchFetchStatus, advancedSearch } = useSelector(\n (state: RootState) => state.documentsStore\n );\n const searchValue = isSearchPage ? advancedSearch?.[AdvancedSearchFields.NAME] : searchTerm;\n const foldersColConfig = FolderColsConfig(t);\n const filesColConfig = FileColsConfig(t);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const searchedList = useSelector(DocumentsSelector.selectSearchedList);\n const isOpenDropdown = open && !isSearchPage && searchTerm.length > 0;\n const isSearchEdited =\n JSON.stringify(advancedSearch) !== JSON.stringify(advancedSearchInitialState);\n const toggleAdvanceSearchOpen = () => setIsAdvancedSettingsModalOpen((prevState) => !prevState);\n\n useEffect(() => {\n if (searchTerm.length > 0) {\n setLoading(true);\n } else {\n setLoading(false);\n setOpen(false);\n }\n if (searchTerm.length > 0) {\n dispatch(documentActions.getDocumentsBySearchQuery(workspaceId, searchTerm));\n dispatch(documentActions.getFoldersBySearchQuery(workspaceId, searchTerm));\n }\n }, [searchTerm, workspaceId, dispatch]);\n\n useEffect(() => {\n if (\n documentsSearchFetchStatus === RequestStatus.PENDING ||\n foldersSearchFetchStatus === RequestStatus.PENDING\n ) {\n setOpen(true);\n setLoading(true);\n } else {\n setLoading(false);\n }\n }, [documentsSearchFetchStatus, foldersSearchFetchStatus]);\n\n useEffect(() => {\n if (loading) {\n setOpen(true);\n }\n }, [loading]);\n\n // Reset search on route change\n useEffect(() => {\n setSearchTerm('');\n dispatch(documentActions.clearSearched());\n setOpen(false);\n }, [history.location, dispatch]);\n\n const onInputChange = (\n event: React.ChangeEvent,\n value: string,\n reason: AutocompleteInputChangeReason\n ) => {\n if (isSearchPage) {\n dispatch(documentActions.updateAdvancedSearch(AdvancedSearchFields.NAME, value));\n dispatch(documentActions.updateDraftAdvancedSearch(AdvancedSearchFields.NAME, value));\n } else {\n setSearchTerm(value);\n dispatch(documentActions.updateDraftAdvancedSearch(AdvancedSearchFields.NAME, value));\n }\n if (reason === 'clear') {\n dispatch(documentActions.clearSearched());\n }\n };\n\n const onAutocompleteSelect = (\n event: React.ChangeEvent,\n newValue: SearchedItem | string | null\n ) => {\n if (newValue && typeof newValue !== 'string') {\n if (newValue.documentType) {\n history.push(\n `/${newValue?.documentType.includes('dsl') ? 'certificate' : 'document'}/${newValue?.id}`\n );\n } else {\n history.push(`/drive/${newValue?.id}`);\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getRowParams = (type: string) => {\n switch (type) {\n case DocumentItemCategoryType.FOLDERS:\n return {\n title: t('drivePage.foldersTable.title'),\n cols: foldersColConfig,\n icon: 'folder',\n };\n\n default:\n case DocumentItemCategoryType.DOCUMENTS:\n return {\n title: t('drivePage.documentsTable.title'),\n cols: filesColConfig,\n icon: 'file',\n };\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderGroup = (params: AutocompleteRenderGroupParams) => {\n const groupParams = getRowParams(params.group);\n\n return [\n ,\n params.children,\n ];\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderOption = (option: SearchedItem) => {\n const groupParams = getRowParams(option.category);\n\n return (\n \n );\n };\n\n const renderInput = (params: AutocompleteRenderInputParams) => (\n {\n if (e.key === 'Enter') {\n e.preventDefault();\n dispatch(documentActions.updateAdvancedSearch(AdvancedSearchFields.NAME, searchValue));\n dispatch(\n documentActions.updateDraftAdvancedSearch(AdvancedSearchFields.NAME, searchValue)\n );\n history.push('/search');\n }\n }}\n onFocus={() => {\n setOpen(true);\n }}\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <>\n {loading && }\n {searchValue.length > 0 && params.InputProps.endAdornment}\n {!smallScreen && (\n ('advancedSearch.title')}>\n {\n e.preventDefault();\n toggleAdvanceSearchOpen();\n }}\n >\n \n \n \n )}\n \n ),\n startAdornment: (\n <>\n \n \n \n {smallScreen && (\n }\n className={classes.backButton}\n tooltip={t('common.back')}\n />\n )}\n \n ),\n }}\n />\n );\n const renderAutocomplete = () => (\n {\n setOpen(false);\n }}\n groupBy={(option) => option.category}\n getOptionLabel={(option) => option.name}\n onChange={onAutocompleteSelect}\n onInputChange={onInputChange}\n renderGroup={renderGroup}\n renderOption={renderOption}\n renderInput={renderInput}\n closeIcon={}\n fullWidth\n disablePortal\n loadingText={t('common.loading')}\n clearText={t('common.clear')}\n noOptionsText={t('common.noResults')}\n />\n );\n\n return (\n
    \n {smallScreen ? (\n <>\n \n \n {renderAutocomplete()}\n \n \n\n {showOpenButton && (\n }\n tooltip={t('common.search')}\n />\n )}\n \n ) : (\n renderAutocomplete()\n )}\n {isAdvancedSettingsModalOpen && }\n
    \n );\n};\n\nexport default HeaderSearch;\n","import { fade } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing }) =>\n createStyles({\n imageAppStore: {\n height: 30,\n marginRight: spacing(0.5),\n },\n imagePlay: {\n height: 30,\n },\n userWrapper: {\n maxWidth: `calc(100% - 40px)`,\n },\n appImageWrapper: {\n justifyContent: 'space-between',\n },\n workspaceItem: {\n width: '100% !important',\n margin: '0 !important',\n '& .MuiAvatar-root': {\n borderRadius: '25%',\n },\n },\n root: {\n maxWidth: '100%',\n '& .small-item': {\n paddingTop: 2,\n paddingBottom: 2,\n paddingLeft: spacing(4),\n minHeight: 38,\n },\n\n '& .MuiAccordion-root': {\n margin: 0,\n },\n\n '& .MuiAccordionSummary-content.Mui-expanded': {\n margin: 0,\n },\n '& .MuiAccordionSummary-root.Mui-expanded': {\n minHeight: 38,\n position: 'sticky',\n top: 0,\n backgroundColor: palette.background.paper,\n zIndex: 1,\n },\n },\n availableWorkspaces: {\n paddingLeft: spacing(4),\n },\n accordionDetailsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n padding: spacing(0, 2),\n '& li': {\n paddingLeft: spacing(4),\n },\n },\n accordionDetails: {\n display: 'flex',\n flexDirection: 'column',\n padding: 0,\n },\n accordionTitle: {\n padding: spacing(0, 2.5),\n },\n currentWorkspaceText: {\n paddingLeft: spacing(1.5),\n width: 240,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n currentWorkspace: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n },\n drawerPaper: {\n top: 0,\n bottom: 0,\n height: '100%',\n width: '100%',\n [breakpoints.up('sm')]: {\n maxWidth: 360,\n overflow: 'hidden',\n },\n },\n top: {\n justifyContent: 'flex-end',\n },\n content: {\n width: '100%',\n flex: 1,\n overflowY: 'auto',\n padding: 0,\n },\n bottom: {\n [breakpoints.up('lg')]: {\n paddingTop: `${spacing(2)}px !important`,\n },\n },\n closeButton: {\n marginLeft: 'auto',\n [breakpoints.up('lg')]: {\n marginRight: -12,\n },\n },\n newButton: {\n width: `calc(100% + ${spacing(2)}px)`,\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n padding: spacing(1),\n justifyContent: 'start',\n },\n newButtonIcon: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: spacing(5),\n height: spacing(5),\n borderRadius: '50%',\n color: palette.primary.main,\n backgroundColor: fade(palette.primary.light, 0.1),\n marginTop: 0,\n marginBottom: 0,\n marginLeft: 0,\n marginRight: spacing(1),\n [breakpoints.down('sm')]: {\n width: spacing(4),\n height: spacing(4),\n },\n [breakpoints.up('lg')]: {\n marginRight: spacing(1.5),\n },\n [breakpoints.up('xl')]: {\n marginRight: spacing(2),\n },\n },\n logout: {\n color: `${palette.error.main} !important`,\n '&:hover p, p': {\n color: `${palette.error.main} !important`,\n },\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport authActions from 'src/redux/actions/auth.actions';\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Avatar,\n Divider,\n Drawer,\n Fab,\n Link,\n ListItemIcon,\n MenuItem,\n Theme,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport {\n AvatarAndTextItem,\n ContentContainer,\n HeaderButton,\n TopBarContainer,\n CreateWorkspace,\n} from 'src/components';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { RootState } from 'src/redux/reducers';\nimport {\n ArrowDownSLine as ArrowDownIcon,\n Close as CloseIcon,\n Help,\n Logout as LogoutIcon,\n Plus as PlusIcon,\n Settings as SettingsIcon,\n Users as UsersIcon,\n UserSettings as UserSettingsIcon,\n Wallet,\n} from 'src/components/CustomIcon';\nimport { lighten } from '@material-ui/core/styles';\nimport { useStyles } from './styles';\nimport { getColorFromText, getInitials } from '../../helpers/globalUtilsTS';\nimport { IdentitySelector } from '../../redux/selectors/identity.selector';\nimport { userComActions } from '../../redux/actions/userCom.actions';\n\ninterface HeaderUserDrawerProps {\n opened: boolean;\n onClose: () => void;\n}\nconst HeaderMenuMobile = ({ opened, onClose }: HeaderUserDrawerProps): JSX.Element => {\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n const classes = useStyles();\n const history = useHistory();\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const activeIdentity = useSelector((state: RootState) => state.identityStore.currentIdentity);\n const isOwner = useSelector((state: RootState) => state.identityStore.isOwner);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const availableWorkspaces = useSelector(IdentitySelector.selectAvailableWorkspaces, undefined);\n const currentWorkspace = useSelector(IdentitySelector.selectWorkspaceDetails, undefined);\n const [createWorkspaceDialogOpen, setCreateWorkspaceDialogOpen] = useState(false);\n const initials = getInitials(currentWorkspace?.name || ' ');\n const colorByInitials = getColorFromText(initials);\n\n const avatarSize = !smallScreen ? 'large' : 'medium';\n const userText = activeIdentity?.identity.name || activeIdentity?.identity.email || '';\n const userDescription =\n activeIdentity?.identity.name &&\n activeIdentity?.identity.name !== activeIdentity?.identity.email\n ? activeIdentity?.identity.email\n : undefined;\n\n const handleLogout = () => {\n dispatch(authActions.deleteToken());\n };\n const openCreateWorkspaceDialog = () => {\n setCreateWorkspaceDialogOpen(true);\n };\n const changeWorkspace = (id: string) => {\n if (typeof onClose === 'function') {\n onClose();\n }\n dispatch(\n identityActions.switchWorkspace(id, () => {\n history.push('/');\n return undefined;\n })\n );\n };\n\n const goToUserSettings = () => {\n history.push(`/user-settings/basic/settings`);\n onClose();\n };\n\n const goToWorkspaceSettings = () => {\n history.push(`/workspace-settings/basic/settings`);\n onClose();\n };\n const goToWorkspaceUsers = () => {\n history.push(`/workspace-settings/user-management/users`);\n onClose();\n };\n const goToWorkspaceBilling = () => {\n history.push(`/workspace-settings/subscription/products`);\n onClose();\n };\n\n const isEn = i18n.language === 'EN';\n\n const onChatSupport = () => {\n userComActions.openChat();\n onClose();\n };\n\n const onSubmitRequest = () => {\n if (workspaceId) userComActions.user.submitRequest(workspaceId);\n onClose();\n };\n\n const openPage = (url: string) => {\n window.open(url, '_blank');\n onClose();\n };\n\n const expandIcon = (\n \n \n \n );\n\n return (\n <>\n {typeof onClose === 'function' && (\n \n \n \n }\n tooltip={t('common.close')}\n />\n \n\n \n \n \n \n \n \n {t('headerUser.accountSettings')}{' '}\n \n \n \n \n \n {currentWorkspace && (\n
    \n \n {initials}\n \n \n {currentWorkspace.name}\n \n
    \n )}\n
    \n \n \n {isOwner && (\n <>\n \n \n \n \n \n {t('sideBar.settings')}\n \n \n \n \n \n \n \n {t('sideBar.members')}\n \n \n \n \n \n \n \n {t('sideBar.billing')}\n \n \n \n \n )}\n \n \n \n \n \n {t('sideBar.newWorkspace')}\n \n \n \n
    \n {availableWorkspaces && availableWorkspaces?.length > 1 ? (\n availableWorkspaces\n .filter((item) => item.workspace.workspaceId !== workspaceId)\n .map((item, index) => (\n ('common.changeIdentity')}\n isButton\n onClick={() => {\n changeWorkspace(item.workspace.workspaceId);\n }}\n />\n ))\n ) : (\n \n {t('userDrawer.otherIdentitiesEmpty')}\n \n )}\n
    \n
    \n
    \n \n \n \n \n \n {t('headerHelp.help')}\n \n \n openPage('https://docs.doxychain.com')}>\n {t('headerHelp.helpDocs')} \n \n openPage('https://www.doxychain.com/tutorials')}\n >\n {t('headerHelp.tutorials')}\n \n openPage('https://www.doxychain.com/faqs')}\n >\n {t('headerHelp.faq')}\n \n \n \n {t('headerHelp.chatSupport')}\n \n \n {t('headerHelp.request')}\n \n \n \n openPage(\n isEn\n ? 'https://www.doxychain.com/legal#terms'\n : 'https://www.doxychain.com/legal#terms-pol'\n )\n }\n >\n {t('headerHelp.terms')}\n \n \n openPage(\n isEn\n ? 'https://www.doxychain.com/legal#privacy'\n : 'https://www.doxychain.com/legal#privacy-pol'\n )\n }\n >\n {t('headerHelp.privacy')}\n \n \n \n \n \"App\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t('headerUser.logout')} \n \n
    \n \n )}\n\n {createWorkspaceDialogOpen && (\n setCreateWorkspaceDialogOpen(false)} />\n )}\n \n );\n};\n\nexport default HeaderMenuMobile;\n","import spacing from 'src/theme/options/spacing';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, typography, transitions }) =>\n createStyles({\n root: {},\n menuLink: {\n padding: spacing(0.75, 1.5),\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n minHeight: 36,\n fontSize: typography.subtitle2.fontSize,\n color: palette.text.secondary,\n borderBottom: `1px solid ${palette.divider}`,\n '&:hover, &:focus': {\n color: palette.primary.main,\n },\n },\n breadcrumbLink: {\n padding: 4,\n margin: -4,\n },\n dropBackground: {\n backgroundColor: palette.primary.lightest,\n borderRadius: spacing(0.5),\n transition: transitions.create(['background-color', 'color'], {\n duration: transitions.duration.standard,\n }),\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Link } from '@material-ui/core';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useDrop } from 'react-dnd';\nimport { useStyles } from './styles';\nimport { FolderOpen as FolderIcon } from '../CustomIcon';\n\nconst LinkBehavior = React.forwardRef((props, ref) => );\n\nconst LinkDnd = ({ folder, isMenuLink }) => {\n const classes = useStyles();\n const [{ isOver }, drop] = useDrop(() => ({\n accept: 'ITEM',\n item: { folder },\n drop: () => folder,\n collect: (monitor) => ({\n isOver: monitor.isOver({ shallow: true }),\n }),\n }));\n\n return (\n \n {folder.path === '' && }\n {folder.name}\n \n );\n};\n\nLinkDnd.propTypes = {\n folder: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n path: PropTypes.string,\n isActive: PropTypes.bool,\n }),\n isMenuLink: PropTypes.bool,\n};\n\nexport default LinkDnd;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, shadows, shape, spacing, transitions, typography }) =>\n createStyles({\n root: {\n width: '100%',\n textAlign: 'left',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n borderRadius: shape.borderRadius,\n padding: spacing(2),\n transition: transitions.create(['background-color', 'box-shadow', 'border', 'color'], {\n duration: transitions.duration.short,\n }),\n },\n clickable: {\n border: `1px solid ${palette.divider}`,\n '&:hover:not($selected), &:focus:not($selected)': {\n textDecoration: 'none',\n borderColor: palette.bottomLineColor,\n boxShadow: shadows[6],\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n '&[disabled]': {\n backgroundColor: 'transparent',\n },\n },\n },\n selected: {\n borderColor: palette.primary.main,\n boxShadow: shadows[12],\n },\n notActive: {\n opacity: 0.1,\n pointerEvents: 'none',\n },\n disabled: {\n opacity: 0.1,\n pointerEvents: 'none',\n },\n content: {\n flex: 1,\n },\n label: {\n display: 'flex',\n alignItems: 'center',\n '& em': {\n fontStyle: 'inherit',\n fontWeight: typography.fontWeightRegular,\n color: palette.primary.main,\n fontSize: typography.subtitle2.fontSize,\n },\n },\n description: {\n display: 'block',\n marginTop: spacing(0.5),\n },\n icon: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 48,\n minWidth: 48,\n height: 48,\n marginRight: spacing(2),\n color: palette.text.disabled,\n transition: transitions.create(['color'], {\n duration: transitions.duration.short,\n }),\n '& svg': {\n display: 'block',\n },\n },\n iconSelected: {\n color: palette.primary.main,\n },\n iconVariant: {\n borderRadius: shape.borderRadius,\n backgroundColor: palette.background.default,\n },\n fullWidth: {\n width: '100%',\n },\n informationModalOpen: {\n width: spacing(3),\n minWidth: spacing(3),\n height: spacing(3),\n minHeight: spacing(3),\n margin: `${spacing(-0.5)}px ${spacing(0.5)}px`,\n '& *': {\n pointerEvents: 'none',\n },\n '& svg': {\n width: spacing(2),\n height: spacing(2),\n color: palette.text.disabled,\n },\n '&:hover, &:focus': {\n '& svg': {\n color: palette.primary.main,\n },\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { ButtonBase, Fab, Radio, Tooltip, Typography } from '@material-ui/core';\nimport { Info as InfoIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst ListChoiceButton = React.forwardRef(\n (\n {\n className: classNameProp,\n fullWidth,\n icon,\n label,\n additionalLabel,\n description,\n hasModalInfo,\n onClick,\n onMoreInfoClick,\n disableFocusRipple,\n value,\n selected,\n disabled,\n iconColor,\n iconVariant,\n radio,\n },\n ref\n ) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const Component = !disabled ? ButtonBase : 'div';\n const infoButtonRef = React.createRef();\n\n const additionalButtonProps = !disabled\n ? {\n onClick: (event) => {\n if (\n (hasModalInfo &&\n event.target !== infoButtonRef.current &&\n typeof onClick === 'function') ||\n !hasModalInfo\n ) {\n onClick();\n }\n },\n value,\n disabled,\n raised: String(selected),\n focusRipple: !disableFocusRipple,\n }\n : {};\n\n return (\n \n {icon && (\n \n {icon}\n
    \n )}\n\n
    \n {label && (\n
    \n \n {label}\n {additionalLabel && (\n <>\n {' '}\n {`(${additionalLabel})`}\n \n )}\n \n\n {hasModalInfo && typeof onMoreInfoClick === 'function' && (\n \n onMoreInfoClick()}\n >\n \n \n \n )}\n
    \n )}\n {description && (\n \n {description}\n \n )}\n
    \n\n {radio && (\n
    \n \n
    \n )}\n \n );\n }\n);\n\nListChoiceButton.propTypes = {\n className: PropTypes.string,\n label: PropTypes.node,\n additionalLabel: PropTypes.string,\n description: PropTypes.string,\n hasModalInfo: PropTypes.bool,\n fullWidth: PropTypes.bool,\n icon: PropTypes.node,\n iconColor: PropTypes.string,\n iconVariant: PropTypes.bool,\n onClick: PropTypes.func,\n onMoreInfoClick: PropTypes.func,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n value: PropTypes.string,\n radio: PropTypes.bool,\n disableFocusRipple: PropTypes.bool,\n};\n\nListChoiceButton.defaultProps = {\n disableFocusRipple: false,\n disabled: false,\n radio: false,\n selected: false,\n hasModalInfo: false,\n};\n\nexport default ListChoiceButton;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n root: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n width: 110,\n height: 25,\n marginTop: -2,\n marginBottom: -2,\n '& img': {\n display: 'block',\n margin: 'auto',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: 'auto',\n height: 'auto',\n maxWidth: '100%',\n minHeight: '100%',\n },\n },\n large: {\n width: 148,\n height: 34,\n marginTop: -3,\n marginBottom: -3,\n },\n loader: {},\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Img from 'react-image';\nimport { CustomLink } from 'src/components';\nimport { CircularProgress } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst Logo = ({ className: classNameProp, variant, size }) => {\n const classes = useStyles();\n const [didMount, setDidMount] = useState(false);\n const largeSize = size === 'large';\n\n useEffect(() => {\n setDidMount(true);\n return () => setDidMount(false);\n }, []);\n\n if (!didMount) {\n return null;\n }\n return (\n \n (\n
    \n {children}\n
    \n )}\n loader={\n
    \n
    \n \n
    \n
    \n }\n />\n
    \n );\n};\n\nLogo.propTypes = {\n className: PropTypes.string,\n variant: PropTypes.oneOf(['default', 'inverted']),\n size: PropTypes.oneOf(['default', 'large']),\n};\nLogo.defaultProps = {\n variant: 'default',\n size: 'default',\n};\n\nexport default Logo;\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport { fade } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, typography }) =>\n createStyles({\n root: {},\n mainItem: {\n '&:not(:last-child)': {\n marginBottom: spacing(1.5),\n '& $subItems': {\n paddingBottom: spacing(1),\n },\n },\n },\n smallMainItem: {\n '&:not(:last-child)': {\n marginBottom: spacing(1),\n '& $subItems': {\n paddingBottom: spacing(0.5),\n },\n },\n },\n mediumMainItem: {\n '&:not(:last-child)': {\n marginBottom: spacing(1.5),\n '& $subItems': {\n paddingBottom: spacing(1),\n },\n },\n },\n largeMainItem: {\n '&:not(:last-child)': {\n marginBottom: spacing(2.5),\n '& $subItems': {\n paddingBottom: spacing(2),\n },\n },\n },\n item: {\n background: 'transparent',\n width: '100%',\n fontFamily: typography.h5.fontFamily,\n fontWeight: typography.fontWeightMedium,\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n marginLeft: 0,\n marginRight: 0,\n whiteSpace: 'initial',\n '&:not($nestedItem)': {\n fontSize: typography.h5.fontSize,\n },\n '& $itemIcon': {\n transition: 'inherit',\n },\n '&$itemActive': {\n fontWeight: typography.fontWeightBold,\n },\n '&:hover, &:focus, &$itemActive': {\n background: 'transparent',\n },\n },\n smallItemSize: {},\n mediumItemSize: {\n [breakpoints.up('md')]: {\n paddingLeft: spacing(2.5),\n paddingRight: spacing(2.5),\n '&$nestedItem': {\n paddingLeft: spacing(2.5) + 32,\n },\n },\n [breakpoints.up('lg')]: {\n paddingLeft: spacing(3.5),\n paddingRight: spacing(3.5),\n '&$nestedItem': {\n paddingLeft: spacing(3.5) + 32,\n },\n },\n },\n largeItemSize: {\n [breakpoints.up('md')]: {\n paddingLeft: spacing(3),\n paddingRight: spacing(3),\n '&$nestedItem': {\n paddingLeft: spacing(3) + 32,\n },\n },\n [breakpoints.up('lg')]: {\n paddingLeft: spacing(5),\n paddingRight: spacing(5),\n '&$nestedItem': {\n paddingLeft: spacing(5) + 32,\n },\n },\n },\n nestedItem: {\n fontSize: '1rem',\n fontWeight: typography.fontWeightRegular,\n paddingLeft: spacing(2) + 32,\n '&$itemActive': {\n fontWeight: typography.fontWeightMedium,\n },\n },\n itemActive: {},\n itemIcon: {},\n itemNoClick: {\n pointerEvents: 'none',\n },\n subItems: {},\n defaultColor: {\n '& $item': {\n color: palette.text.primary,\n '&:hover:not($itemActive), &:focus:not($itemActive)': {\n '& $itemIcon': {\n color: palette.text.primary,\n filter: `drop-shadow(0px 8px 14px ${fade(palette.text.primary, 0.45)})`,\n },\n },\n },\n '& $nestedItem': {\n color: palette.text.secondary,\n '&:hover:not($itemActive), &:focus:not($itemActive)': {\n color: palette.text.primary,\n },\n '&$itemActive': {\n color: palette.primary.main,\n },\n },\n '& $itemActive': {\n '& $itemIcon': {\n color: palette.primary.main,\n '& svg': {\n filter: `drop-shadow(0px 8px 14px ${fade(palette.primary.main, 0.45)})`,\n },\n },\n },\n '& $itemIcon': {\n color: palette.greySimple.main,\n },\n },\n invertedColor: {\n '& $item': {\n color: palette.primary.contrastText,\n '&:hover:not($itemActive), &:focus:not($itemActive)': {\n '& $itemIcon': {\n color: fade(palette.primary.contrastText, palette.tonalOffset * 3),\n },\n },\n },\n '& $nestedItem': {\n color: fade(palette.primary.contrastText, 0.35),\n '&:hover:not($itemActive), &:focus:not($itemActive)': {\n color: fade(palette.primary.contrastText, 0.5),\n },\n '&$itemActive': {\n color: palette.primary.light,\n },\n },\n '& $itemActive': {\n '& $itemIcon': {\n color: palette.primary.light,\n '& svg': {\n filter: `drop-shadow(0px 8px 14px ${fade(palette.primary.light, 0.45)})`,\n },\n },\n },\n '& $itemIcon': {\n color: fade(palette.primary.contrastText, palette.tonalOffset),\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { List, ListItem, ListItemIcon, ListItemText } from '@material-ui/core';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { useStyles } from './styles';\n\nconst MenuNavigationList = ({ className: classNameProp, items, variant, size }) => {\n const classes = useStyles({});\n const location = useLocation();\n\n const checkIfChildrenRouteActive = (subitems) => {\n const currentPath = location.pathname;\n return !!(subitems && subitems.includes(currentPath));\n };\n\n return (\n \n {items.map((item, index) =>\n !item.onlyMobile ? (\n \n {item.children ? (\n item.url)\n ),\n })}\n >\n {item.icon && {item.icon}}\n \n \n ) : (\n \n {item.icon && {item.icon}}\n \n \n )}\n\n {item.children && (\n \n {item.children.map((subItem, subItemIndex) => (\n \n \n \n ))}\n \n )}\n
    \n ) : null\n )}\n \n );\n};\n\nMenuNavigationList.propTypes = {\n className: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n items: PropTypes.arrayOf(PropTypes.object).isRequired,\n variant: PropTypes.oneOf(['default', 'inverted']),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n};\n\nMenuNavigationList.defaultProps = {\n variant: 'default',\n size: 'large',\n};\n\nexport default MenuNavigationList;\n","import moment from 'moment/moment';\n\nexport enum BillingProductType {\n EsignDrive = 'esign_drive',\n Certificates = 'certificates',\n}\n\nexport enum BillingProductStatus {\n Trialing = 'trialing',\n Active = 'active',\n Canceled = 'canceled',\n TrialFinished = 'trial_finished',\n}\n\nexport interface BillingProduct {\n subscriptionId: string;\n status: BillingProductStatus;\n productType: BillingProductType;\n cancelAt?: number;\n}\n\ntype AlertLevel = 'info' | 'warning';\n\ntype checkSubscriptionReturn = {\n daysLeft: number;\n alertLevel: AlertLevel;\n showProductAlert: boolean;\n};\nexport const checkSubscription = (product: BillingProduct | undefined): checkSubscriptionReturn => {\n const daysLeft = moment(product?.cancelAt).endOf('day').diff(moment(), 'days');\n let showProductAlert = false;\n if (product?.cancelAt !== undefined) {\n if (product?.status === BillingProductStatus.Trialing) {\n showProductAlert = daysLeft <= 13;\n }\n if (product?.status === BillingProductStatus.Active) {\n showProductAlert = daysLeft <= 30;\n }\n }\n\n let alertLevel: AlertLevel = 'info';\n\n if (\n product &&\n [BillingProductStatus.Trialing, BillingProductStatus.Active].includes(product.status)\n ) {\n if (daysLeft <= 7) {\n alertLevel = 'warning';\n }\n } else if (daysLeft <= 30) {\n alertLevel = 'warning';\n }\n\n return {\n daysLeft,\n showProductAlert,\n alertLevel,\n };\n};\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n },\n header: {\n justifyContent: 'space-between',\n },\n content: {\n width: '100%',\n flex: 1,\n overflowY: 'auto',\n paddingTop: spacing(1),\n paddingBottom: spacing(1),\n [breakpoints.up('lg')]: {\n paddingBottom: spacing(3),\n },\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport { useMediaQuery } from '@material-ui/core';\nimport { useLocation } from 'react-router-dom';\nimport {\n ContentContainer,\n Logo,\n MenuNavigationList,\n TopBarContainer,\n HeaderButton,\n} from 'src/components';\nimport { Close as CloseIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst MenuSidebar = ({ className: classNameProp, items, onToggle, onClose }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const location = useLocation();\n\n const [currentLocation, setCurrentLocation] = useState(location);\n\n useEffect(() => {\n if (location?.pathname !== currentLocation?.pathname) {\n onClose();\n setCurrentLocation(location);\n }\n }, [currentLocation?.pathname, location, onClose]);\n\n return (\n
    \n \n \n {smallScreen && (\n }\n tooltip={t('common.closeMenu')}\n />\n )}\n \n\n \n \n \n
    \n );\n};\n\nMenuSidebar.propTypes = {\n className: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n items: PropTypes.arrayOf(PropTypes.object),\n onToggle: PropTypes.func,\n onClose: PropTypes.func,\n};\n\nexport default MenuSidebar;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, typography }) =>\n createStyles({\n root: {},\n item: {\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n },\n listItem: {\n minHeight: spacing(10),\n '&:not(:hover):not(:focus)': {\n '& $listItemText': {\n color: palette.text.primary,\n },\n },\n },\n listItemActive: {\n fontWeight: typography.fontWeightBold,\n '& $listItemText': {\n color: `${palette.primary.main} !important`,\n },\n },\n listItemWithSecondaryAction: {\n paddingRight: spacing(6),\n },\n listItemIcon: {\n marginRight: spacing(2),\n },\n listItemText: {\n whiteSpace: 'normal',\n lineHeight: 1.3,\n },\n listItemSecondaryAction: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-end',\n right: spacing(2),\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport {\n Drawer,\n List,\n ListItemIcon,\n ListItemSecondaryAction,\n ListItemText,\n ListSubheader,\n MenuItem,\n} from '@material-ui/core';\n\nimport { useStyles } from './styles';\n\nconst MobileBottomMenuList = ({ className: classNameProp, open, onClose, actions, subheader }) => {\n const classes = useStyles();\n return (\n \n \n {subheader}\n \n )\n }\n >\n {actions.map((action, index) => (\n {\n action.onClick();\n onClose();\n }}\n >\n {action.icon && (\n {action.icon}\n )}\n {action.name}\n {action.secondaryIcon && (\n \n {action.secondaryIcon}\n \n )}\n \n ))}\n \n \n );\n};\n\nMobileBottomMenuList.propTypes = {\n className: PropTypes.string,\n open: PropTypes.bool.isRequired,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n secondaryIcon: PropTypes.node,\n name: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n })\n ),\n onClose: PropTypes.func.isRequired,\n subheader: PropTypes.string,\n};\n\nexport default MobileBottomMenuList;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n root: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n padding: 'inherit',\n overflowX: 'inherit',\n overflowY: 'inherit',\n },\n button: {\n display: 'block',\n margin: '0 auto',\n maxWidth: breakpoints.values.xs * 0.8,\n },\n }),\n { index: 0 }\n);\n","import { fade } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing }) =>\n createStyles({\n root: {\n width: '100%',\n clear: 'both',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n minHeight: '100%',\n\n marginLeft: 'auto',\n marginRight: 'auto',\n width: '100%',\n },\n mobileTitle: {\n paddingBottom: spacing(2),\n marginBottom: spacing(1),\n position: 'sticky',\n top: 0,\n left: 0,\n zIndex: 1,\n backgroundColor: palette.background.paper,\n },\n buttons: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n flex: 1,\n maxWidth: breakpoints.values.sm,\n margin: '0 auto',\n '& > *:not(:last-child)': {\n marginBottom: spacing(1),\n },\n },\n actionButton: {\n maxWidth: breakpoints.values.xs,\n margin: '0 auto',\n },\n alertButton: {\n marginTop: spacing(1),\n color: palette.error.contrastText,\n textDecoration: 'none !important',\n border: `1px solid ${fade(palette.error.contrastText, 0.5)}`,\n '&:hover': {\n border: `1px solid ${palette.error.contrastText}`,\n backgroundColor: fade(palette.common.black, palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n },\n textWrapper: {\n width: 280,\n height: 72,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n textDescription: {\n whiteSpace: 'break-spaces',\n marginTop: 4,\n },\n alert: {\n width: 350,\n margin: '0 auto',\n },\n optionItem: {\n alignItems: 'flex-start',\n },\n optionIcon: {\n marginTop: 6,\n },\n }),\n { index: 0 }\n);\n\nexport const useSubscriptionModalStyles = makeStyles(\n ({ spacing, palette }) =>\n createStyles({\n content: {\n justifyContent: 'center',\n padding: `${spacing(5, 5, 1, 5)}!important`,\n },\n title: { whiteSpace: 'pre-line', textAlign: 'center', marginBottom: spacing(1) },\n description: {\n whiteSpace: 'pre-line',\n textAlign: 'center',\n marginBottom: spacing(3),\n color: palette.secondary.dark,\n },\n buttons: {\n flexDirection: 'column',\n padding: spacing(1, 9, 2, 9),\n },\n confirmButton: {\n marginBottom: spacing(1),\n },\n certColor: {\n color: palette.common.green,\n },\n esignColor: {\n color: palette.primary.light,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\n\ninterface AddNewFolderModalProps {\n open: boolean;\n onClose: () => void;\n onChange: (name: string) => void;\n}\n\nconst AddNewFolderModal = ({ open, onClose, onChange }: AddNewFolderModalProps): JSX.Element => {\n const { t } = useTranslation();\n const handleUpdate = () => {\n onChange(values.folderName);\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(handleUpdate, validate, {\n folderName: '',\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const vErrors = errors as any;\n\n return (\n \n \n {t('drivePage.foldersDialog.addNew.title')}\n \n \n {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleSubmit();\n }\n }}\n value={values.folderName || ''}\n onChange={handleChange}\n error={vErrors.folderName?.length > 0}\n helperText={vErrors.folderName}\n />\n \n \n \n \n \n \n );\n};\n\nexport default AddNewFolderModal;\n","import React, { useEffect, useState } from 'react';\nimport {\n Button,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n Typography,\n} from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { RootState } from 'src/redux/reducers';\nimport { BillingProductStatus, BillingProductType } from '../../models/billing.model';\nimport { TemplateDocumentType } from '../../models/documents.model';\nimport { useSubscriptionModalStyles } from './styles';\nimport { SubscriptionChangeType, userComActions } from '../../redux/actions/userCom.actions';\nimport billingActions from '../../redux/actions/billing.actions';\nimport { IdentitySelector } from '../../redux/selectors/identity.selector';\nimport { RequestStatus } from '../../helpers/reduxReuquest.util';\n\ninterface SubscriptionModalProps {\n onClose: () => void;\n templateDocument: TemplateDocumentType | null;\n}\nconst SubscriptionModal = ({ onClose, templateDocument }: SubscriptionModalProps): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { isCustomerCreated, setCustomerStatus, setTrialSubscriptionStatus } = useSelector(\n (state: RootState) => state.billingStore\n );\n const { isOwner } = useSelector((state: RootState) => state.identityStore, undefined);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const classes = useSubscriptionModalStyles();\n const { subscriptions } = useSelector((state: RootState) => state.billingStore);\n const esignProduct = subscriptions.find((el) => el.productType === BillingProductType.EsignDrive);\n const certProduct = subscriptions.find(\n (el) => el.productType === BillingProductType.Certificates\n );\n const [startTrialLoading, setStartTrialLoading] = useState(false);\n const workspaceDetails = useSelector(IdentitySelector.selectWorkspaceDetails);\n const workspaceName = workspaceDetails?.name || '';\n const isCustomerCreating = setCustomerStatus === RequestStatus.PENDING;\n\n const selectedProduct =\n templateDocument === TemplateDocumentType.CERTIFICATES ? certProduct : esignProduct;\n const productType =\n templateDocument === TemplateDocumentType.CERTIFICATES\n ? BillingProductType.Certificates\n : BillingProductType.EsignDrive;\n\n // on Start trial clicked\n const onStartTrial = () => {\n setStartTrialLoading(true);\n if (!workspaceId) return;\n if (isCustomerCreated) {\n userComActions.subscription.subTrialStarted(productType, workspaceId);\n dispatch(billingActions.setTrialSubscription(workspaceId, productType));\n } else {\n dispatch(\n billingActions.setCustomer(workspaceId, workspaceName, () => {\n userComActions.subscription.subTrialStarted(productType, workspaceId);\n dispatch(billingActions.setTrialSubscription(workspaceId, productType));\n })\n );\n }\n };\n\n const onStartChatWithSales = () => {\n if (!workspaceId) return;\n if (selectedProduct && selectedProduct.status === BillingProductStatus.TrialFinished) {\n userComActions.subscription.subChangesNeeded(\n productType,\n SubscriptionChangeType.PurchaseAfterTrial,\n workspaceId\n );\n }\n if (selectedProduct && selectedProduct.status === BillingProductStatus.Canceled) {\n userComActions.subscription.subChangesNeeded(\n productType,\n SubscriptionChangeType.NewPurchase,\n workspaceId\n );\n }\n onClose();\n };\n\n // Close if trial is started successfully\n useEffect(() => {\n if (setTrialSubscriptionStatus === RequestStatus.SUCCESS && startTrialLoading) {\n onClose();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setTrialSubscriptionStatus]);\n\n return (\n \n \n \n {isOwner ? (\n <>\n {templateDocument === TemplateDocumentType.CERTIFICATES && !certProduct && (\n }}\n />\n )}\n {templateDocument &&\n [\n TemplateDocumentType.DURABLE_MEDIA,\n TemplateDocumentType.DOCUMENT_TO_BE_SIGNED,\n ].includes(templateDocument) &&\n !esignProduct && (\n }}\n />\n )}\n {selectedProduct &&\n selectedProduct.status === BillingProductStatus.TrialFinished &&\n t('subscriptionModal.trialCompleted.title')}\n {selectedProduct &&\n selectedProduct.status === BillingProductStatus.Canceled &&\n t('subscriptionModal.subscriptionCanceled.title')}\n \n ) : (\n <>{t('subscriptionModal.subscriptionNotActiveForMember.title')}\n )}\n \n\n \n {isOwner ? (\n <>\n {selectedProduct &&\n selectedProduct.status === BillingProductStatus.TrialFinished &&\n t('subscriptionModal.trialCompleted.description')}\n {selectedProduct &&\n selectedProduct.status === BillingProductStatus.Canceled &&\n t('subscriptionModal.subscriptionCanceled.description')}\n {templateDocument === TemplateDocumentType.CERTIFICATES &&\n !certProduct &&\n t('subscriptionModal.trialNotStarted.certificate.description')}\n\n {templateDocument &&\n [\n TemplateDocumentType.DURABLE_MEDIA,\n TemplateDocumentType.DOCUMENT_TO_BE_SIGNED,\n ].includes(templateDocument) &&\n !esignProduct &&\n t('subscriptionModal.trialNotStarted.esign.description')}\n \n ) : (\n <>{t('subscriptionModal.subscriptionNotActiveForMember.description')}\n )}\n \n \n\n \n {isOwner ? (\n <>\n {selectedProduct ? (\n \n ) : (\n }\n >\n {t('subscriptionModal.startTrial')}\n \n )}\n \n {t('common.cancel')}\n \n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default SubscriptionModal;\n","import React, { MouseEvent, useEffect, useState } from 'react';\nimport { Divider, ListItemIcon, Menu, MenuItem, Typography, useTheme } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport Alert from '@material-ui/lab/Alert';\nimport { CreateNewFolderOutlined } from '@material-ui/icons';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport {\n CertificateIcon,\n FileEdit as EsignIcon,\n FilesWithShield as DriveIcon,\n} from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\nimport documentCreationActions from '../../redux/actions/documentCreation.actions';\nimport identityActions from '../../redux/actions/identity.actions';\nimport { TemplateDocumentType } from '../../models/documents.model';\nimport { RequestStatus } from '../../helpers/reduxReuquest.util';\nimport { ErrorCode } from '../../models/errors.model';\nimport documentsActions from '../../redux/actions/documents.actions';\nimport AddNewFolderModal from '../AddNewFolderModal/AddNewFolderModal';\nimport SubscriptionModal from './SubscriptionModal';\nimport billingActions from '../../redux/actions/billing.actions';\n\ntype SelectTemplateDropdownProps = {\n children: JSX.Element;\n};\n\nconst SelectTemplateDropdown = ({ children }: SelectTemplateDropdownProps): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const history = useHistory();\n const classes = useStyles();\n const { palette } = useTheme();\n const { currentFolderId } = useSelector((state: RootState) => state.documentsStore, undefined);\n const [addNewFolderDialogOpen, setAddNewFolderDialogOpen] = useState(false);\n const [\n subscriptionModalProduct,\n setSubscriptionModalProduct,\n ] = useState(null);\n const {\n currentIdentity,\n workspaceWorkflows,\n workspaceWorkflowsStatus,\n workspaceWorkflowsErrorCode,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = useSelector((state: any) => state.identityStore, undefined);\n const { setTrialSubscriptionStatus } = useSelector((state: RootState) => state.billingStore);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n\n const [anchorEl, setAnchorEl] = useState(null);\n\n const options = [\n {\n label: t('selectTemplate.certificate.title'),\n description: t('selectTemplate.certificate.description'),\n icon: ,\n value: TemplateDocumentType.CERTIFICATES,\n },\n {\n label: t('selectTemplate.signedDocument.title'),\n description: t('selectTemplate.signedDocument.description'),\n icon: ,\n value: TemplateDocumentType.DOCUMENT_TO_BE_SIGNED,\n },\n {\n label: t('selectTemplate.durableMedium.title'),\n description: t('selectTemplate.durableMedium.description'),\n icon: ,\n value: TemplateDocumentType.DURABLE_MEDIA,\n },\n ];\n\n const goToCreatePage = (value: TemplateDocumentType) => {\n const slugTemplate = value.toLowerCase().replaceAll('_', '-');\n history.push(`/document-creator/${slugTemplate}`);\n };\n\n const onOptionClick = (value: TemplateDocumentType) => {\n if (!workspaceWorkflows.includes(value)) {\n setSubscriptionModalProduct(value);\n setAnchorEl(null);\n } else {\n goToCreatePage(value);\n setAnchorEl(null);\n }\n };\n\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const handleClose = () => {\n dispatch(documentCreationActions.setTemplateDocument(null));\n setAnchorEl(null);\n };\n\n useEffect(() => {\n if (\n (workspaceId && Boolean(anchorEl)) ||\n setTrialSubscriptionStatus === RequestStatus.SUCCESS\n ) {\n dispatch(identityActions.getWorkspacePermissions(workspaceId));\n dispatch(identityActions.fetchWorkspaceWorkflows(workspaceId));\n\n if (subscriptionModalProduct) {\n dispatch(billingActions.resetSetTrialSubscription());\n setTimeout(() => {\n goToCreatePage(subscriptionModalProduct);\n }, 300);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId, anchorEl, setTrialSubscriptionStatus]);\n\n const isOpen = Boolean(anchorEl);\n\n return (\n <>\n {subscriptionModalProduct && (\n setSubscriptionModalProduct(null)}\n />\n )}\n
    \n {children}\n
    \n \n {workspaceWorkflowsErrorCode === ErrorCode.IDENTITY_NOT_READY && (\n \n {t('selectTemplate.identityAlert')}\n \n )}\n {\n setAddNewFolderDialogOpen(true);\n setAnchorEl(null);\n }}\n >\n \n \n \n\n {t('sideBar.newFolder')}\n \n \n {options.map((option, index) => (\n {\n onOptionClick(option.value);\n }}\n className={classes.optionItem}\n >\n {option.icon}\n
    \n {option.label}\n \n {option.description}\n \n
    \n \n ))}\n \n {addNewFolderDialogOpen && (\n setAddNewFolderDialogOpen(false)}\n onChange={(newFolderName) => {\n dispatch(documentsActions.createFolder(workspaceId, currentFolderId, newFolderName));\n setAddNewFolderDialogOpen(false);\n }}\n />\n )}\n \n );\n};\n\nexport default SelectTemplateDropdown;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Button } from '@material-ui/core';\nimport { EmptyBanner, SmallContentWithScrollbar } from 'src/components';\nimport { useStyles } from './styles';\nimport SelectTemplateDropdown from '../SelectTemplateDropdown/SelectTemplateDropdown';\n\nconst NoDocumentsBanner = ({\n className: classNameProp,\n header,\n headerVariant,\n description,\n showButton,\n buttonText,\n}) => {\n const classes = useStyles();\n\n return (\n
    \n \n \n \n )\n }\n >\n \n \n
    \n );\n};\n\nNoDocumentsBanner.propTypes = {\n className: PropTypes.string,\n header: PropTypes.string,\n headerVariant: PropTypes.oneOfType([\n PropTypes.oneOf([\n 'body1',\n 'body2',\n 'button',\n 'caption',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'inherit',\n 'overline',\n 'subtitle1',\n 'subtitle2',\n ]),\n PropTypes.string,\n ]),\n description: PropTypes.string,\n showButton: PropTypes.bool,\n buttonText: PropTypes.string,\n};\n\nNoDocumentsBanner.defaultProps = {\n headerVariant: 'h1',\n showButton: false,\n};\n\nexport default NoDocumentsBanner;\n","import React from 'react';\n\nexport default () =>
    ;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n root: {},\n bars: {\n display: 'flex',\n '& $bar': {\n '&:not(:last-child)': {\n marginRight: 4,\n },\n },\n },\n bar: {\n width: 96,\n height: 2,\n backgroundColor: palette.bottomLineColor,\n },\n activeBar: {},\n easyBar: {\n '&$activeBar': {\n backgroundColor: palette.error.main,\n },\n },\n mediumBar: {\n '&$activeBar': {\n backgroundColor: palette.warning.light,\n },\n },\n strongBar: {\n '&$activeBar': {\n backgroundColor: palette.success.main,\n },\n },\n noneStrengthText: {},\n easyStrengthText: {\n color: palette.error.main,\n },\n mediumStrengthText: {\n color: palette.warning.light,\n },\n strongStrengthText: {\n color: palette.success.main,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Grid, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useStyles } from './styles';\n\nconst PasswordMeter = (props) => {\n const classes = useStyles({});\n const { value } = props;\n const { t } = useTranslation();\n /*\n * TODO: replace ratePassword when rating method is chosen\n * */\n const ratePassword = (pass) => {\n let score = 0;\n if (!pass) return score;\n\n // award every unique letter until 5 repetitions\n const letters = {};\n for (let i = 0; i < pass.length; i += 1) {\n letters[pass[i]] = (letters[pass[i]] || 0) + 1;\n score += 5.0 / letters[pass[i]];\n }\n\n // bonus points for mixing it up\n const variations = {\n digits: /\\d/.test(pass),\n lower: /[a-z]/.test(pass),\n upper: /[A-Z]/.test(pass),\n nonWords: /\\W/.test(pass),\n };\n\n let variationCount = 0;\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const check in variations) {\n variationCount += variations[check] === true ? 1 : 0;\n }\n score += (variationCount - 1) * 10;\n score = parseInt(score, 10);\n\n if (score > 80) return 3;\n if (score > 60) return 2;\n return 1;\n };\n\n const passwordRating = ratePassword(value);\n\n const getLabelClassByRating = () => {\n switch (passwordRating) {\n case 3:\n return 'strong';\n case 2:\n return 'medium';\n case 1:\n return 'easy';\n default:\n return 'none';\n }\n };\n\n const PasswordBar = ({ active, rating }) => (\n \n );\n\n PasswordBar.propTypes = {\n active: PropTypes.bool,\n rating: PropTypes.string,\n };\n\n const strengthKey = getLabelClassByRating();\n\n return (\n \n \n
    \n 0} rating=\"easy\" />\n 1} rating=\"medium\" />\n 2} rating=\"strong\" />\n
    \n
    \n \n \n {t(`passwordMeter.label.${strengthKey}`)}\n \n \n
    \n );\n};\n\nPasswordMeter.propTypes = {\n value: PropTypes.string,\n};\n\nexport default PasswordMeter;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n root: {},\n responsive: {\n maxWidth: '100%',\n },\n inside: {\n backgroundColor: palette.background.paper,\n position: 'relative',\n paddingBottom: '100%',\n '& img': {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n },\n },\n loader: {\n zIndex: 1,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: palette.background.paper,\n },\n loaderInner: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { CircularProgress, Paper } from '@material-ui/core';\nimport QRious from 'qrious';\nimport { useStyles } from './styles';\n\nconst QrImage = ({\n className: classNameProp,\n code,\n dimension,\n loaderSize,\n responsive,\n elevation,\n noImage,\n noImageUrl,\n}) => {\n const classes = useStyles();\n\n const getQrContent = (qrCode, qrDimensions) => {\n if (!qrCode) {\n return '';\n }\n\n return new QRious({\n size: qrDimensions,\n level: 'H',\n value: qrCode,\n }).toDataURL('image/jpeg');\n };\n\n const getLoader = () => (\n
    \n \n \n
    \n
    \n );\n\n function getContent() {\n if (noImage || code) {\n let imgSrc;\n\n if (!noImage) {\n imgSrc = getQrContent(code, dimension);\n } else {\n imgSrc = noImageUrl;\n }\n\n return (\n \n \"\"\n
    \n );\n }\n\n return (\n \n {getLoader()}\n \n );\n }\n\n return (\n \n {getContent()}\n \n );\n};\n\nQrImage.propTypes = {\n className: PropTypes.string,\n code: PropTypes.string.isRequired,\n dimension: PropTypes.number,\n loaderSize: PropTypes.number,\n responsive: PropTypes.bool,\n elevation: PropTypes.oneOf([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n ]),\n noImage: PropTypes.bool,\n noImageUrl: PropTypes.string,\n};\n\nQrImage.defaultProps = {\n dimension: 128,\n loaderSize: 32,\n responsive: false,\n elevation: 0,\n noImage: false,\n noImageUrl: 'images/frames/dis-qr.svg',\n};\n\nexport default QrImage;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n root: {},\n inputsContainer: {\n width: '100%',\n position: 'relative',\n '& svg': {\n color: palette.text.disabled,\n },\n },\n inputRoot: {\n display: 'none',\n },\n input: {\n minHeight: 'unset',\n padding: 0,\n },\n inputNotchedOutline: {\n // border: 0,\n },\n inputAdornment: {\n color: palette.text.secondary,\n fontSize: 12,\n '& p': {\n color: 'inherit !important',\n fontSize: 'inherit !important',\n },\n },\n inputDisabled: {},\n }),\n { index: 0 }\n);\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport MomentAdapter from '@material-ui/pickers/adapter/moment';\nimport { Button, InputAdornment, OutlinedInput, TextField, Typography } from '@material-ui/core';\nimport { DateRangePicker, LocalizationProvider } from '@material-ui/pickers';\nimport { ExtendedGrid } from 'src/components';\nimport moment from 'moment';\nimport { CalendarSelectDay as CalendarIcon } from 'src/components/CustomIcon';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\nimport { DateTimeFormats, FormatDate } from '../../helpers/dateTimeFormats';\n\nconst ResponsiveDateRangePicker = ({\n classes: classesProp,\n disabled,\n smallDevice,\n asButton,\n onApply,\n setValue,\n value,\n placeholderFrom,\n placeholderEnd,\n buttonComponent,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const [error, setError] = React.useState([null, null]);\n const [openState, setOpenState] = React.useState(false);\n const buttonRef = useRef();\n\n return (\n
    \n \n {\n setOpenState(true);\n }}\n onClose={() => setOpenState(false)}\n toolbarTitle={t('calendar.selectDateRange')}\n toolbarPlaceholder=\"-\"\n showToolbar={false}\n disableCloseOnSelect={false}\n value={value}\n open={openState}\n onChange={(newValue) => {\n setValue(newValue);\n }}\n onAccept={(date) => {\n onApply(date);\n }}\n onError={([startReason, endReason], [start, end]) => {\n if (\n startReason === 'invalidRange' &&\n new Date(start).getTime() === new Date(end).getTime()\n ) {\n setOpenState(false);\n setError([null, null]);\n const date = [start, end];\n onApply(date);\n return;\n }\n\n setError([startReason, endReason]);\n }}\n renderInput={(startProps, endProps) => {\n const {\n inputProps: startInputProps,\n error: startError,\n label: startLabel,\n } = startProps;\n const { inputProps: endInputProps, error: endError, label: endLabel } = endProps;\n const { value: startValue, onBlur, onChange, onClick, onFocus } = startInputProps;\n const { value: endValue } = endInputProps;\n\n if (placeholderFrom) {\n startProps.inputProps.placeholder = placeholderFrom;\n }\n\n if (placeholderEnd) {\n endProps.inputProps.placeholder = placeholderEnd;\n }\n\n if (asButton) {\n if (buttonComponent)\n return (\n {\n buttonRef.current.focus();\n onFocus(e);\n if (onClick) {\n onClick(e);\n }\n }}\n >\n {buttonComponent}\n
    \n );\n return (\n {\n buttonRef.current.focus();\n if (onClick) {\n onClick(e);\n }\n }}\n onFocus={onFocus}\n startIcon={}\n >\n \n {startValue ? (\n \n ) : (\n startLabel\n )}\n \n \n  - \n \n \n {endValue ? (\n \n ) : (\n endLabel\n )}\n \n\n \n \n );\n }\n\n return (\n \n \n \n \n \n ),\n classes: {\n disabled: classes.inputDisabled,\n },\n }}\n />\n \n \n \n \n \n ),\n\n classes: {\n disabled: classes.inputDisabled,\n },\n }}\n />\n \n \n );\n }}\n />\n \n \n );\n};\n\nResponsiveDateRangePicker.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n smallDevice: PropTypes.bool,\n startDate: PropTypes.oneOfType([\n PropTypes.oneOf([undefined, null]),\n PropTypes.string,\n PropTypes.number,\n PropTypes.instanceOf(Date),\n ]),\n endDate: PropTypes.oneOfType([\n PropTypes.oneOf([undefined, null]),\n PropTypes.string,\n PropTypes.number,\n PropTypes.instanceOf(Date),\n ]),\n value: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.oneOf([undefined, null]),\n PropTypes.string,\n PropTypes.number,\n PropTypes.instanceOf(Date),\n ])\n ),\n asButton: PropTypes.bool,\n buttonComponent: PropTypes.node,\n onApply: PropTypes.func,\n setValue: PropTypes.func,\n placeholderFrom: PropTypes.string,\n placeholderEnd: PropTypes.string,\n};\n\nResponsiveDateRangePicker.defaultProps = {\n smallDevice: false,\n asButton: true,\n disabled: false,\n startDate: null,\n endDate: null,\n};\n\nexport default ResponsiveDateRangePicker;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {\n width: '100%',\n [breakpoints.up('sm')]: {\n paddingTop: spacing(1.15),\n paddingBottom: spacing(1.15),\n },\n maxWidth: breakpoints.values.md,\n },\n autoWidth: {\n width: 'auto',\n margin: '0 auto',\n },\n }),\n { index: 0 }\n);\n","import React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { IconButton } from '@material-ui/core';\nimport { Alert, AlertTitle } from '@material-ui/lab';\nimport { useSnackbar, SnackbarContent } from 'notistack';\nimport {\n Close as CloseIcon,\n Success as SuccessIcon,\n Alert as ErrorIcon,\n Info as InfoIcon,\n Help as WarningIcon,\n} from '../CustomIcon';\n\nimport { useStyles } from './styles';\n\nconst SnackbarItem = forwardRef(({ className: classNameProp, id, options }, ref) => {\n const classes = useStyles();\n const { icon, message, title, variant, params } = options;\n const { closeSnackbar } = useSnackbar();\n\n const handleDismiss = () => {\n closeSnackbar(id);\n };\n const autoWidth = params?.autoWidth ? classes.autoWidth : '';\n\n return (\n \n ,\n error: ,\n info: ,\n warning: ,\n }}\n severity={variant}\n action={\n \n \n \n }\n >\n {title && {title}}\n {message}\n \n \n );\n});\n\nSnackbarItem.propTypes = {\n className: PropTypes.string,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n options: PropTypes.shape({\n icon: PropTypes.oneOf([false, undefined]),\n message: PropTypes.string,\n title: PropTypes.string,\n variant: PropTypes.oneOf(['success', 'info', 'warning', 'error']),\n params: PropTypes.shape({\n autoWidth: PropTypes.bool,\n }),\n }),\n};\n\nSnackbarItem.defaultProps = {\n options: {\n icon: undefined,\n variant: 'info',\n },\n};\n\nexport default SnackbarItem;\n","import { fade, lighten } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, transitions, typography }) =>\n createStyles({\n root: {\n display: 'inline-flex',\n textAlign: 'center',\n alignItems: 'center',\n borderRadius: spacing(2),\n minWidth: 'auto',\n textTransform: typography.button.textTransform,\n fontWeight: typography.fontWeightMedium,\n lineHeight: '1.15',\n padding: spacing(0.75, 1.5),\n fontSize: typography.subtitle2.fontSize,\n fontFamily: 'inherit',\n outline: 'none',\n },\n notClickableRoot: {},\n clickableRoot: {\n cursor: 'pointer',\n transition: transitions.create(['background-color', 'border', 'color'], {\n duration: transitions.duration.short,\n }),\n },\n defaultColor: {\n color: palette.text.secondary,\n backgroundColor: fade(palette.greySimple.light, 0.5),\n border: '1px solid transparent',\n '&$clickableRoot': {\n '&:hover': {\n borderColor: palette.greySimple.light,\n },\n },\n },\n errorColor: {\n backgroundColor: lighten(palette.error.main, 0.85),\n color: palette.error.main,\n border: `1px solid ${lighten(palette.error.main, 0.85)}`,\n '&$clickableRoot': {\n '&:hover': {\n borderColor: palette.error.main,\n },\n },\n },\n warningColor: {\n backgroundColor: lighten(palette.warning.main, 0.85),\n color: palette.warning.main,\n border: `1px solid ${lighten(palette.warning.main, 0.85)}`,\n '&$clickableRoot': {\n '&:hover': {\n borderColor: palette.warning.main,\n },\n },\n },\n infoColor: {\n color: palette.primary.light,\n backgroundColor: lighten(palette.primary.light, 0.85),\n border: `1px solid ${lighten(palette.primary.light, 0.85)}`,\n '&$clickableRoot': {\n '&:hover': {\n borderColor: palette.primary.light,\n },\n },\n },\n successColor: {\n backgroundColor: lighten(palette.success.main, 0.85),\n color: palette.success.main,\n border: `1px solid ${lighten(palette.success.main, 0.85)}`,\n '&$clickableRoot': {\n '&:hover': {\n borderColor: palette.success.main,\n },\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { ButtonBase } from '@material-ui/core';\nimport { lighten } from '@material-ui/core/styles';\nimport {\n amber,\n blue,\n cyan,\n deepOrange,\n deepPurple,\n green,\n indigo,\n lightBlue,\n lightGreen,\n lime,\n orange,\n pink,\n purple,\n red,\n teal,\n yellow,\n} from '@material-ui/core/colors';\nimport { useStyles } from './styles';\n\nconst Tag = ({\n children,\n className: classNameProp,\n onClick,\n color,\n automaticColor,\n automaticCoefficientColor,\n}) => {\n const classes = useStyles();\n const Component = !onClick ? 'div' : ButtonBase;\n\n const colors = [\n red[600],\n pink[600],\n purple[600],\n deepPurple[600],\n indigo[600],\n blue[600],\n lightBlue[600],\n cyan[600],\n teal[600],\n green[600],\n lightGreen[600],\n lime[600],\n yellow[600],\n amber[600],\n orange[600],\n deepOrange[600],\n ];\n\n const colorFromText = (text) => {\n const charCodes = String(text)\n .split('')\n .map((char) => char.charCodeAt(0))\n .join('');\n return parseInt(charCodes, 10);\n };\n\n return (\n \n {children}\n
    \n );\n};\n\nTag.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n onClick: PropTypes.func,\n color: PropTypes.oneOf(['default', 'error', 'warning', 'success', 'info']),\n automaticColor: PropTypes.bool,\n automaticCoefficientColor: PropTypes.number,\n};\n\nTag.defaultProps = {\n color: 'default',\n automaticColor: false,\n automaticCoefficientColor: 0.85,\n};\n\nexport default Tag;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Button, Typography, createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ typography, palette, spacing }) =>\n createStyles({\n timeCounter: {\n fontWeight: typography.fontWeightBold,\n marginLeft: spacing(0.5),\n color: palette.primary.main,\n },\n buttonSend: {\n padding: spacing(0.5),\n marginLeft: 0,\n boxShadow: 'none !important',\n fontFamily: 'inherit',\n },\n }),\n { index: 0 }\n);\n\nconst TimerButton = ({\n cooldown,\n buttonLabel,\n buttonDisabled,\n onClick,\n awaitMessage,\n initTimestamp,\n}) => {\n const classes = useStyles();\n const [baseTimestamp, setBaseTimestamp] = useState(initTimestamp || Date.now());\n const [timePassed, setTimePassed] = useState(Date.now() - baseTimestamp);\n\n useEffect(() => {\n if (initTimestamp) {\n setBaseTimestamp(initTimestamp);\n }\n }, [initTimestamp]);\n\n const intervalId = useRef(null);\n useEffect(() => {\n intervalId.current = setInterval(() => {\n setTimePassed(Date.now() - baseTimestamp);\n }, 500);\n\n return function cleanup() {\n clearInterval(intervalId.current);\n };\n });\n\n const getHumanTime = () => {\n const timeLeft = cooldown - timePassed;\n const minutes = Math.floor(timeLeft / 1000 / 60);\n const seconds = Math.floor(timeLeft / 1000 - minutes * 60);\n const pad = (n) => (n < 10 ? `0${n}` : n);\n return `${pad(minutes)}:${pad(seconds)}`;\n };\n\n const handleClick = () => {\n if (!initTimestamp) {\n setBaseTimestamp(Date.now());\n }\n onClick();\n };\n\n const isButtonActive = timePassed > cooldown;\n\n const getContent = () =>\n isButtonActive ? (\n \n {buttonLabel}\n \n ) : (\n {` ${awaitMessage} ${getHumanTime()}`}\n );\n\n return getContent();\n};\n\nTimerButton.propTypes = {\n cooldown: PropTypes.number,\n buttonLabel: PropTypes.string,\n buttonDisabled: PropTypes.bool,\n onClick: PropTypes.func,\n awaitMessage: PropTypes.string,\n initTimestamp: PropTypes.number,\n};\n\nexport default TimerButton;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing, mixins }) =>\n createStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n [breakpoints.up('md')]: {\n paddingTop: spacing(1.5),\n paddingBottom: spacing(0.5),\n },\n ...mixins.toolbar,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { ContentContainer } from 'src/components';\n\nimport { useStyles } from './styles';\n\nconst TopBarContainer = ({ className: classNameProp, children, size, vertical, horizontal }) => {\n const classes = useStyles();\n return (\n \n {children}\n \n );\n};\n\nTopBarContainer.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n vertical: PropTypes.bool,\n horizontal: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n};\n\nTopBarContainer.defaultProps = {\n size: 'large',\n vertical: false,\n horizontal: true,\n};\n\nexport default TopBarContainer;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst twoFactorService = {\n initTwoFactorSession,\n sendTwoFactor,\n reSendTwoFactorCode,\n getUserTwoFactorConfig,\n changeActiveTwoFactorType,\n deleteTwoFactorType,\n initTwoFactorTypeChange,\n confirmTwoFactorTypeChange,\n};\n\nfunction initTwoFactorSession(authToken, permissions) {\n return axios\n .post(\n '/rest/auth/security/2fa',\n { permissions },\n {\n headers: {\n Authorization: authToken,\n },\n }\n )\n .then((response) => response.data)\n .catch((error) => Promise.reject(error));\n}\n\nfunction sendTwoFactor(code, twoFactorId) {\n return axios\n .post(\n '/rest/auth/two-factor',\n {\n code,\n },\n {\n headers: {\n twoFactorId,\n },\n }\n )\n .then((response) => response)\n .catch((error) => Promise.reject(error.response.data.errors));\n}\n\nfunction reSendTwoFactorCode(twoFactorId) {\n return axios\n .post(\n '/rest/auth/two-factor/resend',\n {},\n {\n headers: {\n twoFactorId,\n },\n }\n )\n .then((response) => response)\n .catch((error) => Promise.reject(error.response.data.errors));\n}\n\nfunction getUserTwoFactorConfig() {\n return axios\n .get('/rest/auth/security/2fa', { withPermissions: ['AUTH_USER_GET_2FA_CONFIGURATION'] })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction changeActiveTwoFactorType(type) {\n return axios\n .put(`rest/auth/security/2fa/${type}`, null, {\n withPermissions: ['AUTH_USER_PUT_2FA_CONFIGURATION'],\n withTwoFactor: true,\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction deleteTwoFactorType(type) {\n return axios\n .delete(`rest/auth/security/2fa/${type}`, {\n withPermissions: ['AUTH_USER_DELETE_2FA_CONFIGURATION'],\n withTwoFactor: true,\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction initTwoFactorTypeChange(type) {\n const permissions = [\n ...(type === 'EMAIL' ? ['AUTH_USER_POST_2FA_EMAIL_CODE_GENERATE'] : []),\n ...(type === 'PHONE' ? ['AUTH_USER_POST_2FA_SMS_CODE_GENERATE'] : []),\n ...(type === 'GOOGLE' ? ['AUTH_USER_POST_2FA_GOOGLE_CODE_GENERATE'] : []),\n ];\n return axios\n .post(`/rest/auth/security/2fa/${type.toLowerCase()}`, null, {\n withPermissions: permissions,\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction confirmTwoFactorTypeChange(type, code) {\n return axios\n .put(`/rest/auth/security/2fa/${type}/code/${code}/confirm`, null, {\n withPermissions: ['AUTH_USER_PUT_TWO_FA_TYPE'],\n withTwoFactor: true,\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nexport default twoFactorService;\n","import twoFactorConstants from '../constants/twoFactor.constants';\nimport twoFactorService from '../services/twoFactor.service';\n\nconst twoFactorActions = {\n openTwoFactor,\n sendTwoFactor,\n closeTwoFactor,\n reSendTwoFactorCode,\n initTwoFactorSession,\n};\n\nfunction openTwoFactor(requestData, mode = 'initial', is2faError = '2FA_REQUIRED') {\n return { type: twoFactorConstants.TWO_FACTOR_INIT, requestData, mode, is2faError };\n}\n\nfunction initTwoFactorSession(authToken, permissions) {\n return (dispatch) => {\n dispatch({ type: twoFactorConstants.TWO_FACTOR_INIT_SESSION_REQUEST });\n twoFactorService\n .initTwoFactorSession(authToken, permissions)\n .then((response) =>\n dispatch({ type: twoFactorConstants.TWO_FACTOR_INIT_SESSION_SUCCESS, response })\n )\n .catch((error) =>\n dispatch({ type: twoFactorConstants.TWO_FACTOR_INIT_SESSION_ERROR, error })\n );\n };\n}\n\nfunction sendTwoFactor(code, twoFactorId) {\n return (dispatch) => {\n dispatch({ type: twoFactorConstants.TWO_FACTOR_REQUEST });\n twoFactorService\n .sendTwoFactor(code, twoFactorId)\n .then((response) => {\n dispatch({ type: twoFactorConstants.TWO_FACTOR_SUCCESS, response });\n })\n .catch((error) => {\n dispatch({ type: twoFactorConstants.TWO_FACTOR_ERROR, error });\n });\n };\n}\n\nfunction reSendTwoFactorCode(twoFactorId) {\n return (dispatch) => {\n dispatch({ type: twoFactorConstants.TWO_FACTOR_RESEND_REQUEST });\n twoFactorService\n .reSendTwoFactorCode(twoFactorId)\n .then(() => {\n dispatch({ type: twoFactorConstants.TWO_FACTOR_RESEND_SUCCESS });\n })\n .catch(() => {\n dispatch({ type: twoFactorConstants.TWO_FACTOR_RESEND_ERROR });\n });\n };\n}\n\nfunction closeTwoFactor() {\n return { type: twoFactorConstants.TWO_FACTOR_CLOSE };\n}\n\nexport default twoFactorActions;\n","function getToken(mode = 'token') {\n const tokenData = localStorage.getItem(mode);\n if (tokenData) {\n const token = JSON.parse(tokenData);\n if (token.expiresAt < Date.now()) {\n localStorage.removeItem(mode);\n return false;\n }\n return token;\n }\n return false;\n}\n\nfunction getAnyToken() {\n const token = getToken();\n return token || getToken('shortToken');\n}\n\nfunction updateToken(token, mode = 'token') {\n localStorage.setItem(mode, JSON.stringify(token));\n}\n\nconst tokenHelper = {\n getToken,\n getAnyToken,\n updateToken,\n};\n\nexport default tokenHelper;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Button, IconButton, Typography, createStyles, makeStyles } from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\nimport { CloseRounded as CloseIcon } from '@material-ui/icons';\nimport {\n CodeInput,\n ContentContainer,\n Gap,\n SmallContentWithScrollbar,\n TimerButton,\n} from 'src/components';\n\nexport const useStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n header: {\n marginBottom: spacing(0.5),\n },\n alert: {\n marginTop: spacing(1),\n },\n timeCounter: {\n display: 'flex',\n alignItems: 'center',\n minHeight: spacing(3),\n lineHeight: 1.3,\n '& > *': {\n lineHeight: 'inherit',\n },\n },\n }),\n { index: 0 }\n);\n\nconst TwoFactorForm = ({\n method,\n lastSendTimestamp,\n isSending,\n isReSending,\n hasErrors,\n onSend,\n onReSend,\n onClearErrors,\n}) => {\n const [authCode, setAuthCode] = useState('');\n const { t } = useTranslation();\n const classes = useStyles();\n\n const codeInputsRef = useRef(null);\n\n /*\n * Cool down for resend\n * */\n const retryTimeout = 30000;\n\n /*\n * Config for methods, that can resend codes\n * */\n const methodsWithTimer = ['PHONE', 'EMAIL', 'phoneConfirm', 'emailConfirm'];\n\n const methodHasTimer = methodsWithTimer.indexOf(method) !== -1;\n\n const basicTranslations = {\n header: t(`twoFactor.${method}.header`),\n desc: t(`twoFactor.${method}.desc`),\n label: t(`twoFactor.${method}.label`),\n sendButton: t(`twoFactor.common.sendButton`),\n havingTrouble: t(`twoFactor.common.havingTrouble`),\n contactSupport: t(`twoFactor.common.contactSupport`),\n errorMessage: t(`twoFactor.common.errorMessage`),\n };\n\n const translations = Object.assign(\n basicTranslations,\n methodHasTimer && {\n hasNotArrived: t(`twoFactor.${method}.hasNotArrived`),\n retryTimer: t(`twoFactor.${method}.retryTimerText`),\n retryButton: t(`twoFactor.${method}.retryButton`),\n }\n );\n\n return (\n onSend(authCode)}\n disabled={isSending || !authCode}\n >\n {t('common.verify')}\n \n }\n >\n \n \n {translations.header}\n \n {translations.desc}\n \n\n \n {translations.label}\n \n\n {hasErrors && (\n {\n onClearErrors();\n }}\n >\n \n \n }\n >\n {translations.errorMessage}\n \n )}\n \n {\n setAuthCode(newValue);\n }}\n onAcceptValue={(code) => {\n onSend(code);\n }}\n hasErrors={hasErrors}\n />\n \n\n {methodHasTimer && (\n
    \n \n {`${translations.hasNotArrived} `}\n \n\n {\n onReSend();\n codeInputsRef.current.clearCode();\n }}\n initTimestamp={lastSendTimestamp}\n />\n
    \n )}\n\n \n \n );\n};\n\nTwoFactorForm.propTypes = {\n method: PropTypes.string.isRequired,\n lastSendTimestamp: PropTypes.number,\n isSending: PropTypes.bool,\n isReSending: PropTypes.bool,\n hasErrors: PropTypes.bool,\n onSend: PropTypes.func,\n onReSend: PropTypes.func,\n onClearErrors: PropTypes.func,\n};\n\nexport default TwoFactorForm;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport twoFactorActions from 'src/redux/actions/twoFactor.actions';\nimport axios from 'src/helpers/axios';\nimport tokenHelper from 'src/helpers/token.helper';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport TwoFactorForm from './subcomponents/TwoFactorForm';\nimport { FullScreenDialog } from '../index';\n\nconst TwoFactorModal = () => {\n const {\n twoFactorActive,\n requestData,\n twoFactorMethod,\n twoFactorToken,\n twoFactorInitTimestamp,\n twoFactorSendStatus,\n twoFactorReSendStatus,\n modalMode,\n twoFactorInitStatus,\n twoFactorInitError,\n } = useSelector((state) => state.twoFactor, undefined);\n const [hasErrors, setHasErrors] = useState(false);\n const dispatch = useDispatch();\n const isSending =\n twoFactorSendStatus === RequestStatus.PENDING || twoFactorSendStatus === RequestStatus.SUCCESS;\n const isReSending = twoFactorReSendStatus === RequestStatus.PENDING;\n const twoFactorCallbacks = useRef([]);\n const shortToken = localStorage.getItem('shortToken') || '';\n const token = localStorage.getItem('token') || '';\n\n /*\n * Handle resend code if 2FA method not prevents it\n * */\n const onReSend = () => {\n startNewTwoFactorSession();\n };\n\n const startNewTwoFactorSession = () => {\n const finalToken = tokenHelper.getAnyToken();\n setHasErrors(false);\n dispatch(twoFactorActions.initTwoFactorSession(finalToken.token, requestData.withPermissions));\n };\n\n /*\n * Handle 2FA detected by axios interceptor\n * */\n const onTwoFactor = (requestData, successCallback, errorCallback, mode, is2faError) => {\n if (is2faError === '2FA_REQUIRED' || mode === 'initial') {\n twoFactorCallbacks.current = [];\n }\n /*\n * Preserving callbacks for 2FA resolution\n * */\n twoFactorCallbacks.current.push({ success: successCallback, error: errorCallback });\n /*\n * Passing request data to store, this action also opens TwoFactorModal\n * */\n dispatch(twoFactorActions.openTwoFactor(requestData, mode, is2faError));\n };\n\n const onCloseTwoFactor = () => {\n dispatch(twoFactorActions.closeTwoFactor());\n };\n\n /*\n * Pass response from repeated request with 2FA authorization to original promise\n * */\n const onTwoFactorResolution = (type, response) => {\n if (type === RequestStatus.SUCCESS) {\n for (let i = twoFactorCallbacks.current.length; i > 0; i -= 1) {\n twoFactorCallbacks.current[i - 1].success(response);\n }\n } else {\n for (let i = twoFactorCallbacks.current.length; i > 0; i -= 1) {\n twoFactorCallbacks.current[i - 1].error(response);\n }\n }\n };\n\n /*\n * Resend original request interrupted by 2FA with acquired 2FA token\n * */\n const retryRequest = (code) => {\n const { method, url, data, headers } = requestData;\n const finalToken = token || shortToken;\n\n /*\n * inject 2FA session headers to authorize request\n * */\n const newHeaders = {\n ...headers,\n 'Two-Factor-Token': twoFactorToken.token,\n 'Two-Factor-Code': code,\n Authorization: finalToken.token,\n };\n\n /*\n * Rebuild config for request\n * */\n const axiosConfig = {\n method,\n url,\n headers: newHeaders,\n twoFactorSigned: true,\n };\n\n /*\n * if request could have payload, inject it to config\n * */\n if (['post', 'put', 'patch'].indexOf(method) !== -1) {\n /*\n * try to decode JSON object, if not possible fallback to plaintext\n * */\n try {\n axiosConfig.data = JSON.parse(data);\n } catch (error) {\n axiosConfig.data = data;\n }\n }\n\n /*\n * Execute request, and pass response to callback in App.js, so it could be passed back to original promise\n * */\n axios(axiosConfig)\n .then((response) => {\n onTwoFactorResolution(RequestStatus.SUCCESS, response);\n })\n .catch((error) => {\n if (error.response.status === 403 && error.response.data.errors[0].code === 'FORBIDDEN') {\n setHasErrors(true);\n } else {\n onTwoFactorResolution(RequestStatus.ERROR, error);\n dispatch(twoFactorActions.closeTwoFactor());\n }\n });\n\n /*\n * Our job is done here, close 2FA modal and reset store\n * */\n };\n\n /*\n * Handle send code to acquire 2FA token\n * */\n const onSend = (code) => {\n if (modalMode === 'initial') {\n onTwoFactorResolution(RequestStatus.SUCCESS, {\n twoFactorCode: code,\n twoFactorToken: twoFactorToken.token,\n });\n } else {\n retryRequest(code);\n }\n };\n\n useEffect(() => {\n axios.onTwoFactorCallback = (requestData, successCallback, errorCallback, mode, is2faError) => {\n onTwoFactor(requestData, successCallback, errorCallback, mode, is2faError);\n };\n axios.closeTwoFactor = () => {\n onCloseTwoFactor();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (twoFactorActive) startNewTwoFactorSession();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [twoFactorActive]);\n\n useEffect(() => {\n if (twoFactorInitStatus === RequestStatus.ERROR) {\n onTwoFactorResolution(RequestStatus.ERROR, twoFactorInitError);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [twoFactorInitStatus]);\n\n useEffect(() => {\n if (twoFactorSendStatus === RequestStatus.SUCCESS) {\n /*\n * code has been successfully send, now we should have token to authorize original request\n * lets resend it\n * */\n setHasErrors(false);\n } else if (twoFactorSendStatus === RequestStatus.ERROR) {\n setHasErrors(true);\n }\n }, [twoFactorSendStatus]);\n\n return (\n <>\n {twoFactorActive && twoFactorMethod && (\n onCloseTwoFactor()}\n >\n {\n setHasErrors(false);\n }}\n onReSend={() => {\n onReSend();\n }}\n onSend={(code) => {\n onSend(code);\n }}\n />\n \n )}\n \n );\n};\n\nexport default TwoFactorModal;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing, palette }) =>\n createStyles({\n input: {\n marginBottom: spacing(2),\n },\n chip: {\n marginBottom: spacing(1),\n color: palette.primary.main,\n background: '#f2f7ff',\n '& svg': {\n color: palette.primary.main,\n '&:hover': {\n color: palette.primary.dark,\n },\n },\n },\n optionWrapper: {\n display: 'flex',\n alignItems: 'center',\n wordBreak: 'break-all',\n },\n partHighlight: {\n fontWeight: 700,\n color: palette.primary.main,\n textDecoration: 'underline',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Autocomplete, AutocompleteChangeReason } from '@material-ui/lab';\nimport { TextField, InputLabel, Checkbox, Chip, Typography } from '@material-ui/core';\nimport parse from 'autosuggest-highlight/parse';\nimport match from 'autosuggest-highlight/match';\nimport { generateUUID } from 'src/helpers/globalUtils';\nimport { useStyles } from './styles';\n\nexport interface AutocompleteWithChipType {\n name: string;\n id: string;\n}\n\ntype AutocompleteWithChipProps = {\n items: AutocompleteWithChipType[];\n placeholder?: string;\n label?: string;\n error?: boolean;\n helperText?: string;\n name: string;\n defaultValues?: AutocompleteWithChipType[];\n onChange: (items: AutocompleteWithChipType[]) => void;\n};\n\nconst AutocompleteWithChip = ({\n defaultValues = [],\n name,\n items,\n placeholder,\n label,\n onChange,\n error,\n helperText,\n}: AutocompleteWithChipProps): JSX.Element => {\n const classes = useStyles();\n const id = generateUUID();\n const [inputValue, setInputValue] = React.useState('');\n const [selectedValues, setSelectedValues] = React.useState(\n defaultValues\n );\n const [pendingValues, setPendingValues] = React.useState(\n defaultValues\n );\n\n const onDelete = (index: number) => {\n const newValues = selectedValues.filter((item, idx) => idx !== index);\n setSelectedValues(newValues);\n onChange(newValues);\n };\n\n const onAutocompleteChange = (\n event: React.ChangeEvent,\n newValues: AutocompleteWithChipType[],\n reason: AutocompleteChangeReason\n ) => {\n if (reason === 'clear') {\n setInputValue('');\n } else {\n onChange(newValues);\n setPendingValues(newValues);\n }\n };\n\n return (\n <>\n {label && (\n \n {label}\n \n )}\n {\n setSelectedValues(pendingValues);\n setInputValue('');\n }}\n multiple\n disableCloseOnSelect\n getOptionLabel={(item) => item.name}\n getOptionSelected={(option, value) => option.id === value.id}\n renderTags={() => null}\n inputValue={inputValue}\n renderInput={(params) => (\n {\n setInputValue(e.target.value);\n }}\n className={classes.input}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n />\n )}\n options={items}\n renderOption={(option, { selected }) => {\n const matches = match(option.name, inputValue, {\n insideWords: true,\n findAllOccurrences: true,\n });\n const parts = parse(option.name, matches);\n\n return (\n \n \n \n {parts.map((part, index) => (\n \n {part.text}\n \n ))}\n \n \n );\n }}\n />\n\n {selectedValues.map((item, index) => (\n onDelete(index)}\n className={classes.chip}\n key={`${id}_chip_${index}`}\n label={item.name}\n />\n ))}\n \n );\n};\n\nexport default AutocompleteWithChip;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport snackbarActions from './snackbar.actions';\nimport filesModuleService from '../services/filesModule.service';\nimport documentCoreService from '../services/documentCore.service';\nimport documentDownloadConstants from '../constants/documentDownload.constants';\n\nconst documentDownloadActions = {\n downloadDocument,\n websocketDownloadDocument,\n downloadDocumentFile,\n};\n\nfunction downloadDocument(documentId, service) {\n return (dispatch) => {\n dispatch({ type: documentDownloadConstants.DOWNLOAD_DOCUMENT_REQUEST, documentId });\n documentCoreService\n .downloadDocument(documentId, service)\n .then(() => {\n dispatch({\n type: documentDownloadConstants.DOWNLOAD_DOCUMENT_SUCCESS,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.downloadDocumentToast')\n )\n );\n })\n .catch((error) => {\n dispatch({ type: documentDownloadConstants.DOWNLOAD_DOCUMENT_FAILURE, documentId });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction downloadDocumentFile(documentId, token, callback = () => undefined) {\n return (dispatch) => {\n dispatch({ type: documentDownloadConstants.DOWNLOAD_DOCUMENT_FILE_REQUEST });\n filesModuleService\n .downloadFile(token)\n .then((response) => {\n dispatch({\n type: documentDownloadConstants.DOWNLOAD_DOCUMENT_FILE_SUCCESS,\n });\n\n const download = (url) => {\n const link = document.createElement('a');\n link.href = url;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n download(response.request.responseURL);\n callback();\n })\n .catch((error) => {\n dispatch({ type: documentDownloadConstants.DOWNLOAD_DOCUMENT_FILE_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n error.code === 'TOO_MANY_REQUESTS_ERROR'\n ? i18n.t('documentActions.downloadDocumentTooManyRequestsToast')\n : `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction websocketDownloadDocument(documentId) {\n return { type: documentDownloadConstants.WS_DOWNLOAD_DOCUMENT, documentId };\n}\n\nexport default documentDownloadActions;\n","import React from 'react';\n\nimport { Time as TimeIcon, Drive as DriveIcon } from 'src/components/CustomIcon';\n\nexport const SidenavLinks = (t) => [\n {\n label: t('sideBar.drive'),\n url: '/drive',\n icon: ,\n },\n {\n label: t('sideBar.recent'),\n url: '/recent',\n icon: ,\n },\n];\n\nexport const SidenavMobileLinks = (t) => [\n {\n label: t('sideBar.drive'),\n url: '/drive',\n icon: ,\n },\n {\n label: t('sideBar.recent'),\n url: '/recent',\n icon: ,\n },\n];\n\nexport const MoreLinks = () => [];\n\nexport default { SidenavLinks, MoreLinks };\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst moduleName = 'communications-module';\n\nconst communicationsService = {\n getUserNotificationChannelsSettings,\n updateNotificationChannel,\n getUserNotificationSystemMessages,\n setNotificationSystemMessageAsRead,\n getUserNotificationSystemMessagesCounter,\n};\n\nfunction getUserNotificationChannelsSettings() {\n return axios\n .get(`/rest/${moduleName}/v1/notifications`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction updateNotificationChannel(newData) {\n return axios\n .put(`/rest/${moduleName}/v1/notifications`, newData)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getUserNotificationSystemMessages({ limit = 20, offset = 0, read = false }) {\n return axios\n .get(`/rest/${moduleName}/v1/system_messages?limit=${limit}&offset=${offset}&read=${read}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\nfunction getUserNotificationSystemMessagesCounter() {\n return axios\n .get(`/rest/${moduleName}/v1/system_messages?read=false`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction setNotificationSystemMessageAsRead(notificationId, clearAll = false) {\n let urlRequest = `/rest/${moduleName}/v1/system_messages?index=${notificationId}`;\n if (clearAll) {\n urlRequest = `/rest/${moduleName}/v1/system_messages`;\n }\n return axios\n .post(urlRequest)\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nexport default communicationsService;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport communicationsConstants from '../constants/communications.constants';\nimport communicationsService from '../services/communications.service';\nimport snackbarActions from './snackbar.actions';\n\nconst communicationsActions = {\n getUserNotificationChannelsSettings,\n updateNotificationChannel,\n getUnreadSystemMessages,\n getUnreadSystemMessagesCounter,\n updateUnreadSystemMessagesCounter,\n getReadSystemMessages,\n setNotificationSystemMessageAsRead,\n setAllNotificationSystemMessagesAsRead,\n clearCommunicationsStore,\n};\n\nfunction getUserNotificationChannelsSettings() {\n return (dispatch) => {\n dispatch({ type: communicationsConstants.GET_USER_NOTIFICATIONS_CHANNELS_REQUEST });\n communicationsService\n .getUserNotificationChannelsSettings()\n .then((response) => {\n dispatch({\n type: communicationsConstants.GET_USER_NOTIFICATIONS_CHANNELS_SUCCESS,\n channels: response?.data?.collection,\n });\n })\n .catch(() => {\n dispatch({ type: communicationsConstants.GET_USER_NOTIFICATIONS_CHANNELS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('userConfigurationPage.notifications.getUserChannels.toast.error')\n )\n );\n });\n };\n}\n\nfunction updateNotificationChannel(data, method, newChannel) {\n return (dispatch) => {\n dispatch({ type: communicationsConstants.UPDATE_NOTIFICATION_CHANNEL_REQUEST, data, method });\n communicationsService\n .updateNotificationChannel(data)\n .then(() => {\n dispatch({\n type: communicationsConstants.UPDATE_NOTIFICATION_CHANNEL_SUCCESS,\n newChannel,\n });\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('userConfigurationPage.notifications.changeSettings.toast.success', {\n name: i18n.t(\n `userConfigurationPage.notifications.channels.${data.notificationTemplate}`\n ),\n method: i18n.t(`userConfigurationPage.notifications.services.${method}`),\n })\n )\n );\n })\n .catch(() => {\n dispatch({\n type: communicationsConstants.UPDATE_NOTIFICATION_CHANNEL_FAILURE,\n data,\n method,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('userConfigurationPage.notifications.changeSettings.toast.error')\n )\n );\n });\n };\n}\n\nfunction getUnreadSystemMessages({ offset, limit, replace = false }) {\n return (dispatch) => {\n dispatch({\n type: communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST,\n });\n communicationsService\n .getUserNotificationSystemMessages({ offset, limit, read: false })\n .then((response) => {\n dispatch({\n type: communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS,\n data: response?.data?.systemMessageResponse,\n hasNextPage: response?.data?.hasMoreData,\n replace,\n });\n })\n .catch(() => {\n dispatch({\n type: communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE,\n });\n });\n };\n}\n\nfunction getReadSystemMessages({ offset, limit }) {\n return (dispatch) => {\n dispatch({\n type: communicationsConstants.GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_REQUEST,\n });\n communicationsService\n .getUserNotificationSystemMessages({ offset, limit, read: true })\n .then((response) => {\n dispatch({\n type: communicationsConstants.GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_SUCCESS,\n data: response?.data?.systemMessageResponse,\n hasNextPage: response?.data?.hasMoreData,\n });\n })\n .catch(() => {\n dispatch({\n type: communicationsConstants.GET_READ_USER_NOTIFICATION_SYSTEM_MESSAGES_FAILURE,\n });\n });\n };\n}\n\nfunction updateUnreadSystemMessagesCounter(counter) {\n return (dispatch) => {\n dispatch({\n type: communicationsConstants.UPDATE_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER,\n payload: counter,\n });\n };\n}\n\nfunction getUnreadSystemMessagesCounter() {\n return (dispatch) => {\n dispatch({\n type: communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_REQUEST,\n });\n communicationsService\n .getUserNotificationSystemMessagesCounter()\n .then((response) => {\n dispatch({\n type:\n communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_SUCCESS,\n data: response?.data,\n });\n })\n .catch(() => {\n dispatch({\n type:\n communicationsConstants.GET_UNREAD_USER_NOTIFICATION_SYSTEM_MESSAGES_COUNTER_FAILURE,\n });\n });\n };\n}\n\nfunction setNotificationSystemMessageAsRead(notificationId, callbackOnSuccess) {\n return (dispatch) => {\n dispatch({\n type: communicationsConstants.SET_USER_NOTIFICATION_AS_READ_REQUEST,\n notificationId,\n });\n communicationsService\n .setNotificationSystemMessageAsRead(notificationId)\n .then(() => {\n dispatch({\n type: communicationsConstants.SET_USER_NOTIFICATION_AS_READ_SUCCESS,\n notificationId,\n });\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch(() => {\n dispatch({\n type: communicationsConstants.SET_USER_NOTIFICATION_AS_READ_FAILURE,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('notifications.setAsRead.toast.error')\n )\n );\n });\n };\n}\n\nfunction setAllNotificationSystemMessagesAsRead() {\n return (dispatch) => {\n dispatch({\n type: communicationsConstants.SET_USER_ALL_NOTIFICATIONS_AS_READ_REQUEST,\n });\n communicationsService\n .setNotificationSystemMessageAsRead([], true)\n .then(() => {\n dispatch({\n type: communicationsConstants.SET_USER_ALL_NOTIFICATIONS_AS_READ_SUCCESS,\n });\n })\n .catch(() => {\n dispatch({\n type: communicationsConstants.SET_USER_ALL_NOTIFICATIONS_AS_READ_FAILURE,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('notifications.setAsRead.toast.errorAll')\n )\n );\n });\n };\n}\n\nfunction clearCommunicationsStore() {\n return { type: communicationsConstants.CLEAR_COMMUNICATIONS_STORE };\n}\n\nexport default communicationsActions;\n","import React from 'react';\nimport { tabType } from 'src/components/ButtonTabs/ButtonTabs';\nimport i18n from 'src/helpers/i18n';\nimport { Mail as UnreadIcon, DraftsOutlined as ReadIcon } from '@material-ui/icons';\n\nexport enum NotificationTabType {\n Unread,\n Read,\n}\n\nexport const notificationTabs: tabType[] = [\n {\n label: i18n.t('notifications.tabs.new'),\n icon: ,\n value: NotificationTabType.Unread,\n },\n {\n label: i18n.t('notifications.tabs.read'),\n icon: ,\n value: NotificationTabType.Read,\n },\n];\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shape, spacing }) =>\n createStyles({\n root: {\n borderRadius: shape.borderRadius,\n flexGrow: 1,\n width: '100%',\n backgroundColor: palette.background.default,\n [breakpoints.down('sm')]: {\n borderTop: `1px solid ${palette.divider}`,\n backgroundColor: palette.background.paper,\n },\n },\n tabsRoot: {\n padding: 0,\n minHeight: 48,\n [breakpoints.up('md')]: {\n minHeight: 48 + spacing(2),\n padding: spacing(1),\n },\n },\n tabsScroller: {\n [breakpoints.up('md')]: {\n margin: spacing(-1),\n padding: spacing(1),\n },\n },\n tabRoot: {\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n [breakpoints.down('xs')]: {\n minWidth: '25%',\n },\n [breakpoints.down('sm')]: {\n fontFamily: 'inherit',\n borderRadius: 0,\n '&$selectedTab': {\n boxShadow: 'none',\n },\n },\n },\n disabledTab: {\n display: 'none',\n },\n selectedTab: {},\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Tab, Tabs, useMediaQuery, useTheme } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nexport type tabType = {\n label: string;\n icon?: JSX.Element;\n value: number;\n};\n\ninterface ButtonTabsProps {\n value: number;\n tabs: tabType[];\n onChange: (value: number) => void;\n}\n\nconst ButtonTabs = ({ value, tabs, onChange }: ButtonTabsProps): JSX.Element => {\n const classes = useStyles();\n const theme = useTheme();\n const { breakpoints } = theme;\n const miniScreen = useMediaQuery(`(max-width: ${breakpoints.values.xs - 1}px)`);\n\n const onTabChange = (event: React.ChangeEvent, newValue: number) => {\n onChange(newValue);\n };\n\n return (\n
    \n \n {tabs.map((tab, index) => (\n \n ))}\n \n
    \n );\n};\n\nexport default ButtonTabs;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, mixins, palette, spacing, typography }) =>\n createStyles({\n drawerPaper: {\n width: 'inherit',\n maxWidth: 'inherit',\n overflowY: 'unset',\n maxHeight: '100vh',\n },\n top: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n ...mixins.toolbar,\n },\n closeButton: {\n [breakpoints.up('lg')]: {\n marginRight: -12,\n },\n },\n mainContent: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n flex: 1,\n overflowY: 'auto',\n paddingBottom: spacing(11),\n [breakpoints.up('lg')]: {\n paddingBottom: spacing(11),\n },\n },\n list: {\n maxWidth: 510,\n width: '510px',\n overflowY: 'unset',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n [breakpoints.down('xs')]: {\n width: '100vw',\n maxWidth: '100%',\n },\n },\n listTop: {\n marginBottom: spacing(2),\n },\n fullList: {\n width: 'auto',\n maxWidth: 450,\n },\n tabs: {\n background: palette.background.paper,\n zIndex: 2,\n position: 'sticky',\n top: 0,\n left: 0,\n paddingBottom: spacing(1),\n [breakpoints.up('sm')]: {\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n },\n [breakpoints.up('md')]: {\n marginLeft: spacing(-1.5),\n marginRight: spacing(-1.5),\n },\n [breakpoints.up('lg')]: {\n marginLeft: spacing(-2),\n marginRight: spacing(-2),\n },\n '& $tab:not(:last-child)': {\n borderRight: `1px solid ${palette.divider}`,\n },\n },\n tab: {\n fontSize: typography.subtitle2.fontSize,\n },\n selectedTab: {\n boxShadow: 'none !important',\n },\n header: {\n position: 'sticky',\n top: 48 + spacing(2),\n background: palette.background.paper,\n zIndex: 2,\n left: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n minHeight: 36 + spacing(1),\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n padding: `${spacing(0.5)}px ${spacing(1)}px`,\n },\n listNotifications: {\n '&:not(:last-child)': {\n paddingBottom: spacing(2),\n [breakpoints.up('md')]: {\n paddingBottom: spacing(3),\n },\n },\n },\n noContent: {\n minHeight: 'inherit',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n '& > *': {\n display: 'block',\n margin: '0 auto',\n },\n '& > *:not(:last-child)': {\n marginBottom: spacing(1.5),\n },\n },\n clearButtonWrapper: {\n position: 'sticky',\n top: 48 + spacing(1),\n zIndex: 3,\n },\n clearButton: {\n position: 'absolute',\n top: 0,\n right: 0,\n minHeight: 36,\n paddingLeft: spacing(1),\n paddingRight: spacing(1),\n marginRight: spacing(-1),\n transform: `translateY(${spacing(0.5)}px)`,\n },\n tabPanel: {\n position: 'relative',\n display: 'flex',\n flex: 1,\n '& > div': {\n minHeight: '100%',\n width: '100%',\n },\n },\n newNotification: {\n color: palette.warning.main,\n animation: '$ring 7s ease-in-out infinite',\n transformOrigin: 'top center',\n },\n\n '@keyframes ring': {\n '0%': { transform: 'rotate(0)' },\n '1%': { transform: 'rotate(30deg)' },\n '3%': { transform: 'rotate(-28deg)' },\n '5%': { transform: 'rotate(34deg)' },\n '7%': { transform: 'rotate(-32deg)' },\n '9%': { transform: 'rotate(30deg)' },\n '11%': { transform: 'rotate(-28deg)' },\n '13%': { transform: 'rotate(26deg)' },\n '15%': { transform: 'rotate(-24deg)' },\n '17%': { transform: 'rotate(22deg)' },\n '19%': { transform: 'rotate(-20deg)' },\n '21%': { transform: 'rotate(18deg)' },\n '23%': { transform: 'rotate(-16deg)' },\n '25%': { transform: 'rotate(14deg)' },\n '27%': { transform: 'rotate(-12deg)' },\n '29%': { transform: 'rotate(10deg)' },\n '31%': { transform: 'rotate(-8deg)' },\n '33%': { transform: 'rotate(6deg)' },\n '35%': { transform: 'rotate(-4deg)' },\n '37%': { transform: 'rotate(2deg)' },\n '39%': { transform: 'rotate(-1deg)' },\n '41%': { transform: 'rotate(1deg)' },\n '43%': { transform: 'rotate(0)' },\n '100%': { transform: 'rotate(0)' },\n },\n }),\n { index: 0 }\n);\n","export interface Channel {\n createdAt: number;\n email: boolean;\n emailCanBeChanged: boolean;\n notificationTemplate: string;\n sms: boolean;\n smsCanBeChanged: boolean;\n systemMessage: boolean;\n systemMessageCanBeChanged: boolean;\n updatedAt: number;\n userId: string;\n}\n\nexport enum SystemMessageType {\n Certificate = 'certificate',\n Document = 'document',\n User = 'user',\n Workspace = 'workspace',\n}\n\nexport interface SystemMessage {\n content: string;\n createdAt: number;\n documentId: string;\n id: number;\n read: boolean;\n type: SystemMessageType;\n updatedAt: number;\n userId: string;\n workspaceId: string;\n}\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, shadows, shape, spacing, typography }) =>\n createStyles({\n root: {\n cursor: 'pointer',\n backgroundColor: palette.common.white,\n justifyContent: 'flex-start',\n textAlign: 'left',\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n marginTop: spacing(0.5),\n padding: `${spacing(1)}px ${spacing(5)}px ${spacing(1)}px ${spacing(1)}px`,\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n width: `calc(100% + ${spacing(2)}px)`,\n borderRadius: shape.borderRadius,\n transition: 'all .6s ease-out',\n '&:hover, &:focus': {\n backgroundColor: palette.action.hover,\n },\n '&:hover $notificationContent': {\n color: palette.primary.main,\n },\n },\n disabled: {\n opacity: '1 !important',\n pointerEvents: 'none',\n },\n textMultiline: {\n margin: 0,\n },\n pending: {\n marginTop: '-58px',\n zIndex: -1,\n },\n read: {},\n notRead: {\n '& $notificationContent': {\n fontWeight: typography.fontWeightBold,\n },\n },\n notificationContent: {},\n date: {\n fontSize: 10,\n lineHeight: 1.3,\n },\n checkIconWrapper: {\n position: 'absolute',\n zIndex: 1,\n right: 4,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n backgroundColor: palette.action.hover,\n '& svg': {\n color: palette.primary.main,\n },\n },\n '& svg': {\n display: 'block',\n backgroundColor: palette.background.paper,\n color: palette.secondary.main,\n borderRadius: '50%',\n padding: spacing(0.5),\n boxShadow: shadows[6],\n },\n },\n avatar: {\n position: 'relative',\n display: 'flex',\n backgroundColor: 'rgb(222, 238, 250);',\n padding: 6,\n borderRadius: '100%',\n\n '& svg': {\n fontSize: spacing(2.5),\n color: palette.info.light,\n },\n '& $loader': {\n position: 'absolute',\n top: 0,\n left: 0,\n },\n },\n loader: {},\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport {\n CircularProgress,\n Fab,\n ListItemIcon,\n ListItemText,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport clsx from 'clsx';\nimport TimeAgo from 'timeago-react';\nimport { useHistory } from 'react-router-dom';\nimport {\n CertificateIcon,\n Check as CheckIcon,\n File as FileIcon,\n User as UserIcon,\n Workspaces as WorkspaceIcon,\n} from 'src/components/CustomIcon';\nimport { ConfirmDialog } from 'src/components/index';\nimport { DateTimeFormats, FormatDate } from 'src/helpers/dateTimeFormats';\nimport { SystemMessage, SystemMessageType } from 'src/models/communications.model';\nimport communicationsActions from 'src/redux/actions/communications.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { useStyles } from './styles';\nimport identityActions from '../../../redux/actions/identity.actions';\n\ninterface HeaderNotificationsItemProps {\n notification: SystemMessage;\n live: boolean;\n isPending: boolean;\n timeRangeAgo?: number;\n goToSystemMessageSubjectCallback?: () => void;\n}\n\nconst HeaderNotificationsItem = ({\n live,\n notification,\n isPending,\n timeRangeAgo = 86400000,\n goToSystemMessageSubjectCallback,\n}: HeaderNotificationsItemProps): JSX.Element => {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const history = useHistory();\n const { language } = i18n;\n const classes = useStyles();\n const { content, createdAt, id, read } = notification;\n const translationKey = 'TRANSLATE_';\n let messageContent = content;\n const type = Date.now() - createdAt <= timeRangeAgo ? 'ago' : 'date';\n const date = new Date(createdAt);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const structure = useSelector((state: any) => state.identityStore?.structure, undefined);\n\n const [isSetAsRead, setIsSetAsRead] = useState(false);\n const [systemMessageSubjectToConfirm, setSystemMessageSubjectToConfirm] = useState<\n SystemMessage | undefined\n >(undefined);\n\n const systemMessageSubjectToConfirmTitle = systemMessageSubjectToConfirm\n ? structure?.find(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (item: any) => item?.workspace?.workspaceId === systemMessageSubjectToConfirm?.workspaceId\n ).workspace.name\n : '-';\n\n if (content.includes(translationKey)) {\n const splitText = content.split(' ');\n messageContent = '';\n\n splitText.forEach((item) => {\n if (item.includes(translationKey)) {\n messageContent += `${t(`notifications.messages.${item.replace('.', '')}`)}${\n item.includes('.') ? '.' : ' '\n }`;\n } else {\n messageContent += `${item} `;\n }\n });\n }\n\n // Mark single notification as read\n const markAsRead = (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsSetAsRead(true);\n setTimeout(() => {\n dispatch(communicationsActions.setNotificationSystemMessageAsRead(id));\n }, 600);\n };\n\n // Change workspace and on callback redirect to document\n const onSystemMessageWorkspaceChange = () => {\n if (systemMessageSubjectToConfirm) {\n dispatch(\n identityActions.switchWorkspace(systemMessageSubjectToConfirm.workspaceId, () => {\n if (systemMessageSubjectToConfirm.type === SystemMessageType.Certificate) {\n history.push(`/certificate/${systemMessageSubjectToConfirm.documentId}`);\n } else if (systemMessageSubjectToConfirm.type === SystemMessageType.Document) {\n history.push(`/document/${systemMessageSubjectToConfirm.documentId}`);\n } else if (systemMessageSubjectToConfirm.type === SystemMessageType.Workspace) {\n history.push(`/workspace-settings/basic/settings`);\n }\n\n if (goToSystemMessageSubjectCallback) goToSystemMessageSubjectCallback();\n\n return undefined;\n })\n );\n }\n };\n\n // redirect to subject of system message (settings, certificate, document)\n const goToSystemMessageSubject = () => {\n // set notification for dialog workspace change\n if (notification.workspaceId !== '' && notification.workspaceId !== workspaceId) {\n setSystemMessageSubjectToConfirm(notification);\n return;\n }\n switch (notification.type) {\n case SystemMessageType.User:\n history.push('/user-settings');\n break;\n case SystemMessageType.Certificate:\n history.push(`/certificate/${notification.documentId}`);\n break;\n case SystemMessageType.Document:\n history.push(`/document/${notification.documentId}`);\n break;\n case SystemMessageType.Workspace:\n history.push(`/workspace-settings/basic/settings`);\n break;\n default:\n break;\n }\n\n // let animation finish\n if (goToSystemMessageSubjectCallback) goToSystemMessageSubjectCallback();\n };\n\n return (\n <>\n \n \n
    \n {notification.type === SystemMessageType.Certificate && }\n {notification.type === SystemMessageType.Document && }\n {notification.type === SystemMessageType.User && }\n {notification.type === SystemMessageType.Workspace && }\n
    \n
    \n \n {messageContent}\n \n }\n secondary={\n \n {type === 'ago' && (\n \n )}\n {type === 'date' && (\n \n )}\n \n }\n />\n {!read && (\n ('notifications.setAsRead.setOne')}>\n \n {isPending ? : }\n \n \n )}\n \n\n {/* DIALOG to confirm notification which refers to other workspace */}\n {systemMessageSubjectToConfirm !== undefined && (\n ('notifications.workspaceModal.title')}\n subtitle={\n }}\n />\n }\n applyButtonText={t('notifications.workspaceModal.title')}\n cancelButtonText={t('common.close')}\n actionAccept={onSystemMessageWorkspaceChange}\n actionCancel={() => setSystemMessageSubjectToConfirm(undefined)}\n />\n )}\n \n );\n};\n\nexport default HeaderNotificationsItem;\n","import { useEffect, useRef } from 'react';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport { useDispatch } from 'react-redux';\nimport communicationsActions from '../../redux/actions/communications.actions';\n\nconst CertificateActionsWebsocket = (): null => {\n const ws = useRef(null);\n const dispatch = useDispatch();\n\n const onWebSocketMessage = (counter: number) => {\n dispatch(communicationsActions.updateUnreadSystemMessagesCounter(counter));\n };\n\n useEffect(() => {\n ws.current = WebSocketHelper.subscribe(\n 'communications-module',\n `unread-system-messages`,\n (message: number) => {\n onWebSocketMessage(message);\n }\n );\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport default CertificateActionsWebsocket;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Button, Drawer, Typography } from '@material-ui/core';\nimport moment from 'moment';\nimport { HeaderButton, ContentContainer, TopBarContainer } from 'src/components';\nimport { Notification as NotificationIcon, Close as CloseIcon } from 'src/components/CustomIcon';\nimport { RootState } from 'src/redux/reducers';\nimport communicationsActions from 'src/redux/actions/communications.actions';\nimport { SystemMessage } from 'src/models/communications.model';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport ButtonTabs from 'src/components/ButtonTabs/ButtonTabs';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport { useStyles } from './styles';\nimport { notificationTabs, NotificationTabType } from './config';\nimport HeaderNotificationsItem from './subcomponents/HeaderNotificationsItem';\nimport HeaderNotificationsWebsocket from './HeaderNotificationsWebsocket';\n\nconst HeaderNotifications = (): JSX.Element => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const classes = useStyles();\n const {\n hasMoreReadSystemMessages,\n hasMoreUnreadSystemMessages,\n unreadSystemMessages,\n unreadSystemMessagesCounter,\n readSystemMessages,\n settingSystemMessageAsReadById,\n } = useSelector((state: RootState) => state.communicationsStore);\n\n const isAnyUnreadSystemMessages = unreadSystemMessagesCounter > 0;\n const isAnyReadSystemMessages = readSystemMessages.length > 0;\n const [open, setOpen] = useState(false);\n const [showRingAnimation, setShowRingAnimation] = useState(false);\n const [activeTab, setActiveTab] = useState(NotificationTabType.Unread);\n const hasMoreMessages =\n activeTab === NotificationTabType.Unread\n ? hasMoreUnreadSystemMessages\n : hasMoreReadSystemMessages;\n const dataLength =\n activeTab === NotificationTabType.Unread\n ? unreadSystemMessages.length\n : readSystemMessages.length;\n\n const prevState = usePrevious({\n open,\n unreadSystemMessagesCounter,\n });\n\n // Drawer toggle actions\n const handleDrawerToggle = {\n open: () => {\n setOpen(true);\n setShowRingAnimation(false);\n },\n close: () => {\n setOpen(false);\n },\n };\n\n // Grouped unread message for today and rest\n const groupedUnreadSystemMessages = {\n todaySystemMessages: isAnyUnreadSystemMessages\n ? unreadSystemMessages.filter((message) => moment(message.createdAt).isSame(moment(), 'day'))\n : [],\n earlierSystemMessages: isAnyUnreadSystemMessages\n ? unreadSystemMessages.filter((message) => !moment(message.createdAt).isSame(moment(), 'day'))\n : [],\n };\n\n // Grouped read message for today and rest\n const groupedReadSystemMessages = {\n todaySystemMessages: isAnyReadSystemMessages\n ? readSystemMessages.filter((message) => moment(message.createdAt).isSame(moment(), 'day'))\n : [],\n earlierSystemMessages: isAnyReadSystemMessages\n ? readSystemMessages.filter((message) => !moment(message.createdAt).isSame(moment(), 'day'))\n : [],\n };\n\n // Mark all unread notifications as read\n const setAllAsRead = () => {\n dispatch(communicationsActions.setAllNotificationSystemMessagesAsRead());\n };\n\n // Change tab\n const onTabChange = (value: number) => setActiveTab(value);\n\n // Close drawer and set default tab when user entered notificiation\n const goToSystemMessageSubjectCallback = () => {\n handleDrawerToggle.close();\n setActiveTab(NotificationTabType.Unread);\n };\n\n // fetch more mossegas on scroll\n const fetchMoreMessages = () => {\n if (activeTab === NotificationTabType.Unread)\n dispatch(communicationsActions.getUnreadSystemMessages({ offset: dataLength, limit: 20 }));\n else if (activeTab === NotificationTabType.Read)\n dispatch(communicationsActions.getReadSystemMessages({ offset: dataLength, limit: 20 }));\n };\n\n const onDrawerClose = () => {\n handleDrawerToggle.close();\n setActiveTab(NotificationTabType.Unread);\n };\n\n // fetch inital system messages for tab if no data\n useEffect(() => {\n if (open) {\n if (activeTab === NotificationTabType.Unread && unreadSystemMessages.length === 0)\n dispatch(communicationsActions.getUnreadSystemMessages({ offset: 0, limit: 20 }));\n else if (activeTab === NotificationTabType.Read && readSystemMessages.length === 0)\n dispatch(communicationsActions.getReadSystemMessages({ offset: 0, limit: 20 }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, activeTab]);\n\n // Update list of unread if counter incremented\n useEffect(() => {\n if (\n unreadSystemMessages.length > 0 &&\n unreadSystemMessagesCounter !== unreadSystemMessages.length &&\n open\n ) {\n dispatch(\n communicationsActions.getUnreadSystemMessages({\n offset: 0,\n limit: 20,\n replace: true,\n })\n );\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [unreadSystemMessagesCounter]);\n\n // fetch counter on mount\n useEffect(() => {\n dispatch(communicationsActions.getUnreadSystemMessagesCounter());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // fetch counter on mount\n useEffect(() => {\n if (!open) {\n dispatch(communicationsActions.clearCommunicationsStore());\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n // run ring animation for bell icon\n useEffect(() => {\n if (\n prevState?.unreadSystemMessagesCounter &&\n prevState?.unreadSystemMessagesCounter < unreadSystemMessagesCounter\n ) {\n setShowRingAnimation(true);\n setTimeout(() => setShowRingAnimation(false), 3000);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [unreadSystemMessagesCounter, prevState]);\n return (\n <>\n \n }\n onClick={handleDrawerToggle.open}\n badge={isAnyUnreadSystemMessages}\n badgeContent={isAnyUnreadSystemMessages ? `+${unreadSystemMessagesCounter}` : null}\n tooltip={t('notifications.header')}\n />\n \n
    \n \n \n {t('notifications.header')}\n \n }\n tooltip={t('common.close')}\n />\n \n\n \n
    \n \n
    \n \n {activeTab === NotificationTabType.Unread && (\n <>\n {isAnyUnreadSystemMessages && (\n
    \n \n {t('notifications.setAsRead.setAll')}\n \n
    \n )}\n {groupedUnreadSystemMessages.todaySystemMessages?.length > 0 && (\n <>\n
    \n \n {t('notifications.from.today')}\n \n
    \n\n
    \n {groupedUnreadSystemMessages.todaySystemMessages.map(\n (item: SystemMessage) => (\n \n )\n )}\n
    \n \n )}\n {groupedUnreadSystemMessages.earlierSystemMessages?.length > 0 ? (\n <>\n
    \n \n {t('notifications.from.earlier')}\n \n
    \n
    \n {groupedUnreadSystemMessages.earlierSystemMessages.map(\n (item: SystemMessage) => (\n \n )\n )}\n
    \n \n ) : null}\n \n )}\n {activeTab === NotificationTabType.Read && (\n <>\n {groupedReadSystemMessages.todaySystemMessages?.length > 0 && (\n <>\n
    \n \n {t('notifications.from.today')}\n \n
    \n\n
    \n {groupedReadSystemMessages.todaySystemMessages.map(\n (item: SystemMessage) => (\n \n )\n )}\n
    \n \n )}\n {groupedReadSystemMessages.earlierSystemMessages?.length > 0 ? (\n <>\n
    \n \n {t('notifications.from.earlier')}\n \n
    \n
    \n {groupedReadSystemMessages.earlierSystemMessages.map(\n (item: SystemMessage) => (\n \n )\n )}\n
    \n \n ) : null}\n \n )}\n \n
    \n
    \n \n \n );\n};\n\nexport default HeaderNotifications;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, mixins, palette, spacing }) =>\n createStyles({\n root: {\n height: 'auto',\n flexDirection: 'row',\n alignItems: 'center',\n [breakpoints.down('sm')]: {\n borderBottom: `1px solid ${palette.divider}`,\n },\n ...mixins.toolbar,\n },\n mainContent: {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n },\n searchField: {\n backgroundColor: palette.background.default,\n flexGrow: 1,\n },\n headerTitle: {\n flex: 1,\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n actionsLeft: {\n paddingRight: spacing(1),\n '& > *': {\n '&:not(:last-child)': {\n marginRight: spacing(0.5),\n [breakpoints.up('md')]: {\n marginRight: spacing(1),\n },\n },\n },\n },\n actionsRight: {\n marginLeft: spacing(1),\n },\n toolbar: {\n position: 'relative',\n justifyContent: 'space-between',\n },\n }),\n { index: 0 }\n);\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n menu: {\n paddingTop: spacing(0.75),\n paddingBottom: spacing(0.75),\n paddingRight: 0,\n },\n link: {\n display: 'flex',\n },\n imageAppStore: {\n height: 30,\n marginRight: spacing(0.5),\n },\n imagePlay: {\n height: 30,\n },\n appImageWrapper: {\n justifyContent: 'space-between',\n },\n }),\n { index: 0 }\n);\n","import React, { MouseEvent, useState } from 'react';\nimport { Divider, Link, Menu, MenuItem, Theme, Typography, useMediaQuery } from '@material-ui/core';\nimport { Help } from 'src/components/CustomIcon';\nimport { HeaderButton } from 'src/components';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { userComActions } from 'src/redux/actions/userCom.actions';\nimport { useStyles } from './styles';\n\nconst HeaderHelp = (): JSX.Element | null => {\n const classes = useStyles();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState(null);\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const onChatSupport = () => {\n userComActions.openChat();\n handleClose();\n };\n\n const onSubmitRequest = () => {\n if (workspaceId) userComActions.user.submitRequest(workspaceId);\n handleClose();\n };\n\n const openPage = (url: string) => {\n window.open(url, '_blank');\n handleClose();\n };\n\n const handleClose = () => setAnchorEl(null);\n\n const isOpen = Boolean(anchorEl);\n if (smallScreen) return null;\n return (\n <>\n } onClick={handleClick} tooltip={t('headerHelp.help')} />\n \n openPage('https://docs.doxychain.com')}>\n {t('headerHelp.helpDocs')} \n \n openPage('https://www.doxychain.com/tutorials')}>\n {t('headerHelp.tutorials')}\n \n openPage('https://www.doxychain.com/faqs')}>\n {t('headerHelp.faq')}\n \n \n \n {t('headerHelp.chatSupport')}\n \n \n {t('headerHelp.request')}\n \n \n openPage(t('links.terms'))}>\n {t('headerHelp.terms')}\n \n openPage(t('links.privacyPolicy'))}>\n {t('headerHelp.privacy')}\n \n \n \n \n \"App\n \n \n \"Google\n \n \n \n \n );\n};\n\nexport default HeaderHelp;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, breakpoints }) =>\n createStyles({\n mainAvatar: {\n '&:hover': {\n boxShadow: '2px 5px 12px -4px rgb(0 0 0 / 20%)',\n },\n [breakpoints.down('sm')]: {\n marginLeft: spacing(2),\n },\n },\n logout: {\n color: `${palette.error.main} !important`,\n '&:hover p, p': {\n color: `${palette.error.main} !important`,\n },\n },\n menu: {\n maxWidth: 345,\n minWidth: 245,\n '& p': {\n color: palette.text.primary,\n },\n },\n user: {\n overflow: 'hidden',\n },\n userWrapper: {\n padding: spacing(2),\n },\n }),\n { index: 0 }\n);\n","import React, { MouseEvent, useState } from 'react';\nimport {\n Avatar,\n Divider,\n Fab,\n ListItemIcon,\n Menu,\n MenuItem,\n Theme,\n Tooltip,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { UserSettings as UserSettingsIcon, Logout as LogoutIcon } from 'src/components/CustomIcon';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { lighten } from '@material-ui/core/styles';\nimport { getColorFromText, getInitials } from 'src/helpers/globalUtilsTS';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { AvatarAndTextItem, AvatarWithBadge, HeaderUserDrawer } from 'src/components';\nimport authActions from 'src/redux/actions/auth.actions';\nimport { useHistory } from 'react-router-dom';\nimport { useStyles } from './styles';\n\nconst HeaderHelp = (): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState(null);\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n\n const currentIdentity = useSelector(IdentitySelector.selectCurrentIdentity);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const workspaceDetails = useSelector(IdentitySelector.selectWorkspaceDetails);\n const handleClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n const history = useHistory();\n\n const initials = currentIdentity ? getInitials(currentIdentity?.name) : ' ';\n const userAvatar = `${process.env.REACT_APP_AVATAR_URL}/identity/${currentIdentity?.identityId}?kind=SMALL`;\n const workspaceAvatar = `${process.env.REACT_APP_AVATAR_URL}/workspace/${workspaceId}?kind=SMALL`;\n const colorByInitials = getColorFromText(initials);\n const userText = currentIdentity?.name || currentIdentity?.email || '';\n const userDescription =\n currentIdentity?.name && currentIdentity?.name !== currentIdentity?.email\n ? currentIdentity?.email\n : undefined;\n\n const isOpen = Boolean(anchorEl);\n const dispatch = useDispatch();\n const handleClose = () => setAnchorEl(null);\n const handleLogout = () => {\n dispatch(authActions.deleteToken());\n };\n\n const goToSettings = () => {\n history.push(`/user-settings/basic/settings`);\n handleClose();\n };\n\n return (\n <>\n ('headerUser.account')}>\n \n {smallScreen ? (\n \n {initials}\n \n ) : (\n \n {initials}\n \n )}\n \n \n\n {!smallScreen && (\n \n
    \n \n
    \n \n \n \n \n \n {t('headerUser.accountSettings')} \n \n \n \n \n \n \n {t('headerUser.logout')} \n \n \n )}\n {smallScreen && setAnchorEl(null)} />}\n \n );\n};\n\nexport default HeaderHelp;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { SidenavLinks, MoreLinks } from 'src/pages/App/Links';\nimport { AppBar, Typography, useMediaQuery } from '@material-ui/core';\nimport { TopBarContainer, HeaderSearch } from 'src/components';\nimport HeaderNotifications from 'src/components/HeaderNotifications/HeaderNotifications';\nimport { useStyles } from './styles';\nimport HeaderHelp from './subcomponents/HeaderHelp/HeaderHelp';\nimport HeaderUser from './subcomponents/HeaderUser/HeaderUser';\n\nconst AppHeader = ({\n className: classNameProp,\n isMainHeader,\n disableTitle,\n additionalLeftAction,\n additionalRightAction,\n}) => {\n const classes = useStyles();\n const location = useLocation();\n const { t } = useTranslation();\n const [didMount, setDidMount] = useState(false);\n\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n useEffect(() => {\n setDidMount(true);\n return () => setDidMount(false);\n }, []);\n\n const titles = [...SidenavLinks(t), ...MoreLinks(t)];\n const extractTitle = () => titles.find((link) => link.url === location.pathname)?.label;\n const title = extractTitle();\n\n const pathnameSplit = location.pathname.split('/');\n const isVaultHeader = pathnameSplit[1] === 'drive';\n const isDocumentHeader = pathnameSplit[1] === 'document';\n const isNotRootVault = isVaultHeader && pathnameSplit[2] !== undefined;\n const isVaultAndNotRoot = isVaultHeader && isNotRootVault;\n const showSearchEngine =\n (!isMainHeader && isVaultAndNotRoot) ||\n (isMainHeader && !isVaultAndNotRoot) ||\n (isMainHeader && !smallScreen);\n\n if (!didMount) {\n return null;\n }\n\n return (\n \n \n {(additionalLeftAction || (smallScreen && !disableTitle)) && (\n
    \n {additionalLeftAction && (\n
    \n {additionalLeftAction}\n
    \n )}\n\n {smallScreen && !disableTitle && (\n \n {title}\n \n )}\n
    \n )}\n\n {showSearchEngine && didMount && !isDocumentHeader && isMainHeader && (\n \n )}\n\n
    \n {isMainHeader && (\n <>\n \n \n \n \n )}\n\n {additionalRightAction}\n
    \n
    \n
    \n );\n};\n\nAppHeader.propTypes = {\n className: PropTypes.string,\n isMainHeader: PropTypes.bool,\n disableTitle: PropTypes.bool,\n additionalLeftAction: PropTypes.node,\n additionalRightAction: PropTypes.node,\n};\n\nAppHeader.defaultProps = {\n isMainHeader: true,\n disableTitle: false,\n};\n\nexport default AppHeader;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, typography, zIndex }) =>\n createStyles({\n root: {},\n rootOnAnimation: {\n zIndex: zIndex.modal + 10,\n },\n item: {},\n itemActive: {},\n itemMobile: {\n '& $itemIcon': {\n lineHeight: 1,\n marginBottom: spacing(1),\n '& svg': {\n display: 'block',\n width: 20,\n height: 20,\n },\n },\n '&$itemActive': {\n '& $itemTextMobile': {\n opacity: 1,\n },\n },\n },\n itemIcon: {},\n itemTextMobile: {\n fontSize: 10,\n fontWeight: typography.fontWeightBold,\n textAlign: 'center',\n lineHeight: 1.2,\n opacity: 0.8,\n },\n moreMenu: {},\n moreMenuPaper: {\n width: '100%',\n maxWidth: '100%',\n left: '0 !important',\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n border: `1px solid ${palette.divider}`,\n },\n moreMenuItem: {\n padding: spacing(1.5, 2),\n minHeight: 'auto',\n fontSize: '1.075rem',\n fontWeight: typography.fontWeightMedium,\n [breakpoints.up('xs')]: {\n fontSize: typography.h5.fontSize,\n },\n },\n moreMenuItemIconWrapper: {\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: palette.secondary.main,\n color: palette.common.white,\n minWidth: spacing(5),\n minHeight: spacing(5),\n borderRadius: '50%',\n marginRight: spacing(2),\n },\n }),\n { index: 0 }\n);\n","import React, { forwardRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { NavLink } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport {\n BottomNavigation,\n BottomNavigationAction,\n ListItemIcon,\n Menu,\n MenuItem,\n Slide,\n} from '@material-ui/core';\nimport { MoreHor as MoreIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst TransitionUp = forwardRef((props, ref) => );\n\nconst AppMenuMobile = forwardRef(\n ({ classes: classesProp, className: classNameProp, items, moreItems }, ref) => {\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState(null);\n const [menuIsAnimating, setMenuIsAnimating] = useState(true);\n const classes = useStyles();\n const onMenuAnimatingToggle = {\n onStart: () => {\n setMenuIsAnimating(false);\n },\n onEnd: () => {\n setMenuIsAnimating(true);\n },\n };\n\n const isMoreOpen = Boolean(anchorEl);\n\n const handleMoreClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleMoreClose = () => {\n setAnchorEl(null);\n };\n\n const itemClasses = {\n root: clsx(classes.item, classes.itemMobile, classesProp && classesProp.item),\n label: classes.itemTextMobile,\n };\n\n const renderItemIcon = (icon) => (\n
    {icon}
    \n );\n\n return (\n <>\n \n {items?.length > 0 &&\n items.map((item, index) => {\n if (!item.onlyDesktop) {\n const additionalProps = item.url\n ? {\n component: NavLink,\n to: item.url,\n activeClassName: !isMoreOpen\n ? clsx(classes.itemActive, classesProp && classesProp.itemActive)\n : null,\n }\n : {};\n\n return (\n \n );\n }\n return null;\n })}\n\n {moreItems?.length > 0 && (\n )}\n onClick={handleMoreClick}\n />\n )}\n \n\n {moreItems?.length > 0 && (\n \n {moreItems.map((item, index) => {\n const additionalProps = item.url\n ? {\n component: NavLink,\n to: item.url,\n activeClassName: clsx(\n classes.itemActive,\n classesProp && classesProp.itemActive\n ),\n }\n : {};\n\n return (\n {\n handleMoreClose();\n !!item.onClick && item.onClick();\n }}\n {...additionalProps}\n >\n \n {item.icon}\n \n {item.label}\n \n );\n })}\n \n )}\n \n );\n }\n);\n\nAppMenuMobile.propTypes = {\n className: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n classes: PropTypes.object,\n // eslint-disable-next-line react/forbid-prop-types\n items: PropTypes.arrayOf(PropTypes.object).isRequired,\n // eslint-disable-next-line react/forbid-prop-types\n moreItems: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default AppMenuMobile;\n","import { fade } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, custom, mixins, palette, spacing, transitions, typography }) => {\n const { minHeight: toolbarH } = mixins.toolbar;\n const { leftMenuWidth: menuWidth } = custom;\n\n return createStyles({\n drawerRoot: {\n width: menuWidth,\n maxWidth: '100%',\n },\n drawerPaper: {\n width: 'inherit',\n maxWidth: 'inherit',\n overflowY: 'unset',\n color: palette.primary.contrastText,\n background:\n 'radial-gradient(68.43% 21.5% at 57.2% 95.99%, #FFFFFF 0%, rgba(18, 18, 49, 0) 100%), radial-gradient(158.97% 59.54% at 50% 0%, #FFFFFF 0%, rgba(21, 19, 47, 0) 100%), #121231',\n backgroundBlendMode: 'overlay, overlay, normal',\n },\n topContent: {\n ...mixins.toolbar,\n },\n mainContent: {\n flex: 1,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n },\n bottomContent: {},\n logoText: {\n marginBottom: spacing(1.5),\n },\n logo: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n marginTop: 'auto',\n flexDirection: 'column',\n minHeight: toolbarH / 2 + spacing(1),\n '& $imageContainer + p': {\n display: 'block',\n marginTop: spacing(0.5),\n },\n },\n image: {\n display: 'block',\n width: 'auto',\n maxWidth: '100%',\n maxHeight: spacing(6),\n margin: '0 auto',\n },\n imageContainer: {\n width: '100%',\n },\n addButton: {\n marginTop: spacing(2),\n paddingLeft: spacing(1),\n paddingRight: spacing(1),\n [breakpoints.up('lg')]: {\n marginTop: spacing(5),\n },\n '&.Mui-disabled': {\n backgroundColor: palette.primary.main,\n color: palette.common.white,\n opacity: 0.6,\n },\n },\n menuDesktop: {\n marginTop: spacing(1),\n },\n menuButton: {\n marginRight: spacing(3),\n [breakpoints.up('sm')]: {\n display: 'none',\n },\n },\n navLink: {\n background: 'transparent',\n width: '100%',\n },\n navItem: {\n color: 'inherit !important',\n fontWeight: typography.fontWeightRegular,\n '&:hover, &:focus, &:active': {\n '& $navItemIcon': {\n color: fade(palette.primary.contrastText, palette.tonalOffset * 3),\n },\n },\n '&$navItemActive': {\n '& $navItemIcon': {\n color: `${palette.primary.light} !important`,\n },\n },\n },\n navItemActive: {\n fontWeight: typography.fontWeightMedium,\n },\n navItemText: {\n fontSize: '1.1rem',\n },\n navItemIcon: {\n color: fade(palette.primary.contrastText, 0.25),\n transition: transitions.create('all', {\n duration: transitions.duration.shorter,\n easing: transitions.easing.easeOut,\n }),\n },\n });\n },\n { index: 0 }\n);\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport { fade } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(\n ({ spacing, palette }) =>\n createStyles({\n currentWorkspace: {\n position: 'relative',\n zIndex: 2,\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n '&:hover:after': {\n opacity: 1,\n },\n '&:after': {\n content: '\" \"',\n opacity: 0,\n position: 'absolute',\n top: -spacing(1),\n left: -spacing(1),\n width: 'calc(100% + 16px)',\n height: 'calc(100% + 16px)',\n backgroundColor: fade(palette.common.white, 0.1),\n borderRadius: spacing(0.75),\n zIndex: -1,\n transition: '.3s ease-in-out',\n },\n },\n currentWorkspaceOpen: {\n color: palette.text.primary,\n '&:after': {\n backgroundColor: palette.action.hover,\n width: 'calc(245px - 16px)',\n height: 'calc(100% + 16px)',\n },\n },\n arrowsIcon: {\n position: 'absolute',\n top: 12,\n right: -6,\n },\n arrowIconOpen: {\n right: -30,\n },\n currentWorkspaceText: {\n fontWeight: 600,\n paddingLeft: spacing(1.5),\n paddingRight: spacing(2),\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontSize: '15px',\n },\n currentWorkspaceTextOpen: {\n paddingRight: 0,\n },\n workspacesWrapper: {\n maxHeight: 'calc(100vh - 300px)',\n overflowY: 'scroll',\n },\n workspaceText: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingLeft: spacing(1.5),\n paddingRight: spacing(1.5),\n },\n wrapper: {\n position: 'relative',\n },\n content: {\n zIndex: 1,\n position: 'absolute',\n top: -spacing(2),\n left: -spacing(2),\n display: 'flex',\n flexDirection: 'column',\n opacity: 0,\n visibility: 'hidden',\n transition: '.3s ease-in-out',\n width: 245,\n paddingTop: spacing(10),\n paddingBottom: spacing(1),\n boxShadow: '0px 20px 65px rgba(31, 39, 55, 0.1)',\n backgroundColor: palette.common.white,\n borderRadius: spacing(0.75),\n '& .MuiMenuItem-root:hover': {\n '& .MuiTypography-colorTextPrimary': {\n color: palette.primary.main,\n },\n },\n '& .small-item': {\n paddingTop: 2,\n paddingBottom: 2,\n minHeight: 38,\n },\n },\n contentOpen: {\n visibility: 'visible',\n opacity: 1,\n },\n mainAvatar: {\n height: spacing(6),\n width: spacing(6),\n borderRadius: 15,\n },\n avatar: {\n borderRadius: 15,\n },\n }),\n { index: 0 }\n);\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nexport const moduleName = 'avatar-service';\n\nconst avatarService = {\n getIdentityAvatar,\n getUserAvatar,\n uploadUserAvatar,\n deleteUserAvatar,\n getWorkspaceAvatar,\n uploadWorkspaceAvatar,\n deleteWorkspaceAvatar,\n};\n\nfunction getIdentityAvatar(id) {\n return axios\n .get(`/rest/${moduleName}/avatar/identity/${id}`, {\n params: {\n kind: 'SMALL',\n },\n headers: { 'Cache-Control': 'no-cache' },\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getUserAvatar(id) {\n return axios\n .get(`/rest/${moduleName}/avatar/user/${id}`, {\n params: {\n kind: 'SMALL',\n },\n headers: { 'Cache-Control': 'no-cache' },\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction uploadUserAvatar(file) {\n return axios\n .put(`/rest/${moduleName}/avatar/user`, { image: file })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction deleteUserAvatar() {\n return axios\n .delete(`/rest/${moduleName}/avatar/user`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction getWorkspaceAvatar(workspaceId) {\n return axios\n .get(`/rest/${moduleName}/avatar/workspace/${workspaceId}`, {\n params: {\n kind: 'SMALL',\n },\n headers: { 'Cache-Control': 'no-cache' },\n })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction uploadWorkspaceAvatar(workspaceId, file) {\n return axios\n .put(`/rest/${moduleName}/avatar/workspace/${workspaceId}`, { image: file })\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction deleteWorkspaceAvatar(workspaceId) {\n return axios\n .delete(`/rest/${moduleName}/avatar/workspace/${workspaceId}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nexport default avatarService;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport avatarService from '../services/avatar.service';\nimport avatarConstants from '../constants/avatar.constants';\nimport snackbarActions from './snackbar.actions';\nimport { userComActions, WorkspaceDataChangedType } from './userCom.actions';\n\nconst avatarActions = {\n getUserAvatar,\n refreshAvatars,\n updateUserAvatar,\n deleteUserAvatar,\n getWorkspaceAvatar,\n updateWorkspaceAvatar,\n deleteWorkspaceAvatar,\n};\n\nfunction getUserAvatar(id) {\n return (dispatch) => {\n dispatch({ type: avatarConstants.GET_USER_AVATAR_REQUEST });\n avatarService\n .getUserAvatar(id)\n .then(() => {\n dispatch({\n type: avatarConstants.GET_USER_AVATAR_SUCCESS,\n });\n })\n .catch(() => {\n dispatch({ type: avatarConstants.GET_USER_AVATAR_ERROR });\n });\n };\n}\n\nfunction refreshAvatars(identities, type) {\n const avatarPromises = identities.map((id) =>\n type === 'identity' ? avatarService.getIdentityAvatar(id) : avatarService.getWorkspaceAvatar(id)\n );\n Promise.all(avatarPromises);\n}\n\nfunction updateUserAvatar(updatedAvatar) {\n return (dispatch) => {\n dispatch({ type: avatarConstants.PUT_USER_AVATAR_REQUEST });\n avatarService\n .uploadUserAvatar(updatedAvatar)\n .then(() => {\n dispatch({ type: avatarConstants.PUT_USER_AVATAR_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n })\n .catch((error) => {\n dispatch({ type: avatarConstants.PUT_USER_AVATAR_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction deleteUserAvatar(callbackOnSuccess) {\n return (dispatch) => {\n dispatch({ type: avatarConstants.DELETE_USER_AVATAR_REQUEST });\n avatarService\n .deleteUserAvatar()\n .then(() => {\n dispatch({ type: avatarConstants.DELETE_USER_AVATAR_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('userConfigurationPage.basic.avatarDelete.toast.success')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch((error) => {\n dispatch({ type: avatarConstants.DELETE_USER_AVATAR_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('userConfigurationPage.basic.avatarDelete.toast.error')\n )\n );\n });\n };\n}\n\nfunction getWorkspaceAvatar(workspaceId) {\n return (dispatch) => {\n dispatch({ type: avatarConstants.GET_WORKSPACE_AVATAR_REQUEST });\n avatarService\n .getWorkspaceAvatar(workspaceId)\n .then(() => {\n dispatch({\n type: avatarConstants.GET_WORKSPACE_AVATAR_SUCCESS,\n });\n })\n .catch(() => {\n dispatch({ type: avatarConstants.GET_WORKSPACE_AVATAR_ERROR });\n });\n };\n}\n\nfunction updateWorkspaceAvatar(workspaceId, updatedAvatar) {\n return (dispatch) => {\n dispatch({ type: avatarConstants.PUT_WORKSPACE_AVATAR_REQUEST });\n avatarService\n .uploadWorkspaceAvatar(workspaceId, updatedAvatar)\n .then(() => {\n userComActions.workspace.dataChanged(WorkspaceDataChangedType.Logo);\n dispatch({ type: avatarConstants.PUT_WORKSPACE_AVATAR_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n })\n .catch((error) => {\n dispatch({ type: avatarConstants.PUT_WORKSPACE_AVATAR_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction deleteWorkspaceAvatar(workspaceId, callbackOnSuccess) {\n return (dispatch) => {\n dispatch({ type: avatarConstants.DELETE_WORKSPACE_AVATAR_REQUEST });\n avatarService\n .deleteWorkspaceAvatar(workspaceId)\n .then(() => {\n dispatch({ type: avatarConstants.DELETE_WORKSPACE_AVATAR_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.settings.logoDelete.toast.success')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch((error) => {\n dispatch({ type: avatarConstants.DELETE_USER_AVATAR_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.settings.logoDelete.toast.error')\n )\n );\n });\n };\n}\n\nexport default avatarActions;\n","import React, { useEffect } from 'react';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport OutsideClickHandler from 'react-outside-click-handler';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { Avatar, Divider, ListItemIcon, MenuItem, Typography } from '@material-ui/core';\nimport { getColorFromText, getInitials } from 'src/helpers/globalUtilsTS';\nimport { lighten } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport {\n Plus as PlusIcon,\n Settings as SettingsIcon,\n Users as UsersIcon,\n Wallet,\n} from 'src/components/CustomIcon';\nimport { UnfoldLessOutlined, UnfoldMoreOutlined } from '@material-ui/icons';\nimport { CreateWorkspace } from 'src/components';\nimport { useStyles } from './styles';\nimport { RootState } from '../../../../redux/reducers';\nimport avatarActions from '../../../../redux/actions/avatar.actions';\n\nconst SidebarWorkspaceSwitch = (): JSX.Element | null => {\n const { t } = useTranslation();\n const [showWorkspaceDropdown, setShowWorkspaceDropdown] = React.useState(false);\n const [createWorkspaceDialogOpen, setCreateWorkspaceDialogOpen] = React.useState(false);\n const classes = useStyles();\n const history = useHistory();\n const dispatch = useDispatch();\n const availableWorkspaces = useSelector(IdentitySelector.selectAvailableWorkspaces, undefined);\n const currentWorkspace = useSelector(IdentitySelector.selectWorkspaceDetails, undefined);\n const { workspaceAvatar } = useSelector((state: RootState) => state.avatarStore);\n const { isOwner } = useSelector((state: RootState) => state.identityStore, undefined);\n const currentIdentity = useSelector((state: RootState) => state.identityStore.currentIdentity);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const changeWorkspace = (id: string) => {\n dispatch(\n identityActions.switchWorkspace(id, () => {\n history.push('/');\n\n return undefined;\n })\n );\n closeDropdown();\n };\n\n const goToSettings = () => {\n history.push(`/workspace-settings/basic/settings`);\n closeDropdown();\n };\n const goToUsers = () => {\n history.push(`/workspace-settings/user-management/users`);\n closeDropdown();\n };\n const goToBilling = () => {\n history.push(`/workspace-settings/subscription/products`);\n closeDropdown();\n };\n const closeDropdown = () => setShowWorkspaceDropdown(false);\n const closeCreateWorkspaceDialog = () => setCreateWorkspaceDialogOpen(false);\n const openCreateWorkspaceDialog = () => {\n setCreateWorkspaceDialogOpen(true);\n closeDropdown();\n };\n\n useEffect(() => {\n if (currentIdentity) {\n dispatch(avatarActions.getWorkspaceAvatar(currentIdentity?.workspace?.workspaceId));\n }\n }, [currentIdentity, dispatch]);\n\n if (!currentWorkspace) return null;\n\n const initials = getInitials(currentWorkspace.name);\n const colorByInitials = getColorFromText(initials);\n return (\n <>\n
    \n setShowWorkspaceDropdown(!showWorkspaceDropdown)}\n aria-hidden=\"true\"\n className={clsx(\n classes.currentWorkspace,\n showWorkspaceDropdown && classes.currentWorkspaceOpen\n )}\n >\n \n {initials}\n \n \n {currentWorkspace.name}\n \n {showWorkspaceDropdown ? : }\n
    \n \n \n\n
    \n {\n const target = e.target as HTMLButtonElement;\n const isButton = Boolean(target && target.getElementsByClassName('toggleButton')[0]);\n if (!isButton) closeDropdown();\n }}\n >\n \n {isOwner && (\n <>\n \n \n \n \n \n {t('sideBar.settings')}\n \n \n \n \n \n \n \n {t('sideBar.members')}\n \n \n \n \n \n \n \n {t('sideBar.billing')}\n \n \n \n \n )}\n
    \n {availableWorkspaces\n .filter((workspace) => workspace.workspace.workspaceId !== workspaceId) // remove current workspace\n .map((workspace) => {\n const text = getInitials(workspace.workspace.name);\n const color = getColorFromText(text);\n return (\n changeWorkspace(workspace.workspace.workspaceId)}\n divider={false}\n >\n \n {text}\n \n \n {workspace.workspace.name}\n \n \n );\n })}\n
    \n \n \n \n \n \n \n {t('sideBar.newWorkspace')}\n \n \n \n
    \n \n\n {createWorkspaceDialogOpen && (\n \n )}\n \n );\n};\n\nexport default SidebarWorkspaceSwitch;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { Button, Drawer, Typography, useMediaQuery } from '@material-ui/core';\nimport { Plus as PlusIcon } from 'src/components/CustomIcon';\nimport { ContentContainer, Logo, MenuNavigationList } from 'src/components';\nimport { AppMenuMobile } from '../index';\nimport { SidenavLinks, MoreLinks, SidenavMobileLinks } from '../../Links';\nimport { useStyles } from './styles';\nimport SelectTemplateDropdown from '../../../../components/SelectTemplateDropdown/SelectTemplateDropdown';\nimport SidebarWorkspaceSwitch from '../SidebarWorkspaceSwitch/SidebarWorkspaceSwitch';\n\nconst AppMenuSidebar = ({ className: classNameProp }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const desktopScreen = useMediaQuery(({ breakpoints }) => breakpoints.up('md'));\n\n return (\n <>\n {desktopScreen ? (\n \n \n \n \n }\n >\n {t('sideBar.addDocument.shortText')}\n \n \n \n\n \n \n
    \n \n {t('sideBar.powered')}\n \n \n
    \n \n \n ) : (\n \n )}\n \n );\n};\n\nAppMenuSidebar.propTypes = {\n className: PropTypes.string,\n};\n\nexport default AppMenuSidebar;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useSnackbar } from 'notistack';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nlet displayed = [];\n\nconst Notifier = () => {\n const dispatch = useDispatch();\n const notifications = useSelector((state) => state.snackbarStore.notifications || [], undefined);\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const tokenStatus = useSelector((state) => state.authStore.tokenStatus, undefined);\n\n const storeDisplayed = (id) => {\n displayed = [...displayed, id];\n };\n\n const removeDisplayed = (id) => {\n displayed = [...displayed.filter((key) => id !== key)];\n };\n\n React.useEffect(() => {\n notifications.forEach(({ key, message, options = {}, dismissed = false }) => {\n if (dismissed) {\n // dismiss snackbar using notistack\n closeSnackbar(key);\n return;\n }\n\n // do nothing if snackbar is already displayed\n if (displayed.includes(key)) return;\n\n // do notihing if not authorized\n if (tokenStatus === RequestStatus.ERROR) return;\n\n // display snackbar using notistack\n enqueueSnackbar(message, {\n key,\n ...options,\n onClose: (event, reason, myKey) => {\n if (options.onClose) {\n options.onClose(event, reason, myKey);\n }\n },\n onExited: (event, myKey) => {\n // remove this snackbar from redux store\n dispatch(snackbarActions.removeSnackbar(myKey));\n removeDisplayed(myKey);\n },\n });\n\n // keep track of snackbars that we've displayed\n storeDisplayed(key);\n });\n }, [notifications, closeSnackbar, enqueueSnackbar, tokenStatus, dispatch]);\n\n return null;\n};\n\nexport default Notifier;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, custom, palette, spacing, zIndex }) => {\n const { leftMenuWidth: menuWidth } = custom;\n\n return createStyles({\n root: {\n height: '100%',\n width: '100%',\n backgroundColor: palette.background.paper,\n },\n headerVerticalPadding: {\n paddingTop: spacing(1),\n paddingBottom: spacing(1),\n },\n appHeader: { position: 'relative' },\n main: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n [breakpoints.up('md')]: {\n marginLeft: menuWidth,\n width: `calc(100% - ${menuWidth}px)`,\n },\n },\n content: {\n flex: 1,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n [breakpoints.up('md')]: {\n paddingTop: `0 !important`,\n paddingBottom: `${spacing(3)}px !important`,\n },\n },\n snackbarContainerRoot: {\n width: `calc(100% - ${spacing(1)}px)`,\n marginLeft: spacing(0.5),\n maxWidth: breakpoints.values.md,\n [breakpoints.up('sm')]: {\n marginLeft: 0,\n },\n },\n snackbarAnchorOriginTopCenter: {\n top: spacing(0.5),\n [breakpoints.up('sm')]: {\n top: spacing(1.5),\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)',\n },\n [breakpoints.up('md')]: {\n top: spacing(3),\n },\n },\n snackbarCollapseContainer: {\n padding: 0,\n },\n snackbarCollapseWrapper: {\n marginTop: 0,\n marginBottom: spacing(0.5),\n },\n snackbarWrappedRoot: {\n top: 0,\n },\n authorizationLoader: {\n backgroundColor: palette.background.paper,\n zIndex: zIndex.tooltip + 10,\n },\n });\n },\n { index: 0 }\n);\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport { lighten } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing }) =>\n createStyles({\n filterBar: {\n display: 'flex',\n },\n clearIcon: {\n color: palette.text.secondary,\n width: 16,\n },\n clearButton: {\n padding: 4,\n },\n clearWrapper: {\n marginRight: 'auto',\n paddingLeft: spacing(2),\n },\n title: {\n marginTop: spacing(2),\n marginBottom: spacing(4),\n fontSize: 16,\n },\n wrapper: {\n display: 'flex',\n },\n chip: {\n position: 'relative',\n padding: spacing(1, 2, 1, 0.5),\n marginRight: spacing(1),\n backgroundColor: 'transparent !important',\n '&:hover': {\n backgroundColor: 'transparent !important',\n borderColor: palette.primary.main,\n '& *': {\n color: `${palette.primary.main}!important`,\n borderTopColor: palette.primary.main,\n },\n },\n },\n chipActive: {\n borderColor: 'transparent',\n paddingRight: spacing(0.5),\n backgroundColor: `${lighten(palette.primary.main, 0.85)}!important`,\n '&:hover': {\n borderColor: palette.primary.main,\n backgroundColor: `${lighten(palette.primary.main, 0.85)}!important`,\n },\n '& *': {\n color: `${palette.primary.main}!important`,\n borderTopColor: `${palette.primary.main}!important`,\n },\n },\n dropdownIcon: {\n width: 0,\n height: 0,\n position: 'absolute',\n borderLeft: '4px solid transparent',\n borderRight: '4px solid transparent',\n borderTop: `4px solid ${palette.text.secondary}`,\n top: 14,\n right: 8,\n },\n chipIcon: {\n fontSize: 18,\n color: palette.text.secondary,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Chip, Typography } from '@material-ui/core';\nimport {\n CalendarAdd as CalendarAddIcon,\n CalendarEdit as CalendarEditIcon,\n Folder as FolderIcon,\n Users as UsersIcon,\n} from 'src/components/CustomIcon';\nimport clsx from 'clsx';\n\nimport { FileCopyOutlined, InfoOutlined } from '@material-ui/icons';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useStyles } from './styles';\nimport {\n AdvancedSearchFields,\n DocumentType,\n ExtraDocumentType,\n} from '../../models/documents.model';\nimport { RootState } from '../../redux/reducers';\nimport { advancedSearchInitialState } from '../../redux/reducers/documents.reducer';\nimport { DateDropdownType } from '../DateDropdown/DateDropdown';\nimport { DateTimeFormats, FormatDate } from '../../helpers/dateTimeFormats';\nimport documentsActions from '../../redux/actions/documents.actions';\n\ntype FilterChipProps = {\n variant: AdvancedSearchFields;\n};\nconst FilterChip = ({ variant }: FilterChipProps): JSX.Element => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n const { advancedSearch } = useSelector((state: RootState) => state.documentsStore);\n\n const isActive =\n JSON.stringify(advancedSearch[variant]) !== JSON.stringify(advancedSearchInitialState[variant]);\n\n const properties = {\n [AdvancedSearchFields.TYPE]: {\n label: t('advancedSearch.fields.documentType.label'),\n icon: ,\n },\n [AdvancedSearchFields.NAME]: {\n label: t('advancedSearch.fields.name.label'),\n icon:
    ,\n },\n [AdvancedSearchFields.STATUS]: {\n label: t('advancedSearch.fields.status.label'),\n icon: ,\n },\n [AdvancedSearchFields.DATE_CREATED]: {\n label: t('advancedSearch.fields.dateCreated.label'),\n icon: ,\n },\n [AdvancedSearchFields.DATE_MODIFIED]: {\n label: t('advancedSearch.fields.dateModified.label'),\n icon: ,\n },\n [AdvancedSearchFields.RECIPIENTS]: {\n label: t('advancedSearch.fields.recipients.label'),\n icon: ,\n },\n [AdvancedSearchFields.LOCATION]: {\n label: t('advancedSearch.fields.location.label'),\n icon: ,\n },\n };\n\n const activeText = (): string | JSX.Element => {\n switch (variant) {\n case AdvancedSearchFields.TYPE: {\n const count = advancedSearch[variant].length - 1;\n const countText = count > 0 ? ` +${count}` : '';\n const [firstEl] = advancedSearch[variant];\n if (firstEl === ExtraDocumentType.FOLDER) {\n return t('common.folders') + countText;\n }\n if (firstEl === DocumentType.DSL) {\n return t('common.certificates') + countText;\n }\n if (firstEl === DocumentType.DRIVE) {\n return t('common.drive') + countText;\n }\n return t('common.esign') + countText;\n }\n\n case AdvancedSearchFields.STATUS: {\n const count = advancedSearch[variant].length - 1;\n const countText = count > 0 ? ` +${count}` : '';\n const [status] = advancedSearch[variant];\n return t(`statuses.${status}.short`) + countText;\n }\n case AdvancedSearchFields.RECIPIENTS: {\n const count = advancedSearch[variant].length - 1;\n const countText = count > 0 ? ` +${count}` : '';\n const [firstRecipient] = advancedSearch[variant];\n return (firstRecipient._name || firstRecipient.email) + countText;\n }\n\n case AdvancedSearchFields.LOCATION: {\n const location = advancedSearch[variant];\n if (location === null) return '';\n\n return location.namePath;\n }\n case AdvancedSearchFields.DATE_CREATED:\n case AdvancedSearchFields.DATE_MODIFIED: {\n const { type, from, to } = advancedSearch[variant];\n switch (type) {\n case DateDropdownType.ANY:\n return t('advancedSearch.dateOptions.anyTime');\n case DateDropdownType.TODAY:\n return t('advancedSearch.dateOptions.today');\n case DateDropdownType.YESTERDAY:\n return t('advancedSearch.dateOptions.yesterday');\n case DateDropdownType.LAST_7_DAYS:\n return t('advancedSearch.dateOptions.last7Days');\n case DateDropdownType.LAST_30_DAYS:\n return t('advancedSearch.dateOptions.last30Days');\n\n default:\n return (\n <>\n \n {` - `}\n \n \n );\n }\n }\n\n case AdvancedSearchFields.NAME:\n default:\n return '';\n }\n };\n\n const onReset = (): void => {\n dispatch(documentsActions.updateAdvancedSearch(variant, advancedSearchInitialState[variant]));\n dispatch(\n documentsActions.updateDraftAdvancedSearch(variant, advancedSearchInitialState[variant])\n );\n };\n\n return (\n {\n e.stopPropagation();\n onReset();\n }\n : undefined\n }\n label={\n \n {isActive ? activeText() : properties[variant].label}\n {!isActive &&
    }\n \n }\n />\n );\n};\n\nexport default FilterChip;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ transitions }) =>\n createStyles({\n wrapper: {\n position: 'relative',\n display: 'flex',\n marginLeft: -24,\n marginRight: -24,\n paddingLeft: 24,\n paddingRight: 24,\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n },\n scrollContent: {\n overflow: 'hidden',\n },\n leftArrow: {\n position: 'absolute',\n left: 12,\n zIndex: 1,\n transition: transitions.create(['color', 'transform', 'opacity'], {\n duration: transitions.duration.short,\n }),\n },\n rightArrow: {\n position: 'absolute',\n right: 12,\n zIndex: 1,\n transition: transitions.create(['color', 'transform', 'opacity'], {\n duration: transitions.duration.short,\n }),\n },\n disabledArrow: {\n opacity: 0,\n zIndex: -1,\n },\n arrow: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n width: 24,\n zIndex: 1,\n },\n }),\n { index: 0 }\n);\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Fab } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\ntype ScrollableXaxisProps = {\n children: JSX.Element;\n};\n\nconst ScrollableXaxis = ({ children }: ScrollableXaxisProps): JSX.Element => {\n const classes = useStyles();\n const elementRef = useRef(null);\n const [leftArrowDisabled, setLeftArrowDisabled] = useState(true);\n const [rightArrowDisabled, setRightArrowDisabled] = useState(true);\n const element = elementRef.current as HTMLDivElement | null;\n\n const updateArrows = useCallback(() => {\n if (element === null) return;\n\n if (element.scrollLeft === 0) {\n setLeftArrowDisabled(true);\n } else {\n setLeftArrowDisabled(false);\n }\n\n if (element.clientWidth + element.scrollLeft === element.scrollWidth) {\n setRightArrowDisabled(true);\n } else {\n setRightArrowDisabled(false);\n }\n }, [element]);\n const handleHorizantalScroll = (\n element: HTMLDivElement | null,\n speed: number,\n distance: number,\n step: number\n ) => {\n let scrollAmount = 0;\n const slideTimer = setInterval(() => {\n if (element === null) return;\n\n element.scrollLeft += step;\n scrollAmount += Math.abs(step);\n if (scrollAmount >= distance) {\n clearInterval(slideTimer);\n }\n updateArrows();\n }, speed);\n };\n\n useEffect(() => {\n updateArrows();\n window.addEventListener('resize', updateArrows);\n return () => window.removeEventListener('resize', updateArrows);\n }, [element?.scrollWidth, updateArrows]);\n\n return (\n
    \n {\n handleHorizantalScroll(elementRef.current, 25, 100, -10);\n }}\n >\n {`<`}\n \n
    \n {children}\n
    \n {\n handleHorizantalScroll(elementRef.current, 25, 100, 10);\n }}\n >\n {`>`}\n \n
    \n );\n};\n\nexport default ScrollableXaxis;\n","import React, { MouseEvent, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport moment from 'moment/moment';\nimport { Button, Typography } from '@material-ui/core';\nimport { ClearOutlined } from '@material-ui/icons';\nimport { useStyles } from './styles';\nimport FilterChip from './FilterChip';\nimport {\n AdvancedSearchFields,\n areAdvancedSearchObjectsDifferent,\n DocumentStatus,\n DocumentType,\n ExtraDocumentType,\n} from '../../models/documents.model';\nimport DocumentTypeDropdown from '../DocumentTypeDropdown/DocumentTypeDropdown';\nimport { RootState } from '../../redux/reducers';\nimport documentsActions from '../../redux/actions/documents.actions';\nimport DocumentStatusDropdown from '../DocumentStatusDropdown/DocumentStatusDropdown';\nimport { ResponsiveDateRangePicker } from '../index';\nimport { DateDropdownType } from '../DateDropdown/DateDropdown';\nimport RecipientsDropdown from '../RecipientsDropdown/RecipientsDropdown';\nimport { UserManagerPerson } from '../../models/documentUsersManagement.model';\nimport DirectoryExplorer from '../DirectoryExplorer/DirectoryExplorer';\nimport { IdentitySelector } from '../../redux/selectors/identity.selector';\nimport ScrollableXaxis from '../ScrollableXaxis/ScrollableXaxis';\nimport { advancedSearchInitialState } from '../../redux/reducers/documents.reducer';\n\ntype DirectoryExplorerReturnType = {\n id: string;\n name: string;\n};\nconst AdvancedSearchFilterBar = (): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const classes = useStyles();\n const clearRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = useState(null);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const { advancedSearch, folderPath } = useSelector((state: RootState) => state.documentsStore);\n const showClearButton = areAdvancedSearchObjectsDifferent(\n advancedSearch,\n advancedSearchInitialState,\n [AdvancedSearchFields.NAME]\n );\n const dateCreated = advancedSearch[AdvancedSearchFields.DATE_CREATED];\n const currentLocation = advancedSearch[AdvancedSearchFields.LOCATION];\n const dateModified = advancedSearch[AdvancedSearchFields.DATE_MODIFIED];\n\n const onDocumentTypeSubmit = (types: Array) => {\n dispatch(documentsActions.updateAdvancedSearch(AdvancedSearchFields.TYPE, types));\n dispatch(documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.TYPE, types));\n };\n const onDocumentStatusSubmit = (statuses: DocumentStatus[]) => {\n dispatch(documentsActions.updateAdvancedSearch(AdvancedSearchFields.STATUS, statuses));\n dispatch(documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.STATUS, statuses));\n };\n\n const onDateCreatedSubmit = (newDate: Array) => {\n dispatch(\n documentsActions.updateAdvancedSearch(AdvancedSearchFields.DATE_CREATED, {\n type: DateDropdownType.BETWEEN,\n from: newDate[0],\n to: newDate[1],\n })\n );\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.DATE_CREATED, {\n type: DateDropdownType.BETWEEN,\n from: newDate[0],\n to: newDate[1],\n })\n );\n };\n const onDateModifiedSubmit = (newDate: Array) => {\n dispatch(\n documentsActions.updateAdvancedSearch(AdvancedSearchFields.DATE_MODIFIED, {\n type: DateDropdownType.BETWEEN,\n from: newDate[0],\n to: newDate[1],\n })\n );\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.DATE_MODIFIED, {\n type: DateDropdownType.BETWEEN,\n from: newDate[0],\n to: newDate[1],\n })\n );\n };\n\n const onRecipientsSubmit = (recipients: UserManagerPerson[]) => {\n dispatch(documentsActions.updateAdvancedSearch(AdvancedSearchFields.RECIPIENTS, recipients));\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.RECIPIENTS, recipients)\n );\n };\n const closeLocationExplorer = () => {\n setAnchorEl(null);\n };\n\n const handleLocationClick = (e: MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const handleLocationChange = (value: DirectoryExplorerReturnType) => {\n dispatch(\n documentsActions.updateDraftAdvancedSearch(AdvancedSearchFields.LOCATION, {\n idPath: value.id,\n namePath: value.name,\n })\n );\n dispatch(\n documentsActions.updateAdvancedSearch(AdvancedSearchFields.LOCATION, {\n idPath: value.id,\n namePath: value.name,\n })\n );\n };\n\n const onClearFilters = () => {\n dispatch(documentsActions.clearAdvancedSearch(true));\n };\n\n return (\n <>\n \n {t('advancedSearch.titlePage')}\n \n
    \n \n \n
    \n \n \n \n \n \n \n undefined}\n onApply={onDateCreatedSubmit}\n buttonComponent={}\n />\n undefined}\n onApply={onDateModifiedSubmit}\n buttonComponent={}\n />\n \n \n \n
    \n \n
    \n {anchorEl && (\n ('common.apply')}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n />\n )}\n
    \n
    \n
    \n\n {showClearButton && (\n
    \n }\n onClick={onClearFilters}\n >\n \n {t('common.clearAll')}\n \n \n
    \n )}\n
    \n \n );\n};\n\nexport default AdvancedSearchFilterBar;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n foldersTitle: {\n marginTop: spacing(3),\n marginBottom: spacing(2),\n },\n documentsTitle: {\n marginTop: spacing(3),\n },\n root: {\n '& *': {\n userSelect: 'none',\n '-webkit-user-select': 'none !important' /* Chrome, Opera, Safari */,\n '-moz-user-select': 'none !important' /* Firefox 2+ */,\n '-ms-user-select': 'none !important' /* IE 10+ */,\n },\n },\n }),\n { index: 0 }\n);\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport documentsActions from '../../redux/actions/documents.actions';\nimport usePrevious from '../../helpers/hooks/usePrevious';\nimport { IdentitySelector } from '../../redux/selectors/identity.selector';\n\nconst SearchPageWebsocket = (): JSX.Element | null => {\n const ws = useRef(null);\n const history = useHistory();\n const dispatch = useDispatch();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const { t } = useTranslation();\n const prevState = usePrevious({\n workspaceId,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps,@typescript-eslint/no-explicit-any\n const onWebSocketMessage = (message: any) => {\n if (message.type === 'RESULT') {\n switch (message.code) {\n case 'FOLDER_CREATED': {\n dispatch(documentsActions.setSelectedFolders([message.data.result.id]));\n history.push('/drive');\n\n break;\n }\n default:\n console.warn(`Unknown code [${message.code}]`, message);\n break;\n }\n } else if (message.type === 'ERROR') {\n switch (message.code) {\n default:\n // eslint-disable-next-line no-case-declarations\n const resultCode = message?.data?.result?.code;\n // eslint-disable-next-line no-case-declarations\n const messagePart = resultCode ? `_${resultCode}` : '';\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n t('snackbars.common.errorTitle'),\n t(`drivePage.action.error.${message.code}${messagePart}`)\n )\n );\n break;\n }\n } else {\n console.warn(`Unknown action type [${message.type}]`, message);\n }\n };\n\n const subscribe = useCallback(\n (workspaceId: string) => {\n ws.current = WebSocketHelper.subscribe(\n 'document-indexing-service',\n `workspaces/${workspaceId}`,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (message: any) => {\n onWebSocketMessage(message);\n }\n );\n },\n [onWebSocketMessage]\n );\n\n useEffect(() => {\n if (workspaceId && workspaceId !== prevState?.workspaceId) {\n subscribe(workspaceId);\n }\n }, [subscribe, workspaceId, prevState]);\n\n useEffect(() => {\n if (workspaceId) {\n subscribe(workspaceId);\n }\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, [workspaceId, prevState]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport default SearchPageWebsocket;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Theme, Typography, useMediaQuery } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DataTable, FullPageLoader } from 'src/components';\nimport { RootState } from 'src/redux/reducers';\nimport { FileColsConfig, FolderColsConfig } from 'src/helpers/fileAndFolderColsConfig';\nimport {\n AdvancedSearchFields,\n AdvancedSearchType,\n advancedSearchTypeToQuery,\n DocumentItem,\n DocumentStatus,\n DocumentType,\n ExtraDocumentType,\n FolderItem,\n} from 'src/models/documents.model';\nimport { useHistory } from 'react-router-dom';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { RequestStatus } from '../../helpers/reduxReuquest.util';\nimport { DocumentsSelector } from '../../redux/selectors/documents.selector';\nimport AdvancedSearchFilterBar from '../../components/AdvancedSearchFilterBar/AdvancedSearchFilterBar';\nimport { useStyles } from './styles';\nimport usePrevious from '../../helpers/hooks/usePrevious';\nimport SearchPageWebsocket from './SearchPageWebsocket';\n\nconst filterDocuments = (documents: DocumentItem[], search: AdvancedSearchType) => {\n const status = search[AdvancedSearchFields.STATUS];\n\n return documents.filter((doc) => {\n if (\n status.includes(DocumentStatus.READY_FOR_PREVIEW) &&\n !status.includes(DocumentStatus.EDITING) &&\n doc.status === DocumentStatus.EDITING &&\n !doc.documentType.includes(DocumentType.DRIVE)\n )\n return false;\n return true;\n });\n};\n\nconst SearchPage = (): JSX.Element => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const history = useHistory();\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n const foldersColConfig = FolderColsConfig(t);\n const filesColConfig = FileColsConfig(t);\n const [dragMode, setDragMode] = useState(false);\n const [selectedFilesRowName, setSelectedFilesRowName] = useState>([]);\n const [selectedFilesRows, setSelectedFilesRows] = useState>([]);\n const [selectedFolders, setSelectedFolders] = useState([]);\n const searchLocation = useSelector(\n (state: RootState) => state.documentsStore.advancedSearch[AdvancedSearchFields.LOCATION]\n );\n const {\n advancedSearch,\n advancedSearchedDocuments,\n advancedSearchedDocumentsStatus,\n advancedSearchedDocumentsQuery,\n defaultSortKey,\n defaultSortOrder,\n currentFolderId,\n } = useSelector((state: RootState) => state.documentsStore);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const folders = useSelector(DocumentsSelector.selectAdvancedSearchFolders);\n const folderIsRoot = searchLocation && searchLocation.namePath === '/';\n const isLoadingMore = useRef(false);\n const [sortKey, setSortKey] = useState(defaultSortKey);\n const [sortOrder, setSortOrder] = useState(defaultSortOrder);\n const selectedDocumentTypes = advancedSearch[AdvancedSearchFields.TYPE];\n const hideDocuments =\n selectedDocumentTypes.length === 1 && selectedDocumentTypes.includes(ExtraDocumentType.FOLDER);\n const hideFolders =\n selectedDocumentTypes.length > 0 && !selectedDocumentTypes.includes(ExtraDocumentType.FOLDER);\n\n const isLoadingMoreFiles =\n advancedSearchedDocumentsStatus === RequestStatus.PENDING &&\n advancedSearchedDocumentsQuery.hasMoreDocuments;\n const isLoadingFiles = advancedSearchedDocumentsStatus === RequestStatus.PENDING;\n const allLoaded = !isLoadingFiles || isLoadingMoreFiles;\n const [offset, setOffset] = useState(0);\n const filteredDocuments = filterDocuments(advancedSearchedDocuments, advancedSearch);\n const noFoldersConfig = {\n label: t('drivePage.foldersTable.noItems'),\n };\n const prevState = usePrevious({\n offset,\n advancedSearchedDocuments,\n });\n const onFolderClick = (row: FolderItem, isDoubleClick: boolean) => {\n if (smallScreen) {\n history.push(`/drive/${row.id}`);\n } else if (!isDoubleClick) {\n setDragMode(true);\n setSelectedFilesRowName([]);\n setSelectedFilesRows([]);\n } else {\n setSelectedFolders([]);\n history.push(`/drive/${row.id}`);\n }\n };\n\n const onLoadMoreFiles = () => {\n if (\n advancedSearchedDocumentsStatus !== RequestStatus.PENDING &&\n advancedSearchedDocumentsQuery.hasMoreDocuments &&\n !isLoadingMore.current\n ) {\n setOffset(offset + 20);\n isLoadingMore.current = true;\n }\n };\n\n const goToDocument = (row: DocumentItem) => {\n if (searchLocation)\n localStorage.setItem(\n 'createdDocumentFolderId',\n folderIsRoot ? 'root' : searchLocation.idPath\n );\n\n if (row?.documentType.includes('dsl')) {\n history.push(`/certificate/${row.id}`);\n } else {\n history.push(`/document/${row.id}`);\n }\n };\n\n const onFileRowSelection = (\n row: DocumentItem,\n callback: (e: string[]) => void = () => undefined\n ) => {\n const newRowsId = Array.from(selectedFilesRows);\n const newRowsName = Array.from(selectedFilesRowName);\n if (selectedFilesRows.indexOf(row.id) !== -1) {\n newRowsId.splice(newRowsId.indexOf(row.id), 1);\n newRowsName.splice(newRowsName.indexOf(row.name), 1);\n } else {\n newRowsId.push(row.id);\n newRowsName.push(row.name);\n }\n callback(newRowsId);\n setSelectedFilesRows(newRowsId);\n setSelectedFilesRowName(newRowsName);\n setSelectedFolders([]);\n };\n const loadFilesRows = useCallback(\n (offset: number) => {\n if (workspaceId) {\n dispatch(\n documentsActions.fetchAdvancedSearchedDocuments({\n workspaceId,\n searchQuery: advancedSearchTypeToQuery(advancedSearch, offset, sortKey, sortOrder),\n })\n );\n }\n },\n [advancedSearch, dispatch, sortKey, sortOrder, workspaceId]\n );\n\n useEffect(() => {\n if (offset > 0 && offset !== prevState?.offset) {\n loadFilesRows(offset);\n }\n }, [loadFilesRows, offset, prevState]);\n\n useEffect(() => {\n if (advancedSearchedDocuments.length !== prevState?.advancedSearchedDocuments?.length) {\n isLoadingMore.current = false;\n }\n }, [advancedSearchedDocuments, prevState?.advancedSearchedDocuments]);\n\n useEffect(() => {\n if (advancedSearch && workspaceId) {\n const searchName = advancedSearch[AdvancedSearchFields.NAME];\n\n loadFilesRows(0);\n dispatch(\n documentsActions.fetchAdvancedSearchedFolders({\n workspaceId,\n folderId: searchLocation?.idPath,\n searchQuery: encodeURIComponent(\n JSON.stringify({\n limit: 100,\n includeRoot: false,\n ...(searchName.length > 0 && { name: searchName }),\n })\n ),\n })\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchLocation, workspaceId, advancedSearch, sortKey, sortOrder]);\n\n // Set storage current folder Id\n useEffect(() => {\n if (currentFolderId) {\n localStorage.setItem('currentFolderId', currentFolderId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId, currentFolderId]);\n\n useEffect(() => {\n dispatch(documentsActions.getFolderTree(workspaceId, 'root'));\n\n return () => {\n dispatch(documentsActions.clearAdvancedSearch());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
    \n \n \n {!hideFolders && (\n <>\n \n {t('drivePage.foldersTable.title')}\n \n {\n onFolderClick(row, false);\n }}\n selectable\n onDblClick={(row) => {\n onFolderClick(row, true);\n }}\n selectedRows={selectedFolders}\n isLoading={false}\n defaultIcon=\"folder\"\n tileRows\n smallScreen={smallScreen}\n disableHeader\n noItems={noFoldersConfig}\n />\n \n )}\n\n {!hideDocuments && (\n <>\n \n {t('drivePage.documentsTable.title')}\n \n {\n if (smallScreen) {\n goToDocument(row);\n } else {\n onFileRowSelection(row);\n }\n }}\n onDblClick={(row) => {\n if (!smallScreen) {\n goToDocument(row);\n }\n }}\n onLongPress={(row) => {\n if (smallScreen) {\n onFileRowSelection(row);\n }\n }}\n onDrop={() => undefined}\n selectedRows={selectedFilesRows}\n sortBy={sortKey}\n sortOrder={sortOrder}\n onChangeSort={({ sortOrder, sortKey }) => {\n setSortKey(sortKey);\n setSortOrder(sortOrder);\n }}\n isLoading={isLoadingFiles}\n isLoadingMore={isLoadingFiles}\n hasMoreItems={advancedSearchedDocumentsQuery.hasMoreDocuments} // TODO: remove !\n paginationType=\"infinite\"\n defaultIcon=\"file\"\n smallScreen={smallScreen}\n disableHeader={smallScreen}\n onLoadMore={() => {\n onLoadMoreFiles();\n }}\n noItems={{\n label: t('drivePage.documentsTable.noItems'),\n }}\n isDrag\n dragMode={dragMode}\n />\n \n )}\n\n \n
    \n );\n};\n\nexport default SearchPage;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nconst UserComUrlChange = (): null => {\n const location = useLocation();\n\n useEffect(() => {\n if (window.UE) {\n window.UE.pageHit();\n }\n }, [location, location.pathname]);\n\n return null;\n};\n\nexport default UserComUrlChange;\n","import { useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport BillingActions from 'src/redux/actions/billing.actions';\nimport { userComActions } from 'src/redux/actions/userCom.actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { RootState } from 'src/redux/reducers';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { TemplateDocumentType } from 'src/models/documents.model';\nimport { BillingProductType } from 'src/models/billing.model';\n\nconst SubscriptionWatcher = (): null => {\n const dispatch = useDispatch();\n const { search } = useLocation();\n const history = useHistory();\n const urlState = new URLSearchParams(search).get('s');\n const { workspaceWorkflows, workspaceWorkflowsStatus } = useSelector(\n (state: RootState) => state.identityStore,\n undefined\n );\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n\n // Check if workflows fetch is done and if url state 'joinWorkspace' and send userComAction\n useEffect(() => {\n if (\n workspaceWorkflowsStatus === RequestStatus.SUCCESS &&\n urlState === 'joinWorkspace' &&\n workspaceId\n ) {\n const activeSubscriptions = [];\n if (workspaceWorkflows.includes(TemplateDocumentType.CERTIFICATES)) {\n activeSubscriptions.push(BillingProductType.Certificates);\n }\n\n if (\n workspaceWorkflows.includes(TemplateDocumentType.DOCUMENT_TO_BE_SIGNED) ||\n workspaceWorkflows.includes(TemplateDocumentType.DURABLE_MEDIA)\n ) {\n activeSubscriptions.push(BillingProductType.EsignDrive);\n }\n userComActions.user.userJoinedWorkspace(activeSubscriptions, workspaceId);\n history.replace({\n search: '',\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceWorkflowsStatus]);\n\n // Fetch subscription info\n useEffect(() => {\n if (workspaceId) {\n dispatch(BillingActions.fetchCustomer(workspaceId));\n dispatch(BillingActions.fetchSubscriptions(workspaceId));\n dispatch(identityActions.fetchWorkspaceWorkflows(workspaceId));\n }\n }, [dispatch, workspaceId]);\n\n return null;\n};\n\nexport default SubscriptionWatcher;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom';\nimport 'src/helpers/i18n';\nimport cookieHelper from 'src/helpers/cookieHelper';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport moment from 'moment';\nimport { SnackbarProvider } from 'notistack';\nimport { DndProvider } from 'react-dnd';\nimport { TouchBackend } from 'react-dnd-touch-backend';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n ContentContainer,\n CreateWorkspace,\n FullPageLoader,\n SnackbarItem,\n TwoFactorModal,\n CertificationCreationModal,\n} from 'src/components';\nimport {\n DocumentActions as DocumentActionsPage,\n DocumentCreator as DocumentCreatorPage,\n JoinToDocument as JoinToDocumentPage,\n Recent as RecentPage,\n UserConfiguration as UserConfigurationPage,\n DrivePage,\n WorkspaceConfiguration as WorkspaceConfigurationPage,\n TransferOwnership as TransferOwnershipPage,\n} from 'src/pages';\n\nimport authActions from 'src/redux/actions/auth.actions';\nimport contactsActions from 'src/redux/actions/contacts.actions';\nimport documentDownloadActions from 'src/redux/actions/documentDownload.actions';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useTranslation } from 'react-i18next';\nimport { AppHeader, AppMenuSidebar, Notifier } from './subcomponents';\nimport { useStyles } from './styles';\nimport SearchPage from '../SearchPage/SearchPage';\nimport UserComUrlChange from './subcomponents/UserComUrlChange/UserComUrlChange';\nimport SubscriptionWatcher from './subcomponents/SubscriptionWatcher/SubscriptionWatcher';\n\nconst snackbarOptions = (optionsString) => {\n if (optionsString === undefined) return {};\n return JSON.parse(optionsString);\n};\n\nconst App = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const { i18n } = useTranslation();\n const { tokenStatus, userProfileRequestStatus, userProfile } = useSelector(\n (state) => state.authStore,\n undefined\n );\n const {\n structure,\n structureStatus,\n workspaceDetails,\n currentIdentity,\n workspacePermissionsStatus,\n } = useSelector((state) => state.identityStore, undefined);\n const { downloadDocuments } = useSelector((state) => state.documentDownloadStore, undefined);\n const { contactsQueue } = useSelector((state) => state.contactsStore, undefined);\n const downloadDocumentSubscriptionIds = useRef([]);\n const [authorized, setAuthorized] = useState(false);\n const [isCreateWorkspaceDialogOpen, setIsCreateWorkspaceDialogOpen] = useState(false);\n const identityIsEmpty = structureStatus === RequestStatus.SUCCESS && structure.length === 0;\n const structureError = structureStatus === RequestStatus.ERROR;\n const identityAndWorkspaceLoaded =\n currentIdentity !== undefined &&\n currentIdentity !== null &&\n workspaceDetails !== undefined &&\n workspaceDetails !== null;\n\n const setCurrentIdentity = () => {\n const workspaceIdUrl = new URLSearchParams(window.location.search).get('workspaceId');\n\n const identityFromLocalStorage = cookieHelper.getCookie('activeIdentity');\n let identityData = false;\n const availableIdentities = structure\n ? structure.filter((structureItem) => structureItem.identity.active)\n : structure;\n\n if (workspaceIdUrl) {\n identityData = availableIdentities.find(\n (item) => workspaceIdUrl && item.workspace.workspaceId === workspaceIdUrl\n );\n }\n\n if (!identityData) {\n availableIdentities.forEach((item) => {\n if (item.identity.identityId === identityFromLocalStorage) {\n identityData = item;\n }\n });\n }\n\n if (!identityData) {\n [identityData] = availableIdentities;\n }\n\n cookieHelper.setCookie('activeIdentity', identityData?.identity?.identityId);\n if (identityData?.workspace) {\n const workspaceId = identityData?.workspace?.workspaceId;\n dispatch(identityActions.getWorkspaceStructure(workspaceId));\n dispatch(contactsActions.initializeContacts(workspaceId));\n dispatch(identityActions.getWorkspacePermissions(workspaceId));\n setIsCreateWorkspaceDialogOpen(false);\n } else {\n setIsCreateWorkspaceDialogOpen(true);\n }\n dispatch(identityActions.setCurrentIdentity(identityData));\n };\n\n const getDownloadFileSubscriptionId = (documentId) =>\n downloadDocumentSubscriptionIds.current.find((x) => x.id === documentId);\n\n const handleDocumentDownload = (documentId, message) => {\n if (message?.downloadToken) {\n dispatch(documentDownloadActions.downloadDocumentFile(documentId, message.downloadToken));\n } else {\n console.warn(`Unknown action for document download (${documentId})`);\n }\n\n downloadDocumentUnsubscribe(documentId);\n dispatch(documentDownloadActions.websocketDownloadDocument(documentId));\n };\n\n const downloadDocumentSubscribe = (documentId) => {\n if (getDownloadFileSubscriptionId(documentId) === undefined) {\n downloadDocumentSubscriptionIds.current.push({\n id: documentId,\n subscription: WebSocketHelper.subscribe(\n 'document-service',\n `document/download/${documentId}`,\n (message) => {\n handleDocumentDownload(documentId, message);\n }\n ),\n });\n }\n };\n\n const downloadDocumentUnsubscribe = (documentId) => {\n const subId = getDownloadFileSubscriptionId(documentId);\n if (subId !== undefined) {\n WebSocketHelper.unsubscribe(subId.subscription);\n subId.subscription = false;\n downloadDocumentSubscriptionIds.current.splice(subId, 1);\n }\n };\n\n useEffect(() => {\n dispatch(authActions.checkTokenStatus(['AUTH_USER_GET_PROFILE']));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (tokenStatus === RequestStatus.ERROR) {\n window.location.href = process.env.REACT_APP_AUTH_FRONT_URL;\n } else if (tokenStatus === RequestStatus.SUCCESS) {\n if (!authorized) {\n setAuthorized(true);\n dispatch(identityActions.getUserStructure());\n dispatch(authActions.getUserProfile());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tokenStatus]);\n\n useEffect(() => {\n if (userProfileRequestStatus === RequestStatus.SUCCESS) {\n const cookieLang = cookieHelper.getCookie('lang');\n if (\n i18n.language.toLowerCase() !== userProfile.language.toLowerCase() &&\n cookieLang.toLowerCase() !== i18n.language.toLowerCase()\n ) {\n moment.locale(userProfile.language.toLowerCase());\n i18n.changeLanguage(userProfile.language.toLowerCase()).then();\n }\n if (cookieLang && cookieLang !== '') {\n if (cookieLang.toLowerCase() !== userProfile.language.toLowerCase()) {\n dispatch(authActions.patchLanguage(cookieLang));\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userProfileRequestStatus]);\n\n useEffect(() => {\n if (structureStatus === RequestStatus.SUCCESS) {\n setCurrentIdentity();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [structureStatus]);\n\n useEffect(() => {\n if (contactsQueue.length > 0) {\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n dispatch(contactsActions.getEntities(workspaceId, contactsQueue));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [contactsQueue, currentIdentity]);\n\n useEffect(() => {\n if (\n workspacePermissionsStatus === RequestStatus.IDLE &&\n currentIdentity?.workspace?.workspaceId\n ) {\n dispatch(identityActions.getWorkspacePermissions(currentIdentity?.workspace?.workspaceId));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspacePermissionsStatus, currentIdentity]);\n\n useEffect(() => {\n if (downloadDocuments && downloadDocuments.length > 0) {\n downloadDocuments.forEach((item) => {\n downloadDocumentSubscribe(item);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [downloadDocuments]);\n\n useEffect(() => {\n downloadDocumentSubscriptionIds.current.forEach((subId) => {\n downloadDocumentUnsubscribe(subId.id);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n (\n \n )}\n >\n \n \n
    \n {!authorized ? (\n \n ) : (\n
    \n \n \n\n {identityAndWorkspaceLoaded && (\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 App;\n","import { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport documentDisplayConstants from '../constants/documentDisplay.constants';\nimport documentCoreService from '../services/documentCore.service';\nimport snackbarActions from './snackbar.actions';\nimport i18n from '../../helpers/i18n';\nimport filesModuleService from '../services/filesModule.service';\n\nconst documentDisplayActions = {\n clearDocumentDisplayStore,\n clearFilesAndTokens,\n getDocument,\n getDownloadTokens,\n downloadFiles,\n setActiveFileIndex,\n addEmptyFile,\n websocketUpdateDocument,\n};\n\nfunction getDocument(documentId, service) {\n return (dispatch) => {\n dispatch({ type: documentDisplayConstants.GET_DOCUMENT_REQUEST });\n documentCoreService\n .getDocument(documentId, service)\n .then((response) => {\n dispatch({\n type: documentDisplayConstants.GET_DOCUMENT_SUCCESS,\n data: response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentDisplayConstants.GET_DOCUMENT_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction getDownloadTokens(documentId, index, startPage, page, service) {\n const tokenPromises = [];\n\n for (let i = startPage; i < page; i += 1) {\n tokenPromises.push(documentCoreService.getDownloadToken(documentId, index, i, service));\n }\n\n return (dispatch) => {\n dispatch({ type: documentDisplayConstants.GET_DOWNLOAD_TOKEN_REQUEST });\n Promise.all(tokenPromises)\n .then((response) => {\n dispatch({\n type: documentDisplayConstants.GET_DOWNLOAD_TOKEN_SUCCESS,\n data: response,\n index,\n });\n })\n .catch(() => {\n dispatch({ type: documentDisplayConstants.GET_DOWNLOAD_TOKEN_FAILURE });\n });\n };\n}\n\nfunction downloadFiles(tokens, index) {\n const downloadFilePromises = tokens.map((token) => filesModuleService.downloadFile(token.token));\n return (dispatch) => {\n dispatch({ type: documentDisplayConstants.DOWNLOAD_FILE_REQUEST });\n Promise.all(downloadFilePromises)\n .then((response) => {\n dispatch({\n type: documentDisplayConstants.DOWNLOAD_FILE_SUCCESS,\n folders: response,\n index,\n });\n })\n .catch(() => {\n dispatch({ type: documentDisplayConstants.DOWNLOAD_FILE_FAILURE });\n });\n };\n}\n\nfunction addEmptyFile(index) {\n return { type: documentDisplayConstants.ADD_EMPTY_FILE, index };\n}\n\nfunction setActiveFileIndex(index) {\n return { type: documentDisplayConstants.SET_ACTIVE_FILE_INDEX, index };\n}\n\nfunction clearFilesAndTokens(index) {\n return { type: documentDisplayConstants.CLEAR_FILES_AND_TOKENS, index };\n}\n\nfunction clearDocumentDisplayStore() {\n return { type: documentDisplayConstants.CLEAR_DOCUMENT_DISPLAY_STORE };\n}\n\nfunction websocketUpdateDocument(documentData) {\n return { type: documentDisplayConstants.WS_UPDATE_DOCUMENT, documentData };\n}\n\nexport default documentDisplayActions;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { DocumentRole } from 'src/models/document.model';\nimport documentDSLService from 'src/redux/services/documentDSL.service';\nimport documentInvitiationConstants from '../constants/documentInvitiation.constants';\nimport documentInvitiationsService from '../services/documentInvitations.service';\nimport documentManagementConstants from '../constants/documentManagement.constants';\nimport snackbarActions from './snackbar.actions';\nimport identityService from '../services/identity.service';\nimport documentCoreService from '../services/documentCore.service';\nimport { isMail } from '../../helpers/globalUtils';\nimport identityActions from './identity.actions';\nimport { documentUsersManagerConstants } from '../constants/documentUsersManager.constants';\n\nconst genericErrorHelper = (msg) =>\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n msg\n );\n\nconst getDocumentSigners = (documentId, service) => (dispatch) => {\n dispatch({ type: documentInvitiationConstants.FETCH_DOCUMENT_SIGNERS_REQUEST });\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_REQUEST });\n\n documentInvitiationsService\n .getDocumentSigners(documentId, service)\n .then((response) => {\n if (response) {\n const documentSigners = response?.data?.data?.ids;\n const isOrderSignificant = response?.data?.data?.isOrderSignificant;\n const requiredSignersCount = response?.data?.data?.requiredSignersCount;\n // Provide data to new user manager reducer\n dispatch({\n type: documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_SUCCESS,\n payload: {\n documentSigners,\n isOrderSignificant,\n requiredSignersCount,\n },\n });\n dispatch({\n type: documentManagementConstants.UPDATE_DOCUMENT_SIGNERS,\n signers: documentSigners,\n });\n dispatch({\n type: documentInvitiationConstants.FETCH_DOCUMENT_SIGNERS_SUCCESS,\n payload: {\n documentSigners,\n isOrderSignificant,\n requiredSignersCount,\n },\n });\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.FETCH_DOCUMENT_SIGNERS_ERROR });\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_SIGNERS_FAILURE });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsFetchError')));\n });\n};\n\nconst replaceDocumentSigners = (documentId, isOrderSignificant, requiredSignersCount, ids) => (\n dispatch\n) => {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_SIGNERS_REQUEST });\n documentInvitiationsService\n .replaceDocumentSigners(documentId, isOrderSignificant, requiredSignersCount, ids)\n .then((response) => {\n if (response) {\n const txn = response?.data?.data?.txn;\n if (txn) {\n identityService\n .sendTransaction(txn)\n .then((response) => {\n if (response) {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_SIGNERS_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsSendSuccess')\n )\n );\n setTimeout(() => {\n dispatch(documentInvitationActions.getDocumentSigners(documentId));\n }, 5000);\n }\n })\n .catch((error) => {\n dispatch({\n type: documentInvitiationConstants.REPLACE_DOCUMENT_SIGNERS_ERROR,\n error,\n });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsSendError')));\n });\n }\n }\n })\n .catch((error) => {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_SIGNERS_ERROR, error });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsSendError')));\n });\n};\n\n// Action needed to update signers count only.\nconst updateSignersCount = (\n documentId,\n isOrderSignificant,\n requiredSignersCount,\n ids,\n callback\n) => (dispatch) => {\n dispatch({ type: documentInvitiationConstants.UPDATE_SIGNERS_COUNT_REQUEST });\n documentInvitiationsService\n .replaceDocumentSigners(documentId, isOrderSignificant, requiredSignersCount, ids)\n .then((response) => {\n if (response) {\n const txn = response?.data?.data?.txn;\n if (txn) {\n identityService\n .sendTransaction(txn)\n .then((response) => {\n if (response) {\n // Updating blockchain takes a while, that's why timeout\n setTimeout(() => {\n callback();\n dispatch({ type: documentInvitiationConstants.UPDATE_SIGNERS_COUNT_SUCCESS });\n }, 8000);\n }\n })\n .catch((error) => {\n dispatch({\n type: documentInvitiationConstants.UPDATE_SIGNERS_COUNT_ERROR,\n error,\n });\n });\n }\n }\n })\n .catch((error) => {\n dispatch({ type: documentInvitiationConstants.UPDATE_SIGNERS_COUNT_ERROR, error });\n });\n};\n\nconst getDocumentRoleTypes = (documentId, service) => (dispatch) => {\n dispatch({ type: documentInvitiationConstants.FETCH_DOCUMENT_ROLES_TYPES_REQUEST });\n documentCoreService\n .getDocumentRoleTypes(documentId, service)\n .then((response) => {\n dispatch({\n type: documentInvitiationConstants.FETCH_DOCUMENT_ROLES_TYPES_SUCCESS,\n payload: response.data.collection ? response.data.collection : response.data,\n });\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.FETCH_DOCUMENT_ROLES_TYPES_ERROR });\n });\n};\n\nconst getDocumentRoles = (documentId, roles = [], service) => {\n const membersByRolePromises = roles\n .filter((role) => role !== DocumentRole.SIGNERS)\n .map((role) => documentCoreService.getDocumentMembersByRole(documentId, role, service));\n\n return (dispatch) => {\n dispatch({ type: documentInvitiationConstants.FETCH_DOCUMENT_ROLES_REQUEST });\n Promise.allSettled(membersByRolePromises)\n .then((results) => {\n const fulfilledPromises = results.filter((result) => result.status === 'fulfilled');\n const rejectedPromises = results.filter((result) => result.status === 'rejected');\n let documentRoles = [];\n if (fulfilledPromises?.length > 0) {\n results.forEach((result, index) => {\n if (result.status === 'fulfilled') {\n const roleName = roles.filter((role) => role !== DocumentRole.SIGNERS)[index];\n documentRoles = [\n ...documentRoles,\n ...result.value.data.collection.map((id) => ({\n id,\n role: roleName,\n })),\n ];\n }\n });\n dispatch({\n type: documentInvitiationConstants.FETCH_DOCUMENT_ROLES_SUCCESS,\n documentRoles,\n });\n }\n if (rejectedPromises?.length > 0 && fulfilledPromises.length === 0) {\n dispatch({ type: documentInvitiationConstants.FETCH_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesFetchError')));\n }\n })\n .catch((error) => {\n dispatch({ type: documentInvitiationConstants.FETCH_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(error.code));\n });\n };\n};\n\nconst replaceDocumentRoles = (documentId, documentRoles) => {\n const admins = documentRoles.filter((item) => item.role === DocumentRole.ADMINS);\n const auditors = documentRoles.filter((item) => item.role === DocumentRole.AUDITORS);\n const editors = documentRoles.filter((item) => item.role === DocumentRole.EDITORS);\n const viewers = documentRoles.filter((item) => item.role === DocumentRole.VIEWERS);\n\n const documentRolesPromises = [\n documentInvitiationsService.replaceDocumentRoles(\n documentId,\n DocumentRole.ADMINS,\n admins.map((admin) => admin.id)\n ),\n documentInvitiationsService.replaceDocumentRoles(\n documentId,\n DocumentRole.AUDITORS,\n auditors.map((auditor) => auditor.id)\n ),\n documentInvitiationsService.replaceDocumentRoles(\n documentId,\n DocumentRole.EDITORS,\n editors.map((editor) => editor.id)\n ),\n documentInvitiationsService.replaceDocumentRoles(\n documentId,\n DocumentRole.VIEWERS,\n viewers.map((viewer) => viewer.id)\n ),\n ];\n\n return (dispatch) => {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_ROLES_REQUEST });\n Promise.allSettled(documentRolesPromises)\n .then((results) => {\n const filteredResults = results.filter((result) => result?.value?.data?.data?.txn);\n const fulfilledPromises = filteredResults.filter((result) => result.status === 'fulfilled');\n const rejectedPromises = filteredResults.filter((result) => result.status === 'rejected');\n const txnPromises = filteredResults.map((promise) =>\n identityService.sendTransaction(promise.value.data.data.txn)\n );\n\n if (fulfilledPromises?.length === 0 && rejectedPromises?.length > 0) {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesSendError')));\n }\n\n if (txnPromises?.length > 0) {\n Promise.all(txnPromises)\n .then(() => {\n if (txnPromises.length === filteredResults.length) {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_ROLES_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendSuccess')\n )\n );\n } else {\n dispatch({\n type: documentInvitiationConstants.REPLACE_DOCUMENT_ROLES_PARTIAL_SUCCESS,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendPartialSuccess')\n )\n );\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesSendError')));\n });\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.REPLACE_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesSendError')));\n });\n };\n};\n\nconst inviteRolesByMail = (documentId, users, isCertificate) => {\n let invitationPromises;\n if (isCertificate) {\n invitationPromises = users.map((user) =>\n documentDSLService.inviteRoleByMail(\n documentId,\n user?.role || DocumentRole.SIGNERS,\n isMail(user.name) ? user.name : user.email\n )\n );\n } else {\n invitationPromises = users.map((user) =>\n documentInvitiationsService.inviteRoleByMail(\n documentId,\n user?.role || DocumentRole.SIGNERS,\n user.name\n )\n );\n }\n\n return (dispatch) => {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_REQUEST });\n Promise.allSettled(invitationPromises)\n .then((results) => {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_SUCCESS, results });\n const fulfilledPromises = results.filter((result) => result.status === 'fulfilled');\n const rejectedPromises = results.filter((result) => result.status === 'rejected');\n const txnPromises = fulfilledPromises.map((promise) => {\n if (isCertificate) {\n return identityService.sendTransaction(promise?.value?.data?.data?.collection?.[0].txn);\n }\n return identityService.sendTransaction(promise?.value?.data?.data?.txn);\n });\n const emailsSend = fulfilledPromises.map(\n (rejectedPromise) => ` ${JSON.parse(rejectedPromise.value.config.data)?.email}`\n );\n\n if (fulfilledPromises?.length === 0 && rejectedPromises?.length > 0) {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n }\n\n Promise.all(txnPromises)\n .then(() => {\n if (txnPromises.length === results.length) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsEmailsSuccess')\n )\n );\n } else {\n dispatch(\n snackbarActions.enqueueSnackbar(\n 'info',\n i18n.t('snackbars.common.infoTitle'),\n `${i18n.t('inviteToDocument.invitationsEmailsInfo')} ${emailsSend.map(\n (item) => item\n )}.`\n )\n );\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n });\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n });\n };\n};\n\nconst deleteRolesByMail = (documentId, users) => {\n const deletionPromises = users.map((user) =>\n documentInvitiationsService.deleteRoleByMail(\n documentId,\n user?.role || DocumentRole.SIGNERS,\n user.email\n )\n );\n\n return (dispatch) => {\n dispatch({ type: documentInvitiationConstants.DELETE_USERS_MAIL_INVITATION_REQUEST });\n Promise.allSettled(deletionPromises)\n .then((results) => {\n dispatch({\n type: documentInvitiationConstants.DELETE_USERS_MAIL_INVITATION_SUCCESS,\n results,\n });\n const fulfilledPromises = results.filter((result) => result.status === 'fulfilled');\n const rejectedPromises = results.filter((result) => result.status === 'rejected');\n\n if (fulfilledPromises?.length === 0 && rejectedPromises?.length > 0) {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n }\n\n /*\n * TODO: Restore when functionality will be introduced to blockchain [LOBDS-179, LOBB-170]\n * */\n /* const txnPromises = fulfilledPromises.map((promise) =>\n identityService.sendTransaction(promise?.value?.data?.data?.txn)\n );\n Promise.all(txnPromises)\n .then(() => {})\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n }); */\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n });\n };\n};\n\nconst getWorkspaceEntities = (workspaceId, entityName, limit) => (dispatch) => {\n dispatch({ type: documentInvitiationConstants.GET_WORKSPACE_ENTITIES_REQUEST });\n identityService\n .fetchWorkspaceEntities(workspaceId, entityName, limit)\n .then((response) => {\n dispatch({\n type: documentInvitiationConstants.GET_WORKSPACE_ENTITIES_SUCCESS,\n data: response.data.collection,\n });\n })\n .catch((error) => {\n dispatch({ type: documentInvitiationConstants.GET_WORKSPACE_ENTITIES_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst downloadTransferOwnershipPDF = (documentId) => (dispatch) => {\n dispatch({ type: documentInvitiationConstants.DOWNLOAD_TRANSFER_OWNERSHIP_PDF_REQUEST });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.downloadDocumentToast')\n )\n );\n documentDSLService\n .generateHolderInvitationToken(documentId)\n .then((response) => {\n if (response.data.data.txn) {\n dispatch(identityActions.sendTransactionFromNewDocument(response.data.data.txn));\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitiationConstants.DOWNLOAD_TRANSFER_OWNERSHIP_PDF_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsFetchError')));\n });\n};\n\nconst clearStore = () => ({ type: documentInvitiationConstants.CLEAR_DOCUMENT_INVITATIONS_STORE });\n\nconst documentInvitationActions = {\n getDocumentSigners,\n replaceDocumentSigners,\n updateSignersCount,\n getDocumentRoles,\n getDocumentRoleTypes,\n replaceDocumentRoles,\n inviteRolesByMail,\n deleteRolesByMail,\n getWorkspaceEntities,\n downloadTransferOwnershipPDF,\n clearStore,\n};\n\nexport default documentInvitationActions;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst moduleName = 'blockchain-explorer';\n\nconst blockchainExplorerService = {\n getDocumentCard,\n};\n\nfunction getDocumentCard(documentId, language) {\n return axios\n .get(`/rest/${moduleName}/document_card/${documentId}`, {\n params: { lang: language },\n responseType: 'blob',\n })\n .then((response) => response)\n .catch((error) => parseError(error));\n}\n\nexport default blockchainExplorerService;\n","import i18n from 'src/helpers/i18n';\nimport cookieHelper from 'src/helpers/cookieHelper';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport documentManagementConstants from '../constants/documentManagement.constants';\nimport documentCoreService from '../services/documentCore.service';\nimport blockchainExplorerService from '../services/blockchainExplorer.service';\nimport identityActions from './identity.actions';\nimport snackbarActions from './snackbar.actions';\nimport { documentUsersManagerConstants } from '../constants/documentUsersManager.constants';\n\nconst documentManagementActions = {\n renameDocument,\n signDocument,\n rejectDocument,\n getHistoryDocument,\n reloadDocumentHistory,\n getDocumentMembers,\n getDocumentInvitations,\n getDocumentMembersByRole,\n getSignatures,\n getDocumentCard,\n websocketUpdate,\n clearDocumentHistory,\n clearDocumentManagementStore,\n};\n\nfunction renameDocument({ documentId, name, callbackOnSuccess, service }) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.RENAME_DOCUMENT_REQUEST });\n documentCoreService\n .renameDocument(documentId, name, service)\n .then(() => {\n dispatch({\n type: documentManagementConstants.RENAME_DOCUMENT_SUCCESS,\n name,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('documentActions.renameDocument.toast.success')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.RENAME_DOCUMENT_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction signDocument(documentId, callbackOnSuccess, invalidSignersCountCallback) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.SIGN_DOCUMENT_REQUEST });\n documentCoreService\n .signDocument(documentId)\n .then((response) => {\n dispatch({\n type: documentManagementConstants.SIGN_DOCUMENT_SUCCESS,\n data: response.data,\n });\n dispatch(identityActions.sendTransactionFromNewDocument(response.data.txn));\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.signDocument.toast.commissioned')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch((error) => {\n if (error.code === 'INVALID_SIGNERS_COUNT') {\n // callback for updating signers count\n invalidSignersCountCallback();\n } else {\n dispatch({ type: documentManagementConstants.SIGN_DOCUMENT_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n }\n });\n };\n}\n\nfunction rejectDocument(documentId, reason, callbackOnSuccess) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.REJECT_DOCUMENT_REQUEST });\n documentCoreService\n .rejectDocument(documentId, reason)\n .then((response) => {\n dispatch({\n type: documentManagementConstants.REJECT_DOCUMENT_SUCCESS,\n data: response.data,\n });\n dispatch(identityActions.sendTransactionFromNewDocument(response.data.txn));\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.rejectDocument.toast.commissioned')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.REJECT_DOCUMENT_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction getHistoryDocument({\n documentId,\n workspaceId,\n limit,\n offset,\n performedAction,\n rangeDate,\n service,\n}) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.GET_HISTORY_DOCUMENT_REQUEST });\n documentCoreService\n .getHistoryDocument(\n documentId,\n workspaceId,\n limit,\n offset,\n performedAction,\n rangeDate,\n service\n )\n .then((response) => {\n dispatch({\n type: documentManagementConstants.GET_HISTORY_DOCUMENT_SUCCESS,\n history: response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.GET_HISTORY_DOCUMENT_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction reloadDocumentHistory() {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.RELOAD_DOCUMENT_HISTORY });\n };\n}\n\nfunction getDocumentMembers(documentId, service) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_MEMBERS_REQUEST });\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_REQUEST });\n documentCoreService\n .getDocumentMembers(documentId, service)\n .then((response) => {\n // Provide data to new user manager reducer\n dispatch({\n type: documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_SUCCESS,\n payload: response.data.collection ? response.data.collection : response.data,\n });\n dispatch({\n type: documentManagementConstants.GET_DOCUMENT_MEMBERS_SUCCESS,\n members: response.data.collection ? response.data : { collection: response.data },\n });\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_MEMBERS_FAILURE });\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_MEMBERS_FAILURE });\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction getDocumentInvitations(documentId, service) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_INVITATIONS_REQUEST });\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_REQUEST });\n documentCoreService\n .getDocumentInvitations(documentId, service)\n .then((response) => {\n // Provide data to new user manager reducer\n dispatch({\n type: documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_SUCCESS,\n payload: response.data.collection,\n });\n dispatch({\n type: documentManagementConstants.GET_DOCUMENT_INVITATIONS_SUCCESS,\n members: response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_INVITATIONS_FAILURE });\n dispatch({ type: documentUsersManagerConstants.FETCH_DOCUMENT_INVITATIONS_FAILURE });\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction getDocumentMembersByRole(documentId, role, service) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_MEMBERS_BY_ROLE_REQUEST });\n documentCoreService\n .getDocumentMembersByRole(documentId, role, service)\n .then((response) => {\n dispatch({\n type: documentManagementConstants.GET_DOCUMENT_MEMBERS_BY_ROLE_SUCCESS,\n roleType: role,\n members: response.data?.ids\n ? {\n collection: response.data?.ids || [],\n totalRowCount: response.data?.ids.length || 0,\n }\n : response.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_MEMBERS_BY_ROLE_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction getSignatures(documentId) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.GET_SIGNATURES_REQUEST });\n documentCoreService\n .getSignatures(documentId)\n .then((response) => {\n dispatch({\n type: documentManagementConstants.GET_SIGNATURES_SUCCESS,\n signatures: response?.data,\n });\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.GET_SIGNATURES_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction getDocumentCard(documentId) {\n return (dispatch) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_CARD_REQUEST });\n const cookieLang = cookieHelper.getCookie('lang');\n blockchainExplorerService\n .getDocumentCard(documentId, cookieLang)\n .then((response) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_CARD_SUCCESS });\n\n const download = (data, fileName) => {\n // IE11 support\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n const blob = new Blob([data], { type: 'application/pdf' });\n window.navigator.msSaveOrOpenBlob(blob, fileName);\n } else {\n // other browsers\n const url = window.URL.createObjectURL(data);\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n link.click();\n link.remove();\n setTimeout(() => window.URL.revokeObjectURL(url), 100);\n }\n };\n\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n const filename = filenameRegex\n .exec(response.headers['content-disposition'])[1]\n .replaceAll('\"', '');\n\n download(response.data, filename);\n })\n .catch((error) => {\n dispatch({ type: documentManagementConstants.GET_DOCUMENT_CARD_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error}.`\n )\n );\n });\n };\n}\n\nfunction websocketUpdate(data) {\n return { type: documentManagementConstants.WS_UPDATE_DOCUMENT_MANAGEMENT, data };\n}\n\nfunction clearDocumentHistory() {\n return { type: documentManagementConstants.CLEAR_DOCUMENT_HISTORY };\n}\n\nfunction clearDocumentManagementStore() {\n return { type: documentManagementConstants.CLEAR_DOCUMENT_MANAGEMENT_STORE };\n}\n\nexport default documentManagementActions;\n","export const goBack = (history) => {\n const lastMainPage = localStorage.getItem('lastMainPage');\n lastMainPage ? history.push(`/${lastMainPage}`) : history.push('/');\n};\n","const isUserInSpecifiedGroup = (activeIdentity, rolesArray) => {\n if (!activeIdentity) return false;\n const inGroup = activeIdentity?.groups.find(\n (group) => group.active && rolesArray.filter((key) => group?.groupId === key)?.length > 0\n );\n return !!inGroup;\n};\n\nconst hasDocumentAnySigning = (state) =>\n state.documentManagementStore.documentMembers.some((member) => member.status === 'SIGNED');\n\nconst isDocumentAdmin = (state) => {\n const { admins } = state.documentManagementStore.roles;\n const activeIdentity = state.identityStore.currentIdentity;\n\n return (\n admins?.length > 0 &&\n (admins.filter((key) => activeIdentity?.identity?.identityId === key)?.length > 0 ||\n isUserInSpecifiedGroup(activeIdentity, admins))\n );\n};\n\nconst isDocumentEditor = (state) => {\n const { editors } = state.documentManagementStore.roles;\n const activeIdentity = state.identityStore.currentIdentity;\n\n return (\n editors?.length > 0 &&\n (editors.filter((key) => activeIdentity?.identity?.identityId === key)?.length > 0 ||\n isUserInSpecifiedGroup(activeIdentity, editors))\n );\n};\n\nconst isDocumentSigner = (state) => {\n const { signers } = state.documentManagementStore.roles;\n const activeIdentity = state.identityStore.currentIdentity;\n\n return (\n signers?.length > 0 &&\n signers.filter((key) => activeIdentity?.identity?.identityId === key)?.length > 0\n );\n};\n\nexport const documentManagementSelector = {\n hasDocumentAnySigning,\n isDocumentAdmin,\n isDocumentEditor,\n isDocumentSigner,\n};\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shape, spacing }) =>\n createStyles({\n root: {\n borderRadius: shape.borderRadius,\n flexGrow: 1,\n width: '100%',\n backgroundColor: palette.background.default,\n [breakpoints.down('sm')]: {\n borderTop: `1px solid ${palette.divider}`,\n backgroundColor: palette.background.paper,\n },\n },\n tabsRoot: {\n padding: 0,\n minHeight: 48,\n [breakpoints.up('md')]: {\n minHeight: 48 + spacing(2),\n padding: spacing(1),\n },\n },\n tabsScroller: {\n [breakpoints.up('md')]: {\n margin: spacing(-1),\n padding: spacing(1),\n },\n },\n tabRoot: {\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n [breakpoints.down('xs')]: {\n minWidth: '25%',\n },\n [breakpoints.down('sm')]: {\n fontFamily: 'inherit',\n borderRadius: 0,\n '&$selectedTab': {\n boxShadow: 'none',\n },\n },\n },\n disabledTab: {\n display: 'none',\n },\n selectedTab: {},\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Tab, Tabs, useMediaQuery, useTheme } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nfunction a11yProps(index, classes) {\n return {\n id: `auto-tab-${index}`,\n 'aria-controls': `auto-tabpanel-${index}`,\n classes: {\n root: classes.tabRoot,\n selected: classes.selectedTab,\n disabled: classes.disabledTab,\n },\n };\n}\n\nconst ActionsTabs = ({ value, tabs, showIcon, onChange }) => {\n const classes = useStyles();\n const theme = useTheme();\n const { breakpoints } = theme;\n const miniScreen = useMediaQuery(`(max-width: ${breakpoints.values.xs - 1}px)`);\n\n return (\n
    \n \n {tabs.map((tab, index) => (\n \n ))}\n \n
    \n );\n};\n\nActionsTabs.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]).isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n icon: PropTypes.node,\n name: PropTypes.string,\n })\n ),\n showIcon: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n};\n\nActionsTabs.defaultProps = {\n showIcon: true,\n};\n\nexport default ActionsTabs;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, shadows, typography }) =>\n createStyles({\n root: {\n flex: 1,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflowX: 'hidden',\n overflowY: 'scroll',\n height: '100%',\n padding: 'inherit',\n paddingBottom: 0,\n '&::-webkit-scrollbar-thumb': {\n background: palette.greySimple.main,\n },\n '&::-webkit-scrollbar-thumb:hover': {\n background: palette.greySimple.dark,\n },\n },\n inner: {\n display: 'flex',\n minHeight: '100%',\n [breakpoints.up('md')]: {\n paddingLeft: 48 + spacing(2),\n },\n },\n layers: {\n position: 'sticky',\n top: '50%',\n transform: 'translateY(-50%)',\n left: 0,\n height: 0,\n zIndex: 99,\n },\n layersInner: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n transform: 'translateY(-50%)',\n pointerEvents: 'none',\n '& > *': {\n pointerEvents: 'auto',\n [breakpoints.up('md')]: {\n marginLeft: spacing(-0.5),\n },\n [breakpoints.up('lg')]: {\n marginLeft: spacing(-1.5),\n },\n '&:not([disabled])': {\n backgroundColor: palette.common.white,\n },\n '&:not(:first-child)': {\n marginTop: 6,\n },\n '&:not(:last-child)': {\n marginBottom: 6,\n },\n '&[disabled]': {\n opacity: 0.25,\n backgroundColor: 'transparent',\n },\n },\n },\n layersMenu: {\n minWidth: 200,\n marginLeft: spacing(1),\n },\n layersMenuItem: {\n fontSize: typography.subtitle2.fontSize,\n },\n layersMenuItemIcon: {\n display: 'flex',\n alignItems: 'center',\n '& svg': {\n width: 16,\n height: 16,\n },\n },\n layersMenuCloseButton: {\n marginRight: -4,\n width: spacing(3),\n minWidth: spacing(3),\n height: spacing(3),\n minHeight: spacing(3),\n '& svg': {\n width: spacing(2),\n height: spacing(2),\n },\n },\n activeLayersFabButton: {\n color: palette.primary.main,\n boxShadow: shadows[15],\n },\n documentWrapper: {\n outline: 0,\n flex: 1,\n },\n image: {\n minHeight: 32,\n boxShadow: shadows[6],\n },\n imageContainer: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 'auto',\n marginBottom: spacing(6),\n [breakpoints.down('lg')]: {\n marginBottom: spacing(4),\n },\n [breakpoints.down('md')]: {\n marginBottom: spacing(3),\n },\n [breakpoints.down('sm')]: {\n marginBottom: spacing(3),\n },\n '&:not($imageEmptyContainer) img': {\n display: 'block',\n width: '100%',\n margin: 0,\n },\n },\n imageInner: {\n overflow: 'hidden',\n position: 'relative',\n display: 'block',\n margin: '0 auto',\n width: '100%',\n maxWidth: '210mm',\n boxShadow: shadows[12],\n },\n watermark: {\n position: 'absolute',\n top: 0,\n right: 0,\n zIndex: 1,\n width: '60%',\n maxWidth: '152px',\n transform: 'rotate(45deg)',\n pointerEvents: 'none',\n [breakpoints.up('xs')]: {\n width: '20%',\n maxWidth: 'unset',\n minWidth: '150px',\n },\n [breakpoints.up('sm')]: {\n minWidth: '160px',\n },\n },\n watermarkInner: {\n paddingBottom: '100%',\n '& span': {\n position: 'absolute',\n top: '10%',\n transform: 'translateY(-50%)',\n width: '120%',\n marginLeft: '-10%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n lineHeight: 1,\n height: '18%',\n backgroundColor: palette.success.main,\n color: palette.success.contrastText,\n opacity: 0.7,\n fontSize: typography.subtitle2.fontSize,\n },\n [breakpoints.up('xs')]: {\n '& span': {\n top: '13%',\n height: '20%',\n },\n },\n [breakpoints.up('sm')]: {\n '& span': {\n top: '20%',\n height: '22%',\n fontSize: typography.body1.fontSize,\n },\n },\n [breakpoints.up('md')]: {\n '& span': {\n top: '13%',\n height: '20%',\n fontSize: typography.subtitle2.fontSize,\n },\n },\n [breakpoints.up('lg')]: {\n '& span': {\n top: '20%',\n height: '22%',\n fontSize: typography.body1.fontSize,\n },\n },\n },\n imageEmptyContainer: {\n '& $emptyImageBoxContainer': {\n position: 'relative',\n backgroundColor: palette.background.paper,\n width: '100%',\n },\n },\n imageMaximized: {\n '& img, & > div': {\n maxWidth: '100% !important',\n },\n '& $watermarkInner': {\n [breakpoints.up('xl')]: {\n '& span': {\n fontSize: typography.h4.fontSize,\n },\n },\n },\n },\n imageLoaderWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n },\n imageLoader: {\n margin: '0 auto',\n },\n loaderFile: {\n position: 'absolute',\n left: spacing(1),\n right: spacing(1),\n bottom: 0,\n padding: spacing(0.5),\n backgroundColor: palette.background.default,\n pointerEvents: 'none',\n },\n emptyFilesInfoBox: {\n flex: 1,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflowX: 'hidden',\n overflowY: 'auto',\n padding: 'inherit',\n },\n emptyImageBoxContainer: {\n position: 'relative',\n },\n emptyImageBox: {\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n [breakpoints.up('xs')]: {\n paddingBottom: '70.7%',\n },\n },\n emptyImageBoxInner: {\n padding: spacing(2),\n [breakpoints.up('xs')]: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n width: '100%',\n },\n [breakpoints.up('md')]: {\n padding: spacing(3),\n },\n [breakpoints.up('lg')]: {\n padding: spacing(5),\n },\n },\n emptyImageIcon: {\n fontSize: spacing(8),\n color: palette.greySimple.light,\n [breakpoints.up('xs')]: {\n fontSize: spacing(11),\n },\n [breakpoints.up('sm')]: {\n fontSize: spacing(14),\n },\n },\n firstLoader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n },\n loaderMenu: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n zIndex: 22,\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport {\n CircularProgress,\n Fab,\n Fade,\n LinearProgress,\n ListItemSecondaryAction,\n ListSubheader,\n Menu,\n MenuItem,\n Tooltip,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { ContentContainer, EmptyBanner } from 'src/components';\nimport { VisibilityOffOutlined as EmptyImageIcon } from '@material-ui/icons';\nimport {\n ArrowDown as ArrowDownIcon,\n ArrowTop as ArrowTopIcon,\n Close as CloseIcon,\n FileColor as FileIcon,\n Fullscreen as FullScreenIcon,\n FullscreenExit as FullScreenExitIcon,\n Layers as LayersIcon,\n} from 'src/components/CustomIcon';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useStyles } from './styles';\n\nconst DocumentContent = ({\n filesSrc,\n files,\n activeFileIndex,\n activeFileIndexRedux,\n setActiveFileIndexDocument,\n smallContent,\n getDownloadToken,\n changeFileIndex,\n checkShowScroll,\n loading,\n disabledMenu,\n setDisabledMenu,\n watermark,\n watermarkText,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const layersButtonSize = smallContent ? 'medium' : 'large';\n const largeContent = useMediaQuery(({ breakpoints }) => breakpoints.up('lg'));\n const [documentMaximized, setDocumentMaximized] = useState(false);\n\n const [anchorLayersEl, setAnchorLayersEl] = useState(null);\n\n const {\n getDocumentStatus,\n downloadFileStatus,\n getDownloadTokenStatus,\n allFilesLoadedStatus,\n } = useSelector((state) => state.documentDisplayStore);\n\n const tooltipPlacement = 'right';\n const handleOpenLayers = (event) => {\n setAnchorLayersEl(event.currentTarget);\n };\n const handleCloseLayers = () => {\n setAnchorLayersEl(null);\n };\n\n const checkActiveFileOnScroll = () => {\n const mainNavLinks = files?.map((file) => `document-number-${file.index}`);\n const scrollContent = document.getElementById('scroll-element-file');\n\n const fromTop = scrollContent.scrollTop;\n mainNavLinks?.forEach((link) => {\n const section = document.querySelectorAll(`.${link}`);\n if (section && section.length) {\n const sectionFirst = section[0];\n const sectionLast = section[section.length - 1];\n\n if (\n sectionFirst.offsetTop <= fromTop &&\n sectionLast.offsetTop + sectionLast.offsetHeight >= fromTop\n ) {\n setActiveFileIndexDocument(Number(link.split('-')[2]));\n } else if (fromTop === 0) {\n setActiveFileIndexDocument(Number(filesSrc.length ? filesSrc[0]?.indexFile : 0));\n }\n }\n });\n };\n\n useEffect(() => {\n const scrollContent = document.getElementById('scroll-element-file');\n if (getDocumentStatus === RequestStatus.SUCCESS) {\n scrollContent.addEventListener('scroll', checkActiveFileOnScroll, false);\n }\n return () => {\n scrollContent.removeEventListener('scroll', checkActiveFileOnScroll, false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getDocumentStatus]);\n\n useEffect(() => {\n if (downloadFileStatus === RequestStatus.SUCCESS) {\n checkActiveFileOnScroll();\n setDisabledMenu(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [downloadFileStatus]);\n\n const layersOpen = Boolean(anchorLayersEl);\n\n const fetchMoreData = () => {\n if (filesSrc && filesSrc.length) {\n if (files[activeFileIndexRedux].pages === 0) {\n getDownloadToken(0);\n return;\n }\n if (downloadFileStatus !== RequestStatus.PENDING) getDownloadToken();\n }\n };\n\n const filesEmpty = files && !files.length;\n const filesIsNotEmpty = files && files.length;\n\n const isArrowButtonsDisabled = files && files.length <= 1;\n\n return (\n <>\n
    \n {!smallContent && !filesEmpty && (\n \n
    \n {isArrowButtonsDisabled ? (\n \n \n \n ) : (\n \n changeFileIndex('prev')}\n >\n \n \n \n )}\n\n \n \n \n \n \n\n {largeContent && (\n \n setDocumentMaximized(!documentMaximized)}\n >\n {documentMaximized ? : }\n \n \n )}\n\n {isArrowButtonsDisabled ? (\n \n \n \n ) : (\n \n changeFileIndex('next')}\n >\n \n \n \n )}\n
    \n \n )}\n\n }\n loader={false}\n scrollableTarget=\"scroll-element-file\"\n >\n
    \n
    \n {filesSrc &&\n files &&\n filesSrc.map((src, index) => (\n \n
    \n {watermark && watermarkText && (\n \n
    \n
    \n {watermarkText}\n
    \n
    \n
    \n )}\n {!src.file.length && files.length ? (\n
    \n checkShowScroll()}\n description={t('documentActions.emptyImageDescription')}\n titleVariant=\"h3\"\n classes={{\n root: classes.emptyImageBox,\n inner: classes.emptyImageBoxInner,\n }}\n >\n \n \n
    \n ) : (\n checkShowScroll()} alt={index} />\n )}\n
    \n
    \n ))}\n
    \n
    \n \n
    \n\n {filesEmpty && (\n
    \n \n
    \n )}\n\n {loading && (\n <>\n {!filesSrc.length ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )}\n \n )}\n\n \n \n {t('documentActions.layers.fileList')}\n\n \n \n \n \n \n \n {filesIsNotEmpty ? (\n files.map((item, index) => (\n {\n !allFilesLoadedStatus && setDisabledMenu(true);\n changeFileIndex(item.index);\n handleCloseLayers();\n }}\n >\n {item.name}\n \n \n \n \n ))\n ) : (\n {t('common.empty')}\n )}\n \n \n );\n};\n\nDocumentContent.propTypes = {\n filesSrc: PropTypes.oneOfType([PropTypes.array, PropTypes.string]).isRequired,\n files: PropTypes.arrayOf(PropTypes.shape()),\n activeFileIndex: PropTypes.number,\n activeFileIndexRedux: PropTypes.number,\n setActiveFileIndexDocument: PropTypes.func,\n getDownloadToken: PropTypes.func,\n changeFileIndex: PropTypes.func,\n checkShowScroll: PropTypes.func,\n loading: PropTypes.bool,\n disabledMenu: PropTypes.bool,\n setDisabledMenu: PropTypes.func,\n smallContent: PropTypes.bool,\n watermark: PropTypes.bool,\n watermarkText: PropTypes.string,\n};\n\nexport default DocumentContent;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, custom, palette, spacing }) =>\n createStyles({\n drawer: {\n position: 'relative',\n width: custom.documentEditSidebarWidth,\n maxWidth: '40%',\n flexShrink: 0,\n overflow: 'hidden',\n },\n drawerPaper: {\n position: 'relative',\n width: '100%',\n borderLeft: `1px solid ${palette.divider}`,\n overflowX: 'hidden',\n overflowY: 'auto',\n flex: 'auto',\n },\n drawerPaperNotScrollable: {\n overflowY: 'hidden',\n },\n contentWrapper: {\n position: 'relative',\n padding: spacing(2),\n paddingBottom: spacing(10),\n [breakpoints.up('md')]: {\n padding: spacing(2, 3),\n paddingBottom: spacing(10),\n },\n [breakpoints.up('lg')]: {\n padding: spacing(2, 5),\n paddingBottom: spacing(10),\n },\n },\n content: {\n width: '100%',\n },\n contentTop: {\n paddingBottom: spacing(2),\n [breakpoints.up('lg')]: {\n paddingBottom: spacing(3),\n },\n },\n contentBottom: {},\n childrenWrapper: {},\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Skeleton } from '@material-ui/lab';\nimport { Card, CardHeader } from '@material-ui/core';\nimport { useSelector } from 'react-redux';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\n\nconst RightSidebarSkeleton = (): JSX.Element => {\n const signersCount = useSelector(DocumentUserManagerSelector.selectDraftSignersCount);\n const otherRolesCount = useSelector(DocumentUserManagerSelector.selectDraftOtherRolesCount);\n\n return (\n
    \n \n \n }\n title={}\n subheader={}\n />\n \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n {Array(signersCount === 0 ? 2 : signersCount)\n .fill(0)\n .map(() => (\n
    \n }\n title={}\n subheader={}\n />\n \n
    \n ))}\n \n {Array(otherRolesCount === 0 ? 3 : otherRolesCount)\n .fill(0)\n .map(() => (\n
    \n }\n title={}\n subheader={}\n />\n \n
    \n ))}\n
    \n );\n};\n\nexport default RightSidebarSkeleton;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Collapse, Drawer } from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\nimport { DocumentMemberRole } from 'src/models/documentUsersManagement.model';\nimport { templateTypeToDocumentType, userComActions } from 'src/redux/actions/userCom.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport documentUserManagerActions from 'src/redux/actions/documentUserManager.actions';\nimport { useStyles } from './styles';\nimport RightSidebarSkeleton from './RightSidebarSkeleton';\n\nconst RightSidebar = ({ children, signBanner, tabs, fullHeightContent }) => {\n const [contentScrollable, setContentScrollable] = useState(true);\n const classes = useStyles();\n const dispatch = useDispatch();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const documentInfo = useSelector((state) => state.documentDisplayStore.document, undefined);\n const { draftRoles, otherRecipientsChanged, signersChanged } = useSelector(\n (state) => state.documentUsersManagerStore\n );\n const isRecipientsUpdated = useSelector((state) =>\n DocumentUserManagerSelector.selectRecipientsUpdated(state, Object.values(DocumentMemberRole))\n );\n const onCollapseToggle = {\n onStart: () => {\n setContentScrollable(false);\n },\n onEnd: () => {\n setContentScrollable(true);\n },\n };\n\n // Check if recipient update finished, send events to user.com, cleanup updated state\n useEffect(() => {\n if (isRecipientsUpdated) {\n if (signersChanged) {\n userComActions.document.docSignersUpdated(\n templateTypeToDocumentType(documentInfo.templateType),\n draftRoles[DocumentMemberRole.SIGNER].length\n );\n dispatch(documentUserManagerActions.updateSignersChanged(false));\n }\n if (otherRecipientsChanged) {\n userComActions.document.docRecipientsUpdated(workspaceId);\n dispatch(documentUserManagerActions.updateRecipientsChanged(false));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isRecipientsUpdated]);\n\n return (\n \n
    \n {!isRecipientsUpdated ? (\n \n ) : (\n <>\n \n
    \n {signBanner}\n {tabs}\n
    \n \n\n {children && (\n \n {children}\n
    \n )}\n \n )}\n \n \n );\n};\n\nRightSidebar.propTypes = {\n children: PropTypes.node,\n signBanner: PropTypes.node,\n tabs: PropTypes.node,\n fullHeightContent: PropTypes.bool,\n};\n\nRightSidebar.defaultProps = {\n fullHeightContent: false,\n};\n\nexport default RightSidebar;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing }) =>\n createStyles({\n root: {\n padding: spacing(2),\n '& > *:not(:last-child)': {\n marginBottom: spacing(2),\n },\n [breakpoints.down('sm')]: {\n border: 'none',\n borderTop: `1px solid ${palette.divider}`,\n borderRadius: 0,\n },\n [breakpoints.up('md')]: {\n padding: spacing(2.5, 2),\n },\n [breakpoints.up('lg')]: {\n marginTop: spacing(2),\n marginBottom: spacing(3),\n },\n },\n user: {\n [breakpoints.down('sm')]: {\n maxWidth: '65%!important',\n '& + *': {\n minWidth: '35%!important',\n },\n },\n },\n button: {\n minHeight: 48,\n padding: spacing(0.75, 1.25),\n [breakpoints.up('md')]: {\n padding: spacing(0.75, 1.75),\n },\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useSelector } from 'react-redux';\nimport { Button, Card, CircularProgress, Collapse, Typography } from '@material-ui/core';\nimport { AvatarAndTextItem, ExtendedGrid } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { DocumentStatus } from 'src/models/documents.model';\nimport { useStyles } from './styles';\n\nconst SignBanner = ({\n className: classNameProp,\n display,\n user: { id: userId, name: userName, workspaceName: userWorkspaceName },\n title,\n afterText,\n rejectionButton,\n onSignClick,\n signText,\n disabled = false,\n canSign = true,\n}) => {\n const classes = useStyles();\n const [loading, setLoading] = useState(false);\n const { document: documentInfo } = useSelector((state) => state.documentDisplayStore, undefined);\n const documentSigningStatus = useSelector(\n (state) => state.documentManagementStore.documentSigningStatus\n );\n const isRejectLoading = documentInfo.status === DocumentStatus.EDITING && loading;\n const displayUser = userName || userWorkspaceName;\n const displayAction = typeof onSignClick === 'function' && signText && canSign;\n\n useEffect(() => {\n if (documentSigningStatus === RequestStatus.ERROR) {\n setLoading(false);\n }\n if (documentSigningStatus !== RequestStatus.IDLE) {\n setLoading(true);\n }\n }, [documentSigningStatus]);\n\n return (\n \n \n {title && canSign && {title}}\n\n \n {displayUser && (\n \n \n \n )}\n {displayAction && (\n \n }\n >\n {signText}\n \n \n )}\n {rejectionButton && (\n \n {rejectionButton(isRejectLoading)}\n \n )}\n {afterText}\n \n \n \n );\n};\n\nSignBanner.propTypes = {\n className: PropTypes.string,\n display: PropTypes.bool,\n user: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n workspaceName: PropTypes.string,\n }).isRequired,\n title: PropTypes.string,\n afterText: PropTypes.bool,\n rejectionButton: PropTypes.node,\n onSignClick: PropTypes.func,\n signText: PropTypes.string,\n disabled: PropTypes.bool,\n canSign: PropTypes.bool,\n};\n\nSignBanner.defaultProps = {\n display: true,\n};\n\nexport default SignBanner;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing }) =>\n createStyles({\n root: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: spacing(0.5),\n },\n action: {\n paddingLeft: spacing(2),\n '& button': {\n paddingLeft: spacing(1),\n paddingRight: spacing(1),\n marginRight: spacing(-1),\n '& svg': {\n color: palette.text.disabled,\n },\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Typography } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst TabHeader = ({ className: classNameProp, label, action }) => {\n const classes = useStyles();\n return (\n
    \n {label}\n {action &&
    {action}
    }\n
    \n );\n};\n\nTabHeader.propTypes = {\n className: PropTypes.string,\n action: PropTypes.node,\n label: PropTypes.string.isRequired,\n};\n\nexport default TabHeader;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shape, spacing, typography }) =>\n createStyles({\n topBar: {\n borderBottom: `1px solid ${palette.divider}`,\n },\n topBarContainer: {},\n topBarBackButton: {},\n topBarOptions: {\n textAlign: 'right',\n '& > *:not(:first-child)': {\n marginLeft: spacing(0.5),\n [breakpoints.up('md')]: {\n marginLeft: spacing(1),\n },\n },\n },\n topBarOptionButton: {\n borderRadius: shape.borderRadius,\n },\n topBarTitleWrapper: {\n flex: 1,\n },\n title: {\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n backgroundColor: palette.background.default,\n [breakpoints.up('xs')]: {\n marginLeft: 0,\n marginRight: 0,\n },\n },\n titleInput: {\n fontSize: typography.h6.fontSize,\n fontFamily: typography.h6.fontFamily,\n borderRadius: shape.borderRadius,\n [breakpoints.down('xs')]: {\n paddingLeft: spacing(1),\n paddingRight: spacing(1),\n },\n [breakpoints.up('sm')]: {\n fontWeight: typography.h6.fontWeight,\n letterSpacing: typography.h6.letterSpacing,\n },\n },\n disabledTitleInput: {\n '& $titleInput': {\n color: palette.text.primary,\n backgroundColor: `${palette.background.default} !important`,\n },\n '& $inputNotchedOutline': {\n borderColor: 'transparent !important',\n },\n },\n inputNotchedOutline: {\n '&:not(:hover), &:not(:focus)': {\n borderColor: 'transparent',\n },\n },\n infoWithIcon: {\n display: 'flex',\n alignItems: 'center',\n '& svg': {\n marginRight: spacing(0.75),\n fontSize: 18,\n },\n },\n errorIcon: {\n color: palette.error.main,\n cursor: 'default',\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport { AppBar, InputAdornment, OutlinedInput, Tooltip, useMediaQuery } from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\nimport {\n ConfirmDialog,\n ContentContainer,\n HeaderButton,\n MobileBottomMenuList,\n TopBarContainer,\n} from 'src/components';\nimport {\n ArrowLeftSLine as ChevronLeftIcon,\n MoreHor as MoreHorizontalIcon,\n Alert as ErrorIcon,\n} from 'src/components/CustomIcon';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { TopBarOptionsMenu } from '../index';\nimport { useStyles } from './styles';\nimport { moduleName as dslService } from '../../../../redux/services/documentDSL.service';\nimport { moduleName as documentService } from '../../../../redux/services/documentCore.service';\n\nconst TopBar = ({\n children,\n documentId,\n title,\n disableChangeTitle,\n mainOptions,\n onBack,\n rightContent,\n}) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const dispatch = useDispatch();\n const history = useHistory();\n const isCertificate = history.location.pathname.includes('certificate');\n const apiService = isCertificate ? dslService : documentService;\n const [didMount, setDidMount] = useState(false);\n const [optionsAnchorEl, setOptionsAnchorEl] = useState(null);\n const [openDialog, setOpenDialog] = useState(false);\n const [value, setValue] = useState(null);\n const [error, setError] = useState(false);\n const [canMakeError, setCanMakeError] = useState(true);\n const [open, setOpen] = useState(false);\n const handleToggle = {\n close: () => {\n setOpen(false);\n setOptionsAnchorEl(null);\n },\n open: (event) => {\n if (hasAnyOptions) {\n setOpen(true);\n setOptionsAnchorEl(event.currentTarget);\n } else {\n setOpenDialog(true);\n }\n },\n };\n\n const REGEX_PATTERN = '^[^/\\\\\\\\*%:;<>\"|]*$';\n const MAX_LENGTH = 50;\n\n const documentRenameStatus = useSelector(\n (state) => state.documentManagementStore.documentRenameStatus\n );\n\n const hasAnyOptions = mainOptions && mainOptions.length > 0;\n\n const isPending = documentRenameStatus === RequestStatus.PENDING;\n const isDisabled = isPending || disableChangeTitle;\n\n useMemo(() => {\n if (title) {\n setValue(title);\n }\n }, [title]);\n\n useEffect(() => {\n setDidMount(true);\n return () => setDidMount(false);\n }, []);\n\n if (!didMount) {\n return null;\n }\n return (\n <>\n \n \n }\n tooltip={t('common.back')}\n onClick={onBack}\n />\n\n \n {title && documentId && (\n \n \n \n \n \n )\n }\n fullWidth\n classes={{\n root: classes.title,\n input: classes.titleInput,\n notchedOutline: classes.inputNotchedOutline,\n disabled: classes.disabledTitleInput,\n }}\n inputProps={{ pattern: REGEX_PATTERN }}\n onChange={(event) => {\n const targetValue = event.target.value;\n if (!canMakeError) {\n setError(!targetValue.match(REGEX_PATTERN) || targetValue.length > MAX_LENGTH);\n }\n setValue(targetValue);\n }}\n onBlur={() => {\n const currentValue = value.trim();\n const isValueCorrect =\n currentValue.match(REGEX_PATTERN) && currentValue.length <= MAX_LENGTH;\n\n if (isValueCorrect) {\n setError(false);\n setCanMakeError(true);\n\n if (currentValue !== title) {\n dispatch(\n documentManagementActions.renameDocument({\n documentId,\n name: currentValue,\n service: apiService,\n })\n );\n }\n } else {\n setError(true);\n if (canMakeError) {\n setCanMakeError(false);\n }\n }\n setValue(currentValue);\n }}\n />\n )}\n \n {rightContent || null}\n {mainOptions !== undefined && (\n
    \n }\n tooltip={t('common.options')}\n onClick={handleToggle.open}\n />\n {hasAnyOptions && (\n <>\n {smallScreen ? (\n \n ) : (\n \n )}\n \n )}\n
    \n )}\n
    \n\n {children}\n
    \n\n setOpenDialog(false)}\n />\n \n );\n};\n\nTopBar.propTypes = {\n rightContent: PropTypes.node,\n children: PropTypes.node,\n documentId: PropTypes.string,\n title: PropTypes.string,\n disableChangeTitle: PropTypes.bool,\n mainOptions: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n icon: PropTypes.node,\n onClick: PropTypes.func,\n })\n ),\n onBack: PropTypes.func,\n};\n\nTopBar.defaultProps = {\n disableChangeTitle: false,\n};\n\nexport default TopBar;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n menuRoot: {\n minWidth: 180,\n },\n listItemSecondaryAction: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ListItemIcon, ListItemSecondaryAction, Menu, MenuItem } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst TopBarOptionsMenu = ({ open, anchorEl, onClose, options }) => {\n const classes = useStyles();\n if (options?.length) {\n return (\n \n {options.map((option, index) => (\n {\n option.onClick();\n onClose();\n }}\n >\n {option.icon && {option.icon}}\n {option.name}\n\n {option.secondaryIcon && (\n \n {option.secondaryIcon}\n \n )}\n \n ))}\n \n );\n }\n return null;\n};\n\nTopBarOptionsMenu.propTypes = {\n open: PropTypes.bool.isRequired,\n anchorEl: PropTypes.shape({}),\n onClose: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n icon: PropTypes.node,\n secondaryIcon: PropTypes.node,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n })\n ),\n};\n\nTopBarOptionsMenu.defaultProps = {\n anchorEl: null,\n};\n\nexport default TopBarOptionsMenu;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { DocumentRole } from 'src/models/document.model';\nimport certificateManagementConstants from 'src/redux/constants/certificateManagement.constants';\nimport documentDSLServices, { moduleName } from 'src/redux/services/documentDSL.service';\nimport documentDisplayActions from './documentDisplay.actions';\nimport identityActions from './identity.actions';\nimport snackbarActions from './snackbar.actions';\nimport { DocumentNoDriveType, userComActions } from './userCom.actions';\n\nconst certificateManagementActions = {\n deleteRolesByMail,\n invalidateCertificate,\n invalidateTemporarilyCertificate,\n rejectCertificate,\n setCertificateAccessLevel,\n setCertificateTransferability,\n signCertificate,\n transferOwnership,\n validateCertificate,\n};\n\nconst genericErrorHelper = (msg) =>\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n msg\n );\n\nfunction signCertificate({ documentId, workspaceId, callback }) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_SIGN_REQUEST });\n\n documentDSLServices\n .signCertificate({ workspaceId, documentId })\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DOCUMENT_SIGN_SUCCESS,\n data: response.data,\n });\n\n if (response.data.data.txn) {\n dispatch(\n identityActions.sendTransactionFromNewDocument(response.data.data.txn, () => {\n userComActions.document.docSigned(DocumentNoDriveType.Certificate, workspaceId);\n })\n );\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.signDocument.toast.commissioned')\n )\n );\n }\n\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch((error) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_SIGN_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction rejectCertificate({ documentId, workspaceId, reason, callback }) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_REJECT_REQUEST });\n\n documentDSLServices\n .rejectCertificate({ workspaceId, documentId, reason })\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DOCUMENT_REJECT_SUCCESS,\n data: response.data,\n });\n\n if (response.data.data.txn) {\n dispatch(\n identityActions.sendTransactionFromNewDocument(response.data.data.txn, () => {\n userComActions.document.docRejected(DocumentNoDriveType.Certificate, workspaceId);\n })\n );\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.rejectDocument.toast.commissioned')\n )\n );\n }\n\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch((error) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_REJECT_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction invalidateCertificate(documentId, workspaceId, reason, callback) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_INVALIDATE_REQUEST });\n\n documentDSLServices\n .invalidateCertificate({ workspaceId, documentId, reason })\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DOCUMENT_INVALIDATE_SUCCESS,\n data: response.data,\n });\n\n if (response.data.data.txn) {\n dispatch(identityActions.sendTransactionFromNewDocument(response.data.data.txn));\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.invalidateDocument.toast.commissioned')\n )\n );\n }\n\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch((error) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_SIGN_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction invalidateTemporarilyCertificate(documentId, workspaceId, reason, callback) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_INVALIDATE_TEMPORARILY_REQUEST });\n\n documentDSLServices\n .invalidateTemporarilyCertificate({ workspaceId, documentId, reason })\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DOCUMENT_INVALIDATE_TEMPORARILY_SUCCESS,\n data: response.data,\n });\n\n if (response.data.data.txn) {\n dispatch(identityActions.sendTransactionFromNewDocument(response.data.data.txn));\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.temporarilyInvalidateDocument.toast.commissioned')\n )\n );\n }\n\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch((error) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_INVALIDATE_TEMPORARILY_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction validateCertificate(documentId, workspaceId, reason, callback = () => undefined) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_VALIDATE_REQUEST });\n\n documentDSLServices\n .validateCertificate({ workspaceId, documentId, reason })\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DOCUMENT_VALIDATE_SUCCESS,\n data: response.data,\n });\n\n if (response.data.data.txn) {\n dispatch(identityActions.sendTransactionFromNewDocument(response.data.data.txn));\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.validateDocument.toast.commissioned')\n )\n );\n }\n\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch((error) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_VALIDATE_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction setCertificateTransferability(documentId, workspaceId, transferable, callback) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_SET_TRANSFERABILITY_REQUEST });\n\n documentDSLServices\n .setTransferabilityCertificate({ workspaceId, documentId, transferable })\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DOCUMENT_SET_TRANSFERABILITY_SUCCESS,\n data: response.data,\n });\n\n if (response.data.data.txn) {\n dispatch(identityActions.sendTransactionFromNewDocument(response.data.data.txn));\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.transferabilityChange.toast.commissioned')\n )\n );\n }\n\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch((error) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_INVALIDATE_TEMPORARILY_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction setCertificateAccessLevel(documentId, isPublic, callback) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DOCUMENT_SET_ACCESS_LEVEL_REQUEST });\n\n documentDSLServices\n .setCertificateAccessLevel({ documentId, isPublic })\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DOCUMENT_SET_ACCESS_LEVEL_SUCCESS,\n data: response.data,\n });\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('documentActions.visibilityChange.toast.success')\n )\n );\n\n dispatch(documentDisplayActions.getDocument(documentId, moduleName));\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch(() => {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.visibilityChange.toast.error')\n )\n );\n dispatch({ type: certificateManagementConstants.DOCUMENT_SET_ACCESS_LEVEL_ERROR });\n });\n };\n}\n\nfunction deleteRolesByMail(documentId, users) {\n const deletionPromises = users.map((user) =>\n documentDSLServices.deleteRoleByMail(documentId, user?.role || DocumentRole.SIGNERS, user.email)\n );\n\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.DELETE_USERS_MAIL_INVITATION_REQUEST });\n Promise.allSettled(deletionPromises)\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.DELETE_USERS_MAIL_INVITATION_SUCCESS,\n response,\n });\n const fulfilledPromises = response.filter((result) => result.status === 'fulfilled');\n const rejectedPromises = response.filter((result) => result.status === 'rejected');\n\n if (fulfilledPromises?.length === 0 && rejectedPromises?.length > 0) {\n dispatch({ type: certificateManagementConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n }\n fulfilledPromises\n .map((c) => c.value.data.data.collecton)\n .flat()\n .forEach((c) => {\n if (c?.txn) {\n dispatch(identityActions.sendTransactionFromNewDocument(c.txn));\n }\n });\n })\n .catch(() => {\n dispatch({ type: certificateManagementConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n });\n };\n}\n\nfunction transferOwnership(documentId, role, email, callback) {\n return (dispatch) => {\n dispatch({ type: certificateManagementConstants.TRANSFER_OWNERSHIP_REQUEST });\n\n documentDSLServices\n .transferOwnership(documentId, role, email)\n .then((response) => {\n dispatch({\n type: certificateManagementConstants.TRANSFER_OWNERSHIP_SUCCESS,\n data: response.data,\n });\n if (response.data?.data?.collection?.length > 0) {\n response.data.data?.collection?.forEach((c) => {\n if (c.txn) {\n dispatch(identityActions.sendTransactionFromNewDocument(c.txn));\n }\n });\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.transferOwnership.toast.success')\n )\n );\n }\n if (callback && typeof callback === 'function') {\n dispatch(callback);\n }\n })\n .catch(() => {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.transferOwnership.toast.error')\n )\n );\n dispatch({ type: certificateManagementConstants.TRANSFER_OWNERSHIP_ERROR });\n });\n };\n}\n\nexport default certificateManagementActions;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport { useTranslation } from 'react-i18next';\nimport { DialogContent, TextField } from '@material-ui/core';\nimport { ConfirmDialog } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport certificateManagementActions from 'src/redux/actions/certificateManagement.actions';\nimport { DocumentNoDriveType, userComActions } from '../../../../../redux/actions/userCom.actions';\n\nconst RejectDocument = ({ open, documentId, onClose }) => {\n const { t } = useTranslation();\n const [value, setValue] = useState('');\n\n const dispatch = useDispatch();\n const { workspaceId } = useSelector(IdentitySelector.selectWorkspaceDetails, undefined);\n const isCertificate = useSelector(documentDisplaySelector.isCertificate, undefined);\n const rejectingDocumentStatus = useSelector(\n (state) => state.documentManagementStore.rejectingDocumentStatus,\n undefined\n );\n\n const isPending = rejectingDocumentStatus === RequestStatus.PENDING;\n const isDisabled = !value || isPending;\n\n return (\n {\n if (isCertificate) {\n dispatch(\n certificateManagementActions.rejectCertificate({\n documentId,\n workspaceId,\n reason: value,\n callback: onClose,\n })\n );\n } else {\n dispatch(\n documentManagementActions.rejectDocument(documentId, value, () => {\n userComActions.document.docRejected(DocumentNoDriveType.ESign, workspaceId);\n onClose();\n })\n );\n }\n }}\n actionCancel={onClose}\n >\n \n {\n setValue(event.target.value);\n }}\n inputProps={{ maxLength: 50 }}\n disabled={isPending}\n />\n \n \n );\n};\n\nRejectDocument.propTypes = {\n open: PropTypes.bool,\n documentId: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n};\n\nRejectDocument.defaultProps = {\n open: false,\n};\n\nexport default RejectDocument;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmDialog } from 'src/components';\n\nconst ReloadDocument = ({ open, actionAccept, onClose }) => {\n const { t } = useTranslation();\n\n return (\n \n );\n};\n\nReloadDocument.propTypes = {\n open: PropTypes.bool,\n actionAccept: PropTypes.func,\n onClose: PropTypes.func,\n};\n\nReloadDocument.defaultProps = {\n open: false,\n};\n\nexport default ReloadDocument;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmDialog } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport certificateManagementActions from 'src/redux/actions/certificateManagement.actions';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport documentInvitationActions from 'src/redux/actions/documentInvitiation.actions';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport i18n from 'src/helpers/i18n';\nimport { DocumentNoDriveType, userComActions } from '../../../../../redux/actions/userCom.actions';\n\nconst SignDocument = ({ open, documentId, onClose }) => {\n const { t } = useTranslation();\n\n const dispatch = useDispatch();\n\n const { isOrderSignificant } = useSelector((state) => state.documentInvitationsStore, undefined);\n const calculatedSignersCount = useSelector(\n DocumentUserManagerSelector.selectCalculatedSignersCount,\n undefined\n );\n const { documentSigningStatus, documentSigners } = useSelector(\n (state) => state.documentManagementStore,\n undefined\n );\n const { workspaceId } = useSelector(IdentitySelector.selectWorkspaceDetails, undefined);\n const isCertificate = useSelector(documentDisplaySelector.isCertificate, undefined);\n\n const isPending = documentSigningStatus === RequestStatus.PENDING;\n\n // If Error 'INVALID_SIGNERS_COUNT' then update signersCount\n const updateSignersCount = () => {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n i18n.t('snackbars.common.infoTitle'),\n i18n.t('documentActions.signDocument.toast.waitForCountUpdate')\n )\n );\n dispatch(\n documentInvitationActions.updateSignersCount(\n documentId,\n isOrderSignificant,\n calculatedSignersCount,\n documentSigners,\n () =>\n // retry sign after timeout (time needed to update blockchain), retry again if still not updated\n dispatch(\n documentManagementActions.signDocument(\n documentId,\n () => {\n userComActions.document.docSigned(DocumentNoDriveType.ESign, workspaceId);\n onClose();\n },\n updateSignersCount\n )\n )\n )\n );\n };\n\n return (\n {\n if (isCertificate) {\n dispatch(\n certificateManagementActions.signCertificate({\n documentId,\n workspaceId,\n callback: onClose,\n })\n );\n } else {\n dispatch(\n documentManagementActions.signDocument(\n documentId,\n () => {\n userComActions.document.docSigned(DocumentNoDriveType.ESign, workspaceId);\n onClose();\n },\n updateSignersCount\n )\n );\n }\n }}\n actionCancel={onClose}\n />\n );\n};\n\nSignDocument.propTypes = {\n open: PropTypes.bool,\n documentId: PropTypes.string.isRequired,\n onClose: PropTypes.func,\n};\n\nSignDocument.defaultProps = {\n open: false,\n};\n\nexport default SignDocument;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, shape, spacing, typography }) =>\n createStyles({\n root: {\n width: '100%',\n padding: spacing(2, 0),\n position: 'relative',\n '&:last-child': {\n paddingBottom: 0,\n },\n '&:not($hideDots)': {\n marginBottom: spacing(2),\n '&:before, &:after': {\n content: \"''\",\n display: 'block',\n position: 'absolute',\n left: 24,\n width: 2,\n height: 2,\n marginLeft: '1px',\n borderRadius: '50%',\n backgroundColor: 'currentColor',\n boxShadow: '0 6px 0 0 currentColor',\n },\n '&:before': {\n top: 'calc(100% - 2px)',\n },\n '&:after': {\n top: 'calc(100% + 10px)',\n },\n },\n },\n hideDots: {\n marginBottom: spacing(1),\n },\n icon: {\n width: 48,\n height: 48,\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:before': {\n content: \"''\",\n display: 'block',\n position: 'absolute',\n top: 0,\n left: 0,\n width: 'inherit',\n height: 'inherit',\n backgroundColor: 'currentColor',\n borderRadius: shape.borderRadius,\n opacity: 0.05,\n },\n },\n title: {\n fontWeight: typography.fontWeightMedium,\n '& strong': {\n color: palette.primary.main,\n },\n },\n timeText: {\n display: 'inline',\n marginLeft: '0',\n },\n entriesDividerText: {\n marginBottom: spacing(1),\n },\n defaultColor: {\n color: palette.text.secondary,\n },\n errorColor: {\n color: palette.error.main,\n },\n warningColor: {\n color: palette.warning.main,\n },\n infoColor: {\n color: palette.primary.light,\n },\n primaryColor: {\n color: palette.primary.main,\n },\n successColor: {\n color: palette.success.main,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { Tooltip, Typography } from '@material-ui/core';\nimport { ExtendedGrid } from 'src/components';\nimport {\n Notification as DefaultIcon,\n Visibility as VisibilityIcon,\n Edit as EditIcon,\n FileAdd as FileAddIcon,\n Email as EmailIcon,\n UserDelete as UserDeleteIcon,\n UserAdd as UserAddIcon,\n Download as DownloadIcon,\n FileRemove as FileRemoveIcon,\n FileEdit as FileEditIcon,\n Globe as GlobeIcon,\n Sort as SortIcon,\n ImportExport as ImportExportIcon,\n Stopwatch as StopwatchIcon,\n Time as TimeIcon,\n Check as CheckIcon,\n Users as UsersIcon,\n} from 'src/components/CustomIcon';\nimport { TimeAgoCell } from 'src/components/DataTable/cells';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport moment from 'moment';\nimport 'moment/locale/pl'; // without this line it didn't work\nimport { HistoryType } from 'src/models/document.model';\nimport { useStyles } from './styles';\n\nconst HistoryItem = ({\n className: classNameProp,\n userId,\n date,\n action,\n metadata,\n dateGroup,\n dateActive,\n lastDateInGroup,\n}) => {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const { language } = i18n;\n const matchedIdentity = ContactHelper.getEntityData(userId);\n const user = matchedIdentity || { name: userId, email: userId };\n\n const getItemProps = () => {\n let email;\n let role;\n let reason;\n let oldName;\n let newHolder;\n let oldHolder;\n let newName;\n let groupName;\n let isPublic;\n let ordered;\n let transferable;\n let entryType = false;\n\n if (metadata) {\n email = metadata.email;\n role =\n metadata.role &&\n t(`documentActions.tabs.recipients.role.${metadata.role.toLowerCase()}`).toLowerCase();\n reason = metadata.reason;\n oldName = metadata.oldName;\n newName = metadata.newName;\n newName = metadata.newName;\n isPublic = metadata.public;\n ordered = metadata.ordered;\n transferable = metadata.transferable;\n\n if (metadata.entityId) {\n const matchedIdentity = ContactHelper.getEntityData(metadata.entityId);\n email = matchedIdentity.email || metadata.entityId;\n\n entryType = matchedIdentity.isGroup ? 'GROUP' : 'MEMBER';\n if (entryType === 'GROUP') {\n groupName = matchedIdentity.name;\n }\n }\n\n if (metadata.newHolder) {\n const newHolderIdentity = ContactHelper.getEntityData(metadata.newHolder);\n\n newHolder = newHolderIdentity.name || metadata.newHolder;\n }\n\n if (metadata.oldHolder) {\n const oldHolderIdentity = ContactHelper.getEntityData(metadata.oldHolder);\n\n oldHolder = oldHolderIdentity.name || metadata.newHolder;\n }\n }\n\n const defaultTitle = (variables) =>\n t(`historyType.${action}${entryType ? `.${entryType}` : ''}.longText`, variables);\n\n switch (action) {\n case HistoryType.VIEW:\n return {\n title: defaultTitle(),\n color: 'info',\n icon: ,\n };\n case HistoryType.SIGN:\n return {\n title: defaultTitle(),\n color: 'success',\n icon: ,\n };\n case HistoryType.SEND_INVITATION:\n return {\n title: defaultTitle({ email, role }),\n color: 'primary',\n icon: ,\n };\n case HistoryType.DELETE_INVITATION:\n return {\n title: defaultTitle({ email }),\n color: 'error',\n icon: ,\n };\n case HistoryType.ADD_ENTITY:\n return {\n title: defaultTitle(\n entryType && entryType === 'MEMBER' ? { email, role } : { groupName, role }\n ),\n color: 'primary',\n icon: ,\n };\n case HistoryType.DELETE_ENTITY:\n return {\n title: defaultTitle(\n entryType && entryType === 'MEMBER' ? { email, role } : { groupName, role }\n ),\n color: 'error',\n icon: ,\n };\n case HistoryType.DOWNLOAD:\n return {\n title: defaultTitle(),\n color: 'default',\n icon: ,\n };\n case HistoryType.REJECT:\n return {\n title: defaultTitle({ reason }),\n color: 'error',\n icon: ,\n };\n case HistoryType.RENAME:\n return {\n title: defaultTitle({ oldName, newName }),\n color: 'primary',\n icon: ,\n };\n case HistoryType.CREATE:\n return {\n title: defaultTitle(),\n color: 'success',\n icon: ,\n };\n case HistoryType.VISIBILITY_CHANGE:\n return {\n title: defaultTitle({\n public: isPublic\n ? t('documentActions.tabs.history.metadata.public')\n : t('documentActions.tabs.history.metadata.private'),\n }),\n color: 'default',\n icon: ,\n };\n\n case HistoryType.CHANGE_SIGN_ORDER:\n return {\n title: defaultTitle({\n ordered: ordered\n ? t('documentActions.tabs.history.metadata.on')\n : t('documentActions.tabs.history.metadata.off'),\n }),\n color: 'default',\n icon: ,\n };\n\n case HistoryType.CHANGE_HOLDER:\n return {\n title: defaultTitle({ oldHolder, newHolder, context: oldHolder ? 'from' : 'to' }),\n color: 'info',\n icon: ,\n };\n\n case HistoryType.INVALIDATE:\n return {\n title: defaultTitle({ reason }),\n color: 'error',\n icon: ,\n };\n case HistoryType.INVALIDATE_TEMPORARY:\n return {\n title: defaultTitle({ reason }),\n color: 'warning',\n icon: ,\n };\n case HistoryType.EXPIRED:\n return {\n title: defaultTitle(),\n color: 'error',\n icon: ,\n };\n case HistoryType.VALIDATE:\n return {\n title: defaultTitle({ reason }),\n color: 'success',\n icon: ,\n };\n case HistoryType.TRANSFERABILITY_CHANGE:\n return {\n title: defaultTitle({\n transferable: transferable\n ? t('documentActions.tabs.history.metadata.on')\n : t('documentActions.tabs.history.metadata.off'),\n }),\n color: 'default',\n icon: ,\n };\n case HistoryType.TRANSFER_INVITATION_CREATED:\n return {\n title: defaultTitle(),\n color: 'info',\n icon: ,\n };\n case HistoryType.GENERATE_PDF_INVITATION:\n return {\n title: defaultTitle(),\n color: 'info',\n icon: ,\n };\n case HistoryType.TRANSFER_INVITATION_REVOKED:\n return {\n title: defaultTitle(),\n color: 'info',\n icon: ,\n };\n case HistoryType.DELETE_PDF_INVITATION:\n return {\n title: defaultTitle(),\n color: 'error',\n icon: ,\n };\n\n default:\n return {\n color: 'default',\n icon: ,\n };\n }\n };\n\n const getDateGroup = (dateGroup) => {\n const today = moment\n .unix(new Date().getTime() / 1000)\n .locale(language)\n .format('ll');\n const yesterday = moment\n .unix(new Date(Date.now() - 86400000).getTime() / 1000)\n .locale(language)\n .format('ll');\n\n switch (dateGroup) {\n case today:\n return t('calendar.today');\n case yesterday:\n return t('calendar.yesterday');\n default:\n return dateGroup;\n }\n };\n\n const { color, icon, title } = getItemProps();\n\n const itemByText = ` ${t('documentActions.tabs.history.entryByUser', {\n name: user.name,\n interpolation: { escapeValue: false },\n })}`;\n\n return (\n \n {dateActive && (\n \n \n \n \n {getDateGroup(dateGroup)}\n \n \n \n \n )}\n \n \n
    {icon}
    \n
    \n \n {title && (\n \n )}\n\n \n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n \n
    \n \n );\n};\n\nHistoryItem.propTypes = {\n className: PropTypes.string,\n userId: PropTypes.string,\n date: PropTypes.number,\n action: PropTypes.string,\n metadata: PropTypes.shape({\n entityId: PropTypes.string,\n email: PropTypes.string,\n role: PropTypes.string,\n oldName: PropTypes.string,\n newName: PropTypes.string,\n reason: PropTypes.string,\n public: PropTypes.bool,\n ordered: PropTypes.bool,\n transferable: PropTypes.bool,\n newHolder: PropTypes.string,\n oldHolder: PropTypes.string,\n }),\n dateGroup: PropTypes.string,\n dateActive: PropTypes.bool,\n lastDateInGroup: PropTypes.bool,\n};\n\nexport default HistoryItem;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing }) =>\n createStyles({\n root: {\n width: '100%',\n [breakpoints.down('sm')]: {\n position: 'relative',\n },\n },\n topElement: {\n marginBottom: spacing(2),\n [breakpoints.up('lg')]: {\n marginBottom: spacing(4),\n },\n },\n createdItemsList: {\n '& > div': {\n overflow: 'hidden',\n },\n },\n createdItemCell: {\n '&:not(:last-child)': {\n borderBottom: `1px solid ${palette.divider}`,\n [breakpoints.up('xs')]: {\n borderBottom: 0,\n },\n },\n },\n createdItem: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'center',\n paddingLeft: 40 + spacing(0.5),\n '& $createdItemIcon': {\n position: 'absolute',\n left: 0,\n top: '50%',\n transform: `translateY(-50%)`,\n width: 40,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '& svg': {\n width: 20,\n height: 20,\n },\n },\n '& > div': {\n width: '100%',\n },\n },\n createdItemIcon: {},\n entriesList: {},\n entriesListSpacingBottom: {\n [breakpoints.up('md')]: {\n paddingBottom: spacing(1),\n },\n },\n hideShowFullWrapper: {\n position: 'sticky',\n left: 0,\n backgroundColor: palette.background.paper,\n zIndex: 2,\n '&:before': {\n content: \"''\",\n display: 'block',\n position: 'absolute',\n left: 0,\n width: '100%',\n height: spacing(2),\n backgroundColor: 'inherit',\n },\n },\n hideFullWrapper: {\n top: spacing(2),\n paddingBottom: spacing(2),\n '&:before': {\n bottom: '100%',\n },\n },\n showFullWrapper: {\n bottom: spacing(2),\n paddingTop: spacing(2),\n '&:before': {\n top: '100%',\n },\n },\n loaderFile: {\n position: 'absolute',\n zIndex: 3,\n width: '100%',\n left: 0,\n bottom: 0,\n [breakpoints.down('sm')]: {\n bottom: -12,\n },\n },\n noItems: {\n padding: spacing(1.5, 0),\n textAlign: 'center',\n },\n inputDisabled: {\n backgroundColor: 'transparent !important',\n },\n historyChipDisabled: {\n opacity: '1 !important',\n '& $historyChipDeleteButton': {\n display: 'none',\n },\n },\n historyChipDeleteButton: {},\n textButton: { cursor: 'pointer' },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { useParams } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport contactsActions from 'src/redux/actions/contacts.actions';\nimport moment from 'moment';\nimport 'moment/locale/pl'; // without this line it didn't work\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport {\n Button,\n Checkbox,\n Chip,\n LinearProgress,\n ListItemText,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { ExtendedGrid, ResponsiveDateRangePicker } from 'src/components';\nimport { Autocomplete } from '@material-ui/lab';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { HistoryItem } from './subcomponents';\nimport { useStyles } from './styles';\nimport { moduleName as dslService } from '../../../../redux/services/documentDSL.service';\nimport { moduleName as documentService } from '../../../../redux/services/documentCore.service';\nimport { documentDisplaySelector } from '../../../../redux/selectors/documentDisplay.selector';\nimport { HistoryType } from '../../../../models/document.model';\n\nconst History = ({\n className: classNameProp,\n fullHeight,\n onCollapseClick,\n shortListMaxItems,\n smallDevice,\n}) => {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const { language } = i18n;\n const { id } = useParams();\n const dispatch = useDispatch();\n const isCertificate = useSelector(documentDisplaySelector.isCertificate, undefined);\n const apiService = isCertificate ? dslService : documentService;\n const {\n historyDocument,\n historyHasNextPage,\n getDocumentHistoryStatus,\n clearHistoryStatus,\n } = useSelector((state) => state.documentManagementStore, undefined);\n const documentInfo = useSelector((state) => state.documentDisplayStore.document, undefined);\n const { contacts, contactBookEntitiesFetchStatus } = useSelector(\n (state) => state.contactsStore,\n undefined\n );\n\n const { createdAt } = documentInfo;\n\n const [historyType, setHistoryType] = useState([]);\n const [rangeDate, setRangeDate] = useState([\n new Date(createdAt).getTime(),\n new Date().getTime() + 86400000,\n ]);\n const [dateValue, setDateValue] = useState([new Date(createdAt), new Date()]);\n const [missingContacts, setMissingContacts] = useState([]);\n\n const historyTypes = isCertificate\n ? [\n HistoryType.CREATE,\n HistoryType.ADD_ENTITY,\n HistoryType.DELETE_ENTITY,\n HistoryType.DELETE_INVITATION,\n HistoryType.DOWNLOAD,\n HistoryType.REJECT,\n HistoryType.RENAME,\n HistoryType.SIGN,\n HistoryType.SEND_INVITATION,\n HistoryType.VIEW,\n HistoryType.VISIBILITY_CHANGE,\n HistoryType.CHANGE_SIGN_ORDER,\n HistoryType.CHANGE_HOLDER,\n HistoryType.INVALIDATE,\n HistoryType.INVALIDATE_TEMPORARY,\n HistoryType.EXPIRED,\n HistoryType.VALIDATE,\n HistoryType.TRANSFERABILITY_CHANGE,\n HistoryType.TRANSFER_INVITATION_CREATED,\n HistoryType.TRANSFER_INVITATION_REVOKED,\n HistoryType.GENERATE_PDF_INVITATION,\n HistoryType.DELETE_PDF_INVITATION,\n ]\n : [\n HistoryType.SIGN,\n HistoryType.SEND_INVITATION,\n HistoryType.DELETE_INVITATION,\n HistoryType.ADD_ENTITY,\n HistoryType.DELETE_ENTITY,\n HistoryType.DOWNLOAD,\n HistoryType.REJECT,\n HistoryType.RENAME,\n HistoryType.CREATE,\n HistoryType.VIEW,\n ];\n\n const getHistoryTypesTranslations = (type) => ({\n short: t(`historyType.${type}.shortText`),\n normal: t(`historyType.${type}.normalText`),\n });\n\n const isLoading =\n getDocumentHistoryStatus === RequestStatus.IDLE ||\n getDocumentHistoryStatus === RequestStatus.PENDING;\n const documentHistoryStatusSuccess = getDocumentHistoryStatus === RequestStatus.SUCCESS;\n\n const dateFilterIsChange =\n rangeDate[0] !== createdAt && rangeDate[1] !== new Date().getTime() + 86400000;\n\n useEffect(() => {\n if (documentHistoryStatusSuccess) {\n if (((fullHeight && !smallDevice) || smallDevice) && historyHasNextPage) {\n const scrollElement = document.getElementById('scroll-element-sidebar');\n\n const hasVerticalScrollbar = scrollElement?.scrollHeight > scrollElement?.clientHeight;\n if (!hasVerticalScrollbar) {\n fetchMoreHistoryData();\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentHistoryStatusSuccess, fullHeight]);\n\n useEffect(() => {\n if (documentHistoryStatusSuccess && !clearHistoryStatus && dateFilterIsChange) {\n dispatch(documentManagementActions.clearDocumentHistory());\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rangeDate]);\n\n useEffect(() => {\n if (documentHistoryStatusSuccess && clearHistoryStatus) {\n fetchFilterHistoryData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearHistoryStatus]);\n\n const fetchMoreHistoryData = () => {\n if ((fullHeight || smallDevice) && id) {\n dispatch(\n documentManagementActions.getHistoryDocument({\n documentId: id,\n workspaceId: documentInfo.workspaceId,\n limit: 10,\n offset: historyDocument.length,\n performedAction: historyType,\n rangeDate,\n service: apiService,\n })\n );\n }\n };\n\n const clearFilterSetting = () => {\n setHistoryType([]);\n if (rangeDate.length && dateFilterIsChange) {\n setDateValue([new Date(createdAt), new Date()]);\n setRangeDate([new Date(createdAt).getTime(), new Date().getTime() + 86400000]);\n }\n if (historyType.length || dateFilterIsChange) {\n dispatch(documentManagementActions.clearDocumentHistory());\n }\n };\n\n const isFilters = rangeDate.length || historyType.length;\n\n const fetchFilterHistoryData = () => {\n dispatch(\n documentManagementActions.getHistoryDocument({\n documentId: id,\n workspaceId: documentInfo.workspaceId,\n limit: 10,\n offset: historyDocument.length,\n performedAction: historyType,\n rangeDate,\n service: apiService,\n })\n );\n };\n const contactsNotFound = [];\n\n const historyObject =\n smallDevice || fullHeight ? historyDocument : historyDocument.slice(0, shortListMaxItems);\n\n historyObject.map((item, index) => {\n item.dateGroup = moment\n .unix(new Date(item.date) / 1000)\n .locale(language)\n .format('ll');\n item.dateActive = item.dateGroup !== historyObject[index - 1]?.dateGroup;\n item.lastDateInGroup =\n item.dateGroup !==\n moment\n .unix(new Date(historyObject[index + 1]?.date) / 1000)\n .locale(language)\n .format('ll');\n if (\n item.metadata &&\n item.metadata.entityId &&\n !ContactHelper.checkIfIsInProgress(item.metadata.entityId)\n ) {\n contactsNotFound.push(item.metadata.entityId);\n }\n return item;\n });\n\n if (JSON.stringify(contactsNotFound) !== JSON.stringify(missingContacts)) {\n setMissingContacts(contactsNotFound);\n }\n\n useEffect(() => {\n if (missingContacts.length > 0 && contactBookEntitiesFetchStatus !== RequestStatus.PENDING) {\n dispatch(contactsActions.addMissingToQueue(missingContacts));\n }\n }, [missingContacts, contactBookEntitiesFetchStatus, dispatch, contacts]);\n\n return (\n
    \n {!!onCollapseClick && fullHeight && (\n
    \n {\n onCollapseClick();\n clearFilterSetting();\n }}\n >\n \n {t('documentActions.tabs.history.hideFullHistory')}\n \n \n
    \n )}\n\n {(fullHeight || smallDevice) && (\n \n \n {\n if (dateFrom && dateTo) {\n setRangeDate([\n new Date(dateFrom).getTime(),\n new Date(dateTo).getTime() + 86400000,\n ]);\n }\n }}\n />\n \n\n \n {\n const optionText = getHistoryTypesTranslations(option);\n return `${optionText.short} ${optionText.normal}`;\n }}\n // filterSelectedOptions\n value={historyType}\n defaultValue={undefined}\n disableCloseOnSelect\n renderInput={(params) => (\n \n )}\n renderOption={(option, { selected }) => (\n <>\n \n {getHistoryTypesTranslations(option).normal}\n \n )}\n renderTags={(value, getTagProps) =>\n value.map((option, index) => (\n \n ))\n }\n onChange={(event, newInputValue) => {\n setHistoryType(newInputValue);\n dispatch(documentManagementActions.clearDocumentHistory());\n }}\n />\n \n \n )}\n
    \n {historyObject.length ? (\n \n {historyObject.map((item, index) => (\n \n ))}\n \n ) : (\n !isLoading && (\n
    \n \n {t('documentActions.tabs.history.noItems')}{' '}\n {isFilters && (\n <>\n {' - '}\n \n {t('documentActions.tabs.history.clearFilters')}\n \n \n )}\n \n
    \n )\n )}\n\n {isLoading && (\n
    \n \n
    \n )}\n
    \n\n {!!onCollapseClick && !fullHeight && (\n
    \n \n
    \n )}\n
    \n );\n};\n\nHistory.propTypes = {\n className: PropTypes.string,\n shortListMaxItems: PropTypes.number,\n fullHeight: PropTypes.bool,\n onCollapseClick: PropTypes.func,\n smallDevice: PropTypes.bool,\n};\n\nHistory.defaultProps = {\n shortListMaxItems: 4,\n fullHeight: false,\n};\n\nexport default History;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, transitions, typography }) =>\n createStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'nowrap',\n width: '100%',\n padding: spacing(1.5, 0),\n position: 'relative',\n cursor: 'pointer',\n transition: transitions.create(['color'], {\n duration: transitions.duration.short,\n }),\n '&::before': {\n content: '\"\"',\n height: '100%',\n width: '2px',\n position: 'absolute',\n top: '50%',\n left: 7,\n zIndex: 0,\n },\n '&:last-child': {\n '&::before': { display: 'none' },\n },\n '&.waitingColor': {\n '& .itemStepIndicator': {\n backgroundColor: palette.common.white,\n border: `2px solid ${palette.greySimple.main}`,\n },\n '&::before': { backgroundColor: palette.greySimple.main },\n '&:first-child': {\n '& .itemStepIndicator': {\n backgroundColor: palette.common.white,\n border: `2px solid ${palette.success.main}`,\n },\n },\n },\n\n '&.successColor': {\n '& .itemStepIndicator': {\n backgroundColor: palette.success.main,\n border: `2px solid ${palette.success.main}`,\n },\n '&::before': { backgroundColor: palette.success.main },\n },\n\n '&.defaultColor': {\n '& .itemStepIndicator': {\n backgroundColor: palette.common.white,\n border: `2px solid ${palette.greySimple.main}`,\n },\n },\n '&.errorColor': {\n '& .itemStepIndicator': {\n backgroundColor: palette.common.white,\n border: `2px solid ${palette.error.main}`,\n },\n '&::before': { backgroundColor: palette.greySimple.main },\n },\n '&:hover, &:focus': {\n color: palette.primary.main,\n },\n '&:first-child': {\n '& .waitingColor': {\n backgroundColor: palette.common.white,\n border: `2px solid ${palette.success.main}`,\n },\n },\n },\n deleteItem: {\n pointerEvents: 'none',\n '& [class*=\"UserAvatarAndTextItem-iconWrapper\"]': {\n opacity: 0.5,\n filter: 'grayscale(50%)',\n },\n '& p, & span': {\n fontWeight: typography.fontWeightRegular,\n color: palette.text.disabled,\n },\n },\n user: {\n flex: 1,\n overflow: 'hidden',\n },\n tag: {\n marginLeft: spacing(1),\n minWidth: 100,\n textAlign: 'center',\n justifyContent: 'center',\n },\n tooltip: {\n display: 'flex',\n alignItems: 'center',\n '& > div': {\n display: 'inherit',\n alignItems: 'inherit',\n '&:not(:last-child)': {\n marginRight: spacing(1.5),\n },\n },\n '& svg': {\n width: 14,\n height: 14,\n marginRight: spacing(0.5),\n },\n },\n additionalUserText: {\n fontSize: typography.subtitle2.fontSize,\n },\n authorText: {\n color: palette.warning.main,\n },\n youText: {\n color: palette.text.secondary,\n },\n additionalInfo: {\n display: 'block',\n marginTop: spacing(0.5),\n },\n weightMedium: {\n fontWeight: typography.fontWeightMedium,\n },\n itemStep: {\n width: 16,\n height: 16,\n borderRadius: 16,\n marginRight: 9,\n zIndex: 1,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst RecipientItemStep = () => {\n const classes = useStyles();\n return
    ;\n};\n\nexport default RecipientItemStep;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { AvatarAndTextItem, Tag } from 'src/components';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { DocumentRole } from 'src/models/document.model';\nimport { useSelector } from 'react-redux';\nimport { RegexFormulas } from 'src/helpers/regex';\nimport { useStyles } from './styles';\nimport RecipientItemStep from './RecipientItemStep';\n\nconst getItemColor = (status) => {\n switch (status) {\n case 'SIGNED':\n return 'success';\n case 'REJECTED_SIGNATURE':\n return 'error';\n case 'AWAITING_SIGNATURE':\n return 'waiting';\n case 'PARTICIPANT':\n return 'default';\n default:\n return 'default';\n }\n};\n\nconst RecipientsItem = ({ className: classNameProp, userId, status, role, active, userData }) => {\n const { t } = useTranslation();\n const [didMount, setDidMount] = useState(false);\n const classes = useStyles();\n\n useEffect(() => {\n setDidMount(true);\n return () => setDidMount(false);\n }, []);\n\n const currentIdentityId = useSelector(\n (state) => state.identityStore.currentIdentity?.identity.identityId,\n undefined\n );\n const { document: documentInfo } = useSelector((state) => state.documentDisplayStore, undefined);\n\n const { isOrderSignificant } = useSelector((state) => state.documentInvitationsStore, undefined);\n const isSigningOrderAvailable = useSelector(\n IdentitySelector.hasSigningOrderPermission,\n undefined\n );\n\n const { authorId } = documentInfo;\n\n const user = userData || { name: userId, email: userId, active };\n\n const getColorAndTextStatus = () => {\n switch (status) {\n case 'SIGNED':\n return {\n color: 'success',\n text: t('documentActions.tabs.recipients.status.signed'),\n };\n\n case 'REJECTED_SIGNATURE':\n return {\n color: 'error',\n text: t('documentActions.tabs.recipients.status.reject'),\n };\n case 'AWAITING_SIGNATURE':\n return {\n color: 'info',\n text: t('documentActions.tabs.recipients.status.waiting'),\n };\n case 'PARTICIPANT':\n return {\n color: 'default',\n text: t('documentActions.tabs.recipients.status.preview'),\n };\n\n default:\n return {\n color: '',\n text: '',\n };\n }\n };\n\n const getColorAndTextRole = () => {\n switch (role.toLowerCase()) {\n case DocumentRole.SIGNERS:\n return {\n color: 'info',\n text: t('documentActions.tabs.recipients.status.waiting'),\n };\n case DocumentRole.ADMINS:\n return {\n color: 'default',\n text: t('documentActions.tabs.recipients.role.admin'),\n };\n case DocumentRole.VIEWERS:\n return {\n color: 'default',\n text: t('documentActions.tabs.recipients.role.viewer'),\n };\n case DocumentRole.AUDITORS:\n return {\n color: 'default',\n text: t('documentActions.tabs.recipients.role.auditor'),\n };\n case DocumentRole.HOLDER:\n return {\n color: 'default',\n text: t('documentActions.tabs.recipients.role.holder'),\n };\n case DocumentRole.EDITORS:\n return {\n color: 'default',\n text: t('documentActions.tabs.recipients.role.editor'),\n };\n default:\n return {\n color: '',\n text: '',\n };\n }\n };\n\n const additionalTextArray = [];\n\n if (userId === authorId) {\n additionalTextArray.push({\n classes: clsx(classes.additionalUserText, classes.authorText),\n text: `(${t('common.author')})`,\n });\n }\n if (userId === currentIdentityId) {\n additionalTextArray.push({\n classes: clsx(classes.additionalUserText, classes.youText),\n text: `(${t('common.you')})`,\n });\n }\n\n if (!user.active) {\n additionalTextArray.push({\n classes: clsx(classes.additionalUserText, classes.youText),\n text: `(${t('common.removed')})`,\n });\n }\n\n if (!userId) {\n additionalTextArray.push({\n classes: clsx(classes.additionalUserText, classes.youText, classes.additionalInfo),\n text: `(${t('common.invitationByMail')})`,\n });\n } else {\n const matchedIdentity = ContactHelper.getEntityData(userId);\n if (matchedIdentity && !matchedIdentity.isFromOrganisation) {\n additionalTextArray.push({\n classes: clsx(\n classes.additionalUserText,\n classes.youText,\n classes.additionalInfo,\n matchedIdentity.email !== matchedIdentity.workspaceName && classes.weightMedium\n ),\n text:\n matchedIdentity.email !== matchedIdentity.workspaceName\n ? matchedIdentity.workspaceName\n : t('inviteToDocument.entitiesList.outsideOrganization'),\n });\n }\n }\n\n const { color: tagColor, text: tagText } = getColorAndTextStatus();\n const { color: roleColor, text: roleText } = getColorAndTextRole();\n if (!didMount || !user) {\n return null;\n }\n\n if (user) {\n return (\n \n {role === DocumentRole.SIGNERS &&\n user.active &&\n isOrderSignificant &&\n isSigningOrderAvailable && }\n \n\n {tagText && role === DocumentRole.SIGNERS && user.active && (\n \n {tagText}\n \n )}\n {roleText && (role !== DocumentRole.SIGNERS || status === undefined) && user.active && (\n \n {roleText}\n \n )}\n
    \n );\n }\n return null;\n};\n\nRecipientsItem.propTypes = {\n className: PropTypes.string,\n userData: PropTypes.shape({\n name: PropTypes.string,\n email: PropTypes.string,\n }),\n userId: PropTypes.string,\n status: PropTypes.string,\n active: PropTypes.string,\n role: PropTypes.string,\n};\n\nexport default RecipientsItem;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Typography } from '@material-ui/core';\nimport { DocumentRole } from 'src/models/document.model';\n\nconst SingersCounter = ({ signers }) => {\n const { documentSigners, documentInvitations } = useSelector(\n (state) => state.documentManagementStore,\n undefined\n );\n const invitedNr = documentInvitations.filter((el) => el.role === DocumentRole.SIGNERS).length;\n const signedNr = signers.filter((obj) => Object.is(obj.status, 'SIGNED')).length;\n return (\n \n {signedNr} / {documentSigners.length + invitedNr}\n \n );\n};\n\nSingersCounter.propTypes = {\n signers: PropTypes.arrayOf(\n PropTypes.shape({\n status: PropTypes.string,\n })\n ),\n};\n\nexport default SingersCounter;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing, palette }) =>\n createStyles({\n root: {\n width: '100%',\n },\n tabHeader: {},\n advancedSettings: {\n marginBottom: spacing(2),\n },\n icon: {\n borderRadius: 10,\n display: 'flex',\n padding: spacing(0.5),\n marginRight: spacing(1),\n '& svg': {\n fontSize: 18,\n },\n },\n iconSuccess: {\n color: palette.greySimple.contrastText,\n backgroundColor: palette.success.light,\n },\n iconDefault: {\n backgroundColor: palette.greySimple.main,\n color: palette.greySimple.contrastText,\n },\n entriesList: {\n paddingTop: spacing(0.5),\n },\n entriesDividerText: {\n padding: spacing(0.5, 0),\n marginTop: spacing(2),\n marginBottom: 0,\n },\n noItems: {\n padding: spacing(1.5, 0),\n textAlign: 'center',\n },\n entriesListTitle: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: spacing(1),\n },\n helpIcon: {\n color: palette.primary.main,\n marginLeft: 4,\n fontSize: 16,\n },\n }),\n { index: 0 }\n);\n","import { useEffect, useRef, useState } from 'react';\nimport { debounceTime, from } from 'rxjs';\nimport documentDSLServices from 'src/redux/services/documentDSL.service';\nimport { DocumentRole } from 'src/models/document.model';\nimport ContactHelper from '../../helpers/contactHelper';\n\nexport const sortInvitedSigners = ({ itemsToSort, sortingArray }) => {\n const sortFunc = (a, b) =>\n a.identityId\n ? sortingArray.indexOf(a.identityId) - sortingArray.indexOf(b.identityId)\n : sortingArray.indexOf(a.id) - sortingArray.indexOf(b.id);\n\n return itemsToSort.sort(sortFunc);\n};\n\nexport const getOrderSigningRestrictions = ({\n signers,\n isOrderSignificant,\n isSigningOrderAvailable,\n activeIdentity,\n}) => {\n const userToSign = signers.find((member) => member.status === 'AWAITING_SIGNATURE');\n // if document has disabled order or workspace has disabled order then enable to sign\n if (isOrderSignificant === false || isSigningOrderAvailable === false) {\n return {\n canSignDueToOrder: true,\n userToSign: '',\n };\n }\n // if there is no any waitng user or no contacts signers or activity not loaded\n if (Boolean(userToSign) === false || Boolean(activeIdentity) === false)\n return {\n canSignDueToOrder: true,\n userToSign: '',\n };\n // check if first awaiting index is same as current user\n const canSignDueToOrder =\n signers.findIndex((member) => member.status === 'AWAITING_SIGNATURE') ===\n signers.findIndex((member) => member.id === activeIdentity.identity.identityId);\n\n // get contact identity name of user who should sign now\n return {\n canSignDueToOrder,\n userToSign: userToSign.userData.name || '',\n };\n};\n\nexport const sortingMembers = (members) =>\n members\n .sort((a, b) => {\n if (a.userData?.email < b.userData?.email) return 1;\n if (a.userData?.email > b.userData?.email) return -1;\n return 0;\n })\n .sort((a, b) => {\n if (a.role < b.role) return -1;\n if (a.role > b.role) return 1;\n return 0;\n })\n .sort((a, b) => {\n if (a.position < b.position) return -1;\n if (a.position > b.position) return 1;\n return 0;\n });\n\nexport const prepareDocumentMembers = ({ documentMembers, contactsNotFound }) =>\n documentMembers.map((member) => {\n const matchedIdentity = ContactHelper.getEntityData(member.id);\n\n if (!matchedIdentity) {\n if (!ContactHelper.checkIfIsInProgress(member.id)) {\n contactsNotFound.push(member.id);\n }\n } else {\n return {\n ...member,\n position: member.role === DocumentRole.SIGNERS ? 1 : 3,\n userData: matchedIdentity.isGroup\n ? {\n name: matchedIdentity.name,\n email: matchedIdentity.name,\n active: matchedIdentity.active,\n group: true,\n }\n : {\n name: matchedIdentity.name,\n email: matchedIdentity.email,\n active: matchedIdentity.active,\n group: false,\n },\n };\n }\n return { ...member, userData: { name: member.id, email: member.id } };\n });\n\nexport const useTransactions = (documentId, listener = null, isCertificate = false) => {\n const subRef = useRef(null);\n const [state, setState] = useState({\n isLoading: false,\n allowedTransactions: [],\n });\n\n const refresh = async () => {\n if (!state.isLoading) {\n const response = await documentDSLServices.checkAvailableMutations(documentId);\n\n subRef.current?.next(response);\n }\n };\n\n useEffect(() => {\n if (documentId && isCertificate) {\n setState({\n isLoading: true,\n allowedTransactions: [],\n });\n subRef.current = from(documentDSLServices.checkAvailableMutations(documentId))\n .pipe(debounceTime(1000))\n .subscribe({\n next: (response) => {\n setState({\n isLoading: false,\n allowedTransactions: response.data.data.mutationCollection,\n });\n },\n error: (error) => {\n console.log('error -', error);\n setState({\n isLoading: false,\n allowedTransactions: [],\n });\n },\n });\n }\n\n return () => {\n subRef.current?.unsubscribe();\n };\n }, [documentId, listener, isCertificate]);\n\n return {\n isLoading: state.isLoading,\n allowedTransactions: state.allowedTransactions,\n refresh,\n };\n};\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { Button, CircularProgress, Tooltip, Typography } from '@material-ui/core';\nimport { Help, MobileDataOff, PublicOff, Users as UsersIcon } from 'src/components/CustomIcon';\nimport { useDispatch, useSelector } from 'react-redux';\nimport contactsActions from 'src/redux/actions/contacts.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { DocumentRole } from 'src/models/document.model';\nimport { ImportExportRounded, PublicRounded } from '@material-ui/icons';\nimport { RecipientsItem, SingersCounter } from './subcomponents';\nimport { TabHeader } from '../../subcomponents';\nimport { useStyles } from './styles';\nimport { prepareDocumentMembers, sortingMembers, sortInvitedSigners } from '../../helpers';\n\nconst Recipients = ({\n className: classNameProp,\n enableInviting,\n openInvitationsManagementDialog,\n}) => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const [didMount, setDidMount] = useState(false);\n const [getEntityStatus, setGetEntityStatus] = useState(false);\n const [missingContacts, setMissingContacts] = useState([]);\n const [parsedMembers, setParsedMembers] = useState([]);\n const [allMembersAndInvitations, setAllMembersAndInvitations] = useState([]);\n const history = useHistory();\n\n useEffect(() => {\n setDidMount(true);\n return () => setDidMount(false);\n }, []);\n\n const {\n documentMembers,\n documentSigners,\n documentInvitations,\n getDocumentMembersStatus,\n getDocumentInvitationsStatus,\n } = useSelector((state) => state.documentManagementStore, undefined);\n\n const { contacts, contactBookEntitiesFetchStatus } = useSelector(\n (state) => state.contactsStore,\n undefined\n );\n\n const { document } = useSelector((state) => state.documentDisplayStore);\n\n const contactsNotFound = [];\n const preparedMembers = prepareDocumentMembers({ documentMembers, contactsNotFound });\n\n if (JSON.stringify(preparedMembers) !== JSON.stringify(parsedMembers)) {\n setParsedMembers(preparedMembers);\n } else if (\n JSON.stringify(preparedMembers) === JSON.stringify(parsedMembers) &&\n !getEntityStatus\n ) {\n setGetEntityStatus(true);\n }\n\n useEffect(() => {\n if (getDocumentInvitationsStatus === RequestStatus.SUCCESS && getEntityStatus) {\n const invitationsRender = documentInvitations.map((item) => {\n let itemId = null;\n if (!item.mail && item.role === DocumentRole.HOLDER) {\n item.name = t('common.generatedToken');\n itemId = 'PDF';\n }\n return {\n id: itemId,\n role: item.role,\n status: item.status,\n position: item.role === DocumentRole.SIGNERS ? 2 : 4,\n userData: {\n name: item.name ? item.name : item.mail,\n email: item.mail,\n active: true,\n },\n };\n });\n\n setAllMembersAndInvitations(sortingMembers(parsedMembers.concat(invitationsRender)));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getDocumentInvitationsStatus, parsedMembers]);\n\n if (JSON.stringify(contactsNotFound) !== JSON.stringify(missingContacts)) {\n setMissingContacts(contactsNotFound);\n }\n\n const isLoading =\n getDocumentMembersStatus === RequestStatus.IDLE ||\n getDocumentMembersStatus === RequestStatus.PENDING;\n\n useEffect(() => {\n if (missingContacts.length > 0 && contactBookEntitiesFetchStatus !== RequestStatus.PENDING) {\n dispatch(contactsActions.addMissingToQueue(missingContacts));\n }\n }, [missingContacts, contactBookEntitiesFetchStatus, dispatch, contacts]);\n\n const [signers, restOfMembers] = allMembersAndInvitations.reduce(\n ([p, f], e) => (e.role === DocumentRole.SIGNERS ? [[...p, e], f] : [p, [...f, e]]),\n [[], []]\n );\n\n const hasSigners = signers.length > 0;\n const hasRestOfMembers = restOfMembers.length > 0;\n\n const isCertificate = history.location.pathname.includes('certificate');\n\n if (!didMount) {\n return null;\n }\n\n return (\n
    \n
    \n }\n onClick={openInvitationsManagementDialog}\n >\n {t('documentActions.tabs.recipients.sharingManage')}\n \n )\n }\n classes={{ root: classes.tabHeader }}\n />\n {isCertificate && (\n <>\n
    \n \n {t('inviteToDocument.section.advancedSettings.title')}\n \n
    \n {Object.keys(document).length !== 0 && (\n
    \n {document?.publicFile ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )}\n {document?.publicFile\n ? t('documentActions.tabs.recipients.checkboxes.publicAccess.title')\n : t('documentActions.tabs.recipients.checkboxes.publicAccess.titlePrivate')}\n\n \n \n \n
    \n )}\n {document?.additionalAttributes && (\n
    \n {document?.additionalAttributes?.transferable ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )}\n {document?.additionalAttributes?.transferable\n ? t('documentActions.tabs.recipients.checkboxes.retransferCertificate.title')\n : t(\n 'documentActions.tabs.recipients.checkboxes.retransferCertificate.titleNonTransferable'\n )}\n \n \n \n
    \n )}\n \n )}\n\n {hasSigners || hasRestOfMembers ? (\n <>\n {hasSigners && (\n <>\n
    \n \n {t('documentActions.tabs.recipients.header.signers')}\n \n \n
    \n
    \n {sortInvitedSigners({\n itemsToSort: signers,\n sortingArray: documentSigners,\n }).map((item, index) => (\n \n ))}\n
    \n \n )}\n\n {hasRestOfMembers && (\n <>\n \n {t('documentActions.tabs.recipients.otherRoles')}\n \n {restOfMembers.map((item, index) => (\n \n ))}\n \n )}\n \n ) : (\n
    \n {isLoading ? (\n \n ) : (\n \n {t('documentActions.tabs.recipients.noItems')}\n \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nRecipients.propTypes = {\n className: PropTypes.string,\n enableInviting: PropTypes.bool.isRequired,\n openInvitationsManagementDialog: PropTypes.func,\n};\n\nexport default Recipients;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n documentStatusText: {\n color: 'inherit',\n marginLeft: '10px',\n },\n\n modal: {\n width: '400px',\n borderRadius: '6px',\n background: palette.common.white,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n padding: '40px 20px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'space-around',\n boxSizing: 'border-box',\n },\n\n header: {\n textAlign: 'center',\n marginBottom: '15px',\n },\n\n message: {\n textAlign: 'center',\n marginBottom: '20px',\n },\n\n messageWithWarning: {\n color: palette.warning.main,\n },\n\n messageWithError: {\n color: palette.error.main,\n },\n\n submitButton: {\n marginBottom: '10px',\n },\n\n textArea: {\n width: '100%',\n marginBottom: '20px',\n },\n\n documentStatus: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: '20px',\n\n '&.success': {\n color: palette.success.main,\n },\n\n '&.default': {\n color: palette.text.secondary,\n },\n\n '&.error': {\n color: palette.error.main,\n },\n\n '&.info': {\n color: palette.info.main,\n },\n\n '&.warning': {\n color: palette.warning.main,\n },\n },\n\n successButton: {\n marginBottom: '10px',\n backgroundColor: palette.success.main,\n color: palette.common.white,\n\n '&:hover': {\n backgroundColor: palette.success.main,\n borderColor: palette.common.white,\n boxShadow: 'none',\n },\n '&:active': {\n backgroundColor: palette.success.main,\n borderColor: palette.common.white,\n },\n },\n\n errorButton: {\n marginBottom: '10px',\n backgroundColor: palette.error.main,\n color: palette.common.white,\n border: `1px solid ${palette.error.main}`,\n\n '&:hover': {\n backgroundColor: palette.error.main,\n borderColor: palette.common.white,\n boxShadow: 'none',\n },\n '&:active': {\n backgroundColor: palette.error.main,\n borderColor: palette.common.white,\n },\n },\n\n warningButton: {\n marginBottom: '10px',\n backgroundColor: palette.warning.main,\n color: palette.common.white,\n\n '&:hover': {\n backgroundColor: palette.warning.main,\n borderColor: palette.common.white,\n boxShadow: 'none',\n },\n '&:active': {\n backgroundColor: palette.warning.main,\n borderColor: palette.common.white,\n },\n },\n\n button: {\n marginBottom: '10px',\n backgroundColor: palette.primary.main,\n color: palette.common.white,\n\n '&:hover': {\n backgroundColor: palette.primary.main,\n borderColor: palette.common.white,\n boxShadow: 'none',\n },\n '&:active': {\n backgroundColor: palette.primary.main,\n borderColor: palette.common.white,\n },\n },\n }),\n { index: 0 }\n);\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, typography }) =>\n createStyles({\n wrapper: {\n position: 'relative',\n background: palette.background.default,\n padding: '16px 54px',\n borderRadius: 8,\n marginBottom: 16,\n },\n icon: {\n color: palette.primary.main,\n position: 'absolute',\n left: 16,\n top: 20,\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 20,\n },\n button: {\n position: 'absolute',\n right: 16,\n top: 20,\n },\n bold: {\n fontWeight: typography.fontWeightMedium,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { node, string } from 'prop-types';\nimport { Typography } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst InfoSection = ({ title, description, startIcon, endButton, children }) => {\n const classes = useStyles();\n return (\n
    \n
    {startIcon}
    \n
    \n {title && (\n \n {title}\n \n )}\n {description && {description}}\n
    \n {children &&
    {children}
    }\n
    {endButton}
    \n
    \n );\n};\n\nInfoSection.propTypes = {\n startIcon: node,\n endButton: node,\n children: node,\n title: string,\n description: string,\n};\n\nexport default InfoSection;\n","import React from 'react';\nimport { string, any } from 'prop-types';\nimport { Typography } from '@material-ui/core';\nimport { useStyles } from './styles';\n\nconst LabelValueReadonly = ({ label, value }) => {\n const classes = useStyles();\n\n return (\n \n {label && {label}}\n {value ? (\n \n {value}\n \n ) : (\n '-'\n )}\n \n );\n};\n\nLabelValueReadonly.propTypes = {\n label: string,\n // eslint-disable-next-line react/forbid-prop-types\n value: any,\n};\n\nexport default LabelValueReadonly;\n","import React, { useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport {\n Button,\n CircularProgress,\n Fab,\n useMediaQuery,\n Typography,\n Modal,\n Box,\n TextField,\n Menu,\n MenuItem,\n ListItemIcon,\n} from '@material-ui/core';\nimport {\n FileEdit as SignedDocumentIcon,\n OpenInNew as OpenInNewIcon,\n FilesWithShield as FilesWithShieldIcon,\n Shield as ShieldIcon,\n Download as DownloadIcon,\n Settings as SettingsIcon,\n ImportExport as ImportExportIcon,\n Check as CheckIcon,\n Close as CloseIcon,\n Stopwatch as StopwatchIcon,\n CertificateIcon,\n HourglassProgress,\n PenOutlined,\n} from 'src/components/CustomIcon';\nimport clsx from 'clsx';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { CheckCircleOutline } from '@material-ui/icons';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport certificateManagementActions from 'src/redux/actions/certificateManagement.actions';\nimport { MUTATION_NAMES } from 'src/redux/services/documentDSL.service';\nimport { ExtendedGrid } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useTransactions } from 'src/pages/DocumentActions/helpers';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport { getStatusName } from 'src/models/document.model';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport { DateTimeFormats, FormatDate } from 'src/helpers/dateTimeFormats';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { DocumentStatus, TemplateDocumentType } from 'src/models/documents.model';\nimport { useStyles } from './styles';\nimport { TabHeader } from '../../subcomponents';\nimport InfoSection from './subcomponents/InfoSection';\nimport LabelValueReadonly from './subcomponents/LabelValueReadonly';\nimport {\n templateTypeToDocumentType,\n userComActions,\n} from '../../../../redux/actions/userCom.actions';\n\nconst MODAL_TYPES = {\n TRANSFER_OWNERSHIP: 'TRANSFER_OWNERSHIP',\n REVALIDATE: 'REVALIDATE',\n TEMPORARILY_INVALIDATE: 'TEMPORARILY_INVALIDATE',\n INVALIDATE: 'INVALIDATE',\n};\n\nconst Info = () => {\n const { t } = useTranslation();\n\n const dispatch = useDispatch();\n const history = useHistory();\n const isCertificate = history.location.pathname.includes('certificate');\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n const { document: documentInfo } = useSelector((state) => state.documentDisplayStore, undefined);\n\n const expiresOn = useSelector(documentDisplaySelector.selectDocumentExpiresOn, undefined);\n const { getDocumentCardStatus, documentSigners } = useSelector(\n (state) => state.documentManagementStore,\n undefined\n );\n\n const { isLoading, allowedTransactions } = useTransactions(\n documentInfo?.id,\n documentInfo?.status,\n isCertificate\n );\n\n const classes = useStyles();\n\n const smallDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const showInExplorer = () => {\n window\n .open(`${process.env.REACT_APP_EXPLORER_FRONT_URL}document/${documentInfo.id}`, '_blank')\n .focus();\n };\n\n const [settingsAnchorEl, setSettingsAnchorEl] = useState(null);\n const [modalState, setModalState] = useState({ open: false, type: null });\n const [reason, setReason] = useState('');\n\n const handleCloseModal = () => {\n setModalState({ open: false, type: null });\n setReason('');\n };\n\n const handleSettingsClick = (event) => {\n setSettingsAnchorEl(event.currentTarget);\n };\n\n const handleSettingsClose = () => {\n setSettingsAnchorEl(null);\n };\n\n const open = Boolean(settingsAnchorEl);\n const id = open ? 'document-details-settings-popover' : undefined;\n\n const isDownloadingDocumentCard = getDocumentCardStatus === RequestStatus.PENDING;\n\n const downloadDocumentCard = () => {\n dispatch(documentManagementActions.getDocumentCard(documentInfo.id, documentInfo.workspaceId));\n userComActions.document.docCardDownloaded(\n templateTypeToDocumentType(documentInfo.templateType),\n workspaceId\n );\n };\n const author = ContactHelper.getEntityData(documentInfo?.authorId);\n\n const handleChangeReason = (e) => {\n setReason(e.target.value);\n };\n\n const triggerTransferOwnership = () => {\n handleSettingsClose();\n setModalState({ open: true, type: MODAL_TYPES.TRANSFER_OWNERSHIP });\n };\n\n const triggerRevalidate = () => {\n handleSettingsClose();\n setModalState({ open: true, type: MODAL_TYPES.REVALIDATE });\n };\n\n const triggerTemporarilyInvalidate = () => {\n handleSettingsClose();\n setModalState({ open: true, type: MODAL_TYPES.TEMPORARILY_INVALIDATE });\n };\n\n const triggerInvalidate = () => {\n handleSettingsClose();\n setModalState({ open: true, type: MODAL_TYPES.INVALIDATE });\n };\n\n const getDocumentTabInfo = () => {\n switch (documentInfo?.documentType) {\n case TemplateDocumentType.DOCUMENT_TO_BE_SIGNED:\n return {\n icon: ,\n title: t('documentActions.tabs.info.documentWithSignature.title'),\n description: t('documentActions.tabs.info.documentWithSignature.description'),\n };\n case TemplateDocumentType.DURABLE_MEDIA:\n return {\n icon: ,\n title: t('documentActions.tabs.info.durableMedia.title'),\n description: t('documentActions.tabs.info.durableMedia.description'),\n };\n\n default:\n return {\n icon: ,\n title: t('documentActions.tabs.info.certificate.title'),\n description: t('documentActions.tabs.info.certificate.description'),\n };\n }\n };\n\n const renderModal = (() => {\n const submit = () => {\n if (modalState.type === MODAL_TYPES.INVALIDATE) {\n dispatch(\n certificateManagementActions.invalidateCertificate(documentInfo.id, workspaceId, reason)\n );\n handleCloseModal();\n\n return;\n }\n\n if (modalState.type === MODAL_TYPES.REVALIDATE) {\n dispatch(\n certificateManagementActions.validateCertificate(documentInfo.id, workspaceId, reason)\n );\n handleCloseModal();\n\n return;\n }\n\n if (modalState.type === MODAL_TYPES.TEMPORARILY_INVALIDATE) {\n dispatch(\n certificateManagementActions.invalidateTemporarilyCertificate(\n documentInfo.id,\n workspaceId,\n reason\n )\n );\n handleCloseModal();\n\n return;\n }\n\n if (modalState.type === MODAL_TYPES.TRANSFER_OWNERSHIP) {\n history.push(`/transfer-ownership/${documentInfo.id}`);\n }\n };\n\n switch (modalState.type) {\n case MODAL_TYPES.TRANSFER_OWNERSHIP:\n return (\n <>\n \n {t('documentActions.tabs.info.transferOwnership.title')}\n \n \n {t('documentActions.tabs.info.transferOwnership.confirmation')}\n \n\n
    \n \n {t('documentActions.tabs.info.transferOwnership.submit')}\n \n \n {t('common.cancel')}\n \n
    \n \n );\n\n case MODAL_TYPES.REVALIDATE:\n return (\n <>\n \n {t('documentActions.tabs.info.settings.revalidate.title')}\n \n \n {t('documentActions.tabs.info.settings.revalidate.caption')}\n \n \n
    \n \n {t('documentActions.tabs.info.settings.revalidate.submit')}\n \n \n
    \n \n );\n\n case MODAL_TYPES.TEMPORARILY_INVALIDATE:\n return (\n <>\n \n {t('documentActions.tabs.info.settings.temporarilyInvalidate.title')}\n \n \n }}\n />\n \n \n
    \n \n {t('documentActions.tabs.info.settings.temporarilyInvalidate.submit')}\n \n \n {t('common.cancel')}\n \n
    \n \n );\n\n case MODAL_TYPES.INVALIDATE:\n return (\n <>\n \n {t('documentActions.tabs.info.settings.invalidate.title')}\n \n \n }}\n />\n \n \n
    \n \n {t('documentActions.tabs.info.settings.invalidate.submit')}\n \n \n {t('common.cancel')}\n \n
    \n \n );\n default:\n return null;\n }\n })();\n\n const mediumScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('md'));\n\n // TODO: remove after decision\n const getStatusComponent = (text, color = 'default', icon = null) => {\n const containerStyle = clsx(classes.documentStatus, color);\n\n return (\n
    \n {icon}\n \n {text}\n \n
    \n );\n };\n\n const status = (() => {\n const statusText = documentInfo.status;\n\n const statusName = getStatusName({\n status: statusText,\n isShort: mediumScreen,\n t,\n isCertificate,\n });\n if (documentSigners.length === 0) {\n return getStatusComponent(\n getStatusName({\n status: DocumentStatus.READY_FOR_PREVIEW,\n isShort: mediumScreen,\n t,\n isCertificate,\n }),\n 'success',\n \n );\n }\n switch (statusText) {\n case DocumentStatus.ISSUING:\n case DocumentStatus.SIGNING:\n return getStatusComponent(statusName, 'info', );\n case DocumentStatus.EDITING:\n return getStatusComponent(statusName, 'default', );\n case DocumentStatus.FINISHED:\n case DocumentStatus.READY_FOR_PREVIEW:\n case DocumentStatus.VALID:\n return getStatusComponent(statusName, 'success', );\n case DocumentStatus.EXPIRED:\n case DocumentStatus.INVALIDATED:\n case DocumentStatus.REJECTED:\n return getStatusComponent(statusName, 'error', );\n\n case DocumentStatus.TEMPORARILY_INVALIDATE:\n return getStatusComponent(statusName, 'warning', );\n default:\n return getStatusComponent(statusText?.[0].toUpperCase() + statusText?.slice(1));\n }\n })();\n\n const AVAILABLE_MUTATIONS = allowedTransactions?.map((mutation) => mutation.transitionName);\n const hasAnyAction =\n AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.CHANGE_HOLDER) ||\n AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.INVALIDATE_TEMPORARILY_DOCUMENT) ||\n AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.INVALIDATE_DOCUMENT) ||\n AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.VALIDATE_DOCUMENT);\n\n return (\n <>\n \n {renderModal}\n \n {!isLoading && (\n \n {AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.CHANGE_HOLDER) && (\n \n \n \n \n \n {t('documentActions.tabs.info.transferOwnership.title')}\n \n \n )}\n\n {AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.VALIDATE_DOCUMENT) && (\n \n \n \n \n \n {t('documentActions.tabs.info.settings.revalidate.title')}\n \n \n )}\n\n {AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.INVALIDATE_TEMPORARILY_DOCUMENT) && (\n \n \n \n \n \n {t('documentActions.tabs.info.settings.temporarilyInvalidate.title')}\n \n \n )}\n\n {AVAILABLE_MUTATIONS.includes(MUTATION_NAMES.INVALIDATE_DOCUMENT) && (\n \n \n \n \n \n {t('documentActions.tabs.info.settings.invalidate.title')}\n \n \n )}\n \n )}\n
    \n }\n onClick={showInExplorer}\n >\n {t('documentActions.tabs.info.showInExplorer')}\n \n }\n />\n\n \n \n \n )\n }\n >\n {status}\n\n \n \n \n }\n />\n \n {isCertificate && (\n \n \n ) : (\n t('common.noExpiring')\n )\n }\n />\n \n )}\n \n \n \n \n\n }\n title={t('documentActions.tabs.info.documentCard.title')}\n description={t('documentActions.tabs.info.documentCard.description')}\n endButton={\n \n {isDownloadingDocumentCard ? : }\n \n }\n />\n
    \n \n );\n};\n\nexport default Info;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmDialog } from 'src/components';\n\nconst SigningBannerAfterTextModal = ({ open = false, onClose, description = '' }) => {\n const { t } = useTranslation();\n\n return (\n \n );\n};\n\nSigningBannerAfterTextModal.propTypes = {\n open: PropTypes.bool,\n onClose: PropTypes.func,\n description: PropTypes.string,\n};\n\nexport default SigningBannerAfterTextModal;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, breakpoints }) =>\n createStyles({\n notification: {\n opacity: 0,\n pointerEvents: 'none',\n borderRadius: '6px',\n borderColor: palette.success.main,\n marginBottom: '20px',\n transition: 'opacity 0.4s',\n [breakpoints.down('sm')]: {\n borderRadius: 0,\n marginBottom: 0,\n },\n '&.visible': {\n opacity: '1',\n pointerEvents: 'initial',\n transition: 'opacity 0.4s',\n },\n\n '&.error': {\n border: '1px solid',\n borderColor: palette.error.main,\n },\n '&.warning': {\n border: '1px solid',\n borderColor: palette.warning.main,\n },\n '&.info': {\n border: '1px solid',\n borderColor: palette.info.main,\n },\n },\n notificationHeader: {\n display: 'flex',\n alignItem: 'center',\n justifyContent: 'space-between',\n borderRadius: '6px',\n padding: '20px',\n backgroundColor: palette.success.main,\n color: palette.common.white,\n border: `1px solid`,\n borderColor: 'inherit',\n transition: 'border-radius 0.8s',\n boxSizing: 'border-box',\n fontWeight: '500',\n [breakpoints.down('sm')]: {\n borderRadius: 0,\n },\n '&.error': {\n backgroundColor: palette.error.main,\n },\n '&.warning': {\n backgroundColor: palette.warning.main,\n },\n '&.info': {\n backgroundColor: palette.info.main,\n },\n },\n notificationContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n borderRadius: '6px',\n\n height: 'auto',\n boxSizing: 'border-box',\n padding: '0 20px',\n transition: 'height .4s, border-color 0.8s',\n overflow: 'hidden',\n },\n\n notificationContentAvatar: {\n margin: '20px 0',\n },\n\n notificationContentMessage: {\n marginBottom: '20px',\n },\n }),\n { index: 0 }\n);\n","import { Typography, useMediaQuery } from '@material-ui/core';\nimport { CheckCircleOutline } from '@material-ui/icons';\nimport clsx from 'clsx';\n\nimport UserAvatarAndTextItem from 'src/components/UserAvatarAndTextItem';\nimport {\n Close as CloseIcon,\n HourglassProgress,\n Stopwatch as StopwatchIcon,\n} from 'src/components/CustomIcon';\nimport { getStatusName } from 'src/models/document.model';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport { DocumentStatus, TemplateDocumentType } from 'src/models/documents.model';\nimport { useStyles } from './styles';\n\nconst DocumentStatusNotification = () => {\n const { status, rejection, documentType } = useSelector(\n (state) => state.documentDisplayStore.document,\n undefined\n );\n const smallDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const hasUserSignedDocument = useSelector(\n documentDisplaySelector.hasUserSignedDocument,\n undefined\n );\n const isCertificate = useSelector(documentDisplaySelector.isCertificate, undefined);\n\n const { t } = useTranslation();\n const readyForPreview = documentType === TemplateDocumentType.DURABLE_MEDIA;\n const isFinished = status === DocumentStatus.FINISHED;\n const isRejected = status === DocumentStatus.REJECTED;\n const isTemporaryInvalidated = status === DocumentStatus.TEMPORARILY_INVALIDATE;\n const isInvalidated = [DocumentStatus.INVALIDATED, DocumentStatus.REJECTED].includes(status);\n const isExpired = status === DocumentStatus.EXPIRED;\n const isValid = status === DocumentStatus.VALID;\n const showForSigning =\n hasUserSignedDocument && [DocumentStatus.ISSUING, DocumentStatus.SIGNING].includes(status);\n\n const visible =\n isFinished ||\n isRejected ||\n isInvalidated ||\n readyForPreview ||\n isValid ||\n isExpired ||\n isTemporaryInvalidated ||\n showForSigning;\n const classes = useStyles();\n\n const notificationsStyles = clsx(classes.notification, {\n visible,\n error: isInvalidated || isRejected || isExpired,\n warning: isTemporaryInvalidated,\n info: showForSigning,\n });\n\n const notificationContentStyles = clsx(classes.notificationContent);\n\n const notificationHeaderStyles = clsx(classes.notificationHeader, {\n error: isInvalidated || isRejected || isExpired,\n warning: isTemporaryInvalidated,\n info: showForSigning,\n });\n\n if (!visible) {\n return null;\n }\n\n const entity =\n (isInvalidated || isTemporaryInvalidated) && ContactHelper.getEntityData(rejection?.id);\n\n const getIcon = (status, readyForPreview) => {\n if (readyForPreview) return ;\n switch (status) {\n case DocumentStatus.ISSUING:\n case DocumentStatus.SIGNING:\n return ;\n case DocumentStatus.FINISHED:\n case DocumentStatus.READY_FOR_PREVIEW:\n case DocumentStatus.VALID:\n return ;\n case DocumentStatus.EXPIRED:\n case DocumentStatus.INVALIDATED:\n case DocumentStatus.REJECTED:\n return ;\n\n case DocumentStatus.TEMPORARILY_INVALIDATE:\n return ;\n default:\n return null;\n }\n };\n\n return (\n
    \n
    \n \n {readyForPreview\n ? getStatusName({\n status: DocumentStatus.READY_FOR_PREVIEW,\n isShort: false,\n t,\n isCertificate,\n })\n : getStatusName({\n status,\n isShort: false,\n t,\n isCertificate,\n })}\n \n {getIcon(status, readyForPreview)}\n
    \n {!smallDevice && (isInvalidated || isTemporaryInvalidated) && (\n
    \n
    \n \n
    \n \n {rejection?.reason}\n \n
    \n )}\n
    \n );\n};\n\nexport default DocumentStatusNotification;\n","import DocumentStatusNotification from 'src/components/DocumentStatusNotification';\nimport React from 'react';\nimport { useMediaQuery } from '@material-ui/core';\n\nconst DocumentStatusFrame = () => {\n const smallDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n return (\n !smallDevice && (\n
    \n \n
    \n )\n );\n};\n\nexport default DocumentStatusFrame;\n","import { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport documentDisplayActions from 'src/redux/actions/documentDisplay.actions';\nimport { moduleName as documentDSLService } from 'src/redux/services/documentDSL.service';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport documentInvitationActions from 'src/redux/actions/documentInvitiation.actions';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport i18n from 'src/helpers/i18n';\n\nconst MAP_WS_ACTION_TO_MESSAGE = {\n TRANSFERABILITY_CHANGE: 'documentActions.transferabilityChange.toast.success',\n VALIDATE: 'documentActions.validateDocument.toast.success',\n INVALIDATE_TEMPORARY: 'documentActions.temporarilyInvalidateDocument.toast.success',\n INVALIDATE: 'documentActions.invalidateDocument.toast.success',\n SIGN: 'documentActions.signDocument.toast.success',\n REJECT: 'documentActions.rejectDocument.toast.success',\n CHANGE_HOLDER: 'documentActions.transferOwnership.toast.success',\n MEMBERS_CHANGE: 'workspacePage.groups.fetchGroupMembersStructure.success',\n};\n\nconst CertificateActionsWebsocket = () => {\n const ws = useRef(null);\n const { document: documentInfo } = useSelector((state) => state.documentDisplayStore, undefined);\n const dispatch = useDispatch();\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n\n const onWebSocketMessage = (message) => {\n if (message.documentId === documentInfo.id) {\n switch (message.action) {\n case 'EXPIRED':\n case 'TRANSFERABILITY_CHANGE':\n case 'VALIDATE':\n case 'INVALIDATE_TEMPORARY':\n case 'INVALIDATE':\n case 'SIGN':\n case 'REJECT':\n if (MAP_WS_ACTION_TO_MESSAGE[message.action]) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t(MAP_WS_ACTION_TO_MESSAGE[message.action])\n )\n );\n }\n\n dispatch(documentDisplayActions.getDocument(message.documentId, documentDSLService));\n dispatch(documentManagementActions.reloadDocumentHistory());\n\n break;\n case 'CHANGE_HOLDER':\n case 'MEMBERS_CHANGE':\n if (MAP_WS_ACTION_TO_MESSAGE[message.action]) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t(MAP_WS_ACTION_TO_MESSAGE[message.action])\n )\n );\n }\n dispatch(\n documentManagementActions.getDocumentMembers(message.documentId, documentDSLService)\n );\n dispatch(\n documentManagementActions.getDocumentInvitations(message.documentId, documentDSLService)\n );\n dispatch(documentManagementActions.reloadDocumentHistory());\n\n break;\n case 'SIGNATURE_CHANGES': {\n dispatch(\n documentInvitationActions.getDocumentSigners(message.documentId, documentDSLService)\n );\n dispatch(\n documentManagementActions.getDocumentInvitations(message.documentId, documentDSLService)\n );\n dispatch(documentManagementActions.reloadDocumentHistory());\n\n break;\n }\n default: {\n console.warn(`Unknown code [${message.code}]`, message);\n }\n }\n }\n };\n\n useEffect(() => {\n if (workspaceId && documentInfo.id) {\n ws.current = WebSocketHelper.subscribe(\n 'document-dsl-service',\n `workspaces/${workspaceId}/document-updates`,\n (message) => {\n onWebSocketMessage(message);\n }\n );\n }\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, [workspaceId, documentInfo]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport default CertificateActionsWebsocket;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, zIndex }) =>\n createStyles({\n root: {\n display: 'flex',\n position: 'fixed',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n overflow: 'hidden',\n backgroundColor: palette.background.paper,\n zIndex: zIndex.modal - 10,\n },\n main: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n position: 'relative',\n height: '100%',\n width: '100%',\n },\n mobileMain: {},\n content: {\n flex: 1,\n position: 'relative',\n backgroundColor: palette.background.default,\n padding: spacing(2),\n overflowX: 'hidden',\n overflowY: 'auto',\n [breakpoints.up('md')]: {\n padding: `${spacing(2)}px ${spacing(3)}px ${spacing(3)}px ${spacing(3)}px`,\n },\n [breakpoints.up('lg')]: {\n padding: `${spacing(2)}px ${spacing(5)}px ${spacing(3)}px ${spacing(5)}px`,\n },\n },\n mobileBottomContent: {},\n documentCardButton: {\n marginBottom: `${spacing(1)}px`,\n },\n afterText: {\n fontSize: 12,\n color: palette.greySimple.dark,\n paddingLeft: 8,\n },\n }),\n { index: 0 }\n);\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useUsersManagerSectionStyle = makeStyles(\n ({ spacing, palette, breakpoints }) =>\n createStyles({\n sectionWrapper: {\n display: 'flex',\n [breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n },\n sticky: {\n position: 'sticky',\n top: 0,\n },\n leftContentWrapper: {\n minWidth: 380,\n width: 380,\n [breakpoints.down('md')]: {\n width: '100%',\n },\n },\n leftContentChildren: {\n marginBottom: spacing(1),\n },\n title: {\n marginBottom: spacing(1),\n },\n description: {\n marginBottom: spacing(2),\n },\n rightContentWrapper: {\n width: '100%',\n paddingLeft: spacing(8),\n [breakpoints.down('md')]: {\n paddingLeft: 0,\n marginTop: spacing(2),\n },\n },\n divider: {\n marginTop: spacing(5),\n background: palette.action.selected,\n marginBottom: spacing(4),\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Divider, Typography } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { useUsersManagerSectionStyle } from './styles';\n\ntype classesOverride = {\n rightContentWrapper?: string;\n};\ninterface SectionProps {\n title?: string;\n description?: JSX.Element;\n leftContent?: JSX.Element;\n rightContent?: JSX.Element;\n hideDivider?: boolean;\n classesOverride?: classesOverride;\n}\n\nconst Section = ({\n title,\n description,\n leftContent,\n rightContent,\n hideDivider = false,\n classesOverride,\n}: SectionProps): JSX.Element => {\n const classes = useUsersManagerSectionStyle();\n\n return (\n <>\n
    \n
    \n
    \n {title && (\n \n {title}\n \n )}\n {description && (\n \n {description}\n \n )}\n
    {leftContent}
    \n
    \n
    \n \n {rightContent}\n
    \n \n {!hideDivider && }\n \n );\n};\nexport default Section;\n","import React from 'react';\nimport { createStyles, makeStyles, Paper } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n itemsWrapper: {\n borderRadius: 8,\n marginBottom: 18,\n width: '100%',\n },\n buttonWrapper: {\n display: 'flex',\n justifyContent: 'center',\n },\n }),\n { index: 0 }\n);\n\ninterface ItemsWrapperProps {\n children: JSX.Element;\n actionButtons?: JSX.Element;\n}\n\nconst ItemsWrapper = ({ children, actionButtons }: ItemsWrapperProps): JSX.Element => {\n const classes = useStyles();\n return (\n <>\n \n {children}\n \n
    {actionButtons && actionButtons}
    \n \n );\n};\nexport default ItemsWrapper;\n","import React from 'react';\nimport { Button, createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n button: {\n backgroundColor: 'transparent',\n color: palette.secondary.dark,\n transition: 'color .3s ease',\n '&:hover': {\n backgroundColor: 'transparent',\n color: palette.primary.main,\n boxShadow: 'unset',\n },\n },\n }),\n { index: 0 }\n);\n\ninterface SectionButtonProps {\n icon?: JSX.Element;\n text: string;\n onClick: (e: React.MouseEvent) => void;\n}\n\nconst SectionButton = ({ icon, text, onClick }: SectionButtonProps): JSX.Element => {\n const classes = useStyles();\n return (\n \n );\n};\n\nexport default SectionButton;\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Button, Menu, MenuItem, Tooltip, Typography } from '@material-ui/core';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport { DocumentMemberRole } from 'src/models/documentUsersManagement.model';\nimport { ArrowDownSLine as ChevronDownIcon } from 'src/components/CustomIcon';\nimport { useUserItemRolesStyles } from './styles';\n\ntype availableRole = {\n label: string;\n description: string;\n value: DocumentMemberRole;\n};\n\nexport interface UserItemRolesProps {\n role?: DocumentMemberRole;\n\n disabled?: boolean;\n onRoleChange?: (role: DocumentMemberRole) => void;\n}\n\nconst UserItemRoles = ({\n role,\n onRoleChange,\n disabled = false,\n}: UserItemRolesProps): JSX.Element => {\n const classes = useUserItemRolesStyles();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState(null);\n const isCertificate = useSelector(documentDisplaySelector.isCertificate, undefined);\n const availableRoles: availableRole[] = [\n {\n label: t('documentUserManager.role.admin'),\n description: isCertificate\n ? t('documentUserManager.roleDescription.adminCert')\n : t('documentUserManager.roleDescription.admin'),\n value: DocumentMemberRole.ADMIN,\n },\n {\n label: t('documentUserManager.role.editor'),\n description: t('documentUserManager.roleDescription.editor'),\n value: DocumentMemberRole.EDITOR,\n },\n ...(isCertificate // certificates don't have auditor role\n ? []\n : [\n {\n label: t('documentUserManager.role.auditor'),\n description: t('documentUserManager.roleDescription.auditor'),\n value: DocumentMemberRole.AUDITOR,\n },\n ]),\n {\n label: t('documentUserManager.role.viewer'),\n description: t('documentUserManager.roleDescription.viewer'),\n value: DocumentMemberRole.VIEWER,\n },\n ];\n\n const handleClick = (e: React.MouseEvent) => {\n if (e) setAnchorEl(e.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n const isOpen = Boolean(anchorEl);\n\n return (\n <>\n ('documentUserManager.changeRole')}>\n
    \n }\n >\n \n {availableRoles.find((item) => item.value === role)?.label}\n \n \n
    \n
    \n \n {availableRoles.map((item, index) => (\n {\n if (onRoleChange) onRoleChange(item.value);\n handleClose();\n }}\n >\n {item.label}\n \n {item.description}\n \n \n ))}\n \n \n );\n};\nexport default UserItemRoles;\n","import React, { useMemo } from 'react';\nimport { UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport { RegexFormulas } from 'src/helpers/regex';\nimport { AvatarWithBadge } from 'src/components/index';\nimport clsx from 'clsx';\nimport { Fab, Tooltip } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport UserItemDescription from './UserItemDescription';\nimport { useUserItemStyles } from './styles';\nimport UserItemTitle from './UserItemTitle';\nimport { Delete as RemoveIcon } from '../../../CustomIcon';\nimport UserItemRoles from './UserItemRoles';\n\nconst getTitle = (userData: UserManagerPerson): string | undefined =>\n userData._name || userData.email;\n\ninterface UserItemProps {\n userData: UserManagerPerson;\n highlightString?: string;\n showTitleAdditionalTexts?: boolean;\n canRemove?: boolean;\n showRoles?: boolean;\n canChangeRole?: boolean;\n hoverEnabled?: boolean;\n onRemove?: (item: UserManagerPerson) => void;\n onRoleChange?: (item: UserManagerPerson) => void;\n}\n\nconst UserItem = ({\n userData,\n highlightString = '',\n showTitleAdditionalTexts = true,\n canRemove = false,\n canChangeRole = false,\n showRoles = false,\n hoverEnabled = false,\n onRemove,\n onRoleChange,\n}: UserItemProps): JSX.Element => {\n const { t } = useTranslation();\n const { _id, isGroup } = userData;\n const classes = useUserItemStyles();\n const avatarSrc = useMemo(\n () =>\n _id && !isGroup && RegexFormulas.uuidV4.test(_id)\n ? `${process.env.REACT_APP_AVATAR_URL}/identity/${_id}?kind=SMALL`\n : null,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [_id]\n );\n\n const title = userData.isToken ? t('common.generatedToken') : getTitle(userData);\n\n return (\n
    \n \n {title}\n \n
    \n \n \n
    \n {showRoles && (\n {\n if (onRoleChange)\n onRoleChange({\n ...userData,\n role,\n });\n }}\n />\n )}\n {canRemove && (\n ('common.remove')}>\n (onRemove ? onRemove(userData) : undefined)}\n >\n \n \n \n )}\n
    \n );\n};\nexport default UserItem;\n","import React from 'react';\nimport { createStyles, makeStyles, Tooltip } from '@material-ui/core';\nimport { HelpOutline as HelpOutlineIcon } from '@material-ui/icons';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n helpIcon: {\n fontSize: 16,\n color: palette.primary.main,\n marginLeft: 4,\n verticalAlign: 'text-bottom',\n },\n }),\n { index: 0 }\n);\n\ninterface InfoTooltipProps {\n message: string;\n}\n\nconst InfoTooltip = ({ message }: InfoTooltipProps): JSX.Element => {\n const classes = useStyles();\n return (\n \n \n \n );\n};\nexport default InfoTooltip;\n","import React, { useState } from 'react';\nimport { UserManagerPerson } from 'src/models/documentUsersManagement.model';\n\nexport type UsersManagerContextType = {\n isDraftPublicAccess: boolean;\n isDraftTransferable: boolean;\n isDraftIsOrderSignificant: boolean;\n draftHolders: UserManagerPerson[];\n draftSigners: UserManagerPerson[];\n draftOtherRoles: UserManagerPerson[];\n updateDraftPublicAccess: (isPublic: boolean) => void;\n updateDraftTransferable: (isTransferable: boolean) => void;\n updateDraftIsOrderSignificant: (isOrder: boolean) => void;\n updateDraftHolders: (items: UserManagerPerson[]) => void;\n updateDraftSigners: (items: UserManagerPerson[]) => void;\n updateDraftOtherRoles: (items: UserManagerPerson[]) => void;\n};\n\nexport const UsersManagerContext = React.createContext(null);\n\ntype Props = {\n children: JSX.Element;\n};\n\nconst UsersManagerContextProvider = ({ children }: Props): JSX.Element => {\n const [draftHolders, setDraftHolders] = useState([]);\n const [draftSigners, setDraftSigners] = useState([]);\n const [draftOtherRoles, setDraftOtherRoles] = useState([]);\n const [isDraftPublicAccess, setIsPublicAccess] = useState(false);\n const [isDraftTransferable, setIsDraftTransferable] = useState(false);\n const [isDraftIsOrderSignificant, setIsDraftIsOrderSignificant] = useState(false);\n\n const updateDraftHolders = (holders: UserManagerPerson[]) => setDraftHolders(holders);\n const updateDraftSigners = (singers: UserManagerPerson[]) => setDraftSigners(singers);\n const updateDraftOtherRoles = (otherRoles: UserManagerPerson[]) => setDraftOtherRoles(otherRoles);\n const updateDraftPublicAccess = (isPublicAccess: boolean) => setIsPublicAccess(isPublicAccess);\n const updateDraftTransferable = (transferable: boolean) => setIsDraftTransferable(transferable);\n const updateDraftIsOrderSignificant = (transferable: boolean) =>\n setIsDraftIsOrderSignificant(transferable);\n\n return (\n \n {children}\n \n );\n};\n\nexport default UsersManagerContextProvider;\n","import React from 'react';\nimport { Skeleton } from '@material-ui/lab';\nimport { useAddNewItemStyles } from './styles';\n\nconst UserItemSkeleton = (): JSX.Element => {\n const classes = useAddNewItemStyles();\n\n return (\n
    \n \n
    \n \n \n
    \n
    \n );\n};\n\nexport default UserItemSkeleton;\n","import React, { useState } from 'react';\nimport { ListSubheader, TextField, Typography } from '@material-ui/core';\nimport { AutocompleteRenderGroupParams } from '@material-ui/lab/Autocomplete/Autocomplete';\nimport { UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport { useTranslation } from 'react-i18next';\nimport { isMail } from 'src/helpers/globalUtils';\nimport { Autocomplete, Skeleton } from '@material-ui/lab';\nimport { useAddNewItemStyles } from './styles';\nimport UserItem from './UserItem';\n\ntype filterOptionsType = {\n inputValue: string;\n};\n\ninterface AddNewItemProps {\n isLoading: boolean;\n focused: boolean;\n onInputBlur: () => void;\n onInputChange: (e: React.ChangeEvent, value: string) => void;\n onAddClick: (value: UserManagerPerson) => void;\n items: UserManagerPerson[];\n addedItems?: UserManagerPerson[];\n canInviteByMail?: boolean;\n}\n\nconst checkMailNotRepeatedInAdded = (items: UserManagerPerson[], mail: string) =>\n !items.some((e) => e.email === mail && (e.isInvited || e.isInvitationToBeSend));\n\nconst AddNewItem = ({\n focused,\n isLoading,\n onInputBlur,\n items,\n addedItems = [],\n onInputChange,\n onAddClick,\n canInviteByMail = true,\n}: AddNewItemProps): JSX.Element => {\n const { t } = useTranslation();\n const classes = useAddNewItemStyles();\n const [inputValue, setInputValue] = useState('');\n const skeletonAnimation = isLoading ? 'pulse' : false;\n const hasGroup = items.some((el) => el.isGroup);\n\n const renderGroup = (params: AutocompleteRenderGroupParams) => [\n \n \n {params.group === 'true' ? t('common.groups') : t('common.users')}\n \n ,\n params.children,\n ];\n\n const onAutocompleteChange = (\n event: React.ChangeEvent,\n value: UserManagerPerson | string | null\n ) => {\n if (value && typeof value !== 'string') {\n onAddClick(value);\n } else if (\n canInviteByMail &&\n typeof value === 'string' &&\n isMail(value) &&\n checkMailNotRepeatedInAdded(addedItems, value)\n ) {\n onAddClick({\n isGroup: false,\n isInvitationToBeSend: true,\n isInvited: false,\n email: value,\n });\n }\n };\n\n const onChange = (e: React.ChangeEvent, value: string) => {\n onInputChange(e, value);\n setInputValue(value);\n };\n\n const filterOptions = (\n options: UserManagerPerson[],\n state: filterOptionsType\n ): UserManagerPerson[] => {\n // const mailNotRepeatedInAdded = checkMailNotRepeatedInAdded(addedItems, state.inputValue); // TODO: replace with mailNotRepeatedInContactBook, mailNotRepeatedInAdded when new contact book available\n const mailNotRepeatedInContactBook = !options.some((e) => e.email === state.inputValue);\n const mailNotRepeatedInAdded = !addedItems.some((e) => e.email === state.inputValue);\n if (\n canInviteByMail &&\n typeof state.inputValue === 'string' &&\n isMail(state.inputValue) &&\n // mailNotRepeatedInAdded // TODO: replace with mailNotRepeatedInContactBook, mailNotRepeatedInAdded when new contact book available\n mailNotRepeatedInContactBook &&\n mailNotRepeatedInAdded\n ) {\n options = [\n {\n isGroup: false,\n isInvitationToBeSend: true,\n isInvited: false,\n email: state.inputValue,\n },\n ...options,\n ];\n }\n return options;\n };\n\n return (\n
    \n \n\n
    \n {focused ? (\n (\n \n )}\n renderOption={(option) => (\n \n )}\n getOptionLabel={(item) => item._name || item.email || ''}\n renderGroup={renderGroup}\n groupBy={hasGroup ? (option) => String(option.isGroup) : undefined}\n classes={{\n input: classes.input,\n inputRoot: classes.inputRoot,\n option: classes.autocompleteOption,\n }}\n onInputChange={onChange}\n filterOptions={filterOptions}\n />\n ) : (\n \n )}\n \n
    \n
    \n );\n};\nexport default AddNewItem;\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Plus as PlusIcon } from 'src/components/CustomIcon';\nimport { useTranslation } from 'react-i18next';\nimport { Divider, FormControlLabel, Switch, Typography } from '@material-ui/core';\nimport { SortableContainer, SortableItem } from 'src/components/Sortable';\nimport { ConfirmDialog } from 'src/components';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { RootState } from 'src/redux/reducers';\nimport { DocumentMemberRole, UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport Section from '../subcomponents/Section';\nimport ItemsWrapper from '../subcomponents/ItemsWrapper';\nimport SectionButton from '../subcomponents/SectionButton';\n\nimport UserItem from '../subcomponents/UserItem/UserItem';\n\nimport InfoTooltip from '../subcomponents/InfoTooltip';\nimport { UsersManagerContext, UsersManagerContextType } from '../subcomponents/UsersManagerContext';\nimport { RequestStatus } from '../../../helpers/reduxReuquest.util';\nimport UserItemSkeleton from '../subcomponents/UserItem/UserItemSkeleton';\nimport { documentManagementSelector } from '../../../redux/selectors/documentManagement.selector';\nimport { arrayMoveImmutable } from '../../Sortable/sortableUtils';\nimport { useUserItemStyles } from '../subcomponents/UserItem/styles';\nimport AddNewItem from '../subcomponents/UserItem/AddNewItem';\nimport DocumentUserManagerSelector from '../../../redux/selectors/documentUserManager.selector';\nimport documentUserManagerActions from '../../../redux/actions/documentUserManager.actions';\nimport usePrevious from '../../../helpers/hooks/usePrevious';\n\ntype onSortEndParams = { oldIndex: number; newIndex: number };\n\nconst UsersManagerSigners = (): JSX.Element => {\n const dispatch = useDispatch();\n const userItemClasses = useUserItemStyles();\n const { t } = useTranslation();\n const hasSigningOrderPermission = useSelector(\n IdentitySelector.hasSigningOrderPermission,\n undefined\n );\n const { canAddSignerByInvitationDocCert, canModifySignersDocCert } = useSelector(\n DocumentUserManagerSelector.selectDocumentAction,\n undefined\n );\n const hasSomeSigning = useSelector(documentManagementSelector.hasDocumentAnySigning, undefined);\n const {\n documentSigners: { isOrderSignificant },\n documentMembersStatus,\n externalEntitiesStatus,\n searchedEntitiesStatus,\n documentSignersStatus,\n } = useSelector((state: RootState) => state.documentUsersManagerStore, undefined);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n const searchedEntities = useSelector(\n DocumentUserManagerSelector.selectSearchedEntitiesWithDetails,\n undefined\n );\n const {\n draftSigners,\n updateDraftSigners,\n updateDraftIsOrderSignificant,\n isDraftIsOrderSignificant,\n } = useContext(UsersManagerContext) as UsersManagerContextType;\n\n const [showSigningOrderConfirmModal, setShowSigningOrderConfirmModal] = useState(false);\n const [focusInput, setFocusInput] = useState(false);\n const [showAddNewItem, setShowAddNewItem] = useState(false);\n\n const prevState = usePrevious({ documentSignersStatus });\n const isLoading =\n documentMembersStatus === RequestStatus.PENDING ||\n externalEntitiesStatus === RequestStatus.PENDING;\n\n const isAutocompleteLoading = searchedEntitiesStatus === RequestStatus.PENDING;\n\n const isSortable =\n !hasSomeSigning &&\n hasSigningOrderPermission &&\n isDraftIsOrderSignificant &&\n canModifySignersDocCert;\n\n // remove groups, already added items and external if signing order\n const autocompleteItems = searchedEntities.filter((entity) => {\n const isSearchable = !entity.isGroup && !draftSigners.map((el) => el._id).includes(entity._id);\n\n if (isDraftIsOrderSignificant) return !entity.isExternal && isSearchable;\n\n return isSearchable;\n });\n\n // Can remove item if canModifySigners and (is at least on user, or is some invitation)\n const canRemove = (signer: UserManagerPerson) =>\n canModifySignersDocCert &&\n (Boolean(draftSigners.filter((el) => el._id).length > 1) ||\n signer.isInvited ||\n signer.isInvitationToBeSend);\n\n // skeleton while loading\n const skeleton = useMemo(\n () => (\n <>\n \n \n \n ),\n []\n );\n\n // on \"Set signing order\" switch click\n const toggleIsOrderSignificant = () => {\n const showInfoModal =\n !isDraftIsOrderSignificant &&\n draftSigners.some(\n (signer) => signer.isExternal || signer.isInvited || signer.isInvitationToBeSend\n );\n\n // check if user is from workspace, otherwise info modal\n if (showInfoModal) {\n setShowSigningOrderConfirmModal(true);\n } else {\n updateDraftIsOrderSignificant(!isDraftIsOrderSignificant);\n }\n };\n\n // remove selectedValue\n const onSignerRemove = (index: number) => {\n updateDraftSigners(draftSigners.filter((item, idx) => idx !== index));\n };\n\n const confirmSetSigningOrder = () => {\n // update signers list\n updateDraftSigners(\n draftSigners.filter(\n (signer) => !(signer.isExternal || signer.isInvited || signer.isInvitationToBeSend)\n )\n );\n setShowSigningOrderConfirmModal(false);\n updateDraftIsOrderSignificant(true);\n };\n\n // Action after sort end === drag end;\n const onSortEnd = ({ oldIndex, newIndex }: onSortEndParams) => {\n const sorted = arrayMoveImmutable(draftSigners, oldIndex, newIndex);\n updateDraftSigners(sorted);\n };\n\n // Action updates draft state when user select entity from autocomplete list\n const onAddSigner = (val: UserManagerPerson) => {\n val.role = DocumentMemberRole.SIGNER;\n updateDraftSigners([...draftSigners, val]);\n };\n\n // Close, hide autocomplete list\n const onInputBlur = () => {\n setShowAddNewItem(false);\n setFocusInput(false);\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, ''));\n };\n\n // Fetch entities by value from autocomplete\n const fetchWorkspaceEntities = (e: React.ChangeEvent, value: string) => {\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, value));\n };\n\n // On add new item button click, fetches initial entities from contact book\n const onAddNewSignerClick = () => {\n setShowAddNewItem(true);\n setFocusInput(true);\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, ''));\n };\n\n // set draft / prepared data when data is fetched\n useEffect(() => {\n if (\n prevState?.documentSignersStatus === RequestStatus.PENDING &&\n documentSignersStatus === RequestStatus.IDLE\n ) {\n updateDraftIsOrderSignificant(isOrderSignificant);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentSignersStatus, prevState]);\n\n return (\n <>\n ('documentUserManager.signers.title')}\n description={t('documentUserManager.signers.description')}\n leftContent={\n hasSigningOrderPermission ? (\n \n }\n label={\n
    \n \n {t('documentUserManager.signers.setSigningOrder')}\n ('documentUserManager.signers.setSigningOrderTooltip')}\n />\n \n
    \n }\n />\n ) : (\n <>\n )\n }\n rightContent={\n <>\n }\n onClick={onAddNewSignerClick}\n text={t('documentUserManager.signers.addNewSigner')}\n />\n ) : undefined\n }\n >\n {isLoading ? (\n skeleton\n ) : (\n <>\n \n {draftSigners.map((signer: UserManagerPerson, index: number) => (\n <>\n \n onSignerRemove(index)}\n />\n \n\n {index !== draftSigners.length - 1 && }\n \n ))}\n \n\n {showAddNewItem && (\n \n )}\n \n )}\n \n {!canAddSignerByInvitationDocCert ||\n (!canModifySignersDocCert && (\n
    \n \n {t('documentUserManager.signers.blockedInfo')}\n ('documentUserManager.signers.blockedInfoTooltip')}\n />\n \n
    \n ))}\n \n }\n />\n ('inviteToDocument.section.signers.orderSignificantConfirmModal')}\n applyButtonText={t('common.yes')}\n cancelButtonText={t('common.no')}\n actionAccept={confirmSetSigningOrder}\n actionCancel={() => setShowSigningOrderConfirmModal(false)}\n />\n \n );\n};\n\nexport default UsersManagerSigners;\n","import { useEffect, useRef } from 'react';\nimport { useDispatch } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport { useTranslation } from 'react-i18next';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport documentDownloadActions from '../../../../../redux/actions/documentDownload.actions';\n\nconst TransferOwnershipWebsocket = ({ documentId, callback = () => undefined }) => {\n const ws = useRef(null);\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const onWebSocketMessage = (message) => {\n if (message.downloadToken) {\n dispatch(\n documentDownloadActions.downloadDocumentFile(documentId, message.downloadToken, callback)\n );\n } else if (message.type === 'ERROR') {\n const resultCode = message?.data?.result?.code;\n const messagePart = resultCode ? `_${resultCode}` : '';\n dispatch(\n snackbarActions.enqueueSnackbar(\n JSON.stringify({\n variant: SNACKBAR_VARIANT.ERROR,\n message: t(`drivePage.action.error.${message.code}${messagePart}`),\n })\n )\n );\n } else {\n console.warn(`Unknown action type [${message.type}]`, message);\n }\n };\n\n useEffect(() => {\n if (documentId) {\n ws.current = WebSocketHelper.subscribe(\n 'document-service',\n `document/download/${documentId}`,\n (message) => {\n onWebSocketMessage(message);\n }\n );\n }\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, [documentId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\nTransferOwnershipWebsocket.propTypes = {\n documentId: PropTypes.string,\n callback: PropTypes.func,\n};\n\nexport default TransferOwnershipWebsocket;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n centerHolder: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n }),\n { index: 0 }\n);\n","import React, { useContext, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\nimport { DocumentMemberRole, UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport { useTranslation } from 'react-i18next';\nimport { EmailOutlined as EmailIcon } from '@material-ui/icons';\nimport { Download as DownloadIcon } from 'src/components/CustomIcon';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport documentUserManagerActions from 'src/redux/actions/documentUserManager.actions';\nimport { RootState } from 'src/redux/reducers';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { Divider } from '@material-ui/core';\nimport { API_MODULE } from 'src/models/common.model';\nimport documentInvitiationActions from 'src/redux/actions/documentInvitiation.actions';\nimport Section from '../subcomponents/Section';\nimport ItemsWrapper from '../subcomponents/ItemsWrapper';\nimport UserItem from '../subcomponents/UserItem/UserItem';\nimport AddNewItem from '../subcomponents/UserItem/AddNewItem';\nimport InfoTooltip from '../subcomponents/InfoTooltip';\nimport SectionButton from '../subcomponents/SectionButton';\nimport { UsersManagerContext, UsersManagerContextType } from '../subcomponents/UsersManagerContext';\nimport UserItemSkeleton from '../subcomponents/UserItem/UserItemSkeleton';\nimport TransferOwnershipWebsocket from '../../../pages/TransferOwnership/components/steps/TransferOwnership/TransferOwnershipWebsocket';\nimport { useStyles } from './styles';\n\ninterface UserManagerHolderProps {\n documentId: string;\n}\n\nconst UsersManagerHolder = ({ documentId }: UserManagerHolderProps): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { searchedEntitiesStatus, documentMembersStatus, externalEntitiesStatus } = useSelector(\n (state: RootState) => state.documentUsersManagerStore,\n undefined\n );\n const searchedEntities = useSelector(\n DocumentUserManagerSelector.selectSearchedEntitiesWithDetails,\n undefined\n );\n const { draftHolders, updateDraftHolders } = useContext(\n UsersManagerContext\n ) as UsersManagerContextType;\n const { canChangeHolderCert } = useSelector(\n DocumentUserManagerSelector.selectDocumentAction,\n undefined\n );\n const [focusInput, setFocusInput] = useState(false);\n const [isGenerateTokenLoading, setIsGenerateTokenLoading] = useState(false);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n const isAutocompleteLoading = searchedEntitiesStatus === RequestStatus.PENDING;\n const hasHolders = draftHolders.length > 0;\n\n const isLoading =\n documentMembersStatus === RequestStatus.PENDING ||\n externalEntitiesStatus === RequestStatus.PENDING;\n\n // Close, hide autocomplete list, fetch contact members for next open\n const onInputBlur = () => {\n setFocusInput(false);\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, ''));\n };\n\n // Fetch entities by value from autocomplete\n const fetchWorkspaceEntities = (e: React.ChangeEvent, value: string) => {\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, value));\n };\n\n // Action updates draft state when user click remove button / icon\n const onHolderRemove = (val: UserManagerPerson) => {\n updateDraftHolders(draftHolders.filter((item) => item._id !== val._id));\n };\n\n // Action updates draft state when user select entity from autocomplete list\n const onAddHolder = (val: UserManagerPerson) => {\n val.role = DocumentMemberRole.HOLDER;\n val.isInvitationToBeSend = true;\n val._name = val.email;\n updateDraftHolders([val]);\n };\n\n // On add new item button click, fetches initial entities from contact book\n const onAddNewItem = () => {\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, ''));\n setFocusInput(true);\n };\n\n // request to get transfer invitation token which triggers download from websocket\n const onGeneratePDF = () => {\n setIsGenerateTokenLoading(true);\n dispatch(documentInvitiationActions.downloadTransferOwnershipPDF(documentId));\n };\n\n // Callback after token is downloaded. Fetch data to refresh UI\n const documentDownloadCallback = () => {\n setTimeout(() => {\n dispatch(\n documentUserManagerActions.getDocumentMembers(documentId, API_MODULE.DocumentDslService)\n );\n dispatch(\n documentUserManagerActions.getDocumentInvitations(documentId, API_MODULE.DocumentDslService)\n );\n setIsGenerateTokenLoading(false);\n }, 1000);\n\n return undefined;\n };\n\n return (\n <>\n \n ('documentUserManager.owners.title')}\n description={\n <>\n {t('documentUserManager.owners.description')}\n ('documentUserManager.owners.descriptionTooltip')} />\n \n }\n rightContent={\n \n }\n onClick={onAddNewItem}\n text={t('documentUserManager.owners.sendByMail')}\n />\n }\n onClick={onGeneratePDF}\n text={t('documentUserManager.owners.generatePDF')}\n />\n \n ) : undefined\n }\n >\n {isLoading || isGenerateTokenLoading ? (\n <>\n \n \n \n ) : (\n <>\n {hasHolders &&\n draftHolders.map((holder: UserManagerPerson, index: number) => (\n \n ))}\n {focusInput && (\n !entity.isGroup)} // filter out groups\n onInputChange={fetchWorkspaceEntities}\n />\n )}\n \n )}\n \n }\n />\n \n );\n};\nexport default UsersManagerHolder;\n","import React, { useContext, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Divider } from '@material-ui/core';\nimport { Plus as PlusIcon } from 'src/components/CustomIcon';\nimport { DocumentMemberRole, UserManagerPerson } from 'src/models/documentUsersManagement.model';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\nimport documentUserManagerActions from 'src/redux/actions/documentUserManager.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport Section from '../subcomponents/Section';\nimport ItemsWrapper from '../subcomponents/ItemsWrapper';\nimport SectionButton from '../subcomponents/SectionButton';\nimport UserItem from '../subcomponents/UserItem/UserItem';\nimport { UsersManagerContext, UsersManagerContextType } from '../subcomponents/UsersManagerContext';\nimport UserItemSkeleton from '../subcomponents/UserItem/UserItemSkeleton';\nimport AddNewItem from '../subcomponents/UserItem/AddNewItem';\n\nconst canChangeRoleOwner = (entity: UserManagerPerson) =>\n !(entity.isGroup && entity._name === 'Owners' && !entity.isExternal);\n\nconst canRemoveOwner = (entity: UserManagerPerson) =>\n !(entity.isGroup && entity._name === 'Owners' && !entity.isExternal);\n\nconst UsersManagerOtherRoles = (): JSX.Element => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const isCertificate = useSelector(documentDisplaySelector.isCertificate, undefined);\n const { draftOtherRoles, updateDraftOtherRoles } = useContext(\n UsersManagerContext\n ) as UsersManagerContextType;\n const { canAddUserDocCert, canModifyRoleDocCert } = useSelector(\n DocumentUserManagerSelector.selectDocumentAction,\n undefined\n );\n const { documentMembersStatus, externalEntitiesStatus, searchedEntitiesStatus } = useSelector(\n (state: RootState) => state.documentUsersManagerStore,\n undefined\n );\n const searchedEntities = useSelector(\n DocumentUserManagerSelector.selectSearchedEntitiesWithDetails,\n undefined\n );\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n\n const [showAddNewItem, setShowAddNewItem] = useState(false);\n const [focusInput, setFocusInput] = useState(false);\n\n const isAutocompleteLoading = searchedEntitiesStatus === RequestStatus.PENDING;\n\n const isLoading =\n documentMembersStatus === RequestStatus.PENDING ||\n externalEntitiesStatus === RequestStatus.PENDING;\n\n // remove already added items\n const autocompleteItems = searchedEntities.filter(\n (entity) =>\n !draftOtherRoles.map((el) => el._id).includes(entity._id) &&\n !(entity.isGroup && entity.isExternal)\n );\n\n // skeleton while loading\n const skeleton = useMemo(\n () => (\n <>\n {[1, 2, 3].map(() => (\n <>\n \n \n \n ))}\n \n ),\n []\n );\n\n // Action updates draft state when user select entity from autocomplete list\n const onAddOtherRole = (val: UserManagerPerson) => {\n val.role = DocumentMemberRole.VIEWER;\n updateDraftOtherRoles([...draftOtherRoles, val]);\n };\n\n // Fetch entities by value from autocomplete\n const fetchWorkspaceEntities = (e: React.ChangeEvent, value: string) => {\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, value));\n };\n\n // Close, hide autocomplete list, fetch contact members for next open\n const onInputBlur = () => {\n setShowAddNewItem(false);\n setFocusInput(false);\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, ''));\n };\n\n // update draftOtherRoles with new value\n const onRoleChange = (val: UserManagerPerson) => {\n updateDraftOtherRoles(\n draftOtherRoles.map((dR) => {\n if (dR._id && val._id === dR._id) {\n return val;\n }\n if (!val._id && (dR.isInvited || dR.isInvitationToBeSend)) {\n if (dR.email === val.email) {\n // If new value is matches with sent invitation then mark as new invitation to be sent\n if (dR.isInvited) {\n val.isInvited = false;\n val.isInvitationToBeSend = true;\n }\n\n return val;\n }\n\n return dR;\n }\n return dR;\n })\n );\n };\n\n // remove selectedValue\n const onOtherRoleRemove = (index: number) => {\n updateDraftOtherRoles(draftOtherRoles.filter((item, idx) => idx !== index));\n };\n\n // On add new item button click, fetches initial entities from contact book\n const onAddNewOtherRoleClick = () => {\n setShowAddNewItem(true);\n setFocusInput(true);\n if (workspaceId) dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, ''));\n };\n\n return (\n ('documentUserManager.otherRoles.title')}\n description={t('documentUserManager.otherRoles.description')}\n hideDivider={!isCertificate}\n rightContent={\n }\n onClick={onAddNewOtherRoleClick}\n text={t('documentUserManager.otherRoles.addNew')}\n />\n ) : undefined\n }\n >\n {isLoading ? (\n skeleton\n ) : (\n <>\n {draftOtherRoles.map((member: UserManagerPerson, index: number) => (\n <>\n onOtherRoleRemove(index)}\n onRoleChange={onRoleChange}\n canRemove={canModifyRoleDocCert && canRemoveOwner(member)}\n canChangeRole={canModifyRoleDocCert && canChangeRoleOwner(member)}\n showRoles\n />\n \n \n ))}\n {showAddNewItem && (\n -b?.isGroup)} // sort by group\n addedItems={draftOtherRoles}\n />\n )}\n \n )}\n \n }\n />\n );\n};\nexport default UsersManagerOtherRoles;\n","import { DocumentRole, rolesTranslations } from 'src/models/document.model';\nimport { capitalizeFirstLetter } from 'src/helpers/globalUtils';\nimport { RequestStatus } from '../../helpers/reduxReuquest.util';\n\nconst selectAvailableRoles = (state, t) =>\n state.documentInvitationsStore.documentRoleTypes\n .filter((role) => role !== DocumentRole.SIGNERS && role !== DocumentRole.HOLDER)\n .map((role) => ({\n value: role,\n label: rolesTranslations(t)[role] || capitalizeFirstLetter(role),\n }));\n\nconst selectIsAdvancedSettingsPending = (state) =>\n state.documentInvitationsStore.documentTransferabilityChangeStatus === RequestStatus.PENDING ||\n state.documentInvitationsStore.documentPublicAccessChangeStatus === RequestStatus.PENDING;\n\nexport const documentInvitationsSelector = {\n selectAvailableRoles,\n selectIsAdvancedSettingsPending,\n};\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n modal: {\n width: '400px',\n borderRadius: '6px',\n background: palette.common.white,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n padding: '20px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'space-around',\n boxSizing: 'border-box',\n },\n\n header: {\n textAlign: 'center',\n marginBottom: '15px',\n },\n message: {\n textAlign: 'center',\n marginBottom: '20px',\n },\n errorButton: {\n marginBottom: '10px',\n backgroundColor: palette.error.main,\n color: palette.common.white,\n border: `1px solid ${palette.error.main}`,\n\n '&:hover': {\n backgroundColor: palette.error.main,\n borderColor: palette.common.white,\n boxShadow: 'none',\n },\n '&:active': {\n backgroundColor: palette.error.main,\n borderColor: palette.common.white,\n },\n },\n }),\n { index: 0 }\n);\n","import { Box, Button, Modal, Typography, useMediaQuery } from '@material-ui/core';\nimport { bool, func } from 'prop-types';\n\nimport React from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { useStyles } from './styles';\n\nconst ConfirmPublicAccessModal = ({ callback, open, handleClose }) => {\n const { t } = useTranslation();\n\n const classes = useStyles();\n\n const handleSubmit = () => {\n handleClose();\n callback();\n };\n\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n return (\n \n \n \n {t('inviteToDocument.section.advancedSettings.modal.header')}\n \n \n {t('inviteToDocument.section.advancedSettings.modal.text')}\n \n \n {t('inviteToDocument.section.advancedSettings.modal.confirmation')}\n \n\n
    \n \n {t('inviteToDocument.section.advancedSettings.modal.submit')}\n \n \n
    \n
    \n
    \n );\n};\n\nConfirmPublicAccessModal.propTypes = {\n callback: func,\n handleClose: func,\n open: bool,\n};\n\nexport default ConfirmPublicAccessModal;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { FormControlLabel, Switch, Typography } from '@material-ui/core';\nimport { useSelector } from 'react-redux';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\nimport { documentInvitationsSelector } from 'src/redux/selectors/documentInvitations.selector';\nimport Section from '../subcomponents/Section';\nimport InfoTooltip from '../subcomponents/InfoTooltip';\nimport { UsersManagerContext, UsersManagerContextType } from '../subcomponents/UsersManagerContext';\nimport ConfirmPublicAccessModal from '../subcomponents/confirmPublicAccessModal';\n\nconst UsersManagerAdvancedSettings = (): JSX.Element => {\n const { t } = useTranslation();\n const {\n isDraftPublicAccess,\n isDraftTransferable,\n updateDraftTransferable,\n updateDraftPublicAccess,\n } = useContext(UsersManagerContext) as UsersManagerContextType;\n const { canSetTransferabilityCert } = useSelector(\n DocumentUserManagerSelector.selectDocumentAction,\n undefined\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const documentInfo = useSelector((state: any) => state.documentDisplayStore.document, undefined);\n\n const isPending = useSelector(\n documentInvitationsSelector.selectIsAdvancedSettingsPending,\n undefined\n );\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n\n const toggleIsPublic = () => {\n if (isDraftPublicAccess) {\n updateDraftPublicAccess(false);\n } else {\n setShowConfirmationModal(true);\n }\n };\n\n const toggleTransferability = () => updateDraftTransferable(!isDraftTransferable);\n\n useEffect(() => {\n if (documentInfo?.id) {\n if (documentInfo?.additionalAttributes?.transferable !== undefined) {\n updateDraftTransferable(documentInfo?.additionalAttributes?.transferable);\n }\n if (documentInfo?.publicFile !== undefined) {\n updateDraftPublicAccess(documentInfo?.publicFile);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentInfo]);\n\n return (\n <>\n ('documentUserManager.advancedSettings.title')}\n leftContent={\n <>\n \n }\n label={\n
    \n \n {t('documentUserManager.advancedSettings.publicAccess.title')}\n (\n 'documentUserManager.advancedSettings.publicAccess.tooltip'\n )}\n />\n \n
    \n }\n />\n
    \n \n }\n label={\n
    \n \n {t('documentUserManager.advancedSettings.transferability.title')}\n (\n 'documentUserManager.advancedSettings.transferability.tooltip'\n )}\n />\n \n
    \n }\n />\n \n }\n />\n setShowConfirmationModal(false)}\n callback={() => updateDraftPublicAccess(true)}\n />\n \n );\n};\nexport default UsersManagerAdvancedSettings;\n","import certificateCreatorConstants from '../constants/certificateCreator.constants';\nimport documentDSLServices from '../services/documentDSL.service';\nimport filesModuleService from '../services/filesModule.service';\nimport identityActions from './identity.actions';\nimport snackbarActions from './snackbar.actions';\nimport { SNACKBAR_VARIANT } from '../../models/common.model';\nimport i18n from '../../helpers/i18n';\n\nconst setCreatorStep = ({ currentStep }) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_CREATOR_STEP,\n payload: currentStep,\n });\n\nconst setCreatorStepBack = () => (dispatch) => {\n dispatch({\n type: certificateCreatorConstants.SET_CREATOR_STEP_BACK,\n });\n};\n\nconst setSelectedTemplate = (template) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_SELECTED_TEMPLATE_ID,\n payload: template,\n });\n\nconst setQuantityType = ({ type }) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_CERTIFICATE_QUANTITY_TYPE,\n payload: type,\n });\n\nconst setRawImportedData = ({ importedData }) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_RAW_IMPORTED_DATA,\n payload: importedData,\n });\n\nconst setDraftFromImportedData = () => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_DRAFT_FROM_IMPORTED_DATA,\n });\n\nconst updateDraftImportedData = ({ index, key, value }) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.UPDATE_DRAFT_IMPORTED_DATA,\n payload: { index, key, value },\n });\n\nconst updateDraftSingleFields = (field) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.UPDATE_DRAFT_SINGLE_FIELDS,\n payload: field,\n });\n\nconst addNewRowToDraftImportedData = () => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.ADD_NEW_ROW_TO_DRAFT_IMPORTED_DATA,\n });\n\nconst updateSelectedDraftImportedData = (selectedIds) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.UPDATE_SELECTED_DRAFT_IMPORTED_DATA,\n payload: selectedIds,\n });\n\nconst deleteSelectedDraftImportedData = () => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.DELETED_SELECTED_DRAFT_IMPORTED_DATA,\n });\n\nconst setMappedFields = ({ keyValuePair }) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_MAPPED_FIELDS,\n payload: keyValuePair,\n });\n\nconst fetchTemplateList = (workspaceId) => (dispatch) => {\n dispatch({ type: certificateCreatorConstants.FETCH_TEMPLATE_LIST_REQUEST });\n documentDSLServices\n .fetchTemplateList(workspaceId)\n .then((response) => {\n dispatch({\n type: certificateCreatorConstants.FETCH_TEMPLATE_LIST_SUCCESS,\n payload: response.data.data,\n });\n })\n .catch(() => {\n dispatch({ type: certificateCreatorConstants.FETCH_TEMPLATE_LIST_FAILURE });\n });\n};\n\nconst checkCreatedFileIds = (documentIds) => (dispatch) => {\n documentDSLServices\n .checkCreatedFileIds(documentIds)\n .then((response) => {\n dispatch({\n type: certificateCreatorConstants.UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST,\n payload: response.data.data.fileIds,\n });\n })\n .catch(() => {\n dispatch({\n type: certificateCreatorConstants.UPDATE_NEW_CERTIFICATE_FILE_CREATED_LIST_FAILURE,\n });\n });\n};\n\nconst fetchTemplateListThumbnailToken = ({ template, workspaceId }) => (dispatch) => {\n dispatch({ type: certificateCreatorConstants.FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_REQUEST });\n\n documentDSLServices\n .fetchTemplateListThumbnailToken({\n workspaceId,\n templateThumbnailId: template.thumbnailPreviewId,\n templateId: template.id,\n })\n .then((response) => {\n dispatch({\n type: certificateCreatorConstants.FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_SUCCESS,\n payload: { [template.id]: response.data.data.token },\n });\n })\n .catch(() => {\n dispatch({ type: certificateCreatorConstants.FETCH_TEMPLATE_LIST_THUMBNAIL_TOKEN_FAILURE });\n });\n};\n\nconst fetchTemplatePreview = ({ template, workspaceId }) => (dispatch) => {\n dispatch({\n type: certificateCreatorConstants.FETCH_TEMPLATE_PREVIEW_REQUEST,\n });\n documentDSLServices\n .fetchTemplateListThumbnailToken({\n workspaceId,\n templateThumbnailId: template.previewId,\n templateId: template.id,\n })\n .then((response) => {\n filesModuleService\n .downloadFile(response.data.data.token)\n .then((response) => {\n dispatch({\n type: certificateCreatorConstants.FETCH_TEMPLATE_PREVIEW_SUCCESS,\n payload: window.URL.createObjectURL(response.data),\n });\n })\n .catch((error) => {\n dispatch({\n type: certificateCreatorConstants.FETCH_TEMPLATE_PREVIEW_FAILURE,\n payload: error,\n });\n });\n })\n .catch((error) => {\n dispatch({\n type: certificateCreatorConstants.FETCH_TEMPLATE_PREVIEW_FAILURE,\n payload: error,\n });\n });\n};\n\nconst fetchTemplateDetails = ({ templateId, workspaceId }) => (dispatch) => {\n dispatch({ type: certificateCreatorConstants.FETCH_TEMPLATE_FIELDS_REQUEST });\n documentDSLServices\n .fetchTemplateDetails({ workspaceId, templateId })\n .then((response) => {\n dispatch({\n type: certificateCreatorConstants.FETCH_TEMPLATE_FIELDS_SUCCESS,\n payload: response.data.data,\n });\n })\n .catch(() => {\n dispatch({ type: certificateCreatorConstants.FETCH_TEMPLATE_FIELDS_FAILURE });\n });\n};\n\nconst createCertificate = ({ templateId, workspaceId, certificateList }) => (dispatch) => {\n dispatch({ type: certificateCreatorConstants.CREATE_NEW_CERTIFICATE_FILE_REQUEST });\n\n documentDSLServices\n .createCertificate({ workspaceId, templateId, certificateList })\n .then((response) => {\n dispatch({\n type: certificateCreatorConstants.CREATE_NEW_CERTIFICATE_FILE_SUCCESS,\n payload: [...response.data.data],\n });\n })\n .catch((error) => {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n dispatch({ type: certificateCreatorConstants.CREATE_NEW_CERTIFICATE_FILE_FAILURE });\n });\n};\n\nconst createCertificateTransaction = ({\n workspaceId,\n workflowName,\n documentAttributes,\n folderId,\n callback,\n}) => (dispatch) => {\n const body = {\n workflowName,\n documentAttributes,\n };\n dispatch({ type: certificateCreatorConstants.CREATE_NEW_CERTIFICATE_REQUEST });\n documentDSLServices\n .sendCertificateDocuments({ workspaceId, body, folderId })\n .then((response) => {\n dispatch({ type: certificateCreatorConstants.CREATE_NEW_CERTIFICATE_SUCCESS });\n if (response) {\n const txn = response?.data?.data?.txn;\n if (txn) {\n dispatch(identityActions.sendTransactionFromNewCertificate(txn, callback));\n }\n }\n })\n .catch(() => {\n dispatch({ type: certificateCreatorConstants.CREATE_NEW_CERTIFICATE_FAILURE });\n });\n};\n\nconst updateCertificateRoles = ({ workspaceId, documentIds, admins, editors, viewers }) => (\n dispatch\n) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_ROLES_REQUEST });\n documentDSLServices\n .updateCertificateRoles({ workspaceId, admins, documentIds, editors, viewers })\n .then((response) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_ROLES_SUCCESS });\n if (response) {\n const txn = response?.data?.data?.txn;\n if (txn) {\n dispatch(identityActions.sendTransactionFromNewCertificate(txn));\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendSuccess')\n )\n );\n }\n }\n })\n .catch((error) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_ROLES_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst updateCertificateSigners = ({ workspaceId, documentIds, signers, isOrderSignificant }) => (\n dispatch\n) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_SIGNERS_REQUEST });\n documentDSLServices\n .updateCertificateSigner({ workspaceId, documentIds, signers, isOrderSignificant })\n .then((response) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_SIGNERS_SUCCESS });\n if (response) {\n const txn = response?.data?.data?.txn;\n if (txn) {\n dispatch(identityActions.sendTransactionFromNewCertificate(txn));\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsSendSuccess')\n )\n );\n }\n }\n })\n .catch((error) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_SIGNERS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst inviteMultipleByRole = ({ collection }) => (dispatch) => {\n dispatch({ type: certificateCreatorConstants.INVITE_MULTIPLE_HOLDERS_REQUEST });\n documentDSLServices\n .inviteMultipleByRole(collection)\n .then((response) => {\n if (response) {\n const txnCollection = response?.data?.data?.collection;\n\n if (txnCollection) {\n txnCollection.forEach((item) => {\n dispatch(identityActions.sendTransactionFromNewCertificate(item.txn));\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendSuccess')\n )\n );\n });\n\n dispatch({ type: certificateCreatorConstants.INVITE_MULTIPLE_HOLDERS_SUCCESS });\n }\n }\n })\n .catch((error) => {\n dispatch({ type: certificateCreatorConstants.INVITE_MULTIPLE_HOLDERS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\nconst setCurrentLocation = (currentLocation) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_CURRENT_LOCATION,\n payload: currentLocation,\n });\n\nconst setMultipleHolders = (holders) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.SET_MULTIPLE_HOLDERS,\n payload: holders,\n });\n\nconst addCreatedCertificates = (documentId) => (dispatch) =>\n dispatch({\n type: certificateCreatorConstants.ADD_CREATED_CERTIFICATE,\n payload: documentId,\n });\n\nconst clearStore = () => (dispatch) => dispatch({ type: certificateCreatorConstants.CLEAR });\nconst resetForNewTemplate = () => (dispatch) =>\n dispatch({ type: certificateCreatorConstants.CLEAR });\n\nconst certificateCreatorActions = {\n setCreatorStep,\n setCreatorStepBack,\n setSelectedTemplate,\n setQuantityType,\n setRawImportedData,\n setDraftFromImportedData,\n updateDraftImportedData,\n addNewRowToDraftImportedData,\n updateSelectedDraftImportedData,\n deleteSelectedDraftImportedData,\n updateDraftSingleFields,\n setMappedFields,\n fetchTemplateList,\n fetchTemplateListThumbnailToken,\n fetchTemplatePreview,\n fetchTemplateDetails,\n setCurrentLocation,\n createCertificate,\n createCertificateTransaction,\n checkCreatedFileIds,\n updateCertificateRoles,\n updateCertificateSigners,\n setMultipleHolders,\n inviteMultipleByRole,\n clearStore,\n resetForNewTemplate,\n addCreatedCertificates,\n};\n\nexport default certificateCreatorActions;\n","import { AxiosPromise } from 'axios';\nimport axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\nimport { API_MODULE } from 'src/models/common.model';\nimport { DocumentInvitationMemberRole } from 'src/models/documentUsersManagement.model';\n\ntype deleteInvitationByMailType = {\n service: API_MODULE;\n email: string;\n role: DocumentInvitationMemberRole;\n documentId: string;\n};\n\nconst deleteInvitationByMail = ({\n documentId,\n role,\n email,\n service,\n}: deleteInvitationByMailType): AxiosPromise =>\n axios\n .delete(\n `/rest/${service}/documents/${documentId}/roles/${role}/invitations?mail=${encodeURIComponent(\n email\n )}`\n )\n .then((response) => response)\n .catch((error) => parseError(error));\n\nconst documentInvitationsTsServices = {\n deleteInvitationByMail,\n};\n\nexport default documentInvitationsTsServices;\n","import {\n DocumentInvitationMemberRole,\n UserManagerPerson,\n} from 'src/models/documentUsersManagement.model';\nimport { API_MODULE, SNACKBAR_VARIANT } from 'src/models/common.model';\nimport documentInvitiationsService from 'src/redux/services/documentInvitations.service';\nimport i18n from '../../helpers/i18n';\nimport snackbarActions from './snackbar.actions';\nimport { documentMemberRoleToInvitationRole } from '../selectors/documentUserManager.selector';\nimport { AppDispatch } from '../storeTs';\nimport certificateCreatorActions from './certificateCreator.actions';\nimport documentDSLService from '../services/documentDSL.service';\nimport identityActions from './identity.actions';\nimport documentInvitationConstants from '../constants/documentInvitiation.constants';\nimport documentInvitationsTsServices from '../services/documentInvitationsTs.service';\nimport { DocumentRole } from '../../models/document.model';\nimport identityService from '../services/identity.service';\nimport certificateCreatorConstants from '../constants/certificateCreator.constants';\n\nconst genericErrorHelper = (msg: string) =>\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n msg\n );\n\ntype inviteRolesByMailType = {\n documentIds: string[];\n service: API_MODULE.DocumentDslService | API_MODULE.DocumentService;\n users: UserManagerPerson[];\n successCallback?: () => void;\n};\n\ntype parsedInvitationsType = {\n email: string | undefined;\n role: DocumentInvitationMemberRole;\n documentId: string;\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst inviteRolesByMail = ({\n documentIds,\n users,\n service,\n successCallback,\n}: inviteRolesByMailType) => {\n const parsedInvitations: parsedInvitationsType[] = users\n .map((user: UserManagerPerson) => [\n ...documentIds.map((documentId) => ({\n email: user.email,\n role: documentMemberRoleToInvitationRole(user.role),\n documentId,\n })),\n ])\n .flat();\n\n return (dispatch: AppDispatch) => {\n if (documentIds.length > 1) {\n // TODO: check for batch\n dispatch(\n certificateCreatorActions.inviteMultipleByRole({\n collection: parsedInvitations,\n })\n );\n } else if (service === API_MODULE.DocumentDslService) {\n // invite by mail for certificates\n const invitationPromises = parsedInvitations.map((user) =>\n documentDSLService.inviteRoleByMail(user.documentId, user.role, user.email)\n );\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_REQUEST });\n Promise.allSettled(invitationPromises)\n .then((results) => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_SUCCESS, results });\n // list of success results\n const successPromises = (results.filter(\n (c) => c.status === 'fulfilled'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as PromiseFulfilledResult[]).map((c) => c.value);\n // list of failed results\n const rejectedResults = (results.filter(\n (c) => c.status === 'rejected'\n ) as PromiseRejectedResult[]).map((c) => c.reason);\n\n // List of txn (tansactions) promises\n const txnPromises = successPromises\n .map((promise) => promise?.data?.data?.collection)\n .flat()\n .map((el) => el.txn)\n .filter((el) => el)\n .map((txn) => identityService.sendTransaction(txn));\n\n // list of success mails sent\n const emailsSend = successPromises.map(\n (promise) => ` ${JSON.parse(promise.config.data)?.email}`\n );\n\n // Show error if some\n if (successPromises?.length === 0 && rejectedResults?.length > 0) {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n }\n\n // Send transactions\n Promise.all(txnPromises)\n .then(() => {\n if (successCallback) successCallback();\n if (txnPromises.length === results.length) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsEmailsSuccess')\n )\n );\n } else {\n dispatch(\n snackbarActions.enqueueSnackbar(\n 'info',\n i18n.t('snackbars.common.infoTitle'),\n `${i18n.t('inviteToDocument.invitationsEmailsInfo')} ${emailsSend.map(\n (item) => item\n )}.`\n )\n );\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n });\n })\n .catch(() => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n });\n } else {\n const invitationPromises = parsedInvitations.map((user) =>\n documentInvitiationsService.inviteRoleByMail(user.documentId, user.role, user.email)\n );\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_REQUEST });\n Promise.allSettled(invitationPromises)\n .then((results) => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_SUCCESS, results });\n const fulfilledPromises = (results.filter(\n (c: { status: string }) => c.status === 'fulfilled'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as PromiseFulfilledResult[]).map((c) => c.value);\n const failedResults = (results.filter(\n (c) => c.status === 'rejected'\n ) as PromiseRejectedResult[]).map((c) => c.reason);\n\n if (fulfilledPromises?.length === 0 && failedResults?.length > 0) {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredResults = results.filter((result: any) => result?.value?.data?.data?.txn);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const txnPromises = filteredResults.map((promise: any) =>\n identityService.sendTransaction(promise?.value?.data?.data.txn)\n );\n\n if (txnPromises?.length > 0) {\n Promise.all(txnPromises)\n .then(() => {\n if (successCallback) successCallback();\n if (txnPromises.length === filteredResults.length) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendSuccess')\n )\n );\n } else {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendPartialSuccess')\n )\n );\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesSendError')));\n });\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationEmailsError')));\n });\n }\n };\n};\n\ntype inviteMultipleByRoleDSLType = {\n collection: parsedInvitationsType[];\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst inviteMultipleByRoleDSL = ({ collection }: inviteMultipleByRoleDSLType) => (\n dispatch: AppDispatch\n) => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_REQUEST });\n documentDSLService\n .inviteMultipleByRole(collection)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n if (response) {\n const txnCollection = response?.data?.data?.collection;\n\n if (txnCollection) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n txnCollection.forEach((item: any) => {\n if (item.txn) dispatch(identityActions.sendTransactionFromNewCertificate(item.txn));\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendSuccess')\n )\n );\n });\n\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_SUCCESS });\n }\n }\n })\n .catch((error) => {\n dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_ERROR });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n};\n\ntype updateDocumentRolesType = {\n documentId: string;\n admins?: string[];\n auditors?: string[];\n editors?: string[];\n viewers?: string[];\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst updateDocumentRoles = ({\n documentId,\n admins,\n auditors,\n editors,\n viewers,\n}: updateDocumentRolesType) =>\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n (dispatch: AppDispatch) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const documentRolesPromises: any[] = [];\n if (admins)\n documentRolesPromises.push(\n documentInvitiationsService.replaceDocumentRoles(documentId, DocumentRole.ADMINS, admins)\n );\n if (auditors)\n documentRolesPromises.push(\n documentInvitiationsService.replaceDocumentRoles(\n documentId,\n DocumentRole.AUDITORS,\n auditors\n )\n );\n if (editors)\n documentRolesPromises.push(\n documentInvitiationsService.replaceDocumentRoles(documentId, DocumentRole.EDITORS, editors)\n );\n if (viewers)\n documentRolesPromises.push(\n documentInvitiationsService.replaceDocumentRoles(documentId, DocumentRole.VIEWERS, viewers)\n );\n\n dispatch({ type: documentInvitationConstants.REPLACE_DOCUMENT_ROLES_REQUEST });\n Promise.allSettled(documentRolesPromises)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredResults = response.filter((result: any) => result?.value?.data?.data?.txn);\n const fulfilledPromises = (response.filter(\n (c: { status: string }) => c.status === 'fulfilled'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as PromiseFulfilledResult[]).map((c) => c.value);\n const rejectedPromises = (response.filter(\n (c: { status: string }) => c.status === 'rejected'\n ) as PromiseRejectedResult[]).map((c) => c.reason);\n\n const txnPromises = filteredResults.map(\n (promise: { value: { data: { data: { txn?: string } } } }) =>\n identityService.sendTransaction(promise.value.data.data.txn)\n );\n\n if (fulfilledPromises?.length === 0 && rejectedPromises?.length > 0) {\n dispatch({ type: documentInvitationConstants.REPLACE_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesSendError')));\n }\n\n if (txnPromises?.length > 0) {\n Promise.all(txnPromises)\n .then(() => {\n if (txnPromises.length === filteredResults.length) {\n dispatch({ type: documentInvitationConstants.REPLACE_DOCUMENT_ROLES_SUCCESS });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendSuccess')\n )\n );\n } else {\n dispatch({\n type: documentInvitationConstants.REPLACE_DOCUMENT_ROLES_PARTIAL_SUCCESS,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendPartialSuccess')\n )\n );\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitationConstants.REPLACE_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesSendError')));\n });\n }\n })\n .catch(() => {\n dispatch({ type: documentInvitationConstants.REPLACE_DOCUMENT_ROLES_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.invitationsRolesSendError')));\n });\n };\n\ntype updateCertificateRolesType = {\n documentIds: string[];\n workspaceId: string;\n admins: string[];\n auditors: string[];\n editors: string[];\n viewers: string[];\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst updateCertificateRoles = ({\n workspaceId,\n documentIds,\n admins,\n editors,\n viewers,\n}: updateCertificateRolesType) =>\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n (dispatch: AppDispatch) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_ROLES_REQUEST });\n documentDSLService\n .updateCertificateRoles({ workspaceId, admins, documentIds, editors, viewers })\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((response: any) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_ROLES_SUCCESS });\n if (response) {\n const txn = response?.data?.data?.txn;\n if (txn) {\n dispatch(identityActions.sendTransactionFromNewCertificate(txn));\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('inviteToDocument.invitationsRolesSendSuccess')\n )\n );\n }\n }\n })\n .catch((error) => {\n dispatch({ type: certificateCreatorConstants.UPDATE_CERTIFICATE_ROLES_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst deleteRolesByMail = ({ documentIds, users, service }: inviteRolesByMailType) => (\n dispatch: AppDispatch\n) => {\n dispatch({ type: documentInvitationConstants.DELETE_USERS_MAIL_INVITATION_REQUEST });\n\n const parsedInvitations: parsedInvitationsType[] = users\n .map((user: UserManagerPerson) => [\n ...documentIds.map((documentId) => ({\n email: user.email,\n role: documentMemberRoleToInvitationRole(user.role),\n documentId,\n })),\n ])\n .flat();\n\n const deleteInvitationPromises = parsedInvitations.map((user) =>\n documentInvitationsTsServices.deleteInvitationByMail({\n documentId: user.documentId,\n email: user.email || '',\n role: user.role,\n service,\n })\n );\n\n Promise.allSettled(deleteInvitationPromises)\n .then((results) => {\n // dispatch({ type: documentInvitationConstants.INVITE_USERS_BY_MAIL_SUCCESS, results });\n const allValues = (results.filter(\n (c) => c.status === 'fulfilled'\n ) as PromiseFulfilledResult[]).map((c) => c.value);\n const failedResults = (results.filter(\n (c) => c.status === 'rejected'\n ) as PromiseRejectedResult[]).map((c) => c.reason);\n\n if (allValues?.length === 0 && failedResults?.length > 0) {\n dispatch({ type: documentInvitationConstants.DELETE_USERS_MAIL_INVITATION_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n }\n\n /*\n * TODO: Restore when functionality will be introduced to blockchain\n * */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // const txnPromises = allValues.map((promise:any) =>\n // identityService.sendTransaction(promise?.value?.data?.data?.txn)\n // );\n // Promise.all(txnPromises)\n // .catch(() => {\n // dispatch({ type: documentInvitationConstants.DELETE_USERS_MAIL_INVITATION_ERROR });\n // dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n // });\n })\n .catch(() => {\n dispatch({ type: documentInvitationConstants.DELETE_USERS_MAIL_INVITATION_ERROR });\n dispatch(genericErrorHelper(i18n.t('inviteToDocument.deleteInvitationEmailsError')));\n });\n};\n\nconst documentInvitationsTsActions = {\n inviteRolesByMail,\n inviteMultipleByRoleDSL,\n updateDocumentRoles,\n updateCertificateRoles,\n deleteRolesByMail,\n};\n\nexport default documentInvitationsTsActions;\n","import React from 'react';\nimport { createStyles, makeStyles } from '@material-ui/core';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { lighten } from '@material-ui/core/styles';\nimport { CertificateQuantityType } from 'src/models/certificate.model';\nimport { RootState } from 'src/redux/reducers';\n\nexport const useStyles = makeStyles(\n ({ spacing, shape, palette }) =>\n createStyles({\n wrapper: {\n marginTop: -4,\n display: 'inline-flex',\n alignItems: 'center',\n marginBottom: 24,\n padding: spacing(1, 2),\n minHeight: 48,\n justifyContent: 'space-between',\n borderRadius: shape.borderRadius,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: lighten(palette.warning.main, 0.9),\n backgroundColor: lighten(palette.warning.main, 0.95),\n color: palette.warning.main,\n },\n container: {\n display: 'flex',\n justifyContent: 'center',\n },\n }),\n { index: 0 }\n);\n\nconst MultipleInvitationWarningBar = (): JSX.Element | null => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { certificateQuantityType } = useSelector(\n (state: RootState) => state.certificateCreatorStore,\n undefined\n );\n\n if (certificateQuantityType !== CertificateQuantityType.Multiple) return null;\n return (\n
    \n
    {t('inviteToDocument.multipleWarningText')}
    \n
    \n );\n};\n\nexport default MultipleInvitationWarningBar;\n","import React, { useCallback, useContext, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { FullScreenDialog, SmallContentWithScrollbar } from 'src/components/index';\nimport { Button } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { AppDispatch } from 'src/redux/storeTs';\nimport { RootState } from 'src/redux/reducers';\nimport DocumentUserManagerSelector from 'src/redux/selectors/documentUserManager.selector';\nimport documentUserManagerActions from 'src/redux/actions/documentUserManager.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport {\n DocumentMember,\n DocumentMemberRole,\n UserManagerPerson,\n} from 'src/models/documentUsersManagement.model';\nimport { API_MODULE } from 'src/models/common.model';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport UsersManagerSigners from './sections/UsersManagerSigners';\nimport UsersManagerHolder from './sections/UsersManagerHolder';\nimport UsersManagerOtherRoles from './sections/UsersManagerOtherRoles';\nimport UsersManagerAdvancedSettings from './sections/UsersManagerAdvancedSettings';\nimport { UsersManagerContext, UsersManagerContextType } from './subcomponents/UsersManagerContext';\nimport certificateManagementActions from '../../redux/actions/certificateManagement.actions';\nimport documentInvitationsTsActions from '../../redux/actions/documentInvitationsTs.actions';\nimport { documentInvitationsSelector } from '../../redux/selectors/documentInvitations.selector';\nimport certificateCreatorActions from '../../redux/actions/certificateCreator.actions';\nimport documentInvitationActions from '../../redux/actions/documentInvitiation.actions';\nimport MultipleInvitationWarningBar from './subcomponents/MultipleInvitationWarningBar';\nimport { TemplateDocumentType } from '../../models/documents.model';\n\nconst containsAll = (arr1: (string | undefined)[], arr2: (string | undefined)[]) =>\n arr2.every((arr2Item) => arr1.includes(arr2Item));\n\nconst sameMembers = (arr1: (string | undefined)[], arr2: (string | undefined)[]) =>\n containsAll(arr1, arr2) && containsAll(arr2, arr1);\n\ninterface DocumentUsersManagerProps {\n documentIds: string[];\n showHolders?: boolean;\n onClose: () => void;\n}\n\nconst DocumentUsersManager = ({\n documentIds,\n onClose,\n showHolders = true,\n}: DocumentUsersManagerProps): JSX.Element => {\n const history = useHistory();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n const holders = useSelector(DocumentUserManagerSelector.selectHoldersWithDetails, undefined);\n const { canSetTransferabilityCert } = useSelector(\n DocumentUserManagerSelector.selectDocumentAction,\n undefined\n );\n const signers = useSelector(\n DocumentUserManagerSelector.selectSignersInOrderWithDetails,\n undefined\n );\n const otherRoles = useSelector(\n DocumentUserManagerSelector.selectOtherRolesWithDetails,\n undefined\n );\n const {\n documentMembers,\n documentMembersStatus,\n externalEntitiesStatus,\n invitedDocumentMembersStatus,\n documentSigners: { isOrderSignificant, requiredSignersCount },\n } = useSelector((state: RootState) => state.documentUsersManagerStore, undefined);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const documentInfo = useSelector((state: any) => state.documentDisplayStore.document, undefined);\n\n const {\n isDraftTransferable,\n isDraftPublicAccess,\n isDraftIsOrderSignificant,\n draftHolders,\n draftSigners,\n draftOtherRoles,\n updateDraftHolders,\n updateDraftSigners,\n updateDraftOtherRoles,\n } = useContext(UsersManagerContext) as UsersManagerContextType;\n\n const prevState = usePrevious({\n documentMembersStatus,\n externalEntitiesStatus,\n invitedDocumentMembersStatus,\n });\n\n const isCertificate = history.location.pathname.includes('certificate');\n const apiModule = isCertificate ? API_MODULE.DocumentDslService : API_MODULE.DocumentService;\n\n const isAdvancedSettingsPending = useSelector(\n documentInvitationsSelector.selectIsAdvancedSettingsPending,\n undefined\n );\n\n const isButtonDisabled = isAdvancedSettingsPending;\n const onModalCloseClick = () => {\n history.replace({\n search: '',\n });\n onClose();\n };\n\n const showSignersSection = documentInfo.documentType !== TemplateDocumentType.DURABLE_MEDIA;\n // on submit\n const onSubmit = () => {\n dispatch(\n documentUserManagerActions.updateDraftRoles({\n draftSigners,\n draftOtherRoles,\n draftHolders,\n draftTransferability: isDraftTransferable,\n })\n );\n submitSigners();\n submitOtherRoles();\n\n if (isCertificate) {\n submitHolders();\n submitAdvancedSettings();\n }\n onClose();\n };\n\n // submit signers section\n const submitSigners = useCallback(() => {\n const signersIds = signers.map((el) => el._id).filter((el) => el);\n const draftSignersIds = draftSigners.map((el) => el._id).filter((el) => el);\n const hasSameOrder = signersIds.join(',') === draftSignersIds.join(',');\n const hasSameSigners = sameMembers(signersIds, draftSignersIds);\n // update signers only if\n // - order is important and order has changed or\n // - signers changed or\n // - isOrderSignificant changed\n // - requiredSignersCount changed\n if (\n (isDraftIsOrderSignificant && !hasSameOrder) ||\n !hasSameSigners ||\n isDraftIsOrderSignificant !== isOrderSignificant ||\n (requiredSignersCount && requiredSignersCount !== draftSigners.length)\n ) {\n updateSigners();\n dispatch(documentUserManagerActions.updateSignersChanged(true));\n }\n // invite new signers by mail\n if (!isDraftIsOrderSignificant) inviteNewRolesByMail(draftSigners);\n\n // delete removed signers invitations\n deleteUnusedInvitations(signers, draftSigners);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [signers, draftSigners, isDraftIsOrderSignificant, isOrderSignificant]);\n\n // submit other roles section\n const submitOtherRoles = () => {\n deleteUnusedInvitations(otherRoles, draftOtherRoles);\n inviteNewRolesByMail(draftOtherRoles);\n updateOtherRoles();\n };\n\n // update roles for contact book\n const updateOtherRoles = () => {\n const adminsChanged = rolesChanged(DocumentMemberRole.ADMIN);\n const auditorsChanged = rolesChanged(DocumentMemberRole.AUDITOR);\n const editorsChanged = rolesChanged(DocumentMemberRole.EDITOR);\n const viewersChanged = rolesChanged(DocumentMemberRole.VIEWER);\n\n // check if any role has changed\n if (adminsChanged || auditorsChanged || editorsChanged || viewersChanged) {\n const admins = draftOtherRoles\n .filter((el) => el.role === DocumentMemberRole.ADMIN && el._id)\n .map((el) => el._id || '');\n const auditors = draftOtherRoles\n .filter((el) => el.role === DocumentMemberRole.AUDITOR && el._id)\n .map((el) => el._id || '');\n const editors = draftOtherRoles\n .filter((el) => el.role === DocumentMemberRole.EDITOR && el._id)\n .map((el) => el._id || '');\n const viewers = draftOtherRoles\n .filter((el) => el.role === DocumentMemberRole.VIEWER && el._id)\n .map((el) => el._id || '');\n\n dispatch(documentUserManagerActions.updateRecipientsChanged(true));\n if (isCertificate && workspaceId) {\n dispatch(\n documentInvitationsTsActions.updateCertificateRoles({\n workspaceId,\n documentIds,\n admins,\n auditors,\n editors,\n viewers,\n })\n );\n } else {\n dispatch(\n documentInvitationsTsActions.updateDocumentRoles({\n documentId: documentIds[0],\n admins: adminsChanged ? admins : undefined,\n auditors: auditorsChanged ? auditors : undefined,\n editors: editorsChanged ? editors : undefined,\n viewers: viewersChanged ? viewers : undefined,\n })\n );\n }\n }\n };\n\n // compare ids for selected role\n const rolesChanged = (role: DocumentMemberRole): boolean => {\n const ids = otherRoles\n .filter((el) => el.role === role && el._id)\n .map((el) => el._id)\n .filter((el) => el);\n const draftIds = draftOtherRoles\n .filter((el) => el.role === role && el._id)\n .map((el) => el._id)\n .filter((el) => el);\n\n return !sameMembers(ids, draftIds);\n };\n\n // submit holders section. Invite by mail or remove invitation\n const submitHolders = () => {\n const holdersIds = holders\n // invite only newly added mails\n .filter((el) => el.isInvitationToBeSend)\n .map((el) => el._id || el.email)\n .filter((el) => el);\n const draftHoldersIds = draftHolders\n // invite only newly added mails\n .filter((el) => el.isInvitationToBeSend)\n .map((el) => el._id || el.email)\n .filter((el) => el);\n\n const isSameHolders = sameMembers(holdersIds, draftHoldersIds);\n if (draftHoldersIds.length > 0) {\n if (!isSameHolders) {\n dispatch(documentUserManagerActions.updateRecipientsChanged(true));\n dispatch(\n documentInvitationsTsActions.inviteRolesByMail({\n documentIds,\n users: draftHolders,\n service: apiModule,\n })\n );\n }\n } else {\n deleteUnusedInvitations(holders, draftHolders);\n }\n };\n\n // update advanced settings from certificate. Check if changed then update\n const submitAdvancedSettings = () => {\n const transferable = documentInfo?.additionalAttributes?.transferable;\n const publicAccess = documentInfo?.publicFile;\n\n if (\n canSetTransferabilityCert &&\n transferable !== undefined &&\n transferable !== isDraftTransferable\n ) {\n documentIds.forEach((dId) => {\n dispatch(\n certificateManagementActions.setCertificateTransferability(\n dId,\n workspaceId,\n isDraftTransferable\n )\n );\n });\n }\n\n if (publicAccess !== undefined && publicAccess !== isDraftPublicAccess) {\n documentIds.forEach((dId) => {\n dispatch(certificateManagementActions.setCertificateAccessLevel(dId, isDraftPublicAccess));\n });\n }\n };\n\n // Invite new roles by mail\n const inviteNewRolesByMail = (users: UserManagerPerson[]) => {\n const newUsersToInvite = users.filter((el) => el.isInvitationToBeSend);\n if (newUsersToInvite.length > 0) {\n if (newUsersToInvite.filter((el) => el.role === DocumentMemberRole.SIGNER).length > 0)\n dispatch(documentUserManagerActions.updateSignersChanged(true));\n if (newUsersToInvite.filter((el) => el.role !== DocumentMemberRole.SIGNER).length > 0)\n dispatch(documentUserManagerActions.updateRecipientsChanged(true));\n dispatch(\n documentInvitationsTsActions.inviteRolesByMail({\n documentIds,\n users: newUsersToInvite,\n service: apiModule,\n })\n );\n }\n };\n\n // update signers from contact book\n const updateSigners = () => {\n const signers = draftSigners.map((signer) => signer._id).filter((el) => el);\n if (apiModule === API_MODULE.DocumentDslService) {\n dispatch(\n certificateCreatorActions.updateCertificateSigners({\n workspaceId,\n documentIds,\n signers, // Pass id's only\n isOrderSignificant: isDraftIsOrderSignificant,\n })\n );\n } else {\n dispatch(\n documentInvitationActions.replaceDocumentSigners(\n documentIds[0],\n isDraftIsOrderSignificant,\n draftSigners.length,\n signers\n )\n );\n }\n };\n\n // check which invitation has been deleted and remove them\n const deleteUnusedInvitations = (users: UserManagerPerson[], draftUsers: UserManagerPerson[]) => {\n const invited = users.filter((el) => el.isInvited);\n const draftInvited = draftUsers.filter((el) => el.isInvited);\n const removedInvited = invited.filter(\n (el) => !draftInvited.map((el) => el.email).includes(el.email)\n );\n if (removedInvited.length > 0) {\n if (removedInvited.filter((el) => el.role === DocumentMemberRole.SIGNER).length > 0)\n dispatch(documentUserManagerActions.updateSignersChanged(true));\n if (removedInvited.filter((el) => el.role !== DocumentMemberRole.SIGNER).length > 0)\n dispatch(documentUserManagerActions.updateRecipientsChanged(true));\n\n dispatch(\n documentInvitationsTsActions.deleteRolesByMail({\n documentIds,\n users: removedInvited,\n service: apiModule,\n })\n );\n }\n };\n\n // set draft / prepared data when data is fetched\n useEffect(() => {\n if (\n (prevState?.documentMembersStatus === RequestStatus.PENDING &&\n documentMembersStatus === RequestStatus.IDLE) ||\n (prevState?.externalEntitiesStatus === RequestStatus.PENDING &&\n externalEntitiesStatus === RequestStatus.IDLE) ||\n (prevState?.invitedDocumentMembersStatus === RequestStatus.PENDING &&\n invitedDocumentMembersStatus === RequestStatus.IDLE)\n ) {\n updateDraftHolders(holders);\n updateDraftSigners(signers);\n updateDraftOtherRoles(otherRoles.sort((a, b) => Number(a.isGroup) - Number(b.isGroup))); // sort, group at the end of the list\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [externalEntitiesStatus, documentMembersStatus, invitedDocumentMembersStatus, prevState]);\n\n // fetch entities from external workspaces\n useEffect(() => {\n if (documentMembers.length > 0 && workspaceId) {\n dispatch(\n documentUserManagerActions.getDocumentExternalWorkspaceEntities(\n workspaceId,\n documentMembers.map((member: DocumentMember) => member.id)\n )\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documentMembers]);\n\n // fetch initial data\n useEffect(() => {\n if (documentIds.length > 0) {\n dispatch(documentUserManagerActions.getDocumentMembers(documentIds[0], apiModule));\n dispatch(documentUserManagerActions.getDocumentSigners(documentIds[0], apiModule));\n dispatch(documentUserManagerActions.getDocumentInvitations(documentIds[0], apiModule));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // fetch initial autocomplete searching items and available actions\n useEffect(() => {\n if (workspaceId) {\n dispatch(documentUserManagerActions.getEntitiesByName(workspaceId, ''));\n dispatch(\n documentUserManagerActions.updateDraftRoles({\n draftOtherRoles: [],\n draftSigners: [],\n draftHolders: [],\n draftTransferability: null,\n })\n );\n dispatch(\n documentUserManagerActions.getAvailableDocumentUserActions(documentIds[0], apiModule)\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId]);\n\n // clear user manager state on unmount\n useEffect(\n (): ReturnType => (): AppDispatch =>\n dispatch(documentUserManagerActions.clear()),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n return (\n \n \n \n {t('inviteToDocument.apply')}\n \n
    \n }\n >\n \n {isCertificate && showHolders && }\n {showSignersSection && }\n \n {isCertificate && }\n \n \n );\n};\n\nexport default DocumentUsersManager;\n","import { useSelector } from 'react-redux';\n\nconst useIsDocumentOwner = () => {\n const { roles } = useSelector((state) => state.documentManagementStore);\n const { currentIdentity } = useSelector((state) => state.identityStore);\n\n return roles?.holder?.includes(currentIdentity.identity.identityId) || false;\n};\n\nexport default useIsDocumentOwner;\n","import { useSelector } from 'react-redux';\n\nconst LINKEDIN_SHARE_POST_URL = 'https://www.linkedin.com/shareArticle';\nconst LINKEDIN_ADD_TO_PROFILE_URL = 'https://www.linkedin.com/profile/add';\nconst LINKEDIN_DOXYCHAIN_ORG_ID = 14021793;\n\nconst constructUrl = (baseUrl, params) => {\n const url = new URL(baseUrl);\n url.search = new URLSearchParams(params).toString();\n return url.toString();\n};\n\nconst extractFromUnix = (timestamp) => {\n const date = new Date(timestamp);\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n return { year, month };\n};\n\nconst extractFromISO = (isoString) => {\n const date = new Date(isoString);\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n return { year, month };\n};\n\nconst useLinkedInSharingLinks = () => {\n const document = useSelector((state) => state.documentDisplayStore.document);\n\n const explorerCertificateLink = `${process.env.REACT_APP_EXPLORER_FRONT_URL}document/${document.id}`;\n\n const createPostLink = constructUrl(LINKEDIN_SHARE_POST_URL, {\n url: explorerCertificateLink,\n });\n\n const issueDate = document?.createdAt ? extractFromISO(document?.createdAt) : undefined;\n const expirationDate = document?.additionalAttributes?.expiresOn\n ? extractFromUnix(document?.additionalAttributes?.expiresOn)\n : undefined;\n\n const addToProfileLink = constructUrl(LINKEDIN_ADD_TO_PROFILE_URL, {\n name: document.name,\n organizationId: LINKEDIN_DOXYCHAIN_ORG_ID,\n issueYear: issueDate?.year,\n issueMonth: issueDate?.month,\n expirationYear: expirationDate?.year,\n expirationMonth: expirationDate?.month,\n certId: document.id,\n certUrl: explorerCertificateLink,\n });\n\n return {\n createPostLink,\n addToProfileLink,\n };\n};\n\nexport default useLinkedInSharingLinks;\n","import React, { useState } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Linkedin as LinkedInIcon, Share as ShareIcon } from '../../../../components/CustomIcon';\nimport { HeaderButton } from '../../../../components';\nimport useIsDocumentOwner from '../../../../helpers/hooks/useIsDocumentOwner';\nimport useLinkedInSharingLinks from '../../../../helpers/hooks/useLinkedInSharingLinks';\n\nconst LinkedInShareButton = () => {\n const [anchorEl, setAnchorEl] = useState(null);\n const open = Boolean(anchorEl);\n const isDocumentOwner = useIsDocumentOwner();\n const { addToProfileLink, createPostLink } = useLinkedInSharingLinks();\n const { t } = useTranslation();\n\n const handleOpen = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n if (!isDocumentOwner) {\n return null;\n }\n\n return (\n \n }\n tooltip={t('linkedIn.share')}\n />\n \n \n \n \n \n {t('linkedIn.addCertToProfile')}\n \n \n \n \n \n {t('linkedIn.createPost')}\n \n \n \n );\n};\n\nexport default LinkedInShareButton;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentDisplayActions from 'src/redux/actions/documentDisplay.actions';\nimport documentDownloadActions from 'src/redux/actions/documentDownload.actions';\nimport documentInvitationActions from 'src/redux/actions/documentInvitiation.actions';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport { goBack } from 'src/helpers/goBack';\nimport { Button, CircularProgress, useMediaQuery } from '@material-ui/core';\nimport { EmptyBanner, HeaderButton } from 'src/components';\nimport {\n Archive as ArchiveIcon,\n Close as CloseIcon,\n Download as DownloadIcon,\n Info as InfoIcon,\n Linkedin as LinkedinIcon,\n Time as HistoryIcon,\n Users as RecipientsIcon,\n Visibility as PreviewIcon,\n} from 'src/components/CustomIcon';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { DocumentRole } from 'src/models/document.model';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport contactsActions from 'src/redux/actions/contacts.actions';\nimport { documentDisplaySelector } from 'src/redux/selectors/documentDisplay.selector';\nimport { documentManagementSelector } from 'src/redux/selectors/documentManagement.selector';\nimport { moduleName as dslService } from 'src/redux/services/documentDSL.service';\nimport { moduleName as documentService } from 'src/redux/services/documentCore.service';\nimport { ActionsTabs, DocumentContent, RightSidebar, SignBanner, TopBar } from './subcomponents';\nimport { RejectDocument, ReloadDocument, SignDocument } from './subcomponents/editDialogs';\nimport { History, Info, Recipients } from './tabs';\nimport { getOrderSigningRestrictions, prepareDocumentMembers, sortInvitedSigners } from './helpers';\nimport { SigningBannerAfterTextModal } from './subcomponents/Dialogs';\nimport DocumentStatusFrame from './subcomponents/DocumentStatusFrame';\nimport CertificateActionsWebsocket from './CertificateActionsWebsocket';\nimport DocumentStatusNotification from '../../components/DocumentStatusNotification';\nimport { useStyles } from './styles';\nimport DocumentUsersManager from '../../components/DocumentUsersManager/DocumentUsersManager';\nimport UsersManagerContextProvider from '../../components/DocumentUsersManager/subcomponents/UsersManagerContext';\nimport documentUserManagerActions from '../../redux/actions/documentUserManager.actions';\nimport DocumentUserManagerSelector from '../../redux/selectors/documentUserManager.selector';\nimport identityActions from '../../redux/actions/identity.actions';\nimport { templateTypeToDocumentType, userComActions } from '../../redux/actions/userCom.actions';\nimport LinkedInShareButton from './subcomponents/LinkedInShareButton';\nimport useIsDocumentOwner from '../../helpers/hooks/useIsDocumentOwner';\nimport useLinkedInSharingLinks from '../../helpers/hooks/useLinkedInSharingLinks';\n\nexport const DocumentActionModalUrlModals = {\n DocumentUsersManager: 'dum',\n};\n\nconst DocumentActionsPage = ({ history }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n const { search } = useLocation();\n const modalFromUrl = new URLSearchParams(search).get('m');\n\n const isCertificate = history.location.pathname.includes('certificate');\n const apiService = isCertificate ? dslService : documentService;\n const miniDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('xs'));\n const smallDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const LOADED_PAGES = 3;\n const MAX_COUNT_TRY = 2;\n\n const [missingContacts, setMissingContacts] = useState([]);\n const [actualizationBannerOpen, setActualizationBannerOpen] = useState(false);\n const [editedSubpage, setEditedSubpage] = useState(null);\n const [fullSidebarHeight, setFullSidebarHeight] = useState(false);\n const [selectedActionTab, setSelectedActionTab] = useState('preview');\n const [didMount, setDidMount] = useState(false);\n const [tryCount, setTryCount] = useState(0);\n const [disabledMenu, setDisabledMenu] = useState(false);\n const [activeFileIndexDocument, setActiveFileIndexDocument] = useState(0);\n const [invitationsManagementDialogOpen, setInvitationsManagementDialogOpen] = useState(\n modalFromUrl === DocumentActionModalUrlModals.DocumentUsersManager\n );\n const [isSigningBannerAfterTextModal, setSigningBannerAfterTextModal] = useState(false);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n const { id: documentId } = useParams();\n const activeIdentity = useSelector((state) => state.identityStore.currentIdentity, undefined);\n\n const {\n canSignDocCert,\n canRejectDocCert,\n canRenameDoc,\n canAddSignerDocCert,\n canAddSignerByInvitationDocCert,\n canAddUserDocCert,\n canModifyRoleDocCert,\n canModifySignersDocCert,\n canChangeHolderCert,\n } = useSelector(DocumentUserManagerSelector.selectDocumentAction, undefined);\n\n const {\n getDocumentStatus,\n getDownloadTokenStatus,\n downloadFileStatus,\n activeFileIndex,\n document: documentInfo,\n downloadTokens,\n allFilesLoadedStatus,\n downloadFiles: downloadFilesImage,\n } = useSelector((state) => state.documentDisplayStore, undefined);\n const {\n getDocumentMembersStatus,\n getDocumentMembersByRoleStatus: getDocumentAdminsStatus,\n getDocumentHistoryStatus: documentHistoryStatus,\n documentMembers,\n documentSigners,\n documentInvitations,\n getDocumentInvitationsStatus,\n getDocumentCardStatus,\n rejectingDocumentStatus,\n } = useSelector((state) => state.documentManagementStore, undefined);\n\n const { fetchDocumentSignersStatus: documentSignersStatus, isOrderSignificant } = useSelector(\n (state) => state.documentInvitationsStore,\n undefined\n );\n const isSigningOrderAvailable = useSelector(\n IdentitySelector.hasSigningOrderPermission,\n undefined\n );\n const { downloadDocuments: downloadDocumentsPending } = useSelector(\n (state) => state.documentDownloadStore,\n undefined\n );\n const { contacts, contactBookEntitiesFetchStatus } = useSelector(\n (state) => state.contactsStore,\n undefined\n );\n\n const isDocumentAdmin = useSelector(documentManagementSelector.isDocumentAdmin, undefined);\n const isDocumentEditor = useSelector(documentManagementSelector.isDocumentEditor, undefined);\n\n const isDocumentFinished = useSelector(documentDisplaySelector.isDocumentFinished, undefined);\n const isRejectInProgress = rejectingDocumentStatus === RequestStatus.PENDING;\n const isLoading = downloadFileStatus === RequestStatus.PENDING;\n const downloadTokenStatusSuccess = getDownloadTokenStatus === RequestStatus.SUCCESS;\n const documentStatusError = getDocumentStatus === RequestStatus.ERROR;\n const documentStatusSuccess = getDocumentStatus === RequestStatus.SUCCESS;\n const isDownloadingDocumentCard = getDocumentCardStatus === RequestStatus.PENDING;\n const invitedSigners = documentInvitations.filter((el) => el.role === DocumentRole.SIGNERS);\n const disableForInvitedSigners = invitedSigners.length > 0 && isCertificate;\n const isDocumentOwner = useIsDocumentOwner();\n const { createPostLink, addToProfileLink } = useLinkedInSharingLinks();\n\n const prevState = usePrevious({\n getDownloadTokenStatus,\n downloadFileStatus,\n downloadFilesImage,\n activeFileIndex,\n });\n\n const availableTabs = {\n previewTab: [\n {\n name: t('documentActions.tabs.preview.title'),\n icon: ,\n value: 'preview',\n },\n ],\n basicTabs: [\n {\n name: t('documentActions.tabs.recipients.title'),\n icon: ,\n value: 'recipients',\n },\n {\n name: t('documentActions.tabs.info.title'),\n icon: ,\n value: 'info',\n },\n {\n name: t('documentActions.tabs.history.title'),\n icon: ,\n value: 'history',\n },\n ],\n };\n\n let subId = false;\n\n const getDownloadToken = (index) => {\n const indexFile = index || activeFileIndex;\n let fileIndexNext = indexFile;\n const activeFilesCount = downloadFilesImage?.filter(\n (item) => item.indexFile === activeFileIndex\n ).length;\n let pagesSum = activeFilesCount + LOADED_PAGES;\n\n const filePages = documentInfo.files?.filter((item) => item.index === indexFile)[0]?.pages;\n\n if (!filePages && !activeFilesCount) {\n addEmptyFileImage(indexFile);\n return;\n }\n\n if (pagesSum >= filePages) {\n pagesSum = filePages;\n }\n\n if (pagesSum > activeFilesCount) {\n dispatch(\n documentDisplayActions.getDownloadTokens(\n documentId,\n indexFile,\n activeFilesCount,\n pagesSum,\n apiService\n )\n );\n } else {\n if (indexFile < documentInfo.files.length - 1) {\n fileIndexNext = activeFileIndex + 1;\n } else {\n fileIndexNext = checkLoadedThisDocument(0);\n }\n if (fileIndexNext >= 0) {\n dispatch(documentDisplayActions.setActiveFileIndex(fileIndexNext));\n }\n }\n };\n\n const checkShowScroll = () => {\n const scrollElement = document.getElementById('scroll-element-file');\n const hasVerticalScrollbar = scrollElement?.scrollHeight > scrollElement?.clientHeight;\n if (\n !hasVerticalScrollbar &&\n activeFileIndex === prevState?.activeFileIndex &&\n prevState?.activeFileIndex >= 0 &&\n getDownloadTokenStatus !== RequestStatus.PENDING &&\n downloadFileStatus !== RequestStatus.PENDING\n ) {\n getDownloadToken();\n }\n };\n\n const addEmptyFileImage = (indexFile) => {\n dispatch(documentDisplayActions.addEmptyFile(indexFile));\n setDisabledMenu(false);\n };\n\n const checkLoadedThisDocument = (indexFile) => {\n if (downloadFilesImage.filter((item) => item.indexFile === indexFile).length) {\n return -1;\n }\n return indexFile;\n };\n\n const changeFileIndex = (index) => {\n if (index === 'prev' && activeFileIndexDocument > 0) {\n index = activeFileIndexDocument - 1;\n } else if (index === 'prev') {\n index = documentInfo.files.length - 1;\n }\n\n if (index === 'next' && activeFileIndexDocument < documentInfo.files.length - 1) {\n index = activeFileIndexDocument + 1;\n } else if (index === 'next') {\n index = 0;\n }\n\n if (allFilesLoadedStatus) {\n scrollToDocument(index);\n return;\n }\n\n dispatch(documentDisplayActions.clearFilesAndTokens(index));\n };\n\n const scrollToDocument = (index) => {\n const scrollContent = document.getElementById('scroll-element-file');\n if (scrollContent) {\n scrollContent.scrollTop = document.querySelectorAll(`.document-number-${index}`)[0].offsetTop;\n setActiveFileIndexDocument(index);\n }\n };\n const downloadFiles = () => {\n dispatch(\n documentDisplayActions.downloadFiles(\n downloadTokens.filter(\n (token) =>\n token.page >=\n downloadFilesImage.filter((item) => item.indexFile === activeFileIndex).length &&\n token.indexFile === activeFileIndex\n ),\n activeFileIndex\n )\n );\n };\n\n const reloadFile = () => {\n setTryCount(0);\n dispatch(documentDisplayActions.clearFilesAndTokens(activeFileIndex));\n };\n\n const downloadDocumentCard = () => {\n dispatch(documentManagementActions.getDocumentCard(documentId));\n userComActions.document.docCardDownloaded(\n templateTypeToDocumentType(documentInfo.templateType),\n workspaceId\n );\n };\n\n const downloadDocument = () => {\n dispatch(documentDownloadActions.downloadDocument(documentId, apiService));\n userComActions.document.docDownloaded(\n templateTypeToDocumentType(documentInfo.templateType),\n workspaceId\n );\n };\n\n const handleDocumentUpdate = (message) => {\n if (message.type === 'RESULT') {\n const { id } = message?.data?.result;\n switch (message.code) {\n case 'DOCUMENT_UPDATED':\n if (documentId === id) {\n if (ContactHelper.checkIfUserBelongsToDocument(message.data.result)) {\n fetchAvailableDocumentActions();\n dispatch(documentDisplayActions.websocketUpdateDocument(message.data.result));\n dispatch(documentManagementActions.websocketUpdate(message.data.result));\n dispatch(documentDisplayActions.getDocument(id, apiService));\n dispatch(documentManagementActions.getDocumentMembers(id, apiService));\n dispatch(documentManagementActions.getDocumentInvitations(id, apiService));\n dispatch(documentManagementActions.reloadDocumentHistory());\n dispatch(documentInvitationActions.getDocumentSigners(documentId, apiService));\n dispatch(identityActions.getWorkspaceStructure(workspaceId));\n\n setActualizationBannerOpen(false);\n } else {\n setActualizationBannerOpen(true);\n }\n }\n break;\n\n case 'DOCUMENT_FILES_UPDATED':\n if (documentId === id) {\n dispatch(documentDisplayActions.clearFilesAndTokens());\n dispatch(documentDisplayActions.getDocument(id, apiService));\n }\n break;\n\n case 'DOCUMENT_INVITATION_SET':\n if (documentId === id) {\n dispatch(documentManagementActions.getDocumentMembers(id, apiService));\n dispatch(documentInvitationActions.getDocumentSigners(id, apiService));\n dispatch(documentManagementActions.getDocumentInvitations(id, apiService));\n fetchAvailableDocumentActions();\n }\n break;\n\n case 'DOCUMENT_DELETED':\n if (documentId === id) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n 'info',\n t('snackbars.common.infoTitle'),\n t('documentActions.onDeletedDocumentRedirect')\n )\n );\n handleClose();\n }\n break;\n\n default:\n console.warn(`Unknown code [${message.code}]`, message);\n break;\n }\n } else if (message.type === 'ERROR') {\n switch (message.code) {\n case 'DOCUMENT_UPDATED':\n default:\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n t('snackbars.common.errorTitle'),\n t(\n `drivePage.action.error.${message.code}${\n message?.data?.result?.code ? `_${message.data.result.code}` : ''\n }`\n )\n )\n );\n break;\n }\n } else {\n console.warn(`Unknown action type [${message.type}]`, message);\n }\n };\n\n const refetchDocumentUsers = () => {\n dispatch(documentInvitationActions.getDocumentSigners(documentId, apiService));\n dispatch(documentManagementActions.getDocumentInvitations(documentId, apiService));\n dispatch(documentManagementActions.getDocumentMembers(documentId, apiService));\n dispatch(identityActions.getWorkspaceStructure(workspaceId));\n };\n\n const fetchAvailableDocumentActions = () => {\n dispatch(documentUserManagerActions.getAvailableDocumentUserActions(documentId, apiService));\n };\n\n const subscribe = () => {\n if (workspaceId) {\n subId = WebSocketHelper.subscribe(\n 'document-indexing-service',\n `workspaces/${workspaceId}`,\n (message) => handleDocumentUpdate(message)\n );\n }\n };\n\n useEffect(() => {\n setDidMount(true);\n\n fetchAvailableDocumentActions();\n dispatch(documentDisplayActions.clearDocumentDisplayStore());\n if (selectedActionTab !== 'preview') {\n setSelectedActionTab('preview');\n }\n\n return () => {\n setDidMount(false);\n dispatch(\n documentUserManagerActions.updateDraftRoles({\n draftOtherRoles: [],\n draftSigners: [],\n draftHolders: [],\n })\n );\n dispatch(documentDisplayActions.clearDocumentDisplayStore());\n dispatch(documentInvitationActions.clearStore());\n dispatch(documentManagementActions.clearDocumentManagementStore());\n dispatch(documentUserManagerActions.clear());\n WebSocketHelper.unsubscribe(subId);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch, subId]);\n\n useMemo(() => {\n if (!smallDevice && selectedActionTab === 'preview') {\n setSelectedActionTab('recipients');\n }\n }, [selectedActionTab, smallDevice]);\n\n useEffect(() => {\n if (workspaceId) {\n subscribe();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId, dispatch]);\n\n useEffect(() => {\n if (getDocumentStatus === RequestStatus.IDLE) {\n dispatch(documentDisplayActions.getDocument(documentId, apiService));\n }\n }, [dispatch, apiService, documentId, getDocumentStatus]);\n\n useEffect(() => {\n if (documentStatusSuccess && documentSignersStatus === RequestStatus.IDLE) {\n dispatch(documentInvitationActions.getDocumentSigners(documentId, apiService));\n }\n }, [apiService, dispatch, documentId, documentStatusSuccess, documentSignersStatus]);\n\n useEffect(() => {\n if (documentStatusSuccess) {\n if (documentHistoryStatus === RequestStatus.IDLE) {\n dispatch(\n documentManagementActions.getHistoryDocument({\n documentId,\n workspaceId: documentInfo.workspaceId,\n service: apiService,\n })\n );\n }\n if (getDocumentMembersStatus === RequestStatus.IDLE) {\n dispatch(documentManagementActions.getDocumentMembers(documentId, apiService));\n }\n if (getDocumentInvitationsStatus === RequestStatus.IDLE) {\n dispatch(documentManagementActions.getDocumentInvitations(documentId, apiService));\n }\n if (getDocumentAdminsStatus === RequestStatus.IDLE) {\n dispatch(\n documentManagementActions.getDocumentMembersByRole(\n documentId,\n DocumentRole.ADMINS,\n apiService\n )\n );\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n dispatch,\n documentHistoryStatus,\n documentId,\n documentStatusSuccess,\n getDocumentAdminsStatus,\n getDocumentMembersStatus,\n getDocumentInvitationsStatus,\n ]);\n\n useEffect(() => {\n if (downloadTokenStatusSuccess) {\n downloadFiles();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [downloadTokenStatusSuccess]);\n\n useEffect(() => {\n if (activeFileIndex >= 0) {\n getDownloadToken();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeFileIndex]);\n\n useMemo(() => {\n if (didMount && getDownloadTokenStatus === RequestStatus.ERROR) {\n if (tryCount < MAX_COUNT_TRY) {\n setTryCount(tryCount + 1);\n getDownloadToken();\n } else {\n setEditedSubpage('reload');\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getDownloadTokenStatus, tryCount]);\n\n useEffect(() => {\n if (\n getDownloadTokenStatus === RequestStatus.IDLE &&\n prevState?.getDownloadTokenStatus !== RequestStatus.IDLE &&\n downloadFileStatus === RequestStatus.IDLE &&\n prevState?.downloadFileStatus !== RequestStatus.IDLE &&\n activeFileIndex === prevState?.activeFileIndex\n ) {\n getDownloadToken();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getDownloadTokenStatus, downloadFileStatus]);\n\n useEffect(() => {\n if (didMount && downloadFileStatus === RequestStatus.ERROR) {\n if (tryCount < MAX_COUNT_TRY) {\n setTryCount(tryCount + 1);\n downloadFiles();\n } else {\n setEditedSubpage('reload');\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [downloadFileStatus, tryCount]);\n\n const contactsNotFound = [];\n documentMembers.forEach((member) => {\n const matchedIdentity = ContactHelper.getEntityData(member.id);\n if (!matchedIdentity) {\n if (!ContactHelper.checkIfIsInProgress(member.id)) {\n contactsNotFound.push(member.id);\n }\n }\n });\n // TODO: create selector for prepareDocumentMembers, could be reusable\n const preparedSigners = sortInvitedSigners({\n itemsToSort: prepareDocumentMembers({ documentMembers, contactsNotFound }).filter(\n (member) => member.role === DocumentRole.SIGNERS\n ),\n sortingArray: documentSigners,\n });\n\n useEffect(() => {\n if (missingContacts.length > 0 && contactBookEntitiesFetchStatus !== RequestStatus.PENDING) {\n dispatch(contactsActions.addMissingToQueue(missingContacts));\n }\n }, [missingContacts, contactBookEntitiesFetchStatus, dispatch, contacts]);\n\n if (JSON.stringify(contactsNotFound) !== JSON.stringify(missingContacts)) {\n setMissingContacts(contactsNotFound);\n }\n\n const handleBack = () => {\n setEditedSubpage(null);\n };\n\n const handleFullSidebarToggle = () => {\n setFullSidebarHeight(!fullSidebarHeight);\n };\n\n const handleChangeTab = (event, newValue) => {\n setSelectedActionTab(newValue);\n // checkShowScroll();\n };\n\n const handleClose = () => {\n const createdDocumentFolderId = localStorage.getItem('createdDocumentFolderId');\n if (createdDocumentFolderId) {\n createdDocumentFolderId === 'root'\n ? history.push(`/drive/`)\n : history.push(`/drive/${createdDocumentFolderId}`);\n localStorage.removeItem('createdDocumentFolderId');\n } else {\n goBack(history);\n }\n };\n\n const getCurrentTabs = () => {\n if (smallDevice) {\n return [...availableTabs.previewTab, ...availableTabs.basicTabs];\n }\n return availableTabs.basicTabs;\n };\n\n const { canSignDueToOrder, userToSign } = getOrderSigningRestrictions({\n activeIdentity,\n isSigningOrderAvailable,\n isOrderSignificant,\n signers: preparedSigners,\n });\n const canDownload = documentStatusSuccess || false;\n const canRequestDownload = !downloadDocumentsPending.includes(documentId);\n\n const canInvite =\n canAddSignerDocCert ||\n canAddSignerByInvitationDocCert ||\n canAddUserDocCert ||\n canModifyRoleDocCert ||\n canModifySignersDocCert ||\n canChangeHolderCert;\n\n const canRenameDocument =\n canRenameDoc || (isCertificate && (isDocumentAdmin || isDocumentEditor));\n\n const getTabContent = (index) => {\n if (!documentInfo) {\n return null;\n }\n switch (index) {\n case 'recipients':\n return (\n setInvitationsManagementDialogOpen(true)}\n />\n );\n\n case 'info':\n return ;\n\n case 'history':\n return (\n \n );\n\n case 'preview':\n default:\n return (\n \n );\n }\n };\n\n const DocumentErrorBanner = (title) => (\n \n );\n\n const NavigationTabs = (\n \n );\n\n const getSigningBannerAfterText = () => {\n let afterText = null;\n if (!canSignDueToOrder) {\n afterText = (\n
    \n {t('documentActions.needYourAction.signAfter', { name: userToSign })}\n
    \n );\n } else if (disableForInvitedSigners) {\n afterText = (\n
    \n {t('documentActions.needYourAction.invitedSigners')}\n
    \n );\n }\n\n return afterText;\n };\n\n const SigningBanner = (\n <>\n \n {documentStatusSuccess && (canSignDocCert || canRejectDocCert) && (\n \n canRejectDocCert && (\n }\n onClick={() => setEditedSubpage('reject')}\n >\n {t('documentActions.rejectDocument.header')}\n \n )\n }\n afterText={!smallDevice && getSigningBannerAfterText()}\n user={{\n id: activeIdentity?.identity?.identityId,\n name: activeIdentity?.identity?.name,\n workspaceName: activeIdentity?.workspace?.name,\n }}\n onSignClick={() =>\n (!canSignDueToOrder || disableForInvitedSigners) && smallDevice // when mobile and cannot sign due to order then show info modal\n ? setSigningBannerAfterTextModal(true)\n : setEditedSubpage('sign')\n }\n title={!smallDevice ? t('documentActions.needYourAction.title') : null}\n signText={\n miniDevice\n ? t('documentActions.needYourAction.signDocument.shortTerm')\n : t('documentActions.needYourAction.signDocument.longTerm')\n }\n canSign={canSignDocCert}\n />\n )}\n \n );\n\n const topBarOptions = () => {\n const options = [];\n\n if (documentStatusSuccess && !actualizationBannerOpen) {\n if (canDownload) {\n const canRequestDownload = !downloadDocumentsPending.includes(documentId);\n\n options.push({\n name: t('common.downloadDocument'),\n icon: ,\n secondaryIcon: !canRequestDownload && ,\n disabled: !canRequestDownload,\n onClick: () => {\n userComActions.document.docDownloaded(\n templateTypeToDocumentType(documentInfo.templateType),\n workspaceId\n );\n dispatch(documentDownloadActions.downloadDocument(documentId, apiService));\n },\n });\n }\n if (smallDevice) {\n options.push({\n name: t('documentActions.tabs.history.downloadHistory'),\n icon: ,\n secondaryIcon: isDownloadingDocumentCard && ,\n disabled: isDownloadingDocumentCard,\n onClick: downloadDocumentCard,\n });\n\n if (isDocumentOwner) {\n options.push({\n name: t('linkedIn.addCertToProfile'),\n icon: ,\n onClick: () => {\n window.open(addToProfileLink, '_blank', 'noopener,noreferrer');\n },\n });\n\n options.push({\n name: t('linkedIn.createPost'),\n icon: ,\n onClick: () => {\n window.open(createPostLink, '_blank', 'noopener,noreferrer');\n },\n });\n }\n }\n\n if (canRejectDocCert) {\n options.push({\n name: t('common.reject'),\n icon: ,\n onClick: () => setEditedSubpage('reject'),\n });\n }\n }\n\n return options;\n };\n\n if (!didMount) {\n return null;\n }\n\n return (\n <>\n {isCertificate && }\n
    \n
    \n \n {!smallDevice ? : null}\n {canDownload && !smallDevice ? (\n \n ) : (\n \n )\n }\n tooltip={t('common.downloadDocument')}\n />\n ) : null}\n \n }\n >\n <>\n {smallDevice && }\n {smallDevice && !documentStatusError && !actualizationBannerOpen && NavigationTabs}\n \n \n\n
    \n {documentStatusError || actualizationBannerOpen\n ? DocumentErrorBanner(\n t(\n `documentActions.banner.${\n documentStatusError ? 'fetchDocumentError' : 'actualizationDocument'\n }`\n )\n )\n : getTabContent(smallDevice ? selectedActionTab : 'preview')}\n
    \n {smallDevice && !documentStatusError && !actualizationBannerOpen && (\n
    {SigningBanner}
    \n )}\n
    \n {!smallDevice && !documentStatusError && !actualizationBannerOpen && (\n \n {getTabContent(selectedActionTab)}\n \n )}\n
    \n {invitationsManagementDialogOpen && (\n \n {\n setInvitationsManagementDialogOpen(false);\n refetchDocumentUsers();\n fetchAvailableDocumentActions();\n }}\n />\n \n )}\n\n {documentStatusSuccess && (\n <>\n {\n handleBack();\n }}\n />\n\n {\n reloadFile();\n handleBack();\n }}\n onClose={handleBack}\n />\n\n \n \n )}\n {(!canSignDueToOrder || disableForInvitedSigners) && smallDevice && (\n setSigningBannerAfterTextModal(false)}\n />\n )}\n \n );\n};\n\nDocumentActionsPage.propTypes = {\n history: PropTypes.objectOf(PropTypes.shape),\n};\n\nexport default DocumentActionsPage;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n items: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minHeight: '100%',\n maxWidth: breakpoints.values.sm,\n margin: '0 auto',\n '& > *:not(:last-child)': {\n marginBottom: 14,\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Button, Typography } from '@material-ui/core';\nimport { ListChoiceButton, SmallContentWithScrollbar } from 'src/components';\nimport { useTranslation } from 'react-i18next';\nimport { File, MultipleFiles } from 'src/components/CustomIcon';\nimport { CertificateQuantityType, CertificateSteps } from 'src/models/certificate.model';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { useStyles } from './styles';\nimport certificateCreatorActions from '../../../../redux/actions/certificateCreator.actions';\n\nconst SelectQuantityType = () => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n const { certificateQuantityType } = useSelector((state) => state.certificateCreatorStore);\n\n const onSubmit = (e) => {\n e.preventDefault();\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep:\n certificateQuantityType === CertificateQuantityType.Single\n ? CertificateSteps.MapSingleFields\n : CertificateSteps.ImportMultipleData,\n })\n );\n };\n\n const handleChange = (type) => {\n dispatch(certificateCreatorActions.setQuantityType({ type }));\n };\n\n return (\n {t('createCertificate.selectQuantityTitle')}\n }\n endContent={\n \n {t('createCertificate.createNewCertificate')}\n \n }\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit,\n }}\n hasForm\n >\n
    \n }\n label={t('createCertificate.singleCertificateTitle')}\n description={t('createCertificate.singleCertificateDescription')}\n onClick={() => handleChange(CertificateQuantityType.Single)}\n selected={certificateQuantityType === CertificateQuantityType.Single}\n />\n }\n label={t('createCertificate.multipleCertificateTitle')}\n description={t('createCertificate.multipleCertificateDescription')}\n onClick={() => handleChange(CertificateQuantityType.Multiple)}\n selected={certificateQuantityType === CertificateQuantityType.Multiple}\n />\n
    \n \n );\n};\n\nexport default SelectQuantityType;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, breakpoints }) =>\n createStyles({\n containerWrapper: {\n background: palette.background.default,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n [breakpoints.down('sm')]: {\n top: '50px',\n },\n },\n container: {\n height: '100%',\n },\n previewWrapper: {\n paddingTop: 16,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n },\n previewImage: {\n width: '100%',\n height: '100%',\n objectFit: 'scale-down',\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { CircularProgress, Container } from '@material-ui/core';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useStyles } from './styles';\nimport certificateCreatorActions from '../../../../redux/actions/certificateCreator.actions';\n\nconst TemplatePreview = () => {\n const dispatch = useDispatch();\n const { selectedTemplate, templatePreviewImage, templatePreviewImageStatus } = useSelector(\n (state) => state.certificateCreatorStore,\n undefined\n );\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n const isLoading = templatePreviewImageStatus === RequestStatus.PENDING;\n\n useEffect(() => {\n if (selectedTemplate) {\n dispatch(\n certificateCreatorActions.fetchTemplatePreview({\n template: selectedTemplate,\n workspaceId,\n })\n );\n }\n }, [selectedTemplate, workspaceId, dispatch]);\n\n const classes = useStyles();\n\n return (\n
    \n \n
    \n {isLoading ? (\n \n ) : (\n \"certificate\"\n )}\n
    \n
    \n
    \n );\n};\n\nexport default TemplatePreview;\n","import { makeStyles, createStyles } from '@material-ui/core';\nimport custom from 'src/theme/options/custom';\n\nexport const useStyles = makeStyles(\n ({ palette, breakpoints }) =>\n createStyles({\n content: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n position: 'relative',\n height: '100%',\n width: '100%',\n },\n centerWrapper: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n width: '100%',\n },\n drawer: {\n position: 'relative',\n width: custom.documentEditSidebarWidth,\n maxWidth: '40%',\n flexShrink: 0,\n overflow: 'hidden',\n\n [breakpoints.down('sm')]: {\n maxWidth: '100%',\n height: '93%',\n margin: '0 auto',\n },\n },\n drawerPaper: {\n position: 'relative',\n width: '100%',\n borderLeft: `1px solid ${palette.divider}`,\n overflowX: 'hidden',\n overflowY: 'auto',\n flex: 'auto',\n padding: 40,\n [breakpoints.down('sm')]: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n padding: '20px 0',\n height: '100%',\n },\n },\n wrapper: {\n display: 'flex',\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Drawer, useMediaQuery } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Info, Preview } from 'src/components/CustomIcon';\nimport { ActionsTabs } from 'src/pages/DocumentActions/subcomponents';\nimport TemplatePreview from '../../TemplatePreview/TemplatePreview';\n\nimport { useStyles } from './styles';\n\nconst MappingLayout = ({ children }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const [selectedActionTab, setSelectedActionTab] = useState('preview');\n\n const smallDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const miniDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('xs'));\n\n const handleChangeTab = (event, newValue) => {\n setSelectedActionTab(newValue);\n };\n\n useEffect(() => {\n if (!smallDevice && selectedActionTab === 'preview') {\n setSelectedActionTab('info');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const availableTabs = [\n {\n name: t('documentActions.tabs.preview.title'),\n icon: ,\n value: 'preview',\n },\n\n {\n name: t('documentActions.tabs.info.title'),\n icon: ,\n value: 'info',\n },\n ];\n\n const renderTabs = (() => {\n switch (selectedActionTab) {\n case 'preview':\n return ;\n\n case 'info':\n default:\n return (\n \n {children}\n \n );\n }\n })();\n\n if (smallDevice) {\n return (\n <>\n \n {renderTabs}\n \n );\n }\n\n return (\n
    \n
    \n \n
    \n\n \n {children}\n \n
    \n );\n};\n\nMappingLayout.propTypes = {\n children: PropTypes.node,\n};\n\nexport default MappingLayout;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n label: {\n marginBottom: 8,\n },\n formControl: {\n marginBottom: 12,\n width: '100%',\n '& .MuiFormControl-root': {\n width: '100%',\n },\n },\n buttonUploadActive: {\n color: `${palette.text.primary}!important`,\n },\n buttonUpload: {\n textAlign: 'left',\n padding: 12,\n justifyContent: 'space-between',\n minHeight: 48,\n borderRadius: 6,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: palette.greySimple.light,\n color: palette.greySimple.main,\n fontSize: '1rem',\n fontWeight: 400,\n '& .MuiButton-endIcon': {\n color: 'rgba(0, 0, 0, 0.54)!important',\n },\n '&:hover': {\n borderColor: palette.primary.main,\n boxShadow: 'none',\n },\n },\n buttonUploadError: {\n borderColor: palette.error.main,\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {\n Button,\n FormControl,\n TextField,\n Typography,\n ClickAwayListener,\n FormHelperText,\n} from '@material-ui/core';\nimport { Publish } from 'src/components/CustomIcon';\nimport { useTranslation } from 'react-i18next';\nimport MomentAdapter from '@material-ui/pickers/adapter/moment';\nimport { LocalizationProvider, DesktopDatePicker } from '@material-ui/pickers';\nimport clsx from 'clsx';\nimport moment from 'moment';\nimport { toBase64 } from 'src/helpers/globalUtils';\nimport { RegexFormulas } from 'src/helpers/regex';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { useStyles } from './styles';\n\nconst MapField = ({\n label,\n name,\n index,\n placeholder,\n format,\n error,\n helperText,\n onFieldChange,\n value,\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const [datePickerOpen, setDatePickerOpen] = useState(false);\n const [fileName, setFileName] = useState('');\n const [date, setDate] = useState(new Date(value));\n\n const classes = useStyles();\n const isImportedFile =\n format === 'base64' && value && RegexFormulas.base64.test(value.slice(0, 500)) && value !== '';\n const base64Placeholder = isImportedFile\n ? t('dropzones.importedFile')\n : t('createCertificate.selectFile');\n\n const onChange = (e) => {\n onFieldChange(name, e.target.value);\n };\n\n const onDateChange = (e) => {\n setDate(e);\n onFieldChange(name, e);\n };\n\n const FileChange = (e, file) => {\n if (file) {\n if (file.size > 7340032) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n t('dropzones.fileTooLarge', { value: 7 })\n )\n );\n } else {\n setFileName(file.name);\n toBase64(file).then((base64) => {\n onFieldChange(name, base64.split(',')[1]);\n });\n }\n }\n };\n\n const handleClickAway = () => {\n if (datePickerOpen) {\n setDatePickerOpen(false);\n }\n };\n\n return (\n \n \n {label}\n \n {(() => {\n switch (format) {\n case 'date':\n return (\n \n
    \n \n setDatePickerOpen(false)}\n onOpen={() => setDatePickerOpen(true)}\n minDate={name === 'expiresOn' ? moment().add(1, 'days') : undefined}\n inputFormat=\"yyyy-MM-DD\"\n mask=\"____-__-__\"\n onChange={onDateChange}\n value={date}\n renderInput={(props) => (\n \n )}\n />\n \n
    \n
    \n );\n case 'base64':\n return (\n <>\n }\n >\n {fileName === '' ? base64Placeholder : fileName}\n \n {helperText}\n FileChange(e, e.target.files[0])}\n />\n \n );\n\n default:\n return (\n \n );\n }\n })()}\n
    \n );\n};\n\nMapField.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string,\n index: PropTypes.number,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n error: PropTypes.bool,\n helperText: PropTypes.string,\n format: PropTypes.string,\n onFieldChange: PropTypes.func.isRequired,\n};\n\nexport default MapField;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n fieldsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n paddingBottom: 24,\n alignItems: 'center',\n '& .MuiFormControl-root': {\n width: '100%',\n },\n\n [breakpoints.down('sm')]: {\n height: '100%',\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Button, CircularProgress } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport * as yup from 'yup';\nimport moment from 'moment';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { CertificateQuantityType, CertificateSteps } from 'src/models/certificate.model';\nimport { generateUUID } from 'src/helpers/globalUtils';\nimport { RegexFormulas } from 'src/helpers/regex';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport MappingLayout from '../components/MappingLayout/MappingLayout';\nimport MapField from '../components/MapField/MapField';\nimport { useStyles } from './styles';\n\nconst MapSingleFields = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n const { t } = useTranslation();\n const {\n selectedTemplate,\n certificateQuantityType,\n draftSingleData,\n templateDetails,\n templateDetailsStatus,\n } = useSelector((state) => state.certificateCreatorStore, undefined);\n const isLoading = templateDetailsStatus === RequestStatus.PENDING;\n\n const onFieldChange = (name, value) => {\n formik.setFieldValue(name, value);\n dispatch(certificateCreatorActions.updateDraftSingleFields({ [name]: value }));\n };\n\n const onCreateClick = () => {\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.CreatingCertificatesProgressScreen,\n })\n );\n if (certificateQuantityType === CertificateQuantityType.Single) {\n const templateFields = {};\n\n Object.keys(draftSingleData).forEach((key) => {\n if (templateDetails.fields[key]) {\n if (templateDetails.fields[key].format === 'date') {\n if (draftSingleData[key]) {\n templateFields[key] = moment(new Date(draftSingleData[key])).format('yyyy-MM-DD');\n } else {\n templateFields[key] = moment(new Date()).format('yyyy-MM-DD');\n }\n return;\n }\n if (key !== 'documentName') {\n templateFields[key] = draftSingleData[key] === '' ? null : draftSingleData[key];\n }\n if (key === 'holderMailMulti') {\n delete templateFields[key];\n }\n }\n });\n\n dispatch(\n certificateCreatorActions.createCertificate({\n workspaceId,\n templateId: selectedTemplate.id,\n certificateList: [\n {\n documentName: draftSingleData.documentName || null,\n correlationId: generateUUID(),\n templateFields,\n },\n ],\n })\n );\n }\n };\n\n const getValidationSchema = () => {\n const validationFields = {};\n const initialValues = {};\n if (templateDetails)\n Object.keys(templateDetails?.fields)?.forEach((fieldName) => {\n const { required, format } = templateDetails.fields[fieldName];\n if (required) {\n if (format === 'date') {\n validationFields[fieldName] = yup\n .date()\n .typeError(t('validation.dateFormat'))\n .required(t('validation.required'));\n } else if (format === 'base64') {\n validationFields[fieldName] = yup\n .string()\n .transform((currentValue) => currentValue.slice(0, 500))\n .matches(RegexFormulas.base64, t('validation.base64'))\n .required(t('validation.required'));\n } else {\n validationFields[fieldName] = yup.string().required(t('validation.required'));\n }\n initialValues[fieldName] = '';\n } else if (format === 'date') {\n validationFields[fieldName] = yup.date().typeError(t('validation.dateFormat'));\n } else if (fieldName === 'documentName') {\n validationFields[fieldName] = yup\n .string()\n .matches(RegexFormulas.folderName, t('validation.fileName'));\n } else if (format === 'base64') {\n validationFields[fieldName] = yup\n .string()\n .transform((currentValue) => currentValue.slice(0, 500))\n .matches(RegexFormulas.base64, t('validation.base64'));\n }\n });\n const validation = yup.object(validationFields);\n return { validation, initialValues };\n };\n\n const formik = useFormik({\n initialValues: getValidationSchema().initialValues,\n validationSchema: getValidationSchema().validation,\n onSubmit: (values) => {\n onCreateClick(values);\n },\n });\n\n const renderTemplateDetails =\n templateDetails &&\n Object.keys(templateDetails?.fields)\n ?.sort((a, b) => (templateDetails.fields[a].order > templateDetails.fields[b].order ? 1 : -1))\n .map((fieldName, fieldIndex) => {\n const { label, placeholder, format, required } = templateDetails.fields[fieldName];\n if (['holderMailMulti', 'attached_files'].includes(fieldName)) return null;\n\n return (\n \n );\n });\n\n return (\n \n
    \n
    \n {isLoading && }\n\n {!isLoading && renderTemplateDetails}\n
    \n \n
    \n
    \n );\n};\n\nexport default MapSingleFields;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n filesWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n buttonWrapper: {\n maxWidth: 380,\n display: 'flex',\n margin: 'auto',\n marginTop: 40,\n },\n actionButtonsWrapper: {\n display: 'flex',\n marginBottom: 24,\n },\n actionButton: {\n marginRight: 16,\n },\n buttonText: {\n '& .MuiButton-startIcon': {\n color: 'inherit !important',\n },\n },\n actionButtonRight: {\n marginLeft: 'auto',\n '& .MuiButton-endIcon': {\n color: 'inherit !important',\n },\n },\n fileInput: {\n display: 'none',\n },\n tableWrapper: {\n padding: 30,\n [breakpoints.down('md')]: {\n padding: 6,\n },\n },\n th: {\n whiteSpace: 'nowrap',\n minWidth: 150,\n },\n cellSelect: {\n width: 50,\n },\n loader: {\n display: 'flex',\n padding: 50,\n justifyContent: 'center',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { Button, useMediaQuery } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport Papa from 'papaparse';\nimport { useDispatch, useSelector } from 'react-redux';\nimport moment, { isMoment } from 'moment';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { CertificateSteps } from 'src/models/certificate.model';\nimport { Delete, Download, Preview, Publish } from 'src/components/CustomIcon';\nimport { useStyles } from '../styles';\n\nconst ActionButtons = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n\n const { selectedDraftImportedData, draftImportedData, templateDetails } = useSelector(\n (state) => state.certificateCreatorStore,\n undefined\n );\n\n const smallDevice = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const onFileAdd = (files) => {\n Papa.parse(files, {\n skipEmptyLines: true,\n newline: '\\n',\n complete: (results) => {\n dispatch(\n certificateCreatorActions.setRawImportedData({\n importedData: results.data.map((rows) => rows.map((el) => el.replace('\\r', ''))),\n })\n );\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.MapMultipleData,\n })\n );\n },\n });\n };\n\n const onPreviewClick = () =>\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.TemplatePreview,\n })\n );\n\n const parseToCSV = () => {\n if (templateDetails) {\n const headers = Object.keys(templateDetails.fields).filter((key) => key !== 'attached_files');\n const hasDraftData = draftImportedData.length > 0;\n // const maxNrOfFiles = hasDraftData\n // ? Math.max(...draftImportedData.map((el) => el.attached_files.length))\n // : 0;\n const maxNrOfFiles = 0;\n if (hasDraftData && maxNrOfFiles > 0) headers.push(...Array(maxNrOfFiles - 1).fill(''));\n const body = draftImportedData.map((el) => {\n const result = [];\n\n headers.forEach((key) => {\n if (isMoment(el[key])) {\n result.push(moment(el[key]).format('yyyy-MM-DD'));\n } else if (Array.isArray(el[key])) {\n result.push(...el[key].map((el) => el.base64));\n } else {\n result.push(el[key]);\n }\n });\n return result;\n });\n const csv = Papa.unparse([headers, ...body]);\n const blob = new Blob([csv], { type: 'text/csv' });\n const filename = 'UserExport.csv';\n const downloadLink = document.createElement('a');\n downloadLink.href = URL.createObjectURL(blob);\n downloadLink.download = filename;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }\n };\n\n const onDeleteSelected = () =>\n dispatch(certificateCreatorActions.deleteSelectedDraftImportedData());\n\n return (\n
    \n }\n >\n {smallDevice\n ? t('createCertificate.importFromCSVShort')\n : t('createCertificate.importFromCSV')}\n \n onFileAdd(e.target.files[0])}\n className={classes.fileInput}\n />\n }\n >\n {smallDevice ? : t('createCertificate.templatePreview')}\n \n }\n >\n {smallDevice ? : t('createCertificate.downloadPreformattedCSV')}\n \n }\n className={classes.actionButtonRight}\n variant=\"text\"\n >\n {smallDevice ? : t('createCertificate.delete')}\n \n
    \n );\n};\n\nexport default ActionButtons;\n","import i18n from 'i18next';\n\nconst ErrorCode = {\n FileInvalidType: 'file-invalid-type',\n FileTooLarge: 'file-too-large',\n FileTooSmall: 'file-too-small',\n TooManyFiles: 'too-many-files',\n};\n\nexport const acceptableFileTypes = [\n 'application/pdf',\n 'application/zip',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'image/jpeg',\n 'image/png',\n 'application/x-zip-compressed',\n 'multipart/x-zip',\n];\nexport const maxFiles = 10;\nexport const dropzoneErrors = {\n [ErrorCode.FileInvalidType]: i18n.t('dropzones.fileTypeError'),\n [ErrorCode.TooManyFiles]: i18n.t('dropzones.fileTooManyError', { value: maxFiles }),\n [ErrorCode.FileTooLarge]: i18n.t('dropzones.fileTooLarge', { value: 50 }),\n [ErrorCode.FileTooSmall]: i18n.t('dropzones.fileTooSmall'),\n};\n\nexport const maxSize = 52428800; // 50MB\n","import React, { useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useDropzone } from 'react-dropzone';\nimport { Fab, InputAdornment } from '@material-ui/core';\nimport { func } from 'prop-types';\nimport { Upload } from 'src/components/CustomIcon';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { acceptableFileTypes, dropzoneErrors, maxFiles, maxSize } from './config';\nimport { toBase64 } from '../../../../../helpers/globalUtils';\n\nconst DropzoneButton = ({ onDropSuccess }) => {\n const dispatch = useDispatch();\n\n const onDrop = useCallback(\n async (acceptedFiles) => {\n const files = await Promise.all(\n acceptedFiles.map(async (file) => ({\n base64: await toBase64(file),\n name: file.name,\n }))\n );\n onDropSuccess(files.map((file) => ({ ...file, base64: file.base64.split(',')[1] })));\n },\n [onDropSuccess]\n );\n\n const onDropRejected = useCallback(\n (rejectedFiles) => {\n if (rejectedFiles && rejectedFiles.length) {\n rejectedFiles\n .map((el) => el.errors)\n .flat()\n .map((err) => err.code)\n .filter((v, i, a) => a.indexOf(v) === i)\n .forEach((error) => {\n dispatch(\n snackbarActions.enqueueSnackbar(SNACKBAR_VARIANT.ERROR, dropzoneErrors[error])\n );\n });\n }\n },\n [dispatch]\n );\n\n const { getRootProps, getInputProps } = useDropzone({\n accept: acceptableFileTypes,\n maxFiles,\n maxSize,\n onDrop,\n onDropRejected,\n multiple: true,\n });\n\n return (\n \n \n \n \n \n \n );\n};\n\nDropzoneButton.propTypes = {\n onDropSuccess: func,\n};\n\nexport default DropzoneButton;\n","import React from 'react';\nimport {\n Badge,\n Button,\n Checkbox,\n CircularProgress,\n Fab,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Tooltip,\n} from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\nimport { AttachFile, DeleteForever } from '@material-ui/icons';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useTranslation } from 'react-i18next';\nimport { FieldArray, useFormikContext } from 'formik';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { useStyles } from '../styles';\nimport MapField from '../../components/MapField/MapField';\nimport DropzoneButton from '../../components/DropzoneButton/DropzoneButton';\nimport { MAX_CSV_DOCUMENTS } from '../../../../../redux/constants/certificateCreator.constants';\n\nconst ImportDataTable = () => {\n const [anchorEl, setAnchorEl] = React.useState({ anchor: null, index: null });\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n const { errors, touched } = useFormikContext();\n const {\n selectedDraftImportedData,\n templateDetails,\n templateDetailsStatus,\n draftImportedData,\n } = useSelector((state) => state.certificateCreatorStore, undefined);\n\n const importedCertificateCount = draftImportedData.length;\n\n if (templateDetailsStatus === RequestStatus.PENDING || !templateDetails)\n return (\n
    \n \n
    \n );\n\n // Update table data {index: index in arr, key: field name, value: new item value}\n const onTableInputChange = ({ index, key, value }) => {\n dispatch(certificateCreatorActions.updateDraftImportedData({ index, key, value }));\n };\n\n const onFileRemove = ({ index, key, value, fileIndex }) => {\n const newValue = value.filter((_, idx) => idx !== fileIndex);\n dispatch(\n certificateCreatorActions.updateDraftImportedData({\n index,\n key,\n value: newValue,\n })\n );\n\n if (!newValue || newValue.length === 0) {\n handleCloseFileMenu();\n }\n };\n\n const onAddNewRow = () => dispatch(certificateCreatorActions.addNewRowToDraftImportedData());\n\n const onCheckboxClick = (selected) =>\n dispatch(certificateCreatorActions.updateSelectedDraftImportedData(selected));\n\n const handleOpenFileMenu = (event, index) => {\n setAnchorEl({ anchor: event.currentTarget, index });\n };\n const handleCloseFileMenu = () => {\n setAnchorEl({ anchor: null, index: null });\n };\n\n return (\n \n \n \n \n \n \n 0\n }\n onChange={() =>\n onCheckboxClick(\n selectedDraftImportedData.length === draftImportedData.length\n ? []\n : draftImportedData.map((_, index) => index)\n )\n }\n />\n \n {Object.keys(templateDetails?.fields)\n ?.sort((a, b) =>\n templateDetails.fields[a].order > templateDetails.fields[b].order ? 1 : -1\n )\n .map((fieldKey) => (\n \n {templateDetails.fields[fieldKey].label}{' '}\n {templateDetails.fields[fieldKey].required ? '*' : ''}\n \n ))}\n \n \n \n <>\n (\n <>\n {draftImportedData.map((row, index) => (\n \n \n {\n if (selectedDraftImportedData.includes(index)) {\n onCheckboxClick([\n ...selectedDraftImportedData.filter((el) => el !== index),\n ]);\n } else {\n onCheckboxClick([...selectedDraftImportedData, index]);\n }\n }}\n />\n \n\n {templateDetails &&\n Object.keys(templateDetails?.fields)\n ?.sort((a, b) =>\n templateDetails.fields[a].order > templateDetails.fields[b].order\n ? 1\n : -1\n )\n .map((field, fIndex) => (\n \n {field === 'attached_files' ? (\n
    \n {Array.isArray(row[field]) && row[field].length > 0 && (\n <>\n \n
    \n handleOpenFileMenu(e, index)}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n badgeContent={row[field] ? row[field].length : 0}\n >\n \n \n \n \n
    \n \n handleCloseFileMenu(e, index)}\n MenuListProps={{\n 'aria-labelledby': 'basic-button',\n }}\n >\n {row[field] &&\n row[field].map((file, fileIndex) => (\n \n onFileRemove({\n index,\n key: field,\n value: row[field],\n fileIndex,\n })\n }\n >\n \n \n \n \n {file.name\n ? file.name\n : t('dropzones.importedFileWithIndex', {\n value: fileIndex + 1,\n })}\n \n \n ))}\n \n \n )}\n \n
    \n {\n onTableInputChange({\n index,\n key: field,\n value: [\n ...(Array.isArray(row[field]) ? row[field] : []),\n ...e,\n ],\n });\n }}\n />\n
    \n
    \n
    \n ) : (\n \n onTableInputChange({\n index,\n key: field,\n value,\n })\n }\n />\n )}\n \n ))}\n \n ))}\n \n )}\n />\n\n {importedCertificateCount < MAX_CSV_DOCUMENTS ? (\n \n \n \n \n \n \n ) : (\n \n \n \n {t('createCertificate.maxCsvAlert')}\n \n \n \n )}\n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default ImportDataTable;\n","import React from 'react';\nimport { Button } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Form, Formik } from 'formik';\nimport * as yup from 'yup';\nimport moment from 'moment';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { CertificateQuantityType, CertificateSteps } from 'src/models/certificate.model';\nimport { generateUUID } from 'src/helpers/globalUtils';\nimport { RegexFormulas } from 'src/helpers/regex';\nimport ActionButtons from './components/ActionButtons';\nimport { useStyles } from './styles';\nimport ImportDataTable from './components/ImportDataTable';\n\nconst ImportMultipleData = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const {\n certificateQuantityType,\n selectedTemplate,\n draftImportedData,\n templateDetails,\n } = useSelector((state) => state.certificateCreatorStore, undefined);\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n\n const onContinueClick = () => {\n const holders = {};\n if (certificateQuantityType === CertificateQuantityType.Multiple) {\n dispatch(\n certificateCreatorActions.createCertificate({\n workspaceId,\n templateId: selectedTemplate.id,\n certificateList: draftImportedData\n .filter((fields) => Object.values(fields).filter((el) => el).length !== 0)\n .map((fields) => {\n let additionalFiles = [];\n let documentName = null;\n const correlationId = generateUUID();\n Object.keys(fields).forEach((key) => {\n const timestamp = Date.parse(fields[key]);\n if (Number.isNaN(timestamp) === false) {\n fields[key] =\n typeof fields[key] === 'object'\n ? moment(new Date(fields[key])).format('yyyy-MM-DD')\n : fields[key];\n }\n if (Array.isArray(fields[key])) {\n additionalFiles = [...fields[key]].filter((el) => el).map((el) => el.base64);\n delete fields[key];\n }\n if (key === 'documentName') {\n documentName = fields[key] === '' ? null : fields[key];\n delete fields[key];\n }\n if (key === 'holderMailMulti') {\n if (fields[key] !== '') holders[correlationId] = fields[key];\n delete fields[key];\n }\n });\n\n return {\n correlationId,\n additionalFiles,\n documentName,\n templateFields: fields,\n };\n }),\n })\n );\n dispatch(certificateCreatorActions.setMultipleHolders(holders));\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.CreatingCertificatesProgressScreen,\n })\n );\n }\n };\n const validate = (values) => {\n const emptyRows = [];\n const errors = values.fields.map((row) => {\n const hasAllEmptyFields = Object.values(row).filter((el) => el).length === 0;\n emptyRows.push(hasAllEmptyFields);\n if (hasAllEmptyFields) return undefined;\n const errors = {};\n Object.keys(row).forEach((field) => {\n if (templateDetails.fields[field]) {\n const { required, format } = templateDetails.fields[field];\n\n if (\n format === 'date' &&\n !yup.date().typeError(t('validation.dateFormat')).isValidSync(row[field])\n ) {\n errors[field] = t('validation.dateFormat');\n } else if (\n format === 'base64' &&\n !yup.mixed().when('isArray', {\n is: Array.isArray,\n then: yup.array(yup.string().matches(RegexFormulas.base64).isValidSync(row[field])),\n otherwise: yup.string().matches(RegexFormulas.base64).isValidSync(row[field]),\n })\n ) {\n errors[field] = t('validation.base64');\n } else if (\n field === 'documentName' &&\n !yup\n .string()\n .matches(RegexFormulas.folderName, t('validation.fileName'))\n .isValidSync(row[field])\n ) {\n errors[field] = t('validation.fileName');\n } else if (required && !yup.string().required().isValidSync(row[field])) {\n errors[field] = t('validation.required');\n }\n }\n });\n\n return Object.keys(errors).length === 0 ? undefined : errors;\n });\n if (\n (values.fields.length === 1 && errors.length === 0) ||\n emptyRows.every((el) => el === true)\n ) {\n return { fields: {} };\n }\n\n return errors.filter((el) => el).length === 0 ? undefined : { fields: errors };\n };\n\n return (\n <>\n \n
    \n \n \n
    \n \n
    \n \n \n \n );\n};\n\nexport default ImportMultipleData;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n () =>\n createStyles({\n fieldsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n paddingBottom: 24,\n },\n loader: {\n display: 'flex',\n justifyContent: 'center',\n },\n bottomButton: {\n marginTop: 'auto',\n },\n select: {\n marginBottom: 12,\n },\n selectLabel: {\n marginBottom: 8,\n },\n title: {\n marginBottom: 24,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport {\n Button,\n CircularProgress,\n FormControl,\n MenuItem,\n Select,\n Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport MappingLayout from '../components/MappingLayout/MappingLayout';\nimport { useStyles } from './styles';\nimport certificateCreatorActions from '../../../../redux/actions/certificateCreator.actions';\nimport { CertificateSteps } from '../../../../models/certificate.model';\nimport CertificateHelper from '../../../../helpers/certificateHelper';\n\nconst MapMultipleData = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { templateDetails, templateDetailsStatus, rawImportedData, mappedFields } = useSelector(\n (state) => state.certificateCreatorStore,\n undefined\n );\n const { headersWithNoArrayValues } = CertificateHelper.parseImportedData(rawImportedData);\n\n const isLoading = templateDetailsStatus === RequestStatus.PENDING;\n\n const handleChange = (e) => {\n dispatch(\n certificateCreatorActions.setMappedFields({\n keyValuePair: { [e.target.name]: e.target.value },\n })\n );\n };\n\n const onImportClick = () => {\n dispatch(certificateCreatorActions.setDraftFromImportedData());\n\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.ImportMultipleData,\n })\n );\n };\n\n return (\n \n
    \n {isLoading ? (\n
    \n \n
    \n ) : (\n <>\n \n {t('createCertificate.fieldMappings')}\n \n {templateDetails &&\n Object.keys(templateDetails.fields).map((fieldName) => {\n const { label, required } = templateDetails.fields[fieldName];\n\n if (fieldName === 'attached_files') return null;\n\n return (\n \n \n {label}\n \n \n {!required && (\n \n {t('createCertificate.ignoreThisField')}\n \n )}\n {headersWithNoArrayValues\n .filter((key) => key !== '')\n .map((item, index) => (\n \n {item}\n \n ))}\n \n \n );\n })}\n \n )}\n
    \n \n
    \n );\n};\n\nexport default MapMultipleData;\n","import React from 'react';\nimport { DropZone } from 'src/components';\nimport { useTranslation } from 'react-i18next';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { CertificateSteps } from 'src/models/certificate.model';\nimport { useDispatch } from 'react-redux';\nimport { Button, useMediaQuery } from '@material-ui/core';\nimport { DropzoneVariant } from '../../../components/DropZone/helpers';\n\nconst UploadAdditionalDocuments = () => {\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const dispatch = useDispatch();\n\n const onContinueClick = () => {\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.ChooseLocation,\n })\n );\n };\n\n return (\n <>\n onContinueClick()}>\n {t('createCertificate.continueWithoutFiles')}\n \n }\n />\n \n );\n};\n\nexport default UploadAdditionalDocuments;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n contentWrapper: {\n maxWidth: 690,\n },\n bottomButton: {\n minWidth: 388,\n display: 'flex',\n margin: '0 auto',\n [breakpoints.down('sm')]: {\n minWidth: 300,\n marginTop: 12,\n },\n },\n loaderWrapper: {\n height: 50,\n display: 'flex',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n pageWrapper: {\n '& #fullScreenDialogContent': {\n position: 'relative',\n },\n },\n }),\n { index: 0 }\n);\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ typography, palette, shadows, breakpoints }) =>\n createStyles({\n wrapper: {\n display: 'flex',\n overflowX: 'scroll',\n paddingBottom: 15,\n marginBottom: -15,\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n },\n itemWrapper: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n thumbnailWrapper: {\n width: '100%',\n height: 140,\n overflow: 'hidden',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n thumbnail: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'top left',\n transform: 'unset',\n },\n nameWrapper: {\n padding: '20px 16px',\n },\n name: {\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontWeight: typography.fontWeightMedium,\n },\n mobileList: {\n display: 'flex',\n },\n button: {\n width: 160,\n minWidth: 160,\n marginRight: 16,\n transition: 'all .3s ease',\n borderRadius: 8,\n border: `1px solid ${palette.divider}`,\n overflow: 'hidden',\n '&:hover:not($selected)': {\n textDecoration: 'none',\n borderColor: palette.bottomLineColor,\n boxShadow: shadows[6],\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n '&[disabled]': {\n backgroundColor: 'transparent',\n },\n },\n },\n buttonActive: {\n border: `1px solid ${palette.primary.main}!important`,\n },\n itemPreview: {\n position: 'absolute',\n width: 24,\n height: 24,\n right: 8,\n padding: 0,\n top: 8,\n '& svg': {\n fontSize: 16,\n },\n },\n }),\n { index: 0 }\n);\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Button, ButtonBase, CircularProgress, Typography } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { Preview } from 'src/components/CustomIcon';\nimport filesModuleService from 'src/redux/services/filesModule.service';\nimport { useStyles } from './styles';\n\nconst CertificateOption = ({ name, token, id, onOptionClick, onPreviewClick }) => {\n const classes = useStyles();\n const [thumbnail, setThumbnail] = useState(undefined);\n const { selectedTemplate } = useSelector((state) => state.certificateCreatorStore, undefined);\n const activeClassName =\n selectedTemplate && selectedTemplate.id === id ? classes.buttonActive : '';\n\n useEffect(() => {\n if (token) {\n filesModuleService\n .downloadFile(token)\n .then((response) => {\n setThumbnail(window.URL.createObjectURL(response.data));\n })\n .catch((err) => console.log(err));\n }\n }, [token]);\n\n return (\n \n
    \n \n \n \n\n
    \n {thumbnail ? (\n \"certificate\n ) : (\n \n )}\n
    \n
    \n \n {name}\n \n
    \n
    \n \n );\n};\nCertificateOption.propTypes = {\n name: PropTypes.string,\n token: PropTypes.string,\n id: PropTypes.string,\n onOptionClick: PropTypes.func,\n onPreviewClick: PropTypes.func,\n};\n\nexport default CertificateOption;\n","import React, { useEffect } from 'react';\nimport { Button, CircularProgress, Typography, useMediaQuery } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { CertificateSteps } from 'src/models/certificate.model';\nimport { splitArrayIntoTwo } from 'src/helpers/globalUtils';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { useStyles as useCreatorStyles } from '../../styles';\nimport CertificateOption from './CertificateOption';\nimport { useStyles } from './styles';\n\nconst SelectTemplateType = () => {\n const { t } = useTranslation();\n const {\n templateList,\n templateListStatus,\n selectedTemplate,\n certificateTemplatesStatus,\n templateListTokens,\n } = useSelector((state) => state.certificateCreatorStore, undefined);\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n\n const dispatch = useDispatch();\n const creatorClasses = useCreatorStyles();\n const classes = useStyles();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const isLoading = certificateTemplatesStatus === RequestStatus.PENDING;\n\n const onSubmit = (e) => {\n e.preventDefault();\n dispatch(\n certificateCreatorActions.setCreatorStep({ currentStep: CertificateSteps.SelectQuantityType })\n );\n dispatch(\n certificateCreatorActions.fetchTemplateDetails({\n templateId: selectedTemplate.id,\n workspaceId,\n })\n );\n };\n\n const onOptionClick = (template) => {\n dispatch(certificateCreatorActions.setSelectedTemplate(template));\n };\n\n const onPreviewClick = () => {\n dispatch(\n certificateCreatorActions.setCreatorStep({ currentStep: CertificateSteps.TemplatePreview })\n );\n };\n\n useEffect(() => {\n if (workspaceId && templateListStatus === RequestStatus.IDLE) {\n dispatch(certificateCreatorActions.fetchTemplateList(workspaceId));\n }\n }, [workspaceId, templateListStatus, dispatch]);\n\n useEffect(() => {\n if (templateList && templateList.length > 0 && workspaceId) {\n templateList.forEach((template) => {\n dispatch(\n certificateCreatorActions.fetchTemplateListThumbnailToken({ template, workspaceId })\n );\n });\n }\n }, [templateList, workspaceId, dispatch]);\n\n useEffect(() => {\n dispatch(certificateCreatorActions.resetForNewTemplate());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {t('createCertificate.createNewCertificate')}\n \n }\n startContent={\n \n {t('createCertificate.chooseCertTemplate')}\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit,\n }}\n >\n {isLoading ? (\n
    \n \n
    \n ) : (\n
    \n {templateList && templateList.length > 0 && (\n <>\n {smallScreen\n ? splitArrayIntoTwo(templateList).map((list) => (\n
    \n {list.map((template, index) => (\n onOptionClick(template)}\n />\n ))}\n
    \n ))\n : templateList.map((template, index) => (\n onOptionClick(template)}\n />\n ))}\n \n )}\n {templateList && templateList.length === 0 && (\n {t('createCertificate.noTemplatesMessage')}\n )}\n
    \n )}\n \n );\n};\n\nexport default SelectTemplateType;\n","export const selectCurrentLocation = (state) => state.certificateCreatorStore.currentLocation;\n","import React from 'react';\nimport { FormControl, InputAdornment, TextField, Typography } from '@material-ui/core';\nimport { func, shape, string } from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Folder } from '../CustomIcon';\nimport { useStyles } from './styles';\n\nconst ChooseLocationCertificateButton = ({ onOpenClick, currentValue }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <>\n \n \n \n \n ),\n }}\n fullWidth\n disabled\n className={classes.textField}\n value={currentValue?.name || 'Drive'}\n onClick={onOpenClick}\n />\n \n\n \n {t('createCertificate.changeLocation')}\n \n \n );\n};\n\nChooseLocationCertificateButton.propTypes = {\n currentValue: shape({\n id: string,\n name: string,\n }),\n onOpenClick: func,\n};\n\nChooseLocationCertificateButton.defaultProps = {\n currentValue: { name: 'Drive', id: '' },\n};\nexport default ChooseLocationCertificateButton;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n centered: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'column',\n width: '100%',\n height: '100%',\n },\n items: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minHeight: '100%',\n maxWidth: breakpoints.values.sm,\n margin: '0 auto',\n '& > *:not(:last-child)': {\n marginBottom: 14,\n },\n },\n }),\n { index: 0 }\n);\n","import { Button, CircularProgress, Typography, useMediaQuery } from '@material-ui/core';\n\nimport { SmallContentWithScrollbar } from 'src/components';\nimport { CertificateQuantityType, CertificateSteps } from 'src/models/certificate.model';\n\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { selectCurrentLocation } from 'src/redux/selectors/certificateCreator.selector';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport DirectoryExplorer from 'src/components/DirectoryExplorer/DirectoryExplorer';\nimport ChooseLocationCertificateButton from 'src/components/DirectoryExplorer/ChooseLocationCertificateButton';\nimport { useFolderStructure } from 'src/components/DirectoryExplorer/useFolderStructure';\nimport CertificateHelper from 'src/helpers/certificateHelper';\nimport { useStyles } from './styles';\n\nconst ChooseLocation = () => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n const [anchorEl, setAnchorEl] = useState(null);\n const { uploadTokens } = useSelector((state) => state.documentCreationStore, undefined);\n const { workspaceId } = useSelector(IdentitySelector.selectWorkspaceDetails);\n const ownersGroupId = useSelector(IdentitySelector.selectCurrentIdentityOwnersGroupId, undefined);\n const {\n templateDetails,\n certificateQuantityType,\n generatedCertFileList,\n currentLocation,\n } = useSelector((state) => state.certificateCreatorStore, undefined);\n\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const currentIdentityId = currentIdentity?.identity.identityId;\n const currentFolderId = localStorage.getItem('currentFolderId');\n const [folderStructureState, currentFolder] = useFolderStructure(\n workspaceId,\n currentFolderId || 'root'\n );\n\n useEffect(() => {\n if (currentFolder) {\n dispatch(\n certificateCreatorActions.setCurrentLocation({\n id: currentFolder.id,\n name: currentFolder.name === '/' ? 'Drive' : currentFolder.name,\n })\n );\n }\n }, [currentFolder, dispatch]);\n\n const location = useSelector(selectCurrentLocation);\n\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const closeLocationExplorer = () => {\n setAnchorEl(null);\n };\n\n const openLocationExplorer = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const onSubmit = (e) => {\n e.preventDefault();\n const documentAttributes = [];\n\n if (certificateQuantityType === CertificateQuantityType.Single) {\n Object.keys(generatedCertFileList).forEach((documentId) =>\n documentAttributes.push(\n CertificateHelper.createCertificateAttributeForTransactionPost({\n files: [\n ...generatedCertFileList[documentId],\n ...uploadTokens.map((file) => file.fileId),\n ],\n documentId,\n identityId: currentIdentityId,\n ownersGroupId,\n })\n )\n );\n } else if (certificateQuantityType === CertificateQuantityType.Multiple) {\n Object.keys(generatedCertFileList).forEach((documentId) =>\n documentAttributes.push(\n CertificateHelper.createCertificateAttributeForTransactionPost({\n files: generatedCertFileList[documentId],\n documentId,\n identityId: currentIdentityId,\n ownersGroupId,\n })\n )\n );\n }\n\n dispatch(\n certificateCreatorActions.createCertificateTransaction({\n workspaceId,\n workflowName: templateDetails.workflowName,\n documentAttributes,\n folderId: currentLocation.id,\n })\n );\n\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.ProgressScreen,\n })\n );\n };\n\n const handleChange = (location) => {\n dispatch(certificateCreatorActions.setCurrentLocation(location));\n };\n\n return (\n \n {t('createCertificate.chooseLocation')}\n \n }\n endContent={\n \n }\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit,\n }}\n hasForm\n >\n {folderStructureState.isLoading && (\n
    \n \n
    \n )}\n {!folderStructureState.isLoading && !folderStructureState.error && (\n
    \n \n {anchorEl && (\n \n )}\n
    \n )}\n \n );\n};\n\nexport default ChooseLocation;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentDisplayActions from 'src/redux/actions/documentDisplay.actions';\nimport { moduleName as documentDslService } from 'src/redux/services/documentDSL.service';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { CertificateQuantityType } from 'src/models/certificate.model';\nimport UsersManagerContextProvider from 'src/components/DocumentUsersManager/subcomponents/UsersManagerContext';\nimport DocumentUsersManager from 'src/components/DocumentUsersManager/DocumentUsersManager';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { DocumentRole } from 'src/models/document.model';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\n\nconst InvitePeople = () => {\n const dispatch = useDispatch();\n const history = useHistory();\n const { t } = useTranslation();\n const {\n multipleHolders,\n sentForGeneratingList,\n generatedCertFileList,\n certificateQuantityType,\n currentLocation,\n } = useSelector((state) => state.certificateCreatorStore);\n\n useEffect(() => {\n dispatch(\n documentDisplayActions.getDocument(Object.keys(generatedCertFileList)[0], documentDslService)\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (\n sentForGeneratingList.length === Object.keys(generatedCertFileList).length &&\n Object.keys(generatedCertFileList).length > 0\n ) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n t('createCertificate.createSuccessSnackbarTitle')\n )\n );\n if (\n Object.keys(multipleHolders).length > 0 &&\n certificateQuantityType === CertificateQuantityType.Multiple\n ) {\n const roleCollection = sentForGeneratingList.map((sent) => ({\n documentId: sent.documentId,\n role: DocumentRole.HOLDER,\n email: multipleHolders[sent.correlationId],\n }));\n\n if (roleCollection.length > 0)\n dispatch(\n certificateCreatorActions.inviteMultipleByRole({\n collection: roleCollection,\n })\n );\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n \n {\n if (Object.keys(generatedCertFileList).length === 1) {\n history.push(`/certificate/${Object.keys(generatedCertFileList)[0]}`);\n } else {\n history.push(\n currentLocation.name === 'Drive' ? '/drive' : `/drive/${currentLocation.id}`\n );\n }\n }}\n />\n \n \n );\n};\n\nexport default InvitePeople;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { CertificateQuantityType, CertificateSteps } from 'src/models/certificate.model';\nimport WaitingForBlockchain, {\n Variant,\n} from 'src/components/WaitingForBlockchain/WaitingForBlockchain';\n\nconst CreateFilesForCertProgressScreen = () => {\n const dispatch = useDispatch();\n const { generatedCertFileList, sentForGeneratingList, certificateQuantityType } = useSelector(\n (state) => state.certificateCreatorStore,\n undefined\n );\n const progress =\n sentForGeneratingList.length === 0\n ? 0\n : (Object.keys(generatedCertFileList).length / sentForGeneratingList.length) * 100;\n\n useEffect(() => {\n if (progress === 100) {\n if (certificateQuantityType === CertificateQuantityType.Single) {\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.UploadAdditionalDocuments,\n })\n );\n } else if (certificateQuantityType === CertificateQuantityType.Multiple) {\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.ChooseLocation,\n })\n );\n }\n }\n }, [dispatch, certificateQuantityType, progress]);\n\n return ;\n};\n\nexport default CreateFilesForCertProgressScreen;\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport WaitingForBlockchain from 'src/components/WaitingForBlockchain/WaitingForBlockchain';\nimport { CertificateSteps } from 'src/models/certificate.model';\nimport SelectQuantityType from './SelectQuantityType/SelectQuantityType';\nimport MapSingleFields from './MapSingleFields/MapSingleFields';\nimport ImportMultipleData from './ImportMultipleData/ImportMultipleData';\nimport MapMultipleData from './MapMultipleData/MapMultipleData';\nimport UploadAdditionalDocuments from './UploadAdditionalDocuments';\nimport SelectTemplateType from './SelectTemplateType/SelectTemplateType';\nimport TemplatePreview from './TemplatePreview/TemplatePreview';\nimport ChooseLocation from './ChooseLocation/ChooseLocation';\nimport InvitePeople from './InvitePeople/InvitePeople';\nimport CreateFilesForCertProgressScreen from './CreateFilesForCertProgressScreen/CreateFilesForCertProgressScreen';\n\nconst StepsResolver = () => {\n const { currentStep } = useSelector((state) => state.certificateCreatorStore, undefined);\n\n const CertificateCreatorSteps = {\n [CertificateSteps.SelectTemplateType]: ,\n [CertificateSteps.SelectQuantityType]: ,\n [CertificateSteps.MapSingleFields]: ,\n [CertificateSteps.TemplatePreview]: ,\n [CertificateSteps.ImportMultipleData]: ,\n [CertificateSteps.MapMultipleData]: ,\n [CertificateSteps.ChooseLocation]: ,\n [CertificateSteps.UploadAdditionalDocuments]: ,\n [CertificateSteps.InvitePeople]: ,\n [CertificateSteps.ProgressScreen]: ,\n [CertificateSteps.CreatingCertificatesProgressScreen]: ,\n };\n\n return CertificateCreatorSteps[currentStep];\n};\n\nexport default StepsResolver;\n","import { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\n\nconst CertificateCreatorLongPooling = () => {\n const dispatch = useDispatch();\n const { sentForGeneratingList, generatedCertFileList } = useSelector(\n (state) => state.certificateCreatorStore,\n undefined\n );\n const intervalId = useRef(null);\n\n useEffect(() => {\n if (\n sentForGeneratingList.length > 0 &&\n Object.keys(generatedCertFileList).length !== sentForGeneratingList.length\n ) {\n intervalId.current = setInterval(() => {\n dispatch(\n certificateCreatorActions.checkCreatedFileIds(\n sentForGeneratingList.map((el) => el.documentId).filter((el) => el)\n )\n );\n }, 3000);\n } else if (Object.keys(generatedCertFileList).length === sentForGeneratingList.length) {\n clearInterval(intervalId.current);\n }\n return () => clearInterval(intervalId.current);\n }, [dispatch, sentForGeneratingList, generatedCertFileList]);\n\n return null;\n};\n\nexport default CertificateCreatorLongPooling;\n","import { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport certificateCreatorActions from 'src/redux/actions/certificateCreator.actions';\nimport { CertificateSteps } from 'src/models/certificate.model';\nimport { DocumentType, userComActions } from '../../redux/actions/userCom.actions';\n\nconst CertificateCreatorWebsocket = () => {\n const wsCreate = useRef(null);\n const dispatch = useDispatch();\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n\n const { generatedCertFileList, createdCertificates } = useSelector(\n (state) => state.certificateCreatorStore,\n undefined\n );\n\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n\n const onWebSocketMessage = (message) => {\n if (message.action === 'CREATE') {\n dispatch(certificateCreatorActions.addCreatedCertificates(message.documentId));\n }\n };\n\n useEffect(() => {\n if (workspaceId) {\n wsCreate.current = WebSocketHelper.subscribe(\n 'document-dsl-service',\n `workspaces/${workspaceId}/document-updates`,\n (message) => {\n onWebSocketMessage(message);\n }\n );\n }\n\n return () => {\n WebSocketHelper.unsubscribe(wsCreate.current);\n };\n }, [workspaceId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n if (\n createdCertificates.length > 0 &&\n createdCertificates.length === Object.keys(generatedCertFileList).length\n ) {\n userComActions.document.docAdded(\n DocumentType.Certificate,\n createdCertificates.length,\n workspaceId\n );\n dispatch(\n certificateCreatorActions.setCreatorStep({\n currentStep: CertificateSteps.InvitePeople,\n })\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [createdCertificates, generatedCertFileList, dispatch]);\n\n return null;\n};\n\nexport default CertificateCreatorWebsocket;\n","import React, { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FullScreenDialog } from 'src/components';\nimport { useTranslation } from 'react-i18next';\nimport documentCreationActions from 'src/redux/actions/documentCreation.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { goBack } from 'src/helpers/goBack';\nimport StepsResolver from './steps/StepsResolver';\nimport { CertificateQuantityType, CertificateSteps } from '../../models/certificate.model';\nimport certificateCreatorActions from '../../redux/actions/certificateCreator.actions';\nimport { useStyles } from './styles';\nimport identityActions from '../../redux/actions/identity.actions';\nimport CertificateCreatorLongPooling from './CertificateCreatorLongPooling';\nimport CertificateCreatorWebsocket from './CertificateCreatorWebsocket';\nimport { TemplateDocumentType } from '../../models/documents.model';\n\nconst CertificateCreator = () => {\n const { t } = useTranslation();\n const classes = useStyles();\n const history = useHistory();\n const dispatch = useDispatch();\n const {\n currentStep,\n certificateQuantityType,\n generatedCertFileList,\n currentLocation,\n } = useSelector((state) => state.certificateCreatorStore, undefined);\n const { currentIdentity, workspaceWorkflows, workspaceWorkflowsStatus } = useSelector(\n (state) => state.identityStore,\n undefined\n );\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n\n const withLogo = [\n CertificateSteps.ProgressScreen,\n CertificateSteps.InvitePeople,\n CertificateSteps.SelectTemplateType,\n CertificateSteps.CreatingCertificatesProgressScreen,\n CertificateSteps.UploadAdditionalDocuments,\n CertificateSteps.ChooseLocation,\n CertificateSteps.InvitePeople,\n ].includes(currentStep);\n\n const handleClose = () => {\n const currentFolderId = localStorage.getItem('currentFolderId');\n if (currentStep === CertificateSteps.InvitePeople) {\n if (certificateQuantityType === CertificateQuantityType.Multiple) {\n history.push(currentLocation.name === 'Drive' ? '/drive' : `/drive/${currentLocation.id}`);\n } else if (generatedCertFileList[0]?.documentId) {\n history.push(`/certificate/${generatedCertFileList[0]?.documentId}`);\n }\n } else if (currentFolderId) {\n // check if user started from different directory then root and redirect him back to this place\n currentFolderId === 'root'\n ? history.push(`/drive/`)\n : history.push(`/drive/${currentFolderId}`);\n } else goBack(history);\n };\n\n const handleBack = () => {\n dispatch(certificateCreatorActions.setCreatorStepBack());\n };\n\n const getStepTitle = () => {\n if (withLogo) return undefined;\n\n switch (currentStep) {\n case CertificateSteps.TemplatePreview:\n return t('createCertificate.templatePreview');\n\n default:\n return t('createCertificate.createNewCertificate');\n }\n };\n\n useEffect(() => {\n if (\n workspaceWorkflowsStatus === RequestStatus.SUCCESS &&\n !workspaceWorkflows.includes(TemplateDocumentType.CERTIFICATES)\n ) {\n history.push('/drive');\n }\n }, [workspaceWorkflows, workspaceWorkflowsStatus, history]);\n\n useEffect(() => {\n if (workspaceId && workspaceWorkflowsStatus === RequestStatus.IDLE) {\n dispatch(identityActions.fetchWorkspaceWorkflows(workspaceId));\n }\n\n return () => {\n dispatch(documentCreationActions.clearDocumentCreatorStore());\n dispatch(certificateCreatorActions.clearStore());\n };\n }, [workspaceId, dispatch, workspaceWorkflowsStatus]);\n\n return (\n
    \n \n \n \n \n \n
    \n );\n};\n\nexport default CertificateCreator;\n","import { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport documentUserManagerActions from 'src/redux/actions/documentUserManager.actions';\nimport { moduleName as dslService } from 'src/redux/services/documentDSL.service';\nimport { DocumentType, userComActions } from '../../redux/actions/userCom.actions';\nimport { DocumentActionModalUrlModals } from '../DocumentActions/DocumentActionsPage';\n\nconst DocumentCreatorWebsocket = () => {\n const ws = useRef(null);\n const dispatch = useDispatch();\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n const history = useHistory();\n const { t } = useTranslation();\n\n const onWebSocketMessage = (message) => {\n if (message.type === 'RESULT') {\n switch (message.code) {\n case 'DOCUMENT_CREATED':\n if (!message.data.result?.documentType.includes('dsl')) {\n const isEsign = message.data.result.documentType === 'legacy-esign';\n const param = isEsign ? `?m=${DocumentActionModalUrlModals.DocumentUsersManager}` : '';\n userComActions.document.docAdded(\n isEsign ? DocumentType.ESign : DocumentType.Drive,\n 1,\n message.data.result.workspaceId\n );\n history.push(`/document/${message.data.result.id}${param}`);\n }\n if (message.data.result.folderName !== '/') {\n localStorage.setItem('createdDocumentFolderId', message.data.result.folderId);\n } else {\n localStorage.setItem('createdDocumentFolderId', 'root');\n }\n break;\n case 'DOCUMENT_INVITATION_SET': {\n if (message.data.result?.documentType.includes('dsl')) {\n dispatch(\n documentUserManagerActions.getDocumentInvitations(message.data.result.id, dslService)\n );\n }\n break;\n }\n default:\n console.warn(`Unknown code [${message.code}]`, message);\n break;\n }\n } else if (message.type === 'ERROR') {\n const resultCode = message?.data?.result?.code;\n const messagePart = resultCode ? `_${resultCode}` : '';\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n t('snackbars.common.errorTitle'),\n t(`drivePage.action.error.${message.code}${messagePart}`)\n )\n );\n } else {\n console.warn(`Unknown action type [${message.type}]`, message);\n }\n };\n\n useEffect(() => {\n if (workspaceId) {\n ws.current = WebSocketHelper.subscribe(\n 'document-indexing-service',\n `workspaces/${workspaceId}`,\n (message) => {\n onWebSocketMessage(message);\n }\n );\n }\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, [workspaceId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport default DocumentCreatorWebsocket;\n","import React, { useEffect, useState } from 'react';\nimport { CreatorDocument } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport documentCreationActions from 'src/redux/actions/documentCreation.actions';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { goBack } from 'src/helpers/goBack';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport CertificateCreator from '../CertificateCreator';\nimport DocumentCreatorWebsocket from './DocumentCreatorWebsocket';\nimport { TemplateDocumentType } from '../../models/documents.model';\n\nconst DocumentCreatorPage = () => {\n const history = useHistory();\n const dispatch = useDispatch();\n const { filesListDropzone, templateDocument, createNewDocumentStatus, newDocument } = useSelector(\n (state) => state.documentCreationStore,\n undefined\n );\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const [openedStep, setOpenedStep] = useState(1);\n const signatureDocument =\n templateDocument === TemplateDocumentType.DOCUMENT_TO_BE_SIGNED ? 'MAIL_SMS' : '';\n\n useEffect(() => {\n if (createNewDocumentStatus === RequestStatus.SUCCESS) {\n dispatch(\n identityActions.sendTransactionFromNewDocument(newDocument.txn, () =>\n dispatch(documentCreationActions.clearDocumentCreatorStore())\n )\n );\n setOpenedStep(4);\n }\n }, [createNewDocumentStatus, dispatch, newDocument]);\n\n const creatorDocumentStepper = (stepNumber) => {\n switch (stepNumber) {\n case 1:\n setOpenedStep(1);\n break;\n\n case 2:\n createDocument();\n break;\n\n case 3:\n createDocument();\n break;\n\n case 4:\n case 5:\n break;\n default:\n handleClose();\n break;\n }\n };\n\n const createDocument = () => {\n const name = `Document #${Math.floor(Math.random() * 100000 + 1)}`;\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n const filesId = filesListDropzone\n .filter((file) => file.uploadStatus === RequestStatus.SUCCESS)\n .map((file) => file.fileId);\n\n const currentFolderId = localStorage.getItem('currentFolderId');\n dispatch(\n documentCreationActions.createNewDocument(\n workspaceId,\n name,\n templateDocument,\n filesId,\n signatureDocument,\n currentFolderId\n )\n );\n };\n\n const handleClose = () => {\n const currentFolderId = localStorage.getItem('currentFolderId');\n if (currentFolderId) {\n currentFolderId === 'root'\n ? history.push(`/drive/`)\n : history.push(`/drive/${currentFolderId}`);\n } else {\n goBack(history);\n }\n setTimeout(() => {\n dispatch(documentCreationActions.clearDocumentCreatorStore());\n }, 500);\n };\n\n return (\n <>\n \n {templateDocument === TemplateDocumentType.CERTIFICATES ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default DocumentCreatorPage;\n","import axios from 'src/helpers/axios';\nimport { parseError } from 'src/helpers/parseErrors';\n\nconst moduleName = 'document-service';\n\nconst documentJoinService = {\n getDocumentInvitation,\n acceptDocumentInvitation,\n};\n\nfunction getDocumentInvitation(invitationId, service = moduleName) {\n return axios\n .get(`/rest/${service}/invitations/${invitationId}`)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nfunction acceptDocumentInvitation(invitationId, service, data = {}) {\n return axios\n .post(`/rest/${service}/invitations/${invitationId}/accept`, data)\n .then((response) => response.data)\n .catch((error) => parseError(error));\n}\n\nexport default documentJoinService;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { moduleName as dslService } from 'src/redux/services/documentDSL.service';\nimport documentJoinService from '../services/documentJoin.service';\nimport documentJoinConstants from '../constants/documentJoin.constants';\nimport snackbarActions from './snackbar.actions';\nimport { ErrorCode } from '../../models/errors.model';\n\nconst documentJoinActions = {\n getDocumentInvitation,\n acceptDocumentInvitation,\n clearDocumentJoinStore,\n};\n\nfunction getDocumentInvitation(invitationId, service) {\n return (dispatch) => {\n dispatch({ type: documentJoinConstants.GET_DOCUMENT_INVITATION_REQUEST });\n documentJoinService\n .getDocumentInvitation(invitationId, service)\n .then((response) => {\n dispatch({\n type: documentJoinConstants.GET_DOCUMENT_INVITATION_SUCCESS,\n data: response.data,\n });\n })\n .catch(() => {\n dispatch({ type: documentJoinConstants.GET_DOCUMENT_INVITATION_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('joiningToDocumentPage.fetchInvitationError.toast.error')\n )\n );\n });\n };\n}\n\nfunction acceptDocumentInvitation(invitationId, callbackOnSuccess, apiService, data) {\n return (dispatch) => {\n dispatch({ type: documentJoinConstants.ACCEPT_DOCUMENT_INVITATION_REQUEST });\n documentJoinService\n .acceptDocumentInvitation(invitationId, apiService, data)\n .then(() => {\n dispatch({\n type: documentJoinConstants.ACCEPT_DOCUMENT_INVITATION_SUCCESS,\n });\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch((errors) => {\n if (errors.code === ErrorCode.IDENTITY_NOT_READY) {\n setTimeout(() => {\n dispatch(acceptDocumentInvitation(invitationId, callbackOnSuccess, apiService));\n }, 5000);\n } else {\n dispatch({ type: documentJoinConstants.ACCEPT_DOCUMENT_INVITATION_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('joiningToDocumentPage.acceptInvitationError.header'),\n apiService === dslService\n ? i18n.t('joiningToDocumentPage.acceptInvitationError.descriptionCert')\n : i18n.t('joiningToDocumentPage.acceptInvitationError.description')\n )\n );\n }\n });\n };\n}\n\nfunction clearDocumentJoinStore() {\n return { type: documentJoinConstants.CLEAR_DOCUMENT_INVITATION_STORE };\n}\n\nexport default documentJoinActions;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shape, spacing }) =>\n createStyles({\n root: {},\n differentMailWrapper: {\n display: 'flex',\n [breakpoints.down('md')]: {\n flexDirection: 'column',\n },\n },\n differentMailCol: {\n flex: '0 0 50%',\n [breakpoints.down('md')]: {\n flex: 1,\n },\n },\n differentMailColContent: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n differentMailContent: {\n padding: spacing(4),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n differentMailTitle: {\n marginBottom: spacing(2),\n whiteSpace: 'pre',\n textAlign: 'center',\n },\n differentMailButton: {\n marginTop: spacing(5),\n },\n contentWrapper: {\n [breakpoints.up('sm')]: {\n maxWidth: breakpoints.values.sm,\n },\n [breakpoints.up('md')]: {\n maxWidth: breakpoints.values.sm + 100,\n },\n },\n preview: {},\n previewImage: {},\n label: {\n display: 'block',\n lineHeight: 1.3,\n marginBottom: spacing(0.5),\n [breakpoints.up('sm')]: {\n marginBottom: spacing(1),\n },\n },\n selectFormControl: {\n marginLeft: spacing(-1),\n marginRight: spacing(-1),\n width: `calc(100% + ${spacing(2)}px)`,\n [breakpoints.up('xs')]: {\n width: 'auto',\n maxWidth: `calc(100% + ${spacing(2)}px)`,\n },\n },\n input: {\n display: 'flex',\n alignItems: 'center',\n padding: spacing(0, 1),\n // minHeight: 'auto',\n },\n inputNotchedOutline: {\n border: 'none',\n },\n avatarAndTextItemRoot: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n\n imageContainer: {\n backgroundColor: palette.greySimple.lightest,\n borderRadius: shape.borderRadius,\n paddingBottom: '53%',\n position: 'relative',\n overflow: 'hidden',\n marginTop: spacing(1),\n marginBottom: spacing(1),\n [breakpoints.up('sm')]: {\n marginTop: spacing(2),\n marginBottom: spacing(2),\n },\n '& img': {\n display: 'block',\n position: 'absolute',\n margin: 'auto',\n maxWidth: '66.6%',\n left: spacing(1),\n right: spacing(1),\n top: spacing(1),\n bottom: spacing(1),\n transform: 'translateY(30%)',\n },\n },\n imageContainerFullScreen: {\n paddingBottom: 0,\n overflow: 'auto',\n '& img': {\n top: 'unset',\n bottom: 'unset',\n right: 'unset',\n left: 'unset',\n position: 'relative',\n transform: 'unset',\n maxWidth: '100%',\n },\n },\n imageContainerClickable: {\n cursor: 'zoom-in',\n },\n imageNotLoadedContainer: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n color: palette.greySimple.light,\n '& svg': {\n fontSize: spacing(8),\n [breakpoints.up('xs')]: {\n fontSize: spacing(11),\n },\n [breakpoints.up('sm')]: {\n fontSize: spacing(14),\n },\n },\n },\n documentName: {\n [breakpoints.up('sm')]: {\n minWidth: '50%',\n '& + *': {\n maxWidth: '50%',\n },\n },\n },\n }),\n { index: 0 }\n);\n","import { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { SNACKBAR_VARIANT } from '../../models/common.model';\nimport snackbarActions from '../../redux/actions/snackbar.actions';\n\nconst CertificateCreatorWebsocket = () => {\n const ws = useRef(null);\n const history = useHistory();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const { documentInvitationData } = useSelector((state) => state.documentJoinStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n\n const onWebSocketMessage = (message) => {\n if (message.type === 'RESULT') {\n switch (message.code) {\n case 'DOCUMENT_CREATED':\n if (message.data.result?.documentType.includes('dsl'))\n history.push(`/certificate/${message.data.result.id}`);\n else history.push(`/document/${message.data.result.id}`);\n break;\n case 'DOCUMENT_UPDATED':\n if (documentInvitationData?.documentId === message.data.result?.id) {\n if (message.data.result?.documentType.includes('dsl'))\n history.push(`/certificate/${message.data.result.id}`);\n else history.push(`/document/${message.data.result.id}`);\n }\n break;\n default:\n console.warn(`Unknown code [${message.code}]`, message);\n break;\n }\n } else if (message.type === 'ERROR') {\n const resultCode = message?.data?.result?.code;\n const messagePart = resultCode ? `_${resultCode}` : '';\n dispatch(\n snackbarActions.enqueueSnackbar(\n JSON.stringify({\n variant: SNACKBAR_VARIANT.ERROR,\n message: t(`drivePage.action.error.${message.code}${messagePart}`),\n })\n )\n );\n } else {\n console.warn(`Unknown action type [${message.type}]`, message);\n }\n };\n\n useEffect(() => {\n if (workspaceId) {\n ws.current = WebSocketHelper.subscribe(\n 'document-indexing-service',\n `workspaces/${workspaceId}`,\n (message) => {\n onWebSocketMessage(message);\n }\n );\n }\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, [workspaceId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport default CertificateCreatorWebsocket;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { RootState } from 'src/redux/reducers';\nimport { Button, Typography } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\nimport authActions from '../../redux/actions/auth.actions';\n\nconst DiffMailInfo = (): JSX.Element => {\n const { t, i18n } = useTranslation();\n const { language } = i18n;\n const classes = useStyles();\n const dispatch = useDispatch();\n const { documentInvitationData } = useSelector(\n (state: RootState) => state.documentJoinStore,\n undefined\n );\n const handleLogout = () => {\n dispatch(\n authActions.deleteToken(() => {\n window.location.href = `${process.env.REACT_APP_AUTH_FRONT_URL}${language}?email=${documentInvitationData?.invitedEmail}`;\n })\n );\n };\n return (\n
    \n
    \n \n {t('differentMailInfo.title')}\n \n \n {t('differentMailInfo.invitedMail')}\n \n \n {documentInvitationData?.invitedEmail}\n \n \n {t('differentMailInfo.button')}\n \n
    \n
    \n );\n};\n\nexport default DiffMailInfo;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport documentJoinActions from 'src/redux/actions/documentJoin.actions';\nimport documentDisplayActions from 'src/redux/actions/documentDisplay.actions';\nimport cookieHelper from 'src/helpers/cookieHelper';\nimport {\n Button,\n CircularProgress,\n Dialog,\n FormControl,\n MenuItem,\n OutlinedInput,\n Select,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { useHistory, useLocation, useRouteMatch } from 'react-router-dom';\nimport {\n BrokenImage as NotDownloadedImageIcon,\n VisibilityOffOutlined as NoImageIcon,\n} from '@material-ui/icons';\nimport Img from 'react-image';\nimport {\n AvatarAndTextItem,\n EmptyBanner,\n ExtendedGrid,\n FullPageLoader,\n FullScreenDialog,\n SmallContentWithScrollbar,\n} from 'src/components';\nimport clsx from 'clsx';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { moduleName as dslService } from 'src/redux/services/documentDSL.service';\nimport { moduleName as documentService } from 'src/redux/services/documentCore.service';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { DocumentRole } from 'src/models/document.model';\nimport { useStyles } from './styles';\nimport JoinToDocumentWebsocket from './JoinToDocumentWebsocket';\nimport DiffMailInfo from './DiffMailInfo';\n\nconst JoinToDocument = () => {\n const classes = useStyles();\n const match = useRouteMatch();\n const dispatch = useDispatch();\n const history = useHistory();\n const { t } = useTranslation();\n const { search } = useLocation();\n const pinCode = new URLSearchParams(search).get('pin');\n\n const shortTermSubmitButton = useMediaQuery(({ breakpoints }) => breakpoints.only('xs'));\n const { currentIdentity, structure, structureStatus } = useSelector(\n (state) => state.identityStore,\n undefined\n );\n const {\n documentInvitationData,\n fetchDocumentInvitationStatus,\n fetchAcceptationDocumentInvitationStatus,\n } = useSelector((state) => state.documentJoinStore, undefined);\n const { getDownloadTokenStatus, downloadFiles } = useSelector(\n (state) => state.documentDisplayStore,\n undefined\n );\n const [selectedIdentityId, setSelectedIdentityId] = useState(null);\n const [submitting, setSubmitting] = useState(false);\n const [isPreviewFull, setIsPreviewFull] = useState(false);\n const { invitationId } = match.params;\n const isCertificate = history.location.pathname.includes('certificate');\n const apiService = isCertificate ? dslService : documentService;\n const disabledSubmit = fetchAcceptationDocumentInvitationStatus === RequestStatus.PENDING;\n const getInvitationSuccess = fetchDocumentInvitationStatus === RequestStatus.SUCCESS;\n const getInvitationError = fetchDocumentInvitationStatus === RequestStatus.ERROR;\n\n const documentName = getInvitationSuccess ? documentInvitationData?.documentName : null;\n const imageDownloadToken = getInvitationSuccess\n ? documentInvitationData?.imageDownloadToken\n : null;\n const inviterName = getInvitationSuccess ? documentInvitationData?.inviterName : null;\n const workspaceName = getInvitationSuccess ? documentInvitationData?.workspaceName : null;\n const currentIdentityId = currentIdentity?.identity.identityId;\n const isSigner = documentInvitationData?.invitedRole === DocumentRole.SIGNERS;\n const isHolder = documentInvitationData?.invitedRole === DocumentRole.HOLDER;\n const hasDiffMails =\n currentIdentity?.identity.email &&\n currentIdentity?.identity.email !== documentInvitationData?.invitedEmail;\n\n const isAllLoaded =\n fetchDocumentInvitationStatus !== RequestStatus.PENDING &&\n structureStatus !== RequestStatus.PENDING &&\n structure?.length !== 0 &&\n currentIdentityId &&\n selectedIdentityId;\n\n const parsedStructureList = isAllLoaded\n ? structure\n .filter((identityStructure) => identityStructure.identity.active)\n .map((identityStructure) => ({\n data: {\n id: identityStructure.identity.identityId,\n name: identityStructure.identity.name,\n },\n workspaceName: identityStructure.workspace.name,\n workspaceId: identityStructure.workspace.workspaceId,\n }))\n : null;\n\n const displayContent = !getInvitationError && !submitting;\n\n const handleClose = () => {\n history.push('/');\n };\n\n const handleChangeIdentity = (event) => {\n setSelectedIdentityId(event.target.value);\n };\n\n const setCurrentIdentity = (identityId) => {\n let identityData = false;\n structure.forEach((item) => {\n if (item.identity.identityId === identityId) {\n identityData = item;\n }\n });\n if (!identityData) {\n [identityData] = structure;\n }\n cookieHelper.setCookie('activeIdentity', identityData?.identity?.identityId);\n dispatch(identityActions.setCurrentIdentity(identityData));\n };\n\n const selectTitle = (() => {\n if (isCertificate) {\n return t('joiningToDocumentPage.takeTheCertificateAs');\n }\n return isSigner\n ? t('joiningToDocumentPage.youSignedAs')\n : t('joiningToDocumentPage.youJoinedAs');\n })();\n\n const togglePreview = () => setIsPreviewFull(!isPreviewFull);\n\n const handleSubmit = (event) => {\n event.preventDefault();\n const { invitationId } = match.params;\n setCurrentIdentity(selectedIdentityId);\n dispatch(\n documentJoinActions.acceptDocumentInvitation(\n invitationId,\n () => setSubmitting(true),\n apiService,\n pinCode ? { pin: pinCode } : {}\n )\n );\n localStorage.setItem('createdDocumentFolderId', 'root');\n };\n\n useEffect(() => {\n if (structureStatus === RequestStatus.SUCCESS && currentIdentity !== null) {\n setSelectedIdentityId(currentIdentity?.identity.identityId);\n }\n }, [structureStatus, currentIdentity]);\n\n useEffect(() => {\n if (fetchDocumentInvitationStatus === RequestStatus.IDLE) {\n dispatch(documentJoinActions.getDocumentInvitation(invitationId, apiService));\n }\n }, [dispatch, fetchDocumentInvitationStatus, invitationId, apiService]);\n\n useEffect(() => {\n if (\n fetchDocumentInvitationStatus === RequestStatus.SUCCESS &&\n getDownloadTokenStatus === RequestStatus.IDLE &&\n documentInvitationData\n ) {\n if (documentInvitationData?.imageDownloadToken) {\n dispatch(\n documentDisplayActions.downloadFiles(\n [{ token: documentInvitationData.imageDownloadToken }],\n -1\n )\n );\n }\n }\n }, [dispatch, documentInvitationData, fetchDocumentInvitationStatus, getDownloadTokenStatus]);\n\n useEffect(\n () => () => {\n dispatch(documentDisplayActions.clearFilesAndTokens());\n dispatch(documentJoinActions.clearDocumentJoinStore());\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const imageContent = (inModal = false) =>\n displayContent ? (\n undefined : togglePreview}\n aria-hidden=\"true\"\n >\n {imageDownloadToken ? (\n <>\n {downloadFiles.length > 0 ? (\n \n \n \n }\n unloader={\n
    \n \n
    \n }\n />\n ) : (\n
    \n \n
    \n )}\n \n ) : (\n
    \n \n
    \n )}\n \n ) : (\n \n \n
    \n );\n\n return (\n <>\n \n {imageContent(true)}\n \n \n \n \n {hasDiffMails && getInvitationSuccess && !submitting && (\n \n
    \n
    \n \n \n \n \n {isCertificate ? t('common.certificateName') : t('common.documentName')}\n \n \n {documentName}\n \n \n \n {t('common.author')}\n \n\n \n \n \n {imageContent(true)}\n
    \n \n
    \n
    \n )}\n {!hasDiffMails && isAllLoaded && (\n \n \n \n \n {isCertificate ? t('common.certificateName') : t('common.documentName')}\n \n \n {documentName}\n \n \n \n {t('common.author')}\n \n\n \n \n \n )\n }\n endContent={\n displayContent && (\n <>\n \n {selectTitle}\n \n \n \n \n \n }\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n }}\n >\n {parsedStructureList.map((item, index) => (\n \n \n \n ))}\n \n \n \n \n }\n >\n {isHolder\n ? t('joiningToDocumentPage.takeOwnership')\n : t(\n `joiningToDocumentPage.${\n isCertificate ? 'readCertificate' : 'readDocument'\n }.${shortTermSubmitButton ? 'shortTerm' : 'longTerm'}`\n )}\n \n \n \n \n )\n }\n hasForm={displayContent}\n formProps={\n displayContent\n ? {\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }\n : {}\n }\n >\n {imageContent(false)}\n \n )}\n
    \n \n );\n};\n\nexport default JoinToDocument;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ custom, palette, spacing }) =>\n createStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: palette.background.paper,\n margin: spacing(2, 0, 4),\n },\n container: {\n height: 40,\n },\n divider: {\n height: custom.breadcrumbsMenuHeight,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button,\n Divider,\n Fab,\n ListItemIcon,\n Menu,\n MenuItem,\n Tooltip,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { CustomizedBreadcrumbs, ExtendedGrid, LinkDnd } from 'src/components';\nimport { Settings as SettingsIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst BreadcrumbsAndSettings = ({\n className: classNameProp,\n actions,\n additionalContent,\n folderPath,\n}) => {\n const { t } = useTranslation();\n const mobileScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('xs'));\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const renderMenuActions = (actions) => (\n \n {actions.map((action, index) => (\n {\n action.onClick();\n handleClose();\n }}\n >\n {action.icon && {action.icon}}\n {action.name}\n \n ))}\n \n );\n\n const renderActionButton = () => (\n <>\n {mobileScreen ? (\n \n \n \n \n \n ) : (\n }\n className={classes.settingsButton}\n onClick={handleClick}\n >\n {t('drivePage.folderSettings')}\n \n )}\n \n );\n\n const parsePath = (path) => {\n const parsedPath = [];\n const ids = path.idPath.split('/');\n const names = path.namePath.split('/');\n for (let i = 0; i < ids.length; i += 1) {\n const folderData = {\n name: names[i] !== '' ? names[i] : t('common.rootCatalog'),\n path: i !== 0 ? `/${ids[i]}` : '',\n isActive: i + 1 === ids.length,\n folderId: ids[i],\n };\n parsedPath.push(folderData);\n }\n return parsedPath;\n };\n\n const renderPath = () => {\n const path = parsePath(folderPath);\n\n return path.map((folder) => {\n if (folder.isActive) {\n return (\n \n {folder.name}\n \n );\n }\n return ;\n });\n };\n\n return (\n
    \n \n \n {renderPath()}\n \n\n {actions && actions.length > 0 && (\n <>\n \n \n \n \n {renderActionButton()}\n \n \n )}\n\n {additionalContent && (\n \n {additionalContent}\n \n )}\n \n\n {actions && renderMenuActions(actions)}\n
    \n );\n};\n\nBreadcrumbsAndSettings.propTypes = {\n className: PropTypes.string,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n name: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n })\n ),\n folderPath: PropTypes.shape({\n idPath: PropTypes.string,\n namePath: PropTypes.string,\n }),\n additionalContent: PropTypes.node,\n};\n\nBreadcrumbsAndSettings.defaultProps = {};\n\nexport default BreadcrumbsAndSettings;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@material-ui/core';\nimport {\n HeaderButton,\n MobileBottomMenuList,\n OutsideClickHandlerClickExcpetion,\n} from 'src/components';\nimport { MoreHor as SettingsIcon } from 'src/components/CustomIcon';\n\nconst ItemsActions = ({ actions, smallScreen }) => {\n const [open, setOpen] = useState(false);\n const handleToggle = {\n close: () => {\n setOpen(false);\n },\n open: () => {\n setOpen(true);\n },\n };\n\n const renderMenuActions = (actions) => (\n <>\n {smallScreen ? (\n \n ) : (\n actions.map((action, index) => (\n \n {action.name}\n \n \n ))\n )}\n \n );\n\n return (\n <>\n {smallScreen && } onClick={handleToggle.open} />}\n {actions && renderMenuActions(actions)}\n \n );\n};\n\nItemsActions.propTypes = {\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n name: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n })\n ),\n smallScreen: PropTypes.bool,\n};\n\nItemsActions.defaultProps = {};\n\nexport default ItemsActions;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing }) =>\n createStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n },\n button: {\n marginRight: spacing(1),\n '&:not(:hover):not(:focus):not(:active)': {\n '& svg': {\n color: palette.greySimple.darkest,\n },\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { Fab, Tooltip, Typography } from '@material-ui/core';\nimport { ArrowLeftSLine as BackIcon } from 'src/components/CustomIcon';\n\nimport { useStyles } from './styles';\n\nconst LinkBehavior = React.forwardRef((props, ref) => );\n\nconst MobileBreadcrumbs = ({ className: classNameProp, folderPath }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const parsePath = (path) => {\n const parsedPath = [];\n const ids = path.idPath.split('/');\n const names = path.namePath.split('/');\n\n const lastIds = ids.slice(Math.max(ids.length - 2, 0));\n const lastNames = names.slice(Math.max(names.length - 2, 0));\n\n for (let i = 0; i < lastIds.length; i += 1) {\n const name = lastNames[i] !== '' ? lastNames[i] : '';\n\n const folderData = {\n name,\n tooltip:\n name !== ''\n ? t('drivePage.foldersTable.backToFolder', { name })\n : t('drivePage.foldersTable.backToRoot'),\n path: ids.length > 2 ? `/${lastIds[i]}` : '',\n isActive: i + 1 === lastIds.length,\n };\n parsedPath.push(folderData);\n }\n return parsedPath;\n };\n\n const renderPath = () => {\n const path = parsePath(folderPath);\n return path.map((folder) => {\n if (folder.isActive) {\n return (\n \n {folder.name}\n \n );\n }\n\n return (\n \n \n \n \n \n );\n });\n };\n\n return folderPath.idPath.split('/').length > 1 ? (\n
    {renderPath()}
    \n ) : null;\n};\n\nMobileBreadcrumbs.propTypes = {\n className: PropTypes.string,\n folderPath: PropTypes.shape({\n idPath: PropTypes.string.isRequired,\n namePath: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nMobileBreadcrumbs.defaultProps = {};\n\nexport default MobileBreadcrumbs;\n","import { lighten } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shadows, spacing, transitions }) =>\n createStyles({\n root: {\n zIndex: 10,\n position: 'sticky',\n top: `calc(100% - ${spacing(7)}px)`,\n left: 0,\n marginBottom: spacing(-7),\n display: 'flex',\n justifyContent: 'flex-end',\n transform: `translateX(${spacing(0.5)}px) translateY(${spacing(0.5)}px)`,\n [breakpoints.up('xs')]: {\n transform: 'none',\n },\n },\n button: {\n width: spacing(7),\n height: spacing(7),\n backgroundColor: palette.primary.main,\n color: palette.primary.contrastText,\n borderRadius: '50%',\n transition: transitions.create(['background-color', 'box-shadow', 'color', 'opacity'], {\n duration: transitions.duration.short,\n }),\n '&:hover': {\n backgroundColor: lighten(palette.primary.main, 0.075),\n boxShadow: shadows[6],\n },\n '&:focus, &:active': {\n backgroundColor: palette.primary.dark,\n boxShadow: shadows[15],\n },\n '&[disabled]': {\n backgroundColor: palette.action.disabledBackground,\n color: palette.action.disabled,\n },\n },\n item: {\n paddingLeft: spacing(2),\n paddingRight: spacing(2),\n },\n listItem: {\n minHeight: spacing(10),\n '&:not(:hover):not(:focus)': {\n '& $listItemText': {\n color: palette.text.primary,\n },\n },\n },\n listItemIcon: {\n marginRight: spacing(2),\n marginTop: -22,\n },\n listItemText: {\n whiteSpace: 'normal',\n lineHeight: 1.3,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n listItemSecondaryAction: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-end',\n right: spacing(2),\n },\n textDescription: {\n marginTop: spacing(0.5),\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport {\n ButtonBase,\n Drawer,\n List,\n ListItemIcon,\n ListItemText,\n MenuItem,\n Typography,\n useTheme,\n} from '@material-ui/core';\nimport { MobileBottomMenuList } from 'src/components';\nimport {\n CertificateIcon,\n FileEdit as EsignIcon,\n FilesWithShield as DriveIcon,\n Plus as AddIcon,\n} from 'src/components/CustomIcon';\nimport { TemplateDocumentType } from 'src/models/documents.model';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { CreateNewFolderOutlined } from '@material-ui/icons';\nimport AddNewFolderModal from 'src/components/AddNewFolderModal/AddNewFolderModal';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { RootState } from 'src/redux/reducers';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { useHistory } from 'react-router-dom';\nimport SubscriptionModal from 'src/components/SelectTemplateDropdown/SubscriptionModal';\nimport { useStyles } from './styles';\n\nconst SpeedDial = (): JSX.Element => {\n const dispatch = useDispatch();\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n const { palette } = useTheme();\n const [addNewFolderDialogOpen, setAddNewFolderDialogOpen] = useState(false);\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const {\n workspaceWorkflows,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } = useSelector((state: any) => state.identityStore, undefined);\n const [\n subscriptionModalProduct,\n setSubscriptionModalProduct,\n ] = useState(null);\n const { currentFolderId } = useSelector((state: RootState) => state.documentsStore, undefined);\n const history = useHistory();\n const classes = useStyles();\n const handleToggle = {\n close: () => {\n setOpen(false);\n },\n open: () => {\n setOpen(true);\n },\n };\n\n const options = [\n {\n label: t('selectTemplate.signedDocument.title'),\n description: t('selectTemplate.signedDocument.description'),\n icon: ,\n value: TemplateDocumentType.DOCUMENT_TO_BE_SIGNED,\n },\n {\n label: t('selectTemplate.durableMedium.title'),\n description: t('selectTemplate.durableMedium.description'),\n icon: ,\n value: TemplateDocumentType.DURABLE_MEDIA,\n },\n {\n label: t('selectTemplate.certificate.title'),\n description: t('selectTemplate.certificate.description'),\n icon: ,\n value: TemplateDocumentType.CERTIFICATES,\n },\n ];\n const renderButton = () => (\n \n \n \n );\n\n const onOptionClick = (value: TemplateDocumentType) => {\n if (!workspaceWorkflows.includes(value)) {\n setSubscriptionModalProduct(value);\n } else {\n const slugTemplate = value.toLowerCase().replaceAll('_', '-');\n history.push(`/document-creator/${slugTemplate}`);\n }\n setOpen(false);\n };\n\n useEffect(() => {\n if (workspaceId && open) {\n dispatch(identityActions.getWorkspacePermissions(workspaceId));\n dispatch(identityActions.fetchWorkspaceWorkflows(workspaceId));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId, open]);\n\n return (\n
    \n {renderButton()}\n \n \n \n {\n setAddNewFolderDialogOpen(true);\n handleToggle.close();\n }}\n >\n \n \n \n\n {t('sideBar.newFolder')}\n \n {options.map((option, index) => (\n {\n onOptionClick(option.value);\n }}\n >\n {option.icon && (\n {option.icon}\n )}\n \n {option.label}\n \n {option.description}\n \n \n \n ))}\n \n \n {addNewFolderDialogOpen && (\n setAddNewFolderDialogOpen(false)}\n onChange={(newFolderName) => {\n dispatch(documentsActions.createFolder(workspaceId, currentFolderId, newFolderName));\n setAddNewFolderDialogOpen(false);\n }}\n />\n )}\n {subscriptionModalProduct && (\n setSubscriptionModalProduct(null)}\n />\n )}\n
    \n );\n};\n\nexport default SpeedDial;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(({ custom, palette, spacing, breakpoints }) =>\n createStyles(\n {\n title: {\n padding: spacing(1.5, 0, 3.5),\n fontSize: 16,\n },\n root: {\n '& *': {\n userSelect: 'none',\n '-webkit-user-select': 'none !important' /* Chrome, Opera, Safari */,\n '-moz-user-select': 'none !important' /* Firefox 2+ */,\n '-ms-user-select': 'none !important' /* IE 10+ */,\n },\n },\n datePickerRoot: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: custom.breadcrumbsMenuHeight,\n position: 'sticky',\n top: 0,\n left: 0,\n zIndex: 2,\n backgroundColor: palette.background.paper,\n '&:before': {\n content: \"''\",\n display: 'block',\n position: 'absolute',\n top: spacing(-2),\n bottom: 0,\n left: spacing(-2),\n right: spacing(-2),\n backgroundColor: 'inherit',\n },\n '& > *': {\n position: 'relative',\n },\n },\n header: {\n position: 'sticky',\n left: 0,\n backgroundColor: palette.background.paper,\n zIndex: 1,\n top: -16,\n },\n loader: {\n position: 'absolute',\n },\n noDocumentsBanner: {\n '& img': {\n [breakpoints.up('md')]: {\n marginTop: custom.breadcrumbsMenuHeight + spacing(1),\n },\n },\n },\n },\n { index: 0 }\n )\n);\n","import { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport ContactHelper from '../../helpers/contactHelper';\nimport documentsActions from '../../redux/actions/documents.actions';\nimport usePrevious from '../../helpers/hooks/usePrevious';\n\nconst DocumentCreatorWebsocket = ({ sortKey, sortOrder }) => {\n const ws = useRef(null);\n const history = useHistory();\n const dispatch = useDispatch();\n const { currentIdentity } = useSelector((state) => state.identityStore, undefined);\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n const { t } = useTranslation();\n const prevState = usePrevious({\n workspaceId,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onWebSocketMessage = (message) => {\n if (message.type === 'RESULT') {\n switch (message.code) {\n case 'FOLDER_CREATED': {\n dispatch(documentsActions.setSelectedFolders([message.data.result.id]));\n history.push('/drive');\n\n break;\n }\n case 'DOCUMENT_CREATED':\n dispatch(\n documentsActions.websocketCreateDocument(message.data.result, sortKey, sortOrder)\n );\n break;\n case 'DOCUMENT_UPDATED':\n if (ContactHelper.checkIfUserBelongsToDocument(message.data.result)) {\n dispatch(\n documentsActions.websocketUpdateDocument(message.data.result, sortKey, sortOrder)\n );\n } else {\n dispatch(documentsActions.websocketDeleteDocument(message.data.result));\n }\n break;\n case 'DOCUMENT_DELETED':\n dispatch(documentsActions.websocketDeleteDocument(message.data.result));\n break;\n default:\n console.warn(`Unknown code [${message.code}]`, message);\n break;\n }\n } else if (message.type === 'ERROR') {\n switch (message.code) {\n default:\n // eslint-disable-next-line no-case-declarations\n const resultCode = message?.data?.result?.code;\n // eslint-disable-next-line no-case-declarations\n const messagePart = resultCode ? `_${resultCode}` : '';\n\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n t('snackbars.common.errorTitle'),\n t(`drivePage.action.error.${message.code}${messagePart}`)\n )\n );\n break;\n }\n } else {\n console.warn(`Unknown action type [${message.type}]`, message);\n }\n };\n\n useEffect(() => {\n if (workspaceId !== prevState?.workspaceId) {\n ws.current = WebSocketHelper.subscribe(\n 'document-indexing-service',\n `workspaces/${workspaceId}`,\n (message) => {\n onWebSocketMessage(message);\n }\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId, prevState]);\n\n useEffect(\n () => () => {\n WebSocketHelper.unsubscribe(ws.current);\n },\n []\n ); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nDocumentCreatorWebsocket.propTypes = {\n sortKey: PropTypes.string,\n sortOrder: PropTypes.string,\n};\n\nexport default DocumentCreatorWebsocket;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Typography, useMediaQuery } from '@material-ui/core';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { DataTable, FullPageLoader, NoDocumentsBanner } from 'src/components';\nimport { SpeedDial } from 'src/pages/DrivePage/subcomponents';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useStyles } from './styles';\nimport RecentPageWebsocket from './RecentPageWebsocket';\nimport documentsActions from '../../redux/actions/documents.actions';\nimport { FileColsConfig } from '../../helpers/fileAndFolderColsConfig';\nimport usePrevious from '../../helpers/hooks/usePrevious';\nimport ContactHelper from '../../helpers/contactHelper';\nimport { IdentitySelector } from '../../redux/selectors/identity.selector';\n\nconst RecentPage = () => {\n const filesTableTitleRef = useRef(null);\n const classes = useStyles();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const {\n fetchDocumentsStatus,\n documents,\n hasMoreDocuments,\n defaultSortKey,\n defaultSortOrder,\n currentFolderId,\n } = useSelector((state) => state.documentsStore, undefined);\n\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n const { t } = useTranslation();\n const history = useHistory();\n const dispatch = useDispatch();\n const [sortKey, setSortKey] = useState(defaultSortKey);\n const [sortOrder, setSortOrder] = useState(defaultSortOrder);\n const [page, setPage] = useState(0);\n const filesColConfig = FileColsConfig(t, false, false, false);\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n const hasAnyDocument = documents.length > 0;\n const filesPageLimit = 40;\n const iconWidth = 40;\n const prevState = usePrevious({\n sortKey,\n sortOrder,\n page,\n documents,\n });\n\n const isLoadingFiles = fetchDocumentsStatus === RequestStatus.PENDING;\n const allLoaded = !isLoadingFiles;\n\n const goToDocument = (row) => {\n if (row?.documentType.includes('dsl')) {\n history.push(`/certificate/${row.id}`);\n } else {\n history.push(`/document/${row.id}`);\n }\n };\n\n const onLoadMoreFiles = () => {\n const isLoadingMoreFiles = fetchDocumentsStatus === RequestStatus.PENDING;\n\n if (!isLoadingMoreFiles && hasMoreDocuments && !isLoadingMore) {\n setPage(page + 1);\n setIsLoadingMore(true);\n }\n };\n\n const loadFilesRows = useCallback(() => {\n if (workspaceId)\n dispatch(\n documentsActions.fetchAnyDocuments(\n workspaceId,\n filesPageLimit,\n page * filesPageLimit,\n 'updatedAt',\n 'DESC',\n page > 0,\n 'updatedAt'\n )\n );\n }, [page, workspaceId, dispatch]);\n\n useEffect(() => {\n localStorage.setItem('lastMainPage', 'recent');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (\n documents.length > 0 &&\n prevState &&\n (prevState?.sortKey !== sortKey || prevState?.sortOrder !== sortOrder)\n ) {\n loadFilesRows();\n }\n }, [prevState, sortKey, sortOrder, documents, loadFilesRows]);\n\n useEffect(() => {\n if (prevState && prevState?.page !== page) {\n loadFilesRows();\n }\n }, [prevState, page, loadFilesRows]);\n\n useEffect(() => {\n loadFilesRows();\n dispatch(documentsActions.getFolderTree(workspaceId, 'root'));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId]);\n\n useEffect(() => {\n if (\n documents &&\n JSON.stringify(documents) !== JSON.stringify(prevState?.documents) &&\n documents.length > 0\n ) {\n const missingContacts = [];\n documents.forEach((document) => {\n const matchedIdentity = ContactHelper.getEntityData(document.author);\n if (!matchedIdentity && !ContactHelper.checkIfIsInProgress(document.author)) {\n missingContacts.push(document.author);\n }\n });\n if (missingContacts.length > 0) {\n ContactHelper.addContactsToQueue(missingContacts);\n }\n setIsLoadingMore(false);\n }\n }, [documents, prevState]);\n\n // Set storage current folder Id\n useEffect(() => {\n if (currentFolderId) {\n localStorage.setItem('currentFolderId', currentFolderId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId, currentFolderId]);\n\n return (\n <>\n \n {allLoaded && smallScreen && }\n \n {t('sideBar.recent')}\n \n
    \n \n {t('drivePage.documentsTable.title')}\n \n {hasAnyDocument && filesColConfig && (\n {\n if (smallScreen) {\n goToDocument(row);\n }\n }}\n onDblClick={(row) => {\n if (!smallScreen) {\n goToDocument(row);\n }\n }}\n onLongPress={() => undefined}\n sortBy={sortKey}\n sortOrder={sortOrder}\n onChangeSort={({ sortOrder, sortKey }) => {\n setSortKey(sortKey);\n setSortOrder(sortOrder);\n setPage(0);\n }}\n isLoading={isLoadingFiles}\n isLoadingMore={isLoadingFiles}\n hasMoreItems={hasMoreDocuments} // TODO: remove !\n paginationType=\"infinite\"\n defaultIcon=\"file\"\n smallScreen={smallScreen}\n disableHeader={smallScreen}\n onLoadMore={() => {\n onLoadMoreFiles();\n }}\n noItems={{\n label: t('drivePage.documentsTable.noItems'),\n }}\n />\n )}\n
    \n\n {allLoaded && !hasAnyDocument && (\n \n )}\n\n \n \n );\n};\n\nexport default RecentPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Hidden } from '@material-ui/core';\nimport { ContentHeader } from 'src/components';\n\nconst ContentHeading = ({ children, subtitle }) => (\n \n {children}\n \n);\n\nContentHeading.propTypes = {\n children: PropTypes.node,\n subtitle: PropTypes.string,\n};\n\nexport default ContentHeading;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {},\n searchButton: {\n [breakpoints.up('sm')]: {\n minWidth: 210,\n },\n [breakpoints.down('sm')]: {\n marginBottom: spacing(2),\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Hidden } from '@material-ui/core';\nimport { ContentHeader, ExtendedGrid } from 'src/components';\nimport { useStyles } from './styles';\n\nconst HeaderAndButton = ({ children, subtitle, onButtonClick, buttonLabel, smallScreen }) => {\n const classes = useStyles();\n return (\n \n \n \n {children}\n \n \n \n \n {buttonLabel}\n \n \n \n );\n};\n\nHeaderAndButton.propTypes = {\n children: PropTypes.node,\n subtitle: PropTypes.string,\n onButtonClick: PropTypes.func,\n buttonLabel: PropTypes.string,\n smallScreen: PropTypes.bool,\n};\n\nexport default HeaderAndButton;\n","import { createStyles, makeStyles } from '@material-ui/core';\nimport { lighten } from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, transitions }) =>\n createStyles({\n invitedChip: {\n color: palette.info.main,\n backgroundColor: lighten(palette.info.main, 0.9),\n marginLeft: 6,\n order: 2,\n\n [breakpoints.down('md')]: {\n maxWidth: 'fit-content',\n marginLeft: 0,\n marginBottom: 4,\n order: 0,\n },\n },\n deletedChip: {\n color: palette.error.main,\n background: lighten(palette.error.main, 0.9),\n marginLeft: 6,\n order: 2,\n\n [breakpoints.down('md')]: {\n maxWidth: 'fit-content',\n marginLeft: 0,\n marginBottom: 4,\n order: 0,\n },\n },\n textWrapper: {\n paddingLeft: spacing(2),\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n },\n titleWrapper: {\n display: 'flex',\n\n [breakpoints.down('md')]: {\n display: 'grid',\n '& p': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n },\n },\n root: {},\n listItemContainer: {\n [breakpoints.down('md')]: {\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n },\n listItemRoot: {\n color: palette.text.primary,\n padding: spacing(2, 0),\n [breakpoints.up('md')]: {\n '&:first-child': {\n paddingTop: 0,\n },\n '&:last-child': {\n paddingBottom: 0,\n },\n },\n '&:hover': {\n color: 'inherit',\n '& $actionButton': {\n color: palette.text.primary,\n },\n '& $colorOnHover, & $actionButtonIcon': {\n color: `${palette.primary.main} !important`,\n },\n },\n },\n listItemDeleted: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n userDataWrapper: {\n display: 'flex',\n alignItems: 'center',\n transition: transitions.create(['color'], {\n duration: transitions.duration.short,\n }),\n },\n actionButtonsWrapper: {\n textAlign: 'right',\n marginLeft: 'auto',\n\n [breakpoints.down('md')]: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n },\n },\n actionButton: {\n paddingLeft: spacing(1.25),\n paddingRight: spacing(1.25),\n },\n actionButtonIcon: {\n transition: 'inherit',\n color: `${palette.text.secondary} !important`,\n },\n mobileActionButtonWrapper: {\n display: 'flex',\n flexDirection: 'column',\n right: spacing(-1),\n },\n membersCell: {\n display: 'flex',\n alignItems: 'center',\n '& > *:first-child': {\n minWidth: spacing(2.5),\n [breakpoints.up('md')]: {\n minWidth: spacing(3),\n },\n },\n '& > *:not(:last-child)': {\n marginRight: spacing(0.5),\n [breakpoints.up('md')]: {\n marginRight: spacing(1),\n },\n },\n },\n }),\n { index: 0 }\n);\n","import React, { useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport {\n Button,\n Fab,\n ListItem,\n ListItemIcon,\n ListItemSecondaryAction,\n Menu,\n MenuItem,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport { Avatar, AvatarAndTextItem, AvatarGroup, ExtendedGrid } from 'src/components';\nimport { MoreHor as ActionsIcon } from 'src/components/CustomIcon';\nimport { useStyles } from '../styles';\n\nconst GroupItem = ({ item, actions, smallScreen }) => {\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState(null);\n const classes = useStyles();\n const { groupId, name } = item;\n const workspaceGroups = useSelector((state) => state.identityStore.workspaceGroups);\n const groupMembers = useMemo(() => {\n if (workspaceGroups?.length) {\n const groupIndex = workspaceGroups.findIndex((type) => type.info.groupId === groupId);\n return workspaceGroups[groupIndex]?.members || [];\n }\n return [];\n }, [groupId, workspaceGroups]);\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n return (\n \n \n \n \n \n\n \n
    \n {!smallScreen && (\n {groupMembers?.filter((member) => member.active).length || 0}\n )}\n \n {groupMembers.map((member, index) => {\n const { identityId, name, active } = member;\n return (\n active && (\n \n {name}\n \n )\n );\n })}\n \n
    \n
    \n {!smallScreen && (\n \n
    \n {actions.map(\n (action, index) =>\n action.showButton && (\n \n {action.name}\n \n )\n )}\n
    \n
    \n )}\n
    \n\n {smallScreen && (\n \n \n \n \n \n \n\n \n {actions.map((action, index) => (\n {\n handleClose();\n action.onClick();\n }}\n >\n {action.icon}\n {action.name}\n \n ))}\n \n \n )}\n
    \n );\n};\n\nGroupItem.propTypes = {\n item: PropTypes.shape({\n groupId: PropTypes.string,\n name: PropTypes.string,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n name: PropTypes.string,\n onClick: PropTypes.func,\n })\n ),\n smallScreen: PropTypes.bool,\n};\n\nexport default GroupItem;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n root: {},\n searchField: {\n backgroundColor: palette.background.paper,\n },\n clearIcon: {\n color: palette.text.disabled,\n cursor: 'pointer',\n },\n searchAdornmentIcon: {\n color: palette.text.disabled,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Box, CircularProgress, InputAdornment, TextField } from '@material-ui/core';\nimport { ClearOutlined } from '@material-ui/icons';\nimport { ContentContainer } from 'src/components';\nimport { Search as SearchIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst Search = ({\n className: classNameProp,\n handleSetSearchTerm,\n inputLabel,\n valueInput,\n loading,\n}) => {\n const classes = useStyles();\n return (\n \n handleSetSearchTerm(event.target.value)}\n className={classes.searchField}\n InputProps={{\n endAdornment: (\n \n {loading && }\n {valueInput.length > 0 ? (\n handleSetSearchTerm('')}\n className={classes.clearIcon}\n position=\"end\"\n >\n \n \n ) : (\n \n \n \n )}\n \n ),\n }}\n />\n \n );\n};\n\nSearch.propTypes = {\n className: PropTypes.string,\n handleSetSearchTerm: PropTypes.func,\n inputLabel: PropTypes.string,\n valueInput: PropTypes.string,\n loading: PropTypes.bool,\n};\n\nexport default Search;\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button,\n ListItem,\n Theme,\n useMediaQuery,\n Grid,\n Tooltip,\n Chip,\n Typography,\n Fab,\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { Delete as DeleteIcon } from 'src/components/CustomIcon';\nimport { WorkspaceUser } from 'src/models/workspaceUser.model';\nimport { AvatarWithBadge } from 'src/components';\nimport { RegexFormulas } from 'src/helpers/regex';\nimport { useStyles } from '../styles';\n\ntype UserItemProps = {\n user: WorkspaceUser;\n onDeleteClick: () => void;\n canDelete: boolean;\n};\n\nconst UserItem = ({ user, onDeleteClick, canDelete }: UserItemProps): JSX.Element => {\n const { t } = useTranslation();\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n const classes = useStyles();\n const isInvited = user.identityId === undefined;\n const isDeleted = !(user.active || user.identityId === undefined);\n\n const avatarSrc = useMemo(\n () =>\n user.identityId && RegexFormulas.uuidV4.test(user.identityId)\n ? `${process.env.REACT_APP_AVATAR_URL}/identity/${user.identityId}?kind=SMALL`\n : null,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n const userMail = user.name && user.name !== user.email ? user.email : undefined;\n return (\n \n \n \n \n {user.name}\n \n
    \n
    \n {isInvited && (\n ('workspacePage.users.sentInvitationTooltip')}>\n ('common.invitationByMail')}\n />\n \n )}\n {isDeleted && (\n ('workspacePage.users.deletedInvitationTooltip')}>\n ('common.removed')}\n />\n \n )}\n {user.name || user.email}\n
    \n\n {userMail && (\n \n {userMail}\n \n )}\n
    \n
    \n {!smallScreen && canDelete && (\n
    \n }\n classes={{\n root: classes.actionButton,\n endIcon: classes.actionButtonIcon,\n }}\n onClick={onDeleteClick}\n >\n {t('common.delete')}\n \n
    \n )}\n {smallScreen && canDelete && (\n \n \n \n )}\n
    \n \n );\n};\n\nexport default UserItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { SmallContentWithScrollbar, AvatarUpload } from 'src/components';\n\nconst AvatarEdit = (props) => {\n const { updateBasicData, isLoading } = props;\n\n const handleUpdate = (value) => {\n updateBasicData('avatar', value);\n };\n\n return (\n \n \n \n );\n};\n\nAvatarEdit.propTypes = {\n updateBasicData: PropTypes.func,\n isLoading: PropTypes.bool,\n};\n\nexport default AvatarEdit;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport avatarActions from 'src/redux/actions/avatar.actions';\nimport { ConfirmDialog } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst AvatarDelete = ({ open, onClose }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const deleteUserAvatarRequestStatus = useSelector(\n (state) => state.avatarStore.deleteUserAvatarRequestStatus\n );\n\n const isPending = deleteUserAvatarRequestStatus === RequestStatus.PENDING;\n\n return (\n {\n dispatch(avatarActions.deleteUserAvatar(onClose));\n }}\n isLoading={isPending}\n actionCancel={onClose}\n />\n );\n};\n\nAvatarDelete.propTypes = {\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func,\n};\n\nexport default AvatarDelete;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, TextField, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\nimport { SmallContentWithScrollbar } from 'src/components';\n\nconst UsernameEdit = (props) => {\n const { username, updateBasicData } = props;\n const { t } = useTranslation();\n\n const handleUpdate = () => {\n updateBasicData('username', values.username);\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(handleUpdate, validate, {\n username,\n });\n\n return (\n {t('userConfigurationPage.basic.usernamePage.title')}}\n endContent={\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n 0}\n helperText={errors.username}\n />\n \n );\n};\n\nUsernameEdit.propTypes = {\n username: PropTypes.string,\n updateBasicData: PropTypes.func,\n};\n\nexport default UsernameEdit;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n content: {\n '& > *:not(:last-child)': {\n marginBottom: spacing(2),\n },\n },\n inputPassword: {\n paddingRight: 0,\n },\n passwordMeter: {\n position: 'relative',\n marginTop: spacing(1),\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, IconButton, InputAdornment, TextField } from '@material-ui/core';\nimport { Visibility, VisibilityOff } from 'src/components/CustomIcon';\nimport { PasswordMeter, SmallContentWithScrollbar } from 'src/components';\nimport { useTranslation } from 'react-i18next';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\nimport { useStyles } from './styles';\n\nconst PasswordEdit = ({ updateBasicData }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const [oldPasswordVisible, setOldPasswordVisible] = useState(false);\n const [newPasswordVisible, setNewPasswordVisible] = useState(false);\n const [confirmPasswordVisible, setConfirmPasswordVisible] = useState(false);\n\n const handleUpdate = () => {\n updateBasicData('password', {\n oldPassword: values.oldPassword,\n newPassword: values.newPassword,\n });\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(handleUpdate, validate, {\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n });\n\n return (\n \n {t('userConfigurationPage.basic.passwordPage.button')}\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n classes={{ content: classes.content }}\n >\n 0}\n helperText={errors.oldPassword}\n type={oldPasswordVisible ? 'text' : 'password'}\n value={values.oldPassword || ''}\n onChange={handleChange}\n InputProps={{\n classes: { root: classes.inputPassword },\n endAdornment: (\n \n setOldPasswordVisible(!oldPasswordVisible)}>\n {oldPasswordVisible ? : }\n \n \n ),\n }}\n />\n\n
    \n 0}\n helperText={errors.newPassword}\n type={newPasswordVisible ? 'text' : 'password'}\n value={values.newPassword || ''}\n onChange={handleChange}\n InputProps={{\n classes: { root: classes.inputPassword },\n endAdornment: (\n \n setNewPasswordVisible(!newPasswordVisible)}>\n {newPasswordVisible ? : }\n \n \n ),\n }}\n />\n
    \n \n
    \n
    \n\n 0}\n helperText={errors.confirmPassword}\n type={confirmPasswordVisible ? 'text' : 'password'}\n value={values.confirmPassword || ''}\n onChange={handleChange}\n InputProps={{\n classes: { root: classes.inputPassword },\n endAdornment: (\n \n setConfirmPasswordVisible(!confirmPasswordVisible)}\n >\n {confirmPasswordVisible ? : }\n \n \n ),\n }}\n />\n \n );\n};\n\nPasswordEdit.propTypes = {\n updateBasicData: PropTypes.func,\n};\n\nexport default PasswordEdit;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette }) =>\n createStyles({\n adornmentContainer: {\n position: 'absolute',\n width: 24,\n height: 24,\n top: 12,\n right: 12,\n },\n validIcon: {\n color: palette.success.main,\n },\n invalidIcon: {\n color: palette.error.main,\n },\n }),\n { index: 0 }\n);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport PhoneInput from 'react-phone-input-2';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport { Success as SuccessIcon, Alert as ErrorIcon } from 'src/components/CustomIcon';\nimport parsePhoneNumber from 'libphonenumber-js/mobile';\nimport 'react-phone-input-2/lib/material.css';\nimport './react-phone.css';\nimport { useStyles } from './styles';\n\n// TODO: move validation logic into formValidationRules\nconst PhoneEdit = ({ updateBasicData }) => {\n const { i18n, t } = useTranslation();\n const classes = useStyles();\n const { language } = i18n;\n const [updatedPhone, setUpdatedPhone] = useState('');\n const [phoneCountry, setPhoneCountry] = useState('');\n const [initialCountry, setInitialCountry] = useState('');\n const [isPhoneValid, setIsPhoneValid] = useState(false);\n const [formSubmitted, setFormSubmitted] = useState(false);\n\n useEffect(() => {\n if (language === 'en') {\n setInitialCountry('gb');\n } else {\n setInitialCountry(language);\n }\n }, [language]);\n\n const handleInputChange = (value, country) => {\n setUpdatedPhone(value);\n setPhoneCountry(country);\n if (country.countryCode) {\n const test = parsePhoneNumber(value, country.countryCode.toUpperCase());\n if (test && test.isValid()) {\n setIsPhoneValid(true);\n } else {\n setIsPhoneValid(false);\n }\n }\n };\n\n const validatePhoneNumber = (value, country) => {\n const input = document.getElementsByClassName('form-control')[0];\n let isValid = true;\n if (updatedPhone && updatedPhone.length > 0 && country) {\n const test = parsePhoneNumber(value, country.iso2.toUpperCase());\n if (test) {\n isValid = test.isValid();\n if (!isValid && formSubmitted) {\n input.classList.add('invalid-number-form-submitted');\n }\n if (isValid) {\n input.classList.add('valid-number');\n }\n }\n }\n return isValid;\n };\n\n const splitPrefixFromPhone = () => ({\n phoneNumber: {\n number: updatedPhone.substr(phoneCountry.dialCode.length + 1),\n prefix: `+${phoneCountry.dialCode}`,\n },\n });\n\n const handleFormSubmit = (e) => {\n e.preventDefault();\n setFormSubmitted(true);\n if (isPhoneValid) {\n updateBasicData('phoneNumber', splitPrefixFromPhone());\n }\n };\n\n return (\n {t('userConfigurationPage.basic.phonePage.title')}}\n endContent={\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleFormSubmit,\n }}\n >\n
    \n setCloseVisible(false)}\n onChange={(val, country) => handleInputChange(`+${val}`, country)}\n enableSearch\n disableSearchIcon\n specialLabel=\"\"\n copyNumbersOnly={false}\n // regions=\"europe\"\n isValid={(val, country) => validatePhoneNumber(`+${val}`, country)}\n // onKeyDown={handleKeyDown}\n />\n {isPhoneValid && (\n
    \n \n
    \n )}\n {!isPhoneValid && formSubmitted && (\n
    \n \n
    \n )}\n
    \n \n );\n};\n\nPhoneEdit.propTypes = {\n phoneNumber: PropTypes.shape({\n prefix: PropTypes.string,\n number: PropTypes.string,\n }),\n updateBasicData: PropTypes.func,\n};\n\nexport default PhoneEdit;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\nimport { Button, TextField, Typography } from '@material-ui/core';\nimport { SmallContentWithScrollbar } from 'src/components';\n\nconst EmailEdit = (props) => {\n const { email, updateBasicData } = props;\n const { t } = useTranslation();\n\n const handleUpdate = () => {\n updateBasicData('email', values.email);\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(handleUpdate, validate, {\n email,\n });\n\n return (\n {t('userConfigurationPage.basic.emailPage.title')}}\n endContent={\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n 0}\n helperText={errors.email}\n />\n \n );\n};\n\nEmailEdit.propTypes = {\n email: PropTypes.string,\n updateBasicData: PropTypes.func,\n};\n\nexport default EmailEdit;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { AvatarAndTextItem, Gap, SmallContentWithScrollbar } from 'src/components';\nimport { Button, Typography, useMediaQuery } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport twoFactorActions from 'src/redux/actions/twoFactor.actions';\nimport identityActions from 'src/redux/actions/identity.actions';\n\nconst AccountDeleteError = ({ onBack }) => {\n const dispatch = useDispatch();\n const ownerIdentities = useSelector((state) => state.identityStore.nonEmptyWorkspaces);\n\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const avatarSize = !smallScreen ? 'large' : 'medium';\n const history = useHistory();\n\n const userData = {\n login: ' - ',\n email: ' - ',\n organisation: ' - ',\n organisationId: ' - ',\n };\n\n const changeWorkspace = (id) =>\n dispatch(\n identityActions.switchWorkspace(id, () =>\n history.push('/workspace-settings/user-management/users')\n )\n );\n\n useEffect(() => {\n setTimeout(() => {\n dispatch(twoFactorActions.closeTwoFactor());\n }, 500);\n }, [dispatch]);\n\n return (\n \n \n {t('userConfigurationPage.basic.deleteErrorPage.title')}\n \n\n \n {t('userConfigurationPage.basic.deleteErrorPage.description')}\n \n \n {ownerIdentities?.length > 0 ? (\n ownerIdentities\n .filter((item) => item.workspace.workspaceId !== userData.organisationId)\n .map((item, index) => (\n {\n changeWorkspace(item.workspace.workspaceId);\n }}\n />\n ))\n ) : (\n \n {t('userDrawer.otherIdentitiesEmpty')}\n \n )}\n \n \n \n );\n};\n\nAccountDeleteError.propTypes = {\n onBack: PropTypes.func,\n};\n\nexport default AccountDeleteError;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, transitions }) =>\n createStyles({\n root: {\n display: 'flex',\n color: palette.text.primary,\n paddingTop: spacing(2),\n paddingBottom: spacing(2),\n '&:first-child': {\n paddingTop: 0,\n },\n '&:last-child': {\n paddingBottom: 0,\n },\n '&:hover': {\n color: 'inherit',\n '& $actionButton': {\n color: palette.text.primary,\n },\n '& $colorOnHover, & $actionButtonIcon': {\n color: `${palette.primary.main} !important`,\n },\n },\n },\n rootContainer: {\n display: 'flex',\n '&:first-child': {\n marginTop: spacing(-2),\n },\n '&:last-child': {\n marginBottom: spacing(-2),\n },\n },\n colorOnHover: {\n transition: transitions.create(['color'], {\n duration: transitions.duration.short,\n }),\n },\n actionButtonsWrapper: {\n textAlign: 'right',\n marginRight: spacing(-1.25),\n [breakpoints.down('md')]: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n },\n },\n actionButton: {\n paddingLeft: spacing(1.25),\n paddingRight: spacing(1.25),\n },\n actionButtonIcon: {\n transition: 'inherit',\n color: `${palette.text.secondary} !important`,\n },\n mobileActionButtonWrapper: {\n position: 'relative',\n top: 0,\n right: spacing(-1),\n transform: 'none',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { Button, ListItem, Typography } from '@material-ui/core';\nimport { ExtendedGrid } from 'src/components';\nimport { PenOutlined as EditIcon, Delete as DeleteIcon } from 'src/components/CustomIcon';\nimport { useStyles } from './styles';\n\nconst BasicItem = ({\n className: classNameProp,\n children,\n label,\n onClick,\n onDeleteClick,\n icon,\n smallScreen,\n alignItems = 'center',\n oneRowMobile = false,\n buttonText,\n}) => {\n const { t } = useTranslation();\n const classes = useStyles();\n return (\n \n \n \n \n {label}\n \n \n \n {children}\n \n\n {!smallScreen && !!onClick && (\n \n
    \n {!!onDeleteClick && (\n }\n classes={{\n root: classes.actionButton,\n endIcon: classes.actionButtonIcon,\n }}\n onClick={onDeleteClick}\n >\n {t('common.delete')}\n \n )}\n }\n classes={{\n root: classes.actionButton,\n endIcon: classes.actionButtonIcon,\n }}\n onClick={onClick}\n >\n {buttonText || t('common.edit')}\n \n
    \n
    \n )}\n \n\n {smallScreen && onClick && (\n
    \n }\n classes={{\n root: classes.actionButton,\n endIcon: classes.actionButtonIcon,\n }}\n onClick={onClick}\n >\n {buttonText || t('common.edit')}\n \n
    \n )}\n \n );\n};\n\nBasicItem.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n icon: PropTypes.node,\n label: PropTypes.string,\n onClick: PropTypes.func,\n onDeleteClick: PropTypes.func,\n smallScreen: PropTypes.bool,\n buttonText: PropTypes.string,\n alignItems: PropTypes.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n oneRowMobile: PropTypes.bool,\n};\n\nexport default BasicItem;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport TwoFactorForm from 'src/components/TwoFactorModal/subcomponents/TwoFactorForm';\nimport authActions from 'src/redux/actions/auth.actions';\nimport { FullScreenDialog } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst ConfirmModal = (props) => {\n const { method, isOpen, handleConfirmDialogClose, onResend } = props;\n const dispatch = useDispatch();\n\n const [hasErrors, setHasErrors] = useState(false);\n const postEmailRequestStatus = useSelector(\n (state) => state.authStore.postEmailRequestStatus,\n undefined\n );\n const postEmailRequestError = useSelector(\n (state) => state.authStore.postEmailRequestError,\n undefined\n );\n const postPhoneRequestStatus = useSelector(\n (state) => state.authStore.postPhoneRequestStatus,\n undefined\n );\n const postPhoneRequestError = useSelector(\n (state) => state.authStore.postPhoneRequestError,\n undefined\n );\n\n const lastSendEmailTimestamp = useSelector(\n (state) => state.authStore.lastSendEmailTimestamp,\n undefined\n );\n const lastSendSmsTimestamp = useSelector(\n (state) => state.authStore.lastSendSmsTimestamp,\n undefined\n );\n\n const emailBeforeConfirmation = useSelector(\n (state) => state.authStore.emailBeforeConfirmation,\n undefined\n );\n const phoneNumberBeforeConfirmation = useSelector(\n (state) => state.authStore.phoneNumberBeforeConfirmation,\n undefined\n );\n\n useEffect(() => {\n if (\n (postEmailRequestStatus === RequestStatus.ERROR &&\n postEmailRequestError === 'CODE_VERIFICATION_FAILED' &&\n method === 'emailConfirm') ||\n (postPhoneRequestStatus === RequestStatus.ERROR &&\n postPhoneRequestError === 'CODE_VERIFICATION_FAILED' &&\n method === 'phoneConfirm')\n ) {\n setHasErrors(true);\n }\n }, [\n postEmailRequestStatus,\n postPhoneRequestStatus,\n postEmailRequestError,\n postPhoneRequestError,\n method,\n ]);\n\n const handleSetCode = (confirmationCode) => {\n if (method === 'emailConfirm') {\n dispatch(authActions.confirmEmail(confirmationCode));\n }\n if (method === 'phoneConfirm') {\n dispatch(authActions.confirmPhoneNumber(confirmationCode));\n }\n };\n\n const handleResend = () => {\n const name = method === 'emailConfirm' ? 'email' : 'phoneNumber';\n const value =\n method === 'emailConfirm' ? emailBeforeConfirmation : phoneNumberBeforeConfirmation;\n onResend(name, value);\n setHasErrors(false);\n };\n\n return (\n \n {method && (\n {\n setHasErrors(false);\n handleSetCode(confirmationCode);\n }}\n onReSend={() => {\n handleResend();\n }}\n onClearErrors={() => {\n setHasErrors(false);\n }}\n />\n )}\n \n );\n};\n\nConfirmModal.propTypes = {\n method: PropTypes.string,\n isOpen: PropTypes.bool,\n handleConfirmDialogClose: PropTypes.func,\n onResend: PropTypes.func,\n};\n\nexport default ConfirmModal;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing, palette }) =>\n createStyles({\n root: {},\n listHeader: {\n minHeight: spacing(3),\n paddingBottom: '0 !important',\n },\n listItemHeader: {\n border: 'none',\n paddingTop: spacing(6),\n paddingBottom: spacing(1),\n '&:first-child': {\n paddingTop: spacing(0),\n },\n },\n fullScreenDialog: {\n minHeight: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n content: {\n width: '100%',\n maxWidth: '388px',\n },\n label: {\n margin: 0,\n position: 'relative',\n right: -4,\n [breakpoints.down('sm')]: {\n right: 0,\n },\n },\n actionButton: {\n [breakpoints.down('sm')]: {\n display: 'flex',\n margin: '0 auto',\n maxWidth: breakpoints.values.xs,\n },\n },\n errorButton: {\n backgroundColor: palette.error.main,\n color: palette.error.contrastText,\n border: `1px solid ${palette.error.main}`,\n\n '&:hover': {\n backgroundColor: palette.error.light,\n },\n '&:focus, &:active': {\n backgroundColor: palette.error.light,\n },\n [breakpoints.down('sm')]: {\n display: 'flex',\n margin: '0 auto',\n maxWidth: breakpoints.values.xs,\n },\n },\n subtitleWrapper: {\n padding: '0 48px 16px',\n },\n }),\n { index: 0 }\n);\n","import React, { ChangeEvent, useState } from 'react';\nimport { Button, MenuItem, Select, Typography } from '@material-ui/core';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport { useTranslation } from 'react-i18next';\nimport { switchLanguageInBrowser } from 'src/helpers/globalUtils';\nimport { useDispatch } from 'react-redux';\nimport authActions from 'src/redux/actions/auth.actions';\n\ntype LanguageEditProps = {\n onClose: () => void;\n};\nconst LanguageEdit = ({ onClose }: LanguageEditProps): JSX.Element => {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const [lang, setLang] = useState(i18n.language);\n const items = ['EN', 'PL'];\n\n const getLanguageIconAndName = (language: string) => {\n switch (language.toLowerCase()) {\n case 'pl':\n return {\n code: 'pl-PL',\n text: 'language.pl-PL.text',\n };\n\n case 'en':\n default:\n return {\n code: 'en-GB',\n text: 'language.en-GB.text',\n };\n }\n };\n const languageItems = items.map((language) => ({\n value: language,\n active: i18n.language.toLocaleUpperCase() === language,\n name: t(getLanguageIconAndName(language).text),\n }));\n\n const changeUserLanguage = (language: string) => {\n dispatch(authActions.patchLanguage(language.toLowerCase()));\n switchLanguageInBrowser(language.toUpperCase());\n onClose();\n };\n\n return (\n {t('userConfigurationPage.basic.languagePage.title')}\n }\n scrollableContent\n hasForm\n formProps={{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSubmit: (e: any) => {\n e.preventDefault();\n changeUserLanguage(lang);\n },\n }}\n size=\"medium\"\n endContent={\n \n }\n >\n ) =>\n setLang(e.target.value as string)\n }\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n }}\n >\n {languageItems.map((language, index) => (\n \n {language.name}\n \n ))}\n \n \n );\n};\n\nexport default LanguageEdit;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport authActions from 'src/redux/actions/auth.actions';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport avatarActions from 'src/redux/actions/avatar.actions';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport {\n Button,\n Card,\n CardContent,\n CircularProgress,\n Grid,\n List,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { Download as DownloadData, Delete as DeleteIcon } from 'src/components/CustomIcon';\nimport {\n Avatar,\n ContentContainer,\n ConfirmDialog,\n ExtendedGrid,\n FullScreenDialog,\n Gap,\n} from 'src/components';\nimport { ContentHeading } from 'src/pages/WorkspaceConfiguration/subcomponents';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport {\n AvatarEdit,\n AvatarDelete,\n UsernameEdit,\n PasswordEdit,\n PhoneEdit,\n EmailEdit,\n AccountDeleteError,\n} from './editDialogs';\nimport { BasicItem } from './subcomponents';\nimport ConfirmModal from '../ConfirmModal/ConfirmModal';\nimport { useStyles } from '../styles';\nimport LanguageEdit from './editDialogs/LanguageEdit/LanguageEdit';\n\nconst Basic = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const [editedSubpage, setEditedSubpage] = useState(null);\n const [deleteAvatarDialogOpen, setDeleteAvatarDialogOpen] = useState(false);\n const [downloadDialogOpen, setDownloadDialogOpen] = useState(false);\n const [deleteAccountDialogOpen, setDeleteAccountDialogOpen] = useState(false);\n const [deleteAccountErrorDialogOpen, setDeleteAccountErrorDialogOpen] = useState(false);\n const [requiredConfirmationMethod, setRequiredConfirmationMethod] = useState(null);\n\n const userProfile = useSelector((state) => state.authStore.userProfile);\n const userProfileRequestStatus = useSelector((state) => state.authStore.userProfileRequestStatus);\n const patchUsernameRequestStatus = useSelector(\n (state) => state.authStore.patchUsernameRequestStatus\n );\n const patchPasswordRequestStatus = useSelector(\n (state) => state.authStore.patchPasswordRequestStatus\n );\n const patchEmailRequestStatus = useSelector((state) => state.authStore.patchEmailRequestStatus);\n const postEmailRequestStatus = useSelector((state) => state.authStore.postEmailRequestStatus);\n const postEmailRequestError = useSelector((state) => state.authStore.postEmailRequestError);\n const patchPhoneRequestStatus = useSelector((state) => state.authStore.patchPhoneRequestStatus);\n const postPhoneRequestStatus = useSelector((state) => state.authStore.postPhoneRequestStatus);\n const postPhoneRequestError = useSelector((state) => state.authStore.postPhoneRequestError);\n const putUserAvatarRequestStatus = useSelector(\n (state) => state.avatarStore.putUserAvatarRequestStatus\n );\n const deleteUserAvatarRequestStatus = useSelector(\n (state) => state.avatarStore.deleteUserAvatarRequestStatus\n );\n const structureIdentity = useSelector((state) => state.identityStore.structure);\n const userAvatar = useSelector((state) => state.avatarStore.userAvatar);\n\n const firstRender = useRef(true);\n\n const availableIdentities = structureIdentity\n ? structureIdentity.filter((structure) => structure.identity.active)\n : structureIdentity;\n\n const prevState = usePrevious({\n putUserAvatarRequestStatus,\n deleteUserAvatarRequestStatus,\n });\n\n const getLanguageIconAndName = (language) => {\n switch (language.toLowerCase()) {\n case 'pl':\n return {\n code: 'pl-PL',\n text: 'language.pl-PL.text',\n };\n\n case 'en':\n default:\n return {\n code: 'en-GB',\n text: 'language.en-GB.text',\n };\n }\n };\n\n useEffect(() => {\n if (firstRender.current) {\n firstRender.current = false;\n if (userProfileRequestStatus === RequestStatus.IDLE) {\n dispatch(authActions.getUserProfile());\n }\n }\n }, [dispatch, userProfileRequestStatus]);\n\n useEffect(() => {\n if (userProfile) {\n dispatch(avatarActions.getUserAvatar(userProfile.userId));\n }\n }, [dispatch, userProfile]);\n\n useEffect(() => {\n if (patchUsernameRequestStatus === RequestStatus.SUCCESS) {\n handleBack();\n dispatch(identityActions.getUserStructure());\n }\n }, [dispatch, patchUsernameRequestStatus]);\n\n useEffect(() => {\n if (\n prevState?.putUserAvatarRequestStatus === RequestStatus.PENDING &&\n putUserAvatarRequestStatus === RequestStatus.SUCCESS\n ) {\n handleBack();\n dispatch(avatarActions.getUserAvatar(userProfile.userId));\n avatarActions.refreshAvatars(\n availableIdentities.map((structure) => structure.identity.identityId),\n 'identity'\n );\n }\n }, [\n dispatch,\n prevState?.putUserAvatarRequestStatus,\n putUserAvatarRequestStatus,\n availableIdentities,\n userProfile,\n ]);\n\n useEffect(() => {\n if (\n prevState?.deleteUserAvatarRequestStatus === RequestStatus.PENDING &&\n deleteUserAvatarRequestStatus === RequestStatus.SUCCESS\n ) {\n dispatch(avatarActions.getUserAvatar(userProfile.userId));\n avatarActions.refreshAvatars(\n availableIdentities.map((structure) => structure.identity.identityId),\n 'identity'\n );\n }\n }, [\n dispatch,\n prevState?.deleteUserAvatarRequestStatus,\n deleteUserAvatarRequestStatus,\n availableIdentities,\n userProfile,\n ]);\n\n useEffect(() => {\n if (patchEmailRequestStatus === RequestStatus.SUCCESS) {\n setRequiredConfirmationMethod('emailConfirm');\n }\n }, [patchEmailRequestStatus]);\n\n useEffect(() => {\n if (\n postEmailRequestStatus === RequestStatus.SUCCESS ||\n (postEmailRequestStatus === RequestStatus.ERROR &&\n postEmailRequestError !== 'CODE_VERIFICATION_FAILED')\n ) {\n setRequiredConfirmationMethod(null);\n handleBack();\n }\n }, [postEmailRequestStatus, postEmailRequestError]);\n\n useEffect(() => {\n if (patchPhoneRequestStatus === RequestStatus.SUCCESS) {\n setRequiredConfirmationMethod('phoneConfirm');\n }\n }, [patchPhoneRequestStatus]);\n\n useEffect(() => {\n if (\n postPhoneRequestStatus === RequestStatus.SUCCESS ||\n (postPhoneRequestStatus === RequestStatus.ERROR &&\n postPhoneRequestError !== 'CODE_VERIFICATION_FAILED')\n ) {\n setRequiredConfirmationMethod(null);\n handleBack();\n }\n }, [postPhoneRequestStatus, postPhoneRequestError]);\n\n useEffect(() => {\n if (patchPasswordRequestStatus === RequestStatus.SUCCESS) {\n handleBack();\n }\n }, [patchPasswordRequestStatus]);\n\n const deleteAvatarDialogToggle = {\n open: () => {\n setDeleteAvatarDialogOpen(true);\n },\n close: () => {\n setDeleteAvatarDialogOpen(false);\n },\n };\n\n const downloadDialogToggle = {\n open: () => {\n setDownloadDialogOpen(true);\n },\n close: () => {\n setDownloadDialogOpen(false);\n },\n };\n\n const deleteAccountDialogToggle = {\n open: () => {\n setDeleteAccountDialogOpen(true);\n },\n close: () => {\n setDeleteAccountDialogOpen(false);\n },\n };\n\n const deleteAccountErrorDialogToggle = {\n open: () => {\n deleteAccountDialogToggle.close();\n setDeleteAccountErrorDialogOpen(true);\n },\n close: () => {\n setDeleteAccountErrorDialogOpen(false);\n },\n };\n\n const handleBack = () => {\n setEditedSubpage(null);\n };\n\n const handleDataUpdate = (name, value) => {\n switch (name) {\n case 'avatar':\n dispatch(avatarActions.updateUserAvatar(value));\n break;\n case 'username':\n dispatch(authActions.updateUsername(value));\n break;\n case 'password':\n dispatch(authActions.updatePassword(value));\n break;\n case 'phoneNumber':\n dispatch(authActions.updatePhoneNumber(value));\n break;\n case 'email':\n dispatch(authActions.updateEmail(value));\n break;\n\n default:\n }\n };\n\n const deleteAccount = () => {\n setTimeout(() => {\n deleteAccountDialogToggle.close();\n }, 500);\n dispatch(authActions.deleteAccount(deleteAccountErrorDialogToggle.open));\n };\n\n const showEditPage = (name) => {\n if (userProfile) {\n setEditedSubpage(name);\n }\n };\n\n const extractHeader = (name) => {\n switch (name) {\n case 'avatar':\n return t('userConfigurationPage.basic.avatarPage.header');\n case 'username':\n return t('userConfigurationPage.basic.usernamePage.header');\n case 'password':\n return t('userConfigurationPage.basic.passwordPage.header');\n case 'phone':\n return t('userConfigurationPage.basic.phonePage.header');\n case 'email':\n return t('userConfigurationPage.basic.emailPage.header');\n case 'language':\n return t('userConfigurationPage.basic.languagePage.header');\n default:\n return '';\n }\n };\n const renderEditPage = (name) => {\n switch (name) {\n case 'avatar':\n return (\n \n );\n case 'username':\n return ;\n case 'password':\n return ;\n case 'phone':\n return (\n \n );\n case 'email':\n return ;\n case 'language':\n return ;\n default:\n return loader();\n }\n };\n\n const loader = () => (\n \n \n \n \n \n );\n\n const renderDownloadButton = () => (\n }\n fullWidth={smallScreen}\n onClick={downloadDialogToggle.open}\n size={smallScreen ? 'large' : 'medium'}\n >\n {smallScreen ? t('common.downloadPersonalData') : t('common.downloadData')}\n \n );\n const renderSummaryPage = () => (\n <>\n \n {t('userConfigurationPage.basic.header')}\n \n\n \n \n \n showEditPage('avatar')}\n onDeleteClick={userAvatar ? deleteAvatarDialogToggle.open : null}\n >\n \n {userProfile?.userName}\n \n \n\n showEditPage('username')}\n >\n \n {userProfile ? userProfile.userName : '-'}\n \n \n\n showEditPage('password')}\n >\n \n ••••••••••••••\n \n \n\n showEditPage('email')}\n >\n \n {userProfile ? userProfile.email : '-'}\n \n \n\n showEditPage('phone')}\n >\n \n \n {userProfile\n ? `(${userProfile.phoneNumber.prefix}) ${userProfile.phoneNumber.number}`\n : '-'}\n \n \n \n\n showEditPage('language')}\n >\n \n {t(getLanguageIconAndName(userProfile.language).text)}\n \n \n \n \n \n\n \n {smallScreen ? (\n renderDownloadButton()\n ) : (\n \n \n \n \n \n {t('userConfigurationPage.basic.personalData')}\n \n \n \n {renderDownloadButton()}\n \n \n \n \n )}\n \n\n \n \n \n \n \n \n \n {t('userConfigurationPage.basic.deleteAccount.title')}\n \n \n \n {t('userConfigurationPage.basic.deleteAccount.description')}\n \n \n \n {smallScreen && }\n \n }\n fullWidth={smallScreen}\n onClick={() => deleteAccountDialogToggle.open()}\n size={smallScreen ? 'large' : 'medium'}\n >\n {t('userConfigurationPage.basic.deleteAccount.button')}\n \n \n \n \n \n \n\n \n\n \n\n \n \n );\n\n return (\n <>\n {renderSummaryPage()}\n \n
    \n
    {renderEditPage(editedSubpage)}
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n setRequiredConfirmationMethod(null)}\n onResend={(name, value) => handleDataUpdate(name, value)}\n />\n \n );\n};\n\nexport default Basic;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {\n '&:not(:last-child)': {\n marginBottom: spacing(1),\n },\n },\n list: {\n [breakpoints.up('md')]: {\n paddingLeft: spacing(4),\n },\n [breakpoints.up('xl')]: {\n paddingLeft: spacing(3),\n },\n },\n selectWrapper: {\n [breakpoints.up('md')]: {\n maxWidth: breakpoints.values.xs,\n },\n },\n actionButton: {\n [breakpoints.down('sm')]: {\n display: 'flex',\n margin: '0 auto',\n maxWidth: breakpoints.values.xs,\n },\n },\n infoWithIcon: {\n display: 'flex',\n alignItems: 'center',\n '& svg': {\n marginRight: spacing(0.75),\n fontSize: 18,\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport {\n Button,\n FormControl,\n FormHelperText,\n List,\n MenuItem,\n Select,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { AvatarAndTextItem, CardCollapseItem, Tag } from 'src/components';\nimport { ImportExport as ExportIcon, Info as InfoIcon } from 'src/components/CustomIcon';\nimport { ItemWrapper } from '../index';\nimport { useStyles } from './styles';\n\nconst Item = ({ item, onExport, openOnStart, disabledEmail }) => {\n const classes = useStyles();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const { date, groups, emails } = item;\n const { name, src: mainImageSrc, ...otherAvatarProps } = item.data;\n\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const handleChangeEmail = (event) => {\n dispatch(identityActions.switchContactEmail(event.target.value));\n };\n\n return (\n \n }\n classes={{ root: classes.root }}\n >\n \n {date && (\n \n \n {date}\n \n \n )}\n\n \n \n \n {emails.map((email, index) => (\n \n {email}\n \n ))}\n \n {disabledEmail && (\n \n \n {t('userConfigurationPage.identity.disabledEmail')}\n \n )}\n \n \n\n \n {groups.map((group, index) => (\n \n {group}\n \n ))}\n \n\n {onExport && (\n \n }\n onClick={onExport}\n fullWidth={smallScreen}\n >\n {smallScreen ? t('userConfigurationPage.identity.item.export') : t('common.export')}\n \n \n )}\n \n \n );\n};\n\nItem.propTypes = {\n item: PropTypes.shape({\n data: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n src: PropTypes.string,\n }),\n date: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.string),\n emails: PropTypes.arrayOf(PropTypes.string),\n }),\n onExport: PropTypes.func,\n openOnStart: PropTypes.bool,\n disabledEmail: PropTypes.bool,\n};\n\nItem.defaultProps = {\n openOnStart: false,\n};\n\nexport default Item;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing }) =>\n createStyles({\n root: {\n color: palette.text.primary,\n padding: spacing(2, 0),\n '&:first-child': {\n paddingTop: 0,\n },\n '&:last-child': {\n paddingBottom: 0,\n },\n '& [class^=\"Tag-root-\"], & + [class*=\"Tag-root-\"], & .tag-item': {\n margin: `1px ${spacing(1)}px 1px 0`,\n },\n },\n listItemContainer: {\n '&:first-child': {\n marginTop: spacing(-2),\n },\n '&:last-child': {\n marginBottom: spacing(-2),\n },\n '& $root': {\n paddingRight: 32,\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ListItem, Typography } from '@material-ui/core';\nimport { ExtendedGrid } from 'src/components';\nimport { useStyles } from './styles';\n\nconst ItemWrapper = ({ children, label, smallScreen, alignItems }) => {\n const classes = useStyles();\n\n return (\n \n \n \n \n {label}\n \n \n \n {children}\n \n \n \n );\n};\n\nItemWrapper.propTypes = {\n children: PropTypes.node,\n label: PropTypes.string,\n smallScreen: PropTypes.bool,\n alignItems: PropTypes.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n};\n\nItemWrapper.defaultProps = {\n alignItems: 'center',\n};\n\nexport default ItemWrapper;\n","import React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { ExtendedGrid } from 'src/components';\nimport { CircularProgress } from '@material-ui/core';\nimport authActions from 'src/redux/actions/auth.actions';\nimport { ContentHeading } from 'src/pages/WorkspaceConfiguration/subcomponents';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { DateTimeFormats, FormatDate } from 'src/helpers/dateTimeFormats';\nimport { Item } from './subcomponents';\n\nconst Identity = () => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const structureStatus = useSelector((state) => state.identityStore.structureStatus, undefined);\n const structure = useSelector((state) => state.identityStore.structure, undefined);\n const currentIdentityId = useSelector(\n (state) => state.identityStore.currentIdentity?.identity.identityId\n );\n\n /**\n * Temporary fetch mail from user profile until identity\n * service will be notified about user profile mail change\n */\n const userProfile = useSelector((state) => state.authStore.userProfile);\n\n useEffect(() => {\n if (!userProfile) {\n dispatch(authActions.getUserProfile());\n }\n }, [dispatch, userProfile]);\n\n const parseIdentityStructure = () =>\n structure.map((identityStructure) => ({\n data: {\n id: identityStructure.identity.identityId,\n name: identityStructure.workspace.name,\n },\n date: (\n \n ),\n emails: [\n identityStructure.identity.contactEmail,\n ...(userProfile.email !== identityStructure.identity.contactEmail\n ? [userProfile.email]\n : []),\n ],\n groups: identityStructure.groups.map((group) => group.name),\n }));\n\n const loader = () => (\n \n \n \n \n \n );\n\n return (\n <>\n \n {t('userConfigurationPage.identity.header')}\n \n\n {structureStatus === RequestStatus.SUCCESS &&\n structure.length > 0 &&\n currentIdentityId &&\n userProfile\n ? parseIdentityStructure().map((item, index) => (\n \n ))\n : loader()}\n \n );\n};\n\nexport default Identity;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport twoFactorConfigConstants from '../constants/twoFactorConfig.constants';\nimport twoFactorService from '../services/twoFactor.service';\nimport snackbarActions from './snackbar.actions';\n\nconst twoFactorConfigActions = {\n getUserTwoFactorConfig,\n changeActiveTwoFactorType,\n deleteTwoFactorType,\n initTwoFactorTypeChange,\n confirmTwoFactorTypeChange,\n clearConfirmTwoFactorStatus,\n clearStore,\n};\n\nfunction getUserTwoFactorConfig() {\n return (dispatch) => {\n dispatch({ type: twoFactorConfigConstants.GET_TWO_FACTOR_CONFIG_REQUEST });\n twoFactorService\n .getUserTwoFactorConfig()\n .then((response) => {\n if (response) {\n dispatch({ type: twoFactorConfigConstants.GET_TWO_FACTOR_CONFIG_SUCCESS, response });\n }\n })\n .catch((error) => {\n dispatch({ type: twoFactorConfigConstants.GET_TWO_FACTOR_CONFIG_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction changeActiveTwoFactorType(type) {\n return (dispatch) => {\n dispatch({ type: twoFactorConfigConstants.CHANGE_TWO_FACTOR_ACTIVE_TYPE_REQUEST });\n twoFactorService\n .changeActiveTwoFactorType(type)\n .then((response) => {\n if (response) {\n dispatch({\n type: twoFactorConfigConstants.CHANGE_TWO_FACTOR_ACTIVE_TYPE_SUCCESS,\n twoFactorActiveMethod: type,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: twoFactorConfigConstants.CHANGE_TWO_FACTOR_ACTIVE_TYPE_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction deleteTwoFactorType(type) {\n return (dispatch) => {\n dispatch({ type: twoFactorConfigConstants.DELETE_TWO_FACTOR_TYPE_REQUEST });\n twoFactorService\n .deleteTwoFactorType(type)\n .then((response) => {\n if (response) {\n dispatch({\n type: twoFactorConfigConstants.DELETE_TWO_FACTOR_TYPE_SUCCESS,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('snackbars.common.success')\n )\n );\n }\n })\n .catch((error) => {\n dispatch({ type: twoFactorConfigConstants.DELETE_TWO_FACTOR_TYPE_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\n\nfunction initTwoFactorTypeChange(type) {\n return (dispatch) => {\n dispatch({ type: twoFactorConfigConstants.INIT_TWO_FACTOR_TYPE_CHANGE_REQUEST });\n twoFactorService\n .initTwoFactorTypeChange(type)\n .then((response) => {\n if (response) {\n dispatch({\n type: twoFactorConfigConstants.INIT_TWO_FACTOR_TYPE_CHANGE_SUCCESS,\n response,\n initTwoFactorMethod: type,\n });\n }\n })\n .catch((error) => {\n dispatch({ type: twoFactorConfigConstants.INIT_TWO_FACTOR_TYPE_CHANGE_ERROR, error });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n });\n };\n}\nfunction confirmTwoFactorTypeChange(type, code) {\n return (dispatch) => {\n dispatch({ type: twoFactorConfigConstants.CONFIRM_TWO_FACTOR_TYPE_CHANGE_REQUEST });\n twoFactorService\n .confirmTwoFactorTypeChange(type, code)\n .then((response) => {\n if (response) {\n dispatch({\n type: twoFactorConfigConstants.CONFIRM_TWO_FACTOR_TYPE_CHANGE_SUCCESS,\n twoFactorActiveMethod: type,\n });\n }\n })\n .catch((error) => {\n dispatch({ type: twoFactorConfigConstants.CONFIRM_TWO_FACTOR_TYPE_CHANGE_ERROR, error });\n if (error.code !== 'CODE_VERIFICATION_FAILED') {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n `${i18n.t('snackbars.common.error')} ${error.code}.`\n )\n );\n }\n });\n };\n}\n\nfunction clearConfirmTwoFactorStatus() {\n return { type: twoFactorConfigConstants.CLEAR_CONFIRM_TWO_FACTOR_TYPE_STATUS };\n}\nfunction clearStore() {\n return { type: twoFactorConfigConstants.CLEAR_STORE };\n}\n\nexport default twoFactorConfigActions;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, shadows, spacing, transitions, typography }) =>\n createStyles({\n root: {\n color: palette.text.primary,\n marginBottom: spacing(2),\n '&:hover': {\n color: 'inherit',\n boxShadow: shadows[12],\n '& $colorOnHover': {\n color: `${palette.primary.main} !important`,\n },\n },\n },\n colorOnHover: {\n transition: transitions.create(['color'], {\n duration: transitions.duration.short,\n }),\n },\n nameBox: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'column',\n flexWrap: 'wrap',\n [breakpoints.up('lg')]: {\n justifyContent: 'flex-start',\n flexDirection: 'row',\n flexWrap: 'unset',\n },\n },\n actionButton: {\n minWidth: 170,\n fontWeight: typography.fontWeightRegular,\n paddingLeft: spacing(1.5),\n paddingRight: spacing(1.5),\n fontSize: '0.925rem',\n margin: `${spacing(0.25)}px`,\n [breakpoints.up('md')]: {\n margin: `${spacing(0.25)}px 0 ${spacing(0.25)}px ${spacing(2)}px`,\n },\n },\n mediumText: {\n fontWeight: typography.fontWeightMedium,\n },\n disabled: {\n // pointerEvents: 'none',\n },\n inActive: {\n opacity: '0.1',\n pointerEvents: 'none',\n },\n icon: {\n height: 24,\n marginRight: spacing(0),\n marginBottom: spacing(1),\n color: palette.greySimple.main,\n [breakpoints.up('md')]: {\n marginRight: spacing(1),\n marginBottom: 0,\n },\n },\n additionalActionButtonsWrapper: {\n display: 'flex',\n justifyContent: 'center',\n marginBottom: spacing(1),\n\n [breakpoints.up('md')]: {\n display: 'inline-flex',\n justifyContent: 'flex-end',\n marginBottom: 0,\n },\n [breakpoints.up('xl')]: {\n marginRight: spacing(1),\n },\n '& $additionalActionButton': {\n [breakpoints.up('lg')]: {\n marginLeft: spacing(0.5),\n },\n [breakpoints.up('xl')]: {\n marginLeft: spacing(1.5),\n },\n },\n },\n additionalActionButton: {\n margin: spacing(0.25, 0),\n paddingLeft: spacing(1.25),\n paddingRight: spacing(1.25),\n },\n additionalActionButtonIcon: {\n transition: 'inherit',\n color: `${palette.text.secondary} !important`,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Card, Typography } from '@material-ui/core';\nimport { ContentContainer, ExtendedGrid } from 'src/components';\nimport clsx from 'clsx';\nimport { useStyles } from './styles';\n\nconst MethodItem = ({\n className: classNameProp,\n icon,\n name,\n header,\n subtitle,\n actionButtonText,\n additionalActions,\n inActive,\n onClick,\n disabled,\n}) => {\n const hasAdditionalActions = !!additionalActions;\n const classes = useStyles();\n return (\n \n \n \n \n
    \n {icon &&
    {icon}
    }\n {name && (\n \n {name}\n \n )}\n
    \n
    \n\n \n {header && (\n \n {header}\n \n )}\n {subtitle && {subtitle}}\n \n\n \n {hasAdditionalActions && (\n
    \n {additionalActions.map((action, index) => (\n \n {action.name}\n \n ))}\n
    \n )}\n \n
    \n \n
    \n \n );\n};\n\nMethodItem.propTypes = {\n className: PropTypes.string,\n inActive: PropTypes.bool,\n icon: PropTypes.node,\n name: PropTypes.string,\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n subtitle: PropTypes.string,\n actionButtonText: PropTypes.string,\n additionalActions: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n name: PropTypes.string,\n onClick: PropTypes.func,\n })\n ),\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n};\n\nMethodItem.defaultProps = {\n inActive: false,\n disabled: false,\n};\n\nexport default MethodItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { EmptyBanner, SmallContentWithScrollbar } from 'src/components';\n\nconst GoogleAuthenticatorDone = ({ nextHandle }) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n );\n};\n\nGoogleAuthenticatorDone.propTypes = {\n nextHandle: PropTypes.func,\n};\n\nexport default GoogleAuthenticatorDone;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport {\n Box,\n Button,\n Card,\n List,\n ListItem,\n Typography,\n createStyles,\n makeStyles,\n} from '@material-ui/core';\nimport {\n ContentContainer,\n QrImage,\n SmallContentWithScrollbar,\n ConfirmDialog,\n} from 'src/components';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n listItem: {\n minHeight: 48,\n [breakpoints.up('md')]: {\n minHeight: 56,\n },\n },\n listItemNumber: {\n minWidth: spacing(3),\n },\n qrImage: {\n margin: `${spacing(2)}px auto`,\n [breakpoints.up('md')]: {\n marginTop: spacing(3),\n },\n },\n }),\n { index: 0 }\n);\n\nconst GoogleAuthenticatorStep1 = ({ nextHandle, qrCode, secret }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n\n const [secretDialogOpen, setSecretDialogOpen] = useState(false);\n\n const steps = [\n t('userConfigurationPage.security.method.googleAuthenticator.step1.list.step1'),\n t('userConfigurationPage.security.method.googleAuthenticator.step1.list.step2'),\n t('userConfigurationPage.security.method.googleAuthenticator.step1.list.step3'),\n ];\n\n return (\n <>\n \n {t('common.configure')}\n \n }\n >\n \n \n \n {steps.map((item, index) => (\n \n \n {index + 1})\n \n \n {item}\n \n \n ))}\n \n \n \n\n \n \n \n \n \n setSecretDialogOpen(false)}\n >\n \n {secret}\n \n \n \n );\n};\n\nGoogleAuthenticatorStep1.propTypes = {\n nextHandle: PropTypes.func,\n qrCode: PropTypes.string,\n secret: PropTypes.string,\n};\n\nexport default GoogleAuthenticatorStep1;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport TwoFactorForm from 'src/components/TwoFactorModal/subcomponents/TwoFactorForm';\nimport { useSelector, useDispatch } from 'react-redux';\nimport twoFactorConfigActions from 'src/redux/actions/twoFactorConfig.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst GoogleAuthenticatorStep2 = (props) => {\n const { nextHandle } = props;\n const dispatch = useDispatch();\n const [hasErrors, setHasErrors] = useState(false);\n\n const confirmTwoFactorTypeChangeRequestStatus = useSelector(\n (state) => state.twoFactorConfig.confirmTwoFactorTypeChangeRequestStatus\n );\n const confirmTwoFactorTypeChangeRequestError = useSelector(\n (state) => state.twoFactorConfig.confirmTwoFactorTypeChangeRequestError\n );\n const initTwoFactorMethod = useSelector((state) => state.twoFactorConfig.initTwoFactorMethod);\n\n useEffect(\n () => () => {\n dispatch(twoFactorConfigActions.clearConfirmTwoFactorStatus());\n },\n [dispatch]\n );\n\n useEffect(() => {\n if (\n confirmTwoFactorTypeChangeRequestStatus === RequestStatus.ERROR &&\n confirmTwoFactorTypeChangeRequestError === 'CODE_VERIFICATION_FAILED'\n ) {\n setHasErrors(true);\n }\n if (confirmTwoFactorTypeChangeRequestStatus === RequestStatus.SUCCESS) {\n nextHandle();\n }\n }, [confirmTwoFactorTypeChangeRequestStatus, confirmTwoFactorTypeChangeRequestError, nextHandle]);\n\n const handleSetCode = (confirmationCode) => {\n dispatch(\n twoFactorConfigActions.confirmTwoFactorTypeChange(initTwoFactorMethod, confirmationCode)\n );\n };\n\n return (\n {\n setHasErrors(false);\n }}\n onSend={(confirmationCode) => {\n handleSetCode(confirmationCode);\n }}\n />\n );\n};\n\nGoogleAuthenticatorStep2.propTypes = {\n nextHandle: PropTypes.func,\n};\n\nexport default GoogleAuthenticatorStep2;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { CircularProgress, Typography, createStyles, makeStyles } from '@material-ui/core';\nimport {\n Delete as DeleteIcon,\n GoogleAuthenticatorColor as GoogleAuthenticatorIcon,\n SmsColor as SmsIcon,\n} from 'src/components/CustomIcon';\nimport { FullScreenDialog } from 'src/components';\nimport twoFactorConfigActions from 'src/redux/actions/twoFactorConfig.actions';\nimport authActions from 'src/redux/actions/auth.actions';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport { ContentHeading } from 'src/pages/WorkspaceConfiguration/subcomponents';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { MethodItem } from '../../subcomponents';\nimport {\n GoogleAuthenticatorDone,\n GoogleAuthenticatorStep1,\n GoogleAuthenticatorStep2,\n} from './editDialogs';\n\nexport const useStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n typoInTypo: {\n marginLeft: spacing(0.5),\n },\n loader: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n }),\n { index: 0 }\n);\n\nconst Security = () => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const classes = useStyles();\n const [editedSubpage, setEditedSubpage] = useState(null);\n\n const twoFactorActiveMethod = useSelector((state) => state.twoFactorConfig.twoFactorActiveMethod);\n const twoFactorConfig = useSelector((state) => state.twoFactorConfig.twoFactorConfig);\n const getTwoFactorConfigRequestStatus = useSelector(\n (state) => state.twoFactorConfig.getTwoFactorConfigRequestStatus\n );\n\n const userProfile = useSelector((state) => state.authStore.userProfile);\n const userProfileRequestStatus = useSelector((state) => state.authStore.userProfileRequestStatus);\n\n const initTwoFactorTypeChangeRequestStatus = useSelector(\n (state) => state.twoFactorConfig.initTwoFactorTypeChangeRequestStatus\n );\n const initTwoFactorMethod = useSelector((state) => state.twoFactorConfig.initTwoFactorMethod);\n const initTwoFactorTypeConfig = useSelector(\n (state) => state.twoFactorConfig.initTwoFactorTypeConfig\n );\n\n const deleteTwoFactorTypeRequestStatus = useSelector(\n (state) => state.twoFactorConfig.deleteTwoFactorTypeRequestStatus\n );\n\n const confirmTwoFactorTypeChangeRequestStatus = useSelector(\n (state) => state.twoFactorConfig.confirmTwoFactorTypeChangeRequestStatus\n );\n\n const prevState = usePrevious({\n initTwoFactorTypeChangeRequestStatus,\n confirmTwoFactorTypeChangeRequestStatus,\n deleteTwoFactorTypeRequestStatus,\n });\n\n const firstRender = useRef(true);\n\n // on mount get 2fa config and user profile (number)\n useEffect(() => {\n if (firstRender.current) {\n firstRender.current = false;\n if (getTwoFactorConfigRequestStatus === RequestStatus.IDLE) {\n dispatch(twoFactorConfigActions.getUserTwoFactorConfig());\n }\n if (userProfileRequestStatus === RequestStatus.IDLE) {\n dispatch(authActions.getUserProfile());\n }\n }\n }, [dispatch, getTwoFactorConfigRequestStatus, userProfileRequestStatus]);\n\n // after delete and change fetch new config\n useEffect(() => {\n if (\n (prevState?.deleteTwoFactorTypeRequestStatus === RequestStatus.PENDING &&\n deleteTwoFactorTypeRequestStatus === RequestStatus.SUCCESS) ||\n (prevState?.confirmTwoFactorTypeChangeRequestStatus === RequestStatus.PENDING &&\n confirmTwoFactorTypeChangeRequestStatus === RequestStatus.SUCCESS)\n ) {\n dispatch(twoFactorConfigActions.clearStore());\n dispatch(twoFactorConfigActions.getUserTwoFactorConfig());\n }\n }, [\n confirmTwoFactorTypeChangeRequestStatus,\n deleteTwoFactorTypeRequestStatus,\n dispatch,\n prevState?.confirmTwoFactorTypeChangeRequestStatus,\n prevState?.deleteTwoFactorTypeRequestStatus,\n ]);\n\n // after init show edited subpage\n useEffect(() => {\n if (\n prevState?.initTwoFactorTypeChangeRequestStatus === RequestStatus.PENDING &&\n initTwoFactorTypeChangeRequestStatus === RequestStatus.SUCCESS\n ) {\n if (initTwoFactorMethod === 'GOOGLE') {\n setEditedSubpage('googleAuthenticator1');\n }\n }\n }, [\n initTwoFactorMethod,\n initTwoFactorTypeChangeRequestStatus,\n prevState?.initTwoFactorTypeChangeRequestStatus,\n ]);\n\n const checkIfTypeConfigured = (type) => {\n const config = twoFactorConfig?.find((config) => config.type === type);\n return !!config;\n };\n\n const renderButtonText = (type) =>\n checkIfTypeConfigured(type)\n ? t('userConfigurationPage.security.method.setAsDefaultMethod')\n : t('common.configure');\n\n const changeTwoFactorType = (type) => {\n if (checkIfTypeConfigured(type)) {\n dispatch(twoFactorConfigActions.changeActiveTwoFactorType(type));\n } else {\n dispatch(twoFactorConfigActions.initTwoFactorTypeChange(type));\n }\n };\n\n const handleBack = () => {\n switch (editedSubpage) {\n case 'googleAuthenticator1':\n setEditedSubpage(null);\n break;\n case 'googleAuthenticator2':\n setEditedSubpage('googleAuthenticator1');\n break;\n default:\n setEditedSubpage(null);\n break;\n }\n };\n\n const editPages = {\n googleAuthenticator1: {\n title: t('userConfigurationPage.security.method.googleAuthenticator.stepsTitle'),\n Component: (\n setEditedSubpage('googleAuthenticator2')}\n secret={initTwoFactorTypeConfig?.secret}\n />\n ),\n },\n googleAuthenticator2: {\n title: t('userConfigurationPage.security.method.googleAuthenticator.stepsTitle'),\n Component: (\n setEditedSubpage('googleAuthenticatorDone')} />\n ),\n },\n googleAuthenticatorDone: {\n title: '',\n Component: (\n {\n handleBack();\n }}\n />\n ),\n },\n };\n\n const googleAuthenticatorActions = [\n {\n icon: ,\n name: t('common.delete'),\n onClick: () => dispatch(twoFactorConfigActions.deleteTwoFactorType('GOOGLE')),\n },\n ];\n\n const renderEditPage = (name) => editPages[name].Component;\n const setTitle = (name) => editPages[name].title;\n\n const renderSummaryPage = () => (\n <>\n \n {t('userConfigurationPage.security.header')}\n \n\n }\n name={t('userConfigurationPage.security.method.googleAuthenticator.title')}\n header={\n twoFactorActiveMethod !== 'GOOGLE' ? (\n t('userConfigurationPage.security.method.googleAuthenticator.description')\n ) : (\n \n {t('common.configured')}\n \n )\n }\n subtitle={\n twoFactorActiveMethod !== 'GOOGLE'\n ? t('userConfigurationPage.security.method.googleAuthenticator.subDescription')\n : t('userConfigurationPage.security.method.googleAuthenticator.descriptionAdded')\n }\n actionButtonText={\n twoFactorActiveMethod === 'GOOGLE'\n ? t('userConfigurationPage.security.method.defaultMethod')\n : renderButtonText('GOOGLE')\n }\n additionalActions={checkIfTypeConfigured('GOOGLE') ? googleAuthenticatorActions : undefined}\n onClick={() => changeTwoFactorType('GOOGLE')}\n disabled={twoFactorActiveMethod === 'GOOGLE'}\n />\n }\n name={t('userConfigurationPage.security.method.sms.title')}\n header={\n <>\n {userProfile\n ? `${userProfile.phoneNumber.prefix} ${userProfile.phoneNumber.number}`\n : '-'}\n \n ({t('common.verified').toLowerCase()})\n \n \n }\n subtitle={t('userConfigurationPage.security.method.sms.subDescription')}\n disabled={twoFactorActiveMethod === 'PHONE'}\n actionButtonText={\n twoFactorActiveMethod === 'PHONE'\n ? t('userConfigurationPage.security.method.defaultMethod')\n : t('userConfigurationPage.security.method.setAsDefaultMethod')\n }\n onClick={() => changeTwoFactorType('PHONE')}\n />\n \n );\n\n const loader = () => (\n
    \n \n
    \n );\n\n const renderContent = () => (twoFactorConfig ? renderSummaryPage() : loader());\n\n return (\n <>\n {renderContent()}\n \n {editedSubpage ? renderEditPage(editedSubpage) : null}\n \n \n );\n};\n\nexport default Security;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing }) =>\n createStyles({\n root: {\n paddingTop: spacing(2.5),\n paddingBottom: spacing(2.5),\n },\n updating: {\n pointerEvents: 'none',\n },\n withSubtitle: {\n [breakpoints.down('sm')]: {\n paddingLeft: spacing(2),\n },\n [breakpoints.up('md')]: {\n '& $title': {\n paddingLeft: spacing(2),\n [breakpoints.up('lg')]: {\n paddingLeft: spacing(3),\n },\n },\n },\n },\n title: {\n [breakpoints.down('sm')]: {\n marginBottom: spacing(2),\n },\n },\n label: {\n margin: 0,\n position: 'relative',\n right: -4,\n [breakpoints.down('sm')]: {\n right: 0,\n },\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport communicationsActions from 'src/redux/actions/communications.actions';\nimport {\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n ListItem,\n Typography,\n} from '@material-ui/core';\nimport { ExtendedGrid } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useStyles } from './styles';\n\nconst NotificationItem = ({\n className: classNameProp,\n item,\n services,\n alignItems,\n subItem,\n smallScreen,\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const classes = useStyles();\n const { notificationTemplate } = item;\n\n const channelUpdatingStatus = useSelector(\n (state) => state.communicationsStore.updateChannelsStatuses[notificationTemplate]\n );\n\n const handleChange = (event, service) => {\n const newProperties = {\n notificationTemplate,\n email: service.type === 'email' ? event.target.checked : item.email,\n sms: service.type === 'sms' ? event.target.checked : item.sms,\n systemMessage: service.type === 'systemMessage' ? event.target.checked : item.systemMessage,\n };\n\n dispatch(\n communicationsActions.updateNotificationChannel(newProperties, service.type, {\n ...item,\n ...newProperties,\n })\n );\n };\n\n const isUpdatePending = channelUpdatingStatus === RequestStatus.PENDING;\n\n return (\n \n \n \n \n \n {t(`userConfigurationPage.notifications.channels.${notificationTemplate}`)}\n \n \n \n\n {services.map((service, index) => (\n \n \n \n handleChange(event, service)}\n name={`${item.notificationTemplate.toLowerCase()}__${service.type}-checkbox`}\n />\n }\n label={\n smallScreen ? {service.title} : null\n }\n />\n \n \n \n ))}\n \n \n );\n};\n\nNotificationItem.propTypes = {\n className: PropTypes.string,\n item: PropTypes.shape({\n createdAt: PropTypes.number,\n updatedAt: PropTypes.number,\n email: PropTypes.bool,\n sms: PropTypes.bool,\n smsCanBeChanged: PropTypes.bool,\n systemMessage: PropTypes.bool,\n systemMessageCanBeChanged: PropTypes.bool,\n notificationTemplate: PropTypes.string,\n }),\n services: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.string,\n title: PropTypes.string,\n })\n ),\n subItem: PropTypes.bool,\n alignItems: PropTypes.oneOf(['left', 'center', 'right']),\n smallScreen: PropTypes.bool,\n};\n\nNotificationItem.defaultProps = {\n subItem: false,\n alignItems: 'center',\n};\n\nexport default NotificationItem;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(({ spacing, palette }) =>\n createStyles({\n listItemHeader: {\n padding: 0,\n },\n listHeader: {\n minHeight: spacing(3),\n },\n title: {\n '&.Mui-expanded': {\n '& button': {\n color: palette.primary.main,\n borderColor: palette.primary.main,\n backgroundColor: palette.common.white,\n },\n },\n },\n list: {\n width: '100%',\n '&:not(:first-child)': {\n paddingTop: spacing(5),\n },\n },\n })\n);\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport communicationsActions from 'src/redux/actions/communications.actions';\nimport { useTranslation } from 'react-i18next';\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Box,\n CircularProgress,\n Fab,\n List,\n ListItem,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { ExtendedGrid } from 'src/components';\nimport { ContentHeading } from 'src/pages/WorkspaceConfiguration/subcomponents';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { ArrowDownSLine as ArrowDownIcon } from 'src/components/CustomIcon';\nimport NotificationItem from './subcomponents/NotificationItem';\nimport { useStyles } from './styles';\n\nconst Notifications = () => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const firstRender = useRef(true);\n const [loading, setLoading] = useState(true);\n\n const services = [\n {\n type: 'email',\n title: t('userConfigurationPage.notifications.services.email'),\n },\n {\n type: 'sms',\n title: t('userConfigurationPage.notifications.services.sms'),\n },\n {\n type: 'systemMessage',\n title: t('userConfigurationPage.notifications.services.systemMessage'),\n },\n ];\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const channels = useSelector((state) => state.communicationsStore.channels, undefined);\n const channelsRequestStatus = useSelector(\n (state) => state.communicationsStore.channelsStatus,\n undefined\n );\n const disabledChannels = [\n 'PROFILE_DELETE_RETENTION',\n 'PROFILE_DELETE_START',\n 'SIGN_ORDER',\n 'CERT_ACTION_INVITATION',\n 'CERT_ACTION_SIGN_INVITATION',\n 'CERT_ACTION_OWNERSHIP_INVITATION',\n 'DOC_ACTION',\n ];\n const filteredChannels = channels.filter(\n (channel) => !disabledChannels.includes(channel.notificationTemplate)\n );\n\n const accountNotifications = filteredChannels.filter(\n (channel) =>\n !channel.notificationTemplate.includes('DOC_') &&\n !channel.notificationTemplate.includes('CERT_ACTION')\n );\n const documentNotifications = filteredChannels.filter((channel) =>\n channel.notificationTemplate.includes('DOC_')\n );\n const certificateNotifications = filteredChannels.filter((channel) =>\n channel.notificationTemplate.includes('CERT_ACTION')\n );\n useEffect(() => {\n if (firstRender.current) {\n firstRender.current = false;\n if (channelsRequestStatus === RequestStatus.IDLE) {\n dispatch(communicationsActions.getUserNotificationChannelsSettings());\n }\n }\n }, [channelsRequestStatus, dispatch]);\n\n useMemo(() => {\n if (channelsRequestStatus === RequestStatus.PENDING) {\n setLoading(true);\n } else {\n setLoading(false);\n }\n }, [channelsRequestStatus]);\n\n const expandIcon = (\n \n \n \n );\n\n const renderHeader = (label, headings = [], alignItems = 'center') => (\n \n \n \n \n {label}\n \n \n {!smallScreen &&\n headings.map((heading, key) => (\n \n {heading.title}\n \n ))}\n \n \n );\n\n return (\n <>\n \n {t('userConfigurationPage.notifications.header')}\n \n \n \n \n {t('userConfigurationPage.notifications.sectionAccountTitle')}\n \n \n \n {loading ? (\n \n \n \n ) : (\n \n {renderHeader(t('userConfigurationPage.notifications.servicesTitle'), services)}\n {channels &&\n accountNotifications.map((channel, index) => (\n \n ))}\n \n )}\n \n \n \n \n \n {t('userConfigurationPage.notifications.sectionDocumentsTitle')}\n \n \n \n {loading ? (\n \n \n \n ) : (\n \n {renderHeader(t('userConfigurationPage.notifications.servicesTitle'), services)}\n {channels &&\n documentNotifications.map((channel, index) => (\n \n ))}\n \n )}\n \n \n\n \n \n \n {t('userConfigurationPage.notifications.sectionCertificatesTitle')}\n \n \n \n {loading ? (\n \n \n \n ) : (\n \n {renderHeader(t('userConfigurationPage.notifications.servicesTitle'), services)}\n {channels &&\n certificateNotifications.map((channel, index) => (\n \n ))}\n \n )}\n \n \n \n );\n};\n\nexport default Notifications;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, spacing, palette }) =>\n createStyles({\n apiKeysHeaderWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: spacing(2),\n [breakpoints.up('md')]: {\n marginBottom: spacing(3),\n },\n [breakpoints.up('lg')]: {\n marginBottom: spacing(5),\n },\n [breakpoints.down('xs')]: {\n width: 'calc(100vw - 32px)',\n },\n },\n dialogTitleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n keysTable: {\n marginBottom: spacing(5),\n [breakpoints.down('xs')]: {\n width: 'calc(100vw - 14px)',\n height: 'calc(100vh - 150px)',\n overflow: 'scroll',\n },\n },\n tableContent: {\n [breakpoints.down('xs')]: {\n minWidth: 600,\n },\n },\n textField: {\n marginBottom: spacing(3),\n },\n date: {\n paddingRight: spacing(1),\n overflowWrap: 'anywhere',\n },\n clickable: {\n cursor: 'pointer',\n paddingRight: spacing(1),\n overflowWrap: 'anywhere',\n '&:hover': {\n color: palette.info.main,\n },\n },\n tableRow: {\n padding: '18px 0',\n '& svg': {\n color: palette.secondary.main,\n },\n '& div': {\n alignItems: 'center',\n display: 'flex',\n },\n '&:not(:last-child)': {\n borderBottom: `1px solid ${palette.divider}`,\n },\n },\n tableHead: {\n padding: '18px 0',\n color: palette.secondary.dark,\n },\n iconColor: {\n color: palette.secondary.main,\n },\n closeIconColor: {\n color: palette.text.secondary,\n },\n partHighlight: {\n fontWeight: 700,\n color: palette.primary.main,\n textDecoration: 'underline',\n },\n permissionInput: {\n marginBottom: spacing(2),\n },\n chip: {\n marginBottom: spacing(1),\n color: palette.primary.main,\n background: '#f2f7ff',\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { FullScreenDialog, SmallContentWithScrollbar, AutocompleteWithChip } from 'src/components';\nimport { Button, TextField } from '@material-ui/core';\nimport { useFormik } from 'formik';\nimport * as yup from 'yup';\nimport { AutocompleteWithChipType } from 'src/components/AutocompleteWithChip/AutocompleteWithChip';\nimport authActions from 'src/redux/actions/auth.actions';\nimport i18n from 'src/helpers/i18n';\nimport { RootState } from 'src/redux/reducers';\nimport { useStyles } from '../styles';\n\ntype AddKeyDialogProps = {\n isOpen: boolean;\n onClose: () => void;\n};\n\nconst validationSchema = yup.object({\n keyName: yup.string().required(i18n.t('validation.required')),\n permissions: yup\n .array()\n .of(\n yup.object().shape({\n id: yup.string(),\n name: yup.string(),\n })\n )\n .min(1, i18n.t('validation.required'))\n .required(i18n.t('validation.required')),\n});\n\ninterface initialValuesType {\n keyName: string;\n permissions: AutocompleteWithChipType[];\n}\nconst AddKeyDialog = ({ isOpen, onClose }: AddKeyDialogProps): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { permissions } = useSelector((state: RootState) => state.authStore, undefined);\n\n const mappedItems: AutocompleteWithChipType[] = permissions.map((item: string) => ({\n id: item,\n name: item,\n }));\n\n const initialValues: initialValuesType = {\n keyName: '',\n permissions: [],\n };\n const formik = useFormik({\n initialValues,\n validationSchema,\n onSubmit: (values) => {\n dispatch(\n authActions.createNewApiKey({\n permissions: values.permissions.map((permission) => permission.id),\n name: values.keyName,\n })\n );\n },\n });\n\n return (\n ('userConfigurationPage.apiKeys.addNewKeyTitle')}\n >\n \n {t('userConfigurationPage.apiKeys.addKey')}\n \n }\n >\n ('userConfigurationPage.apiKeys.keyName')}\n placeholder={t('userConfigurationPage.apiKeys.keyNamePlaceholder')}\n value={formik.values.keyName}\n onChange={(e) => formik.setFieldValue('keyName', e.target.value.replace(' ', '_'))}\n error={formik.touched.keyName && Boolean(formik.errors.keyName)}\n />\n
    \n ('userConfigurationPage.apiKeys.selectKeyPermission')}\n placeholder={t('userConfigurationPage.apiKeys.selectKeyPermission')}\n items={mappedItems}\n name=\"permissions\"\n defaultValues={formik.values.permissions}\n onChange={(value) => formik.setFieldValue('permissions', value)}\n error={formik.touched.permissions && Boolean(formik.errors.permissions)}\n helperText={formik.touched.permissions ? (formik.errors.permissions as string) : ''}\n />\n
    \n \n \n );\n};\n\nexport default AddKeyDialog;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n Box,\n Chip,\n Dialog,\n DialogContent,\n DialogTitle,\n InputAdornment,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport match from 'autosuggest-highlight/match';\nimport parse from 'autosuggest-highlight/parse';\nimport { HeaderButton } from 'src/components';\nimport { Close as CloseIcon } from 'src/components/CustomIcon';\nimport { useStyles } from '../styles';\nimport { Search as SearchIcon } from '../../../../../components/CustomIcon';\n\ntype PermissionsDialogProps = {\n permissions: string[] | null;\n onClose: () => void;\n};\n\nconst PermissionsDialog = ({ permissions, onClose }: PermissionsDialogProps): JSX.Element => {\n const { t } = useTranslation();\n const classes = useStyles();\n const [inputValue, setInputValue] = useState('');\n\n return (\n 0)} onClose={onClose}>\n \n \n {t('userConfigurationPage.apiKeys.permissions')}\n \n\n {onClose && (\n }\n tooltip={t('common.close')}\n />\n )}\n \n \n ('common.search')}\n value={inputValue}\n onChange={(event) => setInputValue(event.target.value)}\n InputProps={{\n endAdornment: (\n \n \n \n \n \n ),\n }}\n />\n {permissions !== null &&\n permissions.map((permission) => {\n const matches = match(permission, inputValue, {\n insideWords: true,\n findAllOccurrences: true,\n });\n const parts = parse(permission, matches);\n if (!permission.toLowerCase().includes(inputValue.toLowerCase())) return null;\n\n return (\n \n {parts.map((part, index) => (\n \n {part.text}\n
    \n ))}\n \n }\n />\n );\n })}\n \n \n );\n};\n\nexport default PermissionsDialog;\n","import React, { useEffect, useState } from 'react';\nimport {\n Button,\n Card,\n CardContent,\n CircularProgress,\n Fab,\n Grid,\n Theme,\n Tooltip,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { DateTimeFormats, FormatDate } from 'src/helpers/dateTimeFormats';\nimport { ApiKeys } from 'src/models/auth.model';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { Delete as DeleteIcon, Key as KeyIcon } from 'src/components/CustomIcon';\nimport authActions from 'src/redux/actions/auth.actions';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport { ConfirmDialog } from 'src/components';\nimport { useStyles } from '../styles';\nimport PermissionsDialog from './PermissionsDialog';\n\nconst ApiKeysTableHeader = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n \n \n {t('userConfigurationPage.apiKeys.name')}\n \n \n {t('userConfigurationPage.apiKeys.publicKey')}\n \n \n {t('userConfigurationPage.apiKeys.creationDate')}\n \n \n \n );\n};\n\ninterface ApiKeysTableRowProps {\n name: string;\n publicKey: string;\n created?: number;\n onShowPermissionsClick?: () => void;\n onRemoveClick?: () => void;\n}\n\nconst ApiKeysTableRow = ({\n name,\n publicKey,\n created,\n onShowPermissionsClick,\n onRemoveClick,\n}: ApiKeysTableRowProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const mediumScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('md'));\n\n const copyPublicKey = () => {\n dispatch(\n snackbarActions.enqueueSnackbar(SNACKBAR_VARIANT.INFO, t('workspacePage.settings.copied'))\n );\n navigator.clipboard.writeText(publicKey).then();\n };\n\n return (\n \n {name}\n \n {publicKey}\n \n \n {created\n ? FormatDate({\n date: new Date(created),\n timeFormat: DateTimeFormats.timeShort,\n dateFormat: DateTimeFormats.dateShort,\n })\n : '-'}\n \n \n {onShowPermissionsClick &&\n (mediumScreen ? (\n ('userConfigurationPage.apiKeys.showPermissions')}>\n \n \n \n \n ) : (\n }\n onClick={onShowPermissionsClick}\n >\n {t('userConfigurationPage.apiKeys.showPermissions')}\n \n ))}\n {onRemoveClick &&\n (mediumScreen ? (\n ('common.remove')}>\n \n \n \n \n ) : (\n }\n onClick={onRemoveClick}\n >\n {t('common.remove')}\n \n ))}\n \n \n );\n};\n\nconst ApiKeysTable = (): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { apiKeys, apiKeysRequestStatus, deleteApiKeyStatus } = useSelector(\n (state: RootState) => state.authStore,\n undefined\n );\n const [permissionToPreview, setPermissionToPreview] = useState(null);\n const [apiKeyToRemove, setApiKeyToRemove] = useState(null);\n const prevState = usePrevious({\n deleteApiKeyStatus,\n });\n\n const onShowPermissionsClick = (permissions: string[]) => setPermissionToPreview(permissions);\n\n const onRemoveClick = (apiKey: ApiKeys) => setApiKeyToRemove(apiKey);\n\n const removeApiKey = () => {\n if (apiKeyToRemove) dispatch(authActions.deleteApiKey(apiKeyToRemove?.publicKey));\n };\n\n useEffect(() => {\n if (\n prevState &&\n prevState.deleteApiKeyStatus === RequestStatus.PENDING &&\n deleteApiKeyStatus === RequestStatus.IDLE\n ) {\n setApiKeyToRemove(null);\n dispatch(authActions.getApiKeys());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deleteApiKeyStatus]);\n\n return (\n <>\n \n \n \n {apiKeysRequestStatus === RequestStatus.PENDING && }\n {apiKeys.length === 0 && }\n {apiKeys.map((apiKey: ApiKeys) => (\n onShowPermissionsClick(apiKey.permissions)}\n onRemoveClick={() => onRemoveClick(apiKey)}\n />\n ))}\n \n \n {permissionToPreview !== null && (\n setPermissionToPreview(null)}\n />\n )}\n ('userConfigurationPage.apiKeys.deleteKey')}\n subtitle={\n , br:
    }}\n />\n }\n applyButtonText={t('userConfigurationPage.apiKeys.deleteKey')}\n cancelButtonText={t('common.cancel')}\n actionAccept={removeApiKey}\n actionCancel={() => setApiKeyToRemove(null)}\n />\n \n );\n};\n\nexport default ApiKeysTable;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@material-ui/core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport authActions from 'src/redux/actions/auth.actions';\nimport { ContentHeader } from 'src/components';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport { RootState } from 'src/redux/reducers';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { useStyles } from './styles';\nimport AddKeyDialog from './subcomponents/AddKeyDialog';\nimport ApiKeysTable from './subcomponents/ApiKeysTable';\n\nconst ApiKeys = (): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { createNewApiKeyStatus } = useSelector((state: RootState) => state.authStore, undefined);\n const classes = useStyles();\n const [isAddKeyOpen, setIsAddKeyOpen] = useState(false);\n\n const prevState = usePrevious({\n createNewApiKeyStatus,\n });\n\n const toggleIsAddKeyOpen = () => setIsAddKeyOpen((prevOpen) => !prevOpen);\n\n // initial get api keys list\n useEffect(() => {\n dispatch(authActions.getApiKeys());\n dispatch(authActions.getPermissions());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // close add dialog when finished\n useEffect(() => {\n if (\n prevState &&\n prevState.createNewApiKeyStatus === RequestStatus.PENDING &&\n createNewApiKeyStatus === RequestStatus.IDLE\n ) {\n toggleIsAddKeyOpen();\n dispatch(authActions.getApiKeys());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [createNewApiKeyStatus]);\n\n return (\n
    \n
    \n \n {t('userConfigurationPage.apiKeys.apiKeysTitle')}\n \n\n \n
    \n \n {/* TODO: In next stage */}\n {/* */}\n {/* {t('userConfigurationPage.apiKeys.mobileDevicesTitle')} */}\n {/* */}\n\n {isAddKeyOpen && }\n
    \n );\n};\n\nexport default ApiKeys;\n","import {\n Layers as BasicIcon,\n Notification as NotificationsIcon,\n Shield as SecurityIcon,\n User as UserIcon,\n Key as KeyIcon,\n} from 'src/components/CustomIcon';\nimport React from 'react';\n\nexport const Links = (t) => [\n {\n label: t('userConfigurationPage.basic.header'),\n url: '/user-settings/basic',\n icon: ,\n },\n {\n label: t('userConfigurationPage.identity.header'),\n url: '/user-settings/identity',\n icon: ,\n },\n {\n label: t('userConfigurationPage.security.header'),\n url: '/user-settings/security',\n icon: ,\n },\n {\n label: t('userConfigurationPage.notifications.header'),\n url: '/user-settings/notifications',\n icon: ,\n },\n {\n label: t('userConfigurationPage.apiKeys.apiKeysTitle'),\n url: '/user-settings/api-keys',\n icon: ,\n },\n];\n\nexport default Links;\n","import React from 'react';\nimport { Route, Switch, Redirect, useHistory, useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { FullScreenDialog, FullScreenDialogContentWrapper } from 'src/components';\nimport { goBack } from 'src/helpers/goBack';\nimport { Basic, Identity, Security, Notifications, ApiKeys } from './subpages';\nimport { Links } from './Links';\n\nconst UserConfigurationPage = () => {\n const history = useHistory();\n const location = useLocation();\n const { t } = useTranslation();\n\n const handleClose = () => {\n goBack(history);\n };\n\n const extractTitle = () => Links(t).find((link) => link.url === location.pathname)?.label;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default UserConfigurationPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Button, TextField, Typography } from '@material-ui/core';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\nimport { FullScreenDialog, SmallContentWithScrollbar } from '../../index';\n\nconst AddNewFolder = ({ open, onClose, onChange }) => {\n const { t } = useTranslation();\n\n const handleUpdate = () => {\n onChange(values.folderName);\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(handleUpdate, validate, {\n folderName: '',\n });\n\n return (\n \n {t('drivePage.foldersDialog.addNew.title')}\n }\n endContent={\n onChange(newName.trim())}\n type=\"submit\"\n >\n {t('drivePage.foldersDialog.addNew.apply')}\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n 0}\n helperText={errors.folderName}\n />\n \n \n );\n};\n\nAddNewFolder.propTypes = {\n open: PropTypes.bool,\n onClose: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nAddNewFolder.defaultProps = {\n open: false,\n};\n\nexport default AddNewFolder;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmDialog } from '../../index';\n\nconst DeleteFolder = ({ open, onChange, onClose }) => {\n const { t } = useTranslation();\n\n return (\n \n );\n};\n\nDeleteFolder.propTypes = {\n open: PropTypes.bool,\n onChange: PropTypes.func,\n onClose: PropTypes.func,\n};\n\nDeleteFolder.defaultProps = {\n open: false,\n};\n\nexport default DeleteFolder;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\nimport { Button, TextField, Typography } from '@material-ui/core';\nimport { FullScreenDialog, SmallContentWithScrollbar } from 'src/components';\n\nconst RenameFolder = (props) => {\n const { open, onClose, onChange, currentFolderName, smallScreen } = props;\n const { t } = useTranslation();\n\n const handleUpdate = () => {\n onChange(values.folderName);\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(handleUpdate, validate, {\n folderName: currentFolderName,\n });\n\n return (\n \n \n {t('drivePage.foldersDialog.rename.title')}\n \n }\n endContent={\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n 0}\n helperText={errors.folderName}\n />\n \n \n );\n};\n\nRenameFolder.propTypes = {\n open: PropTypes.bool,\n onClose: PropTypes.func,\n onChange: PropTypes.func,\n currentFolderName: PropTypes.string,\n smallScreen: PropTypes.bool,\n};\n\nRenameFolder.defaultProps = {\n open: false,\n smallScreen: false,\n};\n\nexport default RenameFolder;\n","import { lighten } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, shape }) =>\n createStyles({\n layer: {\n position: 'fixed',\n pointerEvents: 'none',\n zIndex: 100,\n top: 0,\n left: 0,\n width: 'auto',\n height: '100%',\n borderRadius: shape.borderRadius * 0.5,\n },\n dragItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n minHeight: 48,\n width: 'auto',\n padding: spacing(1.75, 1),\n marginBottom: 1,\n borderRadius: shape.borderRadius * 0.5,\n backgroundColor: lighten(palette.primary.light, 0.85),\n },\n dragItemCell: {\n marginRight: 5,\n },\n }),\n { index: 0 }\n);\n","import React from 'react';\nimport clsx from 'clsx';\nimport { CertificateFileIcon, DriveIcon, ESign as ESignIcon } from 'src/components/CustomIcon';\nimport { DocumentItem } from 'src/models/documents.model';\nimport { useStyles } from './styles';\nimport { IconCell } from '../cells';\n\ntype ItemsTemplateProps = {\n selectedDocuments: DocumentItem[];\n};\n\nconst getIcon = (documentType: string) => {\n if (documentType.includes('dsl')) {\n return ;\n }\n if (documentType.includes('legacy-drive')) {\n return ;\n }\n return ;\n};\n\nconst ItemsTemplate = ({ selectedDocuments }: ItemsTemplateProps): JSX.Element => {\n const classes = useStyles();\n const rows = selectedDocuments.map((doc, index) => (\n
    \n undefined}\n icon={getIcon(doc.documentType)}\n className={clsx(classes.dragItemCell)}\n />\n {doc.name}\n
    \n ));\n return
    {rows}
    ;\n};\n\nexport default ItemsTemplate;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { Identifier } from 'dnd-core';\nimport { useDragLayer } from 'react-dnd';\nimport { DocumentItem } from 'src/models/documents.model';\nimport { XYCoord } from 'react-dnd/dist/types/types/monitors';\nimport { useStyles } from './styles';\nimport ItemsTemplate from './ItemsTemplate';\n\ntype FieldDragLayerProps = {\n selectedDocuments: DocumentItem[];\n};\nconst FieldDragLayer = ({ selectedDocuments }: FieldDragLayerProps): JSX.Element | null => {\n const classes = useStyles();\n const { itemType, isDragging, currentOffset } = useDragLayer((monitor) => ({\n itemType: monitor.getItemType(),\n currentOffset: monitor.getClientOffset(),\n isDragging: monitor.isDragging(),\n }));\n\n const getItemStyles = (currentOffset: XYCoord | null) => {\n let itemStyle;\n\n if (!currentOffset) {\n itemStyle = { display: 'none' };\n } else {\n const { x, y } = currentOffset;\n const transform = `translate(${x}px, ${y}px)`;\n itemStyle = {\n transform,\n WebkitTransform: transform,\n };\n }\n\n return itemStyle;\n };\n\n const renderItem = (type: Identifier | null) =>\n type === 'ITEM' && ;\n\n if (!isDragging) return null;\n\n return (\n
    \n {renderItem(itemType)}\n
    \n );\n};\n\nexport default FieldDragLayer;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ custom, palette, spacing, breakpoints }) =>\n createStyles({\n foldersTitle: {\n marginBottom: spacing(2),\n },\n documentsTitle: {\n marginTop: spacing(3),\n },\n root: {\n '& *': {\n userSelect: 'none',\n '-webkit-user-select': 'none !important' /* Chrome, Opera, Safari */,\n '-moz-user-select': 'none !important' /* Firefox 2+ */,\n '-ms-user-select': 'none !important' /* IE 10+ */,\n },\n },\n appBar: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n },\n breadcrumbs: {\n position: 'sticky',\n top: 0,\n left: 0,\n zIndex: 2,\n '& > *': {\n position: 'relative',\n },\n },\n header: {\n position: 'sticky',\n left: 0,\n backgroundColor: palette.background.paper,\n zIndex: 1,\n top: 20,\n },\n firstHeader: {},\n secondHeader: {},\n inFolderHeader: {},\n loader: {\n position: 'absolute',\n zIndex: 1300,\n },\n noDocumentsBanner: {\n '& img': {\n [breakpoints.up('md')]: {\n marginTop: custom.breadcrumbsMenuHeight + spacing(1),\n },\n },\n },\n }),\n { index: 0 }\n);\n","import { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport WebSocketHelper from 'src/helpers/WebSocketHelper';\nimport ContactHelper from 'src/helpers/contactHelper';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport documentsActions from 'src/redux/actions/documents.actions';\n\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport PropTypes from 'prop-types';\n\nconst DrivePageWebsocket = ({\n folderDeleteCallback = () => undefined,\n sortKey,\n sortOrder,\n selectedFolders,\n}) => {\n const ws = useRef(null);\n const { t } = useTranslation();\n const history = useHistory();\n const dispatch = useDispatch();\n const { currentFolderId, folderPath } = useSelector((state) => state.documentsStore, undefined);\n\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n\n const onWebSocketMessage = (message) => {\n if (message.type === 'RESULT') {\n const { parent, id } = message?.data?.result;\n switch (message.code) {\n case 'FOLDER_CREATED': {\n if (parent === currentFolderId) {\n dispatch(documentsActions.websocketAddFolder(message.data.result));\n }\n dispatch(documentsActions.setSelectedFolders([message.data.result.id]));\n break;\n }\n case 'FOLDER_UPDATED':\n if (parent === currentFolderId || currentFolderId === id) {\n dispatch(documentsActions.websocketUpdateFolder(message.data.result));\n }\n break;\n case 'FOLDER_DELETED':\n if (selectedFolders.indexOf(id) > -1) {\n folderDeleteCallback();\n }\n\n if (parent === currentFolderId) {\n dispatch(documentsActions.websocketDeleteFolder(message.data.result));\n }\n if (currentFolderId === id) {\n let prevFolderId = null;\n const folderPathIds = folderPath.idPath.split('/');\n for (let i = 0; i < folderPathIds.length; i += 1) {\n if (folderPathIds[i] === id && i > 0) {\n prevFolderId = folderPathIds[i - 1];\n }\n }\n if (prevFolderId) {\n history.push(`/drive/${prevFolderId}`);\n } else {\n history.push('/drive');\n }\n }\n break;\n case 'DOCUMENT_CREATED':\n dispatch(\n documentsActions.websocketCreateDocument(message.data.result, sortKey, sortOrder)\n );\n break;\n case 'DOCUMENT_MOVED':\n dispatch(\n documentsActions.websocketMoveDocument(\n currentFolderId,\n message.data.result,\n sortKey,\n sortOrder\n )\n );\n break;\n case 'DOCUMENT_UPDATED':\n if (ContactHelper.checkIfUserBelongsToDocument(message.data.result)) {\n dispatch(\n documentsActions.websocketUpdateDocument(message.data.result, sortKey, sortOrder)\n );\n } else {\n dispatch(documentsActions.websocketDeleteDocument(message.data.result));\n }\n break;\n case 'DOCUMENT_DELETED':\n dispatch(documentsActions.websocketDeleteDocument(message.data.result));\n break;\n default:\n console.warn(`Unknown code [${message.code}]`, message);\n break;\n }\n } else if (message.type === 'ERROR') {\n switch (message.code) {\n case 'FOLDER_CREATED':\n default:\n // eslint-disable-next-line no-case-declarations\n const resultCode = message?.data?.result?.code;\n // eslint-disable-next-line no-case-declarations\n const messagePart = resultCode ? `_${resultCode}` : '';\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n t('snackbars.common.errorTitle'),\n t(`drivePage.action.error.${message.code}${messagePart}`)\n )\n );\n break;\n }\n } else {\n console.warn(`Unknown action type [${message.type}]`, message);\n }\n };\n\n useEffect(() => {\n if (workspaceId && currentFolderId) {\n ws.current = WebSocketHelper.subscribe(\n 'document-indexing-service',\n `workspaces/${workspaceId}`,\n (message) => {\n onWebSocketMessage(message);\n }\n );\n }\n\n return () => {\n WebSocketHelper.unsubscribe(ws.current);\n };\n }, [workspaceId, currentFolderId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nDrivePageWebsocket.propTypes = {\n folderDeleteCallback: PropTypes.func,\n sortKey: PropTypes.string,\n sortOrder: PropTypes.string,\n selectedFolders: PropTypes.arrayOf(PropTypes.string),\n};\n\nexport default DrivePageWebsocket;\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport clsx from 'clsx';\nimport {\n Card,\n CardContent,\n FormControlLabel,\n LinearProgress,\n List,\n ListItem,\n Switch,\n Theme,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { RootState } from 'src/redux/reducers';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { ConfirmDialog, FullScreenDialog } from 'src/components';\nimport documentActions from 'src/redux/actions/documents.actions';\nimport { WorkspaceUser } from 'src/models/workspaceUser.model';\nimport { DocumentStatus } from 'src/models/documents.model';\nimport { DeleteUser, InviteUsers } from './editDialogs';\nimport { HeaderAndButton, Search, UserItem } from '../../subcomponents';\nimport { useStyles } from '../styles';\n\nenum EditedSubpage {\n Invite,\n Delete,\n}\n\nconst Users = (): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const workspaceID = useSelector(IdentitySelector.selectWorkspaceId, undefined);\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n const [showDeletedUsers, setShowDeletedUsers] = useState(false);\n const [repeatCheckDocumentsUser, setRepeatCheckDocumentsUser] = useState(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const activeIdentity = useSelector((state: any) => state.identityStore.currentIdentity);\n const currentIdentityId = useSelector(IdentitySelector.selectCurrentIdentityId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const groupAllId = activeIdentity.groups.find((group: any) => group.name === 'All')?.groupId;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { fetchDocumentsStatus, documents } = useSelector((state: any) => state.documentsStore);\n const {\n workspaceUsers,\n workspaceInvitedUsers,\n fetchWorkspaceUsersStatus,\n fetchWorkspaceInvitedUsersStatus,\n hasNextPage,\n pageIndex,\n deleteUserFromWorkspaceStatus,\n deleteUserInvitationFromWorkspaceStatus,\n inviteUsersToWorkspaceStatus,\n searchWorkspaceUsersStatus,\n } = useSelector((state: RootState) => state.workspaceUserStore);\n const [searchTerm, setSearchTerm] = useState('');\n const { enqueueSnackbar } = useSnackbar();\n const [actionUser, setActionUser] = useState(null);\n const [editedSubpage, setEditedSubpage] = useState(null);\n const loading =\n deleteUserInvitationFromWorkspaceStatus === RequestStatus.PENDING ||\n fetchWorkspaceUsersStatus === RequestStatus.PENDING ||\n searchWorkspaceUsersStatus === RequestStatus.PENDING ||\n fetchDocumentsStatus === RequestStatus.PENDING ||\n fetchWorkspaceInvitedUsersStatus === RequestStatus.PENDING ||\n deleteUserFromWorkspaceStatus === RequestStatus.PENDING;\n const isUserInvitation = actionUser && !actionUser.identityId;\n\n const filteredWorkspaceUsers = workspaceUsers.filter((el) => {\n if (showDeletedUsers) return true;\n return el.active;\n });\n\n const filteredInvitedUsers = workspaceInvitedUsers.filter((el) =>\n el.email.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n const fetchMoreData = () => {\n if (hasNextPage && pageIndex > 0 && workspaceUsers.length) {\n dispatch(identityActions.getWorkspaceGroupUsers(groupAllId, pageIndex, 10, searchTerm));\n }\n };\n\n const onDeleteUserConfirm = () => {\n if (actionUser && actionUser.identityId) {\n checkDeleteUserHasDocuments();\n } else {\n dispatch(identityActions.deleteUserInvitationFromWorkspace(workspaceID, actionUser?.email));\n }\n };\n\n const checkDeleteUserHasDocuments = () => {\n if (actionUser)\n dispatch(\n documentActions.fetchAnyDocuments(workspaceID, 10, 0, 'updatedAt', 'ASC', false, '', '', [\n actionUser.identityId,\n ])\n );\n };\n\n const handleDeleteUser = (check?: boolean) => {\n if (check) {\n setRepeatCheckDocumentsUser(true);\n checkDeleteUserHasDocuments();\n } else if (actionUser) {\n deleteDialogToggle.close();\n handleBack();\n dispatch(identityActions.deleteUserFromWorkspace(workspaceID, actionUser.identityId));\n }\n };\n\n const onDeleteClick = (user: WorkspaceUser) => {\n deleteDialogToggle.open();\n setActionUser(user);\n };\n\n const deleteDialogToggle = {\n open: () => {\n setDeleteDialogOpen(true);\n },\n close: () => {\n setDeleteDialogOpen(false);\n },\n };\n\n const handleBack = () => {\n setEditedSubpage(null);\n };\n const toggleShowDeletedUsers = () => setShowDeletedUsers(!showDeletedUsers);\n const openSnackbar = (type: string, content: string) => {\n const options = {\n variant: type,\n message: content,\n };\n enqueueSnackbar(JSON.stringify(options));\n };\n const showInfo = () => {\n openSnackbar('info', t('workspacePage.users.checkDelete.infoText'));\n };\n\n useEffect(() => {\n if (fetchDocumentsStatus === RequestStatus.IDLE && actionUser?.identityId) {\n if (\n !documents.filter(\n (document: { status: string }) => document?.status !== DocumentStatus.REJECTED\n ).length\n ) {\n handleDeleteUser();\n } else {\n if (repeatCheckDocumentsUser) {\n showInfo();\n }\n setEditedSubpage(EditedSubpage.Delete);\n }\n deleteDialogToggle.close();\n setRepeatCheckDocumentsUser(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fetchDocumentsStatus]);\n\n useEffect(() => {\n if (deleteUserFromWorkspaceStatus !== RequestStatus.IDLE) {\n setActionUser(null);\n }\n }, [deleteUserFromWorkspaceStatus]);\n\n // Fetch users after success removing\n useEffect(() => {\n if (deleteUserFromWorkspaceStatus !== RequestStatus.SUCCESS) {\n setTimeout(() => {\n dispatch(identityActions.getWorkspaceGroupUsers(groupAllId, 0, 50));\n }, 1000);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deleteUserFromWorkspaceStatus]);\n\n // Fetch invited users after removing user, close dialog\n useEffect(() => {\n if (deleteUserInvitationFromWorkspaceStatus !== RequestStatus.SUCCESS) {\n setTimeout(() => {\n dispatch(identityActions.getWorkspaceInvitedUsers(workspaceID));\n dispatch(identityActions.getWorkspaceGroupUsers(groupAllId, 0));\n }, 1000);\n deleteDialogToggle.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deleteUserInvitationFromWorkspaceStatus]);\n\n // Fetch invited users after success add, and close modal\n useEffect(() => {\n if (inviteUsersToWorkspaceStatus === RequestStatus.SUCCESS) {\n dispatch(identityActions.getWorkspaceInvitedUsers(workspaceID));\n handleBack();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inviteUsersToWorkspaceStatus]);\n\n // Fetch users on search change\n useEffect(() => {\n dispatch(identityActions.getWorkspaceGroupUsers(groupAllId, 0, 100, searchTerm));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchTerm]);\n\n useEffect(() => {\n const scrollElement = document.getElementById('fullScreenDialogContent');\n\n const hasVerticalScrollbar =\n scrollElement && scrollElement?.scrollHeight > scrollElement?.clientHeight;\n\n if (hasNextPage && pageIndex > 0 && !hasVerticalScrollbar) {\n fetchMoreData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hasNextPage, workspaceUsers]);\n\n // Initial load users\n useEffect(() => {\n dispatch(identityActions.getWorkspaceInvitedUsers(workspaceID));\n dispatch(identityActions.getWorkspaceGroupUsers(groupAllId, 0));\n\n return () => {\n dispatch(identityActions.clearWorkspaceUsersStore());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const editPages = {\n [EditedSubpage.Invite]: {\n title: t('workspacePage.groups.invite.header'),\n Component: ,\n },\n [EditedSubpage.Delete]: {\n title: t('workspacePage.users.checkDelete.header'),\n Component: (\n \n ),\n },\n };\n\n const renderEditPage = (variant: EditedSubpage) => editPages[variant].Component;\n const setTitle = (variant: EditedSubpage) => editPages[variant].title;\n\n const renderSummaryPage = () => (\n <>\n setEditedSubpage(EditedSubpage.Invite)}\n smallScreen={smallScreen}\n buttonLabel={t('workspacePage.users.inviteUser')}\n >\n {t('workspacePage.drawer.userManagementUser')}\n \n
    \n setSearchTerm(val)}\n valueInput={searchTerm}\n loading={loading}\n />\n }\n label={\n \n {t('workspacePage.users.deleteUser.toggleDeleted')}\n \n }\n />\n
    \n \n }\n scrollableTarget=\"fullScreenDialogContent\"\n >\n \n \n {!smallScreen && (\n \n
    \n \n {t('workspacePage.users.tableHeader.user')}\n \n {t('common.actions')}\n
    \n \n )}\n {[...filteredInvitedUsers, ...filteredWorkspaceUsers].map((i, index) => (\n onDeleteClick(i)}\n canDelete={\n (currentIdentityId !== i.identityId && i.active) || i.identityId === undefined\n }\n />\n ))}\n
    \n
    \n {loading && }\n \n
    \n\n ('workspacePage.users.deleteUserInvitation.description')\n : t('workspacePage.users.deleteUser.description')\n }\n applyButtonText={\n isUserInvitation\n ? t('workspacePage.users.deleteUserInvitation.delete')\n : t('workspacePage.users.deleteUser.delete')\n }\n cancelButtonText={t('common.cancel')}\n actionAccept={onDeleteUserConfirm}\n actionCancel={deleteDialogToggle.close}\n isLoading={loading}\n />\n \n );\n\n return (\n <>\n {editedSubpage === null ? (\n renderSummaryPage()\n ) : (\n \n {renderEditPage(editedSubpage)}\n \n )}\n \n );\n};\n\nexport default Users;\n","import { fade } from '@material-ui/core/styles';\nimport { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ palette, spacing, breakpoints }) =>\n createStyles({\n alertWrapper: {\n zIndex: 1,\n paddingTop: 0,\n paddingBottom: 0,\n minHeight: spacing(7),\n display: 'flex',\n alignItems: 'center',\n '& .MuiAlert-action button': {\n margin: '0!important',\n },\n '& .MuiAlert-message ': {\n [breakpoints.down('md')]: {\n display: 'flex',\n alignItems: 'center',\n '& span': {\n paddingRight: spacing(1),\n },\n },\n },\n\n [breakpoints.down('md')]: {\n marginBottom: spacing(2),\n },\n },\n alertButton: {\n marginLeft: spacing(2),\n color: palette.error.contrastText,\n textDecoration: 'none !important',\n border: `1px solid ${fade(palette.error.contrastText, 0.5)}`,\n '&:hover': {\n border: `1px solid ${palette.error.contrastText}`,\n backgroundColor: fade(palette.common.black, palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent',\n },\n },\n [breakpoints.down('md')]: {\n marginLeft: 0,\n },\n },\n }),\n { index: 0 }\n);\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport Alert from '@material-ui/lab/Alert';\nimport { Button, Theme, useMediaQuery } from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { IdentitySelector } from '../redux/selectors/identity.selector';\nimport {\n BillingProductStatus,\n BillingProductType,\n checkSubscription,\n} from '../models/billing.model';\nimport { RootState } from '../redux/reducers';\nimport { useStyles } from './styles';\nimport { userComActions, SubscriptionChangeType } from '../redux/actions/userCom.actions';\n\nconst SubscriptionAlert = (): JSX.Element | null => {\n const { t } = useTranslation();\n const classes = useStyles();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const { subscriptions } = useSelector((state: RootState) => state.billingStore);\n const subscriptionAlertStorage = localStorage.getItem('subscriptionAlert');\n const [hasStorageSubscription, setHasStorageSubscription] = useState(\n Boolean(subscriptionAlertStorage)\n );\n const esignProduct = subscriptions.find((el) => el.productType === BillingProductType.EsignDrive);\n const certProduct = subscriptions.find(\n (el) => el.productType === BillingProductType.Certificates\n );\n const isTrialEsign = esignProduct && BillingProductStatus.Trialing === esignProduct.status;\n const isTrialCertificate = certProduct && BillingProductStatus.Trialing === certProduct.status;\n const smallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.down('sm'));\n\n const {\n daysLeft: esignDaysLeft,\n alertLevel: esignAlertLevel,\n showProductAlert: esignShowAlert,\n } = checkSubscription(esignProduct);\n const {\n daysLeft: certDaysLeft,\n alertLevel: certAlertLevel,\n showProductAlert: certShowAlert,\n } = checkSubscription(certProduct);\n\n const onContactSales = (): void => {\n if (!workspaceId) return;\n if (esignProduct) {\n userComActions.subscription.subChangesNeeded(\n BillingProductType.EsignDrive,\n isTrialEsign ? SubscriptionChangeType.PurchaseDuringTrial : SubscriptionChangeType.Renewal,\n workspaceId\n );\n }\n if (certProduct) {\n userComActions.subscription.subChangesNeeded(\n BillingProductType.Certificates,\n isTrialCertificate\n ? SubscriptionChangeType.PurchaseDuringTrial\n : SubscriptionChangeType.Renewal,\n workspaceId\n );\n }\n };\n\n const getSeverenity = (): 'info' | 'warning' => {\n const lvls = [];\n if (esignProduct) lvls.push(esignAlertLevel);\n if (certProduct) lvls.push(certAlertLevel);\n return lvls.includes('warning') ? 'warning' : 'info';\n };\n\n // if subscription alert storage is not found, set it to empty object.\n // if subscription alert storage is found, assign alert level for key = workspaceId.\n // update local state = close alert\n const onAlertClose = () => {\n setHasStorageSubscription(true);\n const storage = subscriptionAlertStorage ? JSON.parse(subscriptionAlertStorage) : {};\n if (workspaceId)\n localStorage.setItem(\n 'subscriptionAlert',\n JSON.stringify({\n ...storage,\n [workspaceId]: { esignLevelStorage: esignAlertLevel, certLevelStorage: certAlertLevel },\n })\n );\n };\n\n // if subscription alert storage is found and products are active\n // parse subscription alert storage\n // get alert level for key = workspaceId\n // if alert from storage is different from current product alert then remove from storage per key\n // update local state = open alert\n useEffect(() => {\n if (workspaceId && subscriptionAlertStorage && (esignProduct || certProduct)) {\n const storage = JSON.parse(subscriptionAlertStorage);\n const esignLevelStorage = storage[workspaceId]?.esignLevelStorage;\n const certLevelStorage = storage[workspaceId]?.certLevelStorage;\n\n if (esignAlertLevel !== esignLevelStorage || certAlertLevel !== certLevelStorage) {\n delete storage[workspaceId];\n localStorage.setItem('subscriptionAlert', JSON.stringify(storage));\n setHasStorageSubscription(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscriptionAlertStorage, esignAlertLevel, certAlertLevel]);\n\n // if subscription alert storage exists or products are not active then don't show alert\n if (hasStorageSubscription || (!esignShowAlert && !certShowAlert)) return null;\n\n return (\n \n \n {esignShowAlert && (\n <>\n ('subscriptionAlert.prefixTrial')\n : t('subscriptionAlert.prefixSub'),\n product: t('subscriptionAlert.drive'),\n subscriptionType: isTrialEsign\n ? t('subscriptionAlert.trial')\n : t('subscriptionAlert.subscription'),\n }}\n i18nKey={\n esignDaysLeft === 1 ? 'subscriptionAlert.text' : 'subscriptionAlert.textPlural'\n }\n components={{ strong: }}\n />\n \n )}\n {esignShowAlert && certShowAlert && t('subscriptionAlert.and')}\n {certShowAlert && (\n <>\n ('subscriptionAlert.prefixTrial')\n : t('subscriptionAlert.prefixSub'),\n product: t('subscriptionAlert.certificates'),\n subscriptionType: isTrialCertificate\n ? t('subscriptionAlert.trial')\n : t('subscriptionAlert.subscription'),\n }}\n i18nKey={\n certDaysLeft === 1 ? 'subscriptionAlert.text' : 'subscriptionAlert.textPlural'\n }\n components={{ strong: }}\n />\n \n )}\n .\n \n \n {isTrialCertificate || isTrialEsign\n ? t(\n smallScreen ? 'subscriptionAlert.purchaseNowShort' : 'subscriptionAlert.purchaseNow'\n )\n : t(\n smallScreen ? 'subscriptionAlert.renewNowShort' : 'subscriptionAlert.renewNow'\n )}\n \n \n );\n};\n\nexport default SubscriptionAlert;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport documentsActions from 'src/redux/actions/documents.actions';\nimport { FileColsConfig, FolderColsConfig } from 'src/helpers/fileAndFolderColsConfig';\nimport { Checkbox, Typography, useMediaQuery } from '@material-ui/core';\nimport OutsideClickHandler from 'react-outside-click-handler';\nimport {\n Cut as CutIcon,\n Delete as DeleteIcon,\n Edit as EditIcon,\n FolderAdd as AddFolderIcon,\n Paste as PasteIcon,\n Plus as AddIcon,\n Refresh as ClearIcon,\n} from 'src/components/CustomIcon';\nimport { DataTable, FullPageLoader, NoDocumentsBanner } from 'src/components';\nimport { DeleteFolder, RenameFolder } from 'src/components/DataTable/editDialogs';\nimport { AppHeader } from 'src/pages/App/subcomponents';\nimport FieldDragLayer from 'src/components/DataTable/dragLayer';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport { DocumentsSelector } from 'src/redux/selectors/documents.selector';\nimport {\n BreadcrumbsAndSettings,\n ItemsActions,\n MobileBreadcrumbs,\n SpeedDial,\n} from './subcomponents';\n\nimport { useStyles } from './styles';\nimport DrivePageWebsocket from './DrivePageWebsocket';\nimport snackbarActions from '../../redux/actions/snackbar.actions';\nimport usePrevious from '../../helpers/hooks/usePrevious';\nimport ContactHelper from '../../helpers/contactHelper';\nimport AddNewFolderModal from '../../components/AddNewFolderModal/AddNewFolderModal';\nimport SubscriptionAlert from '../../SubscriptionAlert/SubscriptionAlert';\n\nconst iconWidth = 40;\n\nconst DrivePage = () => {\n const classes = useStyles();\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const history = useHistory();\n const match = useRouteMatch();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const {\n fetchFoldersStatus,\n renameFolderStatus,\n removeFolderStatus,\n moveDocumentsStatus,\n createFolderStatus,\n fetchDocumentsStatus,\n currentFolderId,\n folderTree,\n documents,\n hasMoreDocuments,\n folderPath,\n fetchFolderPathStatus,\n defaultSortKey,\n defaultSortOrder,\n selectedFolders,\n } = useSelector((state) => state.documentsStore, undefined);\n const foldersList = useSelector(DocumentsSelector.selectOrdinaryFolders, undefined);\n const { currentIdentity, structureStatus, structure, workspaceStructureStatus } = useSelector(\n (state) => state.identityStore,\n undefined\n );\n const [addNewFolderDialogOpen, setAddNewFolderDialogOpen] = useState(false);\n const [deleteFolderDialogOpen, setDeleteFolderDialogOpen] = useState(false);\n const [renameFolderDialogOpen, setRenameFolderDialogOpen] = useState(false);\n const [page, setPage] = useState(0);\n\n const dialogsToggle = {\n addNewFolderDialog: {\n open: () => setAddNewFolderDialogOpen(true),\n close: () => setAddNewFolderDialogOpen(false),\n },\n deleteDialog: {\n open: () => setDeleteFolderDialogOpen(true),\n close: () => setDeleteFolderDialogOpen(false),\n },\n renameDialog: {\n open: () => setRenameFolderDialogOpen(true),\n close: () => setRenameFolderDialogOpen(false),\n },\n };\n\n const [selectedFilesRowName, setSelectedFilesRowName] = useState([]);\n const [selectedFilesRows, setSelectedFilesRows] = useState([]);\n const selectedFilesRowsRef = useRef({ sourceFolder: null, items: [] });\n const [sortKey, setSortKey] = useState(defaultSortKey);\n const [sortOrder, setSortOrder] = useState(defaultSortOrder);\n const [dragMode, setDragMode] = useState(false);\n const foldersColConfig = FolderColsConfig(t);\n const filesColConfig = FileColsConfig(t);\n const identityIsEmpty = structureStatus === RequestStatus.SUCCESS && structure.length === 0;\n const folderIsRoot = folderPath?.namePath === '/';\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n const urlFolderId = match.params?.folderId ? match.params?.folderId : undefined;\n const prevState = usePrevious({\n documents,\n });\n const isLoadingMore = fetchDocumentsStatus === RequestStatus.PENDING && hasMoreDocuments;\n const someSelected = selectedFilesRows.length > 0;\n const allSelected = someSelected && documents.length === selectedFilesRows.length;\n const onSelectAll = () => {\n if (allSelected) {\n setSelectedFilesRows([]);\n setSelectedFilesRowName([]);\n } else {\n setSelectedFilesRows(documents.map((el) => el.id));\n setSelectedFilesRowName(documents.map((el) => el.name));\n }\n };\n\n const onFileRowSelection = (row, callback = () => undefined) => {\n if (!smallScreen) {\n setSelectedFilesRows([row.id]);\n setSelectedFilesRowName([row.name]);\n callback([row.id]);\n } else {\n const newRowsId = Array.from(selectedFilesRows);\n const newRowsName = Array.from(selectedFilesRowName);\n if (selectedFilesRows.indexOf(row.id) !== -1) {\n newRowsId.splice(newRowsId.indexOf(row.id), 1);\n newRowsName.splice(newRowsName.indexOf(row.name), 1);\n } else {\n newRowsId.push(row.id);\n newRowsName.push(row.name);\n }\n callback(newRowsId);\n setSelectedFilesRows(newRowsId);\n setSelectedFilesRowName(newRowsName);\n }\n\n dispatch(documentsActions.setSelectedFolders([]));\n };\n\n const onRowCheckboxClick = (row, callback = () => undefined) => {\n const newRowsId = Array.from(selectedFilesRows);\n const newRowsName = Array.from(selectedFilesRowName);\n if (selectedFilesRows.indexOf(row.id) !== -1) {\n newRowsId.splice(newRowsId.indexOf(row.id), 1);\n newRowsName.splice(newRowsName.indexOf(row.name), 1);\n } else {\n newRowsId.push(row.id);\n newRowsName.push(row.name);\n }\n callback(newRowsId);\n setSelectedFilesRows(newRowsId);\n setSelectedFilesRowName(newRowsName);\n dispatch(documentsActions.setSelectedFolders([]));\n };\n\n const onCut = (items, sourceFolder) => {\n selectedFilesRowsRef.current = { sourceFolder, items };\n setDragMode(true);\n };\n\n const onPaste = (targetFolderId) => {\n const { sourceFolder, items } = selectedFilesRowsRef.current;\n const folderId = targetFolderId || currentFolderId;\n setDragMode(false);\n if (sourceFolder && items.length > 0 && sourceFolder !== folderId) {\n if (workspaceId) {\n selectedFilesRowsRef.current = { sourceFolder: null, items: [] };\n setSelectedFilesRowName([]);\n\n dispatch(documentsActions.moveDocuments(workspaceId, sourceFolder, folderId, items));\n }\n }\n };\n\n const onLoadMoreFiles = () => {\n if (!isLoadingMore && !isLoadingMoreFiles) {\n setPage(page + 1);\n }\n };\n\n const goToDocument = (row) => {\n localStorage.setItem('createdDocumentFolderId', folderIsRoot ? 'root' : currentFolderId);\n if (row?.documentType.includes('dsl')) {\n history.push(`/certificate/${row.id}`);\n } else {\n history.push(`/document/${row.id}`);\n }\n };\n\n const loadFilesRows = (offset) => {\n if (workspaceId && currentFolderId)\n dispatch(\n documentsActions.fetchDocuments({\n workspaceId,\n folderId: currentFolderId,\n offset,\n orderBy: sortKey,\n sortOrder,\n filterKey: undefined,\n filterValue: undefined,\n })\n );\n };\n\n const loadFolderPath = useCallback(\n (workspaceId, currentFolderId) => {\n if (workspaceId && currentFolderId) {\n dispatch(documentsActions.getCurrentFolderPath(workspaceId, currentFolderId));\n } else {\n dispatch(documentsActions.clearFolderPath());\n }\n },\n [dispatch]\n );\n\n const isLoadingMoreFiles = fetchDocumentsStatus === RequestStatus.PENDING && hasMoreDocuments;\n const isLoadingFiles = fetchDocumentsStatus === RequestStatus.PENDING;\n\n const isLoadingFolders = fetchFoldersStatus === RequestStatus.PENDING;\n const isAnyFileSelected = selectedFilesRows.length > 0;\n const isAnyFolderSelected = selectedFolders.length > 0;\n const isAnythingSelected = isAnyFileSelected || isAnyFolderSelected;\n const onlyFilesSelected = isAnyFileSelected && !isAnyFolderSelected;\n const onlyFoldersSelected = !isAnyFileSelected && isAnyFolderSelected;\n const isAnyCut = selectedFilesRowsRef.current.items.length > 0;\n\n const mainActions = {\n folderActions: [\n {\n icon: ,\n name: t(`drivePage.foldersTable.changeName.${smallScreen ? 'longText' : 'shortText'}`),\n onClick: dialogsToggle.renameDialog.open,\n },\n {\n icon: ,\n name: t(`drivePage.foldersTable.delete.${smallScreen ? 'longText' : 'shortText'}`),\n onClick: dialogsToggle.deleteDialog.open,\n },\n ],\n filesActions: [\n smallScreen && {\n icon: ,\n name: t('common.cut'),\n onClick: () => onCut(selectedFilesRows, currentFolderId),\n },\n isAnyCut &&\n smallScreen && {\n icon: ,\n name: t('common.paste'),\n onClick: () => onPaste(),\n },\n ].filter(Boolean),\n commonActions: [\n {\n icon: ,\n name: t('common.clearSelection'),\n onClick: () => {\n setSelectedFilesRowName([]);\n dispatch(documentsActions.setSelectedFolders([]));\n setSelectedFilesRows([]);\n },\n },\n ],\n };\n const { folderActions, filesActions, commonActions } = mainActions;\n\n const getAllActions = () => {\n const actions = [];\n if (isAnythingSelected) {\n if (onlyFoldersSelected) {\n actions.push(...folderActions);\n }\n if (onlyFilesSelected) {\n actions.push(...filesActions);\n }\n actions.push(...commonActions);\n }\n return actions;\n };\n const allAvailableActions = getAllActions();\n\n const onFolderClick = (row, isDoubleClick) => {\n if (smallScreen) {\n history.push(`/drive/${row.id}`);\n } else if (!isDoubleClick) {\n const newSelection = [];\n const prevSelection = selectedFolders.length > 0 ? selectedFolders[0] : false;\n setSelectedFilesRowName([]);\n setSelectedFilesRows([]);\n\n if (prevSelection !== row.id) {\n newSelection.push(row.id);\n }\n dispatch(documentsActions.setSelectedFolders(newSelection));\n } else {\n dispatch(documentsActions.setSelectedFolders([]));\n history.push(`/drive/${row.id}`);\n }\n };\n\n const addFolderAction = {\n icon: smallScreen ? : ,\n name: t(`drivePage.foldersTable.addNew.${smallScreen ? 'longText' : 'shortText'}`),\n onClick: dialogsToggle.addNewFolderDialog.open,\n };\n\n const canShowFolderActions = !folderIsRoot;\n\n const noFoldersConfig = {\n label: t('drivePage.foldersTable.noItems'),\n };\n if (!identityIsEmpty) {\n noFoldersConfig.buttonText = addFolderAction.name;\n noFoldersConfig.onClick = addFolderAction.onClick;\n }\n\n const allLoaded =\n workspaceStructureStatus === RequestStatus.SUCCESS &&\n fetchFoldersStatus === RequestStatus.IDLE &&\n fetchFolderPathStatus === RequestStatus.SUCCESS &&\n (!isLoadingFiles || isLoadingMoreFiles);\n\n // TODO: fix empty folderTree after workspace change\n const showNoDocumentsBanner =\n allLoaded && folderIsRoot && folderTree?.length <= 2 && documents.length === 0;\n\n useEffect(() => {\n if (\n documents &&\n JSON.stringify(documents) !== JSON.stringify(prevState?.documents) &&\n documents.length > 0\n ) {\n const missingContacts = [];\n documents.forEach((document) => {\n const matchedIdentity = ContactHelper.getEntityData(document.author);\n if (!matchedIdentity && !ContactHelper.checkIfIsInProgress(document.author)) {\n missingContacts.push(document.author);\n }\n });\n if (missingContacts.length > 0) {\n ContactHelper.addContactsToQueue(missingContacts);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [documents, prevState]);\n\n // Create folder dialog finalized effect\n useEffect(() => {\n if (createFolderStatus === RequestStatus.SUCCESS) {\n dialogsToggle.addNewFolderDialog.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [createFolderStatus]);\n\n // on sort change\n useEffect(() => {\n loadFilesRows(0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sortKey, sortOrder]);\n\n // on page / scroll change\n useEffect(() => {\n if (page !== 0) {\n loadFilesRows(20 * page);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [page]);\n\n // Remove folder dialog finalized effect\n useEffect(() => {\n if (removeFolderStatus === RequestStatus.SUCCESS) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n t('drivePage.foldersDialog.delete.toastSuccessText')\n )\n );\n dialogsToggle.deleteDialog.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [removeFolderStatus]);\n\n // Move document folder dialog finalized effect\n useEffect(() => {\n if (moveDocumentsStatus === RequestStatus.SUCCESS) {\n setSelectedFilesRows([]);\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n t('drivePage.moveDocuments.toastSuccessText')\n )\n );\n }\n if (moveDocumentsStatus === RequestStatus.ERROR) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n t('drivePage.moveDocuments.toastFailureText')\n )\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [moveDocumentsStatus]);\n\n // Rename folder dialog finalized effect\n useEffect(() => {\n if (renameFolderStatus === RequestStatus.SUCCESS) {\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.INFO,\n t('drivePage.foldersDialog.rename.toastSuccessText')\n )\n );\n dialogsToggle.renameDialog.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [renameFolderStatus]);\n\n // Load folder list when url has changed\n useEffect(() => {\n if (workspaceId) {\n dispatch(documentsActions.getFolderTree(workspaceId, urlFolderId || 'root'));\n if (urlFolderId) localStorage.setItem('currentFolderId', urlFolderId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [urlFolderId, workspaceId]);\n\n // Load files and folder path when new currentFolderId\n useEffect(() => {\n if (currentFolderId) {\n localStorage.setItem('currentFolderId', currentFolderId);\n loadFolderPath(workspaceId, currentFolderId);\n setPage(0);\n loadFilesRows(0);\n }\n localStorage.setItem('lastMainPage', 'drive');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceId, currentFolderId]);\n\n // cleanup documents store\n useEffect(\n () => () => {\n dispatch(documentsActions.clearDocumentsStore());\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n if (identityIsEmpty) {\n return null;\n }\n\n return (\n <>\n dispatch(documentsActions.setSelectedFolders([]))}\n selectedFolders={selectedFolders}\n sortKey={sortKey}\n sortOrder={sortOrder}\n />\n \n {allLoaded && (\n <>\n {smallScreen && (\n <>\n {canShowFolderActions && !showNoDocumentsBanner && (\n }\n additionalRightAction={\n \n }\n />\n )}\n\n \n \n )}\n {showNoDocumentsBanner ? (\n \n ) : (\n <>\n selectedFilesRows.includes(el.id))}\n />\n
    \n {!smallScreen && (\n 0 && (\n \n )\n }\n folderPath={folderPath}\n />\n )}\n \n {t('drivePage.foldersTable.title')}\n \n {foldersColConfig && (\n {\n const hasException = e.target.getElementsByClassName(\n 'outside-handler-exception'\n )[0];\n if (!hasException) {\n dispatch(documentsActions.setSelectedFolders([]));\n }\n }}\n >\n {\n onFolderClick(row, false);\n }}\n selectable\n onDblClick={(row) => {\n onFolderClick(row, true);\n }}\n selectedRows={selectedFolders}\n isLoading={isLoadingFolders}\n defaultIcon=\"folder\"\n tileRows\n smallScreen={smallScreen}\n disableHeader\n noItems={noFoldersConfig}\n />\n {\n let targetFolder;\n if (smallScreen) {\n targetFolder = currentFolderId;\n } else {\n [targetFolder] = selectedFolders;\n }\n if (targetFolder) {\n dispatch(documentsActions.removeFolder(workspaceId, targetFolder));\n }\n }}\n />\n {renameFolderDialogOpen && (\n {\n let targetFolder;\n if (smallScreen) {\n targetFolder = currentFolderId;\n } else {\n [targetFolder] = selectedFolders;\n }\n if (targetFolder) {\n dispatch(\n documentsActions.renameFolder(\n workspaceId,\n targetFolder,\n newFolderName\n )\n );\n }\n }}\n currentFolderName={\n foldersList?.find(\n (folder) =>\n folder.id === (smallScreen ? currentFolderId : selectedFolders[0])\n )?.name\n }\n />\n )}\n
    \n \n )}\n \n {t('drivePage.documentsTable.title')}\n \n {filesColConfig && (\n {\n setSelectedFilesRowName([]);\n setSelectedFilesRows([]);\n }}\n >\n \n }\n rows={documents}\n cols={filesColConfig}\n withTableHeader\n iconWidth={iconWidth}\n headerTextWidthLikeIcon={false}\n selectable\n onRowCheckboxClick={(row) => onRowCheckboxClick(row)}\n onClick={(row) => {\n if (smallScreen) {\n goToDocument(row);\n } else {\n onFileRowSelection(row);\n }\n }}\n onDblClick={(row) => {\n if (!smallScreen) {\n goToDocument(row);\n }\n }}\n onDrag={(row) => {\n if (!smallScreen) {\n if (isAnyFileSelected) {\n onCut(selectedFilesRows, currentFolderId);\n } else {\n onFileRowSelection(row, (items) => onCut(items, currentFolderId));\n }\n }\n }}\n onDrop={(targetFolderId) => {\n if (!smallScreen) onPaste(targetFolderId);\n }}\n selectedRows={selectedFilesRows}\n sortBy={sortKey}\n sortOrder={sortOrder}\n onChangeSort={({ sortOrder, sortKey }) => {\n setSortKey(sortKey);\n setSortOrder(sortOrder);\n setPage(0);\n }}\n isLoading={isLoadingFiles}\n isLoadingMore={isLoadingMoreFiles}\n hasMoreItems={hasMoreDocuments} // TODO: remove !\n paginationType=\"infinite\"\n defaultIcon=\"file\"\n onLoadMoreFiles\n smallScreen={smallScreen}\n disableHeader={smallScreen}\n onLoadMore={() => {\n onLoadMoreFiles();\n }}\n noItems={{\n label: t('drivePage.documentsTable.noItems'),\n }}\n isDrag={!smallScreen}\n isAnyFileSelected={isAnyFileSelected}\n dragMode={dragMode}\n />\n \n )}\n
    \n \n )}\n\n {addNewFolderDialogOpen && (\n {\n dispatch(\n documentsActions.createFolder(workspaceId, currentFolderId, newFolderName)\n );\n }}\n />\n )}\n \n )}\n \n \n );\n};\n\nexport default DrivePage;\n","import i18n from 'src/helpers/i18n';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport identityService from '../services/identity.service';\nimport workspaceGroupsConstants from '../constants/workspaceGroups.constants';\nimport snackbarActions from './snackbar.actions';\nimport identityActions from './identity.actions';\nimport identityConstants from '../constants/identity.constants';\n\nconst fetchWorkspaceGroups = (workspaceId, force = false, page = 0, limit = 50, groupName) => (\n dispatch\n) => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_REQUEST });\n identityService\n .fetchWorkspaceGroups(workspaceId, force, page, limit, groupName)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SUCCESS,\n workspaceGroups: response.data.collection,\n hasNextPage: response.data.hasNextPage,\n force,\n });\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.fetchMainStructureError.description')\n )\n );\n });\n};\n\nconst searchWorkspaceGroups = (workspaceId, page = 0, limit = 50, groupName) => (dispatch) => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SEARCH_REQUEST });\n identityService\n .searchWorkspaceGroups(workspaceId, page, limit, groupName)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SEARCH_SUCCESS,\n workspaceUsers: response.data.collection,\n hasNextPage: response.data.hasNextPage,\n });\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUPS_SEARCH_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.fetchMainStructureError.description')\n )\n );\n });\n};\n\nconst createWorkspaceGroup = (workspaceId, workspaceGroupData, callbackOnSuccess) => (dispatch) => {\n dispatch({ type: workspaceGroupsConstants.CREATE_NEW_WORKSPACE_GROUP_REQUEST });\n identityService\n .createWorkspaceGroup(workspaceId, workspaceGroupData)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.CREATE_NEW_WORKSPACE_GROUP_SUCCESS,\n data: response.data,\n });\n dispatch(identityActions.getWorkspaceStructure(workspaceId));\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.groups.add.toast.success')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.CREATE_NEW_WORKSPACE_GROUP_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.add.toast.error')\n )\n );\n });\n};\n\nconst deleteWorkspaceGroup = (workspaceId, groupId, callbackOnSuccess) => (dispatch) => {\n dispatch({ type: workspaceGroupsConstants.DELETE_WORKSPACE_GROUP_REQUEST });\n identityService\n .deleteWorkspaceGroup(groupId)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.DELETE_WORKSPACE_GROUP_SUCCESS,\n data: response,\n groupId,\n });\n dispatch({\n type: identityConstants.DELETE_WORKSPACE_GROUP_AFTER_REMOVING,\n groupId,\n });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.groups.deleteGroup.toast.success')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.DELETE_WORKSPACE_GROUP_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.deleteGroup.toast.error')\n )\n );\n });\n};\n\nconst updateWorkspaceGroup = (workspaceId, groupId, workspaceGroupData, callbackOnSuccess) => (\n dispatch\n) => {\n dispatch({ type: workspaceGroupsConstants.UPDATE_WORKSPACE_GROUP_REQUEST });\n identityService\n .updateWorkspaceGroup(groupId, workspaceGroupData)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.UPDATE_WORKSPACE_GROUP_SUCCESS,\n data: response,\n });\n dispatch(workspaceGroupsActions.fetchWorkspaceGroup(groupId));\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.SUCCESS,\n i18n.t('snackbars.common.successTitle'),\n i18n.t('workspacePage.groups.rename.toast.success')\n )\n );\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.UPDATE_WORKSPACE_GROUP_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.rename.toast.error')\n )\n );\n });\n};\n\nconst addMembersToWorkspaceGroup = (groupId, identityIds) => (dispatch) => {\n dispatch({ type: workspaceGroupsConstants.ADD_MEMBER_TO_WORKSPACE_GROUP_REQUEST });\n identityService\n .addMembersToWorkspaceGroup(groupId, identityIds)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.ADD_MEMBER_TO_WORKSPACE_GROUP_SUCCESS,\n data: response,\n groupId,\n });\n dispatch(workspaceGroupsActions.fetchWorkspaceGroupMembers(groupId));\n dispatch(workspaceGroupsActions.fetchWorkspaceGroup(groupId));\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.ADD_MEMBER_TO_WORKSPACE_GROUP_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.addMember.toast.error')\n )\n );\n });\n};\n\nconst deleteMembersFromWorkspaceGroup = (groupId, identityIds) => (dispatch) => {\n dispatch({ type: workspaceGroupsConstants.DELETE_MEMBER_FROM_WORKSPACE_GROUP_REQUEST });\n identityService\n .deleteMembersFromWorkspaceGroup(groupId, identityIds)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.DELETE_MEMBER_FROM_WORKSPACE_GROUP_SUCCESS,\n data: response,\n groupId,\n });\n dispatch(workspaceGroupsActions.fetchWorkspaceGroupMembers(groupId));\n dispatch(workspaceGroupsActions.fetchWorkspaceGroup(groupId));\n dispatch(identityActions.getUserStructure());\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.DELETE_MEMBER_FROM_WORKSPACE_GROUP_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.deleteMember.toast.error')\n )\n );\n });\n};\n\nconst fetchWorkspaceGroup = (groupId, callbackOnSuccess) => (dispatch) => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_REQUEST });\n identityService\n .fetchWorkspaceGroup(groupId)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_SUCCESS,\n data: response.data || [],\n });\n dispatch({\n type: identityConstants.UPDATE_WORKSPACE_GROUP_AFTER_FETCHING,\n data: response.data || [],\n });\n if (typeof callbackOnSuccess === 'function') {\n dispatch(callbackOnSuccess);\n }\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.fetchGroupStructure.error')\n )\n );\n });\n};\n\nconst fetchWorkspaceGroupMembers = (groupId, page = 0, limit = 100, memberIdentifier = '') => (\n dispatch\n) => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_MEMBERS_REQUEST });\n identityService\n .fetchWorkspaceGroupMembers(groupId, page, limit, memberIdentifier)\n .then((response) => {\n dispatch({\n type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_MEMBERS_SUCCESS,\n members: response?.data?.collection,\n });\n })\n .catch(() => {\n dispatch({ type: workspaceGroupsConstants.FETCH_WORKSPACE_GROUP_MEMBERS_FAILURE });\n dispatch(\n snackbarActions.enqueueSnackbar(\n SNACKBAR_VARIANT.ERROR,\n i18n.t('snackbars.common.errorTitle'),\n i18n.t('workspacePage.groups.fetchGroupMembersStructure.error')\n )\n );\n });\n};\n\nconst setActiveGroup = (activeGroup) => (dispatch) => {\n dispatch({\n type: workspaceGroupsConstants.SET_ACTIVE_GROUP,\n payload: activeGroup,\n });\n};\n\nconst clearWorkspaceGroupsStore = () => ({\n type: workspaceGroupsConstants.CLEAR_WORKSPACE_GROUPS_STATE,\n});\n\nconst workspaceGroupsActions = {\n fetchWorkspaceGroups,\n searchWorkspaceGroups,\n createWorkspaceGroup,\n deleteWorkspaceGroup,\n updateWorkspaceGroup,\n addMembersToWorkspaceGroup,\n deleteMembersFromWorkspaceGroup,\n fetchWorkspaceGroup,\n fetchWorkspaceGroupMembers,\n clearWorkspaceGroupsStore,\n setActiveGroup,\n};\n\nexport default workspaceGroupsActions;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport workspaceGroupsActions from 'src/redux/actions/workspaceGroups.actions';\nimport { Button, CircularProgress, TextField, Typography } from '@material-ui/core';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst AddNewGroup = ({ onClose, workspaceId }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const [value, setValue] = useState('');\n\n const createWorkspaceGroupStatus = useSelector(\n (state) => state.workspaceGroupsStore.createWorkspaceGroupStatus\n );\n\n const isPending = createWorkspaceGroupStatus === RequestStatus.PENDING;\n const isDisabled = !value || isPending;\n\n const handleSubmit = (event) => {\n event.preventDefault();\n dispatch(\n workspaceGroupsActions.createWorkspaceGroup(\n workspaceId,\n {\n name: value,\n description: '',\n },\n onClose\n )\n );\n };\n\n return (\n {t('workspacePage.groups.add.description')}}\n endContent={\n }\n >\n {t('workspacePage.groups.add.create')}\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n {\n setValue(event.target.value);\n }}\n disabled={isPending}\n />\n \n );\n};\n\nAddNewGroup.propTypes = {\n onClose: PropTypes.func,\n workspaceId: PropTypes.string,\n};\n\nexport default AddNewGroup;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport workspaceGroupsActions from 'src/redux/actions/workspaceGroups.actions';\nimport { ConfirmDialog } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst DeleteGroup = ({ open, workspaceId, group, onClose }) => {\n const { t } = useTranslation();\n const { groupId, name } = group;\n const dispatch = useDispatch();\n\n const deleteWorkspaceGroupStatus = useSelector(\n (state) => state.workspaceGroupsStore.deleteWorkspaceGroupStatus\n );\n\n const isPending = deleteWorkspaceGroupStatus === RequestStatus.PENDING;\n\n return (\n {\n dispatch(workspaceGroupsActions.deleteWorkspaceGroup(workspaceId, groupId, onClose));\n }}\n isLoading={isPending}\n actionCancel={onClose}\n />\n );\n};\n\nDeleteGroup.propTypes = {\n open: PropTypes.bool.isRequired,\n workspaceId: PropTypes.string,\n group: PropTypes.shape({\n groupId: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onClose: PropTypes.func,\n};\n\nexport default DeleteGroup;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { AddAndRemoveUsers, ConfirmDialog } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport workspaceGroupsActions from 'src/redux/actions/workspaceGroups.actions';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst ManageGroupUsers = ({ group, availableMembers, workspaceId }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { groupId, name } = group;\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false);\n const [didMount, setDidMount] = useState(false);\n const [activeIdentityId, setActiveIdentityId] = useState('');\n const { groupMembers } = useSelector((state) => state.workspaceGroupsStore, undefined);\n\n useEffect(() => {\n setDidMount(true);\n return () => {\n setDidMount(false);\n setActiveIdentityId('');\n };\n }, []);\n\n useEffect(() => {\n if (groupId) {\n dispatch(workspaceGroupsActions.fetchWorkspaceGroupMembers(groupId, 0, 100));\n }\n }, [dispatch, groupId]);\n\n const { fetchGroupStructureStatus } = useSelector((state) => state.workspaceGroupsStore);\n const addMembersToGroupStatus = useSelector(\n (state) => state.workspaceGroupsStore.addMembersToWorkspaceGroupStatus\n );\n const deleteMembersFromGroupStatus = useSelector(\n (state) => state.workspaceGroupsStore.deleteMembersFromWorkspaceGroupStatus\n );\n const workspaceGroups = useSelector((state) => state.workspaceGroupsStore);\n const members = useMemo(() => workspaceGroups?.groupMembers || [], [\n workspaceGroups?.groupMembers,\n ]);\n\n const fetchGroupStructureStatusPending = useMemo(\n () => fetchGroupStructureStatus === RequestStatus.PENDING,\n [fetchGroupStructureStatus]\n );\n const isPending = useMemo(\n () =>\n fetchGroupStructureStatusPending ||\n deleteMembersFromGroupStatus === RequestStatus.PENDING ||\n addMembersToGroupStatus === RequestStatus.PENDING,\n [addMembersToGroupStatus, deleteMembersFromGroupStatus, fetchGroupStructureStatusPending]\n );\n\n const clearInput = useMemo(() => addMembersToGroupStatus === RequestStatus.PENDING, [\n addMembersToGroupStatus,\n ]);\n\n const confirmDialogToggle = {\n open: (identityId) => {\n setActiveIdentityId(identityId);\n setConfirmDialogOpen(true);\n },\n close: () => {\n setConfirmDialogOpen(false);\n },\n };\n\n useEffect(() => {\n if (fetchGroupStructureStatus === RequestStatus.SUCCESS && groupId && workspaceId && didMount) {\n dispatch(identityActions.updateMembersWorkspaceGroup(groupId, members));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fetchGroupStructureStatus]);\n\n const memberActions = {\n add: () => {\n dispatch(workspaceGroupsActions.addMembersToWorkspaceGroup(groupId, [activeIdentityId]));\n confirmDialogToggle.close();\n },\n delete: (identityId) => {\n dispatch(workspaceGroupsActions.deleteMembersFromWorkspaceGroup(groupId, [identityId]));\n setActiveIdentityId('');\n },\n };\n\n return (\n <>\n {\n member.hideRemove = name === 'Owners' && groupMembers.length <= 1;\n return member;\n }) || []\n }\n disabled={isPending}\n isPending={isPending}\n clearInput={clearInput}\n availableItems={\n availableMembers.filter(\n (user) => members?.map((e) => e.identityId).indexOf(user.identityId) === -1\n ) || []\n }\n placeholder={t('workspacePage.groups.manageUsers.inputPlaceholder')}\n noResultsText={t('workspacePage.groups.manageUsers.noResults')}\n onAddClick={confirmDialogToggle.open}\n onDeleteClick={memberActions.delete}\n />\n \n \n );\n};\n\nManageGroupUsers.propTypes = {\n group: PropTypes.shape({\n groupId: PropTypes.string,\n name: PropTypes.string,\n membersAmount: PropTypes.number,\n }),\n workspaceId: PropTypes.string,\n availableMembers: PropTypes.arrayOf(\n PropTypes.shape({\n email: PropTypes.string,\n identityId: PropTypes.string,\n name: PropTypes.string,\n })\n ),\n};\n\nexport default ManageGroupUsers;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport workspaceGroupsActions from 'src/redux/actions/workspaceGroups.actions';\nimport { useTranslation } from 'react-i18next';\nimport { Button, CircularProgress, TextField, Typography } from '@material-ui/core';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst RenameGroup = ({ workspaceId, group, onClose }) => {\n const { t } = useTranslation();\n const { groupId, name } = group;\n const defaultValue = name;\n const [value, setValue] = useState(name);\n\n const dispatch = useDispatch();\n\n const updateWorkspaceGroupStatus = useSelector(\n (state) => state.workspaceGroupsStore.updateWorkspaceGroupStatus\n );\n\n const isPending = updateWorkspaceGroupStatus === RequestStatus.PENDING;\n const isDisabled = !value || isPending;\n\n const handleSubmit = (event) => {\n event.preventDefault();\n dispatch(\n workspaceGroupsActions.updateWorkspaceGroup(\n workspaceId,\n groupId,\n {\n name: value,\n description: '',\n },\n onClose\n )\n );\n };\n\n return (\n {t('workspacePage.groups.rename.description', { name })}\n }\n endContent={\n }\n >\n {t('workspacePage.groups.rename.apply')}\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n {\n setValue(event.target.value);\n }}\n disabled={isPending}\n />\n \n );\n};\n\nRenameGroup.propTypes = {\n workspaceId: PropTypes.string,\n group: PropTypes.shape({\n groupId: PropTypes.string,\n name: PropTypes.string,\n }).isRequired,\n onClose: PropTypes.func,\n};\n\nexport default RenameGroup;\n","import { createStyles, makeStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints, palette, spacing, typography }) => {\n const generateCardDivider = (top = true) => ({\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 1,\n backgroundColor: palette.divider,\n position: 'absolute',\n top: top ? 0 : 'auto',\n bottom: !top ? 0 : 'auto',\n left: spacing(2),\n right: spacing(2),\n [breakpoints.up('md')]: {\n left: spacing(3),\n right: spacing(3),\n },\n [breakpoints.up('lg')]: {\n left: spacing(5),\n right: spacing(5),\n },\n },\n });\n return createStyles({\n root: {},\n contentContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n contentLoader: {\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n card: {\n height: '100%',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n alignItems: 'stretch',\n '& [class^=\"MuiCardActions-root\"], & [class*=\"MuiCardActions-root\"]': {\n position: 'relative',\n paddingTop: spacing(2),\n ...generateCardDivider(),\n [breakpoints.up('lg')]: {\n marginTop: spacing(-1),\n },\n },\n '& [class^=\"MuiCardContent-root\"], & [class*=\"MuiCardContent-root\"]': {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n },\n },\n cardHeader: {\n position: 'relative',\n paddingBottom: spacing(2),\n [breakpoints.up('lg')]: {\n // marginTop: spacing(-1),\n },\n ...generateCardDivider(false),\n },\n cardActions: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-end',\n [breakpoints.up('lg')]: {\n alignItems: 'flex-end',\n },\n },\n cardActionsLeft: {\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n textAlign: 'left',\n },\n loader: {\n padding: spacing(2, 0),\n display: 'flex',\n justifyContent: 'center',\n },\n listHeader: {\n minHeight: spacing(3),\n paddingBottom: '0 !important',\n },\n listItemContainer: {\n '&:first-child': {\n marginTop: spacing(-2),\n },\n '&:last-child': {\n marginBottom: spacing(-2),\n },\n '& $listItemRoot': {\n paddingRight: 32,\n },\n },\n listItemRoot: {\n color: palette.text.primary,\n padding: spacing(2, 0),\n [breakpoints.up('md')]: {\n '&:first-child': {\n paddingTop: 0,\n },\n '&:last-child': {\n paddingBottom: 0,\n },\n },\n '&:hover': {\n color: 'inherit',\n },\n },\n fullScreenDialog: {\n minHeight: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n content: {\n width: '100%',\n },\n divider: {\n margin: spacing(2, 2, 0, 2),\n [breakpoints.up('md')]: {\n margin: spacing(2, 3, 0, 3),\n },\n [breakpoints.up('lg')]: {\n margin: spacing(3, 5, 0, 5),\n },\n },\n oldPrice: {\n fontSize: 16,\n textDecoration: 'line-through',\n fontWeight: typography.fontWeightRegular,\n },\n cardTitle: {\n position: 'relative',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n bottom: 0,\n left: 0,\n height: '1px',\n width: '100%',\n backgroundColor: palette.greySimple.lightest,\n },\n },\n actionButton: {\n marginLeft: spacing(-1.5),\n marginRight: spacing(-1.5),\n padding: spacing(1, 1.5),\n fontSize: typography.fontSize,\n '&:not($actionButtonCancel)': {\n color: palette.primary.main,\n },\n '&:not(:first-child)': {\n marginTop: 2,\n marginLeft: spacing(-1.5),\n },\n },\n actionButtonCancel: {},\n actionButtonCode: {\n paddingTop: spacing(0.5),\n paddingBottom: spacing(0.5),\n zIndex: 2,\n '&:not(:first-child)': {\n marginLeft: spacing(0),\n },\n '& svg': {\n display: 'block',\n fontSize: spacing(2),\n marginRight: spacing(0.5),\n },\n '& h6, & span': {\n lineHeight: 1.3,\n },\n },\n imageContainer: {\n position: 'absolute',\n bottom: 0,\n right: -16,\n zIndex: 1,\n [breakpoints.up('sm')]: {\n right: 0,\n },\n [breakpoints.up('md')]: {\n right: -20,\n },\n [breakpoints.up('lg')]: {\n right: -16,\n },\n [breakpoints.up('xl')]: {\n right: -8,\n },\n },\n image: {\n display: 'block',\n width: 100,\n opacity: 0.5,\n [breakpoints.up('sm')]: {\n opacity: 1,\n },\n [breakpoints.up('md')]: {\n width: 120,\n },\n [breakpoints.up('xl')]: {\n width: 142,\n },\n },\n imageBank: {\n display: 'inline-block',\n lineHeight: 1,\n minWidth: 56,\n maxWidth: 72,\n marginBottom: -4,\n width: '100%',\n [breakpoints.up('lg')]: {\n maxWidth: 84,\n },\n },\n status: {\n color: palette.success.main,\n },\n success: {\n color: palette.success.main,\n },\n warning: {\n color: palette.warning.main,\n },\n error: {\n color: palette.error.main,\n },\n headerWrapper: {\n display: 'flex',\n width: '100%',\n justifyContent: 'space-between',\n },\n searchWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n [breakpoints.down('md')]: {\n flexDirection: 'column',\n alignItems: 'flex-end',\n marginBottom: 16,\n },\n },\n searchInput: {\n width: '100%',\n [breakpoints.up('md')]: {\n maxWidth: '50%',\n },\n },\n });\n },\n { index: 0 }\n);\n","import React, { useEffect, useMemo, useState } from 'react';\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport workspaceGroupsActions from 'src/redux/actions/workspaceGroups.actions';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport {\n Card,\n CardContent,\n LinearProgress,\n List,\n ListItem,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { EmptyBanner, ExtendedGrid, FullScreenDialog } from 'src/components';\nimport {\n Delete as DeleteIcon,\n PenOutlined as EditIcon,\n Users as ManageIcon,\n} from 'src/components/CustomIcon';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { GroupItem, Search, HeaderAndButton } from '../../subcomponents';\nimport { AddNewGroup, DeleteGroup, ManageGroupUsers, RenameGroup } from './editDialogs';\nimport { useStyles } from '../styles';\nimport { sortGroupsAllOwnersFirst } from '../../../../helpers/globalUtils';\n\nconst Groups = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const classes = useStyles();\n const [didMount, setDidMount] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n const [loading, setLoading] = useState(true);\n const [editedSubpage, setEditedSubpage] = useState(null);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n\n useEffect(() => {\n setDidMount(true);\n return () => setDidMount(false);\n }, []);\n\n const workspace = useSelector((state) => state.identityStore);\n const {\n activeGroup,\n workspaceGroups,\n hasNextPage: workspaceGroupsHasNextPage,\n pageIndex: workspaceGroupsPageIndex,\n fetchWorkspaceGroupsStatus: workspaceGroupsRequestStatus,\n deleteWorkspaceGroupStatus: getDeleteWorkspaceGroupStatus,\n searchWorkspaceGroupsStatus,\n } = useSelector((state) => state.workspaceGroupsStore);\n\n const workspaceId = workspace.currentIdentity?.workspace?.workspaceId;\n\n const workspaceMembers = useMemo(() => workspace?.workspaceUsers || [], [\n workspace?.workspaceUsers,\n ]);\n\n const setActiveGroup = (activeGroup) =>\n dispatch(workspaceGroupsActions.setActiveGroup(activeGroup));\n\n const handleBack = () => {\n setEditedSubpage(null);\n };\n\n const deleteDialogToggle = {\n open: () => {\n setDeleteDialogOpen(true);\n },\n close: () => {\n setDeleteDialogOpen(false);\n },\n };\n\n const editPages = {\n add: {\n title: t('workspacePage.groups.add.header'),\n Component: ,\n },\n manage: {\n title: t('workspacePage.groups.manageUsers.header'),\n Component: (\n member?.active === true)}\n />\n ),\n },\n rename: {\n title: t('workspacePage.groups.rename.header'),\n Component: ,\n },\n };\n\n useEffect(() => {\n if (didMount) {\n setLoading(true);\n if (\n workspaceGroupsRequestStatus === RequestStatus.IDLE &&\n !workspaceGroups.length &&\n workspaceGroupsPageIndex === 0 &&\n workspaceId !== undefined\n ) {\n dispatch(\n workspaceGroupsActions.fetchWorkspaceGroups(workspaceId, workspaceGroupsPageIndex)\n );\n }\n if (\n workspaceGroupsRequestStatus === RequestStatus.SUCCESS ||\n workspaceGroupsRequestStatus === RequestStatus.ERROR\n ) {\n setLoading(false);\n }\n }\n }, [\n didMount,\n dispatch,\n workspaceGroups.length,\n workspaceGroupsPageIndex,\n workspaceGroupsRequestStatus,\n workspaceId,\n ]);\n\n useEffect(() => {\n if (\n workspaceGroupsRequestStatus !== RequestStatus.IDLE &&\n workspaceGroupsRequestStatus !== RequestStatus.PENDING\n ) {\n setLoading(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchWorkspaceGroupsStatus]);\n\n useEffect(() => {\n if (getDeleteWorkspaceGroupStatus === RequestStatus.ERROR) {\n setDeleteDialogOpen(false);\n }\n }, [getDeleteWorkspaceGroupStatus]);\n\n useEffect(() => {\n if (searchTerm.length > 0) {\n setLoading(true);\n } else if (searchWorkspaceGroupsStatus !== RequestStatus.IDLE) {\n dispatch(workspaceGroupsActions.clearWorkspaceGroupsStore());\n }\n const delayDebounceFn = setTimeout(() => {\n if (searchTerm.length > 0) {\n dispatch(workspaceGroupsActions.searchWorkspaceGroups(workspaceId, 0, 50, searchTerm));\n }\n }, 1000);\n\n return () => clearTimeout(delayDebounceFn);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch, searchTerm]);\n\n useEffect(() => {\n if (didMount) {\n const scrollElement = document.getElementById('fullScreenDialogContent');\n const hasVerticalScrollbar = scrollElement?.scrollHeight > scrollElement?.clientHeight;\n if (workspaceGroupsHasNextPage && workspaceGroupsPageIndex > 0 && !hasVerticalScrollbar) {\n fetchMoreData();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [workspaceGroupsHasNextPage, workspaceGroups, didMount, workspaceGroupsPageIndex]);\n\n const fetchMoreData = () => {\n if (workspaceGroupsHasNextPage && workspaceGroupsPageIndex > 0 && workspaceGroups?.length) {\n dispatch(\n workspaceGroupsActions.fetchWorkspaceGroups(\n workspaceId,\n workspaceGroupsPageIndex,\n 50,\n searchTerm\n )\n );\n }\n };\n\n const renderEditPage = (name) => editPages[name].Component;\n const setTitle = (name) => editPages[name].title;\n\n const handleSetSearchTerm = (value) => {\n setSearchTerm(value);\n };\n\n const renderSummaryPage = () => (\n <>\n setEditedSubpage('add')}\n buttonLabel={t('workspacePage.groups.addGroup')}\n smallScreen={smallScreen}\n >\n {t('workspacePage.drawer.userManagementGroup')}\n \n \n\n \n }\n scrollableTarget=\"fullScreenDialogContent\"\n >\n \n {workspaceGroupsRequestStatus !== RequestStatus.ERROR ? (\n \n {!smallScreen && (\n \n \n \n \n {t('workspacePage.groups.tableHeader.groupName')}\n \n \n \n \n {t('workspacePage.groups.tableHeader.numberOfUsers')}\n \n \n\n \n {t('common.actions')}\n \n \n \n )}\n\n {workspaceGroups &&\n sortGroupsAllOwnersFirst(workspaceGroups).map((item, index) => {\n const { groupId, name, membersAmount, active } = item;\n const canRemove = item.name !== 'All' && item.name !== 'Owners';\n const canEditName = item.name !== 'All' && item.name !== 'Owners';\n const canManage = item.name !== 'All';\n return (\n ,\n name: t('common.manage'),\n showButton: canManage,\n onClick: () => {\n setActiveGroup({ groupId, name, membersAmount });\n setEditedSubpage('manage');\n },\n },\n {\n icon: ,\n name: t('common.changeName'),\n showButton: canEditName,\n onClick: () => {\n setActiveGroup({ groupId, name });\n setEditedSubpage('rename');\n },\n },\n {\n icon: ,\n name: t('common.delete'),\n showButton: canRemove,\n onClick: () => {\n setActiveGroup({ groupId, name });\n deleteDialogToggle.open();\n },\n },\n ]\n : []\n }\n />\n );\n })}\n \n ) : (\n \n )}\n \n {loading && }\n \n \n {\n deleteDialogToggle.close();\n setActiveGroup({});\n }}\n workspaceId={workspaceId}\n group={activeGroup}\n />\n \n );\n\n if (!didMount) {\n return null;\n }\n return (\n <>\n {renderSummaryPage()}\n {\n if (editedSubpage === 'manage') {\n dispatch(identityActions.getWorkspaceStructure(workspaceId));\n }\n handleBack();\n }}\n onClose={handleBack}\n title={editedSubpage ? setTitle(editedSubpage) : null}\n >\n {editedSubpage ? renderEditPage(editedSubpage) : null}\n \n \n );\n};\n\nexport default Groups;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, TextField, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport useForm from 'src/helpers/hooks/useForm';\nimport validate from 'src/helpers/formValidationRules';\nimport { SmallContentWithScrollbar } from 'src/components';\n\nconst EditWorkspace = (props) => {\n const { workspace, update, isPending } = props;\n const { t } = useTranslation();\n const changeName = () => {\n update({ name: values.workspaceNewName });\n };\n\n const { values, errors, handleChange, handleSubmit } = useForm(changeName, validate, {\n workspaceNewName: workspace.name,\n });\n\n return (\n {t('workspacePage.editModals.subtitle1')}\n }\n endContent={\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: handleSubmit,\n }}\n >\n 0}\n helperText={errors.workspaceNewName}\n />\n \n );\n};\n\nEditWorkspace.propTypes = {\n workspace: PropTypes.shape({\n name: PropTypes.string,\n data: PropTypes.shape({}),\n }),\n update: PropTypes.func,\n isPending: PropTypes.bool,\n};\n\nexport default EditWorkspace;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport avatarActions from 'src/redux/actions/avatar.actions';\nimport { ConfirmDialog } from 'src/components';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst DeleteAvatar = ({ open, onClose, workspaceId }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const deleteWorkspaceAvatarRequestStatus = useSelector(\n (state) => state.avatarStore.deleteWorkspaceAvatarRequestStatus\n );\n\n const isPending = deleteWorkspaceAvatarRequestStatus === RequestStatus.PENDING;\n\n return (\n {\n dispatch(avatarActions.deleteWorkspaceAvatar(workspaceId, onClose));\n }}\n isLoading={isPending}\n actionCancel={onClose}\n />\n );\n};\n\nDeleteAvatar.propTypes = {\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func,\n workspaceId: PropTypes.string,\n};\n\nexport default DeleteAvatar;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { Button, Checkbox, FormControlLabel, TextField, Typography } from '@material-ui/core';\nimport { CountrySelect, SmallContentWithScrollbar } from 'src/components';\nimport { useTranslation } from 'react-i18next';\nimport useForm from 'src/helpers/hooks/useForm';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(\n ({ palette, spacing, typography }) => ({\n content: {\n '& > *:not(:last-child)': {\n marginBottom: spacing(2),\n },\n },\n additionalLabel: {\n lineHeight: 'inherit',\n },\n checkboxRoot: {\n marginLeft: '-8px !important',\n },\n checkboxFormControlRoot: {\n marginRight: 0,\n },\n checkboxFormControlLabel: {\n fontSize: typography.subtitle2.fontSize,\n color: palette.text.secondary,\n textAlign: 'justify',\n },\n checkedCheckboxFormControlLabel: {\n color: palette.primary.main,\n },\n }),\n { index: 0 }\n);\n\nconst EditWorkspace = (props) => {\n const { workspace, update, isPending } = props;\n const classes = useStyles({});\n const { t } = useTranslation();\n const [newWorkspace, updateWorkspace] = useState(workspace);\n const [representingCompany, setRepresentingCompany] = useState(false);\n\n const validateForm = (formData) => {\n const formErrors = {};\n\n if (!formData.address || formData.address.trim().length === 0) {\n formErrors.address = t('workspacePage.editModals.valueCannotBeEmpty');\n }\n\n if (!formData.postalCode || formData.postalCode.trim().length === 0) {\n formErrors.postalCode = t('workspacePage.editModals.valueCannotBeEmpty');\n }\n\n if (!formData.city || formData.city.trim().length === 0) {\n formErrors.city = t('workspacePage.editModals.valueCannotBeEmpty');\n }\n\n if (!formData.country || formData.country.trim().length === 0) {\n formErrors.country = t('workspacePage.editModals.valueCannotBeEmpty');\n }\n\n return formErrors;\n };\n\n const handleUpdate = () => {\n update({ ...workspace, data: { ...values } });\n };\n\n const { values, errors, handleChange, handleSubmit, setValue } = useForm(\n handleUpdate,\n validateForm,\n {\n fullName: workspace.data.fullName,\n country: workspace.data.country,\n address: workspace.data.address,\n postalCode: workspace.data.postalCode,\n city: workspace.data.city,\n number: workspace.data.number,\n }\n );\n\n const setCountry = (country) => {\n if (country) {\n updateWorkspace({ data: { countryCode: country.code } });\n setValue('country', country.label, { shouldDirty: true });\n } else {\n updateWorkspace({ data: { countryCode: '' } });\n setValue('country', '');\n }\n };\n\n const additionalLabel = (text) => (\n \n ({text})\n \n );\n\n return (\n \n {t('workspacePage.editModals.btnChangeData')}\n \n }\n hasForm\n formProps={{\n noValidate: true,\n autoComplete: 'off',\n onSubmit: representingCompany ? handleSubmit : undefined,\n }}\n classes={{ content: classes.content }}\n >\n \n {t('workspacePage.editModals.labelNameCompany')} \n {additionalLabel(t('workspacePage.editModals.labelOptional'))}\n \n }\n fullWidth\n name=\"fullName\"\n value={values.fullName}\n onChange={handleChange}\n disabled={isPending}\n error={errors.fullName?.length > 0}\n helperText={errors.fullName}\n />\n\n 0}\n helperText={errors.country}\n />\n\n 0}\n helperText={errors.address}\n />\n\n 0}\n helperText={errors.postalCode}\n />\n\n 0}\n helperText={errors.city}\n />\n\n \n {t('workspacePage.editModals.labelVat')} \n {additionalLabel(t('workspacePage.editModals.labelOptional'))}\n \n }\n fullWidth\n name=\"number\"\n value={values.number}\n onChange={handleChange}\n disabled={isPending}\n error={errors.number?.length > 0}\n helperText={errors.number}\n />\n\n setRepresentingCompany(!representingCompany)}\n classes={{\n root: classes.checkboxRoot,\n }}\n />\n }\n label={t('workspacePage.editModals.labelRepresentingCompany')}\n classes={{\n root: classes.checkboxFormControlRoot,\n label: clsx(\n classes.checkboxFormControlLabel,\n representingCompany && classes.checkedCheckboxFormControlLabel\n ),\n }}\n />\n \n );\n};\n\nEditWorkspace.propTypes = {\n workspace: PropTypes.shape({\n name: PropTypes.string,\n data: PropTypes.shape({\n fullName: PropTypes.string,\n country: PropTypes.string,\n address: PropTypes.string,\n postalCode: PropTypes.string,\n city: PropTypes.string,\n number: PropTypes.string,\n }),\n }),\n update: PropTypes.func,\n isPending: PropTypes.bool,\n};\n\nexport default EditWorkspace;\n","import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport avatarActions from 'src/redux/actions/avatar.actions';\nimport { Card, CardContent, List, Typography, useMediaQuery } from '@material-ui/core';\nimport { Avatar, FullScreenDialog } from 'src/components';\nimport { Copy as CopyIcon } from 'src/components/CustomIcon';\nimport { BasicItem } from 'src/pages/UserConfiguration/subpages/Basic/subcomponents';\nimport { AvatarEdit } from 'src/pages/UserConfiguration/subpages/Basic/editDialogs';\nimport usePrevious from 'src/helpers/hooks/usePrevious';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { SNACKBAR_VARIANT } from 'src/models/common.model';\nimport snackbarActions from 'src/redux/actions/snackbar.actions';\nimport { ContentHeading } from '../../subcomponents';\nimport { EditName, DeleteAvatar } from './editDialogs';\nimport { useStyles } from '../styles';\n\nconst Settings = () => {\n const { t } = useTranslation();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const dispatch = useDispatch();\n const classes = useStyles();\n const currentIdentity = useSelector((state) => state.identityStore.currentIdentity);\n const workspaceInfo = useSelector((state) => state.identityStore.workspaceInfo);\n const workspaceInfoStatus = useSelector((state) => state.identityStore.workspaceInfoStatus);\n const updateWorkspaceInfoStatus = useSelector(\n (state) => state.identityStore.updateWorkspaceInfoStatus\n );\n const workspaceDetails = useSelector((state) => state.identityStore.workspaceDetails);\n const updateWorkspaceDetailsStatus = useSelector(\n (state) => state.identityStore.updateWorkspaceDetailsStatus\n );\n const putWorkspaceAvatarRequestStatus = useSelector(\n (state) => state.avatarStore.putWorkspaceAvatarRequestStatus\n );\n const structureIdentity = useSelector((state) => state.identityStore.structure);\n const workspaceAvatar = useSelector((state) => state.avatarStore.workspaceAvatar);\n\n const availableIdentities = structureIdentity\n ? structureIdentity.filter((structure) => structure.identity.active)\n : structureIdentity;\n\n const [editedSubpage, setEditedSubpage] = useState(null);\n const [deleteAvatarDialogOpen, setDeleteAvatarDialogOpen] = useState(false);\n const [titleDialog, setTitleDialog] = useState('Title');\n const [workspaceData, updateWorkspaceData] = useState({\n name: '',\n });\n\n useEffect(() => {\n if (currentIdentity) {\n dispatch(identityActions.fetchWorkspaceInfo(currentIdentity?.workspace?.workspaceId));\n }\n }, [dispatch, currentIdentity]);\n\n useEffect(() => {\n if (currentIdentity) {\n dispatch(avatarActions.getWorkspaceAvatar(currentIdentity?.workspace?.workspaceId));\n }\n }, [dispatch, currentIdentity]);\n\n const prevInfoStatus = usePrevious(workspaceInfoStatus);\n const prevDetailsStatus = usePrevious(updateWorkspaceDetailsStatus);\n const prevUpdateInfoStatus = usePrevious(updateWorkspaceInfoStatus);\n const prevPutWorkspaceAvatarRequestStatus = usePrevious(putWorkspaceAvatarRequestStatus);\n\n useEffect(() => {\n if (prevInfoStatus === RequestStatus.PENDING && workspaceInfoStatus === RequestStatus.SUCCESS) {\n updateWorkspaceData({\n name: workspaceDetails.name,\n });\n }\n }, [\n workspaceData,\n workspaceInfo,\n updateWorkspaceData,\n workspaceDetails,\n prevInfoStatus,\n workspaceInfoStatus,\n ]);\n const editWorkspaceData = (workspace, type) => {\n const workspaceId = currentIdentity?.workspace?.workspaceId;\n if (type === 'name') {\n dispatch(\n identityActions.updateWorkspaceDetails(workspaceId, {\n name: workspace.name,\n description: '',\n })\n );\n }\n };\n\n const copyWorkspaceId = () => {\n dispatch(\n snackbarActions.enqueueSnackbar(SNACKBAR_VARIANT.INFO, t('workspacePage.settings.copied'))\n );\n navigator.clipboard.writeText(workspaceDetails.workspaceId).then();\n };\n\n useEffect(() => {\n if (prevDetailsStatus === RequestStatus.PENDING) {\n if (updateWorkspaceDetailsStatus === RequestStatus.SUCCESS) {\n handleBack();\n updateWorkspaceData({\n ...workspaceData,\n name: workspaceDetails.name,\n });\n }\n }\n }, [\n updateWorkspaceDetailsStatus,\n prevDetailsStatus,\n t,\n dispatch,\n workspaceData,\n workspaceDetails,\n ]);\n\n useEffect(() => {\n if (prevUpdateInfoStatus === RequestStatus.PENDING) {\n if (updateWorkspaceInfoStatus === RequestStatus.SUCCESS) {\n handleBack();\n updateWorkspaceData({\n ...workspaceData,\n });\n }\n }\n }, [updateWorkspaceInfoStatus, dispatch, prevUpdateInfoStatus, t, workspaceData, workspaceInfo]);\n\n useEffect(() => {\n if (prevPutWorkspaceAvatarRequestStatus === RequestStatus.PENDING) {\n if (putWorkspaceAvatarRequestStatus === RequestStatus.SUCCESS) {\n handleBack();\n dispatch(avatarActions.getWorkspaceAvatar(currentIdentity?.workspace?.workspaceId));\n avatarActions.refreshAvatars(\n availableIdentities.map((structure) => structure.workspace.workspaceId),\n 'workspace'\n );\n }\n }\n }, [\n dispatch,\n prevPutWorkspaceAvatarRequestStatus,\n putWorkspaceAvatarRequestStatus,\n currentIdentity,\n availableIdentities,\n ]);\n\n const deleteAvatarDialogToggle = {\n open: () => {\n setDeleteAvatarDialogOpen(true);\n },\n close: () => {\n setDeleteAvatarDialogOpen(false);\n },\n };\n\n const handleBack = () => {\n setEditedSubpage(null);\n };\n\n const updateWorkspaceAvatar = (name, value) => {\n dispatch(avatarActions.updateWorkspaceAvatar(currentIdentity?.workspace?.workspaceId, value));\n };\n\n const renderEditPage = (name) => {\n switch (name) {\n case 'avatar':\n return (\n \n );\n case 'name':\n return (\n editWorkspaceData(data, 'name')}\n isPending={updateWorkspaceDetailsStatus === RequestStatus.PENDING}\n />\n );\n default:\n return null;\n }\n };\n\n const renderSummaryPage = () => (\n
    \n {t('workspacePage.drawer.basicSettings')}\n\n \n \n \n {\n setEditedSubpage('avatar');\n setTitleDialog(t('workspacePage.editModals.title3'));\n }}\n onDeleteClick={workspaceAvatar ? deleteAvatarDialogToggle.open : null}\n >\n \n {workspaceData.name}\n \n \n\n {\n setEditedSubpage('name');\n setTitleDialog(t('workspacePage.editModals.title1'));\n }}\n >\n \n {workspaceData.name}\n \n \n }\n buttonText={t('workspacePage.settings.copy')}\n >\n \n {workspaceDetails.workspaceId}\n \n \n \n \n \n \n
    \n );\n\n return (\n <>\n {renderSummaryPage()}\n \n {editedSubpage && (\n
    \n
    {renderEditPage(editedSubpage)}
    \n
    \n )}\n \n \n );\n};\n\nexport default Settings;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Button, createStyles, makeStyles, Typography } from '@material-ui/core';\nimport { AddAndRemoveUsers, SmallContentWithScrollbar } from 'src/components';\nimport { useDispatch } from 'react-redux';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { isMail } from '../../../../../helpers/globalUtils';\n\nconst useStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n addNextButton: {\n textAlign: 'left',\n justifyContent: 'flex-start',\n },\n content: {\n '& > *:not(:last-child)': {\n marginBottom: spacing(0.75),\n },\n },\n innerContent: {\n margin: `0 0 ${spacing(-1)}px 0`,\n },\n }),\n { index: 0 }\n);\n\nconst InviteUsers = ({ workspaceId }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n const [clearSignersInput, setClearSignersInput] = useState(false);\n const [invitedSigners, setInvitedSigners] = useState([]);\n\n const handleSendInvitations = () => {\n if (invitedSigners.length) {\n const emailsArray = invitedSigners.map((user) => user.email);\n dispatch(identityActions.inviteUserToWorkspace(workspaceId, emailsArray));\n }\n };\n\n const handleRoleDelete = (roleId) => {\n setInvitedSigners(invitedSigners.filter((invitedRole) => invitedRole.id !== roleId));\n };\n\n const handleNewEmailAdd = (emailRole) => {\n if (isMail(emailRole.email)) {\n if (!invitedSigners.find((role) => role.name === emailRole.email)) {\n setClearSignersInput(true);\n setInvitedSigners([...invitedSigners, emailRole]);\n }\n }\n };\n\n useEffect(() => {\n if (clearSignersInput) {\n setClearSignersInput(false);\n }\n }, [clearSignersInput]);\n\n return (\n {t('workspacePage.groups.invite.description')}}\n endContent={\n \n {t('common.invite')}\n \n }\n classes={{\n content: classes.content,\n }}\n >\n handleNewEmailAdd(emailRole)}\n onDeleteClick={(roleId) => handleRoleDelete(roleId)}\n />\n \n );\n};\n\nInviteUsers.propTypes = {\n workspaceId: PropTypes.string,\n};\n\nexport default InviteUsers;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Button,\n CircularProgress,\n createStyles,\n makeStyles,\n Typography,\n useMediaQuery,\n} from '@material-ui/core';\nimport { DataTable, SmallContentWithScrollbar } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FileColsConfig } from 'src/helpers/fileAndFolderColsConfig';\nimport { useTranslation } from 'react-i18next';\nimport documentActions from 'src/redux/actions/documents.actions';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\n\nconst useStyles = makeStyles(\n ({ spacing }) =>\n createStyles({\n content: {\n marginBottom: spacing(2),\n },\n buttonBox: {\n display: 'flex',\n justifyContent: 'center',\n },\n }),\n { index: 0 }\n);\n\nconst DeleteUser = ({ handleDeleteUser, repeatCheckDocumentsUser }) => {\n const { t } = useTranslation();\n const classes = useStyles();\n const dispatch = useDispatch();\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n const [didMount, setDidMount] = useState(false);\n const [filesColConfig, setFilesColConfig] = useState(false);\n const { fetchDocumentsStatus, documents } = useSelector((state) => state.documentsStore);\n const { deleteUserFromWorkspaceStatus } = useSelector((state) => state.workspaceUserStore);\n const hasAnyDocument = documents?.length > 0;\n const selectedFilesRows = [];\n const sortKey = 'createdAt';\n const sortOrder = 'desc';\n const iconWidth = 40;\n const isLoadingFiles = fetchDocumentsStatus === RequestStatus.PENDING;\n const isPending =\n deleteUserFromWorkspaceStatus === RequestStatus.PENDING || repeatCheckDocumentsUser;\n\n useEffect(() => {\n setDidMount(true);\n return () => {\n setDidMount(false);\n dispatch(documentActions.clearDocumentsStore());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch]);\n\n useEffect(() => {\n if (didMount) {\n setFilesColConfig(FileColsConfig(t, true, true, true));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [didMount]);\n\n const deleteUserItemtyList = () => {\n handleDeleteUser(true);\n };\n\n const getDocTypePath = (row) => {\n if (row.documentType.includes('dsl')) return 'certificate';\n return 'document';\n };\n\n return (\n {t('workspacePage.users.checkDelete.description')}}\n endContent={\n
    \n }\n >\n {t('workspacePage.users.checkDelete.btn')}\n \n
    \n }\n classes={{\n content: classes.content,\n }}\n >\n {hasAnyDocument && filesColConfig && (\n {\n if (!smallScreen) {\n const docTypePath = getDocTypePath(row);\n window.open(`/${docTypePath}/${row.id}`, '_blank');\n }\n }}\n onDblClick={(row) => {\n if (!smallScreen) {\n const docTypePath = getDocTypePath(row);\n window.open(`/${docTypePath}/${row.id}`, '_blank');\n }\n }}\n selectedRows={selectedFilesRows}\n sortBy={sortKey}\n sortOrder={sortOrder}\n isLoading={isLoadingFiles}\n paginationType=\"infinite\"\n defaultIcon=\"file\"\n smallScreen={smallScreen}\n disableHeader={smallScreen}\n noItems={{\n label: t('drivePage.documentsTable.noItems'),\n }}\n />\n )}\n \n );\n};\n\nDeleteUser.propTypes = {\n repeatCheckDocumentsUser: PropTypes.bool,\n handleDeleteUser: PropTypes.func,\n};\n\nexport default DeleteUser;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ spacing, palette }) =>\n createStyles({\n card: {\n marginBottom: spacing(3),\n },\n textCol: {\n paddingRight: spacing(9),\n },\n divider: {\n marginBottom: spacing(2),\n marginTop: spacing(2),\n },\n buttonsWrapper: {\n display: 'flex',\n },\n wideButton: {\n minWidth: 240,\n marginRight: spacing(1),\n },\n infoCol: {},\n cancelAt: {\n marginTop: spacing(3),\n },\n content: {\n display: 'flex',\n },\n notStarted: {\n color: palette.info.main,\n fontWeight: 500,\n },\n trial: {\n color: palette.success.main,\n fontWeight: 500,\n },\n trialCompleted: {\n color: palette.error.main,\n fontWeight: 500,\n },\n active: {\n color: palette.success.main,\n fontWeight: 500,\n },\n completed: {\n color: palette.error.main,\n fontWeight: 500,\n },\n bar: {\n height: spacing(3),\n width: 200,\n borderRadius: 20,\n },\n innerBar: {\n borderRadius: 20,\n },\n barWrapper: {\n marginTop: spacing(3),\n position: 'relative',\n },\n barText: {\n position: 'absolute',\n left: 0,\n zIndex: 1,\n color: palette.common.white,\n paddingLeft: spacing(1),\n fontSize: 12,\n fontWeight: 600,\n top: 0,\n lineHeight: '24px',\n },\n }),\n { index: 0 }\n);\n","import React, { useState } from 'react';\nimport {\n Button,\n Card,\n CardContent,\n CircularProgress,\n Divider,\n LinearProgress,\n Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport {\n BillingProduct,\n BillingProductStatus,\n BillingProductType,\n checkSubscription,\n} from 'src/models/billing.model';\nimport { SubscriptionChangeType, userComActions } from 'src/redux/actions/userCom.actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport billingActions from 'src/redux/actions/billing.actions';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport { RootState } from 'src/redux/reducers';\nimport { RequestStatus } from 'src/helpers/reduxReuquest.util';\nimport { DateTimeFormats } from 'src/helpers/dateTimeFormats';\nimport { useStyles } from './styles';\n\ntype UsageBarProps = {\n product: BillingProduct | undefined;\n};\nconst UsageBar = ({ product }: UsageBarProps): JSX.Element => {\n const classes = useStyles();\n const { t } = useTranslation();\n const { daysLeft } = checkSubscription(product);\n return (\n
    \n
    \n {t('workspacePage.subscription.daysLeft', { count: daysLeft })}\n
    \n \n
    \n );\n};\n\ninterface SubscriptionProductProps {\n product: BillingProduct | undefined;\n type: BillingProductType;\n}\n\nconst SubscriptionProduct = ({ product, type }: SubscriptionProductProps): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const classes = useStyles();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const workspaceDetails = useSelector(IdentitySelector.selectWorkspaceDetails);\n const workspaceName = workspaceDetails?.name || '';\n const { isCustomerCreated, setCustomerStatus } = useSelector(\n (state: RootState) => state.billingStore\n );\n\n const [startTrialLoading, setStartTrialLoading] = useState(false);\n const isCustomerCreating = setCustomerStatus === RequestStatus.PENDING;\n\n const title =\n type === BillingProductType.EsignDrive\n ? t('workspacePage.subscription.esignDrive')\n : t('workspacePage.subscription.certificates');\n\n // on Start trial clicked\n const onStartTrial = () => {\n if (!workspaceId) return;\n setStartTrialLoading(true);\n if (isCustomerCreated) {\n userComActions.subscription.subTrialStarted(type, workspaceId);\n dispatch(billingActions.setTrialSubscription(workspaceId, type));\n } else {\n dispatch(\n billingActions.setCustomer(workspaceId, workspaceName, () => {\n userComActions.subscription.subTrialStarted(type, workspaceId);\n dispatch(billingActions.setTrialSubscription(workspaceId, type));\n })\n );\n }\n };\n\n // Action - Contact sales when no product\n const onContactSales = (variant: SubscriptionChangeType): void => {\n if (workspaceId) userComActions.subscription.subChangesNeeded(type, variant, workspaceId);\n };\n\n return (\n \n \n {title}\n\n \n\n
    \n
    \n \n {t('workspacePage.subscription.subscriptionStatus')}\n \n {product && product.status === BillingProductStatus.Active && product.cancelAt && (\n \n {t('workspacePage.subscription.endDate')}\n \n )}\n {product && product.status === BillingProductStatus.Trialing && (\n \n {t('workspacePage.subscription.usage')}\n \n )}\n
    \n
    \n {!product && (\n \n {t('workspacePage.subscription.notStarted')}\n \n )}\n {product && product.status === BillingProductStatus.Active && (\n <>\n \n {t('workspacePage.subscription.active')}\n \n {product.cancelAt && (\n \n {moment(product.cancelAt).format(DateTimeFormats.dateShort)}\n \n )}\n \n )}\n {product && product.status === BillingProductStatus.Trialing && (\n <>\n \n {t('workspacePage.subscription.trial')}\n \n \n \n )}\n {product && product.status === BillingProductStatus.TrialFinished && (\n \n {t('workspacePage.subscription.trialCompleted')}\n \n )}\n {product && product.status === BillingProductStatus.Canceled && (\n \n {t('workspacePage.subscription.canceled')}\n \n )}\n
    \n
    \n\n \n
    \n {!product && (\n <>\n }\n onClick={onStartTrial}\n className={classes.wideButton}\n color=\"secondary\"\n size=\"small\"\n >\n {t('workspacePage.subscription.startTrial')}\n \n onContactSales(SubscriptionChangeType.NewPurchase)}\n variant=\"text\"\n size=\"small\"\n >\n {t('workspacePage.subscription.contactSales')}\n \n \n )}\n {product && product.status === BillingProductStatus.Trialing && (\n <>\n onContactSales(SubscriptionChangeType.PurchaseDuringTrial)}\n className={classes.wideButton}\n color=\"secondary\"\n size=\"small\"\n >\n {t('workspacePage.subscription.contactSalesUpgrade')}\n \n onContactSales(SubscriptionChangeType.TrialExtension)}\n variant=\"text\"\n size=\"small\"\n >\n {t('workspacePage.subscription.extendTrial')}\n \n \n )}\n {product && product.status === BillingProductStatus.TrialFinished && (\n <>\n onContactSales(SubscriptionChangeType.PurchaseAfterTrial)}\n className={classes.wideButton}\n color=\"secondary\"\n size=\"small\"\n >\n {t('workspacePage.subscription.contactSalesPurchase')}\n \n \n )}\n {product && product.status === BillingProductStatus.Canceled && (\n <>\n onContactSales(SubscriptionChangeType.NewPurchase)}\n className={classes.wideButton}\n color=\"secondary\"\n size=\"small\"\n >\n {t('workspacePage.subscription.contactSalesPurchase')}\n \n \n )}\n\n {product && product.status === BillingProductStatus.Active && (\n <>\n onContactSales(SubscriptionChangeType.Upgrade)}\n className={classes.wideButton}\n color=\"secondary\"\n size=\"small\"\n >\n {t('workspacePage.subscription.contactSalesUpgrade')}\n \n onContactSales(SubscriptionChangeType.Cancellation)}\n variant=\"text\"\n size=\"small\"\n >\n {t('workspacePage.subscription.cancelSubscription')}\n \n \n )}\n
    \n
    \n
    \n );\n};\n\nexport default SubscriptionProduct;\n","import React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { IdentitySelector } from 'src/redux/selectors/identity.selector';\nimport BillingActions from 'src/redux/actions/billing.actions';\nimport { RootState } from 'src/redux/reducers';\nimport { BillingProductType } from 'src/models/billing.model';\nimport SubscriptionProduct from './SubscriptionProduct';\nimport { ContentHeading } from '../../subcomponents';\n\nconst Subscription = (): JSX.Element => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const workspaceId = useSelector(IdentitySelector.selectWorkspaceId);\n const { subscriptions } = useSelector((state: RootState) => state.billingStore);\n const esignProduct = subscriptions.find((el) => el.productType === BillingProductType.EsignDrive);\n const certProduct = subscriptions.find(\n (el) => el.productType === BillingProductType.Certificates\n );\n\n useEffect(() => {\n if (workspaceId) {\n dispatch(BillingActions.fetchSubscriptions(workspaceId));\n dispatch(BillingActions.fetchCustomer(workspaceId));\n }\n }, [dispatch, workspaceId]);\n\n return (\n
    \n {t('workspacePage.drawer.subscriptionProducts')}\n \n \n
    \n );\n};\n\nexport default Subscription;\n","import { Drive as DriveIcon, ViewBoxes, Wallet } from 'src/components/CustomIcon';\nimport React from 'react';\n\nexport const Links = (t, full) =>\n full\n ? [\n {\n label: t('workspacePage.drawer.basic'),\n url: '/workspace-settings/basic',\n icon: ,\n children: [\n {\n label: t('workspacePage.drawer.basicSummary'),\n url: '/workspace-settings/basic/summary',\n },\n {\n label: t('workspacePage.drawer.basicSettings'),\n url: '/workspace-settings/basic/settings',\n },\n ],\n },\n {\n label: t('workspacePage.drawer.userManagement'),\n url: '/workspace-settings/user-management',\n icon: ,\n children: [\n {\n label: t('workspacePage.drawer.userManagementUser'),\n url: '/workspace-settings/user-management/users',\n },\n {\n label: t('workspacePage.drawer.userManagementGroup'),\n url: '/workspace-settings/user-management/groups',\n },\n ],\n },\n {\n label: t('workspacePage.drawer.subscription'),\n url: '/workspace-settings/subscription',\n icon: ,\n children: [\n {\n label: t('workspacePage.drawer.subscriptionProducts'),\n url: '/workspace-settings/subscription/products',\n },\n ],\n },\n ]\n : [\n {\n label: t('workspacePage.drawer.basic'),\n url: '/workspace-settings/basic',\n icon: ,\n children: [\n {\n label: t('workspacePage.drawer.basicSettings'),\n url: '/workspace-settings/basic/settings',\n },\n ],\n },\n {\n label: t('workspacePage.drawer.userManagement'),\n url: '/workspace-settings/user-management',\n icon: ,\n children: [\n {\n label: t('workspacePage.drawer.userManagementUser'),\n url: '/workspace-settings/user-management/users',\n },\n {\n label: t('workspacePage.drawer.userManagementGroup'),\n url: '/workspace-settings/user-management/groups',\n },\n ],\n },\n {\n label: t('workspacePage.drawer.subscription'),\n url: '/workspace-settings/subscription',\n icon: ,\n children: [\n {\n label: t('workspacePage.drawer.subscriptionProducts'),\n url: '/workspace-settings/subscription/products',\n },\n ],\n },\n ];\n\nexport default Links;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport workspaceGroupsActions from 'src/redux/actions/workspaceGroups.actions';\nimport identityActions from 'src/redux/actions/identity.actions';\nimport { Route, Switch, Redirect, useHistory, useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { goBack } from 'src/helpers/goBack';\nimport { FullScreenDialog, FullScreenDialogContentWrapper } from 'src/components';\nimport { Groups, Settings, Users, Subscription } from './subpages';\nimport { Links } from './Links';\n\nconst WorkspaceConfigurationPage = () => {\n const history = useHistory();\n const dispatch = useDispatch();\n const location = useLocation();\n const { t } = useTranslation();\n const { isOwner } = useSelector((state) => state.identityStore, undefined);\n\n useEffect(() => {\n if (!isOwner && isOwner !== null) {\n history.push('/');\n }\n return () => {\n dispatch(workspaceGroupsActions.clearWorkspaceGroupsStore());\n dispatch(identityActions.clearWorkspaceUsersStore());\n };\n }, [isOwner, dispatch, history]);\n\n const handleClose = () => {\n goBack(history);\n };\n\n const title = Links(t, false)\n .map((link) => link.children)\n .flat()\n .find((link) => link.url === location.pathname)?.label;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default WorkspaceConfigurationPage;\n","import React, { createContext, useState } from 'react';\nimport { node } from 'prop-types';\n\nconst StepperContext = createContext({});\n\nexport const TRANSFER_OWNERSHIP_STEPS = {\n TRANSFER_OWNERSHIP: 'TRANSFER_OWNERSHIP',\n TRANSFER_OWNERSHIP_BY_EMAIL: 'TRANSFER_OWNERSHIP_BY_EMAIL',\n};\n\nconst StepperContextProvider = ({ children }) => {\n const [currentStep, setCurrentStep] = useState(TRANSFER_OWNERSHIP_STEPS.TRANSFER_OWNERSHIP);\n\n return (\n \n {children}\n \n );\n};\n\nStepperContextProvider.propTypes = {\n children: node,\n};\n\nexport { StepperContext, StepperContextProvider };\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n items: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minHeight: '100%',\n maxWidth: breakpoints.values.sm,\n margin: '0 auto',\n '& > *:not(:last-child)': {\n marginBottom: 14,\n },\n },\n }),\n { index: 0 }\n);\n","import { Button, TextField, Typography, useMediaQuery } from '@material-ui/core';\nimport { SmallContentWithScrollbar } from 'src/components';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { DocumentRole } from 'src/models/document.model';\nimport certificateManagementActions from 'src/redux/actions/certificateManagement.actions';\nimport documentManagementActions from 'src/redux/actions/documentManagement.actions';\nimport { moduleName as dslService } from 'src/redux/services/documentDSL.service';\nimport { object, string } from 'yup';\nimport { useStyles } from './styles';\n\nconst validateSchema = object({\n Email: string().email().required(),\n});\n\nconst TransferByEmailStep = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const dispatch = useDispatch();\n const { id } = useParams();\n const [email, setEmail] = useState('');\n const [error, setError] = useState(null);\n const classes = useStyles();\n\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const handleValidation = async () => {\n try {\n await validateSchema.validate({ Email: email });\n } catch (err) {\n setError(err.message);\n }\n };\n\n const handleChange = (e) => {\n setError('');\n setEmail(e.target.value);\n };\n\n const handleSubmit = () => {\n const callback = () => {\n history.goBack();\n };\n\n dispatch(\n certificateManagementActions.transferOwnership(id, DocumentRole.HOLDER, email, callback)\n );\n };\n\n useEffect(() => {\n dispatch(documentManagementActions.getDocumentInvitations(id, dslService));\n }, [id, dispatch]);\n\n return (\n {t('transferOwnership.title')}\n }\n endContent={\n \n {t('transferOwnership.submit')}\n \n }\n >\n
    \n {t('transferOwnership.steps.transferByEmail.title')}\n \n
    \n \n );\n};\n\nexport { TransferByEmailStep };\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n items: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minHeight: '100%',\n maxWidth: breakpoints.values.sm,\n margin: '0 auto',\n '& > *:not(:last-child)': {\n marginBottom: 14,\n },\n },\n }),\n { index: 0 }\n);\n","import { Button, CircularProgress, Typography, useMediaQuery } from '@material-ui/core';\nimport { ListChoiceButton, SmallContentWithScrollbar } from 'src/components';\nimport { Download, Email } from 'src/components/CustomIcon';\nimport React, { useState, useContext } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport documentInvitiationActions from 'src/redux/actions/documentInvitiation.actions';\nimport { StepperContext, TRANSFER_OWNERSHIP_STEPS } from '../../context/SteperContext';\nimport { useStyles } from './styles';\nimport TransferOwnershipWebsocket from './TransferOwnershipWebsocket';\n\nconst TRANSFER_OPTIONS = {\n BY_EMAIL: 'BY_EMAIL',\n GENERATE_PDF: 'GENERATE_PDF',\n};\n\nconst TransferOwnershipStep = () => {\n const { setCurrentStep } = useContext(StepperContext);\n const history = useHistory();\n const dispatch = useDispatch();\n const [option, setOption] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const { id: documentId } = useParams();\n const { t } = useTranslation();\n\n const classes = useStyles();\n\n const handleChooseByEmail = () => {\n setOption(TRANSFER_OPTIONS.BY_EMAIL);\n };\n\n const handleChooseByPDF = () => {\n setOption(TRANSFER_OPTIONS.GENERATE_PDF);\n };\n\n const smallScreen = useMediaQuery(({ breakpoints }) => breakpoints.down('sm'));\n\n const handleSubmit = () => {\n if (option === TRANSFER_OPTIONS.GENERATE_PDF) {\n setIsLoading(true);\n dispatch(documentInvitiationActions.downloadTransferOwnershipPDF(documentId));\n }\n\n if (option === TRANSFER_OPTIONS.BY_EMAIL) {\n setCurrentStep(TRANSFER_OWNERSHIP_STEPS.TRANSFER_OWNERSHIP_BY_EMAIL);\n }\n };\n\n const documentDownloadCallback = () => {\n setTimeout(() => {\n setIsLoading(false);\n history.push(`/certificate/${documentId}`);\n }, 1000);\n };\n\n return (\n <>\n \n \n {t('transferOwnership.title')}\n \n }\n endContent={\n }\n >\n {option === TRANSFER_OPTIONS.GENERATE_PDF ? t('common.generate') : t('common.continue')}\n \n }\n >\n
    \n }\n label={t('transferOwnership.steps.chooseTransferType.sendByEmail.title')}\n description={t('transferOwnership.steps.chooseTransferType.sendByEmail.caption')}\n onClick={handleChooseByEmail}\n selected={option === TRANSFER_OPTIONS.BY_EMAIL}\n />\n }\n label={t('transferOwnership.steps.chooseTransferType.generatePDF.title')}\n description={t('transferOwnership.steps.chooseTransferType.generatePDF.caption')}\n onClick={handleChooseByPDF}\n selected={option === TRANSFER_OPTIONS.GENERATE_PDF}\n />\n
    \n \n \n );\n};\n\nexport { TransferOwnershipStep };\n","import React, { useContext } from 'react';\nimport { StepperContext, TRANSFER_OWNERSHIP_STEPS } from '../context/SteperContext';\nimport { TransferByEmailStep, TransferOwnershipStep } from '../steps';\n\nconst StepResolver = () => {\n const { currentStep } = useContext(StepperContext);\n\n const Steps = {\n [TRANSFER_OWNERSHIP_STEPS.TRANSFER_OWNERSHIP]: ,\n [TRANSFER_OWNERSHIP_STEPS.TRANSFER_OWNERSHIP_BY_EMAIL]: ,\n };\n\n return Steps[currentStep];\n};\n\nexport default StepResolver;\n","import { makeStyles, createStyles } from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n ({ breakpoints }) =>\n createStyles({\n contentWrapper: {\n maxWidth: 690,\n },\n bottomButton: {\n minWidth: 388,\n display: 'flex',\n margin: '0 auto',\n [breakpoints.down('sm')]: {\n minWidth: 300,\n marginTop: 12,\n },\n },\n loaderWrapper: {\n height: 50,\n display: 'flex',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n pageWrapper: {\n '& #fullScreenDialogContent': {\n position: 'relative',\n },\n },\n }),\n { index: 0 }\n);\n","import { FullScreenDialog } from 'src/components';\n\nimport React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport StepResolver from './components/resolver/StepResolver';\nimport { StepperContextProvider } from './components/context/SteperContext';\n\nimport { useStyles } from './styles';\n\nconst TransferOwnership = () => {\n const classes = useStyles();\n const history = useHistory();\n\n const handleClose = () => {\n history.goBack();\n };\n\n return (\n
    \n \n \n \n \n \n
    \n );\n};\n\nexport default TransferOwnership;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\n\nimport '@fontsource/poppins/latin-300.css';\nimport '@fontsource/poppins/latin-ext-300.css';\nimport '@fontsource/poppins/latin-400.css';\nimport '@fontsource/poppins/latin-ext-400.css';\nimport '@fontsource/poppins/latin-500.css';\nimport '@fontsource/poppins/latin-ext-500.css';\nimport '@fontsource/poppins/latin-600.css';\nimport '@fontsource/poppins/latin-ext-600.css';\n\nimport '@fontsource/inter/latin-300.css';\nimport '@fontsource/inter/latin-ext-300.css';\nimport '@fontsource/inter/latin-400.css';\nimport '@fontsource/inter/latin-ext-400.css';\nimport '@fontsource/inter/latin-500.css';\nimport '@fontsource/inter/latin-ext-500.css';\nimport '@fontsource/inter/latin-600.css';\nimport '@fontsource/inter/latin-ext-600.css';\n\nimport { CssBaseline } from '@material-ui/core';\nimport { ThemeProvider } from '@material-ui/styles';\n\nimport reportWebVitals from 'src/reportWebVitals';\nimport theme from 'src/theme';\nimport store from 'src/redux/store';\nimport { App } from 'src/pages';\n\nReactDOM.render(\n \n \n \n \n \n ,\n document.getElementById('app')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}