{"version":3,"file":"js/application-94f0df2c0cef473ae592.js","mappings":"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","sources":["webpack:///./app/javascript/actions/chat.js","webpack:///./app/javascript/components/chat/shared/Muted.tsx","webpack:///./app/javascript/components/chat/ChatList/Row.js","webpack:///./app/javascript/components/chat/ChatList/index.js","webpack:///./app/javascript/selectors/chat/apiRequests.js","webpack:///./app/javascript/components/chat/shared/GroupedItems.js","webpack:///./app/javascript/components/chat/ChatNew/Tile.js","webpack:///./app/javascript/components/chat/ChatNew/index.js","webpack:///./app/javascript/components/chat/ChatRoom/QuickChatSelect.js","webpack:///./app/javascript/components/chat/ChatRoom/ChatRoomSettingsButton.js","webpack:///./app/javascript/components/chat/shared/ScrollContainer.js","webpack:///./app/javascript/components/chat/ChatRoom/ChatMessage/MessageAuthor.js","webpack:///./app/javascript/components/chat/ChatRoom/ChatMessage/MessageSettings.tsx","webpack:///./app/javascript/components/chat/utils/emojis.js","webpack:///./app/javascript/components/chat/utils/markdown.js","webpack:///./app/javascript/components/chat/ChatRoom/ChatMessage/MessageText.js","webpack:///./app/javascript/components/chat/ChatRoom/ChatMessage/QuotedMessage.js","webpack:///./app/javascript/components/chat/ChatRoom/ChatMessage/MessageDeliveryStatus.js","webpack:///./app/javascript/components/chat/ChatRoom/ChatMessage/index.js","webpack:///./app/javascript/components/chat/ChatRoom/DaySeparator.js","webpack:///./app/javascript/components/chat/ChatRoom/Chat.js","webpack:///./app/javascript/components/chat/ChatRoom/MessageComposer/MessageToQuote.js","webpack:///./app/javascript/components/chat/ChatRoom/MessageComposer/index.tsx","webpack:///./app/javascript/selectors/chat/composer.js","webpack:///./app/javascript/hooks/usePersistentSate.ts","webpack:///./app/javascript/components/chat/ChatRoom/index.js","webpack:///./app/javascript/components/chat/shared/BackButton.js","webpack:///./app/javascript/components/chat/shared/ChatHeader.tsx","webpack:///./app/javascript/components/chat/shared/OnlineStatus.js","webpack:///./app/javascript/components/chat/shared/ChatImage.js","webpack:///./app/javascript/components/chat/shared/Composing.tsx","webpack:///./app/javascript/components/chat/shared/Notification.js","webpack:///./app/javascript/components/layout/GroupNavigation.tsx","webpack:///./app/javascript/components/shared/Loading.tsx","webpack:///./app/javascript/components/shared/MemberSelect.tsx","webpack:///./app/javascript/components/shared/Pagination.tsx","webpack:///./app/javascript/components/shared/Spectrum.tsx","webpack:///./app/javascript/components/shared/TabBar.tsx","webpack:///./app/javascript/components/shared/fields/TextField.tsx","webpack:///./app/javascript/helpers/components/wrapProvider.js","webpack:///./app/javascript/helpers/legacy/backbone/createAdaptBackboneView.js","webpack:///./app/javascript/helpers/legacy/backbone/connectBackbone.js","webpack:///./app/javascript/helpers/legacy/adaptBackboneView.js","webpack:///./app/javascript/helpers/queryClient.tsx","webpack:///./app/javascript/helpers/tixxt-router/compilation.tsx","webpack:///./app/javascript/helpers/tixxt-router.tsx","webpack:///./app/javascript/helpers/tixxt-router/history-events.tsx","webpack:///./app/javascript/helpers/useQueryParams.ts","webpack:///./app/javascript/hooks/useMaxHeight.ts","webpack:///./app/javascript/layout/togglebar.ts","webpack:///./app/javascript/controllers/application.js","webpack:///./app/javascript/controllers/accordion_scroll_controller.js","webpack:///./app/javascript/controllers/administration/activitystream/close_activity_reply_month_controller.js","webpack:///./app/javascript/components/shared/Flash.tsx","webpack:///./app/javascript/components/administration/appointments/categories/CategoryRow.tsx","webpack:///./app/javascript/components/shared/InfoText.tsx","webpack:///./app/javascript/components/administration/appointments/categories/CategoriesEditor.tsx","webpack:///./app/javascript/controllers/administration/edit_categories_controller.js","webpack:///./app/javascript/controllers/administration/groups/join_request_message_controller.jsx","webpack:///./app/javascript/controllers/administration/invites/send_batch_actions_controller.js","webpack:///./app/javascript/controllers/administration/invites/sent_controller.js","webpack:///./app/javascript/controllers/administration/invites/toggle_batch_actions_controller.js","webpack:///./app/javascript/controllers/administration/newsletter/drag_and_drop_controller.js","webpack:///./app/javascript/controllers/administration/newsletter/interval_controller.js","webpack:///./app/javascript/controllers/administration/newsletter/unlayer_form_controller.js","webpack:///./app/javascript/controllers/administration/role_assignments_controller.js","webpack:///./app/javascript/controllers/administration/teams/fallback_upn_assignments_controller.js","webpack:///./app/javascript/controllers/clipboard_controller.js","webpack:///./app/javascript/controllers/external_activitystreams_controller.js","webpack:///./app/javascript/controllers/invites/handle_external_invite_controller.js","webpack:///./app/javascript/controllers/ministry_controller.js","webpack:///./app/javascript/controllers/shared/go_back_button_controller.js","webpack:///./app/javascript/components/administration/propertySets/properties/selection/finalizeSelectionOptions.js","webpack:///./app/javascript/components/administration/propertySets/TabbableFields.tsx","webpack:///./app/javascript/components/administration/propertySets/properties/selection/SelectionOptionsFields.tsx","webpack:///./app/javascript/components/administration/propertySets/properties/PropertyForm.tsx","webpack:///./app/javascript/components/administration/propertySets/BasicPropertySetForm.tsx","webpack:///./app/javascript/components/administration/propertySets/modifications/AddOptions.tsx","webpack:///./app/javascript/components/administration/propertySets/modifications/ModificationForm.tsx","webpack:///./app/javascript/components/administration/propertySets/ModifiedPropertySetForm.tsx","webpack:///./app/javascript/components/administration/propertySets/Editor.tsx","webpack:///./app/javascript/components/administration/PropertySetEdit.tsx","webpack:///./app/javascript/components/administration/PropertySetEditWrapper.js","webpack:///./app/javascript/controllers/shared/property_set_edit_controller.jsx","webpack:///./app/javascript/controllers/shared/select_all_controller.js","webpack:///./app/javascript/controllers/shared/tabbar_controller.js","webpack:///./app/javascript/controllers/shared/toggle_controller.js","webpack:///./app/javascript/components/authentication/api.js","webpack:///./app/javascript/components/authentication/RouteContext.js","webpack:///./app/javascript/components/authentication/FactorActions.js","webpack:///./app/javascript/components/authentication/FactorsPage.js","webpack:///./app/javascript/components/authentication/AddTotpPage.js","webpack:///./app/javascript/components/authentication/DeleteFactorPage.js","webpack:///./app/javascript/components/authentication/ResetBackupCodesPage.js","webpack:///./app/javascript/components/authentication/AddEmailPage.js","webpack:///./app/javascript/components/authentication/FactorsWrapper.js","webpack:///./app/javascript/controllers/two_factor_authentications_controller.jsx","webpack:///./app/javascript/controllers/index.js","webpack:///./app/javascript/layout/bootstrap/index.js","webpack:///./app/javascript/layout/fontawesome.ts","webpack:///./app/javascript/components/appointments/ParticipantsList.js","webpack:///./app/javascript/selectors/invites.js","webpack:///./app/javascript/components/shared/UnreadBadge.tsx","webpack:///./app/javascript/components/appointments/AppointmentInvite.js","webpack:///./app/javascript/components/appointments/RecurringAppointmentInvite.js","webpack:///./app/javascript/components/appointments/AppointmentParticipation.js","webpack:///./app/javascript/components/invites/InvitesList.js","webpack:///./app/javascript/api/unreads.ts","webpack:///./app/javascript/components/appointments/Invites.js","webpack:///./app/javascript/components/appointments/api.ts","webpack:///./app/javascript/components/appointments/Contact.js","webpack:///./app/javascript/components/activitystreams/composer/index.module.css?dec3","webpack:///./app/javascript/components/activitystreams/composer/inlineTagPlugin.tsx","webpack:///./app/javascript/components/activitystreams/composer/withPlugins.tsx","webpack:///./app/javascript/hooks/useInterceptorPrompt.ts","webpack:///./app/javascript/components/activitystreams/composer/index.js","webpack:///./app/javascript/components/activitystreams/composer/TixxtComposerAdapter.tsx","webpack:///./app/javascript/components/activitystreams/replyComposer/ReplyComposer.module.css?7fa1","webpack:///./app/javascript/components/activitystreams/replyComposer/Attachments.tsx","webpack:///./app/javascript/components/activitystreams/replyComposer/api.js","webpack:///./app/javascript/components/shared/hooks/useFileProcessing.ts","webpack:///./app/javascript/components/activitystreams/replyComposer/index.tsx","webpack:///./app/javascript/components/shared/propertySets/EmbeddedValueSetForm.tsx","webpack:///./app/javascript/components/files/FolderForm.js","webpack:///./app/javascript/components/files/FolderSelectModal.tsx","webpack:///./app/javascript/components/files/FolderSelectionField.js","webpack:///./app/javascript/components/files/files.module.css","webpack:///./app/javascript/components/files/EditFileForm.js","webpack:///./app/javascript/components/shared/propertySets/ValueSetTable.tsx","webpack:///./app/javascript/components/files/BatchActions.js","webpack:///./app/javascript/components/globalSearch/urls.js","webpack:///./app/javascript/components/files/UrlContextProvider.js","webpack:///./app/javascript/components/shared/GenericErrorBoundary.tsx","webpack:///./app/javascript/helpers/pickImage.js","webpack:///./app/javascript/components/globalSearch/globalSearch.module.css?b83e","webpack:///./app/javascript/components/activitystreams/types/Note.tsx","webpack:///./app/javascript/components/activitystreams/types/Survey.tsx","webpack:///./app/javascript/components/activitystreams/types/Appointment.tsx","webpack:///./app/javascript/components/activitystreams/activitystreams.module.css?cd01","webpack:///./app/javascript/components/activitystreams/attachments/ImageAttachments.tsx","webpack:///./app/javascript/components/activitystreams/attachments/FileAttachments.tsx","webpack:///./app/javascript/components/activitystreams/attachments/LinkAttachment.tsx","webpack:///./app/javascript/components/activitystreams/attachments/TagAttachments.tsx","webpack:///./app/javascript/components/activitystreams/attachments/MentionAttachments.tsx","webpack:///./app/javascript/components/activitystreams/ActivityAttachments.tsx","webpack:///./app/javascript/components/globalSearch/hits/ActivityHit.js","webpack:///./app/javascript/components/activitystreams/types/Question.tsx","webpack:///./app/javascript/components/globalSearch/hits/MessageHit.js","webpack:///./app/javascript/components/appointments/DateRange.js","webpack:///./app/javascript/components/appointments/CalendarList.js","webpack:///./app/javascript/components/globalSearch/hits/AppointmentHit.js","webpack:///./app/javascript/components/globalSearch/hits/RecurringAppointmentHit.js","webpack:///./app/javascript/components/globalSearch/hits/ModifiedRecurringAppointmentHit.js","webpack:///./app/javascript/components/globalSearch/hits/Highlights.js","webpack:///./app/javascript/components/globalSearch/SearchQueryPaginationContext.ts","webpack:///./app/javascript/components/globalSearch/hits/FileHits.js","webpack:///./app/javascript/components/globalSearch/hits/FolderHits.js","webpack:///./app/javascript/components/globalSearch/hits/MembershipHit.js","webpack:///./app/javascript/components/globalSearch/hits/GroupHit.js","webpack:///./app/javascript/components/globalSearch/hits/PageHit.js","webpack:///./app/javascript/components/globalSearch/hits/ItemHit.tsx","webpack:///./app/javascript/components/globalSearch/api.ts","webpack:///./app/javascript/components/globalSearch/SearchResultPagination.tsx","webpack:///./app/javascript/components/globalSearch/SearchSortSelector.tsx","webpack:///./app/javascript/components/globalSearch/SearchQueryResult.tsx","webpack:///./app/javascript/components/globalSearch/FilterModule.tsx","webpack:///./app/javascript/components/globalSearch/SearchResults.js","webpack:///./app/javascript/components/globalSearch/EmbeddedSearchResults.js","webpack:///./app/javascript/components/files/search/mergeFileAndFolderProfiles.js","webpack:///./app/javascript/components/files/search/index.js","webpack:///./app/javascript/components/files/FolderActions.tsx","webpack:///./app/javascript/components/shared/FullSizeContent.tsx","webpack:///./app/javascript/hooks/useFullWidthLayout.ts","webpack:///./app/javascript/components/files/FolderListing.js","webpack:///./app/javascript/components/files/FileProfileRows.js","webpack:///./app/javascript/components/files/documents/documents.module.css?6c7b","webpack:///./app/javascript/components/files/documents/DocumentAction.js","webpack:///./app/javascript/components/files/documents/DocumentActions.js","webpack:///./app/javascript/components/files/documents/WopiActions.js","webpack:///./app/javascript/components/files/documents/OnlyOfficeActions.js","webpack:///./app/javascript/components/files/adaptedFileComponents.js","webpack:///./app/javascript/components/shared/styles/select.module.css?c5ac","webpack:///./app/javascript/components/shared/MeetinRoomSelect.js","webpack:///./app/javascript/components/shared/DropDown.tsx","webpack:///./app/javascript/components/shared/TimeAgo.tsx","webpack:///./app/javascript/components/shared/SimpleExporter.tsx","webpack:///./app/javascript/components/shared/RecurringAppointmentDecisionModal.tsx","webpack:///./app/javascript/components/shared/adaptedSharedComponents.js","webpack:///./app/javascript/components/shared/TranslationControls.tsx","webpack:///./app/javascript/components/appCreatorTemporary/LayoutToggle.js","webpack:///./app/javascript/components/appCreatorTemporary/LayoutSelect.js","webpack:///./app/javascript/components/appCreatorTemporary/DragSourceProperty.js","webpack:///./app/javascript/components/appCreatorTemporary/DropTargetColumn.js","webpack:///./app/javascript/components/appCreatorTemporary/ColumnConfigurator.js","webpack:///./app/javascript/components/appCreatorTemporary/TabConfigurator.js","webpack:///./app/javascript/components/appCreatorTemporary/ItemLayoutEditor.js","webpack:///./app/javascript/components/appCreatorTemporary/IntegrationsEditor/PropertiesReference.js","webpack:///./app/javascript/components/appCreatorTemporary/IntegrationsEditor/ActivityIntegration.js","webpack:///./app/javascript/components/appCreatorTemporary/IntegrationsEditor/SingleEmailIntegration.js","webpack:///./app/javascript/components/appCreatorTemporary/IntegrationsEditor/EmailIntegration.js","webpack:///./app/javascript/components/appCreatorTemporary/IntegrationsEditor/index.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/details/AssignedMember.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/details/AssignedMembers.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/details/Tags.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/details/Info.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/details/FileCounter.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/details/Title.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/details/ArchiveInfo.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/Card.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/Column.js","webpack:///./app/javascript/components/layout/portals.tsx","webpack:///./app/javascript/components/appCreatorTemporary/wallView/HeaderButtons.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/AppStage.js","webpack:///./app/javascript/components/appCreatorTemporary/wallView/UnassignedItems.js","webpack:///./app/javascript/components/appCreatorTemporary/ItemsWallView.js","webpack:///./app/javascript/components/appCreatorTemporary/adaptedAppCreatorComponents.js","webpack:///./app/javascript/helpers/selectors/networkSelectors.js","webpack:///./app/javascript/helpers/selectors/widgetbarSelectors.js","webpack:///./app/javascript/components/administration/widgetbar/fields/MultiselectField.module.css?0018","webpack:///./app/javascript/components/administration/widgetbar/fields/MultiselectField.tsx","webpack:///./app/javascript/components/administration/widgetbar/fields/NumberField.tsx","webpack:///./app/javascript/components/administration/widgetbar/fields/RadioField.tsx","webpack:///./app/javascript/components/administration/widgetbar/fields/SelectField.tsx","webpack:///./app/javascript/components/administration/widgetbar/fields/TextareaField.tsx","webpack:///./app/javascript/components/administration/widgetbar/fields/TextField.tsx","webpack:///./app/javascript/helpers/widgets/widgets.js","webpack:///./app/javascript/components/administration/widgetbar/fields/AdditionalCalendarField.tsx","webpack:///./app/javascript/components/administration/widgetbar/Widget.tsx","webpack:///./app/javascript/components/administration/widgetbar/WidgetTypes.tsx","webpack:///./app/javascript/components/administration/widgetbar/WidgetbarLayout.js","webpack:///./app/javascript/components/administration/widgetbar/WidgetProperties.tsx","webpack:///./app/javascript/components/administration/widgetbar/WidgetPropertiesLayout.tsx","webpack:///./app/javascript/components/shared/errors/NotFound.tsx","webpack:///./app/javascript/components/administration/widgetbar/WidgetbarForm.js","webpack:///./app/javascript/components/administration/WidgetbarEdit.tsx","webpack:///./app/javascript/components/administration/widgetbar/WidgetbarSelection.tsx","webpack:///./app/javascript/components/administration/WidgetbarIndex.tsx","webpack:///./app/javascript/components/administration/legalTexts/api.js","webpack:///./app/javascript/components/administration/legalTexts/LegalTextIndex.tsx","webpack:///./app/javascript/components/administration/imprints/api.js","webpack:///./app/javascript/components/shared/markdownEditor/MarkdownEditorAdapter.tsx","webpack:///./app/javascript/components/administration/imprints/ImprintEdit.tsx","webpack:///./app/javascript/components/administration/MembershipRolesManager.tsx","webpack:///./app/javascript/components/administration/adaptedAdministrationComponents.js","webpack:///./app/javascript/components/appointments/calendarSheet/AppointmentLine.js","webpack:///./app/javascript/components/appointments/calendarSheet/CalendarSheetCell.js","webpack:///./app/javascript/components/shared/hooks/useHover.js","webpack:///./app/javascript/components/appointments/CalendarSheet.js","webpack:///./app/javascript/components/rundschreiben/ExternalIdComponent.tsx","webpack:///./app/javascript/components/administration/designManager/themeToCss.ts","webpack:///./app/javascript/components/shared/GroupCategorySections.tsx","webpack:///./app/javascript/hooks/userbar.ts","webpack:///./app/javascript/components/layout/Userbar.tsx","webpack:///./app/javascript/components/layout/ModuleSwitcher.tsx","webpack:///./app/javascript/components/layout/TixxtModuleSwitcher.tsx","webpack:///./app/javascript/components/info/Userbar.tsx","webpack:///./app/javascript/components/shared/hooks/useOpenJoinRequests.ts","webpack:///./app/javascript/components/activitystreams/Userbar.tsx","webpack:///./app/javascript/components/messages/Userbar.tsx","webpack:///./app/javascript/components/appointments/Userbar.tsx","webpack:///./app/javascript/components/tasks/Userbar.tsx","webpack:///./app/javascript/components/files/Userbar.tsx","webpack:///./app/javascript/components/administration/Userbar.tsx","webpack:///./app/javascript/components/administration/api.ts","webpack:///./app/javascript/components/globalSearch/Userbar.tsx","webpack:///./app/javascript/components/memberships/Userbar.tsx","webpack:///./app/javascript/api/memberships.ts","webpack:///./app/javascript/components/directory/Userbar.tsx","webpack:///./app/javascript/components/pages/Userbar.tsx","webpack:///./app/javascript/components/appCreator/Userbar.tsx","webpack:///./app/javascript/components/layout/TixxtUserbar.tsx","webpack:///./app/javascript/components/layout/TixxtChatbar.tsx","webpack:///./app/javascript/components/layout/TixxtGroupNavigation.tsx","webpack:///./app/javascript/components/layout/TixxtPageTitle.tsx","webpack:///./app/javascript/hooks/useRecurringAppointment.ts","webpack:///./app/javascript/components/appointments/AppointmentPageTitle.tsx","webpack:///./app/javascript/components/tixxt/BackboneFeature.tsx","webpack:///./app/javascript/components/activitystreams/routes.tsx","webpack:///./app/javascript/components/appointments/AppointmentToolbar.tsx","webpack:///./app/javascript/components/appointments/helpers.ts","webpack:///./app/javascript/components/appointments/appointmentsList/AllDayTag.tsx","webpack:///./app/javascript/components/appointments/appointmentsList/AppointmentItem.tsx","webpack:///./app/javascript/components/appointments/appointmentsList/CalendarDay.tsx","webpack:///./app/javascript/components/appointments/appointmentsList/CalendarWeek.tsx","webpack:///./app/javascript/components/appointments/appointmentsList/index.tsx","webpack:///./app/javascript/components/appointments/useAppointmentView.ts","webpack:///./app/javascript/components/appointments/AppointmentPage.tsx","webpack:///./app/javascript/components/appointments/calendars/helpers.tsx","webpack:///./app/javascript/components/appointments/calendars/CalendarListItem.tsx","webpack:///./app/javascript/components/appointments/calendars/CalendarList.tsx","webpack:///./app/javascript/components/appointments/calendars/CalendarListView.tsx","webpack:///./app/javascript/components/appointments/calendars/ManageCalendarsPage.tsx","webpack:///./app/javascript/components/appointments/calendars/api.ts","webpack:///./app/javascript/components/appointments/calendars/CalendarSubscribeModal.tsx","webpack:///./app/javascript/components/appointments/calendars/SubscribeCalendarsPage.tsx","webpack:///./app/javascript/components/appointments/participants/AppointmentPreview.js","webpack:///./app/javascript/components/appointments/participants/NewParticipantForm.tsx","webpack:///./app/javascript/components/appointments/participants/api.ts","webpack:///./app/javascript/components/appointments/participants/StatusButton.tsx","webpack:///./app/javascript/components/appointments/participants/ParticipantRow.tsx","webpack:///./app/javascript/components/appointments/participants/ParticipantsOverview.tsx","webpack:///./app/javascript/components/appointments/participants/ParticipantsView.tsx","webpack:///./app/javascript/components/appointments/calendars/CalendarForm.tsx","webpack:///./app/javascript/components/appointments/calendars/NewCalendarPage.tsx","webpack:///./app/javascript/components/appointments/calendars/EditCalendarPage.tsx","webpack:///./app/javascript/components/appointments/routes.tsx","webpack:///./app/javascript/components/messages/MessageRow.tsx","webpack:///./app/javascript/components/messages/InteractionsButton.tsx","webpack:///./app/javascript/components/messages/api.tsx","webpack:///./app/javascript/components/messages/MessagesInteractions.tsx","webpack:///./app/javascript/components/messages/MessagesList.tsx","webpack:///./app/javascript/components/messages/InboxPage.tsx","webpack:///./app/javascript/components/messages/SentPage.tsx","webpack:///./app/javascript/components/shared/BackButton.tsx","webpack:///./app/javascript/components/shared/fields/CheckboxField.tsx","webpack:///./app/javascript/components/shared/MembershipAndGroupField.tsx","webpack:///./app/javascript/components/messages/composer/MessageForm.tsx","webpack:///./app/javascript/components/messages/composer/index.tsx","webpack:///./app/javascript/components/messages/NewMessagePage.tsx","webpack:///./app/javascript/components/messages/message/MessageInteractions.tsx","webpack:///./app/javascript/components/messages/message/MessageContainer.tsx","webpack:///./app/javascript/components/messages/message/index.tsx","webpack:///./app/javascript/components/messages/ShowMessagePage.tsx","webpack:///./app/javascript/components/messages/routes.tsx","webpack:///./app/javascript/components/files/NewFilesPage.js","webpack:///./app/javascript/components/files/approval/api.js","webpack:///./app/javascript/components/files/approval/VersionApproval.js","webpack:///./app/javascript/components/files/approval/ReviewStatus.js","webpack:///./app/javascript/components/files/approval/ApprovalPage.tsx","webpack:///./app/javascript/components/files/routes.tsx","webpack:///./app/javascript/components/tasks/routes.tsx","webpack:///./app/javascript/components/globalSearch/Content.js","webpack:///./app/javascript/components/globalSearch/routes.tsx","webpack:///./app/javascript/components/administration/networkSettings/api.js","webpack:///./app/javascript/components/administration/networkSettings/BasicSettings.tsx","webpack:///./app/javascript/components/shared/fields/GroupSelectField.tsx","webpack:///./app/javascript/components/administration/networkSettings/JoinSettings.tsx","webpack:///./app/javascript/components/administration/networkSettings/MemberSettings.tsx","webpack:///./app/javascript/components/administration/networkSettings/MailSettings.tsx","webpack:///./app/javascript/components/administration/networkSettings/NetworkSettingsForm.tsx","webpack:///./app/javascript/components/administration/networkSettings/index.tsx","webpack:///./app/javascript/components/administration/navigationManager/LinkForm.tsx","webpack:///./app/javascript/components/administration/navigationManager/SelectContent.tsx","webpack:///./app/javascript/components/administration/navigationManager/MainFields.tsx","webpack:///./app/javascript/components/administration/navigationManager/Checkboxes.tsx","webpack:///./app/javascript/components/administration/navigationManager/NavigationManagerForm.tsx","webpack:///./app/javascript/components/administration/navigationManager/ItemButton.tsx","webpack:///./app/javascript/components/administration/NavigationManager.tsx","webpack:///./app/javascript/components/administration/groupCategorySorter/Card.tsx","webpack:///./app/javascript/components/administration/GroupCategorySorter.tsx","webpack:///./app/javascript/actions/administration/memberships.js","webpack:///./app/javascript/components/administration/MembershipEdit.tsx","webpack:///./app/javascript/components/administration/MembershipNew.tsx","webpack:///./app/javascript/components/administration/legalTexts/LegalTextForm.tsx","webpack:///./app/javascript/components/administration/legalTexts/LegalTextEdit.tsx","webpack:///./app/javascript/components/administration/legalTexts/LegalTextNew.tsx","webpack:///./app/javascript/components/administration/legalTexts/LegalTextVersion.tsx","webpack:///./app/javascript/components/administration/legalTexts/LegalTextVersions.tsx","webpack:///./app/javascript/actions/administration/appNavigation.ts","webpack:///./app/javascript/hooks/administration/appNavigation.ts","webpack:///./app/javascript/components/administration/appNavigationManager/form/types/Default.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/form/types/Link.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/iconSelection.module.css?7e78","webpack:///./app/javascript/components/administration/appNavigationManager/IconSelection.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/form/TypeSelector.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/ItemForm.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/form/types/More.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/form/types/Page.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/form/types/Activitystream.tsx","webpack:///./app/javascript/api/activitystreams.ts","webpack:///./app/javascript/components/administration/appNavigationManager/NodeTitle.tsx","webpack:///./app/javascript/components/administration/appNavigationManager/index.tsx","webpack:///./app/javascript/components/administration/GroupAdministrationMainPage.tsx","webpack:///./app/javascript/components/administration/routes.tsx","webpack:///./app/javascript/components/directory/routes.tsx","webpack:///./app/javascript/components/memberships/EditMembership.js","webpack:///./app/javascript/components/memberships/NewChangeRequest.js","webpack:///./app/javascript/components/shared/fields/CheckboxFields.tsx","webpack:///./app/javascript/components/memberships/membershipSettings/DigestSettings.js","webpack:///./app/javascript/components/memberships/membershipSettings/EmailConfigList.js","webpack:///./app/javascript/components/memberships/PushNotificationSettingsForm.tsx","webpack:///./app/javascript/components/memberships/api.tsx","webpack:///./app/javascript/components/memberships/EditMembershipSettings.tsx","webpack:///./app/javascript/components/memberships/routes.tsx","webpack:///./app/javascript/components/groups/form/BasicSettings.js","webpack:///./app/javascript/components/groups/form/GroupAccess.js","webpack:///./app/javascript/components/groups/form/JoinSettings.js","webpack:///./app/javascript/components/groups/form/MiscSettings.tsx","webpack:///./app/javascript/components/groups/form/ChatSettings.tsx","webpack:///./app/javascript/components/groups/form/index.js","webpack:///./app/javascript/components/groups/api.ts","webpack:///./app/javascript/components/groups/EditGroupActions.js","webpack:///./app/javascript/components/groups/EditGroup.js","webpack:///./app/javascript/components/groups/NewGroup.js","webpack:///./app/javascript/components/groups/Invites.tsx","webpack:///./app/javascript/components/groups/routes.tsx","webpack:///./app/javascript/actions/onboarding.js","webpack:///./app/javascript/components/onboarding/ProfileOnboarding.js","webpack:///./app/javascript/components/onboarding/routes.tsx","webpack:///./app/javascript/components/invites/routes.tsx","webpack:///./app/javascript/components/memberMap/routes.tsx","webpack:///./app/javascript/components/chat/MobileAppChat.tsx","webpack:///./app/javascript/components/tixxt/RedirectToStartpage.tsx","webpack:///./app/javascript/routes.tsx","webpack:///./app/javascript/components/chat/routes.tsx","webpack:///./app/javascript/components/tixxt/BackboneHistoryShim.tsx","webpack:///./app/javascript/components/layout/TixxtContent.tsx","webpack:///./app/javascript/hooks/useSelectNavigation.ts","webpack:///./app/javascript/components/layout/searchBar/helpers.tsx","webpack:///./app/javascript/components/layout/SearchBar.tsx","webpack:///./app/javascript/components/layout/userCentral/ChatButton.tsx","webpack:///./app/javascript/components/layout/UserCentral.tsx","webpack:///./app/javascript/components/layout/useLogoScrollResize.ts","webpack:///./app/javascript/components/layout/CustomerCentralUpdateCheck.tsx","webpack:///./app/javascript/components/layout/TeamsRenewOAuthCredentialsCheck.tsx","webpack:///./app/javascript/components/layout/TixxtHeader.tsx","webpack:///./app/javascript/components/administration/designManager/ApplyOverrideTheme.tsx","webpack:///./app/javascript/components/administration/designManagerLight/functions.tsx","webpack:///./app/javascript/components/administration/designManagerLight/ApplyOverrideGroupTheme.tsx","webpack:///./app/javascript/components/administration/designManagerLight/ApplyOverrideGroupCategoryTheme.tsx","webpack:///./app/javascript/components/layout/AppSearchHeader.tsx","webpack:///./app/javascript/components/App.tsx","webpack:///./app/javascript/helpers/legacy/customLodashCompat.ts","webpack:///./app/javascript/turbo/bridge.tsx","webpack:///./app/javascript/components/widgetbars/shared/MemberRow.tsx","webpack:///./app/javascript/components/widgetbars/widgets/AdminMembersWidget.tsx","webpack:///./app/javascript/components/widgetbars/shared/AppointmentRow.tsx","webpack:///./app/javascript/components/widgetbars/widgets/AppointmentsWidget.tsx","webpack:///./app/javascript/components/widgetbars/widgets/BirthdayWidget.tsx","webpack:///./app/javascript/components/widgetbars/widgets/GroupInfoWidget.tsx","webpack:///./app/javascript/components/widgetbars/widgets/NewestMembersWidget.tsx","webpack:///./app/javascript/components/widgetbars/widgets/OnlineMembersWidget.tsx","webpack:///./app/javascript/components/widgetbars/widgets/RssWidget.tsx","webpack:///./app/javascript/components/widgetbars/widgets/SpeedDialWidget.tsx","webpack:///./app/javascript/components/widgetbars/widgets/TextWidget.tsx","webpack:///./app/javascript/components/widgetbars/ActivitystreamWidgetbar.tsx","webpack:///./app/javascript/components/widgetbars/api.ts","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/turbo/confirm_compat.js","webpack:///./app/javascript/helpers/showCookieModal.ts","webpack:///./app/javascript/reducers/chat/chatStateReducers.js","webpack:///./app/javascript/reducers/chat/chats.js","webpack:///./app/javascript/reducers/chat/messages.js","webpack:///./app/javascript/reducers/chat/apiRequests.js","webpack:///./app/javascript/reducers/chat/composing.js","webpack:///./app/javascript/reducers/chat/homies.js","webpack:///./app/javascript/reducers/chat/index.js","webpack:///./app/javascript/reducers/chat/session.js","webpack:///./app/javascript/reducers/chat/composer.js","webpack:///./app/javascript/sagas/chat/helpers.js","webpack:///./app/javascript/sagas/chat/presence.js","webpack:///./app/javascript/sagas/chat/api.js","webpack:///./app/javascript/sagas/chat/application.js","webpack:///./app/javascript/sagas/chat/channels.js","webpack:///./app/javascript/sagas/chat/notifications.js","webpack:///./app/javascript/sagas/chat/index.js","webpack:///./app/javascript/selectors/chat/application.js","webpack:///./app/javascript/selectors/chat/homies.js","webpack:///./app/javascript/selectors/chat/chat.js","webpack:///./app/javascript/selectors/chat/messages.js","webpack:///./app/javascript/selectors/chat/profile.js"],"sourcesContent":["import { stringify } from \"query-string\";\n\nexport const IS_CHAT_QUERY = \"__IS_CHAT_QUERY__\";\nexport const IS_NETWORK_QUERY = \"__IS_NETWORK_QUERY__\";\n\n/**\n * All actions, for documentation:\n * - chat/CHAT/SCROLL_START_REACHED\n * - chat/CHAT/SCROLL_END_REACHED\n * - chat/CHAT/MARK_AS_READ/START_TIMER\n */\n\nexport const createChatQueryAction = (event) => {\n const type = `chat/${event.toUpperCase()}`;\n const actionCreator = (data) => ({\n ...data,\n type,\n [IS_CHAT_QUERY]: true,\n });\n\n actionCreator.type = type;\n actionCreator.replyType = `${type}/REPLY`;\n\n return actionCreator;\n};\nexport const createNetworkQueryAction = (event) => {\n const basicActionCreator = createChatQueryAction(event);\n return (data) => ({\n [IS_NETWORK_QUERY]: true,\n ...basicActionCreator(data),\n });\n};\n\n// Loads initial message history and other chat details, like permissions\nexport const loadChatDetails = createChatQueryAction(\"chat_details\");\nexport const loadMoreMessages = createChatQueryAction(\"more_messages\");\nexport const markAsRead = createChatQueryAction(\"mark_as_read\");\nexport const muteChat = createChatQueryAction(\"mute_chat\");\nexport const muteAppChat = createChatQueryAction(\"app_mute_chat\");\nexport const unmuteChat = createChatQueryAction(\"unmute_chat\");\nexport const unmuteAppChat = createChatQueryAction(\"app_unmute_chat\");\nexport const createChat = createNetworkQueryAction(\"create_chat\");\n\nexport const IS_API_REQUEST = \"__IS_API_REQUEST__\";\nexport const createApiAction = (event, { endpoint }) => {\n const type = `chat/${event.toUpperCase()}`;\n const actionCreator = (meta) => ({\n type,\n [IS_API_REQUEST]: true,\n endpoint: endpoint(meta),\n });\n\n actionCreator.type = type;\n\n return actionCreator;\n};\n\nexport const fetchAvailableChats = createApiAction(\"available_chats\", {\n endpoint: ({ q }) =>\n `/directory?${stringify({\n q,\n only_my_groups: true,\n only_chat_enabled: true,\n })}`,\n});\n\nexport const setChatStatus = createNetworkQueryAction(\"set_status\");\n","import React from \"react\";\n\nexport default function Muted() {\n return (\n \n \n \n \n );\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { compose, withProps } from \"recompose\";\nimport { startsWith, min } from \"lodash\";\nimport moment from \"moment\";\n\nimport {\n getCounterForChat,\n getComposingHomie,\n isMuted,\n} from \"../../../selectors/chat/chat\";\nimport ChatImage from \"../shared/ChatImage\";\nimport Notification from \"../shared/Notification\";\nimport Composing from \"../shared/Composing\";\nimport Muted from \"../shared/Muted\";\n\nconst Row = ({\n id,\n select,\n name,\n last_message,\n last_interacted_at,\n counter,\n muted,\n state,\n type,\n composingHomie,\n}) => {\n const mom = min([moment(last_interacted_at), moment()]);\n\n return (\n \n
\n \n \n {composingHomie ? : null}\n {muted ? : null}\n
\n
\n
\n {name}\n
\n {last_message ? (\n
\n {type === \"group\" ? {last_message.from.name}: : null}\n {last_message.text}\n
\n ) : null}\n
\n
\n \n
\n \n \n );\n};\nRow.propTypes = {\n select: PropTypes.func,\n name: PropTypes.string,\n type: PropTypes.string,\n counter: PropTypes.number,\n};\n\nexport default compose(\n withProps(({ id }) => {\n return {\n type: startsWith(id, \"member\") ? \"member\" : \"group\",\n };\n }),\n connect(\n (state, { id }) => ({\n counter: getCounterForChat(state, { chatId: id }),\n muted: isMuted(state, { chatId: id }),\n composingHomie: getComposingHomie(state, { chatId: id }),\n }),\n (dispatch, { id }) => ({\n select: () => {\n dispatch({\n type: \"chat/NAVIGATE\",\n payload: { route: \"showChat\", params: { chatId: id } },\n });\n\n if (\n window.Notification &&\n window.Notification.permission !== \"granted\"\n ) {\n window.Notification.requestPermission();\n }\n },\n }),\n ),\n)(Row);\n","import React, { useState, useEffect, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect, useDispatch, useSelector } from \"react-redux\";\nimport { get, map, isEmpty } from \"lodash\";\nimport classNames from \"classnames\";\nimport {\n getMemberBusyStatus,\n getMemberOnlineStatus,\n getSortedChats,\n} from \"../../../selectors/chat/chat\";\nimport ChatHeader from \"../shared/ChatHeader\";\nimport Row from \"./Row\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport Textarea from \"react-textarea-autosize\";\nimport { regular, solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { toggleChatbar } from \"../../../layout/togglebar\";\nimport { setChatStatus } from \"../../../actions/chat\";\n\nconst statusOption = {\n busy: \"busy\",\n online: \"online\",\n invisible: \"invisible\",\n};\n\nconst useCurrentStatus = () => {\n const isOnline = useSelector((state) =>\n getMemberOnlineStatus(state, window.Preload.current_member.id),\n );\n\n const presence = useSelector((state) =>\n getMemberBusyStatus(state, window.Preload.current_member.id),\n );\n\n return (\n presence?.type || (isOnline ? statusOption.online : statusOption.invisible)\n );\n};\n\nconst StartNewButton = connect(null, (dispatch) => ({\n navigateToNewChat: () =>\n dispatch({ type: \"chat/NAVIGATE\", payload: { route: \"newChat\" } }),\n}))(({ disabled, navigateToNewChat }) => (\n \n \n {I18n.t(\"js.chat.list.start_new\")}\n \n));\n\nfunction ChatStatusCircle({ status }) {\n switch (status) {\n case statusOption.online:\n return (\n \n );\n\n case statusOption.busy:\n return (\n \n );\n case statusOption.invisible:\n return (\n \n );\n }\n}\n\nfunction StatusButton({ toggleStatusMessageForm }) {\n const status = useCurrentStatus();\n return (\n toggleStatusMessageForm(true)}\n >\n Status\n \n );\n}\n\nfunction OnlineStatusDropdown({ selectedOption, setSelectedOption }) {\n const handleOptionChange = (e, option) => {\n e.preventDefault();\n setSelectedOption(option);\n };\n\n return (\n <>\n
\n \n \n \n
    \n
  • \n handleOptionChange(e, statusOption.online)}\n >\n \n \n \n {I18n.t(\"js.chat.status_text.online.label\")}\n \n \n \n
  • \n
  • \n handleOptionChange(e, statusOption.busy)}\n >\n \n \n \n {I18n.t(\"js.chat.status_text.busy.label\")}\n \n \n \n
  • \n {window.Preload.current_network.config.show_online_status ==\n \"optional\" && (\n
  • \n handleOptionChange(e, statusOption.invisible)}\n >\n \n \n \n {I18n.t(\"js.chat.status_text.invisible.label\")}\n \n \n \n
  • \n )}\n
\n
\n \n );\n}\n\nfunction StatusMessageForm({ toggleStatusMessageForm }) {\n const presence = useSelector((state) =>\n getMemberBusyStatus(state, window.Preload.current_member.id),\n );\n const initialRender = useRef(true);\n const [statusText, setStatusText] = useState(presence?.text || \"\");\n const currentStatus = useCurrentStatus();\n const [selectedOption, setSelectedOption] = useState(currentStatus);\n\n const dispatch = useDispatch();\n\n function submitStatus(status) {\n if (status.text) status.text = status.text.replace(/[\\n\\r]/g, \" \");\n dispatch(setChatStatus({ payload: status }));\n }\n\n function removeStatusText() {\n setStatusText(\"\");\n submitStatus({ text: \"\", type: selectedOption });\n }\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false;\n return;\n }\n\n if (selectedOption == statusOption.invisible) {\n submitStatus({ text: statusText, type: statusOption.invisible });\n toggleStatusMessageForm(false);\n }\n\n if (\n selectedOption === statusOption.busy &&\n (isEmpty(statusText) ||\n statusText === I18n.t(\"js.chat.status_text.online.default\"))\n ) {\n setStatusText(I18n.t(\"js.chat.status_text.busy.default\"));\n } else if (\n selectedOption === statusOption.online &&\n (isEmpty(statusText) ||\n statusText === I18n.t(\"js.chat.status_text.busy.default\"))\n ) {\n setStatusText(I18n.t(\"js.chat.status_text.online.default\"));\n }\n }, [selectedOption, setSelectedOption]);\n\n return (\n \n \n\n {selectedOption != \"invisible\" && (\n <>\n setStatusText(e.target.value)}\n className={\n \"grow text-sm rounded-none border-0 border-r border-neutral resize-none\"\n }\n />\n\n
\n {\n submitStatus({ text: statusText, type: selectedOption });\n toggleStatusMessageForm(false);\n }}\n >\n \n \n {\n removeStatusText();\n toggleStatusMessageForm(false);\n }}\n >\n \n \n
\n \n )}\n \n );\n}\n\nfunction CloseButton() {\n return (\n \n \n \n );\n}\n\nconst ChatList = ({ connected, chats }) => {\n const [showStatusMessageForm, toggleStatusMessageForm] = useState(false);\n\n return (\n <>\n }\n ButtonRight={\n
\n {window.Preload.current_network.config.show_online_status !=\n \"disabled\" && (\n \n )}\n\n \n
\n }\n />\n {showStatusMessageForm && (\n \n )}\n \n {map(chats, (item, index) => (\n \n ))}\n \n \n );\n};\nChatList.propTypes = {\n chats: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n image_id: PropTypes.string,\n }),\n ),\n};\n\nexport default connect((state) => ({\n chats: getSortedChats(state),\n connected: get(state, [\"chat\", \"session\", \"connected\"]),\n}))(ChatList);\n","import { get } from \"lodash\";\nexport const getApiRequestState = (state, action) =>\n get(state, [\"chat\", \"apiRequests\", action.type]);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { map } from \"lodash\";\nimport { compose, withState, withHandlers } from \"recompose\";\nimport classNames from \"classnames\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst GroupedItems = ({\n open,\n toggleOpen,\n items,\n title,\n allowToggle,\n renderItemComponent,\n}) => (\n
\n {title ? (\n \n {allowToggle ? (\n \n ) : null}\n {title}\n
\n ) : null}\n {open ? (\n
\n {map(items, (item, index) => renderItemComponent(item, index))}\n
\n ) : null}\n \n);\nGroupedItems.propTypes = {\n title: PropTypes.string,\n allowToggle: PropTypes.bool,\n open: PropTypes.bool,\n toggleOpen: PropTypes.func,\n getItemComponent: PropTypes.func,\n items: PropTypes.arrayOf(PropTypes.object),\n additionalItemProps: PropTypes.object,\n};\n\nexport default compose(\n withState(\"open\", \"setOpen\", true),\n withHandlers({\n toggleOpen:\n ({ open, setOpen }) =>\n () =>\n setOpen(!open),\n }),\n)(GroupedItems);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { createChat } from \"../../../actions/chat\";\nimport classnames from \"classnames\";\n\nconst Tile = ({ createChat, id, name, type }) => (\n \n \n {name}\n \n);\nTile.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.string,\n createChat: PropTypes.func,\n};\n\nexport default connect(null, (dispatch, { id, type }) => ({\n createChat: (e) => {\n e.preventDefault();\n dispatch(createChat({ payload: { id, type } }));\n },\n}))(Tile);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { map, get, isEmpty } from \"lodash\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport classNames from \"classnames\";\n\nimport { fetchAvailableChats } from \"../../../actions/chat\";\nimport { getApiRequestState } from \"../../../selectors/chat/apiRequests\";\nimport ChatHeader from \"../shared/ChatHeader\";\nimport GroupedItems from \"../shared/GroupedItems\";\nimport Tile from \"./Tile\";\nimport { BackToRootButton } from \"../shared/BackButton\";\n\nclass NewChat extends React.Component {\n render() {\n const { member, ...groupsByCategoryName } = this.props.availableChats || {};\n\n return (\n <>\n }\n />\n \n
\n \n \n {this.props.requestState === \"request\" ? (\n \n ) : (\n \n )}\n \n
\n \n {isEmpty(member) ? null : (\n (\n \n )}\n title={I18n.t(\"js.chat.new.users\")}\n allowToggle={true}\n />\n )}\n {map(groupsByCategoryName, (groups, name) => [\n (\n \n )}\n title={name}\n allowToggle={true}\n />,\n ])}\n \n );\n }\n\n componentDidMount() {\n this.props.fetchAvailableChats(\"\");\n }\n\n submitSearch = (e) => {\n e.preventDefault();\n this.props.fetchAvailableChats(e.currentTarget.elements.q.value);\n };\n}\n\nexport default connect(\n (state) => ({\n availableChats: get(state, [\"chat\", \"availableChats\"]),\n requestState: getApiRequestState(state, fetchAvailableChats),\n }),\n (dispatch) => ({\n fetchAvailableChats: (q) => dispatch(fetchAvailableChats({ q })),\n }),\n)(NewChat);\n","import React from \"react\";\nimport { map, slice, findIndex, trim, compact, times } from \"lodash\";\nimport { connect } from \"react-redux\";\nimport { compose, withHandlers } from \"recompose\";\nimport classnames from \"classnames\";\n// import Hotkeys from \"hotkeys-js\";\n\nimport { getCurrentChat } from \"../../../selectors/chat/application\";\nimport {\n getSortedChats,\n getComposingHomie,\n getCounterForChat,\n} from \"../../../selectors/chat/chat\";\nimport ChatImage from \"../shared/ChatImage\";\nimport Notification from \"../shared/Notification\";\nimport Composing from \"../shared/Composing\";\n\nconst chatInitials = (chatName) => {\n if (chatName.length < 2) {\n return chatName.toUpperCase();\n }\n\n const parts = compact(chatName.split(/[-_/\\\\.@\\s]/));\n const initials =\n parts.length >= 2\n ? trim(parts[0])[0] + trim(parts[1])[0]\n : chatName[0] + chatName[1];\n\n return initials.toUpperCase();\n};\n\nconst Chat = connect(\n (state, { id }) => ({\n counter: getCounterForChat(state, { chatId: id }),\n composingHomie: getComposingHomie(state, { chatId: id }),\n }),\n (dispatch, { id }) => ({\n select: () =>\n dispatch({\n type: \"chat/NAVIGATE\",\n payload: { route: \"showChat\", params: { chatId: id } },\n }),\n }),\n)(({ id, name, selected, select, counter, state, composingHomie }) => (\n \n
\n \n \n {composingHomie ? : null}\n
\n {chatInitials(name)}\n \n));\n\nconst QuickChatSelect = ({ chats, chatId }) => (\n
\n {map(\n chats,\n (chat) =>\n chat.id && (\n \n ),\n )}\n {times(10 - chats.length, (i) => (\n
\n ))}\n
\n);\n\nexport default compose(\n connect(\n (state) => ({\n currentChat: getCurrentChat(state),\n chats: slice(getSortedChats(state), 0, 10),\n }),\n (dispatch) => ({\n selectChat: (chatId) =>\n dispatch({\n type: \"chat/NAVIGATE\",\n payload: { route: \"showChat\", params: { chatId } },\n }),\n }),\n ),\n withHandlers({\n nextChat:\n ({ chats, selectChat, currentChat }) =>\n () => {\n const currIndex = findIndex(chats, (c) => c.id === currentChat);\n const nextIndex =\n currIndex < 0 || currIndex + 1 >= chats.length ? 0 : currIndex + 1;\n selectChat(chats[nextIndex].id);\n },\n prevChat:\n ({ chats, selectChat, currentChat }) =>\n () => {\n const currIndex = findIndex(chats, (c) => c.id === currentChat);\n const prevIndex =\n currIndex < 0 || currIndex - 1 < 0 ? chats.length - 1 : currIndex - 1;\n selectChat(chats[prevIndex].id);\n },\n }),\n // lifecycle({\n // componentDidMount() {\n // Hotkeys(\"ctrl+command+right\", this.props.nextChat);\n // Hotkeys(\"ctrl+command+left\", this.props.prevChat);\n // },\n // componentWillUnmount() {\n // Hotkeys.unbind(\"ctrl+command+right\");\n // Hotkeys.unbind(\"ctrl+command+left\");\n // },\n // }),\n)(QuickChatSelect);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport { memoize } from \"lodash\";\n\nimport { isMuted } from \"../../../selectors/chat/chat\";\nimport {\n muteChat,\n unmuteChat,\n muteAppChat,\n unmuteAppChat,\n} from \"../../../actions/chat\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst MUTE_DURATIONS = memoize(() => [\n [\n I18n.t(\"js.chat.room.mute_hour\"),\n () => moment().add(1, \"hour\").toDate(),\n false,\n ],\n [\n I18n.t(\"js.chat.room.mute_rest_of_day\"),\n () => moment().endOf(\"day\").toDate(),\n false,\n ],\n [\n I18n.t(\"js.chat.room.mute_rest_of_week\"),\n () => moment().endOf(\"week\").toDate(),\n false,\n ],\n [I18n.t(\"js.chat.room.forever\"), () => moment(\"9999-12-31\").toDate(), true],\n]);\n\nconst MuteLink = connect(null, (dispatch, { chatId, muteUntil }) => ({\n onClick: (e) => {\n e.preventDefault();\n const meta = { chatId };\n let dispatchAction;\n\n if (muteUntil) {\n dispatchAction = window.isApp ? muteAppChat : muteChat;\n } else {\n dispatchAction = window.isApp ? unmuteAppChat : unmuteChat;\n }\n\n dispatch(\n dispatchAction({\n meta,\n payload: muteUntil ? { muted_until: muteUntil() } : {},\n }),\n );\n },\n}))(({ label, onClick }) => (\n \n {label}\n \n));\n\nconst ChatRoomSettingsButton = ({ muted, chatId }) => (\n
\n {muted ? (\n \n ) : null}\n
\n \n
    \n {muted ? (\n
  • \n \n
  • \n ) : (\n MUTE_DURATIONS().map(([label, muteUntil, appOnly], i) =>\n appOnly && !window.isApp ? null : (\n
  • \n \n
  • \n ),\n )\n )}\n
\n
\n
\n);\nChatRoomSettingsButton.propTypes = {\n muted: PropTypes.bool,\n};\n\nexport default connect((state, { chatId }) => ({\n muted: isMuted(state, { chatId }),\n}))(ChatRoomSettingsButton);\n","import React from \"react\";\nimport { throttle, debounce } from \"lodash\";\nimport classNames from \"classnames\";\n\nconst THROTTLE = 250;\n\n/**\n * Component which handles scrolling stuff\n * div that scrolls when a new child (i.e. a chat message) is added\n *\n * [bool] autoscroll - enables autoscrolling if the children will change\n * [integer] autoscrollThreashold - the percentage border at the bottom to break the autoscroll\n * [integer] callbackThreshold - the percentage border when onStartReached and onEndReached triggers\n * [function] onStartReached - callback when scroll to the top\n * [function] onEndReached - callback when scroll to the bottom\n */\nclass ScrollContainer extends React.Component {\n constructor(props) {\n super(props);\n\n this.container = React.createRef();\n this.bumper = React.createRef();\n\n this.state = {\n autoscrollBreaked: false,\n };\n\n this.lastScrollPoint = 0;\n this.lastScrollPosition = -1;\n }\n\n componentDidMount() {\n this.container.current.addEventListener(\"wheel\", this.handleWheel);\n this.container.current.addEventListener(\"scroll\", this.handleScrolling);\n window.addEventListener(\"resize\", this.handleResize);\n\n this.scroll({ smooth: false });\n }\n\n componentWillUnmount() {\n this.container.current.removeEventListener(\"wheel\", this.handleWheel);\n this.container.current.removeEventListener(\"scroll\", this.handleScrolling);\n window.removeEventListener(\"resize\", this.handleResize);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.id !== prevProps.id) {\n this.setState({ autoscrollBreaked: false });\n this.scroll({ smooth: false });\n } else if (\n React.Children.count(this.props.children) !==\n React.Children.count(prevProps.children)\n ) {\n this.scroll({ smooth: true });\n }\n }\n\n // Cancel wheel event and prevent parent scroll\n cancelScrollEvent = (e) => {\n e.stopImmediatePropagation();\n e.preventDefault();\n e.returnValue = false;\n };\n\n // Handle wheel event and calculate scroll position\n // cancel the wheel event when scroll is at top or bottom\n // this will prevent the parent container from scrolling\n //\n // calls trackScrolling() after cancel. This is required,\n // because scroll event will never triggered if the wheel event is canceled\n handleWheel = (e) => {\n const div = this.container.current;\n const scrollTop = div.scrollTop;\n const scrollHeight = div.scrollHeight;\n const height = div.clientHeight;\n const wheelDelta = e.deltaY;\n const isDeltaPositive = wheelDelta > 0;\n\n if (isDeltaPositive && wheelDelta > scrollHeight - height - scrollTop) {\n this.cancelScrollEvent(e);\n this.trackScrolling();\n return false;\n } else if (!isDeltaPositive && -wheelDelta > scrollTop) {\n this.cancelScrollEvent(e);\n this.trackScrolling();\n return false;\n }\n };\n\n // Calculate and check threasholds and maybe call callbacks\n trackScrolling = () => {\n const div = this.container.current;\n\n if (div.scrollTop !== this.lastScrollPosition) {\n const direction = div.scrollTop > this.lastScrollPosition ? 1 : -1;\n const callbackThreshold =\n (div.scrollHeight / 100) * this.props.callbackThreshold;\n const autoscrollThreashold =\n (div.scrollHeight / 100) * this.props.autoscrollThreashold;\n\n //console.log(\"handle scroll\", \"height:\", div.clientHeight, \"scrollHeight:\", div.scrollHeight, \"scrollTop:\", div.scrollTop, \"direction:\", direction, \"callbackThreshold:\", callbackThreshold, \"autoscrollThreashold:\", autoscrollThreashold);\n\n // Handle autoscrollThreashold\n if (\n div.scrollTop <\n div.scrollHeight - div.clientHeight - autoscrollThreashold\n ) {\n this.setState({ autoscrollBreaked: true });\n } else {\n this.setState({ autoscrollBreaked: false });\n }\n\n // Handle callbackThreshold\n if (direction < 0 && div.scrollTop <= callbackThreshold) {\n // scrolling up and be in the threshold at the top\n this.callStartReached();\n } else if (\n direction > 0 &&\n div.scrollTop >= div.scrollHeight - div.clientHeight - callbackThreshold\n ) {\n // scrolling down and be in the threshold at the bottom\n this.callEndReached();\n }\n }\n\n // Check bumper\n if (this.bumper.current.clientHeight > 10) {\n //console.log(\"BUMPER bumped\");\n this.callStartReached();\n }\n\n // cache scrollPosition and lastScrollHeight\n this.lastScrollPosition = div.scrollTop;\n this.lastScrollPoint = div.scrollHeight - div.scrollTop;\n };\n\n // Ensure a debounced call on the onStartReached callback\n callStartReached = debounce(\n () => {\n this.props.onStartReached && this.props.onStartReached();\n },\n THROTTLE,\n { leading: true, trailing: true },\n );\n\n // Ensure a debounced call on the onEndReached callback\n callEndReached = debounce(\n () => {\n this.props.onEndReached && this.props.onEndReached();\n },\n THROTTLE,\n { leading: true, trailing: true },\n );\n\n // Perform scrolling or adjust scroll\n scroll = ({ smooth }) => {\n const div = this.container.current;\n if (!div) {\n return;\n }\n\n if (this.props.autoscroll && !this.state.autoscrollBreaked) {\n //console.log(\"scroll to bottom\");\n this.performScroll({ smooth });\n this.callEndReached();\n } else {\n //console.log(\"adjust scroll\");\n // prevent jumping, by preserving the scroll position\n if (div.scrollHeight !== this.lastScrollHeight) {\n div.scrollTop = div.scrollHeight - this.lastScrollPoint;\n }\n }\n\n // track the new scroll position\n this.trackScrolling();\n };\n\n performScroll = ({ smooth }) => {\n const div = this.container.current;\n if (!div) {\n return;\n }\n\n if (smooth && div.scrollTop) {\n div.style.scrollBehavior = \"smooth\";\n } else {\n div.style.scrollBehavior = \"auto\";\n }\n\n div.scrollTop = div.scrollHeight - div.offsetHeight;\n window.DIV = div;\n\n setTimeout(() => (div.style.scrollBehavior = \"auto\"), 250);\n };\n\n onClickScrollToBottom = () => {\n this.performScroll({ smooth: true });\n this.trackScrolling();\n };\n\n // throttled calls for use in events\n handleScrolling = throttle(this.trackScrolling, THROTTLE);\n handleResize = throttle(this.trackScrolling, THROTTLE);\n\n render() {\n return (\n \n {this.props.startElement}\n
\n {this.props.children}\n
\n {this.props.endElement}\n {this.state.autoscrollBreaked ? (\n
\n \n
\n ) : null}\n
\n );\n }\n}\n\nexport default ScrollContainer;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst MessageAuthor = ({ id, name, imageUrl }) => (\n
\n {imageUrl ? (\n \n ) : null}\n \n {name}\n \n
\n);\nMessageAuthor.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n imageUrl: PropTypes.string,\n};\n\nexport default MessageAuthor;\n","import React from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport classNames from \"classnames\";\n\ntype MessageSettingsArgs = {\n id: string;\n chatId: string;\n fromId: string;\n myMessage: boolean;\n className?: string;\n};\n\nimport { createChat } from \"../../../../actions/chat\";\n\nexport default function MessageSettings({\n myMessage,\n className,\n id,\n chatId,\n fromId,\n}: MessageSettingsArgs) {\n const dispatch = useDispatch();\n const type = chatId.indexOf(\"group\") === 0 ? \"group\" : \"member\";\n const hideStartPrivateChat =\n myMessage || type === \"member\" || Preload.current_member?.is_external;\n\n function setMessageToQuote(e: React.MouseEvent) {\n e.preventDefault();\n dispatch({\n type: \"chat/COMPOSER/SET_MESSAGE_TO_QUOTE\",\n messageId: id,\n chatId,\n });\n }\n\n function createPrivateChat(e: React.MouseEvent) {\n e.preventDefault();\n dispatch(createChat({ payload: { id: fromId, type: \"member\" } }));\n }\n\n return (\n
\n \n
\n );\n}\n","import { every } from \"lodash\";\nimport createEmojiRegex from \"emoji-regex\";\nimport { length, toArray } from \"stringz\";\n\nconst EMOJI_REGEX = createEmojiRegex();\n\nexport const isEmoji = (symbol) => {\n // reset lastIndex instead of reinitialize the whole regexp object\n EMOJI_REGEX.lastIndex = 0;\n return EMOJI_REGEX.test(symbol);\n};\n\nexport const onlyEmojis = (text) => {\n return every(toArray(text), (sym) => isEmoji(sym));\n};\n\nexport const getEmojiClassName = (text, max = 3) => {\n const symbols_count = length(text);\n\n if (symbols_count > max) {\n return;\n }\n\n if (onlyEmojis(text)) {\n return `emoji emoji_${symbols_count}`;\n }\n};\n","import { Remarkable } from \"remarkable\";\nimport { linkify } from \"remarkable/linkify\";\nimport { noop } from \"lodash\";\n\nconst noMarkdown = {\n render: (text) => text,\n};\n\nconst getNewDevRenderer = (options) => new Remarkable(options).use(linkify);\nconst getRenderer =\n (window.Application && window.Application.getNewMarkdownRenderer) ||\n (Remarkable && getNewDevRenderer) ||\n noop;\n\nconst markdownRenderer = getRenderer({\n html: false,\n breaks: true,\n linkTarget: \"_blank\",\n});\n\nif (markdownRenderer) {\n markdownRenderer.core.ruler.disable([\n \"replacements\",\n \"abbr2\",\n \"footnote_tail\",\n ]);\n markdownRenderer.inline.ruler.disable([\"footnote_ref\", \"htmltag\"]);\n markdownRenderer.inline.ruler.enable([\"ins\", \"mark\"]);\n markdownRenderer.block.ruler.disable([\n \"blockquote\",\n \"code\",\n \"fences\",\n \"footnote\",\n \"heading\",\n \"hr\",\n \"htmlblock\",\n \"lheading\",\n \"table\",\n ]);\n}\n\nexport default markdownRenderer || noMarkdown;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { getEmojiClassName } from \"../../utils/emojis\";\nimport markdown from \"../../utils/markdown\";\n\nconst markdownTextToHtml = (text) => {\n let html = null;\n\n try {\n html = markdown.render(text);\n } catch (e) {\n console.log(\"Markdown error\", e);\n html = `${I18n.t(\n \"js.chat.room.message.rendering_error\",\n )}`;\n }\n\n return html;\n};\n\nfunction MessageText({ text }) {\n const emoji = getEmojiClassName(text);\n\n return (\n
\n \n
\n );\n}\n\nMessageText.propTypes = { text: PropTypes.string };\n\n// Check if the MessageText should be rendered again via React.memo HOC\nexport default React.memo(\n MessageText,\n (prevProps, nextProps) => prevProps.text == nextProps.text,\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport MessageAuthor from \"./MessageAuthor\";\nimport MessageText from \"./MessageText\";\n\nconst QuotedMessage = ({ message }) => (\n
\n \n \n
\n);\nQuotedMessage.propTypes = {\n id: PropTypes.string,\n message: PropTypes.shape({\n text: PropTypes.string,\n from: PropTypes.shape(MessageAuthor.propTypes),\n }),\n};\n\nexport default QuotedMessage;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport const getIcon = (deliveryStatus) => {\n switch (deliveryStatus) {\n case \"pushed\":\n return (\n \n );\n case \"persisted\":\n return ;\n case \"received\":\n return ;\n case \"read\":\n return ;\n default:\n return null;\n }\n};\n\nexport const getTitle = (deliveryStatus) => {\n switch (deliveryStatus) {\n case \"pushed\":\n return \"wird gespeichert\";\n case \"persisted\":\n return \"gespeichert\";\n case \"received\":\n return \"zugestellt\";\n case \"read\":\n return \"gelesen\";\n default:\n return null;\n }\n};\n\nconst MessageDeliveryStatus = ({ deliveryStatus }) => {\n return (\n \n {getIcon(deliveryStatus)}\n \n );\n};\n\nMessageDeliveryStatus.propTypes = {\n deliveryStatus: PropTypes.oneOf([\"pushed\", \"persisted\", \"received\", \"read\"]),\n};\n\nexport default MessageDeliveryStatus;\n","import classnames from \"classnames\";\nimport { get, isEmpty } from \"lodash\";\nimport moment from \"moment\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { compose } from \"recompose\";\n\nimport { getImageUrl } from \"../../../../selectors/chat/application\";\nimport { getMessageDeliveryStatus } from \"../../../../selectors/chat/messages\";\nimport { getMyId, getMyProfile } from \"../../../../selectors/chat/profile\";\nimport MessageAuthor from \"./MessageAuthor\";\nimport MessageSettings from \"./MessageSettings\";\nimport MessageText from \"./MessageText\";\nimport QuotedMessage from \"./QuotedMessage\";\nimport MessageDeliveryStatus from \"./MessageDeliveryStatus\";\n\nconst MessageDate = ({ date, format, className }) => {\n const fullDate = moment(date).format(\"DD.MM.YYYY HH:mm\");\n\n return (\n \n {moment(date).format(format)}\n \n );\n};\n\nMessageDate.propTypes = {\n date: PropTypes.string,\n format: PropTypes.string,\n className: PropTypes.string,\n};\n\nconst ChatMessage = ({\n id,\n chat_id,\n text,\n from,\n created_at,\n myMessage,\n groupedMessage,\n quoted_message,\n deliveryStatus,\n}) => (\n \n
\n
\n \n
\n {!isEmpty(quoted_message) ? (\n \n ) : null}\n \n
\n \n {myMessage ? (\n \n ) : null}\n
\n \n
\n);\nChatMessage.propTypes = {\n id: PropTypes.string,\n chat_id: PropTypes.string,\n text: PropTypes.string,\n from: PropTypes.shape(MessageAuthor.propTypes),\n quoted_message: PropTypes.object,\n created_at: PropTypes.string,\n myMessage: PropTypes.bool,\n groupedMessage: PropTypes.bool,\n qoutedMessageId: PropTypes.string,\n settings: PropTypes.bool,\n deliveryStatus: PropTypes.oneOf([\"pushed\", \"persisted\", \"received\", \"read\"]),\n};\n\nexport default compose(\n connect((state, { id, chat_id: chatId, from }) => {\n const myMessage = from.id === getMyId(state);\n // From can be undefined in some cases\n const fromProfile = myMessage ? getMyProfile(state) : from;\n\n return {\n myMessage,\n deliveryStatus: getMessageDeliveryStatus(state, { id, chatId }),\n from: {\n ...fromProfile,\n imageUrl: getImageUrl(state, get(fromProfile, \"image_id\"), \"80x80\"),\n },\n };\n }),\n)(ChatMessage);\n","import React from \"react\";\nimport moment from \"moment\";\n\nconst DaySeparator = ({ date }) => (\n
\n {moment(date).format(\"DD.MM.YYYY\")}\n
\n);\n\nexport default DaySeparator;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { flatMap } from \"lodash\";\nimport moment from \"moment\";\n\nimport { getRequestStateForChat } from \"../../../selectors/chat/chat\";\nimport { getMessagesForChat } from \"../../../selectors/chat/messages\";\n\nimport ScrollContainer from \"../shared/ScrollContainer\";\nimport ChatMessage from \"./ChatMessage\";\nimport DaySeparator from \"./DaySeparator\";\nimport classNames from \"classnames\";\n\nconst Chat = ({\n id,\n messages,\n onStartReached,\n onEndReached,\n loadingMessages,\n moreMessagesAvailable,\n}) => {\n let lastMessageFrom = null;\n let lastMessageDate = null;\n\n return (\n \n {I18n.t(\"js.chat.room.no_more_messages\")}\n
\n )\n }\n >\n {loadingMessages ? (\n
\n \n
\n ) : null}\n {flatMap(messages, (message, i) => {\n const result = [];\n const sameAuthor = lastMessageFrom === message.from.id;\n const sameDay = moment(message.created_at).isSame(\n lastMessageDate,\n \"day\",\n );\n\n if (!sameDay) {\n result.push(\n ,\n );\n }\n\n result.push(\n ,\n );\n\n lastMessageFrom = message.from.id;\n lastMessageDate = moment(message.created_at);\n\n return result;\n })}\n \n );\n};\nChat.propTypes = {\n id: PropTypes.string,\n messages: PropTypes.array,\n onStartReached: PropTypes.func,\n onEndReached: PropTypes.func,\n loadingMessages: PropTypes.bool,\n moreMessagesAvailable: PropTypes.bool,\n};\n\nexport default connect(\n (state, { id }) => ({\n ...getRequestStateForChat(state, { chatId: id }),\n messages: getMessagesForChat(state, { chatId: id }),\n }),\n (dispatch, { id }) => ({\n onStartReached: () =>\n dispatch({\n type: \"chat/CHAT/SCROLL_START_REACHED\",\n chatId: id,\n }),\n onEndReached: () =>\n dispatch({\n type: \"chat/CHAT/SCROLL_END_REACHED\",\n chatId: id,\n }),\n }),\n)(Chat);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { isEmpty } from \"lodash\";\n\nimport { getMessageById } from \"../../../../selectors/chat/messages\";\n\nimport MessageAuthor from \"../ChatMessage/MessageAuthor\";\nimport MessageText from \"../ChatMessage/MessageText\";\n\nconst MessageToQuote = ({ message, removeMessageToQuote }) =>\n !isEmpty(message) ? (\n \n
\n \n \n
\n \n \n \n
\n ) : null;\nMessageToQuote.propTypes = {\n id: PropTypes.string,\n chatId: PropTypes.string,\n message: PropTypes.shape({}),\n removeMessageToQuote: PropTypes.func,\n};\n\nexport default connect(\n (state, { id, chatId }) => ({\n message: getMessageById(state, { id, chatId }),\n }),\n (dispatch, { chatId }) => ({\n removeMessageToQuote: () =>\n dispatch({ type: \"chat/COMPOSER/SET_MESSAGE_TO_QUOTE\", id: \"\", chatId }),\n }),\n)(MessageToQuote);\n","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { isEmpty, trim, throttle } from \"lodash\";\nimport Textarea from \"react-textarea-autosize\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { getComposerMessageToQuoteId } from \"../../../../selectors/chat/composer\";\nimport { getCanForChat } from \"../../../../selectors/chat/chat\";\nimport MessageToQuote from \"./MessageToQuote\";\nimport classNames from \"classnames\";\nimport { useForm } from \"react-hook-form\";\nimport usePersistentState from \"../../../../hooks/usePersistentSate\";\n\ntype FormData = { text: string };\n\nexport default function MessageComposer({ chatId }: { chatId: string }) {\n const dispatch = useDispatch();\n const messageToQuoteId = useSelector((state) =>\n getComposerMessageToQuoteId(state, { chatId }),\n );\n const [composerTextByChatId, setComposerTextByChatId] = usePersistentState(\n \"composerTextByChatId\",\n {},\n );\n\n const { handleSubmit, register, getValues, setFocus, setValue, reset } =\n useForm();\n\n const invokeDebounced = useMemo(\n () =>\n throttle((text) => {\n dispatch({ type: \"chat/COMPOSER/SET_TEXT\", chatId, text });\n }, 1000),\n [chatId],\n );\n\n function changeText(e: { target: { value: string } }) {\n setComposerTextByChatId({\n ...composerTextByChatId,\n [chatId]: e.target.value,\n });\n invokeDebounced(e.target.value);\n }\n\n function submit({ text }: FormData) {\n if (isEmpty(trim(text))) {\n return;\n }\n\n dispatch({\n type: \"chat/SEND_MESSAGE\",\n meta: { chatId },\n payload: { text, quoted_message_id: messageToQuoteId },\n });\n\n setComposerTextByChatId({ ...composerTextByChatId, [chatId]: \"\" });\n reset();\n }\n\n function onKeyDown(e: React.KeyboardEvent) {\n if (e.keyCode == 13) {\n if (!e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey) {\n handleSubmit(submit)(e);\n }\n }\n }\n\n useEffect(() => {\n setFocus(\"text\");\n }, [chatId, messageToQuoteId]);\n\n useEffect(() => {\n setValue(\"text\", composerTextByChatId[chatId]);\n }, [chatId]);\n\n const can = useSelector((state) => getCanForChat(state, { chatId }));\n const disabled = can && !can.write; // optimistically enable if we haven't received permissions yet\n\n return (\n \n \n
\n \n \n \n \n \n \n );\n}\n","import { get } from \"lodash\";\n\nexport const getComposerMessageToQuoteId = (state, { chatId }) =>\n get(state, [\"chat\", \"composer\", chatId, \"messageToQuoteId\"]);\n","import { useEffect, useState } from \"react\";\n\nexport default function usePersistentState(key: string, initialValue: T) {\n const [value, setValue] = useState(() => {\n const storedValue = localStorage.getItem(key);\n return storedValue ? JSON.parse(storedValue) : initialValue;\n });\n\n useEffect(() => {\n localStorage.setItem(key, JSON.stringify(value));\n }, [key, value]);\n\n return [value, setValue] as const;\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\n\nimport {\n getChatProfile,\n getComposingHomie,\n} from \"../../../selectors/chat/chat\";\n\nimport ChatHeader from \"../shared/ChatHeader\";\nimport { BackToRootButton } from \"../shared/BackButton\";\nimport QuickChatSelect from \"./QuickChatSelect\";\nimport ChatRoomSettingsButton from \"./ChatRoomSettingsButton\";\nimport Chat from \"./Chat\";\nimport MessageComposer from \"./MessageComposer\";\n\nconst MobileAppWrapper = ({ children }) => {\n if (window.isApp) {\n return
{children}
;\n } else {\n return <>{children};\n }\n};\n\nconst ChatRoom = ({ chatId, name, composingHomie }) => {\n return (\n \n }\n ButtonRight={}\n />\n \n \n \n \n );\n};\nChatRoom.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n composingHomie: PropTypes.shape({\n name: PropTypes.string,\n }),\n};\n\nexport default connect((state, { chatId }) => ({\n ...getChatProfile(state, { chatId }),\n composingHomie: getComposingHomie(state, { chatId }),\n}))(ChatRoom);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\n\nimport {\n getUnreadChatsCount,\n getUnreadChatsCountWithoutChat,\n} from \"../../../selectors/chat/chat\";\nimport Notification from \"./Notification\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst BackButton = ({ onClick, counter }) => (\n \n \n \n \n);\nBackButton.propTypes = {\n counter: PropTypes.number,\n chatId: PropTypes.string,\n};\n\nconst BackToRootButton = connect(\n (state, { chatId }) => ({\n counter: chatId\n ? getUnreadChatsCountWithoutChat(state, { chatId })\n : getUnreadChatsCount(state),\n }),\n (dispatch) => ({\n onClick: () =>\n dispatch({ type: \"chat/NAVIGATE\", payload: { route: \"root\" } }),\n }),\n)(BackButton);\n\nexport { BackToRootButton };\n\nexport default BackButton;\n","import React, { ReactElement, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport ChatImage from \"./ChatImage\";\nimport classNames from \"classnames\";\nimport { get } from \"lodash\";\n\ntype ChatHeaderArgs = {\n chatId: string;\n title: string;\n subtitle: string;\n ButtonLeft: ReactElement;\n ButtonRight: ReactElement;\n};\n\nexport default function ChatHeader({\n chatId,\n title,\n subtitle,\n ButtonLeft,\n ButtonRight,\n}: ChatHeaderArgs) {\n const chatStatus = useSelector((state) =>\n get(state, [\"chat\", \"chats\", chatId, \"status\"]),\n );\n\n useEffect(() => {\n if (window.isApp) {\n // hide navigation in chat\n const navigation = document.getElementById(\"main-navigation\");\n\n if (navigation) {\n navigation.classList.remove(\"tixxt__navigation\"); // remove styles otherwise hidden is overwritten\n navigation.hidden = true;\n }\n }\n }, []);\n\n return (\n \n {ButtonLeft ? ButtonLeft : null}\n {chatId ? : null}\n \n \n {title}\n \n\n {subtitle ? (\n <>\n {subtitle}\n \n ) : chatStatus?.text ? (\n \n {chatStatus?.text}\n \n ) : null}\n \n\n {ButtonRight ? ButtonRight : null}\n \n );\n}\n","import React from \"react\";\n\nexport const OnlineStatus = ({ isOnline, isBusy, children }) => (\n
\n {isBusy ? (\n {I18n.t(\"js.chat.member_busy\")}\n ) : isOnline ? (\n {I18n.t(\"js.chat.member_online\")}\n ) : null}\n {children}\n
\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport classnames from \"classnames\";\n\nimport {\n getChatImageUrl,\n getChatOnlineStatus,\n getChatBusyStatus,\n} from \"../../../selectors/chat/chat\";\nimport { OnlineStatus } from \"./OnlineStatus\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst ICONS = {\n member: solid(\"user\"),\n group: solid(\"users\"),\n};\n\nconst Image = ({ type, imageUrl, name }) =>\n imageUrl ? (\n \n ) : (\n \n );\n\nImage.propTypes = {\n type: PropTypes.string,\n imageUrl: PropTypes.string,\n name: PropTypes.string,\n};\n\nconst ChatImage = ({ type, imageUrl, name, isOnline, isBusy }) => {\n return (\n
\n \n \n \n
\n );\n};\n\nexport default connect((state, { chatId }) => ({\n imageUrl: getChatImageUrl(state, chatId),\n isOnline: getChatOnlineStatus(state, chatId),\n isBusy: getChatBusyStatus(state, chatId)?.type === \"busy\",\n type: chatId.split(\"/\")[0],\n}))(ChatImage);\n","import React from \"react\";\n\nexport default function Composing() {\n return (\n \n \n \n \n );\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport classnames from \"classnames\";\n\nconst Notification = ({ className, counter }) =>\n counter ? (\n \n {counter === -1\n ? I18n.t(\"js.chat.notifications.new\")\n : counter > 99\n ? \"99+\"\n : counter}\n \n ) : null;\n\nNotification.propTypes = {\n counter: PropTypes.number,\n};\n\nexport default Notification;\n","import React from \"react\";\nimport { useQuery } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\nimport classNames from \"classnames\";\nimport { matchPath, useLocation } from \"helpers/tixxt-router\";\n\ntype GroupNavigationItem = {\n text: string;\n link: string;\n new_window?: boolean;\n join_request_count?: number;\n navigation_items?: {\n text: string;\n link: string;\n new_window?: boolean;\n }[];\n active_match?: string;\n};\n\nfunction useGroupNavigationItems(groupSlug: string | null | undefined) {\n return useQuery(\n [\"groupNavigationItems\", groupSlug],\n () => fetchApi(`/groups/${groupSlug}/navigation`),\n {\n enabled: !!groupSlug && groupSlug !== \"new\",\n refetchOnWindowFocus: false,\n },\n );\n}\n\n/* Use this if you want to pass the groupSlug in as a prop */\nexport default function GroupNavigation({\n groupSlug,\n}: {\n groupSlug?: string | null;\n}) {\n const { isLoading, data } = useGroupNavigationItems(groupSlug);\n\n if (!groupSlug) return null;\n\n return (\n
    \n {isLoading\n ? [\n I18n.t(\"js.groups.navigation.activities\"),\n I18n.t(\"js.groups.navigation.members\"),\n I18n.t(\"js.groups.navigation.calendar\"),\n I18n.t(\"js.groups.navigation.tasks\"),\n I18n.t(\"js.groups.navigation.files\"),\n I18n.t(\"js.groups.navigation.profile\"),\n ].map((text, i) => {text})\n : data?.map((nav, i) => (\n \n ))}\n
  • \n
\n );\n}\n\nfunction NavigationItem({\n text,\n link,\n new_window,\n navigation_items,\n last,\n active_match,\n join_request_count,\n}: GroupNavigationItem & { last?: boolean }) {\n const location = useLocation();\n // active_match provided? use this to match\n const isActive = active_match\n ? matchPath(active_match, location.pathname)\n : // Link looks like a module link? Match on prefix, equality otherwise\n link.match(/^\\/groups\\/.+?\\//)\n ? location.pathname.indexOf(link) === 0\n : location.pathname === link;\n const hasNavigationItems = navigation_items && navigation_items.length > 0;\n\n return (\n \n \n {text}\n {hasNavigationItems && }\n \n {hasNavigationItems && (\n
    \n {navigation_items.map(({ text, link }, i) => (\n
  • \n \n {text}\n \n
  • \n ))}\n
\n )}\n {join_request_count ? (\n \n {join_request_count}\n \n ) : null}\n \n );\n}\n\nfunction Placeholder({ children }: { children?: React.ReactNode }) {\n return (\n
  • \n \n \n {children || \" \"}\n \n \n
  • \n );\n}\n","import React from \"react\";\n\nexport default function Loading() {\n return (\n
    \n \n
    \n );\n}\n","import React, { ReactNode, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport Async from \"react-select/async\";\nimport { stringify } from \"query-string\";\nimport { map, isEmpty, get, keys, isEqual, filter, forEach } from \"lodash\";\n\nimport { createApiAction } from \"helpers/api\";\nimport { showNameWithProfileField } from \"components/memberships/MemberNameWithAdditions\";\nimport { FieldElement } from \"react-hook-form\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst fetchMembers = createApiAction({\n baseType: \"FETCH_MEMBERS\",\n endpoint: ({\n groupSlug,\n includeConsumers,\n input,\n excludeGroupMembersOf,\n recipientId,\n }) => {\n const params = isEqual(input, recipientId) ? {} : { q: input };\n\n if (includeConsumers) Reflect.set(params, \"include_consumers\", true);\n if (!isEmpty(excludeGroupMembersOf))\n Reflect.set(params, \"exclude_group_members_of\", excludeGroupMembersOf);\n\n return [\n groupSlug ? `/groups/${groupSlug}` : null,\n `/members?`,\n stringify(params),\n ].join(\"\");\n },\n});\n\nconst fetchMembersAndGroups = createApiAction({\n baseType: \"FETCH_MEMBERS_AND_GROUPS\",\n endpoint: ({ input, recipientId, includeMembershipRoles = false }) =>\n `/directory?${\n isEqual(input, recipientId)\n ? \"\"\n : stringify({\n q: input,\n include_membership_roles: includeMembershipRoles,\n })\n }`,\n});\n\nconst optionsKey = (key) => {\n switch (key) {\n case (key = \"member\"):\n return I18n.t(\"js.member_select.options.key.member\");\n case (key = \"group\"):\n return I18n.t(\"js.member_select.options.key.group\");\n default:\n return key;\n }\n};\n\ntype options = Array<{\n value: string | undefined;\n label: Array;\n type: string;\n}>;\nconst groupOptions = (options: options) => {\n const groupedOptions = {\n member: [] as options,\n group: [] as options,\n other: [] as options,\n };\n\n forEach(options, (option) => {\n switch (option.type) {\n case \"member\":\n groupedOptions[\"member\"].push(option);\n break;\n case \"membershipRole\":\n case \"group\":\n groupedOptions[\"group\"].push(option);\n break;\n default:\n groupedOptions[\"other\"].push(option);\n }\n });\n return groupedOptions;\n};\n\ntype Entries = Entry[];\ntype Entry = {\n type: string;\n name: string;\n membership_roles: MembershipRole[];\n};\n\nexport type Value = {\n value?: string;\n label?: string | ReactNode[];\n type?: string;\n};\n\ntype MembershipRole = {\n type: string;\n name: string;\n membership_status_of_current_member?: string;\n id?: string;\n detection_profile_field?: string;\n is_external?: boolean;\n};\n\nconst mergeEntries = (entries: Entries) => {\n const mergedEntries: Entries[number][\"membership_roles\"][number][] = [];\n\n forEach(entries, (entry) => {\n if (entry.type === \"group\") {\n const name = `${entry.name} (${I18n.t(\n \"js.member_select.all_group_members\",\n )})`;\n mergedEntries.push({ ...entry, name });\n\n if (entry.membership_roles && entry.membership_roles.length > 0) {\n forEach(entry.membership_roles, (membershipRole) => {\n const name = entry.name + \" - \" + membershipRole.name;\n mergedEntries.push({ ...membershipRole, name });\n });\n }\n } else {\n mergedEntries.push(entry);\n }\n });\n return mergedEntries;\n};\n\ninterface MemberSelectTypes {\n groupSlug?: string;\n includeConsumers?: boolean;\n includeMembershipRoles?: boolean;\n excludeGroupMembersOf?: string;\n\n fetchMembers?(...args: unknown[]): Promise<{\n payload: Array<{\n displayName: string;\n id: string;\n name: string;\n detection_profile_field: string;\n is_external: boolean;\n }>;\n }>;\n\n fetchMembersAndGroups?(...args: unknown[]): Promise;\n\n input?: {\n onChange: (selectedEntries: Value[]) => void;\n onBlur?(...args: unknown[]): unknown;\n value?: Value[] | undefined;\n };\n onChange?: (selectedEntries: Value[]) => void;\n multi: boolean;\n membersAndGroups?: boolean;\n className?: string;\n wrapperStyle?: Record;\n value?: Value[] | undefined;\n recipientId?: string;\n onlyMyGroups?: boolean;\n id?: string;\n field?: FieldElement;\n}\n\nfunction MemberSelect(props: MemberSelectTypes) {\n // Local fetch through redux api middleware for now\n // Can be optimized later i.e. by using redux state to memoize stuff\n function loadOptions(input): Promise {\n return new Promise((resolve, reject) => {\n const {\n groupSlug,\n includeConsumers,\n includeMembershipRoles,\n excludeGroupMembersOf,\n recipientId,\n onlyMyGroups,\n } = props;\n props.membersAndGroups\n ? props\n .fetchMembersAndGroups?.({\n input,\n recipientId,\n includeMembershipRoles,\n })\n .then((success) => {\n if (!success) {\n return reject(\"error\");\n }\n\n const entries = get(\n success,\n \"payload.entries\",\n ) as unknown as Entries;\n\n const mergedEntries = mergeEntries(entries);\n\n const mappedOptions = map(\n onlyMyGroups\n ? filter(mergedEntries, (e) =>\n e.membership_status_of_current_member\n ? isEqual(\n e.membership_status_of_current_member,\n \"member\",\n )\n : e,\n )\n : mergedEntries,\n (entry: MembershipRole) => {\n if (recipientId && isEqual(entry.id, recipientId)) {\n props.input?.onChange?.([\n {\n value: entry.id,\n label: [\n ,\n \" \",\n entry.name,\n ],\n type: \"member\",\n },\n ]);\n }\n\n const icon = {\n member: regular(\"user\"),\n group: regular(\"users\"),\n standard: regular(\"chevron-right\"),\n };\n\n return {\n value: entry.id,\n label: [\n ,\n \" \",\n showNameWithProfileField({\n name: entry.name,\n detectionProfileField: entry.detection_profile_field,\n isExternal: entry.is_external,\n }),\n ],\n type: entry.type,\n };\n },\n );\n\n const groupedOptions = groupOptions(\n mappedOptions as unknown as {\n value: string | undefined;\n label: React.ReactNode[];\n type: string;\n }[],\n );\n\n const options = map(keys(groupedOptions), (key) => ({\n label: optionsKey(key),\n options: groupedOptions[key],\n }));\n\n resolve(options);\n })\n .catch(reject)\n : props\n .fetchMembers?.({\n groupSlug,\n includeConsumers,\n input,\n excludeGroupMembersOf,\n recipientId,\n })\n .then((success) => {\n if (!success) {\n return reject(\"error\");\n }\n\n const options = map(success.payload, (m) => {\n if (isEqual(m.id, recipientId)) {\n props.input?.onChange?.([\n { value: m.id, label: m.displayName },\n ]);\n }\n return {\n value: m.id,\n label: showNameWithProfileField({\n name: m.displayName,\n detectionProfileField: m.detection_profile_field,\n isExternal: m.is_external,\n }),\n };\n });\n\n resolve(options);\n })\n .catch(reject);\n });\n }\n\n useEffect(() => {\n if (props.recipientId) loadOptions(props.recipientId);\n }, []);\n\n const { input, multi, wrapperStyle, id, field, ...selectProps } = props;\n const asyncPropsOptions = {\n ...selectProps,\n isMulti: multi,\n loadOptions,\n placeholder: I18n.t(\"js.member_select.placeholder\"),\n loadingMessage: () => I18n.t(\"js.plugins.select2.searching\"),\n noOptionsMessage: ({ inputValue }) =>\n isEmpty(inputValue)\n ? I18n.t(\"js.plugins.select2.enter_more_characters.one\")\n : I18n.t(\"js.plugins.select2.no_match\"),\n inputId: id,\n };\n if (input) {\n // for use with redux form\n return (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Should be rewritten\n input?.onBlur?.(input.value)}\n openMenuOnFocus\n styles={{\n container: (base) => ({ ...base, ...wrapperStyle, \"z-index\": 3 }),\n }}\n />\n );\n } else {\n // for use without redux form\n return (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Should be rewritten\n ({ ...base, ...wrapperStyle, \"z-index\": 3 }),\n input: (base) => ({ ...base, \"box-shadow\": \"none\" }),\n }}\n />\n );\n }\n}\n\nexport default connect(null, { fetchMembers, fetchMembersAndGroups })(\n MemberSelect,\n);\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { range } from \"lodash\";\nimport { parse, stringify } from \"query-string\";\n\n// Example:\n// page: 10, totalPages: 20, width: 3\n// => min: 10-3-1 => 6\n// => max: 10+3 => 13\n// => range: 0,1,2,3,4,5,6,7,8,9,\"10\",11,12,13,14,15,16,17,18,19,20\n// => slice: min, max => 6,13 => 6,7,8,9,10,11,12\n// => plusOne: 7,8,9,\"10\",11,12,13\n// => add null (for ...)\n// final window: null,7,8,9,\"10\",11,12,13,null\nconst plusOne = (i) => i + 1;\nconst pages = ({ page, totalPages, width = 3 }) => {\n const cappedPage = Math.min(page, totalPages); // in case we ended up on page greater than total page count\n const min = Math.max(0, cappedPage - width - 1);\n const max = Math.min(totalPages, cappedPage + width);\n const window = range(0, totalPages).slice(min, max).map(plusOne);\n if (window.length === 0) {\n window.push(1);\n }\n if (max < totalPages) {\n window.push(null);\n }\n if (min > 0) {\n window.unshift(null);\n }\n return window;\n};\n\ninterface PaginationButtonTypes {\n disabled: boolean;\n active?: boolean;\n page: number;\n\n onPaginate(...args: unknown[]): unknown;\n\n children?: React.ReactNode;\n}\n\nfunction PaginationButton({\n disabled,\n active,\n page,\n onPaginate,\n children,\n}: PaginationButtonTypes) {\n const query = stringify({ ...parse(location.search), page });\n const className = classNames(\"btn btn-light border-0\", { disabled, active });\n\n return (\n
  • \n {active || disabled ? (\n {children}\n ) : (\n \n {children}\n \n )}\n
  • \n );\n}\n\ntype PaginationProps = {\n page: number;\n totalPages?: number;\n onPaginate: (page: number) => void;\n loading: boolean;\n width?: number;\n hideIfEmpty?: boolean;\n className?: string;\n};\n\nfunction Pagination({\n page,\n totalPages = 1,\n onPaginate,\n loading,\n width = 2,\n hideIfEmpty,\n className,\n}: PaginationProps) {\n const handlePaginate = (event) => {\n event.preventDefault();\n onPaginate(event.currentTarget.dataset.page * 1);\n window.scrollTo({ top: 0 });\n };\n\n if (hideIfEmpty && totalPages && totalPages <= 1) return null;\n\n return (\n
      \n \n \n \n \n \n \n \n\n {pages({ page, totalPages, width }).map((n, index) => (\n \n {loading && n === page ? (\n \n ) : n === null ? (\n \n ) : (\n {n}\n )}\n \n ))}\n\n = totalPages}\n page={page + 1}\n onPaginate={handlePaginate}\n >\n \n \n = totalPages}\n page={totalPages}\n onPaginate={handlePaginate}\n >\n \n \n \n
    \n );\n}\n\nexport default Pagination;\n","import React, { useRef, useEffect } from \"react\";\nimport \"../../../../vendor/assets/javascripts/spectrum/spectrum.css\";\n\ninterface SpectrumProps {\n value: string;\n showPalette?: boolean;\n colorPalette?: any;\n name?: string;\n onChange: (props: { target: { value: string } }) => void;\n}\n\nfunction Spectrum(props: SpectrumProps) {\n const ref = useRef(null);\n let el;\n\n useEffect(() => {\n if (!el && ref.current) {\n el = $(ref.current);\n el.spectrum({\n showInput: true,\n preferredFormat: \"hex\",\n showInitial: true,\n showPalette: !!props.showPalette,\n palette: props.colorPalette,\n cancelText: I18n.t(\"plugins.spectrum.cancel\"),\n chooseText: I18n.t(\"plugins.spectrum.choose\"),\n change: (color) =>\n props.onChange({\n target: {\n value: color.toHexString(),\n },\n }),\n\n color: props.value,\n });\n } else {\n el.spectrum(\"set\", props.value);\n }\n return () => el.spectrum(\"destroy\");\n }, [ref.current, props.value]);\n\n return (\n
    \n \n
    \n );\n}\n\nexport default Spectrum;\n","import React from \"react\";\nimport { map, get } from \"lodash\";\nimport classnames from \"classnames\";\n\ninterface TabBarProps {\n tabs: Array<{\n label: string;\n required?: boolean;\n error?: Error;\n }>;\n className?: string;\n selectTabIndex: (val: number) => void;\n selectedTabIndex: number;\n}\n\nfunction TabBar({\n tabs,\n selectTabIndex,\n selectedTabIndex,\n className,\n}: TabBarProps) {\n return (\n \n );\n}\n\nexport default TabBar;\n","import React from \"react\";\nimport { Field } from \"redux-form\";\nimport ControlGroup from \"./ControlGroup\";\nimport Hint from \"./Hint\";\n\ninterface TextFieldProps {\n name: string;\n label?: string;\n required?: boolean;\n multiline?: boolean;\n className?: string;\n hint?: string;\n disabled?: boolean;\n placeholder?: string;\n\n onChange?(...args: unknown[]): unknown;\n}\n\nfunction TextField({\n name,\n label,\n required,\n multiline,\n className,\n hint,\n ...fieldProps\n}: TextFieldProps) {\n return (\n \n \n \n \n );\n}\n\nexport default TextField;\n","import React from \"react\";\nimport { Provider } from \"react-redux\";\n\nconst wrapProvider = (store) => (Component) => {\n const wrapped = function (props) {\n return (\n \n \n \n );\n };\n\n wrapped.displayName = `Provider(${Component.name})`;\n\n return wrapped;\n};\n\nexport default wrapProvider;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport connectBackbone from \"./connectBackbone\";\nimport { Wrapper } from \"helpers/queryClient\";\n\nconst createHandleClose = (view, rawEl) => () => {\n const el = rawEl || \"VIEW_ROOT\";\n const root = view._reactRoots[el];\n\n if (root) {\n // debug(\"UNMOUNT component at\", el || \"view root\");\n view._reactRoots[el] = null;\n root.unmount();\n }\n\n return view;\n};\n\nconst createHandleRender = (view, rawEl, component) => () => {\n const el = rawEl || \"VIEW_ROOT\";\n const $container = rawEl ? view.$(rawEl) : view.$el;\n let root;\n\n if (rawEl) {\n // root el is inside of rendered view and thus recreated on render\n const oldRoot = view._reactRoots[el];\n if (oldRoot) oldRoot.unmount();\n view._reactRoots[el] = root = createRoot($container.get(0));\n } else {\n // root is equal to view.el which stays the same on renders so we can keep the root\n root = view._reactRoots[el];\n if (!root) root = view._reactRoots[el] = createRoot($container.get(0));\n }\n\n // debug(\"MOUNT\", getDisplayName(component), \"at\", el);\n root.render(\n React.createElement(Wrapper, null, React.createElement(component)),\n );\n\n return view;\n};\n\nconst createAdaptBackboneView = () => {\n let componentsMap = {};\n\n const adaptBackboneView = ({\n view,\n el,\n component: componentName,\n mapProps,\n listenTo,\n standalone = false,\n }) => {\n const component = componentsMap[componentName];\n if (component === undefined) {\n throw new Error(\n `No component named \"${componentName}\" registered for adapter usage.`,\n );\n }\n\n const connectedComponent = connectBackbone({ view, mapProps, listenTo })(\n component,\n );\n\n // Store react roots\n view._reactRoots = view._reactRoots || {};\n\n const handleRender = createHandleRender(view, el, connectedComponent);\n const handleClose = createHandleClose(view, el);\n\n if (standalone) {\n view.render = handleRender;\n view.close = handleClose;\n } else {\n view.on(\"render\", handleRender);\n view.once(\"close\", () => {\n view.off(\"render\", handleRender);\n handleClose();\n });\n }\n };\n componentsMap.componentsMap = componentsMap;\n\n adaptBackboneView.addComponents = (extraComponentMap) => {\n componentsMap.componentsMap = componentsMap = {\n ...componentsMap,\n ...extraComponentMap,\n };\n };\n\n return adaptBackboneView;\n};\n\nexport default createAdaptBackboneView;\n","import React, { Component } from \"react\";\nimport { debounce, each } from \"lodash\";\n\nexport function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n}\n\nexport default function connectBackbone({\n mapProps,\n listenTo,\n debounce: debounceTime = 10,\n}) {\n return function wrapWithConnect(WrappedComponent) {\n const MemoizedWrappedComponent = React.memo(WrappedComponent);\n\n class Connect extends Component {\n constructor(props, context) {\n super(props, context);\n\n this.state = Connect.getDerivedStateFromProps(this.props);\n }\n\n static getDerivedStateFromError() {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n console.error(\"TixxtErrorBoundary to the rescue\", error, errorInfo);\n }\n\n componentDidMount() {\n this.trySubscribe();\n }\n\n componentWillUnmount() {\n this.tryUnsubscribe();\n }\n\n trySubscribe() {\n if (!this.unsubscribe) {\n // Bind change events for each tracked entity (i.e. model and/or collection)\n const changeHandler = debounce(\n this.handleChange.bind(this),\n debounceTime,\n );\n each(listenTo, (entity) => {\n if (!entity) {\n throw new Error(`Undefined/null listenTo entity given`);\n }\n entity.on(\"change add remove reset sync sort\", changeHandler, this);\n });\n\n this.unsubscribe = () => {\n each(listenTo, (entity) => entity.off(null, changeHandler, this));\n };\n\n this.handleChange();\n }\n }\n\n tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n }\n\n handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n mapProps && this.setState({ entityState: mapProps(this.props) });\n }\n\n static getDerivedStateFromProps(props) {\n return mapProps ? { entityState: mapProps(props) } : {};\n }\n\n render() {\n /*if (this.state.hasError) {\n return null; // Something went wrong\n }*/\n\n const propsToPass = { ...this.props, ...this.state.entityState };\n return ;\n }\n }\n\n Connect.displayName = `ConnectBackbone(${getDisplayName(\n MemoizedWrappedComponent,\n )})`;\n Connect.WrappedComponent = MemoizedWrappedComponent;\n\n return Connect;\n };\n}\n","import createAdaptBackboneView from \"./backbone/createAdaptBackboneView\";\n\nconst adaptBackboneView = createAdaptBackboneView();\n\nexport default adaptBackboneView;\n","import React from \"react\";\nimport { QueryClientProvider, QueryClient, QueryCache } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nconst queryCache = new QueryCache();\nconst queryClient = new QueryClient({\n queryCache,\n defaultOptions: {\n queries: {\n queryFn: async ({ queryKey }) => fetchApi(queryKey[0]),\n },\n },\n});\n\nfunction Wrapper({ children }: { children: React.ReactNode }) {\n return (\n {children}\n );\n}\n\nwindow.queryClient = queryClient;\n\nexport default queryClient;\nexport { queryClient, queryCache, Wrapper };\n","import { match } from \"path-to-regexp\";\nimport { map, memoize } from \"lodash\";\nimport { CompiledRoute, RouteObject } from \"helpers/tixxt-router\";\n\nexport type Params = {\n [key: string]: string | undefined;\n};\n\nconst WILDCARD_END = /\\/?\\*$/;\n\nfunction compileRoute(path: string) {\n const endsWithWildcard = WILDCARD_END.exec(path);\n let pathToCompile = path;\n if (endsWithWildcard) pathToCompile = path.slice(0, endsWithWildcard.index);\n const matchFn = match(pathToCompile, {\n end: endsWithWildcard === null,\n });\n return { path, match: matchFn };\n}\n\nfunction compileRoutes(routes: RouteObject[]): CompiledRoute[] {\n return map(routes, ({ path, element, forceTurbo }) => {\n try {\n return { ...compileRoute(path), element, forceTurbo };\n } catch (e) {\n console.error(\"while compiling path:\", path);\n throw e;\n }\n });\n}\n\nexport const compileRouteMemoized = memoize(compileRoute);\nexport const compileRoutesMemoized = memoize(compileRoutes);\n","import React, { useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { MatchFunction, MatchResult } from \"path-to-regexp\";\nimport { isEqual, isNumber, isString, noop } from \"lodash\";\nimport {\n compileRouteMemoized,\n compileRoutesMemoized,\n Params,\n} from \"helpers/tixxt-router/compilation\";\nimport \"helpers/tixxt-router/history-events\";\nimport invariant from \"invariant\";\nimport { Group } from \"../@types\";\n\nexport type NavigateFunction = (\n to: URL | string | number,\n options?: { replace?: boolean; state?: object },\n) => void;\n\nexport type RouteObject = {\n path: string;\n element: JSX.Element | null;\n // Force navigation with turbo when this route is matched, useful if backend runs code on access\n forceTurbo?: boolean;\n};\nexport type CompiledRoute = {\n forceTurbo?: boolean;\n path: string;\n match: MatchFunction;\n element: JSX.Element | null;\n};\n\nexport type MatchedRoute = MatchResult & {\n element: JSX.Element | null;\n forceTurbo?: boolean;\n};\n\n// Helper to build locationState from window.location\nfunction getLocationState() {\n return {\n pathname: location.pathname,\n search: location.search,\n hash: location.hash,\n state: history.state,\n };\n}\n\n// Returns the params in a (sub-)component that was determined with useRoutes\nexport function useParams(): Params {\n return useContext(ParamsContext);\n}\n\n// Returns a tuple of URLSearchParams and a noop setSearchParams function, which is only returned for legacy reasons\n// Please use navigate to change the searchParams explicitly\nexport function useSearchParams(): [\n URLSearchParams,\n (URLSearchParams) => void,\n] {\n const location = useLocation();\n\n const result = useMemo<[URLSearchParams, (URLSearchParams) => void]>(\n () => [new URLSearchParams(location.search), noop],\n [location.search],\n );\n\n return result;\n}\n\n// The function to trigger a SPA navigation\n// Should only receive routes that are handled by TixxtContent\n// This should only be used for redirects, for user navigation use regular links (or GET-forms)\nexport const navigate: NavigateFunction = (to, options) => {\n if (!window.Turbo?.session.drive) {\n debug(\"⚛️ navigate LEGACY\", to.toString(), options);\n invariant(\n isString(to),\n \"`to` param must be String when using navigate outside of SPA frontend\",\n );\n window.location.assign(to);\n return;\n }\n\n if (navigateToUnjoinedGroup(to.toString())) {\n window.location.assign(to.toString());\n return;\n }\n\n debug(\"⚛️ navigate\", to.toString(), options);\n if (isNumber(to)) {\n history.go(to);\n } else {\n const fn = options?.replace ? history.replaceState : history.pushState;\n fn(options?.state, \"\", to);\n }\n};\n\nfunction navigateToUnjoinedGroup(to: string) {\n let url;\n try {\n url = new URL(to.toString());\n } catch (_) {\n return false;\n }\n\n const pathnameParts = url.pathname.split(\"/\");\n const groupSlugInPath =\n pathnameParts[1] === \"groups\" ? pathnameParts[2] : null;\n\n if (!groupSlugInPath) return false;\n\n return !(\n Preload.my_groups.find((group: Group) => group.slug === groupSlugInPath) !=\n null\n );\n}\n\n// Reimplementation of react-router useNavigate\n// You can import and use navigate directly if you fancy\nexport function useNavigate() {\n return navigate;\n}\n\n// Can be used to find a matching route for a given path\n// Is used to determine if a path can be handled by TixxtContent or should go through turbo\nexport function matchRoutes(\n routes: RouteObject[],\n path: string,\n): MatchedRoute | null {\n const compiledRoutes = compileRoutesMemoized(routes);\n\n let matchResult: MatchedRoute | null = null;\n for (const route of compiledRoutes) {\n const result = route.match(path);\n if (result) {\n matchResult = {\n ...result,\n element: route.element,\n forceTurbo: route.forceTurbo,\n };\n break;\n }\n }\n\n return matchResult;\n}\n\nconst defaultParams = {};\nconst ParamsContext = React.createContext(defaultParams);\nconst LocationContext = React.createContext(getLocationState());\n\n// Main hook to use routes in components\n// Returns the element of the first matching route wrapped in params provider\nexport function useRoutes(routes: RouteObject[]): JSX.Element | null {\n const { pathname } = useLocation();\n const matchedRoute = matchRoutes(routes, pathname);\n\n const lastParams = useRef(defaultParams);\n if (!isEqual(lastParams, matchedRoute?.params)) {\n lastParams.current = matchedRoute?.params || defaultParams;\n }\n\n if (!matchedRoute?.element) return null;\n\n return (\n \n {matchedRoute.element}\n \n );\n}\n\n// Returns true if the given path matches the given pattern, false otherwise\n// Good if you want to mark an element active depending on the current path\nexport function matchPath(pattern: string, path: string): boolean {\n return !!compileRouteMemoized(pattern).match(path);\n}\n\ntype BrowserRouterProps = {\n children?: React.ReactNode;\n};\n// Single source of location state\nexport const BrowserRouter: React.FC = ({ children }) => {\n const [locationState, setLocationState] = useState(getLocationState);\n\n useEffect(() => {\n function updateLocationState() {\n const maybeNewLocationState = getLocationState();\n if (!isEqual(maybeNewLocationState, locationState)) {\n setLocationState(maybeNewLocationState);\n }\n }\n\n const events = [\n \"popstate\",\n \"hashchange\",\n \"tixxt:pushstate\",\n \"tixxt:replacestate\",\n ];\n for (const event of events)\n window.addEventListener(event, updateLocationState);\n\n // RedirectToStartpage navigates before eventListener is bound but after default state is set\n updateLocationState();\n\n return () => {\n for (const event of events)\n window.removeEventListener(event, updateLocationState);\n };\n }, [locationState]);\n\n return (\n \n {children}\n \n );\n};\n\n// Hook to get current location state and trigger rerender when it changes\nexport function useLocation() {\n return useContext(LocationContext);\n}\n","// Add pushState and popState events to window so we can listen to them in useLocation\n// inspiration: https://stackoverflow.com/questions/5129386/how-to-detect-when-history-pushstate-and-history-replacestate-are-used\nfunction addEventDispatch(orig, type) {\n return function (...args) {\n const result = orig.apply(history, args);\n const event = new Event(type);\n event[\"arguments\"] = args;\n window.dispatchEvent(event);\n return result;\n };\n}\nexport const originalPushState = history.pushState;\nexport const originalReplaceState = history.replaceState;\n\nhistory.pushState = addEventDispatch(history.pushState, \"tixxt:pushstate\");\nhistory.replaceState = addEventDispatch(\n history.replaceState,\n \"tixxt:replacestate\",\n);\n","import { useEffect, useState } from \"react\";\nimport { useLocation, useParams } from \"helpers/tixxt-router\";\n\nfunction useQueryParams(): Record {\n console.warn(\n \"useQueryParams can be replaced with useSearchParams from helpers/tixxt-router\",\n );\n const location = useLocation();\n const params = useParams();\n const [queryParam, setQueryParam] = useState(getQueryParams);\n\n useEffect(() => setQueryParam(getQueryParams), [location]);\n\n return queryParam;\n\n function getQueryParams() {\n if (\"URLSearchParams\" in window) {\n return {\n ...params,\n ...Object.fromEntries(new URLSearchParams(location.search)),\n ...(location.state ? { state: location.state } : {}),\n };\n } else {\n return {\n ...params,\n ...getQueryObject(location.search),\n ...(location.state ? { state: location.state } : {}),\n };\n }\n }\n}\n\nfunction getQueryObject(search: string) {\n return (search.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(function (\n state: Record,\n curr,\n ) {\n const [key, value] = curr.split(\"=\");\n state[key] = value;\n return state;\n }, {});\n}\n\nexport { useQueryParams };\n","import { useEffect, useState } from \"react\";\n\nexport function useMaxHeight() {\n const [style, setStyle] = useState({});\n\n useEffect(() => {\n function updateStyle() {\n setStyle({ maxHeight: `${window.innerHeight}px` });\n }\n\n updateStyle();\n window.addEventListener(\"resize\", updateStyle);\n return () => {\n window.removeEventListener(\"resize\", updateStyle);\n };\n }, []);\n\n return style;\n}\n","import { isUndefined, memoize, some } from \"lodash\";\n\nconst CHAT_STATIC_BREAKPOINT = 1884;\n\ndocument.addEventListener(\n \"click\",\n function (e) {\n if (!(e.target instanceof HTMLElement || e.target instanceof SVGElement))\n return;\n\n // togglebar element clicked directly\n if (e.target?.dataset?.togglebar) {\n toggle(e.target.dataset.togglebar);\n return;\n }\n\n // togglebar child clicked check\n for (\n let target: Node | null = e.target;\n target && target !== document;\n target = target.parentNode\n ) {\n if (target instanceof HTMLButtonElement && target?.dataset?.togglebar) {\n toggle(target.dataset.togglebar);\n break;\n }\n }\n },\n false,\n);\n\nfunction coversWholeScreen(el: HTMLElement) {\n return window.getComputedStyle(el).width === `${window.innerWidth}px`;\n}\n\nfunction shouldRestoreBodyScrolling() {\n return !some(Array.from(openBarElements), coversWholeScreen);\n}\n\nconst openBarElements = new Set();\n\nfunction toggle(bar, show?: boolean) {\n const el = document.querySelector(`.tixxt__${bar}`);\n if (!(el instanceof HTMLElement)) return;\n\n const persist = el.dataset?.persist !== undefined;\n\n if (!el) {\n console.warn(`no .tixxt__${bar} element found to toggle`);\n return null;\n }\n\n if (isUndefined(show))\n show =\n !el.classList.contains(`${bar}--visible`) ||\n el.classList.contains(\"hidden\");\n\n if (show) {\n if (el.classList.contains(\"hidden\")) el.classList.remove(\"hidden\");\n if (persist) sessionStorage.setItem(`${bar}Visible`, \"true\");\n\n el.classList.add(`${bar}--visible`);\n openBarElements.add(el);\n\n if (coversWholeScreen(el)) disableBodyScrolling(bar);\n } else {\n if (persist) sessionStorage.removeItem(`${bar}Visible`);\n\n el.classList.add(`${bar}--hiding`);\n\n openBarElements.delete(el);\n restoreBodyScrolling(bar);\n\n setTimeout(() => {\n el.classList.remove(`${bar}--hiding`, `${bar}--visible`);\n }, 500);\n }\n}\n\nconst getResizeHandler = memoize((bar: string) => () => {\n const el = document.querySelector(`.tixxt__${bar}`);\n if (!(el instanceof HTMLElement)) return;\n\n if (!coversWholeScreen(el)) toggle(bar, false);\n});\n\nexport function disableBodyScrolling(bar: string) {\n document.body.style.top = `-${window.scrollY}px`;\n document.body.style.overflow = \"hidden\";\n document.body.style.position = \"fixed\";\n\n window.addEventListener(\"resize\", getResizeHandler(bar));\n}\n\nexport function restoreBodyScrolling(bar: string) {\n if (!shouldRestoreBodyScrolling()) return;\n\n const scrollY = document.body.style.top;\n document.body.style.removeProperty(\"overflow\");\n document.body.style.removeProperty(\"position\");\n document.body.style.removeProperty(\"top\");\n window.scrollTo(0, parseInt(scrollY || \"0\") * -1);\n window.removeEventListener(\"resize\", getResizeHandler(bar));\n}\n\nexport function closeUserbar() {\n toggle(\"userbar\", false);\n}\n\n/* show bar immediately if it was visible before */\nexport function restoreVisibility(bar: string, el: HTMLElement) {\n if (sessionStorage.getItem(`${bar}Visible`)) {\n el.classList.add(`${bar}--visible`);\n }\n}\n\nexport function toggleChatbar() {\n if (window.innerWidth >= CHAT_STATIC_BREAKPOINT) {\n toggleStaticChat();\n } else {\n toggle(\"chatbar\");\n }\n}\n\nfunction toggleStaticChat() {\n if (document.body.classList.contains(\"tixxt--with-chat\")) {\n sessionStorage.setItem(\"chatbarStaticHidden\", \"true\");\n hideStaticChat();\n } else {\n sessionStorage.removeItem(\"chatbarStaticHidden\");\n document.body.classList.add(\"tixxt--with-chat\");\n document.getElementById(\"chatbar-root\")?.classList.remove(\"hidden\");\n }\n}\n\nfunction hideStaticChat() {\n document.body.classList.remove(\"tixxt--with-chat\");\n document.getElementById(\"chatbar-root\")?.classList.add(\"hidden\");\n}\n\n/* hide chat immediately if it was hidden before */\nexport function restoreStaticChat() {\n if (sessionStorage.getItem(\"chatbarStaticHidden\")) {\n hideStaticChat();\n }\n}\n","import { Application } from \"@hotwired/stimulus\";\n\nconst application = Application.start();\n\n// Configure Stimulus development experience\napplication.debug = false;\nwindow.Stimulus = application;\n\nexport { application };\n","import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"accordion-scroll\"\nexport default class extends Controller {\n connect() {\n this.scrollToOpenAccordion();\n this.element.addEventListener(\"shown.bs.collapse\", () => {\n this.scrollToOpenAccordion();\n });\n }\n\n scrollToOpenAccordion() {\n const openAccordionItem = this.element.querySelector(\".collapse.show\");\n\n if (openAccordionItem) {\n const button =\n openAccordionItem.previousElementSibling.querySelector(\"button\");\n\n button.scrollIntoView({\n behavior: \"smooth\",\n block: \"end\",\n inline: \"nearest\",\n });\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"administration--activitystream--close-activity-reply-month\"\nexport default class extends Controller {\n onClickChangeValue(event) {\n this.$CloseActivityReplyAutomaticSelect = this.element.querySelector(\n \".close_activity_reply_automatic_select\",\n );\n\n this.$CloseActivityReplyAutomaticSelect.classList.toggle(\n \"hidden\",\n !(event.target.value === \"automatic\"),\n );\n }\n}\n","import React, { useEffect, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./Flash.css\";\n\ntype Props = {\n alert: string;\n children: string;\n rootId?: string;\n};\n\nexport default function Flash({\n alert = \"success\",\n children,\n rootId = \"spa-root\",\n}: Props) {\n const [close, closeNotification] = useState(false);\n\n useEffect(() => {\n setTimeout(() => closeNotification(true), 5000);\n }, []);\n\n return ReactDOM.createPortal(\n
    \n
    \n \n {children}\n \n ×\n \n
    \n
    \n ,\n document.getElementById(rootId) as HTMLElement,\n );\n}\n","import React, { useState } from \"react\";\nimport { Category } from \"../../../../@types/appointmentCategories\";\n\nfunction CategoryRow({\n category,\n changeCategory,\n removeCategory,\n}: {\n category: Category;\n changeCategory: (id: string, label: string) => void;\n removeCategory: (id: string) => void;\n}) {\n const [text, setText] = useState(category.label);\n const [edit, setEdit] = useState(false);\n\n return (\n
  • \n {edit ? (\n
    \n setText(e.target.value)}\n />\n {\n e.preventDefault();\n changeCategory(category.id, text);\n setEdit(false);\n }}\n >\n \n \n
    \n ) : (\n category.label\n )}\n
    \n {\n e.preventDefault();\n setEdit(true);\n }}\n >\n \n \n {\n e.preventDefault();\n removeCategory(category.id);\n }}\n >\n \n \n
    \n
  • \n );\n}\n\nexport default CategoryRow;\n","import React from \"react\";\nimport MarkdownTranslation from \"components/shared/MarkdownTranslation\";\nimport classNames from \"classnames\";\n\nfunction InfoText({\n translation,\n showIcon = true,\n small = false,\n}: {\n translation: string;\n showIcon?: boolean;\n small?: boolean;\n}) {\n return (\n \n {showIcon && (\n \n )}\n \n \n );\n}\n\nexport default InfoText;\n","import React, { useEffect, useState } from \"react\";\nimport { filter, map, some } from \"lodash\";\n\nimport Flash from \"components/shared/Flash\";\nimport { Category } from \"../../../../@types/appointmentCategories\";\nimport CategoryRow from \"components/administration/appointments/categories/CategoryRow\";\nimport InfoText from \"components/shared/InfoText\";\n\nfunction CategoriesEditor({ categories }: { categories: Category[] }) {\n const [selectedCategories, setSelectedCategories] = useState(categories);\n const [text, setText] = useState(\"\");\n const [error, setError] = useState(\"\");\n\n // set value to hidden input in administration appointment settings\n useEffect(() => {\n document.getElementsByName(\"custom_categories\")[0].setAttribute(\n \"value\",\n JSON.stringify(\n map(selectedCategories, (cat) => {\n // if category is new remove the id key\n if (cat.id === cat.label) {\n return { label: cat.label };\n } else {\n return cat;\n }\n }),\n ),\n );\n }, [selectedCategories]);\n\n function addCategory() {\n if (some(selectedCategories, { label: text })) {\n setError(\n I18n.t(\n \"js.administration.appointment_settings.edit.duplicated_category\",\n ),\n );\n } else {\n setSelectedCategories([...selectedCategories, { id: text, label: text }]);\n setText(\"\");\n setError(\"\");\n }\n }\n\n function changeCategory(id: string, label: string) {\n const changedCategories = map(selectedCategories, (cat) => {\n if (cat.id === id) {\n return { ...cat, id: cat.id === cat.label ? label : cat.id, label };\n } else {\n return cat;\n }\n });\n\n setSelectedCategories(changedCategories);\n }\n\n function removeCategory(id: string) {\n let changedCategories;\n\n if (some(categories, { id })) {\n changedCategories = map(selectedCategories, (cat) => {\n if (cat.id === id) {\n return { ...cat, _destroy: true };\n } else {\n return cat;\n }\n });\n } else {\n changedCategories = filter(selectedCategories, (cat) => cat.id !== id);\n }\n\n setSelectedCategories(changedCategories);\n }\n\n return (\n <>\n {error !== \"\" ? (\n \n {error}\n \n ) : null}\n
    \n \n
      \n {map(\n filter(selectedCategories, (cat) => !cat._destroy),\n (category) => (\n \n ),\n )}\n
    \n
    \n setText(e.target.value)}\n />\n {\n e.preventDefault();\n addCategory();\n }}\n disabled={text === \"\"}\n >\n {I18n.t(\n \"js.networks.appointment_settings.custom_categories.add_category\",\n )}\n \n
    \n
    \n \n );\n}\n\nexport default CategoriesEditor;\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { Controller } from \"@hotwired/stimulus\";\nimport CategoriesEditor from \"../../components/administration/appointments/categories/CategoriesEditor\";\n\n// Connects to data-controller=\"administration--edit-categories\"\nexport default class extends Controller {\n static values = { context: String, categories: Array };\n\n connect() {\n const root = createRoot(this.element);\n root.render(\n ,\n );\n }\n\n disconnect() {\n createRoot(this.element).unmount();\n }\n}\n","import React, { useRef } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { Controller } from \"@hotwired/stimulus\";\nimport Modal from \"../../../components/shared/Modal\";\nimport ControlGroup from \"../../../components/shared/fields/ControlGroup\";\nimport Textarea from \"react-textarea-autosize\";\n\nfunction JoinRequestModal({ onClose, groupSlug, joinRequestId }) {\n const formRef = useRef();\n const submitUrl = `/groups/${groupSlug}/administration/join_requests/${joinRequestId}/reject`;\n\n return (\n formRef.current?.submit(),\n }}\n >\n
    \n \n \n

    \n \n \n \n \n );\n}\nActivityIntegration.propTypes = {\n properties: PropertiesReference.propTypes.properties,\n activity: PropTypes.shape({\n teaser_template: PropTypes.string,\n onActivityTeaserChange: PropTypes.func,\n }),\n};\n\nexport default ActivityIntegration;\n","import PropTypes from \"prop-types\";\nimport React, { useState } from \"react\";\nimport { map } from \"lodash\";\n\nimport PropertiesReference from \"./PropertiesReference\";\n\nfunction SingleEmailIntegration({\n properties,\n integration,\n onChange,\n onRemove,\n}) {\n const [subject, setSubject] = useState(integration.email_subject_template);\n const [text, setText] = useState(integration.email_text_template);\n\n return (\n
    \n
    \n {\n e.preventDefault();\n onRemove();\n }}\n >\n \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.delete_integration\",\n )}\n \n
    \n
    \n
    \n
    \n \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.assignee_property\",\n )}\n \n
    \n {\n e.preventDefault();\n onChange({\n ...integration,\n assignee_property_id: e.target.value,\n });\n }}\n >\n \n {map(properties, (prop) =>\n prop.type === \"membership\" ? (\n \n ) : null,\n )}\n \n
    \n
    \n\n
    \n \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.trigger\",\n )}\n \n
    \n {\n e.preventDefault();\n onChange({\n ...integration,\n trigger: e.target.value,\n });\n }}\n >\n \n \n \n
    \n
    \n\n
    \n \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.subject\",\n )}\n \n
    \n {\n e.preventDefault();\n setSubject(e.target.value);\n\n onChange({\n ...integration,\n email_subject_template: e.target.value,\n });\n }}\n />\n
    \n
    \n\n
    \n \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.text\",\n )}\n \n
    \n {\n e.preventDefault();\n setText(e.target.value);\n\n onChange({\n ...integration,\n email_text_template: e.target.value,\n });\n }}\n />\n
    \n
    \n
    \n
    \n
    \n );\n}\n\nSingleEmailIntegration.propTypes = {\n properties: PropertiesReference.propTypes.properties,\n integration: PropTypes.shape({\n type: PropTypes.string,\n trigger: PropTypes.string,\n assignee_property_id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]),\n email_subject_template: PropTypes.string,\n email_text_template: PropTypes.string,\n }),\n onChange: PropTypes.func,\n onRemove: PropTypes.func,\n};\n\nexport default SingleEmailIntegration;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { isEmpty, map } from \"lodash\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport PropertiesReference from \"./PropertiesReference\";\nimport SingleEmailIntegration from \"./SingleEmailIntegration\";\n\nconst ADDITIONAL_PROPERTIES = [\n \"author\",\n \"last_author\",\n \"app_name\",\n \"actor_name\",\n];\n\nconst EmailIntegration = ({\n properties,\n emailIntegrations,\n onEmailIntegrationsChange,\n}) => {\n const addIntegration = () => {\n onEmailIntegrationsChange([\n ...emailIntegrations,\n {\n uuid: uuidv4(),\n type: \"email_notification\",\n trigger: \"assign\",\n assignee_property_id: \"-1\",\n email_subject_template: \"\",\n email_text_template: \"\",\n },\n ]);\n };\n\n const removeIntegration = (index) => {\n onEmailIntegrationsChange([\n ...emailIntegrations.slice(0, index),\n ...emailIntegrations.slice(index + 1),\n ]);\n };\n\n const changeIntegration = (index, integration) => {\n onEmailIntegrationsChange([\n ...emailIntegrations.slice(0, index),\n integration,\n ...emailIntegrations.slice(index + 1),\n ]);\n };\n\n return (\n
    \n

    \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.title\",\n )}\n

    \n
    \n
    \n

    \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.description\",\n )}\n

    \n

    \n
    \n \n
    \n
    \n
    \n {\n e.preventDefault();\n addIntegration();\n }}\n >\n \n {I18n.t(\n \"js.administration.app_creator.app.integrations.email_notifications.add_integration\",\n )}\n \n
    \n
    \n {map(emailIntegrations, (integration, i) => {\n // dirty workaround to apply a uuid as key (if not available yet), trick the optimised react rendering\n if (isEmpty(integration.uuid)) {\n integration.uuid = uuidv4();\n }\n\n return (\n \n changeIntegration(i, updatedIntegration)\n }\n onRemove={() => removeIntegration(i)}\n />\n );\n })}\n
    \n );\n};\nEmailIntegration.propTypes = {\n properties: PropertiesReference.propTypes.properties,\n emailIntegrations: PropTypes.arrayOf(\n SingleEmailIntegration.propTypes.integration,\n ),\n onEmailIntegrationsChange: PropTypes.func,\n};\n\nexport default EmailIntegration;\n","import React, { useState } from \"react\";\nimport classnames from \"classnames\";\n\nimport PropertiesReference from \"./PropertiesReference\";\nimport ActivityIntegration from \"./ActivityIntegration\";\nimport EmailIntegration from \"./EmailIntegration\";\n\nfunction IntegrationsEditor({\n properties,\n activity,\n emailIntegrations,\n onEmailIntegrationsChange,\n}) {\n const [activeTab, setActiveTab] = useState(\"activity\");\n\n return (\n \n \n );\n}\n\nIntegrationsEditor.propTypes = {\n properties: PropertiesReference.propTypes.properties,\n activity: ActivityIntegration.propTypes.activity,\n emailIntegrations: EmailIntegration.propTypes.emailIntegrations,\n onEmailIntegrationsChange:\n EmailIntegration.propTypes.onEmailIntegrationsChange,\n};\n\nexport default IntegrationsEditor;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"lodash\";\n\nfunction AssignedMember({ id, imageId, displayValue }) {\n return (\n \n \n {displayValue}\n \n );\n}\n\nAssignedMember.propTypes = {\n id: PropTypes.string,\n displayValue: PropTypes.string,\n imageId: PropTypes.string,\n};\n\nexport default AssignedMember;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { isArray, map } from \"lodash\";\nimport AssignedMember from \"../details/AssignedMember\";\n\nfunction AssignedMembers({ memberships }) {\n return (\n
    \n
    \n
    \n {isArray(memberships) ? (\n map(memberships, (membership, index) =>\n index < 7 ? (\n \n ) : null,\n )\n ) : (\n \n )}\n {memberships.length > 7 ? `+${memberships.length - 7}` : null}\n
    \n
    \n
    \n
    \n );\n}\nAssignedMembers.propTypes = {\n cardId: PropTypes.string,\n memberships: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n imageId: PropTypes.string,\n }),\n ),\n};\n\nexport default AssignedMembers;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { map } from \"lodash\";\n\nfunction Tag(tag) {\n return (\n \n \n {tag.name}\n \n \n );\n}\nTag.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n};\n\nfunction Tags({ tags }) {\n return (\n
    \n {map(tags, (tag) => (\n \n ))}\n
    \n );\n}\nTags.propTypes = {\n tags: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n ),\n};\n\nexport default Tags;\n","import React, { useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"lodash\";\n\nimport Tags from \"./Tags\";\n\nexport default function Info({ logo, description, tags, setFilteredByTag }) {\n const descriptionContainer = useRef(null);\n\n return (\n
    \n {!isEmpty(logo) ? (\n
    \n \n
    \n ) : null}\n {!isEmpty(description) ? (\n
    \n \n {descriptionContainer?.current?.clientHeight > 64 ? (\n
    \n ) : null}\n
    \n ) : null}\n {!isEmpty(tags) ? (\n \n ) : null}\n
    \n );\n}\nInfo.propTypes = {\n logo: PropTypes.shape({\n url: PropTypes.string,\n }),\n description: PropTypes.string,\n setDescriptionContainer: PropTypes.func,\n setFilteredByTag: PropTypes.func,\n parseMarkdown: PropTypes.func,\n descriptionContainer: PropTypes.shape({\n clientHeight: PropTypes.number,\n }),\n tags: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n id: PropTypes.string,\n }),\n ),\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nfunction FileCounter({ filesCount }) {\n return (\n
    \n \n {filesCount}\n
    \n );\n}\nFileCounter.propTypes = {\n filesCount: PropTypes.number,\n};\n\nexport default FileCounter;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment-timezone\";\nimport { isEmpty } from \"lodash\";\nimport preventDefault from \"../../../../helpers/components/preventDefault\";\n\nexport default function Title({\n title,\n date,\n cardId,\n toggleArchive,\n isArchive,\n isUnassigned,\n}) {\n const [showMenu, setShowMenu] = useState(false);\n\n function toggleMenu() {\n setShowMenu(!showMenu);\n }\n\n return (\n
    \n
    \n \n {title}\n \n {date && !isEmpty(date.value) ? (\n

    \n {date.label}:{\" \"}\n {moment(date.value).format(date.format)}\n

    \n ) : null}\n
    \n\n {!isUnassigned ? (\n (showMenu ? setTimeout(toggleMenu, 250) : null)}\n >\n \n \n \n \n
  • \n \n {I18n.t(\"js.apps.wall.show\")}\n \n \n {I18n.t(\"js.apps.wall.edit\")}\n \n \n {isArchive\n ? I18n.t(\"js.apps.wall.restore\")\n : I18n.t(\"js.apps.wall.archive\")}\n \n
  • \n \n
    \n ) : null}\n
    \n );\n}\nTitle.propTypes = {\n title: PropTypes.string,\n date: PropTypes.oneOfType([\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n format: PropTypes.string,\n }),\n PropTypes.string,\n ]),\n cardId: PropTypes.string,\n toggleMenu: PropTypes.func,\n onSetShowMenuRef: PropTypes.func,\n toggleArchive: PropTypes.func,\n showMenu: PropTypes.bool,\n isArchive: PropTypes.bool,\n isUnassigned: PropTypes.bool,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\n\nfunction ArchiveInfo({ archivedBy, archivedAt }) {\n return (\n
    \n {I18n.t(\"js.apps.wall.archive_info\", {\n date: moment(archivedAt).format(\"DD. MMMM YYYY\"),\n time: moment(archivedAt).format(\"hh:mm\"),\n person_name: archivedBy,\n })}\n
    \n );\n}\nArchiveInfo.propTypes = {\n archivedBy: PropTypes.string,\n archivedAt: PropTypes.string,\n};\nexport default ArchiveInfo;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { compose, withState, withHandlers, withProps } from \"recompose\";\nimport classNames from \"classnames\";\nimport { isEmpty, isArray } from \"lodash\";\nimport { DragSource, DropTarget } from \"react-dnd\";\nimport AssignedMembers from \"./details/AssignedMembers\";\nimport Info from \"./details/Info\";\nimport FileCounter from \"./details/FileCounter\";\nimport Title from \"./details/Title\";\nimport ArchiveInfo from \"./details/ArchiveInfo\";\nimport { archiveItem, unarchiveItem } from \"../../../actions/appCreator\";\n\nconst cardSource = {\n canDrag(props) {\n console.log(\"CAN MOVE\", props.canMoveCard);\n return props.canMoveCard;\n },\n beginDrag(props) {\n props.setCardHeight(props.cardRef.clientHeight);\n return {\n cardId: props.cardId,\n };\n },\n endDrag(props, monitor) {\n if (monitor.didDrop()) {\n const result = monitor.getDropResult();\n props.onMoveCard({\n cardId: props.cardId,\n fieldName: result.fieldName,\n targetColumn: result.column,\n insertAfterCardId: result.insertAfterCardId,\n });\n }\n },\n};\n\nconst cardTarget = {\n hover(props) {\n props.setHoveredCardId && props.setHoveredCardId(props.cardId);\n },\n};\n\nconst Card = compose(\n DragSource(\"card\", cardSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n })),\n DropTarget(\"card\", cardTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n })),\n)(({\n title,\n description,\n date,\n tags,\n logo,\n connectDragSource,\n isDragging,\n connectDropTarget,\n isOver,\n cardId,\n filesCount,\n memberships,\n onSetCardRef,\n cardHeight,\n archiveItem,\n isArchive,\n unarchiveItem,\n archivedBy,\n archivedAt,\n setFilteredByTag,\n setFilteredByMember,\n isUnassigned,\n}) => {\n return connectDragSource(\n connectDropTarget(\n
    \n \n
    \n \n \n \n {filesCount > 0 ? : null}\n {!isEmpty(memberships) ? (\n \n ) : null}\n {isArchive ? (\n \n ) : null}\n
    \n
    \n
    \n {isOver && !isDragging ? (\n \n ) : null}\n ,\n ),\n );\n});\nCard.propTypes = {\n title: PropTypes.string,\n filesCount: PropTypes.number,\n memberships: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({ id: PropTypes.string, displayValue: PropTypes.string }),\n ),\n PropTypes.shape({ id: PropTypes.string, displayValue: PropTypes.string }),\n ]),\n description: PropTypes.string,\n date: PropTypes.oneOfType([\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n format: PropTypes.string,\n }),\n PropTypes.string,\n ]),\n tags: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string,\n id: PropTypes.string,\n }),\n ),\n logo: PropTypes.shape({\n url: PropTypes.string,\n }),\n setCard: PropTypes.func,\n onMoveCard: PropTypes.func,\n setHoveredCardId: PropTypes.func,\n onSetCardRef: PropTypes.func,\n setCardHeight: PropTypes.func,\n archiveItem: PropTypes.func,\n unarchiveItem: PropTypes.func,\n setFilteredByTag: PropTypes.func,\n setFilteredByMember: PropTypes.func,\n cardId: PropTypes.string,\n appId: PropTypes.string,\n cardHeight: PropTypes.number,\n isArchive: PropTypes.bool,\n archivedBy: PropTypes.string,\n archivedAt: PropTypes.string,\n column: PropTypes.string,\n isUnassigned: PropTypes.bool,\n canMoveCard: PropTypes.bool,\n};\n\nexport default compose(\n connect(null, (dispatch, { appId, cardId, column }) => ({\n archiveItem: () => dispatch(archiveItem({ appId, itemId: cardId, column })),\n unarchiveItem: () => dispatch(unarchiveItem({ appId, itemId: cardId })),\n })),\n withProps(({ logo }) => ({\n logo: isArray(logo) ? logo[0] : logo,\n })),\n withState(\"cardRef\", \"setCardRef\", null),\n withHandlers({\n onSetCardRef:\n ({ setCardRef }) =>\n (ref) => {\n setCardRef(ref);\n },\n }),\n)(Card);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { compose, withState, withHandlers, lifecycle } from \"recompose\";\nimport { DropTarget } from \"react-dnd\";\nimport { map, isEmpty, get } from \"lodash\";\n\nimport Card from \"./Card\";\n\nconst columnTitleTarget = {\n hover(props) {\n props.setIsOverColumnTitle(true);\n props.setHoveredCardId(null);\n },\n drop(props) {\n props.setIsOverColumnTitle(false);\n return {\n column: props.value,\n fieldName: props.columnField.name,\n insertAfterCardId: null,\n };\n },\n};\n\nconst ColumnTitle = compose(\n DropTarget(\"card\", columnTitleTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n })),\n withHandlers({\n changeIsOver:\n ({ setIsOverColumnTitle }) =>\n () =>\n setIsOverColumnTitle(false),\n }),\n lifecycle({\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.isOver !== this.props.isOver && !nextProps.isOver) {\n this.props.changeIsOver(false);\n }\n },\n }),\n)(({ title, connectDropTarget }) =>\n connectDropTarget(
    {title}
    ),\n);\nColumnTitle.propTypes = {\n title: PropTypes.string,\n};\n\nconst columnTarget = {\n hover(props) {\n props.setHoveredCardId(null);\n },\n drop(props) {\n return {\n column: props.value,\n fieldName: props.columnField.name,\n insertAfterCardId: props.hoveredCardId,\n };\n },\n};\n\nconst Column = compose(\n DropTarget(\"card\", columnTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n })),\n withState(\"currentCard\", \"setCurrentCard\", {}),\n withState(\"isOverColumnTitle\", \"setIsOverColumnTitle\", false),\n)((props) => {\n return !isEmpty(props.value)\n ? props.connectDropTarget(\n \n \n
    \n
    \n {props.isOverColumnTitle ? (\n \n ) : null}\n {map(props.cards, (card) => (\n props.setCurrentCard(card)}\n onMoveCard={props.onMoveCard}\n cardId={card.id}\n column={props.value}\n fieldName={props.columnField.name}\n setHoveredCardId={props.setHoveredCardId}\n setCardHeight={props.setCardHeight}\n cardHeight={props.cardHeight}\n appId={props.appId}\n isArchive={props.isArchive}\n setFilteredByTag={props.setFilteredByTag}\n setFilteredByMember={props.setFilteredByMember}\n archivedBy={\n !isEmpty(card.archived_by)\n ? card.archived_by.displayValue\n : null\n }\n archivedAt={\n !isEmpty(card.archived_at) ? card.archived_at : null\n }\n canMoveCard={\n get(card, \"can.update\") &&\n get(props.columnField, \"can.update\")\n }\n />\n ))}\n {props.hasMoreItems ? (\n
    \n {I18n.t(\"js.apps.wall.show_more_items\")}{\" \"}\n \n
    \n ) : null}\n {props.totalArchivedItems > 0 ? (\n {`${I18n.t(\n \"js.apps.wall.archived_cards\",\n )}: ${props.totalArchivedItems}`}\n ) : null}\n
    \n
    \n ,\n )\n : null;\n});\nColumn.propTypes = {\n cardTitleField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardDescriptionField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardLogoField: PropTypes.shape({\n name: PropTypes.string,\n }),\n columnField: PropTypes.shape({\n name: PropTypes.string,\n }),\n onMoveCard: PropTypes.func,\n cardFileField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardMembershipField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardTagField: PropTypes.shape({\n name: PropTypes.string,\n }),\n hasMoreItems: PropTypes.bool,\n cards: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n attributes: PropTypes.shape({}),\n }),\n ),\n connectDropTarget: PropTypes.func,\n setCurrentCard: PropTypes.func,\n parseMarkdown: PropTypes.func,\n loadMoreItems: PropTypes.func,\n setHoveredCardId: PropTypes.func.isRequired,\n setCardHeight: PropTypes.func,\n setFilteredByTag: PropTypes.func,\n setFilteredByMember: PropTypes.func,\n cardHeight: PropTypes.number,\n label: PropTypes.string,\n value: PropTypes.string,\n hoveredCardId: PropTypes.string,\n loadMoreUrl: PropTypes.string,\n appId: PropTypes.string,\n isLast: PropTypes.bool,\n isArchive: PropTypes.bool,\n cardDateField: PropTypes.shape([\n {\n format: PropTypes.string,\n label: PropTypes.string,\n },\n PropTypes.string,\n ]),\n totalArchivedItems: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n appUrl: PropTypes.string,\n};\n\nexport default compose(withState(\"hoveredCardId\", \"setHoveredCardId\", null))(\n Column,\n);\n","import React, { useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport GenericErrorBoundary from \"components/shared/GenericErrorBoundary\";\nimport { restoreVisibility, restoreStaticChat } from \"layout/togglebar\";\n\nfunction createPortalComponent(\n rootId: string,\n callback?: (el: HTMLElement) => void,\n) {\n return function ({ children }) {\n const elemRef = useRef(null);\n\n useEffect(() => {\n function callCallback() {\n if (callback && elemRef.current) callback(elemRef.current);\n }\n\n document.addEventListener(\"turbo:render\", callCallback);\n callCallback();\n\n return () => {\n document.removeEventListener(\"turbo:render\", callCallback);\n };\n }, [callback, elemRef]);\n\n if (!elemRef.current) {\n elemRef.current = document.getElementById(rootId);\n while (elemRef.current?.firstChild)\n elemRef.current.removeChild(elemRef.current.firstChild);\n }\n\n if (!elemRef.current) return null;\n\n return createPortal(\n {children || null},\n elemRef.current,\n );\n };\n}\n\nconst HeaderPortal = createPortalComponent(\"header-root\");\nconst WallViewFilterPortal = createPortalComponent(\"wallview-filter-root\");\n\nconst UserbarPortal = createPortalComponent(\"userbar-root\");\nconst ChatbarPortal = createPortalComponent(\"chatbar-root\", (el) => {\n restoreVisibility(\"chatbar\", el);\n restoreStaticChat();\n});\nconst ContentPortal = createPortalComponent(\"spa-root\");\nconst GroupNavigationPortal = createPortalComponent(\"group-navigation-root\");\nconst PageTitlePortal = createPortalComponent(\"legacy-page-title-root\");\n\nexport {\n HeaderPortal,\n UserbarPortal,\n ChatbarPortal,\n ContentPortal,\n GroupNavigationPortal,\n PageTitlePortal,\n WallViewFilterPortal,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useQueryParams } from \"../../../helpers/useQueryParams\";\nimport AssignedMember from \"./details/AssignedMember\";\nimport { WallViewFilterPortal } from \"../../layout/portals\";\n\nfunction HeaderButtons({ url, type }) {\n const queryParams = useQueryParams();\n return (\n <>\n {type == \"archive\" ? (\n
    \n \n \n \n
    \n ) : (\n \n \n
    \n \n\n {\"tag\" in queryParams && (\n \n {queryParams.tag}{\" \"}\n \n )}\n\n {\"assignee_id\" in queryParams && (\n \n )}\n
    \n \n
    \n )}\n \n );\n}\n\nHeaderButtons.propTypes = {\n url: PropTypes.string,\n type: PropTypes.string,\n};\n\nexport default HeaderButtons;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"lodash\";\n\nfunction AppStage({ logoId, description }) {\n return (\n
    \n {!isEmpty(logoId) ? (\n \n ) : null}\n \n
    \n
    \n );\n}\n\nAppStage.propTypes = {\n logoId: PropTypes.string,\n description: PropTypes.string,\n};\n\nexport default AppStage;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { map, get } from \"lodash\";\n\nimport Card from \"./Card\";\n\nexport default function UnassignedItems({\n cardProps,\n items,\n titlePropName,\n canUpdateColumn,\n}) {\n const [showItems, setShowItems] = useState(false);\n\n function toggleShowItems() {\n setShowItems(!showItems);\n }\n\n return (\n
    \n \n {items.length === 1\n ? I18n.t(\"js.apps.wall.unassigned_item.hint\")\n : I18n.t(\"js.apps.wall.unassigned_items.hint\", {\n counter: items.length,\n })}\n \n
    \n {showItems ? (\n
    \n {map(items, (item) => (\n \n ))}\n
    \n ) : null}\n
    \n );\n}\nUnassignedItems.propTypes = {\n toggleShowItems: PropTypes.func,\n showItems: PropTypes.bool,\n cardProps: PropTypes.shape({\n isArchive: PropTypes.bool,\n onMoveCard: PropTypes.func,\n setCardHeight: PropTypes.func,\n setFilteredByTag: PropTypes.func,\n setFilteredByMember: PropTypes.func,\n }),\n items: PropTypes.array,\n titlePropName: PropTypes.string,\n canUpdateColumn: PropTypes.bool,\n};\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { DragDropContext } from \"react-dnd\";\nimport HTML5Backend from \"react-dnd-html5-backend\";\nimport { compose, withProps, lifecycle, withState } from \"recompose\";\nimport { findIndex, map, compact, isEmpty, find, get } from \"lodash\";\n\nimport Column from \"./wallView/Column\";\nimport HeaderButtons from \"./wallView/HeaderButtons\";\nimport AppStage from \"./wallView/AppStage\";\nimport UnassignedItems from \"./wallView/UnassignedItems\";\nimport {\n fetchApp,\n updateItem,\n fetchItems,\n loadMoreItemsByColumn,\n fetchItems as fetchItemsForTag,\n fetchItems as fetchItemsForMember,\n} from \"actions/appCreator\";\nimport {\n itemsSelector as itemsForWallSelector,\n loadMoreUrlsSelector,\n totalArchivedItemsSelector,\n} from \"selectors/appCreator\";\nimport store from \"store\";\nimport wrapProvider from \"helpers/components/wrapProvider\";\nimport useFullWidthLayout from \"hooks/useFullWidthLayout\";\n\nfunction ItemsWallView({\n items,\n app,\n columnField,\n cardTitleField,\n cardDescriptionField,\n cardDateField,\n cardLogoField,\n cardTagField,\n columns,\n onMoveCard,\n cardFileField,\n cardMembershipField,\n layoutOptions,\n loadMoreUrls,\n loadMoreItems,\n unassignedItems,\n setCardHeight,\n cardHeight,\n isArchive,\n appUrl,\n totalArchivedItems,\n setFilteredByTag,\n setFilteredByMember,\n showsFilteredItems,\n}) {\n useFullWidthLayout();\n\n return (\n
    \n
    \n {isArchive || showsFilteredItems ? (\n \n ) : null}\n {layoutOptions.stage ? (\n \n ) : null}\n {!isEmpty(unassignedItems) ? (\n \n ) : null}\n
    \n {isEmpty(columns) ? (\n
    \n {I18n.t(\"js.apps.wall.no_columns.hint\")}\n
    \n ) : (\n
    \n
    \n {map(columns, (column, index) => {\n return (\n \n loadMoreItems({ url: loadMoreUrls[column.value] })\n }\n totalArchivedItems={\n totalArchivedItems ? totalArchivedItems[column.value] : \"0\"\n }\n cards={compact(\n map(items, (item) =>\n get(item, [\"values\", columnField.name, 0]) ===\n column.value\n ? item\n : null,\n ),\n )}\n {...column}\n />\n );\n })}\n
    \n
    \n )}\n
    \n );\n}\n\nItemsWallView.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({})),\n unassignedItems: PropTypes.arrayOf(PropTypes.shape({})),\n columnField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardTitleField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardDescriptionField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardDateField: PropTypes.shape({\n format: PropTypes.string,\n label: PropTypes.string,\n }),\n cardLogoField: PropTypes.shape({\n url: PropTypes.string,\n }),\n cardFileField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardMembershipField: PropTypes.shape({\n name: PropTypes.string,\n }),\n cardTagField: PropTypes.shape({\n name: PropTypes.string,\n }),\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n ),\n onMoveCard: PropTypes.func,\n layoutOptions: PropTypes.shape({\n stage: PropTypes.bool,\n }),\n parseMarkdown: PropTypes.func,\n loadMoreItems: PropTypes.func,\n showUnassignedItems: PropTypes.bool,\n showsFilteredItems: PropTypes.bool,\n toggleShowUnassignedItems: PropTypes.func,\n setCardHeight: PropTypes.func,\n setFilteredByTag: PropTypes.func,\n setFilteredByMember: PropTypes.func,\n resetTagFilter: PropTypes.func,\n filteredByTag: PropTypes.string,\n cardHeight: PropTypes.number,\n app: PropTypes.shape({}),\n isArchive: PropTypes.bool,\n loadMoreUrls: PropTypes.objectOf(PropTypes.string),\n appUrl: PropTypes.string,\n totalArchivedItems: PropTypes.shape({}),\n};\n\nexport default compose(\n wrapProvider(store),\n connect(\n (state) => ({\n items: itemsForWallSelector(state),\n loadMoreUrls: loadMoreUrlsSelector(state),\n totalArchivedItems: totalArchivedItemsSelector(state),\n }),\n (dispatch, { app, isArchive }) => ({\n onMoveCard: ({ cardId, fieldName, targetColumn, insertAfterCardId }) => {\n dispatch(\n updateItem({\n appId: app.id,\n itemId: cardId,\n insertAfterCardId,\n body: {\n insert_after_id: insertAfterCardId,\n values: { [fieldName]: [targetColumn] },\n },\n optimistic: true,\n }),\n );\n },\n initApp: () => {\n dispatch({ type: fetchApp.SUCCESS, payload: app });\n },\n fetchItems: () => {\n if (isArchive) {\n dispatch(fetchItems({ appId: app.id, view: \"wall\", archived: true }));\n } else {\n dispatch(fetchItems({ appId: app.id, view: \"wall\" }));\n }\n },\n fetchItemsForTag: ({ tag }) => {\n if (isArchive) {\n dispatch(\n fetchItemsForTag({\n appId: app.id,\n view: \"wall\",\n archived: true,\n tag,\n }),\n );\n } else {\n dispatch(fetchItemsForTag({ appId: app.id, view: \"wall\", tag }));\n }\n },\n fetchItemsForMember: ({ assignee_id }) => {\n if (isArchive) {\n dispatch(\n fetchItemsForMember({\n appId: app.id,\n view: \"wall\",\n archived: true,\n assignee_id,\n }),\n );\n } else {\n dispatch(\n fetchItemsForMember({ appId: app.id, view: \"wall\", assignee_id }),\n );\n }\n },\n loadMoreItems: ({ url }) => {\n dispatch(loadMoreItemsByColumn({ url }));\n },\n }),\n ),\n withState(\"showsFilteredItems\", \"setShowsFilteredItems\", false),\n lifecycle({\n componentDidMount() {\n this.props.initApp();\n if (this.props.tag_filter) {\n this.props.fetchItemsForTag({ tag: this.props.tag_filter });\n this.props.setShowsFilteredItems(true);\n } else if (this.props.member_filter) {\n this.props.fetchItemsForMember({\n assignee_id: this.props.member_filter,\n });\n this.props.setShowsFilteredItems(true);\n } else {\n this.props.fetchItems();\n }\n },\n }),\n withProps(({ app, items }) => {\n const layoutOptions = get(app, [\n \"collection_layout\",\n \"options\",\n get(app, [\"collection_layout\", \"layout\"]),\n ]);\n\n //@get('collection_layout').options?[@get('collection_layout').layout] || {}\n const getField = ({ selector = \"type\", value }) =>\n app.properties[\n findIndex(app.properties, (p) => get(p, selector) === value)\n ];\n\n const cardDescriptionField =\n app.properties[\n findIndex(\n app.properties,\n (p) =>\n p.type === \"text\" && p.name !== getField({ value: \"text\" }).name,\n )\n ];\n\n const appColumns = get(\n find(\n app.properties,\n (prop) => prop._id === layoutOptions.column_property,\n ),\n \"options\",\n );\n\n const unassignedItems = compact(\n map(items, (item) =>\n !get(item, [\"values\", layoutOptions.column_property, 0]) ? item : null,\n ),\n );\n\n const props = {\n columnField: getField({\n selector: \"name\",\n value: layoutOptions.column_property,\n }),\n cardTitleField: getField({ value: \"text\" }),\n cardDescriptionField: cardDescriptionField,\n cardDateField: getField({ value: \"date\" }),\n cardLogoField: getField({ value: \"image\" }),\n cardFileField: getField({ value: \"file\" }),\n cardMembershipField: getField({ value: \"membership\" }),\n cardTagField: getField({ value: \"tag\" }),\n columns: appColumns,\n layoutOptions,\n unassignedItems,\n };\n return { ...props };\n }),\n withState(\"cardHeight\", \"setCardHeight\", 0),\n DragDropContext(HTML5Backend),\n)(ItemsWallView);\n","import {\n ItemDetailLayoutEditor,\n ItemEditLayoutEditor,\n} from \"./ItemLayoutEditor\";\nimport IntegrationsEditor from \"./IntegrationsEditor\";\nimport ItemsWallView from \"./ItemsWallView\";\n\nexport default {\n \"appCreator/ItemDetailLayoutEditor\": ItemDetailLayoutEditor,\n \"appCreator/ItemEditLayoutEditor\": ItemEditLayoutEditor,\n \"appCreator/IntegrationsEditor\": IntegrationsEditor,\n \"appCreator/ItemsWallView\": ItemsWallView,\n};\n","import { get } from \"lodash\";\n\nexport const getNetworkProfileFields = (state) =>\n get(state, [\"network\", \"profile_fields\"]);\n\nexport const networkIdSelector = (state) => get(state, [\"network\", \"id\"]);\n","import { get } from \"lodash\";\nimport { createSelector } from \"reselect\";\n\nconst widgetbarPath = [\"administration\", \"widgetbar\"];\nconst editWidgetbarPath = [...widgetbarPath, \"edit\"];\n\nexport const getWidgets = (state) =>\n get(state, [...editWidgetbarPath, \"widgets\"]);\n\nexport const getWidgetbarGroupId = (state) =>\n get(state, [...editWidgetbarPath, \"groupId\"]);\n\nexport const getWidgetbarSuccessfulSave = (state) =>\n get(state, [...editWidgetbarPath, \"successfulSave\"]);\n\nexport const getWidgetbarErrors = (state) =>\n get(state, [...widgetbarPath, \"errors\"]);\n\nexport const getWidgetbarLoadingState = (state) =>\n get(state, [...widgetbarPath, \"fetchWidgetbar\", \"loading\"]);\n\nexport const getSelectedWidgetIndex = (state) =>\n get(state, [...editWidgetbarPath, \"selectedWidgetIndex\"]);\n\nexport const getCalendars = (state) =>\n get(state, [...editWidgetbarPath, \"calendars\"]);\n\nexport const getWidgetbarIdentifier = (state) =>\n get(state, [...editWidgetbarPath, \"identifier\"]);\n\nexport const getSelectedWidget = createSelector(\n [getWidgets, getSelectedWidgetIndex],\n (widgets, index) => widgets[index],\n);\n\nexport const getWidgetbars = (state) =>\n get(state, [...widgetbarPath, \"index\", \"widgetbars\"]);\n","// extracted by mini-css-extract-plugin\nexport default {\"ModuleselectField\":\"ZEsY5jodl3rKL2esTtW_\"};","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { filter, includes } from \"lodash\";\nimport Select from \"react-select\";\nimport { getNetworkProfileFields } from \"helpers/selectors/networkSelectors\";\nimport { getCalendars } from \"helpers/selectors/widgetbarSelectors\";\nimport { getOptions, scopeSelection } from \"helpers/widgets/widgets\";\nimport styles from \"./MultiselectField.module.css\";\nimport useTooltip from \"hooks/useTooltip\";\n\ninterface MultiselectFieldTypes {\n name: string;\n onChange?(...args: unknown[]): unknown;\n value?: Array;\n type?: string;\n}\n\nexport default function MultiselectField({\n name,\n onChange,\n value: rawValue,\n type,\n}: MultiselectFieldTypes) {\n const rawOptions = {\n profile_fields: useSelector(getNetworkProfileFields),\n additional_calendar_ids: useSelector(getCalendars),\n };\n const options = getOptions(name, { ...rawOptions, scope: scopeSelection() });\n const value = filter(options, (option) => includes(rawValue, option.value));\n\n let labelProps = {};\n\n const tooltipRef = useTooltip();\n\n if (type === \"appointments\" && name === \"scope\") {\n labelProps = {\n [\"data-bs-toggle\"]: \"tooltip\",\n title: I18n.t(`js.administration.widgetbars.${name}.hint`),\n };\n }\n\n return (\n
    \n \n \n
    \n );\n}\n","import React from \"react\";\n\ninterface NumberFieldTypes {\n name: string;\n onChange?(...args: unknown[]): unknown;\n value?: string;\n hint?: string;\n}\n\nfunction NumberField({ name, onChange, value }: NumberFieldTypes) {\n return (\n <>\n \n \n \n );\n}\n\nexport default NumberField;\n","import React from \"react\";\nimport map from \"lodash/map\";\nimport { propTypeSelections } from \"helpers/widgets/widgets\";\ninterface RadioFieldTypes {\n name: string;\n onChange?(...args: unknown[]): unknown;\n value?: string;\n hint?: string;\n}\n\nfunction RadioField({ name, onChange, value }: RadioFieldTypes) {\n return (\n
    \n \n {map(propTypeSelections[name], (selection, index) => (\n \n ))}\n
    \n );\n}\n\nexport default RadioField;\n","import React from \"react\";\nimport map from \"lodash/map\";\nimport { propTypeSelections } from \"helpers/widgets/widgets\";\n\ninterface SelectFieldTypes {\n name: string;\n onChange?(...args: unknown[]): unknown;\n value?: string;\n}\n\nfunction SelectField({ name, onChange, value }: SelectFieldTypes) {\n return (\n
    \n \n \n {map(propTypeSelections[name], (option, index) => (\n \n ))}\n \n
    \n );\n}\n\nexport default SelectField;\n","import React from \"react\";\nimport Hint from \"components/shared/fields/Hint\";\n\ninterface TextareaFieldTypes {\n name: string;\n onChange?(...args: unknown[]): unknown;\n value?: string;\n hint?: string;\n}\n\nfunction TextareaField({ name, onChange, value, hint }: TextareaFieldTypes) {\n return (\n
    \n \n \n \n
    \n );\n}\n\nexport default TextareaField;\n","import React from \"react\";\nimport Hint from \"components/shared/fields/Hint\";\n\ninterface TextFieldTypes {\n name: string;\n onChange?(...args: unknown[]): unknown;\n value?: string;\n hint?: string;\n}\n\nfunction TextField({ name, onChange, value, hint }: TextFieldTypes) {\n return (\n
    \n \n \n \n
    \n );\n}\n\nexport default TextField;\n","import MultiselectField from \"components/administration/widgetbar/fields/MultiselectField\";\nimport NumberField from \"components/administration/widgetbar/fields/NumberField\";\nimport RadioField from \"components/administration/widgetbar/fields/RadioField\";\nimport SelectField from \"components/administration/widgetbar/fields/SelectField\";\nimport TextareaField from \"components/administration/widgetbar/fields/TextareaField\";\nimport TextField from \"components/administration/widgetbar/fields/TextField\";\nimport AdditionalCalendarsField from \"components/administration/widgetbar/fields/AdditionalCalendarField\";\nimport { changeValue } from \"actions/administration/widgetbar\";\nimport { getWidgetbarGroupId } from \"helpers/selectors/widgetbarSelectors\";\nimport { connect } from \"react-redux\";\nimport { compose, withHandlers } from \"recompose\";\nimport { keys, remove, map, includes, slice, last } from \"lodash\";\n\n// if scope includes the value 'all', then remove all other selections\n// if scope includes 'all' and it is the latest selected value, then this should be the only selection\n// if scope includes 'all' and an other value were selected, then remove 'all' out of the selection\nconst handleMultiselectLogic = (eventOrNewVal, valueChange, name) => {\n if (includes(eventOrNewVal, \"all\")) {\n if (last(eventOrNewVal) === \"all\") {\n valueChange({\n propertyKey: name,\n data: [\"all\"],\n });\n } else {\n valueChange({\n propertyKey: name,\n data: [...slice(eventOrNewVal, 1)],\n });\n }\n } else {\n valueChange({\n propertyKey: name,\n data: eventOrNewVal,\n });\n }\n};\n\nconst withOnChange = compose(\n connect(\n (state) => ({\n groupId: getWidgetbarGroupId(state),\n }),\n (dispatch) => ({\n valueChange: ({ propertyKey, data }) =>\n dispatch(changeValue(propertyKey, data)),\n }),\n ),\n withHandlers({\n onChange:\n ({ valueChange, name }) =>\n (eventOrNewVal) => {\n // MultiSelect field doesn't return an event\n if (eventOrNewVal instanceof Array) {\n handleMultiselectLogic(\n map(eventOrNewVal, (hash) => hash.value),\n valueChange,\n name,\n );\n } else {\n valueChange({\n propertyKey: name,\n data: eventOrNewVal.target.value,\n });\n }\n },\n }),\n);\n\nexport const PropTypeFields = {\n headline: withOnChange(TextField),\n content: withOnChange(TextareaField),\n renderer: withOnChange(SelectField),\n profile_fields: withOnChange(MultiselectField),\n scope: withOnChange(MultiselectField),\n count: withOnChange(NumberField),\n show_age: withOnChange(RadioField),\n sort: withOnChange(RadioField),\n url: withOnChange(TextField),\n position: withOnChange(NumberField),\n additional_calendar_ids: withOnChange(AdditionalCalendarsField),\n};\n\nexport const getOptions = (name, possibleOptions) => {\n const options = possibleOptions[name];\n\n switch (name) {\n case \"profile_fields\":\n return options.map((o) => ({\n value: o.name,\n label: o.label,\n }));\n case \"additional_calendar_ids\":\n return options.map((o) => ({\n value: o.id,\n label: o.name,\n }));\n case \"scope\":\n return options.map((o) => ({\n value: o,\n label: I18n.t(`js.administration.widgetbars.selections.${o}`),\n }));\n default:\n return [];\n }\n};\n\nconst checkIfHintShouldShow = (widget, property) => {\n const MembersHeadline =\n /(newest|online)_members/.test(widget.type) && property === \"headline\";\n const GroupInformationText =\n widget.type === \"group_info\" && property === \"content\";\n\n return MembersHeadline || GroupInformationText;\n};\n\nexport const generateHint = (widget, property, groupId) => {\n if (checkIfHintShouldShow(widget, property)) {\n if (widget.type == \"group_info\") {\n return I18n.t(\n `js.administration.widgetbars.hints.${widget.type}.${property}_group`,\n { percent: \"%\" },\n );\n }\n\n return I18n.t(\n `js.administration.widgetbars.hints.${widget.type}.${property}_${\n groupId ? \"group\" : \"network\"\n }`,\n { percent: \"%\" },\n );\n }\n return null;\n};\n\nexport const getWidgetName = (slug) => {\n const prefix = \"js.administration.widgetbars.names.\";\n\n if (slug === \"as-:slug\") {\n return I18n.t(prefix + \"default_network\");\n } else {\n return I18n.t(prefix + \"default_group\");\n }\n};\n\nconst widgets = (type) => widgetConfig[type];\n\nexport const widgetTypes = (identifier) => {\n let types = keys(widgetConfig);\n\n if (scope(identifier) !== \"group\") {\n remove(types, (widgetType) => widgetType === \"group_info\");\n }\n\n return types;\n};\n\nexport const scopeSelection = () => {\n return [\"all\", \"personal\", \"additional_calendar_ids\", \"groups\"];\n};\n\n// Returns true if given identifier belongs to widgetbar in group\nexport const scope = (identifier) =>\n /^g-/.test(identifier) ? \"group\" : \"network\";\n\nexport const propTypeSelections = {\n renderer: [\"markdown\", \"html_sanitized\"],\n show_age: [\"true\", \"false\"],\n sort: [\"asc\", \"desc\"],\n};\n\nconst widgetConfig = {\n admin_members: {\n type: \"admin_members\",\n properties: {\n headline: \"\",\n profile_fields: [],\n },\n },\n appointments: {\n type: \"appointments\",\n properties: {\n headline: \"\",\n scope: [\"personal\"],\n additional_calendar_ids: [],\n count: 10,\n },\n },\n birthday: {\n type: \"birthday\",\n properties: {\n headline: \"\",\n count: 5,\n show_age: \"false\", // Backend requires boolean. Check submit function where the value type is changed\n profile_fields: [],\n },\n },\n group_info: {\n type: \"group_info\",\n properties: {\n headline: \"\",\n content: \"%{profile_image}\" + \"\" + \"## %{group_name}\",\n renderer: \"markdown\",\n },\n },\n newest_members: {\n type: \"newest_members\",\n properties: {\n headline: \"\",\n count: 5,\n profile_fields: [],\n },\n },\n online_members: {\n type: \"online_members\",\n properties: {\n headline: \"\",\n count: 5,\n profile_fields: [],\n },\n },\n rss: {\n type: \"rss\",\n properties: {\n headline: \"\",\n url: null,\n count: 12,\n },\n },\n speed_dial: {\n type: \"speed_dial\",\n properties: {\n headline: \"\",\n count: 15,\n profile_fields: [],\n },\n },\n text: {\n type: \"text\",\n properties: {\n headline: \"\",\n content: \"\",\n renderer: \"markdown\",\n },\n },\n};\n\nexport default widgets;\n","import React from \"react\";\nimport { getSelectedWidget } from \"helpers/selectors/widgetbarSelectors\";\nimport { useSelector } from \"react-redux\";\nimport { includes } from \"lodash\";\nimport MultiselectField from \"components/administration/widgetbar/fields/MultiselectField\";\n\ninterface AdditionalCalendarsFieldTypes {\n name: string;\n onChange?(...args: unknown[]): unknown;\n value?: Array;\n hint?: string;\n}\n\nexport default function AdditionalCalendarsField(\n options: AdditionalCalendarsFieldTypes,\n) {\n const widget = useSelector(getSelectedWidget) as {\n properties: { scope: string };\n };\n\n if (\n includes(widget.properties.scope, \"additional_calendar_ids\") ||\n widget.properties.scope === \"additional_calendar_ids\"\n ) {\n return ;\n } else {\n return null;\n }\n}\n","import React from \"react\";\nimport { DragSource } from \"react-dnd\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\ninterface WidgetTypes {\n widgetType: string;\n isDragging?: boolean;\n isSelected?: boolean;\n draggable?: boolean;\n\n onClick?(...args: unknown[]): unknown;\n}\n\nexport function Widget({\n isDragging,\n widgetType,\n onClick,\n isSelected,\n draggable,\n}: WidgetTypes) {\n return (\n \n {draggable ? (\n \n ) : null}\n {I18n.t(`js.administration.widgetbars.${widgetType}.label`)}\n \n );\n}\n\nexport const DraggableWidget = DragSource(\n \"widget\",\n {\n beginDrag({ widget }) {\n return widget;\n },\n } as { beginDrag(arg: unknown): unknown },\n (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n }),\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n)(({ connectDragSource, ...props }) =>\n (connectDragSource as CallableFunction)(\n Widget({ draggable: true, ...props }),\n ),\n);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport map from \"lodash/map\";\nimport widgets, { widgetTypes } from \"helpers/widgets/widgets\";\nimport { DraggableWidget } from \"components/administration/widgetbar/Widget\";\nimport { getWidgetbarIdentifier } from \"helpers/selectors/widgetbarSelectors\";\n\ninterface WidgetTypesTypes {\n identifier: string;\n}\n\nfunction WidgetTypes({ identifier }: WidgetTypesTypes) {\n return (\n
    \n
    \n

    {I18n.t(\"js.administration.widgetbars.types.headline\")}

    \n
    \n
    \n {map(widgetTypes(identifier), (widgetType) => (\n \n ))}\n
    \n
    \n );\n}\n\nexport default connect((state) => ({\n identifier: getWidgetbarIdentifier(state),\n}))(WidgetTypes);\n","import React from \"react\";\nimport { compose, setDisplayName, toClass } from \"recompose\";\nimport { DropTarget } from \"react-dnd\";\nimport { connect } from \"react-redux\";\nimport { isEmpty, map } from \"lodash\";\nimport { DraggableWidget } from \"components/administration/widgetbar/Widget\";\nimport {\n getWidgets,\n getSelectedWidgetIndex,\n} from \"helpers/selectors/widgetbarSelectors\";\nimport {\n addOrMoveWidget,\n selectWidget,\n} from \"actions/administration/widgetbar\";\nimport { Widget } from \"components/administration/widgetbar/Widget\";\n\nconst layoutTarget = {\n drop({ index, addOrMoveWidget }, monitor) {\n addOrMoveWidget(monitor.getItem(), index);\n },\n};\n\nconst WidgetbarDragNDrop = compose(\n connect(null, (dispatch) => ({\n selectWidget: (index) => dispatch(selectWidget(index)),\n addOrMoveWidget: (widget, index) =>\n dispatch(addOrMoveWidget(widget, index)),\n })),\n DropTarget(\"widget\", layoutTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver({ shallow: true }),\n widgetType: monitor.getItem() ? monitor.getItem().type : null,\n })),\n toClass,\n setDisplayName(\"WidgetbarDragNDrop\"),\n)(({ connectDropTarget, isOver, index, children, selectWidget, widgetType }) =>\n connectDropTarget(\n
    selectWidget(index)}>\n {widgetType && isOver ? (\n
    \n \n
    \n ) : null}\n {children}\n
    ,\n ),\n);\n\nexport default compose(\n connect((state) => ({\n widgets: getWidgets(state),\n selectedWidgetIndex: getSelectedWidgetIndex(state),\n })),\n setDisplayName(\"WidgetbarLayout\"),\n)(({ widgets, selectedWidgetIndex }) => (\n
    \n
    \n

    {I18n.t(\"js.administration.widgetbars.layout.headline\")}

    \n
    \n
    \n {isEmpty(widgets) ? (\n \n {I18n.t(\"js.administration.widgetbars.empty_drop_target_hint\")}\n \n ) : null}\n {map(widgets, (widget, index) => (\n \n \n \n ))}\n \n
     
    \n
    \n
    \n
    \n));\n","import React from \"react\";\nimport { map, mapValues, isEmpty } from \"lodash\";\nimport widgets, { PropTypeFields, generateHint } from \"helpers/widgets/widgets\";\n\nexport interface WidgetPropertiesTypes {\n widget: {\n properties: Record;\n type: string;\n };\n\n removeWidget?(...args: unknown[]): unknown;\n\n groupId?: string;\n}\n\nexport default function WidgetProperties({\n widget,\n removeWidget,\n groupId,\n}: WidgetPropertiesTypes) {\n const defaultProperties = widgets(widget.type).properties;\n const properties = mapValues(\n defaultProperties,\n (prop, key) => widget.properties[key] || prop,\n );\n\n return (\n
    \n
    \n \n \n Typ: {I18n.t(`js.administration.widgetbars.${widget.type}.label`)}\n \n
    \n {map(properties, (value, property) => {\n const Component = PropTypeFields[property];\n const hint = generateHint(widget, property, groupId);\n\n if (isEmpty(Component)) {\n return;\n }\n return (\n
    \n \n
    \n );\n })}\n\n \n {I18n.t(\"js.administration.widgetbars.remove\")}\n \n
    \n );\n}\n","import type { WidgetPropertiesTypes } from \"./WidgetProperties\";\nimport React from \"react\";\nimport WidgetProperties from \"components/administration/widgetbar/WidgetProperties\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n getSelectedWidget,\n getWidgetbarGroupId,\n} from \"helpers/selectors/widgetbarSelectors\";\nimport { removeWidget } from \"actions/administration/widgetbar\";\n\nexport default function WidgetPropertiesLayout() {\n const dispatch = useDispatch();\n const widget = useSelector(\n getSelectedWidget,\n ) as WidgetPropertiesTypes[\"widget\"];\n const groupId = useSelector(getWidgetbarGroupId) as string;\n\n return (\n
    \n

    {I18n.t(\"js.administration.widgetbars.properties.headline\")}

    \n {widget ? (\n dispatch(removeWidget())}\n />\n ) : null}\n
    \n );\n}\n","import React from \"react\";\n\nfunction NotFound() {\n return (\n
    \n

    {I18n.t(\"js.errors.error_while_loading\")}

    \n
    \n
    \n

    {I18n.t(\"js.errors.not_found.title\")}

    \n

    {I18n.t(\"js.errors.not_found.text\")}

    \n
    \n
    \n
    \n );\n}\n\nexport default NotFound;\n","import React from \"react\";\nimport { DragDropContext } from \"react-dnd\";\nimport HTML5Backend from \"react-dnd-html5-backend\";\nimport { connect } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { compose, withHandlers, lifecycle, toClass } from \"recompose\";\nimport { map } from \"lodash\";\n\nimport preventDefault from \"helpers/components/preventDefault\";\nimport WidgetTypes from \"components/administration/widgetbar/WidgetTypes\";\nimport WidgetbarLayout from \"components/administration/widgetbar/WidgetbarLayout\";\nimport WidgetPropertiesLayout from \"components/administration/widgetbar/WidgetPropertiesLayout\";\nimport NotFound from \"components/shared/errors/NotFound\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport {\n fetchWidgetbar,\n fetchCalendars,\n updateWidgetbar,\n setGroupId,\n resetSuccessfulSave,\n resetErrors,\n setIdentifier,\n} from \"actions/administration/widgetbar\";\nimport {\n getWidgets,\n getWidgetbarLoadingState,\n getWidgetbarSuccessfulSave,\n getWidgetbarErrors,\n} from \"helpers/selectors/widgetbarSelectors\";\nimport classnames from \"classnames\";\n\nfunction WidgetbarForm({ onSubmit, loading, errors, groupId }) {\n if (loading) {\n return (\n
    \n \n {I18n.t(\"js.administration.widgetbars.loading\")}\n
    \n );\n } else if (errors[\"notFound\"]) {\n return ;\n } else if (errors[\"fetchWidgetbar\"]) {\n return
    {I18n.t(\"js.administration.widgetbars.save_error\")}
    ;\n } else {\n return (\n \n \n {groupId ? null : (\n
    \n \n \n \n
    \n )}\n \n \n
    \n \n \n \n
    \n \n );\n }\n}\n\nWidgetbarForm.propTypes = {\n onSubmit: PropTypes.func,\n loading: PropTypes.bool,\n errors: PropTypes.object,\n};\n\nexport default compose(\n connect(\n (state) => ({\n widgets: getWidgets(state),\n loading: getWidgetbarLoadingState(state),\n saveSuccessful: getWidgetbarSuccessfulSave(state),\n errors: getWidgetbarErrors(state),\n }),\n (dispatch, { groupId, identifier }) => ({\n fetchWidgetbar: () =>\n dispatch(\n fetchWidgetbar({\n groupId,\n identifier,\n }),\n ),\n fetchCalendars: () =>\n dispatch(\n fetchCalendars({\n groupId,\n identifier,\n }),\n ),\n setGroupId: () => dispatch(setGroupId({ groupId })),\n setIdentifier: () => dispatch(setIdentifier(identifier)),\n submit: (data) => dispatch(updateWidgetbar(data)),\n resetSuccessfulSave: () => dispatch(resetSuccessfulSave()),\n resetErrors: () => dispatch(resetErrors()),\n }),\n ),\n withHandlers({\n onSubmit: ({ submit, widgets, groupId, identifier }) =>\n preventDefault(() => {\n submit({\n groupId,\n identifier,\n body: {\n widgetbar: {\n widgets: map(widgets, (w) => {\n // backend need the string as a boolean\n if (w.properties.show_age) {\n return {\n ...w,\n properties: {\n ...w.properties,\n show_age: w.properties.show_age === \"true\",\n },\n };\n } else if (w.properties.count) {\n return {\n ...w,\n properties: {\n ...w.properties,\n count: parseInt(w.properties.count, 10),\n },\n };\n }\n return w;\n }),\n },\n },\n });\n }),\n }),\n lifecycle({\n componentDidMount() {\n this.props.fetchWidgetbar();\n this.props.setIdentifier();\n this.props.fetchCalendars();\n this.props.setGroupId();\n },\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.saveSuccessful) {\n toastr.success(I18n.t(\"js.administration.widgetbars.save_success\"));\n this.props.resetSuccessfulSave();\n } else if (nextProps.errors.updateWidgetbar) {\n toastr.error(I18n.t(\"js.administration.widgetbars.save_error\"));\n this.props.resetErrors();\n } else if (nextProps.errors.fetchWidgetbar) {\n toastr.error(I18n.t(\"js.administration.widgetbars.load_error\"));\n if (!nextProps.errors.notFound) {\n this.props.resetErrors();\n }\n }\n },\n }),\n DragDropContext(HTML5Backend),\n toClass,\n)(WidgetbarForm);\n","import React from \"react\";\nimport { Provider } from \"react-redux\";\nimport store from \"store\";\nimport WidgetbarForm from \"components/administration/widgetbar/WidgetbarForm\";\n\nfunction WidgetbarEdit(props: any) {\n return (\n \n
    \n \n
    \n
    \n );\n}\n\nexport default WidgetbarEdit;\n","import { useDispatch, useSelector } from \"react-redux\";\nimport React, { useEffect } from \"react\";\nimport map from \"lodash/map\";\nimport { getWidgetbars } from \"helpers/selectors/widgetbarSelectors\";\nimport { fetchWidgetbars } from \"actions/administration/widgetbar\";\nimport { getWidgetName } from \"helpers/widgets/widgets\";\n\ninterface WidgetbarSelectionTypes {\n groupId?: string;\n}\n\nexport default function WidgetbarSelection({\n groupId,\n}: WidgetbarSelectionTypes) {\n const widgetbars = useSelector(getWidgetbars) as Array<{\n slug: string;\n widgets: Array;\n }>;\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(fetchWidgetbars({ groupId }));\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n {map(widgetbars, (widgetbar) => (\n \n \n \n \n ))}\n \n
    {I18n.t(\"js.administration.widgetbars.table.name\")}{I18n.t(\"js.administration.widgetbars.table.widget_count\")}
    \n \n {getWidgetName(widgetbar.slug)}\n \n {widgetbar.widgets.length}
    \n );\n}\n","import React from \"react\";\nimport { Provider } from \"react-redux\";\nimport store from \"store\";\nimport WidgetbarSelection from \"components/administration/widgetbar/WidgetbarSelection\";\nimport InfoText from \"components/shared/InfoText\";\n\nfunction WidgetbarIndex() {\n return (\n \n
    \n \n \n
    \n
    \n );\n}\n\nexport default WidgetbarIndex;\n","import { useQuery, useMutation } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nexport function useLegalTexts() {\n return useQuery(\"legalTexts\", () => fetchApi(\"/administration/legal_texts\"));\n}\n\nexport function useLegalText(id) {\n return useQuery([\"legalText\", id], () =>\n fetchApi(`/administration/legal_texts/${id}`),\n );\n}\n\nexport function useCreateLegalText(options) {\n return useMutation(\n (body) => fetchApi(`/administration/legal_texts`, { method: \"POST\", body }),\n options,\n );\n}\n\nexport function useUpdateLegalText(options) {\n return useMutation(\n ({ id, ...body }) =>\n fetchApi(`/administration/legal_texts/${id}`, { method: \"PUT\", body }),\n options,\n );\n}\n\nexport function useDeleteLegalText(options) {\n return useMutation(\n (id) => fetchApi(`/administration/legal_texts/${id}`, { method: \"DELETE\" }),\n options,\n );\n}\n","import React from \"react\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport { get, isEmpty, map } from \"lodash\";\nimport moment from \"moment-timezone\";\nimport { useDeleteLegalText, useLegalTexts } from \"./api\";\nimport InfoText from \"components/shared/InfoText\";\n\ninterface LegalTextRowTypes {\n legalText: {\n id?: string;\n name?: string;\n handle?: string;\n update_at?: string;\n };\n\n onDeleteLegalText(...args: unknown[]): unknown;\n}\n\nfunction LegalTextRow({ legalText, onDeleteLegalText }: LegalTextRowTypes) {\n return (\n \n {get(legalText, \"name\")}\n \n \n /{get(legalText, \"handle\")}\n \n \n \n {moment(get(legalText, \"updated_at\")).format(\n I18n.t(\"plugins.Locale.Formats.valid_datetime\"),\n )}\n \n \n
    \n \n \n \n \n
      \n {get(legalText, \"read_only\") ? null : (\n
    • \n \n \n {I18n.t(\"js.administration.legal_texts.edit.button\")}\n \n
    • \n )}\n
    • \n \n \n {I18n.t(\"js.administration.legal_texts.versions\")}\n \n
    • \n
    • \n {\n e.preventDefault();\n\n if (confirm(I18n.t(\"js.delete_confirmation\"))) {\n onDeleteLegalText(get(legalText, \"id\"));\n }\n }}\n >\n \n {I18n.t(\"js.administration.legal_texts.delete.button\")}\n \n
    • \n
    \n
    \n
    \n \n \n );\n}\n\nfunction LegalTextIndex() {\n const {\n isLoading: loading,\n data: legalTexts,\n refetch: refetchLegalTexts,\n } = useLegalTexts();\n\n const { mutate: deleteLegalText } = useDeleteLegalText({\n onSuccess: () => {\n toastr.success(I18n.t(\"js.delete_successful\"));\n refetchLegalTexts();\n },\n });\n\n return (\n <>\n \n \n {loading ? (\n
    \n {I18n.t(\"js.loading\")}\n
    \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n \n \n {isEmpty(legalTexts) ? (\n \n \n \n ) : (\n map(legalTexts, (legalText, index) => (\n \n ))\n )}\n \n
    {I18n.t(\"js.administration.legal_texts.name\")}{I18n.t(\"js.administration.legal_texts.link\")}{I18n.t(\"js.administration.legal_texts.last_updated\")} 
    \n {I18n.t(\"js.administration.legal_texts.no_entries\")}\n
    \n \n )}\n \n );\n}\n\nexport default LegalTextIndex;\n","import { useQuery, useMutation } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nexport function fetchImprint() {\n return fetchApi(\"/administration/imprint/edit\");\n}\nexport function useImprint() {\n return useQuery(\"imprint\", fetchImprint);\n}\n\nexport function updateImprint({ ...body }) {\n return fetchApi(`/administration/imprint/`, { method: \"PUT\", body });\n}\nexport function useUpdateImprint(options) {\n return useMutation(updateImprint, options);\n}\n","import React from \"react\";\nimport MarkdownEditor from \"./index\";\nimport styles from \"../../appCreator/properties/edit/editFields.module.css\";\nimport FieldError from \"../../appCreator/items/form/FieldError\";\n\ninterface MarkdownEditorAdapterTypes {\n input: {\n onChange(...args: unknown[]): unknown;\n onFocus(...args: unknown[]): unknown;\n onBlur(...args: unknown[]): unknown;\n value: string;\n name: string;\n };\n meta: { error: string; initial: string };\n}\n\nfunction MarkdownEditorAdapter({ input, meta }: MarkdownEditorAdapterTypes) {\n return (\n
    \n \n {meta.error && }\n
    \n );\n}\n\nexport default MarkdownEditorAdapter;\n","import React from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { useUpdateImprint, useImprint } from \"./api\";\nimport PageTitle from \"../../layout/PageTitle\";\nimport MarkdownEditorAdapter from \"../../shared/markdownEditor/MarkdownEditorAdapter\";\nimport ControlGroup from \"../../shared/fields/ControlGroup\";\nimport { Field } from \"redux-form\";\nimport ReduxForm from \"../../shared/reduxForm\";\nimport InfoText from \"components/shared/InfoText\";\n\nfunction ImprintEdit() {\n const { isLoading: loading, data: imprints } = useImprint();\n const { mutate: updateImprint } = useUpdateImprint({\n onSuccess: () => {\n toastr.success(I18n.t(\"js.saving_successful\"));\n },\n });\n\n return (\n <>\n \n {loading || isEmpty(imprints) ? (\n
    \n {I18n.t(\"js.loading\")}\n
    \n ) : (\n <>\n updateImprint({ imprint: values })}\n onSubmitFail={() => toastr.error(I18n.t(\"js.saving_failure\"))}\n allowSaveWithoutChange={false}\n >\n \n \n \n\n \n \n {imprints.show_newsletter_info ? (\n
    \n ) : null}\n \n \n \n )}\n \n );\n}\n\nexport default ImprintEdit;\n","import type { ChangeEventHandler, MouseEventHandler } from \"react\";\nimport React from \"react\";\nimport useTooltip from \"../../hooks/useTooltip\";\nimport Spectrum from \"../shared/Spectrum\";\nimport { mostReadable } from \"@ctrl/tinycolor\";\n\ntype Role = {\n id?: string;\n name?: string;\n slug?: string;\n plural_name?: string;\n color?: string;\n display_type?: string;\n};\ninterface RoleTypes extends Role {\n isEditing?: boolean;\n handleEdit(...args: unknown[]): unknown;\n handleDestroy(...args: unknown[]): unknown;\n}\n\nfunction Role({\n id,\n name,\n slug,\n plural_name,\n color,\n display_type,\n isEditing,\n handleEdit,\n handleDestroy,\n}: RoleTypes) {\n const textColor = mostReadable(color || \"#FFFFFF\", [\"white\", \"black\"], {\n includeFallbackColors: false,\n })?.toHexString();\n\n return (\n \n {slug}\n {name}\n {plural_name}\n \n \n {color || \"-\"}\n \n \n \n {I18n.t(\n `js.administration.membership_roles.display_type.${display_type}`,\n )}\n \n \n
    \n \n \n \n \n \n \n
    \n \n \n );\n}\n\ninterface EditRoleTypes extends Role {\n handleChange(...args: unknown[]): (...args: unknown[]) => unknown;\n handleCancelEdit(...args: unknown[]): unknown;\n}\n\nfunction EditRole({\n name,\n plural_name,\n color,\n display_type,\n handleChange,\n handleCancelEdit,\n}: EditRoleTypes) {\n return (\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\ninterface MembershipRolesManagerTypes {\n roles: Array;\n editingId?: string;\n isEditing: boolean;\n contextUrl?: string;\n handleNew(...args: unknown[]): unknown;\n handleEdit(...args: unknown[]): unknown;\n handleDestroy(...args: unknown[]): unknown;\n handleChange(...args: unknown[]): (...args: unknown[]) => unknown;\n handleCancelEdit(...args: unknown[]): unknown;\n handleSubmit(...args: unknown[]): unknown;\n}\n\nfunction MembershipRolesManager({\n roles,\n editingId,\n isEditing,\n contextUrl,\n handleNew,\n handleEdit,\n handleDestroy,\n handleChange,\n handleCancelEdit,\n handleSubmit,\n}: MembershipRolesManagerTypes) {\n const tooltipRef = useTooltip();\n\n return (\n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n {\" \"}\n {I18n.t(\"js.administration.membership_roles.add\")}\n \n
    \n
    \n\n
    \n \n \n \n \n \n \n \n \n {I18n.t(\n \"js.administration.membership_roles.display_type.label\",\n )}\n  \n \n \n \n\n \n {roles.map((role) => {\n return role.id == editingId ? (\n \n ) : (\n \n );\n })}\n \n
    \n {I18n.t(\"js.administration.membership_roles.slug.label\")}\n \n {I18n.t(\"js.administration.membership_roles.name.label\")}\n \n {I18n.t(\"js.administration.membership_roles.plural_name.label\")}\n \n {I18n.t(\"js.administration.membership_roles.color.label\")}\n \n
    \n
    \n
    \n );\n}\n\nexport default MembershipRolesManager;\n","import WidgetbarEdit from \"components/administration/WidgetbarEdit\";\nimport WidgetbarIndex from \"components/administration/WidgetbarIndex\";\nimport LegalTextIndex from \"components/administration/legalTexts/LegalTextIndex\";\nimport ImprintEdit from \"components/administration/imprints/ImprintEdit\";\nimport MembershipRolesManager from \"components/administration/MembershipRolesManager\";\n\nexport default {\n \"administration/MembershipRolesManager\": MembershipRolesManager,\n \"administration/WidgetbarEdit\": WidgetbarEdit,\n \"administration/WidgetbarIndex\": WidgetbarIndex,\n \"administration/legal_texts\": LegalTextIndex,\n \"administration/imprint/edit\": ImprintEdit,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { get, map, isNil } from \"lodash\";\nimport moment from \"moment\";\nimport classnames from \"classnames\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\n// Helper to format a given momentDate with the localised time format\nconst formatTime = (momentDate) =>\n momentDate.format(I18n.t(\"js.time.formats.short_time\"));\n\nfunction FormattedTime({ start, end, allDay, day }) {\n if (allDay || day.isBetween(start, end, \"day\", \"()\")) {\n // allDay appointment or day is between start/end, check by day and exclude start/end days\n return null;\n }\n\n if (start.isSame(day, \"day\") && end.isSame(day, \"day\")) {\n // start and end on this day\n return (\n {`${formatTime(start)}-${formatTime(end)}`}\n );\n } else if (start.isSame(day, \"day\")) {\n // start on this day\n return {formatTime(start)};\n } else if (end.isSame(day, \"day\")) {\n // end on this day\n return {`>${formatTime(end)}`};\n }\n\n // default return, when the appointment doesn't match a criteria above\n return null;\n}\n\nfunction AppointmentLine({\n name,\n date,\n html_url,\n day,\n markers,\n canceled,\n has_meeting,\n className,\n}) {\n const start = moment(get(date, \"start\"));\n const end = isNil(get(date, \"end\")) ? moment(null) : moment(get(date, \"end\"));\n const allDay = get(date, \"all_day\");\n\n return (\n \n
    \n {map(markers, (markerColor, index) => (\n \n ))}\n
    \n \n {\" \"}\n \n {name}\n \n \n {has_meeting ? (\n \n ) : null}\n \n );\n}\n\nAppointmentLine.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n canceled: PropTypes.bool,\n date: PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string,\n all_day: PropTypes.bool,\n time_zone: PropTypes.string,\n }),\n markers: PropTypes.arrayOf(PropTypes.string),\n day: PropTypes.object,\n has_meeting: PropTypes.bool,\n};\n\nexport default AppointmentLine;\n","import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { map, get, find, compact, isEqual } from \"lodash\";\nimport moment from \"moment\";\nimport classNames from \"classnames\";\n\nimport \"../appointments.module.css\";\nimport AppointmentLine from \"./AppointmentLine\";\nimport useHover from \"../../shared/hooks/useHover\";\n\nfunction CalendarSheetCell({\n day,\n appointments,\n isFirst,\n weekNum,\n notActualMonth,\n calendars,\n className,\n maxHeight,\n columnNumber,\n lastRow,\n}) {\n const momentDay = moment(day, \"YYYY-MM-DD\");\n const divRef = useRef(null);\n const appointmentHeight = 21; // h-5 + gap-px = 21px\n const headerHeight = 24; // h-5 + gap-1 = 24px\n let visibleAppointmentCount = Math.max(\n 4, // minimum appointment count\n Math.floor((maxHeight - headerHeight - 8) / appointmentHeight),\n );\n const height = visibleAppointmentCount * appointmentHeight + headerHeight;\n let hiddenAppointmentCount = 0;\n if (appointments.length > visibleAppointmentCount) {\n visibleAppointmentCount -= 1; // \"x more\" covers one line\n hiddenAppointmentCount = appointments.length - visibleAppointmentCount;\n }\n\n const hovered = useHover(divRef);\n\n const [initialDimensions, setInitialDimensions] = useState();\n useLayoutEffect(() => {\n if (!divRef.current) return;\n const newInitialDimensions = {\n width: divRef.current.clientWidth - 8, // subtract padding\n height: divRef.current.clientHeight - 8, // subtract padding\n };\n if (isEqual(initialDimensions, newInitialDimensions)) return;\n\n setInitialDimensions(newInitialDimensions);\n }, [divRef.current, maxHeight, window.innerWidth]);\n\n const style = divRef.current\n ? appointments.length > 0 && hovered && initialDimensions\n ? {\n width: initialDimensions.width * 2.25, // 2.25 width expansion on hover, neighboring cells are partly visible\n height: Math.max(\n initialDimensions.height,\n appointments.length * appointmentHeight + headerHeight,\n ),\n }\n : initialDimensions\n : null;\n\n const bg = momentDay.isSame(moment(), \"day\")\n ? \"bg-today\"\n : notActualMonth\n ? \"bg-gray-50\"\n : \"bg-white\";\n\n return (\n \n Backbone.history.navigate(`/appointments/new?date=${day}`, {\n trigger: true,\n })\n }\n >\n {style ? (\n <>\n \n
    \n \n {isFirst || momentDay.format(\"DD\") === \"01\"\n ? ` ${momentDay.format(\"DD. MMM\")}`\n : momentDay.format(\"DD\")}{\" \"}\n \n
    \n {I18n.t(\n \"js.calendars.overview.sheet_cell_line.double_click_to_add\",\n )}\n
    \n {weekNum ? (\n \n {weekNum}\n \n ) : null}\n
    \n
    \n {map(appointments, (appointment, index) => {\n const markers = map(get(appointment, \"calendar_ids\"), (calId) =>\n get(\n find(\n calendars,\n (calendar) => get(calendar, \"id\") === calId,\n ),\n \"color\",\n ),\n );\n\n return (\n = visibleAppointmentCount\n ? \"hidden group-hover:flex\"\n : \"\"\n }\n />\n );\n })}\n
    \n \n {hiddenAppointmentCount > 0 ? (\n \n {hiddenAppointmentCount}{\" \"}\n {I18n.t(\"js.calendars.overview.sheet_cell_line.more\")}\n \n ) : null}\n \n ) : null}\n \n );\n}\n\nCalendarSheetCell.propTypes = {\n day: PropTypes.string,\n appointments: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n status: PropTypes.string,\n date: PropTypes.shape({\n start: PropTypes.string,\n end: PropTypes.string,\n all_day: PropTypes.bool,\n time_zone: PropTypes.string,\n }),\n calendar_ids: PropTypes.arrayOf(PropTypes.string),\n }),\n ),\n isFirst: PropTypes.bool,\n weekNum: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n notActualMonth: PropTypes.bool,\n calendars: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n color: PropTypes.string,\n }),\n ),\n};\n\nexport default CalendarSheetCell;\n","import { useState, useEffect } from \"react\";\n\n// Hook to set ref of a DOM element and return true if is hovered\n// @example\n// function HoveredDiv() {\n// const divRef = useRef();\n// const isHovered = useHover(divRef);\n// return
    {isHovered ? \"Hovered\" : \"Not hovered\"}
    ;\n// };\nexport default function useHover(ref) {\n const [hovered, setHovered] = useState(false);\n useEffect(() => {\n if (!ref.current) return;\n\n function handleHover(e) {\n setHovered(e.type === \"mouseenter\");\n }\n\n ref.current.addEventListener(\"mouseenter\", handleHover);\n ref.current.addEventListener(\"mouseleave\", handleHover);\n return () => {\n ref.current?.removeEventListener(\"mouseenter\", handleHover);\n ref.current?.removeEventListener(\"mouseleave\", handleHover);\n };\n }, [ref.current]);\n\n return hovered;\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { map, size, get, range, at, keys, find, concat, drop } from \"lodash\";\nimport moment from \"moment\";\nimport CalendarSheetCell from \"./calendarSheet/CalendarSheetCell\";\nimport FullSizeContent from \"../shared/FullSizeContent\";\nimport useFullWidthLayout from \"hooks/useFullWidthLayout\";\n\nfunction HeaderCell({ day }) {\n return
    {day}
    ;\n}\n\nHeaderCell.propTypes = {\n day: PropTypes.string,\n};\n\nfunction CalendarSheet({ appointmentsByDate, calendars }) {\n useFullWidthLayout();\n\n const days = moment.weekdays();\n const weekCount = Math.ceil(size(appointmentsByDate) / 7);\n const dates = keys(appointmentsByDate);\n\n const startOfMonth = find(dates, (date) => !!date.match(/-01$/));\n const endOfMonth = moment(startOfMonth).endOf(\"month\").format(\"YYYY-MM-DD\");\n\n const rowStyle = {\n gridTemplateRows: `repeat(${weekCount}, 1fr)`,\n };\n\n return (\n \n {({ height }) => {\n const headerCellHeight = 24; // h-5 + gap-1 = 24px\n const maxCellHeight = (height - headerCellHeight) / weekCount;\n\n return (\n <>\n
    \n {map(concat(drop(days), days[0]), (day) => (\n \n ))}\n
    \n
    \n {map(range(0, weekCount), (i) => {\n const days = at(dates, range(7 * i, 7 * (i + 1)));\n const weekNum = moment(days[0], \"YYYY-MM-DD\").week();\n\n return map(days, (day, j) => (\n endOfMonth}\n calendars={calendars}\n className={\n \"border-r border-b \" +\n (i === 0 ? \"border-t \" : \"\") +\n (j === 0 ? \"border-l \" : \"\") +\n (i === 0\n ? j === 0\n ? \"rounded-tl \"\n : j === 6\n ? \"rounded-tr\"\n : \"\"\n : i === weekCount - 1\n ? j === 0\n ? \"rounded-bl\"\n : j === 6\n ? \"rounded-br\"\n : \"\"\n : \"\")\n }\n maxHeight={maxCellHeight}\n columnNumber={j}\n lastRow={i === weekCount - 1}\n />\n ));\n })}\n
    \n \n );\n }}\n
    \n );\n}\n\nCalendarSheet.propTypes = {\n appointmentsByDate: PropTypes.shape({\n [PropTypes.any]: CalendarSheetCell.propTypes.appointments,\n }),\n calendars: CalendarSheetCell.propTypes.calendars,\n};\n\nexport default CalendarSheet;\n","import React from \"react\";\nimport CustomConfigurator from \"../../CustomConfigurator\";\n\nfunction ExternalIdInput({ onChangeExternalId }: Props) {\n return (\n <>\n \n {\n onChangeExternalId(e.target.value);\n }}\n />\n \n );\n}\n\ntype Props = {\n externalId?: string;\n onChangeExternalId: (value: string) => void;\n};\n\nCustomConfigurator.setDefault(\n [\"rundschreiben\", \"ExternalIdInput\"],\n ExternalIdInput,\n);\n\nfunction ExternalIdComponent(props) {\n const ExternalIdInput = CustomConfigurator.get([\n \"rundschreiben\",\n \"ExternalIdInput\",\n ]);\n\n return (\n <>\n \n \n );\n}\n\nexport default ExternalIdComponent;\n","import { TinyColor } from \"@ctrl/tinycolor\";\nimport { ColorObject, DerivedTheme, Theme } from \"./types\";\nimport { CSSProperties } from \"react\";\nimport { map } from \"lodash\";\n\n/*\n The logic of this function is duplicated in ruby\n Dont forget to update it as well: app/services/theme_service/theme_to_css.rb\n */\nexport function lightThemeToCss(theme: Theme) {\n const { bannerType, logoType } = theme;\n const cssContent: string[] = [];\n\n cssContent.push(LOGO_RULES[logoType]());\n cssContent.push(BANNER_RULES[bannerType](theme));\n\n return cssContent.join(\"\\n\");\n}\n\n/*\n The logic of this function is duplicated in ruby\n Dont forget to update it as well: app/services/theme_service/theme_to_css.rb\n */\nexport default function themeToCss(theme: DerivedTheme) {\n const { derivedColors, logoType, bannerType } = theme;\n const cssContent: string[] = [];\n\n cssContent.push(\":root {\");\n\n for (const variable in derivedColors) {\n const colorObj = derivedColors[variable];\n\n cssContent.push(\n map(\n colorObjToCSSProperties(variable, colorObj),\n (value, variable) => `${variable}: ${value};`,\n ).join(\" \"),\n );\n }\n\n cssContent.push(`}`);\n\n cssContent.push(LOGO_RULES[logoType]());\n cssContent.push(BANNER_RULES[bannerType](theme));\n\n return cssContent.join(\"\\n\");\n}\n\nexport function colorObjToCSSProperties(\n variable: string,\n colorObj: ColorObject | undefined,\n): CSSProperties {\n if (!colorObj) return {};\n\n const result = {};\n const { color, abstract, tailwind } = colorObj;\n\n if (!abstract) {\n result[`--${variable}`] = color;\n }\n if (tailwind) {\n const { r, g, b } = new TinyColor(color).toRgb();\n result[`--tailwind-${variable}`] = `${r} ${g} ${b}`;\n }\n\n return result;\n}\n\nconst LOGO_RULES = {\n default() {\n // This is exported to the defaultTheme\n return `:root {\n --header-logo-height: 60px;\n --header-logo-display: grid;\n --header-home-icon-display: none;\n --header-small-search-display: none;\n --header-small-grid: 'burger logo user-central';\n --navigation-offset: 60px;\n }`;\n },\n extended() {\n return `:root {\n --header-logo-height: 80px;\n --header-logo-display: grid;\n --header-home-icon-display: none;\n --header-small-search-display: none;\n --header-small-grid: 'burger logo user-central';\n --navigation-offset: 60px;\n }`;\n },\n hidden() {\n return `:root {\n --header-logo-height: 0px;\n --header-logo-display: none;\n --header-home-icon-display: grid;\n --header-small-search-display: flex;\n --header-small-grid: 'burger home-icon search user-central';\n --navigation-offset: 60px;\n }`;\n },\n};\n\nconst BANNER_RULES = {\n hidden() {\n // This is exported to the defaultTheme\n return `:root {\n --header-banner-height: 0;\n --header-banner-position: unset;\n --header-banner-background: transparent; \n }`;\n },\n color({ colors, derivedColors }: DerivedTheme) {\n const col =\n colors[\"banner-background\"] || derivedColors?.[\"banner-background\"];\n return `:root {\n --header-banner-height: 20px;\n --header-banner-position: fixed;\n --header-banner-background: ${col?.color || \"transparent\"};\n --navigation-offset: 80px;\n }`;\n },\n image({ override, bannerImage, bannerUrl, logoType }: Theme) {\n let url = override\n ? bannerImage\n ? `/api/storage/assets/${bannerImage.id}/preview`\n : null\n : bannerUrl;\n url = url ? `url(\"${url}\")` : \"none\";\n\n return `:root {\n --header-banner-height: 120px;\n --header-banner-position: unset;\n --header-banner-background: transparent ${url} 0 0 no-repeat;\n ${logoType == \"extended\" ? \"--header-logo-height: 120px;\" : \"\"}\n }`;\n },\n};\n","import React, { CSSProperties, useState } from \"react\";\nimport { at, isEmpty, map, reject, some, sum, assign } from \"lodash\";\n\nimport { useGroupsAndCategories } from \"../../hooks/userbar\";\nimport { Group, GroupCategory } from \"../../@types\";\nimport { UserbarSection } from \"../layout/Userbar\";\nimport { closeUserbar } from \"../../layout/togglebar\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport {\n DerivedTheme,\n Theme,\n} from \"components/administration/designManager/types\";\nimport { colorObjToCSSProperties } from \"components/administration/designManager/themeToCss\";\n\nfunction persistOpenState(id: string, open: boolean) {\n localStorage.setItem(`GroupCategorySections/${id}/open`, open.toString());\n}\n\nfunction loadOpenState(id: string) {\n const item = localStorage.getItem(`GroupCategorySections/${id}/open`);\n return item === null ? null : item === \"true\";\n}\n\ntype Props = {\n children: SectionProps[\"children\"];\n unreadCountByGroupSlug?: { [slug: string]: number | undefined };\n};\n\nexport default function GroupCategorySections({\n children,\n unreadCountByGroupSlug,\n}: Props) {\n const { groupCategories, groupsByCategoryId } = useGroupsAndCategories();\n\n return (\n <>\n {map(groupCategories, (groupCategory: GroupCategory) => {\n const groups = groupsByCategoryId[groupCategory.id];\n\n // Hide hidden group categories (sub-organisations) without membership\n if (groupCategory.access == \"hidden\" && isEmpty(groups)) return null;\n\n const unreadCount = sum(\n at(unreadCountByGroupSlug, map(groups, \"slug\")),\n );\n return (\n \n {children}\n \n );\n })}\n \n );\n}\n\ntype SectionProps = {\n id: string;\n name: string;\n slug: string;\n groups: Group[];\n can: {\n create: boolean;\n administrate: boolean;\n };\n children: (\n group: Group,\n sectionStatus: { collapsed: boolean },\n ) => React.ReactNode;\n unreadCount?: number;\n mainGroupHidden: boolean;\n mainGroupSlug: string;\n theme?: Theme;\n};\n\nfunction GroupCategorySection({\n id,\n name,\n slug,\n groups,\n can,\n children,\n unreadCount,\n mainGroupHidden,\n mainGroupSlug,\n theme,\n}: SectionProps) {\n const open = loadOpenState(id);\n const [isOpen, setIsOpen] = useState(open === null ? !isEmpty(groups) : open);\n\n groups = reject(groups, \"archived\");\n\n if (mainGroupHidden) {\n groups = reject(groups, (group) => {\n return group.slug === mainGroupSlug;\n });\n }\n\n let content;\n if (isEmpty(groups)) {\n content = (\n
    \n
    \n {I18n.t(\"js.activitystreams.userbar.group.empty\")}\n
    \n \n {I18n.t(\"js.activitystreams.userbar.group.join\", { name: name })}\n \n
    \n );\n } else {\n content = (\n <>\n {map(groups, (group: Group) => children(group, { collapsed: !open }))}\n
  • \n \n {I18n.t(\"js.activitystreams.userbar.group.other\", { name: name })}\n \n
  • \n \n );\n }\n\n const addGroupLink = can.create ? (\n \n \n \n ) : null;\n\n return (\n {\n setIsOpen(open);\n persistOpenState(id, open);\n }}\n hasFavorites={some(groups, {\n favorited: true,\n })}\n unreadCount={unreadCount}\n additionalTitleElement={addGroupLink}\n style={theme ? userbarVariables(theme) : undefined}\n >\n {content}\n \n );\n}\n\nexport function userbarVariables(theme: DerivedTheme): CSSProperties {\n const names = [\n \"userbar-accent\",\n \"userbar-background\",\n \"userbar-link-text\",\n \"userbar-section-background\",\n \"userbar-section__title-text\",\n \"userbar-link--active-background\",\n \"userbar-link--active-text\",\n \"userbar-link--hover-background\",\n \"userbar-link--hover-text\",\n ];\n\n const result: CSSProperties = assign(\n {} as CSSProperties,\n ...map(names, (variable) =>\n colorObjToCSSProperties(\n variable,\n theme.colors?.[variable] || theme.derivedColors?.[variable],\n ),\n ),\n );\n\n return result;\n}\n","import { useSelector } from \"react-redux\";\nimport { Group, GroupCategory } from \"../@types\";\nimport {\n groupCategoriesSelector,\n myGroupsByCategoryIdSelector,\n} from \"../selectors/environment\";\n\nexport function useGroupsAndCategories() {\n const groupCategories: GroupCategory[] = useSelector(groupCategoriesSelector);\n const groupsByCategoryId: { [key: string]: Group[] } = useSelector(\n myGroupsByCategoryIdSelector,\n );\n\n return { groupCategories, groupsByCategoryId };\n}\n","import classNames from \"classnames\";\nimport React, { CSSProperties, useEffect, useMemo, useRef } from \"react\";\nimport { useLocation } from \"helpers/tixxt-router\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular, solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport UnreadBadge from \"components/shared/UnreadBadge\";\nimport { escapeRegExp } from \"lodash\";\nimport { closeUserbar } from \"layout/togglebar\";\nimport { useMaxHeight } from \"hooks/useMaxHeight\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\nimport { userbarVariables } from \"components/shared/GroupCategorySections\";\n\ntype UserbarContentProps = {\n children: React.ReactNode;\n id?: string;\n};\n\ntype SectionProps = {\n children?: React.ReactNode;\n extraChildren?: React.ReactNode; // to be shown after
      \n title?: string;\n unreadCount?: number;\n className?: string;\n collapsible?: boolean;\n isOpen?: boolean;\n setIsOpen?: (open: boolean) => void;\n hasFavorites?: boolean;\n style?: CSSProperties;\n additionalTitleElement?: React.ReactNode;\n};\n\nexport function ContextNavigation({\n style = \"\",\n children,\n}: {\n children: React.ReactNode;\n style?: string;\n}) {\n const userbarRef = useRef(null);\n\n // Scroll to selected Group to avoid userbar jump to top when navigating in group context\n useEffect(() => {\n if (location.pathname.startsWith(\"/groups/\")) {\n const activeItem = userbarRef.current?.querySelector(\n \".userbar-link--active\",\n );\n\n if (activeItem && userbarRef.current) {\n activeItem.scrollIntoView({\n behavior: \"auto\",\n block: \"center\",\n });\n }\n }\n }, [location.pathname]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function UserbarContent({ children, id }: UserbarContentProps) {\n let style = useMaxHeight();\n const groupCategoryTheme = useSelector(\n (state: State) => state.groupCategoryTheme,\n );\n\n style = groupCategoryTheme\n ? {\n ...style,\n ...userbarVariables(groupCategoryTheme),\n }\n : style;\n\n return (\n
      \n {children}\n
      \n );\n}\n\nconst titleClasses =\n \"flex p-1 font-semibold uppercase items-center min-w-0 grow\";\nconst titleTextClasses = \"flex-1 text-left\";\n\nexport function UserbarSection({\n children,\n extraChildren,\n title,\n unreadCount,\n className,\n collapsible,\n isOpen = true,\n setIsOpen,\n hasFavorites,\n style,\n additionalTitleElement,\n}: SectionProps) {\n return (\n \n
      \n {title &&\n (collapsible ? (\n {\n setIsOpen && setIsOpen(!isOpen);\n }}\n >\n \n \n {title}\n \n \n \n ) : (\n \n {title}\n \n ))}\n {additionalTitleElement ? additionalTitleElement : null}\n
      \n {children ? (\n \n {children}\n
    \n ) : null}\n {extraChildren}\n \n );\n}\n\ntype GroupFavoriteIconProps = {\n favorited: boolean;\n collapsed: boolean;\n};\n\nexport function FavoriteGroupIcon({\n favorited,\n collapsed,\n}: GroupFavoriteIconProps) {\n return (\n <>\n {favorited && (\n \n )}\n \n );\n}\n\ntype UserbarLinkProps = {\n children: React.ReactNode;\n to: string;\n active?: boolean;\n unreads?: number;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n showWhileClosed?: boolean;\n className?: string;\n prefixMatch?: boolean;\n title?: string;\n favorited?: boolean;\n collapsed?: boolean;\n};\n\nexport function UserbarLink({\n children,\n to,\n unreads,\n active,\n showWhileClosed,\n className,\n prefixMatch,\n title,\n favorited = false,\n collapsed = false,\n ...extraProps\n}: UserbarLinkProps) {\n const location = useLocation();\n const regex = useMemo(\n () => (prefixMatch ? new RegExp(`^${escapeRegExp(to)}(/|$|\\\\?)`) : null),\n [prefixMatch, to],\n );\n\n if (active === undefined || active === null) {\n if (regex) active = !!location.pathname.match(regex);\n else active = to === location.pathname + location.search;\n }\n\n function handleClick(e: React.MouseEvent) {\n if (window.isApp) {\n e.preventDefault();\n window.Turbo?.visit(to, { action: \"replace\" });\n }\n\n closeUserbar();\n }\n\n return (\n <>\n \n \n {children}\n
    \n \n \n
    \n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport useTooltip from \"../../hooks/useTooltip\";\nimport { throttle } from \"lodash\";\nimport Tooltip from \"bootstrap/js/dist/tooltip\";\nimport UnreadBadge from \"components/shared/UnreadBadge\";\nimport { closeUserbar } from \"../../layout/togglebar\";\n\nfunction ModuleSwitcher({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) {\n return (\n
      {children}
    \n );\n}\n\nfunction toggleTooltips(tooltipRef: React.RefObject) {\n if (!tooltipRef.current) return;\n\n const titleElem = tooltipRef.current?.getElementsByClassName(\n \"module-switcher-module__title\",\n )[0];\n if (!titleElem) return;\n\n if (window.getComputedStyle(titleElem).display === \"none\") {\n Tooltip.getInstance(tooltipRef.current)?.enable();\n } else {\n Tooltip.getInstance(tooltipRef.current)?.disable();\n }\n}\n\nfunction useTooltipsIfTitlesAreHidden() {\n const tooltipRef = useTooltip();\n\n useEffect(() => {\n const throttledToggleTooltips = throttle(\n () => toggleTooltips(tooltipRef),\n 500,\n );\n window.addEventListener(\"resize\", throttledToggleTooltips);\n throttledToggleTooltips();\n\n return () => window.removeEventListener(\"resize\", throttledToggleTooltips);\n }, [tooltipRef.current]);\n\n return tooltipRef;\n}\n\nfunction Module({\n title,\n icon,\n active,\n url,\n notifications,\n className,\n}: {\n title: string;\n icon: React.ReactNode;\n active?: boolean;\n url: string;\n className?: string;\n notifications?: number;\n}) {\n const tooltipRef = useTooltipsIfTitlesAreHidden();\n\n return (\n \n \n \n {icon}\n {title}\n \n \n );\n}\n\nModuleSwitcher.Module = Module;\nexport default ModuleSwitcher;\n","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { light, duotone } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport ModuleSwitcher from \"./ModuleSwitcher\";\nimport { map } from \"lodash\";\nimport { useSelector } from \"react-redux\";\nimport { useFeaturesUnreads } from \"api/unreads\";\nimport { useLocation } from \"helpers/tixxt-router\";\nimport { State } from \"../../@types\";\n\ntype ModuleConfigLookup = {\n [moduleName: string]:\n | {\n title: string;\n icon: (opts: { duo: boolean; active: boolean }) => React.ReactNode;\n slug: string;\n url: string;\n }\n | undefined;\n};\nexport const MODULE_LOOKUP: ModuleConfigLookup = {\n get Activitystreams() {\n return {\n title: I18n.t(\"js.activitystreams.module_name\"),\n icon: ({ duo, active }) => (\n \n ),\n slug: \"activities\",\n url: \"/activitystreams/all\",\n };\n },\n get Messages() {\n return {\n title: I18n.t(\"js.messages.module_name\"),\n icon: ({ duo }) => (\n \n ),\n slug: \"messages\",\n url: \"/messages\",\n };\n },\n get Calendars() {\n return {\n title: I18n.t(\"js.calendars.module_name\"),\n icon: ({ duo }) => (\n \n ),\n slug: \"appointments\",\n url: \"/appointments\",\n };\n },\n get Tasks() {\n return {\n title: I18n.t(\"js.tasks.module_name\"),\n icon: ({ duo }) => (\n \n ),\n slug: \"tasks\",\n url: \"/tasks/my\",\n };\n },\n get Files() {\n return {\n title: I18n.t(\"js.files.module_name\"),\n icon: ({ duo }) => (\n \n ),\n slug: \"files\",\n url: \"/files\",\n };\n },\n get Directory() {\n return {\n title: \"Kontakte\",\n icon: ({ active }) => (\n \n ),\n slug: \"directory\",\n url: \"/directory\",\n };\n },\n get More() {\n return {\n title: \"Mehr\",\n icon: ({ active }) => (\n \n ),\n slug: \"more\",\n url: \"/more\",\n };\n },\n};\n\ntype Props = {\n activeModule?:\n | \"activities\"\n | \"messages\"\n | \"appointments\"\n | \"tasks\"\n | \"files\"\n | \"directory\"\n | \"more\"\n | \"info\";\n};\n\nexport default function TixxtModuleSwitcher({ activeModule }: Props) {\n const location = useLocation();\n const theme = useSelector((state: State) => state.theme);\n const duo = theme?.userbarIconType == \"duotone\";\n const currentNetwork = useSelector(\n (state: { network: { availableModules: string[] } }) => state.network,\n );\n const { data: unreads } = useFeaturesUnreads();\n\n return (\n \n {map(currentNetwork.availableModules, (moduleName, index) => {\n const module = MODULE_LOOKUP[moduleName];\n const notifications = unreads?.[moduleName];\n\n return (\n module && (\n \n )\n );\n })}\n\n {location.pathname.indexOf(\"/administration/designs\") === 0 ||\n theme?.override ? (\n \n ) : (\n \n )\n }\n />\n ) : null}\n\n \n }\n />\n \n );\n}\n","import React from \"react\";\n\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\nimport { map } from \"lodash\";\n\nexport default function InfoUserbar() {\n const legalTexts = Preload.current_network.legal_texts;\n const additionalLinks = Preload.current_network.additional_links;\n\n return (\n <>\n {!window.isApp && }\n \n \n \n {I18n.t(\"js.layouts.userbar.imprint.title\")}\n \n {map(legalTexts, (legalText) => (\n \n {legalText.name}\n \n ))}\n {map(additionalLinks, (link) => (\n \n {link.text}\n \n ))}\n {Preload.current_member &&\n Preload.current_network.config.abuse_reports?.enabled && (\n \n {I18n.t(\"report.report_content\")}\n \n )}\n \n \n \n );\n}\n","import { useFeaturesUnreads } from \"api/unreads\";\nimport { mapValues, keyBy } from \"lodash\";\n\nconst useOpenJoinRequestsCount = () => {\n const { data: featuresUnreads } = useFeaturesUnreads();\n const openJoinRequestCount = mapValues(\n keyBy(featuresUnreads?.GroupJoinRequests, \"group_slug\"),\n (item) => item?.open_join_requests || 0,\n );\n return openJoinRequestCount;\n};\n\nexport default useOpenJoinRequestsCount;\n","import React from \"react\";\nimport { groupBy, map, mapValues, partition, sum, find, compact } from \"lodash\";\nimport { useSelector } from \"react-redux\";\nimport { matchPath, useLocation } from \"helpers/tixxt-router\";\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\nimport GroupCategorySections from \"../shared/GroupCategorySections\";\nimport { useActivitiesUnreads } from \"api/unreads\";\nimport indexBy from \"helpers/indexBy\";\nimport { State } from \"../../@types\";\nimport InfoUserbar from \"components/info/Userbar\";\nimport useOpenJoinRequestsCount from \"components/shared/hooks/useOpenJoinRequests\";\n\nexport default function ActivitystreamsUserbar() {\n let networkStreams;\n networkStreams = useSelector((state: State) => state.network.activitystreams);\n\n if (Preload.current_member && Preload.current_member.is_external) {\n networkStreams = [find(networkStreams, { slug: \"all\" })];\n }\n const { data: unreads } = useActivitiesUnreads();\n\n const [groupUnreads, networkUnreads] = partition(unreads, \"group_slug\");\n const networkUnreadsByStreamSlug = indexBy(\n networkUnreads,\n \"activitystream_slug\",\n );\n\n const unreadCountByGroupSlug = mapValues(\n groupBy(groupUnreads, \"group_slug\"),\n (values) => sum(map(values, \"unreads\")),\n );\n\n const location = useLocation();\n\n const openJoinRequestCount = useOpenJoinRequestsCount();\n\n const getUserbarLinkTitle = (groupSlug) => {\n return compact([\n unreadCountByGroupSlug[groupSlug]\n ? `${I18n.t(\"js.activitystreams.module_name\")}: ${\n unreadCountByGroupSlug[groupSlug]\n }`\n : null,\n openJoinRequestCount[groupSlug]\n ? `${I18n.t(\"js.administration.join_requests.label\")}: ${\n openJoinRequestCount[groupSlug]\n }`\n : null,\n ]).join(\" , \");\n };\n\n const unreadSumBySlug = mapValues(\n unreadCountByGroupSlug,\n (value, key) => value + (openJoinRequestCount[key] || 0),\n );\n\n if (!Tixxt.currentMember) return ;\n return (\n <>\n \n \n \n {map(networkStreams, ({ slug, name }) => (\n \n {name}\n \n ))}\n \n \n {({ slug: groupSlug, name, favorited }, { collapsed }) => (\n \n {name}\n \n )}\n \n \n \n );\n}\n","import React from \"react\";\nimport TixxtModuleSwitcher from \"../layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\n\nexport default function MessagesUserbar() {\n return (\n <>\n \n \n \n \n {I18n.t(\"js.messages.index.title\")}\n \n \n {I18n.t(\"js.messages.sent.title\")}\n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { compact } from \"lodash\";\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\nimport GroupCategorySections from \"../shared/GroupCategorySections\";\nimport { useFeaturesUnreads } from \"../../api/unreads\";\nimport UnreadBadge from \"components/shared/UnreadBadge\";\nimport useOpenJoinRequestsCount from \"components/shared/hooks/useOpenJoinRequests\";\n\nexport default function AppointmentsUserbar() {\n const { data: unreads } = useFeaturesUnreads();\n\n const unreadCount = unreads ? unreads?.Calendars : 0;\n const openJoinRequestCount = useOpenJoinRequestsCount();\n\n const getUserbarLinkTitle = (groupSlug) => {\n return compact([\n openJoinRequestCount[groupSlug]\n ? `${I18n.t(\"js.administration.join_requests.label\")}: ${\n openJoinRequestCount[groupSlug]\n }`\n : null,\n ]).join(\" , \");\n };\n\n return (\n <>\n \n \n \n \n {I18n.t(\"js.calendars.all_appointments\")}\n \n \n {I18n.t(\"js.calendars.participating_appointments\")}\n \n \n
    \n {I18n.t(\"js.calendars.invites.title\")}\n \n
    \n
    \n
    \n \n {({ slug, name, favorited }, { collapsed }) => (\n \n {name}\n \n )}\n \n
    \n \n );\n}\n","import React from \"react\";\nimport { compact } from \"lodash\";\n\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\nimport GroupCategorySections from \"../shared/GroupCategorySections\";\nimport useOpenJoinRequestsCount from \"components/shared/hooks/useOpenJoinRequests\";\n\nexport default function TasksUserbar() {\n const openJoinRequestCount = useOpenJoinRequestsCount();\n\n const getUserbarLinkTitle = (groupSlug) => {\n return compact([\n openJoinRequestCount[groupSlug]\n ? `${I18n.t(\"js.administration.join_requests.label\")}: ${\n openJoinRequestCount[groupSlug]\n }`\n : null,\n ]).join(\" , \");\n };\n return (\n <>\n \n \n \n \n {I18n.t(\"js.tasks.my_tasks\")}\n \n \n {\" Anderen zugewiesen\"}\n \n {\" Abgelehnt\"}\n {\" Markiert\"}\n {\" Archiv\"}\n {\" Notizen\"}\n \n \n {({ slug, name, favorited }, { collapsed }) => (\n \n {name}\n \n )}\n \n \n \n );\n}\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\nimport GroupCategorySections from \"../shared/GroupCategorySections\";\nimport { networkNameSelector } from \"../../selectors/environment\";\nimport { useFoldersUnreads } from \"../../api/unreads\";\nimport { filter, find, mapValues, compact } from \"lodash\";\nimport indexBy from \"../../helpers/indexBy\";\nimport useOpenJoinRequestsCount from \"components/shared/hooks/useOpenJoinRequests\";\n\nexport default function FilesUserbar() {\n const networkName = useSelector(networkNameSelector);\n const { data: unreads } = useFoldersUnreads();\n const networkUnreadCount = find(unreads, { group_slug: null })?.sum;\n // Lookup for unread counts of groups\n const unreadCountByGroupSlug: { [slug: string]: number } = mapValues(\n indexBy(\n filter(unreads, ({ group_slug }) => group_slug),\n \"group_slug\",\n ),\n \"sum\",\n );\n\n const openJoinRequestCount = useOpenJoinRequestsCount();\n\n const getUserbarLinkTitle = (groupSlug) => {\n return compact([\n unreadCountByGroupSlug[groupSlug]\n ? `${I18n.t(\"js.files.module_name\")}: ${\n unreadCountByGroupSlug[groupSlug]\n }`\n : null,\n openJoinRequestCount[groupSlug]\n ? `${I18n.t(\"js.administration.join_requests.label\")}: ${\n openJoinRequestCount[groupSlug]\n }`\n : null,\n ]).join(\" , \");\n };\n\n const unreadSumBySlug = mapValues(\n unreadCountByGroupSlug,\n (value, key) => value + (openJoinRequestCount[key] || 0),\n );\n\n return (\n <>\n \n \n \n \n {networkName}\n \n \n \n {({ slug, name, favorited }, { collapsed }) => (\n \n {name}\n \n )}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\n\nimport { map, some } from \"lodash\";\nimport { useAdministrationUserbarLinks } from \"./api\";\nimport { useParams, matchPath } from \"helpers/tixxt-router\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\nimport {\n groupCategorySelector,\n groupSelector,\n networkSelector,\n} from \"selectors/environment\";\nimport { userbarVariables } from \"components/shared/GroupCategorySections\";\n\nexport default function AdministrationUserbar() {\n const { groupSlug, groupCategorySlug } = useParams();\n const group = useSelector((state: State) => groupSelector(state, groupSlug));\n const groupCategory = useSelector((state: State) =>\n groupCategorySelector(state, groupCategorySlug),\n );\n const network = useSelector(networkSelector);\n const {\n data: sections,\n status,\n refetch,\n } = useAdministrationUserbarLinks({\n groupSlug,\n groupCategorySlug,\n });\n const groupCategoryTheme = useSelector(\n (state: State) => state.groupCategoryTheme,\n );\n\n const style = groupCategory\n ? userbarVariables(groupCategoryTheme)\n : undefined;\n\n const title = group\n ? group.name\n : groupCategory\n ? groupCategory.name\n : network.name;\n\n let elements;\n switch (status) {\n case \"error\":\n elements = (\n \n {I18n.t(\"js.generic_error\")}\n
    \n {\n e.preventDefault();\n refetch();\n }}\n >\n {I18n.t(\"js.generic_try_again\")}\n \n \n }\n style={style}\n />\n );\n break;\n\n case \"loading\":\n elements = (\n \n \n {I18n.t(\"js.loading\")}\n \n \n );\n break;\n case \"success\":\n elements = map(sections, (section, index) => (\n \n {section.image ? (\n {\"\"}\n ) : null}\n \n {map(section.links, (link, index) => (\n \n matchPath(path, location.pathname),\n ) || undefined\n : undefined\n }\n >\n {link.label}\n \n ))}\n \n \n ));\n }\n\n return (\n <>\n \n {elements}\n \n );\n}\n","import { useQuery } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\nimport { stringify } from \"query-string\";\n\ntype AdministrationUserbarResponse = {\n title: string;\n links: {\n label: string;\n path: string;\n unreads?: number;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n exact?: boolean;\n alternative_paths?: string[];\n }[];\n image?: {\n src: string;\n };\n}[];\n\nexport function useAdministrationUserbarLinks({\n groupSlug,\n groupCategorySlug,\n}: { groupSlug?: string; groupCategorySlug?: string } = {}) {\n const params = groupSlug\n ? { context_type: \"group\", context_id: groupSlug }\n : groupCategorySlug\n ? { context_type: \"group_category\", context_id: groupCategorySlug }\n : { context_type: \"network\" };\n\n return useQuery(\n [\"userbars\", \"administration\", params],\n () => fetchApi(`/api/v1/userbars/administration?${stringify(params)}`),\n { refetchOnWindowFocus: false },\n );\n}\n\n// Membership Api calls\nexport interface Membership {\n id: string;\n}\n\nexport function useMembershipProfile(membershipId: string | undefined) {\n return useQuery(`/api/v1/profiles/${membershipId}`, {\n enabled: !!membershipId,\n });\n}\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\nimport GroupCategorySections from \"../shared/GroupCategorySections\";\nimport { networkNameSelector } from \"selectors/environment\";\nimport { useSearchParams } from \"helpers/tixxt-router\";\nimport { stringify } from \"query-string\";\n\nexport default function SearchUserbar() {\n const networkName = useSelector(networkNameSelector);\n const [searchParams] = useSearchParams();\n const query = stringify(Object.fromEntries(searchParams.entries()));\n const pathAndQuery = query.length > 0 ? `/search?${query}` : \"/search\";\n\n return (\n <>\n \n \n \n {networkName}\n \n \n {({ slug, name, favorited }) => (\n \n {name}\n \n )}\n \n \n \n );\n}\n","import React from \"react\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport classNames from \"classnames\";\nimport { useMembership } from \"../../api/memberships\";\n\nexport default function MembershipsUserbar() {\n let { membershipId } = useParams();\n membershipId = (membershipId || Preload.current_member?.id) as\n | string\n | undefined;\n const { data: membership } = useMembership(membershipId);\n\n return (\n <>\n \n \n {membership && (\n \n )}\n \n \n {I18n.t(\"js.memberships.userbar.informations\")}\n \n \n {I18n.t(\"js.memberships.userbar.activities\")}\n \n \n {I18n.t(\"js.memberships.userbar.interesting\")}\n \n \n {membership && (\n \n \n {I18n.t(\"js.memberships.userbar.edit_registration\")}\n \n \n {I18n.t(\"js.memberships.userbar.edit_profile\")}\n \n \n {I18n.t(\"js.memberships.userbar.ignored_members\")}\n \n \n )}\n \n \n );\n}\n","import { useQuery } from \"react-query\";\nimport { State } from \"../@types\";\nimport queryClient from \"helpers/queryClient\";\n\nif (Preload.current_member?.id) {\n queryClient.setQueryData(\n `/members/${Preload.current_member.id}`,\n () => Preload.current_member,\n );\n}\n\nexport function useMembership(id: string | undefined) {\n return useQuery(`/members/${id}`, {\n staleTime: Infinity,\n enabled: !!id,\n });\n}\n","import React from \"react\";\nimport {\n ContextNavigation,\n UserbarLink,\n UserbarSection,\n} from \"components/layout/Userbar\";\n\nimport TixxtModuleSwitcher from \"components/layout/TixxtModuleSwitcher\";\nimport { useSelector } from \"react-redux\";\nimport { networkNameSelector } from \"selectors/environment\";\nimport { useSearchParams } from \"helpers/tixxt-router\";\nimport GroupCategorySections from \"components/shared/GroupCategorySections\";\n\nexport default function DirectoryUserbar({ map }: { map?: boolean }) {\n const networkName = useSelector(networkNameSelector);\n const [searchParams] = useSearchParams();\n const query = searchParams.toString();\n const path = map ? \"/map\" : \"/members\";\n const pathAndQuery = query.length > 0 ? `${path}?${query}` : path;\n\n return (\n <>\n \n \n \n {networkName}\n \n \n {({ slug, name, favorited }, { collapsed }) => (\n \n {name}\n \n )}\n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport InfoUserbar from \"components/info/Userbar\";\n\nexport default function PagesUserbar() {\n useEffect(() => {\n document.body.classList.add(\"tixxt--network-page\");\n return () => document.body.classList.remove(\"tixxt--network-page\");\n }, []);\n\n return ;\n}\n","import React, { useEffect } from \"react\";\nimport InfoUserbar from \"components/info/Userbar\";\n\nexport default function AppCreatorUserbar() {\n useEffect(() => {\n document.body.classList.add(\"tixxt--network-app\");\n return () => document.body.classList.remove(\"tixxt--network-app\");\n }, []);\n\n return ;\n}\n","import React, { useMemo } from \"react\";\nimport { RouteObject, useRoutes } from \"helpers/tixxt-router\";\nimport { flatMap } from \"lodash\";\n\nimport { UserbarContent } from \"components/layout/Userbar\";\nimport ActivitystreamsUserbar from \"components/activitystreams/Userbar\";\nimport MessagesUserbar from \"components/messages/Userbar\";\nimport AppointmentsUserbar from \"components/appointments/Userbar\";\nimport TasksUserbar from \"components/tasks/Userbar\";\nimport FilesUserbar from \"components/files/Userbar\";\nimport AdministrationUserbar from \"components/administration/Userbar\";\nimport InfoUserbar from \"components/info/Userbar\";\nimport SearchUserbar from \"components/globalSearch/Userbar\";\nimport MembershipsUserbar from \"components/memberships/Userbar\";\nimport DirectoryUserbar from \"components/directory/Userbar\";\nimport PagesUserbar from \"components/pages/Userbar\";\nimport AppCreatorUserbar from \"components/appCreator/Userbar\";\n\n/*\nExpands the given rootPath into routes for network and group context as well as all subpaths (via wildcard)\n */\nfunction expandRootPaths(\n rootPaths: string[],\n routeObject: Omit,\n): RouteObject[] {\n return flatMap(rootPaths, (rootPath) => [\n { ...routeObject, path: rootPath + \"/*\" },\n { ...routeObject, path: \"/groups/:groupSlug\" + rootPath + \"/*\" },\n ]);\n}\n\nfunction moduleRoutes(): RouteObject[] {\n return [\n ...expandRootPaths(\n [\"/activitystreams\", \"/activities\", \"/invites\", \"/notifications\"],\n { element: },\n ),\n ...expandRootPaths([\"/messages\"], { element: }),\n ...expandRootPaths([\"/appointments\", \"/calendars\"], {\n element: ,\n }),\n ...expandRootPaths([\"/tasks\"], { element: }),\n ...expandRootPaths([\"/files\"], { element: }),\n ];\n}\n\nfunction extraRoutes(): RouteObject[] {\n return [\n { path: \"/info\", element: },\n { path: \"/imprint\", element: },\n { path: \"/search\", element: },\n { path: \"/groups/:groupSlug/search\", element: },\n { path: \"/administration/*\", element: },\n {\n path: \"/groups/:groupSlug/administration/*\",\n element: ,\n },\n {\n path: \"/group-categories/:groupCategorySlug/administration/*\",\n element: ,\n },\n {\n path: \"/groups/:groupSlug/invites/sent\",\n element: ,\n },\n {\n path: \"/groups/:groupSlug/membership_invites/new\",\n element: ,\n },\n { path: \"/groups/:groupSlug/edit\", element: },\n { path: \"/invites/sent\", element: },\n { path: \"/invites/new\", element: },\n { path: \"/groups/:groupSlug/members\", element: },\n { path: \"/directory/:sectionSlug\", element: },\n { path: \"/members\", element: },\n { path: \"/map\", element: },\n { path: \"/map/members\", element: },\n { path: \"/groups/:groupSlug/map\", element: },\n { path: \"/groups/:groupSlug\", element: },\n { path: \"/pages/:pageSlug\", element: },\n { path: \"/pages/:pageSlug/*\", element: },\n { path: \"/apps/:appSlug\", element: },\n { path: \"/apps/:appSlug/*\", element: },\n {\n path: \"/groups/:groupSlug/pages/:pageSlug\",\n element: ,\n },\n { path: \"/members/:membershipId\", element: },\n { path: \"/members/:membershipId/*\", element: },\n { path: \"/users/edit\", element: },\n { path: \"/users/sign_in\", element: null },\n { path: \"/users/password/new\", element: null },\n { path: \"/*\", element: },\n ];\n}\n\n/*\nThis component is nothing more than routes, some of which are conditional, to the individual Userbars\n */\nexport default function TixxtUserbar() {\n const routes = useMemo(() => [...moduleRoutes(), ...extraRoutes()], []);\n const element = useRoutes(routes);\n\n return {element};\n}\n","import React, { Suspense } from \"react\";\n\nconst ChatBar = React.lazy(() => import(\"../chat/ChatBar\"));\n\nexport default function TixxtUserbar() {\n return (\n \n \n \n );\n}\n","import React from \"react\";\nimport { useParams, useRoutes } from \"helpers/tixxt-router\";\nimport GroupNavigation from \"components/layout/GroupNavigation\";\nimport { GroupNavigationPortal } from \"components/layout/portals\";\n\n/* This is used together with the backbone marionette frontend */\nexport default function TixxtGroupNavigation() {\n const params = useParams();\n const groupSlug = params.group_slug || params.groupSlug || params.group_id;\n\n if (groupSlug) return ;\n\n return null;\n}\n\n/* This is used to render the group navigation on backend rendered pages */\nexport function StaticTixxtGroupNavigation() {\n const elem = useRoutes([\n { path: \"/groups/:groupSlug\", element: },\n { path: \"/groups/:groupSlug/*\", element: },\n ]);\n\n if (!elem || Preload.current_group?.externally_visible) return null;\n\n return {elem};\n}\n","import { useParams, useRoutes } from \"helpers/tixxt-router\";\nimport React from \"react\";\nimport { ContextPageTitle } from \"components/layout/PageTitle\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\nimport store from \"../../store\";\nimport { setTitle } from \"reducers/app\";\nimport { PageTitlePortal } from \"components/layout/portals\";\n\n/* This is used by Backbone to set a different title */\nwindow.setTixxtPageTitle = function setTixxtPageTitle(title: string): void {\n document\n .getElementById(\"static-page-title\")\n ?.classList.toggle(\"!hidden\", !!title);\n if ((store.getState() as State).app.title !== title)\n store.dispatch(setTitle(title));\n};\n\n/* This is used together with the backbone marionette frontend */\nexport default function TixxtPageTitle() {\n const title = useSelector((state: State) => state.app.title);\n const params = useParams();\n const groupSlug = params.group_slug || params.groupSlug || params.group_id;\n\n if (!title && !groupSlug) return null;\n\n return ;\n}\n\n/* This is used to render the group title on backend rendered pages */\nexport function StaticTixxtPageTitle() {\n const elem = useRoutes([\n { path: \"/groups/:groupSlug\", element: },\n { path: \"/groups/:groupSlug/pages/:pageSlug\", element: },\n { path: \"/groups/:groupSlug/*\", element: },\n { path: \"/apps/*\", element: },\n ]);\n\n if (!elem) return null;\n\n return {elem};\n}\n","export const useRecurringAppointment = (\n appointmentId: string | null | undefined,\n): boolean => {\n return !!appointmentId?.match(/^(r-)[0-9a-f]{24}-.*/);\n};\n","import React, { useEffect, useState } from \"react\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport TixxtPageTitle from \"components/layout/TixxtPageTitle\";\nimport { useRecurringAppointment } from \"../../hooks/useRecurringAppointment\";\n\ntype AppointmentTitleData = {\n id: string;\n name: string;\n type: \"appointment\" | \"recurring_appointment\" | \"virtual_appointment\";\n};\n\nexport function AppointmentPageTitle() {\n const { appointmentId } = useParams();\n const [appointment, setAppointment] = useState();\n\n useEffect(() => {\n const appointments = Tixxt.Calendars.Appointment.all();\n const assignAppointment = (model, data: AppointmentTitleData) => {\n if (data.id == appointmentId) setAppointment(data);\n };\n appointments.on(\"sync change add reset\", assignAppointment);\n return () => appointments.off(\"sync change add reset\", assignAppointment);\n }, [appointmentId]);\n\n const isRecurring =\n useRecurringAppointment(appointmentId) ||\n appointment?.type == \"recurring_appointment\" ||\n appointment?.type == \"virtual_appointment\";\n\n if (!isRecurring) return ;\n\n return (\n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport {\n RouteObject,\n useParams,\n useRoutes,\n useSearchParams,\n} from \"helpers/tixxt-router\";\nimport { at, defer, flatMap } from \"lodash\";\nimport invariant from \"invariant\";\nimport TixxtGroupNavigation from \"components/layout/TixxtGroupNavigation\";\nimport TixxtPageTitle from \"components/layout/TixxtPageTitle\";\nimport documentReady from \"helpers/documentReady\";\nimport { AppointmentPageTitle } from \"components/appointments/AppointmentPageTitle\";\n\ntype Props = {\n feature: string;\n action: string;\n paramKeys: string[];\n};\n\nfunction toggleBackbone(show: boolean) {\n document.getElementById(\"backbone-root\")?.classList.toggle(\"hidden\", !show);\n}\n\nexport default function BackboneFeature({ feature, action, paramKeys }: Props) {\n const params = useParams();\n const actionArguments = at(params, paramKeys);\n\n const [searchParams] = useSearchParams();\n const query = {};\n searchParams.forEach((k, v) => (query[v] = k));\n\n useEffect(() => {\n toggleBackbone(true);\n return function () {\n toggleBackbone(false);\n };\n }, []);\n\n useEffect(() => {\n return function () {\n Tixxt.stopFeature();\n };\n }, [feature]);\n\n useEffect(() => {\n documentReady(() =>\n defer(() => {\n Tixxt.startFeature(feature, action, [...actionArguments, query]);\n }),\n );\n }, [feature, action, params, query]);\n\n const elem = useRoutes([\n { path: \"/appointments/:appointmentId\", element: },\n { path: \"/groups/:groupSlug/*\", element: },\n { path: \"*\", element: },\n ]);\n\n return (\n <>\n {elem}\n \n \n );\n}\n\nconst paramRegex = /:(\\w+)/g;\n\nexport function convertRoutes({ feature, featureRoutes }): RouteObject[] {\n function route(\n path: string,\n action: string,\n omittedParamKeys: string[] = [],\n ) {\n const paramKeys = Array.from(\n path.matchAll(paramRegex),\n ([, capture]) => capture,\n );\n return {\n path,\n element: (\n \n ),\n };\n }\n\n return flatMap(featureRoutes, (action, path) => {\n // path with optional group slug\n if (path.startsWith(\"(groups/:group_slug/)\")) {\n const networkPath = path.replace(\"(groups/:group_slug/)\", \"\");\n const groupPath = path.replace(\n \"(groups/:group_slug/)\",\n \"/groups/:group_slug/\",\n );\n return [\n route(\"/\" + networkPath, action, [\"group_slug\"]),\n route(groupPath, action),\n ];\n }\n\n invariant(\n path.indexOf(\"(\") == -1,\n `path for convertRoutes must not contain other optional segments, got \"${path}\"`,\n );\n\n // regular path\n return [route(\"/\" + path, action)];\n });\n}\n","import { convertRoutes } from \"components/tixxt/BackboneFeature\";\nimport { RouteObject } from \"helpers/tixxt-router\";\n\nconst activitystreamsRoutes: RouteObject[] = convertRoutes({\n feature: \"Activitystreams\",\n featureRoutes: {\n \"(groups/:group_slug/)activitystreams\": \"showStream\",\n \"(groups/:group_slug/)activitystreams/:stream_slug\": \"showStream\",\n \"(groups/:group_slug/)activitystreams/:stream_slug/:filter\":\n \"showSubstream\",\n rundschreiben: \"showRundschreibenEditor\",\n \"activities/:id\": \"showActivity\",\n \"activities/:activity_id/replies/:comment_id\": \"showActivity\",\n \"activities/:activity_id/answers/:comment_id\": \"showActivity\",\n notifications: \"showNotifications\",\n },\n});\n\nexport default activitystreamsRoutes;\n","import React, { useEffect, useMemo, useRef } from \"react\";\nimport classNames from \"classnames\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular, solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport DropDown, { DropDownItem } from \"components/shared/DropDown\";\nimport { ViewType } from \"components/appointments/useAppointmentView\";\nimport moment from \"moment\";\nimport { groupBy, includes, isEmpty, map, sortBy } from \"lodash\";\nimport { Calendar } from \"../../@types/appointments\";\nimport Datepicker from \"helpers/Datepicker\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\n\ntype AppointmentToolbarArgs = {\n isLoading: boolean;\n view: ViewType;\n setViewType: (viewType: ViewType) => void;\n date: string;\n setDate: (date: string) => void;\n calendars?: Calendar[];\n toggleExcludedCalendarIds: (calendarId: string) => void;\n excludedCalendarIds: string[];\n scrollToToday: () => void;\n canCreate?: boolean;\n};\n\nexport default function AppointmentToolbar({\n isLoading,\n view,\n setViewType,\n date,\n setDate,\n calendars,\n toggleExcludedCalendarIds,\n excludedCalendarIds,\n canCreate = false,\n scrollToToday,\n}: AppointmentToolbarArgs) {\n const datePickerRef = useRef(null);\n\n const { groupSlug } = useParams();\n const group = useSelector((state: State) =>\n groupSlug ? state.groups.bySlug?.[groupSlug] : null,\n );\n const calendarId = !isEmpty(group)\n ? calendars?.find(\n (cal) =>\n cal.type === \"group\" &&\n cal.parent_id === group?.id &&\n cal.can.create_appointments,\n )?.id\n : undefined;\n\n useEffect(() => {\n const datepicker = new Datepicker(datePickerRef.current, {\n pickLevel: 1,\n });\n\n datepicker.element.addEventListener(\"changeDate\", (event) =>\n setDate(moment(event.detail.date).format()),\n );\n\n return () => datepicker.destroy();\n }, [date, datePickerRef]);\n\n return (\n
    \n
    \n {\n setDate(moment().format());\n scrollToToday();\n }}\n title={I18n.t(\"js.calendars.overview.today\")}\n >\n \n {I18n.t(\"js.calendars.overview.today\")}\n \n
    \n
    \n setDate(moment(date).subtract(1, \"month\").format())}\n title={I18n.t(\"js.calendars.overview.last_month\")}\n >\n \n \n datePickerRef.current?.focus()}\n >\n {isLoading ? (\n \n ) : (\n \n )}\n {moment(date).format(\"MMMM YYYY\")}\n \n \n setDate(moment(date).add(1, \"month\").format())}\n title={I18n.t(\"js.calendars.overview.next_month\")}\n >\n \n \n
    \n
    \n \n \n \n \n
    \n setViewType(\"sheet\")}\n title={I18n.t(\"js.calendars.overview.view.calendar_sheet\")}\n >\n \n \n setViewType(\"list\")}\n title={I18n.t(\"js.calendars.overview.view.list\")}\n >\n \n \n
    \n
    \n {canCreate && (\n \n {I18n.t(\"js.calendars.overview.headline.add_appointment\")}\n \n )}\n \n \n \n \n \n \n \n
    \n
    \n
    \n );\n}\n\nfunction CalendarFilterDropdown({\n calendars,\n excludedCalendarIds,\n toggleExcludedCalendarIds,\n}: {\n calendars: Calendar[];\n excludedCalendarIds: string[];\n toggleExcludedCalendarIds: (calendarId: string) => void;\n}) {\n const typeLabels = {\n network: I18n.t(\"js.calendars.types.network\"),\n personal: I18n.t(\"js.calendars.types.personal\"),\n };\n\n const sortedGroupedCalendars = useMemo(() => {\n const grouped = groupBy(calendars, \"type\");\n return [\n ...(!isEmpty(grouped[\"network\"] || [])\n ? [\n {\n type: \"network\",\n calendars: sortBy(grouped[\"network\"], \"name\"),\n },\n ]\n : []),\n ...(!isEmpty(grouped[\"personal\"] || [])\n ? [\n {\n type: \"personal\",\n calendars: sortBy(grouped[\"personal\"], \"name\"),\n },\n ]\n : []),\n ...Object.entries(groupBy(grouped[\"group\"] || [], \"category_name\")).map(\n ([categoryName, categoryCalendars]) => ({\n type: categoryName,\n calendars: sortBy(categoryCalendars, \"name\"),\n }),\n ),\n ];\n }, [calendars]);\n\n return (\n \n {\n e.preventDefault();\n toggleExcludedCalendarIds(\"all\");\n }}\n />\n {map(sortedGroupedCalendars, ({ type, calendars }) => (\n \n
  • {typeLabels[type] || type}
  • \n\n {map(calendars, (calendar) => (\n {\n e.preventDefault();\n toggleExcludedCalendarIds(calendar.id);\n }}\n />\n ))}\n
    \n ))}\n
    \n );\n}\n","import moment, { Moment } from \"moment\";\nimport { filter, flatten, isEmpty, reduce } from \"lodash\";\nimport { Appointment, AppointmentDate } from \"../../@types/appointments\";\n\nconst DATE_FORMAT = \"YYYY-MM-DD\";\n\nexport function weeksInRange(rangeStart, rangeEnd) {\n const currentDate = moment(rangeStart);\n const weeks: string[][] = [];\n const days: string[] = [];\n\n while (currentDate <= rangeEnd) {\n days.push(currentDate.format(DATE_FORMAT));\n currentDate.add(1, \"days\");\n }\n\n let week: string[] = [];\n let i = moment(days[0]).weekday();\n\n for (const day of days) {\n week.push(day);\n\n if ((i + 1) % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n\n i++;\n }\n\n if (week.length > 0) {\n weeks.push(week);\n }\n return weeks;\n}\n\nexport function datesInRange(date: string): string[] {\n const rangeStart = moment(date).startOf(\"month\").startOf(\"isoWeek\");\n const rangeEnd = moment(date).endOf(\"month\").endOf(\"isoWeek\");\n\n return flatten(weeksInRange(rangeStart, rangeEnd));\n}\n\nexport function appointmentsInDateRange(\n appointments: Appointment[],\n date: string,\n) {\n return filter(appointments, (appointment) => {\n let isInRange = false;\n\n if (appointment.date.end) {\n isInRange = moment(date).isBetween(\n moment(appointment.date.start).startOf(\"day\"),\n moment(appointment.date.end).endOf(\"day\"),\n null,\n \"[]\",\n );\n } else {\n isInRange = moment(date).isSame(moment(appointment.date.start), \"day\");\n }\n\n return isInRange;\n });\n}\n\nexport function collectAppointmentsByDate(\n appointments: Appointment[],\n date: string,\n) {\n const range = datesInRange(date);\n\n return reduce(\n range,\n (result, date) => {\n result[date] = appointmentsInDateRange(appointments, date);\n return result;\n },\n {},\n );\n}\n\nexport function weeksInMonth(date: string) {\n const rangeStart = moment(date).startOf(\"month\");\n const rangeEnd = moment(date).endOf(\"month\");\n\n return weeksInRange(rangeStart, rangeEnd);\n}\n\nconst msToDayFactor = 1000 * 60 * 60 * 24; // ms to second to minute to day\n\nexport function dateStamp(date: Moment) {\n const offsetMinutes = date.utcOffset() || date.zone() * -1;\n\n if (date) {\n return Math.floor(\n date.valueOf() / msToDayFactor + offsetMinutes / (60 * 24),\n );\n } else {\n return 0;\n }\n}\n\nexport function dateStampsRange(appointmentDate: AppointmentDate) {\n const start = dateStamp(moment(appointmentDate.start));\n let end = start;\n\n if (!isEmpty(appointmentDate.end)) {\n end = dateStamp(moment(appointmentDate.end));\n }\n\n return [start, end];\n}\n\nexport function spansDate(date: Moment, appointmentDate: AppointmentDate) {\n const stamp = dateStamp(date);\n const range = dateStampsRange(appointmentDate);\n\n return range[0] < stamp && range[1] > stamp;\n}\n\nexport function spansMultipleDays(appointmentDate: AppointmentDate) {\n const range = dateStampsRange(appointmentDate);\n return range[0] != range[1];\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\n\nconst AllDayTag = ({ position }: { position?: \"start\" | \"end\" }) => (\n \n {I18n.t(\"js.calendars.date_range.all_day\")}\n \n);\n\nconst LeftArrow = () => (\n
    \n);\n\nconst RightArrow = () => (\n
    \n);\n\nAllDayTag.LeftArrow = LeftArrow;\nAllDayTag.RightArrow = RightArrow;\n\nexport default AllDayTag;\n","import React, { RefObject } from \"react\";\nimport AllDayTag from \"components/appointments/appointmentsList/AllDayTag\";\nimport { Appointment, Calendar } from \"../../../@types/appointments\";\nimport moment, { Moment } from \"moment\";\nimport { spansDate, spansMultipleDays } from \"components/appointments/helpers\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport classNames from \"classnames\";\nimport { find, isEmpty, map } from \"lodash\";\n\ntype AppointmentItemArgs = {\n appointment: Appointment;\n date: Moment;\n calendars?: Calendar[];\n};\n\nfunction TimeTag({ date, appointment }: AppointmentItemArgs) {\n if (!spansMultipleDays(appointment.date)) {\n return (\n
    \n {appointment.date.all_day ? (\n
    \n {I18n.t(\"js.calendars.date_range.all_day\")}\n
    \n ) : (\n
    \n {moment(appointment.date.start).format(\"HH:mm\")}\n {!isEmpty(appointment.date.end) && (\n
    \n {\" - \"}\n {moment(appointment.date.end).format(\"HH:mm\")}\n
    \n )}\n
    \n )}\n
    \n );\n }\n\n if (spansDate(date, appointment.date)) {\n return (\n
    \n \n \n \n
    \n );\n } else if (date.isSame(moment(appointment.date.start), \"day\")) {\n return appointment.date.all_day ? (\n
    \n \n \n
    \n ) : (\n <>\n
    \n {moment(appointment.date.start).format(\"HH:mm\")}\n
    \n
    \n \n
    \n \n );\n } else {\n return appointment.date.all_day ? (\n
    \n \n \n
    \n ) : (\n <>\n
    \n \n
    \n
    \n {moment(appointment.date.end).format(\"HH:mm\")}\n
    \n \n );\n }\n}\n\nexport default function AppointmentItem({\n appointment,\n date,\n calendars,\n todayRef,\n}: AppointmentItemArgs & { todayRef: RefObject }) {\n return (\n \n
    \n \n
    \n
    \n {map(appointment.calendar_ids, (calendar_id: string) => {\n const calendar = find(\n calendars,\n (calendar) => calendar.id === calendar_id,\n );\n\n return (\n calendar && (\n
    \n )\n );\n })}\n \n {appointment.has_meeting && (\n \n )}\n {appointment.name}\n \n {appointment.location.name}\n \n \n
    \n
    \n );\n}\n","import React, { RefObject } from \"react\";\nimport { Appointment, Calendar } from \"../../../@types/appointments\";\nimport { map } from \"lodash\";\nimport classNames from \"classnames\";\nimport moment from \"moment\";\nimport AppointmentItem from \"components/appointments/appointmentsList/AppointmentItem\";\n\ntype CalendarDayArgs = {\n appointments: Appointment[];\n day: string;\n calendars?: Calendar[];\n todayRef: RefObject;\n};\n\nexport default function CalendarDay({\n appointments,\n day,\n calendars,\n todayRef,\n}: CalendarDayArgs) {\n const today = moment();\n const date = moment(day);\n\n return (\n \n
    \n {date.format(I18n.t(\"js.plugins.Locale.Formats.day_in_month\"))}\n
    \n
      \n {map(appointments, (appointment) => {\n return (\n \n );\n })}\n
    \n \n );\n}\n","import React, { RefObject } from \"react\";\nimport moment from \"moment/moment\";\nimport { isEmpty, map, some } from \"lodash\";\nimport { Appointment, Calendar } from \"../../../@types/appointments\";\nimport CalendarDay from \"components/appointments/appointmentsList/CalendarDay\";\n\ntype CalendarWeekArgs = {\n week: string[];\n appointmentsByDate: { [date: string]: Appointment[] };\n calendars?: Calendar[];\n todayRef: RefObject;\n};\n\nexport default function CalendarWeek({\n week,\n appointmentsByDate,\n calendars,\n todayRef,\n}: CalendarWeekArgs) {\n const weekNumber = moment(week[0]).startOf(\"week\").add(3, \"days\").format(\"w\");\n const isEmptyWeek = !some(appointmentsByDate, (appointments, date) => {\n return (\n moment(week[0]).startOf(\"week\").isoWeek() ===\n moment(date).startOf(\"week\").isoWeek() && !isEmpty(appointments)\n );\n });\n\n return (\n
    \n

    \n {I18n.t(\"calendars.overview.calendarweek\", { weekNumber })}\n

    \n
    \n {isEmptyWeek ? (\n
    \n
    \n
    \n {I18n.t(\"calendars.month_list.empty_week\")}\n
    \n
    \n ) : (\n map(week, (day) => {\n return (\n !isEmpty(appointmentsByDate[day]) && (\n \n )\n );\n })\n )}\n
    \n
    \n );\n}\n","import React, { RefObject } from \"react\";\nimport { Appointment, Calendar } from \"../../../@types/appointments\";\nimport { weeksInMonth } from \"components/appointments/helpers\";\nimport { map } from \"lodash\";\nimport CalendarWeek from \"components/appointments/appointmentsList/CalendarWeek\";\n\ntype AppointmentsListArgs = {\n appointmentsByDate: { [date: string]: Appointment[] };\n date: string;\n calendars?: Calendar[];\n todayRef: RefObject;\n};\n\nexport default function AppointmentsList({\n appointmentsByDate,\n date,\n calendars,\n todayRef,\n}: AppointmentsListArgs) {\n const weeks = weeksInMonth(date);\n\n return (\n
    \n {map(weeks, (week, index) => (\n \n ))}\n
    \n );\n}\n","import { useState } from \"react\";\nimport useWindowEvent from \"components/shared/hooks/useWindowEvent\";\n\nconst MEDIUM_BREAKPOINT = 768;\nfunction isSmall() {\n return window.innerWidth < MEDIUM_BREAKPOINT;\n}\n\nexport type ViewType = \"sheet\" | \"list\" | string;\n\nexport default function useAppointmentView() {\n const [persistedView, setPersistedView] = useState(\n sessionStorage.getItem(\"appointmentsViewType\") || \"sheet\",\n );\n const [view, setView] = useState(\n isSmall() ? \"list\" : persistedView,\n );\n\n function updateView(view: ViewType) {\n if (isSmall()) {\n setView(\"list\");\n } else {\n setView(view);\n }\n }\n\n function maybeForceListView() {\n updateView(persistedView);\n }\n\n function setViewType(view: ViewType) {\n sessionStorage.setItem(\"appointmentsViewType\", view);\n setPersistedView(view);\n updateView(view);\n }\n\n useWindowEvent(\"resize\", maybeForceListView);\n\n return { view, setViewType };\n}\n","import React, { useMemo, useRef, useState } from \"react\";\nimport { filter, includes, intersection, isEmpty, map, orderBy } from \"lodash\";\nimport moment from \"moment\";\n\nimport { ContextPageTitle } from \"components/layout/PageTitle\";\nimport AppointmentToolbar from \"components/appointments/AppointmentToolbar\";\nimport CalendarSheet from \"./CalendarSheet.js\";\nimport { useAppointments, useCalendars } from \"components/appointments/api\";\nimport { collectAppointmentsByDate } from \"components/appointments/helpers\";\nimport AppointmentsList from \"components/appointments/appointmentsList\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport GroupNavigation from \"components/layout/GroupNavigation\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\nimport { Appointment } from \"../../@types/appointments\";\nimport useAppointmentView from \"components/appointments/useAppointmentView\";\n\nexport default function AppointmentsPage({\n participating = false,\n}: {\n participating?: boolean;\n}) {\n const { view, setViewType } = useAppointmentView();\n const { groupSlug } = useParams();\n const group = useSelector((state: State) =>\n groupSlug ? state.groups.bySlug?.[groupSlug] : null,\n );\n const network = useSelector((state: State) => state.network);\n\n const [date, setDate] = useState(\n sessionStorage.getItem(\"appointmentsDate\") || moment().format(),\n );\n const [excludedCalendarIds, setExcludedCalendarIds] = useState([]);\n\n const { isLoading, data: appointments } = useAppointments({\n date,\n view,\n participating,\n });\n const todayRef = useRef(null);\n const scrollToToday = () => {\n setTimeout(() => {\n if (todayRef.current) {\n todayRef.current.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, 100);\n };\n const { data: calendars } = useCalendars();\n const contextCalendars = !isEmpty(group)\n ? filter(calendars, (cal) => cal.parent_id === group?.id)\n : calendars;\n\n function filterAppointments() {\n let contextAppointments: Appointment[] | undefined;\n\n if (groupSlug) {\n contextAppointments = filter(appointments, (appointment: Appointment) => {\n const groupAppointmentsCalendarIds = intersection(\n map(contextCalendars, \"id\"),\n appointment.calendar_ids,\n );\n\n return (\n groupAppointmentsCalendarIds >\n intersection(groupAppointmentsCalendarIds, excludedCalendarIds)\n );\n });\n } else {\n contextAppointments = filter(appointments, (appointment) =>\n appointment.calendar_ids\n ? appointment.calendar_ids.length >\n intersection(excludedCalendarIds, appointment.calendar_ids).length\n : false,\n );\n }\n\n return orderBy(contextAppointments, \"date.start\", \"asc\");\n }\n\n const filteredAppointments = useMemo(filterAppointments, [\n appointments,\n groupSlug,\n excludedCalendarIds,\n calendars,\n contextCalendars,\n ]);\n\n function onSetDate(date: string) {\n sessionStorage.setItem(\"appointmentsDate\", date);\n setDate(date);\n }\n\n let appointmentsByDate = {};\n\n if (filteredAppointments) {\n appointmentsByDate = collectAppointmentsByDate(filteredAppointments, date);\n }\n\n function toggleExcludedCalendarIds(calendarId: string) {\n if (calendarId === \"all\") {\n if (isEmpty(excludedCalendarIds)) {\n setExcludedCalendarIds(map(calendars, \"id\"));\n } else {\n setExcludedCalendarIds([]);\n }\n } else {\n if (includes(excludedCalendarIds, calendarId)) {\n setExcludedCalendarIds(\n filter(excludedCalendarIds, (calId: string) => calId !== calendarId),\n );\n } else {\n setExcludedCalendarIds([...excludedCalendarIds, calendarId]);\n }\n }\n }\n\n return (\n <>\n \n {groupSlug && }\n

    \n {I18n.t(\"js.calendars.appointments.subtitle\")}\n

    \n \n {view === \"sheet\" ? (\n \n ) : (\n \n )}\n \n );\n}\n","import { Calendar } from \"../../../@types/appointments\";\nimport { filter, forEach, groupBy, keyBy } from \"lodash\";\n\nexport function isShared(cal: Calendar | undefined) {\n return (\n cal?.type === \"personal\" && cal?.parent_id !== Preload.current_member?.id\n );\n}\n\nexport function canAddCalendar(type: string) {\n switch (type) {\n case \"personal\":\n return !!Preload.current_member?.can.create_personal_calendars;\n case \"network\":\n return !!Preload.current_network?.can.create_calendars;\n default:\n return false;\n }\n}\n\nexport function groupCalendarsByType(calendars: Calendar[] | undefined) {\n const groupedCalendars: { [key: string]: Calendar[] } = {\n personal: [],\n network: [],\n shared: [],\n };\n\n forEach(\n groupBy(\n filter(calendars, (cal) => cal.type !== \"group\" && !isShared(cal)),\n \"type\",\n ),\n (cals, key) => (groupedCalendars[key] = cals),\n );\n\n groupedCalendars.shared = filter(calendars, (cal) => isShared(cal));\n\n return groupedCalendars;\n}\n\nexport function groupCalendarsByGroup(calendars: Calendar[] | undefined) {\n const groupsById = keyBy(Preload.my_groups, \"id\");\n const groupsWithCalendars = {};\n\n forEach(\n groupBy(\n filter(calendars, (cal) => cal.type === \"group\"),\n \"parent_id\",\n ),\n (calendars, group_id) =>\n (groupsWithCalendars[group_id] = { ...groupsById[group_id], calendars }),\n );\n\n return groupsWithCalendars;\n}\n","import { Calendar } from \"../../../@types/appointments\";\nimport React, { ReactNode } from \"react\";\nimport { isShared } from \"components/appointments/calendars/helpers\";\nimport { isEmpty, map } from \"lodash\";\n\nexport default function CalendarListItem({\n calendar,\n actions,\n}: {\n calendar?: Calendar;\n actions?: (calendar: Calendar | undefined) => ReactNode[];\n}) {\n return (\n
  • \n
    \n \n {calendar?.name}\n
    \n {isShared(calendar) &&\n !isEmpty(calendar?.author) &&\n I18n.t(\"calendars.shared_from\", {\n name: calendar?.author.name,\n })}\n
    \n
    \n
    {actions && map(actions(calendar))}
    \n
  • \n );\n}\n","import { Calendar } from \"../../../@types/appointments\";\nimport { stringify } from \"query-string\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { isEmpty, map } from \"lodash\";\nimport React, { ReactNode } from \"react\";\nimport CalendarListItem from \"components/appointments/calendars/CalendarListItem\";\n\nexport default function CalendarList({\n title,\n calendars,\n renderActions,\n addCalendar,\n}: {\n title: string;\n calendars: Calendar[];\n renderActions: (calendar: Calendar | undefined) => ReactNode[];\n addCalendar?: { type: string; parent_id?: string };\n}) {\n return (\n
    \n
    \n

    {title}

    \n {addCalendar && (\n \n \n \n )}\n
    \n
      \n {isEmpty(calendars) ? (\n
      \n {I18n.t(\"js.calendars.calendar_manager.no_calendars_listed\")}\n
      \n ) : (\n map(calendars, (calendar) => {\n return (\n \n );\n })\n )}\n
    \n
    \n );\n}\n","import React, { ReactNode } from \"react\";\nimport { map } from \"lodash\";\nimport {\n canAddCalendar,\n groupCalendarsByGroup,\n groupCalendarsByType,\n} from \"components/appointments/calendars/helpers\";\nimport { Calendar } from \"../../../@types/appointments\";\nimport CalendarList from \"components/appointments/calendars/CalendarList\";\nimport { Group } from \"../../../@types\";\n\ntype GroupWithCalendars = Group & {\n calendars: Calendar[];\n};\n\nexport default function CalendarListView({\n renderActions,\n calendars,\n isLoading,\n addCalendarsAllowed = false,\n}: {\n renderActions: (calendar: Calendar | undefined) => ReactNode[];\n isLoading: boolean;\n addCalendarsAllowed?: boolean;\n calendars?: Calendar[];\n}) {\n const groupedCalendars = groupCalendarsByType(calendars);\n const groupsWithCalendars = groupCalendarsByGroup(calendars);\n\n return (\n
    \n {isLoading && I18n.t(\"js.loading\")}\n {map(groupedCalendars, (contextCalendars, type) => {\n return (\n \n );\n })}\n {map(groupsWithCalendars, (group: GroupWithCalendars) => {\n return (\n \n );\n })}\n
    \n );\n}\n","import React, { ReactNode } from \"react\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport { Calendar } from \"../../../@types/appointments\";\nimport { isShared } from \"components/appointments/calendars/helpers\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport {\n useDeleteCalendar,\n useDeleteShare,\n} from \"components/appointments/calendars/api\";\nimport CalendarListView from \"components/appointments/calendars/CalendarListView\";\nimport { useCalendars } from \"components/appointments/api\";\n\nexport default function ManageCalendarsPage() {\n const { data: calendars, isLoading, refetch } = useCalendars();\n\n const { mutate: deleteCalendar } = useDeleteCalendar({\n onSuccess: () => {\n toastr.success(I18n.t(\"js.delete_successful\"));\n refetch();\n },\n });\n\n const { mutate: deleteShare } = useDeleteShare({\n onSuccess: () => {\n toastr.success(I18n.t(\"js.delete_successful\"));\n refetch();\n },\n });\n\n function actions(calendar: Calendar | undefined) {\n const buttons: ReactNode[] = [];\n\n if (isShared(calendar)) {\n buttons.push(\n \n window.bridge?.confirm(\n I18n.t(\"delete_confirmation\"),\n () => calendar && deleteShare(calendar?.id),\n )\n }\n >\n \n ,\n );\n }\n\n if (calendar?.can.update) {\n buttons.push(\n \n \n ,\n );\n }\n\n if (calendar?.can.destroy) {\n buttons.push(\n \n window.bridge?.confirm(\n I18n.t(\"calendars.calendar_manager.destroy_confirmation\"),\n () => deleteCalendar(calendar.id),\n )\n }\n >\n \n ,\n );\n }\n\n return buttons;\n }\n\n return (\n <>\n \n \n \n );\n}\n","import { useMutation, useQuery } from \"react-query\";\nimport { Calendar } from \"../../../@types/appointments\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nexport function useDeleteCalendar(options) {\n return useMutation(\n (id: string) => fetchApi(`/calendars/${id}`, { method: \"DELETE\" }),\n options,\n );\n}\nexport function useDeleteShare(options) {\n return useMutation(\n (id: string) => fetchApi(`/calendars/${id}/share`, { method: \"DELETE\" }),\n options,\n );\n}\n\nexport function useCalendar(id?: string) {\n return useQuery(`/calendars/${id}`, { enabled: !!id });\n}\n\nexport type CreateCalendarParams = {\n parent_id?: string | string[];\n calendar: {\n name: string;\n color?: string;\n membership_ids?: (string | undefined)[];\n };\n};\n\nexport function useCreateCalendar(options) {\n return useMutation(\n (params: CreateCalendarParams) =>\n fetchApi(`/calendars`, {\n method: \"POST\",\n body: params,\n }),\n options,\n );\n}\n\nexport type UpdateCalendarParams = {\n calendar: {\n id: string;\n name: string;\n color?: string;\n membership_ids?: (string | undefined)[];\n };\n};\n\nexport function useUpdateCalendar(options) {\n return useMutation(\n (params: UpdateCalendarParams) =>\n fetchApi(`/calendars/${params.calendar.id}`, {\n method: \"PUT\",\n body: params,\n }),\n options,\n );\n}\n","import React from \"react\";\nimport Modal from \"components/shared/Modal\";\nimport { stringify } from \"query-string\";\nimport { Calendar } from \"../../../@types/appointments\";\nimport { find, isEmpty, map, split } from \"lodash\";\nimport { groupCalendarsByType } from \"components/appointments/calendars/helpers\";\nimport CalendarListItem from \"components/appointments/calendars/CalendarListItem\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst COLLECTION_URL_LOOKUP = {\n all_appointments: \"appointments\",\n participating_appointments: \"appointments/participating\",\n personal_calendar: \"calendars/my/appointments\",\n shared_calendar: \"calendars/shared/appointments\",\n network_calendar: \"calendars/all/appointments\",\n};\n\ntype CalendarSubscribeModalArgs = {\n setShowModal: (showModal: boolean) => void;\n modalOptions?: ModalOptions;\n calendars?: Calendar[];\n};\n\nexport type ModalOptions = {\n title: string;\n collectionType?: string;\n calendarId?: string;\n};\n\nexport default function CalendarSubscribeModal({\n setShowModal,\n modalOptions,\n calendars = [],\n}: CalendarSubscribeModalArgs) {\n const isCollection = !!modalOptions?.collectionType;\n const isCalendar = !!modalOptions?.calendarId;\n const url = `webcal:${Preload.current_network?.url}/${\n modalOptions?.collectionType\n ? COLLECTION_URL_LOOKUP[modalOptions?.collectionType]\n : `calendars/${modalOptions?.calendarId}/appointments`\n }.ics?${stringify({\n auth_token: Preload.current_member?.authentication_token,\n })}`;\n\n const groupedCalendars = groupCalendarsByType(calendars);\n\n let filteredCalendars: (Calendar | undefined)[] = [];\n\n if (modalOptions?.collectionType) {\n const calendarFilter = split(modalOptions?.collectionType, \"_\")[0];\n filteredCalendars =\n calendarFilter == \"all\" ? calendars : groupedCalendars[calendarFilter];\n }\n\n if (modalOptions?.calendarId) {\n const calendar = find(calendars, { id: modalOptions?.calendarId });\n filteredCalendars = [calendar];\n }\n\n function copyToClipboard(url: string) {\n navigator.clipboard\n .writeText(url)\n .then(() => {\n toastr.success(I18n.t(\"js.calendars.webcal_url_copied\"));\n })\n .catch(() => {\n toastr.error(I18n.t(\"js.generic_error\"));\n });\n }\n\n return (\n setShowModal(false)}\n >\n
    \n
    \n {isCalendar && !isEmpty(filteredCalendars) && (\n <>\n \n

    \n {I18n.t(\"calendars.subscriptions.subscribe\")}\n

    \n \n )}\n {isCollection && (\n

    {I18n.t(\"calendars.subscriptions.collection_subscribe\")}

    \n )}\n

    \n \n {url}\n \n \n

    \n
    \n {isCollection && (\n
    \n

    {I18n.t(\"js.calendars.subscriptions.following_calendars\")}:

    \n {!isEmpty(filteredCalendars) ? (\n
      \n {map(\n filteredCalendars,\n (calendar) =>\n calendar && (\n \n ),\n )}\n
    \n ) : (\n

    \n {modalOptions?.collectionType === \"participating_appointments\"\n ? I18n.t(\"js.calendars.subscriptions.no_specific_calendars\")\n : I18n.t(\"js.calendars.calendar_manager.no_calendars_listed\")}\n

    \n )}\n
    \n )}\n
    \n \n );\n}\n","import React, { ReactNode, useState } from \"react\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport { map } from \"lodash\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useCalendars } from \"components/appointments/api\";\nimport CalendarListView from \"components/appointments/calendars/CalendarListView\";\nimport { Calendar } from \"../../../@types/appointments\";\nimport CalendarSubscribeModal, {\n ModalOptions,\n} from \"components/appointments/calendars/CalendarSubscribeModal\";\n\nexport default function SubscribeCalendarsPage() {\n const [showModal, setShowModal] = useState(false);\n const [modalOptions, setModalOptions] = useState();\n\n const { data: calendars, isLoading } = useCalendars();\n const calendarCollections = [\n \"all_appointments\",\n \"participating_appointments\",\n \"personal_calendar\",\n \"shared_calendar\",\n \"network_calendar\",\n ];\n\n function onShowModal(modalOptions: ModalOptions) {\n setModalOptions(modalOptions);\n setShowModal(true);\n }\n\n function actions(calendar: Calendar | undefined) {\n const buttons: ReactNode[] = [];\n\n buttons.push(\n \n onShowModal({\n title: I18n.t(\"calendars.calendar_manager.subscribe_calendar\"),\n calendarId: calendar?.id,\n })\n }\n >\n \n ,\n );\n\n return buttons;\n }\n\n return (\n <>\n \n {showModal && (\n \n )}\n
    \n {Preload.current_member?.authentication_token ? (\n
    \n

    \n {I18n.t(\"js.calendars.subscriptions.calendar_collection_title\")}\n

    \n
    \n {I18n.t(\"js.calendars.subscriptions.all_region_subscribe\")}\n
    \n
    \n {map(calendarCollections, (collectionType: string) => (\n \n {I18n.t(`js.calendars.subscriptions.${collectionType}`)}\n
    \n \n onShowModal({\n title: I18n.t(\n `js.calendars.subscriptions.${collectionType}_subscribe`,\n ),\n collectionType,\n })\n }\n >\n \n \n
    \n
    \n ))}\n
    \n
    \n {I18n.t(\n \"js.calendars.subscriptions.single_calendar_subscriptions\",\n )}\n
    \n \n
    \n ) : (\n \n {I18n.t(\"js.calendars.subscriptions.no_access_token_found\")}\n \n )}\n
    \n \n );\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { AppointmentInviteDate } from \"../AppointmentInvite\";\n\nfunction AppointmentPreview({ name, date, description_rendered }) {\n return (\n
    \n

    {name}

    \n
    \n \n \n
    \n {description_rendered ? (\n \n ) : null}\n
    \n );\n}\nAppointmentPreview.propTypes = {\n name: PropTypes.string,\n date: PropTypes.shape({\n all_day: PropTypes.bool,\n end: PropTypes.any,\n same_day: PropTypes.bool,\n start: PropTypes.any,\n }),\n description_rendered: PropTypes.string,\n};\n\nexport default AppointmentPreview;\n","import React, { useState } from \"react\";\nimport { map, filter } from \"lodash\";\n\nimport MemberSelect, { Value } from \"../../shared/MemberSelect\";\nimport { useRecurringAppointment } from \"../../../hooks/useRecurringAppointment\";\nimport { useAddParticipants } from \"components/appointments/participants/api\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\ntype NewParticipantFormArgs = {\n id: string;\n invite_consumers?: boolean;\n reloadAppointment: () => void;\n};\n\ntype FormData = {\n participantsStatus: string;\n emailNotification: boolean;\n inviteConsumers: boolean;\n selectedEntities: Value[];\n applyTo?: boolean;\n};\n\nfunction NewParticipantForm({ reloadAppointment, id }: NewParticipantFormArgs) {\n const { register, handleSubmit, control, reset } = useForm();\n const [reloading, setReloading] = useState(false);\n const isRecurring = useRecurringAppointment(id);\n const { mutate: addParticipants, isLoading } = useAddParticipants(id, {\n onSuccess: (_data, { participant }) => {\n reset();\n setReloading(true);\n window.setTimeout(reloadAppointment, 3000);\n window.setTimeout(reloadAppointment, 9000);\n toastr.success(\n I18n.t(\n participant.membership_ids.length === 0\n ? \"js.calendars.appointment.participations.success_alert\"\n : \"js.calendars.appointment.participations.success_alert_with_mr\",\n {\n member_count: participant.membership_ids.length,\n group_count: participant.group_ids.length,\n membership_role_count: participant.membership_role_ids.length,\n },\n ),\n );\n window.setTimeout(() => {\n reloadAppointment();\n setReloading(false);\n }, 18000);\n },\n onError: () => {\n toastr.error(I18n.t(\"js.saving_failure\"));\n },\n });\n\n const addParticipantsHandler = ({\n memberIds,\n groupIds,\n membershipRoleIds,\n participantsStatus,\n emailNotification,\n inviteConsumers,\n applyTo,\n }: {\n memberIds: (string | undefined)[];\n groupIds: (string | undefined)[];\n membershipRoleIds: (string | undefined)[];\n participantsStatus: string;\n emailNotification: boolean;\n inviteConsumers: boolean;\n applyTo?: \"this\" | \"all\";\n }) => {\n const params = {\n participant: {\n membership_ids: memberIds,\n group_ids: groupIds,\n membership_role_ids: membershipRoleIds,\n status: participantsStatus,\n send_email_notification: emailNotification,\n invite_consumers: inviteConsumers,\n },\n apply_to: applyTo,\n };\n addParticipants(params);\n };\n\n return (\n
    \n \n
    \n \n
    \n
    \n (\n \n )}\n />\n
    \n
    \n \n \n \n \n \n \n {Tixxt.currentNetwork.getConfig(\"consumers_enabled\") ? (\n \n ) : null}\n {isRecurring ? (\n \n ) : null}\n
    \n
    \n
    \n
    \n {isLoading || reloading ? (\n \n ) : null}\n \n {I18n.t(\"js.calendars.appointment.add_participant.send_title\")}\n \n
    \n \n
    \n );\n\n function onAddParticipants({\n participantsStatus,\n emailNotification,\n selectedEntities,\n inviteConsumers,\n applyTo,\n }: FormData) {\n const memberIds = map(\n filter(selectedEntities, (entity) => entity.type === \"member\"),\n (m) => m.value,\n );\n\n const groupIds = map(\n filter(selectedEntities, (entity) => entity.type === \"group\"),\n (g) => g.value,\n );\n\n const membershipRoleIds = map(\n filter(selectedEntities, (entity) => entity.type === \"membershipRole\"),\n (mr) => mr.value,\n );\n\n addParticipantsHandler({\n memberIds,\n groupIds,\n membershipRoleIds,\n participantsStatus,\n emailNotification,\n inviteConsumers,\n applyTo: applyTo ? \"this\" : \"all\",\n });\n }\n}\n\nexport default NewParticipantForm;\n","import { useMutation } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\ntype ParticipantParams = {\n membership_ids: (string | undefined)[];\n group_ids: (string | undefined)[];\n membership_role_ids: (string | undefined)[];\n status: string;\n send_email_notification: boolean;\n invite_consumers?: boolean;\n};\n\nexport function useAddParticipants(\n appointmentId: string,\n options: {\n onSuccess: (\n data: any,\n params: { participant: ParticipantParams; apply_to?: \"this\" | \"all\" },\n ) => void;\n onError: (error: string) => void;\n },\n) {\n return useMutation(\n (params: { participant: ParticipantParams; apply_to?: \"this\" | \"all\" }) =>\n fetchApi(`/appointments/${appointmentId}/participants`, {\n method: \"POST\",\n body: params,\n }),\n options,\n );\n}\n\nexport function useUpdateParticipation(\n participantId: string,\n appointmentId: string,\n options: { onSuccess: () => void },\n) {\n return useMutation(\n (params: {\n participant: {\n status: string | null;\n };\n apply_to?: string;\n }) =>\n fetchApi(`/appointments/${appointmentId}/participants/${participantId}`, {\n method: \"PUT\",\n body: params,\n }),\n options,\n );\n}\n\nexport function useDeleteParticipant(\n participantId: string,\n appointmentId: string,\n options: { onSuccess: () => void },\n) {\n return useMutation(\n (params: { apply_to: string }) =>\n fetchApi(`/appointments/${appointmentId}/participants/${participantId}`, {\n method: \"DELETE\",\n body: params,\n }),\n options,\n );\n}\n","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\ntype StatusButtonArgs = {\n changeStatus: () => void;\n icon: IconProp;\n isActive: boolean;\n className: string;\n isLoading: boolean;\n disabled?: boolean;\n};\n\nexport default function StatusButton({\n changeStatus,\n icon,\n isActive,\n disabled,\n className,\n isLoading,\n}: StatusButtonArgs) {\n return (\n \n \n \n );\n\n function onChangeStatus(e) {\n e.preventDefault();\n if (isActive) return;\n changeStatus();\n }\n}\n","import React, { useState } from \"react\";\nimport { isEmpty, map } from \"lodash\";\nimport StatusButton from \"./StatusButton\";\nimport {\n showNameWithProfileField,\n ExternalMemberBadge,\n} from \"components/memberships/MemberNameWithAdditions\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { useRecurringAppointment } from \"../../../hooks/useRecurringAppointment\";\nimport {\n useDeleteParticipant,\n useUpdateParticipation,\n} from \"components/appointments/participants/api\";\nimport { Membership } from \"../../../@types\";\nimport DropDown, { DropDownItem } from \"components/shared/DropDown\";\nimport RecurringAppointmentDecisionModal from \"components/shared/RecurringAppointmentDecisionModal\";\nimport { regular, solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst PARTICIPANT_STATUS_LOOKUP = {\n open: { icon: regular(\"circle-half-stroke\"), className: \"muted\" },\n accepted: { icon: solid(\"circle\"), className: \"text-success\" },\n declined: { icon: regular(\"circle\"), className: \"text-danger\" },\n};\n\ntype ParticipantRowArgs = {\n id: string;\n appointmentId: string;\n membership: Membership;\n status: \"accepted\" | \"open\" | \"declined\" | \"invited\";\n reloadAppointment: () => void;\n};\n\nexport default function ParticipantRow({\n membership,\n status,\n id,\n appointmentId,\n reloadAppointment,\n}: ParticipantRowArgs) {\n const [showModal, setShowModal] = useState(false);\n const [newStatus, setNewStatus] = useState(null);\n\n const { mutate: updateParticipation, isLoading } = useUpdateParticipation(\n id,\n appointmentId,\n {\n onSuccess: () => {\n reloadAppointment();\n },\n },\n );\n const { mutate: deleteParticipant } = useDeleteParticipant(\n id,\n appointmentId,\n {\n onSuccess: () => {\n reloadAppointment();\n },\n },\n );\n\n const displayModal = useRecurringAppointment(appointmentId);\n\n function handleDecision(applyTo: string) {\n if (applyTo) {\n updateParticipation({\n participant: { status: newStatus },\n apply_to: applyTo,\n });\n }\n handleCloseModal();\n }\n\n function handleCloseModal() {\n setNewStatus(null);\n setShowModal(false);\n }\n\n function onChangeParticipantStatus(status: string) {\n if (displayModal) {\n setNewStatus(status);\n setShowModal(true);\n } else {\n setNewStatus(status);\n updateParticipation({ participant: { status } });\n }\n }\n\n function onRemoveParticipant(applyTo: string) {\n window?.bridge?.confirm(\n I18n.t(\"js.calendars.appointment.remove_participant.confirm_hint\"),\n () => deleteParticipant({ apply_to: applyTo }),\n );\n }\n\n return (\n \n \n \n \n \n {showNameWithProfileField({\n name: membership.name,\n detectionProfileField: membership.detection_profile_field,\n })}\n \n {membership.is_external ? : null}\n \n \n \n \n \n {I18n.t(\n `js.calendars.appointment.participant_status.${\n status === \"invited\" ? \"open\" : status\n }`,\n )}\n \n \n \n
    \n {map([\"open\", \"accepted\", \"declined\"], (state) => (\n onChangeParticipantStatus(state)}\n icon={PARTICIPANT_STATUS_LOOKUP[state].icon}\n isActive={\n state == \"open\"\n ? status === state || status === \"invited\"\n : status === state\n }\n className={PARTICIPANT_STATUS_LOOKUP[state]?.className}\n isLoading={\n state == \"open\"\n ? isLoading &&\n (newStatus === state || newStatus === \"invited\")\n : isLoading && newStatus === state\n }\n />\n ))}\n
    \n \n \n
    \n \n \n \n \n onRemoveParticipant(\"this\")}\n />\n {/^r-/.test(appointmentId) && (\n onRemoveParticipant(\"this\")}\n />\n )}\n \n
    \n \n {showModal && (\n \n )}\n \n );\n}\n","import React, { useState } from \"react\";\nimport { map, filter, includes, without, concat, isEmpty } from \"lodash\";\nimport classNames from \"classnames\";\n\nimport ParticipantRow from \"./ParticipantRow\";\nimport { Participant } from \"../../../@types/appointments\";\n\ntype ParticipantsOverviewArgs = {\n participants: Participant[];\n appointmentId: string;\n reloadAppointment: () => void;\n};\n\nexport default function ParticipantsOverview({\n participants,\n appointmentId,\n reloadAppointment,\n}: ParticipantsOverviewArgs) {\n const [searchText, setSearchText] = useState(\"\");\n const [activeFilter, setActiveFilter] = useState([]);\n const regex = new RegExp(`(${searchText})`, \"gi\");\n\n const filteredParticipants: Participant[] = filter(\n participants,\n (participant: Participant) =>\n !isEmpty(participant.membership.name.match(regex)) &&\n (includes(activeFilter, participant.status) || isEmpty(activeFilter)),\n );\n\n function onSearch(event: { target: { value: string } }) {\n setSearchText(event.target.value);\n }\n\n function changeActiveFilter(status: string) {\n setActiveFilter(\n includes(activeFilter, status)\n ? without(activeFilter, status)\n : concat(activeFilter, status),\n );\n }\n\n return (\n
    \n
    \n \n
    \n
    \n
      \n {map([\"open\", \"accepted\", \"declined\"], (status) => (\n \n {\n e.preventDefault();\n changeActiveFilter(status);\n }}\n >\n {I18n.t(\n `js.calendars.appointment.participant_status.${status}`,\n )}\n \n \n ))}\n
    \n
    \n
    \n
    \n \n \n {map(filteredParticipants, (participant) => (\n \n ))}\n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport { isEmpty } from \"lodash\";\nimport AppointmentPreview from \"components/appointments/participants/AppointmentPreview\";\nimport NewParticipantForm from \"components/appointments/participants/NewParticipantForm\";\nimport ParticipantsOverview from \"components/appointments/participants/ParticipantsOverview\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport { useAppointment } from \"components/appointments/api\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular, solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport DropDown, { DropDownItem } from \"components/shared/DropDown\";\n\nexport default function ParticipantsView() {\n const { id } = useParams();\n const {\n data: appointment,\n isLoading,\n refetch: reloadAppointment,\n } = useAppointment(id);\n\n return isLoading ? (\n

    {I18n.t(\"js.calendars.appointment.loading\")}

    \n ) : (\n
    \n \n
    \n
    \n \n \n \n \n
    \n {appointment?.can.download_attendees &&\n !isEmpty(appointment?.participants) && (\n
    \n \n \n {I18n.t(\"js.calendars.appointment.invitees.label\")}\n \n \n \n \n \n \n
    \n )}\n
    \n {appointment && (\n
    \n \n \n\n \n
    \n )}\n
    \n );\n}\n","import React, { FormEvent } from \"react\";\nimport { useNavigate } from \"helpers/tixxt-router\";\nimport Spectrum from \"components/shared/Spectrum\";\nimport {\n CreateCalendarParams,\n UpdateCalendarParams,\n} from \"components/appointments/calendars/api\";\nimport MemberSelect, { Value } from \"components/shared/MemberSelect\";\nimport { isEmpty, map, trim } from \"lodash\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { Membership } from \"../../../@types\";\n\nconst COLOR_POOL = [\n \"CC2929\",\n \"CC8129\",\n \"C6CC29\",\n \"A8CC29\",\n \"6ACC29\",\n \"29CC53\",\n \"29CCB7\",\n \"299CCC\",\n \"2962CC\",\n \"7229CC\",\n \"CA29CC\",\n \"CC296A\",\n];\n\ntype FormData = {\n calendarName: string;\n calendarColor: string;\n calendarShare: Value[];\n};\n\ntype EditableCalendar = {\n type?: string;\n parent_id?: string;\n id?: string;\n name?: string;\n memberships?: Membership[];\n color?: string;\n};\n\ntype CalendarFormArgs = {\n calendar: EditableCalendar;\n onSubmit: (params: CreateCalendarParams | UpdateCalendarParams) => void;\n};\n\nexport default function CalendarForm({ calendar, onSubmit }: CalendarFormArgs) {\n const navigate = useNavigate();\n\n const { handleSubmit, control } = useForm();\n\n function submit({ calendarName, calendarColor, calendarShare }: FormData) {\n const values = {\n name: calendarName,\n color: trim(calendarColor, \"#\"),\n type: calendar.type,\n membership_ids: !isEmpty(calendarShare)\n ? map(calendarShare, \"value\")\n : undefined,\n };\n\n if (calendar.id) {\n onSubmit({\n calendar: { id: calendar.id, ...values },\n });\n } else {\n onSubmit({\n parent_id: calendar.parent_id,\n calendar: values,\n });\n }\n }\n\n function reset(e: FormEvent) {\n e.preventDefault();\n navigate(`/calendars/manage`);\n }\n\n return (\n
    \n
    \n \n
    \n \n
    \n (\n \n )}\n />\n
    \n
    \n
    \n \n
    \n (\n \n )}\n />\n
    \n
    \n {calendar.type === \"personal\" && (\n
    \n \n
    \n ({\n value: member.id,\n label: member.name,\n type: \"member\",\n })) || []\n }\n render={({ field }) => }\n />\n
    \n
    \n )}\n
    \n \n \n
    \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport CalendarForm from \"components/appointments/calendars/CalendarForm\";\nimport { useNavigate, useSearchParams } from \"helpers/tixxt-router\";\nimport { useCreateCalendar } from \"components/appointments/calendars/api\";\n\nexport default function NewCalendarPage() {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const type = searchParams.get(\"type\");\n const parentId = searchParams.get(\"parent_id\");\n\n const { mutate: createCalendar } = useCreateCalendar({\n onSuccess: () => {\n toastr.success(I18n.t(\"js.saving_successful\"));\n navigate(`/calendars/manage`);\n },\n onError: () => {\n toastr.error(I18n.t(\"js.saving_failure\"));\n },\n });\n\n const calendar = {\n id: undefined,\n name: undefined,\n type: type || undefined,\n parent_id: parentId || undefined,\n };\n\n return (\n <>\n \n \n \n );\n}\n","import React from \"react\";\nimport { useNavigate, useParams } from \"helpers/tixxt-router\";\nimport {\n CreateCalendarParams,\n UpdateCalendarParams,\n useCalendar,\n useUpdateCalendar,\n} from \"components/appointments/calendars/api\";\nimport CalendarForm from \"components/appointments/calendars/CalendarForm\";\nimport PageTitle from \"components/layout/PageTitle\";\n\nexport default function EditCalendarPage() {\n const navigate = useNavigate();\n const { id } = useParams();\n const { data: calendar, isLoading } = useCalendar(id);\n\n const { mutate: updateCalendar } = useUpdateCalendar({\n onSuccess: () => {\n toastr.success(I18n.t(\"js.saving_successful\"));\n navigate(`/calendars/manage`);\n },\n onError: () => {\n toastr.error(I18n.t(\"js.saving_failure\"));\n },\n });\n\n const handleSubmit = (\n params: UpdateCalendarParams | CreateCalendarParams,\n ) => {\n updateCalendar(params as UpdateCalendarParams);\n };\n\n return (\n <>\n \n {!isLoading && calendar ? (\n \n ) : (\n I18n.t(\"js.loading\")\n )}\n \n );\n}\n","import { convertRoutes } from \"components/tixxt/BackboneFeature\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport React from \"react\";\nimport AppointmentsPage from \"components/appointments/AppointmentPage\";\nimport ManageCalendarsPage from \"components/appointments/calendars/ManageCalendarsPage\";\nimport SubscribeCalendarsPage from \"components/appointments/calendars/SubscribeCalendarsPage\";\nimport ParticipantsView from \"components/appointments/participants/ParticipantsView\";\nimport NewCalendarPage from \"components/appointments/calendars/NewCalendarPage\";\nimport EditCalendarPage from \"components/appointments/calendars/EditCalendarPage\";\n\nconst backboneRoutes: RouteObject[] = convertRoutes({\n feature: \"Calendars\",\n featureRoutes: {\n \"calendars/my\": \"showMyCalendars\",\n \"calendars/shared\": \"showSharedCalendars\",\n \"appointments/invites\": \"showAppointmentInvites\",\n \"appointments/invites/archive\": \"showAppointmentInvitesArchive\",\n \"appointments/new\": \"newAppointment\",\n \"appointments/:id\": \"showAppointment\",\n \"appointments/:id/edit\": \"editAppointment\",\n \"appointments/:id/contact\": \"appointmentContact\",\n },\n});\n\nconst reactRoutes: RouteObject[] = [\n { path: \"/groups/:groupSlug/calendars\", element: },\n { path: \"/appointments\", element: },\n {\n path: \"/appointments/participating\",\n element: ,\n },\n {\n path: \"/calendars/manage\",\n element: ,\n },\n {\n path: \"/calendars/subscribe\",\n element: ,\n },\n {\n path: \"/calendars/new\",\n element: ,\n },\n {\n path: \"/calendars/:id/edit\",\n element: ,\n },\n {\n path: \"/appointments/:id/participants\",\n element: ,\n },\n];\n\nexport default reactRoutes.concat(backboneRoutes);\n","import React from \"react\";\nimport { map, join, find } from \"lodash\";\nimport classNames from \"classnames\";\nimport moment from \"moment\";\nimport { useNavigate } from \"helpers/tixxt-router\";\nimport { SimpleMembership } from \"../../@types\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\ntype MessageRowProps = {\n id: string;\n subject: string;\n members: SimpleMembership[];\n date: string;\n content: string;\n selectMessage: (messageId: string) => void;\n isActive: boolean;\n read: boolean;\n hasAttachments: boolean;\n hasReplies: boolean;\n conversationLength: number | undefined;\n to_count: number | null;\n};\n\nfunction MessageRow({\n id,\n subject,\n members,\n date,\n content,\n selectMessage,\n isActive,\n read,\n hasReplies,\n hasAttachments,\n conversationLength,\n to_count,\n}: MessageRowProps) {\n const member = members?.[0];\n const navigate = useNavigate();\n\n return (\n \n \n selectMessage(id)}\n checked={isActive}\n aria-label=\"Select message\"\n className={\"!w-6 !h-6\"}\n />\n \n
    \n {members.length == 1 && member.html_url && member.name ? (\n \n \n \n ) : (\n \n )}\n
    \n [\" \", \"Enter\"].includes(e.key) && navigateDetails()}\n onClick={navigateDetails}\n >\n
    \n
    \n
    \n {member.html_url ? (\n e.stopPropagation()}\n href={member.html_url}\n title={member.name}\n className={classNames({ \"font-semibold\": !read })}\n >\n {member.name ||\n Preload.current_network.config.anonymize_membership_name}\n \n ) : (\n \n {member.name ||\n Preload.current_network.config.anonymize_membership_name}\n \n )}\n {to_count && to_count > 1 ? (\n m.name),\n \", \",\n )}\n >{` +${to_count - 1}`}\n ) : null}\n
    \n
    \n \n {moment(date).format(\"DD.MM.YYYY HH:mm\")}\n \n {conversationLength ? ({conversationLength}) : null}\n {hasReplies ? (\n \n ) : null}\n
    \n
    \n
    \n \n [\" \", \"Enter\"].includes(e.key) && navigateDetails()}\n onClick={navigateDetails}\n >\n {subject ? (\n

    {subject}

    \n ) : (\n

    {I18n.t(\"js.messages.composer.no_subject\")}

    \n )}\n

    {content}

    \n \n \n {hasAttachments ? (\n \n ) : null}\n \n \n );\n\n function navigateDetails() {\n navigate(`/messages/${id}`, {\n state: {\n pathname: location.pathname,\n search: location.search,\n },\n });\n }\n}\n\nexport default MessageRow;\n","import type { MouseEventHandler } from \"react\";\nimport React from \"react\";\nimport { isEmpty, map } from \"lodash\";\nimport classNames from \"classnames\";\n\nfunction InteractionsButton({\n onClick,\n className,\n icons,\n title,\n isDisabled = false,\n onlyIcon,\n}: InteractionsButtonProps) {\n return (\n \n {map(icons, (iconClassName, index) => (\n \n ))}\n\n {onlyIcon ? null : title}\n \n );\n}\n\ninterface InteractionsButtonProps {\n onClick: MouseEventHandler;\n className?: string;\n icons?: Array;\n title?: string;\n isDisabled?: boolean;\n onlyIcon?: boolean;\n testId?: string;\n}\n\nexport default InteractionsButton;\n","import { useMutation, useQuery } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\nimport { SimpleMembership } from \"../../@types\";\n\nexport type TrimmedMessage = {\n id: string;\n created_at: string;\n author: SimpleMembership;\n to: [SimpleMembership] | SimpleMembership[];\n to_count: number;\n subject: string;\n plain_content: string;\n html_content: string;\n has_replies: boolean;\n has_attachments: boolean;\n i: {\n marked: boolean;\n read: boolean;\n };\n conversation_length: number;\n};\n\ntype MessagesPayload = {\n messages: TrimmedMessage[];\n offset: number;\n limit: number;\n total: number;\n next_url: string | null;\n};\n\nexport function useFetchMessages(\n filter: string,\n page: number,\n options = { keepPreviousData: true },\n) {\n const query = `?limit=10&offset=${(page - 1) * 10}`;\n return useQuery(\n [\"messages\", filter, page],\n () => fetchApi(`/api/v1/messages${filter ? `/${filter}${query}` : query}`),\n options,\n );\n}\n\nexport function useFetchMessage(messageId: string, options = {}) {\n return useQuery(\n [\"message\", messageId],\n () => fetchApi(`/api/v1/messages/${messageId}`),\n options,\n );\n}\n\nexport function useDeleteMessage(filter, messageId, options = {}) {\n if (filter === \"sent\") {\n return useMutation(\n () =>\n fetchApi(`/api/v1/messages/sent/${messageId}`, {\n method: \"DELETE\",\n }),\n options,\n );\n }\n return useMutation(\n () =>\n fetchApi(`/api/v1/messages/${messageId}`, {\n method: \"DELETE\",\n }),\n options,\n );\n}\n\nexport function useDeleteMessages(filter, options = {}) {\n if (filter === \"sent\") {\n return useMutation(\n (messageIds: string[]) =>\n fetchApi(`/api/v1/messages/sent/delete`, {\n method: \"DELETE\",\n body: {\n message_ids: messageIds,\n },\n }),\n options,\n );\n }\n return useMutation(\n (messageIds: string[]) =>\n fetchApi(`/api/v1/messages/delete`, {\n method: \"DELETE\",\n body: {\n message_ids: messageIds,\n },\n }),\n options,\n );\n}\n\nexport function useMarkMessageAsUnread(options = {}) {\n return useMutation(\n (messageId: string) =>\n fetchApi(`/api/v1/messages/${messageId}/read`, {\n method: \"DELETE\",\n }),\n options,\n );\n}\n\nexport function useMarkMessageAsRead(options = {}) {\n return useMutation(\n (messageId: string) =>\n fetchApi(`/api/v1/messages/${messageId}/read`, {\n method: \"POST\",\n }),\n options,\n );\n}\n\nexport function useMarkMessagesAsUnread(options = {}) {\n return useMutation(\n (messageIds: string[]) =>\n fetchApi(`/api/v1/messages/read`, {\n method: \"DELETE\",\n body: {\n message_ids: messageIds,\n },\n }),\n options,\n );\n}\n\nexport function useMarkMessagesAsRead(options = {}) {\n return useMutation(\n (messageIds: string[]) =>\n fetchApi(`/api/v1/messages/read`, {\n method: \"POST\",\n body: {\n message_ids: messageIds,\n },\n }),\n options,\n );\n}\n\nexport function useSendMessage(options = {}) {\n return useMutation(\n (body: Record) =>\n fetchApi(`/api/v1/messages`, {\n method: \"POST\",\n body,\n }),\n options,\n );\n}\n\nexport function onError() {\n toastr.error(I18n.t(\"js.generic_network_error\"));\n}\n","import React, { Fragment, useEffect } from \"react\";\nimport { isEmpty, divide, ceil, floor, size } from \"lodash\";\nimport { queryClient } from \"helpers/queryClient\";\nimport InteractionsButton from \"./InteractionsButton\";\nimport Pagination from \"../shared/Pagination\";\nimport {\n useDeleteMessages,\n useMarkMessagesAsRead,\n useMarkMessagesAsUnread,\n onError,\n TrimmedMessage,\n} from \"./api\";\nimport classNames from \"classnames\";\n\ntype MessagesInteractionsProps = {\n filter: \"\" | \"sent\";\n total: number;\n limit: number;\n offset: number;\n messages: TrimmedMessage[];\n isFetching: boolean;\n selectedMessageIds: Array;\n setSelectedMessageIds: (ids: string[]) => void;\n onLoadMoreMessages: (page: number) => void;\n refetchMessages: () => void;\n};\n\nfunction MessagesInteractions({\n filter,\n total,\n limit,\n offset,\n messages,\n isFetching,\n selectedMessageIds,\n setSelectedMessageIds,\n onLoadMoreMessages,\n refetchMessages,\n}: MessagesInteractionsProps) {\n const allMessageIds = messages?.map((m) => m.id);\n const { mutate: deleteMessages } = useDeleteMessages(filter, {\n onSuccess: () => {\n // need to call refetch to update messages list in turbo app\n refetchMessages();\n toastr.success(I18n.t(\"js.messages.messages_deleted\"));\n },\n onError,\n });\n const { mutate: markAsRead, isLoading: isLoadingRead } =\n useMarkMessagesAsRead({\n onSuccess: () => {\n queryClient.invalidateQueries([\"messages\", filter, page]);\n },\n onError,\n });\n const { mutate: markAsUnread, isLoading: isLoadingUnread } =\n useMarkMessagesAsUnread({\n onSuccess: () => {\n queryClient.invalidateQueries([\"messages\", filter, page]);\n },\n onError,\n });\n\n const page = floor(divide(offset, limit)) + 1;\n\n useEffect(() => {\n setSelectedMessageIds([]);\n return () => setSelectedMessageIds([]);\n }, [filter]);\n\n const checked = size(selectedMessageIds) === size(messages);\n const indeterminate =\n size(selectedMessageIds) > 0 && size(selectedMessageIds) < size(messages);\n\n return total > 0 ? (\n <>\n
    \n \n
    \n \n {total > 0 ? (\n {\n if (input) input.indeterminate = indeterminate;\n }}\n />\n ) : null}\n {filter !== \"sent\" ? (\n \n \n \n \n ) : null}\n \n \n \n ) : null;\n\n function onSelectAllMessages() {\n if (\n isEmpty(selectedMessageIds) ||\n size(selectedMessageIds) < size(messages)\n ) {\n setSelectedMessageIds(allMessageIds);\n } else {\n setSelectedMessageIds([]);\n }\n }\n\n function onDeleteMessages() {\n const confirmMessage =\n filter === \"sent\"\n ? `${I18n.t(\"js.delete_confirmation\")}\\n${I18n.t(\n \"js.messages.delete_confirmation_sent\",\n )}`\n : I18n.t(\"js.delete_confirmation\");\n\n window.bridge?.confirm(confirmMessage, () => {\n deleteMessages(selectedMessageIds);\n setSelectedMessageIds([]);\n });\n }\n\n function onReadMessages() {\n markAsRead(selectedMessageIds);\n setSelectedMessageIds([]);\n }\n\n function onUnreadMessages() {\n markAsUnread(selectedMessageIds);\n setSelectedMessageIds([]);\n }\n}\n\nexport default MessagesInteractions;\n","import React, { useEffect, useState } from \"react\";\nimport {\n map,\n includes,\n pull,\n get,\n toInteger,\n isEmpty,\n divide,\n ceil,\n} from \"lodash\";\n\nimport { useNavigate } from \"helpers/tixxt-router\";\nimport { useQueryParams } from \"helpers/useQueryParams\";\nimport MessageRow from \"./MessageRow\";\nimport MessagesInteractions from \"./MessagesInteractions\";\nimport { useFetchMessages } from \"./api\";\nimport { MessagesListProps } from \"./@types\";\nimport Pagination from \"components/shared/Pagination\";\n\nfunction MessagesList({ filter = \"\" }: MessagesListProps) {\n const [selectedMessageIds, setSelectedMessageIds] = useState([]);\n const { page: pageParam } = useQueryParams();\n const [page, setPage] = useState(toInteger(pageParam || \"1\"));\n const { isLoading, isFetching, data, refetch } = useFetchMessages(\n filter,\n page,\n );\n\n useEffect(() => {\n if (page !== 1) setPage(1);\n }, [filter]);\n\n const navigate = useNavigate();\n\n if (isLoading)\n return (\n
    \n \n
    \n );\n\n return (\n
    \n {data && (\n \n )}\n
    \n
    \n {isEmpty(data) ? (\n {I18n.t(\"js.messages.message_list.no_messages\")}\n ) : (\n map(data?.messages, (message) => {\n const id = get(message, \"id\");\n\n return (\n \n );\n })\n )}\n
    \n
    \n
    \n {data && (\n \n )}\n
    \n
    \n );\n\n function onLoadMoreMessages(page: number) {\n setPage(page);\n setSelectedMessageIds([]);\n const navigationUrl = filter ? `/messages/${filter}` : \"/messages\";\n if (page === 1) {\n navigate(navigationUrl);\n } else {\n navigate(`${navigationUrl}?page=${page}`);\n }\n }\n\n function onSetMessageId(messageId: string) {\n if (includes(selectedMessageIds, messageId)) {\n setSelectedMessageIds([...pull(selectedMessageIds, messageId)]);\n } else {\n setSelectedMessageIds([...selectedMessageIds, messageId]);\n }\n }\n}\n\nexport default MessagesList;\n","import React from \"react\";\nimport PageTitle, { Subtitle } from \"components/layout/PageTitle\";\nimport MessagesList from \"components/messages/MessagesList\";\nimport { useSelector } from \"react-redux\";\nimport { get } from \"lodash\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport classNames from \"classnames\";\n\nexport function InboxToolbar({ className }: { className?: string }) {\n const sendDirectMessages = useSelector((state) =>\n get(state, \"currentMember.can.send_direct_messages\"),\n );\n if (!sendDirectMessages) return null;\n\n return (\n \n );\n}\n\nexport default function InboxPage() {\n return (\n <>\n \n \n {I18n.t(\"js.messages.index.title\")}\n \n \n \n \n );\n}\n","import React from \"react\";\nimport PageTitle, { Subtitle } from \"components/layout/PageTitle\";\nimport MessagesList from \"components/messages/MessagesList\";\nimport { InboxToolbar } from \"components/messages/InboxPage\";\n\nexport default function SentPage() {\n return (\n <>\n \n \n {I18n.t(\"js.messages.sent.title\")}\n \n \n \n \n );\n}\n","import React from \"react\";\nimport { useNavigate } from \"helpers/tixxt-router\";\n\ninterface BackButtonProps {\n title?: string;\n href?: string;\n}\n\nexport function BackButton({ title, href = \"#\" }: BackButtonProps) {\n const navigate = useNavigate();\n\n return (\n
    \n {\n e.preventDefault();\n if (navigate) {\n if (href !== \"#\") {\n navigate(href);\n } else {\n navigate(-1);\n }\n // Stop the handler in routes to manipulate the history again.\n e.nativeEvent.stopImmediatePropagation();\n } else {\n window.history.back();\n }\n }}\n title={title}\n >\n \n \n
    \n );\n}\n\nexport default BackButton;\n","import React, { useState } from \"react\";\nimport { Field } from \"redux-form\";\nimport classNames from \"classnames\";\nimport useTooltip from \"hooks/useTooltip\";\nimport \"./CheckboxField.css\";\n\ninterface CheckboxFieldProps {\n name: string;\n label: string;\n type?: \"radio\" | \"checkbox\";\n className?: string;\n disabled?: boolean;\n required?: boolean;\n value?: boolean | string;\n\n setValue?(val: boolean): void;\n\n id?: string;\n labelHint?: string;\n additionalText?: string;\n}\n\nexport default function CheckboxField({\n name,\n type = \"checkbox\",\n className,\n disabled,\n required,\n value = false,\n setValue,\n label,\n id,\n labelHint,\n additionalText,\n}: CheckboxFieldProps) {\n if (!setValue) {\n const [val, setVal] = useState(value);\n value = val;\n setValue = setVal;\n }\n\n const tooltipRef = useTooltip();\n\n let labelProps = {};\n\n if (labelHint) {\n labelProps = { [\"data-bs-toggle\"]: \"tooltip\", title: I18n.t(labelHint) };\n }\n\n return (\n <>\n \n setValue?.(newVal)}\n disabled={disabled}\n id={id}\n />\n {label}\n \n\n {additionalText ? (\n

    \n \n {additionalText}\n

    \n ) : null}\n \n );\n}\n","import React, { Fragment, useMemo } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport {\n map,\n each,\n uniqBy,\n castArray,\n isArray,\n compact,\n debounce,\n} from \"lodash\";\nimport { Field } from \"redux-form\";\nimport AsyncSelect from \"react-select/async\";\n\nimport { showNameWithProfileField } from \"components/memberships/MemberNameWithAdditions\";\nimport styles from \"../appCreator/properties/edit/editFields.module.css\";\nimport { fetchMembersAndGroups } from \"actions/memberships\";\nimport FieldError from \"components/appCreator/items/form/FieldError\";\n\nconst normalizeValue = (value) => {\n if (value === null) return null; // When nothing is selected\n if (isArray(value)) return map(value, normalizeValue);\n\n return {\n id: value.value,\n displayValue: value.label,\n type: value.type,\n };\n};\n\nconst formatValue = (state) =>\n map(compact(castArray(state)), ({ id, displayName, displayValue, type }) => ({\n value: id,\n label: displayName || displayValue,\n type: type,\n }));\n\nconst formatResponse = (results) => {\n const members: Array<{ label: string; value: string; type: string }> = [];\n const groups: Array<{\n label: string;\n value: string;\n category: string;\n type: string;\n }> = [];\n let groupCategories: Array<{ label: string; id: string }> = [];\n\n each(results, (result) => {\n if (result.type === \"member\") {\n members.push({\n label: showNameWithProfileField({\n name: result.name,\n detectionProfileField: result.detection_profile_field,\n isExternal: result.is_external,\n }),\n value: result.id,\n type: \"member\",\n });\n } else {\n groupCategories.push({\n label: result.category.name,\n id: result.category.id,\n });\n groups.push({\n label: result.name,\n value: result.id,\n category: result.category.id,\n type: \"group\",\n });\n }\n });\n\n groupCategories = uniqBy(groupCategories, \"id\");\n const finalResults: Array<{ label: string; options: typeof members }> = [];\n\n if (members.length > 0) {\n finalResults.push({\n label: I18n.t(\"js.directory.title.members\"),\n options: members,\n });\n }\n if (groups.length > 0) {\n each(groupCategories, (cat) => {\n finalResults.push({\n label: cat.label,\n options: groups.filter((group) => group.category === cat.id),\n });\n });\n }\n\n return finalResults;\n};\n\ninterface SelectAdapterTypes {\n input?: Record;\n required?: boolean;\n id: string;\n disabled: boolean;\n className?: string;\n multiple: boolean;\n meta?: { error?: string };\n extraQueryParams?: {\n only_my_groups?: boolean;\n only_my_admin_groups?: boolean;\n };\n}\n\nfunction SelectAdapter({\n input,\n required,\n id,\n disabled,\n className,\n multiple,\n meta = {},\n extraQueryParams = {},\n}: SelectAdapterTypes) {\n const dispatch = useDispatch();\n const loadOptions = useMemo(\n () =>\n debounce(async (value, callback) => {\n const params = { ...extraQueryParams, q: value };\n const { payload } = await dispatch(fetchMembersAndGroups(params));\n callback(formatResponse(payload.entries));\n }, 375),\n [],\n );\n\n const props = {\n ...input,\n // workaround for mobile,\n // see ticket #9930 or issue https://github.com/JedWatson/react-select/issues/2692#issuecomment-395743446\n onBlur: (e) => e.preventDefault(),\n isClearable: !required,\n isDisabled: disabled,\n inputId: id,\n placeholder: I18n.t(\"js.member_select.placeholder\"),\n noOptionsMessage: () => I18n.t(\"plugins.select2.no_match\"),\n className,\n loadOptions: (value, callback) => {\n loadOptions(value, callback);\n },\n isMulti: multiple,\n styles: { menu: (base) => ({ ...base, zIndex: 999 }) },\n };\n\n return (\n \n \n {meta.error && }\n \n );\n}\n\ninterface MembershipAndGroupFieldTypes extends SelectAdapterTypes {\n name: string;\n multiple: boolean;\n}\nfunction MembershipAndGroupField({\n name,\n required,\n disabled,\n id,\n multiple,\n extraQueryParams,\n}: MembershipAndGroupFieldTypes) {\n return (\n \n );\n}\n\nexport default MembershipAndGroupField;\n","import React, { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { formValueSelector } from \"redux-form\";\nimport {\n networkAdminSelector,\n currentMemberSelector,\n} from \"selectors/environment\";\nimport CheckboxField from \"components/shared/fields/CheckboxField\";\nimport MembershipAndGroupField from \"components/shared/MembershipAndGroupField\";\nimport TextField from \"components/appCreator/properties/edit/TextField\";\nimport FileField from \"components/appCreator/properties/edit/FileField\";\nimport { State } from \"@types\";\n\nfunction MessageForm() {\n const currentMember = useSelector((state: State) =>\n currentMemberSelector(state),\n );\n const isAdmin = useSelector(networkAdminSelector);\n const toAllNetworkMembers = useSelector((state) =>\n formValueSelector(\"newMessage\")(state as State, \"to_all_network_members\"),\n );\n const to = useSelector((state) =>\n formValueSelector(\"newMessage\")(state as State, \"to\"),\n );\n const hasGroupRecipient = (to || []).find((to) => to.type === \"group\");\n const [toAll, setToAll] = useState(false);\n\n return (\n
    \n
    \n
    \n {currentMember && (\n \n )}\n \n
    \n
    \n \n\n {isAdmin ? (\n \n ) : null}\n
    \n
    \n\n
    \n \n \n
    \n\n \n
    \n \n \n
    \n
    \n );\n}\n\nexport default MessageForm;\n","import React, { Fragment, useEffect } from \"react\";\nimport { map, isEmpty, get, filter } from \"lodash\";\nimport { SubmissionError, change } from \"redux-form\";\nimport { useDispatch } from \"react-redux\";\nimport { useNavigate } from \"helpers/tixxt-router\";\nimport publishAllVolatile from \"helpers/files/publishAllVolatile\";\nimport ReduxForm from \"components/shared/reduxForm\";\nimport BackButton from \"components/shared/BackButton\";\nimport { useFetchBaseMembershipData } from \"actions/memberships\";\nimport { useQueryParams } from \"helpers/useQueryParams\";\nimport MessageForm from \"./MessageForm\";\nimport { useSendMessage } from \"../api\";\nimport { messageInitialValues } from \"../message\";\nimport useFileProcessing from \"components/shared/hooks/useFileProcessing\";\n\nfunction MessageComposer({ initialValues }: MessageComposerProps) {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const params = useQueryParams();\n const membershipId = params.to;\n const { data } = useFetchBaseMembershipData(membershipId);\n const { mutateAsync: sendMessage } = useSendMessage();\n\n useEffect(() => {\n if (membershipId && !isEmpty(membershipId)) {\n dispatch(\n change(\"newMessage\", \"to\", [\n { id: membershipId, displayValue: I18n.t(\"js.tasks.loading\") },\n ]),\n );\n }\n }, []);\n\n useEffect(() => {\n if (!data) return;\n\n dispatch(\n change(\"newMessage\", \"to\", [\n { id: membershipId, displayValue: data.name },\n ]),\n );\n }, [data]);\n\n useEffect(() => {\n if (!window.isApp) {\n window.addEventListener(\"beforeunload\", onUnload);\n\n return () => window.removeEventListener(\"beforeunload\", onUnload);\n }\n }, []);\n\n function onUnload(e) {\n e.preventDefault();\n }\n\n const fileProcessing = useFileProcessing(\"newMessage\", \"attachments\");\n\n return (\n \n {!initialValues ? (\n
    \n \n
    \n ) : null}\n {\n navigate(\"/messages\");\n toastr.success(I18n.t(\"js.messages.message_sent\"));\n }}\n onSubmitFail={(error: Error) =>\n toastr.error(error?.message || I18n.t(\"js.messages.message_not_sent\"))\n }\n />\n
    \n );\n\n async function onSubmit(values: Record) {\n interface Recipient {\n type: string;\n }\n\n if (isEmpty(values.to) && !values.to_all_network_members) {\n throw new SubmissionError({\n message: I18n.t(\"js.messages.composer.missing_recipient\"),\n });\n }\n\n const attachments = !isEmpty(get(values, \"attachments\"))\n ? await publishAllVolatile({\n dispatch,\n values: { attachments: get(values, \"attachments\") },\n storageDirectory: \"files\",\n })\n : [];\n\n await sendMessage(\n {\n ...values,\n to: map(\n filter(\n values.to as Record,\n (recipient: Recipient) => recipient.type != \"group\",\n ),\n \"id\",\n ),\n to_group: map(\n filter(\n values.to as Record,\n (recipient: Recipient) => recipient.type == \"group\",\n ),\n \"id\",\n ),\n ...attachments,\n },\n {\n onError: () => {\n throw new SubmissionError({});\n },\n },\n );\n }\n}\n\ninterface MessageComposerProps {\n initialValues?: ReturnType;\n}\n\nexport default MessageComposer;\n","import React from \"react\";\nimport PageTitle, { Subtitle } from \"components/layout/PageTitle\";\nimport MessageComposer from \"components/messages/composer\";\n\nexport default function NewMessagePage() {\n return (\n <>\n \n \n {I18n.t(\"js.messages.new.new_message\")}\n \n \n \n );\n}\n","import type { MouseEventHandler } from \"react\";\nimport React, { Fragment } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"helpers/tixxt-router\";\nimport classNames from \"classnames\";\nimport { get, set } from \"lodash\";\nimport { queryClient } from \"helpers/queryClient\";\nimport BackButton from \"components/shared/BackButton\";\nimport InteractionsButton from \"../InteractionsButton\";\nimport {\n useMarkMessageAsRead,\n useMarkMessageAsUnread,\n useDeleteMessage,\n onError,\n} from \"../api\";\nimport { MessageInteractionsProps } from \"../@types\";\nimport { useQueryParams } from \"helpers/useQueryParams\";\n\nfunction MessageInteractions({\n messageId,\n isRead,\n onSetMessageAction,\n messageAction,\n filter,\n}: MessageInteractionsProps) {\n const navigate = useNavigate();\n const { mutate: deleteMessage } = useDeleteMessage(filter, messageId, {\n onSuccess: () => {\n if (navigate) {\n navigate(-1);\n } else {\n window.history.back();\n }\n toastr.success(I18n.t(\"js.messages.message_deleted\"));\n },\n onError,\n });\n\n const { mutate: markAsUnread, isLoading: isLoadingUnread } =\n useMarkMessageAsUnread({\n onSuccess: () => {\n const updatedCache = set(\n queryClient.getQueryData([\"message\", messageId]) as Record<\n PropertyKey,\n unknown\n >,\n \"i.read\",\n false,\n );\n queryClient.setQueryData([\"message\", messageId], updatedCache);\n },\n onError,\n });\n\n const { mutate: markAsRead, isLoading: isLoadingRead } = useMarkMessageAsRead(\n {\n onSuccess: () => {\n const updatedCache = set(\n queryClient.getQueryData([\"message\", messageId]) as Record<\n PropertyKey,\n unknown\n >,\n \"i.read\",\n true,\n );\n queryClient.setQueryData([\"message\", messageId], updatedCache);\n },\n onError,\n },\n );\n\n const sendDirectMessages = useSelector((state) =>\n get(state, \"currentMember.can.send_direct_messages\"),\n );\n const { state } = useQueryParams();\n const search = (state as Record)?.search || \"\";\n\n return (\n
    \n
    \n \n \n\n {filter !== \"sent\" ? (\n \n {isRead ? (\n markAsUnread(messageId)}\n isDisabled={isLoadingUnread}\n icons={[\"fa-regular fa-envelope text-normal fa-lg\"]}\n title={I18n.t(\"js.messages.index_toolbar.unread\")}\n />\n ) : (\n markAsRead(messageId)}\n isDisabled={isLoadingRead}\n icons={[\"fa-regular fa-envelope text-normal fa-lg\"]}\n title={I18n.t(\"js.messages.index_toolbar.read\")}\n />\n )}\n \n ) : null}\n \n
    \n
    \n {filter !== \"sent\" && sendDirectMessages ? (\n \n onSetMessageAction(\"reply\")}\n icons={[\"fa fa-reply\"]}\n title={I18n.t(\"js.messages.combined.answer\")}\n onlyIcon={false}\n className={classNames({\n active: messageAction === \"reply\",\n })}\n />\n onSetMessageAction(\"replyAll\")}\n icons={[\"fa fa-reply-all\"]}\n title={I18n.t(\"js.messages.combined.answer_all\")}\n onlyIcon={false}\n className={classNames({\n active: messageAction === \"replyAll\",\n })}\n />\n \n ) : null}\n {sendDirectMessages ? (\n onSetMessageAction(\"share\")}\n icons={[\"fa fa-share\"]}\n title={I18n.t(\"js.messages.combined.forward\")}\n onlyIcon={false}\n className={classNames({\n active: messageAction === \"share\",\n })}\n />\n ) : null}\n
    \n
    \n );\n\n function onDeleteMessage(e: Event) {\n e.preventDefault();\n window.bridge?.confirm(\n filter == \"sent\"\n ? `${I18n.t(\"js.delete_confirmation\")}\\n${I18n.t(\n \"js.messages.message.delete_confirmation_sent\",\n )}`\n : I18n.t(\"js.delete_confirmation\"),\n () => deleteMessage(),\n );\n }\n}\n\nexport default MessageInteractions;\n","import React, { Fragment } from \"react\";\nimport { get, map, isEqual, isEmpty, find } from \"lodash\";\nimport moment from \"moment\";\nimport { showNameWithProfileField } from \"components/memberships/MemberNameWithAdditions\";\nimport { Message } from \"../@types\";\nimport classNames from \"classnames\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport FileIcon from \"components/shared/FileIcon\";\n\ntype Props = {\n currentMemberId: string;\n attachments: Array<{ id: string; original_filename: string }>;\n isConversation: boolean;\n} & Message;\n\nfunction MessageContainer({\n author,\n created_at,\n currentMemberId,\n html_content,\n to,\n subject,\n attachments,\n id,\n isConversation,\n}: Props): JSX.Element {\n const authorUrl = get(author, \"html_url\");\n const authorImageUrl = find(author.images, { width: 80, height: 80 })?.url;\n const authorName = get(author, \"name\");\n const date = moment(created_at).format(\"DD.MM.YYYY\");\n const time = moment(created_at).format(\"HH:mm\");\n\n return (\n \n
    \n
    \n \n {authorName}\n \n
    \n \n\n
    \n {!isEmpty(attachments) ? (\n \n ) : null}\n {date} {time}\n
    \n
    \n
    \n
    \n {subject}\n \n
    \n\n {!isEmpty(attachments) ? (\n
    \n {map(attachments, (a) => {\n return (\n \n );\n })}\n
    \n ) : null}\n
    \n\n {isConversation ? (\n \n ) : null}\n \n );\n}\n\nexport default MessageContainer;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport {\n get,\n map,\n isEqual,\n isEmpty,\n concat,\n orderBy,\n includes,\n set,\n uniqBy,\n} from \"lodash\";\nimport moment from \"moment\";\nimport { queryClient } from \"helpers/queryClient\";\nimport { useLocation } from \"helpers/tixxt-router\";\nimport { useQueryParams } from \"helpers/useQueryParams\";\nimport { currentMemberSelector } from \"selectors/environment\";\nimport { useMarkMessageAsRead, useFetchMessage } from \"../api\";\nimport NewMessage from \"../composer\";\nimport MessageInteractions from \"./MessageInteractions\";\nimport MessageContainer from \"./MessageContainer\";\nimport { Author, Message } from \"../@types\";\n\nfunction MessageDetails(): JSX.Element {\n const [messageAction, setMessageAction] = useState(\"\");\n const { messageId } = useQueryParams() as { messageId: string };\n const location = useLocation() as unknown as Location & {\n state: History[\"state\"];\n };\n const { isLoading, isSuccess, data: message } = useFetchMessage(messageId);\n const { mutate: markAsRead } = useMarkMessageAsRead({\n onSuccess: () => {\n const updatedCache = set(\n queryClient.getQueryData([\"message\", messageId]) as Record<\n PropertyKey,\n unknown\n >,\n \"i.read\",\n true,\n );\n queryClient.setQueryData([\"message\", messageId], updatedCache);\n },\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const currentMemberId = useSelector(currentMemberSelector)?.id;\n const filter = location.state?.pathname?.includes(\"sent\") ? \"sent\" : \"\";\n const conversation = get(message, \"conversation\");\n\n useEffect(() => {\n if (isSuccess && message?.i.read === false) {\n markAsRead(messageId);\n }\n }, [message]);\n\n if (isLoading || !currentMemberId)\n return (\n
    \n \n
    \n );\n\n return (\n <>\n \n\n {isEmpty(messageAction) ? null : (\n
    \n \n
    \n )}\n\n \n\n {map(orderBy(conversation, \"created_at\", \"desc\"), (message, i) => (\n \n ))}\n \n );\n\n function onSetMessageAction(action: string) {\n setMessageAction(action);\n }\n}\n\nfunction selectedMembers(recipients: Array) {\n const newMemberArray: Array<{ id: string; displayValue: string }> = [];\n map(recipients, (recipient) =>\n newMemberArray.push({\n id: recipient.id,\n displayValue: recipient.name,\n }),\n );\n return newMemberArray;\n}\n\ninterface Attachment {\n content_type: string;\n download_url: string;\n extension: string;\n external_id: null;\n html_url: string;\n i: object;\n id: string;\n original_filename: string;\n size: number;\n state: string;\n type: string;\n}\n\nexport function messageInitialValues(\n messageAction: string,\n message: Message,\n currentMemberId: string,\n) {\n const sender_name = get(message, [\"author\", \"name\"]);\n const recipients =\n get(message, \"to\")?.filter(\n // filter out the currentMember, as we do not want to send a message to self (https://gitlab.sys.mixxt.net/tixxt/foundation/-/issues/2380)\n (recipient) => recipient.id != currentMemberId,\n ) || [];\n const subject = get(message, \"subject\") ? get(message, \"subject\") : \"\";\n const htmlContent = get(message, \"content\");\n const send_date = moment(get(message, \"created_at\")).format(\"DD.MM.YYYY\");\n const send_time = moment(get(message, \"created_at\")).format(\"HH:mm\");\n const messageId = get(message, \"id\");\n const conversation_starter_id =\n get(message, \"conversation_starter_id\") || messageId;\n\n switch (messageAction) {\n case \"reply\": {\n return {\n to: selectedMembers([get(message, \"author\")]),\n subject: `${I18n.t(\"js.messages.message.re\")}: ${subject}`,\n conversation_starter_id,\n };\n }\n case \"replyAll\": {\n const isAuthorInRecipients = includes(\n map(recipients, (r) => isEqual(r, get(message, \"author\"))),\n true,\n );\n const to = uniqBy(\n selectedMembers(\n isAuthorInRecipients\n ? recipients\n : concat(recipients, [get(message, \"author\")]),\n ),\n \"id\",\n );\n\n return {\n to,\n subject: `${I18n.t(\"js.messages.message.re\")}: ${subject}`,\n conversation_starter_id,\n };\n }\n case \"share\": {\n return {\n subject: `${I18n.t(\"js.messages.message.fwd\")}: ${subject}`,\n content: `\\n\\n${I18n.t(\"js.messages.message.forwarded_message\", {\n sender_name,\n send_date,\n send_time,\n })} \\n${htmlContent}`,\n attachments: map(\n get(message, \"attachments\"),\n (attachment: Attachment) => ({\n ...attachment,\n name: attachment.original_filename,\n }),\n ),\n };\n }\n default: {\n return {};\n }\n }\n}\n\nexport default MessageDetails;\n","import React from \"react\";\nimport PageTitle, { Subtitle } from \"components/layout/PageTitle\";\nimport MessageDetails from \"components/messages/message\";\n\nexport default function ShowMessagePage() {\n return (\n <>\n \n \n {I18n.t(\"js.messages.message.history\")}\n \n \n \n );\n}\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport InboxPage from \"components/messages/InboxPage\";\nimport SentPage from \"components/messages/SentPage\";\nimport NewMessagePage from \"components/messages/NewMessagePage\";\nimport ShowMessagePage from \"components/messages/ShowMessagePage\";\n\nconst routes: RouteObject[] = [\n { path: \"/messages\", element: },\n { path: \"/messages/sent\", element: },\n { path: \"/messages/new\", element: },\n { path: \"/messages/:messageId\", element: },\n];\n\nexport default routes;\n","import React, { useMemo } from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { get, isEmpty, map, filter } from \"lodash\";\nimport { useParams, useSearchParams } from \"helpers/tixxt-router\";\n\nimport PageTitle from \"../layout/PageTitle\";\nimport ControlGroup from \"../shared/fields/ControlGroup\";\nimport { Field } from \"redux-form\";\nimport styles from \"./files.module.css\";\nimport FileUploadField from \"../shared/fields/FileUploadField\";\nimport FolderSelectionField from \"./FolderSelectionField\";\nimport EmbeddedValueSetForm from \"../shared/propertySets/EmbeddedValueSetForm\";\nimport ReduxForm from \"../shared/reduxForm\";\nimport { selectFileProfilesEnabled } from \"../../selectors/propertySets\";\nimport { submitApi } from \"../../helpers/api\";\nimport { publishFiles } from \"../../actions/files\";\nimport { rootFolderIdSelector } from \"../../selectors/folders\";\nimport Breadcrumb from \"./Breadcrumb\";\nimport GroupNavigation from \"../layout/GroupNavigation\";\nimport { useFetchFolder } from \"./api\";\n\nconst validate = ({ files }) => {\n const errors = {};\n if (isEmpty(files)) errors.files = I18n.t(\"js.required\");\n return errors;\n};\n\nfunction ActualForm({\n defaultFolder,\n showFileProfileFields,\n postToStreamDefault,\n files,\n onSubmit,\n onSubmitSuccess,\n onCancel,\n}) {\n const initialValues = useMemo(\n () => ({\n folder_ids: [defaultFolder.id],\n post_to_stream: postToStreamDefault,\n }),\n [defaultFolder.id, postToStreamDefault],\n );\n\n return (\n \n file.state === \"volatile\" ||\n file.state === \"published\" ||\n file.state === \"removed\",\n )\n }\n initialValues={initialValues}\n submitText={I18n.t(\"js.files.add_files\")}\n renderChildren={() => (\n <>\n \n \n \n \n \n \n \n \n \n {showFileProfileFields ? (\n \n ) : null}\n \n \n \n {I18n.t(\"js.files.file.description_help_1\")}\n \n \n {I18n.t(\"js.files.file.description_help_2\")}\n \n \n \n )}\n />\n );\n}\n\nActualForm.propTypes = {\n defaultFolder: PropTypes.shape({\n id: PropTypes.string.isRequired,\n group_id: PropTypes.string,\n }),\n showFileProfileFields: PropTypes.bool,\n postToStreamDefault: PropTypes.bool,\n onSubmit: PropTypes.func.isRequired,\n onSubmitSuccess: PropTypes.func,\n onCancel: PropTypes.func.isRequired,\n};\n\nconst ConnectedForm = connect((state) => ({\n files: get(state, [\"form\", \"new-files\", \"values\", \"files\"], null),\n showFileProfileFields: selectFileProfilesEnabled(state),\n postToStreamDefault: get(\n state,\n [\"network\", \"config\", \"files\", \"default_post_to_stream\"],\n false,\n ),\n}))(ActualForm);\n\n// Complete page for adding files to one or more folders\n// Loads parent folder information first, by id if one was given, root folder\n// of current context otherwise\nexport default function NewFilesPage() {\n const { groupSlug } = useParams();\n const [searchParams] = useSearchParams();\n const contextRootFolderId = useSelector(rootFolderIdSelector({ groupSlug }));\n const folderId = searchParams.get(\"folder_id\") || contextRootFolderId;\n\n const { data: folder, isLoading: loading } = useFetchFolder(folderId);\n\n const onSubmit = submitApi(({ files, ...remainingValues }) => ({\n body: {\n files: map(filter(files, { state: \"volatile\" }), ({ id }) => ({ id })),\n ...remainingValues,\n },\n }))(publishFiles);\n\n const navigateToFolder = () => {\n const contextPath = groupSlug ? `/groups/${groupSlug}` : \"\";\n window.Turbo.visit(`${contextPath}/files/folders/${folderId}`, {\n action: \"replace\",\n });\n };\n\n return (\n <>\n \n {groupSlug && }\n {loading || isEmpty(folder) ? (\n I18n.t(\"js.loading\")\n ) : (\n <>\n \n \n \n )}\n \n );\n}\nNewFilesPage.propTypes = {\n groupSlug: PropTypes.string,\n query: PropTypes.shape({\n folder_id: PropTypes.string,\n }),\n};\n","import { useState } from \"react\";\nimport { useQuery, useMutation } from \"react-query\";\nimport { get, set, reject, findIndex } from \"lodash\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\nimport { queryClient } from \"helpers/queryClient\";\nimport { stringify } from \"query-string\";\n\nfunction fetchFilesForReviewStatus(groupSlug, page) {\n return fetchApi(\n `/api/storage/v2/files?${\n groupSlug\n ? `${stringify({\n context_id: groupSlug,\n context_type: \"group\",\n query: \"reviewed\",\n page: page,\n })}`\n : `${stringify({\n context_id: Tixxt.currentNetwork.id,\n context_type: \"network\",\n query: \"reviewed\",\n page: page,\n })}`\n }`,\n { parsePaginationHeaders: true },\n );\n}\n\nexport function approvePendingFileVersion({ fileId, pendingVersionId }) {\n return fetchApi(\n `/api/storage/files/${fileId}/pending_versions/${pendingVersionId}/approve`,\n { method: \"POST\" },\n );\n}\nexport function declinePendingFileVersion({ fileId, pendingVersionId }) {\n return fetchApi(\n `/api/storage/files/${fileId}/pending_versions/${pendingVersionId}`,\n { method: \"DELETE\" },\n );\n}\n\nexport function useFilesVersionApproval(groupSlug) {\n return useQuery([\"filesVersionApproval\", groupSlug], () =>\n fetchApi(\n `/api/storage/folders/${\n groupSlug ? groupSlug : Tixxt.currentNetwork.rootFolder().id\n }/files/approval`,\n ),\n );\n}\n\n// that can directly be spread into \n// fetcher must parsePaginationHeaders (i.e. return { payload, pagination: { totalPages }})\nexport function useFilesReviewStatus(groupSlug) {\n const [page, onPaginate] = useState(1);\n const { data, isFetching, ...rest } = useQuery(\n [\"filesReviewStatus\", groupSlug, page],\n () => fetchFilesForReviewStatus(groupSlug, page),\n {\n keepPreviousData: true,\n },\n );\n\n return {\n data: get(data, [\"payload\"]),\n pagination: {\n totalPages: get(data, [\"pagination\", \"totalPages\"]),\n page,\n loading: isFetching,\n onPaginate,\n },\n isFetching,\n ...rest,\n };\n}\n\nfunction removePendingFileVersionFromCache(\n _response,\n { groupSlug, fileId, pendingVersionId },\n) {\n const files = queryClient.getQueryData([\"filesVersionApproval\", groupSlug]);\n const index = findIndex(files, { id: fileId });\n set(\n files,\n [index, \"pending_versions\"],\n reject(get(files, [index, \"pending_versions\"]), {\n id: pendingVersionId,\n }),\n );\n queryClient.setQueryData([\"filesVersionApproval\", groupSlug], files);\n queryClient.invalidateQueries(\"folderUnreads\");\n}\n\nexport function useApprovePendingFileVersion() {\n return useMutation(approvePendingFileVersion, {\n onSuccess: removePendingFileVersionFromCache,\n });\n}\nexport function useDeclinePendingFileVersion() {\n return useMutation(declinePendingFileVersion, {\n onSuccess: removePendingFileVersionFromCache,\n });\n}\n","import React from \"react\";\nimport { map, isEmpty } from \"lodash\";\nimport moment from \"moment\";\nimport {\n useFilesVersionApproval,\n useDeclinePendingFileVersion,\n useApprovePendingFileVersion,\n} from \"./api\";\nimport FileIcon from \"../../shared/FileIcon\";\n\nexport default function VersionApproval({ groupSlug }) {\n const { isLoading, data: files } = useFilesVersionApproval(groupSlug);\n\n if (isLoading) {\n return (\n
    \n {I18n.t(\"js.loading\")}\n
    \n );\n }\n\n if (isEmpty(files))\n return (\n
    \n {I18n.t(\"js.files.approval.review_status.empty_list\")}\n
    \n );\n\n return map(files, ({ id: fileId, name, pending_versions }) => {\n if (isEmpty(pending_versions)) return null;\n\n return (\n
    \n

    \n \n {name}\n \n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {map(pending_versions, (pendingVersion) => (\n \n ))}\n \n
    {I18n.t(\"js.files.overview.new_filename\")}{I18n.t(\"js.files.overview.created_at\")}{I18n.t(\"js.files.overview.author\")}{I18n.t(\"js.files.overview.description\")}
    \n
    \n );\n });\n}\n\nfunction PendingVersionApprovalRow({\n fileId,\n groupSlug,\n id,\n extension,\n original_filename,\n created_at,\n author_name,\n description,\n}) {\n const { mutate: decline, isLoading: isDeclining } =\n useDeclinePendingFileVersion();\n const { mutate: approve, isLoading: isApproving } =\n useApprovePendingFileVersion();\n\n const fileUrl = `/api/storage/files/${fileId}/pending_versions/${id}`;\n return (\n \n \n \n \n \n \n {original_filename}\n \n {moment(created_at).format(\n I18n.t(\"js.time.formats.short_date_and_time\"),\n )}\n \n {author_name}\n {description}\n \n
    \n \n \n \n \n \n \n
    \n \n\n \n
    \n {\n approve({\n fileId,\n pendingVersionId: id,\n groupSlug,\n foo: \"Bar\",\n });\n }}\n disabled={isDeclining || isApproving}\n >\n \n \n {\n decline({\n fileId,\n pendingVersionId: id,\n groupSlug,\n });\n }}\n disabled={isDeclining || isApproving}\n >\n \n \n
    \n \n \n );\n}\n","import React from \"react\";\nimport { get, map, isEmpty } from \"lodash\";\nimport moment from \"moment\";\nimport { useFilesReviewStatus } from \"./api\";\nimport DocumentAction from \"../documents/DocumentAction\";\nimport FileIcon from \"../../shared/FileIcon\";\nimport Pagination from \"../../shared/Pagination\";\n\nexport default function ReviewStatus({ groupSlug }) {\n const {\n data: files,\n pagination,\n isLoading,\n } = useFilesReviewStatus(groupSlug);\n\n if (isLoading) {\n return (\n
    \n {I18n.t(\"js.loading\")}\n
    \n );\n }\n\n if (isEmpty(files) && pagination.page === 1) {\n return (\n
    \n {I18n.t(\"js.files.approval.review_status.empty_list\")}\n
    \n );\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n {map(files, (file) => (\n \n ))}\n \n
    {I18n.t(\"js.files.overview.file_name\")}{I18n.t(\"js.files.overview.updated_at\")}{I18n.t(\"js.files.overview.last_author\")}
    \n \n \n );\n}\n\nfunction ReviewStatusRow({\n original_filename,\n updated_at,\n current_version_authors,\n id,\n review_status,\n extension,\n groupSlug,\n}) {\n const insertions = get(review_status, \"insertions\", 0);\n const deletions = get(review_status, \"deletions\", 0);\n const changes = get(review_status, \"changes\", 0);\n const comments = get(review_status, \"comments\", 0);\n return (\n \n \n \n \n \n \n {original_filename}\n \n \n \n {moment(updated_at).format(\n I18n.t(\"js.time.formats.short_date_and_time\"),\n )}\n \n {map(current_version_authors, \"name\").join(\", \")}\n \n
    \n }\n type=\"docs\"\n showReviewChanges={true}\n />\n
    \n \n\n \n
    \n \n \n {changes + insertions + deletions}\n \n \n \n {comments}\n \n
    \n \n \n );\n}\n","import React, { useState } from \"react\";\nimport classNames from \"classnames\";\nimport { find } from \"lodash\";\nimport { useParams } from \"helpers/tixxt-router\";\n\nimport VersionApproval from \"./VersionApproval\";\nimport ReviewStatus from \"./ReviewStatus\";\nimport GroupNavigation from \"components/layout/GroupNavigation\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport { useFoldersUnreads } from \"../../../api/unreads\";\n\ntype LayoutProps = {\n groupSlug?: string;\n children?: React.ReactNode;\n};\n\nfunction Layout({ groupSlug, children }: LayoutProps) {\n return (\n <>\n \n {groupSlug ? : null}\n {children}\n \n );\n}\n\nexport default function ApprovalPage() {\n const { groupSlug } = useParams();\n const [activeTab, setActiveTab] = useState(null);\n\n const { data: foldersUnreads, isLoading } = useFoldersUnreads();\n\n const unreads = find(foldersUnreads, { group_slug: groupSlug || null });\n\n if (activeTab === null) {\n Number(unreads?.reviewed_files) === 0 &&\n Number(unreads?.pending_versions) > 0\n ? setActiveTab(\"versions\")\n : setActiveTab(\"approval\");\n }\n\n if (isLoading) {\n return (\n \n
    \n {I18n.t(\"js.loading\")}\n
    \n
    \n );\n }\n\n return (\n \n
    \n
      \n
    • \n {\n e.preventDefault();\n setActiveTab(\"approval\");\n }}\n >\n {I18n.t(\"js.files.approval.open_review_status\")}{\" \"}\n {Number(unreads?.reviewed_files) > 0 && (\n \n {unreads?.reviewed_files}\n \n )}\n \n
    • \n
    • \n {\n e.preventDefault();\n setActiveTab(\"versions\");\n }}\n >\n {I18n.t(\"js.files.approval.new_versions\")}{\" \"}\n {Number(unreads?.pending_versions) > 0 && (\n \n {unreads?.pending_versions}\n \n )}\n \n
    • \n
    \n
    \n \n \n
    \n \n \n
    \n \n \n
    \n );\n}\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport { convertRoutes } from \"components/tixxt/BackboneFeature\";\nimport NewFilesPage from \"./NewFilesPage\";\nimport ApprovalPage from \"./approval/ApprovalPage\";\n\nconst backboneRoutes: RouteObject[] = convertRoutes({\n feature: \"Files\",\n featureRoutes: {\n \"(groups/:group_slug/)files\": \"showRootFolder\",\n \"(groups/:group_slug/)files/:file_id\": \"showFile\",\n \"(groups/:group_slug/)files/folders/new\": \"newFolder\",\n \"(groups/:group_slug/)files/folders/:folder_id\": \"showFolder\",\n \"(groups/:group_slug/)files/folders/:folder_id/edit\": \"editFolder\",\n \"(groups/:group_slug/)files/activitystream_folders/:stream_slug\":\n \"showActivitystreamFolder\",\n \"(groups/:group_slug/)files/:file_id/edit\": \"editFile\",\n \"(groups/:group_slug/)files/:file_id/versions/new\": \"newFileVersion\",\n \"administration/members/files/:file_id\": \"showFile\",\n \"administration/consumers/files/:file_id\": \"showFile\",\n \"administration/industrials/files/:file_id\": \"showFile\",\n \"activities/:activity_id/files/:file_id\": \"showFile\",\n \"(groups/:group_slug/)activitystreams/:slug/files/:file_id\": \"showFile\",\n \"(groups/:group_slug/)apps/:app_slug/items/exports/files/:file_id\":\n \"showFile\",\n \"(groups/:group_slug/)apps/:app_slug/items/files/:file_id\": \"showFile\",\n \"(groups/:group_slug/)apps/:app_slug/items/:item_id/files/:file_id\":\n \"showFile\",\n \"appointments/:appointment_id/files/:file_id\": \"showFile\",\n \"messages/:message_id/files/:file_id\": \"showFile\",\n },\n});\n\nconst reactRoutes: RouteObject[] = [\n { path: \"/files/new\", element: },\n { path: \"/files/approval\", element: },\n { path: \"/groups/:groupSlug/files/new\", element: },\n { path: \"/groups/:groupSlug/files/approval\", element: },\n];\n\nexport default reactRoutes.concat(backboneRoutes);\n","import { convertRoutes } from \"components/tixxt/BackboneFeature\";\nimport { RouteObject } from \"helpers/tixxt-router\";\n\nconst tasksRoutes: RouteObject[] = convertRoutes({\n feature: \"Tasks\",\n featureRoutes: {\n \"groups/:group_slug/tasks\": \"index\",\n \"(groups/:group_slug/)tasks\": \"my\",\n \"(groups/:group_slug/)tasks/my\": \"my\",\n \"(groups/:group_slug/)tasks/assigned\": \"assigned\",\n \"(groups/:group_slug/)tasks/archive\": \"archive\",\n \"(groups/:group_slug/)tasks/starred\": \"starred\",\n \"tasks/notes\": \"notes\",\n \"tasks/declined\": \"declined\",\n \"tasks/:id\": \"showTask\",\n \"tasks/:id/edit\": \"editTask\",\n },\n});\n\nexport default tasksRoutes;\n","import React from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { useParams, useSearchParams } from \"helpers/tixxt-router\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport SearchResults from \"./SearchResults\";\nimport GroupNavigation from \"../layout/GroupNavigation\";\nimport { useSearchResults } from \"./api\";\n\nfunction Content() {\n const routeParams = useParams();\n const [searchParams] = useSearchParams();\n\n // rebuild legacy params\n routeParams.q = searchParams.get(\"q\");\n routeParams.module = searchParams.get(\"module\");\n routeParams.page = searchParams.get(\"page\");\n\n const {\n data: searchResults,\n isLoading,\n error,\n } = useSearchResults(routeParams);\n\n return (\n <>\n \n {routeParams.groupSlug ? (\n \n ) : null}\n \n \n );\n}\n\nexport default Content;\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport Content from \"./Content\";\n\nconst globalSearchRoutes: RouteObject[] = [\n { path: \"/search\", element: },\n { path: \"/groups/:groupSlug/search\", element: },\n];\n\nexport default globalSearchRoutes;\n","import { useQuery, useMutation } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nexport function fetchNetworkSettings() {\n return fetchApi(\"/administration/settings\");\n}\n\nexport function useNetworkSettings() {\n return useQuery(\"networkSettings\", fetchNetworkSettings);\n}\n\nexport async function updateNetworkSettings(body) {\n return fetchApi(`/administration/settings`, { method: \"PUT\", body });\n}\n\nexport function useUpdateNetworkSettings(options) {\n return useMutation(updateNetworkSettings, options);\n}\n\nexport async function sendTestBirthdayEmail({ birthday_emails }) {\n return fetchApi(`/administration/settings/send_test_birthday_email`, {\n method: \"POST\",\n body: birthday_emails,\n });\n}\n\nexport function useSendTestBirthdayEmail(options) {\n return useMutation(sendTestBirthdayEmail, options);\n}\n","import React from \"react\";\nimport { map, includes } from \"lodash\";\n\nimport ControlGroup from \"../../shared/fields/ControlGroup\";\nimport TextField from \"../../appCreator/properties/edit/TextField\";\nimport SelectionField from \"../../appCreator/properties/edit/SelectionField\";\n\nconst AVAILABLE_LANGUAGES = [\"de\", \"de_DU\", \"en\", \"es\", \"fr\"];\n\nfunction BasicSettings() {\n return (\n <>\n

    \n {I18n.t(\"js.administration.network_settings.basic_settings.title\")}\n

    \n
    \n \n \n \n\n \n ({\n value: lang,\n label: I18n.t(`js.networks.languages.${lang}`),\n }))\n : [\n I18n.t(\n `js.networks.languages.${Tixxt.currentNetwork.get(\n \"language\",\n )}`,\n ),\n ]\n }\n />\n \n {Preload.current_network.config.abuse_reports.admin_configurable ? (\n \n \n \n ) : null}\n
    \n \n );\n}\n\nexport default BasicSettings;\n","import React, { Fragment, useMemo } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { map, castArray, isArray, compact, debounce } from \"lodash\";\nimport { Field } from \"redux-form\";\nimport AsyncSelect from \"react-select/async\";\n\nimport styles from \"../../appCreator/properties/edit/editFields.module.css\";\nimport { fetchMembersAndGroups } from \"actions/memberships\";\n\nconst normalizeValue = (value) => {\n if (value === null) return null; // When nothing is selected\n if (isArray(value)) return map(value, normalizeValue);\n\n return { id: value.value, name: value.label };\n};\n\nconst formatValue = (state) =>\n map(compact(castArray(state)), ({ id, name }) => ({\n value: id,\n label: name,\n }));\n\ninterface SelectAdapterProps {\n input?: Record;\n required?: boolean;\n id?: string;\n disabled?: boolean;\n multiple?: boolean;\n className?: string;\n}\n\nfunction SelectAdapter({\n input,\n required,\n id,\n disabled,\n className,\n multiple,\n}: SelectAdapterProps) {\n const dispatch = useDispatch();\n const loadOptions = useMemo(\n () =>\n debounce(async (value, callback) => {\n const { payload } = await dispatch(\n fetchMembersAndGroups({ q: value, groups_only: true }),\n );\n callback(formatValue(payload.entries));\n }, 375),\n [],\n );\n\n const props = {\n ...input,\n // workaround for mobile,\n // see ticket #9930 or issue https://github.com/JedWatson/react-select/issues/2692#issuecomment-395743446\n onBlur: (e) => e.preventDefault(),\n isClearable: !required,\n isDisabled: disabled,\n inputId: id,\n placeholder: I18n.t(\"js.group_select.placeholder\"),\n noOptionsMessage: () => I18n.t(\"plugins.select2.no_match\"),\n className,\n loadOptions: (value, callback) => {\n loadOptions(value, callback);\n },\n isMulti: multiple,\n styles: { menu: (base) => ({ ...base, zIndex: 999 }) },\n };\n\n return (\n \n \n \n );\n}\n\ninterface GroupSelectFieldProps {\n name: string;\n multiple: boolean;\n required?: boolean;\n disabled?: boolean;\n id?: string;\n}\n\nfunction GroupSelectField({\n name,\n required,\n disabled,\n id,\n multiple,\n}: GroupSelectFieldProps) {\n return (\n \n );\n}\n\nexport default GroupSelectField;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Field, formValueSelector } from \"redux-form\";\nimport ControlGroup from \"../../shared/fields/ControlGroup\";\nimport MarkdownTranslation from \"components/shared/MarkdownTranslation\";\nimport TextField from \"../../appCreator/properties/edit/TextField\";\nimport SelectionField from \"../../appCreator/properties/edit/SelectionField\";\nimport GroupSelectField from \"../../shared/fields/GroupSelectField\";\nimport { State } from \"@types\";\nimport MarkdownEditorAdapter from \"components/shared/markdownEditor/MarkdownEditorAdapter\";\n\ninterface JoinSettingsTypes {\n join_user_can_initiate?: boolean;\n join_promote_groups?: boolean;\n decorators?: boolean;\n decorators_external?: boolean;\n}\n\nfunction JoinSettings({\n join_user_can_initiate,\n join_promote_groups,\n decorators,\n decorators_external,\n}: JoinSettingsTypes) {\n return (\n <>\n

    \n {I18n.t(\"js.administration.network_settings.join_settings.title\")}\n

    \n
    \n {I18n.t(\"js.administration.network_settings.join_settings.hint\") !=\n \"no_content_do_not_change\" ? (\n
    \n {I18n.t(\"js.administration.network_settings.join_settings.hint\")}\n
    \n ) : null}\n\n \n \n\n {join_user_can_initiate ? (\n <>\n \n\n {Tixxt.currentNetwork.getConfig(\"guest_users.allowed\") ? (\n \n ) : null}\n \n ) : null}\n\n \n\n \n \n\n {join_promote_groups ? (\n
    \n

    {I18n.t(\"js.networks.group_promotion.headline\")}

    \n\n
    \n {I18n.t(\"js.networks.group_promotion.help_text\")}\n
    \n {decorators ? (\n
    \n \n {I18n.t(\"js.networks.group_promotion.decorators_help\")}\n \n
    \n ) : null}\n\n \n \n
    \n {I18n.t(\"js.networks.group_promotion.title.help\")}\n
    \n \n\n \n \n
    \n {I18n.t(\"js.networks.group_promotion.description.help\")}\n
    \n \n\n \n !gc.get(\"hidden\") && gc.get(\"access\") != \"hidden\",\n )\n .map((gc) => ({\n value: gc.get(\"id\"),\n label: gc.get(\"plural_name\"),\n }))}\n multiple\n />\n
    \n {I18n.t(\"js.networks.group_promotion.group_categories.help\")}\n
    \n \n\n \n \n
    \n {I18n.t(\"js.networks.group_promotion.groups.help\")}\n
    \n \n {Tixxt.currentNetwork.getConfig(\"guest_users.allowed\") ? (\n \n \n
    \n {I18n.t(\n \"js.networks.group_promotion.enabled_for_external.help\",\n )}\n
    \n {decorators_external ? (\n
    \n \n {I18n.t(\n \"js.networks.group_promotion.enabled_for_external.decorators_help\",\n )}\n \n
    \n ) : null}\n \n ) : null}\n
    \n ) : null}\n\n {Tixxt.currentNetwork.getConfig(\"devise.login_form_configurable\") ? (\n <>\n
    \n
    \n

    {I18n.t(\"js.networks.join_settings.login_form\")}

    \n\n \n
    \n\n \n \n \n \n \n \n \n \n \n
    \n \n ) : null}\n
    \n \n );\n}\n\nconst selector = formValueSelector(\"networkSettingsForm\"); // the name of the outer form\nexport default connect((state) => ({\n join_user_can_initiate: selector(state as State, \"join_user_can_initiate\"),\n join_promote_groups: selector(\n state as State,\n \"group_promotion_config.active\",\n ),\n decorators: selector(state as State, \"group_promotion_config.decorators\"),\n decorators_external: selector(\n state as State,\n \"group_promotion_config.decorators_external\",\n ),\n}))(JoinSettings);\n","import React from \"react\";\nimport { get, map } from \"lodash\";\nimport { connect } from \"react-redux\";\nimport { formValueSelector } from \"redux-form\";\nimport ControlGroup from \"../../shared/fields/ControlGroup\";\nimport SelectionField from \"../../appCreator/properties/edit/SelectionField\";\nimport CheckboxField from \"components/shared/fields/CheckboxField\";\nimport { Controls } from \"components/shared/fields/ControlGroup\";\nimport AddressField from \"components/appCreator/properties/edit/AddressField\";\nimport TextField from \"../../appCreator/properties/edit/TextField\";\nimport NumberField from \"../../appCreator/properties/edit/NumberField\";\nimport { State } from \"@types\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\ninterface MemberSettings {\n maps_enabled?: string;\n show_map?: string;\n map_scope_selection?: string;\n two_factor?: string;\n anonymize_memberships_config: string;\n initial_anonymize_memberships_config: string;\n anonymize_memberships_managed_by_admin: boolean;\n show_locked_memberships_managed_by_admin: boolean;\n anonymize_memberships_after_days: number;\n deleted_membership_count: number;\n available_factor_types?: {\n two_factor_email_available: boolean;\n two_factor_totp_available: boolean;\n };\n}\n\nfunction MemberSettings({\n show_map,\n map_scope_selection,\n maps_enabled,\n two_factor,\n anonymize_memberships_config,\n initial_anonymize_memberships_config,\n anonymize_memberships_managed_by_admin,\n show_locked_memberships_managed_by_admin,\n anonymize_memberships_after_days,\n deleted_membership_count,\n available_factor_types,\n}: MemberSettings) {\n const twoFactorOptions = [\n {\n value: \"disabled\",\n label: I18n.t(\"js.administration.authentication.2fa.deactivated\"),\n },\n {\n value: \"enabled\",\n label: I18n.t(\"js.administration.authentication.2fa.optional\"),\n },\n ];\n\n if (Tixxt.currentNetwork.getConfig(\"two_factor.enforced_available\"))\n twoFactorOptions.push({\n value: \"enforced\",\n label: I18n.t(\n \"js.administration.authentication.2fa.enforced_for_network\",\n ),\n });\n\n return (\n <>\n

    \n {I18n.t(\"js.administration.network_settings.member_settings.title\")}\n

    \n\n

    \n {I18n.t(\"js.administration.network_settings.member_settings.directory\")}\n

    \n\n
    \n \n \n \n\n {maps_enabled === \"enabled\" ? (\n <>\n \n
    \n \n
    \n {I18n.t(\"js.administration.network_settings.map_hint\")}\n
    \n
    \n \n
    \n {I18n.t(\"js.administration.network_settings.map_modal_body\")}\n
    \n {show_map === \"enabled\" ? (\n <>\n
    \n
    \n \n {I18n.t(\n \"js.administration.network_settings.member_settings.map.map_scope_selection.label\",\n )}\n \n
    \n \n
    \n {map_scope_selection === \"poi\" ? (\n
    \n
    \n \n {I18n.t(\n \"js.administration.network_settings.member_settings.map.map_scope_selection.address_label\",\n )}\n \n \n \n {I18n.t(\n \"js.administration.network_settings.member_settings.map.map_scope_selection.zoom\",\n )}\n \n \n
    \n
    \n ) : null}\n
    \n
    \n {I18n.t(\n \"js.administration.network_settings.member_settings.map.theme.label\",\n )}\n \n ),\n },\n {\n value: \"alidade_smooth_dark\",\n label: (\n \n ),\n },\n {\n value: \"osm_bright\",\n label: (\n \n ),\n },\n {\n value: \"outdoors\",\n label: (\n \n ),\n },\n ]}\n />\n \n ) : null}\n \n \n ) : null}\n \n ,\n (field) => ({\n value: field.name,\n label: field.label,\n }),\n )}\n />\n
    \n {I18n.t(\"js.networks.directory_fields.help\")}\n
    \n \n\n \n ,\n (field) => ({\n value: field.name,\n label: field.label,\n }),\n )}\n />\n
    \n {I18n.t(\"js.networks.detection_profile_field.hint\")}\n
    \n \n {show_locked_memberships_managed_by_admin ? (\n \n \n \n ) : null}\n\n {anonymize_memberships_managed_by_admin ? (\n <>\n \n {[\"enabled\", \"after_days\"].includes(\n anonymize_memberships_config,\n ) && initial_anonymize_memberships_config == \"disabled\" ? (\n
    \n {I18n.t(\n \"js.administration.network_settings.anonymize_memberships.warning\",\n { deletedMemberCount: deleted_membership_count },\n )}\n
    \n ) : null}\n \n {anonymize_memberships_config === \"after_days\" ? (\n <>\n
    \n {I18n.t(\n \"js.administration.network_settings.anonymize_memberships.days.title\",\n )}\n \n \n ) : null}\n {[\"enabled\", \"after_days\"].includes(\n anonymize_memberships_config as string,\n ) ? (\n <>\n
    \n {I18n.t(\n \"js.administration.network_settings.anonymize_memberships.name.title\",\n )}\n \n \n ) : null}\n \n \n ) : null}\n\n {Tixxt.currentNetwork.getConfig(\"guest_users.allowed\") ? (\n <>\n

    \n {I18n.t(\n \"js.administration.network_settings.guest_users_settings.title\",\n )}\n

    \n {Preload.current_member?.can?.chat && (\n \n \n \n )}\n \n ) : null}\n\n

    \n {I18n.t(\n \"js.administration.network_settings.member_settings.security\",\n )}\n

    \n\n \n \n {Tixxt.currentNetwork.getConfig(\"two_factor.enforced_available\") ? (\n
    \n {I18n.t(\n \"js.administration.authentication.2fa.enforced_description\",\n )}\n
    \n ) : null}\n\n {two_factor != \"disabled\" ? (\n
    \n \n \n
    \n
    \n
    \n \n
    \n \n {I18n.t(\"js.authentication.2fa.authenticator_app\")}\n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n \n {I18n.t(\"js.authentication.2fa.email\")}\n \n
    \n
    \n
    \n
    \n \n
    \n ) : null}\n \n\n \n \n
    \n {I18n.t(\"js.administration.network_settings.online_status.hint\")}\n
    \n \n
    \n \n );\n}\n\nconst selector = formValueSelector(\"networkSettingsForm\"); // the name of the outer form\nexport default connect((state) => ({\n maps_enabled: selector(state as State, \"maps_enabled\"),\n show_map: selector(state as State, \"show_map\"),\n map_scope_selection: selector(state as State, \"map_scope_selection\"),\n two_factor: selector(state as State, \"two_factor\"),\n deleted_membership_count: selector(\n state as State,\n \"deleted_membership_count\",\n ),\n anonymize_memberships_managed_by_admin: selector(\n state as State,\n \"anonymize_memberships_managed_by_admin\",\n ),\n show_locked_memberships_managed_by_admin: selector(\n state as State,\n \"show_locked_memberships_managed_by_admin\",\n ),\n initial_anonymize_memberships_config: get(state, [\n \"form\",\n \"networkSettingsForm\",\n \"initial\",\n \"anonymize_memberships_config\",\n ]),\n anonymize_memberships_config: selector(\n state as State,\n \"anonymize_memberships_config\",\n ),\n anonymize_memberships_after_days: selector(\n state as State,\n \"anonymize_memberships_after_days\",\n ),\n\n available_factor_types: {\n two_factor_totp_available: selector(\n state as State,\n \"two_factor_totp_available\",\n ),\n two_factor_email_available: selector(\n state as State,\n \"two_factor_email_available\",\n ),\n },\n}))(MemberSettings);\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { formValueSelector } from \"redux-form\";\nimport moment from \"moment\";\nimport { flatMap, each, memoize } from \"lodash\";\nimport ControlGroup from \"../../shared/fields/ControlGroup\";\nimport SelectionField from \"../../appCreator/properties/edit/SelectionField\";\nimport { Field } from \"redux-form\";\nimport NumberField from \"components/appCreator/properties/edit/NumberField.js\";\nimport { State } from \"@types\";\nimport FileUploadField from \"components/shared/fields/FileUploadField\";\nimport TextField from \"../../appCreator/properties/edit/TextField\";\nimport { useSendTestBirthdayEmail } from \"./api\";\nimport MarkdownEditorAdapter from \"components/shared/markdownEditor/MarkdownEditorAdapter\";\n\ntype day = { name: string; index: number };\n\nconst createDaysArray = memoize(() => {\n const days: Array = [];\n each(moment.localeData().weekdays(), (weekday, index) =>\n days.push({ name: weekday, index: index }),\n );\n\n let moveArray = moment.localeData().firstDayOfWeek();\n while (moveArray != 0) {\n if (days.length) {\n days.push(days.shift() as day);\n }\n moveArray--;\n }\n\n return days;\n});\n\nfunction MailSettings() {\n const selector = formValueSelector(\"networkSettingsForm\");\n const digests_daily_activity_enabled = useSelector((state) =>\n selector(state as State, \"daily_activity.enabled\"),\n );\n const birthday_emails_enabled = useSelector((state) =>\n selector(state as State, \"birthday_emails.enabled\"),\n );\n\n const birthday_emails_values = useSelector((state) =>\n selector(\n state as State,\n \"birthday_emails.subject\",\n \"birthday_emails.text\",\n \"birthday_emails.image\",\n ),\n );\n\n const { mutateAsync: sendTestMail } = useSendTestBirthdayEmail({\n onSuccess: () => {\n toastr.success(\"Test Mail erfolgreich gesendet\");\n },\n });\n\n const days = createDaysArray();\n return (\n <>\n

    \n {I18n.t(\"js.administration.network_settings.mail_settings.title\")}\n

    \n
    \n \n \n
    \n {I18n.t(\"js.networks.notifications.dm_body.help\")}\n
    \n \n {Tixxt.currentNetwork.getConfig(\n \"email_recommendations.allow_email_recommendation_configuration_for_network_admins\",\n ) ? (\n \n \n
    \n {I18n.t(\n \"js.administration.network_settings.activity_recommendation_email.help\",\n )}\n
    \n \n \n ) : null}\n {Tixxt.currentNetwork.getConfig(\"digests.enabled\") ? (\n <>\n

    \n {I18n.t(\"js.administration.network_settings.digests.label\")}\n

    \n \n [\n {\n key: `${day.index}_am`,\n value: { day: day.index, time: \"am\" },\n label: `${day.name} ${I18n.t(\n \"js.administration.network_settings.digests.am\",\n )}`,\n },\n {\n key: `${day.index}_pm`,\n value: { day: day.index, time: \"pm\" },\n label: `${day.name} ${I18n.t(\n \"js.administration.network_settings.digests.pm\",\n )}`,\n },\n ])}\n />\n {Tixxt.currentNetwork.getConfig(\"digests.configurable\") ? null : (\n
    \n {I18n.t(\n \"js.administration.network_settings.setting_restricted_by_plan\",\n )}\n
    \n )}\n \n {Tixxt.currentNetwork.getConfig(\"digests.configurable\") ? (\n <>\n \n \n \n \n \n \n \n \n \n \n ) : null}\n \n ) : null}\n {Tixxt.currentNetwork.getConfig(\n \"digests.daily_activity.feature_available\",\n ) ? (\n
    \n \n \n
    \n {I18n.t(\n \"js.administration.network_settings.daily_digests.enabled.help\",\n )}\n
    \n {digests_daily_activity_enabled === \"true\" && (\n <>\n
    \n \n {I18n.t(\n \"js.administration.network_settings.daily_digests.include_network_level.label\",\n )}\n \n \n
    \n \n {I18n.t(\n \"js.administration.network_settings.daily_digests.mode.label\",\n )}\n \n \n
    \n \n {I18n.t(\n \"js.administration.network_settings.daily_digests.sending_time.label\",\n )}\n \n \n
    \n \n {I18n.t(\n \"js.administration.network_settings.daily_digests.only_weekdays.label\",\n )}\n \n \n \n )}\n \n
    \n ) : null}\n {Tixxt.currentNetwork.getConfig(\n \"birthday_emails.admin_configurable\",\n ) ? (\n
    \n \n \n {I18n.t(\n \"js.administration.network_setting.birthday_emails.enable_label\",\n )}\n \n \n\n {birthday_emails_enabled === \"true\" && (\n <>\n
    \n \n {I18n.t(\n \"js.administration.network_setting.birthday_emails.image_label\",\n )}\n \n\n \n
    \n {I18n.t(\n \"js.administration.network_setting.birthday_emails.image_size_hint\",\n )}\n
    \n\n
    \n \n {I18n.t(\n \"js.administration.network_setting.birthday_emails.subject_label\",\n )}\n \n\n \n
    \n \n {I18n.t(\n \"js.administration.network_setting.birthday_emails.text_label\",\n )}\n \n\n \n
    \n {\n e.preventDefault();\n sendTestMail(birthday_emails_values);\n }}\n >\n {I18n.t(\n \"js.administration.network_setting.birthday_emails.send_test_mail_label\",\n )}\n \n
    \n \n )}\n \n
    \n ) : null}\n
    \n \n );\n}\n\nexport default MailSettings;\n","import React, { useState } from \"react\";\nimport { memoize } from \"lodash\";\nimport ReduxForm from \"components/shared/reduxForm\";\nimport BasicSettings from \"./BasicSettings\";\nimport JoinSettings from \"./JoinSettings\";\nimport MemberSettings from \"./MemberSettings\";\nimport MailSettings from \"./MailSettings\";\nimport TabBar from \"../../shared/TabBar\";\n\nconst getTabs = memoize(() => {\n const tabs = [\n {\n label: I18n.t(\"js.administration.network_settings.basic_settings.title\"),\n TabContent: BasicSettings,\n },\n {\n label: I18n.t(\"js.administration.network_settings.join_settings.title\"),\n TabContent: JoinSettings,\n },\n {\n label: I18n.t(\"js.administration.network_settings.member_settings.title\"),\n TabContent: MemberSettings,\n },\n {\n label: I18n.t(\"js.administration.network_settings.mail_settings.title\"),\n TabContent: MailSettings,\n },\n ];\n\n return tabs;\n});\n\ninterface NetworkSettingsFormTypes {\n initialValues: Record;\n onSubmit: (values: any) => Promise;\n}\n\nfunction NetworkSettingsForm({\n onSubmit,\n initialValues,\n}: NetworkSettingsFormTypes) {\n const [selectedTabIndex, selectTabIndex] = useState(0);\n const { TabContent } = getTabs()[selectedTabIndex];\n\n return (\n toastr.error(I18n.t(\"js.saving_failure\"))}\n onCancel={(reset: () => void) => reset()}\n allowSaveWithoutChange={false}\n >\n \n
    \n \n
    \n \n );\n}\n\nexport default NetworkSettingsForm;\n","import React from \"react\";\nimport { isEmpty, map } from \"lodash\";\n\nimport { useNetworkSettings, useUpdateNetworkSettings } from \"./api\";\nimport PageTitle from \"../../layout/PageTitle\";\nimport NetworkSettingsForm from \"./NetworkSettingsForm\";\nimport { useDispatch } from \"react-redux\";\nimport publishAllVolatile from \"helpers/files/publishAllVolatile\";\n\nfunction NetworkSettings() {\n const { isLoading, data: networkSettings } = useNetworkSettings();\n const dispatch = useDispatch();\n const { mutateAsync: updateNetworkSettings } = useUpdateNetworkSettings({\n onSuccess: () => {\n toastr.success(I18n.t(\"js.saving_successful\"));\n window.location.reload(); // hard reload, to apply language settings\n },\n });\n\n const onSubmit = async (values) => {\n let body = {\n ...values,\n // The SelectField resolve to an empty array if you clear the input\n category: isEmpty(values.category) ? null : values.category,\n detection_profile_field: isEmpty(values.detection_profile_field)\n ? null\n : values.detection_profile_field,\n // Send array of group_ids instead of an array with group objects\n group_promotion_config: {\n ...values.group_promotion_config,\n group_ids: map(values.group_promotion_config.groups, (g) => g.id),\n },\n guest_users_allow_chat: values.guest_users_allow_chat === \"enabled\",\n birthday_emails: {\n subject:\n values.birthday_emails.subject === \"\"\n ? null\n : values.birthday_emails.subject,\n text:\n values.birthday_emails.text === \"\"\n ? null\n : values.birthday_emails.text,\n enabled: values.birthday_emails.enabled === \"true\",\n },\n };\n\n if (values.birthday_emails.image != null) {\n const result = await publishAllVolatile({\n dispatch,\n values: { birthday_emails_image: values.birthday_emails.image },\n storageDirectory: \"assets\",\n });\n\n body = {\n ...body,\n birthday_emails: {\n ...body.birthday_emails,\n image: result.birthday_emails_image[0],\n },\n };\n\n return updateNetworkSettings(body);\n } else {\n body = {\n ...body,\n birthday_emails: {\n ...body.birthday_emails,\n image: null,\n },\n };\n\n return updateNetworkSettings(body);\n }\n };\n\n return (\n <>\n \n
    \n
    \n {isLoading || isEmpty(networkSettings) ? (\n
    \n {I18n.t(\"js.loading\")}\n
    \n ) : (\n \n )}\n
    \n
    \n \n );\n}\n\nexport default NetworkSettings;\n","import React from \"react\";\n\ninterface LinkFormTypes {\n link: string;\n text: string;\n\n onChange(...args: unknown[]): unknown;\n}\n\nfunction LinkForm({ link, text, onChange }: LinkFormTypes) {\n text = text || I18n.t(\"js.administration.navigation_items.default_text\");\n return (\n onChange({ link: e.target.value, text })}\n placeholder={I18n.t(\"js.administration.navigation_items.url_placeholder\")}\n />\n );\n}\n\nexport default LinkForm;\n","import React from \"react\";\n\n// Method gets default menu-item-name from selected page, app or standard-site.\nconst getDefaultName = (target) => {\n const selectedIndex = target.selectedIndex;\n return target[selectedIndex].text;\n};\n\ninterface SelectContentTypes {\n data: {\n label?: string;\n link?: string;\n }[];\n link: string;\n\n onChange(...args: unknown[]): unknown;\n}\n\nfunction SelectContent({ data, link, onChange }: SelectContentTypes) {\n return (\n \n onChange({ link: e.target.value, text: getDefaultName(e.target) })\n }\n value={link}\n >\n \n {data.map((item, index) => (\n \n ))}\n \n );\n}\n\nexport default SelectContent;\n","import React from \"react\";\nimport { isEmpty } from \"lodash\";\n\ninterface MainFieldsTypes {\n onChangeOption(...args: unknown[]): unknown;\n\n hasChildren: boolean;\n option: string;\n items: {\n apps?: Array;\n pages?: Array;\n standard?: Array;\n };\n}\n\nfunction MainFields({\n hasChildren,\n option,\n onChangeOption,\n items,\n}: MainFieldsTypes) {\n let optionLink = [\n {\n label: I18n.t(\"js.administration.navigation_items.link.option_label\"),\n name: \"link\",\n },\n //{ label: \"Folder\", name: \"folder\" },\n //{ label: \"Group\", name: \"group\" },\n {\n label: I18n.t(\"js.administration.navigation_items.page.option_label\"),\n name: \"pages\",\n },\n {\n label: I18n.t(\"js.administration.navigation_items.app.option_label\"),\n name: \"apps\",\n },\n {\n label: I18n.t(\"js.administration.navigation_items.standard.option_label\"),\n name: \"standard\",\n },\n ];\n\n // filter out Apps and Pages from the Dropdown if there are none present\n optionLink = optionLink.filter(\n (item) => !isEmpty(items[item.name]) || item.name == \"link\",\n );\n\n return (\n
    \n {!hasChildren && (\n
    \n \n \n {optionLink.map((item, index) => (\n \n ))}\n \n
    \n )}\n
    \n );\n}\n\nexport default MainFields;\n","import React from \"react\";\n\ninterface CheckboxesTypes {\n newWindow?: boolean;\n\n onChangeNewWindow(...args: unknown[]): unknown;\n\n isPublic?: boolean;\n\n onChangePublic(...args: unknown[]): unknown;\n}\n\nfunction Checkboxes({\n newWindow,\n onChangeNewWindow,\n isPublic,\n onChangePublic,\n}: CheckboxesTypes) {\n return (\n
    \n \n
    \n \n \n
    \n
    \n );\n}\n\nexport default Checkboxes;\n","import type { ChangeEvent } from \"react\";\nimport type { TreeItem } from \"react-sortable-tree\";\nimport React from \"react\";\nimport \"../navigationManager.css\";\nimport { isEmpty, findKey, isEqual, find } from \"lodash\";\nimport { connect } from \"react-redux\";\nimport LinkForm from \"./LinkForm\";\nimport SelectContent from \"./SelectContent\";\nimport MainFields from \"./MainFields\";\nimport Checkboxes from \"./Checkboxes\";\nimport { State } from \"../../../@types\";\n\nfunction findOption(items, link) {\n const keyName = findKey(items, (value) =>\n find(value, (item) => isEqual(item.link, link)),\n );\n if (!isEmpty(keyName)) return keyName;\n return \"link\";\n}\n\ntype items = {\n apps?: Array;\n pages?: Array;\n};\n\ninterface ItemFormTypes {\n option: string;\n items: items;\n link: string;\n text: string;\n\n onChange(...args: unknown[]): unknown;\n}\n\nfunction ItemForm({ option, items, link, text, onChange }: ItemFormTypes) {\n if (items[option]) {\n return (\n \n );\n }\n return ;\n}\n\ninterface NavigationManagerFormTypes {\n node: TreeItem | null;\n\n onChangeNode(...args: unknown[]): unknown;\n\n items: items;\n}\n\nfunction NavigationManagerForm({\n node,\n onChangeNode,\n items,\n}: NavigationManagerFormTypes) {\n if (isEmpty(node)) {\n return null;\n }\n const hasChildren = !isEmpty((node as TreeItem).children);\n const option = (node as TreeItem).option\n ? (node as TreeItem).option\n : findOption(items, (node as TreeItem).link);\n return (\n
    \n
    \n ) => {\n onChangeNode({ ...node, option: e.target.value });\n }}\n />\n {!hasChildren && [\n onChangeNode({ ...node, link, text })}\n items={items}\n key=\"options\"\n />,\n ]}\n \n {\n onChangeNode({ ...node, text: e.target.value });\n }}\n />\n {!hasChildren && [\n \n onChangeNode({ ...node, new_window })\n }\n onChangePublic={(p) => onChangeNode({ ...node, public: p })}\n key=\"checkboxes\"\n />,\n ]}\n \n
    \n );\n}\n\nexport default connect(\n (\n state,\n { items, groupSlug }: { items: items; groupSlug: string | null },\n ) => ({\n items: {\n ...items,\n standard: groupSlug\n ? []\n : [\n {\n link: \"/\",\n label: I18n.t(\n \"js.administration.navigation_items.standard.start.option_label\",\n ),\n },\n {\n link: \"/members\",\n label: I18n.t(\n \"js.administration.navigation_items.standard.user-folder.option_label\",\n ),\n },\n ].concat(\n (state as State).network.group_categories.map(\n ({ slug, plural_name }) => ({\n link: `/directory/${slug}`,\n label: plural_name,\n }),\n ),\n ),\n },\n }),\n)(NavigationManagerForm);\n","import React from \"react\";\n\ninterface ItemButtonTypes {\n onClick?(...args: unknown[]): unknown;\n\n buttonClass?: string;\n icon?: string;\n}\n\nfunction ItemButton({ onClick, buttonClass, icon }: ItemButtonTypes) {\n return (\n \n );\n}\n\nexport default ItemButton;\n","import type { TreeItem } from \"react-sortable-tree\";\nimport React, { Component } from \"react\";\nimport SortableTree, {\n changeNodeAtPath,\n addNodeUnderParent,\n removeNodeAtPath,\n getNodeAtPath,\n walk,\n} from \"react-sortable-tree\";\nimport { isEqual, isEmpty } from \"lodash\";\nimport classNames from \"classnames\";\n\nimport \"react-sortable-tree/style.css\";\nimport NavigationManagerForm from \"./navigationManager/NavigationManagerForm\";\nimport ItemButton from \"./navigationManager/ItemButton\";\nimport Flash from \"../shared/Flash\";\nimport PageTitle from \"../layout/PageTitle\";\nimport GroupNavigation from \"../layout/GroupNavigation\";\nimport \"./navigationManager.css\";\nimport { queryClient } from \"helpers/queryClient\";\n\nconst getNodeKey = ({ treeIndex }) => treeIndex;\n\nconst countAllNodes = (treeData) => {\n let sum = 0;\n walk({\n treeData,\n getNodeKey,\n callback: () => {\n sum = sum + 1;\n },\n });\n return sum;\n};\n\n// Validation of empty item-name and url fields in data-object (see state.treeData). Used in:\n// - \"isValidTree\" method\n// - \"generateNodeProps\" method in SortableTree component to set css-class of item with empty field\nconst isValidNode = (node) => {\n if (isEmpty(node.text)) return false;\n if (isEmpty(node.link) && isEmpty(node.children)) return false;\n return true;\n};\n\n// Method returns true if every node in the tree is valid\n// Used in \"sendData\" method as validation before data sending\nconst isValidTree = (treeData) => {\n const result: Array = [];\n walk({\n treeData,\n getNodeKey,\n ignoreCollapsed: false,\n callback: ({ node, path }) => {\n if (!isValidNode(node)) result.push(path);\n },\n });\n return isEmpty(result);\n};\n\n// Validation of drop possibility. Maximal depth of Tree Data is 2,\n// means: main-parent-item + sub-children-items (sub-children-items cannot have children)\nconst canDrop = ({ node, nextPath }) => {\n if (nextPath.length > 2) return false;\n if (node.children.length > 0 && nextPath.length > 1) return false;\n return true;\n};\n\nconst reloadNavbar = (groupSlug: null | string) => {\n queryClient.invalidateQueries([\"groupNavigationItems\", groupSlug]);\n};\n\nconst navigationItemsUrl = ({ groupSlug }) =>\n groupSlug ? `/groups/${groupSlug}/administration` : \"/administration\";\n\ntype State = {\n treeData: Array;\n activePath: Array;\n apps: Array;\n pages: Array;\n isLoading: boolean;\n loadError: boolean;\n isSaving: boolean;\n saveError: boolean;\n saveSuccess: boolean;\n};\n\ninterface NavigationManagerTypes {\n groupSlug: string | null;\n}\n\nclass NavigationManager extends Component {\n treeRef: React.RefObject;\n\n constructor(props: NavigationManagerTypes) {\n super(props);\n\n this.state = {\n treeData: [],\n activePath: [],\n apps: [],\n pages: [],\n isLoading: false,\n loadError: false,\n isSaving: false,\n saveError: false,\n saveSuccess: false,\n };\n\n this.treeRef = React.createRef();\n }\n\n onChangeTree = (treeData) => this.setState({ treeData });\n\n onMoveNode = (event) => {\n this.setState({ activePath: event.path });\n };\n\n onChangeActiveNode = (newNode) =>\n this.setState(({ activePath, treeData }: State) => ({\n treeData: changeNodeAtPath({\n treeData,\n path: activePath,\n getNodeKey,\n newNode,\n }),\n }));\n\n // Method sends a request with data-object (see state.treeData) to backend,\n // reloads site when catches no errors.\n // Has also a validation of empty fields.\n sendData = async () => {\n this.setState({ isSaving: true, saveError: false, saveSuccess: false });\n\n if (!isValidTree((this.state as State).treeData)) {\n toastr.error(\n I18n.t(\"js.administration.navigation_items.edit.message_empty_fields\"),\n );\n this.setState({\n isSaving: false,\n });\n return;\n }\n\n try {\n const response = await fetch(\n `${navigationItemsUrl(this.props)}/navigation`,\n {\n method: \"PUT\",\n body: JSON.stringify({\n navigation_items: this.serializeTree(\n (this.state as State).treeData,\n ),\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n credentials: \"include\",\n },\n );\n const responseData = await response.json();\n\n this.setState({\n treeData: responseData.map(this.parseNavigationItems),\n isSaving: false,\n saveSuccess: true,\n });\n reloadNavbar(this.props.groupSlug);\n // groupSlug ? reloadGroupNavbar(groupSlug) : null;\n } catch (error) {\n console.error(error);\n this.setState({\n isSaving: false,\n saveError: true,\n });\n }\n };\n\n async componentDidMount() {\n this.setState({ isLoading: true });\n try {\n const navResponse = await fetch(\n `${navigationItemsUrl(this.props)}/navigation.json`,\n { credentials: \"include\" },\n );\n const navData = await navResponse.json();\n const pagesResponse = await fetch(\n `${navigationItemsUrl(this.props)}/pages.json`,\n { credentials: \"include\" },\n );\n const pagesData = await pagesResponse.json();\n const appsResponse = await fetch(\n `${navigationItemsUrl(this.props)}/apps.json`,\n { credentials: \"include\" },\n );\n const appsData = await appsResponse.json();\n const { groupSlug } = this.props;\n this.setState({\n treeData: navData.map(this.parseNavigationItems),\n pages: pagesData.map((item) => ({\n label: item.name,\n link: groupSlug\n ? `/groups/${groupSlug}/pages/${item.slug}`\n : `/pages/${item.slug}`,\n })),\n apps:\n appsResponse.status == 200\n ? appsData.map((item) => ({\n label: item.name,\n link: groupSlug\n ? `/groups/${groupSlug}/apps/${item.slug}`\n : `/apps/${item.slug}`,\n }))\n : [],\n isLoading: false,\n });\n } catch (error) {\n console.error(error);\n this.setState({\n isLoading: false,\n loadError: true,\n });\n }\n }\n\n // Method adapts keys in data-object received from backend to data-object processed in \"SortableTree\" component.\n // Adds new option key.\n // Used by component mounting in lifecycle method \"componentDidMount\"\n // and sending data in \"sendData\" method.\n parseNavigationItems = (data) => {\n data.expanded = true;\n\n if (!isEmpty(data.children)) data.link = \"\";\n if (data.navigation_items) {\n data.children = data.navigation_items.map(this.parseNavigationItems);\n delete data.navigation_items;\n }\n\n return data;\n };\n\n // Method adapts keys in data-object (see state.treeData) to data-object processed in backend.\n // Used by sending data in \"sendData\" method.\n serializeTree = (treeData) => treeData.map(this.serializeNode);\n\n serializeNode = ({ text, link, public: isPublic, new_window, children }) => {\n const result = { text, link, public: isPublic, new_window };\n if (children && children.length > 0) {\n result.link = \"#\";\n Reflect.set(result, \"navigation_items\", children.map(this.serializeNode));\n }\n return result;\n };\n\n getActiveNode = () => {\n const node = getNodeAtPath({\n treeData: (this.state as State).treeData,\n path: (this.state as State).activePath,\n getNodeKey,\n });\n return node ? node.node : null;\n };\n\n buildNewNode = () => ({\n text: I18n.t(\"js.administration.navigation_items.default_text\"),\n link: \"\",\n option: \"link\",\n new_window: false,\n public: false,\n children: [],\n });\n\n // Method adds new node in tree data. Used as onClick-handler in \"itemButtons\" method, where adds new nodes as sub-items (children).\n // \"Add new item\" blue button (see in browser on the bottom of \"Tree\") uses also this method as onClick-handler.\n // In this case method calls the function \"scrollToBottom\"\n addNodeAt = (path) => (e) => {\n e.stopPropagation();\n\n const { treeData, treeIndex } = addNodeUnderParent({\n treeData: (this.state as State).treeData,\n parentKey: path[path.length - 1],\n expandParent: true,\n getNodeKey,\n newNode: this.buildNewNode(),\n addAsFirstChild: false,\n });\n\n // Select nodeIndex under current parent or last node without parent\n const activePath =\n path.length > 0\n ? path.concat([treeIndex])\n : [countAllNodes(treeData) - 1];\n\n this.setState({\n treeData,\n activePath,\n });\n if (isEmpty(path)) this.scrollToBottom();\n };\n\n removeItemAt = (path) => (e) => {\n e.stopPropagation();\n\n this.setState((state: State) => ({\n treeData: removeNodeAtPath({\n treeData: state.treeData,\n path,\n getNodeKey,\n }),\n }));\n };\n\n // Method shows specific buttons on every items.\n // On parent-items: \"add\" and \"remove\" buttons, on child-items only \"remove\" buttons.\n itemButtons(path) {\n const buttons: Array = [];\n\n if (path.length <= 1) {\n buttons.push(\n ,\n );\n }\n\n buttons.push(\n ,\n );\n\n return buttons;\n }\n\n scrollToBottom = () => {\n window.scrollTo({\n top: this.treeRef.current?.clientHeight,\n behavior: \"smooth\",\n });\n };\n\n render() {\n const items = {\n apps: (this.state as State).apps,\n pages: (this.state as State).pages,\n };\n const {\n saveSuccess,\n isLoading,\n loadError,\n saveError,\n treeData,\n activePath,\n isSaving,\n } = this.state as State;\n const { groupSlug } = this.props;\n return (\n
    \n \n\n
    \n \n {I18n.t(\"js.administration.navigation_items.edit.save\")}\n \n
    \n {groupSlug ? : null}\n {saveSuccess ? (\n \n {I18n.t(\"js.administration.navigation_items.edit.success\")}\n \n ) : null}\n {saveError ? (\n \n {I18n.t(\"js.administration.navigation_items.edit.error\")}\n \n ) : null}\n
    \n
    \n {isLoading ? (\n

    \n {I18n.t(\"js.administration.navigation_items.loading\")}\n

    \n ) : loadError ? (\n

    \n {I18n.t(\n \"js.administration.navigation_items.error_while_loading\",\n )}\n

    \n ) : null}\n
    \n {!isEmpty(treeData) ? (\n ({\n onClick: () => {\n this.setState({\n activePath: path,\n });\n },\n className: classNames(\n {\n \"selected move-item\": isEqual(activePath, path),\n \"not-empty-field\": isValidNode(node) || isSaving,\n \"empty-field\": !isValidNode(node) && !isSaving,\n },\n \"content-item\",\n ),\n title: node.text,\n buttons: this.itemButtons(path),\n })}\n />\n ) : null}\n {!isLoading && !loadError ? (\n \n \n {I18n.t(\"js.administration.navigation_items.edit.add_link\")}\n \n ) : null}\n
    \n
    \n {!isEmpty(activePath) ? (\n \n ) : null}\n
    \n
    \n
    \n
    \n );\n }\n}\n\nexport default NavigationManager;\n","import { DragSource, DropTarget } from \"react-dnd\";\nimport React, { Component, createRef } from \"react\";\nimport flow from \"lodash/flow\";\nimport classNames from \"classnames\";\n\nconst cardSource = {\n beginDrag(props) {\n return {\n id: props.id,\n index: props.index,\n };\n },\n};\n\nconst cardTarget = {\n hover(props, monitor, component) {\n const dragIndex = monitor.getItem().index;\n const hoverIndex = props.index;\n\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n\n // Determine rectangle on screen\n const hoverBoundingRect =\n component.hoverRef.current.getBoundingClientRect();\n\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n\n // Get pixels to the top\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n\n props.moveCard(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n },\n};\n\ninterface CardTypes {\n connectDragSource(...args: unknown[]): unknown;\n connectDropTarget(...args: unknown[]): unknown;\n index: number;\n isDragging: boolean;\n id: string;\n text: string;\n customBackgroundColor?: string;\n moveCard(...args: unknown[]): unknown;\n}\n\nclass Card extends Component {\n hoverRef: React.RefObject;\n\n constructor(props: CardTypes) {\n super(props);\n this.hoverRef = createRef();\n }\n\n render() {\n const {\n text,\n isDragging,\n customBackgroundColor,\n connectDragSource,\n connectDropTarget,\n } = this.props;\n\n return connectDragSource(\n connectDropTarget(\n \n \n \n {text}\n \n ,\n ),\n ) as React.ReactNode;\n }\n}\n\nexport default flow([\n DragSource(\"card\", cardSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n })),\n DropTarget(\"card\", cardTarget, (connect) => ({\n connectDropTarget: connect.dropTarget(),\n })),\n])(Card);\n","import React, { useState } from \"react\";\nimport { DragDropContext } from \"react-dnd\";\nimport { useSelector } from \"react-redux\";\nimport HTML5Backend from \"react-dnd-html5-backend\";\nimport { pick, sortBy } from \"lodash\";\n\nimport Flash from \"../shared/Flash\";\nimport PageTitle from \"../layout/PageTitle\";\nimport Card from \"./groupCategorySorter/Card\";\nimport \"./groupCategorySorter.css\";\nimport { State } from \"../../@types\";\n\nfunction GroupCategorySorter() {\n const groupCategories = useSelector((state: State) =>\n state.network.group_categories.map((model) =>\n pick(model, \"plural_name\", \"id\", \"color\", \"order\", \"slug\"),\n ),\n );\n const [state, setState] = useState({\n cards: sortBy(groupCategories, \"order\"),\n isSaving: false,\n saveSuccess: false,\n saveError: false,\n });\n\n async function sendData() {\n setState((curr) => ({\n ...curr,\n isSaving: true,\n saveError: false,\n saveSuccess: false,\n }));\n\n const response = await fetch(\"/administration/group-categories/order\", {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n credentials: \"include\",\n body: JSON.stringify({\n order: state.cards.map((x) => x.slug),\n }),\n });\n\n response.status == 204\n ? setState((curr) => ({ ...curr, isSaving: false, saveSuccess: true }))\n : setState((curr) => ({ ...curr, isSaving: false, saveError: true }));\n }\n\n function moveCard(dragIndex, hoverIndex) {\n const dragCard = state.cards[dragIndex];\n const newCards = [...state.cards];\n newCards.splice(dragIndex, 1);\n newCards.splice(hoverIndex, 0, dragCard);\n setState((curr) => ({ ...curr, cards: newCards }));\n }\n\n return (\n
    \n \n\n
    \n {\n e.preventDefault();\n window.history.back();\n }}\n >\n \n \n \n {I18n.t(\"js.administration.group_manager.new_category\")}\n \n
    \n\n {state.saveSuccess ? (\n \n {I18n.t(\n \"js.administration.group_manager.categories_order_edit.success\",\n )}\n \n ) : null}\n {state.saveError ? (\n \n {I18n.t(\n \"js.administration.group_manager.categories_order_edit.error\",\n )}\n \n ) : null}\n
    \n

    \n {I18n.t(\"js.administration.group_manager.categories_order_edit.help\")}\n

    \n
    \n
      \n {state.cards.map((category, i) => (\n \n ))}\n
    \n
    \n
    \n\n
    \n \n {I18n.t(\"js.cancel\")}\n \n \n {I18n.t(\"js.administration.group_manager.categories_order_edit.save\")}\n \n
    \n
    \n );\n}\n\n// getting the data from the Backbone Model because Card colors\n// do not get directly saved to the store, when editing/creating a category\n// store alternative : groupCategories: state.network.group_categories\nexport default DragDropContext(HTML5Backend)(GroupCategorySorter);\n","import { createApiAction } from \"helpers/api\";\n\nexport const createMembership = createApiAction({\n method: \"POST\",\n endpoint: () => `/administration/members`,\n baseType: `administration/CREATE_MEMBERSHIP`,\n});\n\nexport const updateMembership = createApiAction({\n method: \"PUT\",\n endpoint: ({ membershipId }) => `/administration/members/${membershipId}`,\n baseType: `administration/UPDATE_MEMBERSHIP`,\n});\n","import React from \"react\";\nimport { useStore, useSelector } from \"react-redux\";\nimport { SubmissionError } from \"redux-form\";\nimport { get } from \"lodash\";\nimport MembershipForm from \"components/memberships/MembershipForm\";\nimport persistItem from \"helpers/items/persistItem\";\nimport { selectNetworkId } from \"selectors/environment\";\nimport { updateMembership } from \"actions/administration/memberships\";\nimport ControlGroup from \"../shared/fields/ControlGroup\";\nimport SimpleInput from \"components/appCreator/items/form/SimpleInput\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport { useMembershipProfile } from \"./api\";\nimport { useLoadApp } from \"components/appCreator/api\";\n\ntype MemberEditFieldsProps = {\n membershipId?: string;\n};\n\nfunction MemberEditFields({ membershipId }: MemberEditFieldsProps) {\n const { data: membership, isLoading: loading } =\n useMembershipProfile(membershipId);\n\n return (\n \n {loading ? (\n \n ) : (\n \n )}\n \n );\n}\n\nfunction MembershipEdit() {\n const { membershipId } = useParams();\n const networkId = useSelector(selectNetworkId);\n const externalAppId = `profile:${networkId}`;\n const externalItemId = membershipId;\n const store = useStore();\n const { data: app } = useLoadApp({\n appId: undefined,\n externalAppId,\n });\n\n const onSubmit = async (values, dispatch) => {\n await persistItem(app, store.dispatch, {\n externalAppId,\n externalItemId,\n values,\n });\n\n const membershipResult = await dispatch(updateMembership({ membershipId }));\n if (membershipResult.error)\n throw new SubmissionError(membershipResult.error);\n };\n\n const onSubmitSuccess = () => {\n location.replace(`/administration/members`);\n toastr.success(I18n.t(\"js.saving_successful\"));\n };\n\n return (\n }\n onSubmitSuccess={onSubmitSuccess}\n title={I18n.t(\"js.administration.members.edit.page_title\")}\n />\n );\n}\n\nexport default MembershipEdit;\n","import React, { Fragment } from \"react\";\nimport { useStore, useSelector } from \"react-redux\";\nimport { Field, SubmissionError, formValues } from \"redux-form\";\nimport { selectNetworkId } from \"selectors/environment\";\nimport { createMembership } from \"actions/administration/memberships\";\nimport persistItem from \"helpers/items/persistItem\";\nimport MembershipForm from \"components/memberships/MembershipForm\";\nimport ControlGroup from \"../shared/fields/ControlGroup\";\nimport Hint from \"../shared/fields/Hint\";\nimport EmailField from \"../appCreator/properties/edit/EmailField\";\nimport CheckboxField from \"../shared/fields/CheckboxField\";\nimport { useLoadApp } from \"components/appCreator/api\";\n\nconst MemberCreateFields = formValues(\"send_welcome_mail\")((props) => {\n const { send_welcome_mail } = props as React.PropsWithChildren<\n { send_welcome_mail?: boolean } & string\n >;\n return (\n \n \n\n \n \n \n\n \n \n \n \n\n {!send_welcome_mail ? (\n \n \n \n ) : null}\n
    \n
    \n );\n}) as React.ComponentClass;\n\nfunction MembershipNew() {\n const networkId = useSelector(selectNetworkId);\n const externalAppId = `profile:${networkId}`;\n const store = useStore();\n const { data: app } = useLoadApp({\n appId: undefined,\n externalAppId,\n });\n\n const onSubmit = async (values, dispatch) => {\n const { email, password, send_welcome_mail, ...profile } = values;\n const { id: itemId } = await persistItem(app, store.dispatch, {\n externalAppId,\n values: profile,\n });\n\n const membershipResult = await dispatch(\n createMembership({\n body: {\n user: {\n email,\n password,\n send_welcome_mail,\n profile_id: itemId,\n },\n },\n }),\n );\n if (membershipResult.error)\n throw new SubmissionError(membershipResult.error);\n };\n\n const onSubmitSuccess = () => {\n location.replace(`/administration/members`);\n toastr.success(I18n.t(\"js.saving_successful\"));\n };\n\n return (\n }\n initialValues={{ send_welcome_mail: true }}\n />\n );\n}\n\nexport default MembershipNew;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { change } from \"redux-form\";\nimport ReduxForm from \"components/shared/reduxForm\";\nimport TextField from \"../../shared/fields/TextField\";\nimport MarkdownEditorAdapter from \"../../shared/markdownEditor/MarkdownEditorAdapter\";\nimport ControlGroup from \"../../shared/fields/ControlGroup\";\nimport { Field } from \"redux-form\";\nimport { replace } from \"lodash\";\n\ninterface LegalTextFormTypes {\n onSubmit(...args: unknown[]): unknown;\n\n initialValues?: Record;\n name?: string;\n statement?: string;\n handle?: string;\n isEditing?: boolean;\n\n updateField?(...args: unknown[]): unknown;\n}\n\nfunction LegalTextForm({\n onSubmit,\n initialValues,\n isEditing,\n updateField,\n}: LegalTextFormTypes) {\n return (\n \n \n \n \n \n \n \n \n );\n}\n\nexport default connect(null, {\n updateField: (_, data) =>\n change(\n \"editLegalText\",\n \"handle\",\n replace(data, /[^a-zA-Z0-9\\- ]/g, \"\")\n .replace(/ +/g, \"-\")\n .toLowerCase(),\n ),\n})(LegalTextForm);\n","import React from \"react\";\nimport { isEmpty, get } from \"lodash\";\nimport LegalTextForm from \"components/administration/legalTexts/LegalTextForm\";\nimport { useUpdateLegalText, useLegalText } from \"./api\";\nimport PageTitle from \"../../layout/PageTitle\";\nimport { useNavigate, useParams } from \"helpers/tixxt-router\";\n\nfunction LegalTextEdit() {\n const { legalTextId } = useParams();\n const navigate = useNavigate();\n const { isLoading: loading, data: legalText } = useLegalText(legalTextId);\n const { mutate: updateLegalText } = useUpdateLegalText({\n onSuccess: () => {\n navigate(`/administration/legal_texts`);\n navigate(0);\n toastr.success(I18n.t(\"js.saving_successful\"));\n },\n onError: () => {\n toastr.error(I18n.t(\"js.saving_failure\"));\n },\n });\n\n return (\n <>\n \n
    \n {\n e.preventDefault();\n navigate(`/administration/legal_texts`);\n }}\n >\n \n \n
    \n
    \n
    \n {loading || isEmpty(legalText) ? (\n
    \n {I18n.t(\"js.loading\")}\n
    \n ) : (\n <>\n \n updateLegalText(values)}\n isEditing\n />\n \n )}\n
    \n
    \n \n );\n}\n\nexport default LegalTextEdit;\n","import React from \"react\";\nimport { useNavigate } from \"helpers/tixxt-router\";\n\nimport LegalTextForm from \"components/administration/legalTexts/LegalTextForm\";\nimport { useCreateLegalText } from \"./api\";\nimport PageTitle from \"../../layout/PageTitle\";\n\nfunction LegalTextNew() {\n const navigate = useNavigate();\n const { mutate: createLegalText } = useCreateLegalText({\n onSuccess: () => {\n navigate(`/administration/legal_texts`);\n navigate(0);\n toastr.success(I18n.t(\"js.saving_successful\"));\n },\n onError: () => {\n toastr.error(I18n.t(\"js.saving_failure\"));\n },\n });\n\n return (\n <>\n \n
    \n {\n e.preventDefault();\n navigate(`/administration/legal_texts`);\n }}\n >\n \n \n
    \n
    \n
    \n createLegalText(values)}\n isEditing={false}\n />\n
    \n
    \n \n );\n}\n\nexport default LegalTextNew;\n","import React from \"react\";\nimport moment from \"moment-timezone\";\nimport { get } from \"lodash\";\nimport classnames from \"classnames\";\n\ninterface LegalTextVersionTypes {\n onClick?(...args: unknown[]): unknown;\n\n isOpened?: boolean;\n isCurrent?: boolean;\n version?: {\n created_at?: string;\n text?: string;\n };\n}\n\nfunction LegalTextVersion({\n version,\n isCurrent,\n isOpened,\n onClick,\n}: LegalTextVersionTypes) {\n return (\n \n \n );\n}\n\nexport default LegalTextVersion;\n","import React, { Fragment, useState } from \"react\";\nimport { isEmpty, map, get } from \"lodash\";\nimport { useParams } from \"helpers/tixxt-router\";\n\nimport PageTitle from \"../../layout/PageTitle\";\nimport LegalTextVersion from \"./LegalTextVersion\";\nimport { useLegalText } from \"./api\";\n\nfunction LegalTextVersions() {\n const { legalTextId } = useParams();\n\n const { isLoading: loading, data: legalText } = useLegalText(legalTextId);\n\n const [openedText, setOpenedText] = useState(0);\n\n return (\n \n \n
    \n {\n e.preventDefault();\n Backbone.history.navigate(`/administration/legal_texts`, {\n trigger: true,\n });\n }}\n >\n \n \n
    \n {loading || isEmpty(legalText) ? (\n
    \n {I18n.t(\"js.loading\")}\n
    \n ) : (\n \n
    \n {map(get(legalText, \"versions\"), (version, index: number) => (\n {\n e.preventDefault();\n setOpenedText(index);\n }}\n />\n ))}\n
    \n
    \n )}\n
    \n );\n}\n\nexport default LegalTextVersions;\n","import { createApiAction } from \"helpers/api\";\n\nexport const updateAppNavigation = createApiAction({\n method: \"PUT\",\n endpoint: () => \"/administration/app_navigation\",\n baseType: \"ADMINISTRATION/APP_NAVIGATION/UPDATE\",\n});\n","import { useQuery, useMutation } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nimport {\n AppNavigationItemsResponse,\n Item,\n Pages,\n} from \"../../@types/appNavigation\";\nimport { updateAppNavigation } from \"actions/administration/appNavigation\";\nimport { useDispatch } from \"react-redux\";\n\nexport function useAppNavigationItems() {\n return useQuery(\n [\"appNavigationItems\"],\n () => fetchApi(\"/administration/app_navigation.json\"),\n );\n}\n\nexport function usePages() {\n return useQuery([\"pages\"], () =>\n fetchApi(\"/administration/pages.json\"),\n );\n}\n\nexport function useUpdateAppNavigation() {\n const dispatch = useDispatch();\n const dispatchUpdateAppNavigation: (meta) => Promise = (meta: {\n body: { items: Item[] };\n }) => dispatch(updateAppNavigation(meta));\n\n return useMutation(dispatchUpdateAppNavigation, {\n onSuccess: (data) => {\n if (data.error) {\n toastr.error(I18n.t(\"js.saving_failure\"));\n } else {\n toastr.success(I18n.t(\"js.saving_successful\"));\n }\n },\n });\n}\n\nexport { useActivitystreams, type Activitystream } from \"api/activitystreams\";\n","import React, { useEffect, useState } from \"react\";\nimport { find, map } from \"lodash\";\nimport { Item } from \"../../../../../@types/appNavigation\";\n\ntype Props = {\n unusedDefaults: Item[];\n onChange: (item: Item) => void;\n changedToDefault?: boolean;\n} & Item;\n\nfunction Default({\n unusedDefaults,\n onChange,\n changedToDefault = false,\n ...item\n}: Props) {\n const defaults =\n item && item?.isDefault ? [item, ...unusedDefaults] : unusedDefaults;\n const [selected, select] = useState(\n item?.isDefault && !changedToDefault ? item : defaults[0],\n );\n\n useEffect(() => {\n selected && onChange(selected);\n }, []);\n\n return (\n {\n const item = find(defaults, { id: e.target.value });\n\n if (item) {\n select(item);\n onChange(item);\n }\n }}\n value={selected?.id}\n >\n {map(defaults, (item: Item) => (\n \n ))}\n \n );\n}\n\nexport default Default;\n","import React, { useState, useEffect } from \"react\";\nimport { LinkOptions } from \"../../../../../@types/appNavigation\";\nimport classNames from \"classnames\";\n\ntype Props = {\n options: LinkOptions;\n onChange: (props: { options: LinkOptions }) => void;\n};\n\nfunction Link({ options, onChange }: Props) {\n const [openIn, setOpenIn] = useState<\"browser\" | \"webview\">(\n options?.open_in || \"webview\",\n );\n const [link, setLink] = useState(options?.url || \"\");\n const [isInvalidUrl, setIsInvalidUrl] = useState(false);\n const [openInDisabled, setOpenInDisabled] = useState(false);\n\n useEffect(() => {\n onChange({ options: { url: link, open_in: openIn } });\n }, [openIn, link]);\n\n function onLinkChange(value: string) {\n setLink(value);\n\n try {\n const url = new URL(value);\n\n setIsInvalidUrl(false);\n\n if (url.host === location.host) {\n setOpenInDisabled(true);\n setOpenIn(\"webview\");\n } else setOpenInDisabled(false);\n } catch (error) {\n setIsInvalidUrl(true);\n }\n }\n\n return (\n <>\n \n onLinkChange(e.target.value)}\n />\n {isInvalidUrl && (\n
    \n {I18n.t(\n \"js.administration.app_navigation_items.edit.link_invalid_hint\",\n )}\n
    \n )}\n \n setOpenIn(e.target.checked ? \"browser\" : \"webview\")}\n disabled={openInDisabled || isInvalidUrl}\n />\n {I18n.t(\n \"js.administration.app_navigation_items.edit.link_open_in_browser\",\n )}\n \n {openInDisabled && !isInvalidUrl && (\n
    \n {I18n.t(\n \"js.administration.app_navigation_items.edit.link_intern_hint\",\n )}\n
    \n )}\n \n );\n}\n\nexport default Link;\n","// extracted by mini-css-extract-plugin\nexport default {\"iconSelectionContainer\":\"jMVuPyzwR8w63yAABSoQ\",\"iconButton\":\"fv5lxkjnT8wfDy39Co0P\",\"active\":\"YKciGnDIOIhCjBEhI24K\",\"icon\":\"cbCewtlQBVX4dgMFOsdQ\"};","import React, { useEffect, useState } from \"react\";\nimport classnames from \"classnames\";\nimport { map } from \"lodash\";\n\nimport styles from \"./iconSelection.module.css\";\n\nexport const ICONS = {\n globe: \"fa fa-globe\",\n \"envelope-o\": \"fa-regular fa-envelope\",\n \"comments-o\": \"fa-regular fa-comments\",\n calendar: \"fa fa-calendar\",\n \"folder-open-o\": \"fa-regular fa-folder-open\",\n \"list-alt\": \"fa fa-list-alt\",\n \"file-o\": \"fa-regular fa-file\",\n cog: \"fa fa-cog\",\n link: \"fa fa-link\",\n \"external-link\": \"fa fa-external-link\",\n \"user-circle-o\": \"fa-regular fa-user-circle\",\n users: \"fa fa-users\",\n \"folder-o\": \"fa-regular fa-folder\",\n \"file-text-o\": \"fa-regular fa-file-text\",\n columns: \"fa fa-columns\",\n paperclip: \"fa fa-paperclip\",\n book: \"fa fa-book\",\n bullhorn: \"fa fa-bullhorn\",\n certificate: \"fa fa-certificate\",\n \"bookmark-o\": \"fa-regular fa-bookmark\",\n flag: \"fa fa-flag\",\n \"handshake-o\": \"fa-regular fa-handshake\",\n};\n\ntype Props = {\n icon: string;\n changeIcon: (icon: string) => void;\n disabled: boolean;\n};\n\nfunction IconSelection({ icon, changeIcon, disabled }: Props) {\n const [selectedIcon, selectIcon] = useState(icon);\n\n // update icon if its changed from e.g. changing the link type\n useEffect(() => {\n selectIcon(icon);\n }, [icon]);\n\n return (\n <>\n \n
    \n {map(ICONS, (iconClass, iconName) => (\n {\n e.preventDefault();\n selectIcon(iconName);\n changeIcon(iconName);\n }}\n key={iconName}\n >\n \n \n ))}\n
    \n \n );\n}\n\nexport default IconSelection;\n","import React, { useEffect, useState } from \"react\";\nimport { map, isEmpty } from \"lodash\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { usePages } from \"../../../../hooks/administration/appNavigation\";\n\nconst OPTIONS = {\n link: {\n label: \"js.administration.navigation_items.link.option_label\",\n type: \"link\",\n icon: \"link\",\n },\n activitystream: {\n label: \"js.administration.app_navigation_items.edit.activity_stream\",\n type: \"activitystream\",\n icon: \"globe\",\n },\n page: {\n label: \"js.administration.app_navigation_items.edit.page\",\n type: \"page\",\n icon: \"file-o\",\n },\n default: {\n label: \"js.administration.app_navigation_items.edit.default_module\",\n type: \"default\",\n icon: \"globe\",\n },\n};\n\ntype Props = {\n isDefault: boolean;\n type: string;\n changeType: (props: {\n id: string;\n type: string;\n icon: string;\n isDefault: boolean;\n changedToDefault: boolean;\n }) => void;\n};\n\nfunction TypeSelector({ isDefault, type, changeType }: Props) {\n const [selectedOption, selectOption] = useState(isDefault ? \"default\" : type);\n const { data: pages } = usePages();\n\n useEffect(() => {\n selectOption(isDefault ? \"default\" : type);\n }, [type]);\n\n return (\n <>\n \n {\n const newType = e.target.value;\n const newItem = {\n id: uuidv4(),\n type: newType,\n icon: OPTIONS[newType].icon,\n isDefault: false,\n };\n\n selectOption(newType);\n changeType({\n ...newItem,\n changedToDefault: type !== \"default\" && newType === \"default\",\n });\n }}\n value={OPTIONS[selectedOption]?.type}\n >\n {map(OPTIONS, (option) => {\n if (option.type === \"page\" && isEmpty(pages)) return null;\n return (\n \n );\n })}\n \n \n );\n}\n\nexport default TypeSelector;\n","import React, { useEffect, useState } from \"react\";\n\nimport More from \"./form/types/More\";\nimport Default from \"./form/types/Default\";\nimport Link from \"./form/types/Link\";\nimport IconSelection from \"./IconSelection\";\nimport TypeSelector from \"./form/TypeSelector\";\nimport Page from \"./form/types/Page\";\nimport { Item } from \"../../../@types/appNavigation\";\nimport Activitystream from \"./form/types/Activitystream\";\nimport { TreeItem } from \"react-sortable-tree\";\n\ntype TypeComponentLookup = {\n [moduleName: string]: ((any) => JSX.Element) | undefined;\n};\nconst TYPE_LOOKUP: TypeComponentLookup = {\n more: More,\n files: Default,\n messages: Default,\n appointments: Default,\n pages: Default,\n activitystreams: Default,\n search: Default,\n directory: Default,\n settings: Default,\n link: Link,\n page: Page,\n activitystream: Activitystream,\n default: Default,\n};\n\ntype Props = {\n item: TreeItem & {\n changedToDefault?: boolean;\n type: any;\n options: { items: (TreeItem | Item)[] };\n };\n unusedDefaults: (TreeItem | Item)[];\n changeActiveNode: (item: TreeItem) => void;\n changeEntryPoint: (item: TreeItem, checked: boolean) => void;\n};\n\nfunction ItemForm({\n item,\n unusedDefaults,\n changeActiveNode,\n changeEntryPoint,\n}: Props) {\n const TypeForm = TYPE_LOOKUP[item.type] || Default;\n const [entryPoint, setEntryPoint] = useState(item?.isEntryPoint || false);\n\n useEffect(() => {\n setEntryPoint(item?.isEntryPoint || false);\n }, [item]);\n\n return item ? (\n
    \n
    \n {item.type != \"more\" && (\n {\n changeActiveNode({\n ...item,\n ...changedItem,\n });\n }}\n />\n )}\n changeActiveNode({ ...item, ...props })}\n />\n \n changeActiveNode({ ...item, label: e.target.value })}\n />\n {item?.isDefault && (\n

    \n {I18n.t(\"js.administration.app_navigation_items.edit.hint_no_edit\")}\n

    \n )}\n {!item?.isDefault && (\n changeActiveNode({ ...item, icon })}\n disabled={item.isDefault}\n />\n )}\n {item.type !== \"more\" && item.type !== \"link\" && (\n \n )}\n \n
    \n ) : (\n

    {I18n.t(\"js.administration.app_navigation_items.edit.hint\")}

    \n );\n}\n\nexport default ItemForm;\n","import { map } from \"lodash\";\nimport React from \"react\";\nimport { MoreOptions } from \"../../../../../@types/appNavigation\";\n\nfunction More({ options }: { options?: MoreOptions }) {\n return (\n
    \n

    {I18n.t(\"js.administration.app_navigation_items.edit.more.label\")}

    \n
      \n {map(options?.items, (i) => (\n
    • {i.label}
    • \n ))}\n
    \n

    {I18n.t(\"js.administration.app_navigation_items.edit.more.hint\")}

    \n
    \n );\n}\n\nexport default More;\n","import React, { useEffect, useState } from \"react\";\nimport { find, isEmpty, map } from \"lodash\";\nimport { usePages } from \"../../../../../hooks/administration/appNavigation\";\nimport {\n Page as PageType,\n PageOptions,\n} from \"../../../../../@types/appNavigation\";\n\ntype Props = {\n options: PageOptions;\n onChange: (props: { label: string; options: PageOptions }) => void;\n};\n\nfunction Page({ options, onChange }: Props) {\n const { data: pages, isLoading } = usePages();\n const [selectedPage, selectPage] = useState(options?.page);\n\n useEffect(() => {\n if (pages && isEmpty(options?.page)) {\n onChange({\n label: pages[0].name,\n options: { page: pages[0] },\n });\n }\n }, [pages]);\n\n return (\n <>\n {isLoading ? (\n

    \n {\" \"}\n {I18n.t(\"js.administration.app_navigation_items.edit.loading_pages\")}\n

    \n ) : (\n {\n const page = find(pages, { slug: e.target.value });\n\n if (page) {\n selectPage(page);\n onChange({\n label: page.name,\n options: { page },\n });\n }\n }}\n value={selectedPage?.slug}\n >\n {map(pages, (page: PageType) => (\n \n ))}\n \n )}\n

    \n {I18n.t(\"js.administration.app_navigation_items.edit.hint_group_page\")}\n

    \n \n );\n}\n\nexport default Page;\n","import React, { useEffect, useState } from \"react\";\nimport { filter, find, isEmpty, map } from \"lodash\";\n\nimport {\n useActivitystreams,\n type Activitystream as ActivitystreamType,\n} from \"../../../../../hooks/administration/appNavigation\";\n\ntype Props = {\n options: { activitystream: ActivitystreamType };\n onChange: (props: {\n label: string;\n options: { activitystream: ActivitystreamType };\n }) => void;\n};\n\nfunction Activitystream({ options, onChange }: Props) {\n const { data, isLoading } = useActivitystreams();\n const streams = filter(\n data,\n (stream: ActivitystreamType) => stream?.slug !== \"all\",\n );\n const [selectedStream, selectStream] = useState(\n options?.activitystream,\n );\n\n useEffect(() => {\n if (streams && isEmpty(options?.activitystream)) {\n onChange({\n label: streams[0]?.name,\n options: { activitystream: streams[0] },\n });\n }\n }, [data]);\n\n return (\n <>\n {isLoading ? (\n

    \n \n {I18n.t(\n \"js.administration.app_navigation_items.edit.loading_activitystreams\",\n )}\n

    \n ) : (\n {\n const activitystream = find(streams, {\n slug: e.target.value,\n });\n\n if (activitystream) {\n selectStream(activitystream);\n onChange({\n label: activitystream?.name,\n options: { activitystream },\n });\n }\n }}\n value={selectedStream?.slug}\n >\n {map(streams, (stream: ActivitystreamType) => (\n \n ))}\n \n )}\n

    \n Hinweis: Wird ein Activity Stream einer Gruppe als Startseite gesetzt,\n müssen alle Nutzer Mitglied dieser Gruppe sein, da sonst eine\n Fehlermeldung bei Aufruf der Startseite erscheint.\n

    \n \n );\n}\n\nexport default Activitystream;\n","import { useQuery } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nexport type Activitystream = {\n slug: string;\n name: string;\n group_slug?: string;\n meta?: boolean;\n can?: {\n create?: boolean;\n email_recommend_activity_internally?: boolean;\n email_recommend_activity_externally?: boolean;\n create_appointment_activity?: boolean;\n };\n};\n\n/*\n * This hook is currently not used in activitystreams/Userbar to deduplicate the /activitystreams.json request\n * that is issued from app/assets/javascripts/activitystreams/index.js.coffee:23 too\n */\nexport function useActivitystreams() {\n return useQuery(\n \"activitystreams\",\n () => fetchApi(\"/activitystreams.json\"),\n { staleTime: Infinity },\n );\n}\n","import React from \"react\";\nimport { Item } from \"../../../@types/appNavigation\";\nimport { ICONS } from \"components/administration/appNavigationManager/IconSelection\";\n\nfunction NodeTitle({ node }: { node: Item }) {\n return (\n
    \n {node.label}{\" \"}\n {node.isEntryPoint && }\n
    \n );\n}\n\nexport default NodeTitle;\n","import classNames from \"classnames\";\nimport {\n findIndex,\n isEmpty,\n isEqual,\n last,\n map,\n pullAllBy,\n pullAt,\n} from \"lodash\";\nimport React, { useEffect, useState } from \"react\";\nimport SortableTree, {\n changeNodeAtPath,\n getNodeAtPath,\n removeNodeAtPath,\n TreeItem,\n} from \"react-sortable-tree\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { Item, MoreItem } from \"../../../@types/appNavigation\";\nimport {\n useAppNavigationItems,\n useUpdateAppNavigation,\n} from \"../../../hooks/administration/appNavigation\";\nimport PageTitle from \"../../layout/PageTitle\";\nimport \"../navigationManager.css\";\nimport ItemButton from \"../navigationManager/ItemButton\";\nimport ItemForm from \"./ItemForm\";\nimport NodeTitle from \"./NodeTitle\";\n\nfunction AppNavigationManager() {\n const { data, isLoading } = useAppNavigationItems();\n\n const [more, setMore] = useState({\n options: { items: [] },\n type: \"more\",\n });\n const [treeData, setTreeData] = useState<(TreeItem | Item)[]>([]);\n const [activePath, setActivePath] = useState<(number | string)[]>([]);\n const { mutate: updateItems, isLoading: isSaving } = useUpdateAppNavigation();\n\n useEffect(() => {\n if (!isEmpty(treeData)) return;\n if (!data || isEmpty(data)) return;\n\n setTreeData(data);\n\n const moreCandidate = last(data);\n if (moreCandidate?.type == \"more\") setMore(moreCandidate);\n }, [data]);\n\n function removeItemAt(\n _e: unknown,\n path: (string | number)[],\n node: TreeItem,\n ) {\n setActivePath([]);\n const newTreeData = removeNodeAtPath({\n treeData: treeData,\n path,\n getNodeKey,\n });\n\n if (node.isEntryPoint) {\n changeEntryPoint(node, false, newTreeData);\n } else {\n setTreeData(newTreeData);\n }\n\n moveItemToMore(node);\n }\n\n function changeActiveNode(newNode: TreeItem) {\n const activeNode = getActiveNode();\n\n if (activeNode?.id !== newNode.id) {\n setActivePath([newNode.id]);\n\n if (newNode.isDefault) {\n removeItemFromMore(newNode);\n }\n\n if (activeNode?.isDefault) {\n moveItemToMore(activeNode);\n }\n }\n\n const newTreeData = changeNodeAtPath({\n treeData,\n path: activePath,\n getNodeKey,\n newNode,\n });\n\n if (activeNode?.isEntryPoint && newNode.type === \"link\") {\n changeEntryPoint(activeNode, false, newTreeData);\n } else {\n // set entry point if none of the other items is\n if (\n findIndex(\n newTreeData,\n (data) => data.isEntryPoint && data.id !== newNode.id,\n ) === -1\n ) {\n changeEntryPoint(newNode, true, newTreeData);\n } else {\n setTreeData(newTreeData);\n }\n }\n }\n\n function moveItemToMore(item: TreeItem) {\n if (item?.isDefault) {\n const newMore = more;\n newMore.options.items.push({ ...item, isEntryPoint: false });\n\n setMore(newMore);\n }\n }\n\n function removeItemFromMore(item: TreeItem) {\n const newMore = more;\n\n pullAllBy(newMore.options.items, [{ id: item.id }], \"id\");\n\n setMore(newMore);\n }\n\n function addItem() {\n const data = treeData;\n const more = pullAt(data, [treeData.length - 1]);\n\n const newItem = {\n id: uuidv4(),\n label: I18n.t(\"js.administration.app_navigation_items.edit.new_link\"),\n type: \"link\",\n icon: \"link\",\n isEntryPoint: false,\n isDefault: false,\n options: { url: \"\" },\n };\n\n setTreeData([...data, newItem, ...more]);\n\n const path = [newItem.id];\n setActivePath(path);\n }\n\n function itemButtons(node: TreeItem, path: (number | string)[]) {\n const buttons: JSX.Element[] = [];\n\n if (node.type !== \"more\") {\n buttons.push(\n removeItemAt(e, path, node)}\n icon=\"fa-regular fa-trash\"\n buttonClass=\"btn-danger\"\n />,\n );\n }\n\n return buttons;\n }\n\n const getNodeKey = ({ node }: { node: TreeItem }) => node.id;\n\n function getActiveNode() {\n const node = getNodeAtPath({\n treeData: treeData,\n path: activePath,\n getNodeKey,\n });\n return node && node.treeIndex > -1 ? node.node : null;\n }\n\n function changeEntryPoint(\n item: TreeItem,\n checked: boolean,\n changedTreeData?: TreeItem[],\n ) {\n const newTreeData = map(changedTreeData || treeData, (data, index) => ({\n ...data,\n isEntryPoint:\n checked && item.id === data.id // set item as entry point if it is checked\n ? true\n : !checked &&\n index ===\n findIndex(\n changedTreeData || treeData,\n (data) =>\n data.type !== \"link\" &&\n data.type !== \"more\" &&\n data.id !== item.id,\n ) // set first item (not link or more) as entry point if item is unchecked\n ? true\n : false, // reset all others to false (to avoid more than one entry point)\n }));\n\n setTreeData(newTreeData);\n }\n\n function submit() {\n updateItems({ body: { items: treeData } });\n }\n\n const hasNoEntryPointItem =\n findIndex(treeData, { isEntryPoint: true }) === -1;\n\n const activeNode = getActiveNode();\n\n return (\n
    \n \n
    \n \n {I18n.t(\"js.administration.navigation_items.edit.save\")}\n \n
    \n {isLoading ? (\n

    \n ...Lade App-Navigation\n

    \n ) : (\n
    \n
    \n
    \n setTreeData(treeData)}\n getNodeKey={getNodeKey}\n isVirtualized={false}\n maxDepth={1}\n canDrag={({ node }) => node.type !== \"more\"}\n onMoveNode={(e) => setActivePath(e.path)}\n generateNodeProps={({ node, path }) => ({\n title: NodeTitle,\n key: node.type,\n onClick: () => setActivePath(path),\n buttons: itemButtons(node, path),\n className: classNames(\n {\n \"selected move-item\": isEqual(activePath, path),\n \"not-empty-field\": node.label || isSaving,\n \"empty-field\": !node.label && !isSaving,\n },\n \"content-item\",\n ),\n })}\n />\n \n \n {I18n.t(\"js.administration.navigation_items.edit.add_link\")}\n \n {hasNoEntryPointItem && (\n

    \n {I18n.t(\n \"js.administration.app_navigation_items.edit.hint_entry_point_needed\",\n )}\n

    \n )}\n {treeData.length < 5 && (\n

    \n {I18n.t(\n \"js.administration.app_navigation_items.edit.hint_five_navigation_items_needed\",\n )}\n

    \n )}\n
    \n
    \n {activeNode && (\n \n )}\n
    \n
    \n
    \n )}\n
    \n );\n}\n\nexport default AppNavigationManager;\n","import React from \"react\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport { ContextPageTitle } from \"components/layout/PageTitle\";\nimport GroupNavigation from \"components/layout/GroupNavigation\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\nimport MarkdownTranslation from \"components/shared/MarkdownTranslation\";\n\nexport default function GroupAdministrationMainPage() {\n const { groupSlug } = useParams();\n const group = useSelector((state: State) =>\n groupSlug ? state.groups.bySlug[groupSlug] : null,\n );\n\n return (\n <>\n \n \n {group?.hidden_main_group ? (\n \n ) : (\n \n )}\n \n );\n}\n","import React, { lazy, Suspense } from \"react\";\nimport { RouteObject, useParams } from \"helpers/tixxt-router\";\nimport NetworkSettings from \"./networkSettings\";\nimport NavigationManager from \"./NavigationManager\";\nimport GroupCategorySorter from \"./GroupCategorySorter\";\nimport MembershipEdit from \"./MembershipEdit\";\nimport MembershipNew from \"./MembershipNew\";\nimport LegalTextEdit from \"../administration/legalTexts/LegalTextEdit\";\nimport LegalTextIndex from \"../administration/legalTexts/LegalTextIndex\";\nimport LegalTextNew from \"../administration/legalTexts/LegalTextNew\";\nimport LegalTextVersions from \"../administration/legalTexts/LegalTextVersions\";\nimport ImprintEdit from \"../administration/imprints/ImprintEdit\";\nimport AppNavigationManager from \"./appNavigationManager\";\nimport { convertRoutes } from \"components/tixxt/BackboneFeature\";\nimport GroupAdministrationMainPage from \"components/administration/GroupAdministrationMainPage\";\n\nconst DesignsOverviewPage = lazy(\n () => import(\"./designManager/DesignsOverviewPage\"),\n);\nconst DesignsOverviewLightPage = lazy(\n () => import(\"./designManagerLight/DesignsOverviewLightPage\"),\n);\nconst DesignManagerPage = lazy(\n () => import(\"./designManager/DesignManagerPage\"),\n);\nconst DesignManagerLightPage = lazy(\n () => import(\"./designManagerLight/DesignManagerLightPage\"),\n);\n\nconst StatisticsPage = lazy(() => import(\"./statistics/StatisticsPage\"));\nconst TagsManagerPage = lazy(() => import(\"./tags/TagsManagerPage\"));\n\nfunction Params({ children }) {\n const params = useParams();\n return children(params);\n}\n\nconst backboneRoutes: RouteObject[] = convertRoutes({\n feature: \"Administration\",\n featureRoutes: {\n \"group-categories/:group_category_id/administration/groups\":\n \"editSectionGroups\",\n \"administration/groups\": \"editGroups\",\n \"(groups/:group_slug/)administration/members\": \"editMembers\",\n \"administration/members/:id/group-memberships\":\n \"editMemberGroupMemberships\",\n \"(groups/:group_slug/)administration/membership_roles\":\n \"manageMembershipRoles\",\n \"(groups/:group_slug/)administration/consumers\": \"consumers\",\n \"administration/consumers/new\": \"newConsumer\",\n \"administration/consumers/:id/edit\": \"editConsumer\",\n \"administration/consumers/:id/group-memberships\":\n \"editConsumerGroupMemberships\",\n \"administration/group-categories/new\": \"newGroupCategory\",\n \"administration/group-categories/:id/edit\": \"editGroupCategory\",\n \"administration/abbreviations\": \"abbreviations\",\n \"administration/abbreviations/new\": \"newAbbreviation\",\n \"administration/abbreviations/:id/edit\": \"editAbbreviation\",\n \"(groups/:group_slug/)administration/widgetbars\": \"widgetbarIndex\",\n \"(groups/:group_slug/)administration/widgetbars/:slug/edit\":\n \"widgetbarEdit\",\n \"groups/:group_slug/administration/organisation\": \"organisationMain\",\n \"groups/:group_slug/administration/organisation/group-memberships\":\n \"organisationGroups\",\n \"groups/:group_slug/administration/organisation/group-memberships/:id\":\n \"organisationGroupMemberships\",\n \"groups/:group_slug/administration/organisation/members\":\n \"organisationMembers\",\n \"groups/:group_slug/administration/organisation/members/new\":\n \"newOrganisationMember\",\n \"groups/:group_slug/administration/organisation/edit\":\n \"organisationProfile\",\n \"groups/:group_slug/administration/organisation/feedback\":\n \"organisationFeedback\",\n \"administration/industrials\": \"industrials\",\n \"administration/industrials/new\": \"newIndustrial\",\n \"administration/industrials/:id/edit\": \"editIndustrial\",\n },\n});\n\nconst reactRoutes: RouteObject[] = [\n { path: \"/administration/settings/edit\", element: },\n {\n path: \"/administration/navigation/edit\",\n element: ,\n },\n {\n path: \"/administration/app_navigation/edit\",\n element: ,\n },\n {\n path: \"/administration/group-categories-order/edit\",\n element: ,\n },\n {\n path: \"/administration/members/:membershipId/edit\",\n element: ,\n },\n { path: \"/administration/members/new\", element: },\n { path: \"/administration/legal_texts\", element: },\n {\n path: \"/administration/legal_texts/:legalTextId/edit\",\n element: ,\n },\n { path: \"/administration/legal_texts/new\", element: },\n {\n path: \"/administration/legal_texts/:legalTextId\",\n element: ,\n },\n { path: \"/administration/imprint/edit\", element: },\n {\n path: \"/administration/statistics\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/administration/designs\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/administration/designs/:id/edit\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/group-categories/:groupCategoryId/administration/designs\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/group-categories/:groupCategoryId/administration/designs/:designId/edit\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/administration/tags\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/groups/:groupSlug/administration\",\n element: ,\n },\n {\n path: \"/groups/:groupSlug/administration/designs\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/groups/:groupSlug/administration/designs/:designId/edit\",\n element: (\n \n \n \n ),\n },\n {\n path: \"/groups/:groupSlug/administration/navigation/edit\",\n element: (\n \n {({ groupSlug }) => }\n \n ),\n },\n {\n path: \"/groups/:groupSlug/administration/statistics\",\n element: (\n \n \n \n ),\n },\n];\nexport default backboneRoutes.concat(reactRoutes);\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport BackboneFeature from \"components/tixxt/BackboneFeature\";\n\nconst directoryRoutes: RouteObject[] = [\n {\n path: \"/directory\",\n element: (\n \n ),\n },\n {\n path: \"/directory/:category_id\",\n element: (\n \n ),\n },\n {\n path: \"/members\",\n element: (\n \n ),\n },\n {\n path: \"/groups/:group_id/directory\",\n element: (\n \n ),\n },\n {\n path: \"/groups/:group_id/directory/:category_id\",\n element: (\n \n ),\n },\n {\n path: \"/groups/:group_id/members\",\n element: (\n \n ),\n },\n];\n\nexport default directoryRoutes;\n","import React from \"react\";\nimport { useStore, useSelector } from \"react-redux\";\nimport { SubmissionError } from \"redux-form\";\nimport { useParams } from \"helpers/tixxt-router\";\n\nimport { selectNetworkId } from \"selectors/environment\";\nimport { updateMembership } from \"actions/memberships\";\nimport persistItem from \"helpers/items/persistItem\";\n\nimport MembershipForm from \"./MembershipForm\";\nimport { useLoadApp } from \"../appCreator/api\";\n\nexport default function EditMembership() {\n const { membershipId } = useParams();\n const networkId = useSelector(selectNetworkId);\n const externalAppId = `profile:${networkId}`;\n const externalItemId = membershipId;\n const store = useStore();\n const { data: app } = useLoadApp({\n externalAppId,\n });\n\n const onSubmit = async (values, dispatch) => {\n await persistItem(app, store.dispatch, {\n externalAppId,\n externalItemId,\n values,\n });\n\n const membershipResult = await dispatch(updateMembership({ membershipId }));\n if (membershipResult.error) throw new SubmissionError();\n };\n\n const onSubmitSuccess = () => {\n location.replace(`/members/${membershipId}`);\n toastr.success(I18n.t(\"js.saving_successful\"));\n };\n\n return (\n \n );\n}\n","import React, { useCallback } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { includes, mapValues, pickBy } from \"lodash\";\nimport { selectNetworkId } from \"selectors/environment\";\nimport MembershipForm from \"./MembershipForm\";\nimport { fetchApi } from \"../../helpers/reactQueryApi\";\n\nconst changeRequestsProfileFields =\n window.Preload.current_network.config.memberships?.change_requests\n ?.profile_fields;\n\nexport default function NewChangeRequest() {\n const membershipId = window.Preload.current_member.id;\n const networkId = useSelector(selectNetworkId);\n const externalAppId = `profile:${networkId}`;\n const externalItemId = membershipId;\n const filterProperties = useCallback(\n ({ name }) => includes(changeRequestsProfileFields, name),\n [],\n );\n const mapProperties = useCallback(\n (prop) => ({ ...prop, can: { update: true } }),\n [],\n );\n const transformItem = useCallback(\n (item) => ({ ...item, can: mapValues(item.can, () => true) }),\n [],\n );\n\n const onSubmit = async (values) => {\n const body = pickBy(values, (value, name) => filterProperties({ name }));\n return fetchApi(`/change_requests`, {\n method: \"POST\",\n body,\n });\n };\n\n const onSubmitSuccess = () => {\n location.replace(`/members/${membershipId}`);\n toastr.success(I18n.t(\"js.saving_successful\"));\n };\n\n return (\n \n );\n}\n","import React from \"react\";\nimport { map, startsWith } from \"lodash\";\nimport classnames from \"classnames\";\n\nimport ControlGroup from \"./ControlGroup\";\nimport CheckboxField from \"./CheckboxField\";\nimport Hint from \"components/shared/fields/Hint\";\n\ninterface CheckboxFieldsProps {\n name: string;\n label?: string;\n required?: boolean;\n options: Array<{\n value: boolean | string;\n label: string;\n disabled?: boolean;\n hint?: string;\n }>;\n multiple?: boolean;\n hint?: string;\n disabled?: boolean;\n}\n\nfunction CheckboxFields({\n name,\n label,\n required,\n options,\n multiple,\n hint,\n disabled,\n}: CheckboxFieldsProps) {\n return (\n \n {map(options, (option) => {\n return (\n \n );\n })}\n \n \n );\n}\n\nexport default CheckboxFields;\n","import { change, formValueSelector } from \"redux-form\";\nimport { connect } from \"react-redux\";\nimport React, { Fragment, useEffect, useRef } from \"react\";\nimport CheckboxFields from \"../../shared/fields/CheckboxFields\";\nimport SelectionField from \"../../appCreator/properties/edit/SelectionField\";\nimport PropTypes from \"prop-types\";\nimport InfoText from \"../../shared/InfoText\";\nimport CheckboxField from \"../../shared/fields/CheckboxField\";\nimport { get } from \"lodash\";\n\nconst selector = formValueSelector(\"editMembershipSettings\");\nconst DigestSettings = connect((state, { configCategory }) => ({\n switchValue: selector(state, `${configCategory}.switch`),\n}))(({ configCategory, switchValue, conditions, dispatch }) => {\n const isMounted = useRef(false);\n const groupOptions = Tixxt.currentMember\n .groups()\n .map((group) => ({\n value: group.get(\"id\"),\n label: group.get(\"name\"),\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n\n useEffect(() => {\n if (isMounted.current) {\n if (switchValue === \"selected_groups\") {\n dispatch(\n change(\n \"editMembershipSettings\",\n `${configCategory}.group_ids`,\n groupOptions.map((group) => group.value),\n ),\n );\n }\n } else {\n isMounted.current = true;\n }\n }, [switchValue, configCategory]);\n\n return (\n \n

    {I18n.t(`js.memberships.settings.${configCategory}.title`)}

    \n {get(conditions, [\"email_daily_digests\", \"include_network_level\"]) &&\n configCategory === \"email_daily_digests\" ? (\n

    \n {I18n.t(\n `js.memberships.settings.${configCategory}.description_with_network`,\n )}\n

    \n ) : (\n

    {I18n.t(`js.memberships.settings.${configCategory}.description`)}

    \n )}\n \n {switchValue === \"selected_groups\" ? (\n
    \n \n \n
    \n \n
    \n
    \n ) : null}\n {get(conditions, [\"email_daily_digests\", \"include_network_level\"]) &&\n configCategory === \"email_daily_digests\" &&\n switchValue !== \"disabled\" ? (\n
    \n
    \n \n
    \n
    \n ) : null}\n
    \n );\n});\n\nDigestSettings.propTypes = {\n configCategory: PropTypes.string,\n};\n\nexport default DigestSettings;\n","import React, { Fragment } from \"react\";\nimport CheckboxFields from \"../../shared/fields/CheckboxFields\";\nimport { compact, includes, get, map } from \"lodash\";\nimport PropTypes from \"prop-types\";\n\nconst mapOptions =\n (configCategory, disabled, conditions) => (_value, config) =>\n get(conditions, [configCategory, config], true)\n ? {\n label: `js.memberships.settings.${configCategory}.checkboxes.${config}`,\n value: config,\n disabled: includes(disabled[configCategory], config),\n }\n : null;\n\nfunction EmailConfigList({ settings, configCategory, conditions, disabled }) {\n return (\n \n

    {I18n.t(`js.memberships.settings.${configCategory}.title`)}

    \n

    {I18n.t(`js.memberships.settings.${configCategory}.description`)}

    \n \n
    \n );\n}\n\nEmailConfigList.propTypes = {\n settings: PropTypes.object,\n configCategory: PropTypes.string,\n conditions: PropTypes.object,\n disabled: PropTypes.object,\n};\n\nexport default EmailConfigList;\n","import React, { useEffect, useState } from \"react\";\nimport { isEmpty, map } from \"lodash\";\nimport CheckboxFields from \"components/shared/fields/CheckboxFields\";\nimport {\n useFetchDeviceSettings,\n updateDeviceSettings,\n} from \"components/memberships/api\";\nimport ReduxForm from \"components/shared/reduxForm\";\n\nexport default function PushNotificationSettingsForm() {\n const [deviceId, setDeviceUniqueId] = useState(\"\");\n const [deviceName, setDeviceName] = useState(\"\");\n\n const { data, refetch } = useFetchDeviceSettings(deviceId);\n\n function getDeviceUniqueId() {\n window.bridge?.getDeviceUniqueId(({ id, name }) => {\n setDeviceUniqueId(id);\n setDeviceName(name);\n });\n }\n\n useEffect(() => {\n getDeviceUniqueId();\n });\n\n useEffect(() => {\n deviceId !== \"\" && refetch();\n }, [deviceId]);\n\n function retryDeviceLoading() {\n if (deviceId != \"\" && isEmpty(data)) {\n window.bridge?.askToRegisterDevice();\n } else {\n getDeviceUniqueId();\n }\n }\n\n function onSubmit(values, dispatch) {\n dispatch(updateDeviceSettings({ deviceId, notifications: values })).then(\n () => Promise.resolve(\"Submission successful\"),\n );\n }\n\n return deviceId != \"\" && !isEmpty(data) ? (\n toastr.success(I18n.t(\"js.saving_successful\"))}\n onSubmitFail={() => toastr.error(I18n.t(\"js.saving_failure\"))}\n allowSaveWithoutChange={true}\n onCancel={window.isApp ? () => window.bridge?.goBack() : undefined}\n >\n
    \n

    {I18n.t(\"js.memberships.settings.push_notifications.tab\")}

    \n
    \n {map(data.notifications, (settings, label) => {\n return (\n
    \n ({\n label: I18n.t(\n `js.memberships.settings.push_notifications.${label}.${key}`,\n ),\n value: key,\n }))}\n multiple\n />\n
    \n );\n })}\n \n \n ) : (\n
    \n

    {I18n.t(\"js.memberships.settings.push_notifications.no_settings\")}

    \n \n {I18n.t(\"js.generic_try_again\")}\n \n
    \n );\n}\n","import { useQuery } from \"react-query\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\n\nexport function useFetchDeviceSettings(deviceId: string, options = {}) {\n return useQuery(\n [\"deviceSettings\", deviceId],\n () => fetchApi(`/api/v1/devices/${deviceId}/settings`),\n options,\n );\n}\n\nexport function updateDeviceSettings({ deviceId, ...body }) {\n return fetchApi(`/api/v1/devices/${deviceId}/settings`, {\n method: \"POST\",\n body,\n });\n}\n","import React, { Fragment, useState, useEffect } from \"react\";\nimport {\n isEmpty,\n map,\n pickBy,\n keys,\n get,\n cloneDeep,\n snakeCase,\n compact,\n includes,\n filter,\n} from \"lodash\";\nimport { SubmissionError } from \"redux-form\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport { useQuery } from \"react-query\";\nimport Loading from \"components/shared/Loading\";\nimport classNames from \"classnames\";\nimport { updateMembershipSettings } from \"actions/memberships\";\n\nimport ReduxForm from \"components/shared/reduxForm\";\nimport PageTitle from \"components/layout/PageTitle\";\nimport DigestSettings from \"components/memberships/membershipSettings/DigestSettings\";\nimport EmailConfigList from \"components/memberships/membershipSettings/EmailConfigList\";\nimport PushNotificationSettingsForm from \"components/memberships/PushNotificationSettingsForm\";\n\nconst transform2FrontendState = (state) => {\n const newState = cloneDeep(state);\n map([\"email_digests\", \"email_daily_digests\"], (key) => {\n if (newState[key].enabled) {\n if (newState[key].group_ids === \"all\") {\n newState[key].switch = \"all\";\n } else {\n newState[key].switch = \"selected_groups\";\n }\n } else {\n newState[key].switch = \"disabled\";\n }\n });\n\n return newState;\n};\n\nconst transform2BackendState = (state) => {\n const newState = cloneDeep(state);\n map([\"email_digests\", \"email_daily_digests\"], (key) => {\n switch (newState[key].switch) {\n case \"all\":\n newState[key].enabled = true;\n newState[key].group_ids = [\"all\"];\n break;\n case \"selected_groups\":\n newState[key].enabled = true;\n break;\n case \"disabled\":\n newState[key].enabled = false;\n break;\n }\n });\n map(\n [\"email_subscriptions\", \"email_notifications\", \"email_admin_notifications\"],\n (key) => {\n newState[key] = keys(pickBy(newState[key]));\n },\n );\n\n return newState;\n};\n\nconst createOnSubmit =\n (membershipId, notificationsWereDeactivated) => async (values, dispatch) => {\n const membershipSettingsResult = await dispatch(\n updateMembershipSettings({\n membershipId,\n body: transform2BackendState(values),\n }),\n );\n\n if (notificationsWereDeactivated) location.reload();\n if (membershipSettingsResult.error)\n throw new SubmissionError(membershipSettingsResult.error);\n };\n\nconst onSubmitSuccess = () => {\n toastr.success(I18n.t(\"js.saving_successful\"));\n};\n\nexport default function EditMembershipSettings() {\n const { membershipId } = useParams();\n\n const { isLoading: loading, data } = useQuery(\n `/members/${membershipId}/settings`,\n );\n\n const { settings, conditions, disabled } = (data || {}) as any;\n\n const showEmailDigests =\n get(conditions, [\"email_digests\", \"enabled\"], true) &&\n get(conditions, [\"email_digests\", \"set\"], true);\n\n const showEmailDailyDigests = get(\n conditions,\n [\"email_daily_digests\", \"enabled\"],\n true,\n );\n\n useEffect(() => {\n if (!showEmailDigests && !showEmailDailyDigests) {\n setActiveTab(\"email-subscriptions\");\n }\n }, [showEmailDigests, showEmailDailyDigests]);\n\n const [activeTab, setActiveTab] = useState(\"email-digests\");\n\n const notificationsDeactivated = get(\n conditions,\n [\"email_notifications_disabled\"],\n false,\n );\n\n const styles = {\n overflow: \"visible\",\n marginBottom: \"18px\",\n };\n\n let tabs = [\n \"email-digests\",\n \"email-daily-digests\",\n \"email-subscriptions\",\n \"email-notifications\",\n \"email-newsletter\",\n \"email-admin-notifications\",\n \"push-notifications\",\n ];\n\n tabs = compact(\n map(tabs, (tab) => {\n if (validateTab(tab)) return tab;\n }),\n );\n\n function validateTab(tab) {\n switch (tab) {\n case \"email-digests\":\n return showEmailDigests;\n case \"email-daily-digests\":\n return showEmailDailyDigests;\n case \"email-newsletter\":\n return get(conditions, [\"email_newsletter\", \"enabled\"], false);\n case \"email-admin-notifications\":\n return get(conditions, [\"email_admin_notifications\", \"enabled\"], true);\n case \"push-notifications\":\n return window.isApp;\n default:\n return true;\n }\n }\n\n if (loading || !data) return ;\n\n return (\n \n \n {loading || isEmpty(settings) ? (\n
    \n \n {I18n.t(\"js.loading\")}\n
    \n ) : (\n
    \n
      \n {/**** Header ****/}\n {notificationsDeactivated ? (\n

      \n {I18n.t(\n \"js.memberships.settings.email_notifications.bouncelist_hint\",\n )}\n

      \n ) : (\n map(tabs, (tab, index) => (\n \n {\n e.preventDefault();\n setActiveTab(tab);\n }}\n >\n {I18n.t(`js.memberships.settings.${snakeCase(tab)}.tab`)}\n \n \n ))\n )}\n
    \n {activeTab != \"push-notifications\" && (\n toastr.error(I18n.t(\"js.saving_failure\"))}\n submitText={\n notificationsDeactivated\n ? I18n.t(\n \"js.memberships.settings.email_notifications.activate\",\n )\n : undefined\n }\n allowSaveWithoutChange={notificationsDeactivated}\n onCancel={\n window.isApp ? () => window.bridge?.goBack() : undefined\n }\n >\n {notificationsDeactivated ? (\n

    \n {I18n.t(\n \"js.memberships.settings.email_notifications.bouncelist_hint\",\n )}\n

    \n ) : (\n
    \n {/**** Content ****/}\n {map(\n filter(tabs, (t) => t !== \"push-notifications\"),\n (tab) => (\n \n {includes(\n [\"email-digests\", \"email-daily-digests\"],\n tab,\n ) ? (\n \n ) : (\n \n )}\n
    \n ),\n )}\n
    \n )}\n \n )}\n {window.isApp && activeTab == \"push-notifications\" && (\n
    \n \n \n
    \n \n )}\n \n )}\n
    \n );\n}\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport EditMembership from \"./EditMembership\";\nimport NewChangeRequest from \"./NewChangeRequest\";\nimport EditMembershipSettings from \"./EditMembershipSettings\";\nimport BackboneFeature from \"components/tixxt/BackboneFeature\";\n\nconst membershipRoutes: RouteObject[] = [\n {\n path: \"/members/:membershipId/edit\",\n element: ,\n forceTurbo: true,\n },\n {\n path: \"/members/:membershipId/change_requests/new\", // deprecated\n element: ,\n },\n {\n path: \"/change_requests/new\",\n element: ,\n },\n {\n path: \"/members/:membershipId/settings/edit\",\n element: ,\n },\n {\n path: \"/members/:id/activities\",\n element: (\n \n ),\n },\n {\n path: \"/members/:id/likes\",\n element: (\n \n ),\n },\n];\n\nexport default membershipRoutes;\n","import React from \"react\";\nimport { Field, FormSection } from \"redux-form\";\nimport PropTypes from \"prop-types\";\n\nimport BasicItemForm from \"../../appCreator/items/form/BasicItemForm\";\nimport TextField from \"../../shared/fields/TextField\";\n\nfunction BasicSettings({\n externalAppId,\n externalItemId,\n initialize,\n initialValues,\n}) {\n return (\n
    \n

    {I18n.t(\"js.groups.edit.basic_settings\")}

    \n \n \n\n \n \n initialize({ ...initialValues, profile }, options)\n }\n />\n \n
    \n );\n}\n\nexport default BasicSettings;\n\nBasicSettings.propTypes = {\n externalAppId: PropTypes.string,\n externalItemId: PropTypes.string,\n initialize: PropTypes.func,\n initialValues: PropTypes.object,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useSelector } from \"react-redux\";\nimport { formValueSelector } from \"redux-form\";\n\nimport CheckboxField from \"components/shared/fields/CheckboxField\";\nimport CheckboxFields from \"components/shared/fields/CheckboxFields\";\nimport { Controls } from \"components/shared/fields/ControlGroup\";\n\nfunction GroupAccess({\n sensitive,\n active_main_group,\n formName,\n can_create_hidden,\n}) {\n const accessValue = useSelector((state) =>\n formValueSelector(formName)(state, \"access\"),\n );\n\n const access_options = [\n {\n value: \"open\",\n label: I18n.t(\"js.groups.form.open\"),\n disabled: sensitive,\n },\n ];\n if (!active_main_group) {\n access_options.push({\n value: \"closed\",\n label: I18n.t(\"js.groups.form.closed\"),\n });\n }\n if (can_create_hidden) {\n access_options.push({\n value: \"hidden\",\n label: I18n.t(\"js.groups.form.hidden\"),\n });\n }\n\n return (\n
    \n \n {accessValue !== \"open\" ? (\n
    \n
    \n \n {accessValue == \"hidden\" ? null : (\n \n )}\n \n \n \n \n
    \n {accessValue == \"hidden\" ? null : (\n \n {I18n.t(\"js.groups.form.moderated_membership\")}\n \n )}\n
    \n ) : null}\n
    \n );\n}\nGroupAccess.propTypes = {\n access: PropTypes.string,\n sensitive: PropTypes.bool,\n formName: PropTypes.string,\n active_main_group: PropTypes.bool,\n can_create_hidden: PropTypes.bool,\n};\n\nexport default GroupAccess;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport GroupAccess from \"./GroupAccess\";\n\nfunction JoinSettings({ active_main_group, access, sensitive, can, formName }) {\n return (\n <>\n

    {I18n.t(\"js.groups.edit.join_settings\")}

    \n \n \n );\n}\n\nexport default JoinSettings;\n\nJoinSettings.propTypes = {\n active_main_group: PropTypes.bool,\n can: PropTypes.shape({\n create_hidden: PropTypes.bool,\n }),\n access: PropTypes.string,\n sensitive: PropTypes.bool,\n formName: PropTypes.string,\n};\n","import React, { ReactNode, Children } from \"react\";\n\ninterface MiscSettingsProps {\n settings: ReactNode[];\n}\n\nfunction MiscSettings({ settings }: MiscSettingsProps) {\n return (\n <>\n

    {I18n.t(\"js.groups.edit.misc_settings\")}

    \n {Children.map(settings, (setting) => (\n <>{setting}\n ))}\n \n );\n}\n\nexport default MiscSettings;\n","import React from \"react\";\nimport CheckboxFields from \"../../shared/fields/CheckboxFields\";\n\nfunction ChatSettings() {\n return (\n \n );\n}\n\nexport default ChatSettings;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useSelector } from \"react-redux\";\nimport { get } from \"lodash\";\nimport ReduxForm from \"components/shared/reduxForm\";\nimport classNames from \"classnames\";\nimport { selectNetworkId } from \"selectors/environment\";\nimport BasicSettings from \"./BasicSettings\";\nimport JoinSettings from \"./JoinSettings\";\nimport MiscSettings from \"./MiscSettings\";\nimport ChatSettings from \"./ChatSettings\";\n\nfunction GroupForm({\n id,\n name,\n group_category_id,\n access,\n sensitive,\n active_main_group,\n can,\n moderated_join,\n members_can_invite,\n chat,\n onSubmit,\n formName,\n groupCategoryName,\n}) {\n const [activeTab, setActiveTab] = useState(\"basic\");\n const networkId = useSelector(selectNetworkId);\n const externalAppId = `network_${networkId}:group_category_${group_category_id}:group_profile`;\n const externalItemId = id;\n const miscSettings = [];\n\n if (chat) {\n miscSettings.push();\n }\n\n return (\n \n onSubmit(values, dispatch, {\n ...props,\n id,\n externalAppId,\n externalItemId,\n })\n }\n onSubmitSuccess={({ payload, meta }) => {\n toastr.success(\n I18n.t(id ? \"js.groups.update.success\" : \"js.groups.create.success\", {\n group: get(meta, [\"body\", \"group\", \"name\"]),\n }),\n );\n location.replace(\n `/groups/${payload.groupSlug}/activitystreams/${payload.groupSlug}`,\n );\n }}\n onSubmitFail={() =>\n toastr.error(\n I18n.t(id ? \"js.groups.update.failure\" : \"js.groups.create.failure\", {\n group: name || groupCategoryName,\n }),\n )\n }\n className=\"form-horizontal\"\n renderChildren={({ initialize, initialValues }) => (\n <>\n
      \n
    • \n {\n e.preventDefault();\n setActiveTab(\"basic\");\n }}\n >\n {I18n.t(\"js.groups.edit.basic_settings\")}\n \n
    • \n
    • \n {\n e.preventDefault();\n setActiveTab(\"join\");\n }}\n >\n {I18n.t(\"js.groups.edit.join_settings\")}\n \n
    • \n {miscSettings.length > 0 && (\n
    • \n {\n e.preventDefault();\n setActiveTab(\"misc\");\n }}\n >\n {I18n.t(\"js.groups.edit.misc_settings\")}\n \n
    • \n )}\n
    \n
    \n \n \n
    \n \n \n \n {miscSettings.length > 0 && (\n \n \n \n )}\n \n \n )}\n />\n );\n}\n\nGroupForm.propTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n group_category_id: PropTypes.string.isRequired,\n active_main_group: PropTypes.bool,\n can: PropTypes.shape({\n create_hidden: PropTypes.bool,\n }),\n access: PropTypes.string,\n sensitive: PropTypes.bool,\n members_can_invite: PropTypes.bool,\n moderated_join: PropTypes.bool,\n profile: PropTypes.shape({\n id: PropTypes.string,\n app_id: PropTypes.string,\n values: PropTypes.shape({\n profile_image: PropTypes.object,\n teaser: PropTypes.string,\n description: PropTypes.string,\n }),\n }),\n chat: PropTypes.string,\n formName: PropTypes.string,\n onSubmit: PropTypes.func,\n groupCategoryName: PropTypes.string,\n};\n\nexport default GroupForm;\n","import { fetchApi } from \"helpers/reactQueryApi\";\n\nexport const fetchGroup = async (groupSlug) => {\n return await fetchApi(`/api/v1/groups/${groupSlug}`);\n};\n\nexport const fetchGroupDefaults = async (groupCategorySlug) => {\n return await fetchApi(\n `/api/v1/groups/new?group_category_slug=${groupCategorySlug}`,\n );\n};\nexport const deleteGroup = async ({ slug }) => {\n const response = await fetchApi(`/groups/${slug}`, {\n method: \"DELETE\",\n });\n\n return response;\n};\n\nexport const archiveGroup = async ({ slug, archived }) => {\n const response = await fetchApi(`/groups/${slug}/archive`, {\n method: archived ? \"DELETE\" : \"PUT\",\n });\n\n return response;\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useMutation } from \"react-query\";\nimport { archiveGroup, deleteGroup } from \"./api\";\n\nfunction EditGroupActions({ archived, can, slug, name }) {\n const { mutate: onDeleteGroup } = useMutation(deleteGroup, {\n onSuccess: ({ redirect }) => {\n toastr.success(I18n.t(\"groups.destroy.success\", { group: name }));\n // eslint-disable-next-line no-undef\n Turbo.visit(redirect, {\n action: \"replace\",\n target: document.documentElement,\n historyChanged: true,\n });\n },\n });\n\n const { mutate: onArchiveGroup } = useMutation(archiveGroup, {\n onSuccess: ({ archived, redirect }) => {\n toastr.success(\n I18n.t(\n archived\n ? \"js.groups.group.successfully_archived\"\n : \"js.groups.group.successfully_unarchived\",\n { group_name: name },\n ),\n );\n // eslint-disable-next-line no-undef\n Turbo.visit(redirect, {\n action: \"replace\",\n target: document.documentElement,\n historyChanged: true,\n });\n },\n });\n\n return (\n
    \n
    \n \n
    \n
    \n

    \n {I18n.t(\n archived\n ? \"js.groups.edit.is_archived\"\n : \"js.groups.edit.do_archive\",\n )}\n

    \n

    \n {I18n.t(\n archived\n ? \"js.groups.edit.help_do_unarchive\"\n : \"js.groups.edit.help_do_archive\",\n )}\n

    \n
    \n {\n e.preventDefault();\n window.bridge.confirm(\n I18n.t(\n archived\n ? \"js.groups.edit.confirm_unarchive\"\n : \"js.groups.edit.confirm_archive\",\n ),\n () => onArchiveGroup({ slug, archived }),\n );\n }}\n >\n {I18n.t(\n archived ? \"js.groups.edit.unarchive\" : \"js.groups.edit.archive\",\n )}\n \n {can.destroy ? (\n {\n e.preventDefault();\n window.bridge.confirm(\n I18n.t(\"js.groups.edit.confirm_delete\"),\n () => onDeleteGroup({ slug }),\n );\n }}\n >\n {I18n.t(\"js.groups.edit.delete\")}\n \n ) : null}\n
    \n
    \n
    \n );\n}\n\nEditGroupActions.propTypes = {\n archived: PropTypes.bool,\n can: PropTypes.shape({\n archive: PropTypes.bool,\n destroy: PropTypes.bool,\n }),\n slug: PropTypes.string,\n};\n\nexport default EditGroupActions;\n","import React from \"react\";\nimport { SubmissionError } from \"redux-form\";\nimport { useSelector, useStore } from \"react-redux\";\nimport { isEmpty } from \"lodash\";\nimport { useParams } from \"helpers/tixxt-router\";\nimport GroupForm from \"./form\";\nimport EditGroupActions from \"./EditGroupActions\";\nimport { updateGroup } from \"actions/groups\";\nimport persistItem from \"helpers/items/persistItem\";\nimport TixxtPageTitle from \"../layout/TixxtPageTitle\";\nimport { fetchGroup } from \"./api\";\nimport { useQuery } from \"react-query\";\nimport { selectNetworkId } from \"../../selectors/environment\";\nimport { useLoadApp } from \"../appCreator/api\";\n\nexport default function EditGroup() {\n const { groupSlug } = useParams();\n\n const { data: group } = useQuery([\"group\", groupSlug], () =>\n fetchGroup(groupSlug),\n );\n const store = useStore();\n const networkId = useSelector(selectNetworkId);\n const externalAppId = `network_${networkId}:group_category_${group?.group_category_id}:group_profile`;\n const { data: app } = useLoadApp(\n { externalAppId },\n { enabled: !!group?.group_category_id },\n );\n\n const onSubmit = async (\n values,\n dispatch,\n { externalAppId, externalItemId },\n ) => {\n const { profile, ...group } = values;\n\n await persistItem(app, store.dispatch, {\n externalAppId,\n externalItemId,\n values: profile,\n });\n\n const groupResult = await dispatch(\n updateGroup({ groupSlug, body: { group } }),\n );\n if (groupResult.error) throw new SubmissionError();\n\n return groupResult;\n };\n\n return (\n <>\n \n {!isEmpty(group) ? (\n <>\n {group.can.archive ? : null}\n {!group.archived ? (\n \n ) : null}\n \n ) : null}\n \n );\n}\n","import React, { Fragment } from \"react\";\nimport { useSelector, useStore } from \"react-redux\";\nimport { isEmpty } from \"lodash\";\nimport { SubmissionError } from \"redux-form\";\nimport { useParams } from \"helpers/tixxt-router\";\n\nimport PageTitle from \"components/layout/PageTitle\";\nimport GroupForm from \"./form\";\nimport { groupCategorySelector, selectNetworkId } from \"selectors/environment\";\nimport { createGroup } from \"actions/groups\";\n\nimport persistItem from \"helpers/items/persistItem\";\nimport { fetchGroupDefaults } from \"./api\";\nimport { useQuery } from \"react-query\";\nimport { useLoadApp } from \"../appCreator/api\";\n\nexport default function NewGroup() {\n const networkId = useSelector(selectNetworkId);\n const { groupCategorySlug } = useParams();\n const category = useSelector((state) =>\n groupCategorySelector(state, groupCategorySlug),\n );\n const store = useStore();\n\n const { data: groupDefaults, isLoading: loading } = useQuery(\n [\"groupDefaults\", groupCategorySlug],\n () => fetchGroupDefaults(groupCategorySlug),\n );\n const externalAppId = `network_${networkId}:group_category_${category.id}:group_profile`;\n const { data: app } = useLoadApp({\n externalAppId,\n });\n\n const onSubmit = async (values, dispatch, { externalAppId }) => {\n const { profile, ...group } = values;\n const { id: itemId } = await persistItem(app, store.dispatch, {\n externalAppId,\n values: profile,\n });\n\n const groupResult = await dispatch(\n createGroup({\n body: { group: { ...group, profile_id: itemId } },\n }),\n );\n if (groupResult.error) throw new SubmissionError();\n\n return groupResult;\n };\n\n return (\n \n \n {!isEmpty(groupDefaults) && !loading ? (\n \n ) : loading ? (\n \n ) : null}\n \n );\n}\n","import React, { useState } from \"react\";\nimport { get, map } from \"lodash\";\nimport { fetchApi } from \"helpers/reactQueryApi\";\nimport { useQuery } from \"react-query\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useDispatch } from \"react-redux\";\nimport { declineInvite, acceptInvite } from \"../../actions/invites\";\n\ntype Invitable = {\n id: string;\n slug: string;\n name: string;\n access: string;\n teaser?: string;\n images?: string;\n member_count?: number;\n activity_count?: number;\n};\n\ntype Author = {\n id: string;\n name: string;\n detection_profile_field?: string;\n};\n\ntype GroupInvite = {\n id: string;\n invitable: Invitable;\n author: Author;\n additional_message: string;\n};\n\ntype GroupInvites = {\n groupInvites: GroupInvite[];\n};\n\nfunction useFetchGroupInvites(options = {}) {\n return useQuery(\n [\"groupInvites\"],\n () => fetchApi(\"/api/v1/invites?filter=groups&status=open&limit=50\"),\n options,\n );\n}\n\nfunction GroupInviteActions({ groupInviteId }: { groupInviteId: string }) {\n const [inviteStatus, setInviteStatus] = useState(\"open\");\n const dispatch = useDispatch();\n\n const buttons = (\n
    \n \n dispatch(acceptInvite({ inviteId: groupInviteId })) &&\n setInviteStatus(\"accepted\")\n }\n className=\"btn btn-success\"\n aria-label=\"accept invite\"\n >\n \n {I18n.t(\"js.invites.actions.accept\")}\n \n \n dispatch(declineInvite({ inviteId: groupInviteId })) &&\n setInviteStatus(\"rejected\")\n }\n className=\"btn btn-danger\"\n aria-label=\"reject invite\"\n >\n \n {I18n.t(\"js.invites.actions.reject\")}\n \n
    \n );\n\n const hint = (\n
    \n {[\"accepted\", \"rejected\"].includes(inviteStatus)\n ? I18n.t(`js.calendars.groups.invite.${inviteStatus}`)\n : null}\n
    \n );\n\n if (inviteStatus === \"open\") {\n return buttons;\n } else {\n return hint;\n }\n}\n\nfunction GroupInvite({\n id,\n invitable,\n author,\n additional_message,\n}: GroupInvite) {\n function checkIfPresent(value) {\n return value !== undefined && value !== null;\n }\n\n return (\n
  • \n
    \n {invitable.images ? (\n \n ) : (\n \n )}\n
    \n
    \n {invitable.access === \"hidden\" ? (\n
    {invitable.name}
    \n ) : (\n \n
    \n {invitable.access === \"closed\" ? (\n \n ) : undefined}\n
    {invitable.name}
    \n
    \n \n )}\n {author.name ? (\n
    \n {I18n.t(\"js.invites.show.invited_by\")}\n \n {author.name}\n {author.detection_profile_field\n ? ` ${author.detection_profile_field}`\n : undefined}\n \n
    \n ) : undefined}\n {additional_message ? (\n
    \n
    \n {I18n.t(\"js.groups.group.personal_message\")}\n
    \n
    \n {additional_message}\n
    \n
    \n ) : undefined}\n {checkIfPresent(invitable.member_count) &&\n checkIfPresent(invitable.activity_count) ? (\n
    \n {`${\n invitable.member_count === 1\n ? I18n.t(\"js.directory.group_row.member_count.one\")\n : I18n.t(\"js.directory.group_row.member_count.other\", {\n count: invitable.member_count,\n })\n }, ${\n invitable.activity_count === 1\n ? I18n.t(\"js.directory.group_row.activity.one\")\n : I18n.t(\"js.directory.group_row.activity.other\", {\n count: invitable.activity_count,\n })\n }`}\n
    \n ) : undefined}\n {invitable.teaser ? (\n
    \n {invitable.teaser}\n
    \n ) : undefined}\n
    \n
    \n \n
    \n
  • \n );\n}\n\nexport default function GroupInvites() {\n const { isLoading, data: groupInvites } = useFetchGroupInvites();\n\n return (\n
    \n
    \n {I18n.t(\"js.groups.invites.title\")}\n
    \n
    \n {!isLoading && groupInvites && groupInvites.length > 0 ? (\n
      \n {map(groupInvites, (groupInvite: GroupInvite) => (\n \n ))}\n
    \n ) : (\n
    \n {I18n.t(\"js.directory.group_row.no_invites\")}\n
    \n )}\n
    \n
    \n );\n}\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport EditGroup from \"./EditGroup\";\nimport NewGroup from \"./NewGroup\";\nimport GroupInvites from \"./Invites\";\n\nconst groupRoutes: RouteObject[] = [\n { path: \"/groups/:groupSlug/edit\", element: , forceTurbo: true }, // groups#edit runs profile initialization and must thus be called when accessing this route\n { path: \"/groups/new/:groupCategorySlug\", element: },\n { path: \"/invites\", element: },\n];\n\nexport default groupRoutes;\n","import { createApiAction } from \"helpers/api\";\n\nexport const updateProfileStep = createApiAction({\n method: \"PUT\",\n endpoint: () => `/onboarding/profile`,\n baseType: `/ONBOARDING/PROFILE`,\n});\n","import React, { useState } from \"react\";\nimport { useSelector, useStore } from \"react-redux\";\nimport { SubmissionError } from \"redux-form\";\n\nimport persistItem from \"helpers/items/persistItem\";\nimport { updateProfileStep } from \"actions/onboarding\";\nimport { selectNetworkId, currentMemberSelector } from \"selectors/environment\";\nimport MembershipForm from \"components/memberships/MembershipForm\";\nimport { useLoadApp } from \"../appCreator/api\";\n\nfunction ProfileOnboarding() {\n const networkId = useSelector(selectNetworkId);\n const externalAppId = `profile:${networkId}`;\n const membershipId = useSelector(currentMemberSelector).id;\n const externalItemId = membershipId;\n const store = useStore();\n const [redirectUrl, setRedirectUrl] = useState(\"/\");\n const { data: app } = useLoadApp({\n externalAppId,\n });\n\n const onSubmit = async (values, dispatch) => {\n await persistItem(app, store.dispatch, {\n externalAppId,\n externalItemId,\n values,\n });\n\n const onboardingResult = await dispatch(updateProfileStep({}));\n if (onboardingResult.error) throw new SubmissionError();\n setRedirectUrl(onboardingResult.redirect_to);\n };\n\n const onSubmitSuccess = () => {\n window.location.href = redirectUrl;\n toastr.success(I18n.t(\"js.saving_successful\"));\n };\n\n return (\n \n );\n}\n\nexport default ProfileOnboarding;\n","import ProfileOnboarding from \"./ProfileOnboarding\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport React from \"react\";\n\nconst onboardingRoutes: RouteObject[] = [\n {\n path: \"/onboarding/profile\",\n element: ,\n forceTurbo: true,\n },\n];\n\nexport default onboardingRoutes;\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport BackboneFeature from \"components/tixxt/BackboneFeature\";\n\nconst invitesRoutes: RouteObject[] = [\n {\n path: \"/administration/invites/new\",\n element: (\n \n ),\n },\n {\n path: \"/groups/:group_slug/administration/invites/new\",\n element: (\n \n ),\n },\n {\n path: \"/groups/:group_slug/membership_invites/new\",\n element: (\n \n ),\n },\n];\n\n/*\n * /invites/sent is rendered in backend but requires backbone views to render modals i.e. to refresh invites\n */\nconst legacyInvitesRoutes: RouteObject[] = [\n {\n path: \"/groups/:group_slug/administration/invites/sent\",\n element: (\n \n ),\n },\n {\n path: \"/administration/invites/sent\",\n element: (\n \n ),\n },\n];\n\nexport default invitesRoutes;\nexport { legacyInvitesRoutes };\n","import React, { Suspense, lazy } from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\n\nconst MemberMapPage = lazy(() => import(\"./MemberMapPage\"));\n\nconst mapRoutes: RouteObject[] = [\n {\n path: \"/map\",\n element: (\n Loading...}>\n \n \n ),\n },\n {\n path: \"/members/map\",\n element: (\n Loading...}>\n \n \n ),\n },\n {\n path: \"/groups/:groupSlug/map\",\n element: (\n Loading...}>\n \n \n ),\n },\n];\n\nexport default mapRoutes;\n","import React, { useEffect } from \"react\";\nimport { get } from \"lodash\";\nimport { useSelector } from \"react-redux\";\nimport { useMaxHeight } from \"../../hooks/useMaxHeight\";\n\nimport ChatList from \"./ChatList\";\nimport ChatRoom from \"./ChatRoom\";\nimport ChatNew from \"./ChatNew\";\n\nimport store from \"../../store\";\nimport chatReducer from \"../../reducers/chat\";\nimport chatSaga from \"../../sagas/chat\";\n\nfunction launchChat() {\n const host = window.location.host;\n const networkUrl = `https://${host}`;\n const tokenUrl = \"/api/v1/chat_token\";\n const socketUrl = `wss://${host}/api/chat/socket`;\n\n const fetchCredentials = async () => {\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n credentials: \"include\",\n });\n return await response.json();\n };\n\n // Add chat reducer and init its state\n store.addReducers({ chat: chatReducer });\n store.dispatch({ type: \"chat/INIT\", payload: { networkUrl } });\n\n // Run the chat saga\n store.runSaga(chatSaga, { fetchCredentials, socketUrl });\n}\n\nfunction MobileAppChat() {\n const navigation = useSelector((state) => get(state, [\"chat\", \"navigation\"]));\n const connected = useSelector((state) =>\n get(state, [\"chat\", \"session\", \"connected\"]),\n );\n const authorizationError = useSelector((state) =>\n get(state, [\"chat\", \"session\", \"authorizationError\"]),\n );\n\n const style = useMaxHeight();\n useEffect(launchChat, []);\n\n window.bridge?.setPageTitle(\n I18n.t(\"js.administration.app_navigation_items.defaults.chat.label\"),\n );\n\n return (\n \n {authorizationError ? (\n
    \n {I18n.t(\"js.chat.connection_failed\")}\n
    \n ) : connected ? null : connected === false ? (\n
    \n {I18n.t(\"js.chat.reconnecting\")}\n
    \n ) : (\n
    \n {I18n.t(\"js.chat.connecting\")}\n
    \n )}\n {navigation?.route === \"root\" ? : null}\n {navigation?.route === \"showChat\" ? (\n \n ) : null}\n {navigation?.route === \"newChat\" ? : null}\n \n );\n}\n\nexport default MobileAppChat;\n","import { useNavigate } from \"helpers/tixxt-router\";\nimport { useSelector } from \"react-redux\";\nimport { useEffect } from \"react\";\n\n// TODO move to store.tsx\ntype RootState = {\n network: {\n start_page?: string;\n };\n};\n\nexport default function RedirectToStartpage() {\n const navigate = useNavigate();\n const startPage = useSelector((state: RootState) => state.network.start_page);\n\n useEffect(() => {\n if (startPage) navigate(startPage, { replace: true });\n }, []);\n\n return null;\n}\n","import activitystreamsRoutes from \"components/activitystreams/routes\";\nimport appointmentsRoutes from \"components/appointments/routes\";\nimport messagesRoutes from \"components/messages/routes\";\nimport filesRoutes from \"components/files/routes\";\nimport tasksRoutes from \"components/tasks/routes\";\nimport globalSearchRoutes from \"components/globalSearch/routes\";\nimport administrationRoutes from \"components/administration/routes\";\nimport directoryRoutes from \"components/directory/routes\";\nimport membershipRoutes from \"components/memberships/routes\";\nimport groupRoutes from \"components/groups/routes\";\nimport onboardingRoutes from \"components/onboarding/routes\";\nimport invitesRoutes from \"components/invites/routes\";\nimport mapRoutes from \"components/memberMap/routes\";\nimport chatRoutes from \"components/chat/routes\";\nimport RedirectToStartpage from \"components/tixxt/RedirectToStartpage\";\nimport React from \"react\";\n\nexport default [\n ...activitystreamsRoutes,\n ...appointmentsRoutes,\n ...messagesRoutes,\n ...filesRoutes,\n ...tasksRoutes,\n ...globalSearchRoutes,\n ...administrationRoutes,\n ...directoryRoutes,\n ...membershipRoutes,\n ...groupRoutes,\n ...onboardingRoutes,\n ...invitesRoutes,\n ...mapRoutes,\n ...chatRoutes,\n { path: \"/\", element: },\n];\n","import React from \"react\";\nimport { RouteObject } from \"helpers/tixxt-router\";\nimport MobileAppChat from \"./MobileAppChat\";\n\nconst membershipRoutes: RouteObject[] = [\n { path: \"/chat\", element: },\n];\n\nexport default membershipRoutes;\n","import { useEffect } from \"react\";\nimport { NavigateFunction, useNavigate } from \"helpers/tixxt-router\";\nimport {\n originalPushState,\n originalReplaceState,\n} from \"helpers/tixxt-router/history-events\";\n\nlet originalNavigate;\n\nfunction shimBackboneNavigate(navigate: NavigateFunction) {\n originalNavigate = Backbone.history.navigate;\n Backbone.history.navigate = function reactRouterNavigate(\n path: string,\n options?: { replace?: boolean; trigger?: boolean },\n ) {\n const currentPath = [\n location.pathname,\n location.search,\n location.hash,\n ].join(\"\");\n if (currentPath !== path) {\n debug(\n \"[BackboneHistoryShim] navigate(\",\n path,\n {\n replace: !!options?.replace,\n trigger: options?.trigger !== undefined && options.trigger,\n },\n \")\",\n );\n\n // Handle rare case when backbone wants to update the url without triggering anything\n if (options?.trigger !== undefined && !options?.trigger) {\n if (options?.replace) {\n originalReplaceState.call(history, null, \"\", path);\n } else {\n originalPushState.call(history, null, \"\", path);\n }\n } else {\n navigate(path, { replace: !!options?.replace });\n }\n }\n };\n}\n\nfunction restoreBackboneNavigate() {\n Backbone.history.navigate = originalNavigate;\n}\n\nexport default function BackboneHistoryShim() {\n const navigate = useNavigate();\n useEffect(() => {\n shimBackboneNavigate(navigate);\n return restoreBackboneNavigate;\n }, []);\n\n return null;\n}\n","import React, { useEffect } from \"react\";\nimport {\n matchRoutes,\n navigate,\n RouteObject,\n useRoutes,\n} from \"helpers/tixxt-router\";\nimport appRoutes from \"../../routes\";\nimport BackboneHistoryShim from \"components/tixxt/BackboneHistoryShim\";\nimport invariant from \"invariant\";\nimport { memoize } from \"lodash\";\nimport { getConfirmationMessage } from \"../../hooks/useInterceptorPrompt\";\n\nlet spaRoot: HTMLElement | null;\n\nconst routes = Preload.current_member ? appRoutes : [];\n\nexport default function TixxtContent() {\n const element = useRoutes(routes);\n\n useEffect(() => {\n if (element) toggleFrontend(\"spa\", { source: \"routes\" });\n }, [element]);\n\n return (\n <>\n {element}\n
    \n \n \n \n );\n}\n\nfunction TurboCompat({ routes }: { routes: RouteObject[] }) {\n useEffect(() => {\n function spaNavigateInstead(event) {\n // Cancel visit if confirmation is required but not given\n const confirmationMessage = getConfirmationMessage();\n if (confirmationMessage && !confirm(confirmationMessage)) {\n event.preventDefault();\n return;\n }\n\n // Turn turbo:visit into spa navigate\n const url = new URL(event.detail.url);\n const match = matchRoutes(routes, url.pathname);\n if (match && !match.forceTurbo) {\n event.preventDefault();\n navigate(url);\n }\n }\n\n window.addEventListener(\"turbo:before-visit\", spaNavigateInstead);\n return () => {\n window.removeEventListener(\"turbo:before-visit\", spaNavigateInstead);\n };\n }, []);\n return null;\n}\n\nfunction toggleFrontend(type: \"spa\" | \"turbo\", meta?: { source?: string }) {\n if (!spaRoot) {\n spaRoot = document.getElementById(\"spa-root\");\n invariant(spaRoot, \"spa-root missing\");\n }\n\n if (type == \"spa\") {\n if (spaRoot.classList.contains(\"hidden\")) {\n debug(`⚛️ toggleFrontend spa (source=${meta?.source})`);\n spaRoot.classList.toggle(\"hidden\", false);\n }\n document.getElementById(\"turbo-root\")?.classList.toggle(\"hidden\", true);\n } else if (type == \"turbo\") {\n if (!spaRoot.classList.contains(\"hidden\")) {\n debug(`⚡️ toggleFrontend turbo (source=${meta?.source})`);\n spaRoot.classList.toggle(\"hidden\", true);\n }\n document.getElementById(\"turbo-root\")?.classList.toggle(\"hidden\", false);\n }\n}\n\nconst frontendByLocation = memoize(function (path: string) {\n if (matchRoutes(routes, path)) {\n return \"spa\";\n } else {\n return \"turbo\";\n }\n});\n\nwindow.addEventListener(\"popstate\", () => {\n toggleFrontend(frontendByLocation(location.pathname), { source: \"popstate\" });\n});\nwindow.addEventListener(\"turbo:render\", () => {\n toggleFrontend(frontendByLocation(location.pathname), {\n source: \"turbo:render\",\n });\n});\n\nfunction nativeLocaleLinks(event) {\n // prevent turbo from handling this link click\n const url = new URL(event[\"detail\"].url);\n if (url.searchParams.get(\"locale\")) event.preventDefault();\n}\n\nwindow.addEventListener(\"turbo:click\", nativeLocaleLinks);\n","import React, { useEffect, useState } from \"react\";\n\nfunction useSelectNavigation(\n elementRef: React.RefObject,\n items: any,\n onSelect: (any?) => void,\n) {\n const [cursor, setCursor] = useState(0);\n\n function upHandler(e) {\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n return setCursor((prevState) =>\n prevState < items.length - 1 ? prevState + 1 : prevState,\n );\n case \"ArrowUp\":\n e.preventDefault();\n return setCursor((prevState) =>\n prevState > 0 ? prevState - 1 : prevState,\n );\n case \"Enter\":\n e.preventDefault();\n return onSelect();\n default:\n return;\n }\n }\n\n useEffect(() => {\n elementRef.current?.addEventListener(\"keydown\", upHandler);\n\n return () => {\n elementRef.current?.removeEventListener(\"keydown\", upHandler);\n };\n });\n\n return {\n cursor,\n setCursor,\n };\n}\n\nexport default useSelectNavigation;\n","import React from \"react\";\nimport { split, find, includes } from \"lodash\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n regular,\n duotone,\n} from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Item } from \"../../../@types/searchBar\";\n\nconst MODULE_WHITELIST = [\n \"activities\",\n \"messages\",\n \"files\",\n \"appointments\",\n \"calendars\",\n \"pages\",\n \"items\",\n];\n\nfunction getModule(module: string) {\n switch (module) {\n case \"activitystreams\":\n return \"activities\";\n case \"calendars\":\n return \"appointments\";\n case \"apps\":\n return \"items\";\n case \"search\":\n return getModuleFromQueryParams();\n default:\n return module;\n }\n}\n\nfunction getModuleFromQueryParams() {\n const urlParams = new URLSearchParams(window.location.search);\n const module = urlParams.get(\"module\");\n\n // needed to make typescript happy\n if (!module) return;\n\n if (includes(MODULE_WHITELIST, module)) {\n return module;\n }\n}\n\nexport function getIcon({ module }: Item, duo?: boolean) {\n switch (module) {\n case \"activities\":\n return (\n \n );\n case \"messages\":\n return (\n \n );\n case \"files\":\n return (\n \n );\n case \"appointments\":\n return (\n \n );\n case \"items\":\n return (\n \n );\n default:\n return (\n \n );\n }\n}\n\nexport function generateItems() {\n const location = split(window.location.pathname, \"/\");\n\n let module = getModule(location[1]);\n\n const items: Item[] = [{}];\n\n if (location[1] === \"groups\" && Preload && Preload.my_groups) {\n const groupSlug = location[2];\n const group = find(Preload.my_groups, { slug: location[2] });\n module = getModule(location[3]);\n\n if (group) {\n items.unshift({\n parentName: group.name,\n groupSlug,\n });\n\n if (includes(MODULE_WHITELIST, module)) {\n items.unshift({\n parentName: group.name,\n module,\n groupSlug,\n });\n }\n }\n } else {\n if (includes(MODULE_WHITELIST, module)) {\n items.unshift({ module });\n }\n }\n\n return items;\n}\n","import React, { useRef, useState } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n solid,\n regular,\n duotone,\n} from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { isEmpty, map } from \"lodash\";\nimport classNames from \"classnames\";\nimport useSelectNavigation from \"../../hooks/useSelectNavigation\";\nimport { generateItems, getIcon } from \"./searchBar/helpers\";\nimport { Item } from \"../../@types/searchBar\";\nimport { useNavigate, useSearchParams } from \"helpers/tixxt-router\";\nimport { stringify } from \"query-string\";\n\nexport default function SearchBar({ duo }: { duo?: boolean }) {\n const ref = useRef(null);\n const [searchParams] = useSearchParams();\n const [text, setText] = useState(searchParams.get(\"q\") || \"\");\n const [searchIsFocused, setSearchIsFocused] = useState(false);\n const navigate = useNavigate();\n\n const items = generateItems();\n\n function onSearch(e) {\n if (e) e.preventDefault();\n const item = items[cursor];\n if (!item) return;\n\n let url = \"/search\";\n if (item.groupSlug) url = `/groups/${item.groupSlug}${url}`;\n navigate(`${url}?${stringify({ module: item.module, q: text })}`);\n }\n\n const { setCursor, cursor } = useSelectNavigation(ref, items, onSearch);\n\n if (!Preload.current_member) return null;\n\n return (\n \n
    \n \n\n setSearchIsFocused(true)}\n onBlur={() => {\n setTimeout(() => setSearchIsFocused(false), 250);\n }}\n onChange={(e) => setText(e.target.value)}\n value={text}\n className={classNames(\n \"search-bar__input w-full rounded-full bg-transparent border border-solid py-1 px-9 text-white focus-visible:outline-none\",\n {\n \"rounded-b-none rounded-t-2xl\": !isEmpty(text) && searchIsFocused,\n },\n )}\n />\n \n
      \n {map(items, (item: Item, index: number) => (\n setCursor(index)}\n onClick={onSearch}\n >\n \n \n {text}\n \n
      \n {item.groupSlug && (\n \n \n {item.parentName}\n \n )}\n {item.module || !item.groupSlug ? (\n \n {getIcon(item, duo)}\n \n {[\n undefined,\n \"activities\",\n \"messages\",\n \"files\",\n \"appointments\",\n \"pages\",\n \"items\",\n ].includes(item.module)\n ? I18n.t(`js.searchbar.${item.module || \"global\"}`)\n : item.module}\n \n \n ) : null}\n
      \n \n ))}\n
    \n
    \n setText(\"\")}\n type=\"reset\"\n >\n \n \n
    \n\n \n \n \n \n );\n}\n","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { light, duotone } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useSelector } from \"react-redux\";\nimport Notification from \"components/chat/shared/Notification\";\nimport { getAggregatedUnreadCount } from \"selectors/chat/chat\";\nimport { toggleChatbar } from \"../../../layout/togglebar\";\n\nexport default function ChatButton({ duo }: { duo?: boolean }) {\n const chatCount = useSelector(getAggregatedUnreadCount);\n\n return (\n \n );\n}\n","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n regular,\n light,\n duotone,\n} from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useSelector } from \"react-redux\";\nimport {\n currentMemberSelector,\n groupCategoriesSelector,\n networkSelector,\n} from \"selectors/environment\";\nimport { map, filter } from \"lodash\";\nimport DropDown, { DropDownItem } from \"../shared/DropDown\";\nimport UnreadBadge from \"components/shared/UnreadBadge\";\nimport { useFeaturesUnreads } from \"api/unreads\";\nimport ChatButton from \"components/layout/userCentral/ChatButton\";\nimport classNames from \"classnames\";\nimport { AvailableUpdatesPayload } from \"components/layout/CustomerCentralUpdateCheck\";\n\nfunction NotificationPing({ className }: { className?: string }) {\n return (\n \n \n \n \n );\n}\n\nfunction NotificationDropDownItems({\n unreads,\n className,\n}: {\n unreads?:\n | {\n Notifications: number;\n GroupInvites: number;\n Calendars: number;\n }\n | undefined;\n className?: string;\n}) {\n return (\n <>\n }\n className={className}\n />\n }\n className={className}\n />\n }\n className={className}\n />\n \n );\n}\n\nexport default function UserCentral({\n duo,\n availableUpdates,\n}: {\n duo?: boolean;\n availableUpdates: AvailableUpdatesPayload;\n}) {\n const currentMember = useSelector(currentMemberSelector);\n const network = useSelector(networkSelector);\n const groupCategories = useSelector(groupCategoriesSelector);\n const { data: unreads } = useFeaturesUnreads();\n\n const unreadCount = unreads\n ? unreads?.GroupInvites + unreads?.Calendars + unreads?.Notifications\n : 0;\n\n if (!currentMember) return null;\n\n const administratableGroupCategories = filter(\n groupCategories,\n (cat) => cat.can.administrate,\n );\n\n return (\n
      \n
    • \n \n \n {unreadCount > 0 ? : null}\n \n \n \n \n
    • \n\n
    • \n \n \n \n {availableUpdates?.length > 0 ? (\n \n ) : null}\n \n \n \n
    • \n \n {currentMember.can.update_profile && (\n \n )}\n {currentMember.can.update_registration && (\n \n )}\n {currentMember?.can.update_profile && (\n \n )}\n {currentMember && (\n \n )}\n {network.config.memberships?.change_requests?.enabled && (\n \n )}\n\n {network.can.administrate ||\n administratableGroupCategories.length > 0 ||\n network.can.version_and_updates ? (\n
    • \n ) : null}\n\n {network.can.administrate && (\n \n )}\n {map(administratableGroupCategories, (cat) => (\n \n ))}\n\n {network.can.version_and_updates && (\n }\n />\n )}\n
    • \n \n \n
    • \n {Preload.current_member?.can.chat ? (\n
    • \n \n
    • \n ) : null}\n
    \n );\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\nimport { clamp, toInteger } from \"lodash\";\n\nconst LARGE_BREAKPOINT = 1024;\n\n// Proportionally shrink the extended logo in combination with image banners on smaller than large screens\n// To always shrink logo on scroll set the following custom css\n// .header__logo { --shrink-breakpoint: 9999999px }\n// Also adds the .header__content--logo-shrunken class when the logo is fully shrunken\nexport default function useLogoScrollResize() {\n const logoRef = useRef(null);\n const { logoType, bannerType } = useSelector((state: State) => state.theme);\n let logoResizeBreakpoint = LARGE_BREAKPOINT;\n if (logoRef.current) {\n const resizeBreakpoint = getComputedStyle(logoRef.current)\n .getPropertyValue(\"--shrink-breakpoint\")\n ?.trim();\n if (resizeBreakpoint && resizeBreakpoint.match(/^\\d+px$/))\n logoResizeBreakpoint = toInteger(resizeBreakpoint.replace(\"px\", \"\"));\n }\n const [active, setActive] = useState(\n logoType == \"extended\" &&\n bannerType == \"image\" &&\n window.innerWidth < logoResizeBreakpoint,\n );\n\n // Toggle active if logo and/or banner type changes\n // Toggle active after resizing\n useEffect(() => {\n function toggleActive() {\n setActive(\n logoType == \"extended\" &&\n bannerType == \"image\" &&\n window.innerWidth < logoResizeBreakpoint,\n );\n }\n\n toggleActive();\n window.addEventListener(\"resize\", toggleActive);\n return function () {\n window.removeEventListener(\"resize\", toggleActive);\n };\n }, [logoType, bannerType, logoResizeBreakpoint]);\n\n // Resize logo on scroll if active, event handler is not bound otherwise\n useEffect(() => {\n const logoEl = logoRef.current;\n\n const navEl = document.getElementById(\"main-navigation\") as\n | HTMLDivElement\n | undefined;\n if (!navEl || !logoEl) return;\n\n const maxHeight = logoEl.clientHeight;\n const maxWidth = logoEl.clientWidth;\n const minHeight = 60;\n const startShrink = navEl.offsetTop - logoEl.clientHeight;\n let r: number | null = null; // has value if animation frame has been requested\n\n function cleanUp() {\n if (!logoEl) return;\n\n logoEl.removeAttribute(\"style\");\n document.body.style.removeProperty(\"--header-logo-height\");\n (logoEl.parentNode as HTMLDivElement).classList.remove(\n \"header__content--logo-shrunken\",\n );\n }\n\n function onScroll() {\n if (r) return;\n if (!logoEl) return;\n\n if (logoEl.hasAttribute(\"style\") && scrollY < startShrink) {\n cleanUp();\n } else if (\n logoEl.clientHeight > minHeight ||\n logoEl.clientHeight < maxHeight\n ) {\n r = requestAnimationFrame(() => {\n const newHeight = clamp(\n maxHeight - (scrollY - startShrink),\n minHeight,\n maxHeight,\n );\n logoEl.style.width = `${(newHeight / maxHeight) * maxWidth}px`;\n document.body.style.setProperty(\n \"--header-logo-height\",\n `${newHeight}px`,\n );\n (logoEl.parentNode as HTMLDivElement).classList.toggle(\n \"header__content--logo-shrunken\",\n newHeight == minHeight,\n );\n\n r = null;\n });\n }\n }\n\n if (active) {\n document.addEventListener(\"scroll\", onScroll);\n if (scrollY >= startShrink) onScroll();\n } else {\n cleanUp();\n }\n return function () {\n document.removeEventListener(\"scroll\", onScroll);\n };\n }, [active]);\n\n return logoRef;\n}\n","import React, { useEffect, useState } from \"react\";\nimport Modal from \"components/shared/Modal\";\nimport { useQuery } from \"react-query\";\nimport { every } from \"lodash\";\nimport { useSelector } from \"react-redux\";\nimport { networkSelector } from \"selectors/environment\";\n\nimport moment from \"moment\";\nimport MarkdownTranslation from \"components/shared/MarkdownTranslation\";\n\ntype Props = {\n children: ({\n availableUpdates,\n }: {\n availableUpdates: AvailableUpdatesPayload;\n }) => React.ReactNode;\n};\n\nexport type AvailableUpdatesPayload = {\n name: string;\n deadline: string;\n release_notes_url: string;\n}[];\n\nconst setDeploymentOfferSeenDate = (\n availableUpdates: AvailableUpdatesPayload,\n) =>\n availableUpdates?.forEach(({ name }) =>\n localStorage.setItem(\n `deploymentOfferSeenDate[${name}]`,\n new Date().toISOString(),\n ),\n );\n\nconst allDeploymentOffersSeen = (availableUpdates: AvailableUpdatesPayload) =>\n every(availableUpdates, ({ name }) => {\n const deploymentOffer = localStorage.getItem(\n `deploymentOfferSeenDate[${name}]`,\n );\n\n return moment(deploymentOffer).isSame(moment(), \"day\");\n });\n\nconst EMPTY = [];\n\nexport default function CustomerCentralUpdateCheck({ children }: Props) {\n const network = useSelector(networkSelector);\n const [showModal, setShowModal] = useState(false);\n\n const { data: availableUpdates } = useQuery({\n queryFn: () =>\n fetch(\n `${network.config.customer_central_url}/api/v1/available_upgrades`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${network?.customer_central_jwt}`,\n },\n },\n ).then((res) => res.json()),\n refetchInterval: 60000 * 5,\n refetchOnWindowFocus: false,\n staleTime: 60000 * 5,\n enabled: network.can.version_and_updates || false,\n retry: false,\n });\n\n useEffect(() => {\n if (!availableUpdates) return;\n\n if (allDeploymentOffersSeen(availableUpdates)) return;\n setShowModal(true);\n }, [availableUpdates]);\n\n return (\n <>\n {showModal && availableUpdates && availableUpdates.length > 0 ? (\n setDeploymentOfferSeenDate(availableUpdates)}\n >\n
    \n \n \n {I18n.t(\n \"js.customer_central.deployment_offer.open_customer_central\",\n )}\n \n
    \n \n ) : null}\n {children({ availableUpdates: availableUpdates || EMPTY })}\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport Modal from \"components/shared/Modal\";\nimport { useSelector } from \"react-redux\";\nimport { networkSelector } from \"selectors/environment\";\nimport MarkdownTranslation from \"components/shared/MarkdownTranslation\";\n\nexport default function TeamsRenewOAuthCredentialsCheck() {\n const network = useSelector(networkSelector);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n setShowModal(!!network?.teams_configuration?.show_renew_secret_modal);\n }, []);\n\n return (\n <>\n {showModal ? (\n \n
    \n \n
    \n
    \n ) : null}\n \n );\n}\n","import React from \"react\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { light, duotone } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useSelector } from \"react-redux\";\nimport { networkSelector } from \"selectors/environment\";\nimport SearchBar from \"components/layout/SearchBar\";\nimport UserCentral from \"components/layout/UserCentral\";\nimport { useFeaturesUnreads } from \"api/unreads\";\nimport UnreadBadge from \"components/shared/UnreadBadge\";\nimport { map, omit, sum, values } from \"lodash\";\nimport { State } from \"../../@types\";\nimport useLogoScrollResize from \"./useLogoScrollResize\";\nimport CustomerCentralUpdateCheck from \"components/layout/CustomerCentralUpdateCheck\";\nimport TeamsRenewOAuthCredentialsCheck from \"components/layout/TeamsRenewOAuthCredentialsCheck\";\n\nexport default function TixxtHeader() {\n const network = useSelector(networkSelector);\n const theme = useSelector((state: State) => state.theme);\n const groupCategoryTheme = useSelector(\n (state: State) => state.groupCategoryTheme,\n );\n const groupTheme = useSelector((state: State) => state.groupTheme);\n let logoUrl = theme.override\n ? `/api/storage/assets/${theme.logoImage?.id}/preview`\n : theme.logoUrl;\n if (groupCategoryTheme?.logoUrl) logoUrl = groupCategoryTheme.logoUrl;\n if (groupTheme?.logoUrl) logoUrl = groupTheme.logoUrl;\n\n const duo = theme?.userbarIconType == \"duotone\";\n const { data: unreads } = useFeaturesUnreads();\n\n const unreadCount =\n sum(\n values(omit(unreads, [\"Invites\", \"Notifications\", \"GroupJoinRequests\"])),\n ) + sum(map(unreads?.GroupJoinRequests, \"open_join_requests\"));\n\n const logoRef = useLogoScrollResize();\n\n return (\n <>\n
    \n \n
    \n \n {logoUrl ? (\n \n ) : (\n network.name\n )}\n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n \n {({ availableUpdates }) => (\n \n )}\n \n
    \n \n
    \n
    \n \n );\n}\n","import { useEffect, useRef } from \"react\";\nimport { omit } from \"lodash\";\nimport {\n storeOverrideTheme,\n useTheme,\n} from \"components/administration/designManager/useTheme\";\nimport { DerivedTheme } from \"components/administration/designManager/types\";\nimport themeToCss from \"components/administration/designManager/themeToCss\";\n\nfunction applyStyleOverride(\n styleEl: React.MutableRefObject,\n theme: DerivedTheme,\n) {\n /* Create style tag to apply theme overrides */\n if (!styleEl.current) {\n styleEl.current = document.createElement(\"style\");\n styleEl.current.type = \"text/css\";\n styleEl.current.setAttribute(\"data-theme-source\", \"override\");\n }\n styleEl.current.textContent = themeToCss(theme);\n if (!styleEl.current.isConnected) document.head.appendChild(styleEl.current);\n}\n\nfunction applyFaviconOverride(\n linkEl: React.MutableRefObject,\n theme: DerivedTheme,\n) {\n /* Create link tag to apply favicon override */\n if (!linkEl.current) {\n linkEl.current = document.createElement(\"link\");\n linkEl.current.setAttribute(\"data-theme-source\", \"override\");\n }\n if (theme.faviconImage) {\n linkEl.current.href = `/api/storage/assets/${theme.faviconImage.id}/preview`;\n if (theme.faviconImage.extension == \"ico\") {\n linkEl.current.rel = \"shortcut icon\";\n linkEl.current.type = \"image/x-icon\";\n } else {\n linkEl.current.rel = \"icon\";\n linkEl.current.type = \"image/png\";\n }\n if (!linkEl.current.isConnected) document.head.appendChild(linkEl.current);\n } else {\n if (linkEl.current.isConnected) document.head.removeChild(linkEl.current);\n }\n}\n\nfunction removeStyleOverride(\n styleEl: React.MutableRefObject,\n) {\n if (styleEl.current) document.head.removeChild(styleEl.current);\n}\n\nexport default function ApplyOverrideTheme() {\n const theme = useTheme();\n const styleEl = useRef();\n const faviconEl = useRef();\n\n useEffect(() => {\n if (theme.override) {\n applyStyleOverride(styleEl, theme);\n applyFaviconOverride(faviconEl, theme);\n storeOverrideTheme(omit(theme, [\"derivedColors\"]));\n } else if (styleEl.current?.isConnected) {\n removeStyleOverride(styleEl);\n storeOverrideTheme(null);\n }\n\n function toggleBodyClasses(event) {\n event.detail.newBody.classList.toggle(\n \"tixxt--full\",\n theme?.fullWidth === true,\n );\n }\n\n document.addEventListener(\"turbo:before-render\", toggleBodyClasses);\n toggleBodyClasses({ detail: { newBody: document.body } });\n\n return () => {\n document.removeEventListener(\"turbo:before-render\", toggleBodyClasses);\n };\n }, [theme]);\n\n return null;\n}\n","import React, { MutableRefObject, useContext, useEffect, useRef } from \"react\";\nimport { Theme } from \"components/administration/designManager/types\";\nimport { lightThemeToCss } from \"components/administration/designManager/themeToCss\";\nimport { compact, every, find, isEmpty, isEqual } from \"lodash\";\nimport { Group, GroupCategory, State } from \"../../../@types\";\nimport { useParams, useSearchParams } from \"helpers/tixxt-router\";\nimport invariant from \"invariant\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n resetTheme as groupCategoryResetTheme,\n setTheme as groupCategorySetTheme,\n} from \"components/administration/designManagerLight/groupCategoryThemeSlice\";\n\nimport {\n setTheme as groupSetTheme,\n resetTheme as groupResetTheme,\n} from \"components/administration/designManagerLight/groupThemeSlice\";\n\nconst themeSliceActions = {\n group: {\n setTheme: groupSetTheme,\n resetTheme: groupResetTheme,\n },\n groupCategory: {\n setTheme: groupCategorySetTheme,\n resetTheme: groupCategoryResetTheme,\n },\n};\n\nexport function applyStyleOverride(\n styleEl: React.MutableRefObject,\n theme: Theme,\n) {\n /* Create style tag to apply theme overrides */\n if (!styleEl.current) {\n styleEl.current = document.createElement(\"style\");\n styleEl.current.type = \"text/css\";\n styleEl.current.setAttribute(\"data-theme-source\", \"override\");\n }\n styleEl.current.textContent = lightThemeToCss({\n ...theme,\n override: true,\n } as Theme);\n if (!styleEl.current.isConnected) document.head.appendChild(styleEl.current);\n}\n\nexport function removeStyleOverride(\n styleEl: React.MutableRefObject,\n) {\n if (styleEl.current && document.head.contains(styleEl.current))\n document.head.removeChild(styleEl.current);\n}\n\nexport function appointmentIdToGroupSlugs(appointmentId): string[] {\n const appointment = Tixxt.Calendars.Appointment.all().get(appointmentId);\n\n const calendarParentIds =\n appointment\n ?.calendars()\n .filter({ attributes: { type: \"group\" } })\n .map((as) => as.get(\"parent_id\"))\n .value() || [];\n\n return compact(\n calendarParentIds.map((ci) => find(Preload.my_groups, { id: ci })?.slug),\n );\n}\n\nexport function fileIdToGroupSlugs(fileId): string[] {\n return Tixxt.Files.File.all().get(fileId)?.attributes?.group_slugs;\n}\n\nexport function folderIdToGroupSlugs(folderId): string[] {\n const group = groupFromId(\n Tixxt.Files.Folder.all().get(folderId)?.attributes?.group_id,\n );\n\n return compact([group?.slug]);\n}\n\nexport function taskIdToGroupSlugs(taskId): string[] {\n return compact([\n Tixxt.Tasks.controller?.currentCollection?.get(taskId)?.attributes?.context\n ?.first_stream_slug,\n ]);\n}\n\nexport function groupFromId(id: string): Group | undefined {\n return find(Preload.my_groups, { id });\n}\n\nexport function groupsFromSlugs(slugs: string[]): Group[] {\n return compact(slugs.map((slug) => find(Preload.my_groups, { slug })));\n}\n\nexport function activityIdToGroupSlugs(activityId) {\n const activity = Tixxt.Activitystreams.Activity.all().get(activityId);\n const groupSlugs =\n activity\n ?.activitystreams()\n .map((as) => as.get(\"group_slug\"))\n .value() || [];\n\n // returns empty array when the activity is also posted in a global activitystream\n // if (groupSlugs.includes(undefined)) return [];\n // TODO: Warum hatten wir das hier gemacht? Das sorgt dafür,\n // dass bei einem Beitrag, welcher auch in einem globalen Aktivitystream liegt,\n // das Gruppen-/ GruppenCategoryTheme nicht angezeigt wird\n\n return groupSlugs;\n}\n\nexport function groupCategoriesFromGroups(groups: Group[]): GroupCategory[] {\n return compact(\n groups.map((group) =>\n find(Preload.current_network.group_categories, {\n id: group?.category_id,\n }),\n ),\n );\n}\n\nexport function groupCategoriesFromSlugs(slugs: string[]): GroupCategory[] {\n return compact(\n slugs.map((slug) =>\n find(Preload.current_network.group_categories, { slug }),\n ),\n );\n}\n\nexport function sameTheme(\n themeParents: GroupCategory[] | Group[] | undefined,\n): boolean {\n if (!themeParents) return false;\n const isSameTheme = (themeParent) => {\n return themeParents[0].active_theme == themeParent.active_theme;\n };\n\n return every(themeParents, isSameTheme);\n}\n\nexport type SlugsState = { slugs: string[]; previousSlug: string | null };\nexport const SlugsContext = React.createContext<\n React.Dispatch>\n>(() => {\n void 0;\n});\n\nexport function GroupsFromSlug() {\n const { contextSlug } = useParams();\n invariant(contextSlug, \"GroupsFromSlug used in route without :contextSlug\");\n\n const setSlugsState = useContext(SlugsContext);\n\n useEffect(() => {\n setSlugsState({ slugs: [contextSlug], previousSlug: contextSlug });\n }, [contextSlug]);\n\n return null;\n}\n\nexport function GroupsFromActivityId() {\n const { activityId } = useParams();\n const setSlugsState = useContext(SlugsContext);\n\n useEffect(() => {\n const resolve = () =>\n setSlugsState((state) => ({\n ...state,\n slugs: activityIdToGroupSlugs(activityId),\n }));\n\n resolve();\n Tixxt.Activitystreams.Activity.all().on(\"sync\", resolve);\n Tixxt.Activitystreams.Activitystream.all().on(\"sync\", resolve);\n\n return () => {\n Tixxt.Activitystreams.Activity.all().off(\"sync\", resolve);\n Tixxt.Activitystreams.Activitystream.all().off(\"sync\", resolve);\n };\n }, [activityId]);\n\n return null;\n}\n\nexport function GroupsFromAppointmentId() {\n const { appointmentId } = useParams();\n const setSlugsState = useContext(SlugsContext);\n\n useEffect(() => {\n const resolve = () => {\n setSlugsState((state) => ({\n ...state,\n slugs: appointmentIdToGroupSlugs(appointmentId),\n }));\n };\n\n resolve();\n Tixxt.Calendars.Appointment.all().on(\"sync\", resolve);\n\n return () => {\n Tixxt.Calendars.Appointment.all().off(\"sync\", resolve);\n };\n }, [appointmentId]);\n\n return null;\n}\n\nexport function GroupsFromTaskId() {\n const { taskId } = useParams();\n const setSlugsState = useContext(SlugsContext);\n\n useEffect(() => {\n setSlugsState((state) => ({\n ...state,\n slugs: taskIdToGroupSlugs(taskId),\n }));\n }, [taskId]);\n\n return null;\n}\n\nexport function GroupsFromFolderId() {\n const { paramsFolderId } = useParams();\n const [searchParams] = useSearchParams();\n const queryFolderId = searchParams.get(\"folder_id\");\n\n const folderId = paramsFolderId || queryFolderId;\n const setSlugsState = useContext(SlugsContext);\n\n useEffect(() => {\n const resolve = () => {\n setSlugsState((state) => ({\n ...state,\n slugs: folderIdToGroupSlugs(folderId),\n }));\n };\n\n resolve();\n Tixxt.Files.Folder.all().on(\"sync\", resolve);\n return () => {\n Tixxt.Files.Folder.all().off(\"sync\", resolve);\n };\n }, [folderId]);\n\n return null;\n}\n\nexport function GroupsFromFileId() {\n const { fileId } = useParams();\n const setSlugsState = useContext(SlugsContext);\n\n useEffect(() => {\n const resolve = () => {\n setSlugsState((state) => ({\n ...state,\n slugs: fileIdToGroupSlugs(fileId),\n }));\n };\n\n resolve();\n Tixxt.Files.File.all().on(\"sync\", resolve);\n return () => {\n Tixxt.Files.File.all().off(\"sync\", resolve);\n };\n }, [fileId]);\n\n return null;\n}\n\nexport function NoSlugs() {\n const setSlugsState = useContext(SlugsContext);\n useEffect(() => {\n setSlugsState({ slugs: [], previousSlug: null });\n }, []);\n\n return null;\n}\n\nconst selectors = {\n network: (state: State) => state.theme,\n groupCategory: (state: State) => state.groupCategoryTheme,\n group: (state: State) => state.groupTheme,\n};\n\nexport const HandleContextHeader = React.memo(function HandleContextHeader({\n slugs,\n relevantContext,\n lastContext,\n type,\n}: {\n slugs: string[];\n relevantContext: GroupCategory[] | Group[] | undefined;\n lastContext: MutableRefObject;\n type: \"group\" | \"groupCategory\";\n}) {\n const styleEl = useRef();\n const dispatch = useDispatch();\n const activeTheme = useSelector(selectors[type]);\n\n // This sets state.groupTheme or state.groupCategoryTheme when slugs change\n useEffect(() => {\n if (!relevantContext) return;\n\n // the first element is used because the slug either comes from the path so only one is available,\n // from the last context so only one is available,\n // or from the activity/ appointment object so it is only interesting if all the `groupCategories` have the same Theme\n const context = relevantContext[0];\n const hasSameTheme = sameTheme(relevantContext);\n\n if (lastContext.current == context) return;\n lastContext.current = context;\n\n if (!context?.active_theme || !hasSameTheme) {\n if (!isEmpty(activeTheme)) dispatch(themeSliceActions[type].resetTheme());\n } else {\n dispatch(themeSliceActions[type].setTheme(context.active_theme));\n }\n }, [slugs]);\n\n // This applies styles from theme from state\n useEffect(() => {\n if (!isEmpty(activeTheme)) {\n applyStyleOverride(styleEl, activeTheme);\n } else {\n removeStyleOverride(styleEl);\n }\n }, [activeTheme]);\n\n return null;\n}, isEqual);\n\nexport function Noop() {\n return null;\n}\n","import React, { useRef, useState } from \"react\";\nimport { compact, first } from \"lodash\";\nimport { useRoutes } from \"helpers/tixxt-router\";\nimport { Group } from \"../../../@types\";\nimport {\n groupsFromSlugs,\n GroupsFromSlug,\n GroupsFromActivityId,\n GroupsFromAppointmentId,\n GroupsFromFileId,\n GroupsFromTaskId,\n NoSlugs,\n HandleContextHeader,\n GroupsFromFolderId,\n Noop,\n SlugsState,\n SlugsContext,\n} from \"components/administration/designManagerLight/functions\";\n\nfunction pickRelevantGroups({ slugs, previousSlug }): Group[] | undefined {\n if (previousSlug && slugs?.includes(previousSlug)) {\n const group = first(groupsFromSlugs(compact([previousSlug])));\n if (group) return [group] as Group[];\n }\n\n if (!slugs) return;\n\n return groupsFromSlugs(slugs);\n}\n\nconst routes = [\n {\n path: \"/groups/:contextSlug/administration/designs/:designId/*\",\n element: ,\n },\n { path: \"/groups/:contextSlug/*\", element: },\n { path: \"/activities/:activityId\", element: },\n {\n path: \"/appointments/:appointmentId\",\n element: ,\n },\n {\n path: \"/appointments/:appointmentId/*\",\n element: ,\n },\n { path: \"/files/folders/new\", element: },\n { path: \"/files/folders/:folderId\", element: },\n { path: \"/files/:fileId\", element: },\n { path: \"/tasks/:taskId\", element: },\n { path: \"/tasks/:taskId/*\", element: },\n { path: \"*\", element: },\n];\n\nexport default function ApplyOverrideGroupTheme() {\n const [state, setState] = useState({\n slugs: [],\n previousSlug: null,\n });\n const lastContext = useRef();\n const element = useRoutes(routes);\n\n return (\n <>\n \n {element}\n \n );\n}\n","import React, { useRef, useState } from \"react\";\nimport { first, uniq } from \"lodash\";\nimport { useRoutes } from \"helpers/tixxt-router\";\nimport { GroupCategory } from \"../../../@types\";\nimport {\n groupsFromSlugs,\n groupCategoriesFromSlugs,\n groupCategoriesFromGroups,\n GroupsFromActivityId,\n GroupsFromFileId,\n GroupsFromSlug,\n GroupsFromTaskId,\n GroupsFromAppointmentId,\n NoSlugs,\n HandleContextHeader,\n GroupsFromFolderId,\n Noop,\n SlugsState,\n SlugsContext,\n} from \"components/administration/designManagerLight/functions\";\n\nfunction pickRelevantGroupCategories({\n slugs,\n previousSlug,\n}): GroupCategory[] | undefined {\n if (previousSlug && slugs?.includes(previousSlug)) {\n const groupCategory = first(groupCategoriesFromSlugs([previousSlug]));\n if (groupCategory) return [groupCategory] as GroupCategory[];\n }\n\n if (!slugs) return undefined;\n\n const groups = groupsFromSlugs(slugs);\n return uniq([\n ...groupCategoriesFromGroups(groups),\n ...groupCategoriesFromSlugs(slugs),\n ]);\n}\n\nconst routes = [\n {\n path: \"/groups/:contextSlug/administration/designs/:designId/*\",\n element: ,\n },\n {\n path: \"/groups/:contextSlug/*\",\n element: ,\n },\n {\n path: \"/group-categories/:contextSlug/administration/designs/:designId/*\",\n element: ,\n },\n {\n path: \"/group-categories/:contextSlug/*\",\n element: ,\n },\n {\n path: \"/activities/:activityId\",\n element: ,\n },\n {\n path: \"/appointments/:appointmentId\",\n element: ,\n },\n {\n path: \"/appointments/:appointmentId/*\",\n element: ,\n },\n {\n path: \"/files/folders/new\",\n element: ,\n },\n {\n path: \"/files/folders/:folderId\",\n element: ,\n },\n {\n path: \"/files/:fileId\",\n element: ,\n },\n {\n path: \"/tasks/:taskId\",\n element: ,\n },\n {\n path: \"/tasks/:taskId/*\",\n element: ,\n },\n {\n path: \"*\",\n element: ,\n },\n];\n\nexport default function ApplyOverrideGroupCategoryTheme() {\n const [state, setState] = useState({\n slugs: [],\n previousSlug: null,\n });\n const lastContext = useRef();\n const element = useRoutes(routes);\n\n return (\n <>\n \n {element}\n \n );\n}\n","import React from \"react\";\nimport SearchBar from \"components/layout/SearchBar\";\nimport { useSelector } from \"react-redux\";\nimport { State } from \"../../@types\";\n\nexport default function AppSearchHeader() {\n const theme = useSelector((state: State) => state.theme);\n const duo = theme?.userbarIconType == \"duotone\";\n\n return (\n
    \n \n
    \n );\n}\n","import React, { useEffect } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { QueryClientProvider } from \"react-query\";\nimport { Provider } from \"react-redux\";\nimport store from \"../store\";\nimport queryClient from \"../helpers/queryClient\";\nimport {\n HeaderPortal,\n UserbarPortal,\n ChatbarPortal,\n ContentPortal,\n} from \"components/layout/portals\";\nimport TixxtUserbar from \"components/layout/TixxtUserbar\";\nimport TixxtChatbar from \"components/layout/TixxtChatbar\";\nimport TixxtContent from \"components/layout/TixxtContent\";\nimport TixxtHeader from \"components/layout/TixxtHeader\";\nimport { StaticTixxtGroupNavigation } from \"components/layout/TixxtGroupNavigation\";\nimport { StaticTixxtPageTitle } from \"components/layout/TixxtPageTitle\";\nimport ApplyOverrideTheme from \"components/administration/designManager/ApplyOverrideTheme\";\nimport ApplyOverrideGroupTheme from \"components/administration/designManagerLight/ApplyOverrideGroupTheme\";\nimport ApplyOverrideGroupCategoryTheme from \"./administration/designManagerLight/ApplyOverrideGroupCategoryTheme\";\nimport GenericErrorBoundary from \"components/shared/GenericErrorBoundary\";\nimport { BrowserRouter } from \"helpers/tixxt-router\";\nimport AppSearchHeader from \"components/layout/AppSearchHeader\";\nimport { TurboFrameMissingEvent } from \"@hotwired/turbo\";\n\n// For debugging only\ndocument.addEventListener(\"turbo:visit\", function (event) {\n debug(\"⚡️ turbo:visit\", new URL(event[\"detail\"].url).pathname);\n});\n\n// Fix Content Missing outside of development\n// In development it produces an error and should be fixed\nif (!window.Settings?.development) {\n document.addEventListener(\"turbo:frame-missing\", function (\n event: TurboFrameMissingEvent,\n ) {\n event.preventDefault();\n event.detail.visit(event.detail.response, {});\n } as EventListener);\n}\n\n/*\n SPA entry point\n */\nexport function launchApp() {\n function setupReact() {\n const container = document.getElementById(\"app-root\");\n const root = createRoot(container!);\n root.render();\n document.removeEventListener(\"turbo:load\", setupReact);\n }\n\n // Setup only once\n document.addEventListener(\"turbo:load\", setupReact);\n}\n\n/*\n * Main frontend component\n */\nexport default function App() {\n const currentMember = Preload.current_member;\n const canChat = currentMember?.can.chat;\n\n useEffect(() => {\n if (window.isApp) {\n window.bridge?.setMemberIsLoggedIn(currentMember != null);\n if (currentMember != null) {\n window.bridge?.setMemberId(currentMember.id);\n }\n window.bridge?.setMemberCanChat(!!canChat);\n }\n }, [currentMember]);\n\n return (\n \n \n \n \n \n \n \n \n \n {window.isApp ? : }\n \n \n \n \n {canChat &&\n !window.isApp &&\n window.location.pathname !== \"/legal\" && (\n \n \n \n )}\n \n \n {window.Turbo?.session.drive ? (\n \n \n \n ) : null}\n \n \n \n );\n}\n","import lodash from \"lodash\";\n\n/* This is here to make legacy Backbone(.Marionette) work with modern lodash */\n\nfunction compatThisArg(fn) {\n return function (collection, callback, thisArg) {\n if (lodash.isFunction(callback)) {\n return fn(collection, lodash.bind(callback, thisArg));\n } else {\n return fn(collection, callback);\n }\n };\n}\n\n// Create copy of lodash that can be modified independently\nconst customLodashCompat = lodash.runInContext();\n\n// Add some aliases for backwards compat\ncustomLodashCompat.mixin({\n any: lodash.some,\n contains: lodash.includes,\n pairs: lodash.toPairs,\n rest: lodash.tail,\n\n // These functions had a third thisArg in old lodash\n sortBy: compatThisArg(lodash.sortBy),\n forEach: compatThisArg(lodash.forEach),\n each: compatThisArg(lodash.forEach),\n map: compatThisArg(lodash.map),\n});\n\n// Disable chaining for some functions, making them return a value instead of the wrapped object\ncustomLodashCompat.mixin(\n {\n // _([1,2,3]).first() returned 1 in old lodash, in modern lodash another call to value() is required\n first: lodash.head,\n },\n { chain: false },\n);\n\n// forEach is lazily evaluated when used in chain in modern lodash\n// This prevents iterations in templates like\n// file.folders().each ->\n// # something haml\n// from rendering\nconst lazyForEach = customLodashCompat.prototype.forEach;\ncustomLodashCompat.prototype.each = customLodashCompat.prototype.forEach =\n function (...args) {\n lazyForEach.apply(this, args).value(); // run whole chain immediately\n return this; // return original object for further chaining\n };\n\nexport default customLodashCompat;\n","import { fetchApi } from \"../helpers/reactQueryApi.js\";\nimport store from \"../store.js\";\nimport { DeviceData } from \"../@types/devices\";\nimport {\n disableBodyScrolling,\n restoreBodyScrolling,\n} from \"../layout/togglebar\";\n\nexport default class Bridge {\n static isIOS() {\n return /iOS/.test(navigator.userAgent);\n }\n\n static isAndroid() {\n return /Android/.test(navigator.userAgent);\n }\n\n static postMessage(message: object) {\n if (Bridge.isIOS()) {\n window.webkit?.messageHandlers.nativeApp.postMessage(message);\n }\n\n if (Bridge.isAndroid()) {\n window[\"nativeApp\"]?.postMessage(JSON.stringify(message));\n }\n }\n\n static toggleUserbar() {\n const userbar = document.getElementById(\"userbar-root\");\n\n if (userbar?.classList.contains(\"userbar--visible\")) {\n userbar?.classList.remove(\"userbar--visible\");\n restoreBodyScrolling(\"userbar\");\n } else {\n userbar?.classList.add(\"userbar--visible\");\n disableBodyScrolling(\"userbar\");\n }\n }\n\n static toggleChat() {\n const chat = document.getElementById(\"chatbar-root\");\n\n if (chat?.classList.contains(\"chatbar--visible\")) {\n chat?.classList.remove(\"chatbar--visible\");\n } else {\n chat?.classList.add(\"chatbar--visible\");\n }\n }\n\n static toggleSearchbar() {\n const searchbar = document.getElementById(\"app__header\");\n const searchInput: HTMLInputElement = document.getElementsByClassName(\n \"search-bar__input\",\n )[0] as HTMLInputElement;\n\n if (searchbar?.classList.contains(\"header--visible\")) {\n searchbar?.classList.remove(\"header--visible\");\n searchInput.blur();\n } else {\n searchbar?.classList.add(\"header--visible\");\n searchInput?.focus();\n }\n }\n\n static registerDevice(data: DeviceData) {\n fetchApi(\"/api/v1/devices\", {\n method: \"POST\",\n body: data,\n });\n }\n\n static askToRegisterDevice() {\n Bridge.postMessage({ registerDevice: \"registerDevice\" });\n }\n\n static async removeDevice(deviceUniqId: string) {\n const result = await fetchApi(`/api/v1/devices/${deviceUniqId}`, {\n method: \"DELETE\",\n });\n\n Bridge.postMessage({ deletedDevice: result });\n }\n\n static showChat(id: string) {\n store.dispatch({\n type: \"chat/NAVIGATE\",\n payload: { route: \"showChat\", params: { chatId: id } },\n });\n }\n\n static async loadNetworkConfig() {\n const network = await fetchApi(\"/api/v1/network\");\n\n const pages = await fetchApi(\"/pages\");\n\n Bridge.postMessage({\n setNetworkConfig: network,\n setPages: pages,\n });\n }\n\n static async loadUnreads() {\n const unreads = await fetchApi(\"/api/v1/unreads\");\n\n Bridge.postMessage({ unreads });\n }\n\n static getDeviceUniqueId(\n setDeviceUniqueId: (props: { id: string; name: string }) => void,\n ) {\n Bridge.postMessage({\n getDeviceUniqueId: \"setDeviceUniqueId\",\n });\n\n Bridge[\"setDeviceUniqueId\"] = setDeviceUniqueId;\n }\n\n static setPageTitle(title: string) {\n Bridge.postMessage({\n pageTitle: title,\n });\n }\n\n static goBack() {\n Bridge.postMessage({\n goBack: \"goBack\",\n });\n }\n\n static setMemberIsLoggedIn(isLoggedIn: boolean) {\n Bridge.postMessage({\n isLoggedIn,\n });\n }\n\n static setMemberId(membershipId: string) {\n Bridge.postMessage({\n membershipId,\n });\n }\n\n static setMemberCanChat(canChat: boolean) {\n Bridge.postMessage({\n canChat,\n });\n }\n\n static configureLayout() {\n document.body.classList.add(\"tixxt--in-app\");\n\n const pageTitle = document.getElementById(\"static-page-title\");\n\n if (pageTitle?.textContent) {\n Bridge.setPageTitle(pageTitle?.textContent);\n }\n\n const title = document.querySelector(\"title\");\n if (title) {\n title?.parentNode?.removeChild(title);\n }\n }\n\n static async getAuthToken(key: string, options: { url: string }) {\n const token = await fetchApi(\"/api/v1/get-web-token\");\n\n Bridge.postMessage({\n [key]: { authToken: token, options },\n });\n }\n\n static alert(\n title: string,\n message: string,\n callbackName: string,\n callback: () => void,\n defaultValue?: string,\n ) {\n Bridge.postMessage({\n alert: { title, message, defaultValue, callbackName },\n });\n\n if (callback) {\n Bridge[callbackName] = callback;\n }\n }\n\n static prompt(message: string, callback: () => void, defaultValue?: string) {\n Bridge.alert(\"\", message, \"promptCallback\", callback, defaultValue);\n }\n\n static confirm(message: string, callback: () => void) {\n Bridge.alert(message, \"\", \"confirmCallback\", callback, undefined);\n }\n}\n","import React from \"react\";\nimport moment from \"moment\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { isObject } from \"lodash\";\n\nexport type Member = {\n id: string;\n name: string;\n path: string;\n images: { \"40x40@2\": string };\n is_external: boolean;\n profile: { [key: string]: { displayValue: string } | string | null };\n birthday?: string;\n birthday_is_today?: boolean;\n age?: number;\n};\n\ntype MemberRowProps = {\n member: Member;\n showAge?: boolean;\n};\n\nconst MemberRow: React.FC = ({ member, showAge }) => {\n return (\n
  • \n \n
    \n \n \n {member.name}\n \n {member.is_external && (\n {I18n.t(\"js.external_member.badge\")}\n )}\n
    \n {Object.entries(member.profile).map(([key, value]) => (\n \n {isObject(value) ? value.displayValue : value}\n \n ))}\n {member.birthday && (\n \n {member.birthday_is_today ? (\n \n \n \n {I18n.t(\"js.widgets.shared.member.birthday_is_today\")}\n \n {showAge && member.age && ` (${member.age})`}\n \n ) : (\n <>\n {moment(member.birthday).format(\"L\")}\n {showAge && member.age && ` (${member.age + 1})`}\n \n )}\n \n )}\n
    \n
    \n
  • \n );\n};\n\nexport default MemberRow;\n","import React from \"react\";\nimport MemberRow, { Member } from \"../shared/MemberRow\";\n\nexport type AdminMembersWidgetProps = {\n headline?: string;\n memberships: Member[];\n};\n\nconst AdminMembersWidget: React.FC = ({\n headline,\n memberships,\n}) => {\n return (\n
    \n {headline &&

    {headline}

    }\n
      \n {memberships.map((member) => (\n \n ))}\n
    \n
    \n );\n};\n\nexport default AdminMembersWidget;\n","import React from \"react\";\nimport moment from \"moment\";\nimport \"moment-timezone\";\n\nexport type Appointment = {\n id: string;\n name: string;\n start: string;\n end?: string;\n all_day?: boolean;\n path: string;\n meeting?: {\n join_url?: string;\n };\n location?: string;\n};\n\nfunction displayTime(appointment: Appointment) {\n const currentTime = moment.tz(moment(), moment.tz.guess());\n const startTime = moment.tz(appointment.start, moment.tz.guess());\n const allDay = appointment.all_day;\n if (appointment.end) {\n const endTime = moment.tz(appointment.end, moment.tz.guess());\n\n if (\n currentTime.isBetween(startTime, endTime, \"minute\", \"[]\") ||\n currentTime.isBetween(startTime, endTime, \"day\", \"[]\")\n ) {\n // today\n if (startTime.isSame(endTime, \"day\")) {\n if (!allDay) {\n // Case-3\n return (\n <>\n {`${startTime.format(\"LT\")} - ${endTime.format(\"LT\")}, `}\n {I18n.t(\"js.widgets.appointment.today\")}\n \n );\n }\n } else {\n if (currentTime.isSame(startTime, \"day\")) {\n if (allDay) {\n // Case-7 Case-12\n return (\n <>\n {I18n.t(\"js.widgets.appointment.today\")}\n {` -`}\n
    \n {`${endTime.format(\"dd\")}., ${endTime.format(\"L\")}`}\n \n );\n } else {\n // Case-10 Case-16\n return (\n <>\n {`${startTime.format(\"LT\")}, `}\n {I18n.t(\"js.widgets.appointment.today\")}\n {` -`}\n
    \n {`${endTime.format(\"dd\")}., ${endTime.format(\n \"L\",\n )}, ${endTime.format(\"LT\")}`}\n \n );\n }\n } else {\n if (currentTime.isSame(endTime, \"day\")) {\n if (allDay) {\n // Case-8 Case-14\n return {I18n.t(\"js.widgets.appointment.today\")};\n } else {\n // Case-11 Case-18\n return (\n <>\n {I18n.t(\"js.widget.appointment.until\")}\n {` ${endTime.format(\"LT\")}, `}\n {I18n.t(\"js.widgets.appointment.today\")}\n \n );\n }\n } else {\n if (allDay) {\n // Case-13\n return (\n <>\n {I18n.t(\"js.widgets.appointment.today\")}\n {\" -\"}\n
    \n {`${endTime.format(\"dd\")}., ${endTime.format(\"L\")}`}\n \n );\n } else {\n // Case-17\n return (\n <>\n {I18n.t(\"js.widgets.appointment.today\")}\n {\" -\"}\n
    \n {`${endTime.format(\"dd\")}., ${endTime.format(\n \"L\",\n )}, ${endTime.format(\"LT\")}`}\n \n );\n }\n }\n }\n }\n } else {\n // future\n if (startTime.isSame(endTime, \"day\")) {\n if (allDay) {\n // Case-4\n return startTime.format(\"dd., L\");\n } else {\n // Case-6\n return startTime.format(\"dd., L, LT - \") + endTime.format(\"LT\");\n }\n } else {\n if (allDay) {\n // Case-9 Case-15\n return startTime.format(\"dd., L - \") + endTime.format(\"dd., L\");\n } else {\n // Case-19\n return (\n startTime.format(\"dd., L, LT - \") + endTime.format(\"dd., L, LT - \")\n );\n }\n }\n }\n } else {\n if (currentTime.isSame(startTime, \"day\")) {\n if (allDay) {\n // Case-1\n return {I18n.t(\"js.widgets.appointment.today\")};\n } else {\n // Case-2\n return (\n <>\n {`${startTime.format(\"LT\")}, `}\n {I18n.t(\"js.widgets.appointment.today\")}\n \n );\n }\n } else {\n if (allDay) {\n // Case-4\n return startTime.format(\"dd., L\");\n } else {\n // Case-5\n return startTime.format(\"dd., L, LT\");\n }\n }\n }\n}\n\ntype AppointmentRowProps = {\n appointment: Appointment;\n};\n\nconst AppointmentRow: React.FC = ({ appointment }) => {\n const currentTime = moment.tz(moment(), moment.tz.guess());\n const startTime = moment.tz(appointment.start, moment.tz.guess());\n\n return (\n
  • \n \n {appointment.meeting?.join_url && (\n \n )}\n \n {appointment.name}\n \n \n \n \n {displayTime(appointment)}\n \n {appointment.location && (\n \n \n {appointment.location}\n \n )}\n
  • \n );\n};\n\nexport default AppointmentRow;\n","import React from \"react\";\nimport AppointmentRow, { Appointment } from \"../shared/AppointmentRow\";\n\nexport type AppointmentsWidgetProps = {\n appointments: Appointment[];\n headline?: string;\n};\n\nconst AppointmentsWidget: React.FC = ({\n appointments,\n headline,\n}) => {\n return (\n
    \n {headline &&

    {headline}

    }\n
      \n {appointments.length > 0 ? (\n appointments.map((appointment) => (\n \n ))\n ) : (\n

      {I18n.t(\"widgets.appointment.no_upcoming_appointments\")}

      \n )}\n
    \n
    \n );\n};\n\nexport default AppointmentsWidget;\n","import React from \"react\";\nimport MemberRow, { Member } from \"../shared/MemberRow\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport type BirthdayWidgetProps = {\n headline?: string;\n your_birthday?: boolean;\n show_age?: boolean;\n memberships: Member[];\n};\n\nconst BirthdayWidget: React.FC = ({\n headline,\n your_birthday,\n show_age,\n memberships,\n}) => {\n return (\n
    \n {headline &&

    {headline}

    }\n {your_birthday && (\n \n \n {I18n.t(\"js.widgets.birthday.gratulations\")}\n \n )}\n
      \n {memberships.map((member) => (\n \n ))}\n
    \n
    \n );\n};\n\nexport default BirthdayWidget;\n","import React from \"react\";\n\nexport type GroupInfoWidgetProps = {\n headline?: string;\n content: string;\n};\n\nconst GroupInfoWidget: React.FC = ({\n headline,\n content,\n}) => {\n return (\n
    \n {headline &&

    {headline}

    }\n \n
    \n );\n};\n\nexport default GroupInfoWidget;\n","import React from \"react\";\nimport MemberRow from \"../shared/MemberRow\";\n\ntype Member = {\n id: string;\n name: string;\n path: string;\n images: { \"40x40@2\": string };\n is_external: boolean;\n profile: { [key: string]: { displayValue: string } | string };\n birthday?: string;\n birthday_is_today?: boolean;\n age?: number;\n};\n\nexport type NewestMembersWidgetProps = {\n headline?: string;\n memberships: Member[];\n};\n\nconst NewestMembersWidget: React.FC = ({\n headline,\n memberships,\n}) => {\n return (\n
    \n {headline &&

    {headline}

    }\n
      \n {memberships.map((member) => (\n \n ))}\n
    \n
    \n );\n};\n\nexport default NewestMembersWidget;\n","import React from \"react\";\nimport MemberRow, { Member } from \"../shared/MemberRow\";\n\nexport type OnlineMembersWidgetProps = {\n headline?: string;\n memberships: Member[];\n};\n\nconst OnlineMembersWidget: React.FC = ({\n headline,\n memberships,\n}) => {\n return (\n
    \n {headline &&

    {headline}

    }\n
      \n {memberships.length === 0 ? (\n
    • {I18n.t(\"js.widgets.online_members.no_other_members_online\")}
    • \n ) : (\n memberships.map((member) => (\n \n ))\n )}\n
    \n
    \n );\n};\n\nexport default OnlineMembersWidget;\n","import React from \"react\";\n\ntype RssWidgetItem = {\n url: string;\n title: string;\n};\n\nexport type RssWidgetProps = {\n headline?: string;\n error?: string;\n items: RssWidgetItem[];\n};\n\nconst RssWidget: React.FC = ({ headline, error, items }) => {\n return (\n
    \n {headline &&

    {headline}

    }\n {error && (\n
    {I18n.t(\"js.widgets.rss.error_text\")}
    \n )}\n
      \n {items.map((item, index) => (\n
    • \n \n {item.title}\n \n
    • \n ))}\n
    \n
    \n );\n};\n\nexport default RssWidget;\n","import React, { useState, useEffect } from \"react\";\n\nimport MemberRow, { Member } from \"../shared/MemberRow\";\n\nexport type SpeedDialWidgetProps = {\n headline?: string;\n memberships: Member[];\n show_age?: boolean;\n};\n\nconst SpeedDialWidget: React.FC = ({\n headline,\n memberships,\n show_age,\n}) => {\n const [members, setMembers] = useState([]);\n\n useEffect(() => {\n setMembers(memberships);\n }, [memberships]);\n\n return (\n
    \n {headline &&

    {headline}

    }\n
      \n {members.length === 0 ? (\n
    • {I18n.t(\"js.widgets.speed_dial.empty_list_text\")}
    • \n ) : (\n members.map((member) => (\n \n ))\n )}\n
    \n
    \n );\n};\n\nexport default SpeedDialWidget;\n","import React from \"react\";\n\nexport type TextWidgetProps = {\n headline?: string;\n content: string;\n};\n\nconst TextWidget: React.FC = ({ headline, content }) => (\n
    \n {headline &&

    {headline}

    }\n \n
    \n);\n\nexport default TextWidget;\n","import React from \"react\";\nimport {\n useActivitystreamWidgetbar,\n WidgetResponse,\n} from \"components/widgetbars/api\";\nimport AdminMembersWidget from \"./widgets/AdminMembersWidget\";\nimport AppointmentsWidget from \"./widgets/AppointmentsWidget\";\nimport BirthdayWidget from \"./widgets/BirthdayWidget\";\nimport GroupInfoWidget from \"./widgets/GroupInfoWidget\";\nimport NewestMembersWidget from \"./widgets/NewestMembersWidget\";\nimport OnlineMembersWidget from \"./widgets/OnlineMembersWidget\";\nimport RssWidget from \"./widgets/RssWidget\";\nimport SpeedDialWidget from \"./widgets/SpeedDialWidget\";\nimport TextWidget from \"./widgets/TextWidget\";\n\ntype Props = {\n group_id?: string;\n slug: string;\n};\n\nfunction renderWidgetComponent(widget: WidgetResponse) {\n switch (widget.type) {\n case \"appointments\":\n return ;\n case \"online_members\":\n return ;\n case \"admin_members\":\n return ;\n case \"rss\":\n return ;\n case \"speed_dial\":\n return ;\n case \"group_info\":\n return ;\n case \"newest_members\":\n return ;\n case \"text\":\n return ;\n case \"birthday\":\n return ;\n }\n}\n\nconst ActivitystreamWidgetbar = ({ group_id, slug }: Props) => {\n const { data, isLoading, isError } = useActivitystreamWidgetbar({\n group_id,\n slug,\n });\n\n if (isLoading) {\n const loadingText = I18n.t(\"js.widgets.widgetbar.loading_widgets\");\n return (\n
    \n \n {loadingText}\n
    \n
    \n );\n }\n\n if (isError) {\n const errorText = I18n.t(\"js.widgets.widgetbar.loading_error\");\n return
    {errorText}
    ;\n }\n\n return (\n
    \n {data?.widgets.map(renderWidgetComponent)}\n
    \n );\n};\n\nexport default ActivitystreamWidgetbar;\n","import { useQuery, UseQueryResult } from \"react-query\";\nimport { stringify } from \"query-string\";\n\ntype WidgetbarMembership = {\n id: string;\n name: string;\n path: string;\n images: { \"40x40@2\": string };\n is_external: boolean;\n profile: any;\n birthday?: string;\n birthday_is_today?: boolean;\n age?: number;\n};\n\ntype WidgetbarAppointment = {\n id: string;\n name: string;\n start: string;\n end?: string;\n all_day?: boolean;\n path: string;\n meeting?: {\n join_url?: string;\n };\n location?: string;\n};\n\nexport type AppointmentsWidgetResponse = {\n id: string;\n type: \"appointments\";\n headline: string;\n appointments: WidgetbarAppointment[];\n};\n\nexport type OnlineMembersWidgetResponse = {\n id: string;\n type: \"online_members\";\n headline: string;\n online_count: number;\n memberships: WidgetbarMembership[];\n};\n\nexport type AdminMembersWidgetResponse = {\n id: string;\n type: \"admin_members\";\n headline: string;\n memberships: WidgetbarMembership[];\n};\n\nexport type RssWidgetResponse = {\n id: string;\n type: \"rss\";\n headline: string;\n items: { title: string; url: string }[];\n error?: string;\n};\n\nexport type SpeedDialWidgetResponse = {\n id: string;\n type: \"speed_dial\";\n headline: string;\n memberships: WidgetbarMembership[];\n};\n\nexport type GroupInfoWidgetResponse = {\n id: string;\n type: \"group_info\";\n headline?: string;\n content: string;\n};\n\nexport type NewestMembersWidgetResponse = {\n id: string;\n type: \"newest_members\";\n headline: string;\n memberships: WidgetbarMembership[];\n};\n\nexport type TextWidgetResponse = {\n id: string;\n type: \"text\";\n headline?: string;\n content: string;\n content_plain: string;\n};\n\nexport type BirthdayWidgetResponse = {\n id: string;\n type: \"birthday\";\n headline: string;\n show_age: boolean;\n your_birthday: boolean;\n memberships: WidgetbarMembership[];\n};\n\nexport type WidgetResponse =\n | AppointmentsWidgetResponse\n | OnlineMembersWidgetResponse\n | AdminMembersWidgetResponse\n | RssWidgetResponse\n | SpeedDialWidgetResponse\n | GroupInfoWidgetResponse\n | NewestMembersWidgetResponse\n | TextWidgetResponse\n | BirthdayWidgetResponse;\n\ntype WidgetbarResponse = {\n slug: string;\n widgets: WidgetResponse[];\n empty?: boolean;\n};\n\nexport function useActivitystreamWidgetbar({\n group_id,\n slug,\n}: {\n group_id?: string | null;\n slug: string;\n}): UseQueryResult {\n const path = group_id\n ? `/widgetbars/g-:group_id-as-:slug?${stringify({ group_id, slug })}`\n : `/widgetbars/as-:slug?${stringify({ slug })}`;\n\n return useQuery(path);\n}\n","import \"@hotwired/turbo\";\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\nimport \"whatwg-fetch\";\nimport moment from \"moment-timezone\";\nimport \"moment/locale/es\";\nimport \"moment/locale/fr\";\nimport \"moment/locale/de\";\nimport jQuery from \"jquery\";\nimport lodash from \"lodash\";\nimport hljs from \"highlight.js\";\nimport ClipboardJS from \"clipboard/src/clipboard\";\n\n// Stimulus\nimport \"../controllers\";\n\n// Basic layout styles and components\nimport \"../layout/index\";\n\nimport store from \"store\";\nimport wrapProvider from \"../helpers/components/wrapProvider\";\n\nimport ParticipantsList from \"components/appointments/ParticipantsList\";\nimport Invites from \"components/appointments/Invites\";\nimport AppointmentContact from \"components/appointments/Contact\";\nimport ActivityComposer from \"components/activitystreams/composer\";\nimport ReplyComposer from \"components/activitystreams/replyComposer\";\nimport adaptedFileComponents from \"components/files/adaptedFileComponents\";\nimport adaptedSharedComponents from \"components/shared/adaptedSharedComponents\";\nimport adaptedAppCreatorComponents from \"components/appCreatorTemporary/adaptedAppCreatorComponents\";\nimport adaptedAdministrationComponents from \"components/administration/adaptedAdministrationComponents\";\nimport CalendarSheet from \"components/appointments/CalendarSheet\";\nimport ExternalIdComponent from \"../components/rundschreiben/ExternalIdComponent\";\nimport { launchApp } from \"../components/App\";\nimport loadAndConfigureCKEditor from \"../helpers/ckeditor/loadAndConfigureCKEditor\";\nimport { setApplication } from \"../helpers/setApplication\";\nimport Datepicker from \"../helpers/Datepicker\";\nimport showCookieModal from \"../helpers/showCookieModal\";\nimport documentReady from \"../helpers/documentReady\";\nimport customLodashCompat from \"../helpers/legacy/customLodashCompat\";\nimport adaptBackboneView from \"../helpers/legacy/adaptBackboneView\";\nimport Bridge from \"turbo/bridge.tsx\";\nimport initializeCustomConfirm from \"turbo/confirm_compat.js\";\nimport { fetchApi } from \"../helpers/reactQueryApi\";\nimport ActivitystreamWidgetbar from \"../components/widgetbars/ActivitystreamWidgetbar\";\n\nadaptBackboneView.addComponents({\n \"appointments/ParticipantsList\": ParticipantsList,\n \"appointments/Invites\": Invites,\n \"appointments/Contact\": AppointmentContact,\n \"activitystreams/Composer\": ActivityComposer,\n \"activitystreams/ReplyComposer\": wrapProvider(store)(ReplyComposer),\n \"calendars/MonthSheetView\": CalendarSheet,\n \"rundschreiben/ExternalIdComponent\": ExternalIdComponent,\n \"widgetbars/ActivitystreamWidgetbar\": ActivitystreamWidgetbar,\n ...adaptedFileComponents,\n ...adaptedSharedComponents,\n ...adaptedAppCreatorComponents,\n ...adaptedAdministrationComponents,\n});\n\n// Backwards compat\nwindow.jQuery = window.$ = jQuery;\nwindow._ = lodash;\nwindow._compat = customLodashCompat;\nwindow.hljs = hljs;\nwindow.adaptBackboneView = adaptBackboneView;\nwindow.loadAndConfigureCKEditor = loadAndConfigureCKEditor;\nwindow.moment = moment;\nwindow.ClipboardJS = ClipboardJS;\nwindow.Datepicker = Datepicker;\n\n// check if is access by app and do some configuration if so\nconst regex = new RegExp(/tixxt App/gm);\nwindow.isApp = regex.test(window.navigator.userAgent);\n\nwindow.bridge = {\n prompt: (message, defaultValue, callback) => {\n const userInput = prompt(message, defaultValue);\n\n if (callback) {\n callback(userInput);\n }\n },\n confirm: (message, callback) => {\n const confirmed = confirm(message);\n\n if (confirmed) {\n callback();\n }\n },\n};\n\ndocumentReady(() => initializeCustomConfirm());\n\n// Global helper stuff\nif (window.isApp) {\n window.bridge = Bridge;\n\n document.addEventListener(\"turbo:load\", Bridge.configureLayout);\n}\n\nwindow.Application = setApplication();\nwindow.showCookieModal = showCookieModal;\nwindow.fetchApi = fetchApi;\n\nlaunchApp();\n","export default function initializeCustomConfirm() {\n $.rails.allowAction = function (element) {\n let message = element.data(\"confirm\");\n\n if (!message) {\n return true;\n }\n\n if (element.data(\"confirmed\")) {\n element.data(\"confirmed\", false);\n\n return $.rails.fire(element, \"confirm:complete\", [true]);\n }\n\n if ($.rails.fire(element, \"confirm\")) {\n try {\n window.bridge.confirm(message, function () {\n element.data(\"confirmed\", true);\n const callback = $.rails.fire(element, \"confirm:complete\", [true]);\n if (callback) {\n $.rails.fire(element, \"click\");\n }\n });\n } catch (e) {\n (console.error || console.log).call(console, e.stack || e);\n }\n }\n\n return false;\n };\n}\n","import documentReady from \"./documentReady\";\nimport Modal from \"bootstrap/js/dist/modal\";\n\n/* This is used to show the modal from app/views/shared/_cookie_modal.html.haml */\nexport default function showCookieModal() {\n let cookieModal;\n\n documentReady(function () {\n const cookieModalElement = document.getElementById(\n \"cookieModal\",\n ) as HTMLElement;\n cookieModal = new Modal(cookieModalElement, {\n keyboard: false,\n backdrop: \"static\",\n });\n\n cookieModalElement.addEventListener(\"click\", modalCloser);\n cookieModal.show();\n });\n\n function modalCloser() {\n document.cookie = \"modal=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\n cookieModal.hide();\n }\n}\n","const myDefaultState = {\n muted_until: null,\n app_muted_until: null,\n last_read_id: null,\n unread_count: 0,\n};\n\n// Lookup for best performance\nconst POSSIBLE_PARTNER_ACTION_TYPES = {\n \"chat/MARK_AS_READ/RECEIVE\": true,\n \"chat/MARK_AS_RECEIVED/RECEIVE\": true,\n};\n// True if action origins from partner, determined by membership_id and channel topic it was received on\nconst isPartnerAction = ({ type, payload, meta }) =>\n POSSIBLE_PARTNER_ACTION_TYPES[type] &&\n meta.topic !== `member:${payload.membership_id}`;\n\nexport const myStateReducer = (state = myDefaultState, action) => {\n if (isPartnerAction(action)) {\n return state;\n }\n\n switch (action.type) {\n case \"chat/MARK_AS_READ/RECEIVE\":\n case \"chat/MARK_AS_READ\":\n return {\n ...state,\n unread_count: 0,\n last_read_id: action.payload.last_read_id,\n };\n case \"chat/MUTE_CHAT\":\n case \"chat/MUTE_CHAT/RECEIVE\":\n return {\n ...state,\n muted_until: action.payload.muted_until,\n };\n case \"chat/APP_MUTE_CHAT\":\n case \"chat/APP_MUTE_CHAT/RECEIVE\":\n return {\n ...state,\n app_muted_until: action.payload.muted_until,\n };\n case \"chat/UNMUTE_CHAT\":\n case \"chat/UNMUTE_CHAT/RECEIVE\":\n return {\n ...state,\n muted_until: null,\n };\n case \"chat/APP_UNMUTE_CHAT\":\n case \"chat/APP_UNMUTE_CHAT/RECEIVE\":\n return {\n ...state,\n app_muted_until: null,\n };\n case \"chat/MESSAGE/RECEIVE\":\n return {\n ...state,\n unread_count: state.unread_count + 1,\n };\n default:\n return state;\n }\n};\n\nconst partnerDefaultState = {\n last_received_id: null,\n last_read_id: null,\n};\n\nexport const partnerStateReducer = (state = partnerDefaultState, action) => {\n if (!isPartnerAction(action)) {\n return state;\n }\n\n switch (action.type) {\n case \"chat/MARK_AS_RECEIVED/RECEIVE\":\n return {\n ...state,\n last_received_id: action.payload.last_received_id,\n };\n\n case \"chat/MARK_AS_READ/RECEIVE\":\n return {\n ...state,\n last_read_id: action.payload.last_read_id,\n };\n default:\n return state;\n }\n};\n","import { isEmpty } from \"lodash\";\nimport keyByFp from \"lodash/fp/keyBy\";\nimport flow from \"lodash/fp/flow\";\nimport getFp from \"lodash/fp/get\";\nimport { get, includes } from \"lodash\";\nimport { myStateReducer, partnerStateReducer } from \"./chatStateReducers\";\nimport { loadChatDetails } from \"../../actions/chat\";\n\n// Pull chats value from payload and key it by id\nconst extractChats = flow(getFp(\"chats\"), keyByFp(\"id\"));\n\nexport const requestStateReducer = (state = {}, action) => {\n switch (action.type) {\n case loadChatDetails.type:\n case \"chat/MORE_MESSAGES\": {\n return {\n ...state,\n loadingMessages: true,\n };\n }\n case loadChatDetails.replyType:\n case \"chat/MORE_MESSAGES/REPLY\": {\n return {\n ...state,\n loadingMessages: false,\n moreMessagesAvailable: !isEmpty(action.payload.messages),\n };\n }\n default:\n return state;\n }\n};\n\nconst defaultStateFromAction = (action) => ({\n id: get(action.payload, [\"chat_id\"]),\n name: get(action.payload, [\"from\", \"name\"]),\n image_id: get(action.payload, [\"from\", \"image_id\"]),\n state: myStateReducer(undefined, { type: \"INIT\" }),\n partner_state: partnerStateReducer(undefined, { type: \"INIT\" }),\n last_interacted_at: null,\n});\n\nexport const chatReducer = (maybeUndefinedState, action) => {\n const state = maybeUndefinedState || defaultStateFromAction(action);\n\n switch (action.type) {\n case \"chat/MESSAGE/RECEIVE\": {\n return {\n ...state,\n last_interacted_at: action.payload.created_at,\n state: myStateReducer(state.state, action),\n last_message: action.payload,\n };\n }\n case \"chat/MESSAGE/REPLY\": {\n return {\n ...state,\n last_interacted_at: action.payload.created_at,\n last_message: action.payload,\n };\n }\n case \"chat/MARK_AS_RECEIVED/RECEIVE\":\n case \"chat/MARK_AS_READ/RECEIVE\":\n case \"chat/MARK_AS_READ\": {\n return {\n ...state,\n state: myStateReducer(state.state, action),\n partner_state: partnerStateReducer(state.partner_state, action),\n };\n }\n case \"chat/MUTE_CHAT\":\n case \"chat/APP_MUTE_CHAT\":\n case \"chat/MUTE_CHAT/RECEIVE\":\n case \"chat/APP_MUTE_CHAT/RECEIVE\":\n case \"chat/UNMUTE_CHAT\":\n case \"chat/APP_UNMUTE_CHAT\":\n case \"chat/UNMUTE_CHAT/RECEIVE\":\n case \"chat/APP_UNMUTE_CHAT/RECEIVE\": {\n return {\n ...state,\n state: myStateReducer(state.state, action),\n };\n }\n case loadChatDetails.type:\n case \"chat/MORE_MESSAGES\":\n case \"chat/MORE_MESSAGES/REPLY\":\n return {\n ...state,\n requestState: requestStateReducer(state.requestState, action),\n };\n case loadChatDetails.replyType:\n return {\n ...state,\n can: action.payload.can,\n requestState: requestStateReducer(state.requestState, action),\n };\n default:\n return state;\n }\n};\n\nconst getChatIdFromPayload = getFp([\"payload\", \"chat_id\"]);\nconst getChatIdFromMeta = getFp([\"meta\", \"chatId\"]);\nconst getChatId = (action) =>\n getChatIdFromPayload(action) || getChatIdFromMeta(action);\n\n// Workaround for composing starts a new chat for the counterpart\nconst BLACKLIST = [\"chat/COMPOSING/RECEIVE\", \"chat/COMPOSING/STOPPED\"];\n\nexport default (state = {}, action) => {\n switch (action.type) {\n // Full list of chats received, store them keyed by id\n case \"chat/MY_CHATS/REPLY\":\n return extractChats(action.payload);\n case \"chat/CREATE_CHAT/REPLY\":\n case \"chat/CREATE_CHAT/RECEIVE\":\n return { ...state, [action.payload.id]: action.payload };\n default: {\n const chatId = getChatId(action);\n if (!chatId || includes(BLACKLIST, action.type)) {\n return state;\n }\n return {\n ...state,\n [chatId]: chatReducer(state[chatId], action),\n };\n }\n }\n};\n","import { get, findLastIndex } from \"lodash\";\nimport { loadChatDetails } from \"../../actions/chat\";\n\n// merge received messages into existing list of messages while maintaining a correct order\n// both lists must already be ordered by id ascending themselves\n//\n// see tests for examples\nexport const mergeMessages = (messages, received) => {\n // shortcuts\n if (messages.length == 0) {\n return received;\n }\n if (received.length == 0) {\n return messages;\n }\n\n // a,b are the heads, r1,r2 are the remainders, out is for result\n let [a, ...r1] = messages;\n let [b, ...r2] = received;\n const out = [];\n\n while (a && b) {\n // keep a (existing) over b (received) if both are equal and shift both\n if (a.id === b.id) {\n out.push(a);\n a = r1.shift();\n b = r2.shift();\n // insert a next if its id is smaller than b and shift a\n } else if (a.id < b.id) {\n out.push(a);\n a = r1.shift();\n // insert b next if its id is smaller than a and shift b\n } else {\n out.push(b);\n b = r2.shift();\n }\n }\n\n if (a) {\n out.push(a);\n }\n if (b) {\n out.push(b);\n }\n\n return out.concat(r1).concat(r2);\n};\n\n// Inserts message into list or updates it if it already exists\n// Always keeps the order\nconst insertOrUpdateMessage = (list, message) => {\n const index = findLastIndex(list, ({ id }) => id <= message.id);\n\n // Prevent duplication\n const keepUntil =\n index >= 0 && list[index].id === message.id ? index : index + 1;\n\n return [...list.slice(0, keepUntil), message, ...list.slice(index + 1)];\n};\n\n// Remove message from list by cid\n// Is slightly optimized to process as little as possible, instead of using filter(list, ...)\nconst removeByClientId = (list, searchClientId) => {\n const index = findLastIndex(list, ({ cid }) => cid === searchClientId);\n if (index === -1) return list;\n\n return [...list.slice(0, index), ...list.slice(index + 1)];\n};\n\nexport const messageList = (list = [], action) => {\n switch (action.type) {\n case \"chat/MESSAGE/PUSH\":\n return [\n ...list,\n {\n id: null,\n from: action.meta.from,\n ...action.payload,\n cid: action.meta.ref,\n },\n ];\n case \"chat/MESSAGE/REPLY\":\n return insertOrUpdateMessage(removeByClientId(list, action.meta.ref), {\n cid: action.meta.ref,\n ...action.payload,\n });\n case \"chat/MESSAGE/RECEIVE\":\n return insertOrUpdateMessage(list, action.payload);\n case loadChatDetails.replyType:\n return mergeMessages(list, action.payload.messages.reverse());\n case \"chat/MORE_MESSAGES/REPLY\":\n return mergeMessages(action.payload.messages.reverse(), list);\n default:\n return list;\n }\n};\n\nexport default (state = {}, action) => {\n switch (action.type) {\n case \"chat/MESSAGE/PUSH\":\n case \"chat/MESSAGE/REPLY\":\n case \"chat/MESSAGE/RECEIVE\":\n case loadChatDetails.replyType:\n case \"chat/MORE_MESSAGES/REPLY\": {\n const chatId =\n get(action, [\"payload\", \"chat_id\"]) || get(action, [\"meta\", \"chatId\"]);\n if (!chatId) {\n return state;\n }\n return {\n ...state,\n [chatId]: messageList(get(state, [chatId]), action),\n };\n }\n default:\n return state;\n }\n};\n","import { last } from \"lodash\";\nimport { IS_API_REQUEST } from \"../../actions/chat\";\n\nconst apiRequests = (state = {}, action) => {\n if (action[IS_API_REQUEST]) {\n return {\n ...state,\n [action.type]: \"pending\",\n };\n } else if (action.parentAction && action.parentAction[IS_API_REQUEST]) {\n return {\n ...state,\n [action.parentAction.type]: last(action.type.split(\"/\")).toLowerCase(),\n };\n }\n return state;\n};\n\nexport default apiRequests;\n","import { includes, without } from \"lodash\";\n\n// Maintains unique, ordered list of membership ids which are currently composing (oldest first)\nconst composingInChat = (state = [], action) => {\n switch (action.type) {\n case \"chat/COMPOSING/RECEIVE\":\n return includes(state, action.payload.from.id)\n ? state\n : [...state, action.payload.from.id];\n case \"chat/COMPOSING/STOPPED\":\n case \"chat/MESSAGE/RECEIVE\":\n return without(state, action.payload.from.id);\n default:\n return state;\n }\n};\n\nconst composing = (state = {}, action) => {\n switch (action.type) {\n case \"chat/COMPOSING/RECEIVE\":\n case \"chat/COMPOSING/STOPPED\":\n case \"chat/MESSAGE/RECEIVE\":\n return {\n ...state,\n [action.payload.chat_id]: composingInChat(\n state[action.payload.chat_id],\n action,\n ),\n };\n default:\n return state;\n }\n};\n\nexport default composing;\n","import { reduce, map } from \"lodash\";\nimport { loadChatDetails } from \"../../actions/chat\";\n\n// Stores homie to state if it is not yet known (this is a performance optimization)\nconst storeHomie = (state, homie) =>\n state[homie.id]\n ? state\n : {\n ...state,\n [homie.id]: homie,\n };\n\n// Keeps track of homies, i.e. for displaying of composing status\nconst homies = (state = {}, action) => {\n switch (action.type) {\n case \"chat/MESSAGE/RECEIVE\":\n case \"chat/COMPOSING/RECEIVE\":\n return storeHomie(state, action.payload.from);\n case loadChatDetails.replyType:\n case \"chat/MORE_MESSAGES/REPLY\":\n return reduce(map(action.payload.messages, \"from\"), storeHomie, state);\n default:\n return state;\n }\n};\n\nexport default homies;\n","import { combineReducers } from \"redux\";\nimport identity from \"lodash/fp/identity\";\nimport get from \"lodash/fp/get\";\nimport flow from \"lodash/fp/flow\";\nimport groupBy from \"lodash/fp/groupBy\";\nimport chats from \"./chats\";\nimport messages from \"./messages\";\nimport session from \"./session\";\nimport composer from \"./composer\";\nimport apiRequests from \"./apiRequests\";\nimport composing from \"./composing\";\nimport homies from \"./homies\";\n\nexport const transformPayload = (\n type,\n payloadTransformer,\n defaultState = null,\n) => {\n return (state = defaultState, action) => {\n if (action.type !== type) {\n return state;\n }\n return payloadTransformer(action.payload);\n };\n};\n\nconst getGroupCategoryName = get([\"category\", \"plural_name\"]);\nconst categoryOrMemberType = (memberOrGroup) =>\n memberOrGroup.type === \"member\"\n ? \"member\"\n : getGroupCategoryName(memberOrGroup);\n\nconst chatReducer = combineReducers({\n chats,\n session,\n messages,\n composer,\n apiRequests,\n profile: transformPayload(\"chat/MY_PROFILE/REPLY\", get(\"profile\")),\n navigation: transformPayload(\"chat/NAVIGATE\", identity, { route: \"root\" }),\n presence: combineReducers({\n onlineMembers: transformPayload(\"chat/PRESENCE/SYNC\", get(\"onlineMembers\")),\n busyMembers: transformPayload(\"chat/PRESENCE/SYNC\", get(\"busyMembers\")),\n }),\n availableChats: transformPayload(\n \"chat/AVAILABLE_CHATS/SUCCESS\",\n flow(get(\"entries\"), groupBy(categoryOrMemberType)),\n {},\n ),\n composing,\n homies,\n});\n\nexport default chatReducer;\n","export default (state = {}, action) => {\n switch (action.type) {\n case \"chat/INIT\":\n return {\n networkUrl: action.payload.networkUrl,\n };\n case \"chat/SOCKET/ON_OPEN\":\n return {\n ...state,\n connected: true,\n };\n case \"chat/SOCKET/ON_CLOSE\":\n case \"chat/SOCKET/ON_ERROR\":\n return {\n ...state,\n connected: false,\n };\n case \"chat/FETCH_CREDENTIALS/FAILURE\":\n return {\n ...state,\n authorizationError: \"fetch_credentials_failed\",\n };\n default:\n return state;\n }\n};\n","export default (state = {}, action) => {\n switch (action.type) {\n case \"chat/COMPOSER/SET_MESSAGE_TO_QUOTE\":\n return {\n ...state,\n [action.chatId]: {\n ...state[action.chatId],\n messageToQuoteId: action.messageId,\n },\n };\n case \"chat/COMPOSER/SET_TEXT\":\n return {\n ...state,\n [action.chatId]: {\n ...state[action.chatId],\n text: action.text,\n },\n };\n case \"chat/SEND_MESSAGE\": {\n return {\n ...state,\n [action.meta.chatId]: {\n text: \"\",\n messageToQuoteId: \"\",\n },\n };\n }\n default:\n return state;\n }\n};\n","import { put, cancelled, take } from \"redux-saga/effects\";\nimport { eventChannel } from \"redux-saga\";\n\n/*\n * Helper to run yield effect and success / failure effects accordingly\n */\nexport function* tryYield(effect, getSuccessEffect, getFailureEffect) {\n let result = null;\n\n try {\n result = yield effect;\n } catch (error) {\n return yield getFailureEffect(error);\n }\n\n return yield getSuccessEffect(result);\n}\n\n/*\n * Creates a saga that converts emitted events into dispatched actions\n */\nexport const createEventSaga = ({ events, bind, remove }) => {\n return function* eventSaga(subject) {\n const channel = eventChannel((emit) => {\n // create handlers\n const handlers = events(emit, subject);\n\n // bind handlers to the subject\n bind(subject, handlers);\n\n // will be called when eventChannel is closed\n return () => (remove ? remove(subject, handlers) : null);\n });\n try {\n while (true) {\n const action = yield take(channel);\n yield put(action);\n }\n } finally {\n if (yield cancelled()) {\n channel.close();\n }\n }\n };\n};\n","import { createEventSaga } from \"./helpers\";\nimport { Presence } from \"phoenix\";\nimport { map, maxBy } from \"lodash\";\n\n// Listen to presence synchronisations and dispatch them to redux\nconst presenceSaga = createEventSaga({\n events: (dispatch) => ({\n sync: (presence) => {\n const onlineMembers = {};\n const busyMembers = {};\n presence.list((id, { metas }) => {\n onlineMembers[id] = map(metas, (m) => parseInt(m.online_at, 10));\n busyMembers[id] = maxBy(map(metas, \"status\"), \"updated_at\");\n });\n dispatch({\n type: \"chat/PRESENCE/SYNC\",\n payload: { onlineMembers, busyMembers },\n });\n },\n }),\n bind: (channel, handlers) => {\n const presence = new Presence(channel);\n presence.onSync(handlers.sync.bind(null, presence));\n },\n});\n\nexport default presenceSaga;\n","import {\n call,\n apply,\n take,\n actionChannel,\n put,\n cancelled,\n select,\n} from \"redux-saga/effects\";\nimport { IS_API_REQUEST } from \"../../actions/chat\";\nimport { getNetworkUrl } from \"../../selectors/chat/application\";\n\n// Saga wich handles api requests like getting available chats\n// Super simple and only handles GET returning json\nexport function* handleApiRequests() {\n const apiRequests = yield actionChannel((action) => action[IS_API_REQUEST]);\n try {\n while (true) {\n const action = yield take(apiRequests);\n const { type, endpoint } = action;\n const networkUrl = yield select(getNetworkUrl);\n const url = `${networkUrl}${endpoint}`;\n\n yield put({ type: `${type}/REQUEST`, url, parentAction: action });\n\n try {\n const response = yield call(fetch, `${networkUrl}${endpoint}`, {\n credentials: \"include\",\n headers: { Accept: \"application/json\" },\n });\n const payload = yield apply(response, Response.prototype.json);\n yield put({\n type: `${type}/SUCCESS`,\n url,\n payload,\n parentAction: action,\n });\n } catch (error) {\n yield put({\n type: `${type}/FAILURE`,\n url,\n error,\n parentAction: action,\n });\n }\n }\n } finally {\n if (yield cancelled()) {\n apiRequests.close();\n console.log(\"handleApiRequests cancelled\");\n }\n }\n}\n","import delay from \"@redux-saga/delay-p\";\nimport {\n call,\n take,\n all,\n takeLatest,\n put,\n select,\n race,\n fork,\n actionChannel,\n cancel,\n} from \"redux-saga/effects\";\nimport { get, at } from \"lodash\";\n\nimport {\n loadChatDetails,\n markAsRead,\n loadMoreMessages,\n} from \"../../actions/chat\";\nimport {\n getLastReadIdForChat,\n getMoreMessagesAvailableForChat,\n} from \"../../selectors/chat/chat\";\nimport {\n getLastUnreadMessageInChat,\n getLastMessageIdInChat,\n getFirstMessageIdInChat,\n} from \"../../selectors/chat/messages\";\n\nimport { handleApiRequests } from \"./api\";\n\nexport const UNREAD_TIMER = 1000;\n\n// Time after which a previously received composing event is timed out\n// This is also used to determine throttle duration for pushing composing events (80% of this value)\nexport const COMPOSING_TIMEOUT = 2000;\n\nconst isShowChatNavigationAction = (action) =>\n action.type === \"chat/NAVIGATE\" && action.payload.route === \"showChat\";\n\nconst createWindowFocusPromise = () =>\n new Promise((resolve) => {\n const handler = () => {\n window.removeEventListener(\"focus\", handler);\n resolve();\n };\n\n window.addEventListener(\"focus\", handler);\n });\n\nexport function* fetchChatDetails({ chatId }) {\n yield put(loadChatDetails({ meta: { chatId } }));\n}\n\nexport function* fetchMoreRecentMessages({ chatId }) {\n const moreMessagesAvailable = yield select(getMoreMessagesAvailableForChat, {\n chatId,\n });\n\n if (moreMessagesAvailable) {\n const firstMessageId = yield select(getFirstMessageIdInChat, { chatId });\n\n if (firstMessageId) {\n yield put(\n loadMoreMessages({\n meta: { chatId },\n payload: { message_id: firstMessageId },\n }),\n );\n }\n }\n}\n\nfunction* markChatAsRead({ chatId, messageId }) {\n // Cancel mark as read if another navigation occurs quickly\n const result = yield race({\n ok: delay(UNREAD_TIMER),\n navigate: take(\"chat/NAVIGATE\"),\n mark_as_read: take(\"chat/CHAT/MARK_AS_READ\"),\n mark_as_read_start: take(\"chat/CHAT/MARK_AS_READ/START_TIMER\"),\n });\n\n if (result.ok) {\n yield put(\n markAsRead({\n meta: { chatId },\n payload: { last_read_id: messageId },\n }),\n );\n }\n}\n\nfunction* markChatAsReadHandler({ chatId }) {\n const lastReadId = yield select(getLastReadIdForChat, { chatId });\n const lastMessageId = yield select(getLastMessageIdInChat, { chatId });\n\n if (lastMessageId && lastReadId !== lastMessageId) {\n if (!document.hasFocus()) {\n yield call(createWindowFocusPromise);\n }\n\n const unreadMessage = yield select(getLastUnreadMessageInChat, { chatId });\n yield put({\n type: \"chat/CHAT/MARK_AS_READ/START_TIMER\",\n chatId,\n messageId: unreadMessage ? unreadMessage.id : lastMessageId,\n });\n }\n}\n\nfunction* navigateToChatWeCreated(action) {\n yield put({\n type: \"chat/NAVIGATE\",\n payload: { route: \"showChat\", params: { chatId: action.payload.id } },\n });\n}\n\nfunction* chatSaga(navigateAction) {\n const chatId = get(navigateAction, [\"payload\", \"params\", \"chatId\"]);\n\n yield call(fetchChatDetails, { chatId });\n\n yield all([\n takeLatest(\"chat/CHAT/MARK_AS_READ/START_TIMER\", markChatAsRead),\n takeLatest(\"chat/CHAT/SCROLL_START_REACHED\", fetchMoreRecentMessages),\n takeLatest(\"chat/CHAT/SCROLL_END_REACHED\", markChatAsReadHandler),\n ]);\n\n yield fork(markChatAsReadHandler, { chatId });\n}\n\nfunction* timeoutComposing(payload) {\n yield delay(COMPOSING_TIMEOUT);\n yield put({ type: \"chat/COMPOSING/STOPPED\", payload });\n}\n\n// Makes sure that composing state per chat and member is timed out\nfunction* timeoutComposingStates() {\n const timeoutTasks = {};\n const composingActions = yield actionChannel(\"chat/COMPOSING/RECEIVE\");\n while (true) {\n const { payload } = yield take(composingActions);\n const ident = at(payload, [\"chat_id\", \"membership_id\"]).join(\"/\");\n if (timeoutTasks[ident] && timeoutTasks[ident].isRunning()) {\n yield cancel(timeoutTasks[ident]);\n }\n timeoutTasks[ident] = yield fork(timeoutComposing, payload);\n }\n}\n\nfunction* applicationSaga() {\n yield all([\n takeLatest(isShowChatNavigationAction, chatSaga),\n fork(handleApiRequests),\n takeLatest(\"chat/CREATE_CHAT/REPLY\", navigateToChatWeCreated),\n fork(timeoutComposingStates),\n ]);\n}\n\nexport default applicationSaga;\n","import delay from \"@redux-saga/delay-p\";\nimport {\n all,\n call,\n take,\n fork,\n put,\n actionChannel,\n cancelled,\n throttle,\n takeLatest,\n select,\n} from \"redux-saga/effects\";\nimport { map, get, filter, reduce, isEmpty } from \"lodash\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { createEventSaga } from \"./helpers\";\nimport { IS_CHAT_QUERY, IS_NETWORK_QUERY } from \"../../actions/chat\";\nimport presenceSaga from \"./presence\";\nimport { COMPOSING_TIMEOUT, fetchChatDetails } from \"./application\";\nimport { getMyProfile } from \"../../selectors/chat/profile\";\nimport { getChatNavigation } from \"../../selectors/chat/application\";\n\nconst join = (channel) =>\n new Promise((resolve, reject) => {\n channel.join().receive(\"ok\", resolve).receive(\"error\", reject);\n });\n\nconst push = (channel, ...args) => channel.push(...args);\n\nconst pushReply = (channel, ...args) =>\n new Promise((resolve, reject) => {\n push(channel, ...args)\n .receive(\"ok\", resolve)\n .receive(\"error\", reject)\n .receive(\"timeout\", () => reject(\"timeout\"));\n });\n\n// Perform a push on the channel and expect a reply\nfunction* query(channel, event, { payload = null, meta: baseMeta } = {}) {\n const meta = {\n ...baseMeta,\n topic: channel.topic,\n event,\n };\n // Push phase action\n yield put({\n type: `chat/${event.toUpperCase()}/PUSH`,\n payload,\n meta,\n });\n\n try {\n // Actually perform the push on the socket\n const reply = yield call(pushReply, channel, event, payload);\n\n // Reply phase action\n yield put({\n type: `chat/${event.toUpperCase()}/REPLY`,\n payload: reply,\n meta,\n });\n\n // Reply in case caller wants it\n return reply;\n } catch (error) {\n // Reply phase action\n yield put({\n type: `chat/${event.toUpperCase()}/ERROR`,\n meta,\n error,\n });\n }\n}\n\n// Saga which handles incoming messages in a (group) channel\n// Listens for all RECEIVE_EVENTS and dispatches them as to redux\nconst RECEIVE_EVENTS = [\n \"message\",\n \"create_chat\",\n \"mark_as_read\",\n \"mark_as_received\",\n \"mute_chat\",\n \"unmute_chat\",\n \"composing\",\n];\nconst handleIncomingMessages = createEventSaga({\n events: (dispatch, subject) => {\n return reduce(\n RECEIVE_EVENTS,\n (handlers, event) => {\n const type = `chat/${event.toUpperCase()}/RECEIVE`;\n handlers[event] = (payload) =>\n dispatch({ type, payload, meta: { topic: subject.topic, event } });\n return handlers;\n },\n {},\n );\n },\n bind: (channel, handlers) =>\n map(handlers, (fn, name) => channel.on(name, fn)),\n remove: (channel, handlers) =>\n map(handlers, (fn, name) => channel.off(name, fn)),\n});\n\n// This basically does the routing from { type, id } to the correct topic\n// All of type member to the member channel\n// All of type group to the group channel with matching id\nconst createShouldHandleTo = (channel) => {\n const [channelType, channelId] = channel.topic.split(\":\");\n const shouldHandleTo =\n channelType == \"network\"\n ? (action) => action[IS_NETWORK_QUERY]\n : channelType == \"member\"\n ? ({ meta, type }) =>\n type === \"chat/MUTE_CHAT\" ||\n type === \"chat/APP_MUTE_CHAT\" ||\n (meta && meta.chatId && meta.chatId.indexOf(\"member/\") == 0)\n : ({ meta, type }) =>\n type !== \"chat/MUTE_CHAT\" &&\n type !== \"chat/APP_MUTE_CHAT\" &&\n meta &&\n meta.chatId &&\n meta.chatId === `group/${channelId}`;\n return shouldHandleTo;\n};\n\n// Saga which handles outgoing messages in a (group) channel\nfunction* handleOutgoingMessages(channel) {\n const outgoingMessages = yield actionChannel(\"chat/SEND_MESSAGE\");\n try {\n const shouldHandleTo = createShouldHandleTo(channel);\n\n while (true) {\n const action = yield take(outgoingMessages);\n if (shouldHandleTo(action)) {\n const from = yield select(getMyProfile);\n const payload = { ...action.payload, chat_id: action.meta.chatId };\n const meta = { ...action.meta, ref: uuidv4(), from };\n yield call(query, channel, \"message\", { payload, meta });\n }\n }\n } finally {\n if (yield cancelled()) {\n outgoingMessages.close();\n console.log(\"handleOutgoingMessages cancelled\", channel.topic);\n }\n }\n}\n\n// Saga wich handles queries like getting recent messages\nfunction* handleChatQueries(channel) {\n const chatQueries = yield actionChannel((action) => action[IS_CHAT_QUERY]);\n try {\n const shouldHandleTo = createShouldHandleTo(channel);\n while (true) {\n const action = yield take(chatQueries);\n if (shouldHandleTo(action)) {\n const event = action.type.split(\"/\")[1].toLowerCase();\n const payload = { ...action.payload };\n\n if (get(action, [\"meta\", \"chatId\"])) {\n payload.chat_id = get(action, [\"meta\", \"chatId\"]);\n }\n\n yield call(query, channel, event, {\n payload,\n meta: action.meta,\n });\n }\n }\n } finally {\n if (yield cancelled()) {\n chatQueries.close();\n console.log(\"chatQueries cancelled\", channel.topic);\n }\n }\n}\n\n// Sends composing event to channel\nfunction* pushComposingEvent(channel, { type, text, chatId }) {\n // Don't send \"composing\" on i.e. chat/SEND_MESSAGE or when composer was cleared\n if (type !== \"chat/COMPOSER/SET_TEXT\" || isEmpty(text)) {\n return;\n }\n const payload = { chat_id: chatId };\n yield put({ type: \"chat/COMPOSING/PUSH\", payload });\n yield call(push, channel, \"composing\", payload);\n}\n\n// Marks a single message as received, unless\n// - it is from ourselves\n// - or not in a member chat\nfunction* markMessageAsReceived(\n channel,\n membershipId,\n { payload: messagePayload },\n) {\n if (messagePayload.from.id === membershipId) return;\n if (messagePayload.chat_id.indexOf(\"member/\") !== 0) return;\n\n const payload = {\n chat_id: messagePayload.chat_id,\n last_received_id: messagePayload.id,\n };\n yield put({ type: \"chat/MARK_AS_RECEIVED/PUSH\", payload });\n yield call(push, channel, \"mark_as_received\", payload);\n}\n\n// Marks messages as received when loading list of chats\nfunction* markLastChatMessagesAsReceived(channel, membershipId, { payload }) {\n for (let chat of payload.chats) {\n if (\n !isEmpty(chat.last_message) &&\n chat.last_message.id > get(chat, [\"state\", \"last_received_id\"])\n ) {\n yield call(markMessageAsReceived, channel, membershipId, {\n payload: chat.last_message,\n });\n\n // Lets not flood the server too much\n yield delay(200);\n }\n }\n}\n\n// Saga which manages other sagas related to a (group) channel\nfunction* channelSaga(channel) {\n try {\n channel.join();\n\n yield all([\n call(handleIncomingMessages, channel),\n call(handleOutgoingMessages, channel),\n call(handleChatQueries, channel),\n ]);\n } finally {\n if (yield cancelled()) {\n channel.leave();\n console.log(\"channelSaga cancelled\", channel.topic);\n }\n }\n}\n\n// Starts member channel where all private messages must be sent to\nfunction* myChannelSaga(socket, networkChannel) {\n const { profile } = yield call(query, networkChannel, \"my_profile\");\n const memberChannel = socket.channel(`member:${profile.id}`);\n yield fork(channelSaga, memberChannel);\n\n // Send events via member channel, regardless where origin from\n // This removes the need for channel routing and the backend doesn't care either\n yield throttle(\n COMPOSING_TIMEOUT * 0.8,\n [\"chat/COMPOSER/SET_TEXT\", \"chat/SEND_MESSAGE\"],\n pushComposingEvent,\n memberChannel,\n );\n yield throttle(\n 500,\n [\"chat/MESSAGE/RECEIVE\"],\n markMessageAsReceived,\n memberChannel,\n profile.id,\n );\n yield takeLatest(\n [\"chat/MY_CHATS/REPLY\"],\n markLastChatMessagesAsReceived,\n memberChannel,\n profile.id,\n );\n}\n\nconst isGroupChat = ({ id }) => id.indexOf(\"group/\") === 0;\nconst groupChatIdToTopic = (id) => id.replace(\"/\", \":\");\n\n// Launch a group channel for every group chat returned by my_chats\n// Also launch channels for future group chats\nfunction* chatChannelsSaga(socket, networkChannel) {\n const { chats } = yield call(query, networkChannel, \"my_chats\");\n const navigation = yield select(getChatNavigation);\n if (navigation.route === \"showChat\")\n yield call(fetchChatDetails, { chatId: navigation.params.chatId });\n\n yield all(\n map(filter(chats, isGroupChat), ({ id }) =>\n fork(channelSaga, socket.channel(groupChatIdToTopic(id))),\n ),\n );\n\n while (true) {\n const action = yield take([\n \"chat/CREATE_CHAT/REPLY\",\n \"chat/CREATE_CHAT/RECEIVE\",\n ]);\n if (isGroupChat(action.payload)) {\n yield fork(\n channelSaga,\n socket.channel(groupChatIdToTopic(action.payload.id)),\n );\n }\n }\n}\n\n// Do stuff on the network channel\nfunction* channelsSaga(socket, networkId) {\n const networkChannel = socket.channel(`network:${networkId}`);\n yield fork(presenceSaga, networkChannel);\n\n yield call(join, networkChannel);\n yield call(query, networkChannel, \"network_info\");\n yield fork(myChannelSaga, socket, networkChannel);\n yield fork(chatChannelsSaga, socket, networkChannel);\n yield fork(handleChatQueries, networkChannel);\n}\n\nexport default channelsSaga;\n","import {\n all,\n takeEvery,\n put,\n call,\n select,\n takeLatest,\n} from \"redux-saga/effects\";\nimport Tinycon from \"tinycon\";\n\nimport { getProfileId } from \"../../selectors/chat/application\";\nimport {\n getUnreadChatsCount,\n isMuted,\n getChatProfile,\n} from \"../../selectors/chat/chat\";\n\nconst notify = ({ title, ...options }) =>\n new Promise((resolve, reject) => {\n const notification = new Notification(title, options);\n\n const notificationCloser = () => {\n notification.close();\n };\n window.addEventListener(\"beforeunload\", notificationCloser);\n\n notification.onclick = () => {\n window.focus();\n resolve();\n notification.close();\n };\n notification.onclose = () => {\n console.log(\"CLOSED\", title, options);\n window.removeEventListener(\"beforeunload\", notificationCloser);\n reject();\n };\n });\n\nfunction* notifyForIncomingMessage({ payload }) {\n const membershipId = yield select(getProfileId);\n\n // Create notification only for messages from other people\n if (membershipId === payload.from.id) {\n return;\n }\n\n const _isMuted = yield select(isMuted, {\n chatId: payload.chat_id,\n });\n\n if (_isMuted) {\n return;\n }\n\n const profile = yield select(getChatProfile, { chatId: payload.chat_id });\n\n try {\n yield call(notify, {\n title: profile.name,\n icon: profile.imageUrl,\n body:\n profile.type == \"group\"\n ? `${payload.from.name}: ${payload.text}`\n : payload.text,\n tag: payload.chat_id,\n });\n\n yield put({\n type: \"chat/NAVIGATE\",\n payload: {\n route: \"showChat\",\n params: { chatId: payload.chat_id },\n },\n });\n } catch (e) {\n // Notification was closed\n }\n}\n\nfunction* setTinycon() {\n const unreadChats = yield select(getUnreadChatsCount);\n\n Tinycon.setOptions({\n color: \"#FFFFFF\",\n background: \"#0081ce\",\n fallback: true,\n });\n Tinycon.setBubble(unreadChats > 99 ? \"+\" : unreadChats);\n}\n\nfunction* notificationsSaga() {\n if (window.Notification) {\n yield takeEvery(\"chat/MESSAGE/RECEIVE\", notifyForIncomingMessage);\n }\n\n yield all([\n call(setTinycon),\n takeLatest(\n [\n \"chat/MY_CHATS/REPLY\",\n \"chat/MESSAGE/RECEIVE\",\n \"chat/MARK_AS_READ\",\n \"chat/MARK_AS_READ/RECEIVE\",\n ],\n setTinycon,\n ),\n ]);\n}\n\nexport default notificationsSaga;\n","import { all, call, cancel, take, fork, race, put } from \"redux-saga/effects\";\nimport delay from \"@redux-saga/delay-p\";\nimport { Socket } from \"phoenix\";\nimport { map } from \"lodash\";\n\nimport { createEventSaga } from \"./helpers\";\nimport channelsSaga from \"./channels\";\nimport notificationsSaga from \"./notifications\";\nimport applicationSaga from \"./application\";\n\n// Create a new socket connection, i.e. after auth changed\nfunction createSocket({ socketUrl, ...options }) {\n return new Socket(socketUrl, {\n reconnectAfterMs() {\n return 5000;\n },\n // logger: (kind, msg, data) => {\n // if (!/push|receive/.exec(kind)) {\n // console.log(`SOCKET ${kind}: ${msg}`, data);\n // }\n // },\n ...options,\n });\n}\n\n// This saga turns the basic socket open, error and close events into dispatched actions\nconst socketEventSaga = createEventSaga({\n events: (dispatch) => ({\n onOpen: () => dispatch({ type: \"chat/SOCKET/ON_OPEN\" }),\n onError: () => dispatch({ type: \"chat/SOCKET/ON_ERROR\" }),\n onClose: () => dispatch({ type: \"chat/SOCKET/ON_CLOSE\" }),\n }),\n bind: (socket, handlers) => map(handlers, (fn, name) => socket[name](fn)),\n});\n\n// Allows caching of credentials while respecting their expires_in value\nconst credentialsCache = (function () {\n let payload = null;\n let validUntil = null;\n const SAFETY_MARGIN = 3 * 60; // 3 minutes\n\n return {\n get: () =>\n payload && validUntil - SAFETY_MARGIN > new Date() / 1000\n ? payload\n : null,\n set: (p) => {\n payload = p;\n // use expires_in if available, otherwise default to 3 hours\n const expiresIn = 3 * 60 * 60;\n validUntil = new Date() / 1000 + expiresIn;\n },\n };\n})();\n\nfunction* memoizedCredentials(fetchCredentials) {\n yield put({ type: \"chat/FETCH_CREDENTIALS/START\" });\n const cachedPayload = yield call([credentialsCache, \"get\"]);\n\n if (cachedPayload) {\n yield put({\n type: \"chat/FETCH_CREDENTIALS/FROM_CACHE\",\n });\n return cachedPayload;\n }\n\n try {\n const payload = yield call(fetchCredentials);\n yield call([credentialsCache, \"set\"], payload);\n yield put({ type: \"chat/FETCH_CREDENTIALS/SUCCESS\" });\n return payload;\n } catch (e) {\n yield put({ type: \"chat/FETCH_CREDENTIALS/FAILURE\" });\n throw e;\n }\n}\n\n// root saga for chat\nfunction* rootSaga({ fetchCredentials, socketUrl }) {\n let windowUnloading = false;\n window.addEventListener(\"beforeunload\", () => {\n windowUnloading = true;\n });\n\n yield all([fork(applicationSaga), fork(notificationsSaga)]);\n\n while (true) {\n const { token, network_id: networkId } = yield call(\n memoizedCredentials,\n fetchCredentials,\n );\n\n yield put({ type: \"chat/CONNECT/START\" });\n const socket = yield call(createSocket, { params: { token }, socketUrl });\n const socketEventTask = yield fork(socketEventSaga, socket);\n //window.socket = socket; // for dev/debugging purposes\n socket.connect();\n\n console.log(\"waiting for connection\");\n const events = yield race({\n open: take(\"chat/SOCKET/ON_OPEN\"),\n error: take(\"chat/SOCKET/ON_ERROR\"),\n close: take(\"chat/SOCKET/ON_CLOSE\"),\n });\n\n if (events.open) {\n yield put({ type: \"chat/CONNECT/SUCCESS\" });\n\n console.log(`Joining channels for network ${networkId} now!`);\n\n const channelsTask = yield fork(channelsSaga, socket, networkId);\n\n // Socket was disconnected after some time\n yield take(\"chat/SOCKET/ON_CLOSE\");\n\n // Stop here if we are reloading/navigating away\n if (windowUnloading) {\n console.log(\"Stopping chat rootSaga\");\n return;\n }\n\n console.log(\"Cancelling channelsTask\");\n yield cancel(channelsTask);\n }\n\n // This will stop all reconnect attempts\n socket.disconnect();\n\n console.log(\"Cancelling socketEventTask\");\n yield cancel(socketEventTask);\n\n // Socket failed on first connect, delay reconnect\n if (events.error || events.close) {\n const retryIn = 5000 + Math.random() * 5000;\n yield put({ type: \"chat/CONNECT/ERROR\", retryIn });\n yield delay(retryIn);\n }\n }\n}\n\nexport default rootSaga;\n","import { get } from \"lodash\";\nimport getFp from \"lodash/fp/get\";\n\nexport const getCurrentChat = getFp([\"chat\", \"navigation\", \"params\", \"chatId\"]);\n\nexport const getNetworkUrl = (state) =>\n get(state, [\"chat\", \"session\", \"networkUrl\"]);\n\nexport const getImageUrl = (state, imageId, size) => {\n if (!imageId) {\n return null;\n }\n\n const networkUrl = getNetworkUrl(state);\n if (!networkUrl) {\n return null;\n }\n\n return `${networkUrl}/api/storage/images/${imageId}/get/${size}`;\n};\n\nexport const getProfileId = getFp([\"chat\", \"profile\", \"id\"]);\n\nexport const getChatNavigation = (state) => get(state, [\"chat\", \"navigation\"]);\n","import { get } from \"lodash\";\n\nexport const getHomie = (state, homieId) =>\n get(state, [\"chat\", \"homies\", homieId]);\n","import { get, find, isEqual, orderBy, reduce, findLast } from \"lodash\";\nimport { createSelector } from \"reselect\";\nimport moment from \"moment\";\nimport { getProfileId, getImageUrl } from \"./application\";\nimport { getHomie } from \"./homies\";\n\nexport const getChats = (state) => get(state, [\"chat\", \"chats\"]);\n\nexport const getSortedChats = createSelector(getChats, (chats) =>\n orderBy(chats, \"last_interacted_at\", [\"desc\"]),\n);\n\nexport const getRawChatProfile = (state, { chatId }) =>\n get(state, [\"chat\", \"chats\", chatId]);\n\nexport const getChatProfile = (state, { chatId }) => {\n const chat = getRawChatProfile(state, { chatId });\n const [type] = chatId.split(\"/\");\n const imageUrl = getChatImageUrl(state, chatId);\n\n return {\n ...chat,\n type,\n imageUrl,\n };\n};\n\nexport const getStateForChat = (state, { chatId }) =>\n get(getRawChatProfile(state, { chatId }), [\"state\"]);\n\nexport const getCounterForChat = (state, { chatId }) =>\n get(getStateForChat(state, { chatId }), [\"unread_count\"]);\n\nexport const getLastReadIdForChat = (state, { chatId }) =>\n get(getStateForChat(state, { chatId }), [\"last_read_id\"]);\n\nexport const getMutedUntilForChat = (state, { chatId }) =>\n get(getStateForChat(state, { chatId }), [\"muted_until\"]);\n\nexport const getAppMutedUntilForChat = (state, { chatId }) =>\n get(getStateForChat(state, { chatId }), [\"app_muted_until\"]);\n\nexport const getCanForChat = (state, { chatId }) =>\n get(getRawChatProfile(state, { chatId }), [\"can\"]);\n\n// not pure !\nexport const isMuted = (state, { chatId }) => {\n const mutedUntil = window.isApp\n ? getAppMutedUntilForChat(state, { chatId })\n : getMutedUntilForChat(state, { chatId });\n return mutedUntil && moment().isBefore(mutedUntil);\n};\n\nexport const getAggregatedUnreadCount = (state) =>\n reduce(\n getChats(state),\n (result, chat) => result + get(chat, [\"state\", \"unread_count\"], 0),\n 0,\n );\n\nexport const getAggregatedUnreadCountWithoutChat = (state, { chatId }) =>\n reduce(\n getChats(state),\n (result, chat) =>\n chat.id == chatId\n ? result\n : result + get(chat, [\"state\", \"unread_count\"], 0),\n 0,\n );\n\nexport const getUnreadChatsCount = (state) =>\n reduce(\n getChats(state),\n (result, chat) => {\n if (get(chat, [\"state\", \"unread_count\"], 0) > 0) {\n return result + 1;\n }\n return result;\n },\n 0,\n );\n\nexport const getUnreadChatsCountWithoutChat = (state, { chatId }) =>\n reduce(\n getChats(state),\n (result, chat) => {\n if (chatId !== chat.id && get(chat, [\"state\", \"unread_count\"], 0) > 0) {\n return result + 1;\n }\n return result;\n },\n 0,\n );\n\n// Return the full url to the image of a chat if possible\nexport const getChatImageUrl = (state, chatId) => {\n const rawProfile = getRawChatProfile(state, { chatId });\n if (rawProfile) {\n return getImageUrl(state, rawProfile.image_id, \"80x80\");\n }\n return null;\n};\n\n// Returns true if this \"chat\" is online. This currently can only happen for member 1:1 chats\nexport const getChatOnlineStatus = (state, chatId) => {\n const partnerId = getPartnerId(state, chatId);\n return partnerId ? getMemberOnlineStatus(state, partnerId) : null;\n};\n\n// Returns true if this \"chat\" is busy. This currently can only happen for member 1:1 chats\nexport const getChatBusyStatus = (state, chatId) => {\n const partnerId = getPartnerId(state, chatId);\n return partnerId ? getMemberBusyStatus(state, partnerId) : null;\n};\n\n// Turn chatId \"member/123:345\" into \"345\" if \"123\" is your id\nexport const getPartnerId = (state, chatId) => {\n const [type, idRest] = chatId.split(\"/\");\n if (type === \"member\") {\n const myId = getProfileId(state);\n return find(idRest.split(\":\"), (e) => !isEqual(e, myId));\n }\n return null;\n};\n\nexport const getMemberOnlineStatus = (state, membershipId) => {\n const timestamps = get(state, [\n \"chat\",\n \"presence\",\n \"onlineMembers\",\n membershipId,\n ]);\n return timestamps && timestamps.length > 0;\n};\n\nexport const getMemberBusyStatus = (state, membershipId) => {\n return get(state, [\"chat\", \"presence\", \"busyMembers\", membershipId]);\n};\n\nexport const getRequestStateForChat = (state, { chatId }) =>\n get(getRawChatProfile(state, { chatId }), [\"requestState\"], {});\n\nexport const getMoreMessagesAvailableForChat = (state, { chatId }) =>\n get(\n getRequestStateForChat(state, { chatId }),\n [\"moreMessagesAvailable\"],\n true,\n );\n\n// Gets a known homie which has recently started composing in given chatId\nexport const getComposingHomie = (state, { chatId }) => {\n const composingIds = get(state, [\"chat\", \"composing\", chatId]);\n const myId = getProfileId(state);\n const recentlyComposingHomieId = findLast(\n composingIds,\n (id) => id !== myId && getHomie(state, id),\n );\n if (!recentlyComposingHomieId) {\n return null;\n }\n return getHomie(state, recentlyComposingHomieId);\n};\n","import { isEmpty, get, last, first, find, findLast } from \"lodash\";\nimport { createSelector } from \"reselect\";\n\nimport { getLastReadIdForChat } from \"./chat\";\nimport { getMyId } from \"./profile\";\n\nexport const getMessagesForChat = (state, { chatId }) =>\n get(state, [\"chat\", \"messages\", chatId]);\n\nexport const getMessageById = (state, { id, chatId }) =>\n find(getMessagesForChat(state, { chatId }), (m) => m.id === id);\n\nexport const getLastUnreadMessageInChat = createSelector(\n [getMessagesForChat, getLastReadIdForChat, getMyId],\n (messages, lastReadId, myId) =>\n findLast(messages, (m) => m.from.id !== myId && m.id > lastReadId),\n);\n\nexport const getLastMessageIdInChat = createSelector(\n getMessagesForChat,\n (messages) => (isEmpty(messages) ? null : last(messages).id),\n);\n\nexport const getFirstMessageIdInChat = createSelector(\n getMessagesForChat,\n (messages) => (isEmpty(messages) ? null : first(messages).id),\n);\n\nexport const getChatPartnerState = (state, { chatId }) =>\n get(state, [\"chat\", \"chats\", chatId, \"partner_state\"]);\n\n// Message delivery states in order of occurrence\n//\n// pushed:\n// my messages only\n// pushed via channel but no successful reply from server yet\n//\n// persisted:\n// my messages only\n// got successful reply after push, so it is persisted on the server\n// but not yet delivered to chat partner\n// or if it is in group chat then this is the final status\n//\n// received:\n// also means unread\n// messages has been received by ourselves or the chat partner\n//\n// read:\n// message has been read by ourselves or the chat partner\n\nexport const getMessageDeliveryStatus = (state, { id, chatId }) => {\n const myId = getMyId(state);\n const message = getMessageById(state, { id, chatId });\n\n if (myId == message.from.id) {\n if (isEmpty(message.id)) return \"pushed\";\n\n if (message.chat_id.indexOf(\"member/\") === 0) {\n const partnerState = getChatPartnerState(state, { chatId });\n if (partnerState) {\n if (partnerState.last_read_id >= id) return \"read\";\n if (partnerState.last_received_id >= id) return \"received\";\n }\n }\n return \"persisted\";\n } else {\n const last_read_id = getLastReadIdForChat(state, { chatId });\n if (last_read_id >= id) return \"read\";\n return \"received\";\n }\n};\n","import flow from \"lodash/fp/flow\";\nimport getFp from \"lodash/fp/get\";\n\nexport const getMyProfile = getFp([\"chat\", \"profile\"]);\nexport const getMyId = flow(getMyProfile, getFp([\"id\"]));\n"],"names":["IS_CHAT_QUERY","IS_NETWORK_QUERY","createChatQueryAction","event","type","toUpperCase","actionCreator","data","replyType","createNetworkQueryAction","basicActionCreator","loadChatDetails","loadMoreMessages","markAsRead","muteChat","muteAppChat","unmuteChat","unmuteAppChat","createChat","IS_API_REQUEST","fetchAvailableChats","createApiAction","endpoint","meta","q","stringify","only_my_groups","only_chat_enabled","setChatStatus","Muted","React","className","compose","withProps","id","startsWith","connect","state","counter","getCounterForChat","chatId","muted","isMuted","composingHomie","getComposingHomie","dispatch","select","payload","route","params","window","Notification","permission","requestPermission","Row","name","last_message","last_interacted_at","mom","min","moment","onClick","title","ChatImage","last_read_id","Composing","from","text","format","fromNow","statusOption","busy","online","invisible","useCurrentStatus","isOnline","useSelector","getMemberOnlineStatus","Preload","current_member","presence","getMemberBusyStatus","StartNewButton","navigateToNewChat","disabled","FontAwesomeIcon","icon","_faComment","I18n","t","ChatStatusCircle","status","_faCircle","_faCircle2","_faEyeSlash","StatusButton","toggleStatusMessageForm","OnlineStatusDropdown","selectedOption","setSelectedOption","handleOptionChange","e","option","preventDefault","role","href","current_network","config","show_online_status","StatusMessageForm","initialRender","useRef","statusText","setStatusText","useState","currentStatus","useDispatch","submitStatus","replace","useEffect","current","isEmpty","classNames","chat__header","isApp","Textarea","maxLength","minRows","maxRows","value","autoFocus","onChange","target","CloseButton","toggleChatbar","_faXmark","chats","getSortedChats","connected","get","ChatList","showStatusMessageForm","ChatHeader","ButtonLeft","ButtonRight","mobile_app_chat__list","map","item","index","Object","assign","key","getApiRequestState","action","withState","withHandlers","toggleOpen","open","setOpen","GroupedItems","items","allowToggle","renderItemComponent","_faChevronRight","Tile","classnames","memberChat","groupChat","NewChat","constructor","args","submitSearch","this","props","currentTarget","elements","render","member","groupsByCategoryName","availableChats","BackToRootButton","onSubmit","placeholder","requestState","_faSpinner","_faSearch","groups","componentDidMount","Chat","selected","chatName","length","parts","compact","split","trim","chatInitials","currentChat","getCurrentChat","slice","selectChat","nextChat","currIndex","findIndex","c","nextIndex","prevChat","prevIndex","QuickChatSelect","chat","times","i","MUTE_DURATIONS","memoize","add","toDate","endOf","MuteLink","muteUntil","dispatchAction","muted_until","label","ChatRoomSettingsButton","_faVolumeOff","_faEllipsisH","appOnly","THROTTLE","ScrollContainer","super","cancelScrollEvent","stopImmediatePropagation","returnValue","handleWheel","div","container","scrollTop","scrollHeight","height","clientHeight","wheelDelta","deltaY","isDeltaPositive","trackScrolling","lastScrollPosition","direction","callbackThreshold","autoscrollThreashold","setState","autoscrollBreaked","callStartReached","callEndReached","bumper","lastScrollPoint","debounce","onStartReached","leading","trailing","onEndReached","scroll","smooth","autoscroll","performScroll","lastScrollHeight","style","scrollBehavior","offsetHeight","DIV","setTimeout","onClickScrollToBottom","handleScrolling","throttle","handleResize","addEventListener","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","count","children","ref","startElement","endElement","MessageAuthor","imageUrl","alt","src","MessageSettings","myMessage","fromId","indexOf","hideStartPrivateChat","is_external","messageId","EMOJI_REGEX","createEmojiRegex","onlyEmojis","every","toArray","sym","isEmoji","symbol","lastIndex","test","markdownRenderer","Application","getNewMarkdownRenderer","Remarkable","options","use","linkify","noop","html","breaks","linkTarget","core","ruler","disable","inline","enable","block","markdownTextToHtml","markdown","console","log","MessageText","emoji","getEmojiClassName","max","symbols_count","dangerouslySetInnerHTML","__html","nextProps","QuotedMessage","message","getTitle","deliveryStatus","MessageDeliveryStatus","_faCheck","_faCheckDouble2","getIcon","MessageDate","date","fullDate","dateTime","chat_id","getMyId","fromProfile","getMyProfile","getMessageDeliveryStatus","getImageUrl","ChatMessage","created_at","groupedMessage","quoted_message","DaySeparator","getRequestStateForChat","messages","getMessagesForChat","loadingMessages","moreMessagesAvailable","lastMessageFrom","lastMessageDate","mobile_app_chat_room_android","bridge","isAndroid","mobile_app_chat_room_ios","isIOS","flatMap","result","sameAuthor","sameDay","isSame","push","getMessageById","removeMessageToQuote","MessageToQuote","MessageComposer","messageToQuoteId","getComposerMessageToQuoteId","composerTextByChatId","setComposerTextByChatId","initialValue","setValue","storedValue","localStorage","getItem","JSON","parse","setItem","usePersistentState","handleSubmit","register","getValues","setFocus","reset","useForm","invokeDebounced","useMemo","submit","quoted_message_id","can","getCanForChat","write","required","onKeyDown","keyCode","shiftKey","ctrlKey","altKey","metaKey","_faPaperPlane","MobileAppWrapper","getChatProfile","ChatRoom","subtitle","BackButton","_faArrowLeft","getUnreadChatsCountWithoutChat","getUnreadChatsCount","chatStatus","navigation","document","getElementById","classList","remove","hidden","OnlineStatus","isBusy","ICONS","_faUser","group","_faUsers","Image","getChatImageUrl","getChatOnlineStatus","getChatBusyStatus","GroupNavigation","groupSlug","isLoading","useQuery","fetchApi","enabled","refetchOnWindowFocus","useGroupNavigationItems","Placeholder","nav","NavigationItem","last","link","new_window","navigation_items","active_match","join_request_count","location","useLocation","isActive","matchPath","pathname","match","hasNavigationItems","dropdown","undefined","rel","Loading","fetchMembers","baseType","includeConsumers","input","excludeGroupMembersOf","recipientId","isEqual","Reflect","set","join","fetchMembersAndGroups","includeMembershipRoles","include_membership_roles","optionsKey","loadOptions","Promise","resolve","reject","onlyMyGroups","membersAndGroups","then","success","mergedEntries","entries","forEach","entry","membership_roles","membershipRole","mergeEntries","groupedOptions","other","groupOptions","filter","membership_status_of_current_member","_faUser2","standard","showNameWithProfileField","detectionProfileField","detection_profile_field","isExternal","keys","catch","m","displayName","multi","wrapperStyle","field","selectProps","asyncPropsOptions","isMulti","loadingMessage","noOptionsMessage","inputValue","inputId","Async","onBlur","openMenuOnFocus","styles","base","plusOne","PaginationButton","active","page","onPaginate","query","search","totalPages","loading","width","hideIfEmpty","handlePaginate","dataset","scrollTo","top","pages","cappedPage","Math","range","unshift","n","el","$","spectrum","showInput","preferredFormat","showInitial","showPalette","palette","colorPalette","cancelText","chooseText","change","color","toHexString","tabs","selectTabIndex","selectedTabIndex","tab","multiline","hint","fieldProps","ControlGroup","Field","component","Hint","store","Component","wrapped","Provider","createAdaptBackboneView","componentsMap","adaptBackboneView","view","componentName","mapProps","listenTo","standalone","Error","connectedComponent","debounceTime","WrappedComponent","MemoizedWrappedComponent","Connect","context","getDerivedStateFromProps","getDerivedStateFromError","hasError","componentDidCatch","error","errorInfo","trySubscribe","tryUnsubscribe","unsubscribe","changeHandler","handleChange","bind","each","entity","on","off","entityState","propsToPass","getDisplayName","connectBackbone","_reactRoots","handleRender","createHandleRender","rawEl","$container","$el","root","oldRoot","unmount","createRoot","Wrapper","handleClose","createHandleClose","close","once","addComponents","extraComponentMap","queryCache","QueryCache","queryClient","QueryClient","defaultOptions","queries","queryFn","async","queryKey","QueryClientProvider","client","WILDCARD_END","compileRoute","path","endsWithWildcard","exec","pathToCompile","end","compileRouteMemoized","compileRoutesMemoized","routes","element","forceTurbo","getLocationState","hash","history","useParams","useContext","ParamsContext","useSearchParams","URLSearchParams","navigate","to","Turbo","session","drive","debug","toString","invariant","isString","url","URL","_","pathnameParts","groupSlugInPath","my_groups","find","slug","navigateToUnjoinedGroup","isNumber","go","replaceState","pushState","useNavigate","matchRoutes","compiledRoutes","matchResult","defaultParams","LocationContext","useRoutes","matchedRoute","lastParams","pattern","BrowserRouter","locationState","setLocationState","updateLocationState","maybeNewLocationState","events","addEventDispatch","orig","apply","Event","dispatchEvent","originalPushState","originalReplaceState","useQueryParams","warn","queryParam","setQueryParam","getQueryParams","fromEntries","reduce","curr","useMaxHeight","setStyle","updateStyle","maxHeight","innerHeight","CHAT_STATIC_BREAKPOINT","coversWholeScreen","getComputedStyle","innerWidth","HTMLElement","SVGElement","togglebar","toggle","parentNode","HTMLButtonElement","openBarElements","Set","bar","show","querySelector","persist","isUndefined","contains","sessionStorage","disableBodyScrolling","removeItem","delete","restoreBodyScrolling","getResizeHandler","body","scrollY","overflow","position","some","Array","removeProperty","parseInt","closeUserbar","restoreVisibility","hideStaticChat","restoreStaticChat","application","start","Stimulus","Controller","scrollToOpenAccordion","openAccordionItem","previousElementSibling","scrollIntoView","behavior","onClickChangeValue","$CloseActivityReplyAutomaticSelect","Flash","alert","rootId","closeNotification","ReactDOM","category","changeCategory","removeCategory","setText","edit","setEdit","translation","showIcon","small","MarkdownTranslation","categories","selectedCategories","setSelectedCategories","setError","changedCategories","cat","_destroy","getElementsByName","setAttribute","InfoText","CategoryRow","_class","CategoriesEditor","hasContextValue","contextValue","categoriesValue","disconnect","values","String","JoinRequestModal","onClose","joinRequestId","formRef","submitUrl","Modal","static","useMinHeightMax","modalActionProps","submitText","modalSubmitActionClassName","childElement","createElement","appendChild","onCloseModal","showModal","groupSlugValue","joinRequestIdValue","removeChild","_getSelectedInviteIds","_classPrivateFieldLooseKey","_findInvite","_submitSuccess","_submitFailure","defineProperty","_submitFailure2","_submitSuccess2","_findInvite2","_getSelectedInviteIds2","refreshInvites","invite_ids","_classPrivateFieldLooseBase","renewInvites","model","Tixxt","instance","showBodied","Invites","BatchRenewInviteView","externalInvitesCount","groupInvitesCount","countSelectedInviteTypes","confirm","group_invites_count","network_invites_count","method","batchRenewSuccess","batchRenewFailure","revokeInvites","ajax","done","fail","selectedCheckboxes","querySelectorAll","checkbox","toastr","getUrlForPage","frame","pageField","origin","searchParams","Invite","fetch","showInviteDetails","findInvite","inviteId","InviteDetailsView","refreshInvite","RenewInviteView","toggleCheckboxListener","checkboxes","anyChecked","toggleDisableButtons","inviteStatus","getSelectedInviteStatus","revokeable","renewable","includes","revokeButton","renewButton","dragstart","dataTransfer","setData","entryId","dragover","targetElement","removeHighlight","dragend","drop","getData","targetEntryId","entryElement","entryElementById","moveEntryElement","persistOrder","initializeDraggable","disconnectDraggable","entryTargets","parentElement","child","sourceElement","targetParent","compareDocumentPosition","insertBefore","nextElementSibling","order","getElementsByClassName","visit","targets","_SELECTOR_MAPPING","_DEFAULT_VALUE_MAPPING","_intervalSelector","_setSelectorValue","_createSecondDaySelector","_createDaySelector","_createAndAppendTimeSelector","_createTimeSelector","_createTimeSelectorOption","_createDaySelectorOptions","_createDaySelectorOption","_createMonthHelpBlock","_removeElement","_removeSecondDaySelector","_removeMonthHelpBlock","_removeMonthHelpBlock2","_removeSecondDaySelector2","_removeElement2","_createMonthHelpBlock2","_createDaySelectorOption2","_createDaySelectorOptions2","_createTimeSelectorOption2","_createTimeSelector2","_createAndAppendTimeSelector2","_createDaySelector2","_createSecondDaySelector2","_setSelectorValue2","_intervalSelector2","writable","weekly","semimonthly","monthly","semimonthly_2","time","$dayTimeContainer","$daySelector","intervalValue","onClickChangeInterval","targetValue","isSemiMonthly","isMonthly","innerHTML","dayValue","secondDayValue","timeValue","secondTimeValue","selector","mapping","tern","$secondDayTimeContainer","$secondDaySelector","after","parent","variable","textContent","opt","toInteger","day","$monthHelpBlock","parentContainer","interval","secondDay","secondTime","onMessage","source","iframe","contentWindow","design","unlayerLocale","de","en","es","fr","postMessage","projectId","translations","tixxt_content_placeholder","salutation","salutation_sample","disclaimer_and_settings","disclaimer_and_settings_sample","published_in_preview_info","published_in_preview_date","published_in_preview_published_in","published_in_preview_streams","link_color_published_in_label","text_color_published_in_label","colors_group_title","tixxt_content_label","network","host","imprint","locale","storageToken","allSubmitsDisabled","resolveExportHtml","targetOrigin","submitting","stopPropagation","chunks","fonts","errors","countOccurrences","submitter","click","setupIframe","Date","getTime","button","content","matches","RegExp","Phoenix","Views","Inputs","MemberSelect","multiple","clipboard","ClipboardJS","destroy","popups","magnificPopup","Lightbox","handleExternalInvite","openEditExternalIds","display","focus","closeEditExternalIds","onClickGoBack","back","finalizeSelectionOptions","mil","now","seq","uniqueValue","kebabCase","TabbableFields","fields","selectedIndex","selectIndex","fieldName","property","AddOptionsFields","lastInput","focusLast","defer","PropertyForm","availableModifications","FieldArray","SelectionOptionsFields","PropertiesFields","AddOptions","existingOptions","ModificationForm","EDITOR_MAPPING","basic","formProps","ReduxForm","addDefaultValuesToSelectionOptions","properties","p","renderChildren","modified","initialValues","transformedInitialValues","addModificationsToProperties","modifications","parent_property_set","parentPropertySet","addedOptionsByName","add_options","addOptions","pullModificationsFromProperties","finalModifications","Editor","contextType","contextId","propertySet","usePropertySet","inherit","mutate","submitPropertySet","usePersistPropertySet","SpecializedForm","form","onSubmitSuccess","onSubmitFail","PropertySetEdit","propertySetName","PageTitle","PropertySetEditWrapper","nameValue","_selectAllCheckboxes","_onInput","_valid","_determineAllChecked","_get_selectAllCheckboxes","selectAllSelector","selectAll","checked","indeterminate","onClickChangeTab","toggleTarget","nodeName","elem","allFactors","response","credentials","json","getNewTotp","okJson","ok","createNewTotp","validationCode","headers","code","provisioning_uri","resetBackupCodes","deleteFactor","perform2fa","csrfTokenHeader","getNewEmail","createNewEmail","secret_key","LOOKUP","totp","ResetBackupCodesButton","DeleteFactorButton","directDelete","routeName","AddFactorButton","email","routeContext","RouteContext","submitDeleteFactor","useMutation","onSuccess","updatedFactors","getQueryData","last_used_at","setQueryData","setRoute","AbortButton","FactorsPage","isError","ListFactors","factors","factorDisplayName","factor","FactorActions","BackupCodes","backupCodes","redirectTo","downloadCodesAsTxtFile","file","Blob","createObjectURL","download","setValidationCode","setRedirectTo","retry","submitCreateNewTotp","createResult","createError","isCreating","redirect_to","QRCode","renderAs","verificationCodeInput","htmlFor","inputMode","autoComplete","deleteError","submitResetBackupCodes","resetBackupCodesResult","resetError","submitCreateNewEmail","FactorsContainer","AddTotpPage","AddEmailPage","DeleteFactorPage","ResetBackupCodes","FactorsWrapper","AccordionScrollController","Administration__Activitystream__CloseActivityReplyMonthController","Administration__EditCategoriesController","Administration__Groups__JoinRequestMessageController","Administration__Invites__SendBatchActionsController","Administration__Invites__SentController","Administration__Invites__ToggleBatchActionsController","Administration__Newsletter__DragAndDropController","Administration__Newsletter__IntervalController","Administration__Newsletter__UnlayerFormController","Administration__RoleAssignmentsController","Administration__Teams__FallbackUpnAssignmentsController","ClipboardController","ExternalActivitystreamsController","Invites__HandleExternalInviteController","MinistryController","Shared__GoBackButtonController","Shared__PropertySetEditController","Shared__SelectAllController","Shared__TabbarController","Shared__ToggleController","TwoFactorAuthenticationsController","bootstrap","Tooltip","Popover","autoReplaceSvg","library","_faDailymotion","_faDeviantart","_faFacebook","_faFlickr","_faInstagram","_faKickstarter","_faMicrosoft","_faSlideshare","_faSoundcloud","_faSpotify","_faTwitter","_faVimeo","_faYoutube","_faCloudArrowDown","_faEnvelope3","_faFile3","_faFileAudio","_faFileCode2","_faFileCsv2","_faFileExcel3","_faFileImage","_faFileLines","_faFilePdf","_faFilePowerpoint2","_faFileVideo","_faFileWord2","_faFileZipper","_faImage4","_faMobileScreenButton","_faPaperclipVertical2","_faAlignCenter","_faAlignLeft","_faAlignRight","_faAngleLeft2","_faAngleRight2","_faArrowDownToBracket","_faArrowLeft2","_faArrows2","_faArrowsRepeat2","_faArrowsUpDownLeftRight","_faBars2","_faBold3","_faBolt","_faBookmark","_faBoxArchive","_faBullhorn2","_faCalendar2","_faCalendarDay","_faCalendarPlus","_faCalendarRange","_faChartColumn","_faCheck2","_faCheckCircle","_faCheckSquare2","_faChevronDown2","_faChevronUp2","_faCircleCheck","_faCircleInfo2","_faCircleNotch","_faCirclePlay","_faCirclePlus","_faClipboard","_faClock","_faClone2","_faCloudDownload2","_faCloudUpload","_faComment2","_faCommentDots","_faCommentSlash","_faComments","_faDesktop2","_faEarthEurope","_faEdit","_faEllipsis2","_faEllipsisH2","_faEllipsisVertical","_faEnvelope2","_faExchange","_faEye2","_faFile2","_faFileCode","_faFileExcel2","_faFilePowerpoint","_faFileText","_faFileWord","_faFiles","_faFilter2","_faFloppyDisk","_faFolder2","_faFolderOpen2","_faHandshake","_faIdCard","_faImage2","_faImage3","_faInbox","_faItalic3","_faKeyboard","_faLink3","_faList3","_faListOl2","_faListUl2","_faLocationDot","_faLock2","_faMailbox2","_faMapLocation","_faMapLocationDot","_faMessages","_faMinusCircle","_faMobile","_faPaperclipVertical","_faPenToSquare","_faPencil2","_faPencilSquare2","_faPipe2","_faPlus2","_faPlusCircle2","_faPlusSquare","_faPowerOff","_faScissors","_faSearch3","_faShareSquare","_faSidebar","_faSpinner2","_faSquare2","_faStar2","_faSuitcaseRolling","_faTable","_faTags2","_faTerminal","_faThumbsUp2","_faTimes2","_faTimesCircle2","_faTrash2","_faTrashCan","_faTriangleExclamation","_faUnderline2","_faUnlock2","_faUpload","_faUserCircle2","_faUserPlus2","_faUserXmark","_faUsers2","_faVirus","_faVolumeXmark2","_faXmark2","_faAdjust","_faAlignJustify","_faAngleDoubleDown","_faAngleDoubleLeft","_faAngleDoubleRight","_faAngleDoubleUp","_faAngleLeft","_faAngleRight","_faArchive","_faArrowCircleUp","_faArrowDown","_faArrowRight","_faArrows","_faArrowsAlt","_faArrowsRepeat","_faAt","_faBan","_faBarChart","_faBars","_faBold","_faBold2","_faBook","_faBug","_faBullhorn","_faCalendar","_faCaretDown","_faCaretLeft","_faCaretRight","_faCertificate","_faCheckSquare","_faChevronCircleDown","_faChevronDown","_faChevronLeft","_faChevronUp","_faCircleInfo","_faCircleQuestion","_faClone","_faCloudDownload","_faCode","_faCode2","_faCodeFork","_faCoffee","_faCog","_faCogs","_faColumns","_faCompress","_faDesktop","_faEllipsis","_faEnvelope","_faExclamation","_faExpand","_faExternalLink","_faEye","_faFile","_faFileCsv","_faFileExcel","_faFilter","_faFlag","_faFlagCheckered","_faFolder","_faFolderOpen","_faFont","_faGlobe","_faGripDots","_faHashtag","_faHeader","_faHeader2","_faHome","_faImage","_faInfoCircle","_faItalic","_faItalic2","_faKey","_faLink","_faLink2","_faList","_faList2","_faListAlt","_faListOl","_faListUl","_faLock","_faMailbox","_faMapMarker","_faMessageXmark","_faMoneyBill","_faPaperclip","_faPencil","_faPencilSquare","_faPhone","_faPipe","_faPlay","_faPlayCircle","_faPlus","_faPlusCircle","_faPrint","_faQuestion","_faQuestionCircle","_faQuoteLeft","_faQuoteRight","_faRefresh","_faReply","_faReplyAll","_faSave","_faSearch2","_faShare","_faShield","_faSort","_faSortAsc","_faSortDesc","_faSortDown","_faSortNumericAsc","_faSortUp","_faSpaceShuttle","_faSquare","_faSquareO","_faStar","_faStepBackward","_faStepForward","_faStrikethrough","_faTag","_faTags","_faThumbsUp","_faThumbtack","_faTimer","_faTimes","_faTimesCircle","_faToggleOff","_faToggleOn","_faTrash","_faUnderline","_faUnlock","_faUnlockAlt","_faUserCircle","_faUserMinus","_faUserPlus","_faUserSecret","_faUserTimes","_faVolumeXmark","dom","watch","SMALL_BREAKPOINT","StatusIcon","_faCircle3","_faCircle4","Role","plural_name","participants","display_type","collapsed","setCollapsed","cursor","countBy","accepted","NameWithProfileField","statusToSort","rejected","declined","invited","pushParticipant","list","participant","splice","sortedIndexBy","lowerCase","invitesSelector","loadMoreUrlInvitesSelector","invitesLoadingSelector","participationsSelector","loadMoreUrlParticipationsSelector","participantsLoadingSelector","UnreadBadge","AppointmentInviteMeta","accept","decline","canOptRetroactively","totalAttendeesEnforcedAndExceeded","participation_locked","buttons","AppointmentInviteDate","frequency","all_day","same_day","AppointmentInvite","invitable","invitable_type","author","renderDate","renderMeta","networkSelector","_faRotate","size","total_attendees_enforced_and_exceeded","declineInvite","acceptInvite","RecurringAppointmentInvite","propTypes","PropTypes","appointment","invited_by","InvitesList","invites","inviteType","loadMore","loadMoreUrl","loadInvites","invite","_type","CustomConfigurator","existsDefault","setDefault","appointments","Appointment","ModifiedRecurringAppointment","RecurringAppointment","participations","default","AppointmentParticipation","unreadsQueryOptions","refetchInterval","convertPayload","features","activitystreams","Activitystreams","Calendars","Messages","total","sum","useFeaturesUnreads","currentMember","currentMemberSelector","delayedEnabled","setDelayedEnabled","timeout","clearTimeout","unreads","useFoldersUnreads","wrapProvider","isLoadingInvites","isLoadingParticipants","loadMoreParticipationsUrl","loadMoreInvitesUrl","activeTab","fetchInvites","loadParticipations","fetchParticipations","onLoadMoreInvites","loadMoreInvites","onLoadMoreParticipations","loadMoreParticipations","load","setActiveTab","createAppointmentContact","appointmentId","useCreateAppointmentContact","useCalendars","hasAttachments","areAttachmentsInLimit","mutateAsync","Backbone","trigger","onCancel","allowSaveWithoutChange","TextField","limit","currentNetwork","getConfig","TagEntry","mention","theme","rest","parentProps","omit","new","mentionSuggestionsEntryText","inlineTagPlugin","createMentionPlugin","mentionTrigger","entityMutability","mentionComponent","InlineTagSuggestions","suggestions","setSuggestions","onOpenChange","useCallback","_open","MentionSuggestions","onSearchChange","dataType","contentType","entryComponent","BaseComponent","plugins","pluginComponents","mentionPlugin","createInlineMentionPlugin","tagPlugin","toolbarPlugin","Toolbar","createToolbarPlugin","markdownPlugin","createMarkdownPlugin","undoPlugin","createUndoPlugin","counterPlugin","createCounterPlugin","linkifyPlugin","createLinkifyPlugin","blockBreakoutPlugin","createBlockBreakoutPlugin","shortcutsPlugin","createShortcutsPlugin","emojiPlugin","createEmojiPlugin","useNativeArt","selectButtonContent","_faFaceSmile","defaultTheme","emojiSelectButton","emojiSelectButtonPressed","inlineMentionPlugin","InlineMentionSuggestions","CharCounter","WordCounter","LineCounter","UndoButton","RedoButton","EmojiSuggestions","EmojiSelect","confirmationMessage","beforeUnloadListener","getConfirmationMessage","disableInterceptor","capture","useInterceptorPrompt","when","enableInterceptor","navigator","userAgent","TixxtComposer","withPlugins","uuidv4","editorStateByMarkdown","onEditorStateChange","setEditorState","newEditorState","markdownByEditorState","onClickFullscreen","handleFullscreen","onSetEditorRef","setEditorRef","setComposerRefCallback","focusEditor","editorRef","containerClasses","editorState","customStyleMap","createStyleMap","getCurrentContent","hasText","spellCheck","stripPastedStyles","textAlign","onOpen","closed","setClosed","Text","initial","onFocus","FieldError","filterRemoved","composerName","formValueSelector","filesCount","imagesCount","selectedTab","openTab","setOpenTab","FileUploadField","selectExisting","isImage","storageDirectory","createComment","activityId","useCreateComment","updateComment","replyId","useUpdateComment","useFileProcessing","formName","fieldAttachments","resizeCallback","$modalEl","modalBodyHeight","composerCss","editorRootCss","minHeight","composerHeight","editorHeight","css","reply","isOpen","saveCallback","cancelCallback","fullscreen","setFullscreen","isProcessing","setIsProcessing","openComposer","closeComposer","closeFullscreen","onError","fileProcessing","imageProcessing","processing","files","images","image","classNameFormActions","TixxtComposerAdapter","openFullscreen","Attachments","tagParents","TagParentsContext","uniq","FormSection","Fields","itemId","folder","parentFolderId","parent_folder_id","description","folder_profile","reduxForm","enableReinitialize","showFolderProfileFields","selectFolderProfilesEnabled","rows","EmbeddedValueSetForm","currentRootFolder","closeModal","onSelectFolder","selectedItemIds","modalTitle","sortBy","setSortBy","currentFolder","handleNavigate","breadcrumb","useFolderResource","Sorter","attribute","handleSort","colSpan","orderBy","FolderRow","i18n_type","navigateDisabled","fixedWidth","SelectedFolder","unselectFolder","folderId","useFetchFolder","spin","defaultFolder","setShowModal","targetFolder","FolderSelectModal","showFileProfileFields","selectFileProfilesEnabled","pristine","contextRootFolderId","rootFolderIdSelector","FolderSelectionField","FileDescription","FormActions","MaybeWrapped","onlyRows","ValueSetTable","showLoading","isNil","prop","PropertyShow","fileServerV2Discovery","isFinalizedOrLocked","selectedItemAndFolderIds","removeSelected","moveSelected","isDownloading","setIsDownloading","folders","canDestroyAndMove","canBeMoved","namespace","fileServerV2available","staleTime","serializeItemAndFolderIds","file_ids","folder_ids","current_folder_id","responseData","token","startDownload","contents","onRemoveItems","onMoveItems","headerRef","isHoveringHeader","setIsHoveringHeader","onmouseover","onmouseleave","ids","selectedIds","selectIds","isRemoving","setRemoving","isMoving","setMoving","allSelected","difference","selectedItemIdsByType","removeFiles","f","removeFolders","onSelectItem","useItemBatchSelection","groupBy","canDestroy","finalized","finalizedAt","locked","lockedById","selectAllCheckbox","childProps","rowProps","isSelected","showCheckbox","endsWith","disableSelection","onSelectFile","moveFiles","target_folder_id","source_folder_id","moveFolders","Spinner","filterToQueryString","quote","searchUrl","contextUrl","filters","formatExt","baseSearchPath","searchQuery","pickBy","identity","stringifyQuery","rawQ","filterStrings","parseSortByParam","sortByParam","directionString","serializeSortBy","directionNumber","tagUrl","module","tag","selectionUrl","TagUrlContext","SelectionUrlContext","GenericErrorBoundary","info","headless","pickImage","wantedWidth","wantedHeight","imagesPropType","isRequired","html_content","truncate","percent","activityUrl","sources","original_filename","img","tags","mentions","html_url","display_name","attachments","person","ImageAttachments","MentionAttachments","TagAttachments","LinkAttachment","FileAttachments","calendars","calendar","backgroundColor","time_zone","note","Note","question","schedule","Survey","survey","actor","object","TypeView","actorImage","nameWithProfileField","hit","deleted","prev","hitContent","ActivityAttachments","answer_count","reply_count","MessageHit","subject","DateRange","html_description","CalendarList","hitMeta","recurrence_pattern","recurrence_end_time","recurrence_frequency","recurring_appointment","Highlights","highlights","setIndex","highlight","opacity","sort_by","setPaginationState","FoundIn","found_in","reduceRight","MetaRow","extraColumns","striped","FileHit","FileRow","FileHitMeta","FileHits","hits","SearchQueryPaginationContext","profile","file_profile","UrlContextProvider","FolderContentsTableWithProfile","FolderHit","FolderHitMeta","FolderHits","skipFileAttributes","is_network_admin","profileFieldAvailable","has","displayValue","ExternalMemberBadge","archived","access","member_count","activity_count","teaser","pagePath","group_slug","ItemHit","item_id","app_id","appId","frontend_app_url","frontendAppUrl","app","appLoading","useLoadApp","externalAppId","itemLoading","useLoadItem","externalItemId","display_values","title_property","imageProp","imageValue","isArray","isObject","useSearchResults","filteredQuery","SearchResultPagination","per","paginationState","Pagination","ceil","SearchSortSelector","availableSorts","Result","iconClass","fullResultUrl","initialLoading","renderHit","renderHits","queryName","routeParams","available_sorts","pageLoading","useQueryClient","cacheTime","pageData","getQueriesData","cacheData","cachedQuery","truncatedPageData","mapValues","useSearchResultsPage","query_name","pick","showMore","QUERY_MAPPING","activities_query","ActivityHit","messages_query","appointments_query","RecurringAppointmentHit","ModifiedRecurringAppointmentHit","AppointmentHit","files_query","folders_query","memberships_query","MembershipHit","groups_query","groupHits","groupCategory","group_categories","group_category_id","GroupHit","pages_query","PageHit","items_query","SearchQueryResult","remainingProps","propsFn","extraProps","FilterButton","GlobalSearchButton","searchResults","globalSearchFilterBar","results","FilterModule","SearchResults","mergeFileAndFolderProfiles","fileProfileProps","folderProfileProps","keyedFileProfile","keyBy","keyedFolderProfile","intersectionProfileKeys","intersection","uniqBy","o","ProfileFilters","folderProfileLoading","folderProfile","fileProfileLoading","fileProfile","filterLoading","mergedProfile","selectionFilters","tagFilter","concat","NoExtraFilters","formValuesToSearchParams","rawTag","rawFilters","filterValue","filterName","debouncedSubmit","fileProfilesEnabled","folderProfilesEnabled","FilterProvider","showFilters","setShowFilters","filterAvailable","_dispatch","_props","previousValues","noActions","FilesSearchFilters","SelectionField","TagField","allowCreate","internal","searchEnabled","searchProps","contextPath","Search","add_files","create_subfolders","update","offsetTop","useFullWidthLayout","total_files_count","total_subfolders_count","tableProps","setSearchParams","TableComponent","FolderContentsTable","currentContext","unreadsCount","FolderActions","listStyle","listItemStyle","EmbeddedSearchResults","BatchActions","FullSizeContent","extraPreColumn","SelectableFileRow","SelectableFolderRow","fileId","showReviewChanges","trackView","El","DocumentActions","renderSuptext","renderIcon","fetchActions","authorizedActions","actions","authorized","simplifyActions","DocumentAction","excel","word","powerpoint","visio","spreadsheets","documents","presentations","FolderForm","EditFileForm","FolderListing","FileProfileRows","FileSelector","toLowerCase","meeting","dateRange","preSelectedRoomId","loadData","meetingRooms","useReservableMeetingRooms","roomId","room_id","Select","isClearable","isDisabled","room_name","room","occupied","classNamePrefix","DropDown","alignment","DropDownItem","additional","linkStyle","iconStyle","iconClassName","onSelect","DropDownSubMenu","side","Item","SubMenu","timeago","Progress","percentage","texts","toFixed","generatingInfo","Start","createdAt","createExport","TimeAgo","fileUrl","extension","downloadUrl","generateNew","generateNewHint","Exporter","canExport","AppItemsExporter","MembershipsExporter","ConsumersExporter","RecurringAppointmentDecisionModal","handleDecision","MarkdownEditor","MeetingRoomSelect","target_id","object_language","resetTranslation","translateObject","languages","primaryLanguages","setPrimaryLanguages","secondaryLanguages","setSecondaryLanguages","selectedLanguage","setSelectedLanguage","handleLanguageSelect","language","targetLanguage","renderLanguageListItem","lang","primary","secondary","primaryLanguageKeys","last_used_translation_language","sort","a","b","categorizeLanguages","_faLanguage","LayoutToggle","getContext","enableInheritance","onTypeChange","columnLayoutTypes","layout","onLayoutChange","cardSource","beginDrag","column","endDrag","addColumnProperty","moveColumnProperty","monitor","dropResult","getDropResult","DropTarget","connectDropTarget","dropTarget","isOver","canDrop","DragSource","connectDragSource","dragSource","isDragging","toClass","char","didDrop","isOverAny","shallow","selectedColumnProperty","selectColumnProperty","removeColumnProperty","DragSourceProperty","ColumnConfigurator","enableLabelHiding","DragDropContext","HTML5Backend","columns","onColumnsUpdate","show_label","toggleShowLabel","columnProperty","removeSelectedColumnProperty","byName","transform","setDisplayName","sourceProperties","row","DropTargetColumn","propertyShape","columnShape","showLabel","d","updateTabAt","TabConfigurator","enableColumns","exclusivePropertyUsage","usedProperties","flatten","columnProp","addTab","onTabsChange","updateSelectedTabName","updateSelectedTabColumns","updateSelectedTabLayout","removeSelectedTab","LayoutSelect","tabShape","ItemLayoutEditor","contextTypes","ItemDetailLayoutEditor","withContext","ItemEditLayoutEditor","additional_fields","ADDITIONAL_PROPERTIES","activity","teaserTemplate","setTeaserTemplate","teaser_template","onActivityTeaserChange","example_var1","example_var2","PropertiesReference","integration","onRemove","setSubject","email_subject_template","email_text_template","assignee_property_id","EmailIntegration","emailIntegrations","onEmailIntegrationsChange","uuid","SingleEmailIntegration","updatedIntegration","changeIntegration","removeIntegration","ActivityIntegration","imageId","encodeURIComponent","Assets","memberships","membership","AssignedMember","Tag","Info","logo","setFilteredByTag","descriptionContainer","Tags","Title","cardId","toggleArchive","isArchive","isUnassigned","showMenu","setShowMenu","toggleMenu","archivedBy","archivedAt","person_name","canDrag","canMoveCard","setCardHeight","cardRef","onMoveCard","targetColumn","insertAfterCardId","cardTarget","hover","setHoveredCardId","Card","onSetCardRef","cardHeight","archiveItem","unarchiveItem","setFilteredByMember","FileCounter","AssignedMembers","ArchiveInfo","setCardRef","columnTitleTarget","setIsOverColumnTitle","columnField","ColumnTitle","changeIsOver","lifecycle","UNSAFE_componentWillReceiveProps","columnTarget","hoveredCardId","Column","isOverColumnTitle","cards","card","cardTitleField","cardFileField","cardMembershipField","cardDescriptionField","cardDateField","cardTagField","cardLogoField","setCard","setCurrentCard","archived_by","archived_at","hasMoreItems","loadMoreItems","totalArchivedItems","appUrl","createPortalComponent","callback","elemRef","callCallback","firstChild","createPortal","HeaderPortal","WallViewFilterPortal","UserbarPortal","ChatbarPortal","ContentPortal","GroupNavigationPortal","PageTitlePortal","queryParams","_faFilterCircleXmark","assignee_id","assignee_name","image_id","logoId","UnassignedItems","cardProps","titlePropName","canUpdateColumn","showItems","setShowItems","itemsForWallSelector","loadMoreUrls","loadMoreUrlsSelector","totalArchivedItemsSelector","updateItem","insert_after_id","optimistic","initApp","fetchApp","SUCCESS","fetchItems","fetchItemsForTag","fetchItemsForMember","loadMoreItemsByColumn","tag_filter","setShowsFilteredItems","member_filter","layoutOptions","getField","appColumns","_id","column_property","unassignedItems","showsFilteredItems","HeaderButtons","stage","AppStage","isLast","IntegrationsEditor","ItemsWallView","getNetworkProfileFields","widgetbarPath","editWidgetbarPath","getWidgets","getWidgetbarGroupId","getWidgetbarSuccessfulSave","getWidgetbarErrors","getWidgetbarLoadingState","getSelectedWidgetIndex","getCalendars","getWidgetbarIdentifier","getSelectedWidget","createSelector","widgets","getWidgetbars","MultiselectField","rawValue","rawOptions","profile_fields","additional_calendar_ids","getOptions","scope","scopeSelection","labelProps","tooltipRef","useTooltip","ModuleselectField","defaultValue","propTypeSelections","selection","withOnChange","groupId","valueChange","propertyKey","changeValue","eventOrNewVal","handleMultiselectLogic","PropTypeFields","headline","TextareaField","renderer","SelectField","NumberField","show_age","RadioField","widget","possibleOptions","generateHint","checkIfHintShouldShow","MembersHeadline","GroupInformationText","getWidgetName","prefix","identifier","widgetConfig","admin_members","birthday","group_info","newest_members","online_members","rss","speed_dial","Widget","widgetType","draggable","DraggableWidget","types","widgetTypes","layoutTarget","addOrMoveWidget","WidgetbarDragNDrop","selectWidget","selectedWidgetIndex","WidgetProperties","removeWidget","defaultProperties","WidgetPropertiesLayout","saveSuccessful","fetchWidgetbar","fetchCalendars","setGroupId","setIdentifier","updateWidgetbar","resetSuccessfulSave","resetErrors","widgetbar","w","notFound","NotFound","WidgetTypes","WidgetbarLayout","WidgetbarForm","WidgetbarSelection","widgetbars","fetchWidgetbars","useLegalText","LegalTextRow","legalText","onDeleteLegalText","fontSize","legalTexts","refetch","refetchLegalTexts","deleteLegalText","align","fetchImprint","updateImprint","useUpdateImprint","imprints","MarkdownEditorAdapter","show_newsletter_info","isEditing","handleEdit","handleDestroy","textColor","mostReadable","includeFallbackColors","EditRole","handleCancelEdit","Spectrum","roles","editingId","handleNew","WidgetbarEdit","WidgetbarIndex","LegalTextIndex","ImprintEdit","formatTime","momentDate","FormattedTime","allDay","isBetween","markers","canceled","has_meeting","markerColor","isFirst","weekNum","notActualMonth","columnNumber","lastRow","momentDay","divRef","visibleAppointmentCount","floor","hiddenAppointmentCount","hovered","setHovered","handleHover","useHover","initialDimensions","setInitialDimensions","useLayoutEffect","newInitialDimensions","clientWidth","bg","onDoubleClick","calId","AppointmentLine","HeaderCell","appointmentsByDate","days","weekCount","dates","startOfMonth","endOfMonth","rowStyle","gridTemplateRows","maxCellHeight","at","week","j","CalendarSheetCell","onChangeExternalId","ExternalIdInput","colorObjToCSSProperties","colorObj","abstract","tailwind","r","g","TinyColor","toRgb","LOGO_RULES","extended","BANNER_RULES","colors","derivedColors","col","override","bannerImage","bannerUrl","logoType","GroupCategorySections","unreadCountByGroupSlug","groupCategories","groupsByCategoryId","groupCategoriesSelector","myGroupsByCategoryIdSelector","unreadCount","GroupCategorySection","mainGroupHidden","main_group_hidden","mainGroupSlug","main_group_slug","active_theme","loadOpenState","setIsOpen","addGroupLink","create","UserbarSection","collapsible","persistOpenState","hasFavorites","favorited","additionalTitleElement","userbarVariables","ContextNavigation","userbarRef","activeItem","UserbarContent","groupCategoryTheme","titleClasses","titleTextClasses","extraChildren","wordBreak","FavoriteGroupIcon","UserbarLink","showWhileClosed","prefixMatch","regex","escapeRegExp","ModuleSwitcher","useTooltipsIfTitlesAreHidden","throttledToggleTooltips","titleElem","toggleTooltips","Module","notifications","MODULE_LOOKUP","duo","_faEarthEurope2","_faInbox2","_faCalendarDay2","Tasks","_faCircleCheck2","Files","Directory","More","TixxtModuleSwitcher","activeModule","userbarIconType","availableModules","moduleName","_faBrush2","_faBrush","InfoUserbar","legal_texts","additionalLinks","additional_links","abuse_reports","useOpenJoinRequestsCount","featuresUnreads","GroupJoinRequests","open_join_requests","ActivitystreamsUserbar","networkStreams","Activitystream","all","processUnreadCounts","useActivitiesUnreads","groupUnreads","networkUnreads","partition","networkUnreadsByStreamSlug","indexBy","openJoinRequestCount","getUserbarLinkTitle","unreadSumBySlug","MessagesUserbar","AppointmentsUserbar","TasksUserbar","FilesUserbar","networkName","networkNameSelector","networkUnreadCount","AdministrationUserbar","groupCategorySlug","groupSelector","groupCategorySelector","sections","context_type","context_id","useAdministrationUserbarLinks","section","links","exact","alternative_paths","SearchUserbar","pathAndQuery","MembershipsUserbar","membershipId","Infinity","useMembership","large","update_registration","update_profile","DirectoryUserbar","PagesUserbar","AppCreatorUserbar","expandRootPaths","rootPaths","routeObject","rootPath","TixxtUserbar","ChatBar","Suspense","fallback","TixxtGroupNavigation","group_id","StaticTixxtGroupNavigation","current_group","externally_visible","TixxtPageTitle","ContextPageTitle","StaticTixxtPageTitle","setTixxtPageTitle","getState","setTitle","useRecurringAppointment","AppointmentPageTitle","setAppointment","assignAppointment","toggleBackbone","BackboneFeature","feature","paramKeys","actionArguments","k","v","stopFeature","documentReady","startFeature","paramRegex","convertRoutes","featureRoutes","omittedParamKeys","matchAll","networkPath","groupPath","rundschreiben","AppointmentToolbar","setViewType","setDate","toggleExcludedCalendarIds","excludedCalendarIds","canCreate","scrollToToday","datePickerRef","bySlug","calendarId","cal","parent_id","create_appointments","datepicker","Datepicker","pickLevel","detail","subtract","readOnly","CalendarFilterDropdown","_faTableCells","typeLabels","personal","sortedGroupedCalendars","grouped","categoryName","categoryCalendars","DATE_FORMAT","weeksInRange","rangeStart","rangeEnd","currentDate","weeks","weekday","collectAppointmentsByDate","startOf","datesInRange","isInRange","appointmentsInDateRange","msToDayFactor","dateStamp","offsetMinutes","utcOffset","zone","valueOf","dateStampsRange","appointmentDate","AllDayTag","LeftArrow","RightArrow","TimeTag","spansMultipleDays","stamp","spansDate","AppointmentItem","todayRef","calendar_ids","calendar_id","CalendarDay","today","isAfter","future","isBefore","CalendarWeek","weekNumber","isEmptyWeek","isoWeek","AppointmentsList","weeksInMonth","MEDIUM_BREAKPOINT","isSmall","AppointmentsPage","participating","persistedView","setPersistedView","setView","updateView","useWindowEvent","useAppointmentView","setExcludedCalendarIds","keepPreviousData","useAppointments","contextCalendars","filteredAppointments","contextAppointments","groupAppointmentsCalendarIds","CalendarSheet","isShared","canAddCalendar","create_personal_calendars","create_calendars","groupCalendarsByType","groupedCalendars","shared","cals","CalendarListItem","renderActions","addCalendar","_faCalendarCirclePlus","CalendarListView","addCalendarsAllowed","groupsWithCalendars","groupsById","groupCalendarsByGroup","ManageCalendarsPage","deleteCalendar","deleteShare","useDeleteShare","COLLECTION_URL_LOOKUP","all_appointments","participating_appointments","personal_calendar","shared_calendar","network_calendar","CalendarSubscribeModal","modalOptions","isCollection","collectionType","isCalendar","auth_token","authentication_token","filteredCalendars","calendarFilter","writeText","copyToClipboard","_faCopy","SubscribeCalendarsPage","setModalOptions","onShowModal","_faCalendarPlus2","description_rendered","reloadAppointment","control","reloading","setReloading","isRecurring","addParticipants","_data","membership_ids","group_count","group_ids","membership_role_count","membership_role_ids","participantsStatus","emailNotification","selectedEntities","inviteConsumers","applyTo","memberIds","groupIds","membershipRoleIds","mr","addParticipantsHandler","send_email_notification","invite_consumers","apply_to","changeStatus","PARTICIPANT_STATUS_LOOKUP","_faCircleHalfStroke","ParticipantRow","newStatus","setNewStatus","updateParticipation","participantId","useUpdateParticipation","deleteParticipant","useDeleteParticipant","displayModal","handleCloseModal","onRemoveParticipant","onChangeParticipantStatus","ParticipantsOverview","searchText","setSearchText","activeFilter","setActiveFilter","filteredParticipants","without","changeActiveFilter","ParticipantsView","useAppointment","download_attendees","file_ending","AppointmentPreview","NewParticipantForm","COLOR_POOL","CalendarForm","calendarName","calendarColor","calendarShare","onReset","random","NewCalendarPage","parentId","createCalendar","EditCalendarPage","useCalendar","updateCalendar","backboneRoutes","members","selectMessage","read","hasReplies","conversationLength","to_count","activeMessageRow","unreadMessage","tabIndex","navigateDetails","anonymize_membership_name","icons","onlyIcon","useMarkMessageAsRead","offset","isFetching","selectedMessageIds","setSelectedMessageIds","onLoadMoreMessages","refetchMessages","allMessageIds","deleteMessages","messageIds","message_ids","useDeleteMessages","isLoadingRead","useMarkMessagesAsRead","invalidateQueries","markAsUnread","isLoadingUnread","useMarkMessagesAsUnread","divide","Fragment","InteractionsButton","confirmMessage","pageParam","setPage","useFetchMessages","MessagesInteractions","MessageRow","onSetMessageId","conversation_length","navigationUrl","pull","InboxToolbar","_faPenLine","InboxPage","Subtitle","MessagesList","SentPage","nativeEvent","CheckboxField","labelHint","additionalText","val","setVal","newVal","normalizeValue","formatValue","castArray","formatResponse","finalResults","SelectAdapter","extraQueryParams","menu","zIndex","AsyncSelect","normalize","Membership","isAdmin","networkAdminSelector","toAllNetworkMembers","hasGroupRecipient","toAll","setToAll","MembershipAndGroupField","only_my_admin_groups","htmlId","FileField","useFetchBaseMembershipData","sendMessage","useSendMessage","onUnload","MessageForm","fullWidth","submitIcon","to_all_network_members","SubmissionError","publishAllVolatile","recipient","to_group","NewMessagePage","isRead","onSetMessageAction","messageAction","deleteMessage","useDeleteMessage","useMarkMessageAsUnread","updatedCache","sendDirectMessages","testId","currentMemberId","isConversation","authorUrl","authorImageUrl","authorName","FileIcon","selectedMembers","recipients","newMemberArray","messageInitialValues","sender_name","htmlContent","send_date","send_time","conversation_starter_id","isAuthorInRecipients","attachment","setMessageAction","isSuccess","useFetchMessage","conversation","MessageInteractions","NewMessage","MessageContainer","ShowMessagePage","MessageDetails","validate","ConnectedForm","postToStreamDefault","post_to_stream","NewFilesForm","FileUpload","NewFilesPage","submitApi","remainingValues","publishFiles","navigateToFolder","Breadcrumb","approvePendingFileVersion","pendingVersionId","declinePendingFileVersion","useFilesReviewStatus","parsePaginationHeaders","fetchFilesForReviewStatus","pagination","removePendingFileVersionFromCache","_response","VersionApproval","rootFolder","useFilesVersionApproval","pending_versions","pendingVersion","PendingVersionApprovalRow","author_name","isDeclining","approve","isApproving","foo","ReviewStatus","ReviewStatusRow","updated_at","current_version_authors","review_status","insertions","deletions","changes","comments","Layout","ApprovalPage","foldersUnreads","Number","reviewed_files","search_text","Content","fetchNetworkSettings","updateNetworkSettings","useUpdateNetworkSettings","sendTestBirthdayEmail","birthday_emails","AVAILABLE_LANGUAGES","admin_configurable","groups_only","Selection","join_user_can_initiate","join_promote_groups","decorators","decorators_external","gc","GroupSelectField","maps_enabled","show_map","map_scope_selection","two_factor","deleted_membership_count","anonymize_memberships_managed_by_admin","show_locked_memberships_managed_by_admin","initial_anonymize_memberships_config","anonymize_memberships_config","anonymize_memberships_after_days","available_factor_types","two_factor_totp_available","two_factor_email_available","twoFactorOptions","AddressField","street","number","zip","city","deletedMemberCount","Controls","wrapperClassName","createDaysArray","weekdays","moveArray","firstDayOfWeek","shift","digests_daily_activity_enabled","birthday_emails_enabled","birthday_emails_values","sendTestMail","getTabs","TabContent","BasicSettings","JoinSettings","MemberSettings","MailSettings","TabBar","networkSettings","reload","NetworkSettingsForm","group_promotion_config","guest_users_allow_chat","birthday_emails_image","hasChildren","onChangeOption","optionLink","newWindow","onChangeNewWindow","isPublic","onChangePublic","ItemForm","SelectContent","LinkForm","node","onChangeNode","keyName","findKey","findOption","MainFields","Checkboxes","public","buttonClass","getNodeKey","treeIndex","countAllNodes","treeData","walk","isValidNode","nextPath","navigationItemsUrl","NavigationManager","treeRef","onChangeTree","onMoveNode","activePath","onChangeActiveNode","newNode","changeNodeAtPath","sendData","isSaving","saveError","saveSuccess","ignoreCollapsed","isValidTree","serializeTree","parseNavigationItems","expanded","serializeNode","getActiveNode","getNodeAtPath","buildNewNode","addNodeAt","addNodeUnderParent","parentKey","expandParent","addAsFirstChild","scrollToBottom","removeItemAt","removeNodeAtPath","apps","loadError","navResponse","navData","pagesResponse","pagesData","appsResponse","appsData","itemButtons","ItemButton","SortableTree","isVirtualized","maxDepth","generateNodeProps","NavigationManagerForm","dragIndex","hoverIndex","hoverBoundingRect","hoverRef","getBoundingClientRect","hoverMiddleY","bottom","hoverClientY","getClientOffset","y","moveCard","createRef","customBackgroundColor","flow","dragCard","newCards","x","createMembership","updateMembership","MemberEditFields","useMembershipProfile","SimpleInput","selectNetworkId","useStore","MembershipForm","persistItem","membershipResult","renderExtraFields","MemberCreateFields","formValues","send_welcome_mail","EmailField","password","user","profile_id","updateField","legalTextId","updateLegalText","LegalTextForm","createLegalText","version","isCurrent","isOpened","last_updated_at","collapse","openedText","setOpenedText","LegalTextVersion","updateAppNavigation","usePages","unusedDefaults","changedToDefault","defaults","isDefault","globe","cog","users","paperclip","book","bullhorn","certificate","flag","changeIcon","selectedIcon","selectIcon","iconName","OPTIONS","activitystream","changeType","selectOption","newType","newItem","TYPE_LOOKUP","more","Default","directory","settings","openIn","setOpenIn","open_in","setLink","isInvalidUrl","setIsInvalidUrl","openInDisabled","setOpenInDisabled","onLinkChange","selectedPage","selectPage","streams","stream","selectedStream","selectStream","changeActiveNode","changeEntryPoint","TypeForm","entryPoint","setEntryPoint","isEntryPoint","TypeSelector","changedItem","IconSelection","setMore","setTreeData","setActivePath","updateItems","useUpdateAppNavigation","moveItemToMore","newMore","_e","newTreeData","moreCandidate","changedTreeData","hasNoEntryPointItem","activeNode","NodeTitle","pullAt","pullAllBy","removeItemFromMore","GroupAdministrationMainPage","hidden_main_group","DesignsOverviewPage","lazy","DesignsOverviewLightPage","DesignManagerPage","DesignManagerLightPage","StatisticsPage","TagsManagerPage","Params","reactRoutes","NetworkSettings","AppNavigationManager","GroupCategorySorter","MembershipEdit","MembershipNew","LegalTextEdit","LegalTextNew","LegalTextVersions","themeType","EditMembership","changeRequestsProfileFields","change_requests","NewChangeRequest","filterProperties","mapProperties","transformItem","radio","configCategory","switchValue","conditions","isMounted","localeCompare","CheckboxFields","mapOptions","_value","PushNotificationSettingsForm","deviceId","setDeviceUniqueId","deviceName","setDeviceName","useFetchDeviceSettings","getDeviceUniqueId","askToRegisterDevice","updateDeviceSettings","goBack","setting","transform2FrontendState","newState","cloneDeep","switch","transform2BackendState","createOnSubmit","notificationsWereDeactivated","membershipSettingsResult","updateMembershipSettings","EditMembershipSettings","showEmailDigests","showEmailDailyDigests","notificationsDeactivated","marginBottom","validateTab","snakeCase","DigestSettings","EmailConfigList","initialize","BasicItemForm","sensitive","active_main_group","can_create_hidden","accessValue","access_options","GroupAccess","create_hidden","Children","moderated_join","members_can_invite","groupCategoryName","miscSettings","ChatSettings","MiscSettings","deleteGroup","archiveGroup","onDeleteGroup","redirect","documentElement","historyChanged","onArchiveGroup","group_name","EditGroup","fetchGroup","archive","EditGroupActions","GroupForm","groupResult","updateGroup","NewGroup","networkId","groupDefaults","fetchGroupDefaults","createGroup","GroupInviteActions","groupInviteId","setInviteStatus","GroupInvite","additional_message","checkIfPresent","GroupInvites","groupInvites","useFetchGroupInvites","groupInvite","updateProfileStep","redirectUrl","setRedirectUrl","onboardingResult","ProfileOnboarding","invitesRoutes","MemberMapPage","launchChat","networkUrl","socketUrl","addReducers","chatReducer","runSaga","chatSaga","fetchCredentials","authorizationError","setPageTitle","ChatNew","RedirectToStartpage","startPage","start_page","activitystreamsRoutes","appointmentsRoutes","messagesRoutes","filesRoutes","tasksRoutes","globalSearchRoutes","administrationRoutes","directoryRoutes","membershipRoutes","groupRoutes","onboardingRoutes","mapRoutes","MobileAppChat","originalNavigate","spaRoot","restoreBackboneNavigate","BackboneHistoryShim","call","shimBackboneNavigate","appRoutes","TixxtContent","toggleFrontend","TurboCompat","spaNavigateInstead","frontendByLocation","elementRef","setCursor","upHandler","prevState","MODULE_WHITELIST","getModule","getModuleFromQueryParams","SearchBar","searchIsFocused","setSearchIsFocused","parentName","generateItems","onSearch","useSelectNavigation","_faMagnifyingGlass3","_faMagnifyingGlass","onMouseEnter","_faMagnifyingGlass4","_faMagnifyingGlass2","_faTable2","_faCompass2","_faCompass","ChatButton","chatCount","getAggregatedUnreadCount","_faComments2","NotificationPing","NotificationDropDownItems","_faNewspaper","Notifications","_faEnvelopeOpenText","_faCalendarCircleUser","UserCentral","availableUpdates","administratableGroupCategories","administrate","_faBell2","_faBell","medium","_faCircleChevronDown","_faIdBadge","_faUserPen","_faGears","_faChartUser","version_and_updates","_faScrewdriverWrench","_faGear","_faArrowRightFromBracket","LARGE_BREAKPOINT","setDeploymentOfferSeenDate","toISOString","allDeploymentOffersSeen","deploymentOffer","EMPTY","CustomerCentralUpdateCheck","customer_central_url","Authorization","customer_central_jwt","res","release_notes_url","days_till_deadline","deadline","diff","TeamsRenewOAuthCredentialsCheck","teams_configuration","show_renew_secret_modal","TixxtHeader","groupTheme","logoUrl","logoImage","logoRef","bannerType","logoResizeBreakpoint","resizeBreakpoint","getPropertyValue","setActive","toggleActive","logoEl","navEl","maxWidth","startShrink","cleanUp","removeAttribute","onScroll","hasAttribute","requestAnimationFrame","newHeight","clamp","setProperty","useLogoScrollResize","_faHouse2","_faHouse","applyStyleOverride","styleEl","cssContent","themeToCss","isConnected","head","ApplyOverrideTheme","useTheme","faviconEl","toggleBodyClasses","newBody","linkEl","faviconImage","applyFaviconOverride","storeOverrideTheme","removeStyleOverride","themeSliceActions","setTheme","groupSetTheme","resetTheme","groupResetTheme","groupCategorySetTheme","groupCategoryResetTheme","lightThemeToCss","appointmentIdToGroupSlugs","calendarParentIds","attributes","as","ci","fileIdToGroupSlugs","File","group_slugs","folderIdToGroupSlugs","groupFromId","Folder","taskIdToGroupSlugs","taskId","controller","currentCollection","first_stream_slug","groupsFromSlugs","slugs","activityIdToGroupSlugs","Activity","groupCategoriesFromGroups","category_id","groupCategoriesFromSlugs","SlugsContext","GroupsFromSlug","contextSlug","setSlugsState","previousSlug","GroupsFromActivityId","GroupsFromAppointmentId","GroupsFromTaskId","GroupsFromFolderId","paramsFolderId","queryFolderId","GroupsFromFileId","NoSlugs","selectors","HandleContextHeader","relevantContext","lastContext","activeTheme","hasSameTheme","themeParents","themeParent","Noop","pickRelevantGroups","first","ApplyOverrideGroupTheme","pickRelevantGroupCategories","ApplyOverrideGroupCategoryTheme","AppSearchHeader","App","canChat","setMemberIsLoggedIn","setMemberId","setMemberCanChat","TixxtChatbar","Settings","development","compatThisArg","fn","collection","thisArg","lodash","customLodashCompat","mixin","any","pairs","chain","lazyForEach","prototype","Bridge","webkit","messageHandlers","nativeApp","toggleUserbar","userbar","toggleChat","toggleSearchbar","searchbar","searchInput","blur","registerDevice","removeDevice","deviceUniqId","deletedDevice","showChat","loadNetworkConfig","setNetworkConfig","setPages","loadUnreads","pageTitle","isLoggedIn","configureLayout","getAuthToken","authToken","callbackName","prompt","MemberRow","showAge","birthday_is_today","_faGift","age","AdminMembersWidget","AppointmentRow","currentTime","guess","startTime","join_url","isSameOrAfter","endTime","displayTime","AppointmentsWidget","BirthdayWidget","your_birthday","GroupInfoWidget","NewestMembersWidget","OnlineMembersWidget","RssWidget","SpeedDialWidget","setMembers","TextWidget","renderWidgetComponent","ActivitystreamWidgetbar","useActivitystreamWidgetbar","loadingText","errorText","showParticipants","consumersCount","teamsOnlyParticipantsCount","defaultRole","participantsByRole","obj","Helpers","naturalSortByObjectKey","AppointmentContact","ActivityComposer","ReplyComposer","ExternalIdComponent","adaptedFileComponents","adaptedSharedComponents","adaptedAppCreatorComponents","adaptedAdministrationComponents","jQuery","_compat","hljs","loadAndConfigureCKEditor","userInput","rails","allowAction","fire","stack","setApplication","showCookieModal","cookieModal","modalCloser","cookie","hide","cookieModalElement","keyboard","backdrop","setupReact","myDefaultState","app_muted_until","unread_count","POSSIBLE_PARTNER_ACTION_TYPES","isPartnerAction","topic","membership_id","myStateReducer","partnerDefaultState","last_received_id","partnerStateReducer","extractChats","getFp","keyByFp","requestStateReducer","maybeUndefinedState","partner_state","defaultStateFromAction","getChatIdFromPayload","getChatIdFromMeta","BLACKLIST","mergeMessages","received","r1","r2","out","insertOrUpdateMessage","findLastIndex","keepUntil","messageList","cid","removeByClientId","searchClientId","reverse","apiRequests","parentAction","composingInChat","composing","storeHomie","homie","homies","transformPayload","payloadTransformer","defaultState","getGroupCategoryName","combineReducers","getChatId","composer","onlineMembers","busyMembers","memberOrGroup","createEventSaga","channel","eventChannel","emit","handlers","take","put","cancelled","presenceSaga","sync","metas","online_at","maxBy","Presence","onSync","handleApiRequests","actionChannel","getNetworkUrl","Accept","Response","UNREAD_TIMER","COMPOSING_TIMEOUT","isShowChatNavigationAction","createWindowFocusPromise","handler","fetchChatDetails","fetchMoreRecentMessages","getMoreMessagesAvailableForChat","firstMessageId","getFirstMessageIdInChat","message_id","markChatAsRead","race","delay","mark_as_read","mark_as_read_start","markChatAsReadHandler","lastReadId","getLastReadIdForChat","lastMessageId","getLastMessageIdInChat","hasFocus","getLastUnreadMessageInChat","navigateToChatWeCreated","navigateAction","takeLatest","fork","timeoutComposing","timeoutComposingStates","timeoutTasks","composingActions","ident","isRunning","cancel","receive","pushReply","baseMeta","RECEIVE_EVENTS","handleIncomingMessages","createShouldHandleTo","channelType","channelId","handleOutgoingMessages","outgoingMessages","shouldHandleTo","handleChatQueries","chatQueries","pushComposingEvent","markMessageAsReceived","messagePayload","markLastChatMessagesAsReceived","channelSaga","leave","myChannelSaga","socket","networkChannel","memberChannel","isGroupChat","groupChatIdToTopic","chatChannelsSaga","getChatNavigation","notify","notification","notificationCloser","onclick","onclose","notifyForIncomingMessage","getProfileId","setTinycon","unreadChats","Tinycon","background","takeEvery","createSocket","Socket","reconnectAfterMs","socketEventSaga","credentialsCache","validUntil","memoizedCredentials","cachedPayload","windowUnloading","applicationSaga","notificationsSaga","network_id","socketEventTask","channelsTask","channelsSaga","retryIn","getHomie","homieId","getChats","getRawChatProfile","getStateForChat","mutedUntil","getAppMutedUntilForChat","getMutedUntilForChat","rawProfile","partnerId","getPartnerId","idRest","myId","timestamps","composingIds","recentlyComposingHomieId","findLast","partnerState","getChatPartnerState"],"sourceRoot":""}