{"version":3,"file":"js/application-993b8cde6adbe2d04e14.js","mappings":"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GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,EAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,wBAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,EAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAArpC,GAAAA,GAAAspC,GAAAA,cAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,aAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,WAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,GAAAA,GAAAC,G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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, 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 { includes, isEmpty, map } 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 e.preventDefault();\n toggleExcludedCalendarIds(\"all\");\n }}\n />\n {map(calendars, (calendar) => (\n {\n e.preventDefault();\n toggleExcludedCalendarIds(calendar.id);\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","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","frame","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","_faFilterCircleXmark","_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","searchParams","contextRootFolderId","rootFolderIdSelector","FolderSelectionField","FileDescription","FormActions","MaybeWrapped","onlyRows","ValueSetTable","showLoading","isNil","prop","PropertyShow","fileServerV2Discovery","removeSelected","selectedItemAndFolderIds","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","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","locked","finalized","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","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","_faTableCells","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","personal","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":""}