{"version":3,"file":"js/application-af5ad9819ec126179267.js","mappings":"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r7H,GACd,IAAQT,EAAiBN,KAAjBM,aACJ5P,GAASgR,EAAAA,EAAAA,KAAY,SAACrF,GAAD,OAAWA,EAAM3L,UAC1CA,EAAU4P,EAAwBpJ,EAATxG,EAEzB,IAAMwJ,GAASywD,EAAAA,GAAAA,IAAU,CACvBpkD,SADuB,YACF,EAAVrM,QAGX0wD,UAAU,EACV5tC,QAASjc,EAAMic,QACf6tC,WAAY,CACVC,GAAAA,EAAAA,UAAqB,CACnBC,SAAS,EACTC,WAAW,EACXC,SAAS,EACTC,UAAU,EACVmxE,aAAa,EACbC,YAAY,EACZnxE,YAAY,IAEdC,GAAAA,UAAmB,CACjB/yB,MAAO,CACL,UACA,YACA,QACA,QACA,QACA,QACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,QACA,QACA,OACA,iBACA,UACA,iBACA,aACA,cACA,WACA,WACA,WACA,eACA,aACA,SACA,mBACA,oBACA,kBACA,YACA,iBACA,UACA,WACA,cACA,kBAGJkkG,GAAAA,UAAsB,CACpBlkG,MAAO,CACL,UACA,YACA,QACA,QACA,QACA,QACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,QACA,QACA,OACA,iBACA,UACA,iBACA,aACA,cACA,WACA,WACA,WACA,eACA,aACA,SACA,mBACA,oBACA,kBACA,YACA,iBACA,UACA,WACA,cACA,kBAGJmkG,GAAAA,UAAwB,CACtBnkG,MAAO,CAAC,UAAW,YAAa,aAAc,iBAEhDokG,GAAAA,UAA6B,CAC3BpkG,MAAO,CACL,YACA,UACA,aACA,cACA,WACA,QACA,QACA,QACA,QACA,SACA,aAGJgzB,GAAAA,GAAAA,UAAoB,CAClBC,YAAY,IAEdoxE,GACAlxE,GAAAA,EAEAM,GACAL,GAAAA,EACAC,GAAAA,EACAK,GAEAC,GACA0Z,GACAi3D,GACAh3D,GACAi3D,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA5xE,GACAC,GACAC,GACAI,GACA1H,GACAgH,GACAphB,GACAqzF,GACAC,GACA5gF,GAAAA,UAAuB,C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KnI,MAAM+/H,SAAW//H,EAAM+/H,SACzD,SACA,SAIJ,IA8jBA,IA9jBe1tE,EAAAA,EAAAA,OAAK,SAAC3tD,GACnB,IAAMuS,GAAWE,EAAAA,EAAAA,MACjB,MAA4BrT,EAAAA,EAAAA,WAAS,GAArC,GAAOsH,EAAP,KAAe6nE,EAAf,KAEMp1E,GAASywD,EAAAA,GAAAA,IAAU,CACvBpkD,SADuB,YACF,EAAVrM,QAGX0wD,SAAU7pD,EAAM6pD,SAChBC,WAAY,CACVC,GAAAA,EAAAA,UAAqB,CACnBC,SAAS,EACTC,WAAW,EACXC,SAAS,EACTC,UAAU,EACVmxE,aAAa,EACbC,YAAY,EACZ8gB,gBAAgB,EAChBjyF,YAAY,IAEdC,GAAAA,UAAmB,CACjB/yB,MAAO,CACL,UACA,YACA,QACA,QACA,QACA,QACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,QACA,QACA,OACA,iBACA,UACA,iBACA,aACA,cACA,WACA,WACA,WACA,eACA,aACA,SACA,mBACA,oBACA,kBACA,YACA,iBACA,UACA,cAGJkkG,GAAAA,UAAsB,CACpBlkG,MAAO,CACL,UACA,YACA,QACA,QACA,QACA,QACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,QACA,QACA,OACA,iBACA,UACA,iBACA,aACA,cACA,WACA,WACA,eACA,aACA,SACA,mBACA,oBACA,kBACA,YACA,iBACA,UACA,cAGJmkG,GAAAA,UAAwB,CACtBnkG,MAAO,CAAC,UAAW,YAAa,aAAc,iBAEhDokG,GAAAA,UAA6B,CAC3BpkG,MAAO,CACL,YACA,UACA,aACA,cACA,WACA,QACA,QACA,QACA,QACA,SACA,aAGJgzB,GAAAA,GAAAA,UAAoB,CAClBC,YAAY,IAEdE,GAAAA,EACAkxE,GACA5wE,GACAL,GAAAA,EACAC,GAAAA,EACAK,GACAC,GACA0Z,GACAi3D,GACAh3D,GACAi3D,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA5xE,GACAC,GACAC,GACAI,GACA1H,GACAgH,GACAph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C,OAAQ,yCACRnM,aACE,mMACFoM,OAAQ,iCACRnM,aACE,sIACFoM,OAAQ,+CACRnM,aACE,6HACFoM,SAAU,YACVC,UAAW,kBACXC,WAAY,mBACZC,cAAe,uBACfC,OAAQ,qDACRC,OAAQ,yCACRxM,aACE,0GACFyM,OAAQ,iBACRC,aACE,2GACFC,OAAQ,iCACRC,aACE,wFACFC,OAAQ,mCACRC,aACE,wHACFC,OAAQ,6CACRC,aACE,0IACFC,OAAQ,SACRC,aAAc,gDACdC,OAAQ,WACRC,cACE,yFACFC,QAAS,SACTC,cACE,mFACFC,cACE,0GACFC,cACE,wGACFC,cACE,mKACFC,cACE,sMACFC,cACE,0GACFC,cACE,gLACFthL,GAAI,YACJk1D,IAAK,kBACLqsH,QAAS,UACTC,QAAS,aACTC,QAAS,mBACTC,QAAS,aACTC,QAAS,YACTC,QAAS,mBAEXC,WAAY,CACVC,iBACE,+DACFC,sBACE,oEACFC,wBACE,2DACFC,uBACE,qEACFC,yBACE,mEACFC,wBACE,6EACFC,4BACE,+DACFC,2BACE,gEACFC,iBAAkB,+BAClBpgF,eAAgB,CACd7xE,QAAS,CACPuoJ,WAAY,wBACZh0J,QAAS,qBACTzQ,MAAO,6BAET6N,YACE,wFAEJugK,mBAAoB,CAClBhP,aACE,kEACFC,aACE,+FAEJhxE,QAAS,CACP+wE,aACE,gEACFC,aACE,8FAEJ9wE,iBAAkB,CAChB6wE,aAAc,4CACdC,aACE,uGAEJ5wE,YAAa,CACX2wE,aAAc,uBACdC,aACE,yDAEJgP,kBAAmB,CACjBjP,aACE,qEACFC,aACE,uHAEJxwE,uBAAwB,CACtBuwE,aACE,sEACFC,aACE,gFAEJrwE,QAAS,CACPowE,aACE,6DACFC,aACE,4EAEJnwE,aAAc,CACZtsF,YACE,uDAEJwsF,qBAAsB,CACpBgwE,aACE,wDACFC,aACE,6GAEJ/vE,oBAAqB,CACnB8vE,aACE,qDACFC,aACE,gIAEJ7vE,iBAAkB,CAChB4vE,aACE,kDACFC,aACE,mOAEJiP,mBAAoB,CAClBlP,aAAc,yCACdC,aACE,0JAEJtwE,cAAe,CACbqwE,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","sources":["webpack://sutra/./app/packs/bundles/v2/collections/sutraTheme.js","webpack://sutra/./app/packs/bundles/v2/collections/defaultSpaceColors.js","webpack://sutra/./app/packs/bundles/v2/store/app.js","webpack://sutra/./app/packs/bundles/v2/utils/AxiosInterceptor.js","webpack://sutra/./app/packs/bundles/v2/utils/IsSpaceThemed.js","webpack://sutra/./app/packs/bundles/v2/utils/SidebarStyles.js","webpack://sutra/./app/packs/bundles/v2/src/images/logo/logoIcon.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/Logo.jsx","webpack://sutra/./app/packs/bundles/v2/utils/Host.js","webpack://sutra/./app/packs/bundles/v2/utils/Cookies.js","webpack://sutra/./app/packs/bundles/v2/models/Space.js","webpack://sutra/./app/packs/bundles/v2/models/Completion.js","webpack://sutra/./app/packs/bundles/v2/models/Hocuspocus.js","webpack://sutra/./app/packs/bundles/v2/collections/premiumMessages.js","webpack://sutra/./app/packs/bundles/v2/collections/premiumFeatures.js","webpack://sutra/./app/packs/bundles/v2/components/app/PremiumModal.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/colors/HeaderAndLogo.jsx","webpack://sutra/./app/packs/bundles/v2/utils/LocalDB.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/colors/PageFormat.jsx","webpack://sutra/./app/packs/bundles/v2/models/SpaceSetting.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/colors/PageLayout.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/colors/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/form/DuplicateForm.jsx","webpack://sutra/./app/packs/bundles/v2/helpers/Broadcaster.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/header/MainActions.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/payment/StripeFormPaymentMethod.jsx","webpack://sutra/./app/packs/bundles/v2/models/Stripe.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/payment/PaymentMethod.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/payment/History.jsx","webpack://sutra/./app/packs/bundles/v2/models/neo4j/Space.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/TreeView.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/form/DuplicateForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/Fees.jsx","webpack://sutra/./app/packs/bundles/v2/collections/colors.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/Once.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/layout/SectionHeader.jsx","webpack://sutra/./app/packs/bundles/v2/models/Answer.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/MultipleItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/SingleItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/PaymentItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/AnswerItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/Answers.jsx","webpack://sutra/./app/packs/bundles/v2/models/Question.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/SurveyQuestion.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomUniqId.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/utils/selection.js","webpack://sutra/./app/packs/bundles/v2/utils/PageWidth.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/ParagraphNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/HeadingNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/utils/setResizeable.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/utils/setLazyLoad.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/utils/uploaderStatus.js","webpack://sutra/./app/packs/bundles/v2/utils/StylesToString.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/ImageNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/VideoNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/AudioNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/EmbedNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/FileNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/ListItemNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/FancyLinkNode.js","webpack://sutra/./app/packs/bundles/v2/utils/ColorSwatches.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/FormatMenuSimple.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/collections/embedRegex.js","webpack://sutra/./app/packs/bundles/v2/models/MediaFile.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/Uploader.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/BlocksMenuInline.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomStyles.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/utils/clipboard.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/EventHandler.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomSize.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomResizeable.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/ColumnStyles.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/EditorEventsSimple.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/Mention.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/MentionList.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/mentionSuggestion.js","webpack://sutra/./app/packs/bundles/v2/utils/IsDarkColor.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TiptapInline.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/CreateSurveyMain.jsx","webpack://sutra/./app/packs/bundles/v2/models/Survey.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/CreateSurveyForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/CreateSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/responses/TextBased.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/Summary.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/Individual.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/ShowSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/SurveyItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/PaymentSurveyItem.jsx","webpack://sutra/./app/packs/bundles/v2/models/Manager.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/surveys/Add.jsx","webpack://sutra/./app/packs/bundles/v2/components/surveys/take/Question.jsx","webpack://sutra/./app/packs/bundles/v2/utils/LangUser.js","webpack://sutra/./app/packs/bundles/v2/utils/formatDate.js","webpack://sutra/./app/packs/bundles/v2/utils/ActivityCounter.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/ListContent.jsx","webpack://sutra/./app/packs/bundles/v2/models/Like.js","webpack://sutra/./app/packs/bundles/v2/components/likes/Button.jsx","webpack://sutra/./app/packs/bundles/v2/models/Message.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/ListPost.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/GridPost.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/Circle.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/CircleNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/Survey.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/SurveyNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomButton.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TiptapReadonly.jsx","webpack://sutra/./app/packs/bundles/v2/components/surveys/take/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TakeSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Surveys.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/Flexible.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/charging/Continuously.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/charging/NumberOfTimes.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/charging/UntilDate.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/FreeTrial.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/Recurring.jsx","webpack://sutra/./app/packs/bundles/v2/models/Coupon.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/CouponsForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/Coupons.jsx","webpack://sutra/./app/packs/bundles/v2/models/Bundle.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/BundlesForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/Bundles.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/TaxCollection.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/Extras.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/privacy/Paid.jsx","webpack://sutra/./app/packs/bundles/v2/models/Invitation.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/InviteEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/InviteExisting.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/InviteLink.jsx","webpack://sutra/./app/packs/bundles/v2/models/Member.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/InvitePeople.jsx","webpack://sutra/./app/packs/bundles/v2/utils/TrackMixpanel.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/header/MainActions.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/HeaderActions.jsx","webpack://sutra/./app/packs/bundles/models/NotificationModel.js","webpack://sutra/./app/packs/bundles/v2/components/layout/style/notifications.js","webpack://sutra/./app/packs/bundles/v2/components/layout/Notifications.jsx","webpack://sutra/./app/packs/bundles/v2/components/utils/LazyAvatar.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/DirectMessages.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/Uploader.jsx","webpack://sutra/./app/packs/bundles/v2/models/Search.js","webpack://sutra/./app/packs/bundles/v2/components/layout/Search.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/UserMenu.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/UserButton.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/HeaderContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/Header.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/List.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/form/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/New.jsx","webpack://sutra/./app/packs/bundles/v2/components/home/SpacesList.jsx","webpack://sutra/./app/packs/bundles/v2/models/User.js","webpack://sutra/./app/packs/bundles/v2/utils/AuthUser.js","webpack://sutra/./app/packs/bundles/v2/components/settings/Profile.jsx","webpack://sutra/./app/packs/bundles/v2/models/UserSetting.js","webpack://sutra/./app/packs/bundles/v2/components/settings/Account.jsx","webpack://sutra/./app/packs/bundles/v2/models/UserAffiliate.js","webpack://sutra/./app/packs/bundles/v2/components/settings/affiliates/Payments.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/affiliates/History.jsx","webpack://sutra/./app/packs/bundles/v2/models/SutraStripe.js","webpack://sutra/./app/packs/bundles/v2/components/settings/Affiliates.jsx","webpack://sutra/./app/packs/bundles/v2/collections/FrequencyOptions.js","webpack://sutra/./app/packs/bundles/v2/models/Broadcast.js","webpack://sutra/./app/packs/bundles/v2/components/settings/paid_subscriptions/Item.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/paid_subscriptions/History.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/PaidSubscriptions.jsx","webpack://sutra/./app/packs/bundles/models/SubscriptionModel.js","webpack://sutra/./app/packs/bundles/v2/components/settings/Subscriptions/Item.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/Subscriptions/Searchbar.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/Subscriptions/List.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/Email.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/billing/StripeForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/billing/PaymentMethod.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/billing/History.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/Billing.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/form/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/New.jsx","webpack://sutra/./app/packs/bundles/v2/components/utils/videoEmbed.js","webpack://sutra/./app/packs/bundles/v2/components/app/GettingStarted.jsx","webpack://sutra/./app/packs/bundles/v2/models/Plan.js","webpack://sutra/./app/packs/bundles/v2/components/app/payment/PlanOptions.jsx","webpack://sutra/./app/packs/bundles/v2/components/app/Welcome.jsx","webpack://sutra/./app/packs/bundles/v2/components/app/ScheduleDemo.jsx","webpack://sutra/./app/packs/bundles/v2/components/app/Pricing.jsx","webpack://sutra/./app/packs/bundles/v2/components/app/payment/PlanReference.jsx","webpack://sutra/./app/packs/bundles/v2/components/app/payment/StripeForm.jsx","webpack://sutra/./app/packs/bundles/v2/models/Auth.js","webpack://sutra/./app/packs/bundles/v2/components/users/AffiliateData.jsx","webpack://sutra/./app/packs/bundles/v2/components/app/payment/Payment.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/layout/NavbarContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/payment/Fees.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/payment/Once.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/layout/SectionHeader.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/MultipleItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/SingleItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/PaymentItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/AnswerItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/Answers.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/SurveyQuestion.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/CreateSurveyMain.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/CreateSurveyForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/CreateSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/responses/TextBased.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/Summary.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/Individual.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/ShowSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/SurveyItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/PaymentSurveyItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/surveys/Add.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Surveys.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/payment/Flexible.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/payment/charging/Continuously.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/payment/charging/NumberOfTimes.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/payment/charging/UntilDate.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/payment/Recurring.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/privacy/Paid.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/InviteEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/InviteExisting.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/InviteLink.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/InvitePeople.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/main/Scheduling.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/main/Additional.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/main/Seo.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/main/Scripts.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/privacy/Open.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/privacy/Private.jsx","webpack://sutra/./app/packs/bundles/v2/models/Journey.js","webpack://sutra/./app/packs/bundles/v2/models/Step.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/AddSimple.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/EditEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/EditMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/AddToExistingSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/AddToNewSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/AddFromSubSpace.jsx","webpack://sutra/./app/packs/bundles/v2/models/Structure.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/EditStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/ApplyTemplate.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/SetToPending.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/EditSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/models/Webhook.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/Webhook.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/Wait.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/EditStep.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/SendEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/AddStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/steps/SurveyPerson.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/StepIcon.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/AddStep.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/registration/RegistrationFlow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Main.jsx","webpack://sutra/./app/packs/bundles/v2/models/DirectMessage.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/RegisteredRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/Registered.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/InvitedRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/Invited.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/PaymentRow.jsx","webpack://sutra/./app/packs/bundles/v2/models/Payment.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/Payments.jsx","webpack://sutra/./app/packs/bundles/v2/models/Interest.js","webpack://sutra/./app/packs/bundles/v2/components/app/Premium.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/broadcast/ComposeBroadcast.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/InterestedRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/Interested.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Members.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/broadcast/BroadcastItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/broadcast/Broadcast.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Broadcast.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/structures/CreateStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/structures/ShowStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/structures/Add.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/structures/StructureItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Structures.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Admin.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/ListContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/ListPost.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/GridPost.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/List.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/ChildrenList.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Scheduled.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Archived.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/Sorter.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/ParticipationActivityRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/ParticipationActivity.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/MemberActivityRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/MemberActivity.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/ProgressActivityRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/members/ProgressActivity.jsx","webpack://sutra/./app/packs/bundles/v2/models/Participation.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Participation.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/layout/MainContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/settings/Settings.jsx","webpack://sutra/./app/packs/bundles/v2/models/Reflection.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/BlocksMenuSimple.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TiptapSimple.jsx","webpack://sutra/./app/packs/bundles/v2/components/likes/MessageButton.jsx","webpack://sutra/./app/packs/bundles/v2/models/Tag.js","webpack://sutra/./app/packs/bundles/v2/collections/TagColors.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/TagButton.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/Tag.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/Message.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/Reflections.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/HeaderImage.jsx","webpack://sutra/./app/packs/bundles/v2/utils/BreadcrumbsGenerator.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/Breadcrumbs.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/PinMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/NewMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/HeaderTitle.jsx","webpack://sutra/./app/packs/bundles/v2/models/SpaceTag.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/lists/TagButton.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/lists/Tag.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/HeaderTags.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/HeaderAuthor.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/form/CalendarLinks.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/form/InterestedForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/Calendar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/StatusBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/TagFilter.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/InteractionsBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/DummyBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/RedirectBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/NewReflections.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/FixedHeader.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/discussion/Discussion.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/utils/gridActions.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/Grid4Node.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/Grid3Node.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/Grid2Node.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/Grid1Node.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/InfoBoxNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/ColumnNode.js","webpack://sutra/./app/packs/bundles/v2/models/Resource.js","webpack://sutra/./app/packs/bundles/v2/models/Page.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/Resource.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/ResourceNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/FormNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/Button.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/ButtonNode.js","webpack://sutra/./app/packs/bundles/v2/models/Interaction.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/TagButton.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/Tag.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/Message.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/HighlightCard.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/Reflections.jsx","webpack://sutra/./app/packs/bundles/v2/models/EngagementFunction.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/InteractiveInput.jsx","webpack://sutra/./app/packs/bundles/v2/components/hooks/useDebounce.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/InteractiveInputNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/InteractiveButton.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/InteractiveButtonNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/InteractiveWait.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/InteractiveWaitNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/HorizontalRuleNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TagsFeed.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/TagsFeedNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/TaskList.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/BulletList.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/OrderedList.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/collections/sideMenuOptions.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/utils/dummyCursor.js","webpack://sutra/./app/packs/bundles/v2/models/View.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/VisionInput.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/VisionInputNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/VisionCircle.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/nodes/VisionCircleNode.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/ViewPage.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/ViewVideo.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/SurveyPerson.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/CreateSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/ShowSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/EmptyMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/EditorEvents.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/ListStyles.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomRadius.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomNestedRadius.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/Placeholder.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/Interactive.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/Incrementor.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomBlockId.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/content/Comments.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/content/CommentInput.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TiptapLikeButtonWrapper.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TiptapNoHP.jsx","webpack://sutra/./app/packs/bundles/v2/models/Vision.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/VisionChannel.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/AIBuilderModal.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TemplatesModal.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/SideBlocksMenu.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/Padding.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/Margin.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/Alignment.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/Width.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/Radius.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/NestedRadius.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/VerticalAlignment.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/BackgroundColor.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/BackgroundImage.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/ButtonBackgroundColor.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/ButtonText.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/ButtonAction.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/BundleAction.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/SpaceAttrs.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/InteractiveText.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/InteractiveSwitch.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/InteractiveWaitTime.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/InteractiveTextArea.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/InteractiveRadio.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/FileName.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/BlockId.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/LinkAction.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/DisplayAs.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/CircleDisplayAs.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/VideoDisplayAs.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/LinkTitle.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/LinkDescription.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/LinkImage.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/TagsFeedAttrs.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/InteractiveTags.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/BlockTitle.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/sidebar/Transcript.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/SideConfigurationsMenu.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/NewSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/NewMedia.jsx","webpack://sutra/./app/packs/bundles/v2/components/resources/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/NewResource.jsx","webpack://sutra/./app/packs/bundles/v2/components/resources/pages/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/NewPage.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/BundleSelection.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/CreateBundle.jsx","webpack://sutra/./app/packs/bundles/v2/src/images/buttons/spacesIcon.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/BlockMenuActions.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/BlockMenuFloating.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/FormatMenu.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/ActionsMenu.jsx","webpack://sutra/./app/packs/bundles/v2/models/Backup.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/BackupsList.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/RegPageColor.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/RegPageColors.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/FixedBottomMenu.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TiptapAi.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/TiptapChannel.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/plugins/CustomCollaboration.js","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/VersionControl.jsx","webpack://sutra/./app/packs/bundles/v2/components/tiptap/components/Tiptap.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/Loading.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/content/Content.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/content/ContentReadonly.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/content/BackupPreview.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/registration/RegistrationPage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/AlreadyMember.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/InvitationBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/registration/RegistrationPageReadonly.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/TaxAndDiscount.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/CouponButton.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/FlexibleList.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/payment/BundlesList.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/SpaceReference.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/payment/StripeForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/payment/Payment.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/Edit.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/Private.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/Pending.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/Processing.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/Invitation.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/Survey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/Gateway.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/static/BroadcastExclude.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/form/ListForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/form/LinkForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/lists/NewSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/lists/Settings.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/lists/Thumbnail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/lists/Events.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/presentations/lists/List.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/members/Member.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/members/List.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/Start.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/SignIn.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/SignUp.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/MagicLink.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/Recover.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/Edit.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/Payment.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/dummy/Pending.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/Space.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/layout/NavbarContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/main/Scheduling.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/TagButton.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/Tag.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/main/Additional.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/main/Seo.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/main/Scripts.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/main/Registration.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/main/Top.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/privacy/Open.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/privacy/Private.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/main/Privacy.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/colors/HeaderAndLogo.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/colors/PageFormat.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/colors/PageLayout.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/colors/Form.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/AddSimple.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/EditEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/EditMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/AddToExistingSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/AddToNewSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/AddFromSubSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/EditStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/ApplyTemplate.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/SetToPending.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/EditSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/Webhook.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/Wait.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/EditStep.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/SendEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/AddStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/steps/SurveyPerson.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/StepIcon.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/AddStep.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/registration/RegistrationFlow.jsx","webpack://sutra/./app/packs/bundles/v2/models/EngagementTrigger.js","webpack://sutra/./app/packs/bundles/v2/models/EngagementStep.js","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/StepIcon.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/AddSimple.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/EditMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/SendEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/AddToExistingSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/AddToNewSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/AddFromSubSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/AddStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/ApplyTemplate.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/SetToPending.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/SurveyPerson.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/Webhook.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/Wait.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/RemoveFromSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/AddStep.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/EditEmail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/EditStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/steps/EditSurvey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/EditStep.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/Step.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/AddTrigger.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/engagement/Engagement.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Main.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/RegisteredRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/Registered.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/InvitedRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/Invited.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/PaymentRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/Payments.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/broadcast/ComposeBroadcast.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/InterestedRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/Interested.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Members.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/broadcast/BroadcastItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/broadcast/Broadcast.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Broadcast.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/structures/CreateStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/structures/ShowStructure.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/structures/Add.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/structures/StructureItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Structures.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Admin.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/ChildrenList.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Scheduled.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Archived.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/Sorter.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/ParticipationActivityRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/ParticipationActivity.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/MemberActivityRow.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/MemberActivity.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/ProgressActivityRowV2.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/members/ProgressActivityV2.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Participation.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/layout/MainContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/settings/Settings.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/HeaderImage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/TopActions.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/Breadcrumbs.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/PinMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/NewMessage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/HeaderTitle.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/HeaderTags.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/HeaderAuthor.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/form/CalendarLinks.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/form/InterestedForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/Calendar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/StatusBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/TagFilter.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/InteractionsBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/DummyBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/RedirectBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/NewReflections.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/TagsChips.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/FixedHeader.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/discussion/Discussion.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Loading.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/content/Content.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/content/ContentReadonly.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/content/ContentContainer.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/registration/RegistrationPage.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/AlreadyMember.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/InvitationBar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/registration/RegistrationPageReadonly.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/payment/StripeForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/payment/Payment.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Private.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Disabled.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/ConfirmId.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Pending.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Processing.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/ProcessingPayment.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Invitation.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Survey.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/Gateway.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/static/BroadcastExclude.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/form/ListForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/form/LinkForm.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/NewSpace.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/Settings.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/Thumbnail.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/Edit.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/Events.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/List.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/lists/Showcase.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/members/Member.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/members/List.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/Start.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/SignIn.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/SignUp.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/MagicLink.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/Recover.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/Edit.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/Payment.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/dummy/Pending.jsx","webpack://sutra/./app/packs/bundles/v2/sockets/manager.js","webpack://sutra/./app/packs/bundles/v2/sockets/Space.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/Access.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/Space.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/Start.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/SignIn.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/SignUp.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/SignOut.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/Recover.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/ResetPassword.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/MagicLink.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/MagicSignIn.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/Profile.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/Gateway.jsx","webpack://sutra/./app/packs/bundles/v2/sockets/User.jsx","webpack://sutra/./app/packs/bundles/v2/sockets/Connections.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/UserCtrl.jsx","webpack://sutra/./app/packs/bundles/v2/components/zoom/Integration.jsx","webpack://sutra/./app/packs/bundles/v2/components/zoom/Connected.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/MainContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/SystemAlert.jsx","webpack://sutra/./app/packs/bundles/v2/components/home/Sidebar.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/Sidebar.jsx","webpack://sutra/./app/packs/bundles/v2/collections/faIcons2.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/IconSelect.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/NodeIcon.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/NodeLink.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/NodeContent.jsx","webpack://sutra/./app/packs/bundles/v2/utils/DropPosition.js","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/NodeItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/SidebarTitle.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/SidebarTutorial.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/MembersNode.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces/sidebar/Sidebar.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/IconSelect.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/NodeIcon.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/NodeLink.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/NodeContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/NodeItem.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/SidebarTitle.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/SidebarTutorial.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/SidebarTemplate.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/MembersNode.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/NewSpaceNode.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/sidebar/Sidebar.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/NavbarContent.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/Navbar.jsx","webpack://sutra/./app/packs/bundles/v2/components/settings/ProfileFormModal.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/ProfileModal.jsx","webpack://sutra/./app/packs/bundles/v2/components/spaces_neo/presentations/content/ContentReadonlyModal.jsx","webpack://sutra/./app/packs/bundles/v2/components/users/Direct.jsx","webpack://sutra/./app/packs/bundles/v2/components/layout/Body.jsx","webpack://sutra/./app/packs/bundles/v2/utils/IsTouchDevice.js","webpack://sutra/./app/packs/bundles/v2/components/App.jsx","webpack://sutra/./app/packs/bundles/v2/i18n/i18n.js","webpack://sutra/./app/packs/bundles/v2/components/Index.jsx","webpack://sutra/./app/packs/bundles/v2/utils/Prototypes.js","webpack://sutra/./app/packs/entrypoints/application.js"],"sourcesContent":["import { DEFAULT_THEME } from '@mantine/core';\n\nexport const sutraTheme = {\n primaryColor: 'sutrablue',\n primaryShade: 3,\n colors: {\n 'sutrablue': [\"#CFF0FD\",\"#99E0FB\",\"#6AD0F9\",\"#41C3F6\",\"#16B6F5\",\"#08A2DE\",\"#068BC0\",\"#0578A6\",\"#03688F\",\"#02597C\"],\n 'sutrapink': [\"#FFEDF6\",\"#FFBBDE\",\"#FF8EC8\",\"#FF69B4\",\"#FF3EA0\",\"#FF1A8F\",\"#FF007F\",\"#E60071\",\"#CD0065\",\"#B60059\"]\n },\n headings: {\n sizes: {\n h1: { fontSize: 28 },\n h2: { fontSize: 24 },\n h3: { fontSize: 20 },\n h4: { fontSize: 18 },\n h5: { fontSize: 16 },\n h6: { fontSize: 14 },\n }\n },\n other: {\n headerHeight: 60,\n sideFrameWidth: 300,\n sideFrameWidthSm: 250,\n appShellPadding: 20,\n spaceSidebarDefaultTextColor: \"#050505\",\n breakpoints: {\n xs:\t380,\n sm:\t576,\n md: 768,\n lg:\t992,\n xl:\t1200,\n xxl: 1400\n },\n tagColors: [\n {\n backgroundColor: DEFAULT_THEME.colors.orange[2],\n hoverColor: DEFAULT_THEME.colors.orange[3],\n textColor: DEFAULT_THEME.colors.orange[8],\n },\n {\n backgroundColor: DEFAULT_THEME.colors.yellow[2],\n hoverColor: DEFAULT_THEME.colors.yellow[3],\n textColor: DEFAULT_THEME.colors.yellow[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.lime[2],\n hoverColor: DEFAULT_THEME.colors.lime[3],\n textColor: DEFAULT_THEME.colors.lime[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.green[2],\n hoverColor: DEFAULT_THEME.colors.green[3],\n textColor: DEFAULT_THEME.colors.green[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.teal[2],\n hoverColor: DEFAULT_THEME.colors.teal[3],\n textColor: DEFAULT_THEME.colors.teal[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.blue[2],\n hoverColor: DEFAULT_THEME.colors.blue[3],\n textColor: DEFAULT_THEME.colors.blue[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.indigo[2],\n hoverColor: DEFAULT_THEME.colors.indigo[3],\n textColor: DEFAULT_THEME.colors.indigo[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.cyan[2],\n hoverColor: DEFAULT_THEME.colors.cyan[3],\n textColor: DEFAULT_THEME.colors.cyan[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.violet[2],\n hoverColor: DEFAULT_THEME.colors.violet[3],\n textColor: DEFAULT_THEME.colors.violet[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.grape[2],\n hoverColor: DEFAULT_THEME.colors.grape[3],\n textColor: DEFAULT_THEME.colors.grape[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.pink[2],\n hoverColor: DEFAULT_THEME.colors.pink[3],\n textColor: DEFAULT_THEME.colors.pink[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.red[2],\n hoverColor: DEFAULT_THEME.colors.red[3],\n textColor: DEFAULT_THEME.colors.red[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.gray[2],\n hoverColor: DEFAULT_THEME.colors.gray[3],\n textColor: DEFAULT_THEME.colors.gray[8]\n },\n {\n backgroundColor: DEFAULT_THEME.colors.dark[2],\n hoverColor: DEFAULT_THEME.colors.dark[3],\n textColor: \"#fff\"\n }\n ]\n }\n};\n","import { sutraTheme } from \"./sutraTheme\";\nimport { DEFAULT_THEME } from \"@mantine/core\";\n\nconst defaultSpaceColors = {\n header_color: \"#FFFFFF\",\n header_link_color: sutraTheme.colors[\"sutrapink\"][3],\n primary_button_background_color: sutraTheme.colors[\"sutrablue\"][3],\n primary_button_text_color: \"#FFFFFF\",\n secondary_button_background_color: DEFAULT_THEME.colors.gray[1],\n secondary_button_text_color: DEFAULT_THEME.colors.gray[8],\n background_color: \"#FFFFFF\",\n default_text_color: \"#000000\",\n default_link_color: sutraTheme.colors[\"sutrapink\"][3],\n // secondary_background_color: \"#FFFFFF\",\n // sub_header_text_color: \"#000000\",\n sidebar_background_color: \"#F9F9F9\",\n sidebar_text_color: \"#000000\",\n default_badge_color: sutraTheme.colors[\"sutrapink\"][3],\n default_badge_text_color: \"#FFFFFF\",\n registration_page_background_color: \"#FFFFFF\",\n registration_page_default_text_color: \"#000000\",\n};\n\nexport default defaultSpaceColors;\n","import { combineReducers } from 'redux';\nimport defaultSpaceColors from '../collections/defaultSpaceColors';\n\nconst SET_SPACE = 'SET_SPACE';\nconst SET_SPACE2 = 'SET_SPACE2';\nconst SET_USER = 'SET_USER';\nconst SET_PERMISSIONS = 'SET_PERMISSIONS';\nconst SET_ALERT = 'SET_ALERT';\nconst SET_SIDEBAR_DRAGGING = 'SET_SIDEBAR_DRAGGING';\nconst SET_SIDEBAR_DRAGGED_OVER = 'SET_SIDEBAR_DRAGGED_OVER';\nconst SET_SCROLL = 'SET_SCROLL';\nconst SET_TIPTAP = 'SET_TIPTAP';\nconst SET_TIPTAP_SIDEMENU = 'SET_TIPTAP_SIDEMENU';\nconst SET_MAIN_ACTIONS = 'SET_MAIN_ACTIONS';\nconst SET_COUNTERS = 'SET_COUNTERS';\nconst SET_COLORS = 'SET_COLORS';\nconst SET_COLORS2 = 'SET_COLORS2';\nconst SET_SIDEBAR_CHILDREN_A = 'SET_SIDEBAR_CHILDREN_A';\nconst SET_SIDEBAR_CHILDREN_B = 'SET_SIDEBAR_CHILDREN_B';\nconst SET_FIXED_HEADER_STATUS = 'SET_FIXED_HEADER_STATUS';\nconst SET_TREE = 'SET_TREE';\nconst SET_CHILDREN = 'SET_CHILDREN';\nconst SET_PIN_MESSAGE = 'SET_PIN_MESSAGE';\nconst SET_CALENDAR = 'SET_CALENDAR';\nconst SET_INTERACTIONS = 'SET_INTERACTIONS';\nconst SET_SETTINGS_TABS = 'SET_SETTINGS_TABS';\nconst SET_PATH = 'SET_PATH';\nconst SET_PATHS = 'SET_PATHS';\nconst SET_SETTINGS = 'SET_SETTINGS';\nconst SET_JOURNEYS = 'SET_JOURNEYS';\nconst SET_SURVEY = 'SET_SURVEY';\nconst SET_COMPLETED = 'SET_COMPLETED';\nconst SET_SPACE_LOADING = 'SET_SPACE_LOADING';\nconst SET_NEO4j_VERSION = 'SET_NEO4j_VERSION';\nconst SET_CONNECTIONS = 'SET_CONNECTIONS';\n\nconst SET_HOVER_SIDEBAR = 'SET_HOVER_SIDEBAR';\nconst SET_HIDDEN_SIDEBAR = 'SET_HIDDEN_SIDEBAR';\nconst SET_HIDDEN_HEADER = 'SET_HIDDEN_HEADER';\nconst SET_HIDDEN_COVER = 'SET_HIDDEN_COVER';\nconst SET_HIDDEN_TITLE = 'SET_HIDDEN_TITLE';\nconst SET_HIDDEN_BREADCRUMBS = 'SET_HIDDEN_BREADCRUMBS';\nconst SET_WIDE_WIDTH = 'SET_WIDE_WIDTH';\nconst SET_LIST_SPACE_TO_UPDATE = 'SET_LIST_SPACE_TO_UPDATE';\nconst SET_NEW_MESSAGE = 'SET_NEW_MESSAGE';\nconst SET_FORCE_LAYOUT_UPDATE = 'SET_FORCE_LAYOUT_UPDATE';\nconst SET_SELECTED_DISCUSSION_TAGS = 'SET_SELECTED_DISCUSSION_TAGS';\n\nconst SET_CREATE_AI_SPACE_MODAL_VISIBLE = 'SET_CREATE_AI_SPACE_MODAL_VISIBLE';\n\nexport function setSelectedDiscussionTags(tags) {\n return {\n type: SET_SELECTED_DISCUSSION_TAGS,\n tags,\n }\n}\n\nexport function setNeo4jVersion(neo4jVersion) {\n return {\n type: SET_NEO4j_VERSION,\n neo4jVersion,\n }\n}\n\nexport function setConnections(connections) {\n return {\n type: SET_CONNECTIONS,\n connections,\n }\n}\n\nexport function setSpace(space) {\n return {\n type: SET_SPACE,\n space,\n }\n}\n\nexport function setSpace2(space2) {\n return {\n type: SET_SPACE2,\n space2,\n }\n}\n\n\nexport function setUser(user) {\n window.$currentUserAuthToken = user.authentication_token;\n return {\n type: SET_USER,\n user,\n }\n}\n\nexport function setAlert(alert) {\n return {\n type: SET_ALERT,\n alert,\n }\n}\n\nexport function setCompleted(completed) {\n return {\n type: SET_COMPLETED,\n completed,\n }\n}\n\nexport function setSpaceLoading(loading) {\n return {\n type: SET_SPACE_LOADING,\n loading,\n }\n}\n\nexport function setSettingsTabs(settingsTabs) {\n return {\n type: SET_SETTINGS_TABS,\n settingsTabs,\n }\n}\n\nexport function setPath(path) {\n return {\n type: SET_PATH,\n path,\n }\n}\n\nexport function setPaths(paths) {\n return {\n type: SET_PATHS,\n paths,\n }\n}\n\nexport function setSettings(settings) {\n return {\n type: SET_SETTINGS,\n settings,\n }\n}\n\nexport function setJourneys(journeys) {\n return {\n type: SET_JOURNEYS,\n journeys,\n }\n}\n\nexport function setSurvey(survey) {\n return {\n type: SET_SURVEY,\n survey,\n }\n}\n\n\n\n\nexport function setPermissions(permissions) {\n return {\n type: SET_PERMISSIONS,\n permissions,\n }\n}\n\nexport function setPinMessage(message) {\n return {\n type: SET_PIN_MESSAGE,\n message,\n }\n}\n\nexport function setCalendar(calendar) {\n return {\n type: SET_CALENDAR,\n calendar,\n }\n}\n\nexport function setInteractions(interactions) {\n return {\n type: SET_INTERACTIONS,\n interactions,\n }\n}\n\nexport function setSidebarDragging(node) {\n return {\n type: SET_SIDEBAR_DRAGGING,\n node,\n }\n}\n\nexport function setSidebarDraggedOver(node) {\n return {\n type: SET_SIDEBAR_DRAGGED_OVER,\n node,\n }\n}\n\nexport function setScroll(scroll) {\n return {\n type: SET_SCROLL,\n scroll,\n }\n}\n\nexport function setTiptap(tiptap) {\n return {\n type: SET_TIPTAP,\n tiptap,\n }\n}\n\nexport function setTiptapSidemenu(tiptap_sidemenu) {\n window.$tiptapSidemenu = tiptap_sidemenu.opened\n \n return {\n type: SET_TIPTAP_SIDEMENU,\n tiptap_sidemenu,\n }\n}\n\nexport function setColors(colors=defaultSpaceColors) {\n return {\n type: SET_COLORS,\n colors,\n }\n}\n\nexport function setColors2(colors2=defaultSpaceColors) {\n return {\n type: SET_COLORS2,\n colors2,\n }\n}\n\nexport function setActions(mainActions) {\n const newActions = {...defaultMainActions, ...mainActions}\n\n return {\n type: SET_MAIN_ACTIONS,\n mainActions: newActions,\n }\n}\n\nexport function setCounters(counters) {\n return {\n type: SET_COUNTERS,\n counters,\n }\n}\n\nexport function setSidebarChildrenA(sidebar_children_a) {\n return {\n type: SET_COUNTERS,\n sidebar_children_a,\n }\n}\n\nexport function setSidebarChildrenB(sidebar_children_b) {\n return {\n type: SET_COUNTERS,\n sidebar_children_b,\n }\n}\n\nexport function setFixedHeaderStatus(fixed_header_status) {\n return {\n type: SET_FIXED_HEADER_STATUS,\n fixed_header_status,\n }\n}\n\nexport function setTree(tree) {\n return {\n type: SET_TREE,\n tree,\n }\n}\n\nexport function setChildren(tree) {\n return {\n type: SET_CHILDREN,\n tree,\n }\n}\n\nexport function setHoverSidebar(hover) {\n return {\n type: SET_HOVER_SIDEBAR,\n hover,\n }\n}\n\nexport function setHiddenSidebar(hidden) {\n return {\n type: SET_HIDDEN_SIDEBAR,\n hidden,\n }\n}\n\nexport function setHiddenHeader(hidden) {\n return {\n type: SET_HIDDEN_HEADER,\n hidden,\n }\n}\n\nexport function setHiddenCover(hidden) {\n return {\n type: SET_HIDDEN_COVER,\n hidden,\n }\n}\n\nexport function setHiddenTitle(hidden) {\n return {\n type: SET_HIDDEN_TITLE,\n hidden,\n }\n}\n\nexport function setHiddenBreadcrumbs(hidden) {\n return {\n type: SET_HIDDEN_BREADCRUMBS,\n hidden,\n }\n}\n\nexport function setWideWidth(on) {\n return {\n type: SET_WIDE_WIDTH,\n on,\n }\n}\n\nexport function setListSpaceToUpdate(update) {\n return {\n type: SET_LIST_SPACE_TO_UPDATE,\n update,\n }\n}\n\nexport function setNewMessage(newMessage) {\n return {\n type: SET_NEW_MESSAGE,\n newMessage,\n }\n}\n\nexport function setForceLayoutUpdate(forceLayoutUpdate) {\n return {\n type: SET_FORCE_LAYOUT_UPDATE,\n forceLayoutUpdate,\n }\n}\n\nexport function setCreateAiSpaceModalVisible(isVisible) {\n return {\n type: SET_CREATE_AI_SPACE_MODAL_VISIBLE,\n isVisible\n }\n}\n\nconst defaultSpace = {\n id: null,\n name: null,\n slug: null,\n url_handle: null,\n};\n\nconst defaultUser = {\n id: null,\n authentication_token: null,\n username: null,\n name: null,\n permissions: null,\n authenticated: null,\n avatar: {\n url: null\n }\n};\n\nconst defaultNode = { id: null }\n\nconst defaultAlert = {opened: false, title: \"\", message: \"\", color: \"indigo\"}\n\nconst defaultScroll = { atBottom: false, top: 0, scrollTop: 0 }\n\nconst defaultTiptap = { editor: null }\n\nconst defaultTiptapSidemenu = {opened: null}\n\nconst defaultMainActions = { editPage: false, editRegPage: false, invite: false, manage: false }\n\nconst defaultCounters = { direct_messages_count: 0, notifications_count: 0 }\n\nconst defaultColors = defaultSpaceColors\n\nconst defaultEmpty = {}\nconst defaultChildrenA = {}\nconst defaultChildrenB = {}\nconst defaultFixedHeaderStatus = {show: false}\nconst defaultTree = {slug: null, children: [], name: \"Loading\", loading: true}\nconst defaultHidden = false\nconst defaultHover = false\nconst defaultListSpaceToUpdate = {slug: null}\nconst defaultNewMessage = {show: false}\nconst defaultForceLayoutUpdate = {update: false}\nconst defaultOn = {on: false}\nconst defaultPermissions = {}\nconst defaultLoading = {loading: false}\nconst defaultCompleted = {complete: false}\nconst defaultVersion = {version: \"loading\"}\nconst defaultConnections = {connections: []}\nconst defaultTags = {tags: []}\n\nconst defaultCreateAiSpace = {isVisible: false}\n\nfunction selectedDiscussionTags(state=defaultTags, action) {\n switch (action.type) {\n case SET_SELECTED_DISCUSSION_TAGS:\n return {\n ...action.tags,\n }\n default:\n return state;\n }\n}\n\nfunction neo4jVersion(state=defaultVersion, action) {\n switch (action.type) {\n case SET_NEO4j_VERSION:\n return {\n ...action.neo4jVersion,\n }\n default:\n return state;\n }\n}\n\nfunction connections(state=defaultConnections, action) {\n switch (action.type) {\n case SET_CONNECTIONS:\n return {\n ...action.connections,\n }\n default:\n return state;\n }\n}\n\nfunction space(state=defaultSpace, action) {\n switch (action.type) {\n case SET_SPACE:\n return {\n ...action.space,\n }\n default:\n return state;\n }\n}\n\nfunction space2(state=defaultSpace, action) {\n switch (action.type) {\n case SET_SPACE2:\n return {\n ...action.space2,\n }\n default:\n return state;\n }\n}\n\nfunction user(state=defaultUser, action) {\n switch (action.type) {\n case SET_USER:\n return {\n ...action.user,\n authenticated: action.user.id && action.user.authentication_token ? true : false\n }\n default:\n return state;\n\n }\n}\n\nfunction completed(state=defaultCompleted, action) {\n switch (action.type) {\n case SET_COMPLETED:\n return {\n ...action.completed,\n }\n default:\n return state;\n\n }\n}\n\nfunction spaceLoading(state=defaultLoading, action) {\n switch (action.type) {\n case SET_SPACE_LOADING:\n return {\n ...action.loading,\n }\n default:\n return state;\n\n }\n}\n\nfunction permissions(state=defaultPermissions, action) {\n switch (action.type) {\n case SET_PERMISSIONS:\n return {\n ...action.permissions,\n }\n default:\n return state;\n\n }\n}\n\nfunction settingsTabs(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_SETTINGS_TABS:\n return {\n ...action.settingsTabs,\n }\n default:\n return state;\n\n }\n}\n\nfunction path(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_PATH:\n return {\n ...action.path,\n }\n default:\n return state;\n\n }\n}\n\nfunction paths(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_PATHS:\n return {\n ...action.paths,\n }\n default:\n return state;\n\n }\n}\n\nfunction settings(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_SETTINGS:\n return {\n ...action.settings,\n }\n default:\n return state;\n\n }\n}\n\nfunction journeys(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_JOURNEYS:\n return {\n ...action.journeys,\n }\n default:\n return state;\n\n }\n}\n\nfunction survey(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_SURVEY:\n return {\n ...action.survey,\n }\n default:\n return state;\n\n }\n}\n\nfunction pinMessage(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_PIN_MESSAGE:\n return {\n ...action.message,\n }\n default:\n return state;\n\n }\n}\n\nfunction calendar(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_CALENDAR:\n return {\n ...action.calendar,\n }\n default:\n return state;\n\n }\n}\n\nfunction interactions(state=defaultEmpty, action) {\n switch (action.type) {\n case SET_INTERACTIONS:\n return {\n ...action.interactions,\n }\n default:\n return state;\n\n }\n}\n\nfunction alert(state=defaultAlert, action) {\n switch (action.type) {\n case SET_ALERT:\n return {\n ...action.alert,\n }\n default:\n return state;\n }\n}\n\nfunction sidebarDragging(state=defaultNode, action) {\n switch (action.type) {\n case SET_SIDEBAR_DRAGGING:\n return {\n ...action.node,\n }\n default:\n return state;\n }\n}\n\nfunction sidebarDraggedOver(state=defaultNode, action) {\n switch (action.type) {\n case SET_SIDEBAR_DRAGGED_OVER:\n return {\n ...action.node,\n }\n default:\n return state;\n }\n}\n\nfunction scroll(state=defaultScroll, action) {\n switch (action.type) {\n case SET_SCROLL:\n return {\n ...action.scroll,\n }\n default:\n return state;\n }\n}\n\nfunction tiptap(state=defaultTiptap, action) {\n switch (action.type) {\n case SET_TIPTAP:\n return {\n ...action.tiptap,\n }\n default:\n return state;\n }\n}\n\nfunction tiptapSidemenu(state=defaultTiptapSidemenu, action) {\n switch (action.type) {\n case SET_TIPTAP_SIDEMENU:\n return {\n ...action.tiptap_sidemenu,\n }\n default:\n return state;\n }\n}\n\nfunction mainActions(state=defaultMainActions, action) {\n switch (action.type) {\n case SET_MAIN_ACTIONS:\n return {\n ...action.mainActions,\n }\n default:\n return state;\n }\n}\n\nfunction counters(state=defaultCounters, action) {\n switch (action.type) {\n case SET_COUNTERS:\n return {\n ...action.counters,\n }\n default:\n return state;\n }\n}\n\nfunction colors(state=defaultColors, action) {\n switch (action.type) {\n case SET_COLORS:\n return {\n ...action.colors,\n }\n default:\n return state;\n }\n}\n\nfunction colors2(state=defaultColors, action) {\n switch (action.type) {\n case SET_COLORS2:\n return {\n ...action.colors2,\n }\n default:\n return state;\n }\n}\n\nfunction sidebarChildrenA(state=defaultChildrenA, action) {\n switch (action.type) {\n case SET_SIDEBAR_CHILDREN_A:\n return {\n ...action.sidebar_children_a,\n }\n default:\n return state;\n }\n}\n\nfunction sidebarChildrenB(state=defaultChildrenB, action) {\n switch (action.type) {\n case SET_SIDEBAR_CHILDREN_B:\n return {\n ...action.sidebar_children_b,\n }\n default:\n return state;\n }\n}\n\nfunction fixedHeaderStatus(state=defaultFixedHeaderStatus, action) {\n switch (action.type) {\n case SET_FIXED_HEADER_STATUS:\n return {\n ...action.fixed_header_status,\n }\n default:\n return state;\n }\n}\n\nfunction tree(state=defaultTree, action) {\n switch (action.type) {\n case SET_TREE:\n return {\n ...action.tree,\n }\n default:\n return state;\n }\n}\n\nfunction children(state=defaultTree, action) {\n switch (action.type) {\n case SET_CHILDREN:\n return {\n ...action.tree,\n }\n default:\n return state;\n }\n}\n\nfunction hoverSidebar(state=defaultHover, action) {\n switch (action.type) {\n case SET_HOVER_SIDEBAR:\n return {\n ...action.hover,\n }\n default:\n return state;\n }\n}\n\nfunction hiddenSidebar(state=defaultHidden, action) {\n switch (action.type) {\n case SET_HIDDEN_SIDEBAR:\n return {\n ...action.hidden,\n }\n default:\n return state;\n }\n}\n\nfunction hiddenHeader(state=defaultHidden, action) {\n switch (action.type) {\n case SET_HIDDEN_HEADER:\n return {\n ...action.hidden,\n }\n default:\n return state;\n }\n}\n\nfunction hiddenCover(state=defaultHidden, action) {\n switch (action.type) {\n case SET_HIDDEN_COVER:\n return {\n ...action.hidden,\n }\n default:\n return state;\n }\n}\n\nfunction hiddenTitle(state=defaultHidden, action) {\n switch (action.type) {\n case SET_HIDDEN_TITLE:\n return {\n ...action.hidden,\n }\n default:\n return state;\n }\n}\n\nfunction hiddenBreadcrumbs(state=defaultHidden, action) {\n switch (action.type) {\n case SET_HIDDEN_BREADCRUMBS:\n return {\n ...action.hidden,\n }\n default:\n return state;\n }\n}\n\nfunction wideWidth(state=defaultOn, action) {\n switch (action.type) {\n case SET_WIDE_WIDTH:\n return {\n ...action.on,\n }\n default:\n return state;\n }\n}\n\nfunction listSpaceToUpdate(state=defaultListSpaceToUpdate, action) {\n switch (action.type) {\n case SET_LIST_SPACE_TO_UPDATE:\n return {\n ...action.update,\n }\n default:\n return state;\n }\n}\n\nfunction newMessage(state=defaultNewMessage, action) {\n switch (action.type) {\n case SET_NEW_MESSAGE:\n return {\n ...action.newMessage,\n }\n default:\n return state;\n }\n}\n\nfunction forceLayoutUpdate(state=defaultForceLayoutUpdate, action) {\n switch (action.type) {\n case SET_FORCE_LAYOUT_UPDATE:\n return {\n ...action.setForceLayoutUpdate,\n }\n default:\n return state;\n }\n}\n\nfunction createAiSpace(state=defaultCreateAiSpace, action) {\n switch (action.type) {\n case SET_CREATE_AI_SPACE_MODAL_VISIBLE:\n return {\n ...action.isVisible\n }\n default:\n return state;\n }\n}\n\nconst appStore = combineReducers({\n space,\n space2,\n user,\n alert,\n sidebarDragging,\n sidebarDraggedOver,\n scroll,\n tiptap,\n tiptapSidemenu,\n mainActions,\n counters,\n colors,\n colors2,\n sidebarChildrenA,\n sidebarChildrenB,\n fixedHeaderStatus,\n tree,\n children,\n hoverSidebar,\n hiddenSidebar,\n hiddenHeader,\n hiddenCover,\n hiddenTitle,\n hiddenBreadcrumbs,\n listSpaceToUpdate,\n newMessage,\n forceLayoutUpdate,\n wideWidth,\n permissions,\n pinMessage,\n calendar,\n interactions,\n settingsTabs,\n path,\n paths,\n settings,\n journeys,\n survey,\n spaceLoading,\n completed,\n neo4jVersion,\n connections,\n selectedDiscussionTags,\n createAiSpace\n});\n\nexport default appStore;\n","import axios from \"axios\";\n\nconst MAX_REQUESTS_COUNT = 1;\nconst INTERVAL_MS = 10;\nlet PENDING_REQUESTS = 0;\n\n// create new axios instance\nconst api = axios.create({});\n\n/**\n * Axios Request Interceptor\n */\napi.interceptors.request.use(function (config) {\n return new Promise((resolve, reject) => {\n let interval = setInterval(() => {\n if (PENDING_REQUESTS < MAX_REQUESTS_COUNT) {\n PENDING_REQUESTS++;\n clearInterval(interval);\n resolve(config);\n }\n }, INTERVAL_MS);\n });\n});\n\n/**\n * Axios Response Interceptor\n */\napi.interceptors.response.use(\n function (response) {\n PENDING_REQUESTS = Math.max(0, PENDING_REQUESTS - 1);\n return Promise.resolve(response);\n },\n function (error) {\n PENDING_REQUESTS = Math.max(0, PENDING_REQUESTS - 1);\n return Promise.reject(error);\n }\n);\n\nexport default api;\n","import defaultSpaceColors from \"../collections/defaultSpaceColors\";\n\nconst isSpaceThemed = (colors) => {\n if (JSON.stringify(colors) == \"{}\"){\n return false\n }\n const is_themed = !(\n colors.header_color == defaultSpaceColors.header_color &&\n colors.header_link_color == defaultSpaceColors.header_link_color &&\n colors.primary_button_background_color ==\n defaultSpaceColors.primary_button_background_color &&\n colors.primary_button_text_color ==\n defaultSpaceColors.primary_button_text_color &&\n colors.secondary_button_background_color ==\n defaultSpaceColors.secondary_button_background_color &&\n colors.secondary_button_text_color ==\n defaultSpaceColors.secondary_button_text_color &&\n colors.background_color == defaultSpaceColors.background_color &&\n colors.default_text_color == defaultSpaceColors.default_text_color &&\n colors.sidebar_background_color ==\n defaultSpaceColors.sidebar_background_color &&\n colors.sidebar_text_color == defaultSpaceColors.sidebar_text_color\n );\n\n return is_themed;\n};\n\n// colors.secondary_background_color == defaultSpaceColors.secondary_background_color &&\n// colors.sub_header_text_color == defaultSpaceColors.sub_header_text_color &&\n\nexport default isSpaceThemed;\n","import { useState, useEffect } from 'react';\nimport { useLocation } from \"react-router-dom\";\n\nconst circleRegex = /\\/(circle|space)\\/(\\w|\\d)*(\\/(\\w|\\d)*|.*)/\nconst circleSettingsRegex = /\\/(circle|space)\\/(\\w|\\d)*\\/settings\\/(\\w|\\d)*/\nconst circleRegistrationRegex = /\\/(circle|space)\\/(\\w|\\d)*\\/registration\\/(\\w|\\d)*/\nconst circleListRegex = /\\/(circle|space)\\/(\\w|\\d)*\\/(list|events)/\n\nexport default function useSidebarStyles() {\n\n const location = useLocation()\n\n const [spaceView, setSpaceView] = useState();\n const [settingsView, setSettingsView] = useState();\n const [registrationView, setRegistrationView] = useState();\n const [listView, setListView] = useState();\n\n useEffect(() => {\n if (circleRegex.test(location.pathname)){\n setSpaceView(true)\n if (circleSettingsRegex.test(location.pathname)){\n setSettingsView(true)\n }\n else{\n setSettingsView(false)\n }\n\n if (circleRegistrationRegex.test(location.pathname)){\n setRegistrationView(true)\n }\n else{\n setRegistrationView(false)\n }\n\n if (circleListRegex.test(location.pathname)){\n setListView(true)\n }\n else{\n setListView(false)\n }\n }\n else{\n setSpaceView(false)\n setSettingsView(false)\n setRegistrationView(false)\n setListView(false)\n }\n }, [location])\n\n return {\n spaceView,\n settingsView,\n registrationView,\n listView\n }\n}\n","import * as React from \"react\"\n\nconst SvgComponent = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n)\n\nexport default SvgComponent\n","import React, { useState, useEffect } from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport { useSelector } from 'react-redux';\n\nimport useSidebarStyles from \"../../utils/SidebarStyles\"\nimport defaultSpaceColors from '../../collections/defaultSpaceColors'\n\nimport LogoIcon from \"../../src/images/logo/logoIcon.jsx\"\n\nexport default function Logo(){\n\n const colors = useSelector(state => state.colors);\n const [logoUrl, setLogoUrl] = useState(`/splash-logo3.svg`);\n const [usingSutraLogo, setUsingSutraLogo] = useState(true);\n const [path, setPath] = useState(`/home/top`);\n const { settingsView } = useSidebarStyles();\n\n\n const space = useSelector(state => state.space);\n\n useEffect(() => {\n if (space && space.slug && space.logo.url){\n setLogoUrl(space.logo.url)\n setUsingSutraLogo(false)\n }\n else{\n setLogoUrl(`/splash-logo3.svg`)\n setUsingSutraLogo(true)\n }\n if (space && space.slug && window.$fetchedTopSlug && space.pod_type !== \"user_message\") {\n setPath(`/space/${window.$fetchedTopSlug}/${space.version}`)\n }\n else{\n setPath(`/home/top`)\n }\n }, [space])\n\n return (\n \n { usingSutraLogo ? (\n <>\n \n sutra\n \n ) : (\n \n ) }\n \n\n )\n\n}\n","export function getDomain(){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `stablenavel.com`\n }\n else if (window.location.hostname.indexOf(\"ngrok\") >= 0){\n return `9679-95-46-73-252.ngrok-free.app`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `sutra.co`\n }\n else{\n return `lvh.me`;\n }\n}\n\nexport function getRoot(){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `https://stablenavel.com`\n }\n else if (window.location.hostname.indexOf(\"ngrok\") >= 0){\n return `https://9679-95-46-73-252.ngrok-free.app`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `https://sutra.co`\n }\n else{\n return `http://lvh.me:3000`;\n }\n}\n\nexport function getFullDomain(subdomain=\"\"){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `https://${subdomain}stablenavel.com`\n }\n else if (window.location.hostname.indexOf(\"ngrok\") >= 0){\n return `https://${subdomain}9679-95-46-73-252.ngrok-free.app`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `https://${subdomain}sutra.co`\n }\n else{\n return `http://${subdomain}lvh.me:3000`;\n }\n}\n\nexport function getHost(protocol=\"http\"){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `${protocol}s://stablenavel.com/cable`\n }\n else if (window.location.hostname.indexOf(\"ngrok\") >= 0){\n return `${protocol}s://9679-95-46-73-252.ngrok-free.app/cable`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `${protocol}s://sutra.co/cable`\n }\n else{\n return `${protocol}://lvh.me:3000/cable`;\n }\n}\n\nexport function getHocuspocusHost(){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `wss://sutra-stage-hp.herokuapp.com`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `wss://sutra-hp.herokuapp.com`\n }\n else{\n return `ws://localhost:1234`;\n }\n}\n\nexport function getNeo4jHost(protocol=\"http\"){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `${protocol}s://sutra-neo4j-2ab2e672baeb.herokuapp.com`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `${protocol}s://sutra-neo4j-2ab2e672baeb.herokuapp.com`\n }\n else{\n return `${protocol}://localhost:3001`;\n }\n}\n\nexport function getNeo4jWsHost(protocol=\"http\"){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `${protocol}s://sutra-neo4j-2ab2e672baeb.herokuapp.com`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `${protocol}s://sutra-neo4j-2ab2e672baeb.herokuapp.com`\n }\n else{\n return `${protocol}://localhost:3001`;\n }\n}\n\nexport function getEnv(){\n if (window.location.hostname.indexOf(\"stablenavel\") >= 0){\n return `production`\n }\n else if (window.location.hostname.indexOf(\"sutra\") >= 0){\n return `production`\n }\n else{\n return `development`;\n }\n}\n","import {getDomain} from \"./Host\"\n\nexport function setCookie(cname, cvalue, exdays, secure=\"\", http_only=\"\") {\n const d = new Date();\n d.setTime(d.getTime() + (exdays*24*60*60*1000));\n let expires = \"expires=\"+ d.toUTCString();\n // document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/;domain=\"+getDomain();\n document.cookie = `${cname}=${cvalue};${expires};path=/${secure};domain=${getDomain()}`\n}\n\nexport function getCookie(cname) {\n let name = cname + \"=\";\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for(let i = 0; i {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n include,\n invitation_slug: getCookie(\"invitation_slug\"),\n top_slug: window.$currentTopSlug,\n };\n\n await axios\n .get(`/api/v4/spaces/${id}.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onFetchSimpleShow = async (\n id,\n include,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n include,\n invitation_slug: getCookie(\"invitation_slug\"),\n top_slug: window.$currentTopSlug,\n type: \"simple_show\",\n };\n\n await axios\n .get(`/api/v4/spaces/${id}.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n\n static onFetchBasic = async (\n id,\n include,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n include,\n invitation_slug: getCookie(\"invitation_slug\"),\n top_slug: window.$currentTopSlug,\n type: \"basic\",\n };\n\n await axios\n .get(`/api/v4/spaces/${id}.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onFetchSimple = async (\n id,\n type,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n type: type,\n invitation_slug: getCookie(\"invitation_slug\"),\n top_slug: window.$currentTopSlug,\n include: [\"none\"],\n };\n\n await axios\n .get(`/api/v4/spaces/${id}.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onFetchByScope = async (\n scope,\n include,\n paginator,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n include,\n scope,\n ...paginator,\n top_slug: window.$currentTopSlug,\n };\n\n await axios\n .get(`/api/v4/spaces.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onFetchManaged = async (\n exclude_slug,\n include,\n paginator,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n exclude_slug,\n scope: \"all_managed\",\n include,\n ...paginator,\n top_slug: window.$currentTopSlug,\n };\n\n await axios\n .get(`/api/v4/spaces.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onFetchManagedDiscussions = async (\n exclude_slug,\n include,\n paginator,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n exclude_slug,\n scope: \"all_managed_discussions\",\n include,\n ...paginator,\n top_slug: window.$currentTopSlug,\n };\n\n await axios\n .get(`/api/v4/spaces.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onFetchByUser = async (\n username,\n include,\n paginator,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n include,\n scope: \"user\",\n ...paginator,\n username,\n top_slug: window.$currentTopSlug,\n };\n\n await axios\n .get(`/api/v4/spaces.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onFetchDirectMessagesCount = async (sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .get(`/api/v4/spaces/direct_messages_count`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onViewAllDirectMessages = async (sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/view_all_direct_messages`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onCreate = async (space, parent, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space,\n parent_id: parent,\n };\n\n await axios\n .post(`/api/v4/spaces.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUpdate = async (slug, space, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space,\n };\n\n await axios\n .put(`/api/v4/spaces/${slug}.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUploadHeader = async (slug, file, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n file: file,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/upload_header.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUploadLogo = async (slug, file, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n file: file,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/upload_logo.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUploadFile = async (slug, file, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n file: file,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/upload_file.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUploadThumbnail = async (\n slug,\n file,\n sucessCallback,\n progressCallback,\n errorCallback\n ) => {\n\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"auth_token\", window.$currentUserAuthToken);\n formData.append(\"locale\", window.$currentUserLanguage);\n\n const config = {\n headers: {\n 'Content-Type': 'multipart/form-data'\n },\n onUploadProgress: progressEvent => {\n const percentage = Math.round((progressEvent.loaded / progressEvent.total) * 100);\n sucessCallback(percentage);\n }\n };\n \n\n await axios\n .post(`/api/v4/spaces/${slug}/upload_thumbnail.json`, formData, config)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onRemoveThumbnail = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/remove_thumbnail.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onRemoveHeader = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/remove_header.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onRemoveLogo = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/remove_logo.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onSaveColors = async (slug, space, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/colors.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchThemes = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .get(`/api/v4/spaces/themes.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUpdateTree = async (tree, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...tree,\n };\n\n await axios\n .post(`/api/v4/spaces/update_tree.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onJoin = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n invitation_slug: getCookie(\"invitation_slug\"),\n joining: true\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/gateway.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onJoinWithCoupon = async (slug, coupon_code, price, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n coupon_code,\n price,\n joining: true\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/gateway.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onLeave = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .delete(`/api/v4/spaces/${slug}/leave.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onArchive = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .delete(`/api/v4/spaces/${slug}/archive.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUnarchive = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/unarchive.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onRestore = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/restore.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onDestroy = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .delete(`/api/v4/spaces/${slug}.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onHardDestroy = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .delete(`/api/v4/spaces/${slug}/hard_destroy.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n\n static onPin = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/pin.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onDuplicate = async (space, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space,\n top_slug: window.$currentTopSlug,\n full: true\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/duplicate.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onCopyTemplate = async (\n slug,\n copy_template_into_slug,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space: {\n copy_resources: true,\n copy_sub_circles: true,\n },\n copy_template_into_slug,\n is_reg_page: window.location.pathname.indexOf(\"/registration\") >=[ 0]\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/duplicate.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchContent = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/content.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onSidebarUnreadCount = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/sidebar_unread_count.json`, {\n params: params,\n })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchDirectChildren = async (\n slug,\n include,\n paginator,\n scopes,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator,\n include,\n scopes,\n direct: true,\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/children.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchDeepChildren = async (\n slug,\n include,\n paginator,\n scopes,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator,\n include,\n scopes,\n deep: true,\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/children.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchChildren = async (\n slug,\n include,\n paginator,\n scopes,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator,\n include,\n scopes,\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/children.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchManagedChildren = async (\n slug,\n include,\n paginator,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator,\n include,\n managed: true\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/children.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchSidebarChildren = async (\n slug,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n top_slug: window.$currentTopSlug,\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/sidebar.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchLayouts = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n context:\n window.location.pathname.indexOf(\"/registration\") >= 0\n ? \"registration_view\"\n : \"content\",\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/layouts.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchTemplates = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n from:\n window.location.pathname.indexOf(\"registration\") >= 0\n ? \"sutraregtemplates\"\n : \"sutratemplates\",\n context:\n window.location.pathname.indexOf(\"/registration\") >= 0\n ? \"registration_view\"\n : \"content\",\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/templates.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchModels = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .get(`/api/v4/models.json`, { params: params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onGateway = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n invitation_slug: getCookie(\"invitation_slug\"),\n // bundles: getCookie(\"bundles\"),\n bundles: localStorage.getItem('bundles')\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/gateway.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onAccess = async (slug, sucessCallback, errorCallback) => {\n\n const urlParams = new URLSearchParams(window.location.search);\n\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n invitation_slug: getCookie(\"invitation_slug\"),\n affiliate: getCookie(\"affiliate_space\"),\n affiliate_date: getCookie(\"affiliate_space_date\"),\n preview_ij: urlParams.has('preview_ij') ? true : null,\n processing_payment: urlParams.has('processing_payment') ? true : null\n };\n\n await axios.get(`/api/v4/spaces/${slug}/access.json`, {params})\n .then(res => {\n\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onFix = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/fix.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onLink = async (slug, parentId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n parent_id: parentId\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/link.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUnlink = async (slug, parentId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n parent_id: parentId\n };\n\n await axios\n .delete(`/api/v4/spaces/${slug}/unlink.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onCanBeLinked = async (slug, parentId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n parent_id: parentId\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/can_be_linked.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchLink = async (url, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n url,\n };\n\n await axios\n .get(`/api/v4/spaces/fetch_url.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onPermissions = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .post(`/api/v4/spaces/${slug}/permissions.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onNeo4j = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/neo4j.json`, {params})\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n \n static onZoomData = async (slug, zoom_user_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n zoom_user_id: zoom_user_id\n };\n\n await axios\n .get(`/api/v4/spaces/${slug}/zoom_data.json`, {params})\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onZoomDisconnect = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n };\n\n await axios\n .delete(`/api/v4/spaces/${slug}/disconnect_zoom.json`, {params})\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onZoomCreateMeeting = async (_params, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ..._params\n };\n\n await axios\n .post(`/api/v4/spaces/zoom_create_meeting.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n \n}\n\nexport default Space;\n","// import axios from 'axios';\n\nclass Completion {\n constructor() {\n if (this instanceof Completion) {\n throw Error('Completion class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/completions.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n // TODO:\n static onCreate = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/completions.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onDestroy = async (completion_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/completions/${completion_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n}\n\nexport default Completion;\n","// import axios from 'axios';\n\nclass Hocuspocus {\n constructor() {\n if (this instanceof Payment) {\n throw Error('Payment class cannot be instantiated.');\n }\n }\n\n static onLoad = async (documentName, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n documentName,\n event: \"load\"\n }\n\n await window.$api.post(`/api/v4/hocuspocus/event.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onPublish = async (documentName, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n documentName,\n event: \"publish\"\n }\n\n await window.$api.post(`/api/v4/hocuspocus/event.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n}\n\nexport default Hocuspocus;\n","import { useTranslation } from \"react-i18next\";\n\nconst premiumMessages = () => {\n const { t } = useTranslation();\n\n return {\n can_edit_shareable_link: {\n title: t(\"premiumMessages.can_edit_shareable_link.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_edit_shareable_link.message\"),\n },\n\n can_upload_cover: {\n title: t(\"premiumMessages.can_upload_cover.title\"),\n plan: \"personal\",\n message: t(\"premiumMessages.can_upload_cover.message\"),\n },\n\n can_upload_logo: {\n title: t(\"premiumMessages.can_upload_logo.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_upload_logo.message\"),\n },\n\n can_set_layout: {\n title: t(\"premiumMessages.can_set_layout.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_set_layout.message\"),\n },\n\n can_set_theme: {\n title: t(\"premiumMessages.can_set_theme.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_set_theme.message\"),\n },\n\n can_set_format: {\n title: t(\"premiumMessages.can_set_format.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_set_format.message\"),\n },\n\n can_add_step_send_to_pending: {\n title: t(\"premiumMessages.can_add_step_send_to_pending.title\"),\n plan: \"personal\",\n message: t(\"premiumMessages.can_add_step_send_to_pending.message\"),\n },\n\n can_add_step_send_email: {\n title: t(\"premiumMessages.can_add_step_send_email.title\"),\n plan: \"personal\",\n message: t(\"premiumMessages.can_add_step_send_email.message\"),\n },\n\n can_add_add_to_existing_space: {\n title: t(\"premiumMessages.can_add_add_to_existing_space.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_add_add_to_existing_space.message\"),\n },\n\n can_add_step_wait: {\n title: t(\"premiumMessages.can_add_step_wait.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_add_step_wait.message\"),\n },\n\n can_add_step_webhook: {\n title: t(\"premiumMessages.can_add_step_webhook.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_add_step_webhook.message\"), \n },\n\n can_add_step_survey_person: {\n title: t(\"premiumMessages.can_add_step_survey_person.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_add_step_survey_person.message\"),\n },\n\n can_schedule_states: {\n title: t(\"premiumMessages.can_schedule_states.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_schedule_states.message\"),\n },\n\n can_broadcast: {\n title: t(\"premiumMessages.can_broadcast.title\"),\n plan: \"personal\",\n message: t(\"premiumMessages.can_broadcast.message\"),\n },\n\n can_survey: {\n title: t(\"premiumMessages.can_survey.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_survey.message\"),\n },\n\n can_use_interest_form_block: {\n title: t(\"premiumMessages.can_use_interest_form_block.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_use_interest_form_block.message\"),\n },\n\n can_set_flexible_payments: {\n title: t(\"premiumMessages.can_set_flexible_payments.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_set_flexible_payments.message\"),\n },\n\n can_activate_completions: {\n title: t(\"premiumMessages.can_activate_completions.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_activate_completions.message\"),\n },\n\n max_allowed_spaces: {\n title: t(\"premiumMessages.max_allowed_spaces.title\"),\n plan: \"personal\",\n message: t(\"premiumMessages.max_allowed_spaces.message\"),\n },\n\n max_allowed_ij: {\n title: t(\"premiumMessages.max_allowed_ij.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.max_allowed_ij.message\"),\n },\n\n max_allowed_managers_pro: {\n title: t(\"premiumMessages.max_allowed_managers_pro.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.max_allowed_managers_pro.message\"),\n },\n\n max_allowed_managers_org: {\n title: t(\"premiumMessages.max_allowed_managers_org.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.max_allowed_managers_org.message\"),\n },\n\n can_see_participation_tab: {\n title: t(\"premiumMessages.can_see_participation_tab.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_see_participation_tab.message\"),\n },\n\n can_send_selective_broadcast: {\n title: t(\"premiumMessages.can_send_selective_broadcast.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_send_selective_broadcast.message\"),\n },\n\n can_send_message_broadcast: {\n title: t(\"premiumMessages.can_send_message_broadcast.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_send_message_broadcast.message\"),\n },\n\n can_schedule_broadcast: {\n title: t(\"premiumMessages.can_schedule_broadcast.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_schedule_broadcast.message\"),\n },\n\n can_add_from_children: {\n title: t(\"premiumMessages.can_add_from_children.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_add_from_children.message\"),\n },\n\n can_add_to_direct_open_children: {\n title: t(\"premiumMessages.can_add_to_direct_open_children.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_add_to_direct_open_children.message\"),\n },\n\n can_send_message: {\n title: t(\"premiumMessages.can_send_message.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_send_message.message\"),\n },\n\n can_create_registration_page: {\n title: t(\"premiumMessages.can_create_registration_page.title\"),\n plan: \"personal\",\n message: t(\"premiumMessages.can_create_registration_page.message\"),\n },\n\n can_use_interactive_block: {\n title: t(\"premiumMessages.can_use_interactive_block.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_use_interactive_block.message\"),\n },\n\n can_save_templates: {\n title: t(\"premiumMessages.can_save_templates.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_save_templates.message\"),\n },\n\n can_duplicate_spaces: {\n title: t(\"premiumMessages.can_duplicate_spaces.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_duplicate_spaces.message\"),\n },\n\n can_create_quizzes: {\n title: t(\"premiumMessages.can_create_quizzes.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_create_quizzes.message\"),\n },\n\n can_auto_tag: {\n title: t(\"premiumMessages.can_auto_tag.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_auto_tag.message\"),\n },\n\n can_use_zoom_recordings: {\n title: t(\"premiumMessages.can_use_zoom_recordings.title\"),\n plan: \"organization\",\n message: t(\"premiumMessages.can_use_zoom_recordings.message\"),\n },\n can_create_coupon: {\n title: t(\"premiumMessages.can_create_coupon.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_create_coupon.message\"),\n },\n can_create_bundles: {\n title: t(\"premiumMessages.can_create_bundles.title\"),\n plan: \"professional\",\n message: t(\"premiumMessages.can_create_bundles.message\"),\n },\n };\n};\n\nexport default premiumMessages;\n","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst premiumFeatures = () => {\n const { t } = useTranslation();\n\n return {\n personal: [\n {\n description: t(\"premiumFeatures.personal.description1\"),\n icon: ,\n },\n {\n description: t(\"premiumFeatures.personal.description2\"),\n icon: ,\n },\n {\n description: t(\"premiumFeatures.personal.description3\"),\n icon: ,\n },\n ],\n professional: [\n {\n description: t(\"premiumFeatures.professional.description1\"),\n icon: (\n \n ),\n },\n {\n description: t(\"premiumFeatures.professional.description2\"),\n icon: ,\n },\n {\n description: t(\"premiumFeatures.professional.description3\"),\n icon: ,\n },\n {\n description: t(\"premiumFeatures.professional.description4\"),\n icon: ,\n },\n ],\n organization: [\n {\n description: t(\"premiumFeatures.organization.description1\"),\n icon: (\n \n ),\n },\n {\n description: t(\"premiumFeatures.organization.description2\"),\n icon: ,\n },\n {\n description: t(\"premiumFeatures.organization.description3\"),\n icon: ,\n },\n {\n description: t(\"premiumFeatures.organization.description4\"),\n icon: ,\n },\n ],\n };\n};\n\nexport default premiumFeatures;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport premiumMessages from \"../../collections/premiumMessages\";\nimport premiumFeatures from \"../../collections/premiumFeatures\";\n\nimport {\n createStyles,\n Group,\n Text,\n Modal,\n Button,\n Box,\n Tooltip,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n featureItem: {\n alignItems: \"baseline\",\n marginTop: 5,\n },\n}));\n\nexport default function PremiumModal(props) {\n const premiumMsg = premiumMessages();\n const premiumFeat = premiumFeatures();\n\n const { t, i18n } = useTranslation();\n const { classes, theme } = useStyles();\n const title = props.opened[1] ? premiumMsg[props.opened[1]].title : \"\";\n const message = props.opened[1] ? premiumMsg[props.opened[1]].message : \"\";\n const plan = props.opened[1]\n ? premiumMsg[props.opened[1]].plan.charAt(0).toUpperCase() +\n premiumMsg[props.opened[1]].plan.slice(1)\n : \"\";\n\n const features = () => {\n if (props.opened[1]) {\n return premiumFeat[plan.toLowerCase()].map((feature) => (\n \n {feature.icon}\n \n {feature.description}{\" \"}\n {feature.explanation && feature.explanation !== \"\" && (\n \n \n \n )}\n \n \n ));\n }\n };\n\n const onUpgrade = () => {\n props.setOpened(false);\n if (props.onUpgrade) {\n props.onUpgrade();\n }\n };\n\n const getNewPlanName = (plan) => {\n if (plan.toLowerCase() == \"personal\"){\n return \"Bronze\"\n } else if (plan.toLowerCase() == \"professional\"){\n return \"Silver\"\n } else if (plan.toLowerCase() == \"organization\"){\n return \"Gold\"\n }\n };\n\n return (\n \n ({\n color: theme.colors.green[6],\n })}\n >\n \n \n \n {title}\n \n \n }\n opened={props.opened[0]}\n onClose={() => props.setOpened(false)}\n >\n \n {t(\"app.premium.try\")} {getNewPlanName(plan)}\n \n {props.opened[1] && {message}}\n \n {t(\"app.premium.include\")}:{\" \"}\n \n {features()}\n onUpgrade()}\n mt={25}\n radius=\"xl\"\n component={Link}\n to=\"/app/pricing\"\n >\n {t(\"app.premium.upgrade\")}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Box,\n Button,\n Progress,\n Text,\n Image,\n MantineProvider,\n createStyles,\n Modal,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport { setSpace } from \"../../../store/app\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport FilerobotImageEditor, {\n TABS,\n TOOLS,\n} from \"react-filerobot-image-editor\";\n\nimport Swal from \"sweetalert2\";\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data.url);\n });\n\n return (\n <>\n {progress > 0 && progress <= 100 ? (\n \n ) : (\n \"\"\n )}\n \n );\n};\n\nconst CustomUploadHeaderButton = asUploadButton((props) => {\n const { t } = useTranslation();\n return (\n }\n {...props}\n >\n {t(\"spaces.colors.headerAndLogo.addCover\")}\n \n );\n});\n\nconst CustomUploadLogoButton = asUploadButton((props) => {\n const { t } = useTranslation();\n return (\n }\n {...props}\n >\n {t(\"spaces.colors.headerAndLogo.changeLogo\")}\n \n );\n});\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n appearanceButtonRoot: {\n color: theme.colors.gray[7],\n fontWeight: 400,\n fontSize: 16,\n borderRadius: 5,\n display: \"block\",\n width: \"100%\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n paddingLeft: 10,\n },\n appearanceButtonLeftIcon: {\n color: theme.colors.gray[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonInner: {\n justifyContent: \"flex-start\",\n },\n}));\n\nexport default function HeaderAndLogo(props) {\n const { t } = useTranslation();\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const { classes, cx } = useStyles({ colors });\n\n const user = useSelector((state) => state.user);\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState([]);\n const [canUploadCover, setCanUploadCover] = useState([]);\n const [canUploadLogo, setCanUploadLogo] = useState([]);\n\n const [isImgEditorHeaderShown, setIsImgEditorHeaderShown] = useState(false);\n const [isImgEditorLogoShown, setIsImgEditorLogoShown] = useState(false);\n const htmlImageHeader = useRef();\n const htmlImageLogo = useRef();\n const fileInputHeader = useRef();\n const fileInputLogo = useRef();\n\n useEffect(() => {\n setCanUploadCover(\n space && space.permissions && space.permissions.can_upload_cover\n );\n setCanUploadLogo(\n space && space.permissions && space.permissions.can_upload_logo\n );\n }, [space]);\n\n const handleFileInputHeader = (e) => {\n const file = e.target.files[0];\n\n if (!isFileValid(file, e.target)){\n return\n }\n\n htmlImageHeader.current = document.createElement(\"img\");\n\n if (file) {\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", function () {\n htmlImageHeader.current.src = reader.result;\n openImgEditorHeader();\n });\n\n reader.readAsDataURL(file);\n } else {\n // Clear the value of the file input\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n }\n };\n\n const handleFileInputLogo = (e) => {\n const file = e.target.files[0];\n\n if (!isFileValid(file, e.target)){\n return\n }\n\n htmlImageLogo.current = document.createElement(\"img\");\n\n if (file) {\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", function () {\n htmlImageLogo.current.src = reader.result;\n openImgEditorLogo();\n });\n\n reader.readAsDataURL(file);\n } else {\n // Clear the value of the file input\n if (fileInputLogo.current) {\n fileInputLogo.current.value = \"\";\n }\n }\n };\n\n const openImgEditorHeader = () => {\n setIsImgEditorHeaderShown(true);\n };\n\n const closeImgEditorHeader = () => {\n setIsImgEditorHeaderShown(false);\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n };\n\n const openImgEditorLogo = () => {\n setIsImgEditorLogoShown(true);\n };\n\n const closeImgEditorLogo = () => {\n setIsImgEditorLogoShown(false);\n if (fileInputLogo.current) {\n fileInputLogo.current.value = \"\";\n }\n };\n\n const isFileValid = (selectedFile, target) => {\n const maxSize = 5 * 1024 * 1024; // 5MB in bytes\n\n if (selectedFile.size > maxSize) {\n Swal.fire(\"\", \"Your image must be less than 5MB\", \"info\");\n target.value = ''; // Clear the selected file\n return false;\n }\n return true;\n }\n\n const onUploadHeader = (file) => {\n SpaceModel.onUploadHeader(\n space.slug,\n file.imageBase64,\n (data) => {\n onCoverUploadFinished(data.url);\n },\n (data) => {}\n );\n };\n\n const onUploadLogo = (file) => {\n SpaceModel.onUploadLogo(\n space.slug,\n file.imageBase64,\n (data) => {\n onLogoUploadFinished(data.url);\n },\n (data) => {}\n );\n };\n\n const onCoverUploadFinished = (url) => {\n const newSpace = { ...space };\n newSpace.header.url = url;\n dispatch(setSpace(newSpace));\n closeImgEditorHeader()\n };\n \n const onLogoUploadFinished = (url) => {\n const newSpace = { ...space };\n newSpace.logo.url = url;\n dispatch(setSpace(newSpace));\n closeImgEditorLogo()\n };\n\n const onRemoveHeader = () => {\n SpaceModel.onRemoveHeader(\n space.slug,\n (data) => {\n onCoverUploadFinished(null);\n },\n (data) => {}\n );\n };\n\n const onRemoveLogo = () => {\n SpaceModel.onRemoveLogo(\n space.slug,\n (data) => {\n onLogoUploadFinished(null);\n },\n (data) => {}\n );\n };\n\n const onOpenFileSelector = (event) => {\n try {\n event.target.children[0].click();\n } catch {}\n };\n\n return (\n \n {space && space.header && !space.header.url ? (\n \n {canUploadCover[0] ? (\n <>\n }\n onClick={(event) => onOpenFileSelector(event)}\n >\n \n {t(\"spaces.colors.headerAndLogo.addCover\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions\")}\n \n \n ) : (\n <>\n }\n onClick={() =>\n setOpened([true, canUploadCover[1], canUploadCover[2]])\n }\n >\n {t(\"spaces.colors.headerAndLogo.addCover\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions\")}\n \n \n )}\n \n ) : (\n \n \n \n }\n onClick={() => onRemoveHeader()}\n >\n {t(\"spaces.colors.headerAndLogo.removeCover\")}\n \n \n \n )}\n {space && space.header && !space.logo.url ? (\n \n {canUploadLogo[0] ? (\n <>\n }\n onClick={(event) => onOpenFileSelector(event)}\n >\n \n {t(\"spaces.colors.headerAndLogo.changeLogo\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions2\")}\n \n \n ) : (\n <>\n \n }\n onClick={() =>\n setOpened([true, canUploadLogo[1], canUploadLogo[2]])\n }\n >\n {t(\"spaces.colors.headerAndLogo.changeLogo\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions2\")}\n \n \n )}\n \n ) : (\n \n \n \n }\n onClick={() => onRemoveLogo()}\n >\n {t(\"spaces.colors.headerAndLogo.removeLogo\")}\n \n \n \n )}\n\n \n\n setIsImgEditorHeaderShown(false)}\n title={\"\"}\n zIndex={999999}\n >\n \n onUploadHeader(editedImageObject, designState)\n }\n onClose={closeImgEditorHeader}\n Rotate={{ angle: 90, componentType: \"slider\" }}\n Crop={{\n ratio: 1200 / 300,\n ratioTitleKey: \"Profile picture\",\n noPresets: true,\n autoResize: true,\n }}\n defaultSavedImageQuality={0.7}\n defaultSavedImageName={\"profileImage\"}\n tabsIds={[TABS.ADJUST]} // or {['Adjust', 'Annotate', 'Watermark']}\n defaultTabId={TABS.ADJUST} // or 'Annotate'\n defaultToolId={TOOLS.TEXT} // or 'Text'\n onBeforeSave={() => false}\n />\n \n\n setIsImgEditorLogoShown(false)}\n title={\"\"}\n zIndex={999999}\n >\n \n onUploadLogo(editedImageObject, designState)\n }\n onClose={closeImgEditorLogo}\n Rotate={{ angle: 90, componentType: \"slider\" }}\n Crop={{\n ratio: 360 / 120,\n ratioTitleKey: \"Profile picture\",\n noPresets: true,\n autoResize: true,\n }}\n defaultSavedImageQuality={0.7}\n defaultSavedImageName={\"profileImage\"}\n tabsIds={[TABS.ADJUST]} // or {['Adjust', 'Annotate', 'Watermark']}\n defaultTabId={TABS.ADJUST} // or 'Annotate'\n defaultToolId={TOOLS.TEXT} // or 'Text'\n onBeforeSave={() => false}\n />\n \n \n );\n}\n","function isIndexedDBAvailable() {\n try {\n if (typeof indexedDB === \"undefined\") {\n return false;\n }\n return true;\n } catch (error) {\n return false;\n }\n}\n\nexport function storeJSON(storeId, recordId, data, callback) {\n // Open the IndexedDB database with the name 'sutra' and version 1\n if (!recordId || !isIndexedDBAvailable()){\n return\n }\n const request = indexedDB.open(\"sutra\", 1);\n\n request.onerror = function (event) {\n console.error(\"IndexedDB error:\", event.target.error);\n };\n\n request.onsuccess = function (event) {\n const db = event.target.result;\n\n // Create a new object store named 'json-store' if it doesn't already exist\n if (!db.objectStoreNames.contains(storeId)) {\n db.createObjectStore(storeId);\n }\n\n // Start a new transaction with readwrite access to the object store\n const tx = db.transaction(storeId, \"readwrite\");\n\n // Get a reference to the 'json-store' object store\n const store = tx.objectStore(storeId);\n\n // Put the provided data into the object store with the provided slug as the key\n data.stored_at = new Date()\n try{\n\n const putRequest = store.put(data, recordId);\n \n putRequest.onerror = function (event) {\n console.error(\"Error storing data in IndexedDB:\", event.target.error);\n };\n \n putRequest.onsuccess = function (event) {\n // Wait for the transaction to complete\n tx.oncomplete = function () {\n // Close the database connection\n db.close();\n \n // Call the callback function with no arguments to indicate success\n if (callback) {\n callback();\n }\n };\n };\n }\n catch(err){\n console.error(err)\n }\n };\n\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n\n // Create a new object store named 'json-store' if it doesn't already exist\n if (!db.objectStoreNames.contains(storeId)) {\n db.createObjectStore(storeId);\n }\n };\n}\n\nexport function getJSON(storeId, recordId, callback = null) {\n\n if (!recordId || !isIndexedDBAvailable()){\n return\n }\n\n // Open the IndexedDB database with the name 'sutra' and version 1\n const request = indexedDB.open(\"sutra\", 1);\n\n request.onerror = function (event) {\n console.error(\"IndexedDB error:\", event.target.error);\n if (callback) {\n callback();\n }\n };\n\n request.onsuccess = function (event) {\n const db = event.target.result;\n\n // Start a new transaction with readonly access to the object store\n const tx = db.transaction(storeId, \"readonly\");\n\n // Get a reference to the 'json-store' object store\n const store = tx.objectStore(storeId);\n\n // Retrieve the data from the object store with the provided slug as the key\n const getRequest = store.get(recordId ? recordId : \"nothing\");\n\n getRequest.onerror = function (event) {\n console.error(\n \"Error retrieving data from IndexedDB:\",\n event.target.error\n );\n };\n\n getRequest.onsuccess = function (event) {\n // Wait for the transaction to complete\n tx.oncomplete = function () {\n // Close the database connection\n db.close();\n\n if (callback) {\n // Call the callback function with the retrieved data\n callback(getRequest.result);\n }\n };\n };\n };\n\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n\n // Create a new object store named 'json-store' if it doesn't already exist\n if (!db.objectStoreNames.contains(storeId)) {\n db.createObjectStore(storeId);\n }\n };\n}\n\nexport function deleteJSON(storeId, recordId, callback = null) {\n\n if (!recordId || !isIndexedDBAvailable()){\n return\n }\n\n // Open the IndexedDB database with the name 'sutra' and version 1\n const request = indexedDB.open(\"sutra\", 1);\n\n request.onerror = function (event) {\n console.error(\"IndexedDB error:\", event.target.error);\n if (callback) {\n callback();\n }\n };\n\n request.onsuccess = function (event) {\n const db = event.target.result;\n\n // Start a new transaction with readonly access to the object store\n const tx = db.transaction(storeId, \"readwrite\");\n\n // Get a reference to the 'json-store' object store\n const store = tx.objectStore(storeId);\n\n // Retrieve the data from the object store with the provided slug as the key\n const getRequest = store.delete(recordId ? recordId : \"nothing\");\n\n getRequest.onerror = function (event) {\n console.error(\n \"Error deleting data from IndexedDB:\",\n event.target.error\n );\n };\n\n getRequest.onsuccess = function (event) {\n // Wait for the transaction to complete\n tx.oncomplete = function () {\n // Close the database connection\n db.close();\n\n if (callback) {\n // Call the callback function with the retrieved data\n callback(getRequest.result);\n }\n };\n };\n };\n\n request.onupgradeneeded = function (event) {\n const db = event.target.result;\n\n // Create a new object store named 'json-store' if it doesn't already exist\n if (!db.objectStoreNames.contains(storeId)) {\n db.createObjectStore(storeId);\n }\n };\n}\n\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Group, Text, MantineProvider, Select } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../models/Space\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { deleteJSON } from \"../../../utils/LocalDB\";\n\nconst SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n);\n\nexport default function PageFormat(props) {\n const { t, i18n } = useTranslation();\n const [format, setFormat] = useState();\n\n const space = useSelector((state) => state.space);\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n const [opened, setOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const loading = useRef();\n\n useEffect(() => {\n if (space && space.slug) {\n setFormat(space.version);\n }\n setValidatePremium(\n space && space.permissions && space.permissions.can_set_format\n );\n }, [space]);\n\n useEffect(() => {\n if (!loading.current) {\n loading.current = true;\n return;\n }\n onChangeFormat();\n }, [format]);\n\n const onChangeFormat = () => {\n if (space && format && format != space.version) {\n if (!validatePremium[0]) {\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n SpaceModel.onUpdate(\n space.slug,\n { version: format },\n (data) => {\n props.setOpened(false);\n\n deleteJSON(\"spaces\", space.slug);\n\n setTimeout(() => {\n window.location.href= `/space/${space.slug}/${format}`;\n }, 1000);\n },\n (data) => {}\n );\n }\n };\n\n const getData = () => {\n \n const array = [];\n if (space.version != \"list\") {\n array.push({\n value: \"list\",\n label: t(\"spaces.colors.pageFormat.listLabel\"),\n description: t(\"spaces.colors.pageFormat.listDescription\"),\n });\n }\n if (\n (space.version_history.indexOf(\"content\") >= 0 &&\n [\"list\", \"events\"].indexOf(space.version) >= 0) ||\n space.version == \"discussion\"\n ) {\n array.push({\n value: \"content\",\n label: t(\"spaces.colors.pageFormat.contentLabel\"),\n description: t(\"spaces.colors.pageFormat.contentDescription\"),\n });\n }\n if (space.version != \"discussion\") {\n array.push({\n value: \"discussion\",\n label: t(\"spaces.colors.pageFormat.discussionLabel\"),\n description: t(\"spaces.colors.pageFormat.discussionDescription\"),\n });\n }\n if (space.version != \"events\") {\n array.push({\n value: \"events\",\n label: t(\"spaces.colors.pageFormat.eventsLabel\"),\n description: t(\"spaces.colors.pageFormat.eventsDescription\"),\n });\n }\n return array\n };\n\n return (\n \n \n {t(\"spaces.colors.pageFormat.description\")}\n \n \n \n \n );\n}\n","import axios from 'axios';\n\nclass SpaceSetting {\n constructor() {\n if (this instanceof SpaceSetting) {\n throw Error('SpaceSetting class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await axios.get(`/api/v4/spaces/${slug}/settings.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (slug, space, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space\n }\n\n await axios.post(`/api/v4/spaces/${slug}/settings.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdateUrlHandle = async (slug, url_handle, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n url_handle\n }\n\n await axios.post(`/api/v4/spaces/${slug}/settings/url_handle.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onRemoveMetaImage = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n\n await axios.delete(`/api/v4/spaces/${slug}/settings/remove_meta_image.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default SpaceSetting;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Switch } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\nimport {\n setHiddenSidebar,\n setHiddenHeader,\n setHiddenCover,\n setHiddenTitle,\n setHiddenBreadcrumbs,\n setWideWidth,\n setSpace\n \n} from \"../../../store/app\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function PageLayout(props) {\n const { t, i18n } = useTranslation();\n const hiddenLayoutElements = useRef([]);\n const loading = useRef(false);\n\n const [sidebar, setSidebar] = useState(false);\n const [header, setHeader] = useState(false);\n const [cover, setCover] = useState(false);\n const [title, setTitle] = useState(false);\n const [breadcrumbs, setBreadcrumbs] = useState(true);\n const [opened, setOpened] = useState(false);\n const [width, setWidth] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const space = useSelector((state) => state.space);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (space && space.slug) {\n loading.current = true;\n if (window.$hiddenLayoutElements) {\n hiddenLayoutElements.current = [...window.$hiddenLayoutElements];\n } else {\n hiddenLayoutElements.current = [...space.hidden_layout_elements];\n }\n\n setSidebar(hiddenLayoutElements.current.indexOf(\"sidebar\") >= 0);\n setHeader(hiddenLayoutElements.current.indexOf(\"header\") >= 0);\n setCover(hiddenLayoutElements.current.indexOf(\"cover\") >= 0);\n setTitle(hiddenLayoutElements.current.indexOf(\"title\") >= 0);\n setBreadcrumbs(hiddenLayoutElements.current.indexOf(\"breadcrumbs\") >= 0);\n setWidth(space.space_width == \"wide\");\n\n setValidatePremium(\n space && space.permissions && space.permissions.can_set_layout\n );\n setTimeout(() => {\n loading.current = false;\n }, 1000);\n }\n }, [space]);\n\n useEffect(() => {\n if (sidebar && !validatePremium[0] && !loading.current) {\n setSidebar(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (sidebar) {\n if (!isHidden(\"sidebar\")) {\n hiddenLayoutElements.current.push(\"sidebar\");\n }\n } else {\n if (isHidden(\"sidebar\")) {\n removeHiddenLayoutElements(\"sidebar\");\n }\n }\n onSave();\n }, [sidebar]);\n\n useEffect(() => {\n if (header && !validatePremium[0] && !loading.current) {\n setHeader(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (header) {\n if (!isHidden(\"header\")) {\n hiddenLayoutElements.current.push(\"header\");\n }\n } else {\n if (isHidden(\"header\")) {\n removeHiddenLayoutElements(\"header\");\n }\n }\n onSave();\n }, [header]);\n\n useEffect(() => {\n if (cover && !validatePremium[0] && !loading.current) {\n setCover(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (cover) {\n if (!isHidden(\"cover\")) {\n hiddenLayoutElements.current.push(\"cover\");\n }\n } else {\n if (isHidden(\"cover\")) {\n removeHiddenLayoutElements(\"cover\");\n }\n }\n onSave();\n }, [cover]);\n\n useEffect(() => {\n if (title && !validatePremium[0] && !loading.current) {\n setTitle(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (title) {\n if (!isHidden(\"title\")) {\n hiddenLayoutElements.current.push(\"title\");\n }\n } else {\n if (isHidden(\"title\")) {\n removeHiddenLayoutElements(\"title\");\n }\n }\n onSave();\n }, [title]);\n\n useEffect(() => {\n if (breadcrumbs && !validatePremium[0] && !loading.current) {\n setBreadcrumbs(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (breadcrumbs) {\n if (!isHidden(\"breadcrumbs\")) {\n hiddenLayoutElements.current.push(\"breadcrumbs\");\n }\n } else {\n if (isHidden(\"breadcrumbs\")) {\n removeHiddenLayoutElements(\"breadcrumbs\");\n }\n }\n onSave();\n }, [breadcrumbs]);\n\n useEffect(() => {\n if (loading.current){\n return\n }\n onSaveWidth();\n const auxSpace = {...space}\n auxSpace.space_width = width ? \"wide\" : \"narrow\"\n dispatch(setSpace(auxSpace))\n window.$spaceWideWidth = width\n setTimeout(() => {\n window.location.reload()\n }, 500)\n }, [width]);\n\n const isHidden = (element) => {\n return hiddenLayoutElements.current.indexOf(element) >= 0;\n };\n\n const removeHiddenLayoutElements = (element) => {\n const index = hiddenLayoutElements.current.indexOf(element);\n if (index >= 0) {\n hiddenLayoutElements.current.splice(index, 1);\n }\n };\n\n const onSaveWidth = () => {\n SpaceSettingModel.onUpdate(\n space.slug,\n {\n pod_settings_attributes: {\n space_width: width ? \"wide\" : \"narrow\",\n },\n },\n (data) => {\n \n },\n (data) => {}\n )\n }\n\n const onSave = () => {\n if (loading.current) {\n return;\n }\n window.$hiddenLayoutElements = [...hiddenLayoutElements.current];\n SpaceModel.onUpdate(\n space.slug,\n { hidden_layout_elements: [...hiddenLayoutElements.current], space_width: width ? \"wide\" : \"narrow\" },\n (data) => {\n const newSpace = { ...space };\n\n dispatch(\n setHiddenSidebar({\n hidden: hiddenLayoutElements.current.indexOf(\"sidebar\") >= 0,\n })\n );\n\n if (hiddenLayoutElements.current.indexOf(\"header\") >= 0) {\n dispatch(\n setHiddenHeader({\n hidden: space.permissions.can_manage ? \"admin\" : true,\n })\n );\n } else {\n dispatch(setHiddenHeader({ hidden: false }));\n }\n dispatch(\n setHiddenCover({\n hidden: hiddenLayoutElements.current.indexOf(\"cover\") >= 0,\n })\n );\n dispatch(\n setHiddenTitle({\n hidden: hiddenLayoutElements.current.indexOf(\"title\") >= 0,\n })\n );\n dispatch(\n setHiddenBreadcrumbs({\n hidden: hiddenLayoutElements.current.indexOf(\"breadcrumbs\") >= 0,\n })\n );\n dispatch(setWideWidth({ on: width }));\n },\n (data) => {}\n );\n };\n\n return (\n <>\n setWidth(event.currentTarget.checked)}\n label={t(\"spaces.colors.pageLayout.widePage\")}\n size=\"lg\"\n />\n\n setSidebar(event.currentTarget.checked)}\n label={t(\"spaces.colors.pageLayout.hideSidebar\")}\n size=\"lg\"\n />\n\n setHeader(event.currentTarget.checked)}\n label={t(\"spaces.colors.pageLayout.hideHeader\")}\n size=\"lg\"\n />\n setCover(event.currentTarget.checked)}\n label={t(\"spaces.colors.pageLayout.hideCoverImage\")}\n size=\"lg\"\n />\n setTitle(event.currentTarget.checked)}\n label={t(\"spaces.colors.pageLayout.hidePageTitle\")}\n size=\"lg\"\n />\n setBreadcrumbs(event.currentTarget.checked)}\n label={t(\"spaces.colors.pageLayout.hideBreadcrumbs\")}\n size=\"lg\"\n />\n\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n ColorInput,\n InputWrapper,\n Box,\n Group,\n Accordion,\n Image,\n Text,\n Grid,\n MantineProvider,\n createStyles,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport HeaderAndLogo from \"./HeaderAndLogo\";\nimport PageFormat from \"./PageFormat\";\nimport PageLayout from \"./PageLayout\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { setColors } from \"../../../store/app\";\n\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport Swal from \"sweetalert2\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderBottom: \"none\",\n },\n control: {\n paddingTop: 0,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 16,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n icon: {\n // marginRight: 8,\n // marginLeft: -5\n },\n content: {\n backgroundColor: theme.colors.gray[0],\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n}));\n\nexport default function Form(props) {\n const { classes, cx, theme } = useStyles();\n const dispatch = useDispatch();\n\n const { t } = useTranslation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n\n const [themes, setThemes] = useState({});\n const [selectedTheme, setSelectedTheme] = useState(null);\n\n const [opened, setOpened] = useState(false);\n const [validatePremiumTheme, setValidatePremiumTheme] = useState(false);\n const [validatePremiumLayout, setValidatePremiumLayout] = useState(false);\n const [validatePremiumFormat, setValidatePremiumFormat] = useState(false);\n\n useEffect(() => {\n onFetch();\n }, []);\n\n useEffect(() => {\n onSelectedTheme(colors);\n }, [colors]);\n\n useEffect(() => {\n setValidatePremiumTheme(\n space && space.permissions && space.permissions.can_set_theme\n );\n setValidatePremiumLayout(\n space && space.permissions && space.permissions.can_set_layout\n );\n setValidatePremiumFormat(\n space && space.permissions && space.permissions.can_set_format\n );\n }, [space]);\n\n const form = useForm({\n initialValues: {\n ...defaultSpaceColors,\n },\n });\n\n const onFetch = () => {\n SpaceModel.onFetchThemes(\n (data) => {\n setThemes(data);\n },\n (data) => {}\n );\n };\n\n const onSelectedTheme = (theme) => {\n setSelectedTheme(theme.id);\n\n form.setFieldValue(\"header_color\", theme.header_color);\n form.setFieldValue(\"header_link_color\", theme.header_link_color);\n form.setFieldValue(\n \"primary_button_background_color\",\n theme.primary_button_background_color\n );\n form.setFieldValue(\n \"primary_button_text_color\",\n theme.primary_button_text_color\n );\n form.setFieldValue(\n \"secondary_button_background_color\",\n theme.secondary_button_background_color\n );\n form.setFieldValue(\n \"secondary_button_text_color\",\n theme.secondary_button_text_color\n );\n form.setFieldValue(\"background_color\", theme.background_color);\n form.setFieldValue(\"default_text_color\", theme.default_text_color);\n form.setFieldValue(\n \"secondary_background_color\",\n theme.secondary_background_color\n );\n form.setFieldValue(\"sub_header_text_color\", theme.sub_header_text_color);\n form.setFieldValue(\n \"sidebar_background_color\",\n theme.sidebar_background_color\n );\n form.setFieldValue(\"sidebar_text_color\", theme.sidebar_text_color);\n form.setFieldValue(\"default_link_color\", theme.default_link_color);\n form.setFieldValue(\"default_badge_color\", theme.default_badge_color);\n form.setFieldValue(\n \"default_badge_text_color\",\n theme.default_badge_text_color\n );\n };\n\n const onSave = (values) => {\n if (!validatePremiumTheme[0]) {\n setOpened([true, validatePremiumTheme[1], validatePremiumTheme[2]]);\n return;\n }\n SpaceModel.onSaveColors(\n space.slug,\n values,\n (data) => {\n dispatch(setColors({ ...values }));\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const onReset = () => {\n SpaceModel.onSaveColors(\n space.slug,\n defaultSpaceColors,\n (data) => {\n dispatch(setColors({ ...defaultSpaceColors }));\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n return (\n \n onSave(values))}\n style={{ height: \"100%\" }}\n >\n \n \n \n \n \n \n {t(\"spaces.colors.form.colorTheme\")}\n ) : (\n \n {t(\"spaces.colors.form.colorTheme\")}\n ({\n padding: \"3px 3px\",\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n borderRadius: 10,\n fontSize: 10,\n })}\n >\n \n \n \n )\n }\n >\n \n {Object.keys(themes).map((theme) => {\n return (\n \n onSelectedTheme(themes[theme])}\n >\n \n {themes[theme].title}\n \n \n );\n })}\n \n\n ({\n borderRadius: 10,\n borderBottom: \"none\",\n border: \"solid 1px #f1f1f1\",\n })}\n styles={{\n item: {\n borderBottom: \"none\",\n },\n control: {\n borderRadius: 10,\n },\n }}\n >\n \n \n {Object.keys(defaultSpaceColors).map((inputName) => {\n return (\n \n \n \n );\n })}\n \n \n \n \n \n \n \n onReset()}\n >\n {t(\"spaces.colors.form.resetColor\")}\n \n \n \n \n \n\n {t(\"spaces.colors.form.pageLayout\")}\n ) : (\n \n {t(\"spaces.colors.form.pageLayout\")}\n ({\n padding: \"3px 3px\",\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n borderRadius: 10,\n fontSize: 10,\n })}\n >\n \n \n \n )\n }\n >\n \n \n {t(\"spaces.colors.form.pageFormat\")}\n ) : (\n \n {t(\"spaces.colors.form.pageFormat\")}\n ({\n padding: \"3px 3px\",\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n borderRadius: 10,\n fontSize: 10,\n })}\n >\n \n \n \n )\n }\n >\n \n \n \n \n \n \n\n \n \n );\n}\n","import React, { useEffect } from \"react\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Checkbox,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nlet newSpaceLoading = false;\n\nexport default function Form(props) {\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n intention: \"\",\n copy_members: false,\n copy_managers: false,\n copy_resources: true,\n copy_sub_circles: false,\n copy_structures: false,\n copy_surveys: false,\n copy_broadcasts: false,\n copy_journeys: false,\n copy_reg_page: false,\n },\n\n validate: {\n intention: (value) =>\n value.length >= 3 ? null : t(\"spaces.create.invalidNameErrorMsg\"),\n },\n });\n\n useEffect(() => {\n form.setFieldValue(\n \"intention\",\n `${t(\"spaces.form.duplicate.prefix\")} ${props.spaceName.substring(0, 100)}`\n );\n }, [props]);\n\n const onSave = () => {\n if (newSpaceLoading) {\n return;\n }\n newSpaceLoading = true;\n const spaceParams = { ...form.values };\n\n SpaceModel.onDuplicate(\n spaceParams,\n props.spaceId,\n (data) => {\n props.onDuplicate(data.data.slug, data.data.link);\n setTimeout(() => {\n newSpaceLoading = false;\n }, 2000);\n },\n (data) => {\n setTimeout(() => {\n newSpaceLoading = false;\n }, 500);\n }\n );\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","class Broadcaster {\n constructor() {\n if (this instanceof Broadcaster) {\n throw Error('Broadcaster class cannot be instantiated.');\n }\n }\n\n static receive(eventName, element, callback) {\n\n Broadcaster.register(eventName, element, callback)\n\n element.addEventListener(eventName, (event) => {\n const responseData = window.$broadcasterEvents[`${eventName}`].data;\n\n callback(event, responseData);\n }, false);\n }\n\n static broadcast(eventName, data) {\n \n if (!window.$broadcasterEvents){\n window.$broadcasterEvents = {}\n }\n\n const event = window.$broadcasterEvents[`${eventName}`];\n if (!event){\n return\n }\n event.data = {};\n const elements = event.elements;\n\n for (var x = 0; x < elements.length; x++) {\n const element = elements[x].element;\n\n const keys = Object.keys(data);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n event.data[`${key}`] = data[key];\n }\n\n const eventToTrigger = new Event(eventName);\n element.dispatchEvent(eventToTrigger);\n }\n }\n\n static send(eventName, element, data) {\n\n if (!window.$broadcasterEvents){\n window.$broadcasterEvents = {}\n }\n\n const event = window.$broadcasterEvents[`${eventName}`];\n if (!event){\n return\n }\n event.data = {};\n const elements = event.elements;\n\n for (var x = 0; x < elements.length; x++) {\n const _element = elements[x];\n if (_element.element == element){\n const keys = Object.keys(data);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n event.data[`${key}`] = data[key];\n }\n\n const eventToTrigger = new Event(eventName);\n element.dispatchEvent(eventToTrigger);\n return;\n }\n }\n }\n\n static register(eventName, element, callback) {\n\n if (!window.$broadcasterEvents){\n window.$broadcasterEvents = {}\n }\n if (!window.$broadcasterEvents[`${eventName}`]){\n window.$broadcasterEvents[`${eventName}`] = {\n eventName: eventName,\n elements: [{\n element: element,\n callback: callback\n }],\n data: {}\n }\n }\n else{\n const elements = window.$broadcasterEvents[`${eventName}`].elements;\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].element == element){\n return;\n }\n }\n\n window.$broadcasterEvents[`${eventName}`].elements.push({\n element: element,\n callback: callback\n })\n }\n\n }\n\n static unRegisterAll(eventName) {\n const event = window.$broadcasterEvents[`${eventName}`];\n for (var i = 0; i < event.elements.length; i++) {\n const element = event.elements[i];\n element.element.removeEventListener(`${eventName}`, element.callback);\n }\n }\n\n static unRegisterElement(eventName, element) {\n const event = window.$broadcasterEvents[`${eventName}`];\n for (var i = 0; i < event.elements.length; i++) {\n const _element = event.elements[i];\n if (_element.element == element){\n _element.element.removeEventListener(`${eventName}`, _element.callback);\n return;\n }\n }\n\n }\n}\n\nexport default Broadcaster;\n","import React, { useState, useEffect } from \"react\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport {\n Group,\n Button,\n Drawer,\n Text,\n Popover,\n MantineProvider,\n AvatarsGroup,\n Avatar,\n createStyles,\n Modal,\n Box,\n Loader,\n Divider,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { setActions, setTiptapSidemenu } from \"../../../store/app\";\nimport SpaceModel from \"../../../models/Space\";\nimport CompletionModel from \"../../../models/Completion\";\nimport HocuspocusModel from \"../../../models/Hocuspocus\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport Colors from \"../colors/Form\";\nimport DuplicateForm from \"../form/DuplicateForm\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport Swal from \"sweetalert2\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport { getCookie } from \"../../../utils/Cookies\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n secondaryButtonStyle: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.secondary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n buttonCompleted: {\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n \"&:hover\": {\n backgroundColor: theme.colors.green[7],\n },\n },\n separatorRight: {\n borderRight: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : tinycolor(colors.header_color).darken(10).toString()\n }`,\n height: \"100%\",\n },\n appearanceButtonRoot: {\n color: theme.colors.gray[7],\n fontWeight: 400,\n fontSize: 16,\n borderRadius: 5,\n display: \"block\",\n width: \"100%\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n paddingLeft: 10,\n },\n appearanceButtonLeftIcon: {\n color: theme.colors.gray[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonInner: {\n justifyContent: \"flex-start\",\n },\n}));\n\nexport default function MainActions(props) {\n const { t, i18n } = useTranslation();\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView ? colors : defaultSpaceColors;\n const { classes, cx, theme } = useStyles({ colors: colors, settingsView });\n\n const mainActions = useSelector((state) => state.mainActions);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const spaceTree = useSelector((state) => state.tree);\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const tiptap = useSelector((state) => state.tiptap);\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const location = useLocation();\n const mediumScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.md}px)`\n );\n const largeScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [editPage, setEditPage] = useState(false);\n const [editRegPage, setEditRegPage] = useState(false);\n const [editButtonDisabled, setEditButtonDisabled] = useState(true);\n const [openedSettings, setOpenedSettings] = useState(false);\n const [openedMembers, setOpenedMembers] = useState(false);\n const [openedColors, setOpenedColors] = useState(false);\n const [openedMoreOptions, setOpenedMoreOptions] = useState(false);\n const [openedMoreOptions2, setOpenedMoreOptions2] = useState(false);\n const [openedDuplicate, setOpenedDuplicate] = useState(false);\n const [completed, setCompleted] = useState(false);\n const [loadingModalOpened, setLoadingModalOpened] = useState(false);\n const [deletingModalOpened, setDeletingModalOpened] = useState(false);\n const [registered, setRegistered] = useState(false);\n\n const onTriggerAction = (event, action) => {\n if (action.editPage == false && location.pathname.indexOf(\"/content\") >= 0) {\n if (\n window.$tiptapNeedSaving &&\n window.$tiptapNeedSaving.status == false\n ) {\n dispatch(setActions(action));\n } else if (window.$tiptapNeedSaving) {\n setEditButtonDisabled(true);\n window.$tiptapNeedSaving.leave = true;\n\n setTimeout(() => {\n if (\n window.$tiptapNeedSaving &&\n window.$tiptapNeedSaving.leave == true\n ) {\n dispatch(setActions({ editPage: false }));\n }\n }, 3000);\n }\n } else if (action.manage == true && editPage == true) {\n dispatch(setActions({ editPage: false }));\n setTimeout(() => {\n dispatch(setActions({ manage: true }));\n }, 1000);\n } else {\n dispatch(setActions(action));\n }\n };\n\n const onPublishPage = () => {\n // ALERT?\n\n setLoadingModalOpened(true);\n setTimeout(() => {\n HocuspocusModel.onPublish(\n `circle-editable-registration-page-${space.slug}`,\n (data) => {\n setLoadingModalOpened(false);\n Swal.fire(\n \"Page published\",\n \"The changes you made are now live!\",\n \"success\"\n );\n },\n (data) => {\n setLoadingModalOpened(false);\n Swal.fire(\"Opps\", \"Something went wrong\", \"error\");\n }\n );\n }, 4000);\n };\n\n useEffect(() => {\n return () => {\n onTriggerAction(null, {\n manage: false,\n editPage: false,\n editRegPage: false,\n });\n };\n }, []);\n\n useEffect(() => {\n setRegistered(getCookie(`interested_${space.slug}`));\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (location.pathname.indexOf(\"/settings\") >= 0) {\n setOpenedSettings(true);\n } else {\n setOpenedSettings(false);\n }\n }, [location]);\n\n useEffect(() => {\n if (mainActions) {\n if (mainActions.editPage != editPage) {\n setEditButtonDisabled(false);\n window.$spaceEditPage = editPage;\n setEditPage(mainActions.editPage);\n if (location.pathname.indexOf(\"getting_started\") >= 0) {\n navigate(`/space/${space.slug}/${space.version}`);\n }\n }\n if (mainActions.editRegPage != editRegPage) {\n setEditRegPage(mainActions.editRegPage);\n }\n\n if (mainActions.manage != openedSettings) {\n setOpenedSettings(mainActions.manage);\n if (mainActions.manage) {\n navigate(\"settings/main\");\n } else {\n navigate(space.version);\n }\n }\n }\n }, [mainActions]);\n\n useEffect(() => {\n if (location.pathname.indexOf(\"members\") >= 0) {\n setOpenedMembers(true);\n } else {\n setOpenedMembers(false);\n }\n // setEditButtonDisabled(true)\n }, [location]);\n\n useEffect(() => {\n dispatch(setTiptapSidemenu({ opened: \"\" }));\n }, [openedColors]);\n\n useEffect(() => {\n setCompleted(space.completed);\n }, [space]);\n\n const onMembers = () => {\n navigate(\"members\");\n };\n\n const onReturnToSpace = () => {\n navigate(`/space/${space.slug}/${space.version}?refresh=true`);\n };\n\n const onReturnToSettings = () => {\n navigate(`/space/${space.slug}/settings/main`);\n };\n\n const onOpenRegPageColors = () => {\n dispatch(setTiptapSidemenu({ opened: \"regPageColors\" }));\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n if (space.calendar.allow_interested_on_join) {\n dispatch(setTiptapSidemenu({ opened: \"interestedform\" }));\n return;\n }\n\n localStorage.setItem(\"join_slug\", space.slug);\n navigate(`/user/start?s=${space.slug}`);\n return;\n }\n SpaceModel.onJoin(\n space.slug,\n (data) => {\n navigate(`${data.redirect_to}?refresh=true`);\n },\n (data) => {}\n );\n };\n\n const onLeave = () => {\n Swal.fire({\n title: t(\"spaces.header.onLeave.title\"),\n html: t(\"spaces.header.onLeave.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onLeave.confirm\"),\n denyButtonText: t(\"spaces.header.onLeave.deny\"),\n confirmButtonColor: \"#ff0000\",\n denyButtonColor: \"#666\",\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onLeave(\n space.slug,\n (data) => {\n navigate(`/home/top`);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDuplicate = (id, link) => {\n setOpenedDuplicate(false);\n window.location = link;\n };\n\n const onArchive = () => {\n Swal.fire({\n title: t(\"spaces.header.onArchive.title\"),\n html: t(\"spaces.header.onArchive.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onArchive.confirm\"),\n denyButtonText: t(\"spaces.header.onArchive.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n setDeletingModalOpened(true);\n SpaceModel.onArchive(\n space.slug,\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n navigate(data.redirect_to);\n }, 3000);\n },\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n window.location.reload();\n }, 3000);\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onUnarchive = () => {\n Swal.fire({\n title: t(\"spaces.header.onUnarchive.title\"),\n html: t(\"spaces.header.onUnarchive.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onUnarchive.confirm\"),\n denyButtonText: t(\"spaces.header.onUnarchive.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onUnarchive(\n space.slug,\n (data) => {\n navigate(data.redirect_to);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDelete = () => {\n Swal.fire({\n title: t(\"spaces.header.onDelete.title\"),\n html: t(\"spaces.header.onDelete.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onDelete.confirm\"),\n denyButtonText: t(\"spaces.header.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n setDeletingModalOpened(true);\n SpaceModel.onDestroy(\n space.slug,\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n navigate(data.redirect_to);\n }, 3000);\n },\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n window.location.reload();\n }, 3000);\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onMarkAsCompleted = (_completed) => {\n setCompleted(_completed);\n\n CompletionModel.onCreate(\n space.slug,\n (data) => {\n Broadcaster.send(\n \"change_sidebarTreeNode\",\n document.getElementById(`sidebar_tree_node-${space.slug}`),\n {}\n );\n },\n (data) => {}\n );\n };\n\n const setCompletionMarks = (_tree, marks) => {\n if (_tree && _tree.children && _tree.children.length > 0) {\n for (var i = 0; i < _tree.children.length; i++) {\n const child = _tree.children[i];\n if (child) {\n let found = false;\n for (var j = 0; j < marks.length; j++) {\n const mark = marks[j];\n\n if (mark[0] == child.pod_id) {\n child.completed = true;\n found = true;\n marks.splice(j, 1);\n break;\n }\n }\n\n if (!found) {\n child.completed = false;\n }\n\n setCompletionMarks(child, marks);\n }\n }\n }\n };\n\n const onOpenPreview = (preview) => {\n if (preview == \"published\") {\n window.open(`/space/${space.slug}/register?preview=true`, `_blank`);\n return;\n }\n if (preview == \"draft\") {\n window.open(`/space/${space.slug}/registration/view`, `_blank`);\n return;\n }\n };\n\n const onVersionControl = () => {\n dispatch(setTiptapSidemenu({ opened: \"versionControl\" }));\n };\n\n const onFix = () => {\n Swal.fire({\n title: t(\"spaces.header.onFix.title\"),\n html: t(\"spaces.header.onFix.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onFix.confirm\"),\n denyButtonText: t(\"spaces.header.onFix.deny\"),\n confirmButtonColor: \"#ff0000\",\n denyButtonColor: \"#666\",\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onFix(\n space.slug,\n (data) => {\n if (data.fixed) {\n Swal.fire(\n t(\"spaces.header.onFix.confirmationTitle\"),\n t(\"spaces.header.onFix.confirmationMessage\"),\n \"success\"\n );\n window.location.reload();\n } else {\n Swal.fire(\n t(\"spaces.header.onFix.confirmationTitle\"),\n t(\"spaces.header.onFix.confirmationError\"),\n \"info\"\n );\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onTiptapUndo = () => {\n tiptap.editor.commands.undo();\n };\n\n const showHeaderSeparator = (auth = true) => {\n if (auth) {\n return (\n props.authenticated &&\n location &&\n location.pathname.indexOf(\"/registration\") < 0\n );\n } else {\n return location && location.pathname.indexOf(\"/registration\") < 0;\n }\n };\n\n return (\n <>\n {!openedSettings &&\n !openedMembers &&\n location.pathname.indexOf(\"/demo\") < 0 &&\n location.pathname.indexOf(\"space\") >= 0 &&\n (location.pathname.indexOf(`${space.version}`) >= 0 ||\n location.pathname.indexOf(\"pending\") >= 0 ||\n location.pathname.indexOf(\"survey\") >= 0 ||\n location.pathname.indexOf(\"processing\") >= 0 ||\n location.pathname.indexOf(\"getting_started\") >= 0) ? (\n <>\n \n {largeScreen &&\n space &&\n space.permissions &&\n !space.is_post &&\n location.pathname.indexOf(`${space.version}`) >= 0 &&\n space.permissions.allow_completions &&\n space.permissions.show_mark_complete_button_in_header &&\n !space.permissions.is_top_level &&\n user.authenticated &&\n !editPage && (\n }\n radius=\"xl\"\n onClick={() => onMarkAsCompleted(!completed)}\n >\n {completed\n ? t(\"spaces.header.buttons.uncomplete\")\n : t(\"spaces.header.buttons.markComplete\")}\n \n )}\n\n {(mediumScreen || largeScreen) &&\n space &&\n space.permissions &&\n space.permissions.can_edit &&\n location.pathname.indexOf(\"/content\") >= 0 &&\n editPage && (\n }\n onClick={(event) => onTiptapUndo()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.undo\")}\n \n )}\n\n {mediumScreen &&\n space.version == \"content\" &&\n space &&\n space.permissions &&\n space.permissions.can_edit &&\n (location.pathname.indexOf(\"/content\") >= 0 ||\n location.pathname.indexOf(\"/getting_started\") >= 0) && (\n <>\n {!editPage ? (\n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: true })\n }\n radius=\"xl\"\n // disabled={editButtonDisabled}\n >\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n ) : (\n \n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: false })\n }\n radius=\"xl\"\n disabled={editButtonDisabled}\n >\n {t(\"spaces.header.buttons.returnTo\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n \n )}\n \n )}\n {mediumScreen &&\n space.version != \"content\" &&\n space &&\n space.permissions &&\n space.permissions.can_edit &&\n space.pod_type != \"user_message\" &&\n location.pathname.indexOf(\"/discussion\") >= 0 && (\n <>\n {!editPage ? (\n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: true })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.editTitle\")}\n \n ) : (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: false })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.viewPage\")}\n \n \n )}\n \n )}\n\n {mediumScreen &&\n space.version != \"content\" &&\n space &&\n space.permissions &&\n space.permissions.can_manage &&\n (location.pathname.indexOf(\"/list\") >= 0 ||\n location.pathname.indexOf(\"/events\") >= 0) && (\n <>\n {!editPage ? (\n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: true })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.editDescription\")}\n \n ) : (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: false })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.viewPage\")}\n \n \n )}\n \n )}\n\n {largeScreen &&\n space &&\n space.permissions &&\n space.permissions.can_manage &&\n !space.is_post &&\n (location.pathname.indexOf(`${space.version}`) >= 0 ||\n location.pathname.indexOf(\"/getting_started\") >= 0) && (\n }\n radius=\"xl\"\n onClick={() => setOpenedColors((o) => !o)}\n >\n {t(\"spaces.header.buttons.appearance\")}\n \n )}\n\n {mediumScreen &&\n space &&\n space.permissions &&\n space.permissions.can_manage &&\n !space.is_post &&\n (location.pathname.indexOf(`${space.version}`) >= 0 ||\n location.pathname.indexOf(\"/getting_started\") >= 0) && (\n }\n onClick={(event) => onTriggerAction(event, { manage: true })}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.manage\")}\n \n )}\n\n {space &&\n space.permissions &&\n space.pod_type != \"user_message\" &&\n (space.permissions.is_member ||\n space.permissions.is_pending_member ||\n space.permissions.is_registration_survey_member ||\n space.permissions.can_manage ||\n space.permissions.is_admin) ? (\n setOpenedMoreOptions(false)}\n width={200}\n position=\"bottom\"\n placement=\"end\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n setOpenedMoreOptions((o) => !o)}\n >\n \n \n }\n >\n {!largeScreen &&\n space &&\n space.permissions &&\n space.permissions.is_member &&\n space.permissions.allow_completions &&\n space.permissions.show_mark_complete_button_in_header &&\n !space.permissions.is_top_level &&\n !space.is_post &&\n user.authenticated &&\n !editPage && (\n \n }\n radius=\"xl\"\n onClick={() => onMarkAsCompleted(!completed)}\n >\n {completed\n ? t(\"spaces.header.buttons.uncomplete\")\n : t(\"spaces.header.buttons.markComplete\")}\n \n )}\n\n {!mediumScreen &&\n space.version == \"content\" &&\n space &&\n space.permissions &&\n space.permissions.can_edit ? (\n <>\n {!editPage ? (\n \n }\n onClick={(event) => {\n onTriggerAction(event, { editPage: true });\n setOpenedMoreOptions(false);\n }}\n >\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n ) : (\n \n }\n onClick={(event) => {\n onTriggerAction(event, { editPage: false });\n setOpenedMoreOptions(false);\n }}\n >\n {t(\"spaces.header.buttons.viewPage\")}\n \n )}\n \n ) : (\n \"\"\n )}\n\n {!largeScreen &&\n space &&\n space.permissions &&\n !space.is_post &&\n space.permissions.can_manage && (\n }\n radius=\"xl\"\n onClick={() => setOpenedColors((o) => !o)}\n >\n {t(\"spaces.header.buttons.appearance\")}\n \n )}\n\n {!mediumScreen &&\n space &&\n space.permissions &&\n !space.is_post &&\n space.permissions.can_manage && (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { manage: true })\n }\n >\n {t(\"spaces.header.buttons.manage\")}\n \n )}\n {!largeScreen &&\n space &&\n space.permissions &&\n space.permissions.show_members &&\n space.permissions.is_member &&\n !space.is_post &&\n !space.permissions.is_pending_member && (\n \n }\n onClick={() => onMembers()}\n >\n {t(\"spaces.header.buttons.members\")}\n \n )}\n {space &&\n user &&\n user.id &&\n space.permissions &&\n (!space.parents_versions ||\n !space.user ||\n (space.parents_versions &&\n (space.parents_versions.indexOf(\"list\") < 0 ||\n (space.parents_versions.indexOf(\"list\") >= 0 &&\n space.user &&\n space.user.id != user.id)))) &&\n (space.permissions.is_member ||\n space.permissions.is_pending_member ||\n space.permissions.is_registration_survey_member) && (\n onLeave()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.leave\")}\n \n )}\n {space &&\n space.permissions &&\n (space.permissions.can_manage ||\n space.permissions.can_delete) && (\n onDelete()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.delete\")}\n \n )}\n\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n !space.is_post && (\n setOpenedDuplicate(true)}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.duplicate\")}\n \n )}\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n space.pod_state != \"archived\" &&\n !space.is_post && (\n onArchive()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.archive\")}\n \n )}\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n space.pod_state == \"archived\" &&\n !space.is_post && (\n onUnarchive()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.unarchive\")}\n \n )}\n {space &&\n space.permissions &&\n space.permissions.is_admin &&\n space.permissions.was_legacy && (\n onFix()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.fix\")}\n \n )}\n {space &&\n space.permissions &&\n (space.permissions.can_manage ||\n space.permissions.can_edit) &&\n editPage && (\n <>\n onVersionControl()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.versionHistory\")}\n \n \n )}\n \n ) : (\n space &&\n space.permissions &&\n space.permissions.can_join &&\n !registered && (\n onJoin()}\n radius=\"xl\"\n >\n {space.calendar.has_start_date\n ? t(\"spaces.header.buttons.joinEvent\")\n : t(\"spaces.header.buttons.joinSpace\")}\n \n )\n )}\n\n {largeScreen &&\n space &&\n space.permissions &&\n space.permissions.show_members &&\n space.permissions.is_member &&\n location.pathname.indexOf(space.version) >= 0 &&\n space.members.length > 1 && (\n <>\n onMembers()}\n limit={4}\n total={space.members_count}\n spacing={30}\n // radius={10}\n styles={{\n root: {\n justifyContent: \"right\",\n cursor: \"pointer\",\n paddingLeft: 12,\n },\n child: {\n width: \"auto\",\n border: `2px solid ${colors.header_color} !important`,\n },\n truncated: {\n backgroundColor: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : theme.colors.gray[2],\n color: isSpaceThemed(colors)\n ? colors.primary_button_text_color\n : \"#000\",\n paddingRight: 5,\n paddingLeft: 5,\n },\n }}\n >\n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n )}\n \n\n setOpenedColors(false)}\n // title=\"Appearance options\"\n title={APPEARANCE OPTIONS}\n styles={{\n header: {\n paddingTop: 20,\n paddingLeft: 20,\n paddingRight: 20,\n },\n }}\n size=\"xl\"\n >\n \n \n setOpenedDuplicate(false)}\n title={DUPLICATE SPACE}\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n \n ) : (\n \n {location && location.pathname.indexOf(\"/registration\") >= 0 ? (\n <>\n {location && location.pathname.indexOf(\"/edit\") >= 0 && (\n }\n onClick={(event) => onTiptapUndo()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.undo\")}\n \n )}\n }\n onClick={(event) => onOpenRegPageColors()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.appearance\")}\n \n setOpenedMoreOptions(false)}\n width={150}\n position=\"bottom\"\n placement=\"center\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n setOpenedMoreOptions((o) => !o)}\n leftIcon={}\n >\n {t(\"spaces.header.buttons.preview\")}\n \n }\n >\n \n }\n onClick={(event) => onOpenPreview(\"draft\")}\n >\n {t(\"spaces.header.buttons.draft\")}\n \n \n }\n onClick={(event) => onOpenPreview(\"published\")}\n >\n {t(\"spaces.header.buttons.published\")}\n \n \n }\n onClick={(event) => onPublishPage()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.publish\")}\n \n setOpenedMoreOptions2(false)}\n width={200}\n position=\"bottom\"\n placement=\"end\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n setOpenedMoreOptions2((o) => !o)}\n >\n \n \n }\n >\n onVersionControl()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.versionHistory\")}\n \n \n \n }\n onClick={(event) => onReturnToSettings()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.returnToSettings\")}\n \n \n \n ) : (\n <>\n {(location.pathname.indexOf(`/settings`) >= 0 ||\n location.pathname.indexOf(`/registration`) >= 0 ||\n location.pathname.indexOf(`/members`) >= 0) && (\n \n }\n onClick={(event) => onReturnToSpace()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.returnToSpace\")}\n \n \n )}\n {location.pathname.indexOf(`/demo`) >= 0 && (\n \n }\n onClick={(event) => onReturnToSettings()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.returnToSettings\")}\n \n \n )}\n \n )}\n \n )}\n {}}\n zIndex={99999}\n >\n \n \n {t(\"spaces.header.regPagePublishing\")}\n \n \n {}}\n zIndex={99999}\n >\n \n \n {t(\"spaces.header.spaceUpdating\")}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { CardElement, useStripe, useElements } from \"@stripe/react-stripe-js\";\n\nimport { Button, Box } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Payment(props) {\n const { t, i18n } = useTranslation();\n const stripe = useStripe();\n const elements = useElements();\n\n const onSubmit = async (event) => {\n event.preventDefault();\n\n await props.onChangePayment(stripe, elements);\n };\n\n const CARD_ELEMENT_OPTIONS = {\n style: {\n base: {\n color: \"#000000\",\n fontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\n fontSmoothing: \"antialiased\",\n fontSize: \"16px\",\n \"::placeholder\": {\n color: \"#888\",\n },\n },\n invalid: {\n color: \"#fa755a\",\n iconColor: \"#fa755a\",\n },\n },\n };\n\n return (\n
\n \n \n \n \n \n );\n}\n","import axios from 'axios';\nimport { getCookie } from '../utils/Cookies';\n\nclass Stripe {\n constructor() {\n if (this instanceof Stripe) {\n throw Error('Stripe class cannot be instantiated.');\n }\n }\n\n static onCreate = async (slug, price, frequency, payment_intent_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n price,\n invitation_slug: getCookie(\"invitation_slug\"),\n coupon_code: window.$selectedCouponCode,\n bundle_id: window.$selectedBundleId,\n frequency,\n affiliate: getCookie(\"affiliate_space\"),\n payment_intent_id\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onCheckIntent = async (slug, payment_intent_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n payment_intent_id\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/check_intent.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onCancelSubscription = async (user_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user_id\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/cancel_subscription.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onFetchKeys = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/setup_intent.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onFetchPayments = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n by_user: true\n }\n\n \n\n await window.$api.get(`/api/v4/spaces/${slug}/payments.json`, {params})\n .then(res => {\n \n sucessCallback(res.data)\n })\n .catch((error) => {\n \n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onAttachPaymentMethod = async (slug, pm_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n pm_id: pm_id\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/attach_payment_method.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onConnect = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/connect.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onDisconnect = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/stripe/disconnect.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onDisconnect2 = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/stripe/disconnect2.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onRefund = async (slug, payment_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n payment_id\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/stripe/refund.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onApplyCode = async (slug, coupon_code, price, frequency, currency, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n coupon_code,\n price,\n frequency,\n currency\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/apply_coupon.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onTaxCollection = async (slug, enabled, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n enabled\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/tax_collection.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onUpdatePaymentIntent = async (slug, _params={}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n affiliate: getCookie(\"affiliate_space\"),\n ..._params\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/stripe/update_payment_intent.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n \n}\n\nexport default Stripe;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport { setAlert } from \"../../../store/app\";\n\nimport StripeForm from \"./StripeFormPaymentMethod\";\n\nimport StripeModel from \"../../../models/Stripe\";\n\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport { loadStripe } from \"@stripe/stripe-js\";\n\nimport Swal from \"sweetalert2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Text, Box } from \"@mantine/core\";\n\nexport default function PaymentMethod(props) {\n const { t } = useTranslation();\n\n const dispatch = useDispatch();\n\n const [stripePromise, setStripePromise] = useState();\n const [stripeOptions, setStripeOptions] = useState({ clientSecret: \"\" });\n const [returnUrl, setReturnUrl] = useState();\n const [paymentMethods, setPaymentMethods] = useState([]);\n\n useEffect(() => {\n onFetchKeys();\n }, []);\n\n const onFetchKeys = () => {\n StripeModel.onFetchKeys(\n props.space.slug,\n (data) => {\n // console.log(\"success\");\n // console.log(data);\n const appearance = {\n theme: \"stripe\",\n };\n \n setStripePromise(loadStripe(data.publishable_key));\n setStripeOptions({\n clientSecret: data.client_secret,\n appearance: appearance,\n });\n setReturnUrl(data.return_url);\n\n setPaymentMethods([...data.payment_methods]);\n },\n (data) => {\n // Error callback\n // dispatch(\n // setAlert({\n // opened: true,\n // title: data.title,\n // message: data.message,\n // color: \"red\",\n // })\n // );\n }\n );\n };\n\n const onAttachPaymentMethod = (pm_id) => {\n StripeModel.onAttachPaymentMethod(\n props.space.slug,\n pm_id,\n (data) => {\n Swal.fire(\n t(\"settings.billing.updatePayment.success.title\"),\n t(\"settings.billing.updatePayment.success.message\"),\n \"success\"\n );\n props.setOpenedPaymentMethod(false);\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onChangePayment = async (stripe, elements) => {\n console.log(elements);\n\n if (!stripe || !elements) {\n return;\n }\n\n const result = await stripe.createPaymentMethod({\n type: \"card\",\n card: elements.getElement(\"card\"),\n });\n\n if (result.error) {\n Swal.fire(\n t(\"settings.billing.updatePayment.error.title\"),\n result.error.message,\n \"error\"\n );\n } else {\n onAttachPaymentMethod(result.paymentMethod.id);\n }\n };\n\n return (\n \n {stripePromise && stripeOptions ? (\n \n {paymentMethods && paymentMethods.length > 0 ? (\n \n {`${t(\n \"settings.billing.paymentMethod.currentPaymentMethod\"\n )}: ...${paymentMethods[0].data[0].card.last4}`}\n \n ) : (\n \n {t(\"settings.billing.paymentMethod.noCurrentPaymentMethod\")}\n \n )}\n\n \n {t(\"settings.billing.paymentMethod.addNewPaymentMethod\")}\n \n\n \n \n ) : (\n \"\"\n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Text, Table, Badge, MantineProvider, Box, Title } from \"@mantine/core\";\n\nimport StripeModel from \"../../../models/Stripe\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { DateTime } from \"luxon\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nexport default function History(props) {\n const { t, i18n } = useTranslation();\n\n const [accountPayments, setAccountPayments] = useState([]);\n\n useEffect(() => {\n onFetchPayments();\n }, []);\n\n const onFetchPayments = () => {\n StripeModel.onFetchPayments(\n props.space.slug,\n (data) => {\n setAccountPayments(data.data);\n },\n (data) => {}\n );\n };\n\n const StatusBadge = (props) => {\n const statusOptions = {\n paid: \"lime\",\n unpaid: \"red\",\n };\n\n return (\n \n \n {t(`settings.billing.statuses.${props.status}`)}\n \n \n );\n };\n\n return (\n
\n {accountPayments.length > 0 ? (\n \n \n \n \n \n \n \n \n \n \n {accountPayments.map((element) => (\n \n \n \n \n \n \n ))}\n \n
{t(\"settings.billing.tableDate\")}{t(\"settings.billing.tableAmount\")}{t(\"settings.billing.tableStatus\")}{t(\"settings.billing.tableInvoice\")}
\n {new Date(element.date).toLocaleString(DateTime.DATE_MED)}\n \n {getSymbolFromCurrency(element.currency)}\n {element.formatted_amount}\n \n \n \n \n \n {t(\"settings.billing.pdf\")}\n \n \n
\n ) : (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {t(\"settings.billing.noPayments\")}\n \n )}\n
\n );\n}\n","import axios from 'axios';\nimport { getNeo4jHost } from '../../utils/Host';\n\nclass Space {\n constructor() {\n if (this instanceof Space) {\n throw Error('Space class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n prev_top_space: window.$fetchedTopSlug\n }\n\n await axios.get(`${getNeo4jHost()}/api/v1/spaces/${slug}`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onFetchByScope = async (scope, page, sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n page\n }\n\n await axios.get(`${getNeo4jHost()}/api/v1/spaces/by_scope/${scope}`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onFetchChildren = async (slug, _params, sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n ..._params\n }\n\n await axios.get(`${getNeo4jHost()}/api/v1/spaces/${slug}/children`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onFetchEvents = async (slug, _params, sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n ..._params\n }\n\n await axios.get(`${getNeo4jHost()}/api/v1/spaces/${slug}/events`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onFetchList = async (slug, _params, sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n ..._params\n }\n\n await axios.get(`${getNeo4jHost()}/api/v1/spaces/${slug}/list`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onFetchTree = async (slug, sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken,\n }\n\n await axios.get(`${getNeo4jHost()}/api/v1/spaces/${slug}/tree`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n}\n\nexport default Space;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport SpaceNeo4jModel from \"../../models/neo4j/Space\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport CirclePack from \"circlepack-chart\";\nimport {\n Button,\n createStyles,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n \n}));\n\nexport default function TreeView(props) {\n const space = useSelector((state) => state.space);\n\n const navigate = useNavigate();\n const { t, i18n } = useTranslation();\n const { classes, theme } = useStyles();\n const chart = useRef()\n const [selectedNode, setSelectedNode] = useState(null)\n\n useEffect(() => {\n onLoadTree();\n }, []);\n\n const swatches = [\n '#FFD700', // Pastel Yellow\n '#FF9AA2', // Pastel Salmon\n '#9AC8EB', // Pastel Sky Blue\n '#9EFFA3', // Pastel Mint Green\n '#B0E0E6', // Pastel Powder Blue\n '#FFC0CB', // Pastel Pink\n '#FFDEAD', // Pastel Peach\n '#D8BFD8', // Pastel Thistle\n '#AFEEEE', // Pastel Turquoise\n '#FFA07A', // Pastel Light Salmon\n '#40E0D0', // Pastel Turquoise\n '#00CED1', // Pastel Dark Turquoise\n '#FFE4B5', // Pastel Moccasin\n '#98FB98', // Pastel Pale Green\n];\n// Now you can use the 'swatches' array in your code as needed.\n\n\n const onNodeClick = (node) => {\n setSelectedNode(node);\n props.setTreeViewSelectedNode({...node})\n chart.current.zoomToNode(node)\n }\n\n \n\n function setNodeValues(tree, level = 1) {\n const newTree = {\n name: tree.name,\n value: level,\n color: swatches[level - 1] || theme.other.tagColors[13].backgroundColor,\n children: tree.parent_of ? [...tree.parent_of] : [],\n slug: tree.slug,\n version: tree.version\n }\n \n\n if (newTree.children) {\n for (let i = 0; i < newTree.children.length; i ++){\n let child = newTree.children[i];\n \n if (child){\n newTree.children[i] = setNodeValues(child, level + 1);\n }\n }\n }\n return newTree\n}\n\n const onLoadTree = () => {\n SpaceNeo4jModel.onFetchTree(\n window.$fetchedTopSlug,\n (data) => {\n \n const newTree = setNodeValues(data.data.tree);\n \n setTimeout(() => {\n chart.current = CirclePack().data(newTree).color('color').onClick((node) => onNodeClick(node))(\n document.getElementById(\"tree-chart\")\n );\n }, 500);\n },\n (data) => {}\n );\n };\n\n return (\n <>\n \n
\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Checkbox,\n Loader,\n Center,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nexport default function Form(props) {\n const [newSpaceLoading, setNewSpaceLoading] = useState(false);\n\n const [opened, setOpened] = useState(false);\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n intention: \"\",\n copy_members: false,\n copy_managers: false,\n copy_resources: true,\n copy_sub_circles: false,\n copy_posts: false,\n copy_structures: false,\n copy_surveys: false,\n copy_broadcasts: false,\n copy_journeys: false,\n copy_reg_page: false,\n as_template: false,\n },\n\n validate: {\n intention: (value) =>\n value.length >= 3 ? null : t(\"spaces.create.invalidNameErrorMsg\"),\n },\n });\n\n useEffect(() => {\n if (!form.values.intention){\n\n form.setFieldValue(\n \"intention\",\n `${t(\"spaces.form.duplicate.prefix\")} ${props.spaceName.substring(\n 0,\n 100\n )}`\n );\n }\n }, [props]);\n\n const onSave = () => {\n if (newSpaceLoading) {\n return;\n }\n setNewSpaceLoading(true);\n const spaceParams = { ...form.values };\n\n if (props.createTemplate) {\n spaceParams.as_template = props.createTemplate;\n spaceParams.copy_members = false;\n spaceParams.copy_managers = false;\n spaceParams.copy_registration_into_space = !!props.isCreateTemplateRegistration;\n }\n\n SpaceModel.onDuplicate(\n spaceParams,\n props.spaceId,\n (data) => {\n props.onDuplicate(data.data.slug, data.data.link);\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 2000);\n },\n (data) => {\n if (data.permissions) {\n // props.onSave()\n setTimeout(() => {\n setOpened([true, data.permissions[1], data.permissions[2]]);\n }, 1000);\n }\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n {!props.createTemplate && (\n <>\n \n \n \n \n \n \n \n \n )}\n\n {newSpaceLoading ? (\n
\n \n
\n ) : (\n \n )}\n
\n \n \n
\n );\n}\n","import React from \"react\";\nimport { Text, Group } from \"@mantine/core\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Fees(props) {\n const { t, i18n } = useTranslation();\n return (\n <>\n \n \n {t(\"spaces.settings.payment.fees.description.fees\")}\n \n \n {`${props.fee}%`}\n \n \n {t(\"spaces.settings.payment.fees.description.sutraFee\")}\n \n \n \n {t(\"spaces.settings.payment.fees.description.stripeProcessingFee\")}\n \n \n \n \n );\n}\n","export const colors = {\n green: \"#6ad761\",\n blue: \"#41c3f6\",\n pink: \"#ff69b4\",\n red: \"#ea5455\",\n gray: \"#777777\",\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n NativeSelect,\n TextInput,\n Group\n} from '@mantine/core'\nimport { useSelector } from \"react-redux\";\nimport Swal from \"sweetalert2\";\n\nimport Fees from './Fees';\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nconst data = [\n { value: 'usd', label: '🇺🇸 USD' },\n { value: 'eur', label: '🇪🇺 EUR' },\n { value: 'cad', label: '🇨🇦 CAD' },\n { value: 'aud', label: '🇦🇺 AUD' },\n { value: 'gbp', label: '🇬🇧 GBP' },\n { value: 'sek', label: '🇸🇪 SEK' },\n { value: 'mxn', label: '🇲🇽 MXN' },\n { value: 'inr', label: '🇮🇳 INR' },\n { value: 'chf', label: '🇨🇭 CHF' },\n { value: 'nzd', label: '🇳🇿 NZD' },\n { value: 'brl', label: '🇧🇷 BRL' }\n];\n\nexport default function Once(props) {\n\n const [currency, setCurrency] = useState(\"usd\");\n const [defaultPaymentAmount, setDefaultPaymentAmount] = useState(\"\");\n const [disableActions, setDisableActions] = useState(false);\n const propsLoaded = useRef()\n const lastSpaceId = useRef();\n const timoutId = useRef();\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false\n };\n }, []);\n\n useEffect(() => {\n if (props.settings){\n\n if (propsLoaded.current && props.settings.slug == lastSpaceId.current && props.settings.payment_settings.default_payment_frequency == \"once\"){\n return\n }\n\n if (propsLoaded.current && props.inner) {\n return;\n }\n\n propsLoaded.current = props.settings.payment_settings.default_payment_frequency != \"once\"\n // setDisableActions(true)\n lastSpaceId.current = props.settings.slug\n\n setCurrency(space.payment_settings?.currency || props.settings.payment_settings.currency)\n setDefaultPaymentAmount(props.settings.payment_settings.default_payment_amount)\n if (props.settings.payment_settings.default_payment_frequency == \"once\"){\n setTimeout(() => {\n propsLoaded.current = true\n // setDisableActions(false)\n }, 500)\n }\n else{\n // setDisableActions(false)\n }\n }\n }, [])\n\n useEffect(() => {\n if (propsLoaded.current && currency){\n\n if (props.updateAll){\n props.onUpdate({pod_payment_settings_attributes: {currency: currency, default_payment_amount: defaultPaymentAmount, default_payment_frequency: \"once\"}})\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {currency: currency}})\n }\n\n \n\n }\n }, [currency])\n\n useEffect(() => {\n if (propsLoaded.current && defaultPaymentAmount){\n if (timoutId.current){\n clearTimeout(timoutId.current)\n }\n\n timoutId.current = setTimeout(() => {\n props.onUpdate({pod_payment_settings_attributes: {default_payment_amount: defaultPaymentAmount, default_payment_frequency: \"once\"}, circle_payment: \"paid\"})\n }, 1000)\n \n }\n }, [defaultPaymentAmount])\n\n const onUpdateSettings = (new_currency) => {\n SpaceSettingModel.onUpdate(\n space.slug,\n { pod_payment_settings_attributes: { currency: new_currency } },\n (data) => {},\n (data) => {}\n );\n }\n\n return (\n \n \n {t(\"spaces.settings.payment.once.once.description\")}\n \n\n \n {\n const newValue = event.currentTarget.value;\n if (newValue !== space.payment_settings?.currency && props.inner) {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"Changing the currency here will change the currency for the whole space.\",\n showDenyButton: true,\n confirmButtonText: \"Yes\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.blue,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onUpdateSettings(newValue);\n setCurrency(newValue);\n }\n });\n } else {\n setCurrency(newValue);\n }\n }}\n data={data}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n }}\n />\n\n setDefaultPaymentAmount(event.target.value)}\n type=\"number\"\n placeholder={t(\"spaces.settings.payment.once.once.number\")}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderLeft: \"none\"\n },\n }}\n />\n \n {props.settings && (\n \n )}\n\n \n )\n}\n","import React from \"react\";\n\nimport { Link } from \"react-router-dom\";\n\nimport { Title, Text, Group } from \"@mantine/core\";\n\nexport default function SectionHeader(props) {\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n
\n \n {props.spaceName}\n \n ({ fontWeight: 900 })}\n >\n {props.title}\n \n
\n {props.rightSide}\n \n );\n}\n","// import axios from 'axios';\n\nclass Answer {\n constructor() {\n if (this instanceof Answer) {\n throw Error('Answer class cannot be instantiated.');\n }\n }\n\n static onCreate = async (slug, survey_id, question_id, answer, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n answer\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${question_id}/answers.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (answer_id, slug, survey_id, question_id, answer, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n answer\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${question_id}/answers/${answer_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onReorder = async (slug, survey_id, question_id, answers, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n answers\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${question_id}/answers/reorder.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (answer_id, slug, survey_id, question_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${question_id}/answers/${answer_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroyAll = async (slug, survey_id, question_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${question_id}/answers/destroy_all.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Answer;\n","import React from \"react\";\nimport {\n Box,\n TextInput,\n ActionIcon,\n Checkbox,\n createStyles,\n} from \"@mantine/core\";\n\nimport { X } from \"tabler-icons-react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nlet timerId = null;\n\nexport default function MultipleItem(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n return (\n <>\n {props.quizMode && (\n \n \n props.onIsCorrectChange(props.answers.filter(item => item.is_correct == true).length > 1 ? event.currentTarget.checked : true)\n }\n styles={{\n root: {},\n input: {\n marginTop: -1,\n },\n }}\n />\n \n )}\n props.onContentChange(event.currentTarget.value)}\n placeholder={t(\n \"spaces.settings.survey.multipleItem.multipleItem.placeholder\"\n )}\n radius=\"sm\"\n size=\"md\"\n sx={(theme) => ({\n width: `calc(100% - ${props.quizMode ? 50 : 20}px)`,\n })}\n rightSection={\n props.onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n disabled={props.disabled}\n />\n \n );\n}\n","import React from \"react\";\nimport {\n Box,\n TextInput,\n ActionIcon,\n Radio,\n createStyles,\n Checkbox,\n} from \"@mantine/core\";\n\nimport { X } from \"tabler-icons-react\";\nimport { useTranslation } from \"react-i18next\";\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nexport default function SingleItem(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n return (\n <>\n {props.quizMode && (\n \n \n props.onIsCorrectChange(props.answers.filter(item => item.is_correct == true).length > 1 ? event.currentTarget.checked : true)\n }\n styles={{\n root: {},\n input: {\n marginTop: -1,\n },\n }}\n />\n \n )}\n\n props.onContentChange(event.currentTarget.value)}\n radius=\"sm\"\n size=\"md\"\n sx={(theme) => ({\n width: `calc(100% - ${props.quizMode ? 50 : 20}px)`,\n })}\n rightSection={\n props.onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n disabled={props.disabled}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Text,\n Box,\n TextInput,\n ActionIcon,\n Radio,\n NativeSelect,\n Stack,\n Anchor,\n createStyles,\n} from \"@mantine/core\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport { X } from \"tabler-icons-react\";\nimport { useTranslation } from \"react-i18next\";\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nconst frequency = [\n { value: \"once\", label: \"Once\" },\n { value: \"per month\", label: \"Per month\" },\n // { value: \"per quarter\", label: \"Per quarter\" },\n { value: \"per year\", label: \"Per year\" },\n];\n\nexport default function PaymentItem(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n\n const [showDescription, setShowDescription] = useState(false);\n const loaded = useState(false)\n\n useEffect(() => {\n if (props.description) {\n setShowDescription(true)\n }\n else{\n setShowDescription(false)\n }\n\n setTimeout(() => {\n loaded.current = true\n }, 1000)\n }, [props]);\n\n useEffect(() => {\n if (!loaded.current){\n return\n }\n if (!showDescription) {\n props.onDescriptionChange(\"\");\n }\n }, [showDescription]);\n\n return (\n <>\n \n props.onContentChange(event.currentTarget.value)}\n sx={(theme) => ({\n width: \"calc(40% - 30px)\",\n marginRight: 10,\n })}\n />\n\n {props.currency.symbol}}\n placeholder={`Amount in ${\n props.currency.currency !== undefined\n ? props.currency.currency.toUpperCase()\n : props.currency.currency\n }`}\n radius=\"sm\"\n size=\"md\"\n value={props.paymentAmount}\n onChange={(event) =>\n props.onPaymentAmountChange(event.currentTarget.value)\n }\n sx={(theme) => ({\n width: \"calc(40% - 30px)\",\n })}\n rightSection={\n props.onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n disabled={props.disabled}\n />\n\n props.onFrequencyChange(event.currentTarget.value)}\n data={frequency}\n size=\"md\"\n radius=\"sm\"\n ml={10}\n sx={(theme) => ({\n width: \"calc(20% - 10px)\",\n })}\n />\n {showDescription && (\n \n props.onDescriptionChange(event.currentTarget.value)\n }\n sx={(theme) => ({\n width: \"calc(100% - 30px)\",\n })}\n disabled={props.disabled}\n />\n )}\n ({\n\n color: theme.colors.gray[7],\n textDecoration: \"none\",\n \"&:hover\": {\n color: theme.colors.gray[7],\n textDecoration: \"underline\",\n },\n })}\n onClick={() => setShowDescription(!showDescription)}\n >\n \n {showDescription ? \"Hide description\" : \"Show description\"}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Box,\n TextInput,\n Group,\n ActionIcon,\n createStyles,\n Checkbox,\n} from \"@mantine/core\";\n\nimport { GripVertical, X } from \"tabler-icons-react\";\n\nimport { Draggable } from \"react-beautiful-dnd\";\n\nimport AnswerModel from \"../../../../models/Answer\";\n\nimport MultipleItem from \"./MultipleItem\";\nimport SingleItem from \"./SingleItem\";\nimport PaymentItem from \"./PaymentItem\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nlet timerId = null;\n\nexport default function AnswerItem(props) {\n const { classes, cx } = useStyles();\n\n const [content, setContent] = useState(\"\");\n const [paymentAmount, setPaymentAmount] = useState(\"\");\n const [answerId, setAnswerId] = useState(\"\");\n const [frequency, setFrequency] = useState(\"once\");\n const [description, setDescription] = useState(\"\");\n const [isCorrect, setIsCorrect] = useState(false);\n const [disabled, setDisabled] = useState(false);\n\n const timeoutId = useRef(null);\n\n useEffect(() => {\n if (props.answer && !props.answer.id && props.answer.new) {\n setDisabled(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n onCreate();\n }, 2000);\n } else if (props.answer) {\n setAnswerId(props.answer.id);\n\n if (props.answer.content) {\n setContent(props.answer.content);\n }\n\n if (props.answer.payment_amount) {\n setPaymentAmount(props.answer.payment_amount);\n }\n\n if (props.answer.description) {\n setDescription(props.answer.description);\n }\n\n if (props.answer.frequency) {\n setFrequency(props.answer.frequency);\n }\n\n setIsCorrect(props.answer.is_correct);\n }\n }, [props]);\n\n const onContentChange = (value) => {\n setContent(value);\n onUpdate(value, paymentAmount, isCorrect, frequency, description);\n };\n\n const onIsCorrectChange = (value) => {\n setIsCorrect(value);\n onUpdate(content, paymentAmount, value, frequency, description);\n };\n\n const onPaymentAmountChange = (value) => {\n setPaymentAmount(value);\n onUpdate(content, value, isCorrect, frequency, description);\n };\n\n const onFrequencyChange = (value) => {\n setFrequency(value);\n onUpdate(content, paymentAmount, isCorrect, value, description);\n };\n\n const onDescriptionChange = (value) => {\n setDescription(value);\n onUpdate(content, paymentAmount, isCorrect, frequency, value);\n };\n\n const onCreate = () => {\n if (props.answer.tmp_id != window.$tmpAnswersId) {\n return;\n }\n setDisabled(true);\n AnswerModel.onCreate(\n props.spaceId,\n props.surveyId,\n props.questionId,\n { content: props.answer.content },\n (data) => {\n setAnswerId(data.id);\n\n props.onUpdate(\n { id: data.id, content: props.answer.content },\n props.index\n );\n setDisabled(false);\n },\n (data) => {}\n );\n };\n\n const onUpdate = (\n _content,\n _payment_amount,\n _is_checked,\n _frequency,\n _description\n ) => {\n if (!answerId) {\n return;\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(() => {\n AnswerModel.onUpdate(\n answerId,\n props.spaceId,\n props.surveyId,\n props.questionId,\n {\n content: _content,\n payment_amount: _payment_amount,\n is_correct: _is_checked,\n frequency: _frequency,\n description: _description,\n },\n (data) => {\n props.onUpdate(\n {\n id: answerId,\n content: _content,\n payment_amount: _payment_amount,\n is_correct: _is_checked,\n frequency: _frequency,\n description: _description,\n },\n props.index\n );\n },\n (data) => {}\n );\n }, 1300);\n };\n\n const onDestroy = () => {\n if (!answerId || props.answers.length == 1) {\n return;\n }\n\n Swal.fire({\n title: \"Are you sure?\",\n html:\n props.type !== \"payment\"\n ? \"All collected option responses will be deleted.\"\n : \"\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n AnswerModel.onDestroy(\n answerId,\n props.spaceId,\n props.surveyId,\n props.questionId,\n (data) => {\n props.onDestroy({ id: answerId });\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n \n {(provided, snapshot) => (\n \n \n \n \n {props.type == \"multiple\" ? (\n \n ) : (\n \"\"\n )}\n {props.type == \"single\" ? (\n \n ) : (\n \"\"\n )}\n {props.type == \"payment\" ? (\n \n ) : (\n \"\"\n )}\n {props.type == \"freeform\" ? (\n <>\n {props.quizMode && (\n \n \n \n )}\n ({\n width: `calc(100% - ${props.quizMode ? 50 : 20}px)`,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n })}\n rightSection={\n onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n />\n \n ) : (\n \"\"\n )}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Text,\n Box,\n Group,\n Checkbox,\n Anchor,\n createStyles,\n} from \"@mantine/core\";\n\nimport AnswerItem from \"./AnswerItem\";\nimport { useTranslation } from \"react-i18next\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { useListState } from \"@mantine/hooks\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport AnswerModel from \"../../../../models/Answer\";\n\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nconst Answers = (props) => {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n const [answers, handlers] = useListState([]);\n const [type, setType] = useState(\"multiple\");\n const timeoutId = useRef(null)\n\n const loading = useRef(false);\n\n useEffect(() => {\n return () => {\n loading.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!loading.current) {\n handlers.setState(props.answers);\n setType(props.type);\n } else if (props.type != type) {\n if (props.type == \"freeform\") {\n if (!window.$tmpAnswersId){\n window.$tmpAnswersId = 0\n }\n handlers.setState([{ new: true, tmp_id: window.$tmpAnswersId, frequency: \"once\" }]);\n }\n setType(props.type);\n }\n }, [props]);\n\n const onReorder = () => {\n if (answers.length == 0) {\n return;\n }\n const order = answers.map((answer, index) => {\n return { id: answer.id, position: index };\n });\n\n AnswerModel.onReorder(\n props.spaceId,\n props.surveyId,\n props.questionId,\n order,\n (data) => {},\n (data) => {}\n );\n };\n\n useEffect(() => {\n if (loading.current) {\n onReorder();\n } else if (answers.length > 0) {\n loading.current = true;\n }\n }, [answers]);\n\n const onAddAnswer = () => {\n if (timeoutId.current){\n return\n }\n if (!window.$tmpAnswersId){\n window.$tmpAnswersId = 0\n }\n timeoutId.current = setTimeout(() => {\n\n const answer_text = type == \"payment\" ? \"Option\" : \"Answer\"\n\n handlers.append({ content: `${answer_text} ${answers.length + 1}`, new: true, tmp_id: window.$tmpAnswersId });\n timeoutId.current = null\n }, 500)\n };\n\n const onUpdateAnswer = (answer, index) => {\n const newAnswers = [...answers];\n // if (type == \"single\" && props.quizMode){\n // for (let i = 0; i < newAnswers.length; i++) {\n // const answer = newAnswers[i];\n // answer.is_correct = false\n // handlers.setItem(i, answer);\n // }\n // }\n\n const newAnswer = { ...answers[index] };\n if (!newAnswer.id || newAnswer.id == answer.id) {\n newAnswer.id = answer.id;\n newAnswer.content = answer.content;\n newAnswer.payment_amount = answer.payment_amount;\n newAnswer.is_correct = answer.is_correct;\n newAnswer.description = answer.description;\n newAnswer.frequency = answer.frequency;\n\n handlers.setItem(index, newAnswer);\n newAnswers[index] = newAnswer;\n\n // props.onUpdate(newAnswers)\n }\n };\n\n const onDestroyAnswer = (answer) => {\n const newAnswers = [...answers];\n for (let i = 0; i < newAnswers.length; i++) {\n const _answer = newAnswers[i];\n if (_answer.id == answer.id) {\n newAnswers.splice(i, 1);\n break;\n }\n }\n handlers.setState(newAnswers);\n // props.onUpdate(newAnswers)\n };\n\n return (\n \n {\n handlers.reorder({ from: source.index, to: destination.index });\n }}\n >\n \n \n {(provided) => (\n
\n {answers.map((answer, index) => {\n return (\n \n );\n })}\n {provided.placeholder}\n
\n )}\n \n \n\n {type != \"freeform\" ? (\n \n {props.quizMode && (\n \n \n
\n )}\n ({\n // color: theme.colors.sutrablue[4],\n color: sutraTheme.colors.sutrablue[4],\n \"&:hover\": {\n // color: theme.colors.sutrablue[4],\n color: sutraTheme.colors.sutrablue[5],\n },\n })}\n onClick={() => onAddAnswer()}\n >\n \n {t(\"spaces.settings.survey.answer.answer.addOption\")}\n \n \n \n ) : (\n \"\"\n )}\n \n );\n};\n\nexport default Answers;\n","// import axios from 'axios';\n\nclass Question {\n constructor() {\n if (this instanceof Question) {\n throw Error('Question class cannot be instantiated.');\n }\n }\n\n static onFetchById = async (id, survey_id, slug, sucessCallback, errorCallback) => {\n\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, survey_id, question, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n question\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (question_id, slug, survey_id, question, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n question\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${question_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onReorder = async (slug, survey_id, questions, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n questions\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/reorder.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (question_id, slug, survey_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/surveys/${survey_id}/questions/${question_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Question;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Box,\n TextInput,\n Textarea,\n SegmentedControl,\n ActionIcon,\n createStyles,\n Text\n} from \"@mantine/core\";\n\nimport { GripVertical, X } from \"tabler-icons-react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Answers from \"./Answers\";\n\nimport QuestionModel from \"../../../../models/Question\";\nimport AnswerModel from \"../../../../models/Answer\";\n\nimport { Draggable } from \"react-beautiful-dnd\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n display: \"flex\",\n alignItems: \"flex-start\",\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n backgroundColor: theme.white,\n marginTop: 15,\n width: \"100%\",\n },\n\n questionWrap: {\n width: \"100%\",\n },\n\n itemDragging: {\n boxShadow: theme.shadows.sm,\n },\n\n dragHandle: {\n ...theme.fn.focusStyles(),\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"center\",\n height: \"100%\",\n cursor: \"move\",\n color: theme.colors.gray[6],\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 8,\n },\n}));\n\nconst questionOptions = [\n { value: \"multiple\", label: \"Multiple choice\" },\n { value: \"single\", label: \"Single choice\" },\n { value: \"freeform\", label: \"Short Answer\" },\n { value: \"payment\", label: \"Payment\" },\n];\n\nlet timerId = null;\n\nconst SurveyQuestion = (props) => {\n const { classes, cx } = useStyles();\n\n const [questionType, setQuestionType] = useState(\"multiple\");\n const [answerKey, setAnswerKey] = useState(\"\");\n const [content, setContent] = useState(\"\");\n const { t, i18n } = useTranslation();\n const [questionId, setQuestionId] = useState(null);\n const [answers, setAnswers] = useState([]);\n const [disabled, setDisabled] = useState(false);\n\n const loading = useRef(false);\n\n useEffect(() => {\n return () => {\n loading.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (\n !loading.current &&\n props.question &&\n !props.question.id &&\n props.question.new\n ) {\n onCreate();\n } else if (props.question) {\n setQuestionId(null);\n onFetchById();\n }\n }, [props]);\n\n useEffect(() => {\n if (loading.current) {\n onUpdate(content, questionType);\n }\n }, [answerKey]);\n\n const onFetchById = () => {\n QuestionModel.onFetchById(\n props.question.id,\n props.surveyId,\n props.spaceId,\n (data) => {\n setQuestionId(props.question.id);\n if (data.question_type) {\n setQuestionType(\n !props.acceptPayments ? data.question_type : \"payment\"\n );\n } else {\n setQuestionType(!props.acceptPayments ? \"multiple\" : \"payment\");\n }\n if (data.content) {\n setContent(data.content);\n } else {\n if (props.acceptPayments) {\n setContent(\"Payment question\");\n }\n }\n if (data.answers) {\n setAnswers(data.answers);\n }\n setAnswerKey(data.answer_key);\n setTimeout(() => {\n loading.current = true;\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const getQuestionOptions = () => {\n if (props.acceptPayments) {\n return questionOptions;\n } else {\n const aux = [...questionOptions];\n aux.pop();\n return aux;\n }\n };\n\n const onQuestionTypeChange = (value) => {\n // onResetCorrectAnswer/s()\n if (value == \"freeform\") {\n onDestroyAll();\n } else {\n setQuestionType(value);\n }\n // else{\n // onUpdate(content, value)\n // }\n onUpdate(content, value);\n };\n\n const onContentChange = (value) => {\n setContent(value);\n onUpdate(value, questionType);\n };\n\n const onCreate = () => {\n setDisabled(true)\n QuestionModel.onCreate(\n props.spaceId,\n props.surveyId,\n { content: props.question.content },\n (data) => {\n setQuestionId(data.id);\n props.onUpdateLast(data.id);\n setTimeout(() => {\n loading.current = true;\n onPushNewAnswer()\n setDisabled(false)\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const onUpdate = (content, type) => {\n if (!questionId) {\n return;\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(() => {\n QuestionModel.onUpdate(\n questionId,\n props.spaceId,\n props.surveyId,\n { question_type: type, content, answer_key: answerKey },\n (data) => {\n // onAnswersUpdate(answers, type, content)\n // const auxQuestion = {...props.question}\n // auxQuestion.content = content\n // auxQuestion.question_type = type\n // auxQuestion.answers\n // props.onUpdate({})\n },\n (data) => {}\n );\n }, 1000);\n };\n\n const onDestroy = () => {\n if (!questionId) {\n return;\n }\n\n Swal.fire({\n title: \"Are you sure?\",\n html: \"All collected question responses will be deleted.\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n QuestionModel.onDestroy(\n questionId,\n props.spaceId,\n props.surveyId,\n (data) => {\n props.onDestroy({ id: questionId });\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDestroyAll = () => {\n if (!questionId) {\n return;\n }\n\n AnswerModel.onDestroyAll(\n props.spaceId,\n props.surveyId,\n questionId,\n (data) => {\n // onAnswersUpdate([], \"freeform\", content)\n\n setQuestionType(\"freeform\");\n // setTimeout(() => {\n //\n // setAnswers([{new: true}])\n // }, 500)\n },\n (data) => {}\n );\n };\n\n const onPushNewAnswer = () => {\n const newAnswers = [...answers];\n if (!window.$tmpAnswersId){\n window.$tmpAnswersId = 0\n }\n\n const answer_text = props.question.question_type == \"payment\" ? \"Option\" : \"Answer\"\n\n newAnswers.push({ new: true, content: `Answer ${answers.length + 1}`, tmp_id: window.$tmpAnswersId, frequency: \"once\" });\n setAnswers(newAnswers);\n };\n\n const onResetCorrectAnswers = () => {\n const newQuestion = { ...props.question };\n const newAnswers = [...newQuestion.answers]\n for (let i = 0; i < newAnswers.length; i++) {\n const answer = newAnswers[i];\n answer.is_correct = false\n }\n newQuestion.answers = newAnswers;\n setAnswers(newAnswers);\n props.onUpdate(newQuestion, props.index);\n }\n\n const onAnswersUpdate = (_answers, _questionType = null, _content = null) => {\n const newAnswers = [..._answers];\n\n setAnswers(newAnswers);\n const newQuestion = { ...props.question };\n newQuestion.answers = newAnswers;\n newQuestion.content = _content ? _content : content;\n newQuestion.question_type = _questionType ? _questionType : questionType;\n\n props.onUpdate(newQuestion, props.index);\n };\n\n const onDrag = () => {};\n\n return (\n \n {(provided, snapshot) => (\n \n {!props.acceptPayments && (\n
\n \n
\n )}\n
\n {!props.acceptPayments && (\n onContentChange(event.currentTarget.value)}\n placeholder={`Question`}\n radius=\"sm\"\n size=\"md\"\n rightSection={\n onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n disabled={disabled}\n />\n )}\n {!props.acceptPayments && (\n \n )}\n\n {props.quizMode && questionType != \"freeform\" && (\n {`Select the correct answer below`}\n )}\n\n \n\n {props.showKeys && (\n setAnswerKey(event.currentTarget.value)}\n // placeholder={`Answer key (optional)`}\n radius=\"sm\"\n size=\"md\"\n autosize={true}\n />\n )}\n
\n \n )}\n \n );\n};\n\nexport default SurveyQuestion;\n","import { Extension } from '@tiptap/core'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomUniqId = Extension.create({\n name: \"uniqId\",\n addOptions() {\n\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"horizontalRule\",\n \"infobox\",\n \"tagsFeed\"\n ],\n // … with those attributes\n attributes: {\n uid: {\n default: \"\",\n },\n },\n },\n ]\n },\n})\n\nexport default CustomUniqId;\n","import { isTextSelection } from \"@tiptap/core\";\nimport Broadcaster from \"../../../helpers/Broadcaster.js\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport function getLeaf(editor, slice = null) {\n const content = slice ? slice : editor.view.state.selection.content();\n return getNextInnerContent(content);\n}\n\nfunction getNextInnerContent(selectionContent, parentContent = null) {\n const innerContent = selectionContent.content.content;\n if (innerContent.length == 0) {\n return { leaf: selectionContent, parent: parentContent };\n } else {\n if (innerContent[0].content.content.length == 0) {\n return getNextInnerContent(innerContent[0], selectionContent);\n }\n return getNextInnerContent(innerContent[0]);\n }\n}\n\nexport function isSingleCircleNode(editor, slice = null) {\n if (!(slice && slice.content && slice.content.content)) {\n return false;\n }\n const nodes = slice.content.content;\n if (nodes.length == 1 && nodes[0].content.content.length == 1) {\n return getLeaf(editor, slice).type.name == \"circle\";\n }\n}\n\nexport function isSingleNodeOf(editor, type, slice = null) {\n const nodes = (slice ? slice : editor.view.state.selection.content()).content\n .content;\n if (nodes.length == 1) {\n return nodes[0].type.name == type;\n }\n}\n\nexport function getSimpleStructure(editor, slice = null) {\n const structure = [];\n return convertToSimpleStructure(structure, editor, slice);\n}\n\nfunction convertToSimpleStructure(structure, editor, slice = null) {\n const nodes = (slice ? slice : editor.view.state.selection.content()).content\n .content;\n\n for (let i = 0; i < nodes.length; i++) {\n const newNodeStructure = {\n type: nodes[i].type.name,\n attrs: { ...nodes[i].attrs },\n content: [],\n };\n convertToSimpleStructure(newNodeStructure.content, editor, nodes[i]);\n structure.push(newNodeStructure);\n }\n\n return structure;\n}\n\nexport function getListOfNodes(editor, slice, list) {\n list = list ? list : [];\n const nodes = (slice ? slice : editor.view.state.selection.content()).content\n .content;\n\n for (let i = 0; i < nodes.length; i++) {\n list.push(nodes[i].type.name);\n getListOfNodes(editor, nodes[i], list);\n }\n\n return list;\n}\n\nexport function isDocumentEmpty(editor, node) {\n node = node ? node : editor.view.state.doc;\n\n for (let i = 0; i < node.content.content.length; i++) {\n const child = node.content.content[i];\n\n const exludedFoundAux =\n [\n \"circle\",\n \"image\",\n \"video\",\n \"audio\",\n \"file\",\n \"embed\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"survey\",\n \"customform\",\n \"resource\",\n \"actionbutton\",\n \"interactiveInput\",\n \"interactiveWait\",\n \"interactiveButton\",\n \"fancyLink\",\n \"tagsFeed\",\n ].indexOf(child.type.name) >= 0;\n\n if (\n ([\n \"paragraph\",\n \"heading\",\n \"taskList\",\n \"orderedList\",\n \"bulletList\",\n \"infobox\",\n ].indexOf(child.type.name) >= 0 &&\n child.textContent) ||\n exludedFoundAux\n ) {\n return false;\n }\n }\n return true;\n}\n\nexport function getAllParents(editor, node) {\n // debugger;\n}\n\nexport function isEmptySelection(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n // debugger\n let holder = editor.view.state.doc.nodeAt(editor.view.state.selection.from);\n\n if (!holder) {\n holder = $anchor.parent;\n }\n\n const noneTextBlocks = [\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"column\",\n \"circle\",\n \"resource\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"survey\",\n \"customform\",\n \"resource\",\n \"actionbutton\",\n \"tagsFeed\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"infobox\",\n ];\n const isEmptyTextBlock =\n isTextSelection(editor.view.state.selection) && holder.textContent == \"\";\n\n const onlyTextNodes = noneTextBlocks.indexOf(holder.type.name) < 0;\n\n return isEmptyTextBlock && onlyTextNodes;\n}\n\nexport function isNonTextBlock(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n\n let holder = editor.view.state.doc.nodeAt(editor.view.state.selection.from);\n\n if (!holder) {\n holder = $anchor.parent;\n }\n\n const noneTextBlocks = [\n \"circle\",\n \"resource\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"survey\",\n \"customform\",\n \"resource\",\n \"actionbutton\",\n \"tagsFeed\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"infobox\",\n ];\n\n return noneTextBlocks.indexOf(holder.type.name) >= 0;\n}\n\nexport function isNonTextBlockAbsolute(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n\n let holder = editor.view.state.doc.nodeAt(editor.view.state.selection.from);\n\n if (!holder) {\n holder = $anchor.parent;\n }\n\n const noneTextBlocks = [\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"circle\",\n \"resource\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"survey\",\n \"customform\",\n \"resource\",\n \"actionbutton\",\n \"tagsFeed\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"infobox\",\n ];\n\n return noneTextBlocks.indexOf(holder.type.name) >= 0;\n}\n\nexport function isParagraph(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n\n let holder = node;\n\n if (!holder) {\n holder = $anchor.parent;\n }\n\n const noneTextBlocks = [\"paragraph\"];\n\n return noneTextBlocks.indexOf(holder.type.name) >= 0;\n}\n\nexport function isDepth(editor, depth) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n\n return $anchor.depth == depth;\n}\n\nexport function isInDepth(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n\n return $anchor.depth > 1;\n}\n\nexport function isInsideNode(editor, nodeName) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n for (let i = 0; i < $anchor.path.length; i++) {\n if (\n $anchor.path[i].type &&\n (nodeName.indexOf($anchor.path[i].type.name) >= 0 ||\n $anchor.path[i].type.name.indexOf(nodeName) >= 0)\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isNodeInsideNodeOld(editor, getPos, nodeName) {\n const node = editor.view.state.doc.nodeAt(getPos() - 2);\n\n try {\n return (\n node.type &&\n (nodeName.indexOf(node.type.name) >= 0 ||\n node.type.name.indexOf(nodeName) >= 0)\n );\n } catch {\n return false;\n }\n}\n\nexport function isNodeInsideNode(editor, getPos, nodeName) {\n const doc = editor.view.state.doc;\n\n try {\n let depth = false;\n doc.descendants((node, pos, parent, index) => {\n if (pos === getPos() && parent.type.name == nodeName) {\n depth = true;\n return false; // Stop iterating through the document\n }\n });\n return depth;\n } catch {\n return false;\n }\n}\n\nexport function isDocumentFocused(editor) {\n return document.getElementsByClassName(\"is-focus\").length > 0;\n}\n\nexport function isTopNode(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n return $anchor.depth == 1;\n}\n\nexport function getTopParentNode(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n\n return { node: $anchor.path[3], pos: $anchor.path[2] };\n}\n\nexport function isMultilineSelection(editor) {\n const { from, to, $anchor, node } = editor.view.state.selection;\n\n return to > from;\n}\n\nexport function closestInteraction(editor, pos, blocker = false) {\n let found = -1;\n let interactivePosition = 0;\n let isBlocking = true;\n\n editor.view.state.doc.nodesBetween(0, pos, (node, pos) => {\n if (node.attrs.isInteractive) {\n found = pos;\n interactivePosition = node.attrs.interactivePosition;\n isBlocking = node.attrs.isBlocking;\n }\n });\n if (found > -1) {\n return { pos: found, interactivePosition, isBlocking };\n }\n return null;\n}\n\nexport function closestBlockingInteraction(editor, pos, blocker = false) {\n let found = -1;\n let interactivePosition = 0;\n let isBlocking = true;\n\n editor.view.state.doc.nodesBetween(0, pos, (node, pos) => {\n if (node.attrs.isInteractive && node.attrs.isBlocking) {\n found = pos;\n interactivePosition = node.attrs.interactivePosition;\n isBlocking = node.attrs.isBlocking;\n }\n });\n if (found > -1) {\n return { pos: found, interactivePosition, isBlocking };\n }\n return null;\n}\n\nexport function interactionCount(editor) {\n const doc = editor.view.state.doc;\n let count = 0;\n editor.view.state.doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (node.attrs.isInteractive) {\n count++;\n }\n });\n return count;\n}\n\nexport function showNextInteraction(editor, _pos, newInteraction = true) {\n const doc = editor.view.state.doc;\n\n const positions = [];\n doc.nodesBetween(_pos, doc.content.size, (node, pos) => {\n positions.push([node, pos]);\n });\n for (let i = 1; i < positions.length; i++) {\n const node = positions[i][0];\n const pos = positions[i][1];\n\n if (!node.isText) {\n const { tr } = editor.view.state;\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n incrementor: node.attrs.incrementor + 1,\n });\n editor.view.dispatch(tr);\n }\n }\n\n setTimeout(() => {\n try {\n updateInteractionsBar(editor);\n const viewport = document.querySelector(\n \".content-scrollview .mantine-ScrollArea-viewport\"\n );\n if (viewport && newInteraction) {\n const node = editor.view.state.doc.nodeAt(_pos + 1);\n let element = document.getElementById(node.attrs.uid);\n if (!element){\n element = document.querySelector(`[uid=\"${node.attrs.uid}\"]`)\n }\n if (element) {\n const rect = element.getBoundingClientRect();\n const scrollTop = rect.top + viewport.scrollTop - viewport.getBoundingClientRect().top;\n const top = scrollTop - 50;\n if (top > 100) {\n viewport.scrollTo({ top: top });\n }\n }\n }\n } catch {}\n }, 500);\n}\n\nexport function beginningOfContextForInteraction(editor, _pos) {\n const doc = editor.view.state.doc;\n\n let nonInteractiveNode = null;\n doc.nodesBetween(0, _pos, (node, pos) => {\n\n if (node.attrs.isInteractive && pos != _pos){\n nonInteractiveNode = null\n }\n else{\n if (!nonInteractiveNode){\n nonInteractiveNode = node;\n }\n }\n\n });\n \n return nonInteractiveNode;\n\n}\n\nexport function updateInteractionsBar(editor) {\n try {\n \n const current = window.$spaceUserInteractions.position != null\n ? window.$spaceUserInteractions.position + 1\n : 0;\n const total = interactionCount(editor);\n const progress = (current * 100.0) / total;\n // console.log(`CURRENT: ${current} + TOTAL: ${total}`);\n Broadcaster.send(\"open_InteractionsBar\", document.body, {\n progress: progress,\n });\n } catch (e) {\n } finally {\n }\n}\n\nexport function checkInteractionAndHideIfNeeded(\n editor,\n dom,\n getPos,\n display = \"block\"\n) {\n dom.style.display = display;\n if (window.$spaceUserInteractions) {\n const interaction = closestInteraction(editor, getPos(), true);\n const blockingInteraction = closestBlockingInteraction(\n editor,\n getPos(),\n true\n );\n\n if (\n blockingInteraction != null &&\n window.$spaceUserInteractions.position <\n blockingInteraction.interactivePosition &&\n blockingInteraction.isBlocking\n ) {\n dom.style.display = \"none\";\n }\n\n updateInteractionsBar(editor);\n }\n}\n\nexport function checkInteractionAndHideIfNeededReact(editor, getPos) {\n if (window.$spaceUserInteractions) {\n try {\n const interaction = closestInteraction(editor, getPos(), true);\n const blockingInteraction = closestBlockingInteraction(\n editor,\n getPos(),\n true\n );\n\n if (\n blockingInteraction != null &&\n window.$spaceUserInteractions.position <\n blockingInteraction.interactivePosition &&\n blockingInteraction.isBlocking\n ) {\n return false;\n }\n } catch {\n return false;\n }\n }\n return true;\n}\n\nexport function updateInteractionsPositions(editor) {\n const doc = editor.view.state.doc;\n\n const positions = [];\n let auxPos = 0;\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (node.type.name.indexOf(\"interactive\") >= 0) {\n positions.push([node, auxPos, pos]);\n auxPos++;\n }\n });\n\n for (let i = 0; i < positions.length; i++) {\n const node = positions[i][0];\n const intPos = positions[i][1];\n const pos = positions[i][2];\n\n if (!node.isText) {\n const { tr } = editor.view.state;\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n interactivePosition: intPos,\n });\n editor.view.dispatch(tr);\n }\n }\n}\n\nexport function setUniqId(editor, pos) {\n const node = editor.view.state.doc.nodeAt(pos);\n const dom = editor.view.nodeDOM(pos);\n\n const uid = uuidv4();\n // console.log(`SETTTING ID FOR: ${node.type.name} ${node.attrs.uid} ${uid} ${node.attrs.incrementor} ${pos()}` )\n const { tr } = editor.view.state;\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n uid: uid,\n });\n\n editor.view.dispatch(tr);\n\n if (dom) {\n dom.setAttribute(\"data-uid\", uid);\n dom.setAttribute(\"id\", uid);\n }\n\n return uid;\n}\n\nexport function setAttrsToAllByType(editor, type, attrs) {\n\n const doc = editor.view.state.doc;\n\n const nodesToUpdate = []\n\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (node.type.name == type) {\n nodesToUpdate.push([node, pos]);\n }\n });\n\n for (let i = 0; i < nodesToUpdate.length; i++) {\n const node = nodesToUpdate[i][0];\n const pos = nodesToUpdate[i][1];\n\n const { tr } = editor.view.state;\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attrs,\n });\n\n editor.view.dispatch(tr); \n }\n}\n","\n\nexport function wideOrNarrow(suffix=\"px\", add=0, rest=0) {\n let width1 = 960 + add - rest\n let width2 = 801 + add - rest\n if (window.location.pathname.indexOf(\"/registration\") >= 0 || window.location.pathname.indexOf(\"/register\") >= 0){\n \n if (suffix == \"px\"){\n return window.$registrationWideWidth == \"wide\" ? `${width1}px` : `${width2}px`\n }\n else{\n return window.$registrationWideWidth == \"wide\" ? width1 : width2\n }\n }\n else{\n if (suffix == \"px\"){\n return window.$spaceWideWidth == \"wide\" ? `${width1}px` : `${width2}px`\n }\n else{\n return window.$spaceWideWidth == \"wide\" ? width1 : width2\n }\n }\n}\n\n","import Paragraph from \"@tiptap/extension-paragraph\";\nimport { mergeAttributes } from \"@tiptap/core\";\nimport {\n isEmptySelection,\n checkInteractionAndHideIfNeeded,\n //setUniqId,\n} from \"../utils/selection\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst ParagraphNode = Paragraph.extend({\n draggable: false,\n content: \"inline*\",\n group: \"block columnable\",\n // addAttributes() {\n // return {\n // incrementer: {\n // default: 0\n // }\n // }\n // },\n addCommands() {\n return {\n addNewEmptyLine: () => (editor) => {\n const { from, to, $anchor } = editor.view.state.selection;\n if (!isEmptySelection(editor)) {\n return editor\n .chain()\n .insertContentAt(to, `

`)\n .setTextSelection({ from: to + 1, to: to + 1 })\n .run();\n } else {\n return editor.commands.selectTextblockEnd();\n }\n },\n customEnter: () => (editor) => {\n const { from, to, $anchor } = editor.view.state.selection;\n // debugger\n // console.log('CUSTOM ENTER');\n return editor\n .chain()\n .focus()\n .splitBlock()\n .run();\n },\n setParagraph:\n () =>\n ({ commands }) => {\n return commands.setNode(this.name);\n },\n };\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"p\");\n const content = document.createElement(\"div\");\n content.style.maxWidth = wideOrNarrow();\n content.classList.add(\"is_text\");\n\n if (node.content.size === 0) {\n content.classList.add(\"is_empty_node\")\n }\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n dom.append(content);\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n // //setUniqId(editor, node, getPos, dom);\n\n const isRegistration = window.location.pathname.indexOf(\"/registration/view\") >= 0;\n\n if (isRegistration) {\n setTimeout(() => {\n const a = content.querySelectorAll('a');\n if (a[0]) {\n const link = a[0].href;\n const isJumpTo = link.indexOf(\"#jumpTo=\") >= 0;\n a[0].href = isJumpTo ? link.replace('register', 'registration/view') : link;\n }\n }, 200);\n }\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default ParagraphNode;\n","import Heading from '@tiptap/extension-heading'\nimport { mergeAttributes } from '@tiptap/core'\n\nimport {checkInteractionAndHideIfNeeded, setUniqId} from '../utils/selection';\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst HeadingNode = Heading.extend({\n draggable: false,\n content: 'inline*',\n group: 'block columnable',\n addAttributes() {\n return {\n level: {\n default: 1\n },\n }\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes, }) => {\n\n const hasLevel = this.options.levels.includes(node.attrs.level)\n\n const level = hasLevel\n ? node.attrs.level\n : this.options.levels[0]\n\n const dom = document.createElement(`h${level}`)\n const content = document.createElement(\"div\")\n content.style.maxWidth = wideOrNarrow();\n content.classList.add(\"is_text\")\n\n if (node.content.size === 0) {\n content.classList.add(\"is_empty_node\")\n }\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n Object.entries(attributes).forEach(([key, value]) => dom.setAttribute(key, value));\n dom.append(content)\n checkInteractionAndHideIfNeeded(editor, dom, getPos)\n\n const isRegistration = window.location.pathname.indexOf(\"/registration/view\") >= 0;\n\n if (isRegistration) {\n setTimeout(() => {\n const a = content.querySelectorAll('a');\n if (a[0]) {\n const link = a[0].href;\n const isJumpTo = link.indexOf(\"#jumpTo=\") >= 0;\n a[0].href = isJumpTo ? link.replace('register', 'registration/view') : link;\n }\n }, 200);\n }\n\n return {\n dom,\n contentDOM: content,\n // ignoreMutation(mutation) {\n // if (mutation.type === 'selection') {\n // return false;\n // }\n // return !dom.contains(mutation.target) || dom === mutation.target;\n // },\n // update: updatedNode => {\n // if (updatedNode.type !== this.type) {\n // return false;\n // }\n // return true;\n // },\n };\n }\n },\n})\n\nexport default HeadingNode;\n","export function setResizeable(element, editor, pos) {\n setTimeout(() => {\n const gridCol = $(element).parents(\".c-grid-col\");\n const inlineCol = $(element).parents(\"#tiptap-inline-container\");\n\n window.$(element).resizable({\n aspectRatio: $(element).width() / $(element).height(),\n handles: \"e, w\",\n // handles: \"e, w, s\",\n // autoHide: true,\n // containment: \"parent\",\n maxWidth:\n gridCol.length > 0\n ? gridCol.width() - 10\n : inlineCol.length > 0\n ? inlineCol.width() - 10\n : null,\n minWidth: 40,\n resize: function (event, ui) {\n if (!window.$auxPosResizeX) {\n window.$auxPosResizeX = event.clientX;\n }\n\n apply(event, ui, editor, pos, false, element);\n },\n start: function (event, ui) {\n console.log(\n `START P${$(ui.element).parent().width()} - UI${ui.size.width}`\n );\n if (ui.size.width < 50) {\n $(ui.element).css({\n top: \"unset\",\n left: \"unset\",\n width: $(ui.element).parent().width(),\n height: \"100%\",\n });\n }\n },\n stop: function (event, ui) {\n apply(event, ui, editor, pos, true, element);\n },\n });\n }, 500);\n}\n\nfunction apply(event, ui, editor, pos, save, element) {\n ui.position.top = \"unset\";\n ui.position.left = \"unset\";\n\n const parentWidth = $(ui.element).parent().width();\n const parentHeight = $(ui.element).parent().height();\n\n let fixHeight = false;\n if (parentWidth - 12 <= ui.size.width) {\n fixHeight = true;\n ui.size.width = parentWidth;\n }\n if (parentHeight <= ui.size.height) {\n fixHeight = true;\n ui.size.height = parentHeight;\n }\n\n let percentWidth = (ui.size.width * 100.0) / parentWidth;\n let percentHeight = (ui.size.height * 100.0) / parentHeight;\n\n // if (percentWidth < 40){\n // percentWidth = 40 * 100.0 / parentWidth\n // }\n\n const gridCol = $(element).parents(\".c-grid-col\");\n\n // const edgeHeight = gridCol.length > 0 ? \"200px\" : \"400px\";\n const edgeHeight = \"unset\";\n\n $(ui.element)\n .parent()\n .css({\n height: fixHeight ? edgeHeight : \"unset\",\n });\n\n $(ui.element).css({\n top: \"unset\",\n left: \"unset\",\n width: ui.size.width,\n height: \"100%\",\n });\n\n const auxPos = editor.view.posAtCoords({\n left: window.$auxPosResizeX,\n top: event.clientY,\n });\n if (auxPos) {\n window.$auxPosResize = auxPos;\n }\n\n if (save) {\n if (window.$auxPosResize) {\n editor.commands.setNodeSelection(window.$auxPosResize.inside);\n console.log(fixHeight ? edgeHeight : \"unset\")\n setTimeout(() => {\n editor.commands.setCustomResizeable({\n resizeableWidth: `${Math.round(percentWidth)}%`,\n resizeableHeight: `${Math.round(percentHeight)}%`,\n resizeableParentHeight: fixHeight ? edgeHeight : \"unset\",\n });\n window.$auxPosResizeX = null;\n }, 100);\n }\n }\n}\n","import { setResizeable } from \"./setResizeable\";\n\nexport function setLazyLoad(\n element,\n src,\n editor,\n resize = null,\n getPos = null\n) {\n if (!window.$loadedSources) {\n window.$loadedSources = [];\n }\n\n if (window.$loadedSources.indexOf(src)){\n element.setAttribute(\"src\", src);\n\n if (resize && editor.isEditable) {\n setTimeout(() => {\n setResizeable(resize, editor, getPos());\n }, 1000);\n }\n return\n }\n\n setTimeout(() => {\n const options = {\n rootMargin: \"0px\",\n threshold: 0.1,\n };\n const observer = new IntersectionObserver(function (entries, observer) {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const element = entry.target;\n element.setAttribute(\"src\", src);\n element.removeAttribute(\"data-src\");\n observer.unobserve(element);\n\n if (resize && editor.isEditable) {\n setTimeout(() => {\n setResizeable(resize, editor, getPos());\n }, 1000);\n }\n\n window.$loadedSources.push(src)\n }\n });\n }, options);\n\n element.setAttribute(\"data-src\", src);\n element.style.minHeight = \"unset\";\n observer.observe(element);\n }, 500);\n}\n","import Broadcaster from \"../../../helpers/Broadcaster\";\n\n// Store for tracking active checkers by ID\nconst activeCheckers = new Map();\n\nconst isVideoURLValid = async (url) => {\n if (!url) return false;\n try {\n const response = await fetch(`/api/v4/proxy?url=${url}`, { method: \"head\" });\n return response.ok;\n } catch {\n return false;\n }\n};\n\nconst updateNodeAttributes = async (editor, data, attributes) => {\n const uploader = data.uploader;\n const element = document.getElementById(uploader.id);\n if (!element) return;\n\n try {\n const rect = element.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n const auxPos = editor.view.posAtCoords({\n left: centerX,\n top: centerY,\n });\n\n if (!auxPos) return;\n\n const theNode = editor.view.state.doc.nodeAt(auxPos.inside);\n if (theNode?.attrs.uploader?.id === uploader.id) {\n if (!editor.isEditable) {\n Broadcaster.send(\"new_uploadFile\", document.body, {\n id: data.uploader.id,\n status: \"used\",\n trigger: \"checkUploadStatus 2\",\n space_slug: attributes.uploader.space_slug,\n new_src: uploader.urlOutput,\n new_status: \"completed\"\n });\n }\n const { tr } = editor.view.state;\n tr.setNodeMarkup(auxPos.inside, undefined, {\n ...attributes,\n src: uploader?.urlOutput || src,\n uploader: { ...uploader },\n });\n editor.view.dispatch(tr);\n }\n } catch (error) {\n console.log(\"Error updating node attributes:\", error);\n }\n};\n\nconst createUploadTag = (resize, attributes, type, message, bgColor = null) => {\n const uploadTag = document.createElement(\"span\");\n uploadTag.innerHTML = message;\n uploadTag.setAttribute(\"id\", attributes.uploader.id);\n\n if (type === \"video\") {\n uploadTag.classList.add(\"video-processing-tag\");\n uploadTag.style.width = resize.style.width;\n uploadTag.style.textAlign = \"center\";\n \n if (bgColor) {\n uploadTag.style.backgroundColor = bgColor;\n }\n }\n\n return uploadTag;\n};\n\nconst clearActiveChecker = (id) => {\n if (activeCheckers.has(id)) {\n const { interval } = activeCheckers.get(id);\n clearInterval(interval);\n activeCheckers.delete(id);\n }\n};\n\nexport function checkUploadStatus(resize, editor, getPos, attributes, type) {\n const uploaderId = attributes.uploader.id;\n\n // Check if a checker is already running for this ID\n if (activeCheckers.has(uploaderId)) {\n // Update tag without creating a new interval\n const existingChecker = activeCheckers.get(uploaderId);\n \n if (existingChecker.resize !== resize) {\n // Update resize container in existing checker\n existingChecker.resize = resize;\n resize.style.position = \"relative\";\n \n // Remove old tag if exists\n while (resize.firstChild) {\n resize.removeChild(resize.firstChild);\n }\n \n // Add tag to new container\n resize.append(existingChecker.uploadTag);\n }\n \n return;\n }\n \n resize.style.position = \"relative\";\n \n // Determine initial status message and tag appearance\n let uploadTag;\n let checkInterval = null;\n \n if (type !== \"video\") {\n uploadTag = createUploadTag(resize, attributes, type, \"Uploading...\");\n } else if (attributes.uploader.status.indexOf(\"error\") >= 0) {\n uploadTag = createUploadTag(\n resize, \n attributes, \n type,\n \"This video cannot be processed, please try again...\", \n \"#e53935\"\n );\n } else if (attributes.uploader.status.indexOf(\"zoom-pending\") >= 0) {\n uploadTag = createUploadTag(\n resize, \n attributes, \n type,\n \"Your recording will be posted here after the meeting ends.\"\n );\n } else {\n uploadTag = createUploadTag(\n resize, \n attributes, \n type,\n `This video is ${attributes.uploader.status}...`\n );\n \n if (attributes.uploader.url) {\n let checkCount = 0;\n \n checkInterval = setInterval(async () => {\n checkCount++;\n const videoURL = attributes.uploader.urlOutput;\n const isValid = await isVideoURLValid(videoURL);\n \n if (isValid) {\n clearInterval(checkInterval);\n clearActiveChecker(uploaderId);\n \n attributes.uploader.status = \"completed\";\n \n const element = document.getElementById(uploaderId);\n if (element) {\n Broadcaster.send(\n \"set_uploadFile\",\n element,\n {\n uploader: { ...attributes.uploader },\n src: attributes.uploader.url,\n }\n );\n }\n }\n }, 10000); // Check every 10 seconds\n \n // Store information about the current checker\n activeCheckers.set(uploaderId, { \n interval: checkInterval, \n uploadTag, \n resize,\n attributes\n });\n }\n }\n \n resize.append(uploadTag);\n \n // Check if this is an already completed upload\n let uploadingStatus = attributes.uploader.status;\n \n // Handle canceled uploads\n if (!uploadingStatus && editor.isEditable && type !== \"video\") {\n uploadTag.innerHTML = \"This upload was cancelled\";\n }\n \n // Set up the broadcaster receiver with a single timeout\n setTimeout(() => {\n const element = document.getElementById(uploaderId);\n \n if (!element) return;\n \n // Unregister any existing receivers\n try {\n Broadcaster.unRegisterElement(\"set_uploadFile\", element);\n } catch (error) {\n // Ignore errors during unregistration\n }\n \n // Register new receiver\n Broadcaster.receive(\"set_uploadFile\", element, (event, data) => {\n if (uploaderId !== data.uploader.id) {\n return;\n }\n \n // Update node after a short delay\n setTimeout(() => {\n updateNodeAttributes(editor, data, attributes);\n }, 500);\n \n // Handle completed uploads\n if (data.uploader.status === \"completed\") {\n // Clear active checker if it exists\n clearActiveChecker(uploaderId);\n }\n \n // Handle errors\n if (data.uploader.status.indexOf(\"error\") >= 0) {\n uploadTag.innerHTML = \"This video cannot be processed, please try again...\";\n uploadTag.style.backgroundColor = \"#e53935\";\n }\n });\n }, 500);\n}","export function camelCase(str) {\n return str\n .split(\"-\")\n .reduce((a, b) => a + b.charAt(0).toUpperCase() + b.slice(1));\n}\n\nexport function stylesToString(styles, applyCamelCase = false) {\n if (typeof styles == \"string\") {\n return styles;\n }\n\n let stylesStr = ``;\n const stylesKeys = Object.keys(styles);\n\n\n \n for (var i = 0; i < stylesKeys.length; i++) {\n const key = stylesKeys[i];\n if (key == \"0\" || key == 0) {\n \n return Object.values(styles).join(\"\")\n }\n const value = styles[key];\n if (applyCamelCase) {\n stylesStr += `${camelCase(key)}: ${value};`;\n } else {\n stylesStr += `${key}: ${value};`;\n }\n }\n\n if (typeof stylesStr == \"Array\") {\n return \"\";\n }\n\n return stylesStr;\n}\n\nexport function stylesToCamelCase(styles) {\n if (typeof styles == \"string\" || !styles) {\n return {};\n }\n\n let stylesStr = {};\n const stylesKeys = Object.keys(styles);\n\n for (var i = 0; i < stylesKeys.length; i++) {\n const key = stylesKeys[i];\n\n if (key == \"0\" || key == 0) {\n const fixString = Object.values(styles).join(\"\")\n return stylesToCamelCase(fixStringToJSON(fixString))\n }\n\n const value = styles[key];\n\n stylesStr[camelCase(key)] = value;\n }\n\n return stylesStr;\n}\n\nexport function fixStringToJSON(string) {\n const styleString = string;\n\n const styleArray = styleString.split(\";\");\n const styleObject = {};\n\n styleArray.forEach((item) => {\n const [key, value] = item.split(\":\");\n if (key && value){\n styleObject[key.trim()] = value.trim();\n }\n });\n\n return styleObject;\n}\n","import Image from \"@tiptap/extension-image\";\nimport { mergeAttributes } from \"@tiptap/core\";\nimport { setResizeable } from \"../utils/setResizeable\";\nimport { setLazyLoad } from \"../utils/setLazyLoad\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { checkUploadStatus } from \"../utils/uploaderStatus\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n// import $ from 'jquery'\n// import jUI from 'webpack-jquery-ui'\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst ImageNode = Image.extend({\n draggable: false,\n selectable: true,\n allowGapCursor: false,\n group: \"block columnable\",\n inline: false,\n addAttributes() {\n return {\n src: {\n default: null,\n },\n uploader: {\n default: {\n id: null,\n status: null,\n progress: null,\n },\n },\n link: {\n default: {\n url: null,\n target: \"_current\",\n },\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"15px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n const span = document.createElement(\"div\");\n span.style.maxWidth = wideOrNarrow();\n span.classList.add(\"image-node\");\n\n const resize = document.createElement(\"div\");\n\n resize.style.display = \"inline-block\";\n\n const image = document.createElement(\"img\");\n const attributes = mergeAttributes(HTMLAttributes, {});\n\n span.setAttribute(\"id\", attributes.uid);\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n if (attributes.resizeableWidth) {\n resize.style.width = attributes.resizeableWidth;\n resize.style.height = attributes.resizeableHeight;\n span.style.height = attributes.resizeableParentHeight;\n }\n\n // console.log(\"TIPTAP RENDER IMAGE\");\n\n if (!attributes.src) {\n checkUploadStatus(resize, editor, getPos, node.attrs, \"image\");\n } else {\n image.style.width = \"100%\";\n image.style.height = \"100%\";\n if (window.location.pathname.indexOf(\"/discussion\") >= 0) {\n //image.style.minHeight = $(window).width() / 2 + \"px\";\n }\n\n if (location.href.indexOf(\"broadcast\") >= 0) {\n image.setAttribute(\"src\", attributes.src);\n }\n\n image.style.display = \"block\";\n image.style[\"object-fit\"] = \"cover\";\n\n resize.append(image);\n if (location.href.indexOf(\"broadcast\") < 0) {\n setLazyLoad(image, attributes.src, editor, resize, getPos);\n }\n }\n\n span.append(resize);\n dom.append(span);\n\n if (editor.isEditable && attributes.src != null) {\n setTimeout(() => {\n setResizeable(resize, editor, getPos());\n }, 1000);\n }\n\n if (!editor.isEditable && node.attrs.link.url) {\n image.style.cursor = \"pointer\";\n image.addEventListener(\"click\", (event) => {\n if (\n node.attrs.link.target == \"_blank\" ||\n event.ctrlKey ||\n event.metaKey\n ) {\n window.open(node.attrs.link.url, \"_blank\");\n } else {\n window.location.href = node.attrs.link.url;\n }\n });\n }\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: span,\n ignoreMutation(mutation) {\n return true;\n },\n };\n };\n },\n});\n\nexport default ImageNode;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { setResizeable } from \"../utils/setResizeable\";\n\nimport { checkUploadStatus } from \"../utils/uploaderStatus\";\nimport { getFullDomain } from \"../../../utils/Host\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nexport const inputRegex = /(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/;\n\nconst playIcon =\n '';\n\nconst VideoNode = Node.create({\n name: \"video\",\n allowGapCursor: false,\n group: \"block columnable\",\n\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n };\n },\n\n inline() {\n return this.options.inline;\n },\n\n group() {\n return this.options.inline ? \"inline\" : \"block columnable\";\n },\n\n draggable: false,\n\n addAttributes() {\n return {\n src: {\n default: null,\n },\n controls: {\n default: true,\n },\n viewAs: {\n default: \"inline\",\n },\n link: {\n default: {\n url: null,\n target: \"_modal\",\n title: \"\",\n description: \"\",\n image: {\n url: \"\",\n },\n thumbnail: {\n url: \"\",\n },\n },\n },\n zoom: {\n default: {\n meeting_number: null,\n meeting_password: \"\",\n },\n },\n uploader: {\n default: {\n id: null,\n status: null,\n progress: null,\n },\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"15px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"video\",\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"video\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n\n addCommands() {\n return {\n setVideo:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: options,\n });\n },\n };\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n const span = document.createElement(\"div\");\n if (!node.attrs.viewAs || node.attrs.viewAs == \"inline\") {\n span.style.maxWidth = wideOrNarrow();\n span.classList.add(\"video-node\");\n\n const resize = document.createElement(\"div\");\n\n resize.style.display = \"inline-block\";\n\n const video = document.createElement(\"video\");\n const attributes = mergeAttributes(HTMLAttributes, {});\n\n span.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n if (attributes.resizeableWidth) {\n resize.style.width = attributes.resizeableWidth;\n resize.style.height = attributes.resizeableHeight;\n span.style.height = attributes.resizeableParentHeight;\n }\n\n if (\n attributes.uploader &&\n attributes.uploader.status &&\n (attributes.uploader.status == \"uploading\" ||\n attributes.uploader.status == \"pending\" ||\n attributes.uploader.status == \"zoom-pending\" ||\n attributes.uploader.status == \"processing\" ||\n attributes.uploader.status.indexOf(\"error\") >= 0)\n ) {\n checkUploadStatus(resize, editor, getPos, node.attrs, \"video\");\n }\n\n video.style.width = \"100%\";\n video.style.height = \"100%\";\n video.style.maxHeight = \"600px\";\n if (window.location.pathname.indexOf(\"/discussion\") >= 0) {\n // video.style.minHeight = $(window).width() / 2 + \"px\";\n }\n\n video.setAttribute(\"controls\", attributes.controls);\n\n video.style.display = \"block\";\n video.style[\"object-fit\"] = \"contain\";\n\n // const fileToFetch = attributes.src.split(\"/\").pop();\n const fileToFetch = attributes.src ? attributes.src.split(\"/\").pop() : '';\n\n const source = document.createElement(\"source\");\n // DELETE FOR FIREFOX\n // source.src = `https://sutra-froala.s3.us-west-1.amazonaws.com/placeholder.mp4`;\n\n video.append(source);\n // setLazyLoad(source, attributes.src, editor, resize, getPos)\n video.append(\"Your browser does not support the video tag.\");\n\n resize.append(video);\n\n span.append(resize);\n dom.append(span);\n\n const overlay = document.createElement(\"div\");\n overlay.style.width = resize.style.height;\n overlay.style.height = resize.style.height;\n overlay.classList.add(\"overlay\");\n overlay.innerHTML = playIcon;\n resize.append(overlay);\n\n if (attributes.src && attributes.src.indexOf(\"m3u8\") >= 0) {\n // https://github.com/video-dev/hls.js\n\n if (Hls.isSupported()) {\n let thumbnail = \"\";\n if (\n attributes.uploader &&\n attributes.uploader.thumbnail &&\n attributes.uploader.status != \"completed\"\n ) {\n thumbnail = attributes.uploader.thumbnail;\n } else {\n thumbnail = `${attributes.src\n .replace(\".m3u8\", \"\")\n .replace(\n \"sutra-video-output.s3.us-west-1.amazonaws.com\",\n \"sutra-video-thumbnails.s3.us-west-1.amazonaws.com/thumbnails\"\n )}_00001.png`;\n }\n if (attributes.link.thumbnail && attributes.link.thumbnail.url) {\n thumbnail = attributes.link.thumbnail.url;\n }\n video.setAttribute(\"poster\", thumbnail);\n\n const hls_config = {\n maxBufferLength: 30, // seconds\n maxMaxBufferLength: 600, // seconds\n liveSyncDurationCount: 3,\n liveMaxLatencyDurationCount: 5,\n debug: false,\n xhrSetup: function (xhr, url) {\n // xhr.withCredentials = true; // do send cookie\n // xhr.setRequestHeader(\"Access-Control-Allow-Headers\",\"Content-Type, Accept, X-Requested-With\");\n xhr.setRequestHeader(\n \"Access-Control-Allow-Origin\",\n `${getFullDomain()}`\n );\n // xhr.setRequestHeader(\"Access-Control-Allow-Credentials\",\"true\");\n },\n };\n\n video.addEventListener(\"abort\", () => {\n console.log(`Abort loading: addas`);\n });\n\n video.addEventListener(\"error\", (e) => {\n console.log(`Error encountered: ${e.message}`);\n // Attempt to recover or log more details\n });\n\n overlay.addEventListener(\"click\", () => {\n overlay.style.display = \"none\";\n try {\n const hls = new Hls(hls_config);\n\n hls.loadSource(\n `/api/v4/proxy?url=https://sutra-video-output.s3.us-west-1.amazonaws.com/${fileToFetch}`\n );\n hls.attachMedia(video);\n hls.on(Hls.Events.MANIFEST_PARSED, () => {\n video.play().catch(function (error) {\n console.error(\"Failed to start video playback:\", error);\n });\n });\n\n hls.on(Hls.Events.ERROR, (event, data) => {\n if (data.fatal) {\n switch (data.type) {\n case Hls.ErrorTypes.NETWORK_ERROR:\n // try to recover network error\n console.log(\n \"Attempting to recover from network error...\"\n );\n hls.startLoad();\n break;\n case Hls.ErrorTypes.MEDIA_ERROR:\n console.log(\n \"Attempting to recover from media error...\"\n );\n hls.recoverMediaError();\n break;\n default:\n // cannot recover\n hls.destroy();\n break;\n }\n }\n });\n } catch (e) {}\n });\n }\n } else {\n overlay.style.display = \"none\";\n source.src = attributes.src;\n }\n\n if (editor.isEditable && attributes.src != null) {\n setTimeout(() => {\n setResizeable(resize, editor, getPos());\n }, 1000);\n }\n } else {\n span.style.maxWidth = wideOrNarrow();\n span.classList.add(\"fancylink-node\");\n\n const mainContent = document.createElement(\"div\");\n mainContent.classList.add(\"main-content\");\n\n const imageCont = document.createElement(\"div\");\n const img = document.createElement(\"img\");\n const container = document.createElement(\"div\");\n const title = document.createElement(\"div\");\n title.classList.add(\"fancylink-title\");\n const description = document.createElement(\"div\");\n const attributes = mergeAttributes(HTMLAttributes, {});\n\n span.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n img.onload = function () {\n imageCont.style.display = \"inline\";\n };\n\n img.onerror = function () {\n imageCont.style.display = \"none\";\n };\n\n img.setAttribute(\n \"src\",\n attributes.link.thumbnail && attributes.link.thumbnail.url\n ? attributes.link.thumbnail.url\n : attributes.link.image && attributes.link.image.url\n ? attributes.link.image.url\n : \"\"\n );\n\n title.innerHTML = attributes.link.title;\n description.innerHTML = attributes.link.description;\n\n imageCont.classList.add(\"imageCont\");\n\n imageCont.append(img);\n\n container.append(title);\n container.append(description);\n\n mainContent.append(imageCont);\n mainContent.append(container);\n\n span.append(mainContent);\n\n dom.append(span);\n\n if (!editor.isEditable) {\n span.addEventListener(\"click\", (event) => {\n Broadcaster.send(\"open_VideVideo\", document.body, {\n node: { ...node },\n });\n });\n }\n }\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n if (node.attrs.uploader.status == \"zoom-pending\" && !editor.isEditable) {\n dom.style.display = \"none\";\n }\n\n return {\n dom,\n contentDOM: span,\n ignoreMutation(mutation) {\n return true;\n },\n };\n };\n },\n});\n\nexport default VideoNode;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { checkInteractionAndHideIfNeeded } from \"../utils/selection\";\nimport { checkUploadStatus } from \"../utils/uploaderStatus\";\n\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nexport const inputRegex = /(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/;\n\nconst AudioNode = Node.create({\n name: \"audio\",\n\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n };\n },\n\n inline() {\n return this.options.inline;\n },\n\n group() {\n return this.options.inline ? \"inline\" : \"block columnable\";\n },\n\n draggable: false,\n\n addAttributes() {\n return {\n src: {\n default: null,\n },\n controls: {\n default: true,\n },\n uploader: {\n default: {\n id: null,\n status: null,\n progress: null,\n },\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"0px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"audio\",\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"audio\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n\n addCommands() {\n return {\n setAudio:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: options,\n });\n },\n };\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const span = document.createElement(\"div\");\n span.classList.add(\"audio-node\");\n span.style.maxWidth = wideOrNarrow();\n\n const audio = document.createElement(\"audio\");\n const attributes = mergeAttributes(HTMLAttributes, {});\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n if (!attributes.src) {\n checkUploadStatus(span, editor, getPos, node.attrs, \"audio\");\n } else {\n audio.setAttribute(\"width\", \"100%\");\n audio.setAttribute(\"controls\", attributes.controls);\n audio.setAttribute(\"preload\", \"metadata\");\n\n const source = document.createElement(\"source\");\n source.src = attributes.src;\n\n audio.append(source);\n audio.append(\"Your browser does not support the audio tag.\");\n\n span.append(audio);\n }\n\n if (editor.isEditable) {\n audio.style.pointerEvents = 'none';\n span.style.position = 'relative';\n\n const overlay = document.createElement('div');\n overlay.style.position = 'absolute';\n overlay.style.top = '0';\n overlay.style.left = '0';\n overlay.style.right = '0';\n overlay.style.bottom = '0';\n overlay.style.zIndex = '100';\n span.appendChild(overlay);\n\n overlay.onclick = (event) => {\n event.stopPropagation();\n editor.chain().focus().setNodeSelection(getPos()).run();\n // editor.chain().focus().selectParentNode().run();\n };\n }\n\n dom.append(span);\n\n audio.onplay = () => {\n audio.setAttribute(\"preload\", \"auto\");\n };\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n\n return {\n dom,\n contentDOM: span,\n };\n };\n },\n\n});\n\nexport default AudioNode;","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { setResizeable } from \"../utils/setResizeable\";\nimport { setLazyLoad } from \"../utils/setLazyLoad\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nexport const inputRegex = /(!\\[(.+|:?)]\\((\\S+)(?:(?:\\s+)[\"'](\\S+)[\"'])?\\))$/;\n\nconst EmbedNode = Node.create({\n name: \"embed\",\n draggable: false,\n selectable: true,\n allowGapCursor: false,\n group: \"block columnable\",\n inline: false,\n\n addAttributes() {\n return {\n videoId: {\n default: \"\",\n },\n src: {\n default: null,\n },\n controls: {\n default: true,\n },\n viewAs: {\n default: \"inline\",\n },\n link: {\n default: {\n url: null,\n target: \"_modal\",\n title: \"\",\n description: \"\",\n image: {\n url: \"\",\n },\n thumbnail: {\n url: \"\",\n },\n },\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"0px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"embed\",\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"embed\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n\n addCommands() {\n return {\n setEmbed:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: options,\n });\n },\n };\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n const span = document.createElement(\"div\");\n if (!node.attrs.viewAs || node.attrs.viewAs == \"inline\") {\n span.style.maxWidth = wideOrNarrow();\n span.classList.add(\"embed-node\");\n\n const resize = document.createElement(\"div\");\n\n resize.style.display = \"inline-block\";\n\n const iframe = document.createElement(\"iframe\");\n const attributes = mergeAttributes(HTMLAttributes, {});\n\n span.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n const percWidth = parseFloat(\n attributes.resizeableWidth.replace(\"%\", \"\")\n );\n let iframeHeight = 400;\n let divider = 1;\n\n const resolvedPos = editor.view.state.doc.resolve(getPos());\n\n if (resolvedPos.depth > 1) {\n divider = 12.0 / resolvedPos.path[6].attrs.size;\n }\n\n const videoWrapper = document.createElement(\"div\");\n const prosemirrorInline = $(editor.view.dom).parents(\n \"#tiptap-inline-container\"\n );\n\n const nodeResource = $(editor.view.dom).parents(\".node-resource\");\n\n setTimeout(\n () => {\n if (prosemirrorInline.length == 0) {\n if ($(window).width() > 768) {\n iframeHeight =\n (wideOrNarrow(\"num\") * percWidth) / 100 / divider / 1.778;\n } else {\n iframeHeight =\n ($(window).width() * percWidth) / 100 / divider / 1.778;\n }\n } else {\n if (\n nodeResource.length > 0 &&\n window.$resourceNodeWidth &&\n $(prosemirrorInline).width() == 0\n ) {\n iframeHeight =\n (window.$resourceNodeWidth * percWidth) /\n 100 /\n divider /\n 1.778;\n } else {\n iframeHeight =\n ($(prosemirrorInline).width() * percWidth) /\n 100 /\n divider /\n 1.778;\n\n if (\n nodeResource.length > 0 &&\n $(prosemirrorInline).width() != 0\n ) {\n window.$resourceNodeWidth = $(prosemirrorInline).width();\n }\n }\n }\n\n if (attributes.resizeableWidth) {\n resize.style.width = attributes.resizeableWidth;\n resize.style.height = \"100%\";\n //span.style.height = `${Math.round(iframeHeight)}px`;\n }\n\n // iframe.setAttribute(\"width\", \"100%\")\n // iframe.setAttribute(\"height\", `${Math.round(iframeHeight)}px`)\n // iframe.setAttribute(\"height\", `100%`)\n // iframe.setAttribute(\"src\", attributes.src)\n iframe.setAttribute(\"allowfullscreen\", true);\n iframe.setAttribute(\"fullscreen\", true);\n iframe.setAttribute(\"picture-in-picture\", true);\n iframe.setAttribute(\"allow\", \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\");\n \n if (attributes.src && attributes.src.indexOf(\"sensemaker\") >= 0){\n iframe.setAttribute(\"title\", \"Embedded Content\");\n iframe.setAttribute(\"allow\", \"accelerometer; clipboard-write;\");\n iframe.setAttribute(\"type\", \"dashboard v2 widget\");\n\n }\n\n // iframe.style.display = \"block\"\n // iframe.style[\"object-fit\"] = \"cover\"\n // New\n iframe.style[\"position\"] = \"absolute\";\n iframe.style[\"top\"] = 0;\n iframe.style[\"left\"] = 0;\n iframe.style[\"width\"] = \"100%\";\n iframe.style[\"height\"] = \"100%\";\n\n if (window.location.pathname.indexOf(\"/discussion\") >= 0) {\n //iframe.style.minHeight = $(window).width() / 2 + \"px\";\n }\n \n videoWrapper.style.position = \"relative\";\n videoWrapper.style.paddingBottom = \"56.25%\";\n videoWrapper.style.paddingTop = 25;\n videoWrapper.style.height = 0;\n videoWrapper.style.overflow = \"hidden\";\n videoWrapper.style.referrerpolicy = \"strict-origin-when-cross-origin\";\n },\n nodeResource.length > 0 && !window.$resourceNodeWidth ? 1000 : 0\n );\n\n \n setLazyLoad(iframe, attributes.src, editor, resize, getPos);\n\n resize.append(videoWrapper);\n // resize.append(iframe)\n\n span.append(resize);\n //\n // if (editor.editing){\n const overlay = document.createElement(\"div\");\n overlay.style.height = `${Math.round(iframeHeight)}px`;\n overlay.classList.add(\"overlay\");\n resize.append(overlay);\n // }\n\n dom.append(span);\n\n if (editor.isEditable) {\n setTimeout(() => {\n setResizeable(resize, editor, getPos());\n }, 1000);\n }\n setTimeout(() => {\n videoWrapper.append(iframe);\n }, 100);\n } else {\n span.style.maxWidth = wideOrNarrow();\n span.classList.add(\"fancylink-node\");\n\n const mainContent = document.createElement(\"div\");\n mainContent.classList.add(\"main-content\");\n\n const imageCont = document.createElement(\"div\");\n const img = document.createElement(\"img\");\n const container = document.createElement(\"div\");\n const title = document.createElement(\"div\");\n title.classList.add(\"fancylink-title\");\n const description = document.createElement(\"div\");\n const attributes = mergeAttributes(HTMLAttributes, {});\n\n span.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n img.onload = function () {\n imageCont.style.display = \"inline\";\n };\n\n img.onerror = function () {\n imageCont.style.display = \"none\";\n };\n\n const image_url_ok = (attributes.link.thumbnail && attributes.link.thumbnail.url) || (attributes.link.image && attributes.link.image.url)\n\n img.setAttribute(\n \"src\",\n attributes.link.thumbnail && attributes.link.thumbnail.url\n ? attributes.link.thumbnail.url\n : attributes.link.image && attributes.link.image.url\n ? attributes.link.image.url\n : \"\"\n );\n\n title.innerHTML = attributes.link.title;\n description.innerHTML = attributes.link.description;\n\n imageCont.classList.add(\"imageCont\");\n \n imageCont.append(img);\n \n\n container.append(title);\n container.append(description);\n if (image_url_ok){\n mainContent.append(imageCont);\n }\n mainContent.append(container);\n\n span.append(mainContent);\n\n dom.append(span);\n\n if (!editor.isEditable) {\n span.addEventListener(\"click\", (event) => {\n console.log(\"open_VideVideo\");\n Broadcaster.send(\"open_VideVideo\", document.body, {\n node: { ...node },\n });\n });\n }\n }\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: span,\n ignoreMutation(mutation) {\n return true;\n },\n };\n };\n },\n});\n\nexport default EmbedNode;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\n\nimport { checkUploadStatus } from \"../utils/uploaderStatus\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nconst fileIcon =\n '';\n\nconst downloadIcon =\n '';\n\nconst printIcon =\n '';\n\nconst FileNode = Node.create({\n name: \"file\",\n allowGapCursor: false,\n group: \"block columnable\",\n defining: true,\n inline: false,\n\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n };\n },\n\n inline() {\n return this.options.inline;\n },\n\n group() {\n return this.options.inline ? \"inline\" : \"block columnable\";\n },\n\n draggable: false,\n\n addAttributes() {\n return {\n src: {\n default: null,\n },\n name: {\n default: \"\",\n },\n size: {\n default: 0,\n },\n extension: {\n default: \"\",\n },\n displayAs: { default: \"\" },\n uploader: {\n default: {\n id: null,\n status: null,\n progress: null,\n },\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"15px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"file\",\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"file\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const span = document.createElement(\"div\");\n span.style.maxWidth = wideOrNarrow();\n span.classList.add(\"file-node\");\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n span.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n let pdfjsLibExists = false\n\n try {\n pdfjsLibExists = pdfjsLib ? true : false\n }\n catch (e) {\n pdfjsLibExists = false\n }\n\n if (attributes.displayAs == \"embed\" && attributes.src && pdfjsLibExists) {\n const colors =\n window.$themeColors && window.$themeColors.background_color\n ? window.$themeColors\n : defaultSpaceColors;\n\n const embed = document.createElement(\"div\");\n const embedId = `embed-${attributes[\"data-uid\"]}`;\n embed.setAttribute(\"id\", embedId);\n embed.style.width = \"100%\";\n embed.style.height = \"400px\";\n embed.style.overflowY = \"scroll\";\n embed.style.overflowX = \"hidden\";\n\n const toolbar = document.createElement(\"div\");\n const filename = document.createElement(\"span\");\n const actions = document.createElement(\"div\");\n const downloadButton = document.createElement(\"button\");\n const printButton = document.createElement(\"button\");\n\n toolbar.classList.add(\"pdfToolbar\");\n toolbar.style.backgroundColor = colors.sidebar_background_color;\n toolbar.style.display = \"flex\";\n toolbar.style.justifyContent = \"space-between\";\n\n // backgroundColor: colors.primary_button_background_color,\n // color: colors.primary_button_text_color,\n // \"&:hover\": {\n // backgroundColor: tinycolor(colors.primary_button_background_color)\n // .darken(4)\n // .toString(),\n // },\n\n filename.setAttribute(\"id\", \"filename\");\n filename.style.fontWeight = \"bold\";\n filename.style.color = colors.sidebar_text_color;\n\n downloadButton.setAttribute(\"id\", \"downloadBtn\");\n downloadButton.innerHTML = downloadIcon;\n // downloadButton.innerHTML = \"Download\";\n downloadButton.style.backgroundColor =\n colors.primary_button_background_color;\n downloadButton.style.color = colors.primary_button_text_color;\n downloadButton.style.border = \"none\";\n downloadButton.style.borderRadius = \"100px\";\n downloadButton.style.padding = \"5px 10px\";\n downloadButton.style.marginLeft = \"10px\";\n downloadButton.style.cursor = \"pointer\";\n downloadButton.style.textAlign = \"center\";\n downloadButton.style.fontSize = \"14px\";\n // downloadButton.style.width = \"100px\";\n // downloadButton.querySelector(\"svg\").style.fill = colors.primary_button_text_color\n\n printButton.setAttribute(\"id\", \"printBtn\");\n // printButton.innerHTML = printIcon;\n printButton.innerHTML = \"Print\";\n printButton.style.backgroundColor =\n colors.primary_button_background_color;\n printButton.style.color = colors.primary_button_text_color;\n printButton.style.border = \"none\";\n printButton.style.borderRadius = \"100px\";\n printButton.style.padding = \"3px 15px\";\n printButton.style.marginLeft = \"10px\";\n printButton.style.cursor = \"pointer\";\n printButton.style.textAlign = \"center\";\n printButton.style.fontSize = \"14px\";\n // printButton.querySelector(\"svg\").style.fill = colors.primary_button_text_color\n\n actions.append(downloadButton);\n // actions.append(printButton);\n\n toolbar.append(filename);\n toolbar.append(actions);\n\n span.append(toolbar);\n span.append(embed);\n\n span.style.display = \"block\";\n\n setTimeout(() => {\n const parentWidth = span.clientWidth - 45;\n \n pdfjsLib\n .getDocument(attributes.src)\n .promise.then((pdf) => {\n const numPages = pdf.numPages;\n let currentPage = 1; // Keep track of the current page being rendered\n\n function renderNextPage() {\n if (currentPage <= numPages) {\n pdf.getPage(currentPage).then((page) => {\n const viewport = page.getViewport({ scale: 1 });\n\n const desiredWidth = parentWidth;\n const scale = desiredWidth / viewport.width;\n\n const scaledViewport = page.getViewport({ scale });\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n canvas.height = scaledViewport.height;\n canvas.width = scaledViewport.width;\n\n const renderContext = {\n canvasContext: context,\n viewport: scaledViewport,\n };\n\n page.render(renderContext).promise.then(() => {\n const pageContainer = document.createElement(\"div\");\n pageContainer.classList.add(\"pdfPage\");\n pageContainer.appendChild(canvas);\n embed.appendChild(pageContainer);\n\n // Move to the next page\n currentPage++;\n renderNextPage();\n });\n });\n }\n }\n\n // Start rendering the first page\n renderNextPage();\n })\n .catch((error) => {\n console.error(\"Error opening the PDF file:\", error);\n });\n // Set the filename in the toolbar\n filename.textContent = attributes.name;\n\n // Download button click event handler\n downloadButton.addEventListener(\"click\", () => {\n const a = document.createElement(\"a\");\n a.href = attributes.src;\n a.download = attributes.name;\n a.click();\n });\n\n // Print button click event handler\n printButton.addEventListener(\"click\", () => {\n window.print();\n });\n }, 1000);\n } else {\n const anchor = document.createElement(\"a\");\n\n if (node.attrs.textAlign) {\n span.style.justifyContent = node.attrs.textAlign;\n }\n\n if (!attributes.src) {\n checkUploadStatus(span, editor, getPos, node.attrs, \"file\");\n } else {\n anchor.innerHTML = attributes.name;\n if (\n location.href.indexOf(\"broadcast\") >= 0 ||\n location.href.indexOf(\"settings/main\") >= 0\n ) {\n anchor.setAttribute(\"target\", \"_blank\");\n anchor.setAttribute(\"href\", attributes.src);\n anchor.setAttribute(\"clicktracking\", \"off\");\n }\n\n let fileImageIcon = \"other\";\n const extension = attributes.extension\n ? attributes.extension.toLowerCase()\n : attributes.name.split(\".\").pop();\n\n if (extension == \"doc\" || extension == \"docx\") {\n fileImageIcon = \"doc\";\n } else if (extension == \"html\") {\n fileImageIcon = \"html\";\n } else if (extension == \"key\") {\n fileImageIcon = \"key\";\n } else if (extension == \"pages\") {\n fileImageIcon = \"pages\";\n } else if (extension == \"pdf\") {\n fileImageIcon = \"pdf\";\n } else if (extension == \"ppt\" || extension == \"pptx\") {\n fileImageIcon = \"ppt\";\n } else if (extension == \"txt\") {\n fileImageIcon = \"txt\";\n } else if (extension == \"xls\" || extension == \"xlsx\") {\n fileImageIcon = \"xls\";\n } else if (extension == \"zip\" || extension == \"zip\") {\n fileImageIcon = \"zip\";\n }\n\n const img = document.createElement(\"img\");\n img.setAttribute(\n \"src\",\n `https://sutra.co/img/icons/file_icon_${fileImageIcon}.png`\n );\n if (\n location.href.indexOf(\"broadcast\") >= 0 ||\n location.href.indexOf(\"settings/main\") >= 0\n ) {\n img.style.width = \"50px\";\n img.style.display = \"none\";\n }\n\n span.append(img);\n span.append(anchor);\n\n if (!editor.isEditable) {\n span.addEventListener(\"click\", (event) => {\n const extension = attributes.src.split(\".\").pop();\n\n window.open(node.attrs.src, \"_blank\");\n });\n }\n }\n }\n\n dom.append(span);\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: span,\n ignoreMutation(mutation) {\n return true;\n },\n };\n };\n },\n\n addCommands() {\n return {\n setFile:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: options,\n });\n },\n };\n },\n});\n\nexport default FileNode;\n","import ListItem from '@tiptap/extension-list-item'\nimport {v4 as uuidv4} from 'uuid';\n\nconst ListItemNode = ListItem.extend({\n draggable: false,\n content: 'paragraph columnable*',\n addAttributes() {\n return {\n uid: {\n default: uuidv4()\n }\n }\n },\n})\n\nexport default ListItemNode;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst FancyLinkNode = Node.create({\n name: \"fancyLink\",\n allowGapCursor: false,\n group: \"block\",\n\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n };\n },\n\n inline() {\n return this.options.inline;\n },\n\n group() {\n return this.options.inline ? \"inline\" : \"block columnable\";\n },\n\n draggable: false,\n\n addAttributes() {\n return {\n link: {\n default: {\n url: null,\n target: \"_current\",\n title: \"\",\n description: \"\",\n image: {\n url: \"\",\n },\n thumbnail: {\n url: \"\",\n },\n },\n },\n uploader: {\n default: {\n id: null,\n status: null,\n progress: null,\n },\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"15px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"fancylink\",\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"fancylink\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const span = document.createElement(\"div\");\n span.style.maxWidth = wideOrNarrow();\n span.classList.add(\"fancylink-node\");\n\n const mainContent = document.createElement(\"div\");\n mainContent.classList.add(\"main-content\");\n\n const imageCont = document.createElement(\"div\");\n const img = document.createElement(\"img\");\n const container = document.createElement(\"div\");\n const title = document.createElement(\"div\");\n title.classList.add(\"fancylink-title\");\n const description = document.createElement(\"div\");\n const attributes = mergeAttributes(HTMLAttributes, {});\n\n span.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n img.onload = function () {\n\n imageCont.style.display = \"inline\";\n };\n\n img.onerror = function () {\n imageCont.style.display = \"none\";\n };\n\n const image_url_ok = (attributes.link.thumbnail && attributes.link.thumbnail.url) || (attributes.link.image && attributes.link.image.url)\n\n img.setAttribute(\"src\", attributes.link.thumbnail && attributes.link.thumbnail.url ? attributes.link.thumbnail.url : attributes.link.image && attributes.link.image.url ? attributes.link.image.url : \"\");\n\n title.innerHTML = attributes.link.title;\n description.innerHTML = attributes.link.description;\n\n imageCont.classList.add(\"imageCont\")\n \n imageCont.append(img);\n\n container.append(title);\n container.append(description);\n\n if (image_url_ok){\n mainContent.append(imageCont);\n }\n mainContent.append(container);\n\n span.append(mainContent);\n\n dom.append(span);\n\n if (!editor.isEditable) {\n span.addEventListener(\"click\", (event) => {\n if (\n node.attrs.link.target == \"_blank\" ||\n event.ctrlKey ||\n event.metaKey\n ) {\n window.open(node.attrs.link.url, \"_blank\");\n } else {\n window.location.href= node.attrs.link.url;\n }\n });\n }\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: span,\n ignoreMutation(mutation) {\n\n return true\n },\n };\n };\n },\n\n addCommands() {\n return {\n setFancyLink:\n (options) =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n attrs: options,\n });\n },\n };\n },\n});\n\nexport default FancyLinkNode;\n","const colorPickerSwatches = (theme, type=\"light\") => {\n if (type == \"light\"){\n return [\n \"#fff\",\n \"#000\",\n theme.colors.dark[2],\n theme.colors.gray[3],\n theme.colors.red[1],\n theme.colors.pink[1],\n theme.colors.grape[1],\n theme.colors.violet[1],\n theme.colors.indigo[1],\n theme.colors.blue[1],\n theme.colors.cyan[1],\n theme.colors.teal[1],\n theme.colors.green[1],\n theme.colors.lime[1],\n theme.colors.yellow[1],\n theme.colors.orange[1],\n ].reverse();\n }\n else{\n return [\n \"#fff\",\n \"#000\",\n theme.colors.dark[2],\n theme.colors.gray[3],\n theme.colors.red[6],\n theme.colors.pink[6],\n theme.colors.grape[6],\n theme.colors.violet[6],\n theme.colors.indigo[6],\n theme.colors.blue[6],\n theme.colors.cyan[6],\n theme.colors.teal[6],\n theme.colors.green[6],\n theme.colors.lime[6],\n theme.colors.yellow[6],\n theme.colors.orange[6],\n ].reverse();\n }\n}\n\nexport default colorPickerSwatches","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\nimport tinycolor from \"tinycolor2\";\n\nimport TextIcon from \"../../../src/images/buttons/text.png\";\nimport Heading1Icon from \"../../../src/images/buttons/heading1.png\";\nimport Heading2Icon from \"../../../src/images/buttons/heading2.png\";\nimport Heading3Icon from \"../../../src/images/buttons/heading2.png\";\nimport SpaceModel from \"../../../models/Space\";\nimport Swal from \"sweetalert2\";\n\nimport colorPickerSwatches from \"../../../utils/ColorSwatches\";\n\nimport {\n Group,\n Button,\n ActionIcon,\n Box,\n createStyles,\n ColorPicker,\n Stack,\n Popover,\n MantineProvider,\n TextInput,\n Menu,\n Tooltip,\n Image,\n Text,\n NativeSelect,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, sutraTheme }) => ({\n colorButton: {\n color: colors.sidebar_text_color,\n padding: \"4px 4px\",\n borderRadius: 5,\n marginRight: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.sidebar_background_color)\n .darken(4)\n .toString(),\n },\n },\n button: {\n borderRadius: 5,\n marginRight: 10,\n color: colors.sidebar_text_color,\n\n \"&:hover\": {\n backgroundColor: tinycolor(colors.sidebar_background_color)\n .darken(4)\n .toString(),\n },\n },\n isActive: {\n color: !isSpaceThemed(colors)\n ? sutraTheme.colors.sutrablue[4]\n : colors.sidebar_text_color,\n backgroundColor: !isSpaceThemed(colors)\n ? \"#fff\"\n : tinycolor(colors.sidebar_background_color).darken(4).toString(),\n },\n toolbarWrap: {\n backgroundColor: colors.sidebar_background_color,\n borderTopLeftRadius: 5,\n borderTopRightRadius: 5,\n padding: 7,\n },\n menuWrap: {\n cursor: \"pointer\",\n borderRight: `1px solid ${theme.colors.gray[2]}`,\n },\n menuButton: {\n backgroundColor: colors.sidebar_background_color,\n color: colors.sidebar_text_color,\n border: \"none\",\n height: 28,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.sidebar_background_color)\n .darken(4)\n .toString(),\n },\n },\n}));\n\nconst FormatMenuSimple = (props) => {\n const { settingsView, registrationView, listView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n let colors2 = useSelector((state) => state.colors2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n colors =\n !settingsView && !registrationView && (!listView || props.useSpace2)\n ? colors\n : defaultSpaceColors;\n colors2 =\n !settingsView && !registrationView && (!listView || props.useSpace2)\n ? colors2\n : defaultSpaceColors;\n\n const { classes, cx, theme } = useStyles({ colors: getColors(), sutraTheme });\n\n const [linkOpened, setLinkOpened] = useState(false);\n const [linkUrl, setLinkUrl] = useState(\"\");\n const [linkTarget, setLinkTarget] = useState(\"_current\");\n const [linkFormat, setLinkFormat] = useState(\"text\");\n const [colorOpened, setColorOpened] = useState(false);\n const [colorHOpened, setColorHOpened] = useState(false);\n const [textColor, onTextColorChange] = useState(\"#000\");\n const [auxTextColor, setAuxTextColor] = useState(\"#000\");\n const [highlightColor, onHighlightColorChange] = useState(\"#FFF\");\n const [auxHighlightColor, setAuxHighlightColor] = useState(\"#FFF\");\n\n const intervalId = useRef();\n const linkOpenedAux = useRef();\n const timeoutId = useRef();\n\n useEffect(() => {\n return () => {\n clearInterval(intervalId.current);\n };\n }, []);\n\n useEffect(() => {\n if (intervalId.current) {\n clearInterval(intervalId.current);\n }\n intervalId.current = setInterval(function () {\n if (props.editor && !timeoutId.current) {\n const actualColor = props.editor.getAttributes(\"textStyle\").color;\n const actualHighlightColor =\n props.editor.getAttributes(\"highlight\").color;\n setAuxTextColor(actualColor);\n\n setAuxHighlightColor(actualHighlightColor);\n onHighlightColorChange(actualHighlightColor);\n\n const link = props.editor.getAttributes(\"link\");\n if (link?.href && !linkOpenedAux.current) {\n setLinkUrl(link.href);\n setLinkTarget(link.target == \"_blank\" ? \"_blank\" : \"_current\");\n // onTextColorChange(\"#ff69b4\");\n } else {\n onTextColorChange(actualColor);\n }\n }\n }, 500);\n }, [props]);\n\n useEffect(() => {\n linkOpenedAux.current = linkOpened;\n }, [linkOpened]);\n\n useEffect(() => {\n if (props.editor && !props.minimal) {\n const actualColor = props.editor.getAttributes(\"textStyle\").color || \"#000\";\n if (actualColor != textColor && actualColor) {\n props.editor.chain().focus().setColor(textColor).run();\n }\n }\n }, [textColor]);\n\n useEffect(() => {\n if (props.editor && !props.minimal) {\n const actualColor = props.editor.getAttributes(\"highlight\").color || \"#FFF\";\n if (actualColor != highlightColor && actualColor && highlightColor) {\n props.editor.commands.setHighlight({ color: highlightColor });\n }\n }\n }, [highlightColor]);\n\n const onChangeColor = (value, callback, callback2, time) => {\n callback2(value);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n callback(value);\n timeoutId.current = null;\n }, time);\n };\n const { t, i18n } = useTranslation();\n const getFormat = () => {\n if (props.editor.isActive(\"paragraph\")) {\n return t(\"tiptap.components.formatMenuSimple.t\");\n } else if (props.editor.isActive(\"heading\", { level: 1 })) {\n return t(\"tiptap.components.formatMenuSimple.h1\");\n } else if (props.editor.isActive(\"heading\", { level: 2 })) {\n return t(\"tiptap.components.formatMenuSimple.h2\");\n } else if (props.editor.isActive(\"heading\", { level: 3 })) {\n return t(\"tiptap.components.formatMenuSimple.h3\");\n }\n // else if (props.editor.isActive('bulletList')) {\n // return \"Bulleted list\"\n // } else if (props.editor.isActive('orderedList')) {\n // return \"Ordered list\"\n // }\n else {\n return \"Text\";\n }\n };\n const getAlignment = () => {\n if (props.editor.isActive({ textAlign: \"left\" })) {\n return ;\n } else if (props.editor.isActive({ textAlign: \"center\" })) {\n return ;\n } else if (props.editor.isActive({ textAlign: \"right\" })) {\n return ;\n } else {\n return ;\n }\n };\n\n const onUnsetLink = () => {\n props.editor.commands.unsetLink();\n onTextColorChange(\"#000\");\n setLinkOpened(false);\n };\n\n const onSetLink = () => {\n if (linkFormat == \"text\") {\n if (\n linkUrl.indexOf(\"http://\") < 0 &&\n linkUrl.indexOf(\"https://\") < 0 &&\n linkUrl.indexOf(\"mailto://\") < 0 &&\n linkUrl.indexOf(\"tel://\") < 0\n ) {\n props.editor.commands.setLink({\n href: `https://${linkUrl}`,\n target: linkTarget == \"_blank\" || props.isFlexibleOptions ? \"_blank\" : null,\n });\n } else {\n props.editor.commands.setLink({\n href: linkUrl,\n target: linkTarget == \"_blank\" || props.isFlexibleOptions ? \"_blank\" : null,\n });\n }\n } else {\n SpaceModel.onFetchLink(\n linkUrl,\n (data) => {\n props.editor\n .chain()\n .enter()\n .insertContent({\n type: \"fancyLink\",\n attrs: {\n link: {\n url: linkUrl,\n target: linkTarget == \"_blank\" ? \"_blank\" : null,\n title: data.data.title,\n description: data.data.description,\n image: {\n url: data.data.image.url,\n },\n },\n },\n })\n .run();\n },\n (data) => {\n Swal.fire(\"Opps, something went wrong!\", data.message, \"error\");\n }\n );\n }\n setLinkOpened(false);\n };\n\n if (!props.editor) {\n return null;\n }\n\n return (\n \n \n props.editor.chain().focus().toggleBold().run()}\n // className={props.editor.isActive('bold') ? `is-active ${classes.button}` : `${classes.button}`}\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"bold\"),\n })}\n >\n \n \n props.editor.chain().focus().toggleItalic().run()}\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"italic\"),\n })}\n >\n \n \n props.editor.chain().focus().toggleStrike().run()}\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"strike\"),\n })}\n >\n \n \n props.editor.chain().focus().toggleUnderline().run()}\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"underline\"),\n })}\n >\n \n \n\n setLinkOpened(false)}\n target={\n setLinkOpened(true)}\n spacing={1}\n align=\"center\"\n className={cx(classes.colorButton)}\n sx={(theme) => ({\n cursor: \"pointer\",\n })}\n >\n {props.editor.isActive(\"link\") ? (\n \n ) : (\n \n )}\n \n }\n position=\"bottom\"\n gutter={15}\n >\n \n {props.exclude.indexOf(\"link-action\") < 0 && (\n setLinkTarget(event.target.value)}\n label={t(\"tiptap.components.formatMenuSimple.label1\")}\n description={t(\n \"tiptap.components.formatMenuSimple.description1\"\n )}\n placeholder={t(\n \"tiptap.components.formatMenuSimple.placeholder1\"\n )}\n data={[\n {\n value: \"_current\",\n label: t(\"tiptap.components.formatMenuSimple.label2\"),\n },\n {\n value: \"_blank\",\n label: t(\"tiptap.components.formatMenuSimple.label3\"),\n },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n {/*

{`HELLO - ${linkUrl}`}

*/}\n setLinkUrl(event.currentTarget.value)}\n placeholder={`Link url`}\n label={`Link url`}\n description={`Specify the URL link the user will be taken to`}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n {props.exclude.indexOf(\"link-format\") < 0 && !props.isFlexibleOptions && (\n setLinkFormat(event.target.value)}\n label={t(\"tiptap.components.formatMenu.label4\")}\n description={t(\n \"tiptap.components.formatMenuSimple.description2\"\n )}\n placeholder={t(\n \"tiptap.components.formatMenuSimple.placeholder2\"\n )}\n data={[\n {\n value: \"text\",\n label: t(\"tiptap.components.formatMenuSimple.label5\"),\n },\n {\n value: \"fancy\",\n label: t(\"tiptap.components.formatMenuSimple.label6\"),\n },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n \n \n {linkUrl && (\n \n )}\n \n
\n \n\n \n \n }\n compact\n >\n {getFormat()}\n \n \n }\n >\n props.editor.chain().setParagraph().run()}\n // className={props.editor.isActive('paragraph') ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n T\n \n \n props.editor.commands.toggleHeading({ level: 1 })}\n // className={props.editor.isActive('heading', { level: 1 }) ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenuSimple.h1\")}\n \n \n props.editor.commands.toggleHeading({ level: 2 })}\n // className={props.editor.isActive('heading', { level: 2 }) ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenuSimple.h2\")}\n \n \n props.editor.commands.toggleHeading({ level: 3 })}\n // className={props.editor.isActive('heading', { level: 3 }) ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenuSimple.h3\")}\n \n \n \n \n \n }\n compact\n >\n {getAlignment()}\n \n \n }\n >\n \n props.editor.chain().focus().setTextAlign(\"left\").run()\n }\n >\n \n \n {t(\"tiptap.components.formatMenuSimple.left\")}\n \n \n \n props.editor.chain().focus().setTextAlign(\"center\").run()\n }\n >\n \n \n {t(\"tiptap.components.formatMenuSimple.center\")}\n \n \n \n props.editor.chain().focus().setTextAlign(\"right\").run()\n }\n >\n \n \n {t(\"tiptap.components.formatMenuSimple.right\")}\n \n \n \n props.editor.chain().focus().toggleBulletList().run()}\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"bulletList\"),\n })}\n >\n \n \n props.editor.chain().focus().toggleOrderedList().run()}\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"orderedList\", {\n level: 1,\n }),\n })}\n >\n \n \n\n props.editor.chain().focus().toggleCode().run()}\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"code\"),\n })}\n >\n \n \n {!props.minimal && (\n <>\n setColorOpened(false)}\n target={\n /*\n setColorOpened((o) => !o)}\n size={20} />\n */\n\n setColorOpened((o) => !o)}\n spacing={1}\n align=\"center\"\n className={cx(classes.colorButton)}\n sx={(theme) => ({\n cursor: \"pointer\",\n })}\n >\n \n ({\n backgroundColor: textColor,\n height: 5,\n width: 20,\n borderRadius: 3,\n })}\n >
\n \n }\n position=\"bottom\"\n gutter={15}\n >\n \n \n \n onChangeColor(\n event.target.value,\n onTextColorChange,\n setAuxTextColor,\n 2000\n )\n }\n />\n {auxTextColor && (\n \n onChangeColor(\n auxTextColor,\n onTextColorChange,\n setAuxTextColor,\n 0\n )\n }\n >\n {\"Apply color\"}\n \n )}\n props.editor.commands.unsetColor()}\n >\n {t(\"tiptap.components.formatMenuSimple.unsetColor\")}\n \n \n \n setColorHOpened(false)}\n target={\n /* setColorHOpened((o) => !o)}\n size={20} />\n */\n\n setColorHOpened((o) => !o)}\n spacing={1}\n align=\"center\"\n className={cx(classes.colorButton)}\n sx={(theme) => ({\n cursor: \"pointer\",\n })}\n >\n \n ({\n backgroundColor: highlightColor,\n height: 5,\n width: 20,\n borderRadius: 3,\n })}\n >\n \n }\n position=\"bottom\"\n gutter={15}\n >\n \n \n \n onChangeColor(\n event.target.value,\n onHighlightColorChange,\n setAuxHighlightColor,\n 2000\n )\n }\n />\n {auxHighlightColor && (\n \n onChangeColor(\n auxHighlightColor,\n onHighlightColorChange,\n setAuxHighlightColor,\n 0\n )\n }\n >\n {\"Apply color\"}\n \n )}\n props.editor.commands.unsetHighlight()}\n >\n {t(\"tiptap.components.formatMenuSimple.unsetColor\")}\n \n \n \n \n )}\n \n \n );\n};\n\nexport default FormatMenuSimple;\n","/* eslint-disable no-useless-escape */\nexport default {\n inline_embed: {\n regex: /((.)+)?((?:..)+)?<\\/iframe>([\\s\\S]*$)?/,\n // regex: /((?:..)+)?<\\/iframe>((?:..)+)?/,\n embedUrl: '',\n html: '',\n height: 320,\n width: 580,\n splice: \"iframe\"\n },\n vimeo: {\n regex: /(?:https?:\\/\\/)?(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^\\/]*)\\/videos\\/|album\\/(?:\\d+)\\/video\\/|video\\/|)(\\d+)(?:[a-zA-Z0-9_\\-]+)?(\\/)?([a-zA-Z0-9_\\-]+)?/i,\n embedUrl: 'https://player.vimeo.com/video/<%= remote_id %>?h=<%= remote_id2 %>',\n html: '',\n height: 320,\n width: 580,\n splice: 2\n },\n vimeo_manager: {\n regex: /(?:http[s]?:\\/\\/)?(?:www.)?vimeo\\.com\\/manage\\/videos\\/(\\d+)(?:[a-zA-Z0-9_\\-]+)?(\\/)?([a-zA-Z0-9_\\-]+)?/i,\n embedUrl: 'https://player.vimeo.com/video/<%= remote_id %>?h=<%= remote_id2 %>',\n html: '',\n height: 320,\n width: 580,\n splice: 2\n },\n loom: {\n regex: /(?:http[s]?:\\/\\/)?(?:www.)?loom\\.com\\/share\\/([^\\/\\?\\&]+)(?:\\?t=1)?/,\n embedUrl: 'https://www.loom.com/embed/<%= remote_id %>',\n html: '',\n height: 320,\n width: 580,\n },\n youtube: {\n regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:(?:youtu\\.be\\/)|(?:youtube\\.com)\\/(?:v\\/|u\\/\\w\\/|embed\\/|watch|live\\/))(?:(?:\\?v=)?([^#&?=]*))?((?:[?&]\\w*=\\w*)*)/,\n embedUrl: 'https://www.youtube.com/embed/<%= remote_id %>',\n html: '',\n height: 320,\n width: 580,\n id: ([id, params]) => {\n if (!params && id) {\n return id;\n }\n\n const paramsMap = {\n start: 'start',\n end: 'end',\n t: 'start',\n // eslint-disable-next-line camelcase\n time_continue: 'start',\n list: 'list',\n };\n\n params = params.slice(1)\n .split('&')\n .map(param => {\n const [name, value] = param.split('=');\n\n if (!id && name === 'v') {\n id = value;
\n\n return null;\n }\n\n if (!paramsMap[name]) {\n return null;\n }\n\n return `${paramsMap[name]}=${value}`;\n })\n .filter(param => !!param);\n\n return id + '?' + params.join('&');\n },\n },\n coub: {\n regex: /https?:\\/\\/coub\\.com\\/view\\/([^\\/\\?\\&]+)/,\n embedUrl: 'https://coub.com/embed/<%= remote_id %>',\n html: '',\n height: 320,\n width: 580,\n },\n vine: {\n regex: /https?:\\/\\/vine\\.co\\/v\\/([^\\/\\?\\&]+)/,\n embedUrl: 'https://vine.co/v/<%= remote_id %>/embed/simple/',\n html: '',\n height: 320,\n width: 580,\n },\n imgur: {\n regex: /https?:\\/\\/(?:i\\.)?imgur\\.com.*\\/([a-zA-Z0-9]+)(?:\\.gifv)?/,\n embedUrl: 'http://imgur.com/<%= remote_id %>/embed',\n html: '',\n height: 500,\n width: 540,\n },\n gfycat: {\n regex: /https?:\\/\\/gfycat\\.com(?:\\/detail)?\\/([a-zA-Z]+)/,\n embedUrl: 'https://gfycat.com/ifr/<%= remote_id %>',\n html: \"\",\n height: 436,\n width: 580,\n },\n 'twitch-channel': {\n regex: /https?:\\/\\/www\\.twitch\\.tv\\/([^\\/\\?\\&]*)\\/?$/,\n embedUrl: 'https://player.twitch.tv/?channel=<%= remote_id %>',\n html: '',\n height: 366,\n width: 600,\n },\n 'twitch-video': {\n regex: /https?:\\/\\/www\\.twitch\\.tv\\/(?:[^\\/\\?\\&]*\\/v|videos)\\/([0-9]*)/,\n embedUrl: 'https://player.twitch.tv/?video=v<%= remote_id %>',\n html: '',\n height: 366,\n width: 600,\n },\n 'yandex-music-album': {\n regex: /https?:\\/\\/music\\.yandex\\.ru\\/album\\/([0-9]*)\\/?$/,\n embedUrl: 'https://music\\.yandex\\.ru/iframe/#album/<%= remote_id %>/',\n html: '',\n height: 400,\n width: 540,\n },\n 'yandex-music-track': {\n regex: /https?:\\/\\/music\\.yandex\\.ru\\/album\\/([0-9]*)\\/track\\/([0-9]*)/,\n embedUrl: 'https://music\\.yandex\\.ru/iframe/#track/<%= remote_id %>/',\n html: '',\n height: 100,\n width: 540,\n id: (ids) => ids.join('/'),\n },\n 'yandex-music-playlist': {\n regex: /https?:\\/\\/music\\.yandex\\.ru\\/users\\/([^\\/\\?\\&]*)\\/playlists\\/([0-9]*)/,\n embedUrl: 'https://music\\.yandex\\.ru/iframe/#playlist/<%= remote_id %>/show/cover/description/',\n html: '',\n height: 400,\n width: 540,\n id: (ids) => ids.join('/'),\n },\n codepen: {\n regex: /https?:\\/\\/codepen\\.io\\/([^\\/\\?\\&]*)\\/pen\\/([^\\/\\?\\&]*)/,\n embedUrl: 'https://codepen.io/<%= remote_id %>?height=300&theme-id=0&default-tab=css,result&embed-version=2',\n html: \"\",\n height: 300,\n width: 600,\n id: (ids) => ids.join('/embed/'),\n },\n instagram: {\n regex: /https?:\\/\\/www\\.instagram\\.com\\/p\\/([^\\/\\?\\&]+)\\/?/,\n embedUrl: 'https://www.instagram.com/p/<%= remote_id %>/embed',\n html: '',\n height: 505,\n width: 400,\n },\n twitter: {\n regex: /^https?:\\/\\/twitter\\.com\\/(?:#!\\/)?(\\w+)\\/status(?:es)?\\/(\\d+)(?:\\/.*)?$/,\n embedUrl: 'https://twitframe.com/show?url=https://twitter.com/<%= remote_id %>',\n html: '',\n height: 300,\n width: 600,\n id: ids => ids.join('/status/'),\n },\n pinterest: {\n regex: /https?:\\/\\/([^\\/\\?\\&]*).pinterest.com\\/pin\\/([^\\/\\?\\&]*)\\/?$/,\n embedUrl: 'https://assets.pinterest.com/ext/embed.html?id=<%= remote_id %>',\n html: \"\",\n id: (ids) => {\n return ids[1];\n },\n },\n facebook: {\n regex: /https?:\\/\\/www.facebook.com\\/([^\\/\\?\\&]*)\\/(.*)/,\n embedUrl: 'https://www.facebook.com/plugins/post.php?href=https://www.facebook.com/<%= remote_id %>&width=500',\n html: \"\",\n id: (ids) => {\n return ids.join('/');\n },\n },\n aparat: {\n regex: /(?:http[s]?:\\/\\/)?(?:www.)?aparat\\.com\\/v\\/([^\\/\\?\\&]+)\\/?/,\n embedUrl: 'https://www.aparat.com/video/video/embed/videohash/<%= remote_id %>/vt/frame',\n html: '',\n height: 300,\n width: 600,\n },\n sensemaker: {\n regex: /https?:\\/\\/platform\\.sensemaker-suite\\.com\\/r\\/e\\/([^\\/\\?\\&]+)\\/?/,\n embedUrl: 'https://platform.sensemaker-suite.com/r/e/<%= remote_id %>',\n html: '',\n height: 500,\n width: 800,\n },\n};\n","// import axios from 'axios';\n\nclass MediaFile {\n constructor() {\n if (this instanceof MediaFile) {\n throw Error('MediaFile class cannot be instantiated.');\n }\n }\n\n static onFetch = async (url, space_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id,\n url\n }\n\n await window.$api.get(`/api/v4/media_files/0.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onTranscribe = async (url, space_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id,\n url\n }\n\n await window.$api.post(`/api/v4/media_files/0/transcribe.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (media_file, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n media_file\n }\n\n await window.$api.post(`/api/v4/media_files.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/media_files/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdateVideoNode = async ({ space_slug, video_id, new_src, new_status }, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_slug,\n video_id,\n new_src,\n new_status\n }\n\n await window.$api.post(`/api/v4/media_files/0/update_media_node.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n\n}\n\nexport default MediaFile;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport axios from \"axios\";\nimport * as FilePond from \"filepond\";\nimport FilePondPluginImageResize from \"filepond-plugin-image-resize\";\nimport FilePondPluginImageTransform from \"filepond-plugin-image-transform\";\n\nimport { getEnv } from \"../../../utils/Host\";\nimport { setTiptapSidemenu } from \"../../../store/app\";\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\nimport SERVICES from \"../collections/embedRegex\";\nimport Broadcaster from \"../../../helpers/Broadcaster\";\nimport MediaFileModel from \"../../../models/MediaFile\";\nimport SpaceModel from \"../../../models/Space\";\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport {\n Tabs,\n SegmentedControl,\n TextInput,\n Textarea,\n Button,\n Stack,\n Box,\n SimpleGrid,\n ScrollArea,\n Input,\n Image,\n MantineProvider,\n useMantineTheme,\n Select,\n Center,\n Loader,\n} from \"@mantine/core\";\n\nFilePond.registerPlugin(FilePondPluginImageResize, FilePondPluginImageTransform);\n\nconst UNSPLASH_ACCESS_KEY = \"4BHv6-IGLP-oa0rhTeyUnT40xuClCYynK9e0ZwWjpbA\";\nlet unsplashSearchTimeout = null;\n\nexport default function Uploader(props) {\n const space = useSelector((state) => state.space);\n const dispatch = useDispatch();\n const theme = useMantineTheme();\n const { t } = useTranslation();\n \n const [activeTab, setActiveTab] = useState(0);\n const [uploadType, setUploadType] = useState(props.uploadType || \"image\");\n const [embedType, setEmbedType] = useState(\"link\");\n const [embedLink, setEmbedLink] = useState(\"\");\n const [embedCode, setEmbedCode] = useState(\"\");\n const [zoomData, setZoomData] = useState({ loading: true });\n const [zoomUserId, setZoomUserId] = useState(\"\");\n const [zoomMeetingId, setZoomMeetingId] = useState(\"\");\n const [unsplashImages, setUnsplashImages] = useState([]);\n const [canUseZoom, setCanUseZoom] = useState(false);\n const [opened, setOpened] = useState([]);\n const [selectedUnsplashImage, setSelectedUnsplashImage] = useState(null);\n\n const filePond = useRef();\n const imageInput = useRef();\n const lastZoomUser = useRef();\n\n useEffect(() => {\n return () => {\n filePond.current = null;\n };\n }, []);\n\n useEffect(() => {\n setCanUseZoom(space?.permissions?.can_use_zoom_recordings);\n }, [space]);\n\n useEffect(() => {\n if (props.uploadType) {\n setUploadType(props.uploadType);\n \n if (props.uploadType === \"video\") {\n setActiveTab(1);\n } else if (props.uploadType === \"embed\") {\n setActiveTab(0);\n } else if (props.uploadType !== \"image\") {\n setActiveTab(1);\n setTimeout(() => setActiveTab(0), 100);\n }\n }\n\n if (unsplashImages.length === 0) {\n fetchUnsplashPhotos();\n }\n }, [props]);\n\n useEffect(() => {\n if (uploadType === \"image\" && !filePond.current) {\n initFilePond();\n }\n \n if (uploadType === \"zoom\" && !zoomData.connected) {\n fetchZoomData();\n }\n }, [uploadType]);\n\n useEffect(() => {\n if (uploadType === \"zoom\" && lastZoomUser.current !== zoomUserId) {\n fetchZoomData();\n }\n }, [zoomUserId]);\n\n const getAcceptedTypes = () => {\n const typeMap = {\n \"image\": \"image/*\",\n \"video\": \".mp4,.avi,.mkv,.webm,.mov,.yuv\",\n \"audio\": \"audio/*\",\n \"file\": \"pdf,doc,docx,xls,xlsx,ppt,pptx\"\n };\n \n return typeMap[uploadType] || null;\n };\n\n const escapeFilename = (filename) => {\n return filename\n .trim()\n .replace(/\\s+/g, \" \")\n .replace(/[^0-9A-Za-z.\\-]/g, \"_\")\n .slice(0, 255);\n };\n\n const getExtension = (path) => {\n const baseName = path.split(/[\\\\/]/).pop();\n const pos = baseName.lastIndexOf(\".\");\n return (baseName === \"\" || pos < 1) ? \"\" : baseName.slice(pos + 1).toLowerCase();\n };\n\n const getEmbedLinkType = (link) => {\n const ext = getExtension(link);\n const typeMap = {\n \"pdf,doc,docx,xls,xlsx,ppt,pptx\": \"file\",\n \"png,jpg,jpeg,gif\": \"image\",\n \"mp3,ogg,mpeg\": \"audio\",\n \"video\": \"mp4,mov,mkv,yuv\"\n };\n \n for (const [type, extensions] of Object.entries(typeMap)) {\n if (extensions.includes(ext)) {\n return type;\n }\n }\n \n return \"image\";\n };\n\n const createNode = (type, url, extras = {}) => {\n if (props.action === \"update\") {\n props.editor.commands.updateAttributes(type, { src: url, ...extras });\n } else {\n const commonAttributes = {\n ...extras,\n textAlign: !props.notMain ? \"center\" : \"left\",\n radius: \"with-radius\",\n resizeableWidth: props.context === \"inline\" ? \"100%\" : \"100%\",\n space_id: window.$currentSlug\n };\n\n switch (type) {\n case \"image\":\n props.editor.chain().addNewEmptyLine().setImage({ src: url, ...commonAttributes }).run();\n break;\n case \"unsplash\":\n const unsplashUrl = url?.urls?.regular;\n props.editor.chain().addNewEmptyLine().setImage({\n src: unsplashUrl,\n ...commonAttributes,\n link: { url: unsplashUrl, target: \"_blank\" }\n }).run();\n \n addUnsplashAttribution(url);\n triggerUnsplashDownload(url?.id);\n break;\n case \"video\":\n props.editor.chain().addNewEmptyLine().setVideo({ src: url, ...commonAttributes }).run();\n break;\n case \"audio\":\n props.editor.chain().addNewEmptyLine().setAudio({ src: url, ...commonAttributes }).run();\n break;\n case \"file\":\n props.editor.chain().addNewEmptyLine().setFile({\n src: url,\n ...extras,\n textAlign: \"left\",\n displayAs: \"link\"\n }).run();\n break;\n default:\n props.editor.chain().addNewEmptyLine().setFile({\n src: url,\n ...commonAttributes,\n displayAs: \"link\"\n }).run();\n }\n }\n\n if (!props.notMain) {\n window.$tiptapLastSelectionRange = {\n from: props.editor.view.state.selection.from,\n to: props.editor.view.state.selection.to\n };\n dispatch(setTiptapSidemenu({ opened: \"configuration\" }));\n }\n\n props.onSave();\n };\n\n const addUnsplashAttribution = (imageData) => {\n const unsplashBaseUrl = \"https://unsplash.com/\";\n const userLink = imageData?.user?.links?.html || unsplashBaseUrl;\n \n props.editor.chain().addNewEmptyLine().insertContent({\n type: 'paragraph',\n content: [\n { type: 'text', text: \"Photo by \" },\n {\n type: 'text',\n text: `${imageData?.user?.first_name} ${imageData?.user?.last_name}`,\n marks: [{ \n type: \"link\", \n attrs: { \n target: \"_blank\", \n href: `${userLink}?utm_source=Sutra&utm_medium=referral`, \n rel: \"noopener noreferrer nofollow\" \n } \n }]\n },\n { type: 'text', text: ` on ` },\n {\n type: 'text',\n text: 'Unsplash',\n marks: [{ \n type: \"link\", \n attrs: { \n target: \"_blank\", \n href: `${unsplashBaseUrl}?utm_source=Sutra&utm_medium=referral`, \n rel: \"noopener noreferrer nofollow\" \n } \n }]\n }\n ]\n }).run();\n };\n\n const fetchUnsplashPhotos = (searchTerm) => {\n const url = searchTerm ? \"/search/photos\" : \"/photos\";\n const params = {\n client_id: UNSPLASH_ACCESS_KEY,\n query: searchTerm,\n page: 1,\n per_page: 30\n };\n\n axios.get(`https://api.unsplash.com/${url}`, { params })\n .then((res) => setUnsplashImages(searchTerm ? res.data.results : res.data))\n .catch((error) => console.error(\"Unsplash fetch error:\", error));\n };\n\n const handleUnsplashSearch = (event) => {\n if (unsplashSearchTimeout) {\n clearTimeout(unsplashSearchTimeout);\n }\n \n unsplashSearchTimeout = setTimeout(() => {\n unsplashSearchTimeout = null;\n fetchUnsplashPhotos(event.target.value);\n }, 2000);\n };\n\n const triggerUnsplashDownload = (photoId) => {\n if (!photoId) return;\n \n axios.get(`https://api.unsplash.com/photos/${photoId}/download`, { \n params: { client_id: UNSPLASH_ACCESS_KEY }\n })\n .catch((error) => console.error(\"Unsplash download error:\", error));\n };\n\n const saveUnsplashImage = () => {\n if (props.uploadToEndpoint) {\n props.uploadToEndpoint(selectedUnsplashImage?.urls?.regular);\n return;\n }\n createNode(\"unsplash\", selectedUnsplashImage);\n };\n\n const getEmbedUrl = (code) => {\n for (const [serviceName, serviceConfig] of Object.entries(SERVICES)) {\n if (serviceConfig.regex.test(code)) {\n const { regex, embedUrl, splice, id = (ids) => ids.shift() } = serviceConfig;\n \n if (splice === \"iframe\") {\n const result = regex.exec(code);\n return [result[3], result[3]];\n } else {\n const result = regex.exec(code).slice(1);\n let embed = embedUrl.replace(/<%= remote_id %>/g, id(result));\n \n if (splice === 2) {\n const result2 = regex.exec(code).slice(3);\n embed = embed.replace(/<%= remote_id2 %>/g, id(result2));\n }\n \n return [embed, id(result)];\n }\n }\n }\n \n return null;\n };\n\n const saveEmbed = () => {\n if (embedType === \"link\") {\n const url = getEmbedUrl(embedLink);\n \n if (url && url.length > 0) {\n if (props.action === \"update\") {\n props.editor.commands.updateAttributes(\"embed\", {\n src: url[0],\n videoId: url[1]\n });\n } else {\n props.editor.chain().setEmbed({\n videoId: url[1],\n src: url[0],\n textAlign: !props.notMain ? \"center\" : \"left\",\n resizeableWidth: props.context === \"inline\" ? \"100%\" : \"100%\",\n radius: \"with-radius\"\n }).run();\n }\n \n props.onSave();\n createEmbedMediaFile(url[0], url[1]);\n } else {\n createNode(getEmbedLinkType(embedLink), embedLink);\n }\n } else {\n const url = getEmbedUrl(embedCode);\n \n if (url && url.length > 0) {\n if (props.action === \"update\") {\n props.editor.commands.updateAttributes(\"embed\", { src: url[0] });\n } else {\n props.editor.chain().setEmbed({\n src: url[0],\n videoId: url[1],\n radius: \"with-radius\",\n resizeableWidth: \"100%\"\n }).run();\n }\n \n props.onSave();\n createEmbedMediaFile(url[0], url[1]);\n }\n }\n };\n\n const createEmbedMediaFile = (originalUrl, embedId) => {\n const mediaFile = {\n original_url: originalUrl,\n url: originalUrl,\n upload_type: \"embed\",\n slug: window.$currentSlug,\n embed_id: embedId\n };\n\n MediaFileModel.onCreate(\n mediaFile,\n () => console.log(\"Embed media file stored\"),\n () => {}\n );\n };\n\n const handleFileSelect = (event) => {\n event.target.children[0]?.click();\n };\n\n const handleVideoFileInput = (e) => {\n const file = e.target.files[0];\n if (!file) return;\n \n if (props.uploadToEndpoint) {\n props.uploadToEndpoint(file);\n return;\n }\n \n let extension = file.name.split(\".\").pop()?.toLowerCase() || \"\";\n const fileName = escapeFilename(file.name).replace(`.${extension}`, \"\");\n let videoId, blockUrl;\n\n if (uploadType === \"video\") {\n const baseName = `${encodeURIComponent(\n uuidv4().replace(/-/g, \"\").replace(/_/g, \"\")\n )}_${window.$videoUploadKey}`;\n videoId = `${uuidv4().replace(/-/g, \"\")}/${baseName}.${extension}`;\n blockUrl = `https://sutra-video-output.s3.us-west-1.amazonaws.com/${baseName}.m3u8`;\n } else {\n videoId = `${uuidv4().replace(/-/g, \"\")}/${encodeURIComponent(fileName)}.${extension}`;\n blockUrl = null;\n }\n\n const extras = {};\n if (uploadType === \"file\") {\n extras.name = file.name;\n extras.size = file.size;\n extras.extension = extension;\n }\n\n createNode(uploadType, blockUrl, {\n ...extras,\n uploader: {\n id: videoId,\n status: \"pending\",\n progress: 0,\n url: blockUrl,\n urlOutput: blockUrl,\n space_slug: window.$currentSlug\n },\n });\n\n createMediaFile(videoId, blockUrl || `https://sutra-froala.s3.us-west-1.amazonaws.com/uploads/${videoId}`);\n\n Broadcaster.send(\"new_uploadFile\", document.body, {\n id: videoId,\n file: file,\n editor: props.editor,\n type: uploadType,\n status: \"pending\",\n space: {\n name: space.name,\n version: space.version,\n slug: space.slug,\n },\n trigger: \"videoHandler\",\n url: blockUrl,\n extension: extension,\n space_slug: window.$currentSlug\n });\n };\n\n const createMediaFile = (id, url, type = uploadType) => {\n const mediaFile = {\n original_url: `https://sutra-froala.s3.us-west-1.amazonaws.com/uploads/${id}`,\n url: url,\n upload_type: type,\n slug: window.$currentSlug,\n };\n\n MediaFileModel.onCreate(\n mediaFile,\n () => console.log(\"Media file stored\"),\n () => {}\n );\n };\n\n const initFilePond = () => {\n const inputElement = imageInput.current;\n if (filePond.current || !inputElement) return;\n \n filePond.current = FilePond.create(inputElement, {\n imageResizeTargetWidth: 1080,\n imageResizeUpscale: false,\n imageTransformOutputQuality: 70,\n server: {\n process: (fieldName, file, metadata, load, error, progress, abort) => {\n if (file.type.indexOf(\"image\") < 0) return;\n \n if (props.uploadToEndpoint) {\n props.uploadToEndpoint(file);\n return;\n }\n\n const extension = file.name.split(\".\").pop();\n const fileName = escapeFilename(file.name).replace(`.${extension}`, \"\");\n const imageId = `${uuidv4().replace(/-/g, \"\")}/${encodeURIComponent(fileName)}.${extension}`;\n\n Broadcaster.send(\"new_uploadFile\", document.body, {\n id: imageId,\n file: file,\n editor: props.editor,\n type: uploadType,\n status: \"pending\",\n space: {\n name: space.name,\n version: space.version,\n slug: space.slug,\n },\n trigger: \"filepond\",\n space_slug: window.$currentSlug\n });\n\n createNode(uploadType, null, {\n uploader: {\n id: imageId,\n status: \"pending\",\n progress: 0,\n },\n });\n\n createMediaFile(imageId, `https://sutra-froala.s3.us-west-1.amazonaws.com/uploads/${imageId}`);\n },\n },\n });\n };\n\n const fetchZoomData = () => {\n SpaceModel.onZoomData(\n space.slug,\n zoomUserId,\n (data) => {\n setZoomData({ ...data.zoom_data });\n if (data.zoom_data.users?.length === 1) {\n lastZoomUser.current = data.zoom_data.users[0].value;\n setZoomUserId(data.zoom_data.users[0].value);\n }\n },\n () => {}\n );\n };\n\n const handleConnectZoom = () => {\n if (!canUseZoom) {\n setOpened([true, canUseZoom?.[1], canUseZoom?.[2]]);\n return;\n }\n\n const baseUrl = \"https://zoom.us/oauth/authorize\";\n const clientId = getEnv() === \"production\" \n ? \"Iq_GKcCRhWRVRdVaE3W5Q\" \n : \"YK0Cx_LQ16AVBy0FFvaxQ\";\n const redirectUri = getEnv() === \"production\"\n ? \"https://sutra.co/api/v4/hooks/zoom/redirect\"\n : \"https://sutra.ngrok.dev/api/v4/hooks/zoom/redirect\";\n \n window.location.href = `${baseUrl}?client_id=${clientId}&response_type=code&redirect_uri=${redirectUri}?state=${space.slug}_usr_${window.$currentUserAuthToken}`;\n };\n\n const createZoomRecording = () => {\n if (!canUseZoom) {\n setOpened([true, canUseZoom?.[1], canUseZoom?.[2]]);\n return;\n }\n\n const uid = uuidv4().replace(/-/g, \"\");\n const videoId = `zoom_recording_${zoomMeetingId}_${uid}`;\n const url = `https://sutra-video-output.s3.us-west-1.amazonaws.com/${videoId}.m3u8`;\n\n props.editor.chain().addNewEmptyLine().setVideo({\n id: uid,\n src: url,\n uploader: {\n id: `zoom/${videoId}.mp4`,\n status: \"zoom-pending\",\n progress: 0,\n url: url,\n },\n textAlign: !props.notMain ? \"center\" : \"left\",\n resizeableWidth: props.context === \"inline\" ? \"100%\" : \"100%\",\n radius: \"with-radius\",\n }).run();\n\n createMediaFile(`zoom/${videoId}.mp4`, url, \"zoom-recording\");\n props.onSave();\n };\n\n return (\n \n \n \n {uploadType !== \"embed\" && (\n \n \n {uploadType === \"image\" ? (\n \n ) : uploadType === \"zoom\" ? (\n <>\n {zoomData.connected ? (\n <>\n {zoomData.users && zoomData.users.length > 1 && (\n \n )}\n \n \n Create recording placeholder\n \n \n ) : zoomData.loading ? (\n
\n \n
\n ) : (\n \n )}\n \n ) : (\n \n )}\n
\n
\n )}\n \n {(!props.exclude || \n (props.exclude && props.exclude.indexOf(\"embed\") < 0 && uploadType !== \"zoom\")) && (\n \n \n \n \n \n {embedType === \"link\" ? (\n setEmbedLink(event.target.value)}\n placeholder={t(\"tiptap.components.uploader.placeholder\")}\n label={t(\"tiptap.components.uploader.label3\")}\n />\n ) : (\n setEmbedCode(event.target.value)}\n placeholder={t(\"tiptap.components.uploader.placeholder2\")}\n label={t(\"tiptap.components.uploader.label4\")}\n />\n )}\n \n \n \n \n \n )}\n \n {uploadType === \"image\" && (\n \n \n \n }\n placeholder={t(\"tiptap.components.uploader.placeholder3\")}\n />\n \n \n \n {unsplashImages.map((image) => (\n setSelectedUnsplashImage(image)}\n key={image.id}\n >\n \n \n ))}\n \n \n \n \n {t(\"tiptap.components.uploader.saveImage\")}\n \n \n \n \n )}\n \n
\n \n
\n );\n}","import React, { useState, useCallback } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\nimport tinycolor from \"tinycolor2\";\nimport data from \"@emoji-mart/data\";\nimport Picker from \"@emoji-mart/react\";\n\nimport Uploader from \"./Uploader\";\n\nimport { isDocumentEmpty } from \"../utils/selection\";\n\nimport {\n createStyles,\n Group,\n Button,\n Menu,\n Box,\n ActionIcon,\n Popover,\n Tooltip,\n ScrollArea,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, sutraTheme }) => ({\n menuButton: {\n borderRadius: 5,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(4).toString(),\n },\n },\n button: {\n borderRadius: 5,\n marginRight: 10,\n color: colors.default_text_color,\n\n \"&:hover\": {\n color: colors.default_text_color,\n backgroundColor: tinycolor(colors.background_color).darken(4).toString(),\n },\n },\n isActive: {\n color: !isSpaceThemed(colors)\n ? sutraTheme.colors.sutrablue[4]\n : colors.sidebar_text_color,\n backgroundColor: !isSpaceThemed(colors)\n ? \"#fff\"\n : tinycolor(colors.sidebar_background_color).darken(4).toString(),\n },\n sendButtonActive: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n sendButtonNotActive: {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(20)\n .toString(),\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(20)\n .toString(),\n },\n cursor: \"default\",\n },\n cancelButton: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n },\n postImage: {\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(10).toString(),\n },\n },\n bottomIcon: {\n color: colors.default_text_color,\n paddingLeft: 4,\n paddingRight: 4,\n paddingTop: 2,\n paddingBottom: 2,\n marginLeft: 0,\n marginRight: 0,\n marginTop: 4,\n marginBottom: 4,\n cursor: \"pointer\",\n borderRadius: 3,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.sidebar_background_color)\n .darken(4)\n .toString(),\n },\n },\n}));\n\nconst BlocksMenuSimple = (props) => {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const { settingsView, listView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n let colors2 = useSelector((state) => state.colors2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n colors =\n !settingsView && (!listView || props.useSpace2)\n ? colors\n : defaultSpaceColors;\n colors2 =\n !settingsView && (!listView || props.useSpace2)\n ? colors2\n : defaultSpaceColors;\n const { classes, cx, theme } = useStyles({ colors: getColors(), sutraTheme });\n\n const [openedMedia, setOpenedMedia] = useState(false);\n const [mediaType, setMediaType] = useState(\"image\");\n const [openedEmojis, setOpenedEmojis] = useState(false);\n\n const onEmojiSelect = (emoji) => {\n props.editor.chain().focus().setEmoji(emoji.id).run();\n setOpenedEmojis(false);\n };\n\n const setLink = useCallback(() => {\n const previousUrl = props.editor.getAttributes(\"link\").href;\n const url = window.prompt(\"URL\", previousUrl);\n\n // cancelled\n if (url === null) {\n return;\n }\n\n // empty\n if (url === \"\") {\n props.editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n\n return;\n }\n\n // update link\n props.editor\n .chain()\n .focus()\n .extendMarkRange(\"link\")\n .setLink({ href: url })\n .run();\n }, [props.editor]);\n\n if (!props.editor) {\n return null;\n }\n\n const setImage = () => {\n setMediaType(\"image\");\n setOpenedMedia(true);\n };\n\n const setVideo = () => {\n setMediaType(\"video\");\n setOpenedMedia(true);\n };\n\n const setFile = () => {\n setMediaType(\"file\");\n setOpenedMedia(true);\n };\n\n const onMediaSave = () => {\n setOpenedMedia(false);\n };\n\n const onSave = () => {\n if (!isDocumentEmpty(props.editor)) {\n props.onSave();\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n }\n >\n setFile()}\n icon={}\n >\n {t(\"tiptap.components.blocksMenuInline.file\")}\n \n setImage()}\n icon={}\n >\n {t(\"tiptap.components.blocksMenuInline.image\")}\n \n {props.exclude.indexOf(\"video\") < 0 && (\n setVideo()}\n icon={}\n >\n {t(\"tiptap.components.blocksMenuInline.video\")}\n \n )}\n \n\n setOpenedEmojis(false)}\n zIndex={999999}\n target={\n setOpenedEmojis(!openedEmojis)}\n >\n \n \n \n \n }\n position=\"right\"\n withArrow\n width={352}\n styles={{\n popover: {\n order: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n wrapper: {\n order: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n inner: {\n padding: 0,\n border: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n body: {\n border: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n }}\n >\n \n \n\n setOpenedMedia(false)}\n target={\n setImage()}\n className={classes.bottomIcon}\n >\n \n \n \n \n }\n width={400}\n position=\"right\"\n withArrow\n >\n \n \n \n \n {props.canToggleFormatbar && (\n props.toggleFormatbar()}\n >\n \n \n \n \n )}\n \n\n {props.withSaveButton && (\n \n \n )\n }\n onClick={() => onSave()}\n >\n {`${props.saveButtonText}`}\n \n \n )}\n \n \n );\n};\n\nexport default BlocksMenuSimple;\n","import { Extension } from '@tiptap/core'\nimport {stylesToString} from '../../../utils/StylesToString'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomStyles = Extension.create({\n name: \"customStyles\",\n addOptions() {\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'heading',\n 'paragraph',\n 'image',\n 'video',\n 'audio',\n 'file',\n 'embed',\n 'grid1',\n 'grid2',\n 'grid3',\n // 'column',\n 'tasklist',\n 'orderedlist',\n 'bulletList',\n 'circle',\n 'resource',\n 'details',\n 'detailsSummary',\n 'resource',\n 'actionbutton',\n 'customform',\n 'survey',\n 'interactiveInput',\n 'interactiveWait',\n 'interactiveButton',\n 'horizontalRule'\n ],\n // … with those attributes\n attributes: {\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"7px\",\n \"padding-bottom\": \"0px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n },\n },\n ]\n },\n addCommands() {\n return {\n setCustomStyles: (styles) => ({ commands, chain, view }) => {\n if (!window.$tiptapSelectionRange){\n return\n }\n const {from, to} = window.$tiptapSelectionRange\n\n const { selection } = view.state\n\n const content = selection.node ? selection.node : selection.$anchor.parent\n\n return commands.updateAttributes(content.type.name, { styles: styles })\n\n\n },\n setPListStyles: () => ({ commands, chain, view }) => {\n if (!window.$tiptapSelectionRange){\n return\n }\n const {from, to} = window.$tiptapSelectionRange\n\n\n const { selection } = view.state\n\n const content = selection.node ? selection.node : selection.$anchor.parent\n let pos = selection.to\n if (!view.state.doc.nodeAt(selection.to)){\n pos = selection.to-1\n }\n const node = view.state.doc.nodeAt(pos)\n // debugger\n if (node && node.type.name == \"paragraph\"){\n const {tr} = view.state\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n styles: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"4px\",\n \"padding-bottom\": \"4px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n insideList: true\n })\n\n setTimeout(() => {\n view.dispatch(tr)\n }, 200)\n }\n\n\n },\n }\n },\n})\n\nexport default CustomStyles;\n","import {\n Slice,\n Fragment,\n DOMParser,\n DOMSerializer,\n\n} from \"prosemirror-model\";\n\nlet serializer = null;\n\nexport function serializeForClipboard(view, slice) {\n view.someProp(\"transformCopied\", (f) => {\n slice = f((slice = null), view);\n });\n\n let context = [],\n { content, openStart, openEnd } = slice;\n while (\n openStart > 1 &&\n openEnd > 1 &&\n content.childCount == 1 &&\n content.firstChild &&\n content.firstChild.childCount == 1\n ) {\n openStart--;\n openEnd--;\n let node = content.firstChild ? content.firstChild : null;\n context.push(\n node.type.name,\n node.attrs != node.type.defaultAttrs ? node.attrs : null\n );\n content = node.content;\n }\n\n serializer =\n view.someProp(\"clipboardSerializer\") ||\n DOMSerializer.fromSchema(view.state.schema);\n\n let doc = detachedDoc(),\n wrap = doc.createElement(\"div\");\n wrap.appendChild(serializeFragment(content, { document: doc }));\n\n let firstChild = wrap.firstChild,\n needsWrap,\n wrappers = 0;\n while (\n firstChild &&\n firstChild.nodeType == 1 &&\n (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])\n ) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n let wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild) wrapper.appendChild(wrap.firstChild);\n wrap.appendChild(wrapper);\n wrappers++;\n }\n firstChild = wrap.firstChild;\n }\n\n if (firstChild && firstChild.nodeType == 1)\n firstChild.setAttribute(\n \"data-pm-slice\",\n `${openStart} ${openEnd}${\n wrappers ? ` -${wrappers}` : \"\"\n } ${JSON.stringify(context)}`\n );\n\n let text =\n view.someProp(\"clipboardTextSerializer\", (f) => f(slice, view)) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n\n return { dom: wrap, text };\n}\n\nlet _detachedDoc = null;\nfunction detachedDoc() {\n return (\n _detachedDoc ||\n (_detachedDoc = document.implementation.createHTMLDocument(\"title\"))\n );\n}\n\nconst wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"],\n};\n\nfunction doc(options) {\n return options.document || window.document;\n}\n\nfunction serializeFragment(fragment, options = {}, target = null) {\n if (!target) target = doc(options).createDocumentFragment();\n\n let top = target,\n active = [];\n fragment.forEach((node) => {\n if (active.length || node.marks.length) {\n let keep = 0,\n rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n let next = node.marks[rendered];\n if (!serializer.marks[next.type.name]) {\n rendered++;\n continue;\n }\n if (!next.eq(active[keep][0]) || next.type.spec.spanning === false)\n break;\n keep++;\n rendered++;\n }\n while (keep < active.length) top = active.pop()[1];\n while (rendered < node.marks.length) {\n let add = node.marks[rendered++];\n let markDOM = serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push([add, top]);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(serializeNodeInner(node, options));\n });\n\n return target;\n}\n\n/// @internal\nfunction serializeNodeInner(node, options) {\n let { dom, contentDOM } = renderSpec(\n doc(options),\n serializer.nodes[node.type.name](node)\n );\n\n if (contentDOM) {\n if (node.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n serializeFragment(node.content, options, contentDOM);\n }\n return dom;\n}\n\nfunction serializeMark(mark, inline, options = {}) {\n let toDOM = serializer.marks[mark.type.name];\n return toDOM && renderSpec(doc(options), toDOM(mark, inline));\n}\n\nfunction renderSpec(doc, structure, xmlNS = null) {\n if (typeof structure == \"string\")\n return { dom: doc.createTextNode(structure) };\n if (structure.nodeType != null) return { dom: structure };\n if (structure.dom && structure.dom.nodeType != null) return structure;\n\n let tagName = structure[0],\n space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n let contentDOM;\n let dom = xmlNS\n ? doc.createElementNS(xmlNS, tagName)\n : doc.createElement(tagName);\n let attrs = structure[1],\n start = 1;\n if (\n attrs &&\n typeof attrs == \"object\" &&\n attrs.nodeType == null &&\n !Array.isArray(attrs)\n ) {\n start = 2;\n for (let name in attrs)\n if (attrs[name] != null) {\n let space = name.indexOf(\" \");\n if (space > 0)\n dom.setAttributeNS(\n name.slice(0, space),\n name.slice(space + 1),\n attrs[name]\n );\n else {\n if (name == \"styles\") {\n dom.setAttribute(name, attrs[name]);\n } else {\n dom.setAttribute(name, attrs[name]);\n }\n }\n }\n\n if (tagName == \"interactiveinput\"){\n attrs[\"id\"] = \"new\"\n attrs[\"circle_id\"] = \"current\"\n dom.setAttribute(\"id\", \"new\");\n dom.setAttribute(\"circle_id\", \"current\");\n }\n // To avoid same UIDs after copy/paste\n attrs[\"uid\"] = \"\"\n dom.setAttribute(\"uid\", \"\");\n }\n\n for (let i = start; i < structure.length; i++) {\n let child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n throw new RangeError(\n \"Content hole must be the only child of its parent node\"\n );\n return { dom, contentDOM: dom };\n } else {\n let { dom: inner, contentDOM: innerContent } = renderSpec(\n doc,\n child,\n xmlNS\n );\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM) throw new RangeError(\"Multiple content holes\");\n contentDOM = innerContent;\n }\n }\n }\n return { dom, contentDOM };\n}\n\nfunction readHTML(html) {\n let metas = /(\\s*]*>)*/.exec(html);\n if (metas) html = html.slice(metas[0].length);\n let doc = document.implementation.createHTMLDocument(\"title\");\n\n let elt = doc.createElement(\"div\");\n let firstTag = /(?:]*>)*<([a-z][^>\\s]+)/i.exec(html),\n wrap,\n depth = 0;\n if ((wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])) {\n html =\n wrap.map((n) => \"<\" + n + \">\").join(\"\") +\n html +\n wrap\n .map((n) => \"\")\n .reverse()\n .join(\"\");\n depth = wrap.length;\n }\n elt.innerHTML = html;\n for (let i = 0; i < depth; i++) elt = elt.firstChild;\n\n return elt;\n}\n\nexport function parseFromClipboard(view, text, html, plainText, $context) {\n let dom,\n inCode = $context.parent.type.spec.code,\n slice;\n \n if (!html && !text) return null;\n if ((plainText || inCode || !html) && text) {\n view.someProp(\"transformPastedText\", (f) => {\n text = f(text);\n });\n if (inCode)\n return new Slice(Fragment.from(view.state.schema.text(text)), 0, 0);\n let parsed = view.someProp(\"clipboardTextParser\", (f) => f(text, $context));\n if (parsed) {\n slice = parsed;\n } else {\n dom = document.createElement(\"div\");\n text\n .trim()\n .split(/(?:\\r\\n?|\\n)+/)\n .forEach((block) => {\n dom.appendChild(document.createElement(\"p\")).textContent = block;\n });\n }\n } else {\n view.someProp(\"transformPastedHTML\", (f) => (html = f(html)));\n dom = readHTML(html);\n }\n\n // Remove empty elements\n const emptyElements = dom.querySelectorAll(\n \"br, p, div, blockquote, ul, ol, li, h1, h2, h3, h4, h5, h6\"\n );\n for (let i = 0; i < emptyElements.length; i++) {\n const emptyElement = emptyElements[i];\n const content = emptyElement.textContent.trim();\n const mediaElements = emptyElement.querySelectorAll(\"img, video, audio\");\n for (let j = 0; j < mediaElements.length; j++) {\n emptyElement.parentNode.insertBefore(mediaElements[j], emptyElement);\n }\n if (content.length === 0 && mediaElements.length === 0) {\n emptyElement.parentNode.removeChild(emptyElement);\n }\n }\n\n if (!slice) {\n let parser =\n view.someProp(\"clipboardParser\") ||\n view.someProp(\"domParser\") ||\n DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: true,\n context: $context,\n });\n }\n\n slice = closeIsolatingStart(slice);\n let contextNode = dom && dom.querySelector(\"[data-pm-context]\");\n let context = contextNode && contextNode.getAttribute(\"data-pm-context\");\n if (context == \"none\") slice = new Slice(slice.content, 0, 0);\n else if (context) slice = addContext(slice, context);\n // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n else slice = normalizeSiblings(slice, $context);\n view.someProp(\"transformPasted\", (f) => {\n slice = f(slice);\n });\n\n return slice;\n}\n\nfunction normalizeSiblings(slice, $context) {\n if (slice.content.childCount < 2) return slice;\n for (let d = $context.depth; d >= 0; d--) {\n let parent = $context.node(d);\n let match = parent.contentMatchAt($context.index(d));\n let lastWrap,\n result = [];\n slice.content.forEach((node) => {\n if (!result) return;\n let wrap = match.findWrapping(node.type),\n inLast;\n if (!wrap) return (result = null);\n if (\n (inLast =\n result.length &&\n lastWrap.length &&\n addToSibling(wrap, lastWrap, node, result[result.length - 1], 0))\n ) {\n result[result.length - 1] = inLast;\n } else {\n if (result.length)\n result[result.length - 1] = closeRight(\n result[result.length - 1],\n lastWrap.length\n );\n let wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type, wrapped.attrs);\n lastWrap = wrap;\n }\n });\n if (result) return Slice.maxOpen(Fragment.from(result));\n }\n return slice;\n}\n\nfunction closeRight(node, depth) {\n if (depth == 0) return node;\n let fragment = node.content.replaceChild(\n node.childCount - 1,\n closeRight(node.lastChild, depth - 1)\n );\n let fill = node\n .contentMatchAt(node.childCount)\n .fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill));\n}\n\nfunction closeIsolatingStart(slice) {\n let closeTo = 0,\n frag = slice.content;\n for (let i = 1; i <= slice.openStart; i++) {\n let node = frag.firstChild;\n if (node.type.spec.isolating) {\n closeTo = i;\n break;\n }\n frag = node.content;\n }\n\n if (closeTo == 0) return slice;\n return new Slice(\n closeFragment(slice.content, closeTo, slice.openEnd),\n slice.openStart - closeTo,\n slice.openEnd\n );\n}\n\nfunction closeFragment(frag, n, openEnd) {\n if (n == 0) return frag;\n let node = frag.firstChild;\n let content = closeFragment(node.content, n - 1, openEnd - 1);\n let fill = node.contentMatchAt(0).fillBefore(node.content, openEnd <= 0);\n return frag.replaceChild(0, node.copy(fill.append(content)));\n}\n\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (\n depth < wrap.length &&\n depth < lastWrap.length &&\n wrap[depth] == lastWrap[depth]\n ) {\n let inner = addToSibling(\n wrap,\n lastWrap,\n node,\n sibling.lastChild,\n depth + 1\n );\n if (inner)\n return sibling.copy(\n sibling.content.replaceChild(sibling.childCount - 1, inner)\n );\n let match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n return sibling.copy(\n sibling.content.append(\n Fragment.from(withWrappers(node, wrap, depth + 1))\n )\n );\n }\n}\n\nfunction withWrappers(node, wrap, from = 0) {\n for (let i = wrap.length - 1; i >= from; i--)\n node = wrap[i].create(null, Fragment.from(node));\n return node;\n}\n\nfunction addContext(slice, context) {\n if (!slice.size) return slice;\n let schema = slice.content.firstChild.type.schema,\n array;\n try {\n array = JSON.parse(context);\n } catch (e) {\n return slice;\n }\n let { content, openStart, openEnd } = slice;\n for (let i = array.length - 2; i >= 0; i -= 2) {\n let type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs()) break;\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n return new Slice(content, openStart, openEnd);\n}\n","import {\n Plugin,\n PluginKey,\n TextSelection,\n NodeSelection,\n} from \"prosemirror-state\";\nimport { serializeForClipboard, parseFromClipboard } from \"../utils/clipboard\";\nimport { Extension } from \"@tiptap/core\";\n\nimport { isEmptySelection } from \"../utils/selection\";\n\nimport Swal from \"sweetalert2\";\nimport { colors } from \"../../../collections/colors\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst brokenClipboardAPI = !(navigator.userAgent.indexOf(\"Chrome\") != -1); // (browser.ie && browser.ie_version < 15) || (browser.ios && browser.webkit_version < 604)\n\nconst nameToBlocks = {\n circle: \"space\",\n grid1: \"grid\",\n grid2: \"grid\",\n grid3: \"grid\",\n grid4: \"grid\",\n column: \"column\",\n resource: \"collapsable section\",\n survey: \"survey\",\n interactiveInput: \"interactive input\",\n tagsFeed: \"tag feed\",\n infobox: \"info box\",\n};\n\nexport function getNode(node, coords) {\n try {\n node = node.node;\n\n while (node && node.parentNode) {\n if (\n (node.parentNode.classList &&\n node.parentNode.classList.contains(\"ProseMirror\")) ||\n (node.dataset && node.dataset.uid)\n ) {\n // todo\n break;\n }\n node = node.parentNode;\n }\n } catch (e) {}\n return node;\n}\n\nexport function blockPosAtCoords(coords, view) {\n let pos = view.posAtCoords(coords);\n if (!pos) {\n return null;\n }\n let node = view.domAtPos(pos.pos);\n\n node = getNode(node, coords);\n\n if (node && node.nodeType === 1) {\n let desc = view.docView.nearestDesc(node, true);\n if (!(!desc || desc === view.docView)) {\n return desc.posBefore;\n }\n }\n return null;\n}\n\nexport function blockAtPos(pos, view) {\n let node = view.domAtPos(pos);\n\n node = getNode(node, view.coordsAtPos(pos));\n\n if (node && node.nodeType === 1) {\n let desc = view.docView.nearestDesc(node, true);\n if (!(!desc || desc === view.docView)) {\n return desc.posBefore;\n }\n }\n return null;\n}\n\nexport function onDragStart(e, pos, editor) {\n if (!e.dataTransfer) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n pos = editor.view.state.selection.from;\n\n let slice = editor.view.state.selection.content();\n let node = editor.view.state.selection.node;\n\n if (!node && slice.content.content.length == 0) {\n editor.commands.selectTextblockStart();\n pos = editor.view.state.selection.from;\n let selectBack = false;\n try {\n \n if (pos > 0) {\n editor.commands.setNodeSelection(pos - 1);\n selectBack = true;\n }\n } catch (e) {\n editor.commands.setNodeSelection(pos);\n\n const auxSelection = editor.view.state.selection;\n if (\n auxSelection.$anchor.depth > 0 &&\n auxSelection.$anchor.path[3].type.name == \"heading\"\n ) {\n editor.commands.selectParentNode();\n }\n selectBack = false;\n }\n\n node = editor.view.state.selection.node;\n\n if (node && node.type.name == \"text\") {\n editor.commands.selectParentNode();\n }\n\n try {\n if (pos > 1) {\n let auxNode = editor.view.state.doc.nodeAt(pos - 2);\n\n if (\n auxNode &&\n (auxNode.type.name == \"listItem\" || auxNode.type.name == \"taskItem\")\n ) {\n editor.commands.setNodeSelection(pos - 2);\n }\n }\n } catch (e) {\n } finally {\n }\n\n slice = editor.view.state.selection.content();\n }\n\n let { dom, text } = serializeForClipboard(editor.view, slice);\n console.log(dom);\n\n // e.dataTransfer.clearData()\n try {\n e.dataTransfer.effectAllowed = \"all\";\n\n e.dataTransfer.setData(\n brokenClipboardAPI ? \"text\" : \"text/html\",\n dom.innerHTML\n );\n if (!brokenClipboardAPI)\n e.dataTransfer.setData(\"text/plain\", dom.innerText);\n\n editor.view.dragging = { slice, move: true };\n\n return slice;\n } catch (e) {\n } finally {\n }\n\n // }\n}\n\nfunction onPlusClick(e, view) {\n let coords = { left: e.clientX + 50, top: e.clientY };\n let pos = view.posAtCoords(coords);\n let node = view.domAtPos(pos.pos);\n\n node = getNode(node, coords);\n\n const isRootDepth = view.state.selection.$anchor.depth === 1;\n const isEmptyTextBlock =\n view.state.selection.$anchor.parent.isTextblock &&\n !view.state.selection.$anchor.parent.type.spec.code &&\n !view.state.selection.$anchor.parent.textContent;\n\n view.dom.editor.commands.focus(pos.pos);\n if (view.state.selection.empty && isEmptyTextBlock) {\n view.dom.editor.chain().focus(pos.pos).run();\n } else {\n if (view.state.selection.$anchor.parent.isTextblock) {\n view.dom.editor\n .chain()\n .insertContentAt(\n pos.pos + view.state.selection.$anchor.parent.content.size,\n { type: \"paragraph\" }\n )\n .focus()\n .run();\n } else {\n // view.dom.editor.chain().insertContentAt(view.state.selection.$anchor.pos + view.state.selection.$anchor.parent.content.size, {type: \"paragraph\"}).focus().run()\n view.dom.editor\n .chain()\n .insertContentAt(\n view.state.selection.$anchor.pos +\n view.state.selection.$anchor.parent.content.size,\n { type: \"paragraph\" }\n )\n .focus()\n .run();\n }\n }\n\n setTimeout(() => {\n let clickEvent = new MouseEvent(\"click\", {\n view: window,\n bubbles: true,\n cancelable: false,\n });\n document\n .getElementById(\"btn-tiptap-more-options\")\n .dispatchEvent(clickEvent);\n }, 50);\n}\n\nexport function onDragClick(e, view) {\n let coords = { left: e.clientX + 50, top: e.clientY };\n let pos = view.posAtCoords(coords);\n let node = view.domAtPos(pos.pos);\n\n node = getNode(node, coords);\n view.dom.editor.commands.focus(pos.pos);\n\n if (\n !view.state.selection.$anchor.parent.isTextblock &&\n view.state.selection.$anchor.parent.type.name != \"circle\"\n ) {\n view.dom.editor.commands.focus(\n view.state.selection.$anchor.pos +\n view.state.selection.$anchor.parent.content.size\n );\n }\n}\n\nfunction onDeletedNode(node) {}\n\nlet dropElement;\nlet addElement;\nconst WIDTH = 24;\n\nconst EventHandler = Extension.create({\n name: \"eventHandler\",\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey(\"eventHandler\"),\n\n props: {\n handleDOMEvents: {\n copy: (view, event) => {\n \n if (brokenClipboardAPI) {\n console.log(\"brokenClipboardAPI\");\n return;\n }\n event.preventDefault();\n const slice = view.state.selection.content();\n\n console.log(slice);\n let { dom, text } = serializeForClipboard(view, slice);\n console.log(dom);\n console.log(\"COPYING\");\n console.log(dom.innerHTML);\n\n event.clipboardData.clearData();\n try {\n event.clipboardData.effectAllowed = \"all\";\n\n event.clipboardData.setData(\n brokenClipboardAPI ? \"text\" : \"text/html\",\n dom.innerHTML\n );\n\n if (!brokenClipboardAPI)\n event.clipboardData.setData(\"text/plain\", dom.innerText);\n\n view.dragging = { slice, move: true };\n\n return slice;\n } catch (e) {\n console.log(e);\n } finally {\n }\n },\n cut: (view, event) => {\n \n const dontDelete = [\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"resource\",\n \"circle\",\n \"survey\",\n \"interactiveInput\",\n \"tagsFeed\",\n \"infobox\",\n \"orderedList\",\n \"bulletList\",\n \"listItem\",\n ];\n\n const { state, dispatch } = view;\n const { selection } = state;\n const { $from, $to } = selection;\n let tr = state.tr;\n \n // Check if the selection is not empty\n let positionsToDelete = [];\n if (!$from.sameParent($to)) {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.isBlock && dontDelete.indexOf(node.type.name) < 0) {\n let startPos = pos;\n let endPos = pos + node.nodeSize;\n \n if ($from.pos > startPos && $from.pos < endPos) {\n startPos = $from.pos;\n }\n \n if ($to.pos > startPos && $to.pos < endPos) {\n endPos = $to.pos;\n }\n positionsToDelete.push({\n start: startPos,\n end: endPos,\n name: node.type.name,\n });\n }\n });\n \n console.log(positionsToDelete);\n let changed = false;\n for (let i = positionsToDelete.length - 1; i >= 0; i--) {\n try{\n const { start, end, name } = positionsToDelete[i];\n tr = tr.delete(start, end);\n changed = true;\n }\n catch{\n\n }\n }\n \n if (changed) {\n event.preventDefault();\n document.execCommand(\"copy\");\n view.dispatch(tr);\n return true;\n }\n return false;\n } else {\n // Handle single node cut\n try {\n const posBefore = $from.pos + 1;\n const posBefore2 = $from.pos + 2;\n const currentNode = state.doc.nodeAt($from.pos);\n const nodeBefore = state.doc.nodeAt(posBefore);\n const nodeBefore2 = state.doc.nodeAt(posBefore2);\n let nodeToDelete = null;\n let nodeToDeletePos = null;\n \n if (\n currentNode &&\n dontDelete.indexOf(currentNode.type.name) >= 0 && currentNode.type.name != \"listItem\"\n ) {\n nodeToDelete = currentNode;\n nodeToDeletePos = $from.pos;\n } else if (\n nodeBefore &&\n dontDelete.indexOf(nodeBefore.type.name) >= 0 && nodeBefore.type.name != \"listItem\"\n ) {\n nodeToDelete = nodeBefore;\n nodeToDeletePos = posBefore;\n } else if (\n nodeBefore2 &&\n dontDelete.indexOf(nodeBefore2.type.name) >= 0 && nodeBefore2.type.name != \"listItem\"\n ) {\n nodeToDelete = nodeBefore2;\n nodeToDeletePos = posBefore2;\n }\n \n if (nodeToDelete) {\n event.preventDefault();\n Swal.fire({\n title: \"Are you sure?\",\n html: `You are about to cut a content block.`,\n showDenyButton: true,\n confirmButtonText: \"Yes, cut\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n document.execCommand(\"copy\");\n tr = tr.delete(nodeToDeletePos, nodeToDeletePos + 1);\n view.dispatch(tr);\n onDeletedNode(nodeToDelete);\n } else if (result.isDenied) {\n // If denied, do nothing\n }\n });\n return true;\n }\n } catch (e) {\n console.error(\"Error handling cut event:\", e);\n }\n }\n return false;\n }\n },\n handleKeyDown: (view, event) => {\n const dontDelete = [\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"resource\",\n \"circle\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"tagsFeed\",\n \"infobox\",\n \"orderedList\",\n \"bulletList\",\n \"listItem\",\n \"video\", \n ];\n\n const normalEnter = [\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"resource\",\n \"circle\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"tagsFeed\",\n \"infobox\",\n \"orderedList\",\n \"bulletList\",\n \"listItem\",\n \"video\", \n \"image\", \n \"file\", \n \"audio\", \n \"embed\", \n \"actionbutton\", \n \"customform\", \n ];\n\n const { selection } = view.state;\n const { $anchor, empty } = selection;\n\n if (event.key == \"Enter\") {\n // event.preventDefault();\n\n if (\n !(\n selection.$anchor.depth > 1 &&\n selection.$anchor.path[3] &&\n selection.$anchor.path[3].type.name.indexOf(\"List\")\n )\n ) {\n if (!isEmptySelection(view.dom.editor)) {\n let node = view.state.doc.nodeAt(selection.$anchor.pos);\n if (!node){\n node = selection.$anchor.parent;\n }\n \n if (normalEnter.indexOf(node.type.name) >= 0){\n return false;\n }\n view.dom.editor.commands.customEnter();\n return true;\n }\n }\n // return true;\n }\n\n if (\n selection.$anchor.depth > 1 &&\n selection.$anchor.path[3] &&\n selection.$anchor.path[3].type.name.indexOf(\"List\") >= 0\n ) {\n return false;\n }\n\n if (event.key == \"Backspace\") {\n const { state, dispatch } = this.editor;\n const { selection } = state;\n const { $from, $to } = selection;\n let tr = state.tr;\n\n // Check if the selection is not empty\n let positionsToKeep = [];\n let positionsToDelete = [];\n\n if (!$from.sameParent($to)) {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n // Check if the node is a 'circle' node\n if (node.isBlock) {\n if (dontDelete.indexOf(node.type.name) < 0) {\n let startPos = pos;\n let endPos = pos + node.nodeSize;\n\n if ($from.pos > startPos && $from.pos < endPos) {\n startPos = $from.pos;\n }\n\n if ($to.pos > startPos && $to.pos < endPos) {\n endPos = $to.pos;\n }\n positionsToDelete.push({\n start: startPos,\n end: endPos,\n name: node.type.name,\n });\n }\n }\n });\n console.log(positionsToKeep);\n console.log(positionsToDelete);\n let changed = false;\n for (let i = positionsToDelete.length - 1; i >= 0; i--) {\n try{\n const { start, end, name } = positionsToDelete[i];\n tr = tr.delete(start, end);\n changed = true;\n }\n catch{\n\n }\n }\n\n if (changed) {\n this.editor.view.dispatch(tr);\n return true;\n }\n return true;\n } else {\n // Handle single backspace (single character or node deletion)\n\n try {\n const posBefore = $from.pos - 1;\n const posBefore2 = $from.pos - 2;\n const currentNode = state.doc.nodeAt($from.pos);\n const nodeBefore = state.doc.nodeAt(posBefore);\n const nodeBefore2 = state.doc.nodeAt(posBefore2);\n\n console.log(`${currentNode.type.name}`)\n console.log(`${nodeBefore.type.name}`)\n console.log(`${nodeBefore2.type.name}`)\n\n let nodeToDelete = null;\n let nodeToDeletePos = null;\n if (\n currentNode &&\n dontDelete.indexOf(currentNode.type.name) >= 0 && currentNode.type.name != \"listItem\"\n ) {\n nodeToDelete = currentNode;\n nodeToDeletePos = $from.pos;\n } else if (\n nodeBefore &&\n dontDelete.indexOf(nodeBefore.type.name) >= 0 && nodeBefore.type.name != \"listItem\"\n ) {\n nodeToDelete = nodeBefore;\n nodeToDeletePos = posBefore;\n } else if (\n nodeBefore2 &&\n dontDelete.indexOf(nodeBefore2.type.name) >= 0 && nodeBefore2.type.name != \"listItem\"\n ) {\n nodeToDelete = nodeBefore2;\n nodeToDeletePos = posBefore2;\n }\n console.log(`-----------------`)\n console.log(`${nodeToDelete.type.name}`)\n if (\n (currentNode &&\n dontDelete.indexOf(currentNode.type.name) >= 0) ||\n (nodeBefore &&\n dontDelete.indexOf(nodeBefore.type.name) >= 0) ||\n (nodeBefore2 &&\n dontDelete.indexOf(nodeBefore2.type.name) >= 0)\n ) {\n Swal.fire({\n title: \"Are you sure?\",\n html: `You are about to delete a content block.`,\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n console.log(nodeToDelete);\n console.log(nodeToDeletePos);\n tr = tr.delete(nodeToDeletePos, nodeToDeletePos + 1);\n this.editor.view.dispatch(tr);\n onDeletedNode(nodeToDelete);\n } else if (result.isDenied) {\n }\n });\n return true;\n } else {\n // Default backspace behavior for other nodes or text\n return false;\n }\n } catch (e) {\n console.log(e)\n }\n }\n return false;\n }\n if (event.key == \"Delete\") {\n const { state, dispatch } = this.editor;\n const { selection } = state;\n const { $from, $to } = selection;\n let tr = state.tr;\n\n // Check if the selection is not empty\n let positionsToKeep = [];\n let positionsToDelete = [];\n if (!$from.sameParent($to)) {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n // Check if the node is a 'circle' node\n if (node.isBlock) {\n if (dontDelete.indexOf(node.type.name) < 0) {\n let startPos = pos;\n let endPos = pos + node.nodeSize;\n\n if ($from.pos > startPos && $from.pos < endPos) {\n startPos = $from.pos;\n }\n\n if ($to.pos > startPos && $to.pos < endPos) {\n endPos = $to.pos;\n }\n positionsToDelete.push({\n start: startPos,\n end: endPos,\n name: node.type.name,\n });\n }\n }\n });\n console.log(positionsToKeep);\n console.log(positionsToDelete);\n let changed = false;\n for (let i = positionsToDelete.length - 1; i >= 0; i--) {\n try{\n const { start, end, name } = positionsToDelete[i];\n tr = tr.delete(start, end);\n changed = true;\n }\n catch{\n\n }\n }\n\n if (changed) {\n this.editor.view.dispatch(tr);\n return true;\n }\n return true;\n } else {\n // Handle single backspace (single character or node deletion)\n try {\n const posBefore = $from.pos + 1;\n const posBefore2 = $from.pos + 2;\n const currentNode = state.doc.nodeAt($from.pos);\n const nodeBefore = state.doc.nodeAt(posBefore);\n const nodeBefore2 = state.doc.nodeAt(posBefore2);\n let nodeToDelete = null;\n let nodeToDeletePos = null;\n if (\n currentNode &&\n dontDelete.indexOf(currentNode.type.name) >= 0 && currentNode.type.name != \"listItem\"\n ) {\n nodeToDelete = currentNode;\n nodeToDeletePos = $from.pos;\n } else if (\n nodeBefore &&\n dontDelete.indexOf(nodeBefore.type.name) >= 0 && nodeBefore.type.name != \"listItem\"\n ) {\n nodeToDelete = nodeBefore;\n nodeToDeletePos = posBefore;\n } else if (\n nodeBefore2 &&\n dontDelete.indexOf(nodeBefore2.type.name) >= 0 && nodeBefore2.type.name != \"listItem\"\n ) {\n nodeToDelete = nodeBefore2;\n nodeToDeletePos = posBefore2;\n }\n\n if (\n (currentNode &&\n dontDelete.indexOf(currentNode.type.name) >= 0) ||\n (nodeBefore &&\n dontDelete.indexOf(nodeBefore.type.name) >= 0) ||\n (nodeBefore2 &&\n dontDelete.indexOf(nodeBefore2.type.name) >= 0)\n ) {\n Swal.fire({\n title: \"Are you sure?\",\n html: `You are about to delete a ${nodeToDelete.type.name} block.`,\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n console.log(nodeToDelete);\n console.log(nodeToDeletePos);\n tr = tr.delete(nodeToDeletePos, nodeToDeletePos + 1);\n this.editor.view.dispatch(tr);\n onDeletedNode(nodeToDelete);\n } else if (result.isDenied) {\n }\n });\n return true;\n } else {\n // Default backspace behavior for other nodes or text\n return false;\n }\n } catch {}\n }\n return false;\n }\n },\n handleKeyPress: (view, event) => {\n const { selection } = view.state;\n const { $anchor, empty } = selection;\n\n // if (event.key == \"Enter\") {\n // event.preventDefault();\n // view.dom.editor.commands.customEnter()\n // return true;\n // }\n },\n handlePaste(view, event, slice) {\n const { clipboardData } = event;\n const parser =\n view.someProp(\"clipboardParser\") || parseFromClipboard;\n\n if (clipboardData.types.indexOf(\"text/html\") > -1) {\n const html = clipboardData.getData(\"text/html\");\n const text = clipboardData.getData(\"text/plain\").trim();\n\n const doc = parser(\n view,\n text,\n html,\n false,\n view.state.selection.$anchor\n );\n\n view.dispatch(view.state.tr.replaceSelection(doc));\n return true;\n }\n\n return false;\n },\n },\n }),\n ];\n },\n});\n\nexport default EventHandler;\n","import { Extension } from '@tiptap/core'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomSize = Extension.create({\n name: \"customSize\",\n addOptions() {\n\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'file',\n 'audio',\n 'actionbutton',\n 'customform',\n 'survey',\n 'interactiveButton',\n 'circle'\n ],\n // … with those attributes\n attributes: {\n class: {\n default: \"tiptap-size-50\",\n renderHTML: attributes => ({\n class: `${attributes.class}`,\n })\n },\n },\n },\n ]\n },\n addCommands() {\n return {\n setCustomSize: (_class) => ({ commands, view }) => {\n\n return this.options.types.every(type => commands.updateAttributes(type, { class: _class }))\n },\n }\n },\n})\n\nexport default CustomSize;\n","import { Extension } from '@tiptap/core'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomResizeable = Extension.create({\n name: \"customResizeable\",\n addOptions() {\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n types: [\n 'image',\n 'video',\n 'embed'\n ],\n attributes: {\n resizeableWidth: {\n default: \"50%\"\n },\n resizeableHeight: {\n default: \"100%\"\n },\n resizeableParentHeight: {\n default: \"unset\"\n },\n radius: {\n default: \"no-radius\",\n renderHTML: attributes => ({\n radius: `${attributes.radius}`,\n })\n }\n },\n },\n ]\n },\n addCommands() {\n return {\n setCustomResizeable: ({resizeableWidth, resizeableHeight, resizeableParentHeight}) => ({ commands, chain, view }) => {\n // if (!window.$tiptapSelectionRange){\n // return\n // }\n // const {from, to} = window.$tiptapSelectionRange\n const { selection } = view.state\n\n const content = selection.node ? selection.node : selection.$anchor.parent\n\n return commands.updateAttributes(content.type.name, { resizeableWidth, resizeableHeight, resizeableParentHeight})\n },\n }\n },\n})\n\nexport default CustomResizeable;\n","import { Extension } from '@tiptap/core'\nimport {stylesToString} from '../../../utils/StylesToString'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst ColumnStyles = Extension.create({\n name: \"columnStyles\",\n addOptions() {\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'column',\n ],\n // … with those attributes\n attributes: {\n styles: {\n default: {\n \"align-items\": \"flex-start\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"0px\",\n \"padding-bottom\": \"0px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n },\n },\n ]\n },\n addCommands() {\n return {\n setColumnStyles: (styles) => ({ commands, chain, view }) => {\n if (!window.$tiptapSelectionRange){\n return\n }\n const {from, to} = window.$tiptapSelectionRange\n\n const { selection } = view.state\n\n const content = selection.node ? selection.node : selection.$anchor.parent\n\n return commands.updateAttributes(content.type.name, { styles: styles })\n\n\n },\n }\n },\n})\n\nexport default ColumnStyles;\n","import { Extension } from '@tiptap/core'\nimport { TextSelection } from 'prosemirror-state';\n\nimport { setUniqId } from \"../utils/selection\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setCookie } from \"../../../utils/Cookies\";\nimport { getRoot } from '../../../utils/Host';\n\nconst EditorEventsSimple = Extension.create({\n onBeforeCreate({ editor }) {\n\n },\n onCreate({ editor }) {\n \n },\n onUpdate({ editor }) {\n \n\n const { tr, doc } = editor.view.state;\n \n const types = [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"horizontalRule\",\n \"infobox\",\n \"tagsFeed\"\n ]\n const usedUuid = [];\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (!node.isText && types.indexOf(node.type.name) >= 0 && (!node.attrs.uid || usedUuid.indexOf(node.attrs.uid) >= 0)) {\n usedUuid.push(setUniqId(editor, pos));\n }\n else{\n usedUuid.push(node.attrs.uid)\n }\n });\n\n\n\n },\n onSelectionUpdate({ editor }) {\n\n \n },\n onTransaction({ editor, transaction }) {\n \n \n },\n onFocus({ editor, event }) {\n\n\n },\n onBlur({ editor, event }) {\n\n },\n onDestroy() {\n },\n})\n\nexport default EditorEventsSimple;\n","import { mergeAttributes, Node } from '@tiptap/core'\nimport Suggestion from '@tiptap/suggestion'\n\nimport { PluginKey } from 'prosemirror-state'\nimport {getDomain} from '../../../utils/Host'\n\nexport const MentionPluginKey = new PluginKey('mention')\n\nexport const Mention = Node.create({\n name: 'mention',\n\n addOptions() {\n return {\n HTMLAttributes: {},\n renderLabel({ options, node }) {\n return `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`\n },\n suggestion: {\n char: '@',\n pluginKey: MentionPluginKey,\n command: ({ editor, range, props }) => {\n // increase range.to by one when the next node is of type \"text\"\n // and starts with a space character\n const nodeAfter = editor.view.state.selection.$to.nodeAfter\n const overrideSpace = nodeAfter?.text?.startsWith(' ')\n\n if (overrideSpace) {\n range.to += 1\n }\n\n editor\n .chain()\n .focus()\n .insertContentAt(range, [\n {\n type: this.name,\n attrs: props,\n },\n {\n type: 'text',\n text: ' ',\n },\n ])\n .run()\n\n window.getSelection()?.collapseToEnd()\n },\n allow: ({ state, range }) => {\n const $from = state.doc.resolve(range.from)\n const type = state.schema.nodes[this.name]\n const allow = !!$from.parent.type.contentMatch.matchType(type)\n\n return allow\n },\n },\n }\n },\n\n group: 'inline',\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute('data-id'),\n renderHTML: attributes => {\n if (!attributes.id) {\n return {}\n }\n\n return {\n 'data-id': attributes.id,\n }\n },\n },\n\n label: {\n default: null,\n parseHTML: element => element.getAttribute('data-label'),\n renderHTML: attributes => {\n if (!attributes.label) {\n return {}\n }\n\n return {\n 'data-label': attributes.label,\n }\n },\n },\n }\n },\n\n parseHTML() {\n return [\n {\n tag: `span[data-type=\"${this.name}\"]`,\n },\n ]\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n 'mention',\n mergeAttributes({ 'data-type': this.name }, this.options.HTMLAttributes, HTMLAttributes),\n this.options.renderLabel({\n options: this.options,\n node,\n }),\n ]\n },\n\n renderText({ node }) {\n return this.options.renderLabel({\n options: this.options,\n node,\n })\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => this.editor.commands.command(({ tr, state }) => {\n let isMention = false\n const { selection } = state\n const { empty, anchor } = selection\n\n if (!empty) {\n return false\n }\n\n state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {\n if (node.type.name === this.name) {\n isMention = true\n tr.insertText(this.options.suggestion.char || '', pos, pos + node.nodeSize)\n\n return false\n }\n })\n\n return isMention\n }),\n }\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ]\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes, }) => {\n const dom = document.createElement(\"mention\")\n const link = document.createElement(\"a\")\n link.classList.add(\"mention-node\")\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n const mentionStrings = attributes[\"data-id\"].split(\"|\")\n link.setAttribute(\"id\", attributes.id);\n link.innerHTML = `@${mentionStrings[1]}`;\n link.href = `https://${getDomain()}/${mentionStrings[0]}`\n\n Object.entries(attributes).forEach(([key, value]) => dom.setAttribute(key, value));\n\n dom.append(link)\n\n return {\n dom,\n contentDOM: link,\n ignoreMutation(mutation) {\n\n return true\n\n },\n };\n }\n },\n})\n","import React, {\n forwardRef, useEffect, useImperativeHandle,\n useState,\n} from 'react'\n\nexport default forwardRef((props, ref) => {\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n const selectItem = index => {\n const item = props.items[index]\n\n if (item) {\n props.command({ id: `${item.username}|${item.full_name}|${item.avatar.url}` })\n }\n }\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + props.items.length - 1) % props.items.length)\n }\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % props.items.length)\n }\n\n const enterHandler = () => {\n selectItem(selectedIndex)\n }\n\n useEffect(() => setSelectedIndex(0), [props.items])\n\n useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }) => {\n if (event.key === 'ArrowUp') {\n upHandler()\n return true\n }\n\n if (event.key === 'ArrowDown') {\n downHandler()\n return true\n }\n\n if (event.key === 'Enter') {\n enterHandler()\n return true\n }\n\n return false\n },\n }))\n\n return (\n
\n {props.items.length\n ? props.items.map((item, index) => (\n selectItem(index)}\n >\n {`${item.full_name}`}\n \n ))\n :
No result
\n }\n
\n )\n})\n","import { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport MentionList from \"./MentionList.jsx\";\n\n\nexport default {\n\n items: ({ query }) => {\n return new Promise((resolve, reject) => {\n const _default = [\n { username: \"space\", full_name: \"Space\", avatar: { url: \"\" } },\n ];\n const slug = window.location.href.split(\"/\")[4];\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n scope: \"active\",\n term: query,\n page: 1,\n per: 10,\n include_parents: true\n };\n\n window.$api\n .get(`/api/v4/spaces/${slug}/members.json`, { params })\n .then((res) => {\n resolve(_default.concat(res.data.data));\n })\n .catch((error) => {\n resolve(_default);\n });\n });\n },\n\n render: () => {\n let component;\n let popup;\n\n return {\n onStart: (props) => {\n component = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n if (!props.clientRect) {\n return;\n }\n\n popup = tippy(\"body\", {\n getReferenceClientRect: props.clientRect,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n });\n },\n\n onUpdate(props) {\n if (component){\n\n component.updateProps(props);\n \n if (!props.clientRect) {\n return;\n }\n \n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n }\n return\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n try {\n return component.ref?.onKeyDown(props);\n } catch (e) {}\n },\n\n onExit() {\n if (popup && popup.length){\n popup[0].destroy();\n }\n if (component){\n component.destroy();\n }\n },\n };\n },\n};\n","const isDark = (bgColor) => {\n try {\n\n if (typeof bgColor !== 'undefined') {\n var color = (bgColor.charAt(0) === '#') ? bgColor.substring(1, 7) : bgColor;\n var r = parseInt(color.substring(0, 2), 16); // hexToR\n var g = parseInt(color.substring(2, 4), 16); // hexToG\n var b = parseInt(color.substring(4, 6), 16); // hexToB\n return (((r * 0.299) + (g * 0.587) + (b * 0.114)) > 186) ?\n false : true;\n } else return false\n }\n catch {\n return false\n }\n}\n\nexport default isDark","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\n\nimport StarterKit from \"@tiptap/starter-kit\";\n\nimport TextStyle from \"@tiptap/extension-text-style\";\nimport { Color } from \"@tiptap/extension-color\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport Underline from \"@tiptap/extension-underline\";\n\nimport TaskList from \"@tiptap/extension-task-list\";\nimport TaskItem from \"@tiptap/extension-task-item\";\n\nimport Placeholder from \"@tiptap/extension-placeholder\";\n\nimport UniqueID from \"../plugins/CustomUniqId\";\n\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Details from \"@tiptap-pro/extension-details\";\nimport DetailsSummary from \"@tiptap-pro/extension-details-summary\";\nimport DetailsContent from \"@tiptap-pro/extension-details-content\";\n\nimport Link from \"@tiptap/extension-link\";\n\nimport ParagraphNode from \"../nodes/ParagraphNode\";\nimport HeadingNode from \"../nodes/HeadingNode\";\nimport ImageNode from \"../nodes/ImageNode\";\nimport VideoNode from \"../nodes/VideoNode\";\nimport AudioNode from \"../nodes/AudioNode\";\nimport EmbedNode from \"../nodes/EmbedNode\";\nimport FileNode from \"../nodes/FileNode\";\nimport ListItemNode from \"../nodes/ListItemNode\";\nimport FancyLinkNode from \"../nodes/FancyLinkNode\";\n\nimport FormatMenuSimple from \"./FormatMenuSimple\";\nimport BlocksMenuInline from \"./BlocksMenuInline\";\n\nimport CustomStyles from \"../plugins/CustomStyles\";\nimport EventHandler from \"../plugins/EventHandler\";\nimport CustomSize from \"../plugins/CustomSize\";\nimport CustomResizeable from \"../plugins/CustomResizeable\";\nimport ColumnStyles from \"../plugins/ColumnStyles\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport EditorEvents from \"../plugins/EditorEventsSimple\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport Emoji, { gitHubEmojis } from \"@tiptap-pro/extension-emoji\";\n\nimport { Mention } from \"../plugins/Mention\";\nimport mentionSuggestion from \"../plugins/mentionSuggestion\";\n\nimport { isDocumentEmpty } from \"../utils/selection\";\n\nimport { Box, createStyles } from \"@mantine/core\";\n\nimport { storeJSON, getJSON } from \"../../../utils/LocalDB\";\n\nimport isDark from \"../../../utils/IsDarkColor\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n panelWrap: {\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n borderRadius: 10,\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nconst Tiptap = (props) => {\n const { settingsView, registrationView, listView } = useSidebarStyles();\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n let colors = useSelector((state) => state.colors);\n let colors2 = useSelector((state) => state.colors2);\n\n colors =\n !settingsView && !registrationView && (!listView || props.useSpace2)\n ? colors\n : defaultSpaceColors;\n\n colors2 =\n !settingsView && !registrationView && (!listView || props.useSpace2)\n ? colors2\n : defaultSpaceColors;\n\n const { classes, cx, theme } = useStyles({ colors: getColors() });\n\n const timeoutId = useRef();\n const contextGet = useRef();\n const loaded = useRef();\n\n const [formatbar, setFormatbar] = useState(true);\n\n const editor = useEditor({\n onCreate({ editor }) {},\n editable: props.editable,\n content: props.content ? { type: \"doc\", content: props.content } : \"\",\n extensions: [\n StarterKit.configure({\n history: true,\n paragraph: false,\n heading: false,\n listItem: false,\n blockquote: false\n }),\n UniqueID.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"grid2\",\n \"grid3\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"fancyLink\",\n ],\n }),\n Highlight.configure({\n multicolor: true,\n }),\n EventHandler,\n EditorEvents,\n Underline,\n TextStyle,\n Color,\n VideoNode,\n AudioNode,\n EmbedNode,\n FileNode,\n ListItemNode,\n ParagraphNode,\n HeadingNode,\n FancyLinkNode,\n\n ColumnStyles.configure({\n types: [\"column\"],\n }),\n CustomSize.configure({\n types: [\"file\", \"audio\", \"fancyLink\"],\n }),\n CustomResizeable.configure({\n types: [\"image\", \"video\", \"embed\"],\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Placeholder.configure({\n placeholder: ({ node, editor }) => {\n if (\n node.type.name === \"paragraph\" &&\n isDocumentEmpty(editor) &&\n props.placeholder\n ) {\n return props.placeholder;\n }\n\n return \"\";\n },\n showOnlyCurrent: true,\n }),\n Link.configure({\n openOnClick: false,\n }),\n ImageNode,\n TextAlign.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"detailsSummary\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"fancyLink\",\n ],\n }),\n Details.configure({\n HTMLAttributes: {\n openClassName: \"is-open\",\n class: \"tiptap-details\",\n },\n }),\n DetailsSummary.configure({\n HTMLAttributes: {\n class: \"tiptap-details-summary\",\n },\n }),\n DetailsContent.configure({\n HTMLAttributes: {\n class: \"tiptap-details-content\",\n },\n }),\n Emoji.configure({\n emojis: gitHubEmojis,\n enableEmoticons: true,\n // suggestion,\n }),\n Mention.configure({\n HTMLAttributes: {\n class: \"mention\",\n },\n suggestion: mentionSuggestion,\n renderLabel({ options, node }) {\n const value = node.attrs.label ?? node.attrs.id.split(\"|\")[1];\n return `${options.suggestion.char}${value}`;\n },\n }),\n ],\n });\n\n useEffect(() => {\n loaded.current = false;\n return () => {\n contextGet.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!loaded.current) {\n loaded.current = true;\n setFormatbar(props.exclude.indexOf(\"formatbar\") < 0);\n }\n }, [props]);\n\n useEffect(() => {\n if (editor) {\n editor.off(\"update\", onUpdate);\n editor.on(\"update\", onUpdate);\n editor.off(\"create\", onCreate);\n editor.on(\"create\", onCreate);\n }\n }, [editor]);\n\n const onCreate = () => {\n contextGet.current = false;\n if (props.contextDb) {\n getJSON(`spaces`, props.contextDb, (data) => {\n setTimeout(() => {\n contextGet.current = true;\n }, 2000);\n \n if (data && data.json) {\n editor.commands.setContent(typeof data.json == \"string\" ? JSON.parse(data.json) : data.json);\n }\n });\n }\n };\n const cleanHtml = (html) => {\n const el = document.createElement(\"div\");\n el.innerHTML = html;\n let lastNonEmptyEl = null;\n let currEl = el.lastElementChild;\n while (currEl) {\n if (\n currEl.textContent.trim().length > 0 ||\n [\"img\", \"video\", \"audio\", \"section\"].includes(\n currEl.tagName.toLowerCase()\n )\n ) {\n lastNonEmptyEl = currEl;\n break;\n }\n currEl = currEl.previousElementSibling;\n }\n if (lastNonEmptyEl) {\n let currEmptyEl = lastNonEmptyEl.nextElementSibling;\n while (currEmptyEl) {\n const nextEl = currEmptyEl.nextElementSibling;\n if (\n currEmptyEl.textContent.trim().length == 0 &&\n ![\"img\", \"video\", \"audio\", \"section\"].includes(\n currEmptyEl.tagName.toLowerCase()\n )\n ) {\n currEmptyEl.remove();\n }\n currEmptyEl = nextEl;\n }\n }\n\n return el.innerHTML;\n };\n\n const onUpdate = () => {\n \n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n const json_data = editor.getJSON();\n const html_data = $(editor.view.dom).html();\n if (props.contextDb && contextGet.current) {\n storeJSON(\"spaces\", props.contextDb, {\n json: JSON.stringify(json_data),\n html: html_data,\n });\n }\n\n if (props.clearCallback) {\n props.onUpdate(\n editor.getJSON(),\n cleanHtml(\n $(editor.view.dom).html()\n ),\n editor.commands.clearContent,\n isDocumentEmpty(editor)\n );\n } else {\n props.onUpdate(\n editor.getJSON(),\n cleanHtml(\n $(editor.view.dom).html()\n ),\n null,\n isDocumentEmpty(editor)\n );\n }\n }, 500);\n };\n\n const toggleFormatbar = () => {\n if (props.canToggleFormatbar) {\n setFormatbar(!formatbar);\n }\n };\n\n return (\n \n \n {formatbar && (\n \n )}\n \n\n \n \n );\n};\n\nexport default Tiptap;\n","import React, { useState, useEffect, useRef, memo } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport {\n Text,\n Box,\n TextInput,\n Select,\n Divider,\n useMantineTheme,\n Stack,\n Switch,\n Loader,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useListState } from \"@mantine/hooks\";\n\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst CreateSurveyMain = memo((props) => {\n const space = useSelector((state) => state.space);\n const [scheduled, setScheduled] = useState(false);\n\n const theme = useMantineTheme();\n\n // const [questions, setQuestions] = useState([])\n const [surveyId, setSurveyId] = useState(null);\n const { t, i18n } = useTranslation();\n const [questions, handlers] = useListState([]);\n const [currency, setCurrency] = useState(null);\n\n const [opened, setOpened] = useState(false);\n const [canCreateQuizzes, setCanCreateQuizzes] = useState([false]);\n const [loading, setLoading] = useState(false);\n const [quizMode, setQuizMode] = useState(false);\n const [allowRetake, setAllowRetake] = useState(false);\n const [showScoreAndKey, setShowScoreAndKey] = useState(false);\n const [showRedirect, setShowRedirect] = useState(false);\n const [children, setChildren] = useState([]);\n const [searching2, setSearching2] = useState([]);\n\n const searchTimeoutId = useRef();\n const selectedSpace = useRef();\n const dataLoaded = useRef();\n\n const form = useForm({\n initialValues: {\n title: \"\",\n description: \"\",\n content: \"\",\n quiz_mode: false,\n allow_retake: false,\n after_submit_show_score_and_keys: false,\n redirect_to_space: \"\",\n },\n\n validate: {\n title: (value) => (value.length > 0 ? null : \"Write a title\"),\n },\n });\n\n useEffect(() => {\n setCanCreateQuizzes(\n space && space.permissions && space.permissions.can_create_quizzes\n );\n }, [space]);\n\n useEffect(() => {\n if (props.survey && props.survey.id && props.count == 1) {\n setLoading(true);\n form.setFieldValue(\"title\", props.survey.title);\n form.setFieldValue(\"description\", props.survey.description);\n form.setFieldValue(\"content\", props.survey.content);\n setQuizMode(props.survey.quiz_mode);\n setAllowRetake(props.survey.allow_retake);\n setShowScoreAndKey(props.survey.after_submit_show_score_and_keys);\n setShowRedirect(props.survey.redirect_to_space ? true : false);\n form.setFieldValue(\"redirect_to_space\", props.survey.redirect_to_space);\n setSurveyId(props.survey.id);\n selectedSpace.current = props.survey.redirect_to_space_obj;\n } else {\n if (!props.survey && props.count == 1) {\n form.setFieldValue(\"title\", \"\");\n form.setFieldValue(\"description\", \"\");\n form.setFieldValue(\"content\", \"\");\n form.setFieldValue(\"quiz_mode\", false);\n setQuizMode(false);\n setAllowRetake(false);\n setShowScoreAndKey(false);\n setShowRedirect(false);\n setSurveyId(null);\n setCurrency(null);\n }\n }\n }, [props]);\n\n useEffect(() => {\n props.onUpdateForm(form.values);\n props.onUpdateFormFull();\n }, [form.values]);\n\n useEffect(() => {\n if (!canCreateQuizzes[0] && quizMode){\n setOpened([true, canCreateQuizzes[1], canCreateQuizzes[2]])\n form.setFieldValue(\"quiz_mode\", false);\n setQuizMode(false)\n }\n else{\n form.setFieldValue(\"quiz_mode\", quizMode);\n }\n form.setFieldValue(\"after_submit_show_score_and_keys\", quizMode && showScoreAndKey);\n form.setFieldValue(\"allow_retake\", allowRetake);\n\n if (!showRedirect && dataLoaded.current){\n form.setFieldValue(\"redirect_to_space\", \"\");\n }\n\n setTimeout(() => {\n dataLoaded.current = true\n props.onUpdateFormFull();\n }, 500)\n }, [quizMode, allowRetake, showScoreAndKey, showRedirect]);\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content\", content.content);\n form.setFieldValue(\"description\", html);\n };\n\n const onSearchChildren = (query) => {\n setSearching2(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchChildren(query);\n setSearching2(false);\n }, 1000);\n };\n\n const onFetchChildren = (query = null) => {\n const ctrl = new AbortController();\n const include = [\"order=pods.created_at DESC\", \"abstract\"];\n if (query) {\n include.push(`q=${query}`);\n }\n SpaceModel.onFetchManagedChildren(\n props.spaceId,\n include,\n { page: 1, per: 10 },\n (data) => {\n const _spaces = selectedSpace.current ? [selectedSpace.current] : [];\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({\n value: data.data[i].slug,\n label: `${data.data[i].name} (${data.data[i].slug})`,\n });\n }\n setChildren(_spaces);\n },\n (data) => {},\n ctrl.signal\n );\n };\n\n return (\n <>\n
onSend(values))}>\n {!props.acceptPayments && (\n \n )}\n {props.acceptPayments && (\n \n {t(\"spaces.settings.survey.createSurveyForm.form.description\")}\n \n )}\n\n \n \n \n {!props.acceptPayments && (\n <>\n \n setQuizMode(event.currentTarget.checked)}\n label=\"Enable quiz mode\"\n />\n \n {quizMode && (\n \n \n setShowScoreAndKey(event.currentTarget.checked)\n }\n label=\"After submit show score and answer key\"\n />\n \n )}\n\n \n setAllowRetake(event.currentTarget.checked)}\n label=\"Allow retake\"\n />\n \n\n \n setShowRedirect(event.currentTarget.checked)}\n label=\"Redirect to space on submit\"\n />\n \n {showRedirect && (\n \n \n ) : (\n \n )\n }\n searchable\n clearable\n limit={100}\n mt={5}\n data={children}\n {...form.getInputProps(\"redirect_to_space\")}\n label={\"Select a space to redirect on submit\"}\n placeholder={t(\n \"spaces.settings.main.additional.parentCircles.placeholder\"\n )}\n onSearchChange={(query) => onSearchChildren(query)}\n />\n \n )}\n \n )}\n\n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n \n \n );\n})\n\nexport default CreateSurveyMain\n","// import axios from 'axios';\n\nclass Survey {\n constructor() {\n if (this instanceof Survey) {\n throw Error('Survey class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, paginator, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/surveys.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchPayment = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n scope: \"payment\"\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/surveys.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchById = async (survey_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/surveys/${survey_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchUsers = async (survey_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/surveys/${survey_id}/users.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchByUser = async (survey_id, slug, user_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user_id\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/surveys/${survey_id}/user.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, survey, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n survey\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (survey_id, slug, survey, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n survey\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/surveys/${survey_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (survey_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/surveys/${survey_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDuplicate = async (survey_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys/${survey_id}/duplicate.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDownload = async (survey_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/surveys/${survey_id}/excel.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onAddToSpace = async (survey_id, slug, _params, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ..._params\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys/${survey_id}/add_to_spaces.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onTake = async (survey_id, slug, choices, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n choices: choices\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/surveys/${survey_id}/take.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDownloadExcel = async (slug, surveyId) => {\n window.open(`/api/v4/spaces/${slug}/surveys/${surveyId}/excel.xlsx?auth_token=${window.$currentUserAuthToken}`, '_blank').focus();\n }\n}\n\nexport default Survey;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Box,\n Group,\n Button,\n MantineProvider,\n Skeleton,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SurveyQuestion from \"./SurveyQuestion\";\nimport CreateSurveyMain from \"./CreateSurveyMain\";\n\nimport SurveyModel from \"../../../../models/Survey\";\nimport QuestionModel from \"../../../../models/Question\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport { DragDropContext, Droppable } from \"react-beautiful-dnd\";\nimport { useListState } from \"@mantine/hooks\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function CreateSurvey(props) {\n const [scheduled, setScheduled] = useState(false);\n\n const theme = useMantineTheme();\n\n // const [questions, setQuestions] = useState([])\n const [surveyId, setSurveyId] = useState(null);\n const { t, i18n } = useTranslation();\n const [questions, handlers] = useListState([]);\n const [currency, setCurrency] = useState(null);\n\n const [loading, setLoading] = useState(false);\n const [count, setCount] = useState(0);\n\n const form = useRef({});\n const timeoutId = useRef();\n\n useEffect(() => {\n if (props.survey && props.survey.id) {\n setLoading(true);\n setSurveyId(props.survey.id);\n onFetch();\n } else {\n if (!props.survey) {\n setSurveyId(null);\n handlers.setState([]);\n setCurrency(null);\n setCount(1)\n }\n }\n }, [props]);\n\n useEffect(() => {\n if (!props.spaceId || !surveyId || questions.length == 0) {\n return;\n }\n\n const order = questions.map((question, index) => {\n return { id: question.id, position: index };\n });\n\n QuestionModel.onReorder(\n props.spaceId,\n surveyId,\n order,\n (data) => {},\n (data) => {}\n );\n }, [questions]);\n\n const onFetch = () => {\n SurveyModel.onFetchById(\n props.survey.id,\n props.spaceId,\n (data) => {\n handlers.setState(data.questions);\n setCurrency(data.currency);\n\n setTimeout(() => {\n setLoading(false);\n setCount(1)\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const onCreate = (close=true) => {\n SurveyModel.onCreate(\n props.spaceId,\n form.current,\n (data) => {\n setSurveyId(data.id);\n \n setTimeout(() => {\n onPushNewQuestion();\n }, 100);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n }\n );\n };\n\n const onUpdate = (close=true) => {\n if (!surveyId) {\n return;\n }\n\n SurveyModel.onUpdate(\n surveyId,\n props.spaceId,\n form.current,\n (data) => {\n if (props.onAdd && close){\n props.onAdd(surveyId)\n }\n },\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n }\n );\n };\n\n const onUpdateQuestion = (question, index) => {\n const newQuestion = { ...questions[index] };\n if (!newQuestion.id || newQuestion.id == question.id) {\n newQuestion.id = question.id;\n newQuestion.content = question.content;\n newQuestion.question_type = question.question_type;\n\n newQuestion.answers = question.answers;\n handlers.setItem(index, newQuestion);\n }\n };\n\n const onUpdateLastQuestion = (id) => {\n const question = questions[questions.length - 1];\n question.new = false;\n question.id = id;\n handlers.setState([...questions]);\n };\n\n const onDestroyQuestion = (question) => {\n const newQuestions = [...questions];\n for (let i = 0; i < newQuestions.length; i++) {\n const _question = newQuestions[i];\n if (_question.id == question.id) {\n newQuestions.splice(i, 1);\n break;\n }\n }\n\n handlers.setState(newQuestions);\n };\n\n const onAddQuestion = () => {\n if (!surveyId) {\n onCreate();\n } else if (surveyId) {\n onPushNewQuestion();\n }\n };\n\n const onPushNewQuestion = () => {\n const newQuestions = [...questions];\n newQuestions.push({ new: true, position: questions.length + 1, content: `Question ${questions.length + 1}` });\n handlers.setState(newQuestions);\n };\n\n const onSave = (close=true) => {\n if (loading) {\n return;\n }\n if (!surveyId) {\n onCreate(close);\n } else if (surveyId) {\n onUpdate(close);\n }\n if (close){\n setTimeout(() => {\n props.setOpened(false);\n }, 500);\n }\n };\n\n const onUpdateForm = (_form) => {\n form.current = { ..._form };\n if (surveyId){\n if (timeoutId.current){\n clearTimeout(timeoutId.current)\n }\n timeoutId.current = setTimeout(() => {\n onSave(false)\n }, 1000)\n }\n };\n\n const onUpdateFormFull = () => {\n setCount(count + 1)\n };\n\n if (loading) {\n return (\n \n \n \n \n );\n }\n\n return (\n <>\n \n {\n if (source && destination){\n handlers.reorder({ from: source.index, to: destination.index });\n }\n }}\n >\n \n {(provided) => (\n
\n {questions.map((question, index) => {\n return (\n \n );\n })}\n {provided.placeholder}\n
\n )}\n
\n \n \n {!props.acceptPayments && (\n }\n sx={(theme) => ({\n // backgroundColor: theme.colors.sutrablue[3],\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n // backgroundColor: theme.colors.sutrablue[4],\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n })}\n onClick={() => onAddQuestion()}\n >\n {t(\n \"spaces.settings.survey.createSurveyForm.form.addQuestionButton\"\n )}\n \n )}\n \n \n }\n onClick={() => onSave()}\n >\n {t(\"spaces.settings.survey.createSurveyForm.form.saveButton\")}\n \n \n {props.extraButton && props.extraButton}\n \n \n \n \n );\n}\n","import React, { useState } from \"react\";\n\nimport { Text, Drawer, ScrollArea, useMantineTheme } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport CreateSurveyForm from \"./CreateSurveyForm\";\n\nexport default function CreateSurvey(props) {\n const [scheduled, setScheduled] = useState(false);\n const { t, i18n } = useTranslation();\n const theme = useMantineTheme();\n\n return (\n props.setOpened(false)}\n title={\n \n {!props.acceptPayments\n ? t(\"spaces.settings.survey.createSurvey.description\")\n : \"Flexible payment options\"}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n \n \n );\n}\n","import React from 'react';\n\nimport {\n Text,\n createStyles\n} from '@mantine/core';\n\nimport tinycolor from 'tinycolor2'\nimport { useSelector } from 'react-redux';\nimport useSidebarStyles from \"../../../../../utils/SidebarStyles\"\nimport isSpaceThemed from '../../../../../utils/IsSpaceThemed'\n\nconst useStyles = createStyles((theme, {colors, settingsView, context}) => ({\n freeformResponse: {\n display: 'flex',\n alignItems: 'flex-start',\n borderRadius: theme.radius.md,\n backgroundColor: isSpaceThemed(colors) && !settingsView && context != \"settings\" ? tinycolor(colors.sidebar_background_color).lighten(7).toString() : theme.colors.gray[1],\n paddingTop: 10,\n paddingBottom: 10,\n paddingRight: 10,\n paddingLeft: 10,\n marginTop: 10,\n width: \"100%\",\n fontSize: 14\n }\n}));\n\nexport default function TextBased(props) {\n\n const { settingsView } = useSidebarStyles();\n const colors = useSelector(state => state.colors);\n const { classes, cx } = useStyles({colors, settingsView, context: props.context});\n\n return (\n \n {props.response}\n \n )\n}\n","import React from \"react\";\n\nimport { Box, Title, createStyles } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { PieChart } from \"react-chartkick\";\nimport \"chartkick/chart.js\";\n\nimport TextBased from \"./responses/TextBased.jsx\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n paddingLeft: 15,\n backgroundColor: theme.white,\n marginTop: 15,\n width: \"100%\",\n },\n}));\n\nexport default function Summary(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n\n return (\n \n {props.survey\n ? props.survey.questions.map((question) => {\n return (\n \n {question.content}\n {question.question_type == \"freeform\"\n ? question.choices.map((choice) => {\n return ;\n })\n : \"\"}\n {question.question_type != \"freeform\" &&\n question.graph_data.length > 0 ? (\n \n ) : (\n \"\"\n )}\n {question.choices.length == 0 ? (\n \n ) : (\n \"\"\n )}\n \n );\n })\n : \"\"}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport { Title, Box, Select, createStyles, Text, Group } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport TextBased from \"./responses/TextBased.jsx\";\n\nimport SurveyModel from \"../../../../models/Survey\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme, { colors, context }) => ({\n item: {\n borderRadius: theme.radius.md,\n border: `1px solid ${\n isSpaceThemed(colors) && window.location.pathname.indexOf(\"/settings/surveys\") < 0 && context != \"settings\"\n ? tinycolor(colors.sidebar_background_color).toString()\n : theme.colors.gray[4]\n }`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n paddingLeft: 15,\n // backgroundColor: theme.white,\n backgroundColor: isSpaceThemed(colors) && window.location.pathname.indexOf(\"/settings/surveys\") < 0 && context != \"settings\"\n ? tinycolor(colors.sidebar_background_color).toString()\n : theme.white,\n color: isSpaceThemed(colors) && window.location.pathname.indexOf(\"/settings/surveys\") < 0 && context != \"settings\" ? colors.sidebar_text_color : \"#000\",\n marginTop: 15,\n width: \"100%\",\n },\n}));\n\nexport default function Individual(props) {\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx } = useStyles({ colors, context: props.context });\n const { t, i18n } = useTranslation();\n\n const [users, setUsers] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [choices, setChoices] = useState([]);\n\n useEffect(() => {\n if (props.survey && props.survey.id && props.spaceId) {\n getUsers();\n }\n if (props.selectedUser) {\n setSelectedUser(props.selectedUser);\n }\n }, [props]);\n\n useEffect(() => {\n if (selectedUser) {\n getChoices();\n }\n }, [selectedUser]);\n\n const getUsers = () => {\n SurveyModel.onFetchUsers(\n props.survey.id,\n props.spaceId,\n (data) => {\n setUsers(\n data.map((user) => {\n return { value: user.id, label: user.full_name };\n })\n );\n },\n (data) => {}\n );\n };\n\n const getChoices = () => {\n if (props.survey) {\n SurveyModel.onFetchByUser(\n props.survey.id,\n props.spaceId,\n selectedUser,\n (data) => {\n setChoices(data);\n },\n (data) => {}\n );\n }\n };\n\n const getQuizResults = () => {\n const total = groupQuestions().length;\n const correct = groupQuestions().filter((choice) => isQuestionCorrect(choice)).length;\n\n return `You got ${correct} out of ${total} correct`;\n };\n\n const groupQuestions = () => {\n const groups = []\n for (let i = 0; i < choices.length; i++) {\n const choice = choices[i];\n let exists = false\n for (let j = 0; j < groups.length; j++) {\n const group = groups[j];\n if (group.question.id == choice.question.id){\n group.answers.push({...choice.answer, content: choice.content})\n exists = true\n }\n }\n if (!exists){\n \n groups.push({...choice, answers: [{...choice.answer, content: choice.content}]})\n }\n }\n return groups\n }\n\n const isQuestionCorrect = (choice) => {\n \n for (let i = 0; i < choice.answers.length; i++) {\n const answer = choice.answers[i];\n if (!answer.is_correct && choice.question.question_type != \"freeform\"){\n return false\n }\n }\n\n return true\n }\n\n return (\n \n {!props.singleUser && (\n \n )}\n {props.survey?.quiz_mode && {getQuizResults()}}\n\n \n {groupQuestions().filter(choice => choice.content != null && choice.content != \"\").map((choice) => {\n return (\n \n \n {`${choice.question.content}`}\n {props.survey?.quiz_mode && (\n \n {isQuestionCorrect(choice) ? (\n \n ) : (\n \n )}\n \n {`${isQuestionCorrect(choice) ? choice.question.question_type == \"freeform\" ? \"Open\" : \"Correct\" : choice.question.question_type == \"freeform\" ? \"Open\" : \"Incorrect\"}`}\n \n \n )}\n \n {choice.answers.map(answer => )}\n \n {props.survey?.after_submit_show_score_and_keys &&\n choice.question.answer_key && (\n {`${choice.question.answer_key}`}\n )}\n \n );\n })}\n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Text,\n Box,\n Drawer,\n SegmentedControl,\n ScrollArea,\n} from '@mantine/core';\n\n\nimport { useTranslation } from 'react-i18next'\n\n\nimport Summary from './Summary'\nimport Individual from './Individual'\n\nimport SurveyModel from \"../../../../models/Survey\";\n\nexport default function ShowSurvey(props) {\n\n const [surveyType, setSurveyType] = useState(\"summary\");\n const { t, i18n } = useTranslation();\n const [survey, setSurvey] = useState(null)\n\n useEffect(() => {\n \n if (props.survey && props.survey.id){\n onFetch()\n }\n }, [props])\n\n const onFetch = () => {\n \n SurveyModel.onFetchById(props.survey.id, props.spaceId, (data) => {\n setSurvey(data)\n }, (data) => {\n\n })\n }\n\n const displaySurveyType = () => {\n if (surveyType == \"summary\") {\n return (\n \n )\n } else if (surveyType == \"individual\") {\n return (\n \n )\n } else {\n return (\n \n )\n }\n }\n\n return (\n props.setOpened(false)}\n title={{t(\"spaces.settings.survey.showSurvey.survey.title\")}}\n padding=\"xl\"\n size={600}\n >\n \n \n\n {displaySurveyType()}\n\n \n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n Menu,\n Group,\n Stack,\n Button,\n Badge,\n Divider,\n MantineProvider,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Copy, Edit } from \"tabler-icons-react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport SurveyModel from \"../../../../models/Survey\";\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\nimport { useDispatch } from \"react-redux\";\nimport { setTiptapSidemenu } from \"../../../../store/app\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function SurveyItem(props) {\n const dispatch = useDispatch()\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const [survey, setSurvey] = useState({});\n\n useEffect(() => {\n if (props.survey) {\n setSurvey(props.survey);\n }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(survey);\n };\n\n const onDuplicate = () => {\n SurveyModel.onDuplicate(\n survey.id,\n props.spaceId,\n (data) => {\n props.onUpdate(survey);\n },\n (data) => {}\n );\n };\n\n const onDownload = () => {\n SurveyModel.onDownload(\n survey.id,\n props.spaceId,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {}\n );\n };\n\n const onDownloadExcel = () => {\n // SurveyModel.onDownloadExcel(props.spaceId, survey.id);\n onDownload();\n };\n\n const onTake = () => {\n dispatch(\n setTiptapSidemenu({\n opened: \"takeSurvey\",\n option: {\n survey: { ...survey },\n },\n })\n );\n }\n\n const onDestroy = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This survey will be permanently deleted\",\n showDenyButton: true,\n confirmButtonText: \"Delete survey\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n SurveyModel.onDestroy(\n survey.id,\n props.spaceId,\n (data) => {\n props.onUpdate(survey);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n \n \n props.onSelect(survey)}\n sx={(theme) => ({\n color: sutraTheme.colors.sutrablue[3],\n fontWeight: 500,\n fontSize: 20,\n cursor: \"pointer\",\n })}\n >\n {survey.title}\n \n \n \n \n ({\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n },\n })}\n >\n \n \n }\n >\n }\n onClick={() => props.onAdd(survey)}\n >\n {t(\"spaces.settings.survey.surveyItem.item.addToSpace\")}\n \n }\n onClick={() => props.onSelect(survey)}\n >\n {t(\"spaces.settings.survey.surveyItem.item.open\")}\n \n }\n onClick={() => onTake()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.take\")}\n \n }\n onClick={() => onEdit()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.edit\")}\n \n }\n onClick={() => onDuplicate()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.duplicate\")}\n \n }\n onClick={() => onDownloadExcel()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.download\")}\n \n \n }\n color=\"red\"\n onClick={() => onDestroy()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.delete\")}\n \n \n \n \n \n ({ color: theme.colors.gray[6] })}\n >\n \n props.setOpened(true)}\n color=\"green\"\n sx={(theme) => ({\n \"&:hover\": {\n textDecoration: \"none\",\n cursor: \"pointer\",\n },\n })}\n >\n {survey.all_choices_count}{\" \"}\n {t(\"spaces.settings.survey.surveyItem.item.responses\")}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Box, Group, Button, createStyles } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nconst useStyles = createStyles((theme, sutraTheme) => ({\n primaryButtonStyle: {\n backgroundColor: sutraTheme.colors.sutrablue[3],\n color: \"#fff\",\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n },\n}));\n\nexport default function SurveyItem(props) {\n const { classes, cx, theme } = useStyles(sutraTheme);\n const { t, i18n } = useTranslation();\n const [survey, setSurvey] = useState({});\n\n useEffect(() => {\n // if (props.survey && props.survey.id != survey.id){\n setSurvey(props.survey);\n // }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(survey);\n };\n\n return (\n \n \n onEdit()}\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n >\n {t(\"spaces.settings.survey.paymentSurveyItem.item.editButton\")}\n \n {false && (\n props.onSelect(survey)}\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n >\n {t(\"spaces.settings.survey.paymentSurveyItem.item.viewButton\")}\n \n )}\n \n \n );\n}\n","// import axios from 'axios';\nimport { getNeo4jHost } from '../utils/Host';\nclass Manager {\n constructor() {\n if (this instanceof Manager) {\n throw Error('Manager class cannot be instantiated.');\n }\n }\n\n static onFetchNeo4j = async (slug, paginator, {scope, term}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n scope,\n term,\n ...paginator\n }\n\n await window.$api.get(`${getNeo4jHost()}/api/v1/spaces/${slug}/managers`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetch = async (slug, paginator, {scope, term}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n scope,\n term,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/managers.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n // TODO:\n static onCreate = async (slug, user_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user_id\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/managers.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (pod_manager_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/managers/${pod_manager_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Manager;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Drawer,\n Select,\n ScrollArea,\n Stack,\n Group,\n Button,\n MultiSelect,\n Divider,\n Loader,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SurveyModel from \"../../../../models/Survey\";\nimport SpaceModel from \"../../../../models/Space\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function Add(props) {\n const { t, i18n } = useTranslation();\n\n const [managers, setManagers] = useState([]);\n\n const [spaces, setSpaces] = useState([]);\n const [selectedSpaces, setSelectedSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false);\n\n const searchTimeoutId = useRef();\n\n const form = useForm({\n initialValues: {\n spaces_ids: \"\",\n user_id: \"\",\n },\n\n validate: {\n spaces_ids: (value) => (value.length > 0 ? null : \"Select a space\"),\n user_id: (value) => (value.length > 0 ? null : \"Select a sender\"),\n // structure_message: (value) => value.length > 0 ? null : \"Write a message\",\n },\n });\n\n useEffect(() => {\n if (props.spaceId) {\n onFetchSpaces();\n onFetchManagers();\n }\n }, [props]);\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n\n SpaceModel.onFetchChildren(\n props.spaceId,\n include,\n { page: 1, per: 10 },\n [\"active\", \"not_journey\", \"not_showcases\", \"not_list\", \"not_events\", \"not_interactive\"],\n (data) => {\n setSpaces(\n data.data.map((item) => ({ label: item.name, value: item.slug }))\n );\n },\n (data) => {}\n );\n };\n\n const onFetchManagers = () => {\n ManagerModel.onFetch(\n props.spaceId,\n { page: 1, per: 1000 },\n {},\n (data) => {\n const _managers = data.data.map((manager) => {\n return { label: manager.full_name, value: `${manager.user_id}` };\n });\n\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n const params = {\n ...form.values,\n };\n\n SurveyModel.onAddToSpace(\n props.survey.id,\n props.spaceId,\n params,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n onResetForm();\n },\n (data) => {}\n );\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"spaces_ids\", \"\");\n form.setFieldValue(\"user_id\", \"\");\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.survey.add.add.title\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n
onSave(values))}>\n \n \n {/**/}\n\n \n \n {t(\"spaces.settings.survey.add.add.spaces\")}\n \n \n ) : (\n \n )\n }\n {...form.getInputProps(\"spaces_ids\")}\n searchable\n mt={5}\n data={spaces}\n placeholder={t(\"spaces.settings.survey.add.add.placeholder1\")}\n maxDropdownHeight={400}\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n\n \n \n \n \n \n \n
\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Text,\n Checkbox,\n RadioGroup,\n Radio,\n Group,\n NumberInput,\n Box,\n Textarea,\n createStyles,\n} from \"@mantine/core\";\nimport { useTranslation } from \"react-i18next\";\nimport tinycolor from \"tinycolor2\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n questionWrap: {\n marginBottom: 20,\n },\n questionStyle: {\n fontSize: 18,\n color: colors.default_text_color,\n fontWeight: 700,\n },\n answerWrap: {\n marginTop: 10,\n },\n answerStyle: {\n color: colors.default_text_color,\n fontSize: 16,\n },\n radioStyle: {\n \"&:checked\": {\n backgroundColor: colors.primary_button_background_color,\n borderColor: colors.primary_button_background_color,\n },\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n}));\n\nconst Question = (props) => {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors, props });\n const { t, i18n } = useTranslation();\n const [question, setQuestion] = useState(null);\n const [choice, setChoice] = useState([]);\n const [priceChoice, setPriceChoice] = useState([]);\n\n useEffect(() => {\n if (!question) {\n setQuestion({ ...props.question });\n if (props.question.question_type == \"freeform\") {\n setChoice(\"\");\n } else {\n setChoice([]);\n }\n }\n }, [props]);\n\n useEffect(() => {\n props.onAddChoice(question, choice);\n }, [choice]);\n\n const isChosen = (answer_id) => {\n return choice.indexOf(`${answer_id}`) >= 0;\n };\n\n const unChose = (answer_id) => {\n const auxChoice = [...choice];\n auxChoice.splice(choice.indexOf(`${answer_id}`), 1);\n setChoice(auxChoice);\n };\n\n const onChose = (answer_id) => {\n if (props.question.question_type == \"single\") {\n const auxChoice = [];\n auxChoice.push(`${answer_id}`);\n setChoice(auxChoice);\n } else {\n if (isChosen(`${answer_id}`)) {\n unChose(`${answer_id}`);\n } else {\n const auxChoice = [...choice];\n auxChoice.push(`${answer_id}`);\n setChoice(auxChoice);\n }\n }\n };\n\n return (\n \n {props.question.content}\n {props.question.question_type == \"multiple\" &&\n props.question.answers.map((answer) => {\n return (\n \n onChose(answer.id)}\n label={answer.content}\n />\n \n );\n })}\n {props.question.question_type == \"single\" && (\n \n {props.question.answers.map((answer) => {\n return ;\n })}\n \n )}\n {props.question.question_type == \"payment\" &&\n props.question.answers.map((answer) => {\n return (\n \n onChose(answer.id)}\n label={answer.content}\n />\n setPriceChoice([answer.id, val])}\n />\n \n );\n })}\n {props.question.question_type == \"freeform\" && (\n setChoice(event.currentTarget.value)}\n />\n )}\n \n );\n};\n\nexport default Question;\n","import { useState } from 'react';\n\nexport default function useLangUser() {\n const getLangUser = () => {\n const locale = localStorage.getItem('locale');\n if (locale){\n window.$currentUserLanguage = locale ? locale : \"en\";\n }\n return locale ? locale : \"en\"\n };\n\n const [language, setLanguage] = useState(getLangUser());\n\n const saveLangUser = lang => {\n localStorage.setItem('locale', lang);\n window.$currentUserLanguage = lang;\n setLanguage(lang);\n };\n\n return {\n setLangUser: saveLangUser,\n language\n }\n}\n","import { DateTime } from \"luxon\";\n\nconst abbreviateTimezone = (timezone, date) => {\n const luxonDate = DateTime.fromISO(date);\n\n if (luxonDate.isInDST) {\n if (timezone == \"GMT+2\") {\n timezone = \"CEST\";\n } else if (timezone == \"GMT+3\") {\n timezone = \"EEST\";\n }\n return timezone;\n } else {\n if (timezone == \"GMT+1\") {\n timezone = \"CET\";\n } else if (timezone == \"GMT+2\") {\n timezone = \"EET\";\n }\n return timezone;\n }\n};\n\nexport const getTimeZone = (date, language) => {\n return abbreviateTimezone(\n DateTime.fromISO(date).setLocale(language).toFormat(\"ZZZZ\"),\n date\n );\n};\n\nexport const isSameDay = (startAt, endAt, language) => {\n language = \"en\";\n const startMonth = DateTime.fromISO(startAt)\n .setLocale(language)\n .toFormat(\"LLL\");\n const startDate = DateTime.fromISO(startAt).setLocale(language).toFormat(\"d\");\n const startYear = DateTime.fromISO(startAt).setLocale(language).toFormat(\"y\");\n\n const endMonth = DateTime.fromISO(endAt).setLocale(language).toFormat(\"LLL\");\n const endDate = DateTime.fromISO(endAt).setLocale(language).toFormat(\"d\");\n const endYear = DateTime.fromISO(endAt).setLocale(language).toFormat(\"y\");\n\n return startMonth == endMonth && startDate == endDate && startYear == endYear;\n};\n\nexport const simpleFormatDate = (\n date,\n language,\n format = \"LLL d\",\n format2 = \"LLL d cccc\",\n timeFormat = \"h:mm a\",\n timeZone = false\n) => {\n let dateString = \"\";\n language = \"en\";\n const currentYear = new Date().getFullYear().toString();\n const startMonth = DateTime.fromISO(date).setLocale(language).toFormat(\"LLL\");\n const startDate = DateTime.fromISO(date).setLocale(language).toFormat(\"d\");\n const startYear = DateTime.fromISO(date).setLocale(language).toFormat(\"y\");\n\n if (currentYear == startYear) {\n dateString = DateTime.fromISO(date)\n .setLocale(language)\n .toFormat(`${format}${timeFormat}`);\n } else {\n dateString = DateTime.fromISO(date)\n .setLocale(language)\n .toFormat(`${format2}${timeFormat}`);\n }\n\n if (timeFormat && timeZone) {\n dateString +=\n \" \" +\n abbreviateTimezone(\n DateTime.fromISO(date).setLocale(language).toFormat(\"ZZZZ\"),\n date\n );\n // dateString += \" \" + DateTime.fromISO(date).setLocale(language).toFormat('ZZZZ')\n }\n\n return dateString;\n};\n\nconst formatDate = (\n spaceCalendar,\n language,\n format1 = \"LLL d\",\n format2 = \"cccc, LLL d\"\n) => {\n language = \"en\";\n\n let dateString = \"\";\n const currentYear = new Date().getFullYear().toString();\n const startMonth = DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\");\n const startDate = DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\");\n const startYear = DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"y\");\n const startDay = DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"ccc\");\n const startTime = DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"h:mm\");\n const startMeridiem = DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"a\");\n const startTimezone = DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"ZZZZ\");\n\n if (spaceCalendar.has_start_date && spaceCalendar.has_end_date) {\n const endMonth = DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"LLL\");\n const endDate = DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"d\");\n const endYear = DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"y\");\n const endDay = DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"ccc\");\n const endTime = DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"h:mm\");\n\n if (\n startDate === endDate &&\n startMonth === endMonth &&\n startYear === endYear &&\n startYear === currentYear\n ) {\n // same day, month, and year\n dateString =\n DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(`${format2}, h:mm a`) +\n \" - \" +\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"h:mm a\") +\n \" \" +\n abbreviateTimezone(\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"ZZZZ\"),\n spaceCalendar.raw_end_date\n );\n } else if (\n startDate === endDate &&\n startMonth === endMonth &&\n startYear === endYear\n ) {\n // same day, month, different year\n dateString =\n DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(`${format2}, h:mm a`) +\n \" - \" +\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"h:mm a\") +\n `${endYear === currentYear ? \"\" : `, ${endYear}`}` +\n \" \" +\n abbreviateTimezone(\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"ZZZZ\"),\n spaceCalendar.raw_end_date\n );\n } else if (\n startMonth === endMonth &&\n startYear === endYear &&\n startYear === currentYear\n ) {\n // same month and year, different days\n dateString =\n DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(`${format1}, h:mm a`) +\n \" - \" +\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(`${format1}, h:mm a`) +\n `${endYear === currentYear ? \"\" : `, ${endYear}`}` +\n \" \" +\n abbreviateTimezone(\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"ZZZZ\"),\n spaceCalendar.raw_end_date\n );\n } else {\n // different month and years\n dateString =\n DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(`${format1}, h:mm a`) +\n `${startYear === endYear ? \"\" : `, ${startYear}`}` +\n \" - \" +\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(`${format1}, h:mm a`) +\n `${endYear === currentYear ? \"\" : `, ${endYear}`}` +\n \" \" +\n abbreviateTimezone(\n DateTime.fromISO(spaceCalendar.raw_end_date)\n .setLocale(language)\n .toFormat(\"ZZZZ\"),\n spaceCalendar.raw_end_date\n );\n }\n\n // dateString = DateTime.fromISO(spaceCalendar.raw_start_date).setLocale(language).toFormat('ccc, LLL d, h:mm a')\n // DateTime.fromISO(spaceCalendar.raw_end_date).setLocale(language).toFormat('ccc, LLL d, h:mm a ZZZZ')\n } else {\n dateString =\n DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(`${format2}, h:mm a`) +\n \" \" +\n abbreviateTimezone(\n DateTime.fromISO(spaceCalendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"ZZZZ\"),\n spaceCalendar.raw_start_date\n ) +\n `${startYear === currentYear ? \"\" : `, ${startYear}`}`;\n }\n\n return dateString;\n};\n\nexport default formatDate;\n","import { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nexport default function useActivityCounter(\n notificationTypes = \"all\",\n itemsIds = \"all\",\n itemsTypes = \"all\",\n itemsSlugs = \"all\"\n) {\n const user = useSelector((state) => state.user);\n\n const getCount = () => {\n if (!user || !user.activity) {\n return 0;\n }\n\n return user.activity.filter(\n (n) =>\n !n.is_seen &&\n (notificationTypes === \"all\" ||\n notificationTypes.indexOf(n.notification_type) >= 0) &&\n (((itemsIds === \"all\" || itemsIds.indexOf(n.item_slug) >= 0) &&\n (itemsTypes === \"all\" || itemsTypes.indexOf(n.item_type) >= 0)) ||\n ((itemsTypes === \"all\" || itemsTypes.indexOf(n.item_type) >= 0) &&\n (itemsSlugs === \"all\" ||\n itemsSlugs.indexOf(\n n.pod_messages.length > 0 ? n.pod_messages[0].pod_slug : \"\"\n ) >= 0)) ||\n ((itemsTypes === \"all\" || itemsTypes.indexOf(n.item_type) >= 0) &&\n (itemsSlugs === \"all\" ||\n itemsSlugs.indexOf(n.slug) >= 0 || itemsSlugs.indexOf(n.item_id) >= 0)) ||\n ((itemsTypes === \"all\" || itemsTypes.indexOf(n.item_type) >= 0) &&\n (itemsSlugs === \"all\" ||\n (n.parents_slugs &&\n itemsSlugs.some((item) => n.parents_slugs.includes(item))))) ||\n (notificationTypes.indexOf(\"parent_activity\") >= 0 &&\n itemsIds.some((item) => n.parents.includes(item))))\n ).length;\n };\n\n const [activityCount, setActivityCount] = useState(0);\n\n useEffect(() => {\n setActivityCount(getCount());\n }, [user, itemsSlugs]);\n\n return {\n activityCount,\n };\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\n\nimport {\n Box,\n Avatar,\n AvatarsGroup,\n Group,\n Badge,\n Stack,\n Text,\n Tooltip,\n createStyles,\n Skeleton,\n MantineProvider,\n Button,\n} from \"@mantine/core\";\nimport { useElementSize } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../utils/LangUser\";\nimport formatDate from \"../../../utils/formatDate\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\nimport useActivityCounter from \"../../../utils/ActivityCounter\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors, publishOnDate }, getRef) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: \"10px\",\n // backgroundColor: theme.colors.gray[0],\n // backgroundColor: isSpaceThemed(colors)\n // ? tinycolor(colors.background_color).darken(1).toString()\n // : theme.colors.gray[0],\n\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n minHeight: 95,\n padding: \"20px 25px\",\n // margin: \"15px 0px\",\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n\n spaceListItemHasHeader: {\n \"&:hover\": {\n color: \"#fff\",\n },\n },\n\n title: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n fontSize: \"1.7em\",\n lineHeight: \"1.1em\",\n fontWeight: 550,\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n titleHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n textDecoration: \"none\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n date: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n dateHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockWrap: {\n padding: \"7px 16px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.default_text_color : \"#000\"\n }`,\n marginRight: 5,\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n },\n\n dateBlockWrapHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n border: `1px solid #fff`,\n // boxShadow: \"1px 1px #000000\",\n boxShadow: \"1px 1px 1px rgba(0, 0, 0, 0.5)\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 20,\n lineHeight: 1,\n marginBottom: 5,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n },\n\n titleSm: {\n fontSize: \"1.2em\",\n },\n\n dateSm: {\n fontSize: \".9em\",\n },\n}));\n\nexport default function ListContent(props) {\n const { t, i18n } = useTranslation();\n\n const isUnpublished = () => {\n return (\n space && space.launch_on_date && new Date() < new Date(space.launch_time)\n );\n };\n\n const colors = useSelector((state) => state.colors);\n const navigate = useNavigate();\n const [space, setSpace] = useState(null);\n const { classes, cx, theme } = useStyles({\n colors: colors?.is_vision_builder ? defaultSpaceColors : colors,\n publishOnDate: isUnpublished() ? space.launch_on_date : \"\",\n });\n let _width = theme.other.breakpoints.lg;\n const { ref, width, height } = useElementSize();\n const [avatarLimit, setAvatarLimit] = useState(4);\n const [showAvatars, setShowAvatars] = useState(true);\n\n const { language, setLangUser } = useLangUser();\n\n const updateSpace = useSelector((state) => state.listSpaceToUpdate);\n\n const propsTimeoutId = useRef();\n const updating = useRef();\n\n let auxId = props.fetchId;\n if (!auxId) {\n auxId = props.space ? props.space.slug : \"\";\n }\n\n const { activityCount } = useActivityCounter(\n props.space && [\"list\", \"events\", \"showcase\"].indexOf(props.space.version) >= 0 ? [\"parent_activity\"] : [\"pod_message\", \"parent_activity\", \"reflection\", \"user_message\"],\n [`${auxId}`],\n [\"pod_message\", \"pod\"],\n [`${auxId}`]\n );\n\n useEffect(() => {\n if (space && updateSpace.slug == space.slug) {\n updating.current = true;\n onFetchSpace(props.fetchId ? props.fetchId : updateSpace.slug);\n }\n }, [updateSpace]);\n\n useEffect(() => {\n if (updating.current) {\n updating.current = false;\n return;\n }\n if (props.space) {\n if (propsTimeoutId.current) {\n clearTimeout(propsTimeoutId.current);\n }\n propsTimeoutId.current = setTimeout(() => {\n updating.current = true;\n setSpace({ ...props.space });\n }, 200);\n } else if (!space && props.fetch) {\n onFetchSpace(props.fetchId);\n }\n }, [space]);\n\n useEffect(() => {\n _width = width > 0 ? width : _width;\n\n if (_width < theme.other.breakpoints.xs) {\n setShowAvatars(false);\n } else if (_width < theme.other.breakpoints.md) {\n setShowAvatars(true);\n setAvatarLimit(4);\n } else {\n setShowAvatars(true);\n setAvatarLimit(4);\n }\n\n // console.log(\"width: \", width)\n // console.log(\"_width: \", _width)\n // console.log(\"theme.other.breakpoints.xs: \", theme.other.breakpoints.xs )\n // console.log(\"_width < theme.other.breakpoints.xs: \", _width < theme.other.breakpoints.xs)\n // console.log(\"showAvatars: \", showAvatars)\n }, [width]);\n\n const onFetchSpace = (id) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchSimpleShow(\n id,\n [\"members\", \"last_messages\"],\n (data) => {\n try {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n last_messages: last_messages,\n last_message: last_message,\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n } catch {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n }\n\n if (props.onSpaceFetched) {\n props.onSpaceFetched(data);\n }\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n };\n\n const onAvatarClick = (event, member) => {\n event.stopPropagation();\n event.preventDefault();\n navigate(member.link);\n };\n\n const formatDateTime = (timestamp) => {\n if (space && space.launch_time) {\n const d = new Date(space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n return (\n <>\n {space ? (\n \n \n \n {space.calendar.has_start_date && (\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n )}\n ({\n height: \"100%\",\n })}\n >\n \n {width <\n (theme.other.breakpoints.xs ||\n width < theme.other.breakpoints.md) &&\n space.name.length > 15 ? (\n \n \n {space.name}\n \n \n ) : (\n \n {space.name}\n \n )}\n \n {space.calendar.has_start_date ? (\n \n {formatDate(space.calendar, language)}\n \n ) : (\n \"\"\n )}\n {space.tagged_with && (\n \n {space.tagged_with.map((tag) => {\n return (\n theme.other.tagColors[tag.color] && (\n ({\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color]\n .backgroundColor\n : \"white\",\n color: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].textColor\n : \"black\",\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[\n tag.color\n ]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n >\n {tag.name}\n \n )\n );\n })}\n \n )}\n \n \n \n {isUnpublished() && (\n \n \n }\n >\n {\" \"}\n {formatDateTime()}\n \n \n \n )}\n {space.privacy_level === \"private\" ? (\n \n ({\n color: !space.header.url ? theme.colors.gray[6] : \"white\",\n })}\n >\n \n \n \n ) : (\n \"\"\n )}\n {activityCount > 0 && (\n \n {activityCount}\n \n )}\n {showAvatars &&\n space &&\n space.members &&\n typeof space.members != \"string\" &&\n space.members.length > 0 ? (\n <>\n \n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n ) : (\n \"\"\n )}\n \n \n \n ) : (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n}\n","import axios from 'axios';\n\nclass Like {\n constructor() {\n if (this instanceof Like) {\n throw Error('Like class cannot be instantiated.');\n }\n }\n\n static onCreate = async ({pod_id, pod_message_id, reflection_reflection_id}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n pod_id,\n pod_message_id,\n reflection_reflection_id\n }\n\n await axios.post(`/api/v4/likes.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onUsers = async ({pod_id, pod_message_id, reflection_reflection_id}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n pod_id,\n pod_message_id,\n reflection_reflection_id\n }\n\n await axios.get(`/api/v4/likes/users.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n}\n\nexport default Like;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport LikeModel from \"../../models/Like\";\n\nimport {\n Text,\n Group,\n Box,\n createStyles,\n Tooltip,\n Loader,\n Center,\n} from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport isDark from \"../../utils/IsDarkColor\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n footerElements: {\n cursor: \"pointer\",\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n \"&:hover\": {\n color: colors.default_text_color,\n },\n },\n abstract: {\n minWidth: \"40px\",\n textDecoration: \"none\",\n color: colors.default_text_color,\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n}));\n\nexport default function LikeButton(props) {\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const navigate = useNavigate();\n const params = useParams();\n\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n\n const { classes, cx, theme } = useStyles({\n colors: getColors(),\n });\n\n const [liked, setLiked] = useState(false);\n const [count, setCount] = useState(0);\n const [hovered, setHovered] = useState(false);\n const [users, setUsers] = useState([]);\n const [tooltip, setTooltip] = useState(false);\n\n const propsLoaded = useRef();\n const loaded = useRef();\n const likedR = useRef();\n const usersLoaded = useRef(false);\n const usersLoadedTimeoutId = useRef();\n\n useEffect(() => {\n // if (propsLoaded.current){\n // return\n // }\n propsLoaded.current = true\n setLiked(props.liked);\n likedR.current = props.liked;\n setCount(parseInt(props.count || \"0\"));\n }, [props]);\n\n const onLike = (event) => {\n event.stopPropagation();\n\n if (!user.authenticated) {\n localStorage.setItem(\"join_slug\", props.spaceId || params.slug);\n navigate(`/user/start?s=${props.spaceId || params.slug}`);\n return;\n }\n\n if (loaded.current){\n clearTimeout(loaded.current)\n }\n\n loaded.current = setTimeout(() => {\n LikeModel.onCreate(\n {\n pod_id: props.spaceId,\n pod_message_id: props.messageId,\n reflection_reflection_id: props.reflectionId,\n },\n (data) => {\n \n likedR.current = data.data.liked;\n setLiked(likedR.current);\n let newCount = likedR.current ? count + 1 : count - 1\n if (newCount < 0){\n newCount = 0\n }\n setCount(newCount);\n if (props.callback) {\n props.callback(data.data.liked);\n }\n },\n (data) => {}\n );\n }, 50)\n\n };\n\n const onUsers = () => {\n if (usersLoadedTimeoutId.current) {\n clearTimeout(usersLoadedTimeoutId.current);\n }\n\n usersLoadedTimeoutId.current = setTimeout(() => {\n LikeModel.onUsers(\n {\n pod_id: props.spaceId,\n pod_message_id: props.messageId,\n reflection_reflection_id: props.reflectionId,\n },\n (data) => {\n usersLoaded.current = true;\n setUsers(data);\n },\n (data) => {}\n );\n }, 500);\n };\n\n const onMouseEnter = (event) => {\n onUsers();\n setHovered(true);\n if (count > 0){\n setTooltip(true)\n }\n };\n\n const onMouseLeave = (event) => {\n setHovered(false);\n if (count > 0){\n setTooltip(false)\n }\n };\n\n const getUsers = () => {\n const array = [];\n const size = users.length > 10 ? 10 : users.length\n for (let i = 0; i < size; i++) {\n array.push({users[i]});\n }\n if (users.length > 10){\n array.push({`plus ${users.length - 10} more`});\n }\n return array;\n };\n\n return (\n 0 ? (\n getUsers()\n ) : usersLoaded.current ? (\n No likes yet\n ) : (\n
\n \n
\n )\n }\n >\n \n onLike(event)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n \n {liked ? (\n hovered ? (\n \n ) : (\n \n )\n ) : hovered ? (\n \n ) : (\n \n )}\n \n\n \n {count ? count : 0}\n \n \n \n \n );\n}\n","import axios from 'axios';\n\nclass Message {\n constructor() {\n if (this instanceof Message) {\n throw Error('Message class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, _params, page, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n page: page,\n space_id: slug,\n ..._params,\n render_as: \"index\",\n update_last_seen: _params.update_last_seen == false ? null : true\n }\n\n await axios.get(`/api/v4/messages.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onFetchById = async (id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug\n }\n\n await axios.get(`/api/v4/messages/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onCreate = async (slug, {json, html, message_type, privacy, auto_tag}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n content: json,\n message_body: html,\n space_id: slug,\n message_type,\n privacy,\n auto_tag\n }\n\n await axios.post(`/api/v4/messages.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onUpdate = async (id, {json, html}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n content: json,\n message_body: html,\n }\n\n await axios.put(`/api/v4/messages/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onMakePublic = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n\n await axios.post(`/api/v4/messages/${id}/make_public.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onMakePrivate = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n\n await axios.post(`/api/v4/messages/${id}/make_private.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onPinMessage = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await axios.post(`/api/v4/messages/${id}/pin_message.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onDestroy = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await axios.delete(`/api/v4/messages/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onUnread = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n }\n\n await axios.get(`/api/v4/messages/unread.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onFetchAiSummary = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n }\n\n await axios.get(`/api/v4/messages/ai_summary.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onAiSummaryTrigger = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n }\n\n await axios.post(`/api/v4/messages/ai_summary_trigger.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onHighlightEvent = async (slug, id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n }\n\n await axios.post(`/api/v4/messages/${id}/highlight_event.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onGenerateContext = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n }\n\n await axios.post(`/api/v4/messages/generate_ai_context.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onSuggestedPrompt = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n }\n\n await axios.post(`/api/v4/messages/generate_ai_prompt.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onDummyPosts = async (slug, email, prompt, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n email,\n prompt\n }\n\n await axios.post(`/api/v4/messages/generate_ai_dummy_posts.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onTriggerActions = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug\n }\n\n await axios.post(`/api/v4/messages/trigger_ai_actions.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onTriggerDispatcher = async (slug, email, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n email\n }\n\n await axios.post(`/api/v4/messages/trigger_ai_dispatcher.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onTriggerAction = async (slug, email, action_slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n action_slug,\n email\n }\n\n await axios.post(`/api/v4/messages/trigger_ai_action.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onGetMemberActions = async (slug, email, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n email\n }\n\n await axios.get(`/api/v4/messages/get_member_actions.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n}\n\nexport default Message;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Box,\n Menu,\n Image,\n ScrollArea,\n Avatar,\n AvatarsGroup,\n Group,\n Grid,\n Badge,\n Stack,\n Text,\n Tooltip,\n createStyles,\n Skeleton,\n Button,\n ActionIcon,\n Indicator,\n MantineProvider\n} from \"@mantine/core\";\nimport { useElementSize, useMediaQuery } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../utils/LangUser\";\nimport formatDate from \"../../../utils/formatDate\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport useActivityCounter from \"../../../utils/ActivityCounter\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport LikeButton from \"../../likes/Button\";\n\nimport MessageModel from \"../../../models/Message\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nconst useStyles = createStyles(\n (theme, { colors, publishOnDate, isDark, listFlatView }, getRef) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: listFlatView ? \"0px\" : \"10px\",\n backgroundColor: listFlatView\n ? \"none\"\n : isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(1).toString()\n : tinycolor(colors.background_color).darken(1).toString(),\n\n padding: listFlatView ? \"35px 20px\" : \"20px 20px 15px\",\n border: listFlatView\n ? \"none\"\n : isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n\n display: \"flex\",\n // alignItems: \"center\",\n width: \"100%\",\n // marginBottom: \"0px\",\n\n \"&:hover\": {\n // boxShadow: listFlatView ? \"none\" : \"0px 0px 2px 0px rgba(0,0,0,0.4)\",\n boxShadow: listFlatView ? \"none\" : \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(2).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n cursor: \"pointer\",\n textDecoration: \"none\",\n },\n },\n\n spaceListItemHasHeader: {\n \"&:hover\": {\n color: \"#fff\",\n },\n },\n\n title: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n fontSize: \"1.5em\",\n lineHeight: \"1.3em\",\n fontWeight: 600,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n titleGroup: {\n marginTop: 10,\n },\n datePosted: {\n color: tinycolor(colors.default_text_color).lighten(10).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n \"overflow-wrap\": \"break-word\",\n \"word-wrap\": \"break-word\",\n\n \"-ms-word-break\": \"break-all\",\n /* This is the dangerous one in WebKit, as it breaks things wherever */\n \"word-break\": \"break-all\",\n /* Instead use this non-standard one: */\n \"word-break\": \"break-word\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n footerElements: {\n cursor: \"pointer\",\n color: colors.default_text_color,\n \"&:hover\": {\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString()\n },\n },\n\n buttonStyle: {\n color: colors.default_text_color,//.lighten(50).toString(),\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n\n titleHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n textDecoration: \"none\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n date: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n dateHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockWrap: {\n padding: \"4px 8px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.default_text_color : \"#000\"\n }`,\n marginRight: 5,\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n },\n\n dateBlockWrapHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n border: `1px solid #fff`,\n // boxShadow: \"1px 1px #000000\",\n boxShadow: \"1px 1px 1px rgba(0, 0, 0, 0.5)\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 17,\n lineHeight: 1,\n marginBottom: 3,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n fontSize: 13,\n },\n\n dateScheduled: {\n fontSize: 16,\n lineHeight: \"1.4\",\n },\n\n titleSm: {\n fontSize: \"1.2em\",\n },\n\n dateSm: {\n fontSize: \".9em\",\n },\n })\n);\n\nexport default function ListContent(props) {\n const { t, i18n } = useTranslation();\n\n const isUnpublished = () => {\n return (\n space && space.launch_on_date && new Date() < new Date(space.launch_time)\n );\n };\n\n const { activityCount } = useActivityCounter(\n props.space && [\"list\", \"events\", \"showcase\"].indexOf(window.location.pathname.split(\"/\")[3]) >= 0 ? [\"parent_activity\"] : [\"pod_message\", \"parent_activity\", \"reflection\", \"user_message\"],\n [props.space.slug],\n [\"pod_message\", \"pod\"],\n [props.space.slug]\n );\n\n const colors = useSelector((state) => state.colors);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const [space, setSpace] = useState(null);\n const [permissions, setPermissions] = useState({ unload: true });\n const { classes, cx, theme } = useStyles({\n colors,\n publishOnDate: isUnpublished() ? space.launch_on_date : \"\",\n isDark: isDark,\n listFlatView: props.listFlatView,\n });\n\n let _width = theme.other.breakpoints.lg;\n const { refSize, width, height } = useElementSize();\n const [avatarLimit, setAvatarLimit] = useState(4);\n const [showAvatars, setShowAvatars] = useState(true);\n const [newComments, setNewComments] = useState(0);\n\n const { language, setLangUser } = useLangUser();\n\n const updateSpace = useSelector((state) => state.listSpaceToUpdate);\n\n const propsTimeoutId = useRef();\n const updating = useRef();\n const updateCount = useRef(0);\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n useEffect(() => {\n if (inView) {\n onFetchNewComments();\n }\n }, [inView]);\n\n useEffect(() => {\n if (space && updateSpace.slug == space.slug) {\n updating.current = true;\n onFetchSpace(props.fetchId ? props.fetchId : updateSpace.slug);\n }\n }, [updateSpace]);\n\n useEffect(() => {\n if (updating.current) {\n updating.current = false;\n return;\n }\n if (props.space) {\n updating.current = true;\n setSpace({ ...props.space });\n } else if (!space && props.fetch) {\n onFetchSpace(props.fetchId);\n }\n }, [space]);\n\n useEffect(() => {\n if (props.space && updateCount.current != props.space.update_count) {\n updateCount.current = props.space.update_count\n ? props.space.update_count\n : 0;\n // if (propsTimeoutId.current) {\n // clearTimeout(propsTimeoutId.current);\n // }\n // propsTimeoutId.current = setTimeout(() => {\n // }, 1000);\n updating.current = true;\n setSpace({ ...props.space });\n }\n }, [props]);\n\n useEffect(() => {\n _width = width > 0 ? width : _width;\n\n if (_width < theme.other.breakpoints.xs) {\n setShowAvatars(false);\n } else if (_width < theme.other.breakpoints.md) {\n setShowAvatars(true);\n setAvatarLimit(4);\n } else {\n setShowAvatars(true);\n setAvatarLimit(4);\n }\n }, [width]);\n\n const onFetchNewComments = () => {\n MessageModel.onUnread(\n space.slug,\n (data) => {\n setNewComments(data.count);\n },\n (data) => {}\n );\n };\n\n const onFetchSpace = (id) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchSimpleShow(\n id,\n [\"members\", \"last_messages\"],\n (data) => {\n try {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n last_messages: last_messages,\n last_message: last_message,\n abstract: data.abstract ? data.abstract : data.space.abstract,\n is_pinned: props.space?.is_pinned || { is_pinned: false }\n });\n } catch {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n abstract: data.abstract ? data.abstract : data.space.abstract,\n is_pinned: props.space?.is_pinned || { is_pinned: false }\n });\n }\n if (props.onSpaceFetched) {\n props.onSpaceFetched(data);\n }\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n };\n\n const onAvatarClick = (event, member) => {\n event.stopPropagation();\n event.preventDefault();\n navigate(member.link);\n };\n\n const formatDateTime = (timestamp) => {\n if (space && space.launch_time) {\n const d = new Date(space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n const onPin = () => {\n SpaceModel.onPin(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.slug, data.is_pinned ? \"pin\" : \"unpin\");\n }\n },\n (data) => {}\n );\n };\n\n const onEditPost = () => {\n props.onUpdate(space.slug, \"edit\");\n };\n\n const onThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-upload\");\n };\n\n const onRemoveThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-delete\");\n };\n\n const onDelete = () => {\n if (space.is_linked) {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onUnlink(\n space.slug,\n window.location.href.split(\"/\")[4],\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.slug, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n } else {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onDestroy(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.slug, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n }\n };\n\n const openProfile = (event) => {\n event.stopPropagation();\n if (space.user) {\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: space.user.username })\n );\n }\n };\n\n const getLink = () => {\n return `/space/${space.slug}/${space.version}`;\n };\n\n const onEdit = () => {\n navigate(`${getLink()}?edit=true`);\n };\n\n const onMenuOpenned = (event) => {\n event.stopPropagation();\n if (permissions.unload) {\n SpaceModel.onPermissions(\n space.slug,\n (data) => {\n setPermissions(data);\n },\n (data) => {}\n );\n }\n };\n\n const commentsPluralization = () => {\n if (newComments > 1){\n return `${newComments} new comments`\n }\n else{\n return `${newComments} new comment`\n }\n }\n\n const uniqueByKey = (array, key) => {\n const uniqueKeys = new Set();\n return array.filter(item => {\n const isUnique = !uniqueKeys.has(item[key]);\n if (isUnique) {\n uniqueKeys.add(item[key]);\n }\n return isUnique;\n });\n };\n\n const gallery_feature = props.space?.gallery_feature || space?.gallery_feature;\n\n return (\n <>\n {space ? (\n \n {props.showAuthor && (\n \n openProfile(event)}\n radius=\"xl\"\n size={40}\n key={`member-avatar-${new Date()}`}\n src={\n space.user && space.user.avatar && space.user.avatar.url\n ? space.user.avatar.url\n : DefaultAvatar\n }\n component=\"span\"\n />\n \n openProfile(event)}\n className={classes.abstract}\n weight={600}\n sx={{\n lineHeight: \"1\",\n }}\n mb={6}\n >\n {space.user ? space.user.full_name : \"No longer registered\"}\n \n\n {props.listShowTimestamp && (\n \n {/* March 31 at 5:23 AM */}\n {formatDate(\n { raw_start_date: space.created_at },\n language,\n \"LLL d\",\n \"LLL d\"\n )}\n \n )}\n \n \n )}\n setNewComments(0)}\n >\n \n \n \n {activityCount > 0 ? (\n \n {\"\"}\n \n ) : (\n \"\"\n )}\n {space.name}\n \n \n\n {props.listShowPreviewText && (\n \n {space?.abstract || props.space?.abstract}\n \n )}\n\n {space.calendar.has_start_date && (\n \n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n\n \n {formatDate(space.calendar, language)}\n \n \n )}\n {isUnpublished() && (\n \n \n }\n >\n {\" \"}\n {formatDateTime()}\n \n \n \n )}\n\n {space.tagged_with && (\n \n {uniqueByKey(space.tagged_with, \"name\").filter(Boolean).map((tag) => {\n return (\n ({\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n color: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].textColor\n : \"black\",\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n >\n {tag.name}\n \n );\n })}\n \n )}\n \n {gallery_feature?.url && props.listShowThumbnail && (\n \n )}\n \n \n \n \n {props.listAllowLikes && (\n \n )}\n {props.listShowComments && (\n <>\n \n {props.space?.comments_count || space.comments_count}\n \n )}\n\n {props.listShowMembers &&\n space &&\n space.members &&\n typeof space.members != \"string\" &&\n space.members.length > 0 && (\n <>\n \n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n )}\n\n {props.listShowComments && newComments > 0 && (\n <>\n {commentsPluralization()}\n \n )}\n \n \n {space?.is_pinned?.is_pinned && (\n \n )}\n {!props.noActions && (\n onMenuOpenned(event)}\n withArrow\n placement=\"end\"\n control={\n onMenuOpenned(event)}\n className={classes.buttonStyle}\n >\n \n \n }\n >\n \n {t(\"spaces.header.buttons.openFullScreen\")}\n \n {props.canPin && (\n onPin()}>\n {space?.is_pinned?.is_pinned\n ? t(\"spaces.presentations.gridPost.actions.unpin\")\n : t(\"spaces.presentations.gridPost.actions.pin\")}\n \n )}\n {permissions.can_edit && (\n onEditPost()}>\n {\"Edit title or preview text\"}\n \n )}\n {permissions.can_edit && !gallery_feature.url && (\n onThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.addThumbnail\"\n )}\n \n )}\n {permissions.can_edit && gallery_feature.url && (\n onRemoveThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.removeThumbnail\"\n )}\n \n )}\n {permissions.can_edit && (\n onEdit()}>\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n )}\n {!space.isPost && permissions.can_delete && (\n \n props.onDuplicate(space.slug, space.name)\n }\n >\n {t(\"spaces.presentations.gridPost.actions.duplicate\")}\n \n )}\n {permissions.can_delete && (\n onDelete()}>\n {space.is_linked\n ? t(\"spaces.presentations.gridPost.actions.unlink\")\n : t(\"spaces.presentations.gridPost.actions.delete\")}\n \n )}\n \n )}\n \n \n \n \n ) : (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef, memo } from \"react\";\n\nimport { useNavigate, Link } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Box,\n Image,\n Avatar,\n AvatarsGroup,\n Group,\n Stack,\n Text,\n Menu,\n createStyles,\n Skeleton,\n ActionIcon,\n Tooltip,\n Button,\n MantineProvider,\n Badge,\n} from \"@mantine/core\";\nimport { useElementSize } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../utils/LangUser\";\nimport formatDate from \"../../../utils/formatDate\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\nimport useActivityCounter from \"../../../utils/ActivityCounter\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LikeButton from \"../../likes/Button\";\n\nimport MessageModel from \"../../../models/Message\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nconst useStyles = createStyles(\n (theme, { colors, publishOnDate, isDark, listFlatView }, getRef) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: listFlatView ? \"0px\" : \"10px\",\n backgroundColor: listFlatView\n ? \"none\"\n : isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(1).toString()\n : tinycolor(colors.background_color).darken(1).toString(),\n // backgroundColor: theme.colors.gray[0],\n // backgroundColor: isSpaceThemed(colors)\n // ? tinycolor(colors.sidebar_background_color).toString()\n // : theme.colors.gray[0],\n // background: !publishOnDate ? \"repeating-linear-gradient(-45deg,#ddd,#ddd 1px,#f9f9f9 1px,#f9f9f9 10px)\" : \"\",\n // minHeight: 95,\n // height: 210,\n // padding: \"15px 20px\",\n // margin: \"15px 0px\",\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n\n // border: isSpaceThemed(colors)\n // ? // ? `1px solid ${colors.default_text_color}`\n // `1px solid ${\n // isDark(colors.background_color)\n // ? tinycolor(colors.background_color).lighten(20).toString()\n // : tinycolor(colors.background_color).darken(20).toString()\n // }`\n // : `1px solid #e9ecef`,\n\n border: listFlatView\n ? \"none\"\n : isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n\n // \"&:hover\": {\n // // backgroundColor: theme.colors.gray[0],\n // // backgroundColor: isSpaceThemed(colors)\n // // ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n // // : theme.colors.gray[0],\n // // backgroundColor: tinycolor(colors.background_color).darken(2).toString(),\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.4)\",\n // cursor: \"pointer\",\n // // color: \"#000\",\n // textDecoration: \"none\",\n // },\n\n \"&:hover\": {\n // boxShadow: listFlatView ? \"none\" : \"0px 0px 2px 0px rgba(0,0,0,0.4)\",\n boxShadow: listFlatView ? \"none\" : \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n // backgroundColor: tinycolor(colors.background_color)\n // .darken(3)\n // .toString(),\n\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(2).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n cursor: \"pointer\",\n textDecoration: \"none\",\n },\n },\n\n title: {\n textDecoration: \"none\",\n // color: \"#000\",\n // color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n color: colors.default_text_color,\n fontSize: \"1.6em\",\n lineHeight: \"1.3em\",\n fontWeight: 700,\n margin: 0,\n\n // height: 50,\n // backgroundColor: \"red\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n titleGroup: {\n margin: listFlatView ? \"15px 10px 0px\" : \"15px 20px 0px\",\n },\n\n commentsCount: {\n padding: listFlatView ? \"5px 10px 0px\" : \"5px 20px 0px\",\n textAlign: \"left\",\n width: \"100%\",\n color: colors.default_badge_color,\n fontWeight: 600\n },\n\n abstract: {\n textDecoration: \"none\",\n // color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n color: colors.default_text_color,\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n abstractWrap: {\n // height: 60,\n // width: \"100%\",\n margin: listFlatView ? \"5px 10px 10px\" : \"5px 20px 10px\",\n // backgroundColor: \"blue\",\n },\n\n titleAndAbstractWrap: {\n width: \"100%\",\n // height: 150,\n },\n\n avatarWrap: {\n margin: listFlatView ? \"0px 10px 10px\" : \"0px 20px 10px\",\n },\n\n footerWrap: {\n margin: listFlatView ? \"0px 10px 10px 12px\" : \"0px 10px 10px 22px\",\n },\n\n tagWrap: {\n margin: listFlatView ? \"0px 10px 5px 10px\" : \"0px 10px 5px 15px\",\n },\n\n // titleHasHeader: {\n // color: \"#fff\",\n // textShadow: \"1px 1px #000000\",\n // textDecoration: \"none\",\n //\n // \"&:hover\": {\n // color: \"#fff\",\n // textDecoration: \"none\",\n // },\n // },\n\n thumbnailImageStyle: {\n width: \"100%\",\n // paddingLeft: 10,\n // paddingRight: 10,\n borderTopLeftRadius: listFlatView ? 0 : 10,\n borderTopRightRadius: listFlatView ? 0 : 10,\n },\n\n footerElements: {\n cursor: \"pointer\",\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n \"&:hover\": {\n color: colors.default_text_color,\n },\n },\n\n buttonStyle: {\n // borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(50).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n // paddingLeft: 12,\n // paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n\n date: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n dateHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateSection: {\n margin: listFlatView ? \"5px 10px 5px\" : \"5px 20px 5px\",\n },\n\n dateBlockWrap: {\n padding: \"4px 10px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.default_text_color : \"#000\"\n }`,\n // marginRight: 5,\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n },\n\n dateBlockWrapHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n border: `1px solid #fff`,\n // boxShadow: \"1px 1px #000000\",\n boxShadow: \"1px 1px 1px rgba(0, 0, 0, 0.5)\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 15,\n lineHeight: 1,\n marginBottom: 3,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n fontSize: 11,\n },\n\n dateScheduled: {\n fontSize: 13,\n lineHeight: \"1.4\",\n },\n\n titleSm: {\n fontSize: \"1.2em\",\n },\n\n dateSm: {\n fontSize: \".9em\",\n },\n })\n);\n\nconst ListContent = (props) => {\n const { t, i18n } = useTranslation();\n const isUnpublished = () => {\n return (\n space && space.launch_on_date && new Date() < new Date(space.launch_time)\n );\n };\n\n const { activityCount } = useActivityCounter(\n props.space &&\n [\"list\", \"events\", \"showcase\"].indexOf(\n window.location.pathname.split(\"/\")[3]\n ) >= 0\n ? [\"parent_activity\"]\n : [\"pod_message\", \"parent_activity\", \"reflection\", \"user_message\"],\n [props.space.slug],\n [\"pod_message\", \"pod\"],\n [props.space.slug]\n );\n\n const colors = useSelector((state) => state.colors);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const [space, setSpace] = useState(null);\n const [permissions, setPermissions] = useState({ unload: true });\n const { classes, cx, theme } = useStyles({\n colors,\n publishOnDate: isUnpublished() ? space.launch_on_date : \"\",\n isDark,\n listFlatView: props.listFlatView,\n });\n let _width = theme.other.breakpoints.lg;\n const { refSize, width, height } = useElementSize();\n const [avatarLimit, setAvatarLimit] = useState(4);\n const [showAvatars, setShowAvatars] = useState(true);\n\n const { language, setLangUser } = useLangUser();\n\n const updateSpace = useSelector((state) => state.listSpaceToUpdate);\n\n const propsTimeoutId = useRef();\n const updating = useRef();\n const updateCount = useRef(0);\n\n const [newComments, setNewComments] = useState(0);\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n useEffect(() => {\n if (inView) {\n onFetchNewComments();\n }\n }, [inView]);\n\n useEffect(() => {\n if (space && updateSpace.slug == space.slug) {\n updating.current = true;\n onFetchSpace(props.fetchId ? props.fetchId : updateSpace.slug);\n }\n }, [updateSpace]);\n\n useEffect(() => {\n if (updating.current) {\n updating.current = false;\n return;\n }\n if (props.space) {\n updating.current = true;\n setSpace({ ...props.space });\n } else if (!space && props.fetch) {\n onFetchSpace(props.fetchId);\n }\n }, [space]);\n\n useEffect(() => {\n if (props.space && updateCount.current != props.space.update_count) {\n updateCount.current = props.space.update_count\n ? props.space.update_count\n : 0;\n // if (propsTimeoutId.current) {\n // clearTimeout(propsTimeoutId.current);\n // }\n // propsTimeoutId.current = setTimeout(() => {\n // }, 1000);\n updating.current = true;\n setSpace({ ...props.space });\n }\n }, [props]);\n\n useEffect(() => {\n _width = width > 0 ? width : _width;\n\n if (_width < theme.other.breakpoints.xs) {\n setShowAvatars(false);\n } else if (_width < theme.other.breakpoints.md) {\n setShowAvatars(true);\n setAvatarLimit(4);\n } else {\n setShowAvatars(true);\n setAvatarLimit(4);\n }\n }, [width]);\n\n const onFetchNewComments = () => {\n \n MessageModel.onUnread(\n space.slug,\n (data) => {\n setNewComments(data.count);\n },\n (data) => {}\n );\n };\n\n const onFetchSpace = (id) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchSimpleShow(\n id,\n [\"members\", \"last_messages\"],\n (data) => {\n try {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n // colors: { ...data.colors },\n last_messages: last_messages,\n last_message: last_message,\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n } catch {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n }\n if (props.onSpaceFetched) {\n props.onSpaceFetched(data);\n }\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n };\n\n const onAvatarClick = (event, member) => {\n event.stopPropagation();\n event.preventDefault();\n navigate(member.link);\n };\n\n const formatDateTime = (timestamp) => {\n if (space && space.launch_time) {\n const d = new Date(space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n const onPin = () => {\n SpaceModel.onPin(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.slug, data.is_pinned ? \"pin\" : \"unpin\");\n }\n },\n (data) => {}\n );\n };\n\n const onEditPost = () => {\n props.onUpdate(space.slug, \"edit\");\n };\n\n const onThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-upload\");\n };\n\n const onRemoveThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-delete\");\n };\n\n const onDelete = () => {\n if (space.is_linked) {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onUnlink(\n space.slug,\n window.location.href.split(\"/\")[4],\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.slug, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n } else {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage2\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onDestroy(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.slug, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n }\n };\n\n const openProfile = (event) => {\n event.stopPropagation();\n if (space.user) {\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: space.user.username })\n );\n }\n };\n\n const getLink = () => {\n return `/space/${space.slug}/${space.version}`;\n };\n\n const onEdit = () => {\n navigate(`${getLink()}?edit=true`);\n };\n\n const onMenuOpenned = (event) => {\n event.stopPropagation();\n if (permissions.unload) {\n SpaceModel.onPermissions(\n space.slug,\n (data) => {\n setPermissions(data);\n },\n (data) => {}\n );\n }\n };\n\n const commentsPluralization = () => {\n if (newComments > 1) {\n return `${newComments} new comments`;\n } else {\n return `${newComments} new comment`;\n }\n };\n\n const uniqueByKey = (array, key) => {\n const uniqueKeys = new Set();\n return array.filter((item) => {\n const isUnique = !uniqueKeys.has(item[key]);\n if (isUnique) {\n uniqueKeys.add(item[key]);\n }\n return isUnique;\n });\n };\n\n const gallery_feature = props.space?.gallery_feature || space?.gallery_feature;\n\n return (\n <>\n {space ? (\n setNewComments(0)}\n >\n \n {gallery_feature &&\n gallery_feature.url &&\n props.listShowThumbnail && (\n \n )}\n {space.name.length > 20 ? (\n \n \n \n {activityCount > 0 ? (\n \n {\"\"}\n \n ) : (\n \"\"\n )}\n {space.name}\n \n \n \n ) : (\n \n \n {activityCount > 0 ? (\n \n {\"\"}\n \n ) : (\n \"\"\n )}\n {space.name}\n \n \n )}\n {space.calendar.has_start_date && (\n \n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n\n \n {formatDate(space.calendar, language)}\n \n \n )}\n {props.listShowPreviewText && (\n \n \n {space?.abstract || props.space?.abstract}\n \n \n )}\n {isUnpublished() && (\n \n \n \n }\n >\n {\" \"}\n {formatDateTime()}\n \n \n \n \n )}\n \n {props.listShowComments && newComments > 0 && (\n \n {commentsPluralization()}\n \n )}\n {!props.noActions && (\n \n {props.showAuthor && (\n \n openProfile(event)}\n radius=\"xl\"\n size={40}\n key={`member-avatar-${new Date()}`}\n src={\n space.user && space.user.avatar && space.user.avatar.url\n ? space.user.avatar.url\n : DefaultAvatar\n }\n component=\"span\"\n />\n \n openProfile(event)}\n className={classes.abstract}\n weight={600}\n sx={{\n lineHeight: \"1\",\n }}\n mb={6}\n >\n {space.user\n ? space.user.full_name\n : \"No longer registered\"}\n \n {props.listShowTimestamp && (\n \n {formatDate(\n { raw_start_date: space.created_at },\n language,\n \"LLL d\",\n \"LLL d\"\n )}\n \n )}\n \n \n )}\n {space.tagged_with && (\n \n {uniqueByKey(space.tagged_with, \"name\")\n .filter(Boolean)\n .map((tag) => {\n return (\n ({\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n color: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].textColor\n : \"black\",\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color]\n .backgroundColor\n : \"white\",\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n >\n {tag.name}\n \n );\n })}\n \n )}\n \n \n {props.listAllowLikes && (\n \n )}\n {props.listShowComments && (\n \n \n \n {props.space?.comments_count || space.comments_count}\n \n \n )}\n\n {props.listShowMembers &&\n space &&\n space.members &&\n typeof space.members != \"string\" &&\n space.members.length > 0 ? (\n <>\n \n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n ) : (\n \"\"\n )}\n \n\n \n {space.is_pinned?.is_pinned && (\n \n )}\n {!props.noActions && (\n onMenuOpenned(event)}\n withArrow\n placement=\"end\"\n control={\n onMenuOpenned(event)}\n classNames={{ root: classes.buttonStyle }}\n >\n \n \n }\n >\n \n {t(\"spaces.header.buttons.openFullScreen\")}\n \n {props.canPin && (\n onPin()}>\n {space.is_pinned?.is_pinned\n ? t(\"spaces.presentations.gridPost.actions.unpin\")\n : t(\"spaces.presentations.gridPost.actions.pin\")}\n \n )}\n {permissions.can_edit && (\n onEditPost()}>\n {\"Edit title or preview text\"}\n \n )}\n {permissions.can_edit && !gallery_feature.url && (\n onThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.addThumbnail\"\n )}\n \n )}\n {permissions.can_edit && gallery_feature.url && (\n onRemoveThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.removeThumbnail\"\n )}\n \n )}\n {permissions.can_edit && (\n onEdit()}>\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n )}\n {!space.isPost && permissions.can_delete && (\n \n props.onDuplicate(space.slug, space.name)\n }\n >\n {t(\"spaces.presentations.gridPost.actions.duplicate\")}\n \n )}\n {permissions.can_delete && (\n onDelete()}>\n {space.is_linked\n ? t(\"spaces.presentations.gridPost.actions.unlink\")\n : t(\"spaces.presentations.gridPost.actions.delete\")}\n \n )}\n \n )}\n \n \n \n )}\n \n ) : (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default ListContent;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useNavigate, Link } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport ListContent from \"../../spaces_neo/presentations/ListContent\";\nimport ListPost from \"../../spaces_neo/presentations/ListPost\";\nimport GridPost from \"../../spaces_neo/presentations/GridPost\";\n// import CircleList from '../../spaces/presentations/List';\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nimport { checkInteractionAndHideIfNeededReact, setUniqId} from \"../utils/selection\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nimport { storeJSON, getJSON } from \"../../../utils/LocalDB\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport { getRoot } from \"../../../utils/Host\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport {\n Box,\n Group,\n Stack,\n createStyles,\n Button,\n Skeleton,\n Text,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: \"5px\",\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n color: isSpaceThemed(colors)\n ? tinycolor(colors.default_text_color).toString()\n : \"#000\",\n // background: !publishOnDate ? \"repeating-linear-gradient(-45deg,#ddd,#ddd 1px,#f9f9f9 1px,#f9f9f9 10px)\" : \"\",\n height: 95,\n padding: \"0px 25px\",\n // margin: \"15px 0px\",\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n}));\n\nexport default function Circle(props) {\n const navigate = useNavigate();\n\n const [space, setSpace] = useState(null);\n\n const colors = useSelector((state) => state.colors);\n const children = useSelector((state) => state.children);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const loaded = useRef();\n const loadingInView = useRef(false);\n const force = useRef(false);\n\n const [canView, setCanView] = useState(true);\n const [isWide, setIsWide] = useState(true);\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n //setUniqId(props.editor, props.node, props.getPos);\n\n // Only hit when needed\n useEffect(() => {\n if (\n loaded.current &&\n space &&\n props.node.attrs.id != space.slug &&\n (window.location.href.split(\"/\")[4] == props.node.attrs.circle_id ||\n window.$modalSpaceOpened == props.node.attrs.circle_id || \n window.$templatesModalIsOpened)\n ) {\n onFetch();\n }\n }, [props]);\n\n useEffect(() => {\n if (\n inView &&\n !space &&\n (window.location.href.split(\"/\")[4] == props.node.attrs.circle_id ||\n window.$modalSpaceOpened == props.node.attrs.circle_id || \n window.$templatesModalIsOpened)\n ) {\n onFetch();\n }\n }, [inView]);\n\n useEffect(() => {\n if (window.location.href.split(\"/\")[4] == props.node.attrs.circle_id || window.$modalSpaceOpened == props.node.attrs.circle_id) {\n onFetch();\n }\n }, [children]);\n\n useEffect(() => {\n // setIsWide(ref.innerWidth >= parseFloat(wideOrNarrow(\"\")));\n }, [ref]);\n\n const isUnpublished = () => {\n return (\n space && space.launch_on_date && new Date() < new Date(space.launch_time)\n );\n };\n\n const onFetch = () => {\n if (location.pathname.indexOf(\"space_legacy\") >= 0) {\n getJSON(`spaces`, `simple_${props.node.attrs.id}`, (data) => {\n if (data && data.space && data.space.slug) {\n onSpaceFetched(data);\n onFetchSpaceFromAPI(data.stored_at);\n } else {\n onFetchSpaceFromAPI();\n }\n });\n // onFetchSpaceFromAPI();\n } else {\n let spaceFound = false;\n if (window.$modalSpaceOpened){\n \n if (window.$space2Children && window.$space2Children.children) {\n for (let i = 0; i < window.$space2Children.children.length; i++) {\n const child = window.$space2Children.children[i];\n if (child.slug == props.node.attrs.id) {\n setCanView(true);\n onSpaceFetchedNeo4j(child);\n spaceFound = true;\n break;\n }\n }\n if (!spaceFound) {\n setCanView(false);\n }\n }\n }\n else{\n if (window.$spaceChildren && window.$spaceChildren.children) {\n for (let i = 0; i < window.$spaceChildren.children.length; i++) {\n const child = window.$spaceChildren.children[i];\n if (child.slug == props.node.attrs.id) {\n setCanView(true);\n onSpaceFetchedNeo4j(child);\n spaceFound = true;\n break;\n }\n }\n if (!spaceFound) {\n setCanView(false);\n }\n }\n }\n\n if (!spaceFound) {\n if (window.$selectedTemplateChildren) {\n for (let i = 0; i < window.$selectedTemplateChildren.length; i++) {\n const child = window.$selectedTemplateChildren[i];\n child.permissions.can_view = true ;\n \n if (child.slug == props.node.attrs.id) {\n \n setCanView(true);\n onSpaceFetchedNeo4j(child);\n return;\n }\n }\n }\n }\n }\n };\n\n const onFetchSpaceFromAPI = (storedAt) => {\n setTimeout(() => {\n const include = [];\n\n const ctrl = new AbortController();\n SpaceModel.onFetchSimpleShow(\n props.node.attrs.id,\n include,\n (data) => {\n storeJSON(\"spaces\", `simple_${props.node.attrs.id}`, { ...data });\n\n const updatedAtLocalDate = new Date(Date.parse(data.updated_at));\n\n if (!storedAt || (storedAt && updatedAtLocalDate > storedAt)) {\n console.log(\"SILENT UPDATE DONE SPACE\");\n\n onSpaceFetched(data);\n }\n\n onSpaceFetched(data);\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n }, 150);\n };\n\n const onSpaceFetched = (data) => {\n setSpaceData({\n ...data.space,\n permissions: { ...data.permissions },\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n };\n\n const onSpaceFetchedNeo4j = (data) => {\n const role = data.role ? data.role : window.$currentRole;\n \n setSpaceData({\n ...data,\n permissions: { ...data.permissions[role] },\n abstract: data.abstract,\n });\n };\n\n const setSpaceData = (data) => {\n loaded.current = true;\n setSpace({ ...data });\n setCanView(data.permissions.can_view);\n };\n\n const goToLink = () => {\n navigate(getLink());\n };\n\n const getLink = (root = false) => {\n if (root) {\n return `${getRoot()}/space/${space.slug}/${space.version}`;\n } else {\n return `/space/${space.slug}/${space.version}`;\n }\n };\n\n const onSelect = (event) => {\n if (window.$templatesModalIsOpened){\n return\n }\n switch (event.detail) {\n case 1: {\n if (props.editor && !props.editor.isEditable) {\n navigate(`/space/${props.node.attrs.id}/${space.version}`);\n }\n break;\n }\n case 2: {\n if (props.editor && props.editor.isEditable) {\n navigate(`/space/${props.node.attrs.id}/${space.version}`);\n }\n break;\n }\n case 3: {\n // if (props.editor && props.editor.isEditable){\n // navigate(`/space/${props.node.attrs.id}`)\n // }\n break;\n }\n default: {\n break;\n }\n }\n };\n\n const getRadius = () => {\n if (props.node.attrs.radius == \"no-radius\") {\n return \"xs\";\n } else if (props.node.attrs.radius == \"circle-radius\") {\n return \"xl\";\n } else if (props.node.attrs.radius == \"with-radius\") {\n return \"sm\";\n } else {\n return \"xs\";\n }\n };\n\n const onDragClick = (event) => {};\n\n return (\n \n {checkInteractionAndHideIfNeededReact(props.editor, props.getPos) && (\n \n {space &&\n space.slug == props.node.attrs.id &&\n space.permissions.can_view &&\n (props.editor.isEditable ||\n !isUnpublished() ||\n window.$currentRole == \"manager\" || window.$currentRole == \"admin\") && (\n onSelect(event)}\n uid={props.node.attrs.uid}\n >\n {!props.node.attrs.viewAs ||\n (props.node.attrs.viewAs == \"list\" && (\n \n ))}\n {props.node.attrs.viewAs == \"hcard\" && (\n \n )}\n {props.node.attrs.viewAs == \"vcard\" && (\n \n )}\n {props.node.attrs.viewAs == \"button\" && (\n
\n {props.editor && props.editor.isEditable ? (\n ({\n backgroundColor:\n props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n props.node.attrs.buttonBackgroundColor\n )\n .darken(5)\n .toString(),\n },\n })}\n >{`${props.node.attrs.buttonText === \"Register\" ? space.name : props.node.attrs.buttonText}`}\n ) : (\n goToLink()}\n fullWidth\n radius={getRadius()}\n sx={(theme) => ({\n backgroundColor:\n props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n props.node.attrs.buttonBackgroundColor\n )\n .darken(5)\n .toString(),\n },\n })}\n >{`${props.node.attrs.buttonText === \"Register\" ? space.name : props.node.attrs.buttonText}`}\n )}\n \n )}\n {props.node.attrs.viewAs == \"link\" &&\n (props.editor.isEditable ? (\n event.preventDefault()}\n >\n {`${props.node.attrs.buttonText === \"Register\" ? space.name : props.node.attrs.buttonText}`}\n \n ) : (\n \n {`${props.node.attrs.buttonText === \"Register\" ? space.name : props.node.attrs.buttonText}`}\n \n ))}\n \n )}\n {!space &&\n (props.editor.isEditable ||\n !isUnpublished() ||\n space.permissions.can_manage) && (\n
\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n \n \n \n \n \n \n
\n )}\n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport {stylesToString} from '../../../utils/StylesToString'\n\nimport Circle from '../components/Circle';\n\n\nconst CircleNode = Node.create({\n name: 'circle',\n allowGapCursor: false,\n // group: \"block\",\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n }\n },\n\n inline() {\n return this.options.inline\n },\n\n group() {\n return this.options.inline ? 'inline' : 'block columnable'\n },\n draggable: true,\n addAttributes() {\n return {\n id: {\n default: null,\n },\n circle_id: {\n default: null,\n },\n viewAs: {\n default: \"list\",\n },\n idName: {\n default: \"circle-node\",\n },\n forceUpdate: {\n default: false\n },\n styles: {\n default: {\n \"margin-top\": \"8px\",\n \"margin-bottom\": \"8px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"6px\",\n \"padding-bottom\": \"0px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'circle',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['circle', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(Circle)\n },\n})\n\nexport default CircleNode;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\n\nimport SurveyModel from \"../../../models/Survey\";\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport {\n Text,\n Button,\n Stack,\n Group,\n createStyles,\n Menu,\n ActionIcon,\n} from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { checkInteractionAndHideIfNeededReact, setUniqId} from \"../utils/selection\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n surveyWrap: {\n padding: 20,\n borderRadius: 10,\n backgroundColor: colors.sidebar_background_color,\n color: colors.sidebar_text_color,\n },\n surveyTitle: {\n fontWeight: 800,\n fontSize: 18,\n textAlign: \"center\",\n },\n surveyDescription: {\n marginBottom: 10,\n textAlign: \"center\",\n },\n surveyButton: {\n marginTop: 5,\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(5)\n .toString(),\n },\n // backgroundColor: props.node.attrs.buttonBackgroundColor,\n // color: props.node.attrs.buttonTextColor,\n // border: `1px solid ${props.node.attrs.buttonBorderColor}`,\n // '&:hover': {\n // backgroundColor: tinycolor(props.node.attrs.buttonBackgroundColor).darken(5).toString(),\n // },\n },\n settingsButtonStyle: {\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nexport default function Survey(props) {\n const colors = useSelector((state) => state.colors);\n const user = useSelector((state) => state.user);\n const { classes, cx, theme } = useStyles({ colors, props });\n\n const dispatch = useDispatch();\n\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const taking = useRef();\n\n const [survey, setSurvey] = useState({ pages: [] });\n const [status, setStatus] = useState(\"pending\");\n const [menuOpened, setMenuOpened] = useState(false);\n\n const navigate = useNavigate();\n\n //setUniqId(props.editor, props.node, props.getPos);\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n useEffect(() => {\n if (taking.current) {\n taking.current = false;\n onFetch();\n }\n }, [tiptapSidemenu]);\n\n const onFetch = () => {\n SurveyModel.onFetchById(\n props.node.attrs.id,\n props.node.attrs.circle_id,\n (data) => {\n setSurvey(data);\n setStatus(data.status);\n },\n (data) => {}\n );\n };\n\n const onTake = () => {\n \n if (!user || (user && !user.authenticated)) {\n const spaceSlug = window.location.href.split(\"/\")[4];\n localStorage.setItem(\"join_slug\", spaceSlug);\n navigate(`/user/start?s=${spaceSlug}`);\n return;\n }\n\n if (props.editor && !props.editor.isEditable) {\n setTimeout(() => {\n taking.current = true;\n }, 2000);\n dispatch(\n setTiptapSidemenu({\n opened: \"takeSurvey\",\n option: {\n survey: { ...survey },\n },\n })\n );\n }\n };\n\n const getRadius = () => {\n if (props.node.attrs.radius == \"no-radius\") {\n return \"xs\";\n } else if (props.node.attrs.radius == \"circle-radius\") {\n return \"xl\";\n } else if (props.node.attrs.radius == \"with-radius\") {\n return \"sm\";\n } else {\n return \"xl\";\n }\n };\n\n const onView = () => {\n dispatch(\n setTiptapSidemenu({\n opened: \"showSurvey\",\n option: {\n survey: { ...survey },\n },\n })\n );\n };\n\n const onEdit = () => {\n dispatch(\n setTiptapSidemenu({\n opened: \"createSurvey\",\n option: {\n survey: { ...survey },\n },\n })\n );\n };\n\n return (\n \n {checkInteractionAndHideIfNeededReact(props.editor, props.getPos) && (\n \n\n {survey && (\n
\n \n \n \n {props.node.attrs.blockTitle\n ? props.node.attrs.blockTitle\n : survey.title}\n \n {props.editor.isEditable && (\n setMenuOpened(true)}\n opened={menuOpened}\n mb={3}\n >\n \n \n }\n >\n Options\n \n }\n onClick={() => onView()}\n >\n View responsess\n \n \n }\n onClick={() => onEdit()}\n >\n Edit survey\n \n \n )}\n \n \n onTake()}\n className={classes.surveyButton}\n rightIcon={\n status == \"taken\" && (\n \n )\n }\n disabled={!survey.id}\n sx={(theme) => ({\n backgroundColor:\n props.node.attrs.isMarkComplete && completed\n ? theme.colors.green[6]\n : props.node.attrs.buttonBackgroundColor,\n color:\n props.node.attrs.isMarkComplete && completed\n ? \"#fff\"\n : props.node.attrs.buttonTextColor,\n border:\n props.node.attrs.isMarkComplete && completed\n ? \"none\"\n : `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor:\n props.node.attrs.isMarkComplete && completed\n ? theme.colors.green[7]\n : tinycolor(props.node.attrs.buttonBackgroundColor)\n .darken(5)\n .toString(),\n },\n })}\n >\n {status == \"taken\"\n ? \"Taken\"\n : `${props.node.attrs.buttonText}`}\n \n \n \n
\n )}\n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport {stylesToString} from '../../../utils/StylesToString'\n\nimport Survey from '../components/Survey';\n\nimport {v4 as uuidv4} from 'uuid';\n\nconst SurveyNode = Node.create({\n name: 'survey',\n allowGapCursor: false,\n group: \"block\",\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n }\n },\n\n inline() {\n return this.options.inline\n },\n \n group() {\n return this.options.inline ? 'inline' : 'block columnable'\n },\n draggable: false,\n addAttributes() {\n return {\n id: {\n default: null,\n },\n blockTitle: {\n default: null,\n },\n circle_id: {\n default: null,\n },\n viewAs: {\n default: \"list\",\n },\n idName: {\n default: \"survey-node\",\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"15px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'survey',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['survey', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(Survey)\n },\n})\n\nexport default SurveyNode;\n","import { Extension } from \"@tiptap/core\";\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomButton = Extension.create({\n name: \"customButton\",\n addOptions() {\n return {\n types: [],\n };\n },\n addGlobalAttributes() {\n return [\n {\n types: [\n \"actionbutton\",\n \"customform\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"circle\",\n \"survey\"\n ],\n attributes: {\n buttonText: {\n default: \"Register\",\n },\n buttonBackgroundColor: {\n default: \"#41C3F6\",\n },\n buttonBorderColor: {\n default: \"#41C3F6\",\n },\n buttonTextColor: {\n default: \"#FFFFFF\",\n },\n actionCallback: {\n default: \"message\",\n },\n actionCallbackValue: {\n default: \"\",\n },\n actionCallbackTarget: {\n default: \"_current\",\n },\n },\n },\n ];\n },\n addCommands() {\n return {\n setCustomButtonAttr:\n (attr, value) =>\n ({ commands, chain, view }) => {\n if (!window.$tiptapSelectionRange) {\n return;\n }\n const { from, to } = window.$tiptapSelectionRange;\n const { selection } = view.state;\n\n const content = selection.node\n ? selection.node\n : selection.$anchor.parent;\n\n const newAttrs = {};\n newAttrs[`${attr}`] = value;\n\n return commands.updateAttributes(content.type.name, newAttrs);\n },\n };\n },\n});\n\nexport default CustomButton;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\n\nimport StarterKit from \"@tiptap/starter-kit\";\n\nimport TextStyle from \"@tiptap/extension-text-style\";\nimport { Color } from \"@tiptap/extension-color\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport Underline from \"@tiptap/extension-underline\";\n\nimport TaskList from \"@tiptap/extension-task-list\";\nimport TaskItem from \"@tiptap/extension-task-item\";\n\nimport UniqueID from \"../plugins/CustomUniqId\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Details from \"@tiptap-pro/extension-details\";\nimport DetailsSummary from \"@tiptap-pro/extension-details-summary\";\nimport DetailsContent from \"@tiptap-pro/extension-details-content\";\n\nimport Link from \"@tiptap/extension-link\";\nimport CircleNode from \"../nodes/CircleNode\";\nimport ParagraphNode from \"../nodes/ParagraphNode\";\nimport HeadingNode from \"../nodes/HeadingNode\";\nimport ImageNode from \"../nodes/ImageNode\";\nimport VideoNode from \"../nodes/VideoNode\";\nimport AudioNode from \"../nodes/AudioNode\";\nimport EmbedNode from \"../nodes/EmbedNode\";\nimport FileNode from \"../nodes/FileNode\";\nimport SurveyNode from \"../nodes/SurveyNode\";\nimport ListItemNode from \"../nodes/ListItemNode\";\nimport FancyLinkNode from \"../nodes/FancyLinkNode\";\n\n\nimport CustomSize from \"../plugins/CustomSize\";\nimport CustomResizeable from \"../plugins/CustomResizeable\";\nimport ColumnStyles from \"../plugins/ColumnStyles\";\nimport CustomButton from \"../plugins/CustomButton\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\nimport tinycolor from \"tinycolor2\";\n\nimport Emoji, { gitHubEmojis } from \"@tiptap-pro/extension-emoji\";\n\nimport { Mention } from \"../plugins/Mention\";\nimport mentionSuggestion from \"../plugins/mentionSuggestion\";\n\nimport { Box, createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n panelWrap: {\n border: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : colors.sidebar_background_color\n }`,\n borderRadius: 5,\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nconst Tiptap = (props) => {\n const { settingsView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView ? colors : defaultSpaceColors;\n const { classes, cx, theme } = useStyles({ colors });\n\n const editor = useEditor({\n onCreate({ editor }) {},\n editable: false,\n content: props.content\n ? {\n type: \"doc\",\n content: Array.isArray(props.content)\n ? props.content\n : props.content.content,\n }\n : \"\",\n extensions: [\n StarterKit.configure({\n history: false,\n paragraph: false,\n heading: false,\n listItem: false,\n blockquote: false\n }),\n UniqueID.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"grid2\",\n \"grid3\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"survey\",\n \"fancyLink\",\n ],\n }),\n Highlight.configure({\n multicolor: true,\n }),\n Underline,\n TextStyle,\n Color,\n VideoNode,\n AudioNode,\n EmbedNode,\n FileNode,\n ListItemNode,\n ParagraphNode,\n HeadingNode,\n CircleNode,\n SurveyNode,\n FancyLinkNode,\n \n ColumnStyles.configure({\n types: [\"column\"],\n }),\n CustomSize.configure({\n types: [\"file\", \"audio\", \"survey\", \"fancyLink\"],\n }),\n CustomResizeable.configure({\n types: [\"image\", \"video\", \"embed\"],\n }),\n CustomButton.configure({\n types: [\"survey\"],\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n // Placeholder.configure({\n // placeholder: ({ node }) => {\n // if (node.type.name === 'heading') {\n // return 'Heading'\n // }\n // if (node.type.name === 'paragraph') {\n // return 'Write something'\n // }\n // if (node.type.name === 'detailsSummary') {\n // return 'Summary'\n // }\n //\n // return ''\n // },\n // showOnlyCurrent: true\n // }),\n Link.configure({\n openOnClick: false,\n }),\n ImageNode,\n TextAlign.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"detailsSummary\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"survey\",\n \"fancyLink\"\n ],\n }),\n Details.configure({\n HTMLAttributes: {\n openClassName: \"is-open\",\n class: \"tiptap-details\",\n },\n }),\n DetailsSummary.configure({\n HTMLAttributes: {\n class: \"tiptap-details-summary\",\n },\n }),\n DetailsContent.configure({\n HTMLAttributes: {\n class: \"tiptap-details-content\",\n },\n }),\n Emoji.configure({\n emojis: gitHubEmojis,\n enableEmoticons: true,\n // suggestion,\n }),\n Mention.configure({\n HTMLAttributes: {\n class: \"mention\",\n },\n suggestion: mentionSuggestion,\n renderLabel({ options, node }) {\n return `${options.suggestion.char}${\n node.attrs.label ?? node.attrs.id.split(\"|\")[1]\n }`;\n },\n }),\n ],\n });\n\n return (\n \n \n \n );\n};\n\nexport default Tiptap;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Stack,\n Button,\n Text,\n ScrollArea,\n createStyles,\n Divider,\n Box,\n} from \"@mantine/core\";\n\nimport Question from \"./Question\";\n\nimport SurveyModel from \"../../../models/Survey\";\nimport { useTranslation } from \"react-i18next\";\nimport tinycolor from \"tinycolor2\";\n\nimport Individual from \"../../spaces_neo/settings/surveys/Individual\";\n\nimport TiptapReadonly from \"../../tiptap/components/TiptapReadonly\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n buttonStyle: {\n // marginTop: 10,\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(5)\n .toString(),\n },\n },\n}));\n\nconst TakeForm = (props) => {\n const [choices, setChoices] = useState([]);\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const [taken, setTaken] = useState(false);\n const { t, i18n } = useTranslation();\n const [errorMessage, setErrorMessage] = useState(false);\n const { classes, cx, theme } = useStyles({ colors, props });\n\n const navigate = useNavigate();\n\n useEffect(() => {}, [choices]);\n\n useEffect(() => {\n setTaken(props.survey && props.survey.id && props.survey.choices_count > 0);\n }, [props]);\n\n const onTake = () => {\n setErrorMessage(\"\");\n SurveyModel.onTake(\n props.survey.id,\n props.space_id || props.survey.pod_id,\n [...choices],\n (data) => {\n setChoices([]);\n setTaken(true);\n if (props.survey.redirect_to_space) {\n navigate(`/space/${props.survey.redirect_to_space}`);\n return;\n }\n if (tiptapSidemenu.option.survey.after_submit_show_score_and_keys){\n onFetch()\n return;\n }\n props.onTaken();\n },\n (data) => {\n if (data.action == \"auth\"){\n const spaceSlug = window.location.href.split(\"/\")[4]\n localStorage.setItem(\"join_slug\", spaceSlug);\n navigate(`/user/start?s=${spaceSlug}`);\n return\n }\n setErrorMessage(data.message);\n }\n );\n };\n\n const onFetch = () => {\n SurveyModel.onFetchById(\n props.survey.id,\n space.id,\n (data) => {\n setSurvey(data);\n },\n (data) => {}\n );\n };\n\n const onAddChoice = (question, choice) => {\n if (question && choice && choice.length > 0) {\n if (questionAlreadyAnswered(question)) {\n replaceQuestionChoice(question, choice);\n } else {\n addQuestionChoice(question, choice);\n }\n } else if (question && choice && choice.length == 0) {\n removeQuestionChoice(question);\n }\n };\n\n const questionAlreadyAnswered = (question) => {\n for (let i = 0; i < choices.length; i++) {\n if (choices[i].id == question.id) {\n return true;\n }\n }\n return false;\n };\n\n const replaceQuestionChoice = (question, choice) => {\n const auxChoices = [...choices];\n for (let i = 0; i < auxChoices.length; i++) {\n if (auxChoices[i].id == question.id) {\n auxChoices[i].answers = choice;\n setChoices(auxChoices);\n break;\n }\n }\n };\n\n const removeQuestionChoice = (question) => {\n const auxChoices = [...choices];\n for (let i = 0; i < auxChoices.length; i++) {\n if (auxChoices[i].id == question.id) {\n auxChoices.splice(i, 1);\n setChoices(auxChoices);\n break;\n }\n }\n };\n\n const addQuestionChoice = (question, choice) => {\n const auxChoices = [...choices];\n auxChoices.push({\n id: question.id,\n type: question.question_type,\n answers: choice,\n });\n setChoices(auxChoices);\n };\n\n const onRetake = () => {\n setTaken(false);\n };\n\n return (\n \n \n {!props.survey.is_content_empty && (\n <>\n \n ({\n marginTop: 10,\n marginBottom: 10,\n borderTopColor: colors.default_text_color,\n })}\n />\n \n )}\n\n {user && taken ? (\n \n {t(\"survey.form.text\")}\n \n {props.survey.allow_retake && (\n onRetake()}\n >\n {`Re-take`}\n \n )}\n \n ) : (\n props.survey &&\n props.survey.questions &&\n props.survey.questions.map((question) => {\n return ;\n })\n )}\n {!taken && (\n <>\n {errorMessage && (\n ({\n backgroundColor: theme.colors.red[9],\n color: \"#fff\",\n padding: 8,\n borderRadius: 3,\n })}\n >\n {errorMessage}\n \n )}\n onTake()}\n >\n {t(\"survey.form.submitButton\")}\n \n \n )}\n \n \n );\n};\n\nexport default TakeForm;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Drawer, Box, Text, ScrollArea } from \"@mantine/core\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport TakeForm from \"../../surveys/take/Form\";\n\nconst TakeSurvey = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n const [opened, setOpened] = useState(false);\n const [survey, setSurvey] = useState({});\n const colors = useSelector((state) => state.colors);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"takeSurvey\") {\n setSurvey({...tiptapSidemenu.option.survey})\n setOpened(true);\n } else {\n if (!window.$modalSpaceOpened){\n setOpened(false);\n }\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"takeSurvey\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n }\n }, [opened]);\n\n const onTaken = () => {\n setOpened(false);\n // Redirect and re-open if apply \n };\n\n return (\n setOpened(false)}\n title={\n \n {survey.id\n ? survey.title\n : `Take survey`}\n \n }\n padding=\"xl\"\n size={\"500px\"}\n overlayOpacity={0.1}\n styles={{\n drawer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n closeButton: { color: colors.default_text_color },\n }}\n zIndex={99999}\n >\n {survey.id ? (\n \n \n \n \n ) : (\n {t(\"tiptap.components.takeSurvey.text\")}\n )}\n \n );\n};\n\nexport default TakeSurvey;\n","import React, { useState, useEffect } from \"react\";\n\nimport { Container, Button, useMantineTheme, ScrollArea } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\n\nimport CreateSurvey from \"./surveys/CreateSurvey\";\nimport ShowSurvey from \"./surveys/ShowSurvey\";\nimport SurveyItem from \"./surveys/SurveyItem\";\nimport PaymentSurveyItem from \"./surveys/PaymentSurveyItem\";\nimport AddToSpaces from \"./surveys/Add\";\n\nimport SurveyModel from \"../../../models/Survey\";\n\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport TakeSurvey from \"../../tiptap/components/TakeSurvey\";\n\nexport default function Surveys(props) {\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [surveys, setSurveys] = useState([]);\n const [createSurveyOpened, setCreateSurveyOpened] = useState(false);\n const [showSurveyOpened, setShowSurveyOpened] = useState(false);\n const [selectedSurvey, setSelectedSurvey] = useState(null);\n const [showAddToSpaces, setShowAddToSpaces] = useState(false);\n\n const [validateOpened, setValidateOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n\n if (props.scope == \"payment\") {\n setValidatePremium(\n space &&\n space.permissions &&\n space.permissions.can_set_flexible_payments\n );\n } else {\n setValidatePremium(\n space && space.permissions && space.permissions.can_survey\n );\n }\n }, [space]);\n\n useEffect(() => {\n if (space && createSurveyOpened && !validatePremium[0]) {\n setCreateSurveyOpened(false);\n setValidateOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (!createSurveyOpened) {\n setSelectedSurvey(null);\n if (space && space.slug) {\n onFetch();\n }\n }\n }, [createSurveyOpened]);\n\n const onFetch = () => {\n if (props.scope != \"payment\") {\n SurveyModel.onFetch(\n space.slug,\n { page: 1, per: 10000 },\n (data) => {\n setSurveys([...data.data]);\n },\n (data) => {}\n );\n } else {\n onFetchPayment();\n }\n };\n\n const onFetchPayment = () => {\n SurveyModel.onFetchPayment(\n space.slug,\n (data) => {\n setSurveys([...data.data]);\n },\n (data) => {}\n );\n };\n\n const onUpdateSurvey = (survey) => {\n onFetch();\n };\n\n const onEditSurvey = (survey) => {\n setSelectedSurvey(survey);\n setCreateSurveyOpened(survey);\n };\n\n const onSelectedSurvey = (survey) => {\n setSelectedSurvey(survey);\n setShowSurveyOpened(survey);\n };\n\n const onAddSurvey = (survey) => {\n setSelectedSurvey(survey);\n setShowAddToSpaces(survey);\n };\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n {props.scope != \"payment\" && (\n setCreateSurveyOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.surveys.createSurvey\")}\n \n }\n />\n )}\n {surveys.map((survey) => {\n return (\n <>\n {props.scope != \"payment\" ? (\n \n ) : (\n \n )}\n \n );\n })}\n \n \n \n \n \n \n \n );\n}\n","import React, { useEffect, useRef } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box\n} from '@mantine/core'\n\nimport Surveys from '../Surveys'\n\nexport default function Flexible(props) {\n const { t, i18n } = useTranslation();\n const frequency = useRef()\n\n // useEffect(() => {\n // return () => {\n // debugger\n // frequency.current = null\n // }\n // })\n\n useEffect(() => {\n if (props.settings){\n if (props.settings.payment_settings.default_payment_frequency != \"once\"){\n\n props.onUpdate({pod_payment_settings_attributes: {default_payment_frequency: \"once\"}, circle_payment: \"flexible\"})\n }\n\n }\n }, [props])\n\n return (\n \n \n {props.inner ? {`Please note that changing flexible payment options for an invite also changes them for the whole space.`} : \n {t(\"spaces.settings.payment.flexible.flexible.description\")}\n }\n \n \n \n )\n}\n","import React from 'react';\nimport {\n Text,\n Box\n} from '@mantine/core'\n\nexport default function Continuously() {\n\n return (\n \n \n )\n}\n","import React, { useRef, useState, useEffect } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n createStyles,\n NumberInput,\n ActionIcon\n} from '@mantine/core'\n\nimport { Plus, Minus } from 'tabler-icons-react';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${theme.colorScheme === 'dark' ? 'transparent' : theme.colors.gray[3]}`,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.white,\n\n '&:focus-within': {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${theme.colorScheme === 'dark' ? 'transparent' : theme.colors.gray[3]}`,\n\n '&:disabled': {\n borderColor: theme.colorScheme === 'dark' ? 'transparent' : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: 'transparent',\n },\n },\n\n input: {\n textAlign: 'center',\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nexport default function NumberOfTimes(props) {\n\n const { classes } = useStyles();\n const handlers = useRef();\n const [value, setValue] = useState(1);\n const min = 1;\n const max = 10;\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n setValue(props.numberOfTimes ? props.numberOfTimes : 1)\n }, [props])\n\n return (\n \n\n \n {t(\"spaces.settings.payment.charging.NumberOfTimes.howManyTimes\")}\n \n\n
\n handlers.current.decrement()}\n disabled={value === min}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={value === max}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n\n
\n )\n}\n","import React from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box\n} from '@mantine/core'\n\nimport { DatePicker } from '@mantine/dates';\n\nexport default function UntilDate(props) {\n const { t, i18n } = useTranslation();\n return (\n \n \n {t(\"spaces.settings.payment.charging.UntilDate.pickDate\")}\n \n \n \n )\n}\n","import React, {useRef, useState, useEffect, useCallback} from \"react\";\nimport { Text, Group } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Box,\n ActionIcon,\n NumberInput,\n createStyles,\n} from \"@mantine/core\";\n\nimport { Plus, Minus } from \"tabler-icons-react\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n // fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n // padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n textAlign: \"center\",\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nexport default function FreeTrial(props) {\n const { classes } = useStyles();\n const handlers = useRef();\n const timeoutRef = useRef(null);\n\n const [freeTrial, setFreeTrial] = useState(null);\n\n const space = useSelector((state) => state.space);\n\n const debouncedSetFreeTrial = useCallback((value) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n setFreeTrial(value > 365 ? 365 : value < 0 ? 0 : value);\n }, 1000);\n }, []);\n\n useEffect(() => {\n if (freeTrial !== null) {\n if (props.inner) {\n props.onUpdate({ trial_period: freeTrial });\n } else {\n onUpdate({ pod_payment_settings_attributes: { trial_period: freeTrial } });\n }\n }\n }, [freeTrial]);\n\n const onUpdate = (params) => {\n if (Object.keys(params).length === 0){\n return\n }\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {},\n (data) => {}\n );\n };\n\n return (\n \n \n {\"Add free trial days (optional)\"}\n \n
\n handlers.current.decrement()}\n disabled={freeTrial === 0}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={freeTrial === 365}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n
\n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n NativeSelect,\n Select,\n TextInput,\n Group,\n} from '@mantine/core'\nimport { useSelector } from \"react-redux\";\nimport Swal from \"sweetalert2\";\n\nimport Fees from './Fees'\nimport Continuously from './charging/Continuously'\nimport NumberOfTimes from './charging/NumberOfTimes'\nimport UntilDate from './charging/UntilDate'\n\nimport FreeTrial from '../payment/FreeTrial';\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nconst data = [\n { value: 'usd', label: '🇺🇸 USD' },\n { value: 'eur', label: '🇪🇺 EUR' },\n { value: 'cad', label: '🇨🇦 CAD' },\n { value: 'aud', label: '🇦🇺 AUD' },\n { value: 'gbp', label: '🇬🇧 GBP' },\n { value: 'sek', label: '🇸🇪 SEK' },\n { value: 'mxn', label: '🇲🇽 MXN' },\n { value: 'inr', label: '🇮🇳 INR' },\n { value: 'chf', label: '🇨🇭 CHF' },\n { value: 'nzd', label: '🇳🇿 NZD' },\n { value: 'brl', label: '🇧🇷 BRL' }\n];\n\nconst frequency = [\n { value: 'per month', label: 'per month' },\n { value: 'per year', label: 'per year' }\n];\n\nconst chargeOptions = [\n { value: 'ongoing',\n label: 'Charge continuously',\n description: 'Members will be charged on every billing cycle until the subscription is cancelled'\n },\n { value: 'number_of_times',\n label: 'Charge number of times',\n description: 'Members will be charged on every billing cycle for a set number of times'\n },\n { value: 'until_date',\n label: 'Charge until date',\n description: 'Members will be charged on every billing cycle until a set date'\n }\n];\n\nexport default function Recurring(props) {\n\n const [subscriptionType, setSubscriptionType] = useState(\"ongoing\");\n const [currency, setCurrency] = useState(\"usd\");\n const [defaultPaymentAmount, setDefaultPaymentAmount] = useState();\n const [defaultPaymentFrequency, setDefaultPaymentFrequency] = useState('per month');\n const [defaultTrialPeriod, setDefaultTrialPeriod] = useState();\n const [untilDate, setUntilDate] = useState(\"\");\n const [numberOfTimes, setNumberOfTimes] = useState(1);\n const [disableActions, setDisableActions] = useState(false);\n const { t, i18n } = useTranslation();\n const propsLoaded = useRef()\n const defaultUpdated = useRef()\n const lastSpaceId = useRef();\n const timoutId = useRef();\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false\n };\n }, []);\n\n useEffect(() => {\n if (props.settings){\n\n if (propsLoaded.current && props.settings.slug == lastSpaceId.current && props.settings.payment_settings.default_payment_frequency != \"once\"){\n return\n }\n\n if (propsLoaded.current && props.inner) {\n return;\n }\n\n propsLoaded.current = false\n // setDisableActions(true)\n lastSpaceId.current = props.settings.slug\n\n setCurrency(space.payment_settings?.currency || props.settings.payment_settings.currency)\n setDefaultPaymentAmount(props.settings.payment_settings.default_payment_amount)\n setDefaultPaymentFrequency(props.settings.payment_settings.default_payment_frequency == \"once\" ? \"per month\" : props.settings.payment_settings.default_payment_frequency)\n setDefaultTrialPeriod(props.settings.payment_settings.trial_period || 0)\n\n if ([\"ongoing\", \"number_of_times\", \"until_date\"].indexOf(props.settings.payment_settings.subscription_type) >= 0){\n setSubscriptionType(props.settings.payment_settings.subscription_type)\n }\n else{\n setSubscriptionType(\"ongoing\")\n }\n\n if (props.settings.payment_settings.until_date){\n setUntilDate(new Date(props.settings.payment_settings.until_date))\n }\n const number_of_times = Number(props.settings.payment_settings.number_of_times);\n setNumberOfTimes(number_of_times > 0 ? number_of_times : 1);\n\n\n setTimeout(() => {\n propsLoaded.current = true\n // setDisableActions(false)\n }, 500)\n\n if (props.settings.payment_settings.default_payment_frequency == \"once\" && !defaultUpdated.current){\n defaultUpdated.current = true\n props.onUpdate({pod_payment_settings_attributes: {default_payment_frequency: \"per month\", subscription_type: \"ongoing\"}})\n }\n }\n }, [])\n\n useEffect(() => {\n if (propsLoaded.current && currency){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {currency: currency}})\n }\n }\n }, [currency])\n\n useEffect(() => {\n if (propsLoaded.current && defaultPaymentAmount){\n \n\n if (timoutId.current){\n clearTimeout(timoutId.current)\n }\n\n timoutId.current = setTimeout(() => {\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {default_payment_amount: defaultPaymentAmount}})\n }\n }, 1000)\n }\n }, [defaultPaymentAmount])\n\n useEffect(() => {\n if (propsLoaded.current && defaultPaymentFrequency){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {default_payment_frequency: defaultPaymentFrequency}})\n }\n }\n }, [defaultPaymentFrequency])\n\n useEffect(() => {\n if (propsLoaded.current && defaultTrialPeriod){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {trial_period: defaultTrialPeriod}})\n }\n }\n }, [defaultTrialPeriod])\n\n useEffect(() => {\n if (propsLoaded.current && untilDate){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {until_date: untilDate.toISOString()}})\n }\n }\n }, [untilDate])\n\n useEffect(() => {\n if (propsLoaded.current && numberOfTimes){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {number_of_times: numberOfTimes}})\n }\n }\n }, [numberOfTimes])\n\n useEffect(() => {\n if (propsLoaded.current && subscriptionType){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {subscription_type: subscriptionType}})\n }\n }\n }, [subscriptionType])\n\n const updateAll = () => {\n props.onUpdate({\n pod_payment_settings_attributes: {\n currency: currency,\n default_payment_amount: defaultPaymentAmount,\n default_payment_frequency: defaultPaymentFrequency,\n until_date: untilDate ? untilDate.toISOString() : null,\n number_of_times: numberOfTimes,\n subscription_type: subscriptionType\n },\n circle_payment: \"recurring\"\n })\n }\n\n const displayChargeSelection = () => {\n if (subscriptionType == \"ongoing\") {\n return (\n \n )\n } else if (subscriptionType == \"number_of_times\") {\n return (\n \n )\n } else if (subscriptionType == \"until_date\") {\n return (\n \n )\n } else {\n return (\n \n )\n }\n }\n\n const onUpdateSettings = (new_currency) => {\n SpaceSettingModel.onUpdate(\n space.slug,\n { pod_payment_settings_attributes: { currency: new_currency } },\n (data) => {},\n (data) => {}\n );\n }\n\n const SelectItem = (({ label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n )\n);\n\nreturn (\n \n \n {t(\"spaces.settings.payment.recurring.recurring.description1\")}\n \n\n \n {\n const newValue = event.currentTarget.value;\n if (newValue !== space.payment_settings?.currency && props.inner) {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"Changing the currency here will change the currency for the whole space.\",\n showDenyButton: true,\n confirmButtonText: \"Yes\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.blue,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onUpdateSettings(newValue);\n setCurrency(newValue);\n }\n });\n } else {\n setCurrency(newValue);\n }\n }}\n data={data}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n }}\n />\n\n setDefaultPaymentAmount(event.target.value)}\n type=\"number\"\n placeholder=\"1111\"\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n borderLeft: \"none\",\n borderRight: \"none\",\n },\n }}\n />\n\n setDefaultPaymentFrequency(event.currentTarget.value)}\n data={frequency}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n }}\n />\n \n {props.settings && (\n \n )}\n\n \n {t(\"spaces.settings.payment.recurring.recurring.description2\")}\n \n\n \n\n {displayChargeSelection()}\n\n setDefaultTrialPeriod(trial_period)}\n />\n\n {/*\n \n { chargeOptions.map((option) => {\n return (\n \n )\n })}\n \n */}\n\n \n )\n}\n","import axios from 'axios';\nimport { getCookie } from \"../utils/Cookies\";\n\nclass Coupon {\n constructor() {\n if (this instanceof Coupon) {\n throw Error('Coupon class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n \n await axios.get(`/api/v4/spaces/${slug}/coupons.json`, {params})\n .then(res => {\n \n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, coupon, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n coupon\n }\n\n await axios.post(`/api/v4/spaces/${slug}/coupons.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (slug, id, coupon, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n coupon\n }\n\n await axios.put(`/api/v4/spaces/${slug}/coupons/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (slug, id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await axios.delete(`/api/v4/spaces/${slug}/coupons/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Coupon;\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Box,\n Text,\n TextInput,\n NumberInput,\n Group,\n NativeSelect,\n createStyles,\n Button,\n Select,\n} from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport CouponModel from \"../../../../models/Coupon\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n width: \"100%\",\n },\n}));\n\nexport default function CouponsForm(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n\n const [disableActions, setDisableActions] = useState(\"\");\n\n const [expireDate, setExpireDate] = useState(\"\");\n const [expireTime, setExpireTime] = useState(\"\");\n\n const form = useForm({\n initialValues: {\n code: \"\",\n value: \"\",\n discount_type: \"percent\",\n frequency: \"once\",\n },\n\n validate: {\n code: (value) => (value.length < 3 || value.length > 30 ? \"Add a code (between 3 and 30 percent)\" : null),\n value: (value) => (value <= 0 || (value > 100 && form.values.discount_type == \"percent\") ? `Add a value ${form.values.discount_type == \"percent\" ? \"(between 1 and 100 percent)\" : \"\"}` : null),\n },\n });\n\n const space = useSelector((state) => state.space);\n\n const onSave = () => {\n \n const params = {\n ...form.values,\n expire_at: mergeDateAndTime(expireDate, expireTime),\n };\n \n if (!props.coupon.id) {\n CouponModel.onCreate(\n space.slug,\n params,\n (data) => {\n props.onUpdate();\n props.setOpened(false);\n },\n (data) => {\n Swal.fire(\"Something went wrong\", data.errors, \"error\");\n }\n );\n } else {\n CouponModel.onUpdate(\n space.slug,\n props.coupon.id,\n params,\n (data) => {\n props.onUpdate();\n props.setOpened(false);\n },\n (data) => {\n Swal.fire(\"Something went wrong\", data.errors, \"error\");\n }\n );\n }\n };\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n return (\n
onSave())}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setExpireDate(date)}\n />\n setExpireTime(time)}\n />\n \n \n \n \n {\"Create coupon\"}\n \n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Box,\n Text,\n Tooltip,\n NumberInput,\n Group,\n Badge,\n Button,\n Drawer,\n ScrollArea,\n createStyles,\n} from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport CouponsForm from \"./CouponsForm\";\nimport SectionHeader from \"../layout/ActionsSectionHeader\";\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport CouponModel from \"../../../../models/Coupon\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Swal from \"sweetalert2\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport { DateTime } from \"luxon\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n width: \"100%\",\n },\n\n trashStyle: {\n cursor: \"pointer\",\n // backgroundColor: theme.colors.gray[6],\n color: theme.colors.gray[6],\n \"&:hover\": {\n color: theme.colors.gray[7],\n // backgroundColor: theme.colors.gray[7],\n },\n },\n}));\n\nexport default function Coupons(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n\n const [opened, setOpened] = useState(false);\n const [coupon, setCoupon] = useState({});\n const [coupons, setCoupons] = useState([]);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n const [durationTooltip, setDuratoinTooltip] = useState(false);\n const [validateOpened, setValidateOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n useEffect(() => {\n setValidatePremium(\n space && space.permissions && space.permissions.can_create_coupon\n );\n }, [space]);\n\n const onFetch = () => {\n CouponModel.onFetch(\n space.slug,\n (data) => {\n setCoupons([...data]);\n },\n (data) => {}\n );\n };\n\n const onUpdate = () => {\n onFetch();\n };\n\n const onDestroy = (id) => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This coupon will be no longer be available for future use.\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n CouponModel.onDestroy(\n space.id,\n id,\n (data) => {\n onFetch();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const getDurationText = (item) => {\n if (item.frequency == \"once\") {\n return \"once\";\n } else {\n return \"for all payments\";\n }\n };\n\n const onCopyCode = (item) => {\n setCopiedToClipboard(item.id);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n return (\n <>\n {\n if (validatePremium && !validatePremium[0]) {\n setValidateOpened([true, validatePremium[1], validatePremium[2]]);\n } else {\n setOpened(true)\n }\n }}\n leftIcon={}\n sx={{\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n }}\n >\n {\"Create coupon\"}\n \n \n {coupons.map((item) => {\n return (\n \n \n \n \n \n onCopyCode(item)}\n text={item.code}\n >\n \n {item.code}\n \n \n \n \n \n {item.discount_type == \"percent\" ? (\n {`${\n item.formatted_value\n } off ${getDurationText(item)}`}\n ) : (\n {`${getSymbolFromCurrency(item.currency)}${\n item.value\n } off ${getDurationText(item)}`}\n )}\n \n \n \n \n {item.expire_at && (\n \n {`Valid until ${DateTime.fromSQL(item.expire_at).toFormat(\n \"LLL d, yyyy, h:mm a\"\n )}`}\n \n )}\n \n onDestroy(item.id)}\n >\n \n \n \n );\n })}\n \n setOpened(false)}\n title={\n \n {coupon ? \"New coupon\" : \"Edit coupon\"}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n \n \n \n \n );\n}\n","import axios from 'axios';\nimport { getCookie } from \"../utils/Cookies\";\n\nclass Bundle {\n constructor() {\n if (this instanceof Bundle) {\n throw Error('Bundle class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n\n await axios.get(`/api/v4/spaces/${slug}/bundles.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchById = async (slug, id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n\n await axios.get(`/api/v4/spaces/${slug}/bundles/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, bundle, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n bundle\n }\n\n await axios.post(`/api/v4/spaces/${slug}/bundles.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (slug, id, bundle, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n bundle\n }\n\n await axios.put(`/api/v4/spaces/${slug}/bundles/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (slug, id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await axios.delete(`/api/v4/spaces/${slug}/bundles/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Bundle;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport {\n Box,\n Text,\n TextInput,\n Switch,\n Select,\n Loader,\n createStyles,\n Button,\n MultiSelect,\n} from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport BundleModel from \"../../../../models/Bundle\";\n\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport Payment from \"../privacy/Paid\";\n\nimport { useForm } from \"@mantine/form\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n // borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n width: \"100%\",\n },\n}));\n\nexport default function BundlesForm(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n\n const [disableActions, setDisableActions] = useState(\"\");\n const [name, setName] = useState(\"\");\n const [description, setDescription] = useState({ content: \"\" });\n const [parentCircles, setParentCircles] = useState([]);\n\n const [loading, setLoading] = useState(true);\n const [spaces, setSpaces] = useState([]);\n const [searching, setSearching] = useState(false);\n const [showInCheckout, setShowInCheckout] = useState(false);\n\n const space = useSelector((state) => state.space);\n\n const form = useForm({\n initialValues: {\n name: \"\",\n amount: \"\",\n frequency: \"\",\n description: \"\",\n default_payment_amount: \"\",\n default_payment_frequency: \"\",\n currency: \"\",\n subscription_type: \"\",\n until_date: \"\",\n number_of_times: \"\",\n space_bundle_pods_ids: [],\n redirect_to_space: \"\",\n trial_period: \"\",\n },\n\n validate: {\n // description: (value) => (value.length > 0 ? null : \"Add some content\"),\n name: (value) => (value.length > 0 ? null : \"Add a name\"),\n // frequency: (value) => (value.length > 0 ? null : \"Select a duration\"),\n // default_payment_amount: (value) =>\n // value.length > 0 ? null : \"Add a price\",\n space_bundle_pods_ids: (value) =>\n value.length > 0 ? null : \"Select some spaces\",\n redirect_to_space: (value) =>\n value.length > 0 ? null : \"Select a space to redirect\",\n },\n });\n\n const [settings, setSettings] = useState({\n slug: \"\",\n can_accept_charges: true,\n circle_payment: \"paid\",\n payment_settings: {\n default_payment_amount: \"\",\n default_payment_frequency: \"\",\n currency: \"\",\n subscription_type: \"\",\n until_date: \"\",\n number_of_times: \"\",\n show_in_checkout: false,\n trial_period: \"\"\n },\n });\n\n const selectedParents = useRef([]);\n const searchTimeoutId = useRef();\n\n useEffect(() => {\n onResetForm();\n\n if (props.bundle && props.bundle.id) {\n onFetch();\n } else {\n setLoading(false);\n }\n }, [props]);\n\n useEffect(() => {\n if (!props.bundle.id && space.slug) {\n setSpaces([{ label: space.name, value: space.slug }]);\n setParentCircles([space.slug]);\n form.setFieldValue(\"space_bundle_pods_ids\", [space.slug]);\n form.setFieldValue(\"redirect_to_space\", space.slug);\n setSettings({\n slug: \"\",\n can_accept_charges: true,\n circle_payment: \"paid\",\n fee: space.fee,\n payment_settings: {\n default_payment_amount: \"\",\n default_payment_frequency: \"\",\n currency: \"\",\n subscription_type: \"\",\n until_date: \"\",\n number_of_times: \"\",\n show_in_checkout: false,\n trial_period: \"\",\n },\n });\n }\n }, [space]);\n\n useEffect(() => {\n onSelectedParents(form.values.space_bundle_pods_ids);\n }, [form.values.space_bundle_pods_ids]);\n\n useEffect(() => {\n form.setFieldValue(\"show_in_checkout\", showInCheckout);\n }, [showInCheckout]);\n\n const onResetForm = () => {\n form.setFieldValue(\"name\", \"\");\n form.setFieldValue(\"description\", \"\");\n form.setFieldValue(\"frequency\", \"\");\n form.setFieldValue(\"default_payment_amount\", \"\");\n form.setFieldValue(\"default_payment_frequency\", \"\");\n form.setFieldValue(\"currency\", \"\");\n form.setFieldValue(\"subscription_type\", \"\");\n form.setFieldValue(\"until_date\", \"\");\n form.setFieldValue(\"number_of_times\", \"\");\n form.setFieldValue(\"circle_payment\", \"paid\");\n form.setFieldValue(\"space_bundle_pods_ids\", []);\n form.setFieldValue(\"show_in_checkout\", false);\n form.setFieldValue(\"trial_period\", \"\");\n };\n\n const onFetch = () => {\n setLoading(true);\n BundleModel.onFetchById(\n space.slug,\n props.bundle.id,\n (data) => {\n form.setFieldValue(\"name\", data.name);\n form.setFieldValue(\"description\", data.description);\n form.setFieldValue(\"frequency\", data.frequency);\n form.setFieldValue(\n \"default_payment_amount\",\n data.default_payment_amount\n );\n form.setFieldValue(\n \"default_payment_frequency\",\n data.default_payment_frequency\n );\n form.setFieldValue(\"currency\", data.currency);\n form.setFieldValue(\"subscription_type\", data.subscription_type);\n form.setFieldValue(\"until_date\", data.until_date);\n form.setFieldValue(\"number_of_times\", data.number_of_times);\n form.setFieldValue(\"circle_payment\", data.circle_payment);\n form.setFieldValue(\"trial_period\", data.trial_period);\n\n setShowInCheckout(data.show_in_checkout ? true : false);\n\n form.setFieldValue(\"space_bundle_pods_ids\", [\n ...data.space_bundle_pods_ids,\n ]);\n form.setFieldValue(\"redirect_to_space\", data.redirect_to_space);\n setSpaces([...data.space_bundle_pods]);\n setParentCircles([...data.space_bundle_pods_ids]);\n selectedParents.current = [...data.space_bundle_pods];\n\n setDescription(data.description);\n\n setSettings({\n slug: space.slug,\n can_accept_charges: true,\n circle_payment: data.circle_payment,\n fee: space.fee,\n payment_settings: {\n default_payment_amount: data.default_payment_amount,\n default_payment_frequency: data.default_payment_frequency,\n currency: data.currency,\n subscription_type: data.subscription_type,\n until_date: data.until_date,\n number_of_times: data.number_of_times,\n trial_period: data.trial_period,\n },\n });\n setLoading(false);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n const params = {\n ...form.values,\n number_of_times: form.values.number_of_times === \"\" && form.values.subscription_type === \"number_of_times\" ? 1 : form.values.number_of_times\n };\n\n if (!props.bundle.id) {\n BundleModel.onCreate(\n space.slug,\n params,\n (data) => {\n props.onUpdate(data.id);\n },\n (data) => {}\n );\n } else {\n BundleModel.onUpdate(\n space.slug,\n props.bundle.id,\n params,\n (data) => {\n props.onUpdate(data.id);\n },\n (data) => {}\n );\n }\n };\n\n const onSelectedParents = (selection) => {\n setParentCircles(selection);\n selectedParents.current = [];\n for (let i = 0; i < spaces.length; i++) {\n if (selection.indexOf(spaces[i].value) >= 0) {\n selectedParents.current.push(spaces[i]);\n }\n }\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n SpaceModel.onFetchManaged(\n null,\n include,\n { page: 1, per: 10 },\n (data) => {\n const _spaces = [...selectedParents.current];\n for (let i = 0; i < data.length; i++) {\n _spaces.push({\n value: data[i].slug,\n label: `${data[i].name} (${data[i].slug})`,\n });\n }\n\n setSpaces(_spaces);\n },\n (data) => {}\n );\n };\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"description\", content);\n };\n\n const onUpdatePayment = (params) => {\n if (!params.pod_payment_settings_attributes) {\n return;\n }\n\n const auxSettings = { ...settings };\n\n auxSettings.payment_settings.currency =\n params.pod_payment_settings_attributes.currency;\n auxSettings.payment_settings.default_payment_amount =\n params.pod_payment_settings_attributes.default_payment_amount;\n auxSettings.payment_settings.default_payment_frequency =\n params.pod_payment_settings_attributes.default_payment_frequency;\n auxSettings.payment_settings.subscription_type =\n params.pod_payment_settings_attributes.subscription_type;\n auxSettings.payment_settings.until_date =\n params.pod_payment_settings_attributes.until_date;\n auxSettings.payment_settings.number_of_times =\n params.pod_payment_settings_attributes.number_of_times;\n auxSettings.payment_settings.trial_period =\n params.pod_payment_settings_attributes.trial_period;\n\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.pod_payment_settings_attributes.frequency) {\n form.setFieldValue(\n \"frequency\",\n params.pod_payment_settings_attributes.frequency\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_amount) {\n form.setFieldValue(\n \"default_payment_amount\",\n params.pod_payment_settings_attributes.default_payment_amount\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_frequency) {\n form.setFieldValue(\n \"default_payment_frequency\",\n params.pod_payment_settings_attributes.default_payment_frequency\n );\n }\n if (params.pod_payment_settings_attributes.currency) {\n form.setFieldValue(\n \"currency\",\n params.pod_payment_settings_attributes.currency\n );\n }\n if (params.pod_payment_settings_attributes.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.pod_payment_settings_attributes.subscription_type\n );\n }\n if (params.pod_payment_settings_attributes.until_date) {\n form.setFieldValue(\n \"until_date\",\n params.pod_payment_settings_attributes.until_date\n );\n }\n if (params.pod_payment_settings_attributes.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.pod_payment_settings_attributes.number_of_times\n );\n }\n if (params.pod_payment_settings_attributes.trial_period) {\n form.setFieldValue(\n \"trial_period\",\n params.pod_payment_settings_attributes.trial_period\n );\n }\n\n setSettings(auxSettings);\n };\n\n const onSelectedRedirectSpace = () => {};\n\n return (\n
onSave())}>\n \n \n \n \n \n \n ) : (\n \n )\n }\n disabled={disableActions}\n searchable\n limit={100}\n mt={5}\n data={spaces}\n // onChange={(selection) => onSelectedParents(selection)}\n placeholder={\"Select spaces to add\"}\n // value={parentCircles}\n onSearchChange={(query) => onSearchSpaces(query)}\n {...form.getInputProps(\"space_bundle_pods_ids\")}\n zIndex={99999}\n />\n \n \n onSelectedRedirectSpace(selection)}\n // value={redirectSpace}\n {...form.getInputProps(\"redirect_to_space\")}\n zIndex={99999}\n />\n \n {!loading && (\n \n \n Description\n \n \n Please add a description of your bundle that will be visible to\n people when they are paying.\n \n \n \n )}\n \n setShowInCheckout(event.currentTarget.checked)}\n />\n \n If you select this option, this bundle will be visible on the\n payment page for this space as an additional purchase option.\n \n \n {!loading && (\n \n \n Payment\n \n\n \n \n )}\n \n \n {!props.bundle ? \"Create bundle\" : \"Update bundle\"}\n \n \n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Box,\n Text,\n Tooltip,\n NumberInput,\n Group,\n Badge,\n Button,\n Drawer,\n ScrollArea,\n createStyles,\n} from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport BundlesForm from \"./BundlesForm\";\nimport SectionHeader from \"../layout/ActionsSectionHeader\";\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport BundleModel from \"../../../../models/Bundle\";\n\nimport { colors } from \"../../../../collections/colors\";\nimport Swal from \"sweetalert2\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n width: \"100%\",\n },\n\n trashStyle: {\n cursor: \"pointer\",\n // backgroundColor: theme.colors.gray[6],\n color: theme.colors.gray[6],\n \"&:hover\": {\n color: theme.colors.gray[7],\n // backgroundColor: theme.colors.gray[7],\n },\n },\n}));\n\nexport default function Bundles(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n\n const [opened, setOpened] = useState(false);\n const [bundle, setBundle] = useState({});\n const [bundles, setBundles] = useState([]);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n const [validateOpened, setValidateOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n useEffect(() => {\n setValidatePremium(\n space && space.permissions && space.permissions.can_create_bundles\n );\n }, [space]);\n\n const onFetch = () => {\n BundleModel.onFetch(\n space.slug,\n (data) => {\n setBundles([...data]);\n },\n (data) => {}\n );\n };\n\n const onCreate = () => {\n setBundle({});\n setOpened(true);\n };\n\n const onUpdate = (id) => {\n onFetch();\n setOpened(false);\n };\n\n const onEdit = (item) => {\n setBundle(item);\n setOpened(true);\n };\n\n const onCopy = (item) => {\n setCopiedToClipboard(item.id);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const onDestroy = (id) => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This bundle will be inactive for future uses.\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n BundleModel.onDestroy(\n space.id,\n id,\n (data) => {\n onFetch();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n <>\n {\n if (validatePremium && !validatePremium[0]) {\n setValidateOpened([true, validatePremium[1], validatePremium[2]]);\n } else {\n onCreate();\n }\n }}\n leftIcon={}\n sx={{\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n }}\n >\n {\"Create bundle\"}\n \n \n {bundles.map((item, index) => {\n return (\n \n \n \n \n \n {item.name}\n \n {`${getSymbolFromCurrency(\n item.currency\n )}${item.default_payment_amount} ${\n item.default_payment_frequency\n }`}\n \n \n \n \n \n onCopy(item)} text={`https://sutra.co/space/${space.slug}/gateway?bundles=${item.id}`}>\n \n \n \n \n \n onEdit(item)}\n >\n \n \n onDestroy(item.id)}\n >\n \n \n \n \n );\n })}\n \n setOpened(false)}\n title={\n \n {bundle ? \"New bundle\" : \"Edit bundle\"}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Text,\n Group,\n Switch,\n createStyles,\n} from \"@mantine/core\";\n\nimport StripeModel from \"../../../../models/Stripe\";\n\nimport { colors } from \"../../../../collections/colors\";\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme) => ({\n itemTitle: {\n fontSize: 18,\n },\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6]\n },\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n}));\n\nexport default function TaxCollection() {\n const { classes } = useStyles();\n\n const [taxEnabled, setTaxEnabled] = useState(false);\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n if (space?.payment_settings?.tax_collection) {\n setTaxEnabled(true);\n }\n }, []);\n\n const onTaxCollection = (event) => {\n const enabled = event.currentTarget.checked;\n setTaxEnabled(enabled);\n StripeModel.onTaxCollection(\n space.slug,\n enabled,\n (data) => {\n if (data.is_enabled === false) {\n setTaxEnabled(false);\n showSwalMessage(\"Your Stripe account has not been configured to collect taxes. Please activate Stripe Tax and try again.\")\n }\n },\n (error) => {\n setTaxEnabled(false);\n showSwalMessage(\"Something went wrong with your Stripe account connection. If the problem persists, please contact us at support@sutra.co.\");\n }\n );\n };\n\n const showSwalMessage = (message) => {\n Swal.fire({\n title: \"Tax collection\",\n html: message,\n confirmButtonText: \"Ok\",\n confirmButtonColor: colors.blue,\n }).then((result) => {\n if (result.isConfirmed) {\n \n }\n });\n };\n\n return (\n \n
\n \n {\"Collect taxes on every transaction\"}\n \n \n {\"People will be required to enter their address to complete payment for this space.\"}\n \n
\n \n
\n );\n}\n","import React, { useState } from \"react\";\nimport { Text, Group } from \"@mantine/core\";\n\nimport Coupons from \"./Coupons\";\nimport Bundles from \"./Bundles\";\nimport TaxCollection from \"./TaxCollection\";\n\nimport { Accordion } from \"@mantine/core\";\n\nexport default function Extras(props) {\n const [accordionState, setAccordionState] = useState({\n 0: false,\n 1: false,\n 2: false\n });\n\n const AccordionLabel = ({ label, description, index }) => {\n return (\n \n
\n \n {label}\n \n\n {!accordionState[index] ? (\n \n {description} {index == 2 && (\n Stripe Tax\n )}\n \n ) : (\n \"\"\n )}\n
\n
\n );\n };\n\n const openTax = () => {\n window.open(\"https://docs.stripe.com/tax\", \"_blank\");\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","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n Group,\n Alert,\n SegmentedControl,\n Button,\n MantineProvider,\n Tooltip,\n Center,\n} from \"@mantine/core\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { brands } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Once from \"../payment/Once\";\nimport Flexible from \"../payment/Flexible\";\nimport Recurring from \"../payment/Recurring\";\nimport Extras from \"../payment/Extras\";\n\nimport StripeModel from \"../../../../models/Stripe\";\nimport { colors } from \"../../../../collections/colors\";\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\n\nimport Swal from \"sweetalert2\";\n\nconst paymentOptions = [\n {\n label: \"One time\",\n value: \"paid\",\n description: \"Set a one time price\",\n },\n\n {\n label: \"Flexible\",\n value: \"flexible\",\n description: 'Offer different payment levels or \"pay what you can\"',\n },\n {\n label: \"Recurring\",\n value: \"recurring\",\n description: \"Set a recurring subscription fee\",\n },\n];\n\nexport default function Paid(props) {\n const [paymentSelection, setPaymentSelection] = useState();\n\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n const paymentOptionsList = useRef([...paymentOptions]);\n const { t, i18n } = useTranslation();\n const navigate = useNavigate()\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (props.settings) {\n if (propsLoaded.current || props.settings.slug == lastSpaceId.current) {\n return;\n }\n\n lastSpaceId.current = props.settings.slug;\n\n setTimeout(() => {\n propsLoaded.current = true;\n }, 500);\n\n const excluded = [];\n for (let i = 0; i < paymentOptionsList.current.length; i++) {\n let included = false;\n for (let j = 0; j < props.options.length; j++) {\n if (paymentOptionsList.current[i].value == props.options[j]) {\n included = true;\n break;\n }\n }\n if (!included) {\n excluded.push(i);\n }\n }\n for (let i = 0; i < excluded.length; i++) {\n paymentOptionsList.current.splice(excluded[i], 1);\n }\n\n setTimeout(() => {\n setPaymentSelection(props.settings.circle_payment);\n }, 200);\n }\n }, [props]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n if (paymentSelection == \"paid\") {\n props.onUpdate({\n circle_payment: paymentSelection,\n pod_payment_settings_attributes: {\n currency: props.settings.payment_settings.currency,\n default_payment_amount:\n props.settings.payment_settings.default_payment_amount,\n default_payment_frequency: \"once\",\n },\n });\n } else if (paymentSelection == \"flexible\") {\n props.onUpdate({\n circle_payment: paymentSelection,\n pod_payment_settings_attributes: {\n currency: props.settings.payment_settings.currency,\n default_payment_amount:\n props.settings.payment_settings.default_payment_amount,\n default_payment_frequency: \"once\",\n },\n });\n } else if (paymentSelection == \"recurring\") {\n props.onUpdate({\n circle_payment: paymentSelection,\n pod_payment_settings_attributes: {\n currency: props.settings.payment_settings.currency,\n default_payment_amount:\n props.settings.payment_settings.default_payment_amount,\n default_payment_frequency: \"per month\",\n },\n });\n } else {\n props.onUpdate({\n circle_payment: paymentSelection,\n pod_payment_settings_attributes: {\n currency: props.settings.payment_settings.currency,\n default_payment_amount:\n props.settings.payment_settings.default_payment_amount,\n default_payment_frequency: \"once\",\n },\n });\n }\n }\n }, [paymentSelection]);\n\n const displayPaymentSelection = () => {\n if (paymentSelection == \"paid\") {\n return (\n \n );\n } else if (paymentSelection == \"flexible\") {\n return (\n \n );\n } else if (paymentSelection == \"recurring\") {\n return (\n \n );\n } else {\n return null;\n }\n };\n\n const onConnect = () => {\n StripeModel.onConnect(\n props.space.slug,\n (data) => {\n if (data.url) {\n window.location.href= data.url;\n } else {\n props.onRefresh();\n }\n setPaymentSelection(\"paid\");\n },\n (data) => {}\n );\n };\n\n const onDisconnect = () => {\n\n navigate(`/settings/account`)\n\n return\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You won't be able to collect any payments.\",\n showDenyButton: true,\n confirmButtonText: \"Yes, disconnect\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n StripeModel.onDisconnect(\n props.space.id,\n (data) => {\n props.onRefresh();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onStripeAccount = () => {\n window.open(\"https://dashboard.stripe.com/settings/user\", \"_blank\");\n };\n\n return (\n \n {props.settings && props.settings.can_accept_charges ? (\n <>\n \n ({\n backgroundColor: theme.colors.gray[2],\n })}\n />\n\n {displayPaymentSelection()}\n \n {!props.inner && }\n \n {props.showDisconnect && (\n
\n \n {t(\"spaces.settings.privacy.paid.paid.stripeConnected\")}\n \n onStripeAccount()}\n >\n {props.settings.payment_settings.stripe_user_id}\n \n \n   •  \n onDisconnect()}\n >\n {t(\"spaces.settings.privacy.paid.paid.disconnectButton\")}\n \n \n
\n )}\n \n \n ) : (\n
\n \n {t(\"spaces.settings.privacy.paid.paid.description\")}\n \n \n }\n // color=\"green\"\n radius=\"xl\"\n onClick={() => onConnect()}\n >\n {t(\"spaces.settings.privacy.paid.paid.connectButton\")}\n \n \n
\n )}\n
\n );\n}\n","// import axios from 'axios';\n\nclass Invitation {\n constructor() {\n if (this instanceof Invitation) {\n throw Error('Invitation class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, paginator, {term}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n term,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/invitations.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (invitation, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n invitation\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/invitations.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onResend = async (pod_invitation_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/invitations/${pod_invitation_id}/resend.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (pod_invitation_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/invitations/${pod_invitation_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Invitation;\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Alert,\n Text,\n Textarea,\n Box,\n Checkbox,\n Button,\n Divider,\n MantineProvider,\n Select,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport Payment from \"../privacy/Paid\";\nimport { AlertCircle } from \"tabler-icons-react\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function InviteEmail(props) {\n const { t, i18n } = useTranslation();\n const [checked, setChecked] = useState(true);\n const [inviteSection, setInviteSection] = useState(\"email\");\n const [settings, setSettings] = useState({});\n const [opened, setOpened] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const navigate = useNavigate();\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n if (props.settings && !loaded) {\n setLoaded(true);\n setSettings({ ...props.settings });\n onUpdatePaymentFromProps(props.settings);\n }\n }, [props, loaded]);\n\n const form = useForm({\n initialValues: {\n add_people: \"\",\n message: \"\",\n notify_members: true,\n circle_payment: \"\",\n currency: \"\",\n payment_amount: \"\",\n payment_frequency: \"\",\n subscription_type: \"\",\n until_date: \"\",\n number_of_times: \"\",\n role: \"member\",\n add_to_subspaces: false,\n trial_period: \"\",\n },\n\n validate: {\n add_people: (value) =>\n value.length > 0 && value.split(\",\").length > 0\n ? null\n : \"Add at least one person\",\n },\n });\n\n const onInvite = () => {\n const canAddNewManagers =\n props.countsManagers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!canAddNewManagers && form.values.role === \"manager\") {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n } else {\n InvitationModel.onCreate(\n form.values,\n space.slug,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n props.setRefresh(true);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n }\n };\n\n const onUpdatePaymentFromProps = (params) => {\n if (!params.payment_settings) {\n return;\n }\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.payment_settings.currency) {\n form.setFieldValue(\"payment_currency\", params.payment_settings.currency);\n }\n if (params.payment_settings.default_payment_amount) {\n form.setFieldValue(\n \"payment_amount\",\n params.payment_settings.default_payment_amount\n );\n }\n if (params.payment_settings.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.payment_settings.default_payment_frequency\n );\n }\n if (params.payment_settings.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.payment_settings.subscription_type\n );\n }\n if (params.payment_settings.until_date) {\n form.setFieldValue(\"until_date\", params.payment_settings.until_date);\n }\n if (params.payment_settings.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.payment_settings.number_of_times\n );\n }\n if (params.payment_settings.trial_period) {\n form.setFieldValue(\n \"trial_period\",\n params.payment_settings.trial_period\n );\n }\n };\n\n const onUpdatePayment = (params) => {\n if (!params.pod_payment_settings_attributes) {\n return;\n }\n\n // const auxSettings = { ...settings };\n\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.pod_payment_settings_attributes.currency) {\n form.setFieldValue(\n \"payment_currency\",\n params.pod_payment_settings_attributes.currency\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_amount || typeof params.pod_payment_settings_attributes.default_payment_amount === 'number') {\n form.setFieldValue(\n \"payment_amount\",\n params.pod_payment_settings_attributes.default_payment_amount\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.pod_payment_settings_attributes.default_payment_frequency\n );\n }\n if (params.pod_payment_settings_attributes.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.pod_payment_settings_attributes.subscription_type\n );\n }\n if (params.pod_payment_settings_attributes.until_date) {\n form.setFieldValue(\n \"until_date\",\n params.pod_payment_settings_attributes.until_date\n );\n }\n if (params.pod_payment_settings_attributes.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.pod_payment_settings_attributes.number_of_times\n );\n }\n\n if (params.pod_payment_settings_attributes.trial_period) {\n form.setFieldValue(\n \"trial_period\",\n params.pod_payment_settings_attributes.trial_period\n );\n }\n\n // auxSettings.circle_payment = form.values.circle_payment;\n // auxSettings.payment_settings.currency = form.values.currency;\n // auxSettings.payment_settings.default_payment_amount =\n // form.values.payment_amount;\n // auxSettings.payment_settings.default_payment_frequency =\n // form.values.payment_frequency;\n // auxSettings.payment_settings.subscription_type =\n // form.values.subscription_type;\n // auxSettings.payment_settings.until_date = form.values.until_date;\n // auxSettings.payment_settings.number_of_times = form.values.number_of_times;\n // auxSettings.payment_settings.trial_period = form.values.trial_period;\n // setSettings(auxSettings);\n };\n\n return (\n \n
onInvite(values))}>\n \n \n\n \n\n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n {settings && settings.can_accept_charges && settings.is_paid && (\n \n )}\n {space.slug && space.permissions.can_send_email_invites[0] && window.$fetchedTopSpace.is_email_ready && (\n \n )}\n \n {space.slug && !space.permissions.can_send_email_invites[0] && (\n \n \n {t(\"spaces.settings.members.inviteEmail.invite.alertMessage\")}\n \n \n \n {t(\"spaces.settings.members.inviteEmail.invite.alertbutton\")}\n \n \n \n )}\n {space.slug && space.permissions.can_send_email_invites[0] && !window.$fetchedTopSpace.is_email_ready && (\n \n \n {\"You are currently on a free trial and cannot send invitations through Sutra. Email invitations can be sent through our system once your first account payment is processed or by making a request to support@sutra.co\"}\n \n \n )}\n ({\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n })}\n >\n {t(\"spaces.settings.members.inviteEmail.invite.button\")}\n \n \n\n \n\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n Button,\n Divider,\n MultiSelect,\n Checkbox,\n Alert,\n MantineProvider,\n Select,\n Switch,\n Group,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport Payment from \"../privacy/Paid\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Swal from \"sweetalert2\";\n\nimport { AlertCircle } from \"tabler-icons-react\";\n\nimport { Link } from \"react-router-dom\";\n\nexport default function InvitePeople(props) {\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.space);\n const [selectedSpaces, setSelectedSpaces] = useState([]);\n const [selectedActiveMembers, setSelectedActiveMembers] = useState([]);\n const [selectedPendingMembers, setSelectedPendingMembers] = useState([]);\n const [activeMembers, setActiveMembers] = useState([]);\n const [pendingMembers, setPendingMembers] = useState([]);\n const [spaces, setSpaces] = useState([]);\n const [checked, setChecked] = useState(true);\n const [allowCopySpaces, setAllowCopySpaces] = useState(false);\n const [allowCopyActiveMembers, setCopyAllowActiveMembers] = useState(false);\n const [addToSubspaces, setAddToSubspaces] = useState(false);\n const [allowCopyPendingMembers, setCopyAllowCopyPendingMembers] = useState(false);\n const [opened, setOpened] = useState(false);\n\n const [settings, setSettings] = useState({});\n\n const form = useForm({\n initialValues: {\n add_people: \"\",\n message: \"\",\n notify_members: true,\n circle_payment: \"\",\n currency: \"\",\n payment_amount: \"\",\n payment_frequency: \"\",\n subscription_type: \"\",\n until_date: \"\",\n number_of_times: \"\",\n role: \"member\",\n add_to_subspaces: false,\n },\n });\n\n useEffect(() => {\n setAllowCopySpaces(props.allowCopySpaces);\n setCopyAllowActiveMembers(props.allowCopyActiveMembers);\n setCopyAllowCopyPendingMembers(props.allowCopyPendingMembers);\n\n setSpaces(props.spaces);\n setActiveMembers(props.activeMembers);\n setPendingMembers(props.pendingMembers);\n\n if (props.settings) {\n setSettings({ ...props.settings });\n onUpdatePaymentFromProps(props.settings.payment_settings);\n }\n }, [props]);\n\n const getOnlyMembers = (array) => {\n return array.filter((value) => value.indexOf(\"SPACE-\") < 0);\n };\n\n const getOnlySpaces = (array) => {\n return array\n .filter((value) => value.indexOf(\"SPACE\") >= 0)\n .map((value) => value.replace(\"SPACE-\", \"\"));\n };\n\n const onInvite = () => {\n const canAddNewManagers =\n props.countsManagers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n\n if (!canAddNewManagers && form.values.role === \"manager\") {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n } else {\n const params = {\n copy_members_from: selectedSpaces ? selectedSpaces.join(\",\") : \"\",\n active_members: getOnlyMembers([...selectedActiveMembers]).join(\",\"),\n pending_members: getOnlyMembers([...selectedPendingMembers]).join(\",\"),\n active_all: getOnlySpaces([...selectedActiveMembers]).join(\",\"),\n pending_all: getOnlySpaces([...selectedPendingMembers]).join(\",\"),\n notify_members: form.values.notify_members,\n role: form.values.role,\n };\n \n InvitationModel.onCreate(\n params,\n space.slug,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n props.setRefresh(true);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n }\n };\n\n const onUpdatePaymentFromProps = (params) => {\n if (!params.payment_settings) {\n return;\n }\n\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.payment_settings.default_payment_amount) {\n form.setFieldValue(\n \"payment_amount\",\n params.payment_settings.default_payment_amount\n );\n }\n if (params.payment_settings.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.payment_settings.default_payment_frequency\n );\n }\n if (params.payment_settings.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.payment_settings.subscription_type\n );\n }\n if (params.payment_settings.until_date) {\n form.setFieldValue(\"until_date\", params.payment_settings.until_date);\n }\n if (params.payment_settings.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.payment_settings.number_of_times\n );\n }\n };\n\n const onUpdatePayment = (params) => {\n if (!params.pod_payment_settings_attributes) {\n return;\n }\n\n const auxSettings = { ...settings };\n\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.pod_payment_settings_attributes.default_payment_amount || typeof params.pod_payment_settings_attributes.default_payment_amount === 'number') {\n form.setFieldValue(\n \"payment_amount\",\n params.pod_payment_settings_attributes.default_payment_amount\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.pod_payment_settings_attributes.default_payment_frequency\n );\n }\n if (params.pod_payment_settings_attributes.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.pod_payment_settings_attributes.subscription_type\n );\n }\n if (params.pod_payment_settings_attributes.until_date) {\n form.setFieldValue(\n \"until_date\",\n params.pod_payment_settings_attributes.until_date\n );\n }\n if (params.pod_payment_settings_attributes.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.pod_payment_settings_attributes.number_of_times\n );\n }\n\n auxSettings.circle_payment = form.values.circle_payment;\n auxSettings.payment_settings.currency = form.values.currency;\n auxSettings.payment_settings.default_payment_amount =\n form.values.payment_amount;\n auxSettings.payment_settings.default_payment_frequency =\n form.values.payment_frequency;\n auxSettings.payment_settings.subscription_type =\n form.values.subscription_type;\n auxSettings.payment_settings.until_date = form.values.until_date;\n auxSettings.payment_settings.number_of_times = form.values.number_of_times;\n setSettings(auxSettings);\n };\n\n return (\n \n {allowCopySpaces || allowCopyActiveMembers || allowCopyPendingMembers ? (\n
onInvite(values))}>\n {allowCopySpaces ? (\n <>\n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.copyMembers\"\n )}\n \n \n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n ) : (\n \"\"\n )}\n {allowCopyActiveMembers ? (\n <>\n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.addActiveMembers\"\n )}\n \n \n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n ) : (\n \"\"\n )}\n {allowCopyPendingMembers ? (\n <>\n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.addPendingMembers\"\n )}\n \n \n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n ) : (\n \"\"\n )}\n \n\n {settings && settings.can_accept_charges && settings.is_paid && (\n \n )}\n\n {space.slug && space.permissions.can_send_email_invites[0] ? (\n \n ) : (\n }\n color=\"green\"\n radius=\"md\"\n mt={15}\n >\n \n {t(\"spaces.settings.members.inviteExisting.invite.alert\")}\n \n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.alertButton\"\n )}\n \n \n \n )}\n \n ({\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n })}\n >\n {t(\"spaces.settings.members.inviteExisting.invite.button\")}\n \n \n ) : (\n \n {t(\"spaces.settings.members.inviteExisting.invite.thisOption\")}\n \n )}\n\n \n \n
\n );\n}\n","import React, { useState } from 'react';\n\nimport {\n Text,\n Textarea,\n Box,\n Button,\n Divider\n} from '@mantine/core';\n\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport Swal from 'sweetalert2'\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nexport default function InvitePeople(props) {\n\n const { t, i18n } = useTranslation();\n\n const space = useSelector(state => state.space);\n\n const onCopy = () => {\n Swal.fire(\"Done\", \"Text copied to clipboard\", \"success\")\n }\n\n if (space && space.slug && space.parents.length > 0){\n return null\n }\n\n return (\n \n {/* if space is top level open or paid, or public open or paid */}\n {(space && space.slug && (space.privacy_level != \"private\")) ? (\n <>\n \n {\"Share link\"}\n \n \n {t(\"spaces.settings.members.inviteLink.invite.shareLinkText\")}\n \n\n ({\n marginTop: 8,\n backgroundColor: theme.colors.gray[1],\n color: theme.colors.dark[4],\n borderRadius: \"5px\",\n padding: \"8px 15px\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[2],\n cursor: \"pointer\"\n }\n })}\n >\n onCopy()}\n text={space.shareble_link}>\n \n {space.shareble_link}\n \n \n \n \n ) : (\n \n {\"This space is private and people must be invited to access it.\"}\n \n )}\n\n \n )\n}\n","// import axios from 'axios';\nimport { getNeo4jHost } from \"../utils/Host\";\n\nclass Member {\n constructor() {\n if (this instanceof Member) {\n throw Error(\"Member class cannot be instantiated.\");\n }\n }\n\n static onFetch = async (\n slug,\n paginator,\n { scope, term },\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n scope,\n term,\n ...paginator,\n };\n\n await window.$api\n .get(`/api/v4/spaces/${slug}/members.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onFetchNeo4j = async (\n slug,\n paginator,\n { scope, term },\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n scope,\n term,\n ...paginator,\n };\n\n await window.$api\n .get(`${getNeo4jHost()}/api/v1/spaces/${slug}/members`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onFetchCounts = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .get(`/api/v4/spaces/${slug}/members/counts.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onFetchMembersToCopy = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .get(`/api/v4/spaces/${slug}/members/members_to_copy.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onFetchMembersBySlugs = async (\n slug,\n slugs,\n user_ids = [],\n query,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n slugs,\n user_ids: user_ids.length > 0 ? user_ids : null,\n query,\n };\n\n await window.$api\n .get(`/api/v4/spaces/${slug}/members/members_by_slugs.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onFetchMembersProgress = async (\n slug,\n slugs,\n user_ids = [],\n includeSubspaces,\n actions,\n date_range,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n slugs,\n user_ids: user_ids.length > 0 ? user_ids : null,\n include_subspaces: includeSubspaces ? true : null,\n actions,\n date_range,\n };\n\n await window.$api\n .get(`/api/v4/spaces/${slug}/members/members_progress.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static encodeParams(params) {\n const keys = Object.keys(params);\n return keys.flatMap(key => {\n const value = params[key];\n if (value === null || value === undefined) {\n return []; // Skip null and undefined values\n } else if (Array.isArray(value)) {\n return value.filter(item => item !== null && item !== undefined)\n .map(item => `${encodeURIComponent(key)}[]=${encodeURIComponent(item)}`);\n } else if (value instanceof Date) {\n return `${encodeURIComponent(key)}=${encodeURIComponent(this.formatDate(value))}`;\n } else {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n }\n }).join('&');\n}\n\n static formatDate(date) {\n const pad = (num) => num.toString().padStart(2, \"0\");\n\n const year = date.getFullYear();\n const month = pad(date.getMonth() + 1); // Months are zero-indexed\n const day = pad(date.getDate());\n const hours = pad(date.getHours());\n const minutes = pad(date.getMinutes());\n const seconds = pad(date.getSeconds());\n\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;\n }\n\n static onDownloadProgressExcel = async (\n slug,\n slugs,\n user_ids = [],\n includeSubspaces,\n actions,\n date_range\n ) => {\n const baseUrl = `/api/v4/spaces/${slug}/members/members_progress.xlsx`;\n\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n slugs,\n user_ids: user_ids.length > 0 ? user_ids : null,\n include_subspaces: includeSubspaces ? true : null,\n actions,\n start_at: date_range[0],\n end_at: date_range[1],\n };\n\n const queryString = this.encodeParams(params);\n\n const fullUrl = `${baseUrl}?${queryString}`;\n\n window.open(fullUrl, \"_blank\").focus();\n };\n\n // TODO:\n static onCreate = async (slug, user_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user_id,\n };\n\n await window.$api\n .post(`/api/v4/spaces/${slug}/members.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onUpdate = async (\n pod_member_id,\n slug,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .put(`/api/v4/spaces/${slug}/members/${pod_member_id}.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onUpdateRole = async (\n pod_member_id,\n slug,\n role,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n role,\n };\n\n await window.$api\n .put(\n `/api/v4/spaces/${slug}/members/${pod_member_id}/update_role.json`,\n params\n )\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onEmailFrequency = async (\n pod_member_id,\n slug,\n frequency,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n frequency: frequency,\n };\n\n await window.$api\n .post(\n `/api/v4/spaces/${slug}/members/${pod_member_id}/email_frequency.json`,\n params\n )\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onApprove = async (\n pod_member_id,\n slug,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .post(\n `/api/v4/spaces/${slug}/members/${pod_member_id}/approve.json`,\n params\n )\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onApproveAll = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .post(`/api/v4/spaces/${slug}/members/approve_all.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onDestroy = async (\n pod_member_id,\n slug,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .delete(`/api/v4/spaces/${slug}/members/${pod_member_id}.json`, {\n params,\n })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onDestroyAll = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .delete(`/api/v4/spaces/${slug}/members/destroy_all.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onDownloadExcel = async (slug) => {\n window\n .open(\n `/api/v4/spaces/${slug}/members/excel.xlsx?auth_token=${window.$currentUserAuthToken}`,\n \"_blank\"\n )\n .focus();\n };\n}\n\nexport default Member;\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, SegmentedControl, ScrollArea, Divider } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useSelector } from \"react-redux\";\n\nimport InviteEmail from \"./InviteEmail\";\nimport InviteExisting from \"./InviteExisting\";\nimport InviteLink from \"./InviteLink\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\nimport MemberModel from \"../../../../models/Member\";\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function InvitePeople(props) {\n const { t, i18n } = useTranslation();\n const [checked, setChecked] = useState(true);\n const [inviteSection, setInviteSection] = useState(\"inviteEmail\");\n\n const space = useSelector((state) => state.space);\n\n const [settings, setSettings] = useState();\n const [spaces, setSpaces] = useState([]);\n const [activeMembers, setActiveMembers] = useState([]);\n const [pendingMembers, setPendingMembers] = useState([]);\n const [allowCopySpaces, setAllowCopySpaces] = useState(false);\n const [allowCopyActiveMembers, setCopyAllowActiveMembers] = useState(false);\n const [allowCopyPendingMembers, setCopyAllowCopyPendingMembers] = useState(false);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n useEffect(() => {\n if (space && space.slug) {\n onFetchMembersToCopy();\n onFetchCounts();\n }\n }, [space]);\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const form = useForm({\n initialValues: {\n add_people: \"\",\n message: \"\",\n notify_members: true,\n },\n\n validate: {\n add_people: (value) =>\n value.length > 0 && value.split(\",\").length > 0\n ? null\n : \"Add at least one person\",\n },\n });\n\n const onInvite = () => {\n InvitationModel.onCreate(\n form.values,\n space.slug,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const displayInviteSection = () => {\n if (inviteSection == \"inviteEmail\") {\n return (\n \n );\n } else if (inviteSection == \"inviteExisting\") {\n return (\n \n );\n } else if (inviteSection == \"invitelink\") {\n return ;\n } else {\n return (\n \n );\n }\n };\n\n const onFetchMembersToCopy = (tree, _spaces = []) => {\n MemberModel.onFetchMembersToCopy(\n space.slug,\n (data) => {\n setAllowCopySpaces(data.spaces.allowed);\n setSpaces(data.spaces.data);\n setCopyAllowActiveMembers(data.active.allowed);\n setActiveMembers(data.active.data);\n setCopyAllowCopyPendingMembers(data.pending.allowed);\n setPendingMembers(data.pending.data);\n },\n (data) => {\n setAllowCopySpaces(false);\n setCopyAllowActiveMembers(false);\n setCopyAllowCopyPendingMembers(false);\n }\n );\n };\n\n const getInviteOptions = () => {\n if (allowCopySpaces || allowCopyActiveMembers || allowCopyPendingMembers) {\n return [\n { label: \"Send email\", value: \"inviteEmail\" },\n { label: \"Add existing members\", value: \"inviteExisting\" },\n ];\n } else {\n return [{ label: \"Send email\", value: \"inviteEmail\" }];\n }\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.members.invitePeople.invite.invitePeople\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n {(allowCopySpaces ||\n allowCopyActiveMembers ||\n allowCopyPendingMembers) ? (\n setInviteSection(value)}\n data={getInviteOptions()}\n />\n ) : ( ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />)}\n \n\n {displayInviteSection()}\n \n \n \n );\n}\n","import mixpanel from 'mixpanel-browser';\n\nconst trackMixpanel = (username, action, params = {}) => {\n const mixpanelKey = \"b70e7b4e9a911ec7b7a73c7f7bb7aee7\"\n\n mixpanel.init(mixpanelKey);\n mixpanel.identify(username)\n mixpanel.track(action, params);\n}\n\nexport default trackMixpanel;\n","import React, { useState, useEffect } from \"react\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport PaymentMethod from \"../payment/PaymentMethod\";\nimport History from \"../payment/History\";\nimport TreeView from \"../TreeView\";\n\nimport {\n Group,\n Button,\n Drawer,\n Text,\n Popover,\n MantineProvider,\n AvatarsGroup,\n Avatar,\n createStyles,\n Modal,\n Box,\n Loader,\n Accordion,\n Tooltip,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { setActions, setTiptapSidemenu, setSpace } from \"../../../store/app\";\nimport SpaceModel from \"../../../models/Space\";\nimport CompletionModel from \"../../../models/Completion\";\nimport HocuspocusModel from \"../../../models/Hocuspocus\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\n\nimport DuplicateForm from \"../form/DuplicateForm\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport Swal from \"sweetalert2\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport { getCookie } from \"../../../utils/Cookies\";\n\nimport InvitePeople from \"../settings/members/InvitePeople\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n secondaryButtonStyle: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.secondary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n buttonCompleted: {\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n \"&:hover\": {\n backgroundColor: theme.colors.green[7],\n },\n },\n separatorRight: {\n borderRight: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : tinycolor(colors.header_color).darken(10).toString()\n }`,\n height: \"100%\",\n },\n appearanceButtonRoot: {\n color: theme.colors.gray[7],\n fontWeight: 400,\n fontSize: 16,\n borderRadius: 5,\n display: \"block\",\n width: \"100%\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n paddingLeft: 10,\n },\n appearanceButtonLeftIcon: {\n color: theme.colors.gray[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonInner: {\n justifyContent: \"flex-start\",\n },\n}));\n\nexport default function MainActions(props) {\n const { t, i18n } = useTranslation();\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView ? colors : defaultSpaceColors;\n const { classes, cx, theme } = useStyles({ colors: colors, settingsView });\n\n const mainActions = useSelector((state) => state.mainActions);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const spaceTree = useSelector((state) => state.tree);\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const tiptap = useSelector((state) => state.tiptap);\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const location = useLocation();\n const mediumScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.md}px)`\n );\n const largeScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [editPage, setEditPage] = useState(false);\n const [editRegPage, setEditRegPage] = useState(false);\n const [editButtonDisabled, setEditButtonDisabled] = useState(true);\n const [openedSettings, setOpenedSettings] = useState(false);\n const [openedMembers, setOpenedMembers] = useState(false);\n const [openedColors, setOpenedColors] = useState(false);\n const [openedMoreOptions, setOpenedMoreOptions] = useState(false);\n const [openedMoreOptions2, setOpenedMoreOptions2] = useState(false);\n const [openedDuplicate, setOpenedDuplicate] = useState(false);\n const [completed, setCompleted] = useState(false);\n const [loadingModalOpened, setLoadingModalOpened] = useState(false);\n const [deletingModalOpened, setDeletingModalOpened] = useState(false);\n const [treeModalOpened, setTreeModalOpened] = useState(false);\n const [registered, setRegistered] = useState(false);\n const [createTemplate, setCreateTemplate] = useState(false);\n const [openedPaymentMethod, setOpenedPaymentMethod] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n const [validatePremium2, setValidatePremium2] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n const [treeViewSelectedNode, setTreeViewSelectedNode] = useState({});\n const [inviteOpened, setInviteOpened] = useState(false);\n const [isCreateTemplateRegistration, setIsCreateTemplateRegistration] = useState(false);\n\n const onTriggerAction = (event, action) => {\n if (\n action.editPage == false &&\n location.pathname.indexOf(\"/content\") >= 0\n ) {\n if (\n window.$tiptapNeedSaving &&\n window.$tiptapNeedSaving.status == false\n ) {\n dispatch(setActions(action));\n } else if (window.$tiptapNeedSaving) {\n setEditButtonDisabled(true);\n window.$tiptapNeedSaving.leave = true;\n\n setTimeout(() => {\n if (\n window.$tiptapNeedSaving &&\n window.$tiptapNeedSaving.leave == true\n ) {\n dispatch(setActions({ editPage: false }));\n }\n }, 3000);\n }\n } else if (action.manage == true && editPage == true) {\n dispatch(setActions({ editPage: false }));\n setTimeout(() => {\n dispatch(setActions({ manage: true }));\n }, 1000);\n } else {\n if (action.editPage === true) {\n trackMixpanel(user.username, \"Edit space clicked\", { space_slug: space.slug });\n }\n dispatch(setActions(action));\n }\n };\n\n const onPublishPage = () => {\n // ALERT?\n\n setLoadingModalOpened(true);\n setTimeout(() => {\n HocuspocusModel.onPublish(\n `circle-editable-registration-page-${space.slug}`,\n (data) => {\n setLoadingModalOpened(false);\n Swal.fire(\n \"Page published\",\n \"The changes you made are now live!\",\n \"success\"\n );\n },\n (data) => {\n setLoadingModalOpened(false);\n Swal.fire(\"Opps\", \"Something went wrong\", \"error\");\n }\n );\n }, 4000);\n };\n\n useEffect(() => {\n return () => {\n onTriggerAction(null, {\n manage: false,\n editPage: false,\n editRegPage: false,\n });\n };\n }, []);\n\n useEffect(() => {\n setRegistered(getCookie(`interested_${space.slug}`));\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (createTemplate) {\n setOpenedDuplicate(true);\n }\n }, [createTemplate]);\n\n useEffect(() => {\n if (!openedDuplicate) {\n setCreateTemplate(false);\n }\n }, [openedDuplicate]);\n\n useEffect(() => {\n if (location.pathname.indexOf(\"/settings\") >= 0) {\n setOpenedSettings(true);\n } else {\n setOpenedSettings(false);\n }\n }, [location]);\n\n useEffect(() => {\n if (mainActions) {\n if (mainActions.editPage != editPage) {\n setEditButtonDisabled(false);\n window.$spaceEditPage = editPage;\n setEditPage(mainActions.editPage);\n if (location.pathname.indexOf(\"/getting_started\") >= 0) {\n navigate(`/space/${space.slug}/${space.version}`);\n }\n }\n if (mainActions.editRegPage != editRegPage) {\n setEditRegPage(mainActions.editRegPage);\n }\n\n if (mainActions.manage != openedSettings) {\n setOpenedSettings(mainActions.manage);\n if (mainActions.manage) {\n if (window.$currentRole === \"moderator\" || window.$currentRole === \"editor\") {\n navigate(\"settings/participation\");\n } else {\n navigate(\"settings/main\");\n }\n } else {\n navigate(space.version);\n }\n }\n }\n }, [mainActions]);\n\n useEffect(() => {\n if (location.pathname.indexOf(\"/members\") >= 0) {\n setOpenedMembers(true);\n } else {\n setOpenedMembers(false);\n }\n // setEditButtonDisabled(true)\n }, [location]);\n\n useEffect(() => {\n dispatch(setTiptapSidemenu({ opened: \"\" }));\n }, [openedColors]);\n\n useEffect(() => {\n setCompleted(space.completed);\n setTimeout(() => {\n if (editButtonDisabled) {\n setEditButtonDisabled(false);\n }\n }, 3000);\n\n setValidatePremium(\n space && space.permissions && space.permissions.can_save_templates\n );\n setValidatePremium2(\n space && space.permissions && space.permissions.can_duplicate_spaces\n );\n }, [space]);\n\n useEffect(() => {\n const show_payments = new URLSearchParams(location.search).get(\"show_payments\");\n if (show_payments && space && window.$userIsSubscribed) {\n setTimeout(() => {\n setOpenedPaymentMethod(true);\n window.history.replaceState(null, null, location.pathname);\n }, 1000);\n }\n }, [space]);\n\n const onMembers = () => {\n navigate(\"members\");\n };\n\n const onReturnToSpace = () => {\n navigate(`/space/${space.slug}/${space.version}?refresh=true`);\n };\n\n const onReturnToSettings = () => {\n navigate(`/space/${space.slug}/settings/main`);\n };\n\n const onOpenRegPageColors = () => {\n dispatch(setTiptapSidemenu({ opened: \"regPageColors\" }));\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n if (space.calendar.allow_interested_on_join) {\n dispatch(setTiptapSidemenu({ opened: \"interestedform\", slug: space.slug }));\n return;\n }\n\n localStorage.setItem(\"join_slug\", space.slug);\n navigate(`/user/start?s=${space.slug}`);\n return;\n }\n\n SpaceModel.onJoin(\n space.slug,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n };\n\n const onLeave = () => {\n Swal.fire({\n title: t(\"spaces.header.onLeave.title\"),\n html: t(\"spaces.header.onLeave.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onLeave.confirm\"),\n denyButtonText: t(\"spaces.header.onLeave.deny\"),\n confirmButtonColor: \"#ff0000\",\n denyButtonColor: \"#666\",\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onLeave(\n space.slug,\n (data) => {\n // navigate(`/home/top`);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDuplicateSpace = (id, link) => {\n try {\n if (!validatePremium2[0]) {\n setOpenedPremium([true, validatePremium2[1], validatePremium2[2]]);\n return;\n }\n } catch {}\n setOpenedDuplicate(true);\n };\n\n const onArchive = () => {\n Swal.fire({\n title: t(\"spaces.header.onArchive.title\"),\n html: t(\"spaces.header.onArchive.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onArchive.confirm\"),\n denyButtonText: t(\"spaces.header.onArchive.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n setDeletingModalOpened(true);\n SpaceModel.onArchive(\n space.slug,\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n navigate(data.redirect_to);\n }, 3000);\n },\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n window.location.reload();\n }, 3000);\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onUnarchive = () => {\n Swal.fire({\n title: t(\"spaces.header.onUnarchive.title\"),\n html: t(\"spaces.header.onUnarchive.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onUnarchive.confirm\"),\n denyButtonText: t(\"spaces.header.onUnarchive.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onUnarchive(\n space.slug,\n (data) => {\n // navigate(data.redirect_to);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDelete = () => {\n Swal.fire({\n title: t(\"spaces.header.onDelete.title\"),\n html: t(\"spaces.header.onDelete.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onDelete.confirm\"),\n denyButtonText: t(\"spaces.header.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n setDeletingModalOpened(true);\n SpaceModel.onDestroy(\n space.slug,\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n navigate(data.redirect_to);\n }, 3000);\n },\n (data) => {\n setTimeout(() => {\n setDeletingModalOpened(false);\n window.location.reload();\n }, 3000);\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onMarkAsCompleted = (_completed) => {\n setCompleted(_completed);\n\n CompletionModel.onCreate(\n space.slug,\n (data) => {\n Broadcaster.send(\n \"change_sidebarTreeNode\",\n document.getElementById(`sidebar_tree_node-${space.slug}`),\n { shouldUpdateTopTree: true }\n );\n\n dispatch(\n setSpace({ ...space, completed: data.completions.length > 0 })\n );\n },\n (data) => {}\n );\n };\n\n const setCompletionMarks = (_tree, marks) => {\n if (_tree && _tree.children && _tree.children.length > 0) {\n for (var i = 0; i < _tree.children.length; i++) {\n const child = _tree.children[i];\n if (child) {\n let found = false;\n for (var j = 0; j < marks.length; j++) {\n const mark = marks[j];\n\n if (mark[0] == child.pod_id) {\n child.completed = true;\n found = true;\n marks.splice(j, 1);\n break;\n }\n }\n\n if (!found) {\n child.completed = false;\n }\n\n setCompletionMarks(child, marks);\n }\n }\n }\n };\n\n const onOpenPreview = (preview) => {\n if (preview == \"published\") {\n window.open(`/space/${space.slug}/register?preview=true`, `_blank`);\n return;\n }\n if (preview == \"draft\") {\n window.open(`/space/${space.slug}/registration/view`, `_blank`);\n return;\n }\n };\n\n const onVersionControl = () => {\n dispatch(setTiptapSidemenu({ opened: \"versionControl\" }));\n };\n\n const onFix = () => {\n Swal.fire({\n title: t(\"spaces.header.onFix.title\"),\n html: t(\"spaces.header.onFix.message\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.header.onFix.confirm\"),\n denyButtonText: t(\"spaces.header.onFix.deny\"),\n confirmButtonColor: \"#ff0000\",\n denyButtonColor: \"#666\",\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onFix(\n space.slug,\n (data) => {\n if (data.fixed) {\n Swal.fire(\n t(\"spaces.header.onFix.confirmationTitle\"),\n t(\"spaces.header.onFix.confirmationMessage\"),\n \"success\"\n );\n window.location.reload();\n } else {\n Swal.fire(\n t(\"spaces.header.onFix.confirmationTitle\"),\n t(\"spaces.header.onFix.confirmationError\"),\n \"info\"\n );\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onTiptapUndo = () => {\n tiptap.editor.commands.undo();\n };\n\n const showHeaderSeparator = (auth = true) => {\n if (auth) {\n return (\n props.authenticated &&\n location &&\n location.pathname.indexOf(\"/registration\") < 0\n );\n } else {\n return location && location.pathname.indexOf(\"/registration\") < 0;\n }\n };\n\n const onCreateTemplate = (is_registration_template) => {\n try {\n if (!validatePremium[0]) {\n setOpenedPremium([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n } catch {}\n setCreateTemplate(true);\n if (is_registration_template) {\n setIsCreateTemplateRegistration(true);\n }\n };\n\n const onDuplicate = (id, link) => {\n setOpenedDuplicate(false);\n onTriggerAction(event, { editPage: false });\n window.location = link;\n };\n\n const onGoToSpace = () => {\n navigate(\n `/space/${treeViewSelectedNode.slug}/${treeViewSelectedNode.version}`\n );\n setOpened(false);\n };\n\n const onOpenTutorial = (event) => {\n if (space.pod_state == \"model\") {\n return;\n }\n trackMixpanel(user.username, \"Tutorial Opened\");\n navigate(`/space/${space.slug}/getting_started`);\n };\n\n return (\n <>\n {!openedSettings &&\n !openedMembers &&\n location.pathname.indexOf(\"/demo\") < 0 &&\n location.pathname.indexOf(\"/space\") >= 0 &&\n (location.pathname.indexOf(`/${space.version}`) >= 0 ||\n location.pathname.indexOf(\"/pending\") >= 0 ||\n location.pathname.indexOf(\"/survey\") >= 0 ||\n location.pathname.indexOf(\"/processing\") >= 0 ||\n location.pathname.indexOf(\"/getting_started\") >= 0) ? (\n <>\n \n {largeScreen &&\n space &&\n space.permissions &&\n !space.is_post &&\n location.pathname.indexOf(`${space.version}`) >= 0 &&\n space.permissions.allow_completions &&\n space.permissions.show_mark_complete_button_in_header &&\n !space.permissions.is_top_level &&\n user.authenticated &&\n !editPage && (\n }\n radius=\"xl\"\n onClick={() => onMarkAsCompleted(!completed)}\n >\n {completed\n ? t(\"spaces.header.buttons.uncomplete\")\n : t(\"spaces.header.buttons.markComplete\")}\n \n )}\n\n {(mediumScreen || largeScreen) &&\n space &&\n space.permissions &&\n space.permissions.can_edit &&\n location.pathname.indexOf(\"/content\") >= 0 &&\n editPage && (\n \n }\n onClick={(event) => onTiptapUndo()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.undo\")}\n \n \n )}\n\n {(mediumScreen || largeScreen) &&\n space &&\n space.permissions &&\n space.permissions.can_edit &&\n location.pathname.indexOf(\"/content\") >= 0 &&\n window.$spaceUserInteractions &&\n window.$spaceUserInteractions.can_manage && (\n \n }\n onClick={(event) =>\n window.open(\n `/space/${space.slug}/${space.version}?preview_ij=true`,\n \"_blank\"\n )\n }\n radius=\"xl\"\n >\n {`Preview`}\n \n \n )}\n\n {mediumScreen &&\n space.version == \"content\" &&\n space &&\n space.permissions &&\n (space.permissions.can_edit || (space.permissions.can_moderate && space.is_post)) &&\n (location.pathname.indexOf(\"/content\") >= 0 ||\n location.pathname.indexOf(\"/getting_started\") >= 0) && (\n <>\n {!editPage ? (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: true })\n }\n radius=\"xl\"\n // disabled={editButtonDisabled}\n >\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n \n ) : (\n \n \n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: false })\n }\n radius=\"xl\"\n disabled={editButtonDisabled}\n >\n {t(\"spaces.header.buttons.viewPage\")}\n \n \n \n )}\n \n )}\n {mediumScreen &&\n space.version != \"content\" &&\n space &&\n space.permissions &&\n space.permissions.can_edit &&\n space.pod_type != \"user_message\" &&\n location.pathname.indexOf(\"/discussion\") >= 0 && (\n <>\n {!editPage ? (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: true })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.editTitle\")}\n \n \n ) : (\n \n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: false })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.viewPage\")}\n \n \n \n )}\n \n )}\n\n {mediumScreen &&\n space.version != \"content\" &&\n space &&\n space.permissions &&\n space.permissions.can_manage &&\n (location.pathname.indexOf(\"/list\") >= 0 ||\n location.pathname.indexOf(\"/events\") >= 0 ||\n location.pathname.indexOf(\"/showcase\") >= 0) && (\n <>\n {!editPage ? (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: true })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.editDescription\")}\n \n \n ) : (\n \n \n }\n onClick={(event) =>\n onTriggerAction(event, { editPage: false })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.viewPage\")}\n \n \n \n )}\n \n )}\n\n {mediumScreen &&\n space &&\n space.permissions &&\n (space.permissions.can_manage || (space.permissions.can_moderate &&\n space.permissions.type === \"editor\" ? true : [\"list\", \"discussion\"].includes(space.version) && space.permissions.can_manage\n )) &&\n !space.is_post &&\n // space.pod_state != \"model\" && // Removed because manage button was needed here\n (location.pathname.indexOf(`${space.version}`) >= 0 ||\n location.pathname.indexOf(\"/getting_started\") >= 0) && (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { manage: true })\n }\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.manage\")}\n \n \n )}\n\n {space &&\n space.permissions &&\n space.pod_type != \"user_message\" &&\n (space.permissions.is_member ||\n space.permissions.is_pending_member ||\n space.permissions.is_registration_survey_member ||\n space.permissions.can_manage ||\n space.permissions.is_admin) ? (\n setOpenedMoreOptions(false)}\n width={200}\n position=\"bottom\"\n placement=\"end\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n \n setOpenedMoreOptions((o) => !o)}\n >\n \n \n \n }\n >\n {space &&\n space.permissions &&\n !space.is_post &&\n // space.pod_state != \"model\" && // Removed because manage button was needed here\n space.permissions.can_manage && (\n \n }\n onClick={(event) => setInviteOpened(true)}\n >\n {\"Invite people\"}\n \n )}\n\n {!largeScreen &&\n space &&\n space.permissions &&\n space.permissions.is_member &&\n space.permissions.allow_completions &&\n space.permissions.show_mark_complete_button_in_header &&\n !space.permissions.is_top_level &&\n !space.is_post &&\n user.authenticated &&\n !editPage && (\n \n }\n radius=\"xl\"\n onClick={() => onMarkAsCompleted(!completed)}\n >\n {completed\n ? t(\"spaces.header.buttons.uncomplete\")\n : t(\"spaces.header.buttons.markComplete\")}\n \n )}\n\n {!largeScreen &&\n space &&\n space.permissions &&\n space.permissions.show_members &&\n space.permissions.is_member &&\n !space.is_post &&\n !space.permissions.is_pending_member && (\n \n }\n onClick={() => onMembers()}\n >\n {t(\"spaces.header.buttons.members\")}\n \n )}\n\n {!mediumScreen &&\n space.version == \"content\" &&\n space &&\n space.permissions &&\n space.permissions.can_edit ? (\n <>\n {!editPage ? (\n \n }\n onClick={(event) => {\n onTriggerAction(event, { editPage: true });\n setOpenedMoreOptions(false);\n }}\n >\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n ) : (\n \n }\n onClick={(event) => {\n onTriggerAction(event, { editPage: false });\n setOpenedMoreOptions(false);\n }}\n >\n {t(\"spaces.header.buttons.viewPage\")}\n \n )}\n \n ) : (\n \"\"\n )}\n\n {!mediumScreen &&\n space &&\n space.permissions &&\n !space.is_post &&\n // space.pod_state != \"model\" && // Removed because manage button was needed here\n (space.permissions.can_manage || space.permissions.can_moderate) && (\n \n }\n onClick={(event) =>\n onTriggerAction(event, { manage: true })\n }\n >\n {t(\"spaces.header.buttons.manage\")}\n \n )}\n\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n !space.is_post && (\n onDuplicateSpace(true)}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.duplicate\")}\n \n )}\n\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n !space.is_post &&\n space.version == \"content\" && (\n onCreateTemplate()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.template\")}\n \n )}\n\n {space &&\n space.permissions &&\n (space.permissions.can_manage ||\n space.permissions.can_edit) &&\n (editPage ? (\n onVersionControl()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.versionHistory\")}\n \n ) : (\n {\n dispatch(setActions({ editPage: true }));\n window.$openVersionHistoryOnEditMode = true;\n }}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.versionHistory\")}\n \n ))}\n\n {space && space.permissions && space.permissions.is_admin && (\n <>\n setTreeModalOpened(true)}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {\"Space map\"}\n \n \n )}\n\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n space.pod_state != \"archived\" &&\n !space.is_post && (\n onArchive()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.archive\")}\n \n )}\n\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n space.pod_state == \"archived\" &&\n !space.is_post && (\n onUnarchive()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.unarchive\")}\n \n )}\n\n {space &&\n space.permissions &&\n (space.permissions.can_manage ||\n space.permissions.can_delete) && (\n onDelete()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.delete\")}\n \n )}\n\n {space &&\n space.permissions &&\n !space.permissions.is_manager &&\n space.permissions.is_member &&\n window.$userIsSubscribed && (\n <>\n setOpenedPaymentMethod(true)}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {\"Payments\"}\n \n \n )}\n\n {space &&\n user &&\n user.id &&\n space.permissions &&\n (!space.parents_versions ||\n !space.user ||\n (space.parents_versions &&\n ((space.parents_versions.indexOf(\"list\") < 0 &&\n space.parents_versions.indexOf(\"showcase\") < 0) ||\n ((space.parents_versions.indexOf(\"list\") >= 0 ||\n space.parents_versions.indexOf(\"showcase\") >= 0) &&\n space.user &&\n space.user.id != user.id)))) &&\n (space.permissions.is_member ||\n space.permissions.is_pending_member ||\n space.permissions.is_registration_survey_member) && (\n onLeave()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.leave\")}\n \n )}\n\n {space &&\n space.permissions &&\n space.permissions.can_manage && (\n onOpenTutorial()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {\"Getting started\"}\n \n )}\n \n ) : (\n space &&\n space.permissions &&\n space.permissions.can_join &&\n !registered &&\n !window.$userIsPending && (\n <>\n {!user?.authenticated && (\n onJoin()}\n radius=\"xl\"\n >\n {\"Login\"}\n \n )}\n onJoin()}\n radius=\"xl\"\n >\n {space.calendar.has_start_date\n ? t(\"spaces.header.buttons.joinEvent\")\n : t(\"spaces.header.buttons.joinSpace\")}\n \n \n )\n )}\n\n {largeScreen &&\n space &&\n space.permissions &&\n space.permissions.show_members &&\n space.permissions.is_member &&\n location.pathname.indexOf(`/${space.version}`) >= 0 &&\n typeof space.members != \"string\" &&\n space.members.length > 1 && (\n <>\n onMembers()}\n limit={4}\n total={space.members_count}\n spacing={30}\n // radius={10}\n styles={{\n root: {\n justifyContent: \"right\",\n cursor: \"pointer\",\n paddingLeft: 12,\n },\n child: {\n width: \"auto\",\n border: `2px solid ${colors.header_color} !important`,\n },\n truncated: {\n backgroundColor: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : theme.colors.gray[2],\n color: isSpaceThemed(colors)\n ? colors.primary_button_text_color\n : \"#000\",\n paddingRight: 5,\n paddingLeft: 5,\n },\n }}\n >\n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n )}\n \n \n ) : (\n \n {location && location.pathname.indexOf(\"/registration\") >= 0 ? (\n <>\n {location && location.pathname.indexOf(\"/edit\") >= 0 && (\n \n }\n onClick={(event) => onTiptapUndo()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.undo\")}\n \n \n )}\n \n }\n onClick={(event) => onOpenRegPageColors()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.appearance\")}\n \n \n setOpenedMoreOptions(false)}\n width={150}\n position=\"bottom\"\n placement=\"center\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n \n setOpenedMoreOptions((o) => !o)}\n leftIcon={}\n >\n {t(\"spaces.header.buttons.preview\")}\n \n \n }\n >\n \n }\n onClick={(event) => onOpenPreview(\"draft\")}\n >\n {t(\"spaces.header.buttons.draft\")}\n \n \n }\n onClick={(event) => onOpenPreview(\"published\")}\n >\n {t(\"spaces.header.buttons.published\")}\n \n \n \n }\n onClick={(event) => onPublishPage()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.publish\")}\n \n \n setOpenedMoreOptions2(false)}\n width={200}\n position=\"bottom\"\n placement=\"end\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n \n setOpenedMoreOptions2((o) => !o)}\n >\n \n \n \n }\n >\n {space &&\n space.permissions &&\n space.permissions.can_manage &&\n space.version == \"content\" && (\n onCreateTemplate(true)}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.template\")}\n \n )}\n \n onVersionControl()}\n variant=\"subtle\"\n classNames={{\n root: classes.appearanceButtonRoot,\n inner: classes.appearanceButtonInner,\n leftIcon: classes.appearanceButtonLeftIcon,\n }}\n leftIcon={\n \n }\n >\n {t(\"spaces.header.buttons.versionHistory\")}\n \n \n \n }\n onClick={(event) => onReturnToSettings()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.returnToSettings\")}\n \n \n \n ) : (\n <>\n {(location.pathname.indexOf(`/settings`) >= 0 ||\n location.pathname.indexOf(`/registration`) >= 0 ||\n location.pathname.indexOf(`/members`) >= 0) && (\n \n }\n onClick={(event) => onReturnToSpace()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.returnToSpace\")}\n \n \n )}\n {location.pathname.indexOf(`/demo`) >= 0 && (\n \n }\n onClick={(event) => onReturnToSettings()}\n radius=\"xl\"\n >\n {t(\"spaces.header.buttons.returnToSettings\")}\n \n \n )}\n \n )}\n \n )}\n \n setOpenedDuplicate(false)}\n title={\n \n {!createTemplate ? \"DUPLICATE SPACE\" : \"SAVE AS TEMPLATE\"}\n \n }\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n\n {}}\n zIndex={99999}\n >\n \n \n {t(\"spaces.header.regPagePublishing\")}\n \n \n {}}\n zIndex={99999}\n >\n \n \n {t(\"spaces.header.spaceUpdating\")}\n \n \n setOpenedPaymentMethod(false)}\n title={{t(\"settings.billing.payments\")}}\n padding=\"xl\"\n size=\"xl\"\n >\n ({\n borderRadius: 10,\n borderBottom: \"none\",\n border: \"solid 1px #f1f1f1\",\n })}\n styles={{\n item: {\n borderBottom: \"none\",\n },\n control: {\n borderRadius: 10,\n fontWeight: 600,\n },\n }}\n >\n \n \n \n \n \n \n \n \n \n \n {treeViewSelectedNode.name}\n {treeViewSelectedNode.name && (\n onGoToSpace()}\n >{`View space`}\n )}\n \n \n }\n size=\"full\"\n opened={treeModalOpened}\n onClose={() => setTreeModalOpened(false)}\n zIndex={99999}\n styles={{\n title: { width: \"100%\", padding: \"20px 20px 0 20px\" },\n close: { marginRight: \"10px\", marginTop: \"20px\" },\n body: {\n overflow: \"hidden\",\n },\n modal: {\n padding: \"0px !important\",\n },\n inner: {\n overflow: \"hidden\",\n height: \"95vh\",\n },\n }}\n >\n \n {treeModalOpened && (\n \n )}\n \n \n \n {inviteOpened && }\n \n );\n}\n","import React from 'react';\n\nimport { Routes, Route } from \"react-router-dom\";\n\nimport SpaceMainActions from '../spaces/header/MainActions'\nimport SpaceMainActionsNeo from '../spaces_neo/header/MainActions'\n\n\nexport default function HeaderActions(props) {\n\n return (\n \n } />\n } />\n } />\n \n );\n}\n","import axios from 'axios';\nimport Broadcaster from '../helpers/Broadcaster.js';\n\nclass NotificationModel {\n constructor() {\n if (this instanceof NotificationModel) {\n throw Error('NotificationModel class cannot be instantiated.');\n }\n }\n\n static onFetch = async (page, callback) => {\n\n\n const params = {\n auth_token: window.$currentUserAuthToken,\n page: page\n };\n\n await axios.get(`/api/v2/notifications`, {params: params})\n .then(res => {\n callback(res.data)\n })\n .catch((error) => {\n });\n }\n\n static onFetchNotSeenCount = async (sucessCallback, errorCallback) => {\n const params = {\n auth_token: window.$currentUserAuthToken\n };\n\n await axios.get(`/api/v2/notifications/not_seen_count`, {params: params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n }\n });\n }\n\n static onMarkAsSeen = async (notification_type, item_id, callback) => {\n\n\n const params = {\n auth_token: window.$currentUserAuthToken,\n notification_type: notification_type,\n item_id: item_id\n };\n\n await axios.post(`/api/v2/notifications/mark_as_seen`, params)\n .then(res => {\n callback(res.data)\n })\n .catch((error) => {\n });\n }\n\n static onMarkAllAsSeen = async (callback) => {\n\n\n const params = {\n auth_token: window.$currentUserAuthToken\n };\n\n await axios.post(`/api/v2/notifications/mark_all_as_seen`, params)\n .then(res => {\n callback(res.data)\n })\n .catch((error) => {\n });\n }\n}\n\nexport default NotificationModel;\n","import { useMantineTheme } from '@mantine/core';\n\nexport default function useNotificationsStyle() {\n\n const theme = useMantineTheme();\n\n const notificationsStyle = {\n notificationItem: {\n textDecoration: \"none\",\n padding: \"10px 20px\",\n borderBottom: `1px solid ${theme.colors.gray[1]}`,\n 'a:hover': {\n textDecoration: \"none\"\n },\n '&:hover': {\n backgroundColor: theme.colors.gray[0]\n },\n cursor: \"pointer\"\n },\n badge: {\n justifyContent: \"center\",\n height: \"100%\",\n color: theme.colors.sutrapink[4]\n },\n empty: {\n padding: \"20px 20px\"\n }\n }\n\n return {\n notificationsStyle\n }\n\n}","import React, { useState, useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useDisclosure } from \"@mantine/hooks\";\n\nimport NotificationModel from \"../../../models/NotificationModel\";\nimport { useTranslation } from \"react-i18next\";\nimport useNotificationsStyle from \"./style/notifications.js\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../utils/SidebarStyles\";\nimport useActivityCounter from \"../../utils/ActivityCounter\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { sutraTheme } from \"../../collections/sutraTheme\";\n\nimport {\n Text,\n Box,\n ScrollArea,\n Button,\n Popover,\n Group,\n Grid,\n Stack,\n Indicator,\n Center,\n Loader,\n Tooltip,\n createStyles,\n Drawer,\n} from \"@mantine/core\";\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nconst loadingVariables = {\n firstLoad: false,\n reload: true,\n noMore: false,\n};\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : theme.colors.gray[2],\n color: isSpaceThemed(colors) ? colors.primary_button_text_color : \"#000000\",\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.primary_button_background_color).darken(4).toString()\n : theme.colors.gray[1],\n },\n },\n}));\n\nexport default function Notifications(props) {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n const { notificationsStyle } = useNotificationsStyle();\n const { activityCount } = useActivityCounter();\n\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView && !colors?.is_vision_builder ? colors : defaultSpaceColors;\n\n const { classes, theme, cx } = useStyles({ colors });\n\n const [notifications, setNotifications] = useState([]);\n\n const [opened, handlers] = useDisclosure(false);\n\n const dispatch = useDispatch();\n\n const onMarkAllAsSeen = () => {\n NotificationModel.onMarkAllAsSeen(\n (data) => {},\n (data) => {}\n );\n };\n\n const onClickNotification = (notification) => {\n handlers.close();\n\n if (notification.is_direct) {\n if (!window.$notificationRedirectionCount) {\n window.$notificationRedirectionCount = 0;\n }\n window.$notificationRedirectionCount++;\n navigate(\n `${notification.url ? notification.url : notification.actions.main}&c=${\n window.$notificationRedirectionCount\n }`\n );\n return;\n }\n\n if (\n notification.is_direct &&\n window.location.pathname.indexOf(\"/space\") >= 0 &&\n space &&\n space.slug &&\n space.pod_type != \"user_message\"\n ) {\n dispatch(\n setTiptapSidemenu({\n opened: \"direct\",\n option: notification.slug,\n pod_message_id: notification.pod_message_id,\n allow_reflections: true\n })\n );\n } else {\n if (!window.$notificationRedirectionCount) {\n window.$notificationRedirectionCount = 0;\n }\n window.$notificationRedirectionCount++;\n navigate(\n `${notification.url ? notification.url : notification.actions.main}&c=${\n window.$notificationRedirectionCount\n }`\n );\n }\n };\n\n const RenderNotifications = () => {\n if (!user.activity) {\n return [];\n }\n return user.activity\n .filter((item) => item.notification_type != \"user_message\")\n .map((notification, index) => {\n return (\n notificationsStyle.notificationItem}>\n onClickNotification(notification)}\n >\n \n \n \n {notification.subtitle}\n \n \n {notification.title}\n \n \n {notification.content}\n \n {\n color: theme.colors.sutrapink[4];\n }}\n color=\"dimmed\"\n >\n {notification.created_at}\n \n \n {!notification.is_seen ? (\n \n notificationsStyle.badge}>\n \n \n \n ) : (\n \n )}\n \n \n \n );\n });\n };\n\n const RenderLoader = () => {\n return (\n
\n \n
\n );\n };\n\n const RenderInsides = () => {\n return (\n \n ({ backgroundColor: theme.colors.gray[1] })}\n >\n {t(\"layout.notifications.label\")}\n onMarkAllAsSeen()}\n >\n {t(\"layout.notifications.actionButton\")}\n \n \n \n \n {user.activity && user.activity.length == 0 && (\n \n {t(\"layout.notifications.empty\")}\n \n )}\n \n \n );\n };\n\n const RenderTriggerButton = () => {\n return (\n 0 ? 20 : 0}\n label={activityCount > 0 ? activityCount : \"\"}\n offset={4}\n // color=\"sutrapink\"\n onClick={() => handlers.toggle()}\n styles={{\n indicator: {\n cursor: \"pointer\",\n backgroundColor: isSpaceThemed(colors)\n ? colors.default_badge_color\n : sutraTheme.colors.sutrapink[3],\n color: isSpaceThemed(colors)\n ? colors.default_badge_text_color\n : theme.colors.gray[1],\n \"&:hover button\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.default_badge_color).darken(4).toString()\n : sutraTheme.colors.sutrapink[1],\n color: isSpaceThemed(colors)\n ? tinycolor(colors.default_badge_text_color)\n .darken(4)\n .toString()\n : theme.colors.gray[1],\n },\n },\n }}\n >\n \n handlers.toggle()}\n className={classes.primaryButtonStyle}\n >\n \n \n \n \n );\n };\n\n return (\n <>\n {props.component == \"drawer\" ? (\n <>\n props.setOpened(false)}\n title=\"\"\n padding={0}\n size=\"lg\"\n >\n {RenderInsides()}\n \n \n ) : (\n \n {RenderInsides()}\n \n )}\n \n );\n}\n","import { Avatar } from '@mantine/core';\nimport React, { useRef, useEffect, useState } from 'react';\n\nexport default function LazyAvatar(props) {\n const [loaded, setLoaded] = useState(false);\n const ref = useRef();\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setLoaded(true);\n try {\n observer.unobserve(ref.current);\n }\n catch (e) {}\n }\n });\n });\n\n observer.observe(ref.current);\n\n return () => {\n if (ref.current){\n try {\n observer.unobserve(ref.current);\n }\n catch (e) {}\n }\n };\n }, []);\n\n return (\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useDisclosure } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../models/Space\";\nimport SpaceNeo4jModel from \"../../models/neo4j/Space\";\nimport { useTranslation } from \"react-i18next\";\n\n// import { notificationsStyle } from \"./style/notifications.js\"\nimport useNotificationsStyle from \"./style/notifications.js\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport useActivityCounter from \"../../utils/ActivityCounter\";\n\nimport { sutraTheme } from \"../../collections/sutraTheme\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport {\n Text,\n Box,\n ScrollArea,\n Button,\n Popover,\n Group,\n Stack,\n Indicator,\n Loader,\n Center,\n Tooltip,\n createStyles,\n Drawer\n} from \"@mantine/core\";\n\nimport Avatar from \"../utils/LazyAvatar\";\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nconst loadingVariables = {\n firstLoad: false,\n reload: true,\n noMore: false,\n};\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : theme.colors.gray[2],\n color: isSpaceThemed(colors) ? colors.primary_button_text_color : \"#000000\",\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.primary_button_background_color).darken(4).toString()\n : theme.colors.gray[1],\n },\n },\n badge: {\n justifyContent: \"center\",\n height: \"100%\",\n color: theme.colors.sutrapink[4],\n },\n}));\n\nfunction UnreadDot({ id }) {\n const { activityCount } = useActivityCounter(\n [\"user_message\"],\n [`all`],\n [\"pod\"],\n [`${id}`]\n );\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView ? colors : defaultSpaceColors;\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n <>\n {activityCount > 0 ? (\n \n \n \n ) : (\n \n )}\n \n );\n}\n\nexport default function DirectMessages(props) {\n const { t, i18n } = useTranslation();\n\n const navigate = useNavigate();\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const { activityCount } = useActivityCounter([\"user_message\"]);\n\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView && !colors?.is_vision_builder ? colors : defaultSpaceColors;\n const { classes, cx, theme } = useStyles({ colors });\n\n const scroll = useSelector((state) => state.scroll);\n\n const [messages, setMessages] = useState([]);\n\n const [loading, setLoading] = useState(false);\n\n const [opened, handlers] = useDisclosure(false);\n\n const { notificationsStyle } = useNotificationsStyle();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (opened) {\n loadingVariables.reload = true;\n onFetch();\n }\n }, [opened]);\n\n useEffect(() => {\n onScrollBottom();\n }, [scroll]);\n\n useEffect(() => {\n if (props.opened) {\n loadingVariables.reload = true;\n onFetch();\n }\n }, [props]);\n\n\n const onViewAll = () => {\n navigate(`/home/direct`);\n handlers.toggle();\n };\n\n const onScrollBottom = () => {\n if (scroll && scroll.atBottom) {\n if (loadingVariables.noMore) {\n return;\n }\n if (!loading) {\n paginator.page++;\n onFetch();\n }\n }\n };\n\n const onFetch = () => {\n setLoading(true);\n\n let newMessages = [...messages];\n if (loadingVariables.reload) {\n newMessages = [];\n paginator.page = 1;\n }\n\n loadingVariables.reload = false;\n\n\n SpaceModel.onFetchByScope(\n \"direct\",\n [\"members\", \"simple\", \"last_messages\"],\n paginator,\n (data) => {\n loadingVariables.firstLoad = true;\n\n setMessages(newMessages.concat(data));\n setLoading(false);\n\n if (data.length == 0 && paginator.page > 1) {\n paginator.page--;\n loadingVariables.noMore = true;\n }\n },\n (data) => {},\n null\n );\n };\n\n const getMessagedUserFullName = (message) => {\n return message.abstract.full_name;\n };\n\n const getMessagedUserAvatar = (message) => {\n return message.abstract.avatar;\n };\n\n const getLastMessageAuthor = (message) => {\n return message.abstract.username === user.username\n ? \"You\"\n : message.abstract.full_name;\n };\n\n const getLastMessageText = (message) => {\n return message.abstract.text;\n };\n\n const onClickMessage = (message) => {\n handlers.close();\n if (\n window.location.pathname.indexOf(\"/space\") >= 0 &&\n space &&\n space.slug &&\n !space.is_direct\n ) {\n dispatch(setTiptapSidemenu({ opened: \"direct\", option: message.slug, allow_reflections: true }));\n } else {\n navigate(message.link);\n }\n };\n\n const RenderMessages = () => {\n return messages.map((message, index) => {\n return (\n notificationsStyle.notificationItem}\n onClick={() => onClickMessage(message)}\n >\n \n \n \n \n \n {getMessagedUserFullName(message)}\n \n \n {getLastMessageAuthor(message)}: {getLastMessageText(message)}\n \n \n \n {/* Math.random() > .5 ? ( */}\n \n \n \n );\n });\n };\n\n const RenderLoader = () => {\n return (\n
\n \n
\n );\n };\n\n const RenderInsides = () => {\n return (\n \n ({ backgroundColor: theme.colors.gray[1] })}\n >\n {t(\"layout.directMessages.label\")}\n onViewAll()}\n variant=\"outline\"\n color=\"dark\"\n radius=\"xl\"\n size=\"xs\"\n compact\n >\n {t(\"layout.directMessages.actionButton\")}\n \n \n \n {!loadingVariables.firstLoad || loadingVariables.reload ? (\n \n ) : (\n \n )}\n {messages.length == 0 && loadingVariables.firstLoad ? (\n \n {t(\"layout.directMessages.empty\")}\n \n ) : (\n \"\"\n )}\n \n \n );\n };\n\n const RenderTriggerButton = () => {\n return (\n 0 ? 20 : 0}\n label={activityCount > 0 ? activityCount : \"\"}\n offset={4}\n color=\"sutrapink\"\n onClick={() => handlers.toggle()}\n styles={{\n indicator: {\n cursor: \"pointer\",\n backgroundColor: isSpaceThemed(colors)\n ? colors.default_badge_color\n : sutraTheme.colors.sutrapink[3],\n color: isSpaceThemed(colors)\n ? colors.default_badge_text_color\n : theme.colors.gray[1],\n \"&:hover button\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.default_badge_color).darken(4).toString()\n : sutraTheme.colors.sutrapink[1],\n color: isSpaceThemed(colors)\n ? tinycolor(colors.default_badge_text_color)\n .darken(4)\n .toString()\n : theme.colors.gray[1],\n },\n },\n }}\n >\n \n handlers.toggle()}\n className={classes.primaryButtonStyle}\n >\n \n \n \n \n );\n };\n\n return (\n <>\n {props.component == \"drawer\" ? (\n <>\n props.setOpened(false)}\n title=\"\"\n padding={0}\n size=\"lg\"\n >\n {RenderInsides()}\n \n \n ) : (\n \n {RenderInsides()}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { Text, Button, Box, Tooltip, createStyles, Progress, Popover, Indicator, Grid, ScrollArea, Drawer } from \"@mantine/core\";\nimport { useDisclosure } from \"@mantine/hooks\";\nimport Swal from \"sweetalert2\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport useNotificationsStyle from \"./style/notifications.js\";\n\nimport tinycolor from \"tinycolor2\";\nimport AWS from \"aws-sdk\";\nimport Broadcaster from \"../../helpers/Broadcaster\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MediaFileModel from \"../../models/MediaFile\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : theme.colors.gray[2],\n color: isSpaceThemed(colors) ? colors.primary_button_text_color : \"#000000\",\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.primary_button_background_color).darken(4).toString()\n : theme.colors.gray[1],\n },\n },\n}));\n\nconst S3_BUCKET = \"sutra-froala\";\nconst REGION = \"us-west-1\";\n\nconst STATUS = {\n UPLOADING: \"uploading\",\n ERROR: \"error\",\n PROCESSING: \"processing\",\n COMPLETED: \"completed\"\n};\n\nexport default function Uploader(props) {\n const { t } = useTranslation();\n const { notificationsStyle } = useNotificationsStyle();\n\n const mainActions = useSelector((state) => state.mainActions);\n\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView ? colors : defaultSpaceColors;\n const { classes } = useStyles({ colors });\n\n const [opened, handlers] = useDisclosure(false);\n const [count, setCount] = useState(0);\n const [uploads, setUploads] = useState([]);\n\n const compId = useRef();\n const editorRef = useRef(null);\n const uploadTimeRef = useRef({});\n\n useEffect(() => {\n compId.current = uuidv4();\n\n AWS.config.update({\n accessKeyId: window.$RAILS_ENV.S3_ACCESS_KEY,\n secretAccessKey: window.$RAILS_ENV.S3_SECRET_KEY,\n });\n\n AWS.config.httpOptions.timeout = 0;\n\n Broadcaster.receive(\"new_uploadFile\", document.body, (event, data) => {\n if (!document.getElementById(compId.current)) {\n return;\n }\n\n if (data.status === \"pending\") {\n if (data.editor) {\n editorRef.current = data.editor;\n }\n \n processUpload(data);\n setTimeout(() => handlers.open(), 500);\n } else if (data.status === \"used\") {\n updateMediaNode(data);\n markUploadAsUsed(data);\n }\n });\n\n // Add beforeunload event listener\n window.addEventListener(\"beforeunload\", handleBeforeUnload);\n\n return () => {\n Broadcaster.unRegisterElement(\"new_uploadFile\", document.body);\n window.removeEventListener(\"beforeunload\", handleBeforeUnload);\n };\n }, []);\n\n useEffect(() => {\n loadCurrentUploads();\n cleanupOldUploads();\n }, [mainActions]);\n\n // Show SweetAlert confirmation when user is trying to leave the page\n const handleBeforeUnload = (event) => {\n const hasActiveUploads = window.$currentUploads && window.$currentUploads.some(\n upload => upload.status === STATUS.UPLOADING\n );\n\n if (hasActiveUploads) {\n const message = \"Are you sure you want to leave this page? Your uploads might not be saved.\";\n event.preventDefault();\n event.returnValue = message;\n \n // Note: This won't actually show SweetAlert because browser doesn't allow it on beforeunload\n // This is just for the browser's default confirmation dialog\n return message;\n }\n };\n \n const updateMediaNode = (data) => {\n console.log(\"USED\", data);\n MediaFileModel.onUpdateVideoNode(\n {\n space_slug: data.space_slug,\n video_id: data.id,\n new_src: data.new_src,\n new_status: data.new_status\n },\n () => {\n console.log(\"SUCCESS\")\n },\n (err) => {\n console.log(\"ERROR\", err)\n }\n );\n }\n\n // Function to show alerts with SweetAlert\n const showAlert = (config) => {\n return Swal.fire({\n icon: config.icon || \"info\",\n title: config.title || \"\",\n text: config.text || \"\",\n timer: config.timer,\n timerProgressBar: !!config.timer,\n ...config\n });\n };\n\n const loadCurrentUploads = () => {\n const currentUploads = localStorage.getItem(\"currentUploads\");\n if (currentUploads) {\n window.$currentUploads = JSON.parse(currentUploads);\n refreshUploadsUI();\n } else {\n window.$currentUploads = [];\n localStorage.setItem(\"currentUploads\", \"[]\");\n refreshUploadsUI();\n }\n };\n\n const cleanupOldUploads = () => {\n const storedTimestamp = localStorage.getItem(\"lastUploadedAt\");\n\n if (storedTimestamp) {\n const storedDate = new Date(parseInt(storedTimestamp, 10));\n const currentDate = new Date();\n const timeDifference = currentDate - storedDate;\n const oneDayThreshold = 24 * 60 * 60 * 1000;\n\n if (timeDifference >= oneDayThreshold) {\n localStorage.setItem(\"currentUploads\", \"[]\");\n window.$currentUploads = [];\n refreshUploadsUI();\n }\n } else {\n localStorage.setItem(\"currentUploads\", \"[]\");\n window.$currentUploads = [];\n refreshUploadsUI();\n }\n };\n\n const markUploadAsUsed = (data) => {\n if (!window.$currentUploads) return;\n \n const index = window.$currentUploads.findIndex(upload => upload.id === data.id);\n if (index !== -1) {\n window.$currentUploads.splice(index, 1);\n localStorage.setItem(\"currentUploads\", JSON.stringify(window.$currentUploads));\n storeLastUploadTime();\n refreshUploadsUI();\n }\n };\n\n const storeLastUploadTime = () => {\n localStorage.setItem(\"lastUploadedAt\", new Date().getTime().toString());\n };\n\n const refreshUploadsUI = () => {\n if (window.$currentUploads) {\n setCount(window.$currentUploads.length);\n setUploads([...window.$currentUploads]);\n }\n };\n\n const processUpload = (data) => {\n if (!window.$currentUploads) {\n window.$currentUploads = [];\n }\n\n const existingUploadIndex = window.$currentUploads.findIndex(\n upload => upload.id === data.id\n );\n \n if (existingUploadIndex === -1) {\n const newUpload = {\n id: data.id,\n progress: 0,\n status: STATUS.UPLOADING,\n file: data.file,\n space: data.space,\n extension: data.extension,\n filename: data.file.name,\n type: data.type || \"image\",\n url: data?.url,\n urlOutput: data?.url,\n space_slug: data?.space_slug,\n createdAt: Date.now()\n };\n\n // Add to the beginning of the array\n window.$currentUploads.unshift(newUpload);\n localStorage.setItem(\"currentUploads\", JSON.stringify(window.$currentUploads));\n storeLastUploadTime();\n \n uploadToS3(newUpload);\n }\n\n refreshUploadsUI();\n };\n\n const uploadToS3 = (upload) => {\n const s3 = new AWS.S3({\n params: { Bucket: S3_BUCKET },\n region: REGION,\n httpOptions: {\n timeout: 300000\n }\n });\n\n const key = `uploads/${upload.id}`;\n \n upload.status = STATUS.UPLOADING;\n localStorage.setItem(\"currentUploads\", JSON.stringify(window.$currentUploads));\n refreshUploadsUI();\n \n const fileParams = {\n ACL: \"public-read\",\n Body: upload.file,\n Bucket: S3_BUCKET,\n Key: key,\n ContentType: upload.file.type\n };\n \n if (upload.file.size > 300 * 1024 * 1024) {\n fileParams.partSize = 5 * 1024 * 1024;\n fileParams.queueSize = 4;\n } else if (upload.file.size > 100 * 1024 * 1024) {\n fileParams.partSize = 3 * 1024 * 1024;\n fileParams.queueSize = 3;\n } else if (upload.file.size > 20 * 1024 * 1024) {\n fileParams.partSize = 2 * 1024 * 1024;\n fileParams.queueSize = 2;\n }\n \n const folderParams = {\n ACL: \"public-read\",\n Body: \"\",\n Bucket: S3_BUCKET,\n Key: key.split(\"/\")[0] + \"/\",\n };\n\n s3.putObject(folderParams, (folderErr, folderData) => {\n if (folderErr) {\n console.log(\"Error creating folder:\", folderErr);\n }\n \n const uploadTask = s3.upload(fileParams);\n \n upload.cancelUpload = () => {\n try {\n uploadTask.abort();\n upload.status = STATUS.ERROR;\n upload.error = \"Upload was cancelled\";\n localStorage.setItem(\"currentUploads\", JSON.stringify(window.$currentUploads));\n refreshUploadsUI();\n \n } catch (e) {\n console.log(\"Error cancelling upload:\", e);\n }\n };\n \n let lastProgress = 0;\n let uploadStartTime = Date.now();\n uploadTimeRef.current[upload.id] = { startTime: uploadStartTime };\n \n uploadTask.on('httpUploadProgress', (evt) => {\n const newProgress = Math.round((evt.loaded / evt.total) * 100);\n \n if (newProgress - lastProgress >= 2 || newProgress === 100) {\n lastProgress = newProgress;\n upload.progress = newProgress;\n \n if (upload.file.size > 20 * 1024 * 1024 && newProgress > 0 && newProgress < 100) {\n const elapsedTime = Date.now() - uploadStartTime;\n const estimatedTotalTime = (elapsedTime / newProgress) * 100;\n const remainingTime = estimatedTotalTime - elapsedTime;\n \n if (remainingTime > 5000) {\n const minutes = Math.floor(remainingTime / 60000);\n const seconds = Math.floor((remainingTime % 60000) / 1000);\n upload.estimatedTime = minutes > 0 ? `Time left: ${minutes} min ${seconds} sec` : `Time left: ${seconds} sec`;\n uploadTimeRef.current[upload.id].estimatedTime = upload.estimatedTime;\n }\n }\n\n localStorage.setItem(\"currentUploads\", JSON.stringify(window.$currentUploads));\n refreshUploadsUI();\n }\n });\n \n uploadTask.send((err, data) => {\n handlers.close();\n if (err) {\n console.log(\"Upload error:\", err);\n \n let errorMessage = \"Error uploading file\";\n if (err.code === \"RequestTimeout\") {\n errorMessage = \"Request timeout. Check your connection.\";\n } else if (err.code === \"NetworkingError\") {\n errorMessage = \"Network error. Check your connection.\";\n }\n \n upload.status = STATUS.ERROR;\n upload.error = errorMessage;\n updateNode(upload);\n localStorage.setItem(\"currentUploads\", JSON.stringify(window.$currentUploads));\n refreshUploadsUI();\n \n // Show error alert\n showAlert({\n icon: \"error\",\n title: \"Upload Failed\",\n text: errorMessage\n });\n } else {\n upload.url = data.Location;\n upload.progress = 100;\n \n if (upload.type === \"video\") {\n // For video, set processing status and update node\n upload.status = STATUS.PROCESSING;\n\n updateMediaNode({\n space_slug: upload.space_slug,\n video_id: upload.id,\n new_src: upload.url,\n new_status: STATUS.PROCESSING\n });\n\n updateNode(upload);\n\n // Show alert for video processing\n showAlert({\n icon: \"success\",\n title: \"Video Uploaded Successfully\",\n text: \"Your video is now processing and will be available for viewing shortly.\",\n timer: 5000\n });\n\n // Mark upload as used to remove from UI\n setTimeout(() => {\n markUploadAsUsed({ id: upload.id });\n }, 500);\n } else {\n // For non-video files, just update node\n updateNode(upload);\n \n // Show simple success message\n showAlert({\n icon: \"success\",\n title: \"Upload Successful\",\n timer: 3000\n });\n \n // Mark upload as used to remove from UI\n setTimeout(() => {\n markUploadAsUsed({ id: upload.id });\n }, 500);\n }\n }\n });\n });\n };\n\n const updateNode = (upload) => {\n const element = document.getElementById(upload.id);\n if (element && editorRef.current) {\n try {\n const rect = element.getBoundingClientRect();\n const auxPos = editorRef.current.view.posAtCoords({\n left: rect.left,\n top: rect.top,\n });\n if (auxPos) {\n const theNode = editorRef.current.view.state.doc.nodeAt(auxPos.inside);\n if (\n theNode.attrs.uploader &&\n theNode.attrs.uploader.id == upload.id\n ) {\n const { tr } = editorRef.current.state;\n tr.setNodeMarkup(auxPos.inside, undefined, {\n ...theNode.attrs,\n src: upload.url,\n uploader: upload\n });\n editorRef.current.view.dispatch(tr);\n }\n }\n } catch (error) {\n console.log(\"Error updating node:\", error);\n }\n }\n };\n\n const shouldHide = () => {\n return !window.$currentUploads || window.$currentUploads.length === 0;\n };\n\n const getStatusMessage = (upload) => {\n if (upload.status === STATUS.ERROR) {\n return upload.error || \"Upload Error\";\n }\n if (upload.status === STATUS.UPLOADING) {\n return uploadTimeRef.current[upload.id]?.estimatedTime || \"Uploading...\";\n }\n if (upload.status === STATUS.PROCESSING) {\n return \"Video is processing. It will be available soon...\";\n }\n if (upload.status === STATUS.COMPLETED) {\n return \"Upload Completed\";\n }\n return upload.status || \"Waiting...\";\n };\n\n const RenderTriggerButton = () => {\n return (\n 0 ? 20 : 0}\n label={count > 0 ? count : \"\"}\n offset={4}\n color=\"sutrapink\"\n onClick={() => handlers.toggle()}\n sx={(theme) => ({\n cursor: \"pointer\",\n \"&:hover button\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString()\n : theme.colors.gray[1],\n },\n })}\n >\n \n handlers.toggle()}\n className={classes.primaryButtonStyle}\n >\n \n \n \n \n );\n };\n\n const RenderInsides = () => {\n return (\n \n \n {uploads.map((upload) => (\n notificationsStyle.notificationItem}>\n \n \n \n {upload.space.name}\n \n \n \n {upload.filename || upload.file.name}\n \n \n \n ({\n color: upload.status === STATUS.ERROR \n ? theme.colors.red[6] \n : theme.colors.sutrapink[4],\n })}\n >\n {getStatusMessage(upload)}\n \n \n \n \n ))}\n \n \n );\n };\n\n return (\n <>\n {props.component === \"drawer\" ? (\n props.setOpened(false)}\n title=\"\"\n padding={0}\n size=\"lg\"\n >\n {RenderInsides()}\n \n ) : (\n \n {RenderInsides()}\n \n )}\n \n );\n}","import axios from \"axios\";\n\nclass Search {\n constructor() {\n if (this instanceof Search) {\n throw Error(\"Search class cannot be instantiated.\");\n }\n }\n\n static onSearch = async (query, scope, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n query,\n top_slug: window.$fetchedTopSlug,\n current_slug: window.$currentSlug,\n scope\n };\n\n await axios\n .get(`/api/v4/search.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n}\n\nexport default Search;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Image,\n Center,\n Loader,\n UnstyledButton,\n Group,\n Text,\n Button,\n ScrollArea,\n createStyles,\n Badge,\n Menu,\n Highlight,\n Box,\n Avatar,\n MantineProvider,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { SpotlightProvider, openSpotlight } from \"@mantine/spotlight\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport SearchModel from \"../../models/Search\";\nimport data from \"@emoji-mart/data\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport useSidebarStyles from \"../../utils/SidebarStyles\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport trackMixpanel from \"../../utils/TrackMixpanel\";\n\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : theme.colors.gray[2],\n color: isSpaceThemed(colors) ? colors.primary_button_text_color : \"#000000\",\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.primary_button_background_color).darken(4).toString()\n : theme.colors.gray[1],\n },\n },\n action: {\n position: \"relative\",\n display: \"block\",\n width: \"100%\",\n padding: \"10px 12px\",\n borderRadius: theme.radius.sm,\n },\n\n actionHovered: {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[4]\n : theme.colors.gray[1],\n },\n\n actionBody: {\n flex: 1,\n },\n}));\n\nconst CustomAction = ({\n action,\n styles,\n classNames,\n hovered,\n onTrigger,\n ...others\n}) => {\n const navigate = useNavigate();\n const imageCont = useRef();\n\n const onTrigger2 = (event, action) => {\n if (action.type == \"block\") {\n if (action.slug == window.$currentSlug) {\n // Scroll to\n scrollTo(action.uid);\n } else {\n // Navigate to\n navigate(action.link);\n }\n } else {\n navigate(action.link);\n }\n };\n\n const scrollTo = (uid) => {\n const element = document.querySelector(`[data-uid=\"${uid}\"]`);\n\n if (element) {\n element.click();\n element.scrollIntoView({ block: \"nearest\" });\n\n const selection = window.getSelection();\n selection.removeAllRanges();\n\n // Create a new range and set its boundaries to the content of the element\n const range = document.createRange();\n range.selectNodeContents(element);\n\n // Add the range to the selection\n selection.addRange(range);\n } else {\n console.error(`Element with data-uid=\"${uid}\" not found.`);\n }\n };\n\n const getEmojiCode = (emoji) => {\n if (emoji) {\n return data.emojis[emoji].skins[0].native;\n } else {\n return null;\n }\n };\n\n const displayEmoji = (emojicon) => {\n if (emojicon && emojicon != \"\") {\n if (emojicon.split(\"/\")[0] === \"emoji\") {\n return getEmojiCode(emojicon.split(\"/\")[1]);\n } else if (emojicon.split(\"/\")[0] === \"icon\") {\n const iconType = emojicon.split(\"/\")[1].split(\"#\")[0];\n const iconValue = emojicon.split(\"/\")[1].split(\"#\")[1];\n if (iconValue === \"bolt\") {\n return ;\n }\n\n return ;\n // return ()\n } else {\n return getEmojiCode(emojicon);\n }\n }\n\n return ;\n };\n\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView ? colors : defaultSpaceColors;\n const { t, i18n } = useTranslation();\n\n const { classes, cx } = useStyles(\n { colors },\n {\n styles,\n classNames,\n name: \"Spotlight\",\n }\n );\n\n return (\n event.preventDefault()}\n onClick={(event) => onTrigger2(event, action)}\n {...others}\n >\n \n \n
\n {action.image && action.type != \"space\" && (\n \n \n \n )}\n {action.type == \"space\" && displayEmoji(action.icon)}\n
\n
\n\n
\n \n \n \n {action.title}\n \n {action.parents_names && action.parents_names.length > 0 && (\n {action.parents_names[0]}\n )}\n \n \n {action.description && (\n \n {`${action.description}`}\n \n )}\n \n \n {(action.type == \"block\" || action.type == \"reflection\") && (\n \n {action.author}\n \n )}\n {(action.type == \"block\" || action.type == \"reflection\") && (\n <>\n \n •\n \n \n {action.created_at}\n \n \n )}\n {action.type == \"block\" && (\n \n {t(\"layout.search.discussion\")}\n \n )}\n {action.type == \"reflection\" && (\n \n {t(\"layout.search.reflection\")}\n \n )}\n {action.message_type == \"comment\" && (\n \n {t(\"layout.search.comment\")}\n \n )}\n \n \n
\n \n \n );\n};\n\nconst Search = () => {\n const { t, i18n } = useTranslation();\n\n const [actions, setActions] = useState([]);\n const [scopeName, setScopeName] = useState(\"All spaces\");\n const [scope2Name, setScope2Name] = useState(\"Everything\");\n const [searching, setSearching] = useState(false);\n\n const searchTimeout = useRef();\n const lastQuery = useRef();\n\n const { settingsView, registrationView } = useSidebarStyles();\n\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView && !colors?.is_vision_builder ? colors : defaultSpaceColors;\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const largeScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.lg}px)`\n );\n\n useEffect(() => {\n onSearch(lastQuery.current);\n }, [scopeName, scope2Name]);\n\n const onSearch = async (query) => {\n lastQuery.current = query;\n setSearching(true);\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n searchTimeout.current = setTimeout(() => {\n SearchModel.onSearch(\n query,\n [scopeName, scope2Name],\n (data) => {\n setActions([...data]);\n setSearching(false);\n if (query) {\n trackMixpanel(window.$currentUsername, \"Search performed\", { query });\n }\n },\n (data) => {\n setSearching(false);\n }\n );\n }, 1000);\n };\n\n const ActionsWrapper = ({ children }) => {\n return (\n
\n ({\n borderTop: `1px solid ${\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[4]\n : theme.colors.gray[2]\n }`,\n })}\n >\n \n {scopeName}\n \n }\n >\n setScopeName(\"All spaces\")}>\n {t(\"layout.search.allSpaces\")}\n \n {location.pathname.indexOf(\"/space\") >= 0 && (\n <>\n setScopeName(\"Within top level space\")}\n >\n {t(\"layout.search.withinTop\")}\n \n setScopeName(\"Within this space\")}>\n {t(\"layout.search.withinSpace\")}\n \n \n )}\n \n \n {scope2Name}\n \n }\n >\n setScope2Name(\"Everything\")}>\n {t(\"layout.search.everything\")}\n \n setScope2Name(\"Titles only\")}>\n {t(\"layout.search.titlesOnly\")}\n \n setScope2Name(\"Tags only\")}>\n {t(\"layout.search.tagsOnly\")}\n \n setScope2Name(\"Content\")}>\n {t(\"layout.search.content\")}\n \n setScope2Name(\"Discussion\")}>\n {t(\"layout.search.discussion\")}\n \n setScope2Name(\"Events\")}>\n {t(\"layout.search.events\")}\n \n setScope2Name(\"Users\")}>\n {t(\"layout.search.users\")}\n \n \n {searching && }\n \n \n {children}\n \n
\n );\n };\n\n return (\n <>\n }\n searchPlaceholder={t(\"layout.search.placeholder\")}\n shortcut=\"mod + shift + 1\"\n nothingFoundMessage={t(\"layout.search.nothingFound\")}\n onQueryChange={(query) => onSearch(query)}\n limit={60}\n actionsWrapperComponent={ActionsWrapper}\n actionComponent={CustomAction}\n closeOnActionTrigger={true}\n >\n }\n >\n {largeScreen ? (\n t(\"layout.search.search\")\n ) : (\n \n )}\n \n \n \n );\n};\n\nexport default Search;\n","import React, { useEffect, useState } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Notifications from \"./Notifications\";\nimport DirectMessages from \"./DirectMessages\";\nimport Uploader from \"./Uploader\";\nimport Search from \"./Search\";\n\nimport {\n Text,\n Menu,\n Divider,\n Group,\n Box,\n Avatar,\n createStyles,\n Drawer,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport useLangUser from \"../../utils/LangUser\";\n\nconst useStyles = createStyles((theme) => ({\n userProfileWrap: {\n width: \"100%\",\n marginBottom: 5,\n cursor: \"pointer\",\n },\n userProfileInner: {\n backgroundColor: theme.colors.gray[1],\n\n width: \"100%\",\n padding: \"10px 10px 10px 10px\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[2],\n },\n },\n userProfileLink: {\n textDecoration: \"none\",\n color: theme.colors.gray[7],\n \"&:hover\": {\n textDecoration: \"none\",\n color: theme.colors.gray[7],\n },\n },\n userProfileUsername: {\n color: theme.colors.gray[9],\n width: 150,\n fontWeight: 700,\n lineHeight: 1,\n marginBottom: 4,\n },\n userProfileLabel: {\n lineHeight: 1,\n fontSize: 14,\n color: theme.colors.gray[7],\n },\n}));\n\nexport default function UserMenu(props) {\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n const user = useSelector((state) => state.user);\n const { classes, cx, theme } = useStyles();\n const navigate = useNavigate();\n\n const [openedDirectMessages, setOpenedDirectMessages] = useState(false);\n const [openedNotifications, setOpenedNotifications] = useState(false);\n const [openedUploads, setOpenedUploads] = useState(false);\n\n const changeLanguage = (lang) => {\n i18n.changeLanguage(lang);\n setLangUser(lang);\n };\n\n useEffect(() => {\n if (language) {\n changeLanguage(language);\n }\n }, [language]);\n\n const UserProfile = () => (\n \n \n \n \n \n \n \n {user.first_name} {user.last_name}\n \n \n\n \n @{user.username}\n \n \n \n \n \n );\n\n return (\n <>\n }\n >\n \n {window.$isTouchDevice && window.$isTouchDevice() && (\n <>\n navigate(\"/home/top\")}\n icon={}\n >\n {\"Home\"}\n \n setOpenedDirectMessages(true)}\n icon={}\n >\n {\"Direct messages\"}\n \n setOpenedNotifications(true)}\n icon={}\n >\n {\"Notifications\"}\n \n setOpenedUploads(true)}\n icon={\n \n }\n >\n {\"Uploads\"}\n \n \n )}\n }\n >\n {t(\"layout.userButton.settings\")}\n \n \n }\n >\n {t(\"layout.userButton.support\")}\n \n \n \n {t(\"layout.userButton.language\")} ({language.toUpperCase()})\n \n }\n >\n \n ) : (\n \"\"\n )\n }\n onClick={(event) => changeLanguage(\"en\")}\n >\n English\n \n \n ) : (\n \"\"\n )\n }\n onClick={(event) => changeLanguage(\"es\")}\n >\n Español\n \n \n ) : (\n \"\"\n )\n }\n onClick={(event) => changeLanguage(\"ru\")}\n >\n Русский\n \n \n ) : (\n \"\"\n )\n }\n onClick={(event) => changeLanguage(\"pt\")}\n >\n Português\n \n \n ) : (\n \"\"\n )\n }\n onClick={(event) => changeLanguage(\"de\")}\n >\n Deutsch\n \n \n ) : (\n \"\"\n )\n }\n onClick={(event) => changeLanguage(\"it\")}\n >\n Italiano\n \n \n ) : (\n \"\"\n )\n }\n onClick={(event) => changeLanguage(\"fr\")}\n >\n Français\n \n \n\n \n }\n >\n {t(\"layout.userButton.logout\")}\n \n \n ({\n color: theme.colors.gray[6],\n marginTop: \"4px\",\n padding: \"4px 12px\",\n fontSize: \"12px\",\n fontWeight: 500,\n })}\n >\n {t(\"layout.userButton.terms\")}\n \n {`Sutra Spaces, LLC © ${new Date().getFullYear()}`}\n \n {window.$isTouchDevice && window.$isTouchDevice() && (\n <>\n \n \n \n \n )}\n \n );\n}\n","import React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { Button, Group, Tooltip, createStyles } from \"@mantine/core\";\n\nimport { useElementSize } from \"@mantine/hooks\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Notifications from \"./Notifications\";\nimport DirectMessages from \"./DirectMessages\";\nimport Uploader from \"./Uploader\";\nimport Search from \"./Search\";\nimport UserMenu from \"./UserMenu\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\n\n\nimport tinycolor from \"tinycolor2\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : theme.colors.gray[2],\n color: isSpaceThemed(colors) ? colors.primary_button_text_color : \"#000000\",\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.primary_button_background_color).darken(4).toString()\n : theme.colors.gray[1],\n },\n },\n}));\n\nexport default function UserButton(props) {\n const navigate = useNavigate();\n const { t, i18n } = useTranslation();\n const { ref, width, height } = useElementSize();\n // const theme = useMantineTheme();\n\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView && !registrationView && !colors?.is_vision_builder ? colors : defaultSpaceColors;\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const trimUsername = () => {\n const username = props.username;\n return username.length > 12 ? username.substring(0, 12) + \"...\" : username;\n };\n\n const goToHome = () => {\n navigate(`/home/top`);\n };\n\n if (!props.authenticated) {\n return null;\n }\n\n return (\n \n {!(window.$isTouchDevice && window.$isTouchDevice()) && (\n <>\n \n {\n goToHome();\n }}\n className={classes.primaryButtonStyle}\n >\n \n \n \n \n \n \n \n )}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Button, Group, Stack, createStyles, Text } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport tinycolor from \"tinycolor2\";\n\nimport { setHoverSidebar } from \"../../store/app\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../utils/SidebarStyles\";\n\nimport Logo from \"./Logo\";\nimport HeaderActions from \"./HeaderActions\";\nimport UserButton from \"./UserButton\";\nimport Uploader from \"./Uploader\";\n\nimport DefaultAvatar from \"../../src/images/fallback/default.png\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useLocation } from \"react-router-dom\";\n\nconst useStyles = createStyles((theme, { hiddenHeader, registrationView }) => ({\n appHeaderInner: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n width: \"100%\",\n height: \"100%\",\n paddingLeft: theme.other.appShellPadding,\n paddingRight: theme.other.appShellPadding,\n background:\n hiddenHeader && !registrationView\n ? \"repeating-linear-gradient(-45deg,#ddd,#ddd 1px,#f9f9f9 1px,#f9f9f9 10px)\"\n : \"\",\n },\n appHeaderLogoWrap: {\n display: \"flex\",\n alignItems: \"center\",\n },\n}));\n\nexport default function HeaderContent(props) {\n const { t, i18n } = useTranslation();\n const { registrationView } = useSidebarStyles();\n const { classes, cx, theme } = useStyles({\n hiddenHeader: props.hiddenHeader.hidden,\n registrationView,\n });\n const colors = useSelector((state) => state.colors);\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const hoverSidebar = useSelector((state) => state.hoverSidebar);\n const hiddenSidebar = useSelector((state) => state.hiddenSidebar);\n\n const location = useLocation()\n\n const [showLogo, setShowLogo] = useState(false)\n\n const dispatch = useDispatch();\n const mediumScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.md}px)`\n );\n const smallScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.sm}px)`\n );\n\n const toggleHover = () => {\n if (hoverSidebar.hover) {\n dispatch(setHoverSidebar({ hover: false }));\n } else {\n dispatch(setHoverSidebar({ hover: true }));\n }\n };\n\n const DisplayBurger = () => {\n return (\n toggleHover()}\n color=\"dark\"\n size=\"xl\"\n style={{\n width: 30,\n textAlign: \"center\",\n margin: 5,\n padding: 5,\n color: isSpaceThemed(colors)\n ? colors.primary_button_background_color\n : \"#000\",\n height: \"auto\",\n }}\n sx={(theme) => ({\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.header_color).lighten(10).toString()\n : theme.colors.gray[1],\n },\n })}\n >\n {hoverSidebar.hover ? (\n \n ) : (\n \n )}\n \n );\n };\n\n useEffect(() => {\n if (window.location.href.split(\"/\").length >= 6 && !showLogo){\n setTimeout(() => {\n setShowLogo(true)\n }, 1000)\n }\n else if (window.location.href.split(\"/\").length >= 6 && showLogo){\n setShowLogo(true)\n }\n else{\n setShowLogo(false)\n }\n }, [location])\n\n return (\n
\n
\n {mediumScreen && !hiddenSidebar.hidden && }\n {props.hiddenHeader.hidden == \"admin\" ? (\n <>\n {registrationView ? (\n \n \n {t(\"layout.headerContent.registrationPage\")}\n \n \n {space.name}\n \n \n ) : (\n \n {t(\"layout.headerContent.nonManagersHidden\")}\n \n )}\n \n ) : (\n <>{!smallScreen && (window.location.pathname.indexOf(\"/space\") < 0 || showLogo) && }\n )}\n
\n \n \n {location && location.pathname.indexOf(\"/registration\") < 0 ? (\n \n ) : (\n \n )}\n \n
\n );\n}\n","import React, {useState, useEffect} from 'react';\n\nimport { useLocation } from \"react-router-dom\";\nimport { useSelector } from 'react-redux';\n\nimport { createStyles } from '@mantine/core';\n\nimport isSpaceThemed from '../../utils/IsSpaceThemed'\nimport useSidebarStyles from \"../../utils/SidebarStyles\"\nimport defaultSpaceColors from '../../collections/defaultSpaceColors'\n\nimport HeaderContent from './HeaderContent'\n\nimport tinycolor from 'tinycolor2'\n\nconst useStyles = createStyles((theme, {colors, hiddenHeader}) => ({\n appHeader: {\n display: \"flex\",\n height: theme.other.headerHeight,\n alignItems: \"center\",\n boxSizing: \"border-box\",\n borderBottom: `1px solid ${!isSpaceThemed(colors) ? tinycolor(colors.sidebar_background_color).darken(5).toString() : colors.header_color}`,\n width: \"100%\",\n backgroundColor: colors.header_color\n }\n}))\n\nlet isAuthRoute = false\nlet isProfile = false\n\nexport default function Header() {\n\n const location = useLocation();\n\n const [opened, setOpened] = useState(false);\n const [burgerVisible, setBurgerVisible] = useState(true);\n\n const { settingsView, registrationView } = useSidebarStyles();\n let colors = useSelector(state => state.colors)\n colors = !settingsView && !registrationView && !colors?.is_vision_builder ? colors : defaultSpaceColors\n const hiddenHeader = useSelector(state => state.hiddenHeader);\n\n const { classes, cx, theme } = useStyles({colors, hiddenHeader});\n\n useEffect(() => {\n window.$sidebarIsOpen = opened\n }, [opened])\n\n useEffect(() => {\n\n const authRoutes = [\"/user/sign_in\", \"/user/sign_up\", \"/user/recover\", \"/user/reset_password\", \"/user/start\", \"/user/magic_link\", \"/user/magic_sign_in\", \"/pay\", \"/edit\"];\n isAuthRoute = false;\n // Is user profile route\n isProfile = location.pathname.split(\"/\").length == 2 && location.pathname.split(\"/\")[1].length > 0//TODO: Probably need a better regex for this validation\n // Is user profile route\n for (let i = 0; i < authRoutes.length; i++) {\n if (location.pathname.indexOf(authRoutes[i]) >= 0){\n isAuthRoute = true;\n break;\n }\n }\n\n if (isAuthRoute || isProfile){\n setOpened(false);\n setBurgerVisible(false);\n } else {\n\n }\n\n }, [location])\n\n if (hiddenHeader.hidden == true){\n return null\n }\n\n return (\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { Box } from \"@mantine/core\";\n\nimport ListContent from \"./ListContent\";\nimport ListPost from \"./ListPost\";\nimport GridPost from \"./GridPost\";\n\nimport { getRoot } from \"../../../utils/Host\";\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nexport default function List(props) {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const getLink = () => {\n if (props.space.version) {\n return `/space/${props.space.slug}/${props.space.version}`;\n } else {\n return `/space/${props.space.slug}`;\n }\n };\n\n const goToLink = () => {\n if (props.space.is_linked) {\n window.open(`${getRoot()}${getLink()}`, \"_blank\");\n } else if (props.openInModal) {\n \n dispatch(\n setTiptapSidemenu({ opened: \"space-content\", option: props.space.slug })\n );\n \n } else {\n window.location = `${getRoot()}${getLink()}`;\n // navigate(getLink());\n }\n };\n\n return (\n <>\n {props.noLink ? (\n \n {!props.viewAs && }\n {props.viewAs == \"post\" && }\n {props.viewAs == \"grid\" && }\n {props.viewAs == \"card\" && }\n {props.viewAs == \"link\" && `${getRoot()}${getLink()}`}\n \n ) : (\n goToLink()}\n sx={{\n height: props.viewAs == \"grid\" ? \"100%\" : \"\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n >\n {!props.viewAs && }\n {props.viewAs == \"post\" && (\n \n )}\n {props.viewAs == \"grid\" && (\n \n )}\n {props.viewAs == \"card\" && (\n \n )}\n {props.viewAs == \"link\" && (\n `${getRoot()}${getLink()}`\n )}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Group,\n Text,\n Select,\n SegmentedControl,\n Switch,\n MantineProvider,\n Box,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { useForm } from \"@mantine/form\";\nimport { TimeInput, DatePicker } from \"@mantine/dates\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport TiptapInline from \"../../tiptap/components/TiptapInline\";\n\nimport { storeJSON } from \"../../../utils/LocalDB\";\n\nconst SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n);\n\nexport default function Form(props) {\n const [publish, setPublish] = useState(false);\n const [join, setJoin] = useState(true);\n const [privacyDescription, setPrivacyDescription] = useState(\"\");\n const [rootPrivacyDescription, setRootPrivacyDescription] = useState(\"\");\n const [opened, setOpened] = useState(false);\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const newSpaceLoading = useRef(false);\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n intention: \"\",\n version: \"\",\n privacy_level: \"open\",\n join_on_create: true,\n launch_on_date: null,\n launch_time: null,\n show_start_date: false,\n start_date: new Date(new Date().getTime() + 86400000),\n end_date: new Date(new Date().getTime() + 90000000),\n start_time: new Date(new Date().getTime() + 86400000),\n end_time: new Date(new Date().getTime() + 90000000),\n content: \"\",\n hangout_link: \"\",\n },\n\n validate: {\n intention: (value) =>\n value.length >= 3 && value.length <= 100\n ? null\n : t(\"spaces.create.invalidNameErrorMsg\"),\n },\n });\n\n useEffect(() => {\n return () => {\n newSpaceLoading.current = false;\n };\n }, []);\n\n useEffect(() => {\n form.setFieldValue(\"version\", props.version);\n }, [props]);\n\n useEffect(() => {\n form.setFieldValue(\"join_on_create\", join);\n }, [join]);\n\n useEffect(() => {\n if (form.values.privacy_level === \"open\") {\n setPrivacyDescription(\n `${t(\"spaces.form.form.privacyDescription1\")} ${space.name}.`\n );\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription1\")}`\n );\n } else if (form.values.privacy_level === \"private\") {\n setPrivacyDescription(`${t(\"spaces.form.form.privacyDescription2\")}`);\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription2\")}`\n );\n }\n }, [form.values.privacy_level]);\n\n const onSave = () => {\n if (newSpaceLoading.current) {\n return;\n }\n newSpaceLoading.current = true;\n const spaceParams = { ...form.values };\n if (spaceParams.version == \"event\") {\n spaceParams.version = \"content\";\n spaceParams.show_start_date = true;\n\n if (spaceParams.start_date) {\n const _startDate = new Date(spaceParams.start_date);\n const _startTime = spaceParams.start_time\n ? new Date(spaceParams.start_time)\n : new Date();\n\n spaceParams.start_date = new Date(\n `${_startDate.toLocaleDateStringAbs()}, ${_startTime.toLocaleTimeString()}`\n ).toISOString();\n }\n if (spaceParams.end_date) {\n const _endDate = new Date(spaceParams.end_date);\n const _endTime = spaceParams.end_time\n ? new Date(spaceParams.end_time)\n : new Date();\n\n spaceParams.end_date = new Date(\n `${_endDate.toLocaleDateStringAbs()}, ${_endTime.toLocaleTimeString()}`\n ).toISOString();\n }\n }\n if (spaceParams.launch_on_date) {\n const _launchDate = new Date(spaceParams.launch_on_date);\n const _launchTime = spaceParams.launch_time\n ? new Date(spaceParams.launch_time)\n : new Date();\n\n spaceParams.launch_time = new Date(\n `${_launchDate.toLocaleDateStringAbs()}, ${_launchTime.toLocaleTimeString()}`\n ).toISOString();\n spaceParams.launch_on_date = true;\n }\n\n if (props.duplicateFrom) {\n spaceParams.copy_resources = true;\n spaceParams.copy_sub_circles = true;\n\n SpaceModel.onDuplicate(\n spaceParams,\n props.duplicateFrom,\n (data) => {\n props.onDuplicate(data.data.slug, data.data.link);\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 2000);\n },\n (data) => {\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 500);\n }\n );\n } else {\n SpaceModel.onCreate(\n spaceParams,\n props.parentId,\n (data) => {\n props.onSave(data.slug, data.link, data.name);\n storeJSON(\"spaces\", `new-space-${props.parentId}`, {\n json: \"\",\n html: \"\",\n });\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 2000);\n },\n (data) => {\n if (data.permissions) {\n setOpened([true, data.permissions[1], data.permissions[2]]);\n // props.onSave()\n }\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 500);\n }\n );\n }\n };\n\n const spacesVersions = () => {\n let versions = [\n {\n value: \"content\",\n label: t(\"spaces.form.form.versions.content.label\"),\n description: t(\"spaces.form.form.versions.content.description\"),\n },\n {\n value: \"list\",\n label: t(\"spaces.form.form.versions.list.label\"),\n description: t(\"spaces.form.form.versions.list.description\"),\n },\n {\n value: \"discussion\",\n label: t(\"spaces.form.form.versions.discussion.label\"),\n description: t(\"spaces.form.form.versions.discussion.description\"),\n },\n {\n value: \"event\",\n label: t(\"spaces.form.form.versions.event.label\"),\n description: t(\"spaces.form.form.versions.event.description\"),\n },\n {\n value: \"events\",\n label: t(\"spaces.form.form.versions.events.label\"),\n description: t(\"spaces.form.form.versions.events.description\"),\n },\n ];\n\n return versions;\n };\n\n const onContentUpdate = (content, html) => {\n form.setFieldValue(\"content\", content.content);\n };\n\n return (\n \n {props.isRoot && (\n \n \n \n \n \n {t(\"spaces.form.form.segments.space.label\")}\n \n ),\n value: \"content\",\n },\n {\n label: (\n \n \n \n \n {t(\"spaces.form.form.segments.event.label\")}\n \n ),\n value: \"event\",\n },\n {\n label: (\n \n \n \n \n \n {t(\"spaces.form.form.segments.discussion.label\")}\n \n \n ),\n value: \"discussion\",\n },\n ]}\n />\n \n {form.values.version == \"content\" &&\n t(\"spaces.form.form.segments.space.description\")}\n {form.values.version == \"event\" &&\n t(\"spaces.form.form.segments.event.description\")}\n {form.values.version == \"discussion\" &&\n t(\"spaces.form.form.segments.discussion.description\")}\n \n \n )}\n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n {props.content && (\n \n \n \n )}\n {!props.isRoot && (\n \n {space && space.slug && space.version == \"content\" && (\n \n )}\n \n )}\n {form.getInputProps(\"version\").value == \"event\" ? (\n \n {/* \n {t(\"spaces.form.form.eventDescription\")}\n */}\n \n \n \n {t(\"spaces.form.form.eventStartTime\")}\n \n \n \n \n \n \n {t(\"spaces.form.form.eventEndDate\")}\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n {!props.noAdvance && (\n \n \n \n {t(\"spaces.form.form.privacyLevelText\")}\n \n \n {!props.isRoot && (\n \n {privacyDescription}\n \n )}\n {props.isRoot && (\n \n {rootPrivacyDescription}\n \n )}\n \n {!props.isRoot ? (\n <>\n setJoin(event.target.checked)}\n label={t(\"spaces.form.form.joinAsMember.label\")}\n />\n setPublish(event.target.checked)}\n label={t(\"spaces.form.form.publishDate.label\")}\n />\n {publish ? (\n
\n \n {t(\"spaces.form.form.publishDateTime\")}\n \n \n \n \n \n
\n ) : (\n \"\"\n )}\n \n ) : (\n \"\"\n )}\n
\n )}\n \n
\n \n \n {props.padding && (\n \n )}\n
\n );\n}\n","import React from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport { Modal } from '@mantine/core';\n\nimport Form from \"./form/Form\"\n\n\n\nconst NewSpace = (props) => {\n\n const navigate = useNavigate()\n\n const onSave = (spaceId=null, spaceLink=null, spaceName=null) => {\n\n props.setOpened(false)\n if (spaceLink){\n navigate(spaceLink)\n }\n }\n\n return (\n props.setOpened(false)}\n withCloseButton={false}\n >\n \n\n \n )\n}\n\nexport default NewSpace\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Link, useParams, useNavigate } from \"react-router-dom\";\nimport {\n\n Button,\n ScrollArea,\n Container,\n Box,\n\n Title,\n Group,\n Select,\n\n Loader,\n Center,\n\n} from \"@mantine/core\";\nimport SpaceModel from \"../../models/Space\";\nimport SpaceNeo4jModel from \"../../models/neo4j/Space\";\nimport SpaceListItem from \"../spaces_neo/presentations/List\";\nimport NewSpace from \"../spaces/New\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { Helmet } from \"react-helmet\";\nimport { getRoot } from \"../../utils/Host\";\n\nconst paginator = {\n per: 15,\n page: 1,\n};\n\nconst scrollTimeoutIds = [];\n\nexport default function SpacesList(props) {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n\n const params = useParams();\n const didMount = useRef(false);\n\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [showSpaceFilter, setSpaceFilter] = useState(true);\n const [videoOpened, setVideoOpened] = useState(false);\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n\n const viewport = useRef();\n\n useEffect(() => {\n if (!window.$currentUserAuthToken) {\n navigate(\"/user/start\");\n return;\n }\n params.scope === \"direct\" ? setSpaceFilter(false) : setSpaceFilter(true);\n paginator.page = 1;\n setSpaces([]);\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n return () => ctrl.abort();\n }, [params]);\n\n useEffect(() => {\n removeSubdomain();\n }, [])\n \n const removeSubdomain = () => {\n const correctRoot = getRoot();\n const currentUrl = new URL(window.location.href);\n const correctRootUrl = new URL(correctRoot);\n if (currentUrl.host !== correctRootUrl.host) {\n const newUrl = new URL(currentUrl.pathname, correctRoot);\n window.location.href = newUrl.toString();\n }\n }\n\n const fetchSpaces = (ctrl) => {\n setLoading(true);\n\n const scope = params.scope ? params.scope : \"top\";\n if (scope == \"invitations\" || scope == \"direct\"){\n\n SpaceModel.onFetchByScope(\n scope,\n [\"permissions\", \"members\", \"calendar\", \"last_messages\", \"simple\"],\n paginator,\n (data) => {\n if (paginator.page == 1) {\n setSpaces(data);\n } else {\n setSpaces(spaces.concat(data));\n }\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n },\n ctrl.signal\n );\n }\n else{\n SpaceNeo4jModel.onFetchByScope(\n scope,\n paginator.page - 1,\n (data) => {\n if (paginator.page == 1) {\n setSpaces(data);\n } else {\n setSpaces(spaces.concat(data));\n }\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n },\n ctrl.signal\n );\n }\n };\n\n const getScope = () => {\n const scope = params.scope ? params.scope : \"top\";\n return scope;\n };\n\n const getScopedTitle = () => {\n const scope = params.scope ? params.scope : \"top\";\n if (scope == \"top\") {\n return t(\"home.spacesList.topTitle\");\n } else if (scope == \"managed\") {\n return t(\"home.spacesList.managedTitle\");\n } else if (scope == \"all\") {\n return t(\"home.spacesList.allTitle\");\n } else if (scope == \"direct\") {\n return t(\"home.spacesList.directMessagesTitle\");\n } else if (scope == \"archived\") {\n return t(\"home.spacesList.archivedTitle\");\n } else if (scope == \"deleted\") {\n return t(\"home.spacesList.deletedTitle\");\n } else if (scope == \"invitations\") {\n return t(\"home.spacesList.invitations\");\n }\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n paginator.page++;\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n }\n };\n\n const onFilterSelect = (value) => {\n navigate(`/home/${value}`);\n };\n\n const spacesSelection = [\n { value: \"top\", label: t(\"home.spacesList.top\") },\n { value: \"managed\", label: t(\"home.spacesList.managed\") },\n { value: \"all\", label: t(\"home.spacesList.all\") },\n { value: \"archived\", label: t(\"home.spacesList.archived\") },\n { value: \"deleted\", label: t(\"home.spacesList.deleted\") },\n { value: \"invitations\", label: t(\"home.spacesList.invitations\") },\n ];\n\n return (\n \n \n {t(\"home.spacesList.tabTitle\")}\n \n \n \n ({ fontWeight: 900 })}>\n {`${getScopedTitle()}`}\n \n {showSpaceFilter ? (\n \n ) : (\n \n )}\n \n {spaces.map((space) => {\n return (\n ({\n margin: \"15px 0px\",\n })}\n >\n \n \n );\n })}\n {spaces.length == 0 && !loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n \n {t(\"home.spacesList.empty\")}\n {getScopedTitle().toLowerCase()}\n \n {getScope() == \"top\" && (\n \n \n {t(\"home.spacesList.learn\")}\n \n setNewSpaceOpened(true)}\n >\n {t(\"home.spacesList.createFirst\")}\n \n \n )}\n \n ) : (\n \"\"\n )}\n {loading && (\n \n \n \n )}\n \n\n \n \n );\n}\n","import axios from 'axios';\nimport { getCookie, setCookie } from \"../utils/Cookies\";\n\nclass User {\n constructor() {\n if (this instanceof User) {\n throw Error('User class cannot be instantiated.');\n }\n }\n\n static onFetch = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n await axios.get(`/api/v4/users/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onSettings = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n await axios.get(`/api/v4/users/${id}/settings.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onAuth = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n oauth_client_id: getCookie(\"oauth_client_id\"),\n oauth_client_secret: getCookie(\"oauth_client_secret\"),\n oauth_state: getCookie(\"oauth_state\"),\n oauth_redirect_uri: getCookie(\"oauth_redirect_uri\"),\n oauth_response_type: getCookie(\"oauth_response_type\"),\n }\n \n await axios.post(`/api/v4/users/${id}/auth.json`, params)\n .then(res => {\n\n setCookie(\"oauth_client_id\", \"\", 0)\n setCookie(\"oauth_client_secret\", \"\", 0)\n setCookie(\"oauth_state\", \"\", 0)\n setCookie(\"oauth_redirect_uri\", \"\", 0)\n setCookie(\"oauth_response_type\", \"\", 0)\n\n if (res.data.redirect_uri){\n window.location.href= res.data.redirect_uri;\n return\n }\n\n sucessCallback(res.data)\n\n \n })\n .catch((error) => {\n try {\n if (error.response.data && error.response.data.type == \"oauth\"){\n document.write(error.response.data.error)\n return\n }\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onUpdate = async (id, user, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user: {...user}\n }\n await axios.put(`/api/v4/users/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onChangePassword = async (id, user, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user: {...user}\n }\n await axios.put(`/api/v4/users/${id}/change_password.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onDestroy = async (id, confirm, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n confirm: confirm\n }\n await axios.delete(`/api/v4/users/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onUploadAvatar = async (id, file, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n file\n }\n await axios.post(`/api/v4/users/${id}/upload_avatar.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onRemoveAvatar = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user: {...params}\n }\n await axios.delete(`/api/v4/users/${id}/remove_avatar.json`, {params: params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onGateway = async (plan, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n plan\n }\n await axios.post(`/api/v4/users/gateway.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onFetchSubs = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n await axios.post(`/api/v4/users/current/paid_subscriptions.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onFetchStripeConnections = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n await axios.post(`/api/v4/users/current/stripe_connections.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n}\n\nexport default User;\n","import { useState } from 'react';\nimport { setCookie, getCookie } from './Cookies';\n\nimport DefaultAvatar from \"../src/images/fallback/default.png\";\n\nexport default function useAuthUser() {\n const getAuthUser = () => {\n let userString = getCookie(\"auth_user\");\n const user = JSON.parse(userString ? atob(userString) : \"{}\");\n if (user){\n window.$currentUserId = user.id;\n window.$currentName = user.full_name;\n window.$currentUserAuthToken = user.authentication_token;\n window.$currentUserId = user.id;\n window.$currentUsername = user.username;\n window.$currentEmail = user.email;\n window.$currentAccountType = user.account_type;\n window.$videoUploadKey = user.video_upload_key;\n window.$currentUserIsAdmin = user.is_admin;\n window.$currentUserAvatar = user.avatar && user.avatar.url ? user.avatar.url : DefaultAvatar;\n }\n return user ? user : {}\n };\n\n const [authUser, setAuthUser] = useState(getAuthUser());\n\n const saveAuthUser = user => {\n\n const saveUser = {\n id: user.id,\n username: user.username,\n email: user.email,\n authentication_token: user.authentication_token,\n video_upload_key: user.video_upload_key,\n account_type: user.account_type\n }\n setCookie(\"auth_user\", btoa(JSON.stringify(saveUser)), 365*10)\n window.$currentUserId = user.id;\n window.$currentName = user.full_name;\n window.$currentUserAuthToken = user.authentication_token;\n window.$currentUserId = user.id;\n window.$currentUsername = user.username;\n window.$currentEmail = user.email;\n window.$currentAccountType = user.account_type;\n window.$videoUploadKey = user.video_upload_key;\n setAuthUser(user);\n };\n\n const removeAuthUser = user => {\n setCookie(\"auth_user\", btoa(\"\"), 0)\n window.$currentUserAuthToken = null;\n setAuthUser({});\n };\n\n return {\n setAuthUser: saveAuthUser,\n removeAuthUser,\n authUser\n }\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setUser, setAlert } from \"../../store/app\";\nimport {\n Button,\n Title,\n TextInput,\n Container,\n Textarea,\n Image,\n Progress,\n Divider,\n Grid,\n ScrollArea,\n Modal,\n} from \"@mantine/core\";\nimport {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\nimport DefaultAvatar from \"../../src/images/fallback/default.png\";\nimport UserModel from \"../../models/User\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\nimport useAuthUser from \"../../utils/AuthUser\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport FilerobotImageEditor, {\n TABS,\n TOOLS,\n} from \"react-filerobot-image-editor\";\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data);\n });\n\n return progress > 0 && progress < 100 ? (\n \n ) : (\n \"\"\n );\n};\n\nconst CustomUploadButton = asUploadButton((props) => {\n const { t, i18n } = useTranslation();\n\n return (\n \n );\n});\n\nexport default function Profile() {\n const { t, i18n } = useTranslation();\n\n const [isImgEditorShown, setIsImgEditorShown] = useState(false);\n const htmlImage = useRef();\n const fileInput = useRef();\n\n const user = useSelector((state) => state.user);\n\n const dispatch = useDispatch();\n\n const { setAuthUser } = useAuthUser();\n\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n username: \"\",\n bio: \"\",\n // location: \"\"\n },\n\n validate: {\n email: (value) => (/^\\S+@\\S+$/.test(value) ? null : \"Invalid email\"),\n },\n });\n\n useEffect(() => {\n initFormData();\n }, [user]);\n\n const initFormData = () => {\n form.setFieldValue(\"first_name\", user.first_name);\n form.setFieldValue(\"last_name\", user.last_name);\n form.setFieldValue(\"email\", user.email);\n form.setFieldValue(\"username\", user.username);\n form.setFieldValue(\"bio\", user.bio);\n };\n\n const onUploadAvatar = (file) => {\n UserModel.onUploadAvatar(\n user.id,\n file.imageBase64,\n (data) => {\n onAvatarUploaded(data);\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onAvatarUploaded = (data) => {\n closeImgEditor();\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n // const newUser = { ...user };\n // newUser.avatar.url = data.url;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n };\n\n const onRemoveAvatar = () => {\n UserModel.onRemoveAvatar(\n user.id,\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n // const newUser = { ...user };\n // newUser.avatar.url = null;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onSave = (values) => {\n UserModel.onUpdate(\n user.id,\n {\n first_name: values.first_name,\n last_name: values.last_name,\n username: values.username,\n bio: values.bio,\n email: values.email,\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n // const newUser = { ...user };\n\n // user.first_name = values.first_name;\n // user.last_name = values.last_name;\n // user.username = values.username;\n // user.bio = values.bio;\n // user.email = values.email;\n // newUser.forceUpdate = true;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onOpenFileSelector = (event) => {\n try {\n event.target.children[0].click();\n } catch {}\n };\n\n const handleFileInput = (e) => {\n const file = e.target.files[0];\n htmlImage.current = document.createElement(\"img\");\n\n if (file) {\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", function () {\n htmlImage.current.src = reader.result;\n openImgEditor();\n });\n\n reader.readAsDataURL(file);\n } else {\n // Clear the value of the file input\n if (fileInput.current) {\n fileInput.current.value = \"\";\n }\n }\n };\n\n const openImgEditor = () => {\n setIsImgEditorShown(true);\n };\n\n const closeImgEditor = () => {\n setIsImgEditorShown(false);\n if (fileInput.current) {\n fileInput.current.value = \"\";\n }\n };\n\n if (!user) {\n return null;\n }\n\n return (\n \n \n {t(\"settings.editProfile.tabTitle\")}\n \n \n
onSave(values))}>\n ({ fontWeight: 900 })}>\n {t(\"settings.editProfile.editProfile\")}\n \n\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n\n \n \n {user.avatar && (\n \n \n {!user.avatar.url ||\n user.avatar.url.indexOf(\"assets/fallback\") >= 0 ? (\n onOpenFileSelector(event)}\n >\n \n {t(\"settings.editProfile.addProfileImage\")}\n \n ) : (\n onRemoveAvatar()}\n >\n {t(\"settings.editProfile.removeProfileImage\")}\n \n )}\n \n )}\n \n \n \n\n \n\n \n\n \n \n \n\n ({ fontWeight: 600 })} order={2} mt={40}>\n {t(\"settings.editProfile.about\")}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n \n \n \n \n setIsImgEditorShown(false)}\n title={\"\"}\n >\n \n onUploadAvatar(editedImageObject, designState)\n }\n onClose={closeImgEditor}\n Rotate={{ angle: 90, componentType: \"slider\" }}\n Crop={{\n ratio: 1 / 1,\n ratioTitleKey: \"Profile picture\",\n noPresets: true,\n autoResize: true,\n }}\n tabsIds={[TABS.ADJUST]} // or {['Adjust', 'Annotate', 'Watermark']}\n defaultTabId={TABS.ADJUST} // or 'Annotate'\n defaultToolId={TOOLS.TEXT} // or 'Text'\n defaultSavedImageName={\"profileImage\"}\n onBeforeSave={() => false}\n // moreSaveOptions={[\n // {\n // label: \"Save directly\",\n // onClick: (triggerSaveModal, triggerSave) => \n // triggerSave((...args) => {\n // onUploadAvatar(args[0])\n // }),\n // },\n // ]}\n />\n \n
\n );\n}\n","// import axios from 'axios';\n\nclass UserSetting {\n constructor() {\n if (this instanceof UserSetting) {\n throw Error('UserSetting class cannot be instantiated.');\n }\n }\n\n static onFetch = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n await window.$api.get(`/api/v4/users/${id}/settings.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (id, user_settings, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user_setting: {...user_settings}\n }\n await window.$api.put(`/api/v4/users/${id}/settings/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n await window.$api.delete(`/api/v4/users/${id}/settings/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n}\n\nexport default UserSetting;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Title,\n PasswordInput,\n Container,\n Alert,\n Divider,\n Text,\n Accordion,\n MantineProvider,\n ScrollArea,\n Box,\n Table,\n Anchor,\n} from \"@mantine/core\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setAlert } from \"../../store/app\";\nimport UserModel from \"../../models/User\";\nimport StripeModel from \"../../models/Stripe\";\nimport UserSettingModel from \"../../models/UserSetting\";\nimport { useTranslation } from \"react-i18next\";\nimport { AlertCircle } from \"tabler-icons-react\";\nimport { useNavigate, Link } from \"react-router-dom\";\nimport { colors } from \"../../collections/colors\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport Swal from \"sweetalert2\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function Account() {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [connections, setConnections] = useState([]);\n\n useEffect(() => {\n onFetchStripeConnections();\n }, [user]);\n\n const form = useForm({\n initialValues: {\n current_password: \"\",\n password: \"\",\n password_confirmation: \"\",\n },\n\n validate: {\n current_password: (value) =>\n value.length > 0\n ? null\n : t(\"settings.accountSettings.invalidCurrentPasswordErrorMsg\"),\n password: (value) =>\n value.length >= 8\n ? null\n : t(\"settings.accountSettings.invalidPasswordErrorMsg\"),\n password_confirmation: (value) =>\n value == form.values.password\n ? null\n : t(\"settings.accountSettings.invalidPasswordConfirmationErrorMsg\"),\n },\n });\n\n const onChangePassword = () => {\n UserModel.onChangePassword(\n user.id,\n form.values,\n (data) => {\n form.reset();\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onDeleteAccount = () => {\n if (user && user.account_type == \"basic\") {\n Swal.fire({\n title: t(\"settings.accountSettings.deleteAccountAlert.title\"),\n html: t(\"settings.accountSettings.deleteAccountAlert.message\"),\n showDenyButton: true,\n confirmButtonText: t(\n \"settings.accountSettings.deleteAccountAlert.confirmButton\"\n ),\n denyButtonText: t(\n \"settings.accountSettings.deleteAccountAlert.cancelButton\"\n ),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n input: \"text\",\n inputLabel: t(\"settings.accountSettings.deleteAccountAlert.input\"),\n inputValidator: (value) => {\n if (!value || value != \"delete my account\") {\n return \"Please follow the instructions\";\n }\n },\n }).then((result) => {\n if (result.isConfirmed) {\n onDeleteAccountConfirmation(result.value);\n } else if (result.isDenied) {\n }\n });\n } else {\n Swal.fire({\n title: t(\"settings.accountSettings.cancelSubscriptionAlert.title\"),\n html: t(\"settings.accountSettings.cancelSubscriptionAlert.message\"),\n showDenyButton: true,\n confirmButtonText: t(\n \"settings.accountSettings.cancelSubscriptionAlert.confirmButton\"\n ),\n denyButtonText: t(\n \"settings.accountSettings.cancelSubscriptionAlert.cancelButton\"\n ),\n confirmButtonColor: colors.blue,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n navigate(\"/settings/billing\");\n } else if (result.isDenied) {\n }\n });\n }\n };\n\n const onDeleteAccountConfirmation = (value) => {\n UserModel.onDestroy(\n user.id,\n value,\n (data) => {\n // Success callback\n form.reset();\n navigate(\"/user/sign_out\");\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onResetStripe = (value) => {\n Swal.fire({\n title: t(\"settings.accountSettings.stripeAccount.confirmTitle\"),\n html: t(\"settings.accountSettings.stripeAccount.confirmMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\n \"settings.accountSettings.stripeAccount.confirmButton\"\n ),\n denyButtonText: t(\"settings.accountSettings.stripeAccount.cancelButton\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n UserSettingModel.onDestroy(\n user.id,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onFetchStripeConnections = () => {\n UserModel.onFetchStripeConnections(\n (data) => {\n setConnections([...data]);\n },\n (data) => {}\n );\n };\n\n const onDisconnectSpace = (space) => {\n if (!space){\n return;\n }\n Swal.fire({\n title: \"Are you sure?\",\n html: `Your Stripe credentials will be cleared from ${space.name}?`,\n showDenyButton: true,\n confirmButtonText: \"Yes, disconnect\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n StripeModel.onDisconnect2(\n space.slug,\n (data) => {\n onFetchStripeConnections();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const goToSpace = (space) => {\n if (space && space.slug){\n return `/space/${space.slug}/${space.version}`;\n }\n return \"\"\n };\n\n return (\n \n \n {`Sutra - Account settings`}\n \n \n
onChangePassword(values))}>\n ({ fontWeight: 900 })}>\n {t(\"settings.accountSettings.accountSettings\")}\n \n\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n\n ({ fontWeight: 600 })} order={2} mt={40}>\n {t(\"settings.accountSettings.changePassword\")}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n \n \n \n \n\n \n {connections && connections.length > 0 && (\n \n ({ fontWeight: 600 })} order={2} mt={10}>\n {\"Disconnect Stripe by space\"}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n />\n \n \n \n \n \n \n \n \n \n {connections.map((connection) => {\n if (connection.pod) {\n return (\n \n \n \n \n \n );\n }\n })}\n \n
{\"Space name\"}{\"Slug\"}{\"Actions\"}
\n \n {connection.pod.name}\n \n {connection.pod.slug}\n onDisconnectSpace(connection.pod)}\n >\n Disconnect\n \n
\n
\n )}\n {user.can_accept_charges && (\n \n ({ fontWeight: 600 })} order={2} mt={10}>\n {t(\"settings.accountSettings.stripeAccount.title\")}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n />\n \n {t(\"settings.accountSettings.stripeAccount.alertMessage\")}\n \n onResetStripe()}\n >\n {t(\"settings.accountSettings.stripeAccount.buttonText\")}\n \n \n )}\n
\n\n ({\n borderRadius: 10,\n borderBottom: \"none\",\n border: \"solid 1px #f1f1f1\",\n })}\n styles={{\n item: {\n borderBottom: \"none\",\n },\n control: {\n borderRadius: 10,\n },\n }}\n >\n \n \n ({ fontWeight: 600 })} order={2} mt={10}>\n {t(\"settings.accountSettings.deleteAccount\")}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n \n }\n title={t(\"settings.accountSettings.warning\")}\n color=\"red\"\n >\n {t(\"settings.accountSettings.deleteAccountWarning\")}\n \n onDeleteAccount()}\n >\n {t(\"settings.accountSettings.closeYourAccount\")}\n \n \n \n \n \n \n \n
\n );\n}\n","import axios from 'axios';\n\nclass UserAffiliate {\n constructor() {\n if (this instanceof UserAffiliate) {\n throw Error('UserAffiliate class cannot be instantiated.');\n }\n }\n\n static onFetch = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n await axios.get(`/api/v4/users/${id}/affiliates.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n}\n\nexport default UserAffiliate;\n","import React, { useState, useEffect } from \"react\";\nimport {\n\n Table,\n Badge,\n MantineProvider,\n\n Box,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Payments(props) {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n\n const [affiliates, setAffiliates] = useState([]);\n const [selectedAffiliate, setSelectedAffiliate] = useState();\n\n useEffect(() => {\n \n }, []);\n\n const StatusBadge = (props) => {\n const statusOptions = {\n paid: \"lime\",\n unpaid: \"red\",\n pending: \"orange\",\n };\n\n return (\n \n \n {t(`settings.affiliates.history.statuses.${props.status}`)}\n \n \n );\n };\n\n return (\n
\n {props.affiliate && props.affiliate.payments.length > 0 ? (\n \n \n \n \n \n \n \n \n \n \n \n \n {props.affiliate.payments.map((payment) => (\n \n \n \n \n \n \n \n \n ))}\n \n
{t(\"settings.affiliates.history.table.value\")}{t(\"settings.affiliates.history.table.percent\")}{t(\"settings.affiliates.history.table.revenue\")}{t(\"settings.affiliates.history.table.createdAt\")}{t(\"settings.affiliates.history.table.payAt\")}{t(\"settings.affiliates.history.table.status\")}
{payment.value_formatted}{payment.percent}%{payment.revenue_formatted}{payment.created_at}{payment.pay_at}\n \n
\n ) : (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {t(\"settings.billing.noPayments\")}\n \n )}\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n Button,\n Drawer,\n Table,\n Badge,\n MantineProvider,\n Box,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\n\nimport UserAffiliateModel from \"../../../models/UserAffiliate\";\nimport Payments from \"./Payments\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function History() {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n\n const [affiliates, setAffiliates] = useState([]);\n const [selectedAffiliate, setSelectedAffiliate] = useState();\n\n useEffect(() => {\n onFetchPayments();\n }, []);\n\n const onFetchPayments = () => {\n UserAffiliateModel.onFetch(\n user.id,\n (data) => {\n setAffiliates(data);\n },\n (data) => {}\n );\n };\n\n const StatusBadge = (props) => {\n const statusOptions = {\n paid: \"lime\",\n unpaid: \"red\",\n pending: \"orange\",\n };\n\n return (\n \n \n {t(`settings.affiliates.history.statuses.${props.status}`)}\n \n \n );\n };\n\n return (\n
\n {affiliates.length > 0 ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n {affiliates.map((affiliate) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n
{t(\"settings.affiliates.history.table.referralName\")}{t(\"settings.affiliates.history.table.startAt\")}{t(\"settings.affiliates.history.table.endAt\")}{t(\"settings.affiliates.history.table.percent\")}{t(\"settings.affiliates.history.table.total\")}{t(\"settings.affiliates.history.table.status\")}
{affiliate.user.full_name}{affiliate.start_at}{affiliate.end_at}{affiliate.percent}%{affiliate.total_earned}\n \n \n setSelectedAffiliate(affiliate)}\n >\n {t(\"settings.affiliates.history.paymentsHistory\")}\n \n
\n ) : (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {t(\"settings.affiliates.history.empty\")}\n \n )}\n setSelectedAffiliate(null)}\n title={`Payments for ${\n selectedAffiliate && selectedAffiliate.user.full_name\n }`}\n padding=\"xl\"\n size=\"700\"\n >\n \n \n
\n );\n}\n","import axios from 'axios';\n\nclass Stripe {\n constructor() {\n if (this instanceof Stripe) {\n throw Error('Stripe class cannot be instantiated.');\n }\n }\n\n static onSubscriptionIntent = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/sutra_stripe/subscription_setup_intent.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onCreate = async (plan_id, payment_method_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n plan_id,\n payment_method_id\n }\n\n await window.$api.post(`/api/v4/sutra_stripe.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onApplyCode = async (coupon_code, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n coupon_code\n }\n\n await window.$api.post(`/api/v4/sutra_stripe/apply_coupon.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onCheckIntent = async (slug, payment_intent_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n payment_intent_id\n }\n\n await window.$api.post(`/api/v4/sutra_stripe/check_intent.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onCancelSubscription = async (user_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n user_id\n }\n\n await window.$api.post(`/api/v4/sutra_stripe/cancel_subscription.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onFetchKeys = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/sutra_stripe/setup_intent.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onAttachPaymentMethod = async (pm_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n pm_id: pm_id\n }\n\n await window.$api.post(`/api/v4/sutra_stripe/attach_payment_method.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onFetchPayments = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/account_payments.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onConnect = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/sutra_stripe/connect.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onDisconnect = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/sutra_stripe/disconnect.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n\n static onRefund = async (slug, payment_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n payment_id\n }\n\n await window.$api.delete(`/api/v4/sutra_stripe/refund.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n }\n });\n }\n}\n\nexport default Stripe;\n","import React, { useState, useEffect } from \"react\";\nimport {\n Button,\n Title,\n Container,\n Divider,\n Text,\n Group,\n Tooltip,\n MantineProvider,\n Box,\n ScrollArea,\n} from \"@mantine/core\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\nimport Swal from \"sweetalert2\";\n\nimport History from \"./affiliates/History\";\n\nimport SutraStripeModel from \"../../models/SutraStripe\";\nimport UserModel from \"../../models/User\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport { sutraTheme } from \"../../collections/sutraTheme\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function Affiliates(props) {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const [settings, setSettings] = useState({});\n\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n const colors = useSelector((state) => state.user);\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n if (user.authenticated) {\n onFetchSettings();\n }\n }, [user]);\n\n const onFetchSettings = () => {\n UserModel.onSettings(\n user.id,\n (data) => {\n setSettings({ ...data });\n },\n (data) => {}\n );\n };\n\n const getAffiliateLink = () => {\n return `https://sutra.co?a=${user.username}`;\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const onConnect = () => {\n SutraStripeModel.onConnect(\n (data) => {\n if (data.url) {\n window.location.href = data.url;\n } else {\n onFetchSettings();\n }\n },\n (data) => {}\n );\n };\n\n const onDisconnect = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You won't be able to collect any payments.\",\n showDenyButton: true,\n confirmButtonText: \"Yes, disconnect\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SutraStripeModel.onDisconnect(\n (data) => {\n onFetchSettings();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onStripeAccount = () => {\n window.open(\"https://dashboard.stripe.com/settings/user\", \"_blank\");\n };\n\n return (\n \n \n {t(\"settings.affiliates.tabTitle\")}\n \n \n ({ fontWeight: 900 })}>\n {t(\"settings.affiliates.title\")}\n \n\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n\n \n {`${t(\"settings.affiliates.affiliateLink\")}:`}\n \n onCopyLink()}\n text={getAffiliateLink()}\n >\n \n {`${getAffiliateLink()}`}\n \n \n \n \n \n {t(\"settings.affiliates.description2\")}\n \n {settings && settings.can_accept_charges ? (\n \n \n {t(\"settings.affiliates.stripeTitle\")}\n \n onStripeAccount()}\n >\n {settings &&\n settings.stripe &&\n settings.stripe.stripe_user_id}\n \n \n   •  \n onDisconnect()}\n >\n {t(\"settings.affiliates.stripeDisconnect\")}\n \n \n \n ) : (\n \n {t(\"settings.affiliates.description\")}\n \n }\n // color=\"green\"\n radius=\"xl\"\n onClick={() => onConnect()}\n >\n {t(\"settings.affiliates.connect\")}\n \n \n \n )}\n ({ fontWeight: 600 })} order={2} mt={40}>\n {t(\"settings.affiliates.historyLabel\")}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n \n \n \n );\n}\n","\nimport { useTranslation } from 'react-i18next';\n\nexport default function useFrequencyOptions(excludeIndexes=[]) {\n\n const { t } = useTranslation()\n\n const allFrequencyOptions = [\n {\n label: t('settings.frequencyOptions.mute'),\n value: \"-1\"\n },\n {\n label: t('settings.frequencyOptions.always'),\n value: \"0\"\n },\n {\n label: t('settings.frequencyOptions.hour1'),\n value: \"1\"\n },\n {\n label: t('settings.frequencyOptions.hour2'),\n value: \"2\"\n },\n {\n label: t('settings.frequencyOptions.hour4'),\n value: \"4\"\n },\n {\n label: t('settings.frequencyOptions.hour8'),\n value: \"8\"\n },\n {\n label: t('settings.frequencyOptions.hour24'),\n value: \"24\"\n },\n {\n label: t('settings.frequencyOptions.hour168'),\n value: \"168\"\n },\n {\n label: t('settings.frequencyOptions.hour336'),\n value: \"336\"\n },\n ]\n\n const frequencyOptions = Array.isArray(excludeIndexes) ? allFrequencyOptions.filter((_, index) => !excludeIndexes.includes(index)) : allFrequencyOptions;\n \n return {\n frequencyOptions\n }\n}\n","// import axios from 'axios';\n\nclass Broadcast {\n constructor() {\n if (this instanceof Broadcast) {\n throw Error('Broadcast class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, paginator, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/broadcasts.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchSimple = async (slug, paginator, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n simple: true,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/broadcasts.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchById = async (broadcast_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/broadcasts/${broadcast_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, broadcast, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n broadcast\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/broadcasts.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (broadcast_id, slug, broadcast, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n broadcast\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/broadcasts/${broadcast_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onSendPreview = async (slug, broadcast, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n broadcast\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/broadcasts/preview.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDuplicate = async (broadcast_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/broadcasts/${broadcast_id}/duplicate.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (broadcast_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/broadcasts/${broadcast_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onInclude = async (slug, email, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n email: email\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/broadcasts/include.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onExclude = async (slug, email, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n email: email\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/broadcasts/exclude.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onIsExcluded = async (slug, email, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n email: email\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/broadcasts/excluded.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Broadcast;\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Button,\n Grid,\n Group,\n Menu,\n Text,\n Title,\n Box,\n Divider,\n MantineProvider,\n} from \"@mantine/core\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport useFrequencyOptions from \"../../../collections/FrequencyOptions\";\nimport { useTranslation } from \"react-i18next\";\nimport { colors } from \"../../../collections/colors\";\nimport BroadcastModel from \"../../../models/Broadcast\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function Item(props) {\n const [currentFrequency, setCurrentFrequency] = useState(-1);\n const [active, setActive] = useState(true);\n const [excluded, setExcluded] = useState(true);\n const { frequencyOptions } = useFrequencyOptions();\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n\n useEffect(() => {}, []);\n\n const onLeave = (event) => {\n event.preventDefault();\n Swal.fire({\n title: t(\"settings.subscriptions.leaveSpaceConfirmationTitle\"),\n html: t(\"settings.subscriptions.leaveSpaceConfirmationHtml\"),\n showDenyButton: true,\n confirmButtonText: t(\"settings.subscriptions.leaveSpaceButtonText\"),\n denyButtonText: t(\"settings.subscriptions.leaveSpaceDenyButtonText\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onLeaveConfirmation();\n } else if (result.isDenied) {\n }\n });\n };\n\n const onLeaveConfirmation = () => {\n SpaceModel.onLeave(\n props.spaceId,\n (data) => {\n // navigate(`/home/top`);\n },\n (data) => {}\n );\n setActive(false);\n };\n\n const getCurrentFrequencyLabel = () => {\n for (let i = 0; i < frequencyOptions.length; i++) {\n if (frequencyOptions[i].value == currentFrequency) {\n return frequencyOptions[i].label;\n }\n }\n\n return t(\"settings.subscriptions.options\");\n };\n\n const goToPayments = () => {\n navigate(`${props.spaceLink}?show_payments=true`);\n }\n\n const extraSmall = useMediaQuery(\"(max-width: 576px)\");\n\n return (\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={10}\n />\n \n \n {props.parents.map((parent, index) => {\n return (\n <>\n \n {parent.name}\n \n {index < props.parents.length - 1 && (\n \n {\", \"}\n \n )}\n \n );\n })}\n \n ({ color: theme.colors.sutrablue[4] })}\n component={Link}\n to={props.spaceLink}\n order={3}\n >\n {props.spaceName}\n \n \n \n \n \n \n {`View`}\n \n }\n >\n \n {`Options`}\n \n goToPayments()}>\n {`Payments`}\n \n onLeave(event)}>\n {`Cancel subscription`}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Text, Table, Badge, MantineProvider, Box } from \"@mantine/core\";\n\nimport UserModel from \"../../../models/User\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport SubscriptionItem from \"./Item\";\n\nexport default function History() {\n const { t, i18n } = useTranslation();\n\n const [subscriptions, setSubscriptions] = useState([]);\n\n useEffect(() => {\n onFetch();\n }, []);\n\n const onFetch = () => {\n UserModel.onFetchSubs(\n (data) => {\n setSubscriptions(data);\n },\n (data) => {}\n );\n };\n\n return (\n \n {subscriptions.map((space) => {\n return (\n \n );\n })}\n {subscriptions.length == 0 && (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {t(\"settings.paid_subscriptions.noPayments\")}\n \n )}\n \n );\n}\n","import React, { useState } from \"react\";\nimport {\n Title,\n Container,\n Divider,\n Text,\n Drawer,\n ScrollArea,\n} from \"@mantine/core\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport History from \"./paid_subscriptions/History\";\n\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function PaidSubscriptions() {\n const { t, i18n } = useTranslation();\n\n return (\n \n \n {t(\"settings.paid_subscriptions.tabTitle\")}\n \n \n ({ fontWeight: 600 })} order={2} mt={40}>\n {t(\"settings.paid_subscriptions.title\")}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n \n setOpenedPaymentMethod(false)}\n title={{t(\"settings.billing.updatePaymentMethodMayus\")}}\n padding=\"xl\"\n size=\"xl\"\n >\n {/* */}\n \n \n \n );\n}\n","import axios from 'axios';\nimport Broadcaster from '../helpers/Broadcaster.js';\n\nclass SubscriptionModel {\n constructor() {\n if (this instanceof SubscriptionModel) {\n throw Error('SubscriptionModel class cannot be instantiated.');\n }\n }\n\n static onFetch = async (filters, page, callback) => {\n\n const params = {\n auth_token: window.$currentUserAuthToken,\n page: page,\n term: filters.term,\n parent: filters.parent\n };\n\n await axios.get(`/api/v2/subscriptions`, {params: params})\n .then(res => {\n callback(res.data)\n })\n .catch((error) => {\n });\n }\n\n static onUpdateFrequency = async (circleId, frequency, callback) => {\n\n const params = {\n auth_token: window.$currentUserAuthToken,\n frequency: frequency\n };\n\n await axios.put(`/api/v2/subscriptions/${circleId}/frequency`, params)\n .then(res => {\n callback(res.data)\n })\n .catch((error) => {\n });\n }\n\n static onLeave = async (circleId, callback) => {\n\n const params = {\n auth_token: window.$currentUserAuthToken\n };\n\n await axios.delete(`/api/v2/subscriptions/${circleId}/leave`, {params: params})\n .then(res => {\n callback(res.data)\n })\n .catch((error) => {\n });\n }\n}\n\nexport default SubscriptionModel;\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Button,\n Grid,\n Group,\n Menu,\n Text,\n Title,\n Box,\n Divider,\n MantineProvider,\n} from \"@mantine/core\";\n\nimport { Link } from \"react-router-dom\";\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport useFrequencyOptions from \"../../../collections/FrequencyOptions\";\nimport { useTranslation } from \"react-i18next\";\nimport { colors } from \"../../../collections/colors\";\nimport BroadcastModel from \"../../../models/Broadcast\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function Item(props) {\n const [currentFrequency, setCurrentFrequency] = useState(-1);\n const [active, setActive] = useState(true);\n const [excluded, setExcluded] = useState(true);\n const { frequencyOptions } = useFrequencyOptions(props.isInteractive ? [1, 2, 3, 4, 5] : null);\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n setCurrentFrequency(props.currentFrequency);\n }, []);\n\n useEffect(() => {\n setExcluded(props.broadcastExcluded);\n }, [props]);\n\n const onUpdateFrequency = (event, frequency) => {\n event.preventDefault();\n\n props.onUpdateFrequency(props.spaceId, frequency);\n setCurrentFrequency(frequency);\n };\n\n const onLeave = (event) => {\n event.preventDefault();\n Swal.fire({\n title: t(\"settings.subscriptions.leaveSpaceConfirmationTitle\"),\n html: t(\"settings.subscriptions.leaveSpaceConfirmationHtml\"),\n showDenyButton: true,\n confirmButtonText: t(\"settings.subscriptions.leaveSpaceButtonText\"),\n denyButtonText: t(\"settings.subscriptions.leaveSpaceDenyButtonText\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onLeaveConfirmation();\n } else if (result.isDenied) {\n }\n });\n };\n\n const onLeaveConfirmation = () => {\n props.onLeave(props.spaceId);\n setActive(false);\n };\n\n const getCurrentFrequencyLabel = () => {\n for (let i = 0; i < frequencyOptions.length; i++) {\n if (frequencyOptions[i].value == currentFrequency) {\n return frequencyOptions[i].label;\n }\n }\n\n return t(\"settings.subscriptions.options\");\n };\n\n const extraSmall = useMediaQuery(\"(max-width: 576px)\");\n\n const onInclude = () => {\n BroadcastModel.onInclude(\n props.spaceId,\n props.userEmail,\n (data) => {\n setExcluded(false);\n },\n (data) => {}\n );\n };\n\n const onExclude = () => {\n BroadcastModel.onExclude(\n props.spaceId,\n props.userEmail,\n (data) => {\n setExcluded(true);\n },\n (data) => {}\n );\n };\n\n return (\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={10}\n />\n \n \n {props.parents.map((parent, index) => {\n return (\n <>\n \n {parent.name}\n \n {index < props.parents.length - 1 && (\n \n {\", \"}\n \n )}\n \n );\n })}\n \n ({ color: theme.colors.sutrablue[4] })}\n component={Link}\n to={props.spaceLink}\n order={3}\n >\n {props.spaceName}\n \n \n \n \n \n {active ? (\n \n {getCurrentFrequencyLabel()}\n \n }\n >\n \n {t(\"settings.subscriptions.frequencyOptions\")}\n \n {props.subscriptionType == \"member\" ? (\n <>\n {frequencyOptions.map((option) => {\n return (\n \n ) : (\n \" \"\n )\n }\n onClick={(event) =>\n onUpdateFrequency(event, option.value)\n }\n >\n {option.label}\n \n );\n })}\n onLeave(event)}>\n {t(\"settings.subscriptions.leaveSpace\")}\n \n \n ) : (\n <>\n \n {t(\"settings.subscriptions.otherActions\")}\n \n }\n onClick={(event) => onLeave(event)}\n >\n {t(\"settings.subscriptions.unsubscribe\")}\n \n \n )}\n \n ) : (\n \n \n \n )}\n \n \n \n \n );\n}\n","import React from 'react';\n\nimport { Button, TextInput, Group } from '@mantine/core';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\nimport { useTranslation } from 'react-i18next';\n\nexport default function Searchbar(props) {\n\n const { t, i18n } = useTranslation()\n\n return (\n \n }\n placeholder={t('settings.subscriptions.searchBySpaceName')}\n id=\"search-input\"\n radius=\"xl\"\n onKeyDown={event => props.onKeyPressed(event)}\n />\n props.onSearchByTerm()}>\n {t('settings.subscriptions.search')}\n \n props.onClearSearch()}>\n {t('settings.subscriptions.clear')}\n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Box, Divider, Title } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport SubscriptionModel from \"../../../../models/SubscriptionModel\";\n\nimport SubscriptionItem from \"./Item\";\nimport Searchbar from \"./Searchbar\";\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nconst loadingVariables = {\n firstLoad: false,\n reload: true,\n noMore: false,\n};\n\nexport default function List(props) {\n const [subscriptions, setSubscriptions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [filters, setFilters] = useState({ term: null, parent: null });\n\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n onFetch();\n }, [filters]);\n\n useEffect(() => {\n if (props.onScrollBottom) {\n props.setOnScrollBottom(false);\n onScrollBottom();\n }\n }, [props]);\n\n const onScrollBottom = () => {\n // if (scroll && scroll.atBottom){\n if (loadingVariables.noMore) {\n return;\n }\n if (!loading) {\n paginator.page++;\n onFetch();\n }\n // }\n };\n\n const onFetch = () => {\n setLoading(true);\n\n let newSubs = [...subscriptions];\n if (loadingVariables.reload) {\n newSubs = [];\n paginator.page = 1;\n }\n\n loadingVariables.reload = false;\n\n SubscriptionModel.onFetch(filters, paginator.page, (data) => {\n loadingVariables.firstLoad = true;\n\n setSubscriptions(newSubs.concat(data));\n setLoading(false);\n\n if (data.length == 0 && paginator.page > 1) {\n paginator.page--;\n loadingVariables.noMore = true;\n }\n });\n };\n\n const onSearchByTerm = () => {\n loadingVariables.reload = true;\n\n const newFilters = { ...filters };\n newFilters.term = document.getElementById(\"search-input\").value;\n\n setFilters(newFilters);\n };\n\n const onClearSearch = () => {\n loadingVariables.reload = true;\n\n const newFilters = { ...filters };\n newFilters.term = null;\n document.getElementById(\"search-input\").value = \"\";\n\n setFilters(newFilters);\n };\n\n const onKeyPressed = (event) => {\n if (event.key === \"Enter\") {\n onSearchByTerm();\n }\n };\n\n const onUpdateFrequency = (circleId, frequency) => {\n SubscriptionModel.onUpdateFrequency(circleId, frequency, (res) => {});\n };\n\n const onLeave = (circleId) => {\n SubscriptionModel.onLeave(circleId, (res) => {});\n };\n\n return (\n \n ({ fontWeight: 600 })} order={2}>\n {t(\"settings.subscriptions.subscriptions\")}\n \n\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n \n\n \n {subscriptions.map((space) => {\n return (\n \n );\n })}\n \n {subscriptions.length == 0 && loadingVariables.firstLoad && (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {t(\"settings.subscriptions.emptySubscriptions\")}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Title,\n Container,\n Divider,\n Text,\n Group,\n Select,\n Switch,\n MantineProvider,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setAlert } from \"../../store/app\";\nimport UserSettingModel from \"../../models/UserSetting\";\n\nimport { useTranslation } from \"react-i18next\";\nimport useFrequencyOptions from \"../../collections/FrequencyOptions\";\n\nimport SubscriptionsList from \"./Subscriptions/List\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { Helmet } from \"react-helmet\";\n\nlet timeoutId = null;\n\nconst scrollTimeoutIds = [];\n\nexport default function Email() {\n const { t, i18n } = useTranslation();\n\n const user = useSelector((state) => state.user);\n const dispatch = useDispatch();\n const didMount = useRef(false);\n\n const { frequencyOptions } = useFrequencyOptions([]);\n\n const [groupNotification, setGroupNotification] = useState(\"\");\n const [activityEmailFrequency, setActivityEmailFrequency] = useState(-1);\n\n const [notifyMentionsChecked, setNotifyMentionsChecked] = useState(false);\n const [weeklyDigestChecked, setWeeklyDigestChecked] = useState(false);\n const [notifyLikesChecked, setNotifyLikesChecked] = useState(false);\n\n const [onScrollBottom, setOnScrollBottom] = useState(false);\n\n const viewport = useRef();\n\n const form = useForm({\n initialValues: {\n group_notifications: \"\",\n message_email_frequency: \"\",\n weekly_digest: \"\",\n notify_mentions: \"\",\n },\n });\n\n useEffect(() => {\n if (user && user.id) {\n onFetch();\n }\n }, [user]);\n\n useEffect(() => {\n if (didMount.current) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n onSave();\n }, 1300);\n }\n }, [\n groupNotification,\n activityEmailFrequency,\n notifyMentionsChecked,\n weeklyDigestChecked,\n notifyLikesChecked\n ]);\n\n const onFetch = () => {\n UserSettingModel.onFetch(\n user.id,\n (data) => {\n setGroupNotification(data.group_notifications);\n setActivityEmailFrequency(data.message_email_frequency + \"\");\n setWeeklyDigestChecked(data.weekly_digest);\n setNotifyMentionsChecked(data.notify_mentions);\n setNotifyLikesChecked(data.notify_likes)\n\n setTimeout(() => {\n didMount.current = true;\n }, 100);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n UserSettingModel.onUpdate(\n user.id,\n {\n group_notifications: groupNotification,\n message_email_frequency: activityEmailFrequency,\n weekly_digest: weeklyDigestChecked,\n notify_mentions: notifyMentionsChecked,\n notify_likes: notifyLikesChecked\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n const scrollTimeoutId = setTimeout(() => {\n setOnScrollBottom(true);\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {}, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const digestPreferences = [\n {\n label: t(\"settings.digestPreferences.digestedLabel\"),\n value: \"digested\",\n description: t(\"settings.digestPreferences.digestedDescription\"),\n },\n\n {\n label: t(\"settings.digestPreferences.undigestedLabel\"),\n value: \"undigested\",\n description: t(\"settings.digestPreferences.undigestedDescription\"),\n },\n ];\n\n const SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n );\n\n return (\n \n \n {t(\"settings.emailPreferences.tabTitle\")}\n \n \n
onSave(values))}>\n ({ fontWeight: 900 })}>\n {t(\"settings.emailPreferences.emailPreferences\")}\n \n\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n\n \n \n\n \n \n\n \n {t(\"settings.emailPreferences.emailDigestMessage\")}\n \n\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={20}\n />\n\n \n \n setWeeklyDigestChecked(event.currentTarget.checked)\n }\n size=\"lg\"\n onLabel=\"ON\"\n offLabel=\"OFF\"\n label={t(\"settings.emailPreferences.receiveWeeklyDigest\")}\n />\n \n\n \n \n setNotifyMentionsChecked(event.currentTarget.checked)\n }\n size=\"lg\"\n onLabel=\"ON\"\n offLabel=\"OFF\"\n label={t(\"settings.emailPreferences.receiveAtMentions\")}\n />\n \n\n \n setNotifyLikesChecked(event.currentTarget.checked)}\n size=\"lg\"\n onLabel=\"ON\"\n offLabel=\"OFF\"\n label={t(\"settings.emailPreferences.receiveLikes\")}\n />\n \n\n \n {/*groupNotification == \"undigested\" && (\n \n )*/}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { CardElement, useStripe, useElements } from \"@stripe/react-stripe-js\";\n\nimport { Button, Box } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Payment(props) {\n const { t, i18n } = useTranslation();\n const stripe = useStripe();\n const elements = useElements();\n\n const onSubmit = async (event) => {\n event.preventDefault();\n\n await props.onChangePayment(stripe, elements);\n };\n\n const CARD_ELEMENT_OPTIONS = {\n style: {\n base: {\n color: \"#000000\",\n fontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\n fontSmoothing: \"antialiased\",\n fontSize: \"16px\",\n \"::placeholder\": {\n color: \"#888\",\n },\n },\n invalid: {\n color: \"#fa755a\",\n iconColor: \"#fa755a\",\n },\n },\n };\n\n return (\n
\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport { setAlert } from \"../../../store/app\";\n\nimport StripeForm from \"./StripeForm\";\n\nimport StripeModel from \"../../../models/SutraStripe\";\n\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport { loadStripe } from \"@stripe/stripe-js\";\n\nimport Swal from \"sweetalert2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Text, Box } from \"@mantine/core\";\n\nexport default function PaymentMethod(props) {\n const { t } = useTranslation();\n\n const dispatch = useDispatch();\n\n const [stripePromise, setStripePromise] = useState();\n const [stripeOptions, setStripeOptions] = useState({ clientSecret: \"\" });\n const [returnUrl, setReturnUrl] = useState();\n const [paymentMethods, setPaymentMethods] = useState([]);\n\n useEffect(() => {\n onFetchKeys();\n }, []);\n\n const onFetchKeys = () => {\n StripeModel.onFetchKeys(\n (data) => {\n console.log(\"success\");\n console.log(data);\n const appearance = {\n theme: \"stripe\",\n };\n\n setStripePromise(loadStripe(data.publishable_key));\n setStripeOptions({\n clientSecret: data.client_secret,\n appearance: appearance,\n });\n setReturnUrl(data.return_url);\n\n setPaymentMethods([...data.payment_methods]);\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onAttachPaymentMethod = (pm_id) => {\n StripeModel.onAttachPaymentMethod(\n pm_id,\n (data) => {\n Swal.fire(\n t(\"settings.billing.updatePayment.success.title\"),\n t(\"settings.billing.updatePayment.success.message\"),\n \"success\"\n );\n props.setOpenedPaymentMethod(false);\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onChangePayment = async (stripe, elements) => {\n console.log(elements);\n\n if (!stripe || !elements) {\n return;\n }\n\n const result = await stripe.createPaymentMethod({\n type: \"card\",\n card: elements.getElement(\"card\"),\n });\n\n if (result.error) {\n Swal.fire(\n t(\"settings.billing.updatePayment.error.title\"),\n result.error.message,\n \"error\"\n );\n } else {\n onAttachPaymentMethod(result.paymentMethod.id);\n }\n };\n\n return (\n \n {stripePromise && stripeOptions ? (\n \n {paymentMethods && paymentMethods.length > 0 ? (\n \n {`${t(\n \"settings.billing.paymentMethod.currentPaymentMethod\"\n )}: ...${paymentMethods[0].data[0].card.last4}`}\n \n ) : (\n \n {t(\"settings.billing.paymentMethod.noCurrentPaymentMethod\")}\n \n )}\n\n \n {t(\"settings.billing.paymentMethod.addNewPaymentMethod\")}\n \n\n \n \n ) : (\n \"\"\n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Text, Table, Badge, MantineProvider, Box } from \"@mantine/core\";\n\nimport StripeModel from \"../../../models/SutraStripe\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function History() {\n const { t, i18n } = useTranslation();\n\n const [accountPayments, setAccountPayments] = useState([]);\n\n useEffect(() => {\n onFetchPayments();\n }, []);\n\n const onFetchPayments = () => {\n StripeModel.onFetchPayments(\n (data) => {\n setAccountPayments(data);\n },\n (data) => {}\n );\n };\n\n const StatusBadge = (props) => {\n const statusOptions = {\n paid: \"lime\",\n unpaid: \"red\",\n };\n\n return (\n \n \n {t(`settings.billing.statuses.${props.status}`)}\n \n \n );\n };\n\n return (\n
\n {accountPayments.length > 0 ? (\n \n \n \n \n \n \n \n \n \n \n {accountPayments.map((element) => (\n \n \n \n \n \n \n ))}\n \n
{t(\"settings.billing.tableDate\")}{t(\"settings.billing.tableAmount\")}{t(\"settings.billing.tableStatus\")}{t(\"settings.billing.tableInvoice\")}
{element.date}{element.amount}\n \n \n \n \n {t(\"settings.billing.pdf\")}\n \n \n
\n ) : (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {t(\"settings.billing.noPayments\")}\n \n )}\n
\n );\n}\n","import React, { useState } from \"react\";\nimport {\n Button,\n Title,\n Container,\n Divider,\n Text,\n MantineProvider,\n Drawer,\n ScrollArea,\n} from \"@mantine/core\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setAlert, setUser } from \"../../store/app\";\nimport { colors } from \"../../collections/colors\";\n\nimport { useTranslation } from \"react-i18next\";\nimport Swal from \"sweetalert2\";\n\nimport PaymentMethod from \"./billing/PaymentMethod\";\nimport History from \"./billing/History\";\n\nimport StripeModel from \"../../models/SutraStripe\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function Billing() {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const user = useSelector((state) => state.user);\n const [form, setForm] = useState({ user: {} });\n const [openedPaymentMethod, setOpenedPaymentMethod] = useState(false);\n\n const onCancel = (event) => {\n event.preventDefault();\n Swal.fire({\n title: t(\"settings.billing.cancelConfirmationTitle\"),\n html: t(\"settings.billing.cancelConfirmationHtml\"),\n showDenyButton: true,\n confirmButtonText: t(\"settings.billing.cancelConfirmButtonText\"),\n denyButtonText: t(\"settings.billing.cancelDenyButtonText\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onCancelConfirmation();\n } else if (result.isDenied) {\n }\n });\n };\n\n const onCancelConfirmation = () => {\n StripeModel.onCancelSubscription(\n null,\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n const newUser = { ...user };\n newUser.redirect_to = null;\n newUser.account_type = \"basic\";\n\n dispatch(setUser(newUser));\n },\n (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const goToPlans = () => {\n navigate(\"/app/pricing\");\n };\n\n const getPlanButtonText = () => {\n if (user && user.account_type == \"basic\") {\n return t(\"settings.billing.upgradePlan\");\n }\n return t(\"settings.billing.changePlan\");\n };\n\n const getAccountTypeSimplified = () => {\n if (user.account_type === \"organisation\" || user.account_type === \"organizationannual\" || user.account_type === \"comporganization\") {\n return \"Gold\";\n } else if(user.account_type === \"professional\" || user.account_type === \"professionalannual\" || user.account_type === \"compprofessional\") {\n return \"Silver\";\n } else if (user.account_type === \"personal\" || user.account_type === \"personalannual\" || user.account_type === \"comppersonal\") {\n return \"Bronze\";\n } else {\n return \"Basic\";\n }\n }\n\n return (\n \n \n {t(\"settings.billing.tabTitle\")}\n \n \n ({ fontWeight: 900 })}>\n {t(\"settings.billing.billing\")}\n \n\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n\n \n {t(\"settings.billing.planPrefix\")} {getAccountTypeSimplified()}{\" \"}\n {t(\"settings.billing.planSuffix\")}.\n \n goToPlans()}\n >\n {getPlanButtonText()}\n \n {user && user.account_type && user.account_type != \"basic\" ? (\n <>\n setOpenedPaymentMethod(true)}\n >\n {t(\"settings.billing.updatePaymentMethod\")}\n \n \n onCancel(event)}\n >\n {t(\"settings.billing.cancelSubscription\")}\n \n \n \n ) : (\n \"\"\n )}\n ({ fontWeight: 600 })} order={2} mt={40}>\n {t(\"settings.billing.billingHistory\")}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={10}\n mb={20}\n />\n \n setOpenedPaymentMethod(false)}\n title={{t(\"settings.billing.updatePaymentMethodMayus\")}}\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Group,\n Text,\n Select,\n SegmentedControl,\n Switch,\n MantineProvider,\n Box,\n Loader,\n Center,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { useForm } from \"@mantine/form\";\nimport { TimeInput, DatePicker } from \"@mantine/dates\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport TiptapInline from \"../../tiptap/components/TiptapInline\";\n\nimport { storeJSON } from \"../../../utils/LocalDB\";\n\nimport { getEnv } from \"../../../utils/Host\";\n\nconst SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n);\n\nexport default function Form(props) {\n const [publish, setPublish] = useState(false);\n const [join, setJoin] = useState(true);\n const [record, setRecord] = useState(false);\n const [privacyDescription, setPrivacyDescription] = useState(\"\");\n const [rootPrivacyDescription, setRootPrivacyDescription] = useState(\"\");\n const [opened, setOpened] = useState(false);\n const space = useSelector((state) => state.space);\n const [newSpaceLoading, setNewSpaceLoading] = useState(false);\n const [newMeetingLoading, setNewMeetingLoading] = useState(false);\n const [zoomUserId, setZoomUserId] = useState(\"\");\n const [zoomMeetingId, setZoomMeetingId] = useState(\"\");\n const [zoomData, setZoomData] = useState({});\n const [zoomMeetings, setZoomMeetings] = useState([]);\n const [linkOption, setLinkOption] = useState(\"\");\n const [zoomLoaded, setZoomLoaded] = useState(false);\n const [canUseZoom, setCanUseZoom] = useState([]);\n const zoomIntervalId = useRef();\n const zoomIntervalCount = useRef(0);\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n intention: \"\",\n version: \"\",\n privacy_level: \"open\",\n join_on_create: true,\n launch_on_date: null,\n launch_time: null,\n show_start_date: false,\n start_date: new Date(new Date().getTime() + 86400000),\n end_date: new Date(new Date().getTime() + 90000000),\n start_time: new Date(new Date().getTime() + 86400000),\n end_time: new Date(new Date().getTime() + 90000000),\n content: \"\",\n hangout_link: \"\",\n },\n\n validate: {\n intention: (value) =>\n value.length >= 3 && value.length <= 100\n ? null\n : t(\"spaces.create.invalidNameErrorMsg\"),\n },\n });\n\n useEffect(() => {\n return () => {\n if (zoomIntervalId.current) {\n clearInterval(zoomIntervalId.current);\n zoomIntervalId.current = null;\n zoomIntervalCount.current = 0;\n }\n setNewSpaceLoading(false);\n };\n }, []);\n\n useEffect(() => {\n form.setFieldValue(\"version\", props.version);\n if (!zoomData.connected) {\n onFetchZoomData();\n }\n }, [props]);\n\n useEffect(() => {\n form.setFieldValue(\"join_on_create\", join);\n }, [join]);\n\n useEffect(() => {\n if (record && !canUseZoom[0]) {\n setOpened([true, canUseZoom[1], canUseZoom[2]]);\n setRecord(false);\n return;\n }\n form.setFieldValue(\"record_zoom\", record);\n }, [record]);\n\n useEffect(() => {\n if (form.values.privacy_level === \"open\") {\n setPrivacyDescription(\n `${t(\"spaces.form.form.privacyDescription1\")} ${space.name}.`\n );\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription1\")}`\n );\n } else if (form.values.privacy_level === \"private\") {\n setPrivacyDescription(`${t(\"spaces.form.form.privacyDescription2\")}`);\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription2\")}`\n );\n }\n }, [form.values.privacy_level]);\n\n useEffect(() => {\n if (zoomMeetingId) {\n form.setFieldValue(\"hangout_link\", getMeetingLink());\n } else {\n form.setFieldValue(\"hangout_link\", \"\");\n }\n }, [zoomMeetingId]);\n\n useEffect(() => {\n if (newMeetingLoading) {\n return;\n }\n setZoomMeetingId(\"\");\n }, [linkOption]);\n\n useEffect(() => {\n if (space && space.slug) {\n setCanUseZoom(\n space && space.permissions && space.permissions.can_use_zoom_recordings\n );\n }\n }, [space]);\n\n const getMeetingLink = (meetingId = null) => {\n return `https://us02web.zoom.us/j/${meetingId ? meetingId : zoomMeetingId}`;\n };\n\n const onPreSave = () => {\n if (linkOption == \"zoom-create-meeting\") {\n setNewMeetingLoading(true);\n onCreateZoom();\n return;\n }\n onSave();\n };\n\n const onSave = (hangout_link = null) => {\n if (newSpaceLoading) {\n return;\n }\n\n setNewMeetingLoading(false);\n setNewSpaceLoading(true);\n const spaceParams = { ...form.values };\n if (spaceParams.version == \"event\") {\n spaceParams.version = \"content\";\n spaceParams.show_start_date = true;\n\n if (linkOption.indexOf(\"zoom\") >= 0 && hangout_link) {\n spaceParams.hangout_link = hangout_link;\n }\n\n if (spaceParams.start_date) {\n const _startDate = new Date(spaceParams.start_date);\n const _startTime = spaceParams.start_time\n ? new Date(spaceParams.start_time)\n : new Date();\n try {\n spaceParams.start_date = new Date(\n `${_startDate.toLocaleDateStringAbs()}, ${_startTime.toLocaleTimeString()}`\n ).toISOString();\n } catch {}\n }\n if (spaceParams.end_date) {\n const _endDate = new Date(spaceParams.end_date);\n const _endTime = spaceParams.end_time\n ? new Date(spaceParams.end_time)\n : new Date();\n try {\n spaceParams.end_date = new Date(\n `${_endDate.toLocaleDateStringAbs()}, ${_endTime.toLocaleTimeString()}`\n ).toISOString();\n } catch {}\n }\n }\n if (spaceParams.launch_on_date) {\n const _launchDate = new Date(spaceParams.launch_on_date);\n const _launchTime = spaceParams.launch_time\n ? new Date(spaceParams.launch_time)\n : new Date();\n try {\n spaceParams.launch_time = new Date(\n `${_launchDate.toLocaleDateStringAbs()}, ${_launchTime.toLocaleTimeString()}`\n ).toISOString();\n spaceParams.launch_on_date = true;\n } catch {}\n }\n\n if (props.duplicateFrom) {\n spaceParams.copy_resources = true;\n spaceParams.copy_sub_circles = true;\n\n SpaceModel.onDuplicate(\n spaceParams,\n props.duplicateFrom,\n (data) => {\n props.onDuplicate(data.data.slug, data.data.link);\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 2000);\n },\n (data) => {\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n } else {\n if ([\"vcard\", \"hcard\"].includes(props.spaceViewAs)) {\n spaceParams.generate_thumbnail = true;\n }\n SpaceModel.onCreate(\n spaceParams,\n props.parentId,\n (data) => {\n props.onSave(data.slug, data.link, data.name);\n storeJSON(\"spaces\", `new-space-${props.parentId}`, {\n json: \"\",\n html: \"\",\n });\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 2000);\n },\n (data) => {\n if (data.permissions) {\n setOpened([true, data.permissions[1], data.permissions[2]]);\n // props.onSave()\n }\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n }\n };\n\n const spacesVersions = () => {\n let versions = [\n {\n value: \"content\",\n label: t(\"spaces.form.form.versions.content.label\"),\n description: t(\"spaces.form.form.versions.content.description\"),\n },\n {\n value: \"list\",\n label: t(\"spaces.form.form.versions.list.label\"),\n description: t(\"spaces.form.form.versions.list.description\"),\n },\n {\n value: \"discussion\",\n label: t(\"spaces.form.form.versions.discussion.label\"),\n description: t(\"spaces.form.form.versions.discussion.description\"),\n },\n {\n value: \"event\",\n label: t(\"spaces.form.form.versions.event.label\"),\n description: t(\"spaces.form.form.versions.event.description\"),\n },\n {\n value: \"events\",\n label: t(\"spaces.form.form.versions.events.label\"),\n description: t(\"spaces.form.form.versions.events.description\"),\n },\n {\n value: \"showcase\",\n label: t(\"spaces.form.form.versions.showcase.label\"),\n description: t(\"spaces.form.form.versions.showcase.description\"),\n },\n ];\n\n return versions;\n };\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content\", content.content);\n };\n\n const onConnectZoom = () => {\n let url = \"\";\n if (getEnv() == \"production\") {\n url = `https://zoom.us/oauth/authorize?client_id=Iq_GKcCRhWRVRdVaE3W5Q&response_type=code&redirect_uri=https://sutra.co/api/v4/hooks/zoom/redirect?state=zoom2_usr_${window.$currentUserAuthToken}`;\n } else {\n url = `https://zoom.us/oauth/authorize?client_id=YnGbl0RYQyW6bmgqpcGKSA&response_type=code&redirect_uri=https://sutra.ngrok.dev/api/v4/hooks/zoom/redirect?state=zoom2_usr_${window.$currentUserAuthToken}`;\n }\n window.open(url, \"_blank\");\n\n zoomIntervalId.current = setInterval(() => {\n onFetchZoomData();\n zoomIntervalCount.current += 1;\n\n if (zoomIntervalCount.current > 60) {\n clearInterval(zoomIntervalId.current);\n }\n }, 1000);\n };\n\n const onDisconnectZoom = () => {\n SpaceModel.onZoomDisconnect(\n \"zoom\",\n (data) => {\n setZoomData({});\n },\n (data) => {}\n );\n };\n\n const onFetchZoomData = () => {\n SpaceModel.onZoomData(\n \"zoom\",\n zoomUserId,\n (data) => {\n setZoomData({ ...data.zoom_data });\n setZoomMeetings([...data.zoom_data.meetings]);\n if (data.zoom_data.users.length == 1) {\n lastZoomUser.current = data.zoom_data.users[0].value;\n setZoomUserId(data.zoom_data.users[0].value);\n }\n setZoomLoaded(true);\n },\n (data) => {}\n );\n };\n\n const onCreateZoom = (query) => {\n const spaceParams = { ...form.values };\n if (spaceParams.start_date) {\n const _startDate = new Date(spaceParams.start_date);\n const _startTime = spaceParams.start_time\n ? new Date(spaceParams.start_time)\n : new Date();\n try {\n spaceParams.start_date = new Date(\n `${_startDate.toLocaleDateStringAbs()}, ${_startTime.toLocaleTimeString()}`\n ).toISOString();\n version;\n } catch {}\n }\n if (spaceParams.end_date) {\n const _endDate = new Date(spaceParams.end_date);\n const _endTime = spaceParams.end_time\n ? new Date(spaceParams.end_time)\n : new Date();\n try {\n spaceParams.end_date = new Date(\n `${_endDate.toLocaleDateStringAbs()}, ${_endTime.toLocaleTimeString()}`\n ).toISOString();\n } catch {}\n }\n\n SpaceModel.onZoomCreateMeeting(\n {\n topic: form.values.intention,\n start_time: spaceParams.start_date,\n end_time: spaceParams.end_date,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n (data) => {\n setZoomMeetingId(data.meeting.id + \"\");\n form.setFieldValue(\"hangout_link\", getMeetingLink(data.meeting.id));\n setTimeout(() => {\n onSave(getMeetingLink(data.meeting.id));\n }, 500);\n },\n (data) => {}\n );\n };\n\n return (\n \n onPreSave(values))}\n ref={focusTrapRef}\n >\n \n \n {props.isRoot && (\n \n \n {form.values.version == \"content\" &&\n t(\"spaces.form.form.segments.space.description\")}\n {form.values.version == \"event\" &&\n t(\"spaces.form.form.segments.event.description\")}\n {form.values.version == \"discussion\" &&\n t(\"spaces.form.form.segments.discussion.description\")}\n \n \n )}\n {props.content && (\n \n \n \n )}\n {!props.isRoot && (\n \n {space && space.slug && space.version == \"content\" && (\n \n )}\n \n )}\n {form.getInputProps(\"version\").value == \"event\" ? (\n \n {/* \n {t(\"spaces.form.form.eventDescription\")}\n */}\n \n {zoomLoaded == true &&\n !zoomData.connected &&\n linkOption.indexOf(\"zoom\") >= 0 && (\n onConnectZoom()}\n >\n {\"Connect Zoom Account\"}\n \n )}\n {zoomData.connected && (\n <>\n {zoomData.users && zoomData.users.length > 1 && (\n \n )}\n {linkOption == \"zoom-meeting\" && (\n <>\n \n {/* {getMeetingLink()} */}\n \n )}\n {/*zoomData.connected && linkOption.indexOf(\"zoom\") >= 0 && (\n <>\n setRecord(event.target.checked)}\n label={`Auto save zoom recording`}\n />\n \n {\n \"Enabling this option will automatically upload your Zoom cloud recording to Sutra once the meeting is over\"\n }\n \n \n )*/}\n \n )}\n {linkOption == \"custom-link\" && (\n \n )}\n \n \n {t(\"spaces.form.form.eventStartTime\")}\n \n \n \n \n \n \n {t(\"spaces.form.form.eventEndDate\")}\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n {!props.noAdvance && (\n \n \n \n {t(\"spaces.form.form.privacyLevelText\")}\n \n \n {!props.isRoot && (\n \n {privacyDescription}\n \n )}\n {props.isRoot && (\n \n {rootPrivacyDescription}\n \n )}\n \n {!props.isRoot ? (\n <>\n setJoin(event.target.checked)}\n label={t(\"spaces.form.form.joinAsMember.label\")}\n />\n setPublish(event.target.checked)}\n label={t(\"spaces.form.form.publishDate.label\")}\n />\n {publish ? (\n
\n \n {t(\"spaces.form.form.publishDateTime\")}\n \n \n \n \n \n
\n ) : (\n \"\"\n )}\n \n ) : (\n \"\"\n )}\n
\n )}\n\n {newSpaceLoading || newMeetingLoading ? (\n
\n \n
\n ) : (\n \n )}\n
\n \n \n {props.padding && }\n
\n );\n}\n","import React from 'react';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport { Modal } from '@mantine/core';\n\nimport Form from \"./form/Form\"\n\n\n\nconst NewSpace = (props) => {\n\n const navigate = useNavigate()\n\n const onSave = (spaceId=null, spaceLink=null, spaceName=null) => {\n\n props.setOpened(false)\n if (spaceLink){\n navigate(spaceLink)\n }\n }\n\n return (\n props.setOpened(false)}\n withCloseButton={false}\n >\n \n\n \n )\n}\n\nexport default NewSpace\n","import React from \"react\";\n\nconst VideoEmbed = ({ service, embedId }) => {\n if (service == \"youtube\") {\n return (\n
\n \n \n
\n );\n } else if (service == \"vimeo\") {\n return (\n
\n \n \n
\n )\n } else if (service == \"loom\") {\n return (\n
\n \n
\n )\n }\n\n}\n\nexport default VideoEmbed;\n","import React, { useState, useEffect, useRef, useLayoutEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport {\n Modal,\n Button,\n ScrollArea,\n Container,\n Box,\n Text,\n Title,\n Group,\n createStyles,\n Grid,\n Image,\n BackgroundImage,\n UnstyledButton,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../models/Space\";\n\nimport NewSpace from \"../spaces_neo/New\";\nimport trackMixpanel from \"../../utils/TrackMixpanel\";\n\nimport { setHiddenSidebar, setCreateAiSpaceModalVisible } from \"../../store/app\";\n\nimport WelcomeVideo from \"../../src/images/onboarding/welcome_video_lorenz.jpg\";\nimport GettingStartedGuide from \"../../src/images/onboarding/welcome_video.jpg\";\nimport AdvancedFeatures from \"../../src/images/onboarding/advanced_features.jpg\";\nimport Template01 from \"../../src/images/onboarding/templates_01.jpg\";\nimport Template02 from \"../../src/images/onboarding/templates_02.jpg\";\nimport Template03 from \"../../src/images/onboarding/templates_03.jpg\";\nimport Template04 from \"../../src/images/onboarding/templates_04.jpg\";\nimport Template05 from \"../../src/images/onboarding/templates_05.jpg\";\nimport Template06 from \"../../src/images/onboarding/templates_06.jpg\";\n\nimport VideoEmbed from \"../utils/videoEmbed\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { setActions, setTiptapSidemenu } from \"../../store/app\";\n\nimport { Helmet } from \"react-helmet\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n control: {\n display: \"block\",\n width: \"100%\",\n borderRadius: `${theme.radius.md}px`,\n padding: `10px 15px`,\n\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n color: theme.black,\n textDecoration: \"none\",\n },\n },\n controlActive: {\n backgroundColor: theme.colors.gray[1],\n },\n linkText: {\n fontWeight: 500,\n color: theme.black,\n fontSize: 16,\n lineHeight: 1.4,\n },\n linkTextActive: {\n // fontWeight: 600,\n },\n}));\n\nexport default function GettingStarted(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n const navigate = useNavigate();\n const [videoOpened, setVideoOpened] = useState(false);\n const [gettingStartedOpened, setGettingStartedOpened] = useState(false);\n const [gettingStartedSection, setGettingStartedSection] = useState(\"setup\");\n const [advancedOpened, setAdvancedOpened] = useState(false);\n const [advancedSection, setAdvancedSection] = useState(\"interactive\");\n const [templatesOpened, setTemplatesOpened] = useState(false);\n const [templatesSection, setTemplatesSection] = useState(\"groupprogram\");\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n const duplicateFrom = useRef();\n const addTemplateIntervalId = useRef();\n const addTemplateIntervalCounter = useRef(0);\n\n const mainActions = useSelector((state) => state.mainActions);\n\n const dispatch = useDispatch();\n\n const gettingStartedItems = [\n {\n key: \"setup\",\n label: t(\"app.gettingStarted.items.setup\"),\n service: \"loom\",\n embedId: \"b90402f1c31040d594b28fc41285ff9a\",\n },\n {\n key: \"conversations\",\n label: t(\"app.gettingStarted.items.conversations\"),\n service: \"loom\",\n embedId: \"cd6bfd47976543dda20968f3ba06dc40\",\n },\n {\n key: \"privacy\",\n label: t(\"app.gettingStarted.items.privacy\"),\n service: \"loom\",\n embedId: \"8198aeae20404781983e65f4fd31f118\",\n },\n {\n key: \"registration\",\n label: t(\"app.gettingStarted.items.registration\"),\n service: \"loom\",\n embedId: \"8509a8d2ef3c4d40a3ddfdbf1138ac2f\",\n },\n {\n key: \"invitations\",\n label: t(\"app.gettingStarted.items.invitations\"),\n service: \"loom\",\n embedId: \"491b55bbbe004870a31dae686efd318d\",\n },\n {\n key: \"settings\",\n label: t(\"app.gettingStarted.items.settings\"),\n service: \"loom\",\n embedId: \"65791663e0514cdb8208ef6bdb18ed7d\",\n },\n ];\n\n const advancedItems = [\n {\n key: \"interactive\",\n label: t(\"app.gettingStarted.items.interactive\"),\n service: \"loom\",\n embedId: \"b50be22a6bc041958a4c520f86ed40d7\",\n },\n {\n key: \"automations\",\n label: t(\"app.gettingStarted.items.automations\"),\n service: \"loom\",\n embedId: \"63c1e9ecc45f47f3b930731f67f0e328\",\n },\n {\n key: \"appearance\",\n label: t(\"app.gettingStarted.items.appearance\"),\n service: \"loom\",\n embedId: \"5bfdbf5688c24c32be849a4fdc966856\",\n },\n {\n key: \"interest\",\n label: t(\"app.gettingStarted.items.interest\"),\n service: \"loom\",\n embedId: \"db49f279b82d46a3bfa40420a741f93c\",\n },\n {\n key: \"grids\",\n label: t(\"app.gettingStarted.items.grids\"),\n service: \"loom\",\n embedId: \"b2639a79e1614531b77fda4a752c979f\",\n },\n {\n key: \"broadcasts\",\n label: t(\"app.gettingStarted.items.broadcasts\"),\n service: \"loom\",\n embedId: \"855c8be8b6fc4f95a69b13a4baf4460d\",\n },\n {\n key: \"tagging\",\n label: t(\"app.gettingStarted.items.tagging\"),\n service: \"loom\",\n embedId: \"228c918d435e458ebc87c2f7821a44a3\",\n },\n {\n key: \"tagfeed\",\n label: t(\"app.gettingStarted.items.tagfeed\"),\n service: \"loom\",\n embedId: \"e7d8adef109f48bfbb299c74eaab9376\",\n },\n {\n key: \"emojis\",\n label: t(\"app.gettingStarted.items.emojis\"),\n service: \"loom\",\n embedId: \"3aaae52a77414f72865af2ef05e19827\",\n },\n ];\n\n const templateItems = [\n {\n key: \"groupprogram\",\n label: t(\"app.gettingStarted.templates.groupprogram.label\"),\n image: Template01,\n service: \"loom\",\n embedId: \"f10e56a164794078bed2a84e853ddc65\",\n description: t(\"app.gettingStarted.templates.groupprogram.description\"),\n templateSlug: \"l07q98\",\n },\n {\n key: \"zoomworkshop\",\n label: t(\"app.gettingStarted.templates.zoomworkshop.label\"),\n image: Template02,\n service: \"loom\",\n embedId: \"8240f20f96404ec98851f71291b28f73\",\n description: t(\"app.gettingStarted.templates.zoomworkshop.description\"),\n templateSlug: \"m3of52\",\n },\n {\n key: \"mastermind\",\n label: t(\"app.gettingStarted.templates.mastermind.label\"),\n image: Template03,\n service: \"loom\",\n embedId: \"19d4fb887f10447096cde8bd57123939\",\n description: t(\"app.gettingStarted.templates.mastermind.description\"),\n templateSlug: \"7x47t6\",\n },\n {\n key: \"selfpacedcourse\",\n label: t(\"app.gettingStarted.templates.selfpacedcourse.label\"),\n image: Template04,\n service: \"loom\",\n embedId: \"730e755bc044474bb7cd0fe9351507ff\",\n description: t(\n \"app.gettingStarted.templates.selfpacedcourse.description\"\n ),\n templateSlug: \"uy6i4e\",\n },\n {\n key: \"communityspace\",\n label: t(\"app.gettingStarted.templates.communityspace.label\"),\n image: Template05,\n service: \"loom\",\n embedId: \"c3b7446ade5e4ca69def0bb324eebf88\",\n description: t(\"app.gettingStarted.templates.communityspace.description\"),\n templateSlug: \"wi0wls\",\n },\n {\n key: \"oneononecoaching\",\n label: t(\"app.gettingStarted.templates.oneononecoaching.label\"),\n image: Template06,\n service: \"loom\",\n embedId: \"afbfffa7ed3f483e88ddec044113c800\",\n description: t(\n \"app.gettingStarted.templates.oneononecoaching.description\"\n ),\n templateSlug: \"rsv4be\",\n },\n ];\n\n useEffect(() => {\n if (space.slug){\n return\n }\n\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n\n if (space.slug){\n return\n }\n\n dispatch(setHiddenSidebar({ hidden: false }));\n // Triple checking that sidebar is displayed\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 1000);\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 2000);\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 3000);\n }, [user]);\n\n const selectTemplate = (key) => {\n setTemplatesOpened(true);\n setTemplatesSection(key);\n };\n\n const onDuplicate = (id, link) => {\n setNewSpaceOpened(false);\n duplicateFrom.current = null;\n window.location = link;\n };\n\n const onSelectThisTemplate = (slug) => {\n if (space.slug) {\n dispatch(setActions({ editPage: true }));\n navigate(`/space/${space.slug}/${space.version}`);\n\n window.$waitForTemplateResponse = true;\n\n dispatch(\n setTiptapSidemenu({\n opened: \"loading\",\n text: t(\"app.gettingStarted.loading.text\"),\n })\n );\n\n addTemplateIntervalCounter.current = 0;\n\n addTemplateIntervalId.current = setInterval(() => {\n addTemplateIntervalCounter.current++;\n if (addTemplateIntervalCounter.current > 20) {\n clearInterval(addTemplateIntervalId.current);\n }\n\n const tiptapCont = document.getElementById(\"tiptap-main\");\n if (tiptapCont) {\n if (tiptapCont.style.display == \"block\") {\n clearInterval(addTemplateIntervalId.current);\n setTimeout(() => {\n onAddTemplate(slug);\n }, 1000);\n }\n }\n }, 500);\n } else {\n setTemplatesOpened(false);\n duplicateFrom.current = slug;\n setNewSpaceOpened(true);\n }\n };\n\n const onAddTemplate = (slug) => {\n SpaceModel.onCopyTemplate(\n slug,\n space.slug,\n (data) => {},\n (data) => {\n // setLoadingModalOpened(false)\n }\n );\n };\n\n return (\n \n \n {t(\"app.gettingStarted.tabTitle\")}\n \n \n setVideoOpened(false)}\n size=\"xl\"\n >\n \n \n\n setGettingStartedOpened(false)}\n size=\"1000px\"\n title={\n \n {t(\"app.gettingStarted.mainTitle\")}\n \n }\n >\n \n \n {gettingStartedItems.map((item) => (\n \n setGettingStartedSection(item.key)}\n className={cx(classes.control, {\n [classes.controlActive]:\n item.key == gettingStartedSection,\n })}\n >\n \n \n {item.label}\n \n \n \n \n ))}\n \n \n item.key === gettingStartedSection\n )[0].service\n }\n embedId={\n gettingStartedItems.filter(\n (item) => item.key === gettingStartedSection\n )[0].embedId\n }\n />\n \n \n \n\n setAdvancedOpened(false)}\n size=\"1000px\"\n title={\n \n {t(\"app.gettingStarted.advanceFeatures\")}\n \n }\n >\n \n \n {advancedItems.map((item) => (\n \n setAdvancedSection(item.key)}\n className={cx(classes.control, {\n [classes.controlActive]: item.key == advancedSection,\n })}\n >\n \n \n {item.label}\n \n \n \n \n ))}\n \n \n item.key === advancedSection\n )[0].service\n }\n embedId={\n advancedItems.filter(\n (item) => item.key === advancedSection\n )[0].embedId\n }\n />\n \n \n \n\n setTemplatesOpened(false)}\n size=\"1000px\"\n title={\n \n {\n templateItems.filter((item) => item.key === templatesSection)[0]\n .label\n }\n \n }\n >\n \n \n item.key === templatesSection\n )[0].service\n }\n embedId={\n templateItems.filter(\n (item) => item.key === templatesSection\n )[0].embedId\n }\n />\n \n \n \n {\n templateItems.filter(\n (item) => item.key === templatesSection\n )[0].description\n }\n \n {\n trackMixpanel(user.username, \"Guide Template Selected\");\n onSelectThisTemplate(\n templateItems.filter(\n (item) => item.key === templatesSection\n )[0].templateSlug\n );\n }}\n >\n {t(\"app.gettingStarted.selectTemplate\")}\n \n \n \n \n\n \n\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n \n \n \n ({ fontWeight: 900 })} mb={10}>\n {t(\"app.gettingStarted.welcome\")} {user.first_name}!\n \n\n {t(\"app.gettingStarted.description1\")}\n {\n trackMixpanel(user.username, \"Welcome Video Watched\");\n setVideoOpened(true);\n }}\n >\n {t(\"app.gettingStarted.watchVideo\")}\n \n {!space.slug && (\n {\n trackMixpanel(user.username, \"Guide Space Created\");\n dispatch(setCreateAiSpaceModalVisible({ isVisible: true }));\n }}\n >\n {t(\"app.gettingStarted.createFirstSpace\")}\n \n )}\n \n \n \n {\n trackMixpanel(user.username, \"Welcome Video Watched\");\n setVideoOpened(true);\n }}\n radius=\"md\"\n sx={{\n cursor: \"pointer\",\n }}\n src={WelcomeVideo}\n />\n \n \n \n\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n \n \n \n \n {t(\"app.gettingStarted.gettingStartedGuide\")}\n \n {t(\"app.gettingStarted.description2\")}\n {\n trackMixpanel(user.username, \"Guide Opened\");\n setGettingStartedOpened(true);\n }}\n >\n {t(\"app.gettingStarted.checkOutTheGuide\")}\n \n \n \n \n {\n trackMixpanel(user.username, \"Guide Opened\");\n setGettingStartedOpened(true);\n }}\n radius=\"md\"\n sx={{\n cursor: \"pointer\",\n }}\n src={GettingStartedGuide}\n />\n \n \n \n\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n \n \n \n \n {t(\"app.gettingStarted.learnAbout\")}\n \n {t(\"app.gettingStarted.description4\")}\n {\n trackMixpanel(user.username, \"Advanced Guide Opened\");\n setAdvancedOpened(true);\n }}\n >\n {t(\"app.gettingStarted.learnmore\")}\n \n \n \n \n {\n trackMixpanel(user.username, \"Advanced Guide Opened\");\n setAdvancedOpened(true);\n }}\n radius=\"md\"\n sx={{\n cursor: \"pointer\",\n }}\n src={AdvancedFeatures}\n />\n \n \n \n\n {/*\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n \n \n {t(\"app.gettingStarted.startWithATemplate\")}\n \n {t(\"app.gettingStarted.description3\")}\n \n \n {templateItems.map((item) => (\n \n selectTemplate(item.key)}\n radius=\"md\"\n sx={{\n height: 100,\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n src={item.image}\n >\n \n {item.label}\n \n \n \n ))}\n \n \n */}\n \n \n );\n}\n","// import axios from 'axios';\n\nclass Plan {\n constructor() {\n if (this instanceof Plan) {\n throw Error('Plan class cannot be instantiated.');\n }\n }\n\n static onFetch = async (sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/plans.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchbyId = async (plan_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/plans/${plan_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Plan;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Link } from \"react-router-dom\";\n\nimport {\n createStyles,\n Group,\n Text,\n Card,\n SimpleGrid,\n Button,\n Box,\n Switch,\n Tooltip,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport PlanModel from \"../../../models/Plan\";\n\nconst useStyles = createStyles((theme) => ({\n plan: {\n border: `1px solid ${theme.colors.gray[1]}`,\n backgroundColor: theme.colors.gray[0],\n },\n\n planTitle: {\n fontSize: 30,\n fontWeight: 800,\n },\n\n planDescription: {\n minHeight: 110,\n },\n\n planPriceWrap: {\n alignItems: \"flex-start\",\n },\n\n planCurrency: {\n fontSize: 20,\n marginTop: 5,\n marginRight: 3,\n },\n\n planPrice: {\n fontSize: 30,\n fontWeight: 800,\n marginRight: 7,\n },\n\n planFrequency: {\n fontSize: 16,\n marginTop: 7,\n lineHeight: 1.2,\n },\n\n featureIntro: {\n fontWeight: \"600\",\n },\n\n featureItem: {\n alignItems: \"baseline\",\n marginTop: 10,\n },\n tableData: {\n textAlign: \"center !important\",\n },\n}));\n\nexport default function PlanOptions() {\n const { t } = useTranslation();\n\n const { classes, theme } = useStyles();\n const [frequency, setFrequency] = useState(\"monthly\");\n const [plans, setPlans] = useState([]);\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n onFetch();\n }, []);\n\n const onFetch = () => {\n PlanModel.onFetch(\n (data) => {\n setPlans(data.data);\n },\n (data) => {}\n );\n };\n\n const setFrequencyDescription = () => {\n return frequency === \"monthly\"\n ? t(\"app.payment.planOption.frequencyDescription1\")\n : t(\"app.payment.planOption.frequencyDescription2\");\n };\n\n const features = (plan) => {\n return plan.features.map((feature) => (\n \n \n \n \n \n {feature.description}{\" \"}\n {feature.explanation !== \"\" && (\n \n \n \n )}\n \n \n ));\n };\n\n const featuresInfo = (plan) => {\n let featureList = [];\n\n if (plan.title == \"Bronze\") {\n return features(plan);\n }\n\n if (plan.title == \"Silver\") {\n const personalPlan = plans.filter((plan) => plan.title === \"Bronze\");\n const personalPlanFeatures = [...personalPlan[0].features];\n personalPlanFeatures.pop();\n const _plan = {\n ...plan,\n features: personalPlanFeatures.concat(plan.features),\n };\n return features(_plan);\n }\n\n if (plan.title == \"Gold\") {\n const personalPlan = plans.filter((plan) => plan.title === \"Bronze\");\n const personalPlanFeatures = [...personalPlan[0].features];\n personalPlanFeatures.pop();\n const professionalPlan = plans.filter(\n (plan) => plan.title === \"Silver\"\n );\n const professionalPlanFeatures = [...professionalPlan[0].features];\n professionalPlanFeatures.pop();\n const _plan = {\n ...plan,\n features: personalPlanFeatures\n .concat(professionalPlanFeatures)\n .concat(plan.features),\n };\n return features(_plan);\n }\n };\n\n const getPlanLink = (plan) => {\n if (!user.authenticated) {\n return `/user/start?p=${plan.ids[frequency]}`;\n }\n\n return plan.user.is_current_plan[getCurrentPlanIndexCheck()]\n ? `/settings/billing`\n : `/app/pay/${plan.ids[frequency]}`;\n };\n\n const getCurrentPlanIndexCheck = () => {\n return frequency === \"annually\" ? 1 : 0\n }\n\n const plansElement = plans.map((plan) => (\n \n {plan.title}\n \n $\n \n {frequency === \"annually\" ? plan.priceAnnually : plan.priceMonthly}\n \n \n {setFrequencyDescription()}\n \n \n \n {plan.description}\n \n \n {plan.user.is_current_plan[getCurrentPlanIndexCheck()]\n ? t(\"app.payment.planOption.currentPlan\")\n : plan.user.action}\n \n \n {plan.featureIntro}\n \n {featuresInfo(plan)}\n \n ));\n\n return (\n <>\n \n {t(\"app.payment.planOption.billedMonthly\")}\n \n setFrequency(event.target.checked ? \"annually\" : \"monthly\")\n }\n />\n {t(\"app.payment.planOption.billedAnnually\")}\n \n\n \n {plansElement}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Link } from \"react-router-dom\";\n\nimport {\n createStyles,\n\n Group,\n Title,\n Text,\n\n Center,\n\n Container,\n Button,\n\n ScrollArea,\n\n} from \"@mantine/core\";\n\n\n\nimport trackMixpanel from \"../../utils/TrackMixpanel\";\nimport VideoEmbed from \"../utils/videoEmbed\";\n\nimport PlanOptions from \"./payment/PlanOptions\";\nimport { setHiddenSidebar } from \"../../store/app\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n maxWidth: 800,\n margin: \"auto\",\n },\n\n description: {\n margin: \"auto\",\n maxWidth: 600,\n },\n}));\n\nexport default function Welcome() {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const { classes, theme } = useStyles();\n const [showPlans, setShowPlans] = useState(false);\n const user = useSelector((state) => state.user);\n const viewport = useRef();\n\n useEffect(() => {\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n }, []);\n\n useEffect(() => {\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500)\n }, [user])\n\n useEffect(() => {\n if (showPlans){\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`plans-texts`)\n const top = $scrollTo.offsetTop - viewport.current.offsetTop + viewport.current.scrollTop - 250\n\n viewport.current.scrollTo({ top: top, behavior: 'smooth' });\n } catch (error) {\n\n }\n }, 1000)\n }\n }, [showPlans])\n\n const onShowPlans = () => {\n setShowPlans(true);\n };\n\n return (\n \n \n {t(\"app.welcome.tabTitle\")}\n \n \n \n {t(\"app.welcome.title\")}\n \n\n \n {t(\"app.welcome.description1\")}\n \n\n \n\n \n {t(\"app.welcome.description2\")}\n \n\n
\n \n \n {\n trackMixpanel(user.username, \"Plan options expanded\")\n onShowPlans()\n }}>\n {t(\"app.welcome.yes\")}\n \n \n
\n\n {showPlans && (\n <>\n \n {t(\"app.welcome.description3\")}\n \n\n \n \n )}\n
\n
\n );\n}\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { InlineWidget } from \"react-calendly\";\n\nimport {\n\n ScrollArea,\n\n} from \"@mantine/core\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function ScheduleDemo() {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n\n return (\n \n \n {t(\"app.scheduleDemo.tabTitle\")}\n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n createStyles,\n Title,\n Text,\n Container,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport trackMixpanel from \"../../utils/TrackMixpanel\";\n\nimport PlanOptions from \"./payment/PlanOptions\";\n\nimport { setHiddenSidebar } from \"../../store/app\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n maxWidth: 800,\n margin: \"auto\",\n },\n\n description: {\n maxWidth: 600,\n margin: \"auto\",\n },\n}));\n\nexport default function Pricing() {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const { classes, theme } = useStyles();\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n trackMixpanel(user.username, \"Pricing Visited\");\n\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (!user.authenticated) {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n }\n if (user.authenticated) {\n dispatch(setHiddenSidebar({ hidden: false }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 500);\n }\n }, [user]);\n\n return (\n \n \n {t(\"app.pricing.tabTitle\")}\n \n \n \n {t(\"app.pricing.upgrade\")}\n \n\n \n {t(\"app.pricing.text\")}\n \n\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport PlanModel from \"../../../models/Plan\";\nimport { useTranslation } from \"react-i18next\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport {\n Paper,\n Title,\n Text,\n Container,\n Group,\n Box,\n Divider,\n Button,\n TextInput,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport StripeModel from \"../../../models/SutraStripe\";\nimport { useSelector } from \"react-redux\";\n\nexport default function Start(props) {\n const { t, i18n } = useTranslation();\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n const user = useSelector((state) => state.user);\n\n const [plan, setPlan] = useState(null);\n\n const [total, setTotal] = useState(0);\n const loaded = useRef(false);\n\n const [addCoupon, setAddCoupon] = useState(false);\n const [couponCode, setCouponCode] = useState(\"\");\n\n useEffect(() => {\n if (loaded.current) {\n return;\n }\n if (props.plan) {\n onFetchbyId();\n }\n }, [props]);\n\n const onFetchbyId = () => {\n PlanModel.onFetchbyId(\n props.plan,\n (data) => {\n setPlan(data);\n\n setTotal(data.price);\n if (props.onPriceChange) {\n props.onPriceChange(\n data.price,\n data.currency,\n data.frequency,\n data.has_trial\n );\n }\n\n loaded.current = true;\n },\n (data) => {}\n );\n };\n\n const ensure2Dec = (value) => {\n return value.toFixed(2).replace(\".00\", \"\");\n };\n\n const getFrequency = () => {\n if (!plan) {\n return \"\";\n }\n return ` / ${plan.frequency.replace(\"ly\", \"\")}`;\n };\n\n const getPaymentDetails = () => {\n if (plan.data.description) {\n return plan.data.description;\n } else {\n if (plan.frequency == \"month\") {\n return `${t(\n \"users.planReference.paymentDetails.month\"\n )} ${getSymbolFromCurrency(plan.currency)}${ensure2Dec(\n plan.price\n )}${getFrequency()}`;\n } else {\n return `${t(\n \"users.planReference.paymentDetails.annual\"\n )} ${getSymbolFromCurrency(plan.currency)}${ensure2Dec(\n plan.price\n )}${getFrequency()}`;\n }\n }\n };\n\n const onApplyCode = (event) => {\n if (event) {\n event.stopPropagation();\n }\n\n StripeModel.onApplyCode(\n couponCode,\n (data) => {\n const coupon = data.coupon;\n let auxTotal = plan.price;\n if (coupon.amount_off) {\n auxTotal -= coupon.amount_off / 100;\n } else {\n auxTotal -= auxTotal * (coupon.percent_off / 100);\n }\n setTotal(auxTotal);\n if (props.onPriceChange) {\n props.onPriceChange(\n auxTotal,\n plan.currency,\n plan.frequency,\n plan.has_trial\n );\n }\n },\n (data) => {}\n );\n };\n\n return (\n \n {plan ? (\n \n \n ({ fontSize: 24, fontWeight: 600 })}\n order={2}\n mb={10}\n >\n {`Sutra ${plan.data.title}`}\n \n\n \n {`${getPaymentDetails()}`}\n \n {user && user.authenticated && (\n \n {addCoupon && (\n \n setCouponCode(event.currentTarget.value)\n }\n onClick={(event) => event.stopPropagation()}\n />\n )}\n {addCoupon ? (\n onApplyCode(event)}\n >\n Apply coupon\n \n ) : (\n {\n event.stopPropagation();\n setAddCoupon(true);\n }}\n >\n + Add coupon\n \n )}\n \n )}\n ({ borderTopColor: theme.colors.gray[2] })}\n mt={20}\n mb={15}\n />\n\n {plan && (\n <>\n {plan.has_trial ? (\n <>\n \n \n {t(\"users.planReference.total_today\")}\n \n ({ fontWeight: 600 })}>\n {`$0`}\n \n \n \n {t(\"users.planReference.due_in\")}\n ({ fontWeight: 600 })}>\n {`${getSymbolFromCurrency(plan.currency)}${ensure2Dec(\n total\n )}`}\n \n \n \n ) : (\n \n {t(\"users.planReference.total\")}\n ({ fontWeight: 600 })}>\n {`${getSymbolFromCurrency(plan.currency)}${ensure2Dec(\n total\n )}`}\n \n \n )}\n \n )}\n \n \n ) : (\n \"\"\n )}\n \n );\n}\n","import React from \"react\";\n\nimport {\n PaymentElement,\n useStripe,\n useElements,\n} from \"@stripe/react-stripe-js\";\n\nimport { Button } from \"@mantine/core\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Payment(props) {\n const { t, i18n } = useTranslation();\n const stripe = useStripe();\n const elements = useElements();\n\n const onSubmit = async (event) => {\n event.preventDefault();\n\n await props.onPay(stripe, elements);\n };\n\n const getFrequency = () => {\n if (!props.frequency) {\n return \"\";\n }\n return props.frequency != \"once\" ? ` / ${props.frequency}` : \"\";\n };\n\n const buttonText = () => {\n const amount = props.amount ? props.amount : 0;\n if (props.trial) {\n return `${t(\n \"app.payment.stripeForm.due_in_trial\"\n )} - ${getSymbolFromCurrency(props.currency)}${amount\n .toFixed(2)\n .replace(\".00\", \"\")}`;\n } else {\n return `${t(\"app.payment.stripeForm.pay\")} ${getSymbolFromCurrency(\n props.currency\n )}${amount.toFixed(2).replace(\".00\", \"\")}${getFrequency()}`;\n }\n };\n\n return (\n
\n \n \n \n );\n}\n","// import axios from 'axios';\nimport { getCookie } from '../utils/Cookies';\n\nclass Auth {\n constructor() {\n if (this instanceof Auth) {\n throw Error('Auth class cannot be instantiated.');\n }\n }\n\n static onMagicSignIn = async (magic_token, {slug, plan}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n magic_token,\n slug,\n plan,\n join_slug: localStorage.getItem('join_slug'),\n gateway_slug: localStorage.getItem('gateway_slug'),\n invitation_slug: getCookie(\"invitation_slug\"),\n }\n await window.$api.post(`/api/v4/auth/magic_sign_in.json`, params)\n .then(res => {\n localStorage.removeItem('join_slug');\n localStorage.removeItem('gateway_slug');\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onSignIn = async (email, password, {slug, plan, joining}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n email,\n password,\n slug,\n plan,\n joining,\n join_slug: localStorage.getItem('join_slug'),\n gateway_slug: localStorage.getItem('gateway_slug'),\n invitation_slug: getCookie(\"invitation_slug\"),\n }\n await window.$api.post(`/api/v4/auth/sign_in.json`, params)\n .then(res => {\n localStorage.removeItem('join_slug');\n localStorage.removeItem('gateway_slug');\n sucessCallback(res.data)\n\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onSignUp = async (userParams, {slug, plan, joining}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n user: {...userParams},\n slug,\n plan,\n joining,\n join_slug: localStorage.getItem('join_slug'),\n gateway_slug: localStorage.getItem('gateway_slug'),\n invitation_slug: getCookie(\"invitation_slug\"),\n affiliate: getCookie(\"affiliate_sutra\"),\n\n }\n await window.$api.post(`/api/v4/auth/sign_up.json`, params)\n .then(res => {\n\n localStorage.removeItem('join_slug');\n localStorage.removeItem('gateway_slug');\n sucessCallback(res.data)\n\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onStart = async (email, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n email,\n slug\n }\n await window.$api.post(`/api/v4/auth/start.json`, params)\n .then(res => {\n\n sucessCallback(res.data)\n })\n .catch((error) => {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onMagicLink = async (email, {slug, plan}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n email,\n slug\n }\n await window.$api.post(`/api/v4/auth/magic_link.json`, params)\n .then(res => {\n\n sucessCallback(res.data)\n })\n .catch((error) => {\n\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onRecoverPasswordInstructions = async (email, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n email\n }\n await window.$api.post(`/api/v4/auth/recover_password_instructions.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onResetPassword = async (reset_password_token, password, password_confirmation, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n user: {\n reset_password_token,\n password,\n password_confirmation\n }\n }\n await window.$api.post(`/api/v4/auth/reset_password.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onAffiliateData = async (username, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n }\n await window.$api.get(`/api/v4/users/${username}/affiliate_data.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n\n\n}\n\nexport default Auth;\n","import React, { useState, useEffect } from \"react\";\n\nimport AuthModel from \"../../models/Auth\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { getCookie } from '../../utils/Cookies';\n\nexport default function Start(props) {\n const { t, i18n } = useTranslation();\n\n const [affiliate, setAffiliate] = useState();\n\n useEffect(() => {\n const username = getCookie(\"affiliate_sutra\")\n if (username) {\n onAffiliateData(username);\n }\n }, [props]);\n\n const onAffiliateData = (username) => {\n AuthModel.onAffiliateData(\n username,\n (data) => {\n setAffiliate(data);\n },\n (data) => {}\n );\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n if (!affiliate){\n return null\n }\n\n if (!affiliate.full_name){\n return null\n }\n\n return (\n \n {`Referred by ${affiliate.full_name}`}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useParams } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\n\nimport PlanReference from \"./PlanReference\";\nimport StripeForm from \"./StripeForm\";\n\nimport StripeModel from \"../../../models/SutraStripe\";\n\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport { loadStripe } from \"@stripe/stripe-js\";\n\nimport Swal from \"sweetalert2\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport AffiliateData from \"../../users/AffiliateData\";\n\nimport {\n Paper,\n Title,\n Container,\n Box,\n Divider,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Payment(props) {\n const { t } = useTranslation();\n\n const dispatch = useDispatch();\n const params = useParams();\n\n const [stripePromise, setStripePromise] = useState();\n const [stripeOptions, setStripeOptions] = useState({ clientSecret: \"\" });\n const [returnUrl, setReturnUrl] = useState();\n const [price, setPrice] = useState();\n const [currency, setCurrency] = useState();\n const [frequency, setFrequency] = useState();\n const [trial, setTrial] = useState();\n\n const mounted = useRef();\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (params.plan && !mounted.current) {\n mounted.current = true;\n onCreate();\n }\n }, [params]);\n\n const onCreate = () => {\n StripeModel.onSubscriptionIntent(\n (data) => {\n const appearance = {\n theme: \"stripe\",\n };\n\n setStripePromise(loadStripe(data.publishable_key));\n setStripeOptions({ clientSecret: data.client_secret, appearance });\n setReturnUrl(data.return_url);\n },\n (data) => {}\n );\n };\n\n const onPriceChange = (price, currency, frequency, trial) => {\n setTrial(trial);\n setPrice(price);\n setCurrency(currency);\n setFrequency(frequency);\n };\n\n const onPay = async (stripe, elements) => {\n if (!stripe || !elements) {\n return;\n }\n\n stripe\n .confirmSetup({\n elements,\n confirmParams: {\n return_url: `${returnUrl}&plan_id=${params.plan}`,\n },\n })\n .then(function (result) {\n if (result.error) {\n Swal.fire(t(\"errors.basic\"), result.error.message, \"error\");\n } else {\n }\n });\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n {t(\"app.payment.payment.tabTitle\")}\n \n \n \n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"app.payment.payment.title\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n {params.plan && stripePromise && stripeOptions ? (\n \n \n \n ) : (\n \"\"\n )}\n \n \n \n \n \n {params.plan && (\n \n \n \n )}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { createStyles, Text } from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n settingsNav: {\n paddingTop: 20,\n height: `calc(100vh - ${theme.other.headerHeight}px)`,\n },\n link: {\n color: \"#fff\",\n display: \"block\",\n padding: \"10px 25px\",\n marginLeft: \"15px\",\n textDecoration: \"none\",\n fontSize: theme.fontSizes.lg,\n fontWeight: 500,\n borderTopLeftRadius: theme.radius.xl,\n borderBottomLeftRadius: theme.radius.xl,\n\n \"&:hover\": {\n color: \"#fff\",\n backgroundColor: theme.colors.gray[6],\n textDecoration: \"none\",\n },\n },\n active: {\n \"&, &:hover\": {\n color: \"#000\",\n backgroundColor: \"#fff\",\n },\n },\n}));\n\nexport default function NavbarContent() {\n const { t, i18n } = useTranslation();\n const { classes, cx } = useStyles();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n const [current, setCurrent] = useState(\"main\");\n\n const settingsLinks = [\n {\n value: \"main\",\n label: t(\"spaces.settings.layout.navbarContent.mainSettings\"),\n to: `/space/${space.slug}/settings/main`,\n },\n // {\n // value: \"additional\",\n // label: t('spaces.settings.layout.navbarContent.additionalSettings'),\n // to: `/space/${space.slug}/settings/additional`\n // },\n {\n value: \"members\",\n label: t(\"spaces.settings.layout.navbarContent.members\"),\n to: `/space/${space.slug}/settings/members`,\n },\n {\n value: \"broadcast\",\n label: t(\"spaces.settings.layout.navbarContent.broadcast\"),\n to: `/space/${space.slug}/settings/broadcast`,\n },\n {\n value: \"surveys\",\n label: t(\"spaces.settings.layout.navbarContent.surveys\"),\n to: `/space/${space.slug}/settings/surveys`,\n },\n {\n value: \"structures\",\n label: t(\"spaces.settings.layout.navbarContent.structures\"),\n to: `/space/${space.slug}/settings/structures`,\n },\n {\n value: \"admin\",\n label: t(\"spaces.settings.layout.navbarContent.sutraAdmin\"),\n to: `/space/${space.slug}/settings/admin`,\n },\n {\n value: \"scheduled\",\n label: t(\"spaces.settings.layout.navbarContent.scheduled\"),\n to: `/space/${space.slug}/settings/scheduled`,\n },\n {\n value: \"archived\",\n label: t(\"spaces.settings.layout.navbarContent.archived\"),\n to: `/space/${space.slug}/settings/archived`,\n },\n {\n value: \"participation\",\n label: t(\"spaces.settings.layout.navbarContent.participation\"),\n to: `/space/${space.slug}/settings/participation`,\n },\n ];\n\n useEffect(() => {\n setCurrent(location.pathname.split(\"/\").pop());\n }, [location]);\n\n return (\n
\n {settingsLinks.map(\n (item) =>\n space &&\n space.settings_tabs.indexOf(item.value) >= 0 && (\n \n {item.label}\n \n )\n )}\n
\n );\n}\n","import React from \"react\";\nimport { Text, Group } from \"@mantine/core\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Fees(props) {\n const { t, i18n } = useTranslation();\n return (\n <>\n \n \n {t(\"spaces.settings.payment.fees.description.fees\")}\n \n \n {`${props.fee}%`}\n \n \n {t(\"spaces.settings.payment.fees.description.sutraFee\")}\n \n \n \n {t(\"spaces.settings.payment.fees.description.stripeProcessingFee\")}\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n NativeSelect,\n TextInput,\n Group\n} from '@mantine/core'\n\nimport Fees from './Fees'\n\nconst data = [\n { value: 'usd', label: '🇺🇸 USD' },\n { value: 'eur', label: '🇪🇺 EUR' },\n { value: 'cad', label: '🇨🇦 CAD' },\n { value: 'aud', label: '🇦🇺 AUD' },\n { value: 'gbp', label: '🇬🇧 GBP' },\n { value: 'sek', label: '🇸🇪 SEK' },\n { value: 'mxn', label: '🇲🇽 MXN' },\n { value: 'inr', label: '🇮🇳 INR' },\n];\n\nexport default function Once(props) {\n\n const [currency, setCurrency] = useState(\"usd\");\n const [defaultPaymentAmount, setDefaultPaymentAmount] = useState(\"\");\n const [disableActions, setDisableActions] = useState(false);\n const propsLoaded = useRef()\n const lastSpaceId = useRef();\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false\n };\n }, []);\n\n useEffect(() => {\n if (props.settings){\n\n if (propsLoaded.current && props.settings.id == lastSpaceId.current && props.settings.payment_settings.default_payment_frequency == \"once\"){\n return\n }\n propsLoaded.current = props.settings.payment_settings.default_payment_frequency != \"once\"\n // setDisableActions(true)\n lastSpaceId.current = props.settings.id\n\n setCurrency(props.settings.payment_settings.currency)\n setDefaultPaymentAmount(props.settings.payment_settings.default_payment_amount)\n if (props.settings.payment_settings.default_payment_frequency == \"once\"){\n setTimeout(() => {\n propsLoaded.current = true\n // setDisableActions(false)\n }, 500)\n }\n else{\n // setDisableActions(false)\n }\n }\n }, [props])\n\n useEffect(() => {\n if (propsLoaded.current && currency){\n if (props.updateAll){\n props.onUpdate({pod_payment_settings_attributes: {currency: currency, default_payment_amount: defaultPaymentAmount, default_payment_frequency: \"once\"}})\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {currency: currency}})\n }\n }\n }, [currency])\n\n useEffect(() => {\n if (propsLoaded.current && defaultPaymentAmount){\n props.onUpdate({pod_payment_settings_attributes: {default_payment_amount: defaultPaymentAmount, default_payment_frequency: \"once\"}, circle_payment: \"paid\"})\n }\n }, [defaultPaymentAmount])\n\n return (\n \n \n {t(\"spaces.settings.payment.once.once.description\")}\n \n\n \n setCurrency(event.currentTarget.value)}\n data={data}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n }}\n />\n\n setDefaultPaymentAmount(event.target.value)}\n type=\"number\"\n placeholder={t(\"spaces.settings.payment.once.once.number\")}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderLeft: \"none\"\n },\n }}\n />\n \n {props.settings && (\n \n )}\n\n \n )\n}\n","import React from \"react\";\n\nimport { Link } from \"react-router-dom\";\n\nimport { Title, Text, Group } from \"@mantine/core\";\n\nexport default function SectionHeader(props) {\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n
\n \n {props.spaceName}\n \n ({ fontWeight: 900 })}\n >\n {props.title}\n \n
\n {props.rightSide}\n \n );\n}\n","import React from 'react';\nimport {\n\n Box,\n TextInput,\n\n ActionIcon,\n Checkbox,\n createStyles\n} from '@mantine/core'\n\nimport { X } from 'tabler-icons-react';\nimport { useTranslation } from 'react-i18next'\n\n\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: '100%',\n color: theme.colors.gray[6],\n cursor: 'move',\n paddingTop: 3,\n width: 20,\n maxWidth: 20\n },\n}));\n\nlet timerId = null;\n\nexport default function MultipleItem(props) {\n\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n return (\n <>\n \n \n \n props.onContentChange(event.currentTarget.value)}\n placeholder={t(\"spaces.settings.survey.multipleItem.multipleItem.placeholder\")}\n radius=\"sm\"\n size=\"md\"\n sx={(theme) => ({\n width: \"calc(100% - 50px)\",\n })}\n rightSection={\n props.onDestroy()}>\n \n \n }\n rightSectionWidth={40} />\n \n )\n}\n","import React from \"react\";\nimport { Box, TextInput, ActionIcon, Radio, createStyles } from \"@mantine/core\";\n\nimport { X } from \"tabler-icons-react\";\nimport { useTranslation } from \"react-i18next\";\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nexport default function SingleItem(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n return (\n <>\n \n \n \n\n props.onContentChange(event.currentTarget.value)}\n radius=\"sm\"\n size=\"md\"\n sx={(theme) => ({\n width: \"calc(100% - 50px)\",\n })}\n rightSection={\n props.onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n />\n \n );\n}\n","import React from \"react\";\nimport {\n Text,\n Box,\n TextInput,\n ActionIcon,\n Radio,\n createStyles,\n} from \"@mantine/core\";\n\nimport { X } from \"tabler-icons-react\";\nimport { useTranslation } from \"react-i18next\";\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nexport default function PaymentItem(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n return (\n <>\n \n \n \n\n props.onContentChange(event.currentTarget.value)}\n sx={(theme) => ({\n width: \"calc(50% - 30px)\",\n marginRight: 10,\n })}\n />\n\n {props.currency.symbol}}\n placeholder={`Amount in ${\n props.currency.currency !== undefined\n ? props.currency.currency.toUpperCase()\n : props.currency.currency\n }`}\n radius=\"sm\"\n size=\"md\"\n value={props.paymentAmount}\n onChange={(event) =>\n props.onPaymentAmountChange(event.currentTarget.value)\n }\n sx={(theme) => ({\n width: \"calc(50% - 30px)\",\n })}\n rightSection={\n props.onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n />\n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n Box,\n TextInput,\n Group,\n ActionIcon,\n createStyles\n} from '@mantine/core'\n\nimport { GripVertical, X } from 'tabler-icons-react';\n\nimport { Draggable } from 'react-beautiful-dnd';\n\nimport AnswerModel from '../../../../models/Answer'\n\nimport MultipleItem from './MultipleItem'\nimport SingleItem from './SingleItem'\nimport PaymentItem from './PaymentItem'\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Swal from 'sweetalert2'\n\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: '100%',\n color: theme.colors.gray[6],\n cursor: 'move',\n paddingTop: 3,\n width: 20,\n maxWidth: 20\n },\n}));\n\nlet timerId = null;\n\nexport default function AnswerItem(props) {\n\n const { classes, cx } = useStyles();\n\n const [content, setContent] = useState(\"\");\n const [paymentAmount, setPaymentAmount] = useState(\"\");\n const [answerId, setAnswerId] = useState(\"\");\n\n useEffect(() => {\n if (props.answer && !props.answer.id && props.answer.new){\n\n onCreate()\n }\n else if (props.answer){\n setAnswerId(props.answer.id)\n\n if (props.answer.content){\n setContent(props.answer.content)\n }\n\n if (props.answer.payment_amount){\n setPaymentAmount(props.answer.payment_amount)\n }\n }\n }, [props])\n\n const onContentChange = (value) => {\n\n setContent(value)\n onUpdate(value, paymentAmount)\n }\n\n const onPaymentAmountChange = (value) => {\n setPaymentAmount(value)\n onUpdate(content, value)\n }\n\n const onCreate = () => {\n\n AnswerModel.onCreate(props.spaceId, props.surveyId, props.questionId, {content}, (data) => {\n setAnswerId(data.id)\n\n props.onUpdate({id: data.id, content: \"\"}, props.index)\n }, (data) => {\n\n })\n }\n\n const onUpdate = (_content, _payment_amount) => {\n if (!answerId){\n return\n }\n if (timerId){\n clearTimeout(timerId)\n }\n timerId = setTimeout(() => {\n\n AnswerModel.onUpdate(answerId, props.spaceId, props.surveyId, props.questionId, {content: _content, payment_amount: _payment_amount}, (data) => {\n\n props.onUpdate({id: answerId, content: _content, payment_amount: _payment_amount}, props.index)\n }, (data) => {\n\n })\n }, 1300)\n }\n\n const onDestroy = () => {\n if (!answerId){\n return\n }\n\n Swal.fire({\n title: \"Are you sure?\",\n html: props.type !== \"payment\" ? (\"All collected option responses will be deleted.\") : \"\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n\n AnswerModel.onDestroy(answerId, props.spaceId, props.surveyId, props.questionId, (data) => {\n props.onDestroy({id: answerId})\n }, (data) => {\n\n })\n\n } else if (result.isDenied) {\n\n }\n })\n }\n\n return (\n \n {(provided, snapshot) => (\n \n \n \n \n {props.type == \"multiple\" ? (\n \n ) : ('')}\n {props.type == \"single\" ? (\n \n ) : ('')}\n {props.type == \"payment\" ? (\n \n ) : ('')}\n {props.type == \"freeform\" ? (\n ({\n width: \"calc(100% - 20px)\",\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n })}\n rightSection={\n onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n />\n ) : ('')}\n \n )}\n \n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Text,\n Box,\n Group,\n Checkbox,\n Anchor,\n createStyles,\n} from \"@mantine/core\";\n\nimport AnswerItem from \"./AnswerItem\";\nimport { useTranslation } from \"react-i18next\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { useListState } from \"@mantine/hooks\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport AnswerModel from \"../../../../models/Answer\";\n\nconst useStyles = createStyles((theme) => ({\n dragHandle: {\n ...theme.fn.focusStyles(),\n height: \"100%\",\n color: theme.colors.gray[6],\n cursor: \"move\",\n paddingTop: 3,\n width: 20,\n maxWidth: 20,\n },\n}));\n\nconst Answers = (props) => {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n const [answers, handlers] = useListState([]);\n const [type, setType] = useState(\"multiple\");\n\n const loading = useRef(false);\n\n useEffect(() => {\n return () => {\n loading.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!loading.current) {\n handlers.setState(props.answers);\n setType(props.type);\n } else if (props.type != type) {\n if (props.type == \"freeform\") {\n handlers.setState([{ new: true }]);\n }\n setType(props.type);\n }\n }, [props]);\n\n const onReorder = () => {\n if (answers.length == 0) {\n return;\n }\n const order = answers.map((answer, index) => {\n return { id: answer.id, position: index };\n });\n\n AnswerModel.onReorder(\n props.spaceId,\n props.surveyId,\n props.questionId,\n order,\n (data) => {},\n (data) => {}\n );\n };\n\n useEffect(() => {\n if (loading.current) {\n onReorder();\n } else if (answers.length > 0) {\n loading.current = true;\n }\n }, [answers]);\n\n const onAddAnswer = () => {\n handlers.append({ content: \"\", new: true });\n };\n\n const onUpdateAnswer = (answer, index) => {\n const newAnswers = [...answers];\n const newAnswer = { ...answers[index] };\n if (!newAnswer.id || newAnswer.id == answer.id) {\n newAnswer.id = answer.id;\n newAnswer.content = answer.content;\n newAnswer.payment_amount = answer.payment_amount;\n\n handlers.setItem(index, newAnswer);\n newAnswers[index] = newAnswer;\n\n // props.onUpdate(newAnswers)\n }\n };\n\n const onDestroyAnswer = (answer) => {\n const newAnswers = [...answers];\n for (let i = 0; i < newAnswers.length; i++) {\n const _answer = newAnswers[i];\n if (_answer.id == answer.id) {\n newAnswers.splice(i, 1);\n break;\n }\n }\n handlers.setState(newAnswers);\n // props.onUpdate(newAnswers)\n };\n\n return (\n \n {\n handlers.reorder({ from: source.index, to: destination.index });\n }}\n >\n \n {(provided) => (\n
\n {answers.map((answer, index) => {\n return (\n \n );\n })}\n {provided.placeholder}\n
\n )}\n \n \n\n {type != \"freeform\" ? (\n \n \n \n
\n ({\n // color: theme.colors.sutrablue[4],\n color: sutraTheme.colors.sutrablue[4],\n \"&:hover\": {\n // color: theme.colors.sutrablue[4],\n color: sutraTheme.colors.sutrablue[5],\n },\n })}\n onClick={() => onAddAnswer()}\n >\n \n {t(\"spaces.settings.survey.answer.answer.addOption\")}\n \n \n \n ) : (\n \"\"\n )}\n \n );\n};\n\nexport default Answers;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Box,\n TextInput,\n SegmentedControl,\n ActionIcon,\n createStyles,\n} from \"@mantine/core\";\n\nimport { GripVertical, X } from \"tabler-icons-react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Answers from \"./Answers\";\n\nimport QuestionModel from \"../../../../models/Question\";\nimport AnswerModel from \"../../../../models/Answer\";\n\nimport { Draggable } from \"react-beautiful-dnd\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n display: \"flex\",\n alignItems: \"flex-start\",\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n backgroundColor: theme.white,\n marginTop: 15,\n width: \"100%\",\n },\n\n questionWrap: {\n width: \"100%\",\n },\n\n itemDragging: {\n boxShadow: theme.shadows.sm,\n },\n\n dragHandle: {\n ...theme.fn.focusStyles(),\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"center\",\n height: \"100%\",\n cursor: \"move\",\n color: theme.colors.gray[6],\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 8,\n },\n}));\n\nconst questionOptions = [\n { value: \"multiple\", label: \"Multiple choice\" },\n { value: \"single\", label: \"Single choice\" },\n { value: \"freeform\", label: \"Short Answer\" },\n { value: \"payment\", label: \"Payment\" },\n];\n\nlet timerId = null;\n\nconst SurveyQuestion = (props) => {\n const { classes, cx } = useStyles();\n\n const [questionType, setQuestionType] = useState(\"multiple\");\n const [content, setContent] = useState(\"\");\n const { t, i18n } = useTranslation();\n const [questionId, setQuestionId] = useState(null);\n const [answers, setAnswers] = useState([]);\n\n const loading = useRef(false);\n\n useEffect(() => {\n return () => {\n loading.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (\n !loading.current &&\n props.question &&\n !props.question.id &&\n props.question.new\n ) {\n onCreate();\n } else if (props.question) {\n setQuestionId(null);\n onFetchById();\n\n loading.current = true;\n }\n }, [props]);\n\n const onFetchById = () => {\n QuestionModel.onFetchById(\n props.question.id,\n props.surveyId,\n props.spaceId,\n (data) => {\n setQuestionId(props.question.id);\n if (data.question_type) {\n setQuestionType(\n !props.acceptPayments ? data.question_type : \"payment\"\n );\n } else {\n setQuestionType(!props.acceptPayments ? \"multiple\" : \"payment\");\n }\n if (data.content) {\n setContent(data.content);\n } else {\n if (props.acceptPayments) {\n setContent(\"Payment question\");\n }\n }\n if (data.answers) {\n setAnswers(data.answers);\n }\n },\n (data) => {}\n );\n };\n\n const getQuestionOptions = () => {\n if (props.acceptPayments) {\n return questionOptions;\n } else {\n const aux = [...questionOptions];\n aux.pop();\n return aux;\n }\n };\n\n const onQuestionTypeChange = (value) => {\n if (value == \"freeform\") {\n onDestroyAll();\n } else {\n setQuestionType(value);\n }\n // else{\n // onUpdate(content, value)\n // }\n onUpdate(content, value);\n };\n\n const onContentChange = (value) => {\n setContent(value);\n onUpdate(value, questionType);\n };\n\n const onCreate = () => {\n QuestionModel.onCreate(\n props.spaceId,\n props.surveyId,\n { content: \"\" },\n (data) => {\n setQuestionId(data.id);\n props.onUpdateLast(data.id);\n },\n (data) => {}\n );\n };\n\n const onUpdate = (content, type) => {\n if (!questionId) {\n return;\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(() => {\n QuestionModel.onUpdate(\n questionId,\n props.spaceId,\n props.surveyId,\n { question_type: type, content },\n (data) => {\n // onAnswersUpdate(answers, type, content)\n // const auxQuestion = {...props.question}\n // auxQuestion.content = content\n // auxQuestion.question_type = type\n // auxQuestion.answers\n // props.onUpdate({})\n },\n (data) => {}\n );\n }, 1000);\n };\n\n const onDestroy = () => {\n if (!questionId) {\n return;\n }\n\n Swal.fire({\n title: \"Are you sure?\",\n html: \"All collected question responses will be deleted.\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n QuestionModel.onDestroy(\n questionId,\n props.spaceId,\n props.surveyId,\n (data) => {\n props.onDestroy({ id: questionId });\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDestroyAll = () => {\n if (!questionId) {\n return;\n }\n\n AnswerModel.onDestroyAll(\n props.spaceId,\n props.surveyId,\n questionId,\n (data) => {\n // onAnswersUpdate([], \"freeform\", content)\n\n setQuestionType(\"freeform\");\n // setTimeout(() => {\n //\n // setAnswers([{new: true}])\n // }, 500)\n },\n (data) => {}\n );\n };\n\n const onPushNewAnswer = () => {\n const newAnswers = [...answers];\n newAnswers.push({ new: true });\n setAnswers(newAnswers);\n };\n\n const onAnswersUpdate = (_answers, _questionType = null, _content = null) => {\n const newAnswers = [..._answers];\n\n setAnswers(newAnswers);\n const newQuestion = { ...props.question };\n newQuestion.answers = newAnswers;\n newQuestion.content = _content ? _content : content;\n newQuestion.question_type = _questionType ? _questionType : questionType;\n\n props.onUpdate(newQuestion, props.index);\n };\n\n const onDrag = () => {};\n\n return (\n \n {(provided, snapshot) => (\n \n {!props.acceptPayments && (\n
\n \n
\n )}\n
\n {!props.acceptPayments && (\n onContentChange(event.currentTarget.value)}\n placeholder={`Question`}\n radius=\"sm\"\n size=\"md\"\n rightSection={\n onDestroy()}>\n \n \n }\n rightSectionWidth={40}\n />\n )}\n {!props.acceptPayments && (\n \n )}\n\n \n
\n \n )}\n \n );\n};\n\nexport default SurveyQuestion;\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, TextInput, Divider, useMantineTheme } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useListState } from \"@mantine/hooks\";\n\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\n\nexport default function CreateSurveyMain(props) {\n const [scheduled, setScheduled] = useState(false);\n\n const theme = useMantineTheme();\n\n // const [questions, setQuestions] = useState([])\n const [surveyId, setSurveyId] = useState(null);\n const { t, i18n } = useTranslation();\n const [questions, handlers] = useListState([]);\n const [currency, setCurrency] = useState(null);\n\n const [loading, setLoading] = useState(false);\n\n const form = useForm({\n initialValues: {\n title: \"\",\n description: \"\",\n content: \"\",\n },\n\n validate: {\n title: (value) => (value.length > 0 ? null : \"Write a title\"),\n },\n });\n\n useEffect(() => {\n if (props.survey && props.survey.id) {\n setLoading(true);\n form.setFieldValue(\"title\", props.survey.title);\n form.setFieldValue(\"description\", props.survey.description);\n form.setFieldValue(\"content\", props.survey.content);\n setSurveyId(props.survey.id);\n } else {\n if (!props.survey) {\n form.setFieldValue(\"title\", \"\");\n form.setFieldValue(\"description\", \"\");\n form.setFieldValue(\"content\", \"\");\n setSurveyId(null);\n setCurrency(null);\n }\n }\n }, [props]);\n\n useEffect(() => {\n props.onUpdateForm(form.values);\n console.log(\"CHANGE\");\n }, [form.values]);\n\n const onContentUpdate = (content, html) => {\n form.setFieldValue(\"content\", content.content);\n form.setFieldValue(\"description\", html);\n };\n\n return (\n
onSend(values))}>\n {!props.acceptPayments && (\n \n )}\n {props.acceptPayments && (\n \n {t(\"spaces.settings.survey.createSurveyForm.form.description\")}\n \n )}\n\n \n \n \n\n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Box,\n Group,\n Button,\n MantineProvider,\n Skeleton,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SurveyQuestion from \"./SurveyQuestion\";\nimport CreateSurveyMain from \"./CreateSurveyMain\";\n\nimport SurveyModel from \"../../../../models/Survey\";\nimport QuestionModel from \"../../../../models/Question\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport { DragDropContext, Droppable } from \"react-beautiful-dnd\";\nimport { useListState } from \"@mantine/hooks\";\n\nexport default function CreateSurvey(props) {\n const [scheduled, setScheduled] = useState(false);\n\n const theme = useMantineTheme();\n\n // const [questions, setQuestions] = useState([])\n const [surveyId, setSurveyId] = useState(null);\n const { t, i18n } = useTranslation();\n const [questions, handlers] = useListState([]);\n const [currency, setCurrency] = useState(null);\n\n const [loading, setLoading] = useState(false);\n\n const form = useRef({});\n\n useEffect(() => {\n if (props.survey && props.survey.id) {\n setLoading(true);\n setSurveyId(props.survey.id);\n onFetch();\n } else {\n if (!props.survey) {\n setSurveyId(null);\n handlers.setState([]);\n setCurrency(null);\n }\n }\n }, [props]);\n\n useEffect(() => {\n if (!props.spaceId || !surveyId || questions.length == 0) {\n return;\n }\n\n const order = questions.map((question, index) => {\n return { id: question.id, position: index };\n });\n\n QuestionModel.onReorder(\n props.spaceId,\n surveyId,\n order,\n (data) => {},\n (data) => {}\n );\n }, [questions]);\n\n const onFetch = () => {\n SurveyModel.onFetchById(\n props.survey.id,\n props.spaceId,\n (data) => {\n handlers.setState(data.questions);\n setCurrency(data.currency);\n\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const onCreate = () => {\n SurveyModel.onCreate(\n props.spaceId,\n form.current,\n (data) => {\n setSurveyId(data.id);\n\n setTimeout(() => {\n onPushNewQuestion();\n }, 100);\n },\n (data) => {}\n );\n };\n\n const onUpdate = () => {\n if (!surveyId) {\n return;\n }\n\n SurveyModel.onUpdate(\n surveyId,\n props.spaceId,\n form.current,\n (data) => {},\n (data) => {}\n );\n };\n\n const onUpdateQuestion = (question, index) => {\n const newQuestion = { ...questions[index] };\n if (!newQuestion.id || newQuestion.id == question.id) {\n newQuestion.id = question.id;\n newQuestion.content = question.content;\n newQuestion.question_type = question.question_type;\n\n newQuestion.answers = question.answers;\n handlers.setItem(index, newQuestion);\n }\n };\n\n const onUpdateLastQuestion = (id) => {\n const question = questions[questions.length - 1];\n question.new = false;\n question.id = id;\n handlers.setState([...questions]);\n };\n\n const onDestroyQuestion = (question) => {\n const newQuestions = [...questions];\n for (let i = 0; i < newQuestions.length; i++) {\n const _question = newQuestions[i];\n if (_question.id == question.id) {\n newQuestions.splice(i, 1);\n break;\n }\n }\n\n handlers.setState(newQuestions);\n };\n\n const onAddQuestion = () => {\n if (!surveyId && form.current.title) {\n onCreate();\n } else if (surveyId) {\n onPushNewQuestion();\n }\n };\n\n const onPushNewQuestion = () => {\n const newQuestions = [...questions];\n newQuestions.push({ new: true, position: questions.length + 1 });\n handlers.setState(newQuestions);\n };\n\n const onSave = () => {\n if (loading) {\n return;\n }\n if (!surveyId && form.current.title) {\n onCreate();\n } else if (surveyId && form.current.title) {\n onUpdate();\n }\n setTimeout(() => {\n props.setOpened(false);\n }, 500);\n };\n\n const onUpdateForm = (_form) => {\n form.current = { ..._form };\n };\n\n if (loading) {\n return (\n \n \n \n \n );\n }\n\n return (\n <>\n \n {\n handlers.reorder({ from: source.index, to: destination.index });\n }}\n >\n \n {(provided) => (\n
\n {questions.map((question, index) => {\n return (\n \n \n );\n })}\n {provided.placeholder}\n
\n )}\n
\n \n \n {!props.acceptPayments && (\n }\n sx={(theme) => ({\n // backgroundColor: theme.colors.sutrablue[3],\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n // backgroundColor: theme.colors.sutrablue[4],\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n })}\n onClick={() => onAddQuestion()}\n >\n {t(\n \"spaces.settings.survey.createSurveyForm.form.addQuestionButton\"\n )}\n \n )}\n \n \n }\n onClick={() => onSave()}\n >\n {t(\"spaces.settings.survey.createSurveyForm.form.saveButton\")}\n \n \n {props.extraButton && props.extraButton}\n \n \n \n \n );\n}\n","import React, { useState } from \"react\";\n\nimport { Text, Drawer, ScrollArea, useMantineTheme } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport CreateSurveyForm from \"./CreateSurveyForm\";\n\nexport default function CreateSurvey(props) {\n const [scheduled, setScheduled] = useState(false);\n const { t, i18n } = useTranslation();\n const theme = useMantineTheme();\n\n return (\n props.setOpened(false)}\n title={\n \n {!props.acceptPayments\n ? t(\"spaces.settings.survey.createSurvey.description\")\n : \"Flexible payment options\"}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n \n \n );\n}\n","import React from 'react';\n\nimport {\n Text,\n createStyles\n} from '@mantine/core';\n\nimport tinycolor from 'tinycolor2'\nimport { useSelector } from 'react-redux';\nimport useSidebarStyles from \"../../../../../utils/SidebarStyles\"\nimport isSpaceThemed from '../../../../../utils/IsSpaceThemed'\n\nconst useStyles = createStyles((theme, {colors, settingsView}) => ({\n freeformResponse: {\n display: 'flex',\n alignItems: 'flex-start',\n borderRadius: theme.radius.md,\n backgroundColor: isSpaceThemed(colors) && !settingsView ? tinycolor(colors.sidebar_background_color).lighten(7).toString() : theme.colors.gray[1],\n paddingTop: 10,\n paddingBottom: 10,\n paddingRight: 10,\n paddingLeft: 10,\n marginTop: 10,\n width: \"100%\",\n fontSize: 14\n }\n}));\n\nexport default function TextBased(props) {\n\n const { settingsView } = useSidebarStyles();\n const colors = useSelector(state => state.colors);\n const { classes, cx } = useStyles({colors, settingsView});\n\n return (\n \n {props.response}\n \n )\n}\n","import React from \"react\";\n\nimport { Box, Title, createStyles } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { PieChart } from \"react-chartkick\";\nimport \"chartkick/chart.js\";\n\nimport TextBased from \"./responses/TextBased.jsx\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n paddingLeft: 15,\n backgroundColor: theme.white,\n marginTop: 15,\n width: \"100%\",\n },\n}));\n\nexport default function Summary(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n\n return (\n \n {props.survey\n ? props.survey.questions.map((question) => {\n return (\n \n {question.content}\n {question.question_type == \"freeform\"\n ? question.choices.map((choice) => {\n return ;\n })\n : \"\"}\n {question.question_type != \"freeform\" &&\n question.graph_data.length > 0 ? (\n \n ) : (\n \"\"\n )}\n {question.choices.length == 0 ? (\n \n ) : (\n \"\"\n )}\n \n );\n })\n : \"\"}\n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport {\n Title,\n\n Box,\n Select,\n createStyles\n} from '@mantine/core';\n\n\nimport { useTranslation } from 'react-i18next'\n\nimport tinycolor from 'tinycolor2'\n\nimport TextBased from './responses/TextBased.jsx'\n\nimport SurveyModel from \"../../../../models/Survey\";\nimport isSpaceThemed from '../../../../utils/IsSpaceThemed'\n\nconst useStyles = createStyles((theme, {colors}) => ({\n item: {\n borderRadius: theme.radius.md,\n border: `1px solid ${isSpaceThemed(colors) ? tinycolor(colors.sidebar_background_color).toString() : theme.colors.gray[4]}`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n paddingLeft: 15,\n // backgroundColor: theme.white,\n backgroundColor: isSpaceThemed(colors) ? tinycolor(colors.sidebar_background_color).toString() : theme.white,\n color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n marginTop: 15,\n width: \"100%\"\n }\n}));\n\n\nexport default function Individual(props) {\n\n const colors = useSelector(state => state.colors);\n const { classes, cx } = useStyles({colors});\n const { t, i18n } = useTranslation();\n\n const [users, setUsers] = useState([])\n const [selectedUser, setSelectedUser] = useState(null)\n const [choices, setChoices] = useState([])\n\n useEffect(() => {\n if (props.survey && props.survey.id && props.spaceId){\n getUsers()\n }\n if (props.selectedUser){\n setSelectedUser(props.selectedUser)\n }\n }, [props])\n\n useEffect(() => {\n if (selectedUser){\n getChoices()\n }\n }, [selectedUser])\n\n const getUsers = () => {\n SurveyModel.onFetchUsers(props.survey.id, props.spaceId, (data) => {\n setUsers(data.map((user) => {return {value: user.id, label: user.full_name}}))\n }, (data) => {\n\n })\n }\n\n const getChoices = () => {\n SurveyModel.onFetchByUser(props.survey.id, props.spaceId, selectedUser, (data) => {\n setChoices(data)\n }, (data) => {\n\n })\n }\n\n return (\n \n {!props.singleUser && (\n \n )}\n\n \n {choices.map((choice) => {\n return (\n \n \n {choice.question.content}\n \n \n \n )\n })}\n \n \n )\n}\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Text,\n Box,\n Drawer,\n SegmentedControl,\n ScrollArea,\n} from '@mantine/core';\n\n\nimport { useTranslation } from 'react-i18next'\n\n\nimport Summary from './Summary'\nimport Individual from './Individual'\n\nimport SurveyModel from \"../../../../models/Survey\";\n\nexport default function ShowSurvey(props) {\n\n const [surveyType, setSurveyType] = useState(\"summary\");\n const { t, i18n } = useTranslation();\n const [survey, setSurvey] = useState(null)\n\n useEffect(() => {\n \n if (props.survey && props.survey.id){\n onFetch()\n }\n }, [props])\n\n const onFetch = () => {\n \n SurveyModel.onFetchById(props.survey.id, props.spaceId, (data) => {\n setSurvey(data)\n }, (data) => {\n\n })\n }\n\n const displaySurveyType = () => {\n if (surveyType == \"summary\") {\n return (\n \n )\n } else if (surveyType == \"individual\") {\n return (\n \n )\n } else {\n return (\n \n )\n }\n }\n\n return (\n props.setOpened(false)}\n title={{t(\"spaces.settings.survey.showSurvey.survey.title\")}}\n padding=\"xl\"\n size={600}\n >\n \n \n\n {displaySurveyType()}\n\n \n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n Menu,\n Group,\n Stack,\n Button,\n Badge,\n Divider,\n MantineProvider,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Copy, Edit } from \"tabler-icons-react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport SurveyModel from \"../../../../models/Survey\";\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function SurveyItem(props) {\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const [survey, setSurvey] = useState({});\n\n useEffect(() => {\n if (props.survey) {\n setSurvey(props.survey);\n }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(survey);\n };\n\n const onDuplicate = () => {\n SurveyModel.onDuplicate(\n survey.id,\n props.spaceId,\n (data) => {\n props.onUpdate(survey);\n },\n (data) => {}\n );\n };\n\n const onDownload = () => {\n SurveyModel.onDownload(\n survey.id,\n props.spaceId,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {}\n );\n };\n\n const onDownloadExcel = () => {\n // SurveyModel.onDownloadExcel(props.spaceId, survey.id);\n onDownload();\n };\n\n const onDestroy = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This survey will be permanently deleted\",\n showDenyButton: true,\n confirmButtonText: \"Delete survey\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n SurveyModel.onDestroy(\n survey.id,\n props.spaceId,\n (data) => {\n props.onUpdate(survey);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n \n \n props.onSelect(survey)}\n sx={(theme) => ({\n color: sutraTheme.colors.sutrablue[3],\n fontWeight: 500,\n fontSize: 20,\n cursor: \"pointer\",\n })}\n >\n {survey.title}\n \n \n \n \n ({\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n },\n })}\n >\n \n \n }\n >\n }\n onClick={() => props.onAdd(survey)}\n >\n {t(\"spaces.settings.survey.surveyItem.item.addToSpace\")}\n \n }\n onClick={() => onEdit()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.edit\")}\n \n }\n onClick={() => onDuplicate()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.duplicate\")}\n \n }\n onClick={() => onDownloadExcel()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.download\")}\n \n \n }\n color=\"red\"\n onClick={() => onDestroy()}\n >\n {t(\"spaces.settings.survey.surveyItem.item.delete\")}\n \n \n \n \n \n ({ color: theme.colors.gray[6] })}\n >\n \n props.setOpened(true)}\n color=\"green\"\n sx={(theme) => ({\n \"&:hover\": {\n textDecoration: \"none\",\n cursor: \"pointer\",\n },\n })}\n >\n {survey.all_choices_count}{\" \"}\n {t(\"spaces.settings.survey.surveyItem.item.responses\")}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Box, Group, Button, createStyles } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nconst useStyles = createStyles((theme, sutraTheme) => ({\n primaryButtonStyle: {\n backgroundColor: sutraTheme.colors.sutrablue[3],\n color: \"#fff\",\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n },\n}));\n\nexport default function SurveyItem(props) {\n const { classes, cx, theme } = useStyles(sutraTheme);\n const { t, i18n } = useTranslation();\n const [survey, setSurvey] = useState({});\n\n useEffect(() => {\n // if (props.survey && props.survey.id != survey.id){\n setSurvey(props.survey);\n // }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(survey);\n };\n\n return (\n \n \n onEdit()}\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n >\n {t(\"spaces.settings.survey.paymentSurveyItem.item.editButton\")}\n \n {false && (\n props.onSelect(survey)}\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n >\n {t(\"spaces.settings.survey.paymentSurveyItem.item.viewButton\")}\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Drawer,\n Select,\n ScrollArea,\n Stack,\n Group,\n Button,\n MultiSelect,\n Divider,\n Loader,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SurveyModel from \"../../../../models/Survey\";\nimport SpaceModel from \"../../../../models/Space\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function Add(props) {\n const { t, i18n } = useTranslation();\n\n const [managers, setManagers] = useState([]);\n\n const [spaces, setSpaces] = useState([]);\n const [selectedSpaces, setSelectedSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false);\n\n const searchTimeoutId = useRef();\n\n const form = useForm({\n initialValues: {\n spaces_ids: \"\",\n user_id: \"\",\n },\n\n validate: {\n spaces_ids: (value) => (value.length > 0 ? null : \"Select a space\"),\n user_id: (value) => (value.length > 0 ? null : \"Select a sender\"),\n // structure_message: (value) => value.length > 0 ? null : \"Write a message\",\n },\n });\n\n useEffect(() => {\n if (props.spaceId) {\n onFetchSpaces();\n onFetchManagers();\n }\n }, [props]);\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n\n SpaceModel.onFetchChildren(\n props.spaceId,\n include,\n { page: 1, per: 10 },\n [\"active\", \"not_journey\"],\n (data) => {\n setSpaces(\n data.data.map((item) => ({ label: item.name, value: item.slug }))\n );\n },\n (data) => {}\n );\n };\n\n const onFetchManagers = () => {\n ManagerModel.onFetch(\n props.spaceId,\n { page: 1, per: 1000 },\n {},\n (data) => {\n const _managers = data.data.map((manager) => {\n return { label: manager.full_name, value: `${manager.user_id}` };\n });\n\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n const params = {\n ...form.values,\n };\n\n SurveyModel.onAddToSpace(\n props.survey.id,\n props.spaceId,\n params,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n onResetForm();\n },\n (data) => {}\n );\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"spaces_ids\", \"\");\n form.setFieldValue(\"user_id\", \"\");\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.survey.add.add.title\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n
onSave(values))}>\n \n \n {/**/}\n\n \n \n {t(\"spaces.settings.survey.add.add.spaces\")}\n \n \n ) : (\n \n )\n }\n {...form.getInputProps(\"spaces_ids\")}\n searchable\n mt={5}\n data={spaces}\n placeholder={t(\"spaces.settings.survey.add.add.placeholder1\")}\n maxDropdownHeight={400}\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n\n \n \n \n \n \n \n
\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Container, Button, useMantineTheme, ScrollArea } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\n\nimport CreateSurvey from \"./surveys/CreateSurvey\";\nimport ShowSurvey from \"./surveys/ShowSurvey\";\nimport SurveyItem from \"./surveys/SurveyItem\";\nimport PaymentSurveyItem from \"./surveys/PaymentSurveyItem\";\nimport AddToSpaces from \"./surveys/Add\";\n\nimport SurveyModel from \"../../../models/Survey\";\n\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nexport default function Surveys(props) {\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [surveys, setSurveys] = useState([]);\n const [createSurveyOpened, setCreateSurveyOpened] = useState(false);\n const [showSurveyOpened, setShowSurveyOpened] = useState(false);\n const [selectedSurvey, setSelectedSurvey] = useState(null);\n const [showAddToSpaces, setShowAddToSpaces] = useState(false);\n\n const [validateOpened, setValidateOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n\n if (props.scope == \"payment\") {\n setValidatePremium(\n space &&\n space.permissions &&\n space.permissions.can_set_flexible_payments\n );\n } else {\n setValidatePremium(\n space && space.permissions && space.permissions.can_survey\n );\n }\n }, [space]);\n\n useEffect(() => {\n if (space && createSurveyOpened && !validatePremium[0]) {\n setCreateSurveyOpened(false);\n setValidateOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (!createSurveyOpened) {\n setSelectedSurvey(null);\n if (space && space.slug) {\n onFetch();\n }\n }\n }, [createSurveyOpened]);\n\n const onFetch = () => {\n if (props.scope != \"payment\") {\n SurveyModel.onFetch(\n space.slug,\n { page: 1, per: 10000 },\n (data) => {\n setSurveys([...data.data]);\n },\n (data) => {}\n );\n } else {\n onFetchPayment();\n }\n };\n\n const onFetchPayment = () => {\n SurveyModel.onFetchPayment(\n space.slug,\n (data) => {\n setSurveys([...data.data]);\n },\n (data) => {}\n );\n };\n\n const onUpdateSurvey = (survey) => {\n onFetch();\n };\n\n const onEditSurvey = (survey) => {\n setSelectedSurvey(survey);\n setCreateSurveyOpened(survey);\n };\n\n const onSelectedSurvey = (survey) => {\n setSelectedSurvey(survey);\n setShowSurveyOpened(survey);\n };\n\n const onAddSurvey = (survey) => {\n setSelectedSurvey(survey);\n setShowAddToSpaces(survey);\n };\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n {props.scope != \"payment\" && (\n setCreateSurveyOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.surveys.createSurvey\")}\n \n }\n />\n )}\n {surveys.map((survey) => {\n return (\n <>\n {props.scope != \"payment\" ? (\n \n ) : (\n \n )}\n \n );\n })}\n \n \n \n \n \n \n );\n}\n","import React, { useEffect, useRef } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box\n} from '@mantine/core'\n\nimport Surveys from '../Surveys'\n\nexport default function Flexible(props) {\n const { t, i18n } = useTranslation();\n const frequency = useRef()\n\n // useEffect(() => {\n // return () => {\n // debugger\n // frequency.current = null\n // }\n // })\n\n useEffect(() => {\n if (props.settings){\n if (props.settings.payment_settings.default_payment_frequency != \"once\"){\n\n props.onUpdate({pod_payment_settings_attributes: {default_payment_frequency: \"once\"}, circle_payment: \"flexible\"})\n }\n\n }\n }, [props])\n\n return (\n \n \n {t(\"spaces.settings.payment.flexible.flexible.description\")}\n \n \n \n )\n}\n","import React from 'react';\nimport {\n Text,\n Box\n} from '@mantine/core'\n\nexport default function Continuously() {\n\n return (\n \n \n )\n}\n","import React, { useRef, useState, useEffect } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n createStyles,\n NumberInput,\n ActionIcon\n} from '@mantine/core'\n\nimport { Plus, Minus } from 'tabler-icons-react';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${theme.colorScheme === 'dark' ? 'transparent' : theme.colors.gray[3]}`,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.white,\n\n '&:focus-within': {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${theme.colorScheme === 'dark' ? 'transparent' : theme.colors.gray[3]}`,\n\n '&:disabled': {\n borderColor: theme.colorScheme === 'dark' ? 'transparent' : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: 'transparent',\n },\n },\n\n input: {\n textAlign: 'center',\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nexport default function NumberOfTimes(props) {\n\n const { classes } = useStyles();\n const handlers = useRef();\n const [value, setValue] = useState(1);\n const min = 1;\n const max = 10;\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n setValue(props.numberOfTimes ? props.numberOfTimes : 1)\n }, [props])\n\n return (\n \n\n \n {t(\"spaces.settings.payment.charging.NumberOfTimes.howManyTimes\")}\n \n\n
\n handlers.current.decrement()}\n disabled={value === min}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={value === max}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n\n
\n )\n}\n","import React from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box\n} from '@mantine/core'\n\nimport { DatePicker } from '@mantine/dates';\n\nexport default function UntilDate(props) {\n const { t, i18n } = useTranslation();\n return (\n \n \n {t(\"spaces.settings.payment.charging.UntilDate.pickDate\")}\n \n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n NativeSelect,\n Select,\n TextInput,\n Group,\n} from '@mantine/core'\n\nimport Fees from './Fees'\nimport Continuously from './charging/Continuously'\nimport NumberOfTimes from './charging/NumberOfTimes'\nimport UntilDate from './charging/UntilDate'\n\n\nconst data = [\n { value: 'usd', label: '🇺🇸 USD' },\n { value: 'eur', label: '🇪🇺 EUR' },\n { value: 'cad', label: '🇨🇦 CAD' },\n { value: 'aud', label: '🇦🇺 AUD' },\n { value: 'gbp', label: '🇬🇧 GBP' },\n { value: 'sek', label: '🇸🇪 SEK' },\n { value: 'mxn', label: '🇲🇽 MXN' },\n { value: 'inr', label: '🇮🇳 INR' },\n];\n\nconst frequency = [\n { value: 'per month', label: 'per month' },\n { value: 'per year', label: 'per year' }\n];\n\nconst chargeOptions = [\n { value: 'ongoing',\n label: 'Charge continuously',\n description: 'Members will be charged on every billing cycle until the subscription is cancelled'\n },\n { value: 'number_of_times',\n label: 'Charge number of times',\n description: 'Members will be charged on every billing cycle for a set number of times'\n },\n { value: 'until_date',\n label: 'Charge until date',\n description: 'Members will be charged on every billing cycle until a set date'\n }\n];\n\nexport default function Recurring(props) {\n\n const [subscriptionType, setSubscriptionType] = useState(\"ongoing\");\n const [currency, setCurrency] = useState(\"usd\");\n const [defaultPaymentAmount, setDefaultPaymentAmount] = useState();\n const [defaultPaymentFrequency, setDefaultPaymentFrequency] = useState('per month');\n const [untilDate, setUntilDate] = useState(\"\");\n const [numberOfTimes, setNumberOfTimes] = useState(1);\n const [disableActions, setDisableActions] = useState(false);\n const { t, i18n } = useTranslation();\n const propsLoaded = useRef()\n const defaultUpdated = useRef()\n const lastSpaceId = useRef();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false\n };\n }, []);\n\n useEffect(() => {\n if (props.settings){\n\n if (propsLoaded.current && props.settings.id == lastSpaceId.current && props.settings.payment_settings.default_payment_frequency != \"once\"){\n return\n }\n propsLoaded.current = false\n // setDisableActions(true)\n lastSpaceId.current = props.settings.id\n\n setCurrency(props.settings.payment_settings.currency)\n setDefaultPaymentAmount(props.settings.payment_settings.default_payment_amount)\n setDefaultPaymentFrequency(props.settings.payment_settings.default_payment_frequency == \"once\" ? \"per month\" : props.settings.payment_settings.default_payment_frequency)\n\n if ([\"ongoing\", \"number_of_times\", \"until_date\"].indexOf(props.settings.payment_settings.subscription_type) >= 0){\n setSubscriptionType(props.settings.payment_settings.subscription_type)\n }\n else{\n setSubscriptionType(\"ongoing\")\n }\n\n if (props.settings.payment_settings.until_date){\n setUntilDate(new Date(props.settings.payment_settings.until_date))\n }\n setNumberOfTimes(props.settings.payment_settings.number_of_times)\n\n\n setTimeout(() => {\n propsLoaded.current = true\n // setDisableActions(false)\n }, 500)\n\n if (props.settings.payment_settings.default_payment_frequency == \"once\" && !defaultUpdated.current){\n defaultUpdated.current = true\n props.onUpdate({pod_payment_settings_attributes: {default_payment_frequency: \"per month\", subscription_type: \"ongoing\"}})\n }\n }\n }, [props])\n\n useEffect(() => {\n if (propsLoaded.current && currency){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {currency: currency}})\n }\n }\n }, [currency])\n\n useEffect(() => {\n if (propsLoaded.current && defaultPaymentAmount){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {default_payment_amount: defaultPaymentAmount}})\n }\n }\n }, [defaultPaymentAmount])\n\n useEffect(() => {\n if (propsLoaded.current && defaultPaymentFrequency){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {default_payment_frequency: defaultPaymentFrequency}})\n }\n }\n }, [defaultPaymentFrequency])\n\n useEffect(() => {\n if (propsLoaded.current && untilDate){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {until_date: untilDate.toISOString()}})\n }\n }\n }, [untilDate])\n\n useEffect(() => {\n if (propsLoaded.current && numberOfTimes){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {number_of_times: numberOfTimes}})\n }\n }\n }, [numberOfTimes])\n\n useEffect(() => {\n if (propsLoaded.current && subscriptionType){\n if (props.updateAll){\n updateAll()\n }\n else{\n props.onUpdate({pod_payment_settings_attributes: {subscription_type: subscriptionType}})\n }\n }\n }, [subscriptionType])\n\n const updateAll = () => {\n props.onUpdate({\n pod_payment_settings_attributes: {\n currency: currency,\n default_payment_amount: defaultPaymentAmount,\n default_payment_frequency: defaultPaymentFrequency,\n until_date: untilDate ? untilDate.toISOString() : null,\n number_of_times: numberOfTimes,\n subscription_type: subscriptionType\n },\n circle_payment: \"recurring\"\n })\n }\n\n const displayChargeSelection = () => {\n if (subscriptionType == \"ongoing\") {\n return (\n \n )\n } else if (subscriptionType == \"number_of_times\") {\n return (\n \n )\n } else if (subscriptionType == \"until_date\") {\n return (\n \n )\n } else {\n return (\n \n )\n }\n }\n\n const SelectItem = (({ label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n )\n);\n\nreturn (\n \n \n {t(\"spaces.settings.payment.recurring.recurring.description1\")}\n \n\n \n setCurrency(event.currentTarget.value)}\n data={data}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n }}\n />\n\n setDefaultPaymentAmount(event.target.value)}\n type=\"number\"\n placeholder=\"1111\"\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n borderLeft: \"none\",\n borderRight: \"none\",\n },\n }}\n />\n\n setDefaultPaymentFrequency(event.currentTarget.value)}\n data={frequency}\n size=\"lg\"\n radius=\"md\"\n styles={{\n input: {\n fontWeight: 500,\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n }}\n />\n \n {props.settings && (\n \n )}\n\n \n {t(\"spaces.settings.payment.recurring.recurring.description2\")}\n \n\n \n\n {displayChargeSelection()}\n\n\n {/*\n \n { chargeOptions.map((option) => {\n return (\n \n )\n })}\n \n */}\n\n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n\n Group,\n Alert,\n SegmentedControl,\n Button,\n MantineProvider,\n Tooltip,\n Center\n} from '@mantine/core'\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { brands } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport Once from '../payment/Once'\nimport Flexible from '../payment/Flexible'\nimport Recurring from '../payment/Recurring'\n\nimport StripeModel from '../../../../models/Stripe'\nimport { colors } from \"../../../../collections/colors\";\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport Swal from 'sweetalert2'\n\nconst paymentOptions = [\n {\n label: 'One time',\n value: 'paid',\n description: 'Set a one time price',\n },\n\n {\n label: 'Flexible',\n value: 'flexible',\n description: 'Offer different payment levels or \"pay what you can\"',\n },\n {\n label: 'Recurring',\n value: 'recurring',\n description: 'Set a recurring subscription fee',\n }\n];\n\nexport default function Paid(props) {\n\n const [paymentSelection, setPaymentSelection] = useState();\n const propsLoaded = useRef()\n const lastSpaceId = useRef();\n const paymentOptionsList = useRef([...paymentOptions])\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false\n };\n }, []);\n\n useEffect(() => {\n if (props.settings){\n\n if (propsLoaded.current || props.settings.id == lastSpaceId.current){\n return\n }\n\n lastSpaceId.current = props.settings.id\n\n\n setTimeout(() => {\n propsLoaded.current = true\n }, 500)\n\n const excluded = []\n for (let i = 0; i < paymentOptionsList.current.length; i++) {\n let included = false\n for (let j = 0; j < props.options.length; j++) {\n if (paymentOptionsList.current[i].value == props.options[j]){\n included = true\n break\n }\n }\n if (!included){\n excluded.push(i)\n }\n }\n for (let i = 0; i < excluded.length; i++) {\n paymentOptionsList.current.splice(excluded[i], 1)\n }\n\n setTimeout(() => {\n setPaymentSelection(props.settings.circle_payment)\n }, 200)\n }\n }, [props])\n\n useEffect(() => {\n if (propsLoaded.current){\n props.onUpdate({circle_payment: paymentSelection})\n }\n }, [paymentSelection])\n\n const displayPaymentSelection = () => {\n if (paymentSelection == \"paid\") {\n return (\n \n )\n } else if (paymentSelection == \"flexible\") {\n return (\n \n )\n } else if (paymentSelection == \"recurring\") {\n return (\n \n )\n } else {\n return null\n }\n }\n\n const onConnect = () => {\n StripeModel.onConnect(props.space.id, (data) => {\n if (data.url){\n window.location.href= data.url\n }\n else{\n props.onRefresh()\n }\n }, (data) => {\n\n })\n }\n\n const onDisconnect = () => {\n\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You won't be able to collect any payments.\",\n showDenyButton: true,\n confirmButtonText: \"Yes, disconnect\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n\n StripeModel.onDisconnect(props.space.id, (data) => {\n props.onRefresh()\n }, (data) => {\n\n })\n\n } else if (result.isDenied) {\n\n }\n })\n }\n\n const onStripeAccount = () => {\n window.open(\"https://dashboard.stripe.com/settings/user\", \"_blank\")\n }\n\n const SelectItem = (({ label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n )\n);\n\nreturn (\n \n {props.settings && props.settings.can_accept_charges ? (\n <>\n \n\n ({\n backgroundColor: theme.colors.gray[2]\n })}\n />\n\n {displayPaymentSelection()}\n \n {props.showDisconnect && (\n
\n \n {t(\"spaces.settings.privacy.paid.paid.stripeConnected\")}\n \n onStripeAccount()}\n >\n {props.settings.payment_settings.stripe_user_id}\n \n \n   •  \n onDisconnect()}\n >\n {t(\"spaces.settings.privacy.paid.paid.disconnectButton\")}\n \n \n\n
\n )}\n \n ) : (\n
\n \n {t(\"spaces.settings.privacy.paid.paid.description\")}\n \n \n }\n // color=\"green\"\n radius=\"xl\"\n onClick={() => onConnect()}>\n {t(\"spaces.settings.privacy.paid.paid.connectButton\")}\n \n \n
\n )}\n
\n)\n\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Alert, Text, Textarea, Box, Checkbox, Button, Divider, MantineProvider } from \"@mantine/core\";\n\n\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport Payment from \"../privacy/Paid\";\nimport { AlertCircle } from 'tabler-icons-react';\n\nimport { useForm } from \"@mantine/form\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function InviteEmail(props) {\n const { t, i18n } = useTranslation();\n const [checked, setChecked] = useState(true);\n const [inviteSection, setInviteSection] = useState(\"email\");\n const [settings, setSettings] = useState({});\n const navigate = useNavigate();\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n if (props.settings) {\n setSettings({ ...props.settings });\n onUpdatePaymentFromProps(props.settings);\n }\n }, [props]);\n\n const form = useForm({\n initialValues: {\n add_people: \"\",\n message: \"\",\n notify_members: true,\n circle_payment: \"\",\n currency: \"\",\n payment_amount: \"\",\n payment_frequency: \"\",\n subscription_type: \"\",\n until_date: \"\",\n number_of_times: \"\",\n },\n\n validate: {\n add_people: (value) =>\n value.length > 0 && value.split(\",\").length > 0\n ? null\n : \"Add at least one person\",\n },\n });\n\n const onInvite = () => {\n InvitationModel.onCreate(\n form.values,\n space.slug,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n props.setRefresh(true);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const onUpdatePaymentFromProps = (params) => {\n if (!params.payment_settings) {\n return;\n }\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.payment_settings.currency) {\n form.setFieldValue(\"currency\", params.payment_settings.currency);\n }\n if (params.payment_settings.default_payment_amount) {\n form.setFieldValue(\n \"payment_amount\",\n params.payment_settings.default_payment_amount\n );\n }\n if (params.payment_settings.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.payment_settings.default_payment_frequency\n );\n }\n if (params.payment_settings.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.payment_settings.subscription_type\n );\n }\n if (params.payment_settings.until_date) {\n form.setFieldValue(\"until_date\", params.payment_settings.until_date);\n }\n if (params.payment_settings.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.payment_settings.number_of_times\n );\n }\n };\n\n const onUpdatePayment = (params) => {\n if (!params.pod_payment_settings_attributes) {\n return;\n }\n\n const auxSettings = { ...settings };\n\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.pod_payment_settings_attributes.currency) {\n form.setFieldValue(\n \"currency\",\n params.pod_payment_settings_attributes.currency\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_amount) {\n form.setFieldValue(\n \"payment_amount\",\n params.pod_payment_settings_attributes.default_payment_amount\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.pod_payment_settings_attributes.default_payment_frequency\n );\n }\n if (params.pod_payment_settings_attributes.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.pod_payment_settings_attributes.subscription_type\n );\n }\n if (params.pod_payment_settings_attributes.until_date) {\n form.setFieldValue(\n \"until_date\",\n params.pod_payment_settings_attributes.until_date\n );\n }\n if (params.pod_payment_settings_attributes.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.pod_payment_settings_attributes.number_of_times\n );\n }\n \n auxSettings.circle_payment = form.values.circle_payment;\n auxSettings.payment_settings.currency = form.values.currency;\n auxSettings.payment_settings.default_payment_amount =\n form.values.payment_amount;\n auxSettings.payment_settings.default_payment_frequency =\n form.values.payment_frequency;\n auxSettings.payment_settings.subscription_type =\n form.values.subscription_type;\n auxSettings.payment_settings.until_date = form.values.until_date;\n auxSettings.payment_settings.number_of_times = form.values.number_of_times;\n setSettings(auxSettings);\n };\n\n return (\n \n
onInvite(values))}>\n \n \n\n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n {settings && settings.can_accept_charges && settings.is_paid && (\n \n )}\n {space.slug && space.permissions.can_send_email_invites[0] ? (\n \n ) : (\n }\n color=\"green\"\n radius=\"md\"\n mt={15}\n >\n \n {t(\"spaces.settings.members.inviteEmail.invite.alertMessage\")}\n \n \n \n {t(\"spaces.settings.members.inviteEmail.invite.alertbutton\")}\n \n \n \n )}\n ({\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n })}\n >\n {t(\"spaces.settings.members.inviteEmail.invite.button\")}\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n Button,\n Divider,\n MultiSelect,\n Checkbox,\n Alert,\n MantineProvider,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport Payment from \"../privacy/Paid\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nimport Swal from \"sweetalert2\";\n\nimport { AlertCircle } from \"tabler-icons-react\";\n\nimport { Link } from \"react-router-dom\";\n\nexport default function InvitePeople(props) {\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.space);\n const [selectedSpaces, setSelectedSpaces] = useState([]);\n const [selectedActiveMembers, setSelectedActiveMembers] = useState([]);\n const [selectedPendingMembers, setSelectedPendingMembers] = useState([]);\n const [activeMembers, setActiveMembers] = useState([]);\n const [pendingMembers, setPendingMembers] = useState([]);\n const [spaces, setSpaces] = useState([]);\n const [checked, setChecked] = useState(true);\n const [allowCopySpaces, setAllowCopySpaces] = useState(false);\n const [allowCopyActiveMembers, setCopyAllowActiveMembers] = useState(false);\n const [allowCopyPendingMembers, setCopyAllowCopyPendingMembers] =\n useState(false);\n\n const [settings, setSettings] = useState({});\n\n const form = useForm({\n initialValues: {\n add_people: \"\",\n message: \"\",\n notify_members: true,\n circle_payment: \"\",\n currency: \"\",\n payment_amount: \"\",\n payment_frequency: \"\",\n subscription_type: \"\",\n until_date: \"\",\n number_of_times: \"\",\n },\n });\n\n useEffect(() => {\n setAllowCopySpaces(props.allowCopySpaces);\n setCopyAllowActiveMembers(props.allowCopyActiveMembers);\n setCopyAllowCopyPendingMembers(props.allowCopyPendingMembers);\n\n setSpaces(props.spaces);\n setActiveMembers(props.activeMembers);\n setPendingMembers(props.pendingMembers);\n\n if (props.settings) {\n setSettings({ ...props.settings });\n onUpdatePaymentFromProps(props.settings.payment_settings);\n }\n }, [props]);\n\n const getOnlyMembers = (array) => {\n return array.filter((value) => value.indexOf(\"SPACE-\") < 0);\n };\n\n const getOnlySpaces = (array) => {\n return array\n .filter((value) => value.indexOf(\"SPACE\") >= 0)\n .map((value) => value.replace(\"SPACE-\", \"\"));\n };\n\n const onInvite = () => {\n const params = {\n copy_members_from: selectedSpaces ? selectedSpaces.join(\",\") : \"\",\n active_members: getOnlyMembers([...selectedActiveMembers]).join(\",\"),\n pending_members: getOnlyMembers([...selectedPendingMembers]).join(\",\"),\n active_all: getOnlySpaces([...selectedActiveMembers]).join(\",\"),\n pending_all: getOnlySpaces([...selectedPendingMembers]).join(\",\"),\n notify_members: form.values.notify_members,\n };\n\n InvitationModel.onCreate(\n params,\n space.slug,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n props.setRefresh(true);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const onUpdatePaymentFromProps = (params) => {\n if (!params.payment_settings) {\n return;\n }\n\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.payment_settings.default_payment_amount) {\n form.setFieldValue(\n \"payment_amount\",\n params.payment_settings.default_payment_amount\n );\n }\n if (params.payment_settings.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.payment_settings.default_payment_frequency\n );\n }\n if (params.payment_settings.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.payment_settings.subscription_type\n );\n }\n if (params.payment_settings.until_date) {\n form.setFieldValue(\"until_date\", params.payment_settings.until_date);\n }\n if (params.payment_settings.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.payment_settings.number_of_times\n );\n }\n };\n\n const onUpdatePayment = (params) => {\n if (!params.pod_payment_settings_attributes) {\n return;\n }\n\n const auxSettings = { ...settings };\n\n if (params.circle_payment) {\n form.setFieldValue(\"circle_payment\", params.circle_payment);\n }\n if (params.pod_payment_settings_attributes.default_payment_amount) {\n form.setFieldValue(\n \"payment_amount\",\n params.pod_payment_settings_attributes.default_payment_amount\n );\n }\n if (params.pod_payment_settings_attributes.default_payment_frequency) {\n form.setFieldValue(\n \"payment_frequency\",\n params.pod_payment_settings_attributes.default_payment_frequency\n );\n }\n if (params.pod_payment_settings_attributes.subscription_type) {\n form.setFieldValue(\n \"subscription_type\",\n params.pod_payment_settings_attributes.subscription_type\n );\n }\n if (params.pod_payment_settings_attributes.until_date) {\n form.setFieldValue(\n \"until_date\",\n params.pod_payment_settings_attributes.until_date\n );\n }\n if (params.pod_payment_settings_attributes.number_of_times) {\n form.setFieldValue(\n \"number_of_times\",\n params.pod_payment_settings_attributes.number_of_times\n );\n }\n\n auxSettings.circle_payment = form.values.circle_payment;\n auxSettings.payment_settings.currency = form.values.currency;\n auxSettings.payment_settings.default_payment_amount =\n form.values.payment_amount;\n auxSettings.payment_settings.default_payment_frequency =\n form.values.payment_frequency;\n auxSettings.payment_settings.subscription_type =\n form.values.subscription_type;\n auxSettings.payment_settings.until_date = form.values.until_date;\n auxSettings.payment_settings.number_of_times = form.values.number_of_times;\n setSettings(auxSettings);\n };\n\n return (\n \n {allowCopySpaces || allowCopyActiveMembers || allowCopyPendingMembers ? (\n
onInvite(values))}>\n {allowCopySpaces ? (\n <>\n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.copyMembers\"\n )}\n \n \n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n ) : (\n \"\"\n )}\n {allowCopyActiveMembers ? (\n <>\n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.addActiveMembers\"\n )}\n \n \n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n ) : (\n \"\"\n )}\n {allowCopyPendingMembers ? (\n <>\n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.addPendingMembers\"\n )}\n \n \n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n ) : (\n \"\"\n )}\n {settings && settings.can_accept_charges && settings.is_paid && (\n \n )}\n\n {space.slug && space.permissions.can_send_email_invites[0] ? (\n \n ) : (\n }\n color=\"green\"\n radius=\"md\"\n mt={15}\n >\n \n {t(\"spaces.settings.members.inviteExisting.invite.alert\")}\n \n \n \n {t(\n \"spaces.settings.members.inviteExisting.invite.alertButton\"\n )}\n \n \n \n )}\n ({\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n })}\n >\n {t(\"spaces.settings.members.inviteExisting.invite.button\")}\n \n \n ) : (\n \n {t(\"`spaces.settings.members.inviteExisting.invite.thisOption`\")}\n \n )}\n
\n );\n}\n","import React, { useState } from 'react';\n\nimport {\n Text,\n Textarea,\n Box,\n Button,\n Divider\n} from '@mantine/core';\n\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport Swal from 'sweetalert2'\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nexport default function InvitePeople(props) {\n\n const { t, i18n } = useTranslation();\n\n const space = useSelector(state => state.space);\n\n const onCopy = () => {\n Swal.fire(\"Done\", \"Text copied to clipboard\", \"success\")\n }\n\n return (\n \n {/* if space is top level open or paid, or public open or paid */}\n {props.settings && !props.settings.is_private_one_level ? (\n <>\n \n {t(\"spaces.settings.members.inviteLink.invite.shareLinkText\")}\n \n\n ({\n marginTop: 15,\n backgroundColor: theme.colors.gray[1],\n color: theme.colors.dark[4],\n borderRadius: \"5px\",\n padding: \"8px 15px\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[2],\n cursor: \"pointer\"\n }\n })}\n >\n onCopy()}\n text={`https://sutra.co/space/${space.slug}/register`}>\n \n {`https://sutra.co/space/${space.slug}/register`}\n \n \n \n \n ) : (\n \n {t(\"spaces.settings.members.inviteLink.invite.youCannotShare\")}\n \n )}\n\n \n )\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, SegmentedControl, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useSelector } from \"react-redux\";\n\nimport InviteEmail from \"./InviteEmail\";\nimport InviteExisting from \"./InviteExisting\";\nimport InviteLink from \"./InviteLink\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\nimport MemberModel from \"../../../../models/Member\";\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function InvitePeople(props) {\n const { t, i18n } = useTranslation();\n const [checked, setChecked] = useState(true);\n const [inviteSection, setInviteSection] = useState(\"inviteEmail\");\n\n const space = useSelector((state) => state.space);\n\n const [settings, setSettings] = useState();\n const [spaces, setSpaces] = useState([]);\n const [activeMembers, setActiveMembers] = useState([]);\n const [pendingMembers, setPendingMembers] = useState([]);\n const [allowCopySpaces, setAllowCopySpaces] = useState(false);\n const [allowCopyActiveMembers, setCopyAllowActiveMembers] = useState(false);\n const [allowCopyPendingMembers, setCopyAllowCopyPendingMembers] =\n useState(false);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetchMembersToCopy();\n onFetchSettings();\n }\n }, [space]);\n\n useEffect(() => {\n if (props && space && space.slug && props.opened) {\n onFetchSettings();\n }\n }, [props]);\n\n const form = useForm({\n initialValues: {\n add_people: \"\",\n message: \"\",\n notify_members: true,\n },\n\n validate: {\n add_people: (value) =>\n value.length > 0 && value.split(\",\").length > 0\n ? null\n : \"Add at least one person\",\n },\n });\n\n const onInvite = () => {\n InvitationModel.onCreate(\n form.values,\n space.slug,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const displayInviteSection = () => {\n if (inviteSection == \"inviteEmail\") {\n return (\n \n );\n } else if (inviteSection == \"inviteExisting\") {\n return (\n \n );\n } else if (inviteSection == \"invitelink\") {\n return ;\n } else {\n return (\n \n );\n }\n };\n\n const onFetchSettings = () => {\n SpaceSettingModel.onFetch(\n space.slug,\n (data) => {\n setSettings({\n ...data.space,\n settings: { ...data.settings },\n payment_settings: { ...data.payment_settings },\n });\n },\n (data) => {}\n );\n };\n\n const onFetchMembersToCopy = (tree, _spaces = []) => {\n MemberModel.onFetchMembersToCopy(\n space.slug,\n (data) => {\n setAllowCopySpaces(data.spaces.allowed);\n setSpaces(data.spaces.data);\n setCopyAllowActiveMembers(data.active.allowed);\n setActiveMembers(data.active.data);\n setCopyAllowCopyPendingMembers(data.pending.allowed);\n setPendingMembers(data.pending.data);\n },\n (data) => {\n setAllowCopySpaces(false);\n setCopyAllowActiveMembers(false);\n setCopyAllowCopyPendingMembers(false);\n }\n );\n };\n\n const getInviteOptions = () => {\n if (allowCopySpaces || allowCopyActiveMembers || allowCopyPendingMembers) {\n return [\n { label: \"Send email\", value: \"inviteEmail\" },\n { label: \"Add existing members\", value: \"inviteExisting\" },\n { label: \"Share link\", value: \"invitelink\" },\n ];\n } else {\n return [\n { label: \"Send email\", value: \"inviteEmail\" },\n { label: \"Share link\", value: \"invitelink\" },\n ];\n }\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.members.invitePeople.invite.invitePeople\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n setInviteSection(value)}\n data={getInviteOptions()}\n />\n\n {displayInviteSection()}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Text, Switch, Group, Box, createStyles } from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n}));\n\nexport default function Scheduling(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n\n const [showStartDate, setShowStartDate] = useState(false);\n const [startDate, setStartDate] = useState(\"\");\n const [startTime, setStartTime] = useState(\"\");\n const [endDate, setEndDate] = useState(\"\");\n const [endTime, setEndTime] = useState(\"\");\n\n const [showLaunchDate, setShowLaunchDate] = useState(false);\n const [launchDate, setLaunchDate] = useState(\"\");\n const [launchTime, setLaunchTime] = useState(\"\");\n\n const [showArchiveDate, setShowArchiveDate] = useState(false);\n const [archiveDate, setArchiveDate] = useState(\"\");\n const [archiveTime, setArchiveTime] = useState(\"\");\n\n const [showReadonlyDate, setShowReadonlyDate] = useState(false);\n const [readonlyDate, setReadonlyDate] = useState(\"\");\n const [readonlyTime, setReadonlyTime] = useState(\"\");\n const [disableActions, setDisableActions] = useState(false);\n\n const [opened, setOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!props.settings) {\n return;\n }\n\n if (propsLoaded.current && props.settings.id == lastSpaceId.current) {\n return;\n }\n propsLoaded.current = false;\n // setDisableActions(true);\n lastSpaceId.current = props.settings.id;\n\n setShowStartDate(props.settings.show_start_date);\n if (props.settings.start_date) {\n setStartDate(new Date(props.settings.start_date));\n setStartTime(new Date(props.settings.start_date));\n }\n if (props.settings.end_date) {\n setEndDate(new Date(props.settings.end_date));\n setEndTime(new Date(props.settings.end_date));\n }\n\n setShowLaunchDate(props.settings.launch_on_date);\n if (props.settings.launch_time) {\n setLaunchDate(new Date(props.settings.launch_time));\n setLaunchTime(new Date(props.settings.launch_time));\n }\n\n setShowArchiveDate(props.settings.archive_on_date);\n if (props.settings.archive_time) {\n setArchiveDate(new Date(props.settings.archive_time));\n setArchiveTime(new Date(props.settings.archive_time));\n }\n\n setShowReadonlyDate(props.settings.readonly_on_date);\n if (props.settings.readonly_time) {\n setReadonlyDate(new Date(props.settings.readonly_time));\n setReadonlyTime(new Date(props.settings.readonly_time));\n }\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 500);\n }, [props]);\n\n useEffect(() => {\n setValidatePremium(\n space && space.permissions && space.permissions.can_schedule_states\n );\n }, [space]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { show_start_date: showStartDate },\n });\n }\n }, [showStartDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n start_date: mergeDateAndTime(startDate, startTime),\n },\n });\n }\n }, [startDate, startTime]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n end_date: mergeDateAndTime(endDate, endTime),\n },\n });\n }\n }, [endDate, endTime]);\n\n useEffect(() => {\n if (showLaunchDate && !validatePremium[0] && propsLoaded.current) {\n setShowLaunchDate(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { launch_on_date: showLaunchDate },\n });\n }\n }, [showLaunchDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n launch_time: mergeDateAndTime(launchDate, launchTime),\n launch_on_date: showLaunchDate,\n },\n });\n }\n }, [launchDate, launchTime]);\n\n useEffect(() => {\n if (showArchiveDate && !validatePremium[0] && propsLoaded.current) {\n setShowArchiveDate(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { archive_on_date: showArchiveDate },\n });\n }\n }, [showArchiveDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n archive_time: mergeDateAndTime(archiveDate, archiveTime),\n archive_on_date: showLaunchDate,\n },\n });\n }\n }, [archiveDate, archiveTime]);\n\n useEffect(() => {\n if (showReadonlyDate && !validatePremium[0] && propsLoaded.current) {\n setShowReadonlyDate(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { readonly_on_date: showReadonlyDate },\n });\n }\n }, [showReadonlyDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n readonly_time: mergeDateAndTime(readonlyDate, readonlyTime),\n readonly_on_date: showReadonlyDate,\n },\n });\n }\n }, [readonlyDate, readonlyTime]);\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n return (\n \n \n \n
\n \n {t(\"spaces.settings.main.scheduling.showStartDate.description1\")}\n \n \n {t(\"spaces.settings.main.scheduling.showStartDate.description2\")}\n \n
\n setShowStartDate(event.currentTarget.checked)}\n />\n
\n {showStartDate ? (\n \n \n \n {t(\"spaces.settings.main.scheduling.startDateTime.title\")}\n \n \n setStartDate(date)}\n />\n setStartTime(time)}\n />\n \n \n \n \n {t(\"spaces.settings.main.scheduling.endDateTime.title\")}\n \n \n setEndDate(date)}\n minDate={startDate ? startDate : null}\n />\n setEndTime(time)}\n />\n \n \n \n ) : (\n \"\"\n )}\n
\n\n \n \n
\n \n {t(\"spaces.settings.main.scheduling.showLaunchDate.description1\")}\n \n \n {t(\"spaces.settings.main.scheduling.showLaunchDate.description2\")}\n \n
\n setShowLaunchDate(event.currentTarget.checked)}\n />\n
\n {showLaunchDate ? (\n \n setLaunchDate(date)}\n />\n setLaunchTime(time)}\n />\n \n ) : (\n \"\"\n )}\n
\n\n \n \n
\n \n {t(\n \"spaces.settings.main.scheduling.showArchiveDate.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.scheduling.showArchiveDate.description2\"\n )}\n \n
\n \n setShowArchiveDate(event.currentTarget.checked)\n }\n />\n
\n {showArchiveDate ? (\n \n setArchiveDate(date)}\n />\n setArchiveTime(time)}\n />\n \n ) : (\n \"\"\n )}\n
\n\n \n \n
\n \n {t(\n \"spaces.settings.main.scheduling.showReadonlyDate.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.scheduling.showReadonlyDate.description2\"\n )}\n \n
\n \n setShowReadonlyDate(event.currentTarget.checked)\n }\n />\n
\n {showReadonlyDate ? (\n \n setReadonlyDate(date)}\n />\n setReadonlyTime(time)}\n />\n \n ) : (\n \"\"\n )}\n
\n \n
\n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport {\n Select,\n Text,\n Switch,\n Group,\n MultiSelect,\n Box,\n ActionIcon,\n NumberInput,\n createStyles,\n Loader,\n} from \"@mantine/core\";\n\nimport { Plus, Minus } from \"tabler-icons-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Swal from \"sweetalert2\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n textAlign: \"center\",\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nconst podSizeMin = 0;\nconst podSizeMax = 1000;\n\nexport default function Additional(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n\n const [spaces, setSpaces] = useState([]);\n const [children, setChildren] = useState([]);\n const [resourceEditing, setResourceEditing] = useState(false);\n const [circleCreation, setCircleCreation] = useState(false);\n const [circleCreationTypes, setCircleCreationTypes] = useState([]);\n const [allowMemberCopy, setAllowMemberCopy] = useState(false);\n const [podType, setPodType] = useState(false);\n const [allowReflections, setAllowReflections] = useState(false);\n const [showMembers, setShowMembers] = useState(false);\n const [hideMemberEmails, setHideMemberEmails] = useState(false);\n const [newMemberNotifications, setNewMemberNotifications] = useState(false);\n const [parentCircles, setParentCircles] = useState([]);\n const [podSize, setPodSize] = useState(false);\n const [podSizeValue, setPodSizeValue] = useState(0);\n const [sidebarDefaultOpened, setSidebarDefaultOpened] = useState(false);\n const [sidebarHideChildren, setSidebarHideChildren] = useState(false);\n const [allowCompletions, setAllowCompletions] = useState(false);\n const [showMarkCompleteButtonInHeader, setShowMarkCompleteButtonInHeader] =\n useState(false);\n const [disableActions, setDisableActions] = useState(false);\n const [searching, setSearching] = useState(false);\n const [searching2, setSearching2] = useState(false);\n const [redirectToSpace, setRedirectToSpace] = useState(\"\");\n\n const [canActivateCompletions, setCanActivateCompletions] = useState(false);\n const [opened, setOpened] = useState(false);\n\n const handlers = useRef();\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n const searchTimeoutId = useRef();\n const selectedParents = useRef([]);\n const originalParents = useRef([]);\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!props.settings) {\n return;\n }\n if (propsLoaded.current && props.settings.id == lastSpaceId.current) {\n return;\n }\n propsLoaded.current = false;\n // setDisableActions(true);\n lastSpaceId.current = props.settings.id;\n\n setResourceEditing(props.settings.resource_editing == \"open\");\n setCircleCreation(props.settings.circle_creation ? true : false);\n setCircleCreationTypes(\n props.settings.circle_creation\n ? props.settings.circle_creation.split(\",\")\n : []\n );\n\n setShowMembers(props.settings.show_members);\n setHideMemberEmails(props.settings.settings.hide_member_emails);\n\n setAllowMemberCopy(props.settings.settings.allow_member_copy);\n setPodType(props.settings.pod_type == \"standard\" ? true : false);\n setAllowReflections(props.settings.allow_reflections);\n\n setSpaces([...props.settings.parents]);\n selectedParents.current = [...props.settings.parents];\n originalParents.current = [...props.settings.parents];\n\n\n setNewMemberNotifications(\n props.settings.settings.new_member_notifications == \"manager\"\n );\n setPodSize(props.settings.size ? true : false);\n setPodSizeValue(props.settings.size);\n setParentCircles(props.settings.parents_slugs);\n setSidebarDefaultOpened(props.settings.settings.sidebar_default_opened);\n setSidebarHideChildren(props.settings.settings.sidebar_hide_children);\n setAllowCompletions(props.settings.settings.allow_completions);\n setShowMarkCompleteButtonInHeader(\n props.settings.settings.show_mark_complete_button_in_header\n );\n setRedirectToSpace(props.settings.settings.redirect_to_space);\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n }, [props]);\n\n useEffect(() => {\n setCanActivateCompletions(\n space && space.permissions && space.permissions.can_activate_completions\n );\n }, [space]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({ resource_editing: resourceEditing ? \"open\" : \"closed\" });\n }\n }, [resourceEditing]);\n\n useEffect(() => {\n if (propsLoaded.current && !circleCreation) {\n props.onUpdate({ circle_creation: \"\" });\n }\n }, [circleCreation]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({ circle_creation: circleCreationTypes.join(\",\") });\n }\n }, [circleCreationTypes]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { allow_member_copy: allowMemberCopy },\n });\n }\n }, [allowMemberCopy]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({ pod_type: podType ? \"standard\" : \"readonly\" });\n }\n }, [podType]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({ allow_reflections: allowReflections });\n }\n }, [allowReflections]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({ show_members: showMembers });\n }\n }, [showMembers]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { hide_member_emails: hideMemberEmails },\n });\n }\n }, [hideMemberEmails]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n new_member_notifications: newMemberNotifications ? \"manager\" : \"none\",\n },\n });\n }\n }, [newMemberNotifications]);\n\n useEffect(() => {\n if (propsLoaded.current && !podSize) {\n props.onUpdate({ size: null });\n }\n }, [podSize]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({ size: podSizeValue });\n }\n }, [podSizeValue]);\n\n useEffect(() => {\n const originalParentsSlugs = originalParents.current.map(item => item.value)\n if (propsLoaded.current && !arraysAreEqual(parentCircles, originalParentsSlugs)) {\n\n let message = `This space will become a child of:

${selectedParents.current.map(item => `${item.label}`).join(\"

\")}

`\n\n if (selectedParents.current.length == 0){\n message = \"This action will make this space a top level space\"\n }\n\n Swal.fire({\n title: \"Are you sure?\",\n html: message,\n showDenyButton: true,\n confirmButtonText: \"Yes, update\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: colors.blue,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n props.onUpdate({ parent_circles: parentCircles });\n originalParents.current = [...selectedParents.current]\n } else {\n setParentCircles(originalParentsSlugs)\n selectedParents.current = [...originalParents.current]\n }\n });\n\n\n }\n }, [parentCircles]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n sidebar_default_opened: sidebarDefaultOpened,\n },\n });\n }\n }, [sidebarDefaultOpened]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { sidebar_hide_children: sidebarHideChildren },\n });\n }\n }, [sidebarHideChildren]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { redirect_to_space: redirectToSpace },\n });\n }\n }, [redirectToSpace]);\n\n useEffect(() => {\n if (allowCompletions && !canActivateCompletions[0] && propsLoaded.current) {\n setAllowCompletions(false);\n setOpened([true, canActivateCompletions[1], canActivateCompletions[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { allow_completions: allowCompletions },\n });\n }\n }, [allowCompletions]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: {\n show_mark_complete_button_in_header: showMarkCompleteButtonInHeader,\n },\n });\n }\n }, [showMarkCompleteButtonInHeader]);\n\n const arraysAreEqual = (arr1, arr2) => {\n if (arr1.length !== arr2.length) {\n return false; // If the arrays have different lengths, they can't be the same.\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false; // If any elements don't match, the arrays are not equal.\n }\n }\n\n return true; // If no mismatches are found, the arrays are equal.\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onSearchChildren = (query) => {\n setSearching2(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchChildren(query);\n setSearching2(false);\n }, 1000);\n };\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n SpaceModel.onFetchManaged(\n space.slug,\n include,\n { page: 1, per: 10 },\n (data) => {\n const _spaces = [...selectedParents.current];\n for (let i = 0; i < data.length; i++) {\n _spaces.push({\n value: data[i].slug,\n label: `${data[i].name} (${data[i].slug})`,\n });\n }\n setSpaces(_spaces);\n },\n (data) => {}\n );\n };\n\n const onFetchChildren = (query = null) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchDirectChildren(\n space.slug,\n [\"order=pods.created_at DESC\", \"abstract\"],\n { page: 1, per: 10 },\n [\"active\"],\n (data) => {\n const _spaces = [...selectedParents.current];\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({\n value: data.data[i].slug,\n label: `${data.data[i].name} (${data.data[i].slug})`,\n });\n }\n setChildren(_spaces);\n },\n (data) => {},\n ctrl.signal\n );\n };\n\n const onSelectedParents = (selection) => {\n setParentCircles(selection);\n selectedParents.current = [];\n for (let i = 0; i < spaces.length; i++) {\n if (selection.indexOf(spaces[i].value) >= 0) {\n selectedParents.current.push(spaces[i]);\n }\n }\n };\n\n return (\n \n {space && space.slug && space.version == \"content\" && (\n \n
\n \n {t(\"spaces.settings.main.additional.allowMembersEdit\")}\n \n \n {t(\"spaces.settings.main.additional.membersWillAddContent\")}\n \n
\n \n setResourceEditing(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && space.version == \"list\" && (\n \n
\n \n {t(\"spaces.settings.main.additional.allowMembersCreatePosts\")}\n \n \n {t(\"spaces.settings.main.additional.membersWillCreatePosts\")}\n \n
\n \n setResourceEditing(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && space.version == \"events\" && (\n \n
\n \n {t(\"spaces.settings.main.additional.allowMembersCreateEvents\")}\n \n \n {t(\"spaces.settings.main.additional.membersWillCreateEvents\")}\n \n
\n \n setResourceEditing(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && space.version == \"content\" && false && (\n \n \n
\n \n {t(\n \"spaces.settings.main.additional.allowMembersCreateSubspaces\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.membersWillCreateSubspaces\"\n )}\n \n
\n \n setCircleCreation(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n {circleCreation && (\n \n \n \n {t(\"spaces.settings.main.additional.membersCanCreate\")}:\n \n setCircleCreationTypes(selection)}\n />\n \n\n \n
\n \n {t(\n \"spaces.settings.main.additional.allowMembersToCopy.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.allowMembersToCopy.description2\"\n )}\n \n
\n \n setAllowMemberCopy(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n
\n )}\n
\n )}\n {space && space.slug && space.version == \"discussion\" && (\n \n
\n \n {t(\"spaces.settings.main.additional.podType.description1\")}\n \n \n {t(\"spaces.settings.main.additional.podType.description2\")}\n \n
\n setPodType(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && space.version == \"discussion\" && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.allowReflections.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.allowReflections.description2\"\n )}\n \n
\n \n setAllowReflections(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n \n \n
\n \n {t(\"spaces.settings.main.additional.showMembers.description1\")}\n \n \n {t(\"spaces.settings.main.additional.showMembers.description2\")}\n \n
\n setShowMembers(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n {showMembers ? (\n \n \n
\n \n {t(\n \"spaces.settings.main.additional.hideMmemberEmails.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.hideMmemberEmails.description2\"\n )}\n \n
\n \n setHideMemberEmails(!event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n
\n ) : (\n \"\"\n )}\n
\n \n
\n \n {t(\n \"spaces.settings.main.additional.newMemberNotifications.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.newMemberNotifications.description2\"\n )}\n \n
\n \n setNewMemberNotifications(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n \n \n
\n \n {t(\"spaces.settings.main.additional.podSize.description1\")}\n \n \n {t(\"spaces.settings.main.additional.podSize.description2\")}\n \n
\n setPodSize(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n {podSize ? (\n \n \n {t(\"spaces.settings.main.additional.podSizeValue.description\")}\n \n
\n handlers.current.decrement()}\n disabled={podSizeValue === podSizeMin}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={podSizeValue === podSizeMax}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n
\n ) : (\n \"\"\n )}\n
\n {space &&\n space.slug &&\n space.version == \"content\" &&\n !space.permissions.is_top_level && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.sidebarDefaultOpened.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.sidebarDefaultOpened.description2\"\n )}\n \n
\n \n setSidebarDefaultOpened(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space &&\n space.slug &&\n (space.version == \"content\" ||\n space.version == \"list\" ||\n space.version == \"events\") &&\n !space.permissions.is_top_level && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.sidebarHideChildren.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.sidebarHideChildren.description2\"\n )}\n \n
\n \n setSidebarHideChildren(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && !space.permissions.is_top_level && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.allowCompletions.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.allowCompletions.description2\"\n )}\n \n
\n \n setAllowCompletions(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space &&\n space.slug &&\n !space.permissions.is_top_level &&\n allowCompletions && (\n \n
\n \n {\"Show mark complete button in header\"}\n \n \n {\n \"The mark complete button will be visible from the header for all members\"\n }\n \n
\n \n setShowMarkCompleteButtonInHeader(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n\n \n \n {t(\"spaces.settings.main.additional.redirectToSubspace.description1\")}\n \n \n {t(\"spaces.settings.main.additional.redirectToSubspace.description2\")}\n \n \n ) : (\n \n )\n }\n disabled={disableActions}\n searchable\n clearable\n limit={100}\n mt={5}\n data={children}\n onChange={setRedirectToSpace}\n placeholder={t(\n \"spaces.settings.main.additional.parentCircles.placeholder\"\n )}\n value={redirectToSpace}\n onSearchChange={(query) => onSearchChildren(query)}\n />\n \n\n \n \n {t(\"spaces.settings.main.additional.parentCircles.description1\")}\n \n \n ) : (\n \n )\n }\n disabled={disableActions}\n searchable\n limit={100}\n mt={5}\n data={spaces}\n onChange={(selection) => onSelectedParents(selection)}\n placeholder={t(\n \"spaces.settings.main.additional.parentCircles.placeholder\"\n )}\n value={parentCircles}\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n \n
\n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n createStyles,\n TextInput,\n Textarea,\n Progress,\n Button,\n Image,\n} from \"@mantine/core\";\n\nimport Uploady, {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n width: \"100%\",\n },\n}));\n\nconst podSizeMin = 0;\nconst podSizeMax = 1000;\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data);\n });\n\n return progress > 0 && progress < 100 ? : \"\";\n};\n\nconst CustomUploadButton = asUploadButton((props) => {\n const { t, i18n } = useTranslation();\n return (\n \n Select image\n \n );\n});\n\nexport default function Seo(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n\n const [metaTitle, setMetaTitle] = useState(\"\");\n const [metaDescription, setMetaDescription] = useState(\"\");\n const [metaImage, setMetaImage] = useState(\"\");\n const [disableActions, setDisableActions] = useState(\"\");\n\n const handlers = useRef();\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!props.settings) {\n return;\n }\n if (propsLoaded.current && props.settings.id == lastSpaceId.current) {\n return;\n }\n\n propsLoaded.current = false;\n // setDisableActions(true);\n lastSpaceId.current = props.settings.id;\n\n setMetaTitle(props.settings.settings.meta_title);\n setMetaDescription(props.settings.settings.meta_description);\n setMetaImage(props.settings.settings.meta_image);\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n }, [props]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({ pod_settings_attributes: { meta_title: metaTitle } });\n }\n }, [metaTitle]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n props.onUpdate({\n pod_settings_attributes: { meta_description: metaDescription },\n });\n }\n }, [metaDescription]);\n\n const onImageUploaded = (data) => {\n setMetaImage(data.url);\n };\n\n return (\n \n \n {t(\"spaces.settings.main.seo.title.title\")}\n \n {t(\"spaces.settings.main.seo.title.description\")}\n \n setMetaTitle(event.currentTarget.value)}\n />\n \n\n \n {t(\"spaces.settings.main.seo.description.title\")}\n \n {t(\"spaces.settings.main.seo.description.description\")}\n \n setMetaDescription(event.currentTarget.value)}\n />\n \n {props.settings && props.settings.id && props.settings.settings && (\n \n {t(\"spaces.settings.main.seo.image.title\")}\n \n {t(\"spaces.settings.main.seo.image.description\")}\n \n {metaImage && (\n \n )}\n \n \n \n \n \n )}\n \n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n createStyles,\n TextInput,\n Group,\n NativeSelect,\n Button,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n // borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n}));\n\nconst providersData = [\n {\n value: \"facebook-pixel\",\n label: \"Facebook pixel\",\n placeholder: \"Facebook pixel ID\",\n },\n {\n value: \"google-analytics\",\n label: \"Google Analytics\",\n placeholder: \"Tracking ID (UA-XXXXXXXX-X)\",\n },\n];\n\nexport default function Seo(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const [disableActions, setDisableActions] = useState(\"\");\n const [scripts, setScripts] = useState([]);\n\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n const saveTimeout = useRef();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!props.settings) {\n return;\n }\n if (propsLoaded.current && props.settings.id == lastSpaceId.current) {\n return;\n }\n\n propsLoaded.current = false;\n // setDisableActions(true);\n lastSpaceId.current = props.settings.id;\n\n //Update states\n setScripts(\n props.settings.settings.third_party_scripts\n ? props.settings.settings.third_party_scripts\n : []\n );\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n }, [props]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n if (saveTimeout.current) {\n clearTimeout(saveTimeout.current);\n }\n\n saveTimeout.current = setTimeout(() => {\n props.onUpdate({\n pod_settings_attributes: { third_party_scripts: scripts },\n });\n }, 2000);\n }\n }, [scripts]);\n\n const onAddScript = () => {\n const newScripts = [...scripts];\n newScripts.push({ provider: null, id: null });\n setScripts(newScripts);\n };\n\n const onEditScript = (index, key, value) => {\n const newScripts = [...scripts];\n const script = newScripts[index];\n script[key] = value;\n setScripts(newScripts);\n };\n\n const onDeleteScript = (index) => {\n const newScripts = [...scripts];\n newScripts.splice(index, 1);\n setScripts(newScripts);\n };\n\n const getProviders = () => {\n const array = [];\n // for (let i = 0; i < providersData.length; i ++){\n\n // let exist = false\n // for (let j = 0; j < scripts.length; j++) {\n // const script = scripts[j];\n // if (script.provider == providersData[i].value){\n // exist = true\n // }\n // }\n\n // if (!exist){\n // array.push(providersData[i])\n // }\n // }\n // return array\n return providersData;\n };\n\n const getPlaceholder = (item) => {\n for (let i = 0; i < providersData.length; i++) {\n if (providersData[i].value == item.provider) {\n return providersData[i].placeholder;\n }\n }\n return \"Select a provider\";\n };\n\n const onAllScriptsValid = () => {\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i];\n if (!script.provider || !script.id) {\n return false;\n }\n }\n return true;\n };\n\n return (\n \n \n {\"Add third party scripts\"}\n \n {\n \"Add Google Analytics or a Facebook pixel to your registration page.\"\n }\n \n {scripts.map((item, index) => {\n return (\n \n \n onEditScript(index, \"provider\", event.currentTarget.value)\n }\n disabled={disableActions}\n />\n \n onEditScript(index, \"id\", event.currentTarget.value)\n }\n />\n onDeleteScript(index)}\n >\n X\n \n \n );\n })}\n onAddScript()}\n disabled={!onAllScriptsValid()}\n >\n Add script\n \n \n \n );\n}\n","import React from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n MantineProvider,\n Alert\n} from '@mantine/core'\n\nexport default function Open() {\n const { t, i18n } = useTranslation();\n return (\n \n \n \n \n {t(\"spaces.settings.privacy.open.open.description\")}\n \n \n \n \n )\n}\n","import React from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n MantineProvider,\n Alert\n} from '@mantine/core'\n\nexport default function Private(props) {\n const { t, i18n } = useTranslation();\n return (\n \n \n \n \n {t(\"spaces.settings.privacy.private.private.description\")}\n \n \n \n \n )\n\n}\n","// import axios from 'axios';\n\nclass Journey {\n constructor() {\n if (this instanceof Journey) {\n throw Error('Journey class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, paginator, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/journeys.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchById = async (journey_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/journeys/${journey_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchByTrigger = async (trigger, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/journeys/trigger.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchActions = async (trigger, position, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger,\n position\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/journeys/actions.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, journey, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n journey\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/journey.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (journey_id, slug, journey, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n journey\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/journeys/${journey_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n // static onDestroy = async (journey_id, slug, sucessCallback, errorCallback) => {\n // const params = {\n // locale: window.$currentUserLanguage,\n // auth_token: window.$currentUserAuthToken\n // }\n //\n // await window.$api.delete(`/api/v4/spaces/${slug}/journeys/${journey_id}.json`, {params})\n // .then(res => {\n // sucessCallback(res.data)\n // })\n // .catch((error) => {\n // errorCallback(error.response.data)\n // });\n // }\n\n}\n\nexport default Journey;\n","// import axios from 'axios';\n\nclass Step {\n constructor() {\n if (this instanceof Step) {\n throw Error('Step class cannot be instantiated.');\n }\n }\n\n static onCreate = async (slug, journey_id, step, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n step\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/journeys/${journey_id}/steps.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (step_id, slug, journey_id, step, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n step\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/journeys/${journey_id}/steps/${step_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onReorder = async (slug, journey_id, steps, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n steps\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/journeys/${journey_id}/steps/reorder.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (step_id, slug, journey_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/journeys/${journey_id}/steps/${step_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Step;\n","import React, { useState } from \"react\";\nimport {\n\n Box,\n\n Button,\n\n Group,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../../../../models/Space\";\n\nexport default function AddSimple(props) {\n const space = useSelector((state) => state.space);\n const [stepSlug, setStepSlug] = useState(null);\n const { t, i18n } = useTranslation();\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate({\n object_type: \"pod\",\n object_id: space.id,\n });\n } else {\n props.onCreate({\n object_type: \"pod\",\n object_id: space.id,\n });\n }\n };\n\n const onDestroy = (event) => {\n SpaceModel.onDestroy(\n props.step.id,\n (data) => {\n props.onDestroy(event);\n },\n (data) => {}\n );\n };\n\n return (\n \n {props.mode === \"edit\" ? (\n \n onSend(event)}\n type=\"submit\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton1\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.deleteButton\")}\n \n \n ) : (\n onSend(event)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton2\")}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Text,\n Box,\n MantineProvider,\n Select,\n Button,\n TextInput,\n\n Group\n} from '@mantine/core'\n\nimport { useForm } from '@mantine/form';\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport BroadcastModel from '../../../../../models/Broadcast'\n\nimport ManagerModel from '../../../../../models/Manager'\n\nimport TiptapInline from '../../../../tiptap/components/TiptapInline'\n\nexport default function EditEmail(props) {\n\n // const [sendTo, setSendTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n const [broadcast, setBroadcast] = useState()\n const [managers, setManagers] = useState([])\n const { t, i18n } = useTranslation()\n const space = useSelector(state => state.space);\n const loaded = useRef(false)\n\n\n\n useEffect(() => {\n if (props.step){\n onFetch()\n }\n }, [props])\n\n const sendEmailTo = () => {\n return props.trigger === \"interested\" ? \"interested\" : props.trigger === \"registered\" ? \"members\" : \"interested-members\"\n }\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n content_json: \"\",\n send_as: \"\",\n send_email_to: sendEmailTo(),\n email_address: \"\",\n status: \"journey_draft\"\n },\n\n validate: {\n title: (value) => value.length > 0 ? null : \"Write a title\",\n content: (value) => value.length > 0 ? null : \"Add some content\",\n },\n });\n\n const onFetch = () => {\n\n form.setFieldValue(\"send_as\", props.step.send_as)\n form.setFieldValue(\"send_email_to\", props.step.send_email_to)\n form.setFieldValue(\"email_address\", props.step.email_address)\n\n if (props.step.object_id) {\n BroadcastModel.onFetchById(props.step.object_id, space.slug, (data) => {\n loaded.current = true\n setBroadcast({...data})\n\n form.setFieldValue(\"title\", data.title)\n form.setFieldValue(\"content\", data.content)\n form.setFieldValue(\"content_json\", data.content_json)\n }, (data) => {\n\n })\n }\n else{\n loaded.current = true\n }\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const _managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: item.full_name\n }\n ))\n setManagers(_managers)\n }, (data) => {\n })\n\n }\n\n const onSave = (status=null) => {\n const broadcast_params = {\n title: form.values.title,\n content: form.values.content,\n content_json: form.values.content_json,\n user_id: form.values.send_as,\n status: form.values.status\n }\n\n const step_params = {\n send_as: form.values.send_as,\n send_email_to: form.values.send_email_to,\n email_address: form.values.email_address\n }\n\n if (props.step && props.step.object_id){\n BroadcastModel.onUpdate(props.step.object_id, space.slug, broadcast_params, (data) => {\n // Swal.fire(data.title, data.message, \"success\")\n //\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n props.onUpdate(step_params)\n }\n else{\n BroadcastModel.onCreate(space.slug, broadcast_params, (data) => {\n const _step_params = { ...step_params, object_id: data.id }\n props.onUpdate(_step_params)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n }\n }\n\n const onSend = () => {\n onSave(\"\")\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n const onContentUpdate = (content, html) => {\n form.setFieldValue(\"content_json\", content.content)\n form.setFieldValue(\"content\", html)\n }\n\n if (!loaded.current){\n return null\n }\n\n return (\n \n onSend(values))}>\n \n \n\n \n\n \n {\"Use {{first_name}}, {{last_name}}, {{start_date}}, {{event_link}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"}\n \n\n \n\n\n \n\n\n { form.values.send_email_to == \"custom\" && (\n \n )}\n\n \n \n }\n >\n {t(\"spaces.settings.registration.steps.editEmail.saveButton\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editEmail.deleteButton\")}\n \n \n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Text,\n Box,\n MantineProvider,\n\n Button,\n\n Group\n} from '@mantine/core'\n\nimport { useForm } from '@mantine/form';\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport BroadcastModel from '../../../../../models/Broadcast'\nimport ManagerModel from '../../../../../models/Manager'\n\nimport TiptapInline from '../../../../tiptap/components/TiptapInline'\n\nexport default function EditEmail(props) {\n\n // const [sendTo, setSendTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n const [broadcast, setBroadcast] = useState()\n const [managers, setManagers] = useState([])\n const { t, i18n } = useTranslation()\n const space = useSelector(state => state.space);\n const user = useSelector(state => state.user);\n const loaded = useRef(false)\n\n\n\n useEffect(() => {\n // if (props.step){\n // }\n onFetch()\n }, [props])\n\n const sendEmailTo = () => {\n return \"registered\"\n }\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n content_json: \"\",\n send_as: \"\",\n send_email_to: sendEmailTo(),\n email_address: \"\",\n status: \"journey_draft\"\n },\n\n validate: {\n title: (value) => value.length > 0 ? null : \"Write a title\",\n content: (value) => value.length > 0 ? null : \"Add some content\",\n },\n });\n\n const onFetch = () => {\n\n \n if (props.step && props.step.object_id) {\n // form.setFieldValue(\"send_as\", props.step.send_as)\n // form.setFieldValue(\"send_email_to\", props.step.send_email_to)\n // form.setFieldValue(\"email_address\", props.step.email_address)\n BroadcastModel.onFetchById(props.step.object_id, space.slug, (data) => {\n loaded.current = true\n setBroadcast({...data})\n\n form.setFieldValue(\"title\", data.title)\n form.setFieldValue(\"content\", data.content)\n form.setFieldValue(\"content_json\", data.content_json)\n }, (data) => {\n \n })\n }\n else{\n form.setFieldValue(\"title\", \"Automated direct message\")\n form.setFieldValue(\"send_as\", user.id)\n loaded.current = true\n }\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const _managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: item.full_name\n }\n ))\n setManagers(_managers)\n }, (data) => {\n })\n\n }\n\n const onSave = (status=null) => {\n const broadcast_params = {\n title: form.values.title,\n content: form.values.content,\n content_json: form.values.content_json,\n user_id: form.values.send_as,\n status: form.values.status\n }\n\n const step_params = {\n send_as: form.values.send_as,\n send_email_to: form.values.send_email_to,\n email_address: form.values.email_address\n }\n\n if (props.step && props.step.object_id){\n BroadcastModel.onUpdate(props.step.object_id, space.slug, broadcast_params, (data) => {\n // Swal.fire(data.title, data.message, \"success\")\n //\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n props.onUpdate(step_params)\n }\n else{\n BroadcastModel.onCreate(space.slug, broadcast_params, (data) => {\n const _step_params = { ...step_params, object_id: data.id }\n props.onCreate(_step_params)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n }\n }\n\n const onSend = () => {\n onSave(\"\")\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n const onContentUpdate = (content, html) => {\n form.setFieldValue(\"content_json\", content.content)\n form.setFieldValue(\"content\", html)\n }\n\n if (!loaded.current){\n return null\n }\n\n return (\n \n onSend(values))}>\n \n\n \n\n \n {\"Use {{first_name}}, {{last_name}}, {{start_date}}, {{event_link}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"}\n \n\n \n \n }\n >\n {t(\"spaces.settings.registration.steps.editEmail.saveButton\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editEmail.deleteButton\")}\n \n \n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group,\n Loader\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function AddToExistingSpace(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false)\n const { t, i18n } = useTranslation();\n const searchTimeoutId = useRef();\n const selectedParents = useRef([]);\n const auxSpaces = useRef([])\n\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [props])\n\n const onFetchSpaces = (query=null) => {\n auxSpaces.current = []\n\n const include = [\"members\", \"simple\"]\n if (query){\n include.push(`q=${query}`)\n }\n\n SpaceModel.onFetchDeepChildren(space.slug, include, {page: 1, per: 10}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n auxSpaces.current.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n setSpaces([...auxSpaces.current])\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchManaged([], include, {page: 1, per: 10}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = auxSpaces.current.findIndex(x => x.value==data[i].id);\n index === -1 && (\n auxSpaces.current.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n }\n\n setSpaces([...auxSpaces.current])\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n console.log(\"form.values 22: \", form.values)\n props.onCreate(form.values)\n }\n\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true)\n if (searchTimeoutId.current){\n clearTimeout(searchTimeoutId.current)\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query)\n setSearching(false)\n }, 1000)\n }\n\n return (\n \n onSend(values))}>\n \n : }\n label={t(\"spaces.settings.registration.steps.addToExistingSpace.label\")}\n searchable\n mt={20}\n data={spaces}\n placeholder={t(\"spaces.settings.registration.steps.addToExistingSpace.placeholder\")}\n {...form.getInputProps('object_id')}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n\n Button,\n TextInput,\n Group\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from \"../../../../../models/Space\";\n\nexport default function AddToNewSpace(props) {\n\n const space = useSelector(state => state.space);\n const [stepSlug, setStepSlug] = useState(null)\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n intention: \"\",\n version: \"discussion\",\n privacy_level: \"private\",\n pod_state: \"model\",\n },\n\n validate: {\n intention: (value) => value.length > 0 ? null : \"Please add a name for your space\",\n }\n });\n\n useEffect(() => {\n if (props.mode === \"edit\") {\n onFetchSpace()\n }\n }, [props])\n\n const onFetchSpace = () => {\n if (props.step) {\n SpaceModel.onFetchSimple(props.step.object_id, \"basic\", (data) => {\n form.setFieldValue(\"intention\", data.name)\n setStepSlug(data.slug)\n }, (data) => {\n\n })\n }\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n SpaceModel.onUpdate(stepSlug, form.values, (data) => {\n props.onUpdate({\n object_type: \"pod\",\n object_id: props.step.object_id\n })\n }, (data) => {\n })\n } else {\n SpaceModel.onCreate(form.values, space.id, (data) => {\n props.onCreate({\n object_type: \"pod\",\n object_id: data.id\n })\n }, (data) => {\n })\n }\n }\n\n const onDestroy = (event) => {\n SpaceModel.onDestroy(stepSlug, (data) => {\n props.onDestroy(event)\n }, (data) => {\n\n })\n }\n\n return (\n \n onSend(values))}>\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton1\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group,\n Loader\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function AddFromSubSpace(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false)\n\n const searchTimeoutId = useRef();\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [])\n\n const onFetchSpaces = () => {\n const _spaces = []\n\n SpaceModel.onFetchChildren(space.slug, [\"members\"], {page: 1, per: 50}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchByScope(\"managed\", [\"members\", \"simple\"], {page: 1, per: 100}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = _spaces.findIndex(x => x.value==data[i].id);\n index === -1 && (\n _spaces.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n setSpaces(_spaces)\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n props.onCreate(form.values)\n }\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true)\n if (searchTimeoutId.current){\n clearTimeout(searchTimeoutId.current)\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query)\n setSearching(false)\n }, 1000)\n }\n\n return (\n \n onSend(values))}>\n \n : }\n label={t(\"spaces.settings.registration.steps.addFromSubSpace.label\")}\n description={t(\"spaces.settings.registration.steps.addFromSubSpace.description\")}\n searchable\n mt={20}\n data={spaces}\n placeholder={t(\"spaces.settings.registration.steps.addFromSubSpace.placeholder\")}\n {...form.getInputProps('object_id')}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.saveButton\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.saveButton2\")}\n \n )\n }\n \n\n \n )\n}\n","// import axios from 'axios';\n\nclass Structure {\n constructor() {\n if (this instanceof Structure) {\n throw Error('Structure class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, paginator, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/structures.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchById = async (structure_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/structures/${survey_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n\n\n static onCreate = async (slug, structure, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n structure\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/structures.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (structure_id, slug, structure, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n structure\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/structures/${structure_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (structure_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/structures/${structure_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDuplicate = async (structure_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/structures/${structure_id}/duplicate.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onAddToSpace = async (structure_id, slug, _params, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ..._params\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/structures/${structure_id}/add_to_spaces.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Structure;\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n\n Button,\n\n} from '@mantine/core'\n\n\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport StructureModel from '../../../../../models/Structure';\n\nimport Broadcaster from \"../../../../../helpers/Broadcaster\";\n\n\nexport default function EditStructure(props) {\n\n const [html, setHtml] = useState(\"\")\n\n const { t, i18n } = useTranslation();\n const space = useSelector(state => state.space);\n const [structureId, setStructureId] = useState(0)\n\n useEffect(() => {\n onFetch()\n }, [])\n\n const onFetch = () => {\n if (props.step && props.step.object_id) {\n setStructureId(props.step.object_id)\n } else {\n const structure_params = { title: \"New structure\" }\n\n StructureModel.onCreate(space.slug, structure_params, (data) => {\n setStructureId(data.id)\n props.onUpdate({ object_id: data.id }, false)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n }\n\n Broadcaster.receive(\"settings_closeModal\", document.body, () => {\n props.onUpdate()\n })\n\n return (() => {\n Broadcaster.unRegisterElement(\"settings_closeModal\", document.body)\n })\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n return (\n
\n \n {props.step && structureId && structureId !== 0 ? (\n \n ) : (\n \n )}\n onDestroy(event)}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.editStructure.deleteButton\")}\n \n
\n )\n\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function ApplyTemplate(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [])\n\n const onFetchSpaces = () => {\n const _spaces = []\n\n SpaceModel.onFetchChildren(space.slug, [\"members\"], {page: 1, per: 50}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchByScope(\"managed\", [\"members\", \"simple\"], {page: 1, per: 100}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = _spaces.findIndex(x => x.value==data[i].id);\n index === -1 && (\n _spaces.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n setSpaces(_spaces)\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n props.onCreate(form.values)\n }\n }\n\n return (\n \n onSend(values))}>\n \n \n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n Text,\n Box,\n MantineProvider,\n\n Button,\n\n Group,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceSettingModel from \"../../../../../models/SpaceSetting\";\nimport TiptapInline from \"../../../../tiptap/components/TiptapInline\";\n\nexport default function SetToPending(props) {\n const theme = useMantineTheme();\n const [settings, setSettings] = useState(null);\n const [pendingMessage, setPendingMessage] = useState(\"\");\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n const form = useForm({\n initialValues: {\n pending_message: \"\",\n },\n\n validate: {\n pending_message: (value) =>\n value.length > 0 ? null : \"Please add a pending message\",\n },\n });\n\n useEffect(() => {\n console.log(pendingMessage);\n }, [pendingMessage]);\n\n useEffect(() => {\n if (props.settings && props.settings.slug) {\n setPendingMessage([...props.settings.settings.pending_message]);\n form.setFieldValue(\"pending_message\", [\n ...props.settings.settings.pending_message,\n ]);\n setSettings({ ...props.settings });\n }\n }, [props]);\n\n // const onFetch = () => {\n\n // SpaceSettingModel.onFetch(space.slug, (data) => {\n\n // }, (data) => {\n\n // })\n // }\n\n const onSend = () => {\n const params = {\n block_until_approved: true,\n pod_settings_attributes: {\n pending_message: form.values.pending_message,\n },\n };\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {\n if (props.mode === \"edit\") {\n props.onUpdate();\n } else {\n props.onCreate();\n }\n },\n (data) => {}\n );\n };\n\n const onDestroy = (event) => {\n const params = { block_until_approved: false };\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {},\n (data) => {}\n );\n\n props.onDestroy(event);\n };\n\n const onContentUpdate = (contentJson) => {\n form.setFieldValue(\"pending_message\", contentJson.content);\n // setPendingMessage(contentJson)\n };\n\n return (\n \n
onSend(values))}>\n \n \n {t(\"spaces.settings.registration.steps.setToPending.title\")}\n \n \n {t(\"spaces.settings.registration.steps.setToPending.description\")}\n \n {/*\n */}\n {pendingMessage && (\n \n )}\n \n {\n \"Use {{first_name}}, {{last_name}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"\n }\n \n \n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.setToPending.saveButton1\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.setToPending.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.setToPending.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Box, Button } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SurveyModel from \"../../../../../models/Survey\";\nimport CreateSurveyForm from \"../../surveys/CreateSurveyForm\";\n\nexport default function EditSurvey(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [survey, setSurvey] = useState(null);\n const [surveyId, setSurveyId] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const mounted = useRef(false);\n\n useEffect(() => {\n if (props.step && !loading && !mounted.current) {\n setSurveyId(props.step.object_id);\n setLoading(true);\n onFetch();\n mounted.current = true;\n }\n }, [props]);\n\n const onFetch = () => {\n if (props.step && props.step.object_id) {\n SurveyModel.onFetchById(\n props.step.object_id,\n space.slug,\n (data) => {\n setSurvey(data);\n setLoading(false);\n },\n (data) => {}\n );\n } else if (!loading && !props.step.object_id) {\n const survey_params = { title: \"New survey\" };\n\n SurveyModel.onCreate(\n space.slug,\n survey_params,\n (data) => {\n SurveyModel.onFetchById(\n data.id,\n space.slug,\n (data) => {\n setSurvey(data);\n setLoading(false);\n },\n (data) => {}\n );\n\n props.onUpdate({ object_id: data.id }, false);\n },\n (data) => {}\n );\n }\n };\n\n const onUpdate = () => {};\n\n const onDestroy = (event) => {\n props.onDestroy(event);\n };\n\n if (loading) {\n return null;\n }\n\n return (\n \n onDestroy(event)}\n mt={15}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editSurvey.deleteButton\")}\n \n }\n />\n \n );\n}\n","// import axios from 'axios';\n\nclass Webhook {\n constructor() {\n if (this instanceof Webhook) {\n throw Error(\"Webhook class cannot be instantiated.\");\n }\n }\n\n static onFetch = async (slug, paginator, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...paginator,\n };\n\n await window.$api\n .get(`/api/v4/spaces/${slug}/webhooks.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onFetchById = async (\n webhook_id,\n slug,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .get(`/api/v4/spaces/${slug}/webhooks/${webhook_id}.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onCreate = async (slug, webhook, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n webhook,\n };\n\n await window.$api\n .post(`/api/v4/spaces/${slug}/webhooks.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onUpdate = async (\n webhook_id,\n slug,\n webhook,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n webhook,\n };\n\n await window.$api\n .put(`/api/v4/spaces/${slug}/webhooks/${webhook_id}.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n\n static onDestroy = async (\n webhook_id,\n slug,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n };\n\n await window.$api\n .delete(`/api/v4/spaces/${slug}/webhooks/${webhook_id}.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {}\n });\n };\n}\n\nexport default Webhook;\n","import React, { useEffect } from \"react\";\nimport { Group, Box, MantineProvider, Button, TextInput } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport WebhookModel from \"../../../../../models/Webhook\";\n\nconst paramsOptions = [\n { label: \"First name\", value: \"first_name\" },\n { label: \"Last name\", value: \"last_name\" },\n { label: \"Username\", value: \"username\" },\n { label: \"Email\", value: \"email\" },\n { label: \"Event date\", value: \"created_at\" },\n];\n\nexport default function Webhook(props) {\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n console.log(\"trigger: \", props.trigger);\n if (props.webhookId && space && space.slug) {\n onFetchById();\n }\n if (space && space.slug) {\n form.setFieldValue(\"name\", `Webhook ${space.slug}`);\n }\n }, [props]);\n\n const form = useForm({\n initialValues: {\n name: \"\",\n url: \"\",\n params: [\"first_name\", \"last_name\", \"email\", \"username\", \"created_at\"],\n },\n\n validate: {\n name: (value) =>\n value.length > 0 ? null : \"Please write a name for this webhook\",\n url: (value) => (value.length > 0 ? null : \"Please add a webhook url\"),\n params: (value) =>\n value.length > 0\n ? null\n : \"Please select at least one parameter for this webhook\",\n },\n });\n\n const onFetchById = () => {\n WebhookModel.onFetchById(\n props.webhookId,\n space.slug,\n (data) => {\n form.setFieldValue(\"name\", data.name);\n form.setFieldValue(\"url\", data.url);\n form.setFieldValue(\"params\", data.params);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n if (props.webhookId) {\n WebhookModel.onUpdate(\n props.webhookId,\n space.slug,\n { ...form.values },\n (data) => {\n // form.setFieldValue(\"name\", \"\");\n // form.setFieldValue(\"url\", \"\");\n // form.setFieldValue(\"params\", [\"first_name\", \"last_name\", \"email\", \"created_at\"]);\n props.onUpdate({ object_type: \"webhook\" });\n },\n (data) => {}\n );\n } else {\n WebhookModel.onCreate(\n space.slug,\n { ...form.values },\n (data) => {\n // form.setFieldValue(\"name\", \"\");\n // form.setFieldValue(\"url\", \"\");\n // form.setFieldValue(\"params\", [\"first_name\", \"last_name\", \"email\", \"created_at\"]);\n props.onCreate({ object_type: \"webhook\", object_id: data.id });\n },\n (data) => {}\n );\n }\n };\n\n return (\n \n
onSave(values))}>\n \n {/* */}\n \n {/* */}\n \n \n }\n mt={25}\n radius=\"xl\"\n fullWidth={!props.webhookId}\n >\n {t(\"spaces.settings.registration.steps.webhook.saveButton\")}\n \n {props.webhookId && (\n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.webhook.deleteButton\")}\n \n )}\n \n
\n
\n );\n}\n","import React, { useRef, useEffect, useState } from \"react\";\nimport {\n Text,\n Box,\n MantineProvider,\n Select,\n Button,\n Group,\n createStyles,\n NumberInput,\n ActionIcon,\n} from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\nimport { Plus, Minus } from \"tabler-icons-react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${theme.colors.gray[3]}`,\n backgroundColor: \"#fff\",\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n textAlign: \"center\",\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nexport default function Wait(props) {\n const [waitCondition, setWaitCondition] = useState(null);\n const [numberOfDays, setNumberOfDays] = useState(1);\n const [waitDate, setWaitDate] = useState(\"\");\n const [waitTime, setWaitTime] = useState(\"\");\n const { classes } = useStyles();\n const handlers = useRef();\n const [value, setValue] = useState(1);\n const { t, i18n } = useTranslation();\n const min = 1;\n const max = 60;\n const mounted = useRef(false);\n\n const form = useForm({\n initialValues: {\n action: \"\",\n wait: 1,\n wait_until: null,\n },\n\n validate: {\n action: (value) =>\n value.length > 0 ? null : \"Please select a wait condition\",\n },\n });\n\n useEffect(() => {\n if (props.mode == \"edit\" && props.step) {\n form.setFieldValue(\"action\", props.step.action);\n form.setFieldValue(\"wait\", props.step.wait);\n\n if (props.step.action == \"wait_until\") {\n const waitUntil = new Date(props.step.wait_until);\n // const waitDate = waitUntil.split(\"T\")[0] +\"T\"+ waitUntil.split(\"T\")[1]\n setWaitDate(waitUntil);\n setWaitTime(waitUntil);\n }\n }\n }, []);\n\n useEffect(() => {\n if (waitDate && waitTime) {\n const _waitDate = new Date(waitDate);\n const _waitTime = new Date(waitTime);\n const waitUntil = new Date(\n `${_waitDate.toLocaleDateStringAbs()}, ${_waitTime.toLocaleTimeString()}`\n ).toISOString();\n form.setFieldValue(\"wait_until\", waitUntil);\n }\n }, [waitDate, waitTime]);\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values);\n } else {\n props.onCreate(form.values);\n }\n };\n\n return (\n \n
onSend(values))}>\n \n \n\n {form.values.action === \"wait\" && form.values.action !== null && (\n \n ({\n fontSize: 18,\n fontWeight: 500,\n color: theme.colors.gray[9],\n })}\n >\n {t(\"spaces.settings.registration.steps.wait.description1\")}\n \n\n
\n handlers.current.decrement()}\n disabled={value === min}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={value === max}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n
\n )}\n\n {form.values.action === \"wait_until\" &&\n form.values.action !== null && (\n \n ({\n fontSize: 18,\n fontWeight: 500,\n color: theme.colors.gray[9],\n })}\n >\n {t(\"spaces.settings.registration.steps.wait.description2\")}\n \n \n setWaitDate(date)}\n />\n setWaitTime(time)}\n />\n \n \n )}\n
\n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.wait.saveButton\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.wait.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.wait.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport AddSimple from \"./steps/AddSimple\";\nimport EditEmail from \"./steps/EditEmail\";\nimport EditMessage from \"./steps/EditMessage\";\nimport AddToExistingSpace from \"./steps/AddToExistingSpace\";\nimport AddToNewSpace from \"./steps/AddToNewSpace\";\nimport AddFromSubSpace from \"./steps/AddFromSubSpace\";\nimport EditStructure from \"./steps/EditStructure\";\nimport ApplyTemplate from \"./steps/ApplyTemplate\";\nimport SetToPending from \"./steps/SetToPending\";\nimport EditSurvey from \"./steps/EditSurvey\";\nimport Webhook from \"./steps/Webhook\";\nimport Wait from \"./steps/Wait\";\nimport StepModel from \"../../../../models/Step\";\n\nexport default function EditStep(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [action, setAction] = useState(\"\");\n const [name, setName] = useState(\"\");\n\n useEffect(() => {\n if (props && props.step) {\n setAction(props.step.action);\n setName(props.step.name);\n }\n }, [props]);\n\n const onUpdate = (params, closeSettings = true) => {\n StepModel.onUpdate(\n props.step.id,\n space.slug,\n props.step.journey_id,\n { action: props.step.action, position: props.step.position, ...params },\n (data) => {\n if (closeSettings) {\n props.setOpened(false);\n setTimeout(() => props.onSettingsChange(), 1000);\n }\n },\n (data) => {}\n );\n };\n\n const displayStepSettings = () => {\n switch (action) {\n case \"send_email\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n trigger={props.trigger}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"send_message\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n trigger={props.trigger}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_to_existing_space\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_to_new_space\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_from_sub_space\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_structure\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"apply_template\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"set_to_pending\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"survey_person\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n opened={props.opened}\n setOpened={props.setOpened}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"webhook\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait_until\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait_until_structure_complete\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n default:\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n }\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {name}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n {displayStepSettings()}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n TextInput,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport BroadcastModel from \"../../../../../models/Broadcast\";\nimport ManagerModel from \"../../../../../models/Manager\";\n\nexport default function SendEmail(props) {\n const [options, setOptions] = useState([]);\n // const [sendEmailTo, setSendEmailTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n // const [selectedBroadcast, setSelectedBroadcast] = useState(null)\n // const [emailAddress, setEmailAddress] = useState(null)\n const [managers, setManagers] = useState([]);\n const [params, setParams] = useState({});\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation()\n\n useEffect(() => {\n console.log(\"trigger: \", props.trigger);\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n const sendEmailTo = () => {\n return props.trigger === \"interested\"\n ? \"interested\"\n : props.trigger === \"registered\"\n ? \"members\"\n : \"interested-members\";\n };\n\n const form = useForm({\n initialValues: {\n object_type: \"broadcast\",\n send_email_to: sendEmailTo(),\n send_as: `${user.id}`,\n email_address: \"\",\n object_id: \"\",\n },\n\n validate: {\n send_email_to: (value) =>\n value.length > 0 ? null : \"Please select a value\",\n send_as: (value) => (value.length > 0 ? null : \"Please select a sender\"),\n object_id: (value) =>\n value.length > 0 ? null : \"Please select an email\",\n },\n });\n\n // useEffect(() => {\n // setParams({\n // object_type: \"broadcast\",\n // object_id: selectedBroadcast,\n // send_email_to: sendEmailTo,\n // send_as: sendAs,\n // email_address: emailAddress })\n // }, [sendEmailTo, sendAs, selectedBroadcast, emailAddress])\n\n const onFetch = () => {\n BroadcastModel.onFetchSimple(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const broadcasts = data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select a previously drafted broadcast\",\n }));\n setOptions([\n {\n value: \"new_email\",\n label: \"Write a new email\",\n group: \"New email\",\n },\n ...broadcasts,\n ]);\n },\n (data) => {}\n );\n\n ManagerModel.onFetch(\n space.slug,\n { page: 1, per: 1000 },\n { scope: \"\", term: \"\" },\n (data) => {\n const _managers = data.data.map((item, index) => ({\n value: `${item.user_id}`,\n label: item.full_name,\n }));\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values);\n };\n\n return (\n \n
onSend(values))}>\n \n \n\n \n\n \n\n {form.values[\"send_email_to\"] == \"custom\" && (\n setEmailAddress(event.currentTarget.value)}\n mt={20}\n placeholder={t(\"spaces.settings.registration.steps.sendEmail.placeholder4\")}\n label={t(\"spaces.settings.registration.steps.sendEmail.label4\")}\n radius=\"sm\"\n size=\"md\"\n {...form.getInputProps(\"email_address\")}\n />\n )}\n \n }\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.sendEmail.saveButton\")}\n \n \n
\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from \"react-i18next\";\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport StructureModel from '../../../../../models/Structure'\nimport ManagerModel from '../../../../../models/Manager'\n\nexport default function AddStructure(props) {\n\n const space = useSelector(state => state.space);\n const user = useSelector(state => state.user);\n const [structureOption, setStructureOption] = useState(null);\n const [structures, setStructures] = useState([]);\n const [options, setOptions] = useState([])\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"structure\",\n send_as: \"\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select at least one space\",\n }\n });\n\n useEffect(() => {\n onFetch()\n }, [props])\n\n const onFetch = () => {\n\n StructureModel.onFetch(space.slug, {page: 1, per: 100}, (data) => {\n const _structures = data.data.map((item, index) => (\n {\n value: `${item.id}`,\n label: item.title,\n group: 'Select an existing structure'\n }\n ))\n setStructures(\n [\n { value: 'new_structure', label: 'Create a new structure', group: 'New structure' },\n ..._structures\n ]\n )\n }, (data) => {\n\n })\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const sutrabot = [{\n value: \"474\",\n label: \"sutrabot\"\n }]\n const managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: item.full_name\n }\n ))\n\n setOptions([...sutrabot, ...managers])\n }, (data) => {\n\n })\n }\n\n const onSend = () => {\n props.onCreate(form.values)\n }\n\n return (\n \n onSend(values))}>\n \n \n\n\n \n\n\n \n }\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addStructure.saveButton\")}\n \n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Box, MantineProvider, Select, Button, Group } from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SurveyModel from \"../../../../../models/Survey\";\n\nexport default function SurveyPerson(props) {\n const space = useSelector((state) => state.space);\n const [surveys, setSurveys] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"survey\",\n object_id: \"\",\n },\n\n validate: {\n object_id: (value) =>\n value.length > 0 ? null : \"Please select a survey\",\n },\n });\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n const onFetch = () => {\n SurveyModel.onFetch(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const _surveys = data.data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select an existing survey\",\n }));\n setSurveys([\n {\n value: \"new_survey\",\n label: \"Create a new survey\",\n group: \"New survey\",\n },\n ..._surveys,\n ]);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values);\n };\n\n return (\n \n
onSend(values))}>\n \n \n \n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.surveyPerson.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\n \"spaces.settings.registration.steps.surveyPerson.deleteButton\"\n )}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.surveyPerson.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React from 'react';\nimport {\n Text,\n createStyles\n} from '@mantine/core'\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nconst useStyles = createStyles((theme) => ({\n\n symbol: {\n textAlign: 'center',\n fontSize: 30,\n fontWeight: 700,\n width: 60,\n }\n\n}));\n\nexport default function StepIcon(props) {\n\n const { classes, cx, theme } = useStyles();\n\n const displayStepIcon = () => {\n const value = props.value\n\n if (value == \"send_email\" || value == \"send_message\") {\n return (\n ({color: theme.colors.blue[5]})}\n >\n \n \n )\n } else if (\n value == \"add_to_existing_space\" ||\n value == \"add_to_new_space\" ||\n value == \"add_from_sub_space\" ||\n value == \"add_from_children\" ||\n value == \"add_to_direct_open_children\" ||\n value == \"add_sub_circle_members\"\n ) {\n return (\n ({color: theme.colors.green[5]})}\n >\n \n \n )\n } else if (value == \"add_structure\") {\n return (\n ({color: theme.colors.cyan[5]})}\n >\n \n \n )\n } else if (value == \"survey_person\") {\n return (\n ({color: theme.colors.violet[5]})}\n >\n \n \n )\n } else if (value == \"set_to_pending\") {\n return (\n ({color: theme.colors.red[5]})}\n >\n \n \n )\n } else if (\n value == \"wait\" ||\n value == \"wait_until\" ||\n value == \"wait_until_structure_complete\"\n ) {\n return (\n ({color: theme.colors.gray[5]})}\n >\n \n \n )\n } else if (value == \"apply_template\") {\n return (\n ({color: theme.colors.yellow[5]})}\n >\n \n \n )\n } else if (value == \"webhook\") {\n return (\n ({color: theme.colors.yellow[5]})}\n >\n \n \n )\n }\n }\n\n return (\n
\n {displayStepIcon()}\n
\n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Text, Box, Group, Drawer, Select, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport AddSimple from \"./steps/AddSimple\";\nimport EditMessage from \"./steps/EditMessage\";\n\nimport SendEmail from \"./steps/SendEmail\";\nimport AddToExistingSpace from \"./steps/AddToExistingSpace\";\nimport AddToNewSpace from \"./steps/AddToNewSpace\";\nimport AddFromSubSpace from \"./steps/AddFromSubSpace\";\nimport AddStructure from \"./steps/AddStructure\";\nimport ApplyTemplate from \"./steps/ApplyTemplate\";\nimport SetToPending from \"./steps/SetToPending\";\nimport SurveyPerson from \"./steps/SurveyPerson\";\nimport Webhook from \"./steps/Webhook\";\nimport Wait from \"./steps/Wait\";\n\nimport StepModel from \"../../../../models/Step\";\nimport JourneyModel from \"../../../../models/Journey\";\nimport StepIcon from \"./StepIcon\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nexport default function AddStep(props) {\n const { t, i18n } = useTranslation();\n const [firstSelection, setFirstSelection] = useState(null);\n const [actions, setActions] = useState([]);\n const [canSetToPending, setCanSetToPending] = useState(false);\n const [canAddToExistingSpace, setCanAddToExistingSpace] = useState(false);\n const [canWait, setWait] = useState(false);\n const [canSurveyPerson, setCanSurveyPerson] = useState([]);\n const [canSendEmail, setCanSendEmail] = useState([]);\n const [canSendMessage, setCanSendMessage] = useState([]);\n const [canAddFromChildren, setCanAddFromChildren] = useState([]);\n const [canAddToDirectOpenChildren, setCanAddToDirectOpenChildren] = useState(\n []\n );\n const [canWebhook, setCanWebhook] = useState([]);\n const [opened, setOpened] = useState(false);\n const lastOpenedState = useRef(false);\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {}, []);\n\n useEffect(() => {\n setCanSetToPending(\n space &&\n space.permissions &&\n space.permissions.can_add_step_send_to_pending\n );\n setCanAddToExistingSpace(\n space &&\n space.permissions &&\n space.permissions.can_add_add_to_existing_space\n );\n setWait(space && space.permissions && space.permissions.can_add_step_wait);\n setCanSurveyPerson(\n space && space.permissions && space.permissions.can_add_step_survey_person\n );\n setCanSurveyPerson(\n space && space.permissions && space.permissions.can_add_step_survey_person\n );\n setCanSendEmail(\n space && space.permissions && space.permissions.can_add_step_send_email\n );\n\n setCanWebhook(\n space && space.permissions && space.permissions.can_add_step_webhook\n );\n\n setCanSendMessage(\n space && space.permissions && space.permissions.can_send_message\n );\n setCanAddFromChildren(\n space && space.permissions && space.permissions.can_add_from_children\n );\n setCanAddToDirectOpenChildren(\n space &&\n space.permissions &&\n space.permissions.can_add_to_direct_open_children\n );\n }, [space]);\n\n useEffect(() => {\n if (props.opened == true && !lastOpenedState.current) {\n onFetchActions();\n }\n lastOpenedState.current = props.opened;\n }, [props]);\n\n useEffect(() => {\n if (firstSelection == \"set_to_pending\" && !canSetToPending[0]) {\n setOpened([true, canSetToPending[1], canSetToPending[2]]);\n setFirstSelection(null);\n }\n if (\n firstSelection == \"add_to_existing_space\" &&\n !canAddToExistingSpace[0]\n ) {\n setOpened([true, canAddToExistingSpace[1], canAddToExistingSpace[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"wait\" && !canWait[0]) {\n setOpened([true, canWait[1], canWait[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"survey_person\" && !canSurveyPerson[0]) {\n setOpened([true, canSurveyPerson[1], canSurveyPerson[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"send_email\" && !canSendEmail[0]) {\n setOpened([true, canSendEmail[1], canSendEmail[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"send_message\" && !canSendMessage[0]) {\n setOpened([true, canSendMessage[1], canSendMessage[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"can_add_from_children\" && !canAddFromChildren[0]) {\n setOpened([true, canAddFromChildren[1], canAddFromChildren[2]]);\n setFirstSelection(null);\n }\n if (\n firstSelection == \"can_add_to_direct_open_children\" &&\n !canAddToDirectOpenChildren[0]\n ) {\n setOpened([\n true,\n canAddToDirectOpenChildren[1],\n canAddToDirectOpenChildren[2],\n ]);\n setFirstSelection(null);\n }\n if (firstSelection == \"webhook\" && !canWebhook[0]) {\n setOpened([true, canWebhook[1], canWebhook[2]]);\n setFirstSelection(null);\n }\n }, [firstSelection]);\n\n const onFetchActions = () => {\n JourneyModel.onFetchActions(\n props.trigger,\n props.position,\n space.slug,\n (data) => {\n setActions(data.actions);\n },\n (data) => {}\n );\n };\n\n const onCreate = (params) => {\n StepModel.onCreate(\n space.slug,\n props.journey,\n { action: firstSelection, position: props.position, ...params },\n (data) => {\n if (firstSelection == \"send_email\" && params.object_id == \"new_email\") {\n props.setTriggerEdit(data.id);\n } else if (\n firstSelection == \"send_message\" &&\n params.object_id == \"new_message\"\n ) {\n props.setTriggerEdit(data.id);\n } else if (\n firstSelection == \"add_structure\" &&\n params.object_id == \"new_structure\"\n ) {\n props.setTriggerEdit(data.id);\n } else if (\n firstSelection == \"survey_person\" &&\n params.object_id == \"new_survey\"\n ) {\n props.setTriggerEdit(data.id);\n }\n props.setOpened(false);\n setFirstSelection(null);\n setTimeout(() => props.onSettingsChange(), 1000);\n },\n (data) => {}\n );\n };\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const displaySecondSelection = () => {\n switch (firstSelection) {\n case \"send_email\":\n return (\n \n );\n break;\n case \"send_message\":\n return (\n \n );\n break;\n case \"add_to_existing_space\":\n return (\n \n );\n break;\n case \"add_to_new_space\":\n return (\n \n );\n break;\n case \"add_from_sub_space\":\n return (\n \n );\n break;\n case \"add_structure\":\n return (\n \n );\n break;\n case \"apply_template\":\n return (\n \n );\n break;\n case \"set_to_pending\":\n return (\n \n );\n break;\n case \"survey_person\":\n return (\n \n );\n break;\n case \"webhook\":\n return (\n \n );\n break;\n case \"wait\":\n return (\n \n );\n break;\n default:\n return (\n firstSelection && (\n \n )\n );\n break;\n }\n };\n\n return (\n <>\n {\n props.setOpened(false);\n setFirstSelection(null);\n }}\n title={\n \n {t(\"spaces.settings.registration.addStep.addStep.description\")}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n \n {displaySecondSelection()}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n createStyles,\n Text,\n ActionIcon,\n Button,\n MantineProvider,\n Group,\n Box,\n Select,\n} from \"@mantine/core\";\nimport { useListState } from \"@mantine/hooks\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Swal from \"sweetalert2\";\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\nimport JourneyModel from \"../../../../models/Journey\";\nimport StepModel from \"../../../../models/Step\";\nimport EditStep from \"./EditStep\";\nimport AddStep from \"./AddStep\";\nimport StepIcon from \"./StepIcon\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n padding: `15px 20px 15px 5px`,\n // paddingRight: theme.spacing.xs, // to offset drag handle\n backgroundColor: \"#fff\",\n },\n\n itemDragging: {\n boxShadow: theme.shadows.sm,\n },\n\n symbol: {\n textAlign: \"center\",\n fontSize: 30,\n fontWeight: 700,\n width: 80,\n },\n\n settings: {\n color: theme.colors.gray[6],\n fontSize: 18,\n width: 30,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n dragHandle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n color: theme.colors.gray[6],\n paddingLeft: 10,\n paddingRight: 0,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n stepFooterPadding: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"spaceBetween\",\n },\n\n stepFooterLeft: {\n borderRight: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterRight: {\n borderLeft: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterAddStep: {\n display: \"flex\",\n justifyContent: \"center\",\n fontSize: 16,\n },\n\n addStepHidden: {\n visibility: \"hidden\",\n },\n\n addStepHover: {\n \"&:hover\": {\n color: \"#fff\",\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n backgroundColor: theme.colors.sutrablue[3],\n },\n },\n\n bottomConnector: {\n fontSize: 20,\n color: theme.colors.gray[4],\n marginTop: -15,\n textAlign: \"center\",\n height: 20,\n },\n\n addStepButtonWrap: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: 5,\n },\n\n addStepButtonHover: {\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[3],\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n color: \"#fff\",\n },\n },\n}));\n\n// const data = [\n// {\n// id: \"111\",\n// type: \"email\",\n// value: \"send_email\",\n// name: \"Send email to member\",\n// description: \"You just registered for {{space_name}}\"\n// },\n// {\n// id: \"222\",\n// type: \"member\",\n// value: \"add_to_existing_space\",\n// name: \"Add person to a space\",\n// description: \"Welcome and orientation\"\n// },\n// {\n// id: \"333\",\n// type: \"member\",\n// value: \"add_to_new_space\",\n// name: \"Add person to a new space\",\n// description: \"Awareness in Action - {{first_name}} {{last_name}}\"\n// },\n// {\n// id: \"444\",\n// type: \"structure\",\n// value: \"add_structure\",\n// name: \"Add structure\",\n// description: \"Module 1 conversation\"\n// },\n// {\n// id: \"555\",\n// type: \"survey\",\n// value: \"survey_person\",\n// name: \"Survey person on join\",\n// description: \"Registration survey\"\n// },\n// {\n// id: \"666\",\n// type: \"pending\",\n// value: \"set_to_pending\",\n// name: \"Set member status to pending\",\n// description: \"New members will be held in a pending state before they can access this space\"\n// },\n// {\n// id: \"777\",\n// type: \"wait\",\n// value: \"wait\",\n// name: \"Wait for 1 day\",\n// description: \"The next step will happen 1 day after the previous step\"\n// },\n// {\n// id: \"888\",\n// type: \"member\",\n// value: \"add_from_sub_space\",\n// name: \"Add new sub space members to another space\",\n// description: \"Community discussion\"\n// },\n// {\n// id: \"999\",\n// type: \"wait\",\n// value: \"apply_template\",\n// name: \"Add new sub space members to another space\",\n// description: \"Creator space\"\n// }\n// ]\n\nexport default function RegistrationFlow(props) {\n const { classes, cx, theme } = useStyles();\n const { language, setLangUser } = useLangUser();\n const space = useSelector((state) => state.space);\n const { t, i18n } = useTranslation();\n const [journey, setJourney] = useState(null);\n const [steps, handlers] = useListState([]);\n const mounted = useRef(false);\n const [isDragging, setIsDragging] = useState(false);\n const [settingsOpened, setSettingsOpened] = useState(false);\n const [addStepOpened, setAddStepOpened] = useState(false);\n const [selectedStep, setSelectedStep] = useState(\"\");\n const [triggerEdit, setTriggerEdit] = useState(null);\n // const [actionName, setActionName] = useState(\"\");\n // const [actionValue, setActionValue] = useState(\"\");\n const [stepPosition, setStepPosition] = useState(null);\n const [trigger, setTrigger] = useState(\"interested-registered\");\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n if (space.journeys && space.journeys.length > 0) {\n setTrigger(space.journeys[0].trigger);\n }\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [addStepOpened]);\n\n useEffect(() => {\n if (!addStepOpened && !settingsOpened) {\n onFetch();\n setSelectedStep(null);\n }\n }, [addStepOpened, settingsOpened]);\n\n useEffect(() => {\n if (mounted.current) {\n onReorder();\n } else {\n mounted.current = true;\n }\n }, [steps]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [trigger]);\n\n // useEffect(() => {\n // if (!addStepOpened && !settingsOpened){\n // onFetch()\n // setSelectedStep(null)\n // }\n // }, [addStepOpened, settingsOpened])\n\n // const onFetch = () => {\n // JourneyModel.onFetch(space.slug, {page: 1, per: 10000}, (data) => {\n // setJourney(data.data)\n // }, (data) => {\n //\n // })\n // }\n\n const onReorder = () => {\n if (steps.length == 0) {\n return;\n }\n\n const order = steps.map((step, index) => {\n return { id: step.id, position: index + 1 };\n });\n\n StepModel.onReorder(\n space.id,\n journey,\n order,\n (data) => {},\n (data) => {}\n );\n };\n\n const onDestroy = (event, step) => {\n event.preventDefault();\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This step will be permanently deleted\",\n showDenyButton: true,\n confirmButtonText: \"Delete step\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n StepModel.onDestroy(\n step.id,\n space.slug,\n step.journey_id,\n (data) => {\n setSettingsOpened(false);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const triggerOptions = [\n {\n label: t(\n \"spaces.settings.registration.registrationFlow.registration.label1\"\n ),\n value: \"interested-registered\",\n description: t(\n \"spaces.settings.registration.registrationFlow.registration.description3\"\n ),\n },\n\n {\n label: t(\n \"spaces.settings.registration.registrationFlow.registration.label2\"\n ),\n value: \"registered\",\n description: t(\n \"spaces.settings.registration.registrationFlow.registration.description4\"\n ),\n },\n\n {\n label: t(\n \"spaces.settings.registration.registrationFlow.registration.label3\"\n ),\n value: \"interested\",\n description: t(\n \"spaces.settings.registration.registrationFlow.registration.description5\"\n ),\n },\n ];\n\n const onFetch = () => {\n JourneyModel.onFetchByTrigger(\n trigger,\n space.slug,\n (data) => {\n setJourney(data.id);\n handlers.setState(data.steps);\n\n if (triggerEdit) {\n setSelectedStep(\n data.steps.filter((step) => step.id === triggerEdit)[0]\n );\n setSettingsOpened(true);\n setTriggerEdit(null);\n }\n },\n (data) => {}\n );\n\n // JourneyModel.onFetchById(space.journey_id, space.slug, (data) => {\n // setJourney(data.id)\n // handlers.setState(data.steps);\n //\n // if (triggerEdit){\n // setSelectedStep(data.steps.filter(step => step.id === triggerEdit)[0])\n // setSettingsOpened(true)\n // setTriggerEdit(null)\n // }\n //\n // }, (data) => {\n //\n // })\n };\n\n const displayName = (step) => {\n if (step.action == \"wait_until\" && step.wait_until) {\n const wait_until = new Date(step.wait_until).toISOString();\n return `${step.name} ${DateTime.fromISO(wait_until)\n .setLocale(language)\n .toFormat(\"EEE, MMM d y, h:mm a\")}`;\n } else {\n return step.name;\n }\n };\n\n const displayStepIcon = (value) => {\n if (value == \"send_email\") {\n return (\n ({ color: theme.colors.blue[5] })}\n >\n \n \n );\n } else if (\n value == \"add_to_existing_space\" ||\n value == \"add_to_new_space\" ||\n value == \"add_from_sub_space\" ||\n value == \"add_sub_circle_members\"\n ) {\n return (\n ({ color: theme.colors.green[5] })}\n >\n \n \n );\n } else if (value == \"add_structure\") {\n return (\n ({ color: theme.colors.cyan[5] })}\n >\n \n \n );\n } else if (value == \"survey_person\") {\n return (\n ({ color: theme.colors.violet[5] })}\n >\n \n \n );\n } else if (value == \"set_to_pending\") {\n return (\n ({ color: theme.colors.red[5] })}\n >\n \n \n );\n } else if (\n value == \"wait\" ||\n value == \"wait_until\" ||\n value == \"wait_until_structure_complete\"\n ) {\n return (\n ({ color: theme.colors.gray[5] })}\n >\n \n \n );\n } else if (value == \"apply_template\") {\n return (\n ({ color: theme.colors.yellow[5] })}\n >\n \n \n );\n }\n };\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const AddStepBlock = (position) => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n \n {\n setAddStepOpened(true);\n setStepPosition(position);\n }}\n classNames={{\n outline: classes.addStepHover,\n }}\n >\n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n };\n\n const items = steps.map((item, index) => (\n \n {(provided, snapshot) => (\n
\n \n \n {/*displayStepIcon(item.action)*/}\n \n \n {displayName(item)}\n \n {item.description}\n \n \n \n {\n setSelectedStep(item);\n setSettingsOpened(true);\n }}\n classNames={{\n hover: classes.settings,\n outline: classes.settings,\n }}\n >\n \n \n \n \n
\n \n \n \n {AddStepBlock(index + 1)}\n \n )}\n \n ));\n\n return (\n <>\n \n {t(\n \"spaces.settings.registration.registrationFlow.registration.description1\"\n )}\n \n \n {t(\n \"spaces.settings.registration.registrationFlow.registration.description2\"\n )}\n \n \n \n \n {AddStepBlock(0)}\n {\n setIsDragging(true);\n }}\n onDragEnd={({ destination, source }) => {\n handlers.reorder({ from: source.index, to: destination.index });\n setIsDragging(false);\n }}\n >\n \n {(provided) => (\n
\n {items}\n {provided.placeholder}\n
\n )}\n
\n \n \n
\n {\n setAddStepOpened(true);\n setStepPosition(null);\n }}\n classNames={{\n outline: classes.addStepButtonHover,\n }}\n variant=\"outline\"\n color=\"gray\"\n radius=\"xl\"\n >\n {t(\n \"spaces.settings.registration.registrationFlow.registration.addButton\"\n )}\n \n
\n
\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Container,\n Box,\n Divider,\n Text,\n Group,\n Accordion,\n Card,\n UnstyledButton,\n Button,\n Skeleton,\n MantineProvider,\n Select,\n createStyles,\n useMantineTheme,\n Input,\n Tooltip,\n Switch,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useNavigate, useParams } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport InvitePeople from \"./members/InvitePeople\";\nimport SectionHeader from \"./layout/SectionHeader\";\nimport Scheduling from \"./main/Scheduling\";\nimport Additional from \"./main/Additional\";\nimport Seo from \"./main/Seo\";\nimport Scripts from \"./main/Scripts\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport Open from \"./privacy/Open\";\nimport Private from \"./privacy/Private\";\nimport Paid from \"./privacy/Paid\";\n\nimport RegistrationFlow from \"./registration/RegistrationFlow\";\n\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport MemberModel from \"../../../models/Member\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport Swal from \"sweetalert2\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nconst useStyles = createStyles((theme) => ({\n card: {\n backgroundColor: theme.colors.gray[0],\n },\n //\n // inner: {\n // display: 'flex',\n //\n // [theme.fn.smallerThan(350)]: {\n // flexDirection: 'column',\n // },\n // },\n //\n // ring: {\n // flex: 1,\n // display: 'flex',\n // justifyContent: 'flex-end',\n //\n // [theme.fn.smallerThan(350)]: {\n // justifyContent: 'center',\n // marginTop: theme.spacing.md,\n // },\n // },\n\n metricItem: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n borderRadius: theme.radius.md,\n padding: 10,\n backgroundColor: theme.colors.gray[0],\n transition: \"box-shadow 150ms ease, transform 100ms ease\",\n\n \"&:hover\": {\n boxShadow: `${theme.shadows.xs} !important`,\n backgroundColor: theme.white,\n transform: \"scale(1.05)\",\n },\n },\n customLinkRight: {\n backgroundColor: theme.colors.gray[2],\n display: \"flex\",\n alignItems: \"center\",\n paddingLeft: 5,\n paddingRight: 5,\n height: 36,\n borderTopLeftRadius: 5,\n borderBottomLeftRadius: 5,\n borderTop: `1px solid ${theme.colors.gray[4]}`,\n borderBottom: `1px solid ${theme.colors.gray[4]}`,\n borderLeft: `1px solid ${theme.colors.gray[4]}`,\n color: theme.colors.gray[7],\n },\n customLinkLeft: {\n backgroundColor: theme.colors.gray[2],\n display: \"flex\",\n alignItems: \"center\",\n paddingLeft: 5,\n paddingRight: 5,\n height: 36,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderTop: `1px solid ${theme.colors.gray[4]}`,\n borderBottom: `1px solid ${theme.colors.gray[4]}`,\n borderRight: `1px solid ${theme.colors.gray[4]}`,\n color: theme.colors.gray[7],\n },\n accordionTitle: {\n fontWeight: 800,\n fontSize: 40,\n color: \"red\",\n root: {\n fontWeight: 800,\n fontSize: 40,\n },\n child: {\n fontWeight: 800,\n fontSize: 40,\n },\n \"& > div > div\": {\n fontWeight: \"800 !important\",\n fontSize: \"40px !important\",\n },\n },\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n}));\n\nlet calendarUpdateTimer = null;\n\nexport default function Main() {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n const paramsUrl = useParams();\n const dispatch = useDispatch();\n const space = useSelector((state) => state.space);\n const { classes } = useStyles();\n const theme = useMantineTheme();\n const smallScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n const [settings, setSettings] = useState(null);\n const [privacySelection, setPrivacySelection] = useState(\"open\");\n const [blockUntilRegistered, setBlockUntilRegistered] = useState();\n const [visibility, setVisibility] = useState();\n const [accordionState, setAccordionState] = useState({\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n 4: false,\n 5: false,\n });\n const [editLink, setEditLink] = useState(false);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n const [sharebleLink, setSharebleLink] = useState(\"\");\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n interested: 0,\n invitations: 0,\n payments: 0,\n earnings: 0,\n formatted_earnings: \"$0\",\n });\n const [inviteOpened, setInviteOpened] = useState(false);\n const [refresh, setRefresh] = useState(false);\n const [urlHandle, setUrlHandle] = useState(\"\");\n const [useLegacyRegistrationPage, setUseLegacyRegistrationPage] =\n useState(false);\n\n const [opened, setOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const [loading, setLoading] = useState(false);\n\n const accordionLoaded = useRef();\n\n useEffect(() => {\n console.log(accordionState);\n if (accordionLoaded.current) {\n localStorage.setItem(\n \"lastOpenedSettingsTabs\",\n JSON.stringify(accordionState)\n );\n }\n }, [accordionState]);\n\n useEffect(() => {\n setLoading(true);\n }, [paramsUrl]);\n\n useEffect(() => {\n if (space && space.slug) {\n const search = window.location.search;\n const section = new URLSearchParams(search).get(\"section\");\n if (section) {\n const sections = {\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n 4: false,\n 5: false,\n };\n sections[section] = true;\n setAccordionState(sections);\n } else {\n const auxState = localStorage.getItem(\"lastOpenedSettingsTabs\", \"\");\n if (auxState && auxState != \"null\") {\n setAccordionState(JSON.parse(auxState));\n }\n }\n\n accordionLoaded.current = true;\n\n setUrlHandle(space.url_handle);\n setSharebleLink(space.shareble_link);\n onFetchCounts();\n onFetch();\n }\n\n setValidatePremium(\n space && space.permissions && space.permissions.can_edit_shareable_link\n );\n }, [space]);\n\n useEffect(() => {\n if (settings) {\n setPrivacySelection(settings.privacy_level);\n setBlockUntilRegistered(settings.block_until_registered);\n setVisibility(settings.visibility == \"public\");\n setUseLegacyRegistrationPage(settings.use_legacy_registration_page);\n }\n }, [settings]);\n\n useEffect(() => {\n if (settings && settings.privacy_level != privacySelection) {\n onUpdate({ privacy_level: privacySelection });\n }\n }, [privacySelection]);\n\n useEffect(() => {\n if (settings && settings.block_until_registered != blockUntilRegistered) {\n onUpdate({ block_until_registered: blockUntilRegistered });\n }\n }, [blockUntilRegistered]);\n\n useEffect(() => {\n if (settings && settings.visibility != visibility) {\n onUpdate({ visibility: visibility ? \"public\" : \"\" });\n }\n }, [visibility]);\n\n useEffect(() => {\n if (\n settings &&\n settings.use_legacy_registration_page != useLegacyRegistrationPage\n ) {\n onUpdate({ use_legacy_registration_page: useLegacyRegistrationPage });\n }\n }, [useLegacyRegistrationPage]);\n\n useEffect(() => {\n if (editLink && !validatePremium[0]) {\n setEditLink(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n }\n }, [editLink]);\n\n const displayPrivacySelection = () => {\n if (privacySelection == \"open\") {\n return ;\n } else if (privacySelection == \"private\") {\n return ;\n } else if (privacySelection == \"payment\") {\n return (\n \n );\n } else {\n return ;\n }\n };\n\n const itemsList = [\n {\n label: t(\"spaces.settings.main.main.label2\"),\n index: 0,\n },\n\n {\n label: t(\"spaces.settings.main.main.label3\"),\n description: t(\"spaces.settings.main.main.description4\"),\n index: 1,\n },\n {\n label: t(\"spaces.settings.main.main.label4\"),\n description: t(\"spaces.settings.main.main.description5\"),\n index: 2,\n },\n {\n label: t(\"spaces.settings.main.main.label5\"),\n description: t(\"spaces.settings.main.main.description6\"),\n index: 3,\n },\n {\n label: t(\"spaces.settings.main.main.label6\"),\n description: t(\"spaces.settings.main.main.description7\"),\n index: 4,\n },\n {\n label: t(\"spaces.settings.main.main.label7\"),\n description: t(\"spaces.settings.main.main.description8\"),\n index: 5,\n },\n ];\n\n const privacyOptions = [\n {\n label: t(\"spaces.settings.main.main.label8\"),\n value: \"open\",\n description: t(\"spaces.settings.main.main.description9\"),\n },\n\n {\n label: t(\"spaces.settings.main.main.label9\"),\n value: \"private\",\n description: t(\"spaces.settings.main.main.description10\"),\n },\n {\n label: t(\"spaces.settings.main.main.label10\"),\n value: \"payment\",\n description: t(\"spaces.settings.main.main.description11\"),\n },\n ];\n\n const registrationOptions = [\n {\n value: \"open and on\",\n description: t(\"spaces.settings.main.main.description12\"),\n },\n\n {\n value: \"open and off\",\n description: t(\"spaces.settings.main.main.description13\"),\n },\n {\n value: \"private and on\",\n description: t(\"spaces.settings.main.main.description14\"),\n },\n {\n value: \"private and off\",\n description: t(\"spaces.settings.main.main.description15\"),\n },\n {\n value: \"payment and on\",\n description: t(\"spaces.settings.main.main.description16\"),\n },\n {\n value: \"payment and off\",\n description: t(\"spaces.settings.main.main.description17\"),\n },\n ];\n\n const AccordionLabel = ({ label, description, index }) => {\n return (\n \n
\n \n {label}\n \n\n {!accordionState[index] ? (\n \n {description}\n \n ) : (\n \"\"\n )}\n
\n
\n );\n };\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const getStats = () => {\n const keys = Object.keys(counts);\n const stats = [];\n\n if (counts.active > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label11\"),\n value: counts.active,\n section: \"registered\",\n scope: \"all\",\n });\n }\n if (counts.pending > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label12\"),\n value: counts.pending,\n section: \"registered\",\n scope: \"pending\",\n });\n }\n if (counts.interested > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label13\"),\n value: counts.interested,\n section: \"interested\",\n });\n }\n if (counts.invitations > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label14\"),\n value: counts.invitations,\n section: \"invited\",\n });\n }\n if (counts.earnings > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label15\"),\n value: getSymbolFromCurrency(formatted_earnings),\n section: \"payments\",\n });\n }\n\n return stats;\n };\n\n const onFetch = () => {\n SpaceSettingModel.onFetch(\n space.slug,\n (data) => {\n setSettings({\n ...data.space,\n settings: { ...data.settings },\n payment_settings: { ...data.payment_settings },\n });\n\n setTimeout(() => {\n setLoading(false);\n }, 250);\n },\n (data) => {}\n );\n };\n\n const onUpdate = (params) => {\n const main = Object.assign({}, settings, params);\n delete main.pod_settings_attributes;\n delete main.pod_settings_attributes;\n const _settings = Object.assign(\n {},\n settings.settings,\n params.pod_settings_attributes\n );\n const payment_settings = Object.assign(\n {},\n settings.payment_settings,\n params.pod_payment_settings_attributes\n );\n\n setSettings({\n ...main,\n settings: { ..._settings },\n payment_settings: { ...payment_settings },\n });\n\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {\n // onFetch();\n },\n (data) => {}\n );\n };\n\n const onUpdateUrlHandle = () => {\n // const urlHandle = document.getElementById(\"url_handle\").value;\n\n SpaceSettingModel.onUpdateUrlHandle(\n space.slug,\n urlHandle,\n (data) => {\n setEditLink(false);\n setSharebleLink(data.shareable_link);\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const goToMembers = (stat) => {\n let link = `/space/${space.slug}/settings/members?section=${stat.section}`;\n if (stat.scope) {\n link += `?scope=${stat.scope}`;\n }\n navigate(link);\n };\n\n const getPrivacyMessage = () => {\n const selection = privacyOptions.filter(\n (item) => item.value == privacySelection\n )[0];\n if (selection) {\n return `${selection.label} - ${selection.description}`;\n } else {\n return \"\";\n }\n };\n\n const getRegistrationMessage = () => {\n const showPage = blockUntilRegistered ? \"on\" : \"off\";\n const registrationSetting = `${privacySelection} and ${showPage}`;\n const selection = registrationOptions.filter(\n (item) => item.value == registrationSetting\n )[0];\n\n if (selection) {\n return selection.description;\n } else {\n return \"\";\n }\n };\n\n const onEditRegistrationPage = () => {\n if (settings && settings.use_legacy_registration_page) {\n window.location.href= `/circle/${space.slug}/pages/manage/1?auth_token=${window.$currentUserAuthToken}`;\n } else {\n // navigate(`/space/${space.slug}/registration/edit`);\n window.location.href= `/space/${space.slug}/registration/edit`;\n }\n };\n\n const onViewRegistrationPage = () => {\n if (settings && settings.use_legacy_registration_page) {\n window.open(\n `/circle/${space.slug}/register?preview=true&auth_token=${window.$currentUserAuthToken}`,\n `_blank`\n );\n } else {\n window.open(`/space/${space.slug}/registration/view`, `_blank`);\n }\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n if (loading) {\n return (\n ({\n // maxWidth: \"960px\",\n // width: \"960px\",\n height: \"100%\",\n })}\n >\n \n \n \n );\n }\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n setInviteOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.main.main.invite\")}\n \n \n }\n />\n\n \n
\n \n \n \n \n {t(\"spaces.settings.main.main.shareableLink\")}\n \n {editLink ? (\n \n setEditLink(false)}\n >\n {t(\"spaces.settings.main.main.cancelLink\")}\n \n onUpdateUrlHandle()}\n >\n {t(\"spaces.settings.main.main.saveLink\")}\n \n \n ) : (\n setEditLink(true)}\n >\n {t(\"spaces.settings.main.main.editLinkButton\")}\n \n )}\n \n {editLink ? (\n <>\n \n \n https://\n \n \n setUrlHandle(event.currentTarget.value)\n }\n placeholder={t(\"spaces.settings.main.main.subdomain\")}\n radius={0}\n sx={(theme) => ({\n width: 140,\n })}\n />\n \n {t(\"spaces.settings.main.main.sutra_co\")}\n \n \n \n ) : (\n \n onCopyLink()}\n text={sharebleLink}\n >\n \n {`${sharebleLink}`}\n \n \n \n )}\n \n {smallScreen ? (\n ({\n borderTopColor: theme.colors.gray[2],\n width: \"100%\",\n })}\n />\n ) : (\n \"\"\n )}\n\n \n {getStats().map((stat) => (\n goToMembers(stat)}\n >\n \n {stat.value}\n \n \n {stat.label}\n \n \n ))}\n \n \n
\n
\n\n setAccordionState(event)}\n >\n \n }\n >\n \n \n \n \n\n {privacySelection != \"private\" &&\n space.slug &&\n space.belongs_to_private_or_paid_circles && (\n \n
\n \n {t(\"spaces.settings.main.main.title1\")}\n \n \n {t(\"spaces.settings.main.main.description1\")}\n \n
\n \n setVisibility(event.currentTarget.checked)\n }\n />\n
\n )}\n\n {displayPrivacySelection()}\n
\n \n\n \n }\n >\n <>\n \n
\n \n {t(\"spaces.settings.main.main.title2\")}\n \n \n {t(\"spaces.settings.main.main.description2\")}\n \n
\n \n setBlockUntilRegistered(event.currentTarget.checked)\n }\n />\n
\n {settings && settings.has_legacy_registration_page && (\n \n
\n \n {t(\"spaces.settings.main.main.title3\")}\n \n \n {t(\"spaces.settings.main.main.description3\")}\n \n
\n \n setUseLegacyRegistrationPage(event.currentTarget.checked)\n }\n />\n
\n )}\n\n \n \n \n \n \n \n \n\n }\n key={itemsList[2].label}\n >\n \n \n \n \n\n }\n key={itemsList[3].label}\n >\n \n \n\n }\n key={itemsList[4].label}\n >\n \n \n \n \n\n }\n key={itemsList[5].label}\n >\n \n \n \n \n \n\n \n\n \n \n \n
\n );\n}\n","// import axios from 'axios';\n\nclass DirectMessage {\n constructor() {\n if (this instanceof DirectMessage) {\n throw Error('DirectMessage class cannot be instantiated.');\n }\n }\n\n static onFetchOrCreate = async (user_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.post(`/api/v4/users/${user_id}/direct_messages.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n}\n\nexport default DirectMessage;\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Checkbox,\n Divider,\n Text,\n Badge,\n Group,\n Menu,\n Button,\n Tooltip,\n Stack,\n Select,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport useFrequencyOptions from \"../../../../collections/FrequencyOptions\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { DateTime } from \"luxon\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\nimport DirectMessageModel from \"../../../../models/DirectMessage\";\nimport StripeModel from \"../../../../models/Stripe\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport Swal from \"sweetalert2\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport {setTiptapSidemenu} from '../../../../store/app';\n\nconst statusColors = {\n active: \"green\",\n pending: \"orange\",\n deleted: \"red\",\n registration_survey: \"blue\",\n survey_payment: \"yellow\",\n};\n\nconst statusString = {\n active: \"Active\",\n pending: \"Pending\",\n deleted: \"Removed\",\n registration_survey: \"Survey\",\n survey_payment: \"Payment\",\n};\n\nconst statusMessage = {\n active: \"This member is active and has access to all space features\",\n pending:\n \"This member is currently pending and must be approved to access the space\",\n deleted: \"You removed this member from this space\",\n registration_survey:\n \"This member has registered but hasn't completed the registration survey\",\n survey_payment:\n \"This member has registered but hasn't completed the survey payment\",\n};\n\nconst rolesData = [\"Member\", \"Editor\", \"Manager\"];\n\nexport default function RegisteredRow(props) {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const theme = useMantineTheme();\n\n const { t, i18n } = useTranslation();\n\n const { frequencyOptions } = useFrequencyOptions();\n\n const [member, setMember] = useState({});\n const [role, setRole] = useState(null);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n useEffect(() => {\n if (\n !member.id ||\n member.id != props.member.id ||\n member.status == \"deleted\" ||\n (member.status != \"active\" && props.member.status == \"active\")\n ) {\n setMember(props.member);\n setRole(\n props.member.role.charAt(0).toUpperCase() +\n props.member.role.slice(1).toLowerCase()\n );\n }\n }, [props]);\n\n useEffect(() => {\n if (\n role &&\n ((member.role != \"member\" && role == \"Member\") ||\n (member.role != \"manager\" && role == \"Manager\") ||\n (member.role != \"editor\" && role == \"Editor\"))\n ) {\n onSelectedRole(role);\n }\n }, [role]);\n\n const onSetRole = (nextRole) => {\n if (\n nextRole == \"Member\" ||\n nextRole == \"Editor\" ||\n (nextRole == \"Manager\" && props.canAddNewManagers())\n ) {\n setRole(nextRole);\n }\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const onSelectedRole = (role) => {\n const newMember = { ...member };\n if (role == \"Manager\") {\n // newMember.is_manager = true\n ManagerModel.onCreate(\n props.spaceId,\n member.user_id,\n (data) => {\n // setMember(newMember)\n props.onUpdate(member);\n },\n (data) => {}\n );\n } else if (role == \"Editor\") {\n MemberModel.onUpdateRole(\n member.user_id,\n props.spaceId,\n \"editor\",\n (data) => {\n props.onUpdate(member);\n },\n (data) => {}\n );\n } else {\n if (member.role == \"manager\") {\n ManagerModel.onDestroy(\n member.user_id,\n props.spaceId,\n (data) => {\n props.onUpdate(member);\n },\n (data) => {}\n );\n } else {\n MemberModel.onUpdateRole(\n member.user_id,\n props.spaceId,\n \"member\",\n (data) => {\n props.onUpdate(member);\n },\n (data) => {}\n );\n }\n }\n };\n\n const onEmailFrequency = (frequency) => {\n const newMember = { ...member };\n newMember.email_frequency = frequency;\n MemberModel.onEmailFrequency(\n member.user_id,\n props.spaceId,\n frequency,\n (data) => {\n setMember(newMember);\n },\n (data) => {}\n );\n };\n\n const onApprove = () => {\n const newMember = { ...member };\n newMember.status = \"active\";\n MemberModel.onApprove(\n member.user_id,\n props.spaceId,\n (data) => {\n props.onUpdate(member);\n setMember(newMember);\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n const newMember = { ...member };\n newMember.status = \"deleted\";\n MemberModel.onDestroy(\n member.user_id,\n props.spaceId,\n (data) => {\n // props.onUpdate(member)\n setMember(newMember);\n },\n (data) => {}\n );\n };\n\n const onAdd = () => {\n MemberModel.onCreate(\n props.spaceId,\n member.user_id,\n (data) => {\n // props.onUpdate(data)\n setMember(data);\n },\n (data) => {}\n );\n };\n\n const onSendMessage = () => {\n DirectMessageModel.onFetchOrCreate(\n member.user_id,\n (data) => {\n dispatch(setTiptapSidemenu({ opened: \"direct\", option: data.space.slug}));\n },\n (data) => {}\n );\n };\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n const onCancelSubscription = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You are about to cancel this subscription\",\n showDenyButton: true,\n confirmButtonText: \"Delete subscription\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n StripeModel.onCancelSubscription(\n member.user_id,\n props.spaceId,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n \n \n \n\n \n \n onCopyLink()} text={member.email}>\n \n {member.email}\n \n \n \n \n\n \n \n \n {statusString[member.status]}\n \n \n \n\n \n {/*\n \n {roleString[\"member\"]}\n \n */}\n\n \n \n\n \n \n {member.status !== \"active\" && member.status !== \"deleted\" ? (\n onApprove()}\n >\n {t(\"spaces.settings.members.registeredRow.registered.roleApprove\")}\n \n ) : (\n \"\"\n )}\n {/*\n member.status == \"deleted\" ?\n (\n onAdd()}>\n Undo\n \n ) : (\"\")\n */}\n \n \n {t(\"spaces.settings.members.registeredRow.registered.joined\")}{new Date(member.joined).toLocaleString(DateTime.DATE_MED)}\n \n \n onSendMessage()}\n icon={}\n >\n {t(\"spaces.settings.members.registeredRow.registered.sendMessage\")}\n \n \n onSetRole(role == \"Manager\" ? \"Member\" : \"Manager\")\n }\n icon={}\n >\n {role == \"Manager\" ? \"Remove manager\" : \"Make manager\"}\n \n {props.hasSubscriptions && member.is_subscribed ? (\n onCancelSubscription()}\n icon={}\n >\n {t(\"spaces.settings.members.registeredRow.registered.stopCharging\")}\n \n ) : (\n \"\"\n )}\n \n \n \n {t(\"spaces.settings.members.registeredRow.registered.emailPreferences\")}\n \n \n }\n >\n {frequencyOptions.map((option) => {\n return (\n \n ) : (\n \"\"\n )\n }\n onClick={(event) => onEmailFrequency(option.value)}\n >\n {option.label}\n \n );\n })}\n \n \n onDestroy()}\n icon={}\n color=\"red\"\n >\n {t(\"spaces.settings.members.registeredRow.registered.removeMember\")}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Checkbox,\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n SegmentedControl,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./RegisteredRow\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst statusColors = {\n active: \"green\",\n pending: \"red\",\n registration_survey: \"blue\",\n survey_payment: \"yellow\",\n};\n\nconst statusString = {\n active: \"Active\",\n pending: \"Pending\",\n registration_survey: \"Survey\",\n survey_payment: \"Payment\",\n};\n\nconst statusMessage = {\n active: \"This member is active and has access to all space features\",\n pending:\n \"This member is currently pending and must be approved to access the space\",\n registration_survey:\n \"This member has registered but hasn't completed the registration survey\",\n survey_payment:\n \"This member has registered but hasn't completed the survey payment\",\n};\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function Registered(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const checkSearchParams = () => {\n const search = location.search;\n const scope = new URLSearchParams(search).get(\"scope\");\n\n if (scope) {\n setScope(scope);\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n onFetchCounts();\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n useEffect(() => {\n if (props.refresh) {\n setLoading(true);\n setTimeout(() => {\n onFetch();\n onFetchCounts();\n props.setRefresh(false);\n }, 2000);\n }\n }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setLoading(false);\n setMembers(data);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onApproveAll = () => {\n MemberModel.onApproveAll(\n space.slug,\n (data) => {\n onFetch();\n onFetchCounts();\n },\n (data) => {}\n );\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.registered.registered.searchPlaceholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n // onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.registered.registered.searchButton\")}\n \n {loading && }\n \n\n \n {!hasSelections() && (\n ({ backgroundColor: theme.colors.gray[0] })}\n data={[\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.all\"\n )} (${counts.all})`,\n value: \"all\",\n },\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.active\"\n )} (${counts.active})`,\n value: \"active\",\n },\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.pending\"\n )} (${counts.pending})`,\n value: \"pending\",\n },\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.manager\"\n )} (${counts.managers})`,\n value: \"managers\",\n },\n ]}\n />\n )}\n {hasSelections() && (\n <>\n \n props.onSendBroadcast(\"email\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.registered.registered.email\")}\n \n \n props.onSendBroadcast(\"message\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.registered.registered.message\")}\n \n \n )}\n \n \n\n \n {members.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.registered.registered.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n
\n \n onSelectAll(event.currentTarget.checked)\n }\n />\n \n {t(\n \"spaces.settings.members.registered.registeredTable.member\"\n )}\n \n {t(\n \"spaces.settings.members.registered.registeredTable.email\"\n )}\n \n {t(\n \"spaces.settings.members.registered.registeredTable.status\"\n )}\n \n \n \n {t(\n \"spaces.settings.members.registered.registeredTable.role\"\n )}\n \n onApproveAll()}\n >\n {t(\n \"spaces.settings.members.registered.registeredTable.roleApproveAll\"\n )}\n \n \n
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Divider, Text, Group, Menu, Tooltip } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { DateTime } from \"luxon\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport Swal from \"sweetalert2\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nexport default function InvitedRow(props) {\n const [invitation, setInvitation] = useState({});\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n const { t, i18n } = useTranslation();\n useEffect(() => {\n if (!invitation.id || invitation.id != props.invitation.id) {\n setInvitation(props.invitation);\n }\n }, [props]);\n\n const onResend = () => {\n InvitationModel.onResend(\n invitation.id,\n props.spaceId,\n (data) => {\n Swal.fire(\n \"Invitation sent\",\n \"Your invitation has been resent\",\n \"success\"\n );\n },\n (data) => {}\n );\n };\n\n const onCopy = () => {\n // Swal.fire(\"Done\", \"Text copied to clipboard\", \"success\")\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const getFrequency = () => {\n if (!invitation) {\n return \"\";\n }\n if (!invitation.price) {\n return \"\";\n }\n if (!invitation.price.frequency) {\n return \"\";\n }\n return invitation.price.frequency != \"once\"\n ? ` / ${invitation.price.frequency.replace(\"per \", \"\")}`\n : \"\";\n };\n\n const ensure2Dec = (value) => {\n value = value ? parseFloat(value) : 0;\n return value.toFixed(2).replace(\".00\", \"\");\n };\n\n return (\n \n \n \n {invitation.email}\n \n \n\n \n ({\n backgroundColor: theme.colors.gray[1],\n color: theme.colors.dark[4],\n borderRadius: \"15px\",\n padding: \"3px 15px\",\n // display: \"inline\",\n \"&:hover\": {\n backgroundColor: \"#fff\",\n cursor: \"pointer\",\n },\n })}\n >\n \n onCopy()} text={invitation.link}>\n {invitation.link}\n \n \n \n \n\n {invitation.price && (\n \n {invitation.price.is_flexible\n ? \"Flexible\"\n : invitation.price.currency &&\n (invitation.price.price || invitation.price.price == 0)\n ? `${getSymbolFromCurrency(invitation.price.currency)}${ensure2Dec(\n invitation.price.price\n )}${getFrequency()}`\n : \"\"}\n \n )}\n {!invitation.price && }\n\n {new Date(invitation.sent_at).toLocaleString(DateTime.DATE_MED)}\n\n \n \n \n onResend()}\n icon={}\n >\n {t(\"spaces.settings.members.invitedrow.invitation.resend\")}\n \n \n props.onDestroy(invitation)}\n icon={}\n color=\"red\"\n >\n {t(\"spaces.settings.members.invitedrow.invitation.cancel\")}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./InvitedRow\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nexport default function Invited(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [invitations, setInvitations] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [term, setTerm] = useState(null);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n useEffect(() => {\n if (props.refresh) {\n onFetch();\n props.setRefresh(false);\n }\n }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n InvitationModel.onFetch(\n space.slug,\n paginator,\n { term },\n (data) => {\n console.log(\"invitations: \", data);\n setInvitations(data);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onInvitationDestroy = (invitation) => {\n InvitationModel.onDestroy(\n invitation.id,\n space.slug,\n (data) => {\n const newInvitations = { ...invitations };\n for (var i = 0; i < newInvitations.data.length; i++) {\n if (newInvitations.data[i].id == invitation.id) {\n newInvitations.data.splice(i, 1);\n break;\n }\n }\n setInvitations(newInvitations);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.invited.invited.placeholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.invited.invited.button\")}\n \n {loading && }\n \n \n\n \n {invitations.data.length == 0 ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.invited.invited.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n {invitations.data.map((invitation) => {\n return (\n \n );\n })}\n \n
{t(\"spaces.settings.members.invited.table.email\")}\n {t(\"spaces.settings.members.invited.table.invitationlink\")}\n {t(\"spaces.settings.members.invited.table.amount\")}{t(\"spaces.settings.members.invited.table.date\")}
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Badge, Group, Menu, Tooltip, Stack } from \"@mantine/core\";\n\nimport { useDispatch } from \"react-redux\";\nimport useFrequencyOptions from \"../../../../collections/FrequencyOptions\";\n\nimport { DateTime } from \"luxon\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport StripeModel from \"../../../../models/Stripe\";\nimport { colors } from \"../../../../collections/colors\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setTiptapSidemenu } from \"../../../../store/app\";\n\nconst statusColors = {\n paid: \"green\",\n refunded: \"red\",\n failed: \"yellow\",\n pending: \"yellow\",\n};\n\nconst statusString = {\n paid: \"Paid\",\n refunded: \"Refunded\",\n failed: \"Failed\",\n pending: \"Pending\",\n};\n\nconst statusMessage = {\n paid: \"This payment is complete\",\n refunded: \"This payment has been refunded\",\n failed: \"This payment has not been processed\",\n pending: \"This payment has not been processed\",\n};\n\nexport default function PaymentRow(props) {\n \n const dispatch = useDispatch();\n\n const [payment, setPayment] = useState({ user: { avatar: {} } });\n const { frequencyOptions } = useFrequencyOptions();\n const { t, i18n } = useTranslation();\n \n useEffect(() => {\n if (!payment.id || payment.id != props.payment.id) {\n setPayment(props.payment);\n }\n }, [props]);\n\n const onRefund = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You are about to refund the full amount of this payment\",\n showDenyButton: true,\n confirmButtonText: \"Yes, refund\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n StripeModel.onRefund(\n props.spaceId,\n payment.id,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n if (!payment || !payment.user) {\n return null;\n }\n\n return (\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {payment.user.full_name}\n \n \n @{payment.user.username}\n \n \n \n \n\n \n {getSymbolFromCurrency(payment.currency)}\n {payment.formatted_amount}\n \n\n {new Date(payment.created_at).toLocaleString(DateTime.DATE_MED)}\n\n \n \n \n {statusString[payment.status]}\n \n \n \n\n \n {payment.status == \"paid\" ? (\n \n \n }\n color=\"red\"\n onClick={() => onRefund()}\n >\n {t(\"spaces.settings.members.paymentRow.payment.refundPayment\")}\n \n \n \n ) : (\n \"\"\n )}\n \n \n );\n}\n","// import axios from 'axios';\n\nclass Payment {\n constructor() {\n if (this instanceof Payment) {\n throw Error('Payment class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, paginator, {term}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n term,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/payments.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (payment_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/payments/${payment_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Payment;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n SegmentedControl\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./PaymentRow\";\nimport PaymentModel from \"../../../../models/Payment\";\nimport MemberModel from \"../../../../models/Member\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function Payments(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [payments, setPayments] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n earnings: 0,\n formatted_earnings: \"\"\n });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n onFetchCounts()\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n // useEffect(() => {\n // if (props.refresh) {\n // onFetch();\n // props.setRefresh(false);\n // }\n // }, [props]);\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n PaymentModel.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setPayments(data);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onPaymentUpdate = () => {};\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.payments.payment.searchPlaceholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.payments.payment.searchButton\")}\n \n {loading && }\n \n \n\n \n ({ backgroundColor: theme.colors.gray[0] })}\n data={[\n {\n label: `${counts.formatted_earnings}`,\n value: \"all\",\n },\n ]}\n />\n \n\n \n {payments.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.payments.payment.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n {payments.data.map((payment) => {\n return (\n \n );\n })}\n \n
\n {t(\"spaces.settings.members.payments.paymentTable.member\")}\n \n {t(\"spaces.settings.members.payments.paymentTable.amount\")}\n \n {t(\"spaces.settings.members.payments.paymentTable.date\")}\n \n {t(\"spaces.settings.members.payments.paymentTable.status\")}\n
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n
\n );\n}\n","import axios from 'axios';\nimport { getCookie } from \"../utils/Cookies\";\n\nclass Interest {\n constructor() {\n if (this instanceof Interest) {\n throw Error('Interest class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, paginator, {term}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n term,\n ...paginator\n }\n\n await axios.get(`/api/v4/spaces/${slug}/interests.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, _params, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ..._params,\n affiliate: getCookie(\"affiliate_space\"),\n affiliate_date: getCookie(\"affiliate_space_date\"),\n affiliate_sutra: getCookie(\"affiliate_sutra\"),\n affiliate_sutra_date: getCookie(\"affiliate_sutra_date\"),\n }\n\n await axios.post(`/api/v4/spaces/${slug}/interests.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (pod_invitation_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await axios.delete(`/api/v4/spaces/${slug}/interests/${pod_invitation_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Interest;\n","import React, { useState, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport premiumMessages from \"../../collections/premiumMessages\";\nimport premiumFeatures from \"../../collections/premiumFeatures\";\n\nimport {\n createStyles,\n Container,\n Group,\n Text,\n Button,\n Box,\n Tooltip,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n featureItem: {\n alignItems: \"baseline\",\n marginTop: 5,\n },\n}));\n\nexport default function Premium(props) {\n const { t, i18n } = useTranslation();\n\n const premiumMsg = premiumMessages();\n const premiumFeat = premiumFeatures();\n\n const { classes, theme } = useStyles();\n const title = props.opened[1] ? premiumMsg[props.opened[1]].title : \"\";\n const message = props.opened[1] ? premiumMsg[props.opened[1]].message : \"\";\n const plan = props.opened[1]\n ? premiumMsg[props.opened[1]].plan.charAt(0).toUpperCase() +\n premiumMsg[props.opened[1]].plan.slice(1)\n : \"\";\n\n const features = () => {\n if (props.opened[1]) {\n return premiumFeat[plan.toLowerCase()].map((feature) => (\n \n {feature.icon}\n \n {feature.description}{\" \"}\n {feature.explanation && feature.explanation !== \"\" && (\n \n \n \n )}\n \n \n ));\n }\n };\n\n const onUpgrade = () => {\n props.setOpened(false);\n if (props.onUpgrade) {\n props.onUpgrade();\n }\n };\n\n return (\n \n \n \n ({\n color: theme.colors.green[6],\n })}\n >\n \n
\n \n {title}\n \n \n \n {t(\"app.premium.try\")} {plan}\n \n {props.opened[1] && {message}}\n \n {t(\"app.premium.include\")}:{\" \"}\n \n {features()}\n onUpgrade()}\n mt={25}\n radius=\"xl\"\n component={Link}\n to=\"/app/pricing\"\n >\n {t(\"app.premium.upgrade\")}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Group,\n Button,\n Drawer,\n TextInput,\n SegmentedControl,\n Switch,\n MultiSelect,\n Select,\n Divider,\n ScrollArea,\n Loader,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport Swal from \"sweetalert2\";\n\nimport ManagerModel from \"../../../../models/Manager\";\nimport BroadcastModel from \"../../../../models/Broadcast\";\nimport SpaceModel from \"../../../../models/Space\";\nimport Premium from \"../../../app/Premium\";\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\n\nexport default function ComposeBroadcast(props) {\n const [scheduled, setScheduled] = useState(false);\n const { t, i18n } = useTranslation();\n const [managers, setManagers] = useState([]);\n const [sender, setSender] = useState(\"\");\n\n const [spaces, setSpaces] = useState([]);\n const [searching, setSearching] = useState(false);\n const searchTimeoutId = useRef();\n const fixedUsers = useRef();\n const [loading, setLoading] = useState(false);\n\n const [canSendMessage, setCanSendMessage] = useState([]);\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n send_on_date: \"\",\n send_date: new Date(new Date().getTime() + 86400000),\n send_time: new Date(new Date().getTime() + 86400000),\n // send_to: [\"active\"],\n target: [],\n user_id: \"\",\n broadcast_type: \"email\",\n },\n\n validate: {\n content: (value) =>\n value.length > 0\n ? null\n : t(\"spaces.settings.broadcast.form.contentErrMessage\"),\n target: (value) =>\n value.length > 0\n ? null\n : t(\"spaces.settings.broadcast.form.targetErrMessage\"),\n },\n });\n\n useEffect(() => {\n onFetchManagers();\n onFetchSpaces();\n setCanSendMessage(\n space && space.permissions && space.permissions.can_send_message_broadcast\n );\n }, [space]);\n\n useEffect(() => {\n form.setFieldValue(\"user_id\", sender);\n }, [sender]);\n\n useEffect(() => {\n if (props.broadcast && props.broadcast.id) {\n form.setFieldValue(\"title\", props.broadcast.title);\n form.setFieldValue(\"content_json\", props.broadcast.content_json);\n form.setFieldValue(\"content\", props.broadcast.content);\n form.setFieldValue(\"send_on_date\", props.broadcast.send_on_date);\n form.setFieldValue(\"target\", props.broadcast.target);\n if (props.broadcast.send_time) {\n setScheduled(true);\n form.setFieldValue(\"send_date\", new Date(props.broadcast.send_time));\n form.setFieldValue(\"send_time\", new Date(props.broadcast.send_time));\n }\n if (props.broadcast.user && props.broadcast.user.id) {\n setSender(props.broadcast.user.id);\n }\n if (props.broadcast.broadcast_type) {\n form.setFieldValue(\"broadcast_type\", props.broadcast.broadcast_type);\n }\n // form.setFieldValue(\"send_to\", new Date(props.broadcast.send_time))\n } else {\n onResetForm();\n\n if (props.sendTo) {\n form.setFieldValue(\"send_to\", props.sendTo);\n }\n if (props.sendToUsers && props.sendToUsers.length > 0) {\n const usersIds = props.sendToUsers.map((user) => user.username);\n form.setFieldValue(\"target\", usersIds);\n fixedUsers.current = true;\n } else {\n form.setFieldValue(\"target\", []);\n fixedUsers.current = false;\n }\n\n if (props.broadcastType) {\n form.setFieldValue(\"broadcast_type\", props.broadcastType);\n }\n }\n }, [props]);\n\n const getSendToData = () => {\n if (fixedUsers.current) {\n return props.sendToUsers.map((user) => ({\n value: user.username,\n label: user.full_name,\n }));\n }\n\n const activeLabel = props.isTopLevel\n ? t(\"spaces.settings.broadcast.membersTypes.active\")\n : `${t(\"spaces.settings.broadcast.membersTypes.active\")} in ${\n props.parentName\n }`;\n\n const pendingLabel = props.isTopLevel\n ? t(\"spaces.settings.broadcast.membersTypes.pending\")\n : `${t(\"spaces.settings.broadcast.membersTypes.pending\")} in ${\n props.parentName\n }`;\n\n const interestedLabel = props.isTopLevel\n ? t(\"spaces.settings.broadcast.membersTypes.interested\")\n : `${t(\"spaces.settings.broadcast.membersTypes.interested\")} in ${\n props.parentName\n }`;\n\n const array = [\n { value: \"active\", label: activeLabel },\n { value: \"pending\", label: pendingLabel },\n { value: \"interested\", label: interestedLabel },\n ];\n\n if (form.values.broadcast_type == \"message\") {\n array.splice(2, 1);\n\n for (let i = 0; i < spaces.length; i++) {\n array.push(spaces[i]);\n }\n }\n\n return array;\n };\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n\n SpaceModel.onFetchChildren(\n space.slug,\n include,\n { page: 1, per: 10 },\n [\"active\", \"not_journey\", \"not_interactive\"],\n (data) => {\n setSpaces(\n data.data.map((item) => ({ label: item.name, value: item.slug }))\n );\n },\n (data) => {}\n );\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"title\", \"\");\n form.setFieldValue(\"content\", \"\");\n form.setFieldValue(\"send_on_date\", false);\n form.setFieldValue(\"send_date\", new Date(new Date().getTime() + 86400000));\n form.setFieldValue(\"send_time\", new Date(new Date().getTime() + 86400000));\n\n if (user && user.authenticated) {\n setSender(user.id);\n }\n };\n\n const onFetchManagers = () => {\n ManagerModel.onFetch(\n space.slug,\n { page: 1, per: 1000 },\n {},\n (data) => {\n const _managers = data.data.map((manager) => {\n return { label: manager.full_name, value: `${manager.user_id}` };\n });\n\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n onSave(\"\");\n };\n\n const onSaveDraft = () => {\n onSave(\"draft\");\n };\n\n const onSave = (status = null) => {\n if (loading) {\n return;\n }\n\n setLoading(true);\n\n const send_time = mergeDateAndTime(\n form.values.send_date,\n form.values.send_time\n );\n\n if (!status && scheduled) {\n status = \"scheduled\";\n }\n\n const params = {\n ...form.values,\n send_on_date: status == \"scheduled\",\n send_time: status == \"scheduled\" ? send_time : null,\n status,\n };\n if (props.broadcast && props.broadcast.id) {\n BroadcastModel.onUpdate(\n props.broadcast.id,\n space.slug,\n params,\n (data) => {\n Swal.fire(data.title, \"\", \"success\");\n onUpdate();\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }\n );\n } else {\n BroadcastModel.onCreate(\n space.slug,\n params,\n (data) => {\n Swal.fire(data.title, \"\", \"success\");\n onUpdate();\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }\n );\n }\n };\n\n const onUpdate = () => {\n props.setOpened(false);\n\n props.onUpdate();\n };\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n const onContentUpdate = (content, html) => {\n form.setFieldValue(\"content_json\", content.content);\n form.setFieldValue(\"content\", html);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.broadcast.form.composeBroadcast\")}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n
onSend(values))}>\n \n {form.values.broadcast_type == \"message\" && !canSendMessage[0] ? (\n \n \n \n ) : (\n \n {form.values.broadcast_type == \"email\" && (\n \n )}\n\n \n {form.values.broadcast_type == \"email\" && (\n \n {`${t(\n \"spaces.settings.broadcast.form.brackets.part1\"\n )} {{first_name}}, {{last_name}}, {{start_date}}, {{space_name}}, {{space_link}}, ${t(\n \"spaces.settings.broadcast.form.brackets.part2\"\n )} {{space_name_link}} ${t(\n \"spaces.settings.broadcast.form.brackets.part3\"\n )}`}\n \n )}\n {form.values.broadcast_type == \"message\" &&\n fixedUsers.current && (\n \n {`${t(\n \"spaces.settings.broadcast.form.brackets.part1\"\n )} {{first_name}}, {{last_name}} ${t(\n \"spaces.settings.broadcast.form.brackets.part3\"\n )}`}\n \n )}\n\n \n ) : (\n \n )\n }\n {...form.getInputProps(\"target\")}\n radius=\"sm\"\n size=\"md\"\n mt={15}\n searchable\n data={getSendToData()}\n label={t(\"spaces.settings.broadcast.form.target.label\")}\n placeholder={t(\n \"spaces.settings.broadcast.form.target.placeholder\"\n )}\n defaultValue={[\"active\"]}\n maxDropdownHeight={400}\n onSearchChange={(query) => onSearchSpaces(query)}\n styles={{\n label: { whiteSpace: \"break-spaces\" },\n value: { height: \"auto\" },\n }}\n />\n\n \n\n setScheduled(event.currentTarget.checked)}\n />\n {scheduled && (\n \n \n \n \n )}\n\n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n }\n type=\"submit\"\n >\n {scheduled\n ? t(\"spaces.settings.broadcast.form.scheduleBroadcast\")\n : t(\"spaces.settings.broadcast.form.sendBroadcast\")}\n \n {!fixedUsers.current && (\n }\n onClick={() => onSaveDraft()}\n >\n {t(\"spaces.settings.broadcast.form.saveDraft\")}\n \n )}\n \n \n )}\n \n \n
\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Menu } from \"@mantine/core\";\n\nimport { DateTime } from \"luxon\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport default function InterestedRow(props) {\n const [interest, setInterest] = useState({});\n const { t, i18n } = useTranslation();\n useEffect(() => {\n if (!interest.id || interest.id != props.interest.id) {\n setInterest(props.interest);\n }\n }, [props]);\n\n return (\n \n \n \n {interest.first_name}\n \n \n\n \n \n {interest.email}\n \n \n\n {new Date(interest.created_at).toLocaleString(DateTime.DATE_MED)}\n\n \n \n \n props.onDestroy(interest)}\n icon={}\n color=\"red\"\n >\n {t(\n \"spaces.settings.members.interested.interestedrow.removeFromList\"\n )}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n} from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport InterestModel from \"../../../../models/Interest\";\n\nimport ComposeBroadcast from \"../broadcast/ComposeBroadcast\";\n\nimport Row from \"./InterestedRow\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nexport default function Interested(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [interests, setInterests] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [term, setTerm] = useState(null);\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n useEffect(() => {\n if (props.refresh) {\n onFetch();\n props.setRefresh(false);\n }\n }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n InterestModel.onFetch(\n space.slug,\n paginator,\n { term },\n (data) => {\n setInterests(data);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onInterestDestroy = (interest) => {\n InterestModel.onDestroy(\n interest.id,\n space.slug,\n (data) => {\n const newInterest = { ...interests };\n for (var i = 0; i < newInterest.data.length; i++) {\n if (newInterest.data[i].id == interest.id) {\n newInterest.data.splice(i, 1);\n break;\n }\n }\n setInterests(newInterest);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onBroadcastUpdate = () => {\n // onFetch()\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.interested.interested.placeholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.interested.interested.button\")}\n \n {loading && }\n \n\n }\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n onClick={() => setOpened(true)}\n >\n {t(\"spaces.settings.members.interested.interested.broadcast\")}\n \n \n\n \n {interests.data.length == 0 ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.interested.interested.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n {interests.data.map((interest) => {\n return (\n \n );\n })}\n \n
\n {t(\"spaces.settings.members.interested.table.firstname\")}\n {t(\"spaces.settings.members.interested.table.email\")}{t(\"spaces.settings.members.interested.table.date\")}
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n\n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Container,\n Badge,\n Group,\n Center,\n ScrollArea,\n SegmentedControl,\n MantineProvider,\n Button,\n Box,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport Registered from \"./members/Registered\";\nimport Invited from \"./members/Invited\";\nimport Payments from \"./members/Payments\";\nimport Interested from \"./members/Interested\";\n\nimport InvitePeople from \"./members/InvitePeople\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport MemberModel from \"../../../models/Member\";\n\nimport ComposeBroadcast from \"./broadcast/ComposeBroadcast\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nexport default function Members() {\n const { t, i18n } = useTranslation();\n const location = useLocation();\n const space = useSelector((state) => state.space);\n const theme = useMantineTheme();\n const [pageSection, setPageSection] = useState(\"registered\");\n const [inviteOpened, setInviteOpened] = useState(false);\n const [refresh, setRefresh] = useState(false);\n\n const [counts, setCounts] = useState(false);\n const [opened, setOpened] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n\n const [canSendSelective, setCanSendSelective] = useState([]);\n\n const sendToUsers = useRef([]);\n const broadcastType = useRef(\"email\");\n\n useEffect(() => {\n checkSearchParams();\n }, location);\n\n useEffect(() => {\n setCanSendSelective(\n space &&\n space.permissions &&\n space.permissions.can_send_selective_broadcast\n );\n onFetchCounts();\n }, [space]);\n\n const onBroadcastUpdate = () => {};\n\n const onSendBroadcast = (type, users, selected) => {\n if (!canSendSelective[0]) {\n setOpenedPremium([true, canSendSelective[1], canSendSelective[2]]);\n return;\n }\n\n sendToUsers.current = [];\n for (let i = 0; i < users.length; i++) {\n if (\n selected.indexOf(users[i].username) >= 0 &&\n window.$currentUserId != users[i].user_id\n ) {\n sendToUsers.current.push({ ...users[i] });\n }\n }\n broadcastType.current = type;\n setOpened(true);\n };\n\n const checkSearchParams = () => {\n const search = location.search;\n const section = new URLSearchParams(search).get(\"section\");\n\n if (section) {\n setPageSection(section);\n }\n };\n\n const displayPageSection = () => {\n if (pageSection == \"registered\") {\n return (\n \n );\n } else if (pageSection == \"invited\") {\n return (\n \n );\n } else if (pageSection == \"interested\") {\n return (\n \n );\n } else if (pageSection == \"payments\") {\n return (\n \n );\n } else {\n return (\n \n );\n }\n };\n\n const onDownloadExcel = () => {\n MemberModel.onDownloadExcel(space.slug);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const getTab = (label, key) => {\n return (\n
\n {label}\n \n {counts[key]}\n \n
\n );\n };\n\n return (\n \n ({\n width: \"850px\",\n maxWidth: \"850px\",\n })}\n >\n \n onDownloadExcel()}\n sx={(theme) => ({\n backgroundColor: theme.colors.gray[1],\n color: theme.colors.gray[8],\n })}\n >\n {t(\"spaces.settings.members.members.download\")}\n \n setInviteOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.members.invite\")}\n \n \n }\n />\n\n setPageSection(value)}\n data={[\n {\n label: getTab(t(\"spaces.settings.members.members.member\"), \"all\"),\n value: \"registered\",\n },\n {\n label: getTab(\n t(\"spaces.settings.members.members.invited\"),\n \"invitations\"\n ),\n value: \"invited\",\n },\n {\n label: getTab(\n t(\"spaces.settings.members.members.interested\"),\n \"interested\"\n ),\n value: \"interested\",\n },\n {\n label: getTab(\n t(\"spaces.settings.members.members.payment\"),\n \"payments\"\n ),\n value: \"payments\",\n },\n ]}\n />\n\n \n {displayPageSection()}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n Menu,\n Group,\n Stack,\n Button,\n Badge,\n Divider,\n MantineProvider,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Copy, Edit } from \"tabler-icons-react\";\n\nimport { Link } from \"react-router-dom\";\n\nimport { DateTime } from \"luxon\";\n\nimport BroadcastModel from \"../../../../models/Broadcast\";\n\nimport Swal from \"sweetalert2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function BroadcastItem(props) {\n const { t, i18n } = useTranslation();\n\n const theme = useMantineTheme();\n const [broadcast, setBroadcast] = useState({ user: {} });\n\n useEffect(() => {\n if (props.broadcast && props.broadcast.id != broadcast.id) {\n setBroadcast(props.broadcast);\n }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(broadcast);\n };\n\n const onDuplicate = () => {\n BroadcastModel.onDuplicate(\n broadcast.id,\n props.spaceId,\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n Swal.fire({\n title: t(\"spaces.settings.broadcast.onDestroy.alertTitle\"),\n html: t(\"spaces.settings.broadcast.onDestroy.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.settings.broadcast.onDestroy.confirm\"),\n denyButtonText: t(\"spaces.settings.broadcast.onDestroy.deny\"),\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n BroadcastModel.onDestroy(\n broadcast.id,\n props.spaceId,\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n \n \n ({\n color: theme.colors.sutrablue[3],\n fontWeight: 500,\n fontSize: 20,\n })}\n onClick={() => onEdit()}\n >\n {broadcast.title}\n \n \n \n \n ({\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n },\n })}\n >\n \n \n }\n >\n {!broadcast.is_sent && (\n onEdit()}\n icon={}\n >\n {t(\"spaces.settings.broadcast.actions.edit\")}\n \n )}\n onDuplicate()}\n icon={}\n >\n {t(\"spaces.settings.broadcast.actions.duplicate\")}\n \n \n onDestroy()}\n icon={}\n color=\"red\"\n >\n {t(\"spaces.settings.broadcast.actions.delete\")}\n \n \n \n \n \n ({ color: theme.colors.gray[6] })}\n >\n {broadcast.user.full_name}\n \n {broadcast.is_scheduled &&\n !broadcast.is_sent &&\n broadcast.send_time && (\n \n \n {DateTime.fromSQL(broadcast.send_time).toFormat(\n \"LLL d, yyyy, h:mm a\"\n )}\n \n \n \n )}\n {broadcast.is_sent && (\n \n \n {DateTime.fromSQL(broadcast.sent_on).toFormat(\n \"LLL d, yyyy, h:mm a\"\n )}\n \n \n \n )}\n {broadcast.send_count && broadcast.send_count > 0 && (\n \n {broadcast.send_to_text}\n \n \n )}\n \n {broadcast.is_sent ? (\n \n {t(\"spaces.settings.broadcast.statuses.sent\")}\n \n ) : (\n \"\"\n )}\n {broadcast.is_scheduled && !broadcast.is_sent ? (\n \n {t(\"spaces.settings.broadcast.statuses.scheduled\")}\n \n ) : (\n \"\"\n )}\n {broadcast.is_draft &&\n !broadcast.is_scheduled &&\n !broadcast.is_sent ? (\n \n {t(\"spaces.settings.broadcast.statuses.draft\")}\n \n ) : (\n \"\"\n )}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, Divider, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { DateTime } from \"luxon\";\n\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nexport default function Broadcast(props) {\n const { t, i18n } = useTranslation();\n const [broadcast, setBroadcast] = useState({ user: {} });\n\n const data = [\n {\n value: \"active\",\n label: t(\"spaces.settings.broadcast.membersType.active\"),\n },\n {\n value: \"pending\",\n label: t(\"spaces.settings.broadcast.membersType.pending\"),\n },\n {\n value: \"interested\",\n label: t(\"spaces.settings.broadcast.membersType.interested\"),\n },\n ];\n\n useEffect(() => {\n if (props.broadcast) {\n setBroadcast(props.broadcast);\n }\n }, [props]);\n\n return (\n props.setOpened(false)}\n title={\n \n {`${t(\"spaces.settings.broadcast.sentOn\")} `}\n {DateTime.fromSQL(broadcast.sent_on).toFormat(\"LLL d, yyyy, h:mm a\")}{\" \"}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n {broadcast.title}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Container, Button, ScrollArea } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\n\nimport ComposeBroadcast from \"./broadcast/ComposeBroadcast\";\nimport BroadcastItem from \"./broadcast/BroadcastItem\";\nimport BroadcastDetails from \"./broadcast/Broadcast\";\n\nimport BroadcastModel from \"../../../models/Broadcast\";\nimport PremiumModal from \"../../app/PremiumModal\";\n\nconst data = [\n { value: \"active\", label: \"Active members\" },\n { value: \"pending\", label: \"Pending members\" },\n { value: \"interested\", label: \"Interested members\" },\n];\n\nexport default function Broadcast() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [opened, setOpened] = useState(false);\n const [openedDetails, setOpenedDetails] = useState(false);\n const [broadcasts, setBroadcasts] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [selectedBroadcast, setSelectedBroadcast] = useState(null);\n const [validateOpened, setValidateOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n setValidatePremium(\n space && space.permissions && space.permissions.can_broadcast\n );\n }, [space]);\n\n useEffect(() => {\n if (space && opened && !validatePremium[0]) {\n setOpened(false);\n setValidateOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n if (!opened) {\n setSelectedBroadcast(null);\n onFetch();\n }\n }, [opened]);\n\n useEffect(() => {\n if (!openedDetails) {\n setSelectedBroadcast(null);\n }\n }, [openedDetails]);\n\n const onFetch = () => {\n BroadcastModel.onFetch(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n setBroadcasts(data);\n },\n (data) => {}\n );\n };\n\n const onBroadcastUpdate = () => {\n setBroadcasts({ data: [] });\n setSelectedBroadcast(null);\n onFetch();\n };\n\n const onBroadcastEdit = (broadcast) => {\n setSelectedBroadcast(broadcast);\n if (broadcast.is_sent) {\n setOpenedDetails(true);\n } else {\n setOpened(true);\n }\n };\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n setOpened(true)}\n leftIcon={}\n sx={(theme) => ({\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n })}\n >\n {t(\"spaces.settings.broadcast.broadcastButton\")}\n \n }\n />\n {broadcasts.data.map((broadcast) => {\n return (\n \n );\n })}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Drawer, ScrollArea, useMantineTheme } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Broadcaster from \"../../../../helpers/Broadcaster\";\n\n// import jquery from \"jquery\";\n\nexport default function CreateStructure(props) {\n const [html, setHtml] = useState(\"\");\n\n const { t, i18n } = useTranslation();\n const theme = useMantineTheme();\n\n useEffect(() => {\n Broadcaster.receive(\"settings_closeModal\", document.body, () => {\n props.setOpened(false);\n });\n\n return () => {\n Broadcaster.unRegisterElement(\"settings_closeModal\", document.body);\n };\n }, []);\n\n // const onCloseModal = useCallback((event, data) => {\n // debugger;\n // props.setOpened(false)\n // })\n\n useEffect(() => {\n // SettingsModel.onFetch(`/api/v4/space/1nzywu/structures/new`, \"get\", (data) => {\n if (props.spaceId) {\n // SettingsModel.onFetch(`/circle/${props.spaceId}/structures/new`, \"get\", (data) => {\n // setHtml(data)\n // })\n }\n }, [props]);\n\n useEffect(() => {\n // debugger;\n // if ($){\n // jquery.ajax({\n // url: `/circle/${props.spaceId}/structures/new?scripts=true&auth_token=${window.$currentUserAuthToken}&from_site_api=true`,\n // type: \"GET\"\n // });\n // }\n }, [html]);\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.structure.createStructure.title.createStructure\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n {props.structure && props.structure.id ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import React from \"react\";\n\nimport {\n Text,\n Title,\n Box,\n Drawer,\n ScrollArea,\n Group,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n paddingLeft: 15,\n backgroundColor: theme.white,\n marginTop: 15,\n width: \"100%\",\n },\n freeformResponse: {\n display: \"flex\",\n alignItems: \"flex-start\",\n // borderRadius: theme.radius.md,\n // backgroundColor: theme.colors.gray[1],\n // paddingTop: 10,\n // paddingBottom: 10,\n // paddingRight: 30,\n // paddingLeft: 30,\n // marginTop: 10,\n width: \"100%\",\n fontSize: 14,\n },\n}));\n\nexport default function ShowStructure(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n // const [structure, setStructure] = useState(null)\n\n return (\n props.setOpened(false)}\n title={\n \n Structure\n \n }\n padding=\"xl\"\n size={600}\n >\n {props.structure && props.structure.id && (\n \n \n {props.structure.title}\n \n {props.structure.description && (\n \n {props.structure.description}\n \n )}\n \n {props.structure.steps.map((step, index) => {\n return (\n <>\n \n \n {index + 1}\n \n \n \n \n\n {step.title && {step.title}}\n\n \n \n \n \n \n \n \n );\n })}\n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Drawer,\n Select,\n ScrollArea,\n Stack,\n Group,\n Button,\n MultiSelect,\n Divider,\n Switch,\n Loader,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport StructureModel from \"../../../../models/Structure\";\nimport SpaceModel from \"../../../../models/Space\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function Add(props) {\n const { t, i18n } = useTranslation();\n\n const [sender, setSender] = useState(\"\");\n const [scheduled, setScheduled] = useState(\"\");\n const [managers, setManagers] = useState([]);\n\n const [spaces, setSpaces] = useState([]);\n const [selectedSpaces, setSelectedSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false);\n\n const searchTimeoutId = useRef();\n\n const form = useForm({\n initialValues: {\n pod_structures: \"\",\n user_id: \"\",\n start_on: \"\",\n start_date: \"\",\n start_time: \"\",\n // structure_message: \"\"\n },\n\n validate: {\n pod_structures: (value) => (value.length > 0 ? null : \"Select a space\"),\n user_id: (value) => (value.length > 0 ? null : \"Select a sender\"),\n // structure_message: (value) => value.length > 0 ? null : \"Write a message\",\n },\n });\n\n useEffect(() => {\n if (props.spaceId) {\n onFetchSpaces();\n onFetchManagers();\n }\n }, [props]);\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n\n SpaceModel.onFetchChildren(\n props.spaceId,\n include,\n { page: 1, per: 10 },\n [\"active\", \"not_journey\", \"discussions\"],\n (data) => {\n setSpaces(\n data.data.map((item) => ({ label: item.name, value: item.slug }))\n );\n },\n (data) => {}\n );\n };\n\n const onFetchManagers = () => {\n ManagerModel.onFetch(\n props.spaceId,\n { page: 1, per: 1000 },\n {},\n (data) => {\n const _managers = data.data.map((manager) => {\n return { label: manager.full_name, value: `${manager.user_id}` };\n });\n\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n const start_time = mergeDateAndTime(\n form.values.start_date,\n form.values.start_time\n );\n\n const params = {\n ...form.values,\n start_time,\n start_on: start_time ? \"data\" : \"now\",\n };\n\n StructureModel.onAddToSpace(\n props.structure.id,\n props.spaceId,\n params,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n onResetForm();\n },\n (data) => {}\n );\n };\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"pod_structures\", \"\");\n form.setFieldValue(\"user_id\", \"\");\n form.setFieldValue(\"start_on\", false);\n form.setFieldValue(\"start_date\", \"\");\n form.setFieldValue(\"start_time\", \"\");\n // form.setFieldValue(\"structure_message\", \"\")\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.structure.add.add.title\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n
onSave(values))}>\n \n \n {/**/}\n\n \n {t(\"spaces.settings..add.add.description\")}\n \n ) : (\n \n )\n }\n {...form.getInputProps(\"pod_structures\")}\n searchable\n mt={5}\n data={spaces}\n placeholder={t(\n \"spaces.settings.structure.add.add.placeholder1\"\n )}\n maxDropdownHeight={400}\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n\n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n setScheduled(event.currentTarget.checked)}\n />\n {scheduled ? (\n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n \n \n
\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Text,\n Box,\n Menu,\n Group,\n Stack,\n Button,\n Divider,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Copy, Edit } from \"tabler-icons-react\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport Swal from \"sweetalert2\";\n\nimport StructureModel from \"../../../../models/Structure\";\n\nexport default function StructureItem(props) {\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const [structure, setStructure] = useState({});\n\n useEffect(() => {\n if (props.structure && props.structure.id != structure.id) {\n setStructure(props.structure);\n }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(structure);\n };\n\n const onDuplicate = () => {\n StructureModel.onDuplicate(\n structure.id,\n props.spaceId,\n (data) => {\n props.onUpdate(structure);\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This structure will be permanently deleted\",\n showDenyButton: true,\n confirmButtonText: \"Delete structure\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n StructureModel.onDestroy(\n structure.id,\n props.spaceId,\n (data) => {\n props.onUpdate(structure);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n \n \n props.onSelect(structure)}\n sx={(theme) => ({\n color: sutraTheme.colors.sutrablue[3],\n fontWeight: 500,\n fontSize: 20,\n cursor: \"pointer\",\n })}\n >\n {structure.title}\n \n \n \n \n ({\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n },\n })}\n >\n \n \n }\n >\n }\n onClick={() => props.onAdd(structure)}\n >\n {t(\"spaces.settings.structure.structureItem.item.addToSpace\")}\n \n }\n onClick={() => onEdit()}\n >\n {t(\"spaces.settings.structure.structureItem.item.edit\")}\n \n }\n onClick={() => onDuplicate()}\n >\n {t(\"spaces.settings.structure.structureItem.item.duplicate\")}\n \n \n }\n color=\"red\"\n onClick={() => onDestroy()}\n >\n {t(\"spaces.settings.structure.structureItem.item.delete\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Container, Button, useMantineTheme, ScrollArea } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\n\nimport CreateStructure from \"./structures/CreateStructure\";\nimport ShowStructure from \"./structures/ShowStructure\";\nimport AddToSpaces from \"./structures/Add\";\nimport StructureItem from \"./structures/StructureItem\";\n\nimport StructureModel from \"../../../models/Structure\";\n\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\n\nexport default function Structures(props) {\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [structures, setStructures] = useState([]);\n const [createStructureOpened, setCreateStructureOpened] = useState(false);\n const [showStructureOpened, setShowStructureOpened] = useState(false);\n const [showAddToSpaces, setShowAddToSpaces] = useState(false);\n const [selectedStructure, setSelectedStructure] = useState(null);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (!createStructureOpened) {\n setSelectedStructure(null);\n if (space && space.slug) {\n onFetch();\n }\n }\n }, [createStructureOpened]);\n\n const onFetch = () => {\n StructureModel.onFetch(\n space.slug,\n { page: 1, per: 10000 },\n (data) => {\n setStructures(data.data);\n },\n (data) => {}\n );\n };\n\n const onUpdateStructure = (structure) => {\n onFetch();\n };\n\n const onEditStructure = (structure) => {\n setSelectedStructure(structure);\n setCreateStructureOpened(structure);\n };\n\n const onSelectedStructure = (structure) => {\n setSelectedStructure(structure);\n setShowStructureOpened(structure);\n };\n\n const onAddStructure = (structure) => {\n setSelectedStructure(structure);\n setShowAddToSpaces(true);\n };\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n {props.scope != \"payment\" && (\n setCreateStructureOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.structures.createStructure\")}\n \n }\n />\n )}\n {structures.map((structure) => {\n return (\n \n );\n })}\n \n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { Container } from \"@mantine/core\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Admin() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n return (\n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\n\nimport {\n Box,\n Avatar,\n AvatarsGroup,\n Group,\n Badge,\n Stack,\n Text,\n Tooltip,\n createStyles,\n Skeleton,\n MantineProvider,\n Button,\n} from \"@mantine/core\";\nimport { useElementSize } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../utils/LangUser\";\nimport formatDate from \"../../../utils/formatDate\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors, publishOnDate }, getRef) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: \"10px\",\n // backgroundColor: theme.colors.gray[0],\n // backgroundColor: isSpaceThemed(colors)\n // ? tinycolor(colors.background_color).darken(1).toString()\n // : theme.colors.gray[0],\n\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n minHeight: 95,\n padding: \"20px 25px\",\n // margin: \"15px 0px\",\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n\n spaceListItemHasHeader: {\n \"&:hover\": {\n color: \"#fff\",\n },\n },\n\n title: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n fontSize: \"1.7em\",\n lineHeight: \"1.1em\",\n fontWeight: 550,\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n titleHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n textDecoration: \"none\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n date: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n dateHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockWrap: {\n padding: \"7px 16px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.default_text_color : \"#000\"\n }`,\n marginRight: 5,\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n },\n\n dateBlockWrapHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n border: `1px solid #fff`,\n // boxShadow: \"1px 1px #000000\",\n boxShadow: \"1px 1px 1px rgba(0, 0, 0, 0.5)\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 20,\n lineHeight: 1,\n marginBottom: 5,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n },\n\n titleSm: {\n fontSize: \"1.2em\",\n },\n\n dateSm: {\n fontSize: \".9em\",\n },\n}));\n\nexport default function ListContent2(props) {\n const { t, i18n } = useTranslation();\n\n const isUnpublished = () => {\n return (\n space && space.launch_on_date && new Date() < new Date(space.launch_time)\n );\n };\n\n const colors = useSelector((state) => state.colors);\n const navigate = useNavigate();\n const [space, setSpace] = useState(null);\n const { classes, cx, theme } = useStyles({\n colors,\n publishOnDate: isUnpublished() ? space.launch_on_date : \"\",\n });\n let _width = theme.other.breakpoints.lg;\n const { ref, width, height } = useElementSize();\n const [avatarLimit, setAvatarLimit] = useState(4);\n const [showAvatars, setShowAvatars] = useState(true);\n\n const { language, setLangUser } = useLangUser();\n\n const updateSpace = useSelector((state) => state.listSpaceToUpdate);\n\n const propsTimeoutId = useRef();\n const updating = useRef();\n\n useEffect(() => {\n if (space && updateSpace.slug == space.slug) {\n updating.current = true;\n onFetchSpace(props.fetchId ? props.fetchId : updateSpace.slug);\n }\n }, [updateSpace]);\n\n useEffect(() => {\n if (updating.current) {\n updating.current = false;\n return;\n }\n if (props.space) {\n if (propsTimeoutId.current) {\n clearTimeout(propsTimeoutId.current);\n }\n propsTimeoutId.current = setTimeout(() => {\n updating.current = true;\n setSpace({ ...props.space });\n }, 200);\n } else if (!space && props.fetch) {\n onFetchSpace(props.fetchId);\n }\n }, [space]);\n\n useEffect(() => {\n _width = width > 0 ? width : _width;\n\n if (_width < theme.other.breakpoints.xs) {\n setShowAvatars(false);\n } else if (_width < theme.other.breakpoints.md) {\n setShowAvatars(true);\n setAvatarLimit(4);\n } else {\n setShowAvatars(true);\n setAvatarLimit(4);\n }\n\n // console.log(\"width: \", width)\n // console.log(\"_width: \", _width)\n // console.log(\"theme.other.breakpoints.xs: \", theme.other.breakpoints.xs )\n // console.log(\"_width < theme.other.breakpoints.xs: \", _width < theme.other.breakpoints.xs)\n // console.log(\"showAvatars: \", showAvatars)\n }, [width]);\n\n const onFetchSpace = (id) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchSimpleShow(\n id,\n [\"members\", \"last_messages\"],\n (data) => {\n try {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n colors: { ...data.colors },\n last_messages: last_messages,\n last_message: last_message,\n });\n } catch {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n });\n }\n\n if (props.onSpaceFetched) {\n props.onSpaceFetched(data);\n }\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n };\n\n const onAvatarClick = (event, member) => {\n event.stopPropagation();\n event.preventDefault();\n navigate(member.link);\n };\n\n const formatDateTime = (timestamp) => {\n if (space && space.launch_time) {\n const d = new Date(space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n return (\n <>\n {space ? (\n \n \n \n {space.calendar.has_start_date && (\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n )}\n ({\n height: \"100%\",\n })}\n >\n \n {width <\n (theme.other.breakpoints.xs ||\n width < theme.other.breakpoints.md) &&\n space.name.length > 15 ? (\n \n \n {space.name}\n \n \n ) : (\n \n {space.name}\n \n )}\n \n {space.calendar.has_start_date ? (\n \n {formatDate(space.calendar, language)}\n \n ) : (\n \"\"\n )}\n {space.tagged_with && (\n \n {space.tagged_with.map((tag) => {\n return (\n theme.other.tagColors[tag.color] && (\n ({\n backgroundColor:\n theme.other.tagColors[tag.color]\n .backgroundColor,\n color: theme.other.tagColors[tag.color].textColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[tag.color]\n .backgroundColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n >\n {tag.name}\n \n )\n );\n })}\n \n )}\n \n \n \n {isUnpublished() && (\n \n \n }\n >\n {\" \"}\n {formatDateTime()}\n \n \n \n )}\n {space.privacy_level === \"private\" ? (\n \n ({\n color: !space.header.url ? theme.colors.gray[6] : \"white\",\n })}\n >\n \n \n \n ) : (\n \"\"\n )}\n {space.activity && space.activity > 0 ? (\n \n {space.activity}\n \n ) : (\n \"\"\n )}\n {showAvatars &&\n space &&\n space.members &&\n typeof space.members != \"string\" &&\n space.members.length > 0 ? (\n <>\n \n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n ) : (\n \"\"\n )}\n \n \n \n ) : (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Box,\n Menu,\n Image,\n ScrollArea,\n Avatar,\n AvatarsGroup,\n Group,\n Grid,\n Badge,\n Stack,\n Text,\n Tooltip,\n createStyles,\n Skeleton,\n Button,\n ActionIcon,\n Indicator,\n} from \"@mantine/core\";\nimport { useElementSize } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../utils/LangUser\";\nimport formatDate from \"../../../utils/formatDate\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport LikeButton from \"../../likes/Button\";\n\nconst useStyles = createStyles(\n (theme, { colors, publishOnDate, isDark, listFlatView }, getRef) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: listFlatView ? \"0px\" : \"10px\",\n backgroundColor: listFlatView\n ? \"none\"\n : isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(1).toString()\n : tinycolor(colors.background_color).darken(1).toString(),\n\n padding: listFlatView ? \"35px 20px\" : \"20px 20px 15px\",\n border: listFlatView\n ? \"none\"\n : isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n\n display: \"flex\",\n // alignItems: \"center\",\n width: \"100%\",\n // marginBottom: \"0px\",\n\n \"&:hover\": {\n // boxShadow: listFlatView ? \"none\" : \"0px 0px 2px 0px rgba(0,0,0,0.4)\",\n boxShadow: listFlatView ? \"none\" : \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(2).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n cursor: \"pointer\",\n textDecoration: \"none\",\n },\n },\n\n spaceListItemHasHeader: {\n \"&:hover\": {\n color: \"#fff\",\n },\n },\n\n title: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n fontSize: \"1.5em\",\n lineHeight: \"1.1em\",\n fontWeight: 600,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n titleGroup: {\n marginTop: 10,\n },\n datePosted: {\n color: tinycolor(colors.default_text_color).lighten(10).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n \"overflow-wrap\": \"break-word\",\n \"word-wrap\": \"break-word\",\n\n \"-ms-word-break\": \"break-all\",\n /* This is the dangerous one in WebKit, as it breaks things wherever */\n \"word-break\": \"break-all\",\n /* Instead use this non-standard one: */\n \"word-break\": \"break-word\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n footerElements: {\n cursor: \"pointer\",\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n \"&:hover\": {\n color: colors.default_text_color,\n },\n },\n\n buttonStyle: {\n color: tinycolor(colors.default_text_color).lighten(50).toString(),\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n\n titleHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n textDecoration: \"none\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n date: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n dateHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockWrap: {\n padding: \"4px 8px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.default_text_color : \"#000\"\n }`,\n marginRight: 5,\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n },\n\n dateBlockWrapHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n border: `1px solid #fff`,\n // boxShadow: \"1px 1px #000000\",\n boxShadow: \"1px 1px 1px rgba(0, 0, 0, 0.5)\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 17,\n lineHeight: 1,\n marginBottom: 3,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n fontSize: 13,\n },\n\n dateScheduled: {\n fontSize: 16,\n lineHeight: \"1.4\",\n },\n\n titleSm: {\n fontSize: \"1.2em\",\n },\n\n dateSm: {\n fontSize: \".9em\",\n },\n })\n);\n\nexport default function ListContent(props) {\n const { t, i18n } = useTranslation();\n\n const isUnpublished = () => {\n return (\n space && space.launch_on_date && new Date() < new Date(space.launch_time)\n );\n };\n\n const colors = useSelector((state) => state.colors);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const [space, setSpace] = useState(null);\n const [permissions, setPermissions] = useState({ unload: true });\n const { classes, cx, theme } = useStyles({\n colors,\n publishOnDate: isUnpublished() ? space.launch_on_date : \"\",\n isDark: isDark,\n listFlatView: props.listFlatView,\n });\n\n let _width = theme.other.breakpoints.lg;\n const { ref, width, height } = useElementSize();\n const [avatarLimit, setAvatarLimit] = useState(4);\n const [showAvatars, setShowAvatars] = useState(true);\n\n const { language, setLangUser } = useLangUser();\n\n const updateSpace = useSelector((state) => state.listSpaceToUpdate);\n\n const propsTimeoutId = useRef();\n const updating = useRef();\n const updateCount = useRef(0);\n\n useEffect(() => {\n if (space && updateSpace.slug == space.slug) {\n updating.current = true;\n onFetchSpace(props.fetchId ? props.fetchId : updateSpace.slug);\n }\n }, [updateSpace]);\n\n useEffect(() => {\n if (updating.current) {\n updating.current = false;\n return;\n }\n if (props.space) {\n updating.current = true;\n setSpace({ ...props.space });\n } else if (!space && props.fetch) {\n onFetchSpace(props.fetchId);\n }\n }, [space]);\n\n useEffect(() => {\n if (props.space && updateCount.current != props.space.update_count) {\n updateCount.current = props.space.update_count\n ? props.space.update_count\n : 0;\n // if (propsTimeoutId.current) {\n // clearTimeout(propsTimeoutId.current);\n // }\n // propsTimeoutId.current = setTimeout(() => {\n // }, 1000);\n updating.current = true;\n setSpace({ ...props.space });\n }\n }, [props]);\n\n useEffect(() => {\n _width = width > 0 ? width : _width;\n\n if (_width < theme.other.breakpoints.xs) {\n setShowAvatars(false);\n } else if (_width < theme.other.breakpoints.md) {\n setShowAvatars(true);\n setAvatarLimit(4);\n } else {\n setShowAvatars(true);\n setAvatarLimit(4);\n }\n }, [width]);\n\n const onFetchSpace = (id) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchSimpleShow(\n id,\n [\"members\", \"last_messages\"],\n (data) => {\n try {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n colors: { ...data.colors },\n last_messages: last_messages,\n last_message: last_message,\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n } catch {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n }\n if (props.onSpaceFetched) {\n props.onSpaceFetched(data);\n }\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n };\n\n const onAvatarClick = (event, member) => {\n event.stopPropagation();\n event.preventDefault();\n navigate(member.link);\n };\n\n const formatDateTime = (timestamp) => {\n if (space && space.launch_time) {\n const d = new Date(space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n const onPin = () => {\n SpaceModel.onPin(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.id, data.is_pinned ? \"pin\" : \"unpin\");\n }\n },\n (data) => {}\n );\n };\n\n const onThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-upload\");\n };\n\n const onRemoveThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-delete\");\n };\n\n const onDelete = () => {\n if (space.is_linked) {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onUnlink(\n space.slug,\n window.location.href.split(\"/\")[4],\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.id, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n } else {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onDestroy(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.id, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n }\n };\n\n const openProfile = (event) => {\n event.stopPropagation();\n if (space.user) {\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: space.user.username })\n );\n }\n };\n\n const getLink = () => {\n return `/space/${space.slug}/${space.version}`;\n };\n\n const onEdit = () => {\n navigate(`${getLink()}?edit=true`);\n };\n\n const onMenuOpenned = (event) => {\n event.stopPropagation();\n if (permissions.unload) {\n SpaceModel.onPermissions(\n space.slug,\n (data) => {\n setPermissions(data);\n },\n (data) => {}\n );\n }\n };\n\n return (\n <>\n {space ? (\n \n {props.showAuthor && (\n \n openProfile(event)}\n radius=\"xl\"\n size={40}\n key={`member-avatar-${new Date()}`}\n src={\n space.user && space.user.avatar && space.user.avatar.url\n ? space.user.avatar.url\n : DefaultAvatar\n }\n component=\"span\"\n />\n \n openProfile(event)}\n className={classes.abstract}\n weight={600}\n sx={{\n lineHeight: \"1\",\n }}\n mb={6}\n >\n {space.user ? space.user.full_name : \"No longer registered\"}\n \n\n {props.listShowTimestamp && (\n \n {/* March 31 at 5:23 AM */}\n {formatDate(\n { raw_start_date: space.created_at },\n language,\n \"LLL d\",\n \"LLL d\"\n )}\n \n )}\n \n \n )}\n \n \n \n \n {space.activity && space.activity > 0 ? (\n \n {\"\"}\n \n ) : (\n \"\"\n )}\n {space.name}\n \n \n\n {props.listShowPreviewText && (\n \n {space.abstract}\n \n )}\n\n {space.calendar.has_start_date && (\n \n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n\n \n {formatDate(space.calendar, language)}\n \n \n )}\n\n {space.tagged_with && (\n \n {space.tagged_with.map((tag) => {\n return (\n ({\n backgroundColor:\n theme.other.tagColors[tag.color].backgroundColor,\n color: theme.other.tagColors[tag.color].textColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[tag.color].backgroundColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n >\n {tag.name}\n \n );\n })}\n \n )}\n \n {space.gallery_feature.url && props.listShowThumbnail && (\n \n )}\n \n \n \n \n {props.listAllowLikes && (\n \n )}\n {props.listShowComments && (\n <>\n \n {space.comments_count}\n \n )}\n\n {props.listShowMembers && (\n <>\n \n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n )}\n \n \n {space.is_pinned.is_pinned && (\n \n )}\n {!props.noActions && (\n onMenuOpenned(event)}\n withArrow\n placement=\"end\"\n control={\n onMenuOpenned(event)}\n className={classes.buttonStyle}\n >\n \n \n }\n >\n \n {t(\"spaces.header.buttons.openFullScreen\")}\n \n {props.canPin && (\n onPin()}>\n {space.is_pinned.is_pinned\n ? t(\"spaces.presentations.gridPost.actions.unpin\")\n : t(\"spaces.presentations.gridPost.actions.pin\")}\n \n )}\n {permissions.can_edit && !space.gallery_feature.url && (\n onThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.addThumbnail\"\n )}\n \n )}\n {permissions.can_edit && space.gallery_feature.url && (\n onRemoveThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.removeThumbnail\"\n )}\n \n )}\n {permissions.can_edit && (\n onEdit()}>\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n )}\n {!space.isPost && permissions.can_delete && (\n \n props.onDuplicate(space.slug, space.name)\n }\n >\n {t(\"spaces.presentations.gridPost.actions.duplicate\")}\n \n )}\n {permissions.can_delete && (\n onDelete()}>\n {space.is_linked\n ? t(\"spaces.presentations.gridPost.actions.unlink\")\n : t(\"spaces.presentations.gridPost.actions.delete\")}\n \n )}\n \n )}\n \n \n \n \n ) : (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef, memo } from \"react\";\n\nimport { useNavigate, Link } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Box,\n Image,\n Avatar,\n AvatarsGroup,\n Group,\n Stack,\n Text,\n Menu,\n createStyles,\n Skeleton,\n ActionIcon,\n Tooltip,\n Button,\n} from \"@mantine/core\";\nimport { useElementSize } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../utils/LangUser\";\nimport formatDate from \"../../../utils/formatDate\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LikeButton from \"../../likes/Button\";\n\nconst useStyles = createStyles(\n (theme, { colors, publishOnDate, isDark, listFlatView }, getRef) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: listFlatView ? \"0px\" : \"10px\",\n backgroundColor: listFlatView\n ? \"none\"\n : isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(1).toString()\n : tinycolor(colors.background_color).darken(1).toString(),\n // backgroundColor: theme.colors.gray[0],\n // backgroundColor: isSpaceThemed(colors)\n // ? tinycolor(colors.sidebar_background_color).toString()\n // : theme.colors.gray[0],\n // background: !publishOnDate ? \"repeating-linear-gradient(-45deg,#ddd,#ddd 1px,#f9f9f9 1px,#f9f9f9 10px)\" : \"\",\n // minHeight: 95,\n // height: 210,\n // padding: \"15px 20px\",\n // margin: \"15px 0px\",\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n\n // border: isSpaceThemed(colors)\n // ? // ? `1px solid ${colors.default_text_color}`\n // `1px solid ${\n // isDark(colors.background_color)\n // ? tinycolor(colors.background_color).lighten(20).toString()\n // : tinycolor(colors.background_color).darken(20).toString()\n // }`\n // : `1px solid #e9ecef`,\n\n border: listFlatView\n ? \"none\"\n : isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n\n // \"&:hover\": {\n // // backgroundColor: theme.colors.gray[0],\n // // backgroundColor: isSpaceThemed(colors)\n // // ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n // // : theme.colors.gray[0],\n // // backgroundColor: tinycolor(colors.background_color).darken(2).toString(),\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.4)\",\n // cursor: \"pointer\",\n // // color: \"#000\",\n // textDecoration: \"none\",\n // },\n\n \"&:hover\": {\n // boxShadow: listFlatView ? \"none\" : \"0px 0px 2px 0px rgba(0,0,0,0.4)\",\n boxShadow: listFlatView ? \"none\" : \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n // backgroundColor: tinycolor(colors.background_color)\n // .darken(3)\n // .toString(),\n\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(2).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n cursor: \"pointer\",\n textDecoration: \"none\",\n },\n },\n\n title: {\n textDecoration: \"none\",\n // color: \"#000\",\n // color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n color: colors.default_text_color,\n fontSize: \"1.6em\",\n lineHeight: \"1.3em\",\n fontWeight: 700,\n margin: 0,\n\n // height: 50,\n // backgroundColor: \"red\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n titleGroup: {\n margin: listFlatView ? \"15px 10px 0px\" : \"15px 20px 0px\",\n },\n\n abstract: {\n textDecoration: \"none\",\n // color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n color: colors.default_text_color,\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n abstractWrap: {\n // height: 60,\n // width: \"100%\",\n margin: listFlatView ? \"5px 10px 10px\" : \"5px 20px 10px\",\n // backgroundColor: \"blue\",\n },\n\n titleAndAbstractWrap: {\n width: \"100%\",\n // height: 150,\n },\n\n avatarWrap: {\n margin: listFlatView ? \"0px 10px 10px\" : \"0px 20px 10px\",\n },\n\n footerWrap: {\n margin: listFlatView ? \"0px 10px 10px 12px\" : \"0px 10px 10px 22px\",\n },\n\n tagWrap: {\n margin: listFlatView ? \"0px 10px 5px 10px\" : \"0px 10px 5px 15px\",\n },\n\n // titleHasHeader: {\n // color: \"#fff\",\n // textShadow: \"1px 1px #000000\",\n // textDecoration: \"none\",\n //\n // \"&:hover\": {\n // color: \"#fff\",\n // textDecoration: \"none\",\n // },\n // },\n\n thumbnailImageStyle: {\n width: \"100%\",\n // paddingLeft: 10,\n // paddingRight: 10,\n borderTopLeftRadius: listFlatView ? 0 : 10,\n borderTopRightRadius: listFlatView ? 0 : 10,\n },\n\n footerElements: {\n cursor: \"pointer\",\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n \"&:hover\": {\n color: colors.default_text_color,\n },\n },\n\n buttonStyle: {\n // borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(50).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n // paddingLeft: 12,\n // paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n\n date: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n dateHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateSection: {\n margin: listFlatView ? \"5px 10px 5px\" : \"5px 20px 5px\",\n },\n\n dateBlockWrap: {\n padding: \"4px 10px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.default_text_color : \"#000\"\n }`,\n // marginRight: 5,\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n },\n\n dateBlockWrapHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n border: `1px solid #fff`,\n // boxShadow: \"1px 1px #000000\",\n boxShadow: \"1px 1px 1px rgba(0, 0, 0, 0.5)\",\n\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\",\n },\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 15,\n lineHeight: 1,\n marginBottom: 3,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n fontSize: 11,\n },\n\n dateScheduled: {\n fontSize: 13,\n lineHeight: \"1.4\",\n },\n\n titleSm: {\n fontSize: \"1.2em\",\n },\n\n dateSm: {\n fontSize: \".9em\",\n },\n })\n);\n\nconst ListContent = (props) => {\n const { t, i18n } = useTranslation();\n const isUnpublished = () => {\n return (\n space && space.launch_on_date && new Date() < new Date(space.launch_time)\n );\n };\n\n const colors = useSelector((state) => state.colors);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const [space, setSpace] = useState(null);\n const [permissions, setPermissions] = useState({ unload: true });\n const { classes, cx, theme } = useStyles({\n colors,\n publishOnDate: isUnpublished() ? space.launch_on_date : \"\",\n isDark,\n listFlatView: props.listFlatView,\n });\n let _width = theme.other.breakpoints.lg;\n const { ref, width, height } = useElementSize();\n const [avatarLimit, setAvatarLimit] = useState(4);\n const [showAvatars, setShowAvatars] = useState(true);\n\n const { language, setLangUser } = useLangUser();\n\n const updateSpace = useSelector((state) => state.listSpaceToUpdate);\n\n const propsTimeoutId = useRef();\n const updating = useRef();\n const updateCount = useRef(0);\n\n useEffect(() => {\n if (space && updateSpace.slug == space.slug) {\n updating.current = true;\n onFetchSpace(props.fetchId ? props.fetchId : updateSpace.slug);\n }\n }, [updateSpace]);\n\n useEffect(() => {\n if (updating.current) {\n updating.current = false;\n return;\n }\n if (props.space) {\n updating.current = true;\n setSpace({ ...props.space });\n } else if (!space && props.fetch) {\n onFetchSpace(props.fetchId);\n }\n }, [space]);\n\n useEffect(() => {\n if (props.space && updateCount.current != props.space.update_count) {\n updateCount.current = props.space.update_count\n ? props.space.update_count\n : 0;\n // if (propsTimeoutId.current) {\n // clearTimeout(propsTimeoutId.current);\n // }\n // propsTimeoutId.current = setTimeout(() => {\n // }, 1000);\n updating.current = true;\n setSpace({ ...props.space });\n }\n }, [props]);\n\n useEffect(() => {\n _width = width > 0 ? width : _width;\n\n if (_width < theme.other.breakpoints.xs) {\n setShowAvatars(false);\n } else if (_width < theme.other.breakpoints.md) {\n setShowAvatars(true);\n setAvatarLimit(4);\n } else {\n setShowAvatars(true);\n setAvatarLimit(4);\n }\n }, [width]);\n\n const onFetchSpace = (id) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchSimpleShow(\n id,\n [\"members\", \"last_messages\"],\n (data) => {\n try {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n colors: { ...data.colors },\n last_messages: last_messages,\n last_message: last_message,\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n } catch {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n abstract: data.abstract ? data.abstract : data.space.abstract,\n });\n }\n if (props.onSpaceFetched) {\n props.onSpaceFetched(data);\n }\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n };\n\n const onAvatarClick = (event, member) => {\n event.stopPropagation();\n event.preventDefault();\n navigate(member.link);\n };\n\n const formatDateTime = (timestamp) => {\n if (space && space.launch_time) {\n const d = new Date(space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n const onPin = () => {\n SpaceModel.onPin(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.id, data.is_pinned ? \"pin\" : \"unpin\");\n }\n },\n (data) => {}\n );\n };\n\n const onThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-upload\");\n };\n\n const onRemoveThumbnail = () => {\n props.onUpdate(space.slug, \"thumbnail-delete\");\n };\n\n const onDelete = () => {\n if (space.is_linked) {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onUnlink(\n space.slug,\n window.location.href.split(\"/\")[4],\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.id, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n } else {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage2\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onDestroy(\n space.slug,\n (data) => {\n if (props.onUpdate) {\n props.onUpdate(space.id, \"delete\");\n }\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n }\n };\n\n const openProfile = (event) => {\n event.stopPropagation();\n if (space.user) {\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: space.user.username })\n );\n }\n };\n\n const getLink = () => {\n return `/space/${space.slug}/${space.version}`;\n };\n\n const onEdit = () => {\n navigate(`${getLink()}?edit=true`);\n };\n\n const onMenuOpenned = (event) => {\n event.stopPropagation();\n if (permissions.unload) {\n SpaceModel.onPermissions(\n space.slug,\n (data) => {\n setPermissions(data);\n },\n (data) => {}\n );\n }\n };\n\n return (\n <>\n {space ? (\n \n \n {space.gallery_feature &&\n space.gallery_feature.url &&\n props.listShowThumbnail && (\n \n )}\n {space.name.length > 20 ? (\n \n \n \n {space.activity && space.activity > 0 ? (\n \n {\"\"}\n \n ) : (\n \"\"\n )}\n {space.name}\n \n \n \n ) : (\n \n \n {space.activity && space.activity > 0 ? (\n \n {\"\"}\n \n ) : (\n \"\"\n )}\n {space.name}\n \n \n )}\n {space.calendar.has_start_date && (\n \n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(space.calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n\n \n {formatDate(space.calendar, language)}\n \n \n )}\n {props.listShowPreviewText && (\n \n \n {space.abstract}\n \n \n )}\n \n {!props.noActions && (\n \n {props.showAuthor && (\n \n openProfile(event)}\n radius=\"xl\"\n size={40}\n key={`member-avatar-${new Date()}`}\n src={\n space.user && space.user.avatar && space.user.avatar.url\n ? space.user.avatar.url\n : DefaultAvatar\n }\n component=\"span\"\n />\n \n openProfile(event)}\n className={classes.abstract}\n weight={600}\n sx={{\n lineHeight: \"1\",\n }}\n mb={6}\n >\n {space.user\n ? space.user.full_name\n : \"No longer registered\"}\n \n {props.listShowTimestamp && (\n \n {formatDate(\n { raw_start_date: space.created_at },\n language,\n \"LLL d\",\n \"LLL d\"\n )}\n \n )}\n \n \n )}\n {space.tagged_with && (\n \n {space.tagged_with.map((tag) => {\n return (\n ({\n backgroundColor:\n theme.other.tagColors[tag.color].backgroundColor,\n color: theme.other.tagColors[tag.color].textColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[tag.color].backgroundColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n >\n {tag.name}\n \n );\n })}\n \n )}\n \n \n {props.listAllowLikes && (\n \n )}\n {props.listShowComments && (\n \n \n \n {space.comments_count}\n \n \n )}\n\n {props.listShowMembers ? (\n <>\n \n {space.members.map((member) => {\n return (\n \n );\n })}\n \n \n ) : (\n \"\"\n )}\n \n\n \n {space.is_pinned.is_pinned && (\n \n )}\n {!props.noActions && (\n onMenuOpenned(event)}\n withArrow\n placement=\"end\"\n control={\n onMenuOpenned(event)}\n classNames={{ root: classes.buttonStyle }}\n >\n \n \n }\n >\n \n {t(\"spaces.header.buttons.openFullScreen\")}\n \n {props.canPin && (\n onPin()}>\n {space.is_pinned.is_pinned\n ? t(\"spaces.presentations.gridPost.actions.unpin\")\n : t(\"spaces.presentations.gridPost.actions.pin\")}\n \n )}\n {permissions.can_edit && !space.gallery_feature.url && (\n onThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.addThumbnail\"\n )}\n \n )}\n {permissions.can_edit && space.gallery_feature.url && (\n onRemoveThumbnail()}>\n {t(\n \"spaces.presentations.gridPost.actions.removeThumbnail\"\n )}\n \n )}\n {permissions.can_edit && (\n onEdit()}>\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n space.is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n )}\n {!space.isPost && permissions.can_delete && (\n \n props.onDuplicate(space.slug, space.name)\n }\n >\n {t(\"spaces.presentations.gridPost.actions.duplicate\")}\n \n )}\n {permissions.can_delete && (\n onDelete()}>\n {space.is_linked\n ? t(\"spaces.presentations.gridPost.actions.unlink\")\n : t(\"spaces.presentations.gridPost.actions.delete\")}\n \n )}\n \n )}\n \n \n \n )}\n \n ) : (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default ListContent;\n","import React from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { Box } from \"@mantine/core\";\n\nimport ListContent from \"./ListContent\";\nimport ListPost from \"./ListPost\";\nimport GridPost from \"./GridPost\";\n\nimport { getRoot } from \"../../../utils/Host\";\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nexport default function List(props) {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const getLink = () => {\n if (props.space.version) {\n return `/space/${props.space.slug}/${props.space.version}`;\n } else {\n return `/space/${props.space.slug}`;\n }\n };\n\n const goToLink = () => {\n if (window.$templatesModalIsOpened){\n return\n }\n if (props.space.is_linked) {\n window.open(`${getRoot()}${getLink()}`, \"_blank\");\n } else if (props.openInModal) {\n \n dispatch(\n setTiptapSidemenu({ opened: \"space-content\", option: props.space.slug })\n );\n \n } else {\n navigate(getLink());\n }\n };\n\n return (\n <>\n {props.noLink ? (\n \n {!props.viewAs && }\n {props.viewAs == \"post\" && }\n {props.viewAs == \"grid\" && }\n {props.viewAs == \"card\" && }\n {props.viewAs == \"link\" && `${getRoot()}${getLink()}`}\n \n ) : (\n goToLink()}\n sx={{\n height: props.viewAs == \"grid\" ? \"100%\" : \"\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n >\n {!props.viewAs && }\n {props.viewAs == \"post\" && (\n \n )}\n {props.viewAs == \"grid\" && (\n \n )}\n {props.viewAs == \"card\" && (\n \n )}\n {props.viewAs == \"link\" && (\n `${getRoot()}${getLink()}`\n )}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport { ScrollArea, Box } from \"@mantine/core\";\nimport SpaceModel from \"../../models/Space\";\nimport SpaceListItem from \"./presentations/List\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst paginator = {\n per: 10,\n page: 1,\n};\n\nconst scrollTimeoutIds = [];\n\nexport default function ChildrenList(props) {\n const { t, i18n } = useTranslation();\n // const scroll = useSelector(state => state.scroll);\n const navigate = useNavigate();\n\n const params = useParams();\n const didMount = useRef(false);\n\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [showSpaceFilter, setSpaceFilter] = useState(true);\n\n const viewport = useRef();\n\n useEffect(() => {\n if (!didMount.current && props.spaceId) {\n didMount.current = true;\n onFetch();\n }\n }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n\n SpaceModel.onFetchChildren(\n props.spaceId,\n [\"members\"],\n paginator,\n [props.scope],\n (data) => {\n setSpaces(data.data);\n },\n (data) => {\n setLoading(false);\n }\n );\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n paginator.page++;\n\n onFetch();\n }\n };\n\n const getScopedTitle = () => {\n // const scope = params.scope ? params.scope : \"top\"\n // if (scope == \"direct\"){\n // return t('home.spacesList.directMessagesTitle')\n // } else {\n // return t('home.spacesList.yourSpaces')\n // }\n\n const scope = props.scope ? props.scope : \"top\";\n if (scope == \"top\") {\n return t(\"home.spacesList.topTitle\");\n } else if (scope == \"managed\") {\n return t(\"home.spacesList.managedTitle\");\n } else if (scope == \"pending\") {\n return t(\"home.spacesList.managedTitle\");\n } else if (scope == \"all\") {\n return t(\"home.spacesList.allTitle\");\n } else if (scope == \"direct\") {\n return t(\"home.spacesList.directMessagesTitle\");\n } else if (scope == \"archived\") {\n return t(\"home.spacesList.archivedTitle\");\n } else if (scope == \"deleted\") {\n return t(\"home.spacesList.deletedTitle\");\n } else if (scope == \"invitations\") {\n return t(\"home.spacesList.invitations\");\n }\n };\n\n return (\n \n {spaces.map((space) => {\n return (\n ({\n margin: \"15px 0px\",\n })}\n >\n \n \n );\n })}\n {spaces.length == 0 && !loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {`You don't have any `}\n {getScopedTitle().toLowerCase()}\n \n ) : (\n \"\"\n )}\n {props.addMargin && }\n \n );\n}\n","import React from \"react\";\n\nimport { Container } from \"@mantine/core\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ChildrenList from \"../ChildrenList\";\n\nexport default function Scheduled() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n return (\n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { Container } from \"@mantine/core\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ChildrenList from \"../ChildrenList\";\n\nexport default function Archived() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n return (\n ({\n height: \"100%\"\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport default function Sorter(props) {\n if (!props.orderBy) {\n return null;\n }\n\n return (\n props.onSort(props.sortBy)}>\n {props.orderBy.by == props.sortBy ? (\n props.orderBy.as == \"asc\" ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Stack, Progress, Checkbox, Box } from \"@mantine/core\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport {setTiptapSidemenu} from '../../../../store/app';\n\nexport default function ParticipationActivity(props) {\n const [member, setMember] = useState({});\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n useEffect(() => {\n setMember(props.member);\n }, [props]);\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n const capToMinValue = (value) => {\n if (value < 20) {\n return 20;\n }\n return value;\n };\n\n const getProgress = () => {\n if (props.showWords) {\n return {\n value: capToMinValue(\n (member.words_count * 100) / props.counts.max_words_count\n ),\n color: \"orange\",\n label: {`${member.words_count} words`},\n };\n } else {\n return {\n value: capToMinValue(\n (member.posts_count * 100) / props.counts.max_posts_count\n ),\n color: \"yellow\",\n label: {`${member.posts_count} ${t(\"spaces.settings.members.participationActivityRow.posts\")}`},\n };\n }\n\n // return [\n // {\n // value: props.counts ? member.avg_post_size * 100 / props.counts.max_words_count / 2 : 0,\n // color: \"orange\",\n // label: `${member.avg_post_size} words`\n // },\n // {\n // value: props.counts ? member.posts_count * 100 / props.counts.max_posts_count / 2 : 0,\n // color: \"yellow\",\n // label: `${member.posts_count} posts`,\n // }\n // ]\n };\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n \n \n \n\n \n {/* */}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n\n Box,\n Switch,\n TextInput,\n Checkbox,\n Loader,\n} from \"@mantine/core\";\n\nimport { DateRangePicker } from \"@mantine/dates\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Sorter from \"./Sorter\";\nimport Row from \"./ParticipationActivityRow\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function ParticipationActivity(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n const [value, setValue] = useState([\"\", \"\"]);\n const [showWords, setShowWords] = useState(false);\n const [orderBy, setOrderBy] = useState({ by: \"name\", as: \"asc\" });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n useEffect(() => {\n if (space && space.slug) {\n paginator.page = 1;\n onFetch();\n // onFetchCounts();\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n if (value && value[0] && value[1]) {\n props.onSearchByDateRange(value, term, paginator.page);\n } else {\n onFetch();\n }\n }\n }, [term]);\n\n useEffect(() => {\n if (value && value[0] && value[1]) {\n props.onSearchByDateRange(\n value,\n document.getElementById(\"search-input\").value,\n paginator.page\n );\n } else {\n onFetch();\n }\n }, [value]);\n\n useEffect(() => {\n if (\n props.channelData &&\n props.channelData.data &&\n props.channelData.data.length > 0\n ) {\n setMembers({ ...props.channelData });\n props.setChannelData({});\n return;\n }\n if (props.refresh) {\n \n onFetch(props.refresh);\n // onFetchCounts();\n props.setRefresh(false);\n }\n }, [props]);\n\n const onFetch = (refresh=null) => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n\n if (refresh == \"more\") {\n paginator.page++;\n }\n\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setLoading(false)\n const newData = { ...data };\n if (paginator.page == 1) {\n newData.data = [].concat(data.data);\n } else {\n newData.data = members.data.concat(data.data);\n }\n if (data.data.length == 0 && paginator.page > 1) {\n paginator.page--;\n }\n setMembers(newData);\n },\n (data) => {\n setLoading(false)\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onSort = (sortBy) => {\n const aux = { ...orderBy };\n aux.by = sortBy;\n aux.as = aux.as == \"asc\" ? \"desc\" : \"asc\";\n setOrderBy(aux);\n\n const auxMembers = { ...members };\n if (aux.as == \"asc\") {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return -1;\n }\n\n if (nameA > nameB) {\n return 1;\n }\n\n return 0; // names must be equal\n });\n } else {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return 1;\n }\n\n if (nameA > nameB) {\n return -1;\n }\n\n return 0; // names must be equal\n });\n }\n\n console.log(auxMembers.data);\n console.log(getSortKey(sortBy));\n console.log(aux);\n setMembers(auxMembers);\n };\n\n const getSortKey = (sortBy) => {\n return sortBy == \"name\"\n ? \"full_name\"\n : sortBy == \"participation\"\n ? showWords\n ? \"words_count\"\n : \"posts_count\"\n : sortBy;\n };\n\n return (\n
\n \n \n }\n placeholder={t(\"spaces.settings.members.participationActivity.participation.searchPlaceholder\")}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.participationActivity.participation.searchButton\")}\n \n {loading && }\n \n\n \n {!hasSelections() && (\n \n )}\n {hasSelections() && (\n <>\n \n props.onSendBroadcast(\"email\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.participationActivity.participation.emailButton\")}\n \n \n props.onSendBroadcast(\"message\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.participationActivity.participation.messageButton\")}\n \n \n )}\n \n \n\n \n {members.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.participationActivity.participation.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n
\n \n onSelectAll(event.currentTarget.checked)\n }\n />\n \n \n {t(\"spaces.settings.members.participationActivity.memberTable.member\")}{\" \"}\n \n \n \n \n {t(\"spaces.settings.members.participationActivity.memberTable.participation\")}{\" \"}\n \n \n {t(\"spaces.settings.members.participationActivity.memberTable.posts\")}\n \n setShowWords(event.currentTarget.checked)\n }\n />\n {t(\"spaces.settings.members.participationActivity.memberTable.words\")}\n \n \n
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Box, Stack, Checkbox, createStyles } from \"@mantine/core\";\n\nimport { DateTime } from \"luxon\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport {setTiptapSidemenu} from '../../../../store/app';\n\nconst useStyles = createStyles((theme, { colors }) => ({\n markComplete: {\n color: theme.colors.green[6],\n },\n}));\n\nexport default function MemberActivityRow(props) {\n const { theme, classes, cx } = useStyles({ colors });\n\n const [member, setMember] = useState({});\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n setMember(props.member);\n }, [props]);\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n \n \n \n\n \n \n {member.completed && (\n \n )}\n \n \n\n \n {member.last_seen_at\n ? DateTime.fromISO(member.last_seen_at).toFormat(\"LLL dd, yyyy\")\n : \"\"}\n \n\n \n {member.last_posted_at\n ? DateTime.fromISO(member.last_posted_at).toFormat(\"LLL dd, yyyy\")\n : \"\"}\n \n\n \n {member.joined\n ? DateTime.fromISO(member.joined).toFormat(\"LLL dd, yyyy\")\n : \"\"}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n Pagination,\n Box,\n TextInput,\n Checkbox,\n Loader,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./MemberActivityRow\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Sorter from \"./Sorter\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function MemberActivity(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const [orderBy, setOrderBy] = useState({ by: \"name\", as: \"asc\" });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n useEffect(() => {\n if (space && space.slug) {\n paginator.page = 1;\n onFetch();\n // onFetchCounts();\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n useEffect(() => {\n if (props.refresh) {\n \n onFetch(props.refresh);\n // onFetchCounts();\n props.setRefresh(false);\n }\n }, [props]);\n\n const onFetch = (refresh=null) => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n\n if (refresh == \"more\") {\n paginator.page++;\n }\n\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setLoading(false)\n const newData = { ...data };\n\n if (paginator.page == 1) {\n newData.data = [].concat(data.data);\n } else {\n newData.data = members.data.concat(data.data);\n }\n if (data.data.length == 0 && paginator.page > 1) {\n paginator.page--;\n }\n\n setMembers(newData);\n },\n (data) => {\n setLoading(false)\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onSort = (sortBy) => {\n const aux = { ...orderBy };\n aux.by = sortBy;\n aux.as = aux.as == \"asc\" ? \"desc\" : \"asc\";\n setOrderBy(aux);\n\n const auxMembers = { ...members };\n if (aux.as == \"asc\") {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return -1;\n }\n\n if (nameA > nameB) {\n return 1;\n }\n\n return 0; // names must be equal\n });\n } else {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return 1;\n }\n\n if (nameA > nameB) {\n return -1;\n }\n\n return 0; // names must be equal\n });\n }\n\n console.log(auxMembers.data);\n console.log(getSortKey(sortBy));\n console.log(aux);\n setMembers(auxMembers);\n };\n\n const getSortKey = (sortBy) => {\n return sortBy == \"name\"\n ? \"full_name\"\n : sortBy == \"participation\"\n ? showWords\n ? \"avg_post_size\"\n : \"posts_count\"\n : sortBy;\n };\n\n return (\n
\n \n \n }\n placeholder={t(\"spaces.settings.members.membersActivity.members.placeholder\")}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.membersActivity.members.button\")}\n \n {loading && }\n \n {hasSelections() && (\n \n \n props.onSendBroadcast(\"email\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.membersActivity.members.emailButton\")}\n \n \n props.onSendBroadcast(\"message\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.membersActivity.members.messageButton\")}\n \n \n )}\n \n\n \n {members.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.membersActivity.members.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n
\n \n onSelectAll(event.currentTarget.checked)\n }\n />\n \n {t(\"spaces.settings.members.membersActivity.memberTable.noRecordFound\")}{\" \"}\n \n \n \n \n {t(\"spaces.settings.members.membersActivity.memberTable.lastSeen\")}{\" \"}\n \n \n {t(\"spaces.settings.members.membersActivity.memberTable.lastPosted\")}{\" \"}\n \n \n {t(\"spaces.settings.members.membersActivity.memberTable.date\")}{\" \"}\n \n
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Stack, Progress, Checkbox } from \"@mantine/core\";\n\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport {setTiptapSidemenu} from '../../../../store/app';\n\nexport default function ProgressActivity(props) {\n const [member, setMember] = useState({});\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n setMember(props.member);\n }, [props]);\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n \n \n \n\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n\n Box,\n TextInput,\n Checkbox,\n Loader,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./ProgressActivityRow\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Sorter from \"./Sorter\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function ProgressActivity(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [orderBy, setOrderBy] = useState({ by: \"name\", as: \"asc\" });\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [value, setValue] = useState([\n new Date(2021, 11, 1),\n new Date(2021, 11, 5),\n ]);\n\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const checkSearchParams = () => {\n const search = location.search;\n const scope = new URLSearchParams(search).get(\"scope\");\n\n if (scope) {\n setScope(scope);\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n useEffect(() => {\n if (space && space.slug) {\n paginator.page = 1;\n onFetch();\n // onFetchCounts();\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n useEffect(() => {\n if (props.refresh) {\n \n onFetch(props.refresh);\n // onFetchCounts();\n props.setRefresh(false);\n }\n }, [props]);\n\n const onFetch = (refresh=null) => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n\n if (refresh == \"more\") {\n paginator.page++;\n }\n\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setLoading(false)\n const newData = { ...data };\n\n if (paginator.page == 1) {\n newData.data = [].concat(data.data);\n } else {\n newData.data = members.data.concat(data.data);\n }\n\n if (data.data.length == 0 && paginator.page > 1) {\n paginator.page--;\n }\n\n setMembers(newData);\n },\n (data) => {\n setLoading(false)\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onSort = (sortBy) => {\n const aux = { ...orderBy };\n aux.by = sortBy;\n aux.as = aux.as == \"asc\" ? \"desc\" : \"asc\";\n setOrderBy(aux);\n\n const auxMembers = { ...members };\n if (aux.as == \"asc\") {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return -1;\n }\n\n if (nameA > nameB) {\n return 1;\n }\n\n return 0; // names must be equal\n });\n } else {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return 1;\n }\n\n if (nameA > nameB) {\n return -1;\n }\n\n return 0; // names must be equal\n });\n }\n\n console.log(auxMembers.data);\n console.log(getSortKey(sortBy));\n console.log(aux);\n setMembers(auxMembers);\n };\n\n const getSortKey = (sortBy) => {\n return sortBy == \"name\"\n ? \"full_name\"\n : sortBy == \"participation\"\n ? showWords\n ? \"avg_post_size\"\n : \"posts_count\"\n : sortBy;\n };\n\n return (\n
\n \n \n }\n placeholder={t(\"spaces.settings.members.progressActivity.progress.searchPlaceholder\")}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.progressActivity.progress.searchButton\")}\n \n {loading && }\n \n {hasSelections() && (\n \n \n props.onSendBroadcast(\"email\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.progressActivity.progress.emailButton\")}\n \n \n props.onSendBroadcast(\"message\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.progressActivity.progress.messageButton\")}\n \n \n )}\n \n\n \n {(members.data.length == 0 && !loader.loading) ||\n (members.data.length > 0 && !members.data[0].has_progress) ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.progressActivity.progress.noRecordFound\")}\n {members.data.length > 0 && !members.data[0].has_progress && (\n

\n {t(\"spaces.settings.members.progressActivity.progress.progressTracking\")}\n

\n )}\n \n ) : (\n \n \n \n \n \n \n \n \n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n
\n \n onSelectAll(event.currentTarget.checked)\n }\n />\n \n {t(\"spaces.settings.members.progressActivity.progressTable.member\")}{\" \"}\n \n \n {t(\"spaces.settings.members.progressActivity.progressTable.progress\")}{\" \"}\n \n
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n\n \n
\n );\n}\n","// import axios from 'axios';\n\nclass Participation {\n constructor() {\n if (this instanceof Invitation) {\n throw Error('Invitation class cannot be instantiated.');\n }\n }\n\n static onFetchCounts = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/participation.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onSearchByDateRange = async (slug, {dates, term, page}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n start_at: dates[0],\n end_at: dates[1],\n term,\n page\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/participation/in_date_range.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Participation;\n","import React, { useState, useEffect, useContext, useRef } from \"react\";\n\nimport {\n Container,\n Text,\n Group,\n ScrollArea,\n SegmentedControl,\n MantineProvider,\n Box,\n SimpleGrid,\n Center,\n Paper,\n RingProgress,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { useLocation, useParams } from \"react-router-dom\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport ParticipationActivity from \"./members/ParticipationActivity\";\nimport MemberActivity from \"./members/MemberActivity\";\nimport ProgressActivity from \"./members/ProgressActivity\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ParticipationModel from \"../../../models/Participation\";\n\nimport ComposeBroadcast from \"./broadcast/ComposeBroadcast\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\nimport Premium from \"../../app/Premium\";\n\nexport default function Participation() {\n const { t, i18n } = useTranslation();\n const location = useLocation();\n const params = useParams();\n const space = useSelector((state) => state.space);\n const theme = useMantineTheme();\n const [pageSection, setPageSection] = useState(\"participationactivity\");\n const [counts, setCounts] = useState({});\n const [refresh, setRefresh] = useState(false);\n const [channelData, setChannelData] = useState({ data: [] });\n const [opened, setOpened] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n const [canSendSelective, setCanSendSelective] = useState([]);\n const [canSeeTab, setCanSeeTab] = useState([]);\n\n const participationChannel = useRef();\n const sendToUsers = useRef([]);\n const broadcastType = useRef(\"email\");\n const cable = useContext(ActionCableContext);\n\n const viewport = useRef();\n\n useEffect(() => {\n cableConnect();\n return () => {\n if (participationChannel.current) {\n participationChannel.current.unsubscribe();\n participationChannel.current = null;\n }\n };\n }, []);\n\n useEffect(() => {\n checkSearchParams();\n }, location);\n\n useEffect(() => {\n setCanSendSelective(\n space &&\n space.permissions &&\n space.permissions.can_send_selective_broadcast\n );\n setCanSeeTab(\n space && space.permissions && space.permissions.can_see_participation_tab\n );\n\n onFetchCounts();\n }, [space]);\n\n const onSendBroadcast = (type, users, selected) => {\n if (!canSendSelective[0]) {\n setOpenedPremium([true, canSendSelective[1], canSendSelective[2]]);\n return;\n }\n\n sendToUsers.current = [];\n for (let i = 0; i < users.length; i++) {\n if (\n selected.indexOf(users[i].username) >= 0 &&\n window.$currentUserId != users[i].user_id\n ) {\n sendToUsers.current.push({ ...users[i] });\n }\n }\n broadcastType.current = type;\n setOpened(true);\n };\n\n const onBroadcastUpdate = () => {};\n\n const cableConnect = () => {\n if (!participationChannel.current) {\n participationChannel.current = cable.subscriptions.create(\n {\n channel: \"ParticipationChannel\",\n user_token: window.$currentUserAuthToken,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\"participationChannel connected ============>\");\n },\n disconnected: () => {},\n received: (data) => {\n console.log(\"participationChannel ============>\");\n console.log(data);\n console.log(\"participationChannel ============>\");\n setChannelData(data);\n },\n }\n );\n }\n };\n\n const checkSearchParams = () => {\n const search = location.search;\n const section = new URLSearchParams(search).get(\"section\");\n\n if (section) {\n setPageSection(section);\n }\n };\n\n const displayPageSection = () => {\n if (pageSection == \"memberactivity\") {\n return (\n \n );\n } else if (pageSection == \"participationactivity\") {\n return (\n \n );\n } else if (pageSection == \"progress\") {\n return (\n \n );\n }\n };\n\n const onFetchCounts = () => {\n ParticipationModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onSearchByDateRange = (dates, term, page) => {\n ParticipationModel.onSearchByDateRange(\n space.slug,\n { dates, term, page },\n (data) => {\n if (data.wait) {\n }\n },\n (data) => {}\n );\n };\n\n const getStats = () => {\n return [\n {\n label: t(\"spaces.settings.participation.label1\"),\n description: t(\"spaces.settings.participation.description1\"),\n count: counts.presence,\n stats: `${counts.presence}`,\n color: counts.presence < 40 ? \"red\" : \"green\",\n type: \"percent\",\n },\n {\n label: t(\"spaces.settings.participation.label2\"),\n description: t(\"spaces.settings.participation.description2\"),\n count: counts.activity,\n stats: `${counts.activity}`,\n color: counts.activity < 40 ? \"red\" : \"green\",\n type: \"percent\",\n },\n {\n label: t(\"spaces.settings.participation.label3\"),\n description: t(\"spaces.settings.participation.description3\"),\n count: counts.posts,\n stats: `${counts.posts}`,\n color: \"red\",\n type: \"number\",\n },\n ];\n };\n\n const stats = getStats().map((stat) => {\n return (\n \n \n {stat.type == \"percent\" ? (\n \n \n {stat.stats}\n \n \n }\n />\n ) : (\n \n
\n \n {stat.stats}\n \n
\n \n )}\n\n
\n \n {stat.label}\n \n \n {stat.description}\n \n
\n
\n
\n );\n });\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n setRefresh(\"more\");\n }\n };\n\n if (!canSeeTab[0]) {\n return ;\n }\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n\n \n {counts.presence != null && counts.presence >= 0 ? stats : null}\n \n\n setPageSection(value)}\n data={[\n {\n label: t(\"spaces.settings.participation.label4\"),\n value: \"participationactivity\",\n },\n {\n label: t(\"spaces.settings.participation.label5\"),\n value: \"memberactivity\",\n },\n {\n label: t(\"spaces.settings.participation.label6\"),\n value: \"progress\",\n },\n ]}\n />\n\n \n {displayPageSection()}\n \n \n \n \n \n );\n}\n","import React from 'react';\n\nimport { Routes, Route } from \"react-router-dom\";\n\nimport { useSelector } from 'react-redux';\n\nimport SettingsMain from \"../Main\"\nimport SettingsMembers from \"../Members\"\nimport SettingsBroadcast from \"../Broadcast\"\nimport SettingsSurveys from \"../Surveys\"\nimport SettingsStructures from \"../Structures\"\nimport SettingsAdmin from \"../Admin\"\nimport SettingsScheduled from \"../Scheduled\"\nimport SettingsArchived from \"../Archived\"\nimport SettingsParticipation from \"../Participation\"\n\nexport default function MainContent() {\n\n const space = useSelector(state => state.space);\n\n return (\n
\n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n
\n )\n}\n","import React from \"react\";\n\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { createStyles } from \"@mantine/core\";\n\nimport NavbarContent from \"./layout/NavbarContent\";\nimport MainContent from \"./layout/MainContent\";\n\nimport { setHiddenSidebar, setHiddenHeader } from \"../../../store/app\";\n\nconst useStyles = createStyles((theme) => ({\n settingsWrap: {\n display: \"flex\",\n flexFlow: \"row\",\n height: \"100%\",\n },\n settingSidebar: {\n width: \"300px\",\n boxSizing: \"border-box\",\n overflow: \"hidden\",\n backgroundColor: theme.colors.gray[7],\n },\n settingsMain: {\n width: \"100%\",\n height: \"calc(100vh)\",\n // backgroundColor: \"red\",\n \"& > div\": {\n height: \"100%\",\n },\n },\n}));\n\nfunction Settings(props) {\n const user = useSelector((state) => state.user);\n const timeoutId = useRef();\n const { classes, cx } = useStyles();\n\n const dispatch = useDispatch();\n\n const helpScouteLoaded = useRef();\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n }, 1000);\n\n return () => {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n if (window.$hiddenLayoutElements) {\n dispatch(\n setHiddenSidebar({\n hidden: window.$hiddenLayoutElements.indexOf(\"sidebar\") >= 0,\n })\n );\n dispatch(\n setHiddenHeader({\n hidden: window.$hiddenLayoutElements.indexOf(\"header\") >= 0,\n })\n );\n } else {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n }\n\n window.Beacon(\"reset\");\n window.Beacon(\"destroy\");\n helpScouteLoaded.current = false;\n localStorage.removeItem(\"lastOpenedSettingsTabs\");\n };\n }, []);\n\n useEffect(() => {\n if (user && user.authenticated) {\n if (!helpScouteLoaded.current && user.username) {\n helpScouteLoaded.current = true;\n setTimeout(() => {\n window.Beacon(\"init\", \"8baee135-5597-476a-8269-cb1460d638e4\");\n window.Beacon(\"identify\", {\n name: user.name,\n email: user.email,\n account_type: user.account_type,\n // avatar: user.avatar ? user.avatar.url : \"\",\n });\n }, 2000);\n }\n }\n }, [props]);\n\n return (\n
\n
\n \n
\n
\n \n
\n
\n );\n}\n\nexport default Settings;\n","import axios from 'axios';\n\nclass Reflection {\n constructor() {\n if (this instanceof Reflection) {\n throw Error('Reflection class cannot be instantiated.');\n }\n }\n\n static onFetch = async (pod_message_id, page, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n pod_message_id: pod_message_id\n }\n\n await axios.get(`/api/v4/reflections.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onCreate = async (pod_message_id, {json, html}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n json,\n html,\n pod_message_id: pod_message_id\n }\n\n await axios.post(`/api/v4/reflections.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onUpdate = async (id, {json, html}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n json,\n html,\n }\n\n await axios.put(`/api/v4/reflections/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onDestroy = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await axios.delete(`/api/v4/reflections/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n\n static onFetchUnread = async (pod_message_id, space_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n pod_message_id,\n space_id\n }\n\n await axios.get(`/api/v4/reflections/unread.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n\n errorCallback(error.response.data)\n } catch (e) {\n\n } finally {\n\n }\n });\n }\n}\n\nexport default Reflection;\n","import React, { useState, useCallback } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\nimport tinycolor from \"tinycolor2\";\nimport data from \"@emoji-mart/data\";\nimport Picker from \"@emoji-mart/react\";\n\nimport Uploader from \"./Uploader\";\n\nimport { isDocumentEmpty } from \"../utils/selection\";\n\nimport {\n createStyles,\n Group,\n Button,\n Menu,\n Box,\n ActionIcon,\n MantineProvider,\n Popover,\n Tooltip,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, sutraTheme }) => ({\n menuButton: {\n borderRadius: 5,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(4).toString(),\n },\n },\n button: {\n borderRadius: 5,\n marginRight: 10,\n color: colors.default_text_color,\n\n \"&:hover\": {\n color: colors.default_text_color,\n backgroundColor: tinycolor(colors.background_color).darken(4).toString(),\n },\n },\n isActive: {\n color: !isSpaceThemed(colors)\n ? sutraTheme.colors.sutrablue[4]\n : colors.sidebar_text_color,\n backgroundColor: !isSpaceThemed(colors)\n ? \"#fff\"\n : tinycolor(colors.sidebar_background_color).darken(4).toString(),\n },\n sendButtonActive: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n sendButtonNotActive: {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(20)\n .toString(),\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(20)\n .toString(),\n },\n cursor: \"default\",\n },\n cancelButton: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n },\n bottomIcon: {\n color: colors.default_text_color,\n paddingLeft: 4,\n paddingRight: 4,\n paddingTop: 2,\n paddingBottom: 2,\n marginLeft: 0,\n marginRight: 0,\n marginTop: 4,\n marginBottom: 4,\n cursor: \"pointer\",\n borderRadius: 3,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.sidebar_background_color)\n .darken(4)\n .toString(),\n },\n },\n}));\n\nconst BlocksMenuSimple = (props) => {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors, sutraTheme });\n\n const [openedMedia, setOpenedMedia] = useState(false);\n const [mediaType, setMediaType] = useState(\"image\");\n const [openedEmojis, setOpenedEmojis] = useState(false);\n\n const onEmojiSelect = (emoji) => {\n props.editor.chain().focus().setEmoji(emoji.id).run();\n setOpenedEmojis(false);\n };\n\n const setLink = useCallback(() => {\n const previousUrl = props.editor.getAttributes(\"link\").href;\n const url = window.prompt(\"URL\", previousUrl);\n\n // cancelled\n if (url === null) {\n return;\n }\n\n // empty\n if (url === \"\") {\n props.editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n\n return;\n }\n\n // update link\n props.editor\n .chain()\n .focus()\n .extendMarkRange(\"link\")\n .setLink({ href: url })\n .run();\n }, [props.editor]);\n\n const setImage = () => {\n setMediaType(\"image\");\n setOpenedMedia(true);\n };\n\n const setVideo = () => {\n setMediaType(\"video\");\n setOpenedMedia(true);\n };\n\n const setAudio = () => {\n setMediaType(\"audio\");\n setOpenedMedia(true);\n };\n\n const setFile = () => {\n setMediaType(\"file\");\n setOpenedMedia(true);\n };\n\n const onMediaSave = () => {\n setOpenedMedia(false);\n };\n\n const cleanHtml = (html) => {\n const el = document.createElement(\"div\");\n el.innerHTML = html;\n let lastNonEmptyEl = null;\n let currEl = el.lastElementChild;\n while (currEl) {\n if (\n currEl.textContent.trim().length > 0 ||\n [\"img\", \"video\", \"audio\", \"section\"].includes(\n currEl.tagName.toLowerCase()\n )\n ) {\n lastNonEmptyEl = currEl;\n break;\n }\n currEl = currEl.previousElementSibling;\n }\n if (lastNonEmptyEl) {\n let currEmptyEl = lastNonEmptyEl.nextElementSibling;\n while (currEmptyEl) {\n const nextEl = currEmptyEl.nextElementSibling;\n if (\n currEmptyEl.textContent.trim().length == 0 &&\n ![\"img\", \"video\", \"audio\", \"section\"].includes(\n currEmptyEl.tagName.toLowerCase()\n )\n ) {\n currEmptyEl.remove();\n }\n currEmptyEl = nextEl;\n }\n }\n\n return el.innerHTML;\n };\n\n const onSave = () => {\n if (!isDocumentEmpty(props.editor)) {\n props.onSave(\n props.editor.getJSON(),\n cleanHtml($(props.editor.view.dom).first().html())\n );\n props.editor.commands.setContent(\"

\");\n }\n props.editor.commands.focus();\n };\n\n const setShowFormatting = () => {\n props.editor.commands.focus();\n props.setShowFormatting(!props.showFormatting);\n };\n\n if (!props.editor) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n }\n >\n setFile()}\n icon={}\n >\n {t(\"tiptap.components.blocksMenuSimple.file\")}\n \n setImage()}\n icon={}\n >\n {t(\"tiptap.components.blocksMenuSimple.image\")}\n \n setVideo()}\n icon={}\n >\n {t(\"tiptap.components.blocksMenuSimple.video\")}\n \n setAudio()}\n icon={}\n >\n {t(\"tiptap.components.blocksMenuSimple.audio\")}\n \n \n\n setOpenedEmojis(false)}\n zIndex={999999}\n target={\n setOpenedEmojis(!openedEmojis)}\n >\n \n \n \n \n }\n position=\"bottom\"\n withArrow\n width={352}\n styles={{\n popover: {\n order: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n wrapper: {\n order: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n inner: {\n padding: 0,\n border: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n body: {\n border: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n }}\n >\n \n \n\n setOpenedMedia(false)}\n target={\n setImage()}\n className={classes.bottomIcon}\n >\n \n \n \n \n }\n width={400}\n position=\"top\"\n withArrow\n >\n \n \n\n setShowFormatting()}\n className={classes.bottomIcon}\n >\n \n \n \n \n \n\n \n {props.editable && props.cancellable ? (\n \n props.onCancel(false)}\n >\n {t(\"tiptap.components.blocksMenuSimple.cancelButton\")}\n \n \n ) : (\n \"\"\n )}\n\n }\n onClick={() => onSave()}\n >\n {`${props.saveTitle}`}\n \n \n \n \n );\n};\n\nexport default BlocksMenuSimple;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\n\nimport StarterKit from \"@tiptap/starter-kit\";\n\nimport TextStyle from \"@tiptap/extension-text-style\";\nimport { Color } from \"@tiptap/extension-color\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport Underline from \"@tiptap/extension-underline\";\n\nimport TaskList from \"@tiptap/extension-task-list\";\nimport TaskItem from \"@tiptap/extension-task-item\";\n\nimport Placeholder from \"@tiptap/extension-placeholder\";\n\nimport UniqueID from \"../plugins/CustomUniqId\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Details from \"@tiptap-pro/extension-details\";\nimport DetailsSummary from \"@tiptap-pro/extension-details-summary\";\nimport DetailsContent from \"@tiptap-pro/extension-details-content\";\n\nimport Link from \"@tiptap/extension-link\";\nimport ParagraphNode from \"../nodes/ParagraphNode\";\nimport HeadingNode from \"../nodes/HeadingNode\";\nimport ImageNode from \"../nodes/ImageNode\";\nimport VideoNode from \"../nodes/VideoNode\";\nimport AudioNode from \"../nodes/AudioNode\";\nimport EmbedNode from \"../nodes/EmbedNode\";\nimport FileNode from \"../nodes/FileNode\";\nimport SurveyNode from \"../nodes/SurveyNode\";\nimport ListItemNode from \"../nodes/ListItemNode\";\nimport FancyLinkNode from \"../nodes/FancyLinkNode\";\n\nimport TakeSurvey from \"./TakeSurvey\";\n\nimport FormatMenuSimple from \"./FormatMenuSimple\";\nimport BlocksMenuSimple from \"./BlocksMenuSimple\";\n\nimport CustomStyles from \"../plugins/CustomStyles\";\nimport EventHandler from \"../plugins/EventHandler\";\nimport EditorEvents from \"../plugins/EditorEventsSimple\";\nimport CustomSize from \"../plugins/CustomSize\";\nimport CustomResizeable from \"../plugins/CustomResizeable\";\nimport ColumnStyles from \"../plugins/ColumnStyles\";\nimport CustomButton from \"../plugins/CustomButton\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport tinycolor from \"tinycolor2\";\n\nimport Emoji, { gitHubEmojis } from \"@tiptap-pro/extension-emoji\";\n\nimport { Mention } from \"../plugins/Mention\";\nimport mentionSuggestion from \"../plugins/mentionSuggestion\";\n\nimport { Box, createStyles, ScrollArea } from \"@mantine/core\";\n\nimport { storeJSON, getJSON } from \"../../../utils/LocalDB\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n panelWrap: {\n border: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(10).toString()\n : colors.sidebar_background_color\n }`,\n borderRadius: 10,\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nconst Tiptap = (props) => {\n const colors = useSelector((state) => state.colors);\n const [showFormatting, setShowFormatting] = useState(false);\n const { classes, cx, theme } = useStyles({ colors });\n\n const timeoutId = useRef();\n const contextGet = useRef();\n\n const editor = useEditor({\n onCreate({ editor }) {\n // applyDevTools(editor.view);\n },\n editable: props.editable,\n content: props.content\n ? { type: \"doc\", content: props.content.content }\n : \"\",\n extensions: [\n StarterKit.configure({\n history: true,\n paragraph: false,\n heading: false,\n listItem: false,\n blockquote: false\n }),\n UniqueID.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"grid2\",\n \"grid3\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"survey\",\n \"fancyLink\",\n ],\n }),\n Highlight.configure({\n multicolor: true,\n }),\n Underline,\n TextStyle,\n Color,\n VideoNode,\n AudioNode,\n EmbedNode,\n FileNode,\n ListItemNode,\n ParagraphNode,\n HeadingNode,\n SurveyNode,\n FancyLinkNode,\n EventHandler,\n EditorEvents,\n ColumnStyles.configure({\n types: [\"column\"],\n }),\n CustomSize.configure({\n types: [\"file\", \"audio\", \"survey\", \"fancyLink\"],\n }),\n CustomResizeable.configure({\n types: [\"image\", \"video\", \"embed\"],\n }),\n CustomButton.configure({\n types: [\"survey\"],\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Placeholder.configure({\n placeholder: ({ node, pos }) => {\n if (node.type.name === \"paragraph\" && pos == 0) {\n return \"Write something...\";\n }\n\n return \"\";\n },\n showOnlyCurrent: true,\n }),\n Link.configure({\n openOnClick: false,\n }),\n ImageNode,\n TextAlign.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"detailsSummary\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"survey\",\n \"fancyLink\"\n ],\n }),\n Details.configure({\n HTMLAttributes: {\n openClassName: \"is-open\",\n class: \"tiptap-details\",\n },\n }),\n DetailsSummary.configure({\n HTMLAttributes: {\n class: \"tiptap-details-summary\",\n },\n }),\n DetailsContent.configure({\n HTMLAttributes: {\n class: \"tiptap-details-content\",\n },\n }),\n Emoji.configure({\n emojis: gitHubEmojis,\n enableEmoticons: true,\n // suggestion,\n }),\n Mention.configure({\n HTMLAttributes: {\n class: \"mention\",\n },\n suggestion: mentionSuggestion,\n renderLabel({ options, node }) {\n const value = node.attrs.label ?? node.attrs.id.split(\"|\")[1];\n return `${options.suggestion.char}${value}`;\n },\n }),\n ],\n });\n\n const chatHeight = () => {\n // TODO: NO JQUERY\n const height =\n $(window).height() - $(\"#fixed-height-is-main\").height() - 80;\n if (height < 400) {\n return `${height - 80}px`;\n }\n\n return \"350px\";\n };\n\n useEffect(() => {\n return () => {\n \n contextGet.current = false\n }\n }, [])\n\n useEffect(() => {\n if (editor) {\n editor.off(\"update\", onUpdate);\n editor.on(\"update\", onUpdate);\n editor.off(\"transaction\", onUpdate);\n editor.on(\"transaction\", onUpdate);\n editor.off(\"selectionUpdate\", onUpdate);\n editor.on(\"selectionUpdate\", onUpdate);\n editor.off(\"create\", onCreate);\n editor.on(\"create\", onCreate);\n }\n }, [editor]);\n\n const onCreate = () => {\n contextGet.current = false\n \n getJSON(`spaces`, props.contextDb, (data) => {\n setTimeout(() => {\n contextGet.current = true\n }, 2000)\n if (data && data.json) {\n editor.commands.setContent(typeof data.json == \"string\" ? JSON.parse(data.json) : data.json)\n }\n })\n }\n \n const onUpdate = () => {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n const json_data = editor.getJSON()\n const html_data = $(editor.view.dom).html()\n if (props.contextDb && contextGet.current){\n storeJSON(\"spaces\", props.contextDb, { json: JSON.stringify(json_data), html: html_data });\n }\n }, 500);\n };\n\n return (\n \n {props.editable && showFormatting ? (\n \n ) : (\n \"\"\n )}\n \n \n \n {props.editable && (\n \n )}\n {props.modals && }\n \n );\n};\n\nexport default Tiptap;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport LikeModel from \"../../models/Like\";\n\nimport { Button, Box, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n button: {\n borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(20).toString(),\n paddingLeft: 12,\n paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n}));\n\nexport default function LikeButton(props) {\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const navigate = useNavigate()\n const params = useParams()\n\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n\n const { classes, cx, theme } = useStyles({\n colors: getColors(),\n });\n\n const [liked, setLiked] = useState(false);\n const [count, setCount] = useState(0);\n const [hovered, setHovered] = useState(false);\n\n const propsLoaded = useRef();\n const likedR = useRef();\n const loaded = useRef();\n\n useEffect(() => {\n // if (propsLoaded.current){\n // return\n // }\n propsLoaded.current = true\n setLiked(props.liked);\n likedR.current = props.liked;\n setCount(props.count);\n }, [props]);\n\n const onLike = (event) => {\n event.stopPropagation();\n\n if (!user.authenticated) {\n\n localStorage.setItem(\"join_slug\", props.spaceId || params.slug);\n navigate(`/user/start?s=${props.spaceId || params.slug}`);\n return;\n }\n\n if (loaded.current){\n clearTimeout(loaded.current)\n }\n\n loaded.current = setTimeout(() => {\n LikeModel.onCreate(\n {\n pod_id: props.spaceId,\n pod_message_id: props.messageId,\n reflection_reflection_id: props.reflectionId,\n },\n (data) => {\n likedR.current = data.data.liked;\n setLiked(likedR.current);\n let newCount = likedR.current ? count + 1 : count - 1\n if (newCount < 0){\n newCount = 0\n }\n setCount(newCount);\n if (props.callback) {\n props.callback(data.data.liked);\n }\n },\n (data) => {}\n );\n }, 1000)\n\n };\n\n const onMouseEnter = (event) => {\n setHovered(true);\n };\n\n const onMouseLeave = (event) => {\n setHovered(false);\n };\n\n return (\n \n {\n liked ? (\n hovered ? (\n \n ) : (\n \n )\n ) : hovered ? (\n \n ) : (\n \n )\n }\n \n }\n onClick={(event) => onLike(event)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n Like\n \n );\n}\n","// import axios from 'axios';\n\nclass Tag {\n constructor() {\n if (this instanceof Tag) {\n throw Error('Tag class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug\n }\n\n await window.$api.get(`/api/v4/tags.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (type, pod_message_id, slug, tag, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id: slug,\n pod_message_id,\n tag,\n type\n }\n\n await window.$api.post(`/api/v4/tags.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (id, tag, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n tag,\n global: window.location.pathname.indexOf(\"settings\") >= 0 ? true : null\n }\n\n await window.$api.put(`/api/v4/tags/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n global: window.location.pathname.indexOf(\"settings\") >= 0 ? true : null\n }\n\n await window.$api.delete(`/api/v4/tags/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Tag;\n","import { useMantineTheme } from '@mantine/core';\n\nexport default function useTagColors(color) {\n\n const theme = useMantineTheme();\n\n switch(color) {\n case theme.other.tagColors[0].backgroundColor:\n return 0;\n break;\n case theme.other.tagColors[1].backgroundColor:\n return 1;\n break;\n case theme.other.tagColors[2].backgroundColor:\n return 2;\n break;\n case theme.other.tagColors[3].backgroundColor:\n return 3;\n break;\n case theme.other.tagColors[4].backgroundColor:\n return 4;\n break;\n case theme.other.tagColors[5].backgroundColor:\n return 5;\n break;\n case theme.other.tagColors[6].backgroundColor:\n return 6;\n break;\n case theme.other.tagColors[7].backgroundColor:\n return 7;\n break;\n case theme.other.tagColors[8].backgroundColor:\n return 8;\n break;\n case theme.other.tagColors[9].backgroundColor:\n return 9;\n break;\n case theme.other.tagColors[10].backgroundColor:\n return 10;\n break;\n case theme.other.tagColors[11].backgroundColor:\n return 11;\n break;\n case theme.other.tagColors[12].backgroundColor:\n return 12;\n break;\n case theme.other.tagColors[13].backgroundColor:\n return 13;\n break;\n default:\n return 5;\n }\n\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Popover,\n Button,\n Group,\n ActionIcon,\n ColorSwatch,\n createStyles,\n} from \"@mantine/core\";\n\nimport { X, ChevronDown } from \"tabler-icons-react\";\n\nimport TagModel from \"../../../../models/Tag\";\nimport useTagColors from \"../../../../collections/TagColors\";\n\nconst useStyles = createStyles((theme) => ({\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n height: 20,\n paddingRight: 2,\n paddingLeft: 3,\n },\n\n removeTag: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n}));\n\nlet manualUpdate = false;\n\nexport default function TagButton(props) {\n const mount = useRef();\n const { classes, theme } = useStyles();\n const [colorPicker, setColorPicker] = useState(false);\n const [name, setName] = useState(\"\");\n const [color, setColor] = useState();\n const [tagId, setTagId] = useState(null);\n\n useEffect(() => {\n if (!props.tagId) {\n onCreate();\n }\n }, []);\n\n useEffect(() => {\n setName(props.name);\n setColor(swatches[props.color]);\n setTagId(props.tagId);\n }, [props]);\n\n useEffect(() => {\n if (tagId && mount.current && manualUpdate) {\n manualUpdate = false;\n onUpdate();\n } else {\n mount.current = true;\n }\n }, [color]);\n\n const onCreate = () => {\n TagModel.onCreate(\n props.type,\n props.messageId,\n props.spaceId,\n { name: props.name, color: 0 },\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n };\n\n const onUpdate = () => {\n TagModel.onUpdate(\n tagId,\n { name, color: swatches.indexOf(color) },\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n TagModel.onDestroy(\n tagId,\n (data) => {\n props.onDestroy(name);\n },\n (data) => {}\n );\n };\n\n const onUpdateColor = (_color) => {\n manualUpdate = true;\n setColor(_color);\n };\n\n const swatches = [\n theme.other.tagColors[0].backgroundColor,\n theme.other.tagColors[1].backgroundColor,\n theme.other.tagColors[2].backgroundColor,\n theme.other.tagColors[3].backgroundColor,\n theme.other.tagColors[4].backgroundColor,\n theme.other.tagColors[5].backgroundColor,\n theme.other.tagColors[6].backgroundColor,\n theme.other.tagColors[7].backgroundColor,\n theme.other.tagColors[8].backgroundColor,\n theme.other.tagColors[9].backgroundColor,\n theme.other.tagColors[10].backgroundColor,\n theme.other.tagColors[11].backgroundColor,\n theme.other.tagColors[12].backgroundColor,\n theme.other.tagColors[13].backgroundColor,\n ];\n\n return (\n \n onDestroy()}\n >\n \n \n setColorPicker(false)}\n styles={{\n target: {\n lineHeight: 1,\n },\n inner: {\n paddingTop: 0,\n paddingLeft: 5,\n paddingRight: 5,\n paddingBottom: 5,\n },\n }}\n target={\n ({\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].backgroundColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].hoverColor,\n },\n })}\n onClick={() => setColorPicker(!colorPicker)}\n styles={{\n rightIcon: {\n marginLeft: 2,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n label: {\n fontSize: 10,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n }}\n radius=\"xl\"\n size=\"xs\"\n rightIcon={}\n >\n {props.name}\n \n }\n width={240}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n {swatches.map((_color) => (\n {\n onUpdateColor(_color);\n }}\n style={{ cursor: \"pointer\" }}\n />\n ))}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Text, Group, Box, Select } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport TagButton from \"./TagButton\";\n\nimport TagModel from \"../../../../models/Tag\";\n\nexport default function Tag(props) {\n const [tags, setTags] = useState([]);\n const [selectValue, setSelectValue] = useState([]);\n const [selectedTags, setSelectedTags] = useState([]);\n const { t } = useTranslation();\n\n useEffect(() => {\n const tagsNames = props.tags.map((i) => i[\"name\"]);\n setSelectedTags(tagsNames);\n onFetch();\n }, [props]);\n\n const onFetch = () => {\n TagModel.onFetch(\n props.spaceId,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n };\n\n const onAdd = (tag) => {\n if (selectedTags.indexOf(tag) === -1) {\n setSelectedTags(selectedTags.concat(tag));\n }\n setSelectValue(\"\");\n };\n\n const onRemove = (tag) => {\n const index = selectedTags.indexOf(tag);\n if (index >= 0) {\n const newSelectedTags = [...selectedTags];\n newSelectedTags.splice(index, 1);\n setSelectedTags(newSelectedTags);\n props.onUpdatedMessage();\n }\n };\n\n const getIdForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].id;\n }\n }\n return null;\n };\n\n const getColorForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].color;\n }\n }\n return null;\n };\n\n const Item = ({ label, ...others }) => (\n
\n \n
\n {label}\n
\n
\n
\n );\n\n return (\n \n ({\n backgroundColor: theme.colors.gray[1],\n padding: 10,\n })}\n >\n \n `+ ${t(\"spaces.presentations.tag.createAction\")} ${query}`\n }\n data={tags}\n maxDropdownHeight={400}\n onChange={(tag) => onAdd(tag)}\n value={selectValue}\n />\n \n 0 ? 10 : 0}>\n {selectedTags.map((tag) => {\n return (\n \n );\n })}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Swal from \"sweetalert2\";\nimport { useTranslation } from \"react-i18next\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\nimport tinycolor from \"tinycolor2\";\nimport ReflectionModel from \"../../../../models/Reflection\";\nimport MessageModel from \"../../../../models/Message\";\n\nimport { setTiptapSidemenu } from \"../../../../store/app\";\n\nimport {\n Button,\n Badge,\n Box,\n Text,\n Menu,\n Popover,\n Group,\n Tooltip,\n createStyles,\n} from \"@mantine/core\";\n\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport TiptapSimple from \"../../../tiptap/components/TiptapSimple\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\nimport LikeButton from \"../../../likes/Button\";\nimport MessageLikeButton from \"../../../likes/MessageButton\";\nimport Tag from \"./Tag\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n button: {\n borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(20).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n paddingLeft: 12,\n paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n\n // '&:not(:first-of-type)': {\n // borderRadius: 0,\n // },\n //\n // '&:first-of-type': {\n // borderTopLeftRadius: theme.radius.md,\n // borderBottomLeftRadius: theme.radius.md,\n // },\n //\n // '&:last-of-type': {\n // borderTopRightRadius: theme.radius.md,\n // borderBottomRightRadius: theme.radius.md,\n // },\n },\n reflectionButton: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n fontSize: 12,\n paddingLeft: 10,\n paddingRight: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n badgeClass: {\n backgroundColor: colors.default_badge_color,\n color: colors.default_badge_text_color,\n height: 15,\n padding: \"0 8px\",\n },\n messagePanel: {\n borderRadius: 10,\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n marginBottom: 5,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0]\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n\n [`&:hover .${getRef(\"toolPanel\")}`]: {\n visibility: \"visible\",\n },\n },\n messagePanelEditable: {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n messagePanelNotActive: {\n borderRadius: 10,\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n marginBottom: 5,\n },\n messageTagging: {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n [`.${getRef(\"toolPanel\")}`]: {\n visibility: \"visible\",\n },\n },\n toolPanel: {\n ref: getRef(\"toolPanel\"),\n visibility: \"hidden\",\n backgroundColor: colors.background_color,\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n borderRadius: theme.radius.md,\n },\n toolPanelTaggingNotActive: {\n visibility: \"hidden\",\n },\n username: {\n color: `${colors.default_text_color} !important`,\n },\n dateStamp: {\n color: !isSpaceThemed(colors)\n ? theme.colors.gray[5]\n : isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n footerElements: {\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n },\n\n footerButtons: {\n fontSize: 14,\n },\n}));\n\nexport default function Message(props) {\n const { t } = useTranslation();\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const [editable, setEditable] = useState(false);\n const [tag, setTag] = useState(false);\n const [likesCount, setLikesCount] = useState(0);\n const [liked, setLiked] = useState(false);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n const { language, setLangUser } = useLangUser();\n\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n const [reflections, setReflections] = useState(null);\n\n const loaded = useRef()\n\n useEffect(() => {\n if (props.tagging == props.messageId) {\n setTag(true);\n } else {\n setTag(false);\n }\n if (!loaded.current){\n loaded.current = true\n setLikesCount(props.likesCount);\n setLiked(props.isLiked)\n }\n }, [props]);\n\n useEffect(() => {\n if (inView && !reflections) {\n onFetchReflections();\n }\n }, [inView]);\n\n const onFetchReflections = () => {\n ReflectionModel.onFetchUnread(\n props.messageId,\n null,\n (data) => {\n setReflections({ ...data.reflections });\n },\n (data) => {}\n );\n };\n\n const onTag = (tags) => {\n // if (props.type == \"pod_message\"){\n // MessageModel.onUpdate(props.messageId, tags, (data) => {}, (data) => {});\n // }\n // else{\n // ReflectionModel.onUpdate(props.messageId, tags, (data) => {}, (data) => {});\n // }\n };\n\n const onSave = (json, html) => {\n if (props.type == \"pod_message\") {\n MessageModel.onUpdate(\n props.messageId,\n { json, html },\n (data) => {\n onUpdated();\n setTimeout(() => {\n setEditable(false);\n }, 500);\n },\n (data) => {}\n );\n } else {\n ReflectionModel.onUpdate(\n props.messageId,\n { json, html },\n (data) => {\n onUpdated();\n setTimeout(() => {\n setEditable(false);\n }, 500);\n },\n (data) => {}\n );\n }\n };\n\n const onMakePublic = () => {\n MessageModel.onMakePublic(\n props.messageId,\n (data) => {\n onUpdated();\n },\n (data) => {}\n );\n };\n\n const onMakePrivate = () => {\n MessageModel.onMakePrivate(\n props.messageId,\n (data) => {\n onUpdated();\n },\n (data) => {}\n );\n };\n\n const onUpdated = () => {\n if (props.type == \"pod_message\") {\n props.onUpdated(props.messageId);\n } else {\n props.onUpdated(props.parentId);\n }\n };\n\n const onDestroy = (json) => {\n Swal.fire({\n title: t(\"spaces.presentations.discussion.delete.title\"),\n html: t(\"spaces.presentations.discussion.delete.message\"),\n showDenyButton: true,\n confirmButtonText: t(\n \"spaces.presentations.discussion.delete.confirmButton\"\n ),\n denyButtonText: t(\"spaces.presentations.discussion.delete.cancelButton\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onDestroyConfirmation(json);\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDestroyConfirmation = (json) => {\n if (props.type == \"pod_message\") {\n MessageModel.onDestroy(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n } else {\n ReflectionModel.onDestroy(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n }\n };\n\n const onPinMessage = () => {\n if (props.type == \"pod_message\") {\n MessageModel.onPinMessage(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n }\n };\n\n const onCloseTags = () => {\n setTag(false);\n // onUpdated()\n };\n\n const onCopy = () => {\n Swal.fire(\"Done\", \"Text copied to clipboard\", \"success\");\n };\n\n const onTagFilter = (tag) => {\n navigate(`/space/${props.spaceId}/${props.spaceVersion}?tag=${tag.name}`);\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const openProfile = () => {\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: props.user.username })\n );\n };\n\n const onLike = (liked) => {\n setLikesCount(liked ? likesCount + 1 : likesCount - 1);\n setLiked(liked)\n };\n\n return (\n \n \n \n openProfile()}\n radius=\"xl\"\n size={45}\n mt={7}\n src={\n props.user && props.user.avatar && props.user.avatar.url\n ? props.user.avatar.url\n : DefaultAvatar\n }\n />\n \n \n \n \n openProfile()}\n size=\"md\"\n weight=\"700\"\n pb={2}\n sx={{ lineHeight: 1.2, cursor: \"pointer\" }}\n >\n {props.user.full_name}\n \n \n {new Date(props.messageCreatedAt).getYear() ==\n new Date().getYear()\n ? `${DateTime.fromISO(props.messageCreatedAt)\n .setLocale(language)\n .toFormat(\"EEE, MMM d, h:mm a\")}`\n : `${DateTime.fromISO(props.messageCreatedAt)\n .setLocale(language)\n .toFormat(\"EEE, MMM d y, h:mm a\")}`}\n \n \n \n \n {props.canLike && (\n \n )}\n\n {props.canReflect ? (\n }\n onClick={() => props.onOpenReflections(props.messageId)}\n >\n {t(\"spaces.presentations.message.reply\")}\n \n ) : (\n \"\"\n )}\n {props.canTag ? (\n {\n onCloseTags();\n props.setTagging(0);\n }}\n withCloseButton\n title={t(\"spaces.presentations.message.addTags\")}\n closeButtonLabel=\"Close popover\"\n closeOnClickOutside={false}\n styles={{\n inner: {\n padding: 0,\n },\n }}\n target={\n {\n setTag(!tag);\n props.setTagging(props.messageId);\n }}\n variant=\"subtle\"\n leftIcon={}\n >\n {t(\"spaces.presentations.message.tag\")}\n \n }\n width={320}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n \n ) : (\n \"\"\n )}\n {props.canEdit || props.canDelete || props.canPin ? (\n \n \n \n \n }\n >\n onPinMessage()}>\n onCopyLink()}\n text={props.text}\n >\n \n {t(\"spaces.presentations.message.copyToClipboard\")}\n \n \n \n\n {props.canPin && (\n onPinMessage()}>\n {props.isPinned\n ? \"Unpin message\"\n : t(\n \"spaces.presentations.message.pinMessageAction\"\n )}\n \n )}\n {props.canEdit && (\n setEditable(true)}>\n {t(\"spaces.presentations.message.editMessage\")}\n \n )}\n {props.canDelete && (\n onDestroy()}>\n {t(\"spaces.presentations.message.deleteMessage\")}\n \n )}\n {props.canSetPrivate && !props.isPrivate && (\n onMakePrivate()}>\n {t(\"spaces.presentations.message.makePrivate\")}\n \n )}\n \n \n ) : (\n \n )}\n \n \n \n
\n {props.version == \"new\" ? (\n
\n {editable == true ? (\n \n ) : (\n \n )}\n
\n ) : (\n
\n )}\n\n {/*\n \n {true && (\n \n \n \n )}\n {true && (\n \n \n Reflect\n \n \n )}\n {true && (\n \n \n Tag\n \n \n )}\n \n */}\n\n {props.tags && (\n \n {props.tags.map((tag) => {\n return (\n ({\n backgroundColor:\n theme.other.tagColors[tag.color].backgroundColor,\n color: theme.other.tagColors[tag.color].textColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[tag.color].hoverColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n onClick={() => onTagFilter(tag)}\n >\n {tag.name}\n \n );\n })}\n \n )}\n {props.canSetOpen && (\n \n \n ({\n backgroundColor:\n theme.other.tagColors[13].backgroundColor,\n color: theme.other.tagColors[13].textColor,\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[13].hoverColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n paddingLeft: 10,\n paddingRight: 10,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n leftIcon={}\n onClick={() => onMakePublic()}\n >\n Make public\n \n \n \n )}\n {props.isManager && props.isPrivate && (\n \n \n ({\n backgroundColor:\n theme.other.tagColors[13].backgroundColor,\n color: theme.other.tagColors[13].textColor,\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[13].hoverColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n paddingLeft: 10,\n paddingRight: 10,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n leftIcon={}\n >\n Private\n \n \n \n )}\n \n {props.reflections.length > 0 ? (\n props.onOpenReflections(props.messageId)}\n >\n {t(\"spaces.presentations.message.viewReplies1\")}{\" \"}\n {props.reflections.length}{\" \"}\n {props.reflections.length > 1\n ? t(\"spaces.presentations.message.viewReplies2plural\")\n : t(\"spaces.presentations.message.viewReplies2single\")}\n {reflections && reflections.unread > 0 ? (\n \n {reflections.unread}\n \n ) : (\n \"\"\n )}\n \n ) : (\n \"\"\n )}\n {likesCount > 0 && (\n 0 ? 0 : 16}>\n \n \n )}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {useNavigate} from \"react-router-dom\"\nimport { useSelector } from \"react-redux\";\n\nimport TiptapSimple from \"../../../tiptap/components/TiptapSimple\";\nimport Message from \"./Message\";\nimport ReflectionModel from \"../../../../models/Reflection\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport tinycolor from \"tinycolor2\";\n\nimport { Stack, ScrollArea, Divider, createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n dividerStyle: {\n marginTop: 10,\n marginBottom: 10,\n borderTop: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : colors.header_color\n }`,\n },\n}));\n\nexport default function Reflections(props) {\n const viewport = useRef();\n const navigate = useNavigate()\n\n const [tagging, setTagging] = useState(0);\n\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n if (\n props.message &&\n props.message.reflections &&\n !props.message.reflectionId\n ) {\n scrollToBottom();\n } else if (\n props.message &&\n props.message.reflections &&\n props.message.reflectionId\n ) {\n scrollToReflection(props.message.reflectionId);\n }\n }, [props]);\n\n const onSave = (json, html) => {\n\n if (!user.authenticated) {\n\n localStorage.setItem(\"join_slug\", props.spaceId);\n navigate(`/user/start?s=${props.spaceId}`);\n return;\n }\n\n json.attrs = { uid: `reflection-${new Date().getTime()}` };\n ReflectionModel.onCreate(\n props.message.id,\n { json, html },\n (data) => {\n if (props.useReflectCallback) {\n props.onUpdatedMessage(props.message.id);\n }\n },\n (data) => {}\n );\n };\n\n const scrollToBottom = () => {\n setTimeout(() => {\n if (!viewport.current) {\n return;\n }\n const top = viewport.current.scrollHeight;\n viewport.current.scrollTo({ top: top, behavior: \"smooth\" });\n }, 500);\n };\n\n const scrollToReflection = (reflectionId) => {\n setTimeout(() => {\n if (!viewport.current) {\n return;\n }\n\n const $scrollTo = document.getElementById(`reflection_${reflectionId}`);\n\n if (!$scrollTo) {\n return;\n }\n\n const top =\n $scrollTo.offsetTop -\n viewport.current.offsetTop +\n viewport.current.scrollTop +\n 80;\n\n viewport.current.scrollTo({ top: top, behavior: \"smooth\" });\n }, 500);\n };\n\n return (\n ({\n height: \"100%\",\n })}\n >\n \n {props.message ? (\n \n ) : (\n \"\"\n )}\n \n {props.message && props.message.reflections\n ? props.message.reflections.map((reflection) => {\n return (\n \n );\n })\n : \"\"}\n \n {props.canReflect && (\n
\n \n
\n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nexport default function HeaderImage(props) {\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n const hiddenCover = useSelector((state) => state.hiddenCover);\n\n const [image, setImage] = useState({ url: null });\n\n useEffect(() => {\n if (getSpace() && getSpace().header) {\n setImage(getSpace().header);\n }\n }, [space, space2]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n if (hiddenCover.hidden) {\n return null;\n }\n\n return (\n <>\n {image.url ? (\n \n ) : (\n \"\"\n )}\n \n );\n}\n","export const getBreadcrumbs = (path) => {\n return collapsedBreadcrumbs(path)\n}\n\nconst collapsedBreadcrumbs = (breadcrumbs) => {\n\n if (breadcrumbs.length <= 3){\n return breadcrumbs;\n }\n else{\n const root = breadcrumbs[0];\n const collapsed = {...root}\n collapsed.name = \"...\";\n collapsed.version = \"collapsed\"\n const collapsedBreadcrumbs = [root, collapsed];\n for (var i = 1; i < breadcrumbs.length; i++) {\n if (i > breadcrumbs.length - 3){\n const breadcrumb = breadcrumbs[i];\n collapsedBreadcrumbs.push(breadcrumb);\n }\n }\n return collapsedBreadcrumbs;\n }\n}\n\nexport const getCollapsed = (path) => {\n const collapsed = []\n for (var i = 1; i < path.length - 2; i++) {\n collapsed.push(path[i])\n }\n return collapsed\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\n\nimport {\n Breadcrumbs,\n Tooltip,\n Box,\n Text,\n createStyles,\n Menu,\n UnstyledButton,\n} from \"@mantine/core\";\n\nimport { getBreadcrumbs, getCollapsed } from \"../../utils/BreadcrumbsGenerator\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n// import {treeData} from '../../collections/testData'\nimport tinycolor from \"tinycolor2\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst offsetTop = {\n base: 60,\n origin: 0,\n};\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n breadcrumbs: {\n marginTop: 30,\n marginBottom: 5,\n backgroundColor: colors.background_color,\n },\n breadcrumbWrap: {\n color: isSpaceThemed(colors)\n ? tinycolor(colors.default_text_color).darken(40).toString()\n : tinycolor(colors.default_text_color).lighten(60).toString(),\n textDecoration: \"none\",\n },\n breadcrumbLink: {\n color: tinycolor(colors.default_text_color).darken(40).toString(),\n textDecoration: \"none\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n breadcrumbButton: {\n color: tinycolor(colors.default_text_color).darken(40).toString(),\n textDecoration: \"none\",\n // backgroundColor: 'red',\n \"&:hover\": {\n // backgroundColor: \"blue\",\n // textDecoration: \"underline\",\n },\n },\n breadcrumbButtonHover: {\n backgroundColor: \"red\",\n },\n fixed: {\n position: \"fixed\",\n },\n topOffset: {\n top: theme.other.headerHeight,\n },\n}));\n\nexport default function SystemBreadcrumbs(props) {\n const space = useSelector((state) => state.space);\n const scroll = useSelector((state) => state.scroll);\n\n const [breadcrumbs, setBreadcrumbs] = useState([]);\n const [fixed, setFixed] = useState(false);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n if (space && space.tree) {\n // setBreadcrumbs(getBreadcrumbs(treeData, \"mclh6s\", \"LALALA\", space.version));\n\n const auxBreadcrumbs = getBreadcrumbs([\n ...space.paths[window.$currentTopSlug],\n ]);\n auxBreadcrumbs.pop();\n setBreadcrumbs(auxBreadcrumbs);\n }\n }, [space]);\n\n if (\n space.linked_parents &&\n space.linked_parents.length > 0 &&\n !props.breadcrumbsHidden\n ) {\n return (\n \n \n event.stopPropagation()}\n >\n \n \n \n {space.linked_parents[0].name}\n \n \n \n \n \n );\n }\n\n if (breadcrumbs.length == 0 || props.breadcrumbsHidden) {\n return ;\n }\n\n return (\n \n \n {breadcrumbs.map((item, index) => {\n return (\n <>\n {item.version == \"collapsed\" ? (\n \n \n \n }\n >\n {getCollapsed(space.path).map((c_item) => {\n return (\n event.stopPropagation()}\n >\n {c_item.name}\n \n );\n })}\n \n ) : (\n event.stopPropagation()}\n >\n {item.name}\n \n )}\n \n );\n })}\n \n \n );\n}\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Box,\n Text,\n Button,\n Group,\n Paper,\n createStyles,\n } from '@mantine/core';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport MessageModel from \"../../../../models/Message\";\n\nimport isSpaceThemed from '../../../../utils/IsSpaceThemed'\nimport tinycolor from 'tinycolor2'\n\nimport { useTranslation } from \"react-i18next\";\n\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color\n },\n textColor: {\n color: colors.sidebar_text_color\n },\n buttonColor: {\n border: isSpaceThemed(colors) ? `1px solid ${colors.sidebar_text_color}` : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors) ? colors.sidebar_text_color : colors.primary_button_background_color,\n '&:hover': {\n backgroundColor: isSpaceThemed(colors) ? tinycolor(colors.sidebar_background_color).lighten(5).toString() : tinycolor(colors.sidebar_background_color).darken(1).toString()\n }\n }\n}));\n\nexport default function PinMessage(props) {\n const { t, i18n } = useTranslation();\n const colors = useSelector(state => state.colors);\n const { classes, cx, theme } = useStyles({colors});\n\n const onFetch = () => {\n MessageModel.onFetchById(props.messageId, props.spaceId, (data) => {\n props.onViewPinnedMessage({...data})\n }, (data) => {\n\n });\n }\n\n return (\n \n \n \n {t(\"spaces.presentations.message.pinMessage.mainText\")}\n \n \n \n }\n onClick={() => onFetch()}>\n {t(\"spaces.presentations.message.pinMessage.viewButton\")}\n \n \n \n \n );\n\n}\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Box,\n Text,\n Button,\n Group,\n Paper,\n createStyles,\n } from '@mantine/core';\n\nimport {setNewMessage} from \"../../../../store/app\";\n\nimport tinycolor from 'tinycolor2'\n\nimport { useTranslation } from \"react-i18next\";\n\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color\n },\n textColor: {\n color: colors.sidebar_text_color\n },\n buttonColor: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n }\n}));\n\nexport default function PinMessage(props) {\n\n const { t, i18n } = useTranslation();\n\n const colors = useSelector(state => state.colors);\n const dispatch = useDispatch()\n const { classes, cx, theme } = useStyles({colors});\n\n const onScrollToBottom = () => {\n setTimeout(() => {\n if (props.newMessage && props.newMessage.viewport){\n const top = props.newMessage.viewport.scrollHeight\n props.newMessage.viewport.scrollTo({ top: top});\n }\n }, 500)\n dispatch(setNewMessage({show: false}))\n }\n\n return (\n \n \n \n {t(\"spaces.presentations.message.unreadMessagesText\")}\n \n \n \n // }\n onClick={() => onScrollToBottom()}>\n {t(\"spaces.presentations.message.scrollDownButton\")}\n \n \n \n \n );\n\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport {\n Box,\n Title,\n Group,\n Menu,\n ActionIcon,\n Tooltip,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport SpaceModel from \"../../models/Space\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport isDark from \"../../utils/IsDarkColor\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nlet timeoutId = null;\n\nconst useStyles = createStyles(\n (theme, { colors, isDark, listFlatView }, getRef) => ({\n datePosted: {\n color: tinycolor(colors.default_text_color).lighten(10).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonStyle: {\n // borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(50).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n // paddingLeft: 12,\n // paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n })\n);\n\nexport default function HeaderTitle(props) {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n const tiptap = useSelector((state) => state.tiptap);\n\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n const { classes, cx, theme } = useStyles({\n colors: getColors(),\n isDark: isDark,\n listFlatView: props.listFlatView,\n });\n\n const [title, setTitle] = useState(\"\");\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const carretPos = useRef(null);\n const titleInput = useRef(null);\n\n useEffect(() => {\n return () => {\n carretPos.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (window.$updateTitle && window.$updateTitle.slug == getSpace().slug) {\n setTitle(window.$updateTitle.title);\n } else {\n setTitle(getSpace().name);\n }\n if (carretPos.current) {\n titleInput.current.selectionStart = carretPos.current;\n titleInput.current.selectionEnd = carretPos.current;\n }\n }, [space, space2]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n const onClick = (event) => {\n // To avoid focusing editor\n event.stopPropagation();\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n const titleValue = event.target.innerText;\n\n if (titleValue.length >= 100 && event.which != 8) {\n return false;\n }\n if (event.which == 13 || event.which == 40) {\n event.preventDefault();\n if (tiptap.editor) {\n tiptap.editor\n .chain()\n .focus()\n .setTextSelection(0)\n .insertContentAt(0, `

`)\n .setTextSelection(0)\n .run();\n }\n }\n };\n\n const onPaste = (event) => {\n event.preventDefault();\n const input = event.target;\n const currentTitle = input.innerText + \"\";\n input.innerText = \"\";\n\n const pastedTitle = event.clipboardData.getData(\"text\");\n\n input.innerText = `${currentTitle}${pastedTitle}`;\n\n placeCaretAtEnd(input);\n };\n\n const placeCaretAtEnd = (el) => {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n };\n\n const onUpdate = (event) => {\n carretPos.current = event.target.selectionStart;\n console.log(\"CARET: \" + event.target.selectionStart);\n const titleValue = event.target.innerText;\n window.$updateTitle = { title: titleValue, slug: getSpace().slug };\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n SpaceModel.onUpdate(\n getSpace().slug,\n { intention: titleValue },\n (data) => {},\n (data) => {}\n );\n }, 500);\n };\n\n const getDirectMessageName = () => {\n const otherUserName = getSpace()\n .name.replace(`${user.name}`, ``)\n .replace(`and`, ``)\n .trim();\n return `Conversation with ${otherUserName}`;\n };\n\n const onEdit = () => {\n navigate(`${getLink()}?edit=true`);\n };\n\n const onOpen = () => {\n navigate(getLink());\n };\n\n const getLink = () => {\n return `/space/${getSpace().slug}/${getSpace().version}`;\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n return (\n \n {props.useSpace2 ? (\n \n ({\n fontSize: 38,\n fontWeight: 800,\n color: getColors().default_text_color,\n })}\n order={1}\n onInput={(event) => onUpdate(event)}\n onClick={(event) => onClick(event)}\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n onPaste={(event) => onPaste(event)}\n >\n {getSpace().is_direct ? getDirectMessageName() : title}\n \n \n \n \n \n \n \n \n event.stopPropagation()}\n withArrow\n placement=\"end\"\n control={\n event.stopPropagation()}\n classNames={{ root: classes.buttonStyle }}\n >\n \n \n }\n >\n {getSpace().permissions.can_edit && (\n onEdit()}>\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n getSpace().is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n )}\n \n onCopyLink()}\n text={`https://sutra.co/space/${getSpace().slug}/${\n getSpace().version\n }`}\n >\n {t(\"spaces.header.buttons.copyToClipboard\")}\n \n \n \n \n \n \n ) : (\n ({\n fontSize: 38,\n fontWeight: 800,\n color: getColors().default_text_color,\n })}\n order={1}\n onInput={(event) => onUpdate(event)}\n onClick={(event) => onClick(event)}\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n onPaste={(event) => onPaste(event)}\n >\n {getSpace().is_direct ? getDirectMessageName() : title}\n \n )}\n \n );\n}\n","// import axios from 'axios';\n\nclass SpaceTag {\n constructor() {\n if (this instanceof SpaceTag) {\n throw Error('SpaceTag class cannot be instantiated.');\n }\n }\n\n static onFetch = async (spaceId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${spaceId}/space_tags.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchTagged = async (spaceId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n as: \"tagged\"\n }\n\n await window.$api.get(`/api/v4/spaces/${spaceId}/space_tags.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchParents = async (spaceId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n as: \"parent\"\n }\n\n await window.$api.get(`/api/v4/spaces/${spaceId}/space_tags.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onFetchByName = async (spaceId, tagName, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${spaceId}/space_tags/${tagName}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (spaceId, tag, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n tag,\n }\n\n await window.$api.post(`/api/v4/spaces/${spaceId}/space_tags.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (spaceId, id, tag, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n tag\n }\n\n await window.$api.put(`/api/v4/spaces/${spaceId}/space_tags/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (spaceId, id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${spaceId}/space_tags/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onTag = async (spaceId, tagId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n tag_id: tagId,\n }\n\n await window.$api.post(`/api/v4/spaces/${spaceId}/space_tags/tag.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUntag = async (spaceId, tagId, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n tag_id: tagId,\n }\n\n await window.$api.delete(`/api/v4/spaces/${spaceId}/space_tags/untag.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default SpaceTag;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Popover,\n Button,\n Group,\n ActionIcon,\n ColorSwatch,\n createStyles,\n} from \"@mantine/core\";\n\nimport { X, ChevronDown } from \"tabler-icons-react\";\n\nimport TagModel from \"../../../../models/SpaceTag\";\nimport useTagColors from \"../../../../collections/TagColors\";\n\nconst useStyles = createStyles((theme) => ({\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n height: 20,\n paddingRight: 2,\n paddingLeft: 3,\n },\n\n menuControl2: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n height: 20,\n paddingRight: 10,\n paddingLeft: 3,\n },\n\n removeTag: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n}));\n\nlet manualUpdate = false;\n\nexport default function TagButton(props) {\n const mount = useRef();\n const { classes, theme } = useStyles();\n const [colorPicker, setColorPicker] = useState(false);\n const [name, setName] = useState(\"\");\n const [color, setColor] = useState();\n const [tagId, setTagId] = useState(null);\n\n useEffect(() => {\n if (!props.tagId) {\n onCreate();\n }\n }, []);\n\n useEffect(() => {\n setName(props.name);\n setColor(swatches[props.color]);\n setTagId(props.tagId);\n }, [props]);\n\n useEffect(() => {\n if (tagId && mount.current && manualUpdate) {\n manualUpdate = false;\n onUpdate();\n } else {\n mount.current = true;\n }\n }, [color]);\n\n const onCreate = () => {\n if (props.action == \"create\") {\n TagModel.onCreate(\n props.spaceId,\n {name: props.name},\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n } else if (props.action == \"tag\") {\n TagModel.onTag(\n props.spaceId,\n props.name,\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n }\n else{\n // TagModel.onFetchByName(\n // props.spaceId,\n // props.name,\n // (data) => {\n // setTagId(data.id);\n // props.onCreate({name: data.name, color: data.color, action: \"add\"});\n // },\n // (data) => {}\n // );\n }\n };\n\n const onUpdate = () => {\n if (props.action == \"create\") {\n TagModel.onUpdate(\n props.spaceId,\n tagId,\n { name, color: swatches.indexOf(color) },\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n } \n };\n\n const onDestroy = () => {\n if (props.action == \"create\") {\n TagModel.onDestroy(\n props.spaceId,\n tagId,\n (data) => {\n props.onDestroy(name);\n },\n (data) => {}\n );\n } else if (props.action == \"tag\") {\n TagModel.onUntag(\n props.spaceId,\n props.name,\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n }\n else{\n props.onDestroy(name);\n }\n };\n\n const onUpdateColor = (_color) => {\n manualUpdate = true;\n setColor(_color);\n };\n\n const swatches = [\n theme.other.tagColors[0].backgroundColor,\n theme.other.tagColors[1].backgroundColor,\n theme.other.tagColors[2].backgroundColor,\n theme.other.tagColors[3].backgroundColor,\n theme.other.tagColors[4].backgroundColor,\n theme.other.tagColors[5].backgroundColor,\n theme.other.tagColors[6].backgroundColor,\n theme.other.tagColors[7].backgroundColor,\n theme.other.tagColors[8].backgroundColor,\n theme.other.tagColors[9].backgroundColor,\n theme.other.tagColors[10].backgroundColor,\n theme.other.tagColors[11].backgroundColor,\n theme.other.tagColors[12].backgroundColor,\n theme.other.tagColors[13].backgroundColor,\n ];\n\n return (\n \n onDestroy()}\n >\n \n \n {props.action == \"create\" ? (\n\n setColorPicker(false)}\n styles={{\n target: {\n lineHeight: 1,\n },\n inner: {\n paddingTop: 0,\n paddingLeft: 5,\n paddingRight: 5,\n paddingBottom: 5,\n },\n }}\n target={\n ({\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].backgroundColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].hoverColor,\n },\n })}\n onClick={() => setColorPicker(!colorPicker)}\n styles={{\n rightIcon: {\n marginLeft: 2,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n label: {\n fontSize: 10,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n }}\n radius=\"xl\"\n size=\"xs\"\n rightIcon={}\n >\n {props.name}\n \n }\n width={240}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n {swatches.map((_color) => (\n {\n onUpdateColor(_color);\n }}\n style={{ cursor: \"pointer\" }}\n />\n ))}\n \n \n ) : (\n ({\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].backgroundColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].hoverColor,\n },\n })}\n onClick={() => setColorPicker(!colorPicker)}\n styles={{\n rightIcon: {\n marginLeft: 2,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n label: {\n fontSize: 10,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n }}\n radius=\"xl\"\n size=\"xs\"\n >\n {props.name}\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, memo, useRef } from \"react\";\nimport { Text, Group, Box, Select } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport TagButton from \"./TagButton\";\n\nimport TagModel from \"../../../../models/SpaceTag\";\n\nconst Tag = memo((props) => {\n const [tags, setTags] = useState([]);\n const [selectValue, setSelectValue] = useState([]);\n const [selectedTags, setSelectedTags] = useState([]);\n const [error, setError] = useState(\"\");\n const selectRef = useRef()\n\n const { t } = useTranslation();\n\n useEffect(() => {\n const tagsNames = props.tags.map((i) => i[\"name\"]);\n if (props.action != \"select\"){\n setSelectedTags(tagsNames);\n }\n if (props.action == \"select\" && tags && tags.length == 0){\n onFetch();\n }\n else if (props.action != \"select\"){\n onFetch();\n }\n }, [props]);\n\n const onFetch = () => {\n if (props.parent){\n \n TagModel.onFetchParents(\n props.spaceId,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n }\n else{\n TagModel.onFetch(\n props.spaceId,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n }\n \n };\n\n const onAdd = (tag) => {\n if (tag.length > 22){\n setError(\"Tags must be less than 22 characters\")\n return\n }\n setError(\"\")\n if (selectedTags.indexOf(tag) === -1) {\n setSelectedTags(selectedTags.concat(tag));\n if (props.action == \"select\"){\n props.onUpdatedMessage({name: tag, color: 0, action: \"add\"});\n }\n }\n setTimeout(() => {\n selectRef.current.blur()\n setSelectValue(\"\");\n }, 200)\n };\n\n const onRemove = (tag) => {\n const index = selectedTags.indexOf(tag);\n if (index >= 0) {\n const newSelectedTags = [...selectedTags];\n newSelectedTags.splice(index, 1);\n setSelectedTags(newSelectedTags);\n props.onUpdatedMessage({action: \"replace\", rTags: [...newSelectedTags]});\n }\n };\n\n const getIdForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].id;\n }\n }\n return null;\n };\n\n const getColorForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].color;\n }\n }\n return null;\n };\n\n const Item = ({ label, ...others }) => (\n
\n \n
\n {label}\n
\n
\n
\n );\n\n return (\n \n \n \n `+ ${t(\"spaces.presentations.tag.createAction\")} ${query}`\n }\n data={tags}\n maxDropdownHeight={400}\n onChange={(tag) => onAdd(tag)}\n value={selectValue}\n />\n {error && {error}}\n\n \n 0 ? 10 : 0} pb={selectedTags.length > 0 ? 10 : 0}>\n {selectedTags.map((tag) => {\n return (\n \n );\n })}\n \n \n );\n})\n\nexport default Tag\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Box, Popover, createStyles, Button, Group } from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport TagModel from \"../../models/SpaceTag\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport isDark from \"../../utils/IsDarkColor\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport Tag from \"./presentations/lists/Tag\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nlet timeoutId = null;\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n button: {\n // border: `1px solid ${\n // !isSpaceThemed(colors)\n // ? theme.colors.gray[4]\n // : tinycolor(colors.background_color).lighten(3).toString()\n // }`,\n // border: `1px solid ${tinycolor(colors.default_text_color).lighten(20).toString()}`,\n color: tinycolor(colors.default_text_color).lighten(20).toString(),\n paddingLeft: 8,\n paddingRight: 8,\n height: 21,\n marginTop: 7,\n fontSize: 12,\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(40).toString()\n : tinycolor(colors.background_color).darken(40).toString()\n }`\n : `1px solid #ced4da`,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? `${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(5).toString()\n : tinycolor(colors.background_color).darken(5).toString()\n }`\n : `#e9ecef`,\n },\n\n // \"&:hover\": {\n // backgroundColor: !isSpaceThemed(colors)\n // ? theme.colors.gray[1]\n // : tinycolor(colors.background_color).lighten(3).toString(),\n // },\n },\n leftIcon: {\n marginRight: 5,\n },\n}));\n\nexport default function HeaderTags(props) {\n const { t } = useTranslation();\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n const tiptap = useSelector((state) => state.tiptap);\n\n const { classes, cx, theme } = useStyles({ colors: getColors() });\n\n const [tag, setTag] = useState(false);\n const [tags, setTags] = useState([]);\n const [parentTags, setParentTags] = useState([]);\n\n const dispatch = useDispatch();\n\n const tagsTimeout = useRef();\n const tagsTimeout2 = useRef();\n\n useEffect(() => {}, [props]);\n\n useEffect(() => {\n if (getSpace().slug) {\n onFetchParentsTags();\n onFetchTags();\n }\n }, [space, space2]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n const onFetchTags = () => {\n if (tagsTimeout.current) {\n clearTimeout(tagsTimeout.current);\n }\n tagsTimeout.current = setTimeout(() => {\n TagModel.onFetchTagged(\n getSpace().slug,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n }, 2000);\n };\n\n const onFetchParentsTags = () => {\n if (tagsTimeout2.current) {\n clearTimeout(tagsTimeout2.current);\n }\n tagsTimeout2.current = setTimeout(() => {\n TagModel.onFetchParents(\n getSpace().slug,\n (data) => {\n setParentTags([...data]);\n },\n (data) => {}\n );\n }, 2000);\n };\n\n const onTagFilter = (tags) => {};\n const onTag = (tags) => {\n onFetchTags();\n };\n\n const onCloseTags = () => {\n setTag(false);\n // onUpdated()\n };\n\n if (parentTags && parentTags.length == 0) {\n return null;\n }\n\n if (getSpace() && (getSpace().version == \"list\" || getSpace().version == \"events\")) {\n return null;\n }\n\n return (\n \n {tags && tags.length > 0 && (\n \n {tags.map((tag) => {\n return (\n ({\n backgroundColor:\n theme.other.tagColors[tag.color].backgroundColor,\n color: theme.other.tagColors[tag.color].textColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[tag.color].hoverColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n onClick={() => onTagFilter(tag)}\n >\n {tag.name}\n \n );\n })}\n \n )}\n {getSpace() &&\n getSpace().permissions &&\n (getSpace().permissions.can_edit ||\n getSpace().permissions.can_manage) && (\n {\n onCloseTags();\n }}\n withCloseButton\n title={t(\"spaces.presentations.message.addTags\")}\n closeButtonLabel=\"Close popover\"\n closeOnClickOutside={false}\n styles={{\n inner: {\n // padding: 10,\n },\n }}\n target={\n {\n setTag(!tag);\n }}\n variant=\"outline\"\n radius=\"xl\"\n compact\n leftIcon={}\n >\n {t(\"spaces.presentations.message.tag\")}\n \n }\n width={320}\n position=\"bottom\"\n placement=\"end\"\n >\n \n \n )}\n \n );\n}\n","import React from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { createStyles, Group, Avatar, Stack, Text } from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport isDark from \"../../utils/IsDarkColor\";\n\nimport useLangUser from \"../../utils/LangUser\";\nimport formatDate from \"../../utils/formatDate\";\n\nimport { useTranslation } from \"react-i18next\";\n\nlet timeoutId = null;\n\nconst useStyles = createStyles(\n (theme, { colors, isDark, listFlatView }, getRef) => ({\n datePosted: {\n color: tinycolor(colors.default_text_color).lighten(10).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonStyle: {\n // borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(50).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n // paddingLeft: 12,\n // paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n })\n);\n\nexport default function HeaderAuthor(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n\n const { language, setLangUser } = useLangUser();\n const navigate = useNavigate();\n\n const { classes, cx, theme } = useStyles({\n colors: getColors(),\n isDark: isDark,\n listFlatView: props.listFlatView,\n });\n\n const dispatch = useDispatch();\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n if (!getSpace().list_show_author) {\n return null;\n }\n\n const openProfile = (event) => {\n event.stopPropagation();\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: getSpace().user.username })\n );\n };\n\n return (\n \n openProfile(event)}\n radius=\"xl\"\n size={40}\n key={`member-avatar-${getSpace().user.id}`}\n src={\n getSpace().user.avatar.url\n ? getSpace().user.avatar.url\n : DefaultAvatar\n }\n component=\"span\"\n />\n \n \n openProfile(event)}\n className={classes.abstract}\n weight={600}\n sx={{\n lineHeight: \"1\",\n }}\n mb={6}\n >\n {getSpace().user.full_name}\n \n \n\n {getSpace().list_show_timestamp && (\n \n {/* March 31 at 5:23 AM */}\n {formatDate(\n { raw_start_date: getSpace().created_at },\n language,\n \"LLL d\",\n \"LLL d\"\n )}\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Group,\n Text,\n Switch,\n Box,\n Textarea,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport { useForm } from \"@mantine/form\";\nimport { TimeInput, DatePicker } from \"@mantine/dates\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Form(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const focusTrapRef = useFocusTrap();\n\n const [startDate, setStartDate] = useState(\"\");\n const [startTime, setStartTime] = useState(\"\");\n const [endDate, setEndDate] = useState(\"\");\n const [endTime, setEndTime] = useState(\"\");\n const [allowInterests, setAllowInterests] = useState(\"\");\n\n const form = useForm({\n initialValues: {\n hangout_link: \"\",\n description: \"\",\n },\n });\n\n useEffect(() => {\n onFetch();\n }, []);\n\n const getSpace = () => {\n if (props.useSpace2){\n return space2;\n }\n else{\n return space;\n }\n }\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n const onFetch = () => {\n SpaceModel.onFetch(\n getSpace().slug,\n [],\n (data) => {\n setAllowInterests(data.space.calendar.allow_interested_on_join);\n\n form.setFieldValue(\"hangout_link\", data.space.calendar.hangout_link);\n form.setFieldValue(\n \"description\",\n data.space.calendar.plain_description\n );\n\n if (data.space.calendar.has_start_date) {\n setStartDate(new Date(data.space.calendar.raw_start_date));\n setStartTime(new Date(data.space.calendar.raw_start_date));\n }\n if (data.space.calendar.has_end_date) {\n setEndDate(new Date(data.space.calendar.raw_end_date));\n setEndTime(new Date(data.space.calendar.raw_end_date));\n }\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n const params = { ...form.values };\n params.pod_settings_attributes = {};\n if (startDate) {\n params.pod_settings_attributes.show_start_date = true;\n params.pod_settings_attributes.start_date = mergeDateAndTime(\n startDate,\n startTime\n );\n }\n if (endDate) {\n params.pod_settings_attributes.show_start_date = true;\n params.pod_settings_attributes.end_date = mergeDateAndTime(\n endDate,\n endTime\n );\n }\n params.pod_settings_attributes.allow_interested_on_join = allowInterests;\n SpaceSettingModel.onUpdate(\n getSpace().slug,\n params,\n (data) => {\n props.onSave(\n form.values.hangout_link,\n form.values.description,\n params.pod_settings_attributes.start_date,\n params.pod_settings_attributes.end_date\n );\n },\n (data) => {}\n );\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n {/* {t(\"spaces.form.calendarLinks.text\")} */}\n \n \n \n \n {t(\"spaces.form.calendarLinks.eventStartDateAndTime\")}\n \n \n setStartDate(date)}\n />\n setStartTime(time)}\n />\n \n \n {t(\"spaces.form.calendarLinks.eventDateTime\")}\n \n \n setEndDate(date)}\n />\n setEndTime(time)}\n />\n \n \n setAllowInterests(event.currentTarget.checked)}\n label={t(\"spaces.form.calendarLinks.allowInterests\")}\n />\n \n \n \n {t(\"spaces.form.calendarLinks.automatedEmails\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport InterestModel from \"../../../models/Interest\";\n\nimport { setCookie } from \"../../../utils/Cookies\";\n\nimport {\n Box,\n Button,\n Stack,\n TextInput,\n createStyles,\n Modal,\n Text,\n Divider,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Swal from \"sweetalert2\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n drawerWrap: {\n backgroundColor: colors.background_color,\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n formStyleLabel: {\n color: colors.default_text_color,\n },\n formStyleLink: {\n color: colors.default_link_color,\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n buttonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(5)\n .toString(),\n },\n },\n closeButton: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nexport default function Form(props) {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors, props });\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [opened, setOpened] = useState(false);\n\n const location = useLocation();\n\n const openedFromUrl = useRef();\n\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n useEffect(() => {\n if (openedFromUrl.current != location.pathname) {\n setOpened(false);\n }\n }, [location]);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"interestedform\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"interestedform\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n } else {\n openedFromUrl.current = location.pathname;\n }\n }, [opened]);\n\n const form = useForm({\n initialValues: {\n email: \"\",\n name: \"\",\n },\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.replace(/\\s/g, '')) ? null : t(\"users.signUp.invalidEmailErrorMsg\"),\n name: (value) =>\n value.length >= 2 ? null : t(\"users.signUp.invalidFirstNameErrorMsg\"),\n },\n });\n\n const onSave = () => {\n const params = {\n ...form.values,\n };\n\n const slug = location.pathname.split(\"/\")[2];\n\n InterestModel.onCreate(\n slug,\n params,\n (data) => {\n Swal.fire({\n icon: \"success\",\n html: t(\"spaces.form.interestedForm.createAlertTitle\"),\n showDenyButton: false,\n confirmButtonText: t(\"spaces.form.interestedForm.createAlertButton\"),\n confirmButtonColor: \"#41c3f6\",\n }).then((result) => {\n if (result.isConfirmed) {\n }\n });\n setCookie(`interested_${slug}`, \"true\", 365);\n dispatch(setTiptapSidemenu({ opened: null }));\n onResetForm();\n },\n (data) => {}\n );\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"email\", \"\");\n form.setFieldValue(\"name\", \"\");\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n localStorage.setItem(\"join_slug\", props.spaceId);\n navigate(`/user/start?s=${props.spaceId}`);\n return;\n }\n\n SpaceModel.onJoin(\n props.spaceId,\n (data) => {\n navigate(`${data.redirect_to}?refresh=true`);\n },\n (data) => {}\n );\n };\n\n return (\n setOpened(false)}\n title={\n \n Register for this event\n \n }\n >\n \n
onSave(values))}>\n \n \n \n \n \n \n onJoin()}>\n {t(\"spaces.form.interestedForm.joinWithSutra\")}\n \n \n \n
\n
\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { atcb_action } from \"add-to-calendar-button\";\nimport { useNavigate } from \"react-router-dom\";\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport useLangUser from \"../../utils/LangUser\";\nimport SpaceModel from \"../../models/Space\";\nimport {\n simpleFormatDate,\n isSameDay,\n getTimeZone,\n} from \"../../utils/formatDate\";\nimport CalendarLinks from \"./form/CalendarLinks\";\nimport InterestedForm from \"./form/InterestedForm\";\n\nimport {\n Stack,\n Popover,\n Box,\n Text,\n Paper,\n Group,\n Button,\n Drawer,\n createStyles,\n} from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nimport { DateTime } from \"luxon\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\nimport { getCookie } from \"../../utils/Cookies\";\n\n// import { DateTime } from \"luxon\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n buttonColorSolid: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n ellipsisColor: {\n paddingLeft: 10,\n paddingRight: 10,\n // border: isSpaceThemed(colors) ? `1px solid ${colors.sidebar_text_color}` : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.sidebar_text_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n\n dateBlockWrap: {\n padding: \"7px 16px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\"\n }`,\n marginRight: 5,\n color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 20,\n lineHeight: 1,\n marginBottom: 5,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n },\n\n appearanceButtonRoot: {\n color: theme.colors.gray[7],\n fontWeight: 400,\n fontSize: 16,\n borderRadius: 5,\n display: \"block\",\n width: \"100%\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n paddingLeft: 10,\n },\n appearanceButtonLeftIconGreen: {\n color: theme.colors.green[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonLeftIcon: {\n color: theme.colors.gray[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonInner: {\n justifyContent: \"flex-start\",\n },\n}));\n\nexport default function Calendar(props) {\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { classes, cx, theme } = useStyles({ colors });\n const [opened, setOpened] = useState(false);\n const [openGoing, setOpenGoging] = useState(false);\n\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n const [calendar, setCalendar] = useState({});\n const [registered, setRegistered] = useState({});\n\n // React.useEffect(atcb_init, []);\n const [name, setName] = React.useState(\"Some event\");\n const changeName = (e) => {\n setName(e.target.value);\n };\n\n useEffect(() => {\n setCalendar({ ...props.calendar });\n setRegistered(getCookie(`interested_${props.spaceId}`));\n }, [props]);\n\n useEffect(() => {\n setRegistered(getCookie(`interested_${props.spaceId}`));\n }, [tiptapSidemenu]);\n\n const getlink = () => {\n return `https://sutra.co/space/${props.spaceId}/${props.spaceVersion}`;\n };\n\n const concatSpaceLink = (text) => {\n // return `${text}

${getlink()}

`\n return text;\n };\n\n const onSubmit = (event) => {\n event.preventDefault();\n\n if (calendar.raw_dates_ok) {\n atcb_action({\n name: props.eventName,\n location: calendar.hangout_link,\n description: concatSpaceLink(calendar.description),\n startDate: calendar.raw_start_date,\n endDate: calendar.raw_end_date,\n options: [\n \"Apple\",\n \"Google\",\n \"iCal\",\n \"Microsoft365\",\n \"Outlook.com\",\n \"Yahoo\",\n ],\n timeZone: \"UTC\",\n iCalFileName: \"Reminder-Event\",\n });\n } else {\n atcb_action({\n name: props.eventName,\n location: calendar.hangout_link,\n description: concatSpaceLink(calendar.description),\n startDate: calendar.raw_start_date,\n endDate: calendar.raw_start_date,\n options: [\n \"Apple\",\n \"Google\",\n \"iCal\",\n \"Microsoft365\",\n \"Outlook.com\",\n \"Yahoo\",\n ],\n timeZone: \"UTC\",\n iCalFileName: \"Reminder-Event\",\n });\n }\n };\n\n const onJoinCall = () => {\n window.open(calendar.hangout_link, \"_blank\");\n };\n\n const onSave = (link, description, start_date, end_date) => {\n setOpened(false);\n const newCalendar = { ...calendar };\n newCalendar.hangout_link = link;\n newCalendar.description = description;\n newCalendar.raw_start_date = start_date;\n newCalendar.raw_end_date = end_date;\n setCalendar(newCalendar);\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n if (calendar.allow_interested_on_join) {\n dispatch(setTiptapSidemenu({ opened: \"interestedform\" }));\n return;\n }\n\n localStorage.setItem(\"join_slug\", props.spaceId);\n navigate(`/user/start?s=${props.spaceId}`);\n return;\n }\n SpaceModel.onJoin(\n props.spaceId,\n (data) => {\n navigate(`${data.redirect_to}?refresh=true`);\n },\n (data) => {}\n );\n };\n\n const onLeave = () => {\n SpaceModel.onLeave(\n props.spaceId,\n (data) => {\n window.location.reload();\n },\n (data) => {}\n );\n };\n\n if (!calendar) {\n return null;\n }\n\n return (\n \n \n \n \n \n {DateTime.fromISO(calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n \n \n {simpleFormatDate(\n calendar.raw_start_date,\n language,\n \"EEEE, LLL d\",\n \"EEEE, LLL d, cccc\",\n \"\"\n )}\n \n \n {simpleFormatDate(\n calendar.raw_start_date,\n language,\n \"\",\n \"\",\n \"h:mm a\"\n )}\n {calendar.raw_end_date\n ? isSameDay(\n calendar.raw_start_date,\n calendar.raw_end_date,\n language\n )\n ? \" to \" +\n simpleFormatDate(\n calendar.raw_end_date,\n language,\n \"\",\n \"\",\n \"h:mm a\"\n )\n : \" to \" +\n simpleFormatDate(\n calendar.raw_end_date,\n language,\n \"LLL d\",\n \"EEEE, LLL d, cccc\",\n \", h:mm a\"\n )\n : \"\"}\n {\" \" + getTimeZone(calendar.raw_start_date, language)}\n \n \n \n \n {calendar.hangout_link && (props.isMember || registered) && (\n onJoinCall()}\n >\n {t(\"spaces.calender.calender.joinButton\")}\n \n )}\n {(props.isMember || registered) && (\n \n
onSubmit(event)}>\n \n {t(\"spaces.calender.calender.addButton\")}\n \n \n
\n )}\n {props.isMember && (\n \n setOpenGoging(false)}\n width={props.canEdit ? 200 : 150}\n position=\"bottom\"\n placement=\"end\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n setOpenGoging(true)}\n >\n Going\n \n }\n >\n {props.canEdit ? (\n \n You cannot unregister for this event because you’re a\n manager.\n \n ) : (\n <>\n \n }\n radius=\"xl\"\n onClick={() => onJoin()}\n >\n {\"Going\"}\n \n }\n radius=\"xl\"\n onClick={() => onLeave()}\n >\n {\"Not going\"}\n \n \n )}\n \n \n )}\n {!props.isMember && !registered && (\n \n onJoin()}\n >\n {t(\"spaces.calender.calender.joinEventButton\")}\n \n \n )}\n {props.canEdit && (\n setOpened(true)}\n >\n \n \n )}\n
\n
\n\n setOpened(false)}\n title={t(\"spaces.calender.calender.title\")}\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { atcb_action } from \"add-to-calendar-button\";\nimport \"add-to-calendar-button/assets/css/atcb.css\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useLangUser from \"../../utils/LangUser\";\nimport SpaceModel from \"../../models/Space\";\n\nimport { Text, Paper, Group, Button, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nimport { DateTime } from \"luxon\";\n\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function StatusBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n\n const navigate = useNavigate();\n // React.useEffect(atcb_init, []);\n const [name, setName] = React.useState(\"Some event\");\n const changeName = (e) => {\n setName(e.target.value);\n };\n\n const onSubmit = (event) => {\n event.preventDefault();\n\n atcb_action({\n name: props.eventName,\n description: props.eventDescription,\n startDate: props.calendar.raw_start_date,\n endDate: props.calendar.raw_end_date,\n options: [\n \"Apple\",\n \"Google\",\n \"iCal\",\n \"Microsoft365\",\n \"Outlook.com\",\n \"Yahoo\",\n ],\n timeZone: \"UTC\",\n iCalFileName: \"Reminder-Event\",\n });\n };\n\n const onRestore = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This space will be restored and members will have access again.\",\n showDenyButton: true,\n confirmButtonText: \"Yes\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onRestore(\n props.space.slug,\n (data) => {\n navigate(data.redirect_to);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const formatDateTime = (timestamp) => {\n if (props.space && props.space.launch_time) {\n const d = new Date(props.space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n const getStatusString = () => {\n console.log(\"space: \", props.space);\n let statusString = \"This space \";\n if (props.statusName === \"pending\") {\n statusString = statusString + `will publish on ${formatDateTime()}`;\n } else {\n statusString = statusString + `is ${props.statusName}`;\n }\n return statusString;\n };\n\n if (\n [\"archived\", \"deleted\", \"pending\", \"processing\"].indexOf(props.statusName) <\n 0\n ) {\n return null;\n }\n\n return (\n \n \n \n {getStatusString()}\n \n {props.statusName === \"deleted\" && (\n \n // }\n onClick={() => onRestore()}\n >\n {t(\"spaces.statusBar.restoreButton\")}\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { Box, Text, Paper, Group, Button, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function TagFilter(props) {\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const navigate = useNavigate();\n const { t, i18n } = useTranslation();\n const onReset = (event) => {\n navigate(`/space/${space.slug}/${space.version}`);\n };\n\n return (\n \n \n \n {`Messages tagged with ${props.tagName}`}\n \n \n }\n onClick={() => onReset()}\n >\n {t(\"spaces.tagFilter.resetButton\")}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport useLangUser from \"../../utils/LangUser\";\n\nimport Broadcaster from \"../../helpers/Broadcaster.js\";\n\nimport { Text, Paper, Group, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function InteractionsBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const { language, setLangUser } = useLangUser();\n\n const [progress, setProgress] = useState(0);\n const [interactions, setInteractions] = useState(0);\n\n useEffect(() => {\n Broadcaster.receive(\n \"open_InteractionsBar\",\n document.body,\n (event, data) => {\n if (data.progress <= 100) {\n setProgress(data.progress);\n }\n }\n );\n\n return () => {\n Broadcaster.unRegisterElement(\"open_InteractionsBar\", document.body);\n };\n }, []);\n\n useEffect(() => {\n if (props.space.slug && props.space.permissions) {\n setInteractions(props.space.interactions.count);\n }\n }, [props]);\n\n if (\n !props.space.slug ||\n (props.space && props.space.slug && !props.space.interactions)\n ) {\n return null;\n }\n\n return (\n <>\n {props.space.interactions.can_manage ? (\n \n \n \n {`${interactions} interactive journey${\n interactions == 1 ? \"\" : \"s\"\n } currently in progress`}\n \n \n \n ) : (\n \"\"\n // \n // \n // \n )}\n \n );\n}\n\n// \n// {props.space.interactions.can_manage ? (\n// \n// \n// {`This space has ${interactions} interactive journey${interactions == 1 ? \"\" : \"s\"} in progress`}\n// \n// \n// ) : (\n// \n// \n// {`Your progress`}:\n// \n// \n// \n// \n// \n// )}\n// \n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { Text, Paper, Group, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function DummyBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n \n \n \n {`This is a demo of what your participants will see. This is not live.`}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { Text, Paper, Group, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function RedirectBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n \n \n \n {`This space is being redirected to ${props.space.name}`}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { Box,\n Text,\n Button,\n Group,\n Paper,\n \n createStyles,\n } from '@mantine/core';\n\n\n\nimport ReflectionModel from \"../../../../models/Reflection\";\n\nimport tinycolor from 'tinycolor2'\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color\n },\n textColor: {\n color: colors.sidebar_text_color\n },\n buttonColor: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n }\n}));\n\nexport default function NewReflections(props) {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate()\n\n const colors = useSelector(state => state.colors);\n const { classes, cx, theme } = useStyles({colors});\n\n const [reflections, setReflections] = useState([])\n const loaded = useRef()\n\n useEffect(() => {\n return () => {\n loaded.current = false\n }\n }, [])\n\n useEffect(() => {\n if (props.space && props.space.slug && !loaded.current){\n loaded.current =true\n onFetchReflections()\n }\n }, [props])\n\n const onFetchReflections = () => {\n ReflectionModel.onFetchUnread(null, props.space.slug, (data) => {\n setReflections([...data.reflections])\n }, (data) => {\n\n })\n }\n\n const reflectionsCount = () => {\n let total = 0\n for (let i = 0; i < reflections.length; i++){\n total += reflections[i].unread\n }\n return total\n }\n\n const onOpenNext = () => {\n if (reflections.length > 0){\n const reflection = reflections[0]\n const auxReflections = [...reflections]\n auxReflections.splice(0, 1)\n setReflections(auxReflections)\n navigate(reflection.link)\n }\n }\n\n if (reflections.length == 0){\n return null\n }\n\n return (\n \n \n \n {`${t(\"spaces.presentations.message.newReflections.part1\")} ${reflectionsCount()} ${t(\"spaces.presentations.message.newReflections.part2\")} ${reflections.length} ${t(\"spaces.presentations.message.newReflections.part3\")}`}\n \n \n onOpenNext()}>\n {t(\"spaces.presentations.message.viewNextButton\")}\n \n \n \n \n );\n\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Container, Box } from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport Breadcrumbs from \"./Breadcrumbs\";\nimport PinMessage from \"./presentations/discussion/PinMessage\";\nimport NewMessage from \"./presentations/discussion/NewMessage\";\nimport HeaderTitle from \"./HeaderTitle\";\nimport HeaderTags from \"./HeaderTags\";\nimport HeaderAuthor from \"./HeaderAuthor\";\nimport Calendar from \"./Calendar\";\nimport StatusBar from \"./StatusBar\";\nimport TagFilter from \"./TagFilter\";\nimport InteractionsBar from \"./InteractionsBar\";\nimport DummyBar from \"./DummyBar\";\nimport RedirectBar from \"./RedirectBar\";\nimport NewReflectionsBar from \"./presentations/discussion/NewReflections\";\n\n\nimport { setFixedHeaderStatus } from \"../../store/app\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from '../../collections/defaultSpaceColors'\n\nlet timeoutId = null;\n\nlet showAux = false;\nlet spaceAux = { header: { url: null } };\n\nexport default function FixedHeader(props) {\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n const [show, setShow] = useState(false);\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n const hiddenTitle = useSelector((state) => state.hiddenTitle);\n const hiddenBreadcrumbs = useSelector((state) => state.hiddenBreadcrumbs);\n const fixedHeaderStatus = useSelector((state) => state.fixedHeaderStatus);\n const newMessage = useSelector((state) => state.newMessage);\n\n const location = useLocation();\n\n const dispatch = useDispatch();\n\n const [tag, setTag] = useState(null);\n\n useEffect(() => {\n setShow(props.show);\n if (props.isMain) {\n const scrollViewComp =\n document.getElementsByClassName(\"content-scrollview\")[0];\n if (scrollViewComp) {\n const scrollViewport = scrollViewComp.getElementsByClassName(\n \"mantine-ScrollArea-viewport\"\n )[0];\n if (scrollViewport) {\n scrollViewport.addEventListener(\"scroll\", onScrollPositionChange);\n }\n }\n }\n\n return () => {\n if (props.isMain) {\n const scrollViewComp =\n document.getElementsByClassName(\"content-scrollview\")[0];\n if (scrollViewComp) {\n const scrollViewport = scrollViewComp.getElementsByClassName(\n \"mantine-ScrollArea-viewport\"\n )[0];\n if (scrollViewport) {\n scrollViewport.removeEventListener(\n \"scroll\",\n onScrollPositionChange\n );\n }\n }\n }\n };\n }, []);\n\n useEffect(() => {\n setShow(props.inverted ? !fixedHeaderStatus.show : fixedHeaderStatus.show);\n }, [fixedHeaderStatus]);\n\n useEffect(() => {\n if (getSpace() && getSpace().slug) {\n spaceAux = { ...getSpace() };\n }\n }, [space, space2]);\n\n useEffect(() => {\n const search = location.search;\n const tag = new URLSearchParams(search).get(\"tag\");\n setTag(null);\n if (tag) {\n setTag(tag);\n }\n }, [location]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const onScrollPositionChange = (event) => {\n const pos = { y: event.currentTarget.scrollTop };\n\n // console.log(\"height:\", event.currentTarget.innerHeight)\n\n let fixedHeight = 80;\n let skipHeight = 80;\n\n if (spaceAux && spaceAux.header && spaceAux.header.url) {\n fixedHeight += 284;\n // skipHeight += 284\n }\n if (spaceAux && spaceAux.pin_message) {\n fixedHeight += 84;\n skipHeight += 84;\n }\n window.$skipHeight = skipHeight;\n\n if (pos.y > fixedHeight && !showAux) {\n showAux = true;\n\n dispatch(setFixedHeaderStatus({ show: true }));\n window.$skipHeight = 0;\n } else if (pos.y <= fixedHeight && showAux) {\n showAux = false;\n\n dispatch(setFixedHeaderStatus({ show: false }));\n window.$skipHeight = skipHeight;\n }\n\n if (showAux) {\n window.$skipHeight = skipHeight + 90;\n } else {\n window.$skipHeight = skipHeight;\n }\n };\n\n return (\n \n \n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"breadcrumbs\") >= 0 ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"title\") >= 0 &&\n !hiddenTitle.hidden ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"title\") >= 0 &&\n !hiddenTitle.hidden ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"title\") >= 0 &&\n !hiddenTitle.hidden ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"pinMessage\") >= 0 &&\n getSpace() &&\n getSpace().pin_message ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"new_message\") >= 0 &&\n newMessage.show ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"calendar\") >= 0 &&\n getSpace() &&\n getSpace().calendar &&\n getSpace().calendar.has_start_date ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"status\") >= 0 &&\n getSpace() ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"tag\") >= 0 &&\n tag ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"interactions\") >= 0 &&\n getSpace() ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"dummy\") >= 0 ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"redirect\") >= 0 &&\n getSpace().redirect_to_space ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"new_reflections\") >= 0 && (\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useParams, useLocation } from \"react-router-dom\";\nimport { setSpace, setNewMessage } from \"../../../../store/app\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Drawer,\n Box,\n createStyles,\n} from \"@mantine/core\";\n\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\nimport NotificationModel from \"../../../../../models/NotificationModel\";\nimport MessageModel from \"../../../../models/Message\";\nimport { scrollToElement } from \"../../../../utils/ScrollToElement\";\nimport Message from \"./Message\";\nimport Reflections from \"./Reflections\";\nimport TiptapSimple from \"../../../tiptap/components/TiptapSimple\";\nimport { ActionCableContext } from \"../../../../components/Index\";\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport trackMixpanel from \"../../../../utils/TrackMixpanel\";\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nconst queryParams = {\n pod_message_id: null,\n reflection_id: null,\n};\n\nconst scrollPosition = {\n x: 0,\n y: 0,\n};\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n drawer: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n },\n}));\n\nexport default function Discussion(props) {\n // const { ref, width, height } = useElementSize();\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t } = useTranslation();\n\n const viewport = useRef();\n const dispatch = useDispatch();\n\n const cable = useContext(ActionCableContext);\n\n const currentLocation = useLocation();\n\n const params = useParams();\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const scroll = useSelector((state) => state.scroll);\n const mainActions = useSelector((state) => state.mainActions);\n\n const [openedReflections, setOpenedReflections] = useState(false);\n const [messages, setMessages] = useState([]);\n const [selectedMessage, setSelectedMessage] = useState(null);\n const [receiveData, setReceiveData] = useState(null);\n const [tagging, setTagging] = useState(0);\n const [reflectionsTagging, setReflectionsTagging] = useState(false);\n const [reflectionsDrawerHeader, setReflectionsDrawerHeader] = useState(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n const [tag, setTag] = useState(null);\n\n const pileIntervalId = useRef(null);\n const channelPile = useRef([]);\n const messagesCopy = useRef([]);\n const currentConnectedSlug = useRef();\n const scrollToBottomAfter = useRef();\n const atBottom = useRef(false);\n const scrollTimeoutIds = useRef([]);\n const connectionIntervalId = useRef([]);\n const lastConnectionAttempt = useRef({\n slug: null,\n state: null,\n channel: null,\n });\n const paramsChangeTimeout = useRef([]);\n const tagFetch = useRef(false);\n const querySearchCount = useRef(0);\n const loadingVariables = useRef(0);\n\n const [isFirstLoad, setIsFirstLoad] = useState(false);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n useEffect(() => {\n if (pileIntervalId.current) {\n clearInterval(pileIntervalId.current);\n }\n\n pileIntervalId.current = setInterval(() => {\n // console.log(messagesCopy.current)\n\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"pending\"\n ) {\n channelPile.current[0].state = \"in_progress\";\n\n channelPile.current[0].action(channelPile.current[0].id);\n return;\n }\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"done\"\n ) {\n channelPile.current.splice(0, 1);\n\n return;\n }\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"in_progress\"\n ) {\n return;\n }\n }, 1000);\n\n return () => {\n setMessages([]);\n messagesCopy.current = [];\n\n if (lastConnectionAttempt.current.channel) {\n lastConnectionAttempt.current.channel.unsubscribe();\n lastConnectionAttempt.current.channel = null;\n lastConnectionAttempt.current.slug = null;\n lastConnectionAttempt.current.state = null;\n }\n clearInterval(pileIntervalId.current);\n clearTimeout(connectionIntervalId.current);\n\n scrollToBottomAfter.current = false;\n loadingVariables.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"reflections\") {\n setOpenedReflections(true);\n } else {\n setOpenedReflections(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n clearTimeout(connectionIntervalId.current);\n if (params && params.slug) {\n if (paramsChangeTimeout.current) {\n clearTimeout(paramsChangeTimeout.current);\n }\n paramsChangeTimeout.current = setTimeout(() => {\n cableConnect();\n }, 300);\n }\n }, [params]);\n\n useEffect(() => {\n if (lastConnectionAttempt.current.state == \"connected\") {\n querySearchCount.current = 0;\n checkSearchParams();\n onFetchMessages(true);\n setTimeout(() => {\n markAsSeen();\n }, 5000);\n }\n }, [location.search]);\n\n useEffect(() => {\n if (props.hideLayout) {\n props.hideLayout();\n setTimeout(() => {\n props.hideLayout();\n }, 500);\n }\n }, [props]);\n\n useEffect(() => {\n if (user && user.authenticated) {\n trackMixpanel(user.username, \"Discussion loaded\");\n }\n }, [user]);\n\n useEffect(() => {\n if (receiveData) {\n let changes = receiveData.changes;\n if (receiveData.state != \"multi\") {\n changes = [receiveData];\n }\n\n for (var i = 0; i < changes.length; i++) {\n if (changes[i].state == \"new\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onReceivedMessage,\n state: \"pending\",\n });\n // onReceivedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"update\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onUpdatedMessage,\n state: \"pending\",\n });\n // onUpdatedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"destroy\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onDestroyedMessage,\n state: \"pending\",\n });\n // onDestroyedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"pin\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onPinnedMessage,\n state: \"pending\",\n });\n // onPinnedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"unpin\") {\n channelPile.current.push({\n id: null,\n action: onPinnedMessage,\n state: \"pending\",\n });\n // onPinnedMessage(null);\n }\n }\n }\n }, [receiveData]);\n\n useEffect(() => {\n if (channelPile.current && channelPile.current.length > 0) {\n return;\n }\n\n if (scrollToBottomAfter.current == true) {\n scrollToBottomAfter.current = false;\n\n scrollToBottom();\n return;\n }\n\n if (!loadingVariables.current && messages.length > 0) {\n loadingVariables.current = true;\n if (!queryParams.pod_message_id) {\n // setIsFirstLoad(true);\n // scrollToBottom();\n return;\n }\n }\n\n if (queryParams.pod_message_id && messages.length > 0) {\n searchForMessage(queryParams.pod_message_id);\n }\n }, [messages]);\n\n useEffect(() => {\n paginator.page = 1;\n onFetchMessages();\n }, [tag]);\n\n const checkSearchParams = () => {\n const search = currentLocation.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n const reflection_id = new URLSearchParams(search).get(\"reflection_id\");\n const tag = new URLSearchParams(search).get(\"tag\");\n if (pod_message_id || reflection_id) {\n queryParams.pod_message_id = pod_message_id;\n queryParams.reflection_id = reflection_id;\n }\n\n if (tag) {\n setTag(tag);\n } else {\n setTag(null);\n }\n\n if (\n messages.length > 0 &&\n messages[0].pod_slug == params.slug &&\n queryParams.pod_message_id\n ) {\n searchForMessage(queryParams.pod_message_id);\n }\n };\n\n const cableDisconnectIfNeeded = () => {\n if (\n cable &&\n lastConnectionAttempt.current.channel &&\n lastConnectionAttempt.current.slug != params.slug\n ) {\n lastConnectionAttempt.current.state = \"disconnecting\";\n // debugger;\n console.log(\n \"ACTION CABLE: disconnecting - \" + lastConnectionAttempt.current.slug\n );\n setTimeout(() => {\n console.log(\n \"ACTION CABLE: disconnected 1 - \" + lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.channel = null;\n lastConnectionAttempt.current.state = null;\n cableConnect();\n }, 100);\n lastConnectionAttempt.current.channel.unsubscribe();\n } else {\n }\n };\n\n const cableConnect = () => {\n cableDisconnectIfNeeded();\n\n if (lastConnectionAttempt.current.state == \"disconnecting\") {\n console.log(\n \"ACTION CABLE: disconnecting skipped - \" +\n lastConnectionAttempt.current.slug\n );\n return;\n }\n\n if (\n lastConnectionAttempt.current.slug == params.slug &&\n lastConnectionAttempt.current.state == \"connected\"\n ) {\n console.log(\n \"ACTION CABLE: skipping connection - \" +\n lastConnectionAttempt.current.slug\n );\n return;\n }\n\n lastConnectionAttempt.current.slug = params.slug;\n lastConnectionAttempt.current.state = \"connecting\";\n\n performCableConnection();\n\n connectionIntervalId.current = setTimeout(() => {\n if (lastConnectionAttempt.current.state == \"connecting\") {\n console.log(\"ACTION CABLE: forcing messages fetch 2 - \" + params.slug);\n onFetchMessages(true);\n }\n }, 1000);\n };\n\n const performCableConnection = () => {\n console.log(\n \"ACTION CABLE: connection attempt \" + lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.channel = cable.subscriptions.create(\n {\n channel: \"PodsChannel\",\n pod_slug: params.slug,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\n `ACTION CABLE: connection data: ${currentConnectedSlug.current} == ${params.slug}`\n );\n\n if (lastConnectionAttempt.current.state == \"connecting\") {\n console.log(\n \"ACTION CABLE: connected completed - \" +\n lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.state = \"connected\";\n checkSearchParams();\n setTimeout(() => {\n markAsSeen();\n }, 5000);\n onFetchMessages(true);\n return;\n }\n console.log(\"ACTION CABLE: messages.length - \" + messages.length);\n console.log(\n \"ACTION CABLE: message slug - \" + messages.length > 0 &&\n messages[0].pod_slug\n );\n if (\n messages.length == 0 ||\n (messages.length > 0 &&\n messages[0].pod_slug != lastConnectionAttempt.current.slug)\n ) {\n console.log(\n \"ACTION CABLE: forcing messages fetch - \" + params.slug\n );\n onFetchMessages(true);\n }\n console.log(\n \"ACTION CABLE: connected skipped - \" +\n lastConnectionAttempt.current.slug\n );\n },\n disconnected: () => {\n console.log(\n \"ACTION CABLE: disconnected 2 - \" +\n lastConnectionAttempt.current.slug\n );\n },\n received: (data) => {\n console.log(\n \"ACTION CABLE: received - \" + lastConnectionAttempt.current.slug\n );\n console.log(\n \"ACTION CABLE: data - \" +\n JSON.stringify(data) +\n \" - params: \" +\n params.slug +\n \" - current: \" +\n lastConnectionAttempt.current.slug\n );\n if (data.slug == lastConnectionAttempt.current.slug) {\n paginator.newMessage = true;\n setReceiveData(data);\n return;\n }\n console.log(\n \"ACTION CABLE: received ignored - \" +\n lastConnectionAttempt.current.slug\n );\n },\n }\n );\n };\n\n const markAsSeen = () => {\n NotificationModel.onMarkAsSeen(\"pod_message\", params.slug, (data) => {});\n };\n\n const markReflectionAsSeen = (messageId) => {\n NotificationModel.onMarkAsSeen(\"reflection\", messageId, (data) => {});\n };\n\n const onFetchMessages = (reset = false) => {\n if (channelPile.current && channelPile.current.length > 0) {\n return;\n }\n if (reset && messages.length > 0 && messages[0].pod_slug == params.slug) {\n return;\n }\n\n const search = window.location.search;\n const _tag = new URLSearchParams(search).get(\"tag\");\n const _pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n\n if (reset) {\n paginator.page = 1;\n messagesCopy.current = [];\n setMessages([]);\n loadingVariables.current = false;\n }\n\n if (_tag && tagFetch.current != _tag) {\n tagFetch.current = _tag;\n paginator.page = 1;\n messagesCopy.current = [];\n setMessages([]);\n loadingVariables.current = false;\n }\n\n if (!_tag && !_pod_message_id && paginator.page == 1) {\n if (!queryParams.pod_message_id) {\n scrollToBottomAfter.current = true;\n }\n\n getJSON(`spaces`, `messages-${params.slug}`, (data) => {\n if (data && data.data.length > 0) {\n setMessages([...data.data]);\n messagesCopy.current = [...data.data];\n onFetchMessagesFromAPI(_tag, data.stored_at, data.data);\n } else {\n onFetchMessagesFromAPI(_tag);\n }\n });\n } else {\n onFetchMessagesFromAPI(_tag);\n }\n };\n\n const onFetchMessagesFromAPI = (_tag, storedAt = null, stored = null) => {\n MessageModel.onFetch(\n params.slug,\n { tag: _tag },\n paginator.page,\n (data) => {\n let lookForMessage = true;\n if (data.data.length > 0 && paginator.page > 1) {\n setMessages(data.data.concat(messages));\n messagesCopy.current = [...data.data.concat(messages)];\n lookForMessage = false;\n } else {\n if (data.data.length > 0 && paginator.page == 1) {\n storeJSON(\"spaces\", `messages-${params.slug}`, { ...data });\n\n if (\n !storedAt ||\n (storedAt &&\n anyFetchedMessageChanged(data.data, stored, storedAt))\n ) {\n console.log(\"SILENT UPDATE DONE MESSAGES\");\n setMessages([...data.data]);\n messagesCopy.current = [...data.data];\n lookForMessage = false;\n }\n }\n }\n if (data.data.length == 0 && paginator.page > 1) {\n paginator.page--;\n }\n if (\n lookForMessage &&\n queryParams.pod_message_id &&\n messages.length > 0\n ) {\n searchForMessage(queryParams.pod_message_id);\n }\n },\n (data) => {}\n );\n };\n\n const anyFetchedMessageChanged = (fetched, stored, storedAt) => {\n for (let i = 0; i < fetched.length; i++) {\n const objectA = fetched[i];\n const objectB = stored.find((obj) => obj.id === objectA.id);\n if (!objectB) {\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n if (\n objectB &&\n (new Date(objectA.updated_at) > new Date(objectB.updated_at) ||\n objectA.reflections.length > objectB.reflections.length)\n ) {\n // display bar\n\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n }\n\n for (let i = 0; i < stored.length; i++) {\n const objectA = stored[i];\n const objectB = fetched.find((obj) => obj.id === objectA.id);\n if (!objectB) {\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n if (\n objectB &&\n (new Date(objectB.updated_at) > new Date(objectA.updated_at) ||\n objectB.reflections.length > objectA.reflections.length)\n ) {\n // display bar\n\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n }\n\n return false;\n };\n\n const searchForMessage = (messageId) => {\n if (querySearchCount.current > 10) {\n return;\n }\n\n querySearchCount.current++;\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n queryParams.pod_message_id = null;\n querySearchCount.current = 99;\n\n scrollToMessage(messageId);\n if (queryParams.reflection_id) {\n const newMessage = { ...messages[i] };\n newMessage.reflectionId = queryParams.reflection_id;\n queryParams.reflection_id = null;\n setSelectedMessage(newMessage);\n setOpenedReflections(true);\n markReflectionAsSeen(messageId);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n }\n return;\n }\n }\n paginator.page++;\n onFetchMessages();\n };\n\n const onReceivedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n space.slug,\n (data) => {\n if (data.user.id != user.id) {\n if (atBottom.current) {\n loadingVariables.current = false;\n scrollToBottomAfter.current = true;\n\n setTimeout(() => {\n scrollToBottom();\n }, 500);\n } else {\n //Trigger new message\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n } else {\n loadingVariables.current = false;\n scrollToBottomAfter.current = true;\n setTimeout(() => {\n scrollToBottom();\n }, 500);\n }\n\n let newMessages = [...messagesCopy.current];\n\n if (messagesCopy.current.length == 0) {\n messagesCopy.current = [...messages];\n newMessages = [...messagesCopy.current];\n }\n\n newMessages.push(data);\n messagesCopy.current.push(data);\n\n setMessages(newMessages);\n onRemovePileAction();\n },\n (data) => {\n onRemovePileAction();\n }\n );\n };\n\n const onUpdatedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n space.slug,\n (data) => {\n loadingVariables.current = true;\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages[i] = data;\n if (selectedMessage && messageId == selectedMessage.id) {\n setSelectedMessage({ ...newMessages[i] });\n }\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n onRemovePileAction();\n },\n (data) => {\n onRemovePileAction();\n }\n );\n };\n\n const onDestroyedMessage = (messageId) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages.splice(i, 1);\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n onRemovePileAction();\n };\n\n const onPinnedMessage = (messageId) => {\n const newSpace = { ...space };\n newSpace.pin_message = messageId;\n dispatch(setSpace(newSpace));\n onRemovePileAction();\n };\n\n const onRemovePileAction = () => {\n if (channelPile.current.length > 0) {\n channelPile.current[0].state = \"done\";\n }\n };\n\n const scrollToReflection = (message) => {\n scrollToElement(`reflection_${id}`);\n };\n\n const onScrollTop = () => {\n paginator.page++;\n onFetchMessages();\n };\n\n const onSave = (json, html) => {\n json.attrs = { uid: `message-${new Date().getTime()}` };\n json.type = \"paragraph\";\n MessageModel.onCreate(\n params.slug,\n { json, html },\n (data) => {\n storeJSON(\"spaces\", `discussion-input-${params.slug}`, {\n json: \"\",\n html: \"\",\n });\n if (props.onSave) {\n props.onSave();\n }\n },\n (data) => {}\n );\n };\n\n const onOpenReflections = (messageId) => {\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n markReflectionAsSeen(messageId);\n setSelectedMessage(messages[i]);\n break;\n }\n }\n };\n\n const scrollToBottom = () => {\n if (viewport.current) {\n }\n setTimeout(() => {\n if (viewport.current) {\n viewport.current.scrollTop = viewport.current.scrollHeight;\n // const top = viewport.current.scrollHeight + 2000;\n // viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n }\n }, 100);\n };\n\n const scrollToMessage = (messageId) => {\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`msg_${messageId}`);\n const top =\n $scrollTo.offsetTop -\n viewport.current.offsetTop +\n viewport.current.scrollTop +\n 80;\n\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n } catch (error) {}\n }, 500);\n };\n\n const scrollToTop = () => {\n viewport.current.scrollTo({ top: 0, behavior: \"instant\" });\n };\n\n const onViewPinnedMessage = (message) => {\n setSelectedMessage(message);\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.pinnedMessageHeader\")\n );\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n const scrollTimeoutId = setTimeout(() => {\n dispatch(setNewMessage({ show: false }));\n atBottom.current = true;\n }, 1000);\n scrollTimeoutIds.current.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n atBottom.current = false;\n\n const scrollTimeoutId = setTimeout(() => {\n // At top\n onScrollTop();\n }, 300);\n scrollTimeoutIds.current.push(scrollTimeoutId);\n } else {\n // In between\n atBottom.current = false;\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.current.length; i++) {\n const id = scrollTimeoutIds.current[i];\n clearTimeout(id);\n }\n };\n\n // if (props.loading) {\n // return ;\n // }\n\n return (\n \n {props.showHeader && messages.length > 0 && (\n \n \n \n )}\n \n {props.showHeader && (\n <>\n \n \n \n )}\n {messages &&\n messages.length > 0 &&\n messages[0].pod_slug == params.slug && (\n ({\n height: \"100%\",\n paddingBottom: \"15px\",\n })}\n >\n {messages.map((message) => {\n return (\n \n );\n })}\n \n )}\n \n {space &&\n space.permissions &&\n !space.permissions.read_only &&\n (space.permissions.can_manage ||\n space.permissions.is_admin ||\n space.permissions.is_member) && (\n \n \n \n \n \n )}\n {space && space.permissions ? (\n setOpenedReflections(false)}\n title={reflectionsDrawerHeader}\n padding=\"xl\"\n size={600}\n classNames={{\n drawer: classes.drawer,\n header: classes.drawerHeader,\n }}\n >\n \n \n ) : (\n \"\"\n )}\n \n );\n}\n","import Broadcaster from \"../../../helpers/Broadcaster\";\nimport { onDragStart } from \"../plugins/EventHandler\";\nimport { getSimpleStructure } from \"../utils/selection\";\nimport { colors } from \"../../../collections/colors\";\n\nimport Swal from \"sweetalert2\";\n\nconst plusIcon =\n '';\n\nconst deleteIcon =\n '';\n\nconst dragIcon =\n '';\n\nconst cloneIcon =\n '';\n\nexport function gridActions(editor) {\n const actions = document.createElement(\"div\");\n actions.classList.add(\"tiptap-block-actions\");\n const innerWrap = document.createElement(\"div\");\n innerWrap.classList.add(\"tiptap-block-actions-inner\");\n actions.append(innerWrap);\n\n innerWrap.append(\n addButton(plusIcon, (event) => {\n\n event.stopPropagation();\n\n let coords = { left: event.clientX, top: event.clientY };\n let pos = editor.view.posAtCoords(coords);\n\n if (pos.inside == 0) {\n editor\n .chain()\n .focus()\n .setTextSelection(pos.inside)\n .selectParentNode()\n .selectParentNode()\n .selectParentNode()\n .run();\n } else {\n editor.chain().focus().setNodeSelection(pos.inside).run();\n }\n // debugger;\n editor.chain().focus().enter().selectTextblockEnd().run();\n\n editor.chain().setTextSelection(editor.view.state.selection.to).run();\n\n const { from, to } = editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from, to };\n\n Broadcaster.send(\"open_SideBlockMenu\", document.body, {});\n })\n );\n\n innerWrap.append(\n addButton(deleteIcon, (event) => {\n event.stopPropagation();\n let coords = { left: event.clientX, top: event.clientY };\n let pos = editor.view.posAtCoords(coords);\n\n if (pos) {\n if (pos.inside == 0) {\n editor\n .chain()\n .focus()\n .setTextSelection(pos.inside)\n .selectParentNode()\n .selectParentNode()\n .selectParentNode()\n .run();\n } else {\n editor.chain().focus().setNodeSelection(pos.inside).run();\n }\n\n const { from, to, $anchor } = editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from, to };\n\n \n }\n\n Swal.fire({\n title: \"Are you sure?\",\n html: `You are about to delete a content block.`,\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n if (editor.view.state.selection.node) {\n editor.commands.deleteSelection();\n } else {\n editor.commands.deleteNode(\n editor.view.state.selection.$anchor.parent.type.name\n );\n }\n \n } else if (result.isDenied) {\n }\n });\n })\n );\n\n innerWrap.append(\n addButton(\n dragIcon,\n (event) => {\n\n event.stopPropagation();\n // CLICK\n let coords = { left: event.clientX, top: event.clientY };\n let pos = editor.view.posAtCoords(coords);\n\n if (pos) {\n if (pos.inside == 0) {\n editor\n .chain()\n .focus()\n .setTextSelection(pos.inside)\n .selectParentNode()\n .selectParentNode()\n .selectParentNode()\n .run();\n } else {\n editor.chain().focus().setNodeSelection(pos.inside).run();\n }\n\n const { from, to, $anchor } = editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from, to };\n\n setTimeout(() => {\n const slice = onDragStart(\n event,\n window.$tiptapLastSelectionRange,\n editor\n );\n const nodes = getSimpleStructure(editor, slice);\n\n // const draggingNode = {nodes: nodes, parent: \"current\", outsider: true, selection_type: \"multiple\"}\n //\n //\n // dispatch(setSidebarDragging(draggingNode));\n }, 200);\n }\n },\n (event) => {\n // HOVER IN\n try {\n let coords = { left: event.clientX, top: event.clientY };\n let pos = editor.view.posAtCoords(coords);\n\n if (pos) {\n if (pos.inside == 0) {\n editor\n .chain()\n .focus()\n .setTextSelection(pos.inside)\n .selectParentNode()\n .selectParentNode()\n .selectParentNode()\n .run();\n } else {\n editor.chain().focus().setNodeSelection(pos.inside).run();\n }\n\n const { from, to, $anchor } = editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from, to };\n }\n } catch (e) {}\n },\n (event) => {\n // HOVER OUT\n // try {\n // let coords = { left: event.clientX, top: event.clientY };\n // let pos = editor.view.posAtCoords(coords);\n // if (pos) {\n // editor\n // .chain()\n // .focus()\n // .setTextSelection(pos.inside)\n // .selectTextblockStart()\n // .run();\n // }\n // } catch (e) {}\n }\n )\n );\n\n innerWrap.append(\n addButton(cloneIcon, (event) => {\n event.stopPropagation();\n let coords = { left: event.clientX, top: event.clientY };\n let pos = editor.view.posAtCoords(coords);\n\n if (pos) {\n if (pos.inside == 0) {\n editor\n .chain()\n .focus()\n .setTextSelection(pos.inside)\n .selectParentNode()\n .selectParentNode()\n .selectParentNode()\n .run();\n } else {\n editor.chain().focus().setNodeSelection(pos.inside).run();\n }\n\n const { $head, node } = editor.view.state.selection;\n\n const copy = node.copy(node.content);\n const transaction = editor.state.tr.insert($head.pos, copy);\n\n editor.view.dispatch(transaction);\n }\n })\n );\n\n return actions;\n}\n\nfunction addButton(\n html,\n clickCallback,\n hoverInCallback = null,\n hoverOutCallback = null\n) {\n const button = document.createElement(\"button\");\n button.innerHTML = html;\n button.classList.add(\"tiptap-block-actions-button\");\n button.addEventListener(\"click\", (event) => {\n clickCallback(event);\n });\n if (hoverInCallback) {\n button.addEventListener(\"mouseover\", (event) => {\n hoverInCallback(event);\n });\n }\n if (hoverOutCallback) {\n button.addEventListener(\"mouseout\", (event) => {\n hoverOutCallback(event);\n });\n }\n return button;\n}\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { gridActions } from \"../utils/gridActions\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst Grid3Node = Node.create({\n name: \"grid4\",\n content: \"column column column column\",\n group: \"block\",\n inline: false,\n defining: true,\n isolating: false,\n allowGapCursor: false,\n draggable: false,\n selectable: true,\n addAttributes() {\n return {\n circle_id: {\n default: null,\n },\n dist: {\n default: [3, 3, 3, 3],\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n parseHTML() {\n return [\n {\n tag: \"grid4\",\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\"grid4\", mergeAttributes(HTMLAttributes), 0];\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const attributes = mergeAttributes(HTMLAttributes, {\n \"data-type\": this.name,\n });\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n const content = document.createElement(\"div\");\n content.style.maxWidth = wideOrNarrow();\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n content.classList.add(\"c-grid\");\n content.classList.add(\"grid4\");\n dom.append(content);\n const subcontent = document.createElement(\"div\");\n content.append(subcontent);\n\n dom.append(gridActions(editor));\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default Grid3Node;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { gridActions } from \"../utils/gridActions\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst Grid3Node = Node.create({\n name: \"grid3\",\n content: \"column column column\",\n group: \"block\",\n inline: false,\n defining: true,\n isolating: false,\n allowGapCursor: false,\n draggable: false,\n selectable: true,\n addAttributes() {\n return {\n circle_id: {\n default: null,\n },\n dist: {\n default: [4, 4, 4],\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n parseHTML() {\n return [\n {\n tag: \"grid3\",\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\"grid3\", mergeAttributes(HTMLAttributes), 0];\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const attributes = mergeAttributes(HTMLAttributes, {\n \"data-type\": this.name,\n });\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n const content = document.createElement(\"div\");\n content.style.maxWidth = wideOrNarrow();\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n content.classList.add(\"c-grid\");\n content.classList.add(\"grid3\");\n dom.append(content);\n const subcontent = document.createElement(\"div\");\n content.append(subcontent);\n\n dom.append(gridActions(editor));\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default Grid3Node;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { gridActions } from \"../utils/gridActions\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst Grid2Node = Node.create({\n name: \"grid2\",\n content: \"column column\",\n group: \"block\",\n inline: false,\n defining: true,\n isolating: false,\n allowGapCursor: false,\n draggable: false,\n selectable: true,\n addAttributes() {\n return {\n circle_id: {\n default: null,\n },\n dist: {\n default: [6, 6],\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n parseHTML() {\n return [\n {\n tag: \"grid2\",\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\"grid2\", mergeAttributes(HTMLAttributes), 0];\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const attributes = mergeAttributes(HTMLAttributes, {\n \"data-type\": this.name,\n });\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n const content = document.createElement(\"div\");\n content.style.maxWidth = wideOrNarrow();\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n content.classList.add(\"c-grid\");\n content.classList.add(\"grid2\");\n dom.append(content);\n const subcontent = document.createElement(\"div\");\n content.append(subcontent);\n\n dom.append(gridActions(editor));\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default Grid2Node;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport { gridActions } from \"../utils/gridActions\";\n\nconst Grid1Node = Node.create({\n name: \"grid1\",\n content: \"column\",\n group: \"block\",\n inline: false,\n defining: true,\n isolating: false,\n allowGapCursor: false,\n draggable: false,\n selectable: true,\n addAttributes() {\n return {\n circle_id: {\n default: null,\n },\n dist: {\n default: [12],\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n parseHTML() {\n return [\n {\n tag: \"grid1\",\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\"grid1\", mergeAttributes(HTMLAttributes), 0];\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const attributes = mergeAttributes(HTMLAttributes, {\n \"data-type\": this.name,\n });\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n const content = document.createElement(\"div\");\n content.style.maxWidth = wideOrNarrow();\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n content.classList.add(\"c-grid\");\n content.classList.add(\"grid1\");\n dom.append(content);\n const subcontent = document.createElement(\"div\");\n content.append(subcontent);\n\n dom.append(gridActions(editor));\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default Grid1Node;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport { gridActions } from \"../utils/gridActions\";\n\nconst InfoBoxNode = Node.create({\n name: \"infobox\",\n content: \"column\",\n group: \"block\",\n inline: false,\n defining: true,\n isolating: false,\n allowGapCursor: false,\n draggable: false,\n selectable: true,\n addAttributes() {\n return {\n circle_id: {\n default: null,\n },\n dist: {\n default: [12],\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n parseHTML() {\n return [\n {\n tag: \"infobox\",\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\"infobox\", mergeAttributes(HTMLAttributes), 0];\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n\n const attributes = mergeAttributes(HTMLAttributes, {\n \"data-type\": this.name,\n });\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n const content = document.createElement(\"div\");\n content.style.maxWidth = wideOrNarrow();\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n\n content.classList.add(\"c-grid\");\n content.classList.add(\"grid1\");\n content.classList.add(\"infobox\");\n dom.append(content);\n const subcontent = document.createElement(\"div\");\n content.append(subcontent);\n\n dom.append(gridActions(editor));\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default InfoBoxNode;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\n\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\n\nconst ColumnNode = Node.create({\n name: \"column\",\n content: \"columnable+\",\n group: \"inmobible\",\n defining: true,\n selectable: false,\n draggable: false,\n allowGapCursor: true,\n addOptions() {\n return {\n HTMLAttributes: {},\n };\n },\n addAttributes() {\n return {\n circle_id: {\n default: null,\n },\n size: {\n default: 6,\n },\n position: {\n default: 0,\n },\n };\n },\n parseHTML() {\n return [\n {\n tag: \"column\",\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"column\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n 0,\n ];\n },\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"div\");\n const attributes = mergeAttributes(HTMLAttributes, {\n \"data-type\": this.name,\n draggable: false,\n });\n\n dom.classList.add(`c-grid-md-${attributes.size}`);\n dom.classList.add(`c-grid-col`);\n dom.classList.add(`col-${attributes.position}`);\n dom.draggable = false;\n\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n\n const content = document.createElement(\"div\");\n content.draggable = false;\n content.style.width = \"100%\";\n dom.append(content);\n\n dom.addEventListener(\"click\", () => {});\n\n const actions = document.createElement(\"div\");\n actions.classList.add(\"tiptap-block-actions\");\n actions.draggable = false;\n\n dom.append(actions);\n //dom.append(`c-grid-md-${attributes.size}`)\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos, \"flex\");\n\n //setUniqId(editor, node, getPos, dom);\n\n const auxPos = getPos();\n setTimeout(() => {\n try {\n const hasCol0 = $(dom).hasClass(\"col-0\");\n\n const isSibling8Size = $(dom).siblings().hasClass(\"c-grid-md-8\");\n const isSibling4Size = $(dom).siblings().hasClass(\"c-grid-md-4\");\n const isGrid3 = dom.parentNode.children.length == 3;\n const currentPosInParent = [].indexOf.call(\n dom.parentNode.children,\n dom\n );\n\n let fixed = false;\n\n // console.log(\"TRYING TO FIX COLUMNS: \" + currentPosInParent);\n if (\n (isSibling8Size && node.attrs.size != 4) ||\n (isGrid3 && node.attrs.size != 4)\n ) {\n const { tr } = editor.view.state;\n tr.setNodeMarkup(auxPos, undefined, {\n ...node.attrs,\n size: 4,\n position: currentPosInParent + 1,\n });\n editor.view.dispatch(tr);\n fixed = true;\n }\n\n if (isSibling4Size && node.attrs.size != 8 && !isGrid3) {\n const { tr } = editor.view.state;\n tr.setNodeMarkup(auxPos, undefined, {\n ...node.attrs,\n size: 8,\n position: currentPosInParent + 1,\n });\n editor.view.dispatch(tr);\n fixed = true;\n }\n\n if (!fixed && hasCol0) {\n const { tr } = editor.view.state;\n tr.setNodeMarkup(auxPos, undefined, {\n ...node.attrs,\n position: currentPosInParent + 1,\n });\n editor.view.dispatch(tr);\n }\n } catch (e) {}\n }, 2000);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default ColumnNode;\n","// import axios from 'axios';\n\nclass Resource {\n constructor() {\n if (this instanceof Resource) {\n throw Error('Resource class cannot be instantiated.');\n }\n }\n\n static onFetch = async (id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/resources/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, resource, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n resource\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/resources.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (id, slug, resource, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n resource\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/resources/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/resources/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Resource;\n","// import axios from 'axios';\n\nclass Page {\n constructor() {\n if (this instanceof Page) {\n throw Error('Page class cannot be instantiated.');\n }\n }\n\n static onCreate = async (resourceId, slug, page, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n page\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/resources/${resourceId}/pages.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (id, resourceId, slug, page, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n page\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/resources/${resourceId}/pages/${id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (id, resourceId, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/resources/${resourceId}/pages/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onReorder = async (resourceId, slug, pages, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n pages\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/resources/${resourceId}/pages/reorder.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Page;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport ResourceModel from \"../../../models/Resource\";\nimport PageModel from \"../../../models/Page\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nimport { useListState } from \"@mantine/hooks\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n\nimport { GripVertical } from \"tabler-icons-react\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nimport { checkInteractionAndHideIfNeededReact, setUniqId} from \"../utils/selection\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport TiptapReadonly from \"./TiptapReadonly\";\n\nimport {\n Accordion,\n Group,\n Text,\n Badge,\n Tooltip,\n MantineProvider,\n createStyles,\n Box,\n} from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport useLangUser from \"../../../utils/LangUser\";\nimport { DateTime } from \"luxon\";\n\nimport Swal from \"sweetalert2\";\n\nimport { colors } from \"../../../collections/colors\";\n\nconst useStyles = createStyles(\n (theme, { colorsTheme, publishOnDate }, getRef) => ({\n item: {\n borderBottom: \"none\",\n borderRadius: 10,\n // borderdTopLeftRadius: 5,\n // borderTopRightRadius: 5,\n backgroundColor: isSpaceThemed(colorsTheme)\n ? isDark(colorsTheme.background_color)\n ? tinycolor(colorsTheme.background_color).lighten(5).toString()\n : tinycolor(colorsTheme.background_color).darken(5).toString()\n : tinycolor(colorsTheme.background_color).darken(2).toString(),\n\n // backgroundColor: !isSpaceThemed(colorsTheme)\n // ? theme.colors.gray[0]\n // : colorsTheme.sidebar_background_color,\n border: isSpaceThemed(colorsTheme)\n ? `1px solid ${\n isDark(colorsTheme.background_color)\n ? tinycolor(colorsTheme.background_color).lighten(20).toString()\n : tinycolor(colorsTheme.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n },\n itemOpened: {\n backgroundColor: isSpaceThemed(colorsTheme)\n ? isDark(colorsTheme.background_color)\n ? tinycolor(colorsTheme.background_color).lighten(5).toString()\n : tinycolor(colorsTheme.background_color).darken(5).toString()\n : tinycolor(colorsTheme.background_color).darken(4).toString(),\n borderdTopLeftRadius: 10,\n borderTopRightRadius: 10,\n borderBottomLeftRadius: 10,\n borderBottomRightRadius: 10,\n boxShadow: \"none\",\n // backgroundColor: '#fff',\n },\n control: {\n paddingTop: 20,\n paddingBottom: 20,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 0,\n borderRadius: 10,\n\n backgroundColor: isSpaceThemed(colorsTheme)\n ? isDark(colorsTheme.background_color)\n ? tinycolor(colorsTheme.background_color).lighten(8).toString()\n : tinycolor(colorsTheme.background_color).darken(8).toString()\n : tinycolor(colorsTheme.background_color).darken(2).toString(),\n\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n // backgroundColor: !isSpaceThemed(colors) ? theme.colors.gray[0] : colors.sidebar_background_color,\n\n // border: isSpaceThemed(colorsTheme)\n // ? `1px solid ${\n // isDark(colorsTheme.background_color)\n // ? tinycolor(colorsTheme.background_color).lighten(20).toString()\n // : tinycolor(colorsTheme.background_color).darken(20).toString()\n // }`\n // : `1px solid #e9ecef`,\n\n // color: isSpaceThemed(colors) && !publishOnDate ? colors.sidebar_text_color : \"#000\",\n color: isSpaceThemed(colorsTheme)\n ? colorsTheme.default_text_color\n : \"#000\",\n\n \"&:hover\": {\n // borderRadius: 10,\n // backgroundColor: theme.colors.gray[1],\n // boxShadow: '1px 1px 1px 0px rgba(0,0,0,0.1)'\n cursor: \"pointer !important\",\n // backgroundColor: isSpaceThemed(colorsTheme)\n // ? (isDark(colorsTheme.background_color)\n // ? tinycolor(colorsTheme.background_color).lighten(8).toString()\n // : tinycolor(colorsTheme.background_color).darken(8).toString())\n // : tinycolor(colorsTheme.background_color).darken(1).toString(),\n backgroundColor: isSpaceThemed(colorsTheme)\n ? isDark(colorsTheme.background_color)\n ? tinycolor(colorsTheme.background_color).lighten(10).toString()\n : tinycolor(colorsTheme.background_color).darken(10).toString()\n : tinycolor(colorsTheme.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n // backgroundColor: !isSpaceThemed(colorsTheme)\n // ? theme.colors.gray[0]\n // : colorsTheme.sidebar_background_color,\n // background: publishOnDate ? \"repeating-linear-gradient(-45deg,#ddd,#ddd 1px,#f9f9f9 1px,#f9f9f9 10px)\" : \"\",\n // border: isSpaceThemed(colorsTheme)\n // ? `1px solid ${\n // isDark(colorsTheme.background_color)\n // ? tinycolor(colorsTheme.background_color).lighten(20).toString()\n // : tinycolor(colorsTheme.background_color).darken(20).toString()\n // }`\n // : `1px solid #e9ecef`,\n },\n },\n icon: {\n // marginRight: 8,\n // marginLeft: -5\n },\n content: {\n backgroundColor: colors.background_color,\n // borderLeft: `1px solid ${\n // !isSpaceThemed(colorsTheme)\n // ? theme.colors.gray[1]\n // : colorsTheme.sidebar_background_color\n // }`,\n // borderRight: `1px solid ${\n // !isSpaceThemed(colorsTheme)\n // ? theme.colors.gray[1]\n // : colorsTheme.sidebar_background_color\n // }`,\n // borderBottom: `1px solid ${\n // !isSpaceThemed(colorsTheme)\n // ? theme.colors.gray[1]\n // : colorsTheme.sidebar_background_color\n // }`,\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n borderBottomLeftRadius: 5,\n borderBottomRightRadius: 5,\n paddingLeft: 25,\n paddingRight: 20,\n paddingTop: 10,\n color: colorsTheme.default_text_color,\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n itemStyle: {\n color: !isSpaceThemed(colorsTheme)\n ? \"#000\"\n : colorsTheme.default_text_color,\n },\n iconWrapper: {\n color: !isSpaceThemed(colorsTheme)\n ? \"#000\"\n : colorsTheme.default_text_color,\n ref: getRef(\"iconWrapper\"),\n },\n linkHover: {\n color: colorsTheme.default_text_color,\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n dateStyle: {\n textTransform: \"none\",\n },\n badgeStyle: {\n textTransform: \"none\",\n cursor: \"pointer\",\n // backgroundColor: theme.colors.gray[6],\n color: isSpaceThemed(colorsTheme)\n ? colorsTheme.primary_button_text_color\n : \"#fff\",\n backgroundColor: isSpaceThemed(colorsTheme)\n ? colorsTheme.primary_button_background_color\n : theme.colors.gray[6],\n \"&:hover\": {\n color: isSpaceThemed(colorsTheme)\n ? tinycolor(colorsTheme.primary_button_text_color)\n .lighten(6)\n .toString()\n : \"#fff\",\n backgroundColor: isSpaceThemed(colorsTheme)\n ? tinycolor(colorsTheme.primary_button_background_color)\n .lighten(6)\n .toString()\n : theme.colors.gray[7],\n // backgroundColor: theme.colors.gray[7],\n },\n },\n trashStyle: {\n cursor: \"pointer\",\n // backgroundColor: theme.colors.gray[6],\n color: isSpaceThemed(colorsTheme)\n ? colorsTheme.primary_button_background_color\n : theme.colors.gray[6],\n \"&:hover\": {\n color: isSpaceThemed(colorsTheme)\n ? tinycolor(colorsTheme.primary_button_background_color).lighten(6).toString()\n : theme.colors.gray[7],\n // backgroundColor: theme.colors.gray[7],\n },\n },\n itemDragging: {\n // boxShadow: theme.shadows.sm,\n },\n\n symbol: {\n fontSize: 30,\n fontWeight: 700,\n width: 60,\n },\n\n dragHandle: {\n ...theme.fn.focusStyles(),\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n color: isSpaceThemed(colorsTheme)\n ? tinycolor(colorsTheme.sidebar_text_color).toString()\n : theme.colors.gray[7],\n paddingLeft: 10,\n paddingRight: 10,\n },\n })\n);\n\nexport default function Resource(props) {\n const isUnpublished = () => {\n return (\n resource.publish_on_date && new Date() < new Date(resource.publish_time)\n );\n };\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const [resource, setResource] = useState({\n id: null,\n pages: [],\n title: \"\",\n permissions: {},\n });\n const [pages, handlers] = useListState([]);\n const colorsTheme = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({\n colorsTheme,\n publishOnDate: isUnpublished() ? resource.publish_on_date : \"\",\n });\n const { language, setLangUser } = useLangUser();\n const loaded = useRef(false);\n const opened = useRef(null);\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n //setUniqId(props.editor, props.node, props.getPos);\n\n useEffect(() => {\n return () => {\n loaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (\n inView &&\n (window.location.href.split(\"/\")[4] == props.node.attrs.circle_id ||\n window.$modalSpaceOpened == props.node.attrs.circle_id || \n window.$templatesModalIsOpened) &&\n (!resource.id || window.$reloadResourceId == resource.id)\n ) {\n window.$reloadResourceId = null\n onFetch();\n }\n }, [props]);\n\n useEffect(() => {\n if (\n inView &&\n (window.location.href.split(\"/\")[4] == props.node.attrs.circle_id || \n window.$modalSpaceOpened == props.node.attrs.circle_id || \n window.$templatesModalIsOpened)\n ) {\n onFetch();\n }\n }, [inView]);\n\n useEffect(() => {\n handlers.setState([...resource.pages]);\n }, [resource]);\n\n useEffect(() => {\n if (loaded.current) {\n onReorder();\n } else if (resource.id) {\n loaded.current = true;\n }\n }, [pages]);\n\n const onFetch = () => {\n setResource({\n id: null,\n pages: [],\n title: \"\",\n permissions: {},\n })\n \n ResourceModel.onFetch(\n props.node.attrs.id,\n props.node.attrs.circle_id,\n (data) => {\n \n if (opened.current == null){\n opened.current = data.default_opened ? true : false;\n }\n setResource(data);\n },\n (data) => {}\n );\n };\n\n const onReorder = () => {\n PageModel.onReorder(\n props.node.attrs.id,\n props.node.attrs.circle_id,\n pages.map((p) => p.id),\n (data) => {},\n (data) => {}\n );\n };\n\n const onEdit = (event) => {\n event.stopPropagation();\n dispatch(\n setTiptapSidemenu({\n opened: \"newResource\",\n option: { resource: { ...resource } },\n })\n );\n };\n\n const onAddPage = (event) => {\n event.stopPropagation();\n dispatch(\n setTiptapSidemenu({\n opened: \"newPage\",\n option: { resourceId: props.node.attrs.id },\n })\n );\n };\n\n const onViewPage = (event, page) => {\n event.stopPropagation();\n dispatch(\n setTiptapSidemenu({\n opened: \"viewPage\",\n option: { resource: { ...resource }, page: { ...page } },\n })\n );\n };\n\n const onEditPage = (event, page) => {\n event.stopPropagation();\n dispatch(\n setTiptapSidemenu({\n opened: \"newPage\",\n option: { resourceId: props.node.attrs.id, page: { ...page } },\n })\n );\n };\n\n const onDestroyPage = (event, page) => {\n event.stopPropagation();\n Swal.fire({\n title: t(\"tiptap.components.resource.areYouSure\"),\n html: \"Your page content will be deleted\",\n showDenyButton: true,\n confirmButtonText: `Yes`,\n denyButtonText: `No`,\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n PageModel.onDestroy(\n page.id,\n props.node.attrs.id,\n props.node.attrs.circle_id,\n (data) => {\n onFetch();\n },\n (data) => {}\n );\n return;\n } else if (result.isDenied) {\n return;\n }\n });\n };\n\n const formatDateTime = (timestamp) => {\n if (resource.publish_time) {\n const d = new Date(resource.publish_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n return (\n \n {checkInteractionAndHideIfNeededReact(props.editor, props.getPos) && (\n \n {(props.editor.isEditable ||\n !isUnpublished() ||\n resource.permissions.can_manage) && (\n \n \n {resource.id && (\n {opened.current = state[0]}}\n initialState={{ 0: opened.current }}\n classNames={{\n item: classes.item,\n itemOpened: classes.itemOpened,\n control: classes.control,\n icon: classes.icon,\n content: classes.content,\n contentInner: classes.contentInner,\n }}\n >\n \n {`${resource.title}`}\n \n {isUnpublished() && (\n \n \n \n }\n >\n {\" \"}\n {formatDateTime()}\n \n \n \n )}\n {props.editor.isEditable && (\n <>\n onEdit(event)}\n >\n {t(\"tiptap.components.resource.edit\")}\n \n \n )}\n \n \n }\n >\n {resource &&\n resource.content &&\n (resource.content.length > 1 ||\n (resource.content.length == 1 &&\n resource.content[0])) && (\n <>\n \n \n \n )}\n {resource &&\n resource.pages &&\n resource.pages.length > 0 && (\n \n handlers.reorder({\n from: source.index,\n to: destination?.index || 0,\n })\n }\n >\n \n {(provided) => (\n \n {pages.map((page, index) => {\n return (\n \n {(provided, snapshot) => (\n \n \n ({\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"flex-start\",\n })}\n className={classes.itemStyle}\n ml={2}\n spacing={0}\n onClick={(event) =>\n onViewPage(event, page)\n }\n >\n \n \n \n \n {page.title}\n \n \n {props.editor.isEditable && (\n \n \n onEditPage(event, page)\n }\n >\n {t(\n \"tiptap.components.resource.edit\"\n )}\n \n \n onDestroyPage(event, page)\n }\n >\n \n \n \n \n \n \n )}\n \n \n )}\n \n );\n })}\n \n )}\n \n \n )}\n\n {props.editor.isEditable && (\n ({\n color: colorsTheme.default_text_color,\n cursor: \"pointer\",\n paddingTop: \"5px\",\n })}\n onClick={(event) => onAddPage(event)}\n >\n \n \n {t(\"tiptap.components.resource.addPage\")}\n \n \n )}\n \n \n )}\n \n )}\n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport {stylesToString} from '../../../utils/StylesToString'\n\nimport Resource from '../components/Resource';\n\nimport {v4 as uuidv4} from 'uuid';\n\nconst ResourceNode = Node.create({\n name: 'resource',\n allowGapCursor: false,\n group: \"block\",\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n }\n },\n\n inline() {\n return this.options.inline\n },\n\n group() {\n return this.options.inline ? 'inline' : 'block columnable'\n },\n draggable: false,\n addAttributes() {\n return {\n id: {\n default: null,\n },\n circle_id: {\n default: null,\n },\n viewAs: {\n default: \"list\",\n },\n idName: {\n default: \"resource-node\",\n },\n forceUpdate: {\n default: false\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"8px\",\n \"padding-bottom\": \"8px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'resource',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['resource', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(Resource)\n },\n})\n\nexport default ResourceNode;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport InterestModel from \"../../../models/Interest\";\n\nimport { checkInteractionAndHideIfNeededReact, setUniqId} from \"../utils/selection\";\n\nimport { Button, Stack, TextInput, createStyles } from \"@mantine/core\";\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport Swal from \"sweetalert2\";\n\nimport tinycolor from \"tinycolor2\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n buttonStyle: {\n backgroundColor: props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(props.node.attrs.buttonBackgroundColor)\n .darken(5)\n .toString(),\n },\n },\n}));\n\nexport default function Form(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors, props });\n\n const { t, i18n } = useTranslation();\n const location = useLocation();\n\n //setUniqId(props.editor, props.node, props.getPos);\n\n const form = useForm({\n initialValues: {\n email: \"\",\n name: \"\",\n },\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.replace(/\\s/g, '')) ? null : t(\"users.signUp.invalidEmailErrorMsg\"),\n name: (value) =>\n value.length >= 2 ? null : t(\"users.signUp.invalidFirstNameErrorMsg\"),\n },\n });\n\n const onSave = () => {\n const params = {\n ...form.values,\n };\n\n const slug = location.pathname.split(\"/\")[2];\n\n InterestModel.onCreate(\n slug,\n params,\n (data) => {\n if (props.node.attrs.actionCallback == \"link\") {\n window.location.href= props.node.attrs.actionCallbackValue;\n return;\n } else {\n Swal.fire({\n icon: \"success\",\n html: props.node.attrs.actionCallbackValue,\n showDenyButton: false,\n confirmButtonText: \"Ok\",\n confirmButtonColor: props.node.attrs.buttonBackgroundColor,\n }).then((result) => {\n if (result.isConfirmed) {\n }\n });\n }\n\n onResetForm();\n },\n (data) => {}\n );\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"email\", \"\");\n form.setFieldValue(\"name\", \"\");\n };\n\n const getRadius = () => {\n if (props.node.attrs.radius == \"no-radius\") {\n return \"xs\";\n } else if (props.node.attrs.radius == \"circle-radius\") {\n return \"xl\";\n } else if (props.node.attrs.radius == \"with-radius\") {\n return \"sm\";\n } else {\n return \"xs\";\n }\n };\n\n return (\n \n {checkInteractionAndHideIfNeededReact(props.editor, props.getPos) && (\n \n
onSave(values))}>\n \n {props.node.attrs.fields &&\n Array.isArray(props.node.attrs.fields) &&\n props.node.attrs.fields.map((field) => {\n return (\n \n );\n })}\n\n \n {props.node.attrs.buttonText}\n \n \n
\n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { stylesToString } from \"../../../utils/StylesToString\";\n\nimport Form from \"../components/Form\";\n\nconst FormNode = Node.create({\n name: \"customform\",\n allowGapCursor: false,\n group: \"block\",\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n };\n },\n\n inline() {\n return this.options.inline;\n },\n\n group() {\n return this.options.inline ? \"inline\" : \"block columnable\";\n },\n draggable: false,\n addAttributes() {\n return {\n fields: {\n default: [\n { placeholder: \"First name\", name: \"name\" },\n { placeholder: \"Email\", name: \"email\" },\n ],\n },\n idName: {\n default: \"customform-node\",\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: (attributes) => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n }),\n },\n };\n },\n parseHTML() {\n return [\n {\n tag: \"customform\",\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"customform\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer(Form);\n },\n});\n\nexport default FormNode;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport { checkInteractionAndHideIfNeededReact, setUniqId} from \"../utils/selection\";\n\nimport { Button, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport CompletionModel from \"../../../models/Completion\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setSpace } from \"../../../store/app\";\n\nconst useStyles = createStyles((theme) => ({\n buttonCompleted: {\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n \"&:hover\": {\n backgroundColor: theme.colors.green[7],\n },\n },\n}));\n\nexport default function ActionButton(props) {\n const { t, i18n } = useTranslation();\n\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const space = useSelector((state) => state.space);\n const [completed, setCompleted] = useState(false);\n\n const { classes, cx, theme } = useStyles();\n\n //setUniqId(props.editor, props.node, props.getPos);\n\n useEffect(() => {\n if (space && space.slug) {\n setCompleted(space.completed);\n }\n }, [space]);\n\n const getRadius = () => {\n if (props.node.attrs.radius == \"no-radius\") {\n return \"xs\";\n } else if (props.node.attrs.radius == \"circle-radius\") {\n return \"xl\";\n } else if (props.node.attrs.radius == \"with-radius\") {\n return \"sm\";\n } else {\n return \"xs\";\n }\n };\n\n const onLink = (event) => {\n \n \n if (props.node.attrs.actionCallbackTarget == \"_nothing\") {\n return;\n }\n\n const isJumpTo = props.node.attrs.actionCallbackValue.indexOf(\"#jumpTo=\") >= 0;\n\n if (isJumpTo) {\n const uid = props.node.attrs.actionCallbackValue.split('#jumpTo=')[1];\n window.location.href= \"#jumpTo=\" + uid;\n\n return;\n }\n\n const isPreview = new URLSearchParams(window.location.search).get(\"preview\") === \"true\" && window.location.pathname.indexOf(\"register\") >= 0;\n const isGateway = props.node.attrs.actionCallbackValue.indexOf(`/space/${space.slug}/gateway`) >= 0;\n const shouldOpenDemo = isPreview && isGateway;\n\n if (\n isGateway && props.node.attrs.actionCallbackValue.indexOf(\"sutra.co\") < 0 && props.node.attrs.actionCallbackValue.indexOf(\"lvh.me\") < 0\n ) {\n navigate(props.node.attrs.actionCallbackValue);\n } else {\n const url = props.node.attrs.actionCallbackValue.split(\"/\");\n const hrefDemo = `/${url[3]}/${url[4]}/demo/start`;\n if (\n props.node.attrs.actionCallbackTarget == \"_blank\" ||\n event.ctrlKey ||\n event.metaKey\n ) {\n if (shouldOpenDemo) {\n window.open(hrefDemo, \"_blank\");\n } else {\n window.open(props.node.attrs.actionCallbackValue, \"_blank\");\n }\n } else {\n if (props.node.attrs.actionCallbackValue.indexOf(\"lvh.me\") >= 0) {\n if (url[3]) {\n if (url[4] != space.slug && url[5] == \"gateway\"){\n if (shouldOpenDemo) {\n window.location.href = hrefDemo;\n } else {\n window.location.href = `/${url[3]}/${url[4]}/${url[5]}`;\n }\n }\n else{\n if (shouldOpenDemo) {\n window.location.href = hrefDemo;\n } else {\n window.location.href = `/${url[3]}/${url[4]}/${url[5]}`;\n }\n }\n } else {\n if (shouldOpenDemo) {\n window.location.assign(hrefDemo);\n } else {\n window.location = props.node.attrs.actionCallbackValue;\n }\n }\n } else {\n if (shouldOpenDemo) {\n window.location.assign(hrefDemo);\n } else {\n window.location = props.node.attrs.actionCallbackValue;\n }\n }\n }\n }\n };\n\n const onMarkAsCompleted = (event) => {\n CompletionModel.onCreate(\n space.slug,\n (data) => {\n Broadcaster.send(\n \"change_sidebarTreeNode\",\n document.getElementById(`sidebar_tree_node-${space.slug}`),\n { shouldUpdateTopTree: true }\n );\n\n dispatch(setSpace({ ...space, completed: data.completed }));\n\n if (data.completed) {\n setTimeout(() => {\n onLink(event);\n }, 500);\n }\n },\n (data) => {\n navigate(`/user/start?s=${space.slug}`);\n }\n );\n };\n\n return (\n \n {checkInteractionAndHideIfNeededReact(props.editor, props.getPos) && (\n \n
\n {props.editor && props.editor.isEditable ? (\n ({\n backgroundColor:\n props.node.attrs.isMarkComplete && completed\n ? theme.colors.green[6]\n : props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.isMarkComplete && completed ? \"#fff\" : props.node.attrs.buttonTextColor,\n border: props.node.attrs.isMarkComplete && completed ? \"none\" : `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor:\n props.node.attrs.isMarkComplete && completed\n ? theme.colors.green[7]\n : tinycolor(props.node.attrs.buttonBackgroundColor)\n .darken(5)\n .toString(),\n },\n })}\n leftIcon={\n props.node.attrs.isMarkComplete ? (\n completed ? (\n \n ) : (\n \n )\n ) : null\n }\n >\n {props.node.attrs.isMarkComplete\n ? completed\n ? `${props.node.attrs.buttonText}`\n : `${props.node.attrs.buttonText}`\n : `${props.node.attrs.buttonText}`}\n \n ) : (\n \n props.node.attrs.isMarkComplete\n ? onMarkAsCompleted(event)\n : onLink(event)\n }\n // target=\"_blank\"\n sx={(theme) => ({\n backgroundColor:\n props.node.attrs.isMarkComplete && completed\n ? theme.colors.green[6]\n : props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.isMarkComplete && completed ? \"#fff\" : props.node.attrs.buttonTextColor,\n border: props.node.attrs.isMarkComplete && completed ? \"none\" : `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor:\n props.node.attrs.isMarkComplete && completed\n ? theme.colors.green[7]\n : tinycolor(props.node.attrs.buttonBackgroundColor)\n .darken(5)\n .toString(),\n },\n })}\n leftIcon={\n props.node.attrs.isMarkComplete ? (\n completed ? (\n \n ) : (\n \n )\n ) : null\n }\n >\n {props.node.attrs.isMarkComplete\n ? completed\n ? `${props.node.attrs.buttonText}`\n : `${props.node.attrs.buttonText}`\n : `${props.node.attrs.buttonText}`}\n \n )}\n \n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport {stylesToString} from '../../../utils/StylesToString'\nimport Button from '../components/Button';\n\n\nconst ButtonNode = Node.create({\n name: 'actionbutton',\n draggable: false,\n allowGapCursor: true,\n selectable: true,\n allowGapCursor: false,\n group: \"block columnable\",\n inline: false,\n\n addAttributes() {\n return {\n text: {\n default: \"Text\",\n },\n linkTo: {\n default: \"https://sutra.co\",\n },\n idName: {\n default: \"actionbutton-node\",\n },\n isMarkComplete: {\n default: false\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'actionbutton',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['actionbutton', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n \n return ReactNodeViewRenderer(Button)\n // return ({ editor, getPos, node, HTMLAttributes, }) => {\n // const dom = document.createElement(\"section\")\n //\n // const span = document.createElement(\"div\")\n // span.classList.add(\"button-node\")\n //\n // const button = document.createElement('button');\n // const attributes = mergeAttributes(HTMLAttributes, {});\n //\n // Object.entries(attributes).forEach(([key, value]) => dom.setAttribute(key, value));\n // button.innerHTML = \"Button\"\n // span.append(button)\n // dom.append(span)\n //\n // return {\n // dom,\n // contentDOM: span,\n //\n // };\n // }\n },\n})\n\nexport default ButtonNode;\n","// import axios from 'axios';\n\nclass Interaction {\n constructor() {\n if (this instanceof Interaction) {\n throw Error('Interaction class cannot be instantiated.');\n }\n }\n\n static onCreate = async (slug, {view_id, position, wait}, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n view_id,\n position,\n wait\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/interactions.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Interaction;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Popover,\n Button,\n Group,\n ActionIcon,\n ColorSwatch,\n createStyles,\n} from \"@mantine/core\";\n\nimport { X, ChevronDown } from \"tabler-icons-react\";\n\nimport TagModel from \"../../../../models/Tag\";\nimport useTagColors from \"../../../../collections/TagColors\";\n\nconst useStyles = createStyles((theme) => ({\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n height: 20,\n paddingRight: 2,\n paddingLeft: 3,\n },\n\n removeTag: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n}));\n\nlet manualUpdate = false;\n\nexport default function TagButton(props) {\n const mount = useRef();\n const { classes, theme } = useStyles();\n const [colorPicker, setColorPicker] = useState(false);\n const [name, setName] = useState(\"\");\n const [color, setColor] = useState();\n const [tagId, setTagId] = useState(null);\n\n useEffect(() => {\n if (!props.tagId) {\n onCreate();\n }\n }, []);\n\n useEffect(() => {\n setName(props.name);\n setColor(swatches[props.color]);\n setTagId(props.tagId);\n }, [props]);\n\n useEffect(() => {\n if (tagId && mount.current && manualUpdate) {\n manualUpdate = false;\n onUpdate();\n } else {\n mount.current = true;\n }\n }, [color]);\n\n const onCreate = () => {\n TagModel.onCreate(\n props.type,\n props.messageId,\n props.spaceId,\n { name: props.name, color: 0 },\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n };\n\n const onUpdate = () => {\n TagModel.onUpdate(\n tagId,\n { name, color: swatches.indexOf(color) },\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n TagModel.onDestroy(\n tagId,\n (data) => {\n props.onDestroy(name);\n },\n (data) => {}\n );\n };\n\n const onUpdateColor = (_color) => {\n manualUpdate = true;\n setColor(_color);\n };\n\n const swatches = [\n theme.other.tagColors[0].backgroundColor,\n theme.other.tagColors[1].backgroundColor,\n theme.other.tagColors[2].backgroundColor,\n theme.other.tagColors[3].backgroundColor,\n theme.other.tagColors[4].backgroundColor,\n theme.other.tagColors[5].backgroundColor,\n theme.other.tagColors[6].backgroundColor,\n theme.other.tagColors[7].backgroundColor,\n theme.other.tagColors[8].backgroundColor,\n theme.other.tagColors[9].backgroundColor,\n theme.other.tagColors[10].backgroundColor,\n theme.other.tagColors[11].backgroundColor,\n theme.other.tagColors[12].backgroundColor,\n theme.other.tagColors[13].backgroundColor,\n ];\n\n return (\n \n onDestroy()}\n >\n \n \n setColorPicker(false)}\n styles={{\n target: {\n lineHeight: 1,\n },\n inner: {\n paddingTop: 0,\n paddingLeft: 5,\n paddingRight: 5,\n paddingBottom: 5,\n },\n }}\n target={\n ({\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].backgroundColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].hoverColor,\n },\n })}\n onClick={() => setColorPicker(!colorPicker)}\n styles={{\n rightIcon: {\n marginLeft: 2,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n label: {\n fontSize: 10,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n }}\n radius=\"xl\"\n size=\"xs\"\n rightIcon={}\n >\n {props.name}\n \n }\n width={240}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n {swatches.map((_color) => (\n {\n onUpdateColor(_color);\n }}\n style={{ cursor: \"pointer\" }}\n />\n ))}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Text, Group, Box, Select } from \"@mantine/core\";\nimport { useSelector } from \"react-redux\";\nimport Swal from \"sweetalert2\";\n\nimport { useTranslation } from \"react-i18next\";\nimport TagButton from \"./TagButton\";\n\nimport TagModel from \"../../../../models/Tag\";\n\nexport default function Tag(props) {\n const [tags, setTags] = useState([]);\n const [selectValue, setSelectValue] = useState([]);\n const [selectedTags, setSelectedTags] = useState([]);\n const { t } = useTranslation();\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n const tagsNames = props.tags.map((i) => i[\"name\"]);\n setSelectedTags(tagsNames);\n onFetch();\n }, [props]);\n\n const onFetch = () => {\n TagModel.onFetch(\n props.spaceId,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n };\n\n const onAdd = (tag) => {\n if (tag.length > 22){\n Swal.fire(\"Error\", \"Tags must be less than 22 characters\", \"error\");\n return\n }\n\n if (!tag.match(/^[a-zA-Z0-9\\s]+$/)) {\n Swal.fire(\"Error\", \"Tags can only contain letters, numbers and spaces\", \"error\");\n return\n }\n if (selectedTags.indexOf(tag) === -1) {\n setSelectedTags(selectedTags.concat(tag));\n }\n setSelectValue(\"\");\n };\n\n const onRemove = (tag) => {\n const index = selectedTags.indexOf(tag);\n if (index >= 0) {\n const newSelectedTags = [...selectedTags];\n newSelectedTags.splice(index, 1);\n setSelectedTags(newSelectedTags);\n props.onUpdatedMessage(\"delete\");\n }\n };\n\n const getIdForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].id;\n }\n }\n return null;\n };\n\n const getColorForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].color;\n }\n }\n return null;\n };\n\n const getParentTagIdForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].id;\n }\n }\n for (let i = 0; i < tags.length; i++) {\n if (tags[i].value == tag) {\n return tags[i].id;\n }\n }\n return null;\n };\n\n const Item = ({ label, ...others }) => (\n
\n \n
\n {label}\n
\n
\n
\n );\n\n return (\n \n {!space.settings.allow_members_to_create_tags && tags.length == 0 && window.$currentRole != \"manager\" && window.$currentRole != \"admin\" ? (\n ({\n // backgroundColor: theme.colors.gray[1],\n paddingTop: 10,\n paddingBottom: 10,\n paddingLeft: 15,\n paddingRight: 15,\n })} color={\"dimmed\"}>There are no tags avaiable\n ) : (\n <>\n ({\n // backgroundColor: theme.colors.gray[1],\n padding: 10,\n })}\n >\n \n `+ ${t(\"spaces.presentations.tag.createAction\")} ${query}`\n }\n data={tags}\n maxDropdownHeight={400}\n onChange={(tag) => onAdd(tag)}\n value={selectValue}\n />\n \n 0 ? 10 : 0}>\n {selectedTags.map((tag) => {\n return (\n \n );\n })}\n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Swal from \"sweetalert2\";\nimport { useTranslation } from \"react-i18next\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\nimport tinycolor from \"tinycolor2\";\nimport ReflectionModel from \"../../../../models/Reflection\";\nimport MessageModel from \"../../../../models/Message\";\nimport useActivityCounter from \"../../../../utils/ActivityCounter\";\n\nimport { setTiptapSidemenu } from \"../../../../store/app\";\n\nimport {\n Button,\n Badge,\n Box,\n Text,\n Menu,\n Popover,\n Group,\n Tooltip,\n createStyles,\n} from \"@mantine/core\";\n\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport TiptapSimple from \"../../../tiptap/components/TiptapSimple\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\nimport LikeButton from \"../../../likes/Button\";\nimport MessageLikeButton from \"../../../likes/MessageButton\";\nimport Tag from \"./Tag\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n button: {\n borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(20).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n paddingLeft: 12,\n paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n\n // '&:not(:first-of-type)': {\n // borderRadius: 0,\n // },\n //\n // '&:first-of-type': {\n // borderTopLeftRadius: theme.radius.md,\n // borderBottomLeftRadius: theme.radius.md,\n // },\n //\n // '&:last-of-type': {\n // borderTopRightRadius: theme.radius.md,\n // borderBottomRightRadius: theme.radius.md,\n // },\n },\n reflectionButton: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n fontSize: 12,\n paddingLeft: 10,\n paddingRight: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n badgeClass: {\n backgroundColor: colors.default_badge_color,\n color: colors.default_badge_text_color,\n height: 15,\n padding: \"0 8px\",\n },\n messagePanel: {\n borderRadius: 10,\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n marginBottom: 5,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0]\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n\n [`&:hover .${getRef(\"toolPanel\")}`]: {\n visibility: \"visible\",\n },\n },\n messagePanelEditable: {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n messagePanelNotActive: {\n borderRadius: 10,\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n marginBottom: 5,\n },\n messageTagging: {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n [`.${getRef(\"toolPanel\")}`]: {\n visibility: \"visible\",\n },\n },\n toolPanel: {\n ref: getRef(\"toolPanel\"),\n visibility: \"hidden\",\n backgroundColor: colors.background_color,\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n borderRadius: theme.radius.md,\n },\n\n toolPanelTaggingNotActive: {\n visibility: \"hidden\",\n },\n username: {\n color: `${colors.default_text_color} !important`,\n },\n dateStamp: {\n color: !isSpaceThemed(colors)\n ? theme.colors.gray[5]\n : isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n footerElements: {\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n },\n\n footerButtons: {\n fontSize: 14,\n },\n}));\n\nexport default function Message(props) {\n const { t } = useTranslation();\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const [editable, setEditable] = useState(false);\n const [tag, setTag] = useState(false);\n const [likesCount, setLikesCount] = useState(0);\n const [liked, setLiked] = useState(false);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n const { language, setLangUser } = useLangUser();\n\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n const [reflections, setReflections] = useState(null);\n\n const { activityCount } = useActivityCounter([\"reflection\"], [props.messageId], [\"pod_message\"], [props.messageId]);\n\n const loaded = useRef();\n\n useEffect(() => {\n if (props.tagging == props.messageId) {\n setTag(true);\n } else {\n setTag(false);\n }\n if (!loaded.current) {\n loaded.current = true;\n setLikesCount(props.likesCount);\n setLiked(props.isLiked);\n }\n }, [props]);\n\n useEffect(() => {\n if (inView && !reflections) {\n onFetchReflections();\n }\n }, [inView]);\n\n const onFetchReflections = () => {\n ReflectionModel.onFetchUnread(\n props.messageId,\n null,\n (data) => {\n setReflections({ ...data.reflections });\n },\n (data) => {}\n );\n };\n\n const onTag = (tags) => {\n // if (props.type == \"pod_message\"){\n // MessageModel.onUpdate(props.messageId, tags, (data) => {}, (data) => {});\n // }\n // else{\n // ReflectionModel.onUpdate(props.messageId, tags, (data) => {}, (data) => {});\n // }\n };\n\n const onSave = (json, html) => {\n if (props.type == \"pod_message\") {\n MessageModel.onUpdate(\n props.messageId,\n { json, html },\n (data) => {\n onUpdated();\n setTimeout(() => {\n setEditable(false);\n }, 500);\n },\n (data) => {}\n );\n } else {\n ReflectionModel.onUpdate(\n props.messageId,\n { json, html },\n (data) => {\n onUpdated();\n setTimeout(() => {\n setEditable(false);\n }, 500);\n },\n (data) => {}\n );\n }\n };\n\n const onMakePublic = () => {\n\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This message will be visible to all the members\",\n showDenyButton: true,\n confirmButtonText: \"Yes, make public\",\n denyButtonText: \"No\",\n confirmButtonColor: \"#ff0000\",\n denyButtonColor: \"#666\",\n }).then((result) => {\n if (result.isConfirmed) {\n MessageModel.onMakePublic(\n props.messageId,\n (data) => {\n onUpdated();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onMakePrivate = () => {\n MessageModel.onMakePrivate(\n props.messageId,\n (data) => {\n onUpdated();\n },\n (data) => {}\n );\n };\n\n const onUpdated = () => {\n if (props.type == \"pod_message\") {\n props.onUpdated(props.messageId);\n } else {\n props.onUpdated(props.parentId);\n }\n };\n\n const onDestroy = (json) => {\n Swal.fire({\n title: t(\"spaces.presentations.discussion.delete.title\"),\n html: t(\"spaces.presentations.discussion.delete.message\"),\n showDenyButton: true,\n confirmButtonText: t(\n \"spaces.presentations.discussion.delete.confirmButton\"\n ),\n denyButtonText: t(\"spaces.presentations.discussion.delete.cancelButton\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onDestroyConfirmation(json);\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDestroyConfirmation = (json) => {\n if (props.type == \"pod_message\") {\n MessageModel.onDestroy(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n } else {\n ReflectionModel.onDestroy(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n }\n };\n\n const onPinMessage = () => {\n if (props.type == \"pod_message\") {\n MessageModel.onPinMessage(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n }\n };\n\n const onCloseTags = () => {\n setTag(false);\n // onUpdated()\n };\n\n const onCopy = () => {\n Swal.fire(\"Done\", \"Text copied to clipboard\", \"success\");\n };\n\n const onTagFilter = (tag) => {\n navigate(`/space/${props.spaceId}/${props.spaceVersion}?tag=${tag.name}`);\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const openProfile = () => {\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: props.user.username })\n );\n };\n\n const onLike = (liked) => {\n let newCount = liked ? likesCount + 1 : likesCount - 1;\n if (newCount < 0) {\n newCount = 0;\n }\n setLikesCount(newCount);\n setLiked(liked);\n };\n\n const onMessageClick = () => {\n if (\n window.$isTouchDevice &&\n window.$isTouchDevice() &&\n !props.inReflections\n ) {\n props.onOpenReflections(props.messageId);\n }\n };\n\n return (\n \n \n {!props.hideUser && (\n \n openProfile()}\n radius=\"xl\"\n size={45}\n mt={7}\n src={\n props.user && props.user.avatar && props.user.avatar.url\n ? props.user.avatar.url\n : DefaultAvatar\n }\n />\n \n )}\n \n \n \n {!props.hideUser && (\n openProfile()}\n size=\"md\"\n weight=\"700\"\n pb={2}\n sx={{ lineHeight: 1.2, cursor: \"pointer\" }}\n >\n {props.user.full_name}\n \n )}\n {!props.hideDate && (\n \n {new Date(props.messageCreatedAt).getYear() ==\n new Date().getYear()\n ? `${DateTime.fromISO(props.messageCreatedAt)\n .setLocale(language)\n .toFormat(\"MMM d, h:mm a\")}`\n : `${DateTime.fromISO(props.messageCreatedAt)\n .setLocale(language)\n .toFormat(\"MMM d y, h:mm a\")}`}\n \n )}\n \n {!(window.$isTouchDevice && window.$isTouchDevice()) &&\n !props.hideActions && (\n \n {props.context == \"tagFeed\" ? (\n \n \n }\n onClick={() => props.onOpenReflections(props.messageId)}\n >\n {t(\"spaces.presentations.message.expand\")}\n \n \n ) : (\n \n {props.canLike && (\n \n )}\n\n {props.canReflect ? (\n \n }\n onClick={() =>\n props.onOpenReflections(props.messageId)\n }\n >\n {t(\"spaces.presentations.message.reply\")}\n \n ) : (\n \"\"\n )}\n {props.canTag ? (\n {\n onCloseTags();\n props.setTagging(0);\n }}\n withCloseButton\n title={t(\"spaces.presentations.message.addTags\")}\n closeButtonLabel=\"Close popover\"\n closeOnClickOutside={false}\n styles={{\n inner: {\n padding: 0,\n },\n }}\n target={\n {\n setTag(!tag);\n props.setTagging(props.messageId);\n }}\n variant=\"subtle\"\n leftIcon={}\n >\n {t(\"spaces.presentations.message.tag\")}\n \n }\n width={320}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n \n ) : (\n \"\"\n )}\n {props.canEdit || props.canDelete || props.canPin ? (\n \n \n \n \n }\n >\n onPinMessage()}>\n onCopyLink()}\n text={props.text}\n >\n \n {t(\n \"spaces.presentations.message.copyToClipboard\"\n )}\n \n \n \n\n {props.canPin && (\n onPinMessage()}>\n {props.isPinned\n ? \"Unpin message\"\n : t(\n \"spaces.presentations.message.pinMessageAction\"\n )}\n \n )}\n {props.canEdit && (\n setEditable(true)}>\n {t(\"spaces.presentations.message.editMessage\")}\n \n )}\n {props.canDelete && (\n onDestroy()}>\n {t(\n \"spaces.presentations.message.deleteMessage\"\n )}\n \n )}\n {props.canSetPrivate && !props.isPrivate && (\n onMakePrivate()}>\n {t(\"spaces.presentations.message.makePrivate\")}\n \n )}\n \n \n ) : (\n \n )}\n \n )}\n \n )}\n \n onMessageClick()} mt={-5}>\n \n {props.version == \"new\" ? (\n
\n {editable == true ? (\n \n ) : (\n \n )}\n
\n ) : (\n \n )}\n\n {props.tags && !props.hideTags && (\n \n {props.tags.map((tag) => {\n return (\n ({\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n color: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].textColor\n : \"black\",\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n onClick={() => onTagFilter(tag)}\n >\n {tag.name}\n \n );\n })}\n \n )}\n {props.canSetOpen && (\n \n \n ({\n backgroundColor:\n theme.other.tagColors[13].backgroundColor,\n color: theme.other.tagColors[13].textColor,\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[13].hoverColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n paddingLeft: 10,\n paddingRight: 10,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n leftIcon={}\n onClick={() => onMakePublic()}\n >\n Private\n \n \n \n )}\n {/* {props.isManager && props.isPrivate && (\n \n \n ({\n backgroundColor:\n theme.other.tagColors[13].backgroundColor,\n color: theme.other.tagColors[13].textColor,\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[13].hoverColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n paddingLeft: 10,\n paddingRight: 10,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n leftIcon={}\n >\n Private\n \n \n \n )} */}\n \n {props.reflections.length > 0 ? (\n props.onOpenReflections(props.messageId)}\n >\n {t(\"spaces.presentations.message.viewReplies1\")}{\" \"}\n {props.reflections.length}{\" \"}\n {props.reflections.length > 1\n ? t(\"spaces.presentations.message.viewReplies2plural\")\n : t(\"spaces.presentations.message.viewReplies2single\")}\n {reflections && (reflections.unread > 0 || activityCount > 0) ? (\n \n {reflections.unread || activityCount}\n \n ) : (\n \"\"\n )}\n \n ) : (\n \"\"\n )}\n {likesCount > 0 &&\n (!(window.$isTouchDevice && window.$isTouchDevice()) ||\n !props.mobileActions) && (\n 0 ? 0 : 16}>\n \n \n )}\n \n
\n
\n {props.mobileActions && (\n \n {window.$isTouchDevice && window.$isTouchDevice() && (\n \n 0 ? 0 : 16}>\n \n \n \n {props.canLike && (\n \n )}\n\n {props.canTag ? (\n {\n onCloseTags();\n props.setTagging(0);\n }}\n withCloseButton\n title={t(\"spaces.presentations.message.addTags\")}\n closeButtonLabel=\"Close popover\"\n closeOnClickOutside={false}\n styles={{\n inner: {\n padding: 0,\n },\n }}\n target={\n {\n setTag(!tag);\n props.setTagging(props.messageId);\n }}\n variant=\"subtle\"\n leftIcon={}\n >\n {t(\"spaces.presentations.message.tag\")}\n \n }\n width={320}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n \n ) : (\n \"\"\n )}\n {props.canEdit || props.canDelete || props.canPin ? (\n \n \n \n \n }\n >\n onPinMessage()}>\n onCopyLink()}\n text={props.text}\n >\n \n {t(\n \"spaces.presentations.message.copyToClipboard\"\n )}\n \n \n \n\n {props.canPin && (\n onPinMessage()}>\n {props.isPinned\n ? \"Unpin message\"\n : t(\n \"spaces.presentations.message.pinMessageAction\"\n )}\n \n )}\n {props.canEdit && (\n setEditable(true)}>\n {t(\"spaces.presentations.message.editMessage\")}\n \n )}\n {props.canDelete && (\n onDestroy()}>\n {t(\"spaces.presentations.message.deleteMessage\")}\n \n )}\n {props.canSetPrivate && !props.isPrivate && (\n onMakePrivate()}>\n {t(\"spaces.presentations.message.makePrivate\")}\n \n )}\n \n \n ) : (\n \n )}\n \n \n )}\n \n )}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Swal from \"sweetalert2\";\nimport { useTranslation } from \"react-i18next\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\nimport tinycolor from \"tinycolor2\";\nimport ReflectionModel from \"../../../../models/Reflection\";\nimport MessageModel from \"../../../../models/Message\";\n\nimport { setTiptapSidemenu } from \"../../../../store/app\";\n\nimport {\n Button,\n Badge,\n Box,\n Text,\n Menu,\n Popover,\n Group,\n Stack,\n Tooltip,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport TiptapSimple from \"../../../tiptap/components/TiptapSimple\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\nimport LikeButton from \"../../../likes/Button\";\nimport MessageLikeButton from \"../../../likes/MessageButton\";\nimport Tag from \"./Tag\";\n\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nimport { Swiper, SwiperSlide, useSwiper } from \"swiper/react\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n button: {\n borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(20).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n paddingLeft: 12,\n paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n button2: {\n borderRadius: theme.radius.xl,\n color: tinycolor(colors.secondary_button_text_color).lighten(20).toString(),\n backgroundColor: colors.secondary_button_background_color,\n // border: '1px solid red',\n paddingLeft: 12,\n paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.secondary_button_background_color)\n .lighten(3)\n .toString(),\n },\n },\n reflectionButton: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n fontSize: 12,\n paddingLeft: 10,\n paddingRight: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n badgeClass: {\n backgroundColor: colors.default_badge_color,\n color: colors.default_badge_text_color,\n height: 15,\n padding: \"0 8px\",\n },\n messagePanel: {\n height: \"270px\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n borderRadius: 10,\n padding: \"20px !important\",\n // margin: \"0px 20px\",\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(1).toString()\n : tinycolor(colors.background_color).darken(1).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(2).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n cursor: \"pointer\",\n textDecoration: \"none\",\n },\n },\n messagePanelEditable: {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n messagePanelNotActive: {\n borderRadius: 10,\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n marginBottom: 5,\n },\n messageTagging: {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[0]\n : tinycolor(colors.background_color).lighten(3).toString(),\n [`.${getRef(\"toolPanel\")}`]: {\n visibility: \"visible\",\n },\n },\n toolPanel: {\n ref: getRef(\"toolPanel\"),\n visibility: \"hidden\",\n backgroundColor: colors.background_color,\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n borderRadius: theme.radius.md,\n },\n\n toolPanelTaggingNotActive: {\n visibility: \"hidden\",\n },\n username: {\n color: `${colors.default_text_color} !important`,\n },\n dateStamp: {\n color: !isSpaceThemed(colors)\n ? theme.colors.gray[5]\n : isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n footerElements: {\n color: isDark(colors.default_text_color)\n ? tinycolor(colors.default_text_color).lighten(30).toString()\n : tinycolor(colors.default_text_color).darken(30).toString(),\n },\n\n footerButtons: {\n fontSize: 14,\n },\n}));\n\nexport default function Message(props) {\n const swiper = useSwiper();\n\n const { t } = useTranslation();\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const [editable, setEditable] = useState(false);\n const [tag, setTag] = useState(false);\n const [likesCount, setLikesCount] = useState(0);\n const [liked, setLiked] = useState(false);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n const { language, setLangUser } = useLangUser();\n\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n const [reflections, setReflections] = useState(null);\n\n const loaded = useRef();\n\n const mediumScreen = useMediaQuery(\n `(min-width: ${theme.other.breakpoints.md}px)`\n );\n\n useEffect(() => {\n if (props.tagging == props.messageId) {\n setTag(true);\n } else {\n setTag(false);\n }\n if (!loaded.current) {\n loaded.current = true;\n setLikesCount(props.likesCount);\n setLiked(props.isLiked);\n }\n }, [props]);\n\n useEffect(() => {\n if (inView && !reflections) {\n onFetchReflections();\n onHighlightEvent();\n }\n }, [inView]);\n\n const onFetchReflections = () => {\n ReflectionModel.onFetchUnread(\n props.messageId,\n null,\n (data) => {\n setReflections({ ...data.reflections });\n },\n (data) => {}\n );\n };\n\n const onHighlightEvent = () => {\n if (props.currentSlideActive) {\n return;\n }\n MessageModel.onHighlightEvent(\n props.spaceId,\n props.messageId,\n (data) => {},\n (data) => {}\n );\n };\n\n const onTag = (tags) => {\n // if (props.type == \"pod_message\"){\n // MessageModel.onUpdate(props.messageId, tags, (data) => {}, (data) => {});\n // }\n // else{\n // ReflectionModel.onUpdate(props.messageId, tags, (data) => {}, (data) => {});\n // }\n };\n\n const onSave = (json, html) => {\n if (props.type == \"pod_message\") {\n MessageModel.onUpdate(\n props.messageId,\n { json, html },\n (data) => {\n onUpdated();\n setTimeout(() => {\n setEditable(false);\n }, 500);\n },\n (data) => {}\n );\n } else {\n ReflectionModel.onUpdate(\n props.messageId,\n { json, html },\n (data) => {\n onUpdated();\n setTimeout(() => {\n setEditable(false);\n }, 500);\n },\n (data) => {}\n );\n }\n };\n\n const onMakePublic = () => {\n MessageModel.onMakePublic(\n props.messageId,\n (data) => {\n onUpdated();\n },\n (data) => {}\n );\n };\n\n const onMakePrivate = () => {\n MessageModel.onMakePrivate(\n props.messageId,\n (data) => {\n onUpdated();\n },\n (data) => {}\n );\n };\n\n const onUpdated = () => {\n if (props.type == \"pod_message\") {\n props.onUpdated(props.messageId);\n } else {\n props.onUpdated(props.parentId);\n }\n };\n\n const onDestroy = (json) => {\n Swal.fire({\n title: t(\"spaces.presentations.discussion.delete.title\"),\n html: t(\"spaces.presentations.discussion.delete.message\"),\n showDenyButton: true,\n confirmButtonText: t(\n \"spaces.presentations.discussion.delete.confirmButton\"\n ),\n denyButtonText: t(\"spaces.presentations.discussion.delete.cancelButton\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onDestroyConfirmation(json);\n } else if (result.isDenied) {\n }\n });\n };\n\n const onDestroyConfirmation = (json) => {\n if (props.type == \"pod_message\") {\n MessageModel.onDestroy(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n } else {\n ReflectionModel.onDestroy(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n }\n };\n\n const onPinMessage = () => {\n if (props.type == \"pod_message\") {\n MessageModel.onPinMessage(\n props.messageId,\n (data) => {},\n (data) => {}\n );\n }\n };\n\n const onCloseTags = () => {\n setTag(false);\n // onUpdated()\n };\n\n const onCopy = () => {\n Swal.fire(\"Done\", \"Text copied to clipboard\", \"success\");\n };\n\n const onTagFilter = (tag) => {\n navigate(`/space/${props.spaceId}/${props.spaceVersion}?tag=${tag.name}`);\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const openProfile = () => {\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: props.user.username })\n );\n };\n\n const onLike = (liked) => {\n let newCount = liked ? likesCount + 1 : likesCount - 1;\n if (newCount < 0) {\n newCount = 0;\n }\n setLikesCount(newCount);\n setLiked(liked);\n // debugger\n swiper.slideNext();\n };\n\n const onMessageClick = () => {\n if (\n window.$isTouchDevice &&\n window.$isTouchDevice() &&\n !props.inReflections\n ) {\n props.onOpenReflections(props.messageId);\n }\n };\n\n return (\n <>\n \n {props.user.username != \"sutrabot\" ? (\n <>\n \n openProfile(event)}\n radius=\"xl\"\n size={40}\n key={`member-avatar-${new Date()}`}\n src={\n props.user && props.user.avatar && props.user.avatar.url\n ? props.user.avatar.url\n : DefaultAvatar\n }\n component=\"span\"\n />\n \n openProfile(event)}\n className={classes.abstract}\n weight={600}\n sx={{\n lineHeight: \"1\",\n }}\n mb={6}\n >\n {props.user ? props.user.full_name : \"No longer registered\"}\n \n\n \n {new Date(props.messageCreatedAt).getYear() ==\n new Date().getYear()\n ? `${DateTime.fromISO(props.messageCreatedAt)\n .setLocale(language)\n .toFormat(\"MMM d, h:mm a\")}`\n : `${DateTime.fromISO(props.messageCreatedAt)\n .setLocale(language)\n .toFormat(\"MMM d y, h:mm a\")}`}\n \n \n \n props.onOpenReflections(props.messageId)}\n >\n \n onMessageClick()}\n mt={-5}\n >\n \n {props.version == \"new\" ? (\n
\n \n
\n ) : (\n \n )}\n\n {props.tags && !props.hideTags && (\n \n {props.tags.map((tag) => {\n return (\n ({\n backgroundColor: theme.other.tagColors[\n tag.color\n ]\n ? theme.other.tagColors[tag.color]\n .backgroundColor\n : \"white\",\n color: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].textColor\n : \"black\",\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[\n tag.color\n ]\n ? theme.other.tagColors[tag.color]\n .backgroundColor\n : \"white\",\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n onClick={() => onTagFilter(tag)}\n >\n {tag.name}\n \n );\n })}\n \n )}\n {props.isPrivate && (\n \n \n ({\n backgroundColor:\n theme.other.tagColors[13].backgroundColor,\n color: theme.other.tagColors[13].textColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[13].hoverColor,\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n paddingLeft: 10,\n paddingRight: 10,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n leftIcon={\n \n }\n >\n Private\n \n \n \n )}\n \n {props.reflections.length > 0 ? (\n \n props.onOpenReflections(props.messageId)\n }\n >\n {t(\"spaces.presentations.message.viewReplies1\")}{\" \"}\n {props.reflections.length}{\" \"}\n {props.reflections.length > 1\n ? t(\n \"spaces.presentations.message.viewReplies2plural\"\n )\n : t(\n \"spaces.presentations.message.viewReplies2single\"\n )}\n {reflections && reflections.unread > 0 ? (\n \n {reflections.unread}\n \n ) : (\n \"\"\n )}\n \n ) : (\n \"\"\n )}\n \n
\n \n {props.mobileActions && (\n \n {window.$isTouchDevice && window.$isTouchDevice() && (\n \n 0 ? 0 : 16}>\n \n \n \n {props.canLike && (\n \n )}\n\n {props.canTag ? (\n {\n onCloseTags();\n props.setTagging(0);\n }}\n withCloseButton\n title={t(\"spaces.presentations.message.addTags\")}\n closeButtonLabel=\"Close popover\"\n closeOnClickOutside={false}\n styles={{\n inner: {\n padding: 0,\n },\n }}\n target={\n {\n setTag(!tag);\n props.setTagging(props.messageId);\n }}\n variant=\"subtle\"\n leftIcon={\n \n }\n >\n {t(\"spaces.presentations.message.tag\")}\n \n }\n width={320}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n \n ) : (\n \"\"\n )}\n {props.canEdit || props.canDelete || props.canPin ? (\n \n \n \n \n }\n >\n onPinMessage()}>\n onCopyLink()}\n text={props.text}\n >\n \n {t(\n \"spaces.presentations.message.copyToClipboard\"\n )}\n \n \n \n\n {props.canPin && (\n onPinMessage()}>\n {props.isPinned\n ? \"Unpin message\"\n : t(\n \"spaces.presentations.message.pinMessageAction\"\n )}\n \n )}\n {props.canEdit && (\n setEditable(true)}>\n {t(\n \"spaces.presentations.message.editMessage\"\n )}\n \n )}\n {props.canDelete && (\n onDestroy()}>\n {t(\n \"spaces.presentations.message.deleteMessage\"\n )}\n \n )}\n {props.canSetPrivate && !props.isPrivate && (\n onMakePrivate()}>\n {t(\n \"spaces.presentations.message.makePrivate\"\n )}\n \n )}\n \n \n ) : (\n \n )}\n \n \n )}\n \n )}\n \n \n \n ) : (\n \n \n {props.text}\n \n \n )}\n \n {props.currentSlideActive && (\n \n {mediumScreen && (\n <>\n {props.highlightIndex > 0 ? (\n swiper.slidePrev()}\n mt={12}\n >\n \n \n ) : (\n \n )}\n \n )}\n \n {props.canLike && (\n \n )}\n\n {props.canReflect && (\n }\n onClick={() => props.onOpenReflections(props.messageId)}\n >\n {t(\"spaces.presentations.message.reply\")}\n \n )}\n {mediumScreen && (\n <>\n {!props.isLastIndex ? (\n }\n onClick={() =>\n props.isLastIndex ? swiper.slideTo(0) : swiper.slideNext()\n }\n >\n {\"More\"}\n \n ) : (\n \n )}\n \n )}\n \n {mediumScreen && (\n <>\n {!props.isLastIndex ? (\n swiper.slideNext()}\n mt={12}\n >\n \n \n ) : (\n \n )}\n \n )}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {useNavigate} from \"react-router-dom\"\nimport { useSelector } from \"react-redux\";\n\nimport TiptapSimple from \"../../../tiptap/components/TiptapSimple\";\nimport Message from \"./Message\";\nimport ReflectionModel from \"../../../../models/Reflection\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport tinycolor from \"tinycolor2\";\n\nimport { Stack, ScrollArea, Divider, createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n dividerStyle: {\n marginTop: 10,\n marginBottom: 10,\n borderTop: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(10).toString()\n : colors.sidebar_background_color\n }`,\n },\n}));\n\nexport default function Reflections(props) {\n const viewport = useRef();\n const navigate = useNavigate()\n\n const [tagging, setTagging] = useState(0);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n if (\n props.message &&\n props.message.reflections &&\n !props.message.reflectionId\n ) {\n // scrollToBottom();\n } else if (\n props.message &&\n props.message.reflections &&\n props.message.reflectionId\n ) {\n scrollToReflection(props.message.reflectionId);\n }\n }, [props]);\n\n const onSave = (json, html) => {\n\n if (!window.$currentUserAuthToken) {\n\n localStorage.setItem(\"join_slug\", props.spaceId);\n navigate(`/user/start?s=${props.spaceId}`);\n return;\n }\n\n json.attrs = { uid: `reflection-${new Date().getTime()}` };\n ReflectionModel.onCreate(\n props.message.id,\n { json, html },\n (data) => {\n if (props.useReflectCallback) {\n props.onUpdatedMessage(props.message.id);\n }\n },\n (data) => {}\n );\n };\n\n const scrollToBottom = () => {\n setTimeout(() => {\n if (!viewport.current) {\n return;\n }\n const top = viewport.current.scrollHeight;\n viewport.current.scrollTo({ top: top, behavior: \"smooth\" });\n }, 500);\n };\n\n const scrollToReflection = (reflectionId) => {\n setTimeout(() => {\n if (!viewport.current) {\n return;\n }\n\n const $scrollTo = document.getElementById(`reflection_${reflectionId}`);\n\n if (!$scrollTo) {\n return;\n }\n\n const top =\n $scrollTo.offsetTop -\n viewport.current.offsetTop +\n viewport.current.scrollTop +\n 80;\n\n viewport.current.scrollTo({ top: top, behavior: \"smooth\" });\n }, 500);\n };\n\n return (\n ({\n height: \"100%\",\n })}\n >\n \n {props.message ? (\n \n ) : (\n \"\"\n )}\n \n {props.message && props.message.reflections\n ? props.message.reflections.map((reflection) => {\n return (\n \n );\n })\n : \"\"}\n \n {props.canReflect && (\n
\n \n
\n )}\n \n );\n}\n","// import axios from 'axios';\n\nclass EngagementFunction {\n constructor() {\n if (this instanceof EngagementFunction) {\n throw Error('EngagementFunction class cannot be instantiated.');\n }\n }\n\n static onFetch = async (functions_type, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n functions_type\n }\n\n await window.$api.get(`/api/v4/engagement_functions.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onMigrate = async (space_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n space_id\n }\n\n await window.$api.post(`/api/v4/engagement_functions/migrate.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n}\n\nexport default EngagementFunction;\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\nimport Swal from \"sweetalert2\";\nimport { useDisclosure } from \"@mantine/hooks\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport InteractionModel from \"../../../models/Interaction\";\nimport SpaceModel from \"../../../models/Space\";\nimport MediaFileModel from \"../../../models/MediaFile\";\nimport MessageModel from \"../../../models/Message\";\nimport Message from \"../../spaces_neo/presentations/discussion/Message\";\nimport Highlight from \"../../spaces_neo/presentations/discussion/HighlightCard\";\nimport Reflections from \"../../spaces_neo/presentations/discussion/Reflections\";\nimport TiptapInline from \"./TiptapInline\";\n\nimport NotificationModel from \"../../../../models/NotificationModel\";\n\nimport { storeJSON } from \"../../../utils/LocalDB\";\n\nimport { setCookie, getCookie } from \"../../../utils/Cookies\";\n\nimport { select as d3Select } from \"d3\";\nimport cloud from \"d3-cloud\";\nimport showdown from \"showdown\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\nimport { colors as swalColors } from '../../../collections/colors';\nimport { useDebounce } from \"../../hooks/useDebounce\";\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\n\nimport {\n Button,\n createStyles,\n Box,\n ScrollArea,\n Drawer,\n Text,\n Group,\n Tabs,\n Stack,\n Title,\n Accordion,\n Textarea,\n TextInput,\n Select,\n Menu,\n ActionIcon,\n Badge\n} from \"@mantine/core\";\n\nimport {\n closestInteraction,\n closestBlockingInteraction,\n showNextInteraction,\n beginningOfContextForInteraction,\n} from \"../utils/selection\";\n\nimport tinycolor from \"tinycolor2\";\nimport isDark from \"../../../utils/IsDarkColor\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useActivityCounter from \"../../../utils/ActivityCounter\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { Swiper, SwiperSlide, useSwiper } from \"swiper/react\";\nimport { Pagination, Navigation } from \"swiper/modules\";\n\nimport FunctionModel from \"../../../models/EngagementFunction\";\n// import \"swiper/css\";\n// import \"swiper/css/pagination\";\n// import \"swiper/css/navigation\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n drawer: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n buttonStyle: {\n backgroundColor: props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(props.node.attrs.buttonBackgroundColor)\n .darken(5)\n .toString(),\n },\n },\n button1: {\n borderRadius: theme.radius.xl,\n color: tinycolor(colors.primary_button_text_color).lighten(20).toString(),\n backgroundColor: colors.primary_button_background_color,\n // border: '1px solid red',\n paddingLeft: 36,\n paddingRight: 40,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .lighten(3)\n .toString(),\n },\n },\n button2: {\n borderRadius: theme.radius.xl,\n color: tinycolor(colors.secondary_button_text_color).lighten(20).toString(),\n backgroundColor: colors.secondary_button_background_color,\n // border: '1px solid red',\n paddingLeft: 12,\n paddingRight: 12,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.secondary_button_background_color)\n .lighten(3)\n .toString(),\n },\n },\n badgeClass: {\n backgroundColor: colors.default_badge_color,\n color: colors.default_badge_text_color,\n height: 20,\n padding: \"0 4px\",\n },\n}));\n\nexport default function InteractiveInput(props) {\n const cable = useContext(ActionCableContext);\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors, props });\n const { t } = useTranslation();\n\n const [space, setSpace] = useState(null);\n const [messages, setMessages] = useState([]);\n const [interacted, setInteracted] = useState(false);\n const [tagging, setTagging] = useState(0);\n const [showAll, setShowAll] = useState(false);\n const [showMessages, setShowMessages] = useState(false);\n const [showPrivate, setShowPrivate] = useState(true);\n const [aiSummary, setAiSummary] = useState({});\n const [activeTab, setActiveTab] = useState(0);\n const [activeTab2, setActiveTab2] = useState(0);\n\n const [receiveData, setReceiveData] = useState(null);\n const [canLoadMore, setCanLoadMore] = useState(false);\n const [saving, setSaving] = useState(false);\n const [dummyPostsEmail, setDummyPostsEmail] = useState(\"\");\n const [dummyPostsPrompt, setDummyPostsPrompt] = useState(\"\");\n const [triggerActionsEmail, setTriggerActionsEmail] = useState(\"\");\n\n const [openedReflections, setOpenedReflections] = useState(false);\n const [selectedMessage, setSelectedMessage] = useState(null);\n const [reflectionsTagging, setReflectionsTagging] = useState(false);\n const [askPrivacy, setAskPrivacy] = useState(false);\n const [reflectionsDrawerHeader, setReflectionsDrawerHeader] = useState(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n const navigate = useNavigate();\n const params = useParams();\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n const viewport = useRef();\n\n const loaded = useRef();\n const content = useRef();\n const auxPos = useRef();\n const querySearchCount = useRef(0);\n const messagesCopy = useRef([]);\n const fixTimeout = useRef([]);\n const interaction = useRef(null);\n const blockingInteraction = useRef(null);\n const isSaving = useRef(false);\n\n const showNextInteractionAux = useRef(false);\n const carousel = useRef({});\n\n const swiperRef = useRef(null);\n\n const [currentHighlight, setCurrentHighlight] = useState(0);\n const [currentSlideIndex, setCurrentSlideIndex] = useState(0);\n const [hasOthersResponses, setHasOthersResponses] = useState(false);\n const [hasUserResponses, setHasUserResponses] = useState(false);\n const [functions, setFunctions] = useState([]);\n const [oriFunctions, setOriFunctions] = useState([]);\n const [selectedFunction, setSelectedFunction] = useState(null);\n const [selectedAction, setSelectedAction] = useState(null);\n const [opened, handlers] = useDisclosure(false);\n const [sort_by, setSortBy] = useState(\"newest\");\n\n const space_id_arr = space?.id ? [space.id] : [];\n\n const { activityCount } = useActivityCounter([\"pod_message\", \"reflection\"], [props.node.attrs.id], [\"pod_message\", \"pod\"], [props.node.attrs.id, ...space_id_arr]);\n\n const paginator = useRef({\n per: 30,\n page: 1,\n });\n\n const lastConnectionAttempt = useRef({\n slug: null,\n state: null,\n channel: null,\n });\n\n const layout = useRef();\n\n useEffect(() => {\n if (!loaded.current) {\n if (props.node.attrs.id == \"new\") {\n createIJIfNeeded();\n\n return;\n }\n const interactiveInputShowAllManager = JSON.parse(\n localStorage.getItem(`interactiveInputShowAllManager`, {})\n );\n if (interactiveInputShowAllManager) {\n const show = interactiveInputShowAllManager[props.node.attrs.uid];\n // setShowMessages(show ? true : false);\n }\n if (props.node.attrs.interactiveInputPreShowAll) {\n setShowAll(true);\n }\n\n // if (displayToTheUser() && !props.editor.isEditable && inView){\n // onFetch();\n // onFetchMessages();\n // performCableConnection();\n // }\n }\n }, [props]);\n\n useEffect(() => {\n if (props.node.attrs.id == \"new\") {\n return;\n }\n const search = window.location.search;\n const interactive_slug = new URLSearchParams(search).get(\n \"interactive_slug\"\n );\n const interactive_pop_up = new URLSearchParams(search).get(\n \"interactive_pop_up\"\n );\n \n if (\n (\n (inView || interactive_slug) &&\n !space &&\n (!loaded.current || props.node.attrs.forceUpdate) &&\n window.location.href.split(\"/\")[4] == props.node.attrs.circle_id\n ) || window.$modalSpaceOpened == props.node.attrs.circle_id\n ) {\n if (!props.editor.isEditable) {\n\n onFetch();\n onFetchMessages();\n onFetchFunctions();\n performCableConnection();\n }\n\n if (!props.editor.isEditable) {\n if (interactive_slug && interactive_slug == props.node.attrs.id) {\n scrollToMe();\n\n if (interactive_pop_up && !isInteractedWith()) {\n Swal.fire({\n title: \"Join the conversation\",\n text: \"Please respond to the following content section to see posts from other participants\",\n confirmButtonColor: swalColors.blue,\n }).then((result) => {\n \n });\n }\n\n }\n }\n } else {\n if (window.location.href.split(\"/\")[4] != props.node.attrs.circle_id) {\n createIJIfNeeded();\n }\n }\n\n const tmpShowPrivate = getCookie(`show_private_messages`);\n\n setShowPrivate(tmpShowPrivate == \"yes\" ? true : false);\n }, [inView]);\n\n useEffect(() => {\n if (\n !props.editor.isEditable &&\n inView &&\n space &&\n (window.location.href.split(\"/\")[4] == props.node.attrs.circle_id || window.$modalSpaceOpened == props.node.attrs.circle_id)\n ) {\n onFetchMessages();\n } else {\n // Check on backend if another IJ exist with same ID\n }\n }, [showAll]);\n\n useEffect(() => {\n if (!props.editor.isEditable) {\n const search = window.location.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n\n if (\n pod_message_id &&\n // openMessages().length > 0 &&\n props.node.attrs.interactiveInputShowAll\n ) {\n if (querySearchCount.current == 0) {\n if (isAdvancedEngagement()) {\n // setTimeout(() => {\n searchForMessage(pod_message_id);\n // }, 4000);\n } else {\n if (window.$spaceUserInteractions.can_manage) {\n setShowMessages(true);\n }\n setShowAll(true);\n // setTimeout(() => {\n searchForMessage(pod_message_id);\n // }, 3000);\n }\n } else {\n searchForMessage(pod_message_id);\n }\n }\n }\n }, [messages]);\n\n useEffect(() => {\n if (!loaded.current) {\n return;\n }\n\n let interactiveInputShowAllManager = JSON.parse(\n localStorage.getItem(`interactiveInputShowAllManager`, {})\n );\n if (!interactiveInputShowAllManager) {\n interactiveInputShowAllManager = {};\n }\n if (showMessages) {\n interactiveInputShowAllManager[props.node.attrs.uid] = showMessages;\n } else {\n if (interactiveInputShowAllManager[props.node.attrs.uid]) {\n delete interactiveInputShowAllManager[props.node.attrs.uid];\n }\n }\n localStorage.setItem(\n \"interactiveInputShowAllManager\",\n JSON.stringify(interactiveInputShowAllManager)\n );\n\n // const {tr} = props.editor.view.state\n // tr.setNodeMarkup(props.getPos(), undefined, {\n // ...props.node.attrs,\n // interactiveInputShowAllManager: showMessages\n // })\n // props.editor.view.dispatch(tr)\n }, [showMessages]);\n\n useEffect(() => {\n if (receiveData && !props.editor.isEditable) {\n let changes = receiveData.changes;\n if (receiveData.state != \"multi\") {\n changes = [receiveData];\n }\n\n for (var i = 0; i < changes.length; i++) {\n if (changes[i].state == \"new\") {\n onReceivedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"update\") {\n onUpdatedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"destroy\") {\n onDestroyedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"pin\") {\n onPinnedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"unpin\") {\n onPinnedMessage(null);\n }\n }\n }\n }, [receiveData]);\n\n useEffect(() => {\n if (\n aiSummary &&\n aiSummary.highlights &&\n aiSummary.highlights[currentHighlight]\n ) {\n return;\n }\n setCurrentHighlight(0);\n }, [currentHighlight]);\n\n useEffect(() => {}, [aiSummary]);\n\n useEffect(() => {\n setCookie(\"show_private_messages\", showPrivate ? \"yes\" : \"no\", 365);\n }, [showPrivate]);\n\n const draw = (words) => {\n const ele = d3Select(`#wc-canvas-${props.node.attrs.id}`)\n .append(\"svg\")\n .attr(\"width\", layout.current.size()[0])\n .attr(\"height\", layout.current.size()[1])\n .append(\"g\")\n .attr(\n \"transform\",\n \"translate(\" +\n layout.current.size()[0] / 2 +\n \",\" +\n layout.current.size()[1] / 2 +\n \")\"\n )\n .selectAll(\"text\")\n .data(words)\n .enter()\n .append(\"text\")\n .style(\"font-size\", function (d) {\n return d.size + \"px\";\n })\n .style(\"font-family\", \"Impact\")\n .style(\"fill\", function (d) {\n return randomColor();\n })\n .attr(\"text-anchor\", \"middle\")\n .attr(\"transform\", function (d) {\n return \"translate(\" + [d.x, d.y] + \")rotate(\" + d.rotate + \")\";\n })\n .text(function (d) {\n return d.text;\n });\n\n // const parentEle = ele._parents[0].parentElement;\n\n // const newParent = document.getElementById(``)\n // if (newParent){\n // newParent.appendChild(parentEle);\n // }\n };\n\n const onChangeTab = (active, tabKey) => {\n setActiveTab(active);\n setActiveTab2(0);\n if (active == 2) {\n setTimeout(() => {\n setShowMessages(true);\n setShowAll(true);\n }, 200);\n }\n };\n\n const onChangeTab2 = (active, tabKey) => {\n setActiveTab2(active);\n\n if (\n aiSummary &&\n aiSummary.wordcloud &&\n aiSummary.wordcloud.length > 0 &&\n active == 1\n ) {\n setTimeout(() => {\n const sortedWordcloud = aiSummary.wordcloud.sort(\n (a, b) => b.frequency - a.frequency\n );\n const maxValue = sortedWordcloud[0].frequency;\n const array = aiSummary.wordcloud.map(function (d) {\n const max = 85;\n const min = 15;\n\n let size = max * (d.frequency / maxValue);\n\n if (size < min) {\n size = min;\n }\n return { text: d.word, size: size };\n });\n\n const element = document.getElementById(\n `wc-canvas-${props.node.attrs.id}`\n );\n\n layout.current = cloud()\n .size([element.offsetWidth, 400])\n .words(array)\n .padding(5)\n .rotate(function () {\n return (~~(Math.random() * 6) - 3) * 30;\n })\n .font(\"Impact\")\n .fontSize(function (d) {\n return d.size;\n })\n .on(\"end\", draw)\n .spiral(\"archimedean\");\n\n layout.current.start();\n }, 100);\n }\n };\n\n const randomColor = () => {\n const pastelColors = [\n \"#9b59b6\", // Dark pastel purple\n \"#34495e\", // Dark pastel blue\n \"#16a085\", // Dark pastel green\n \"#8e44ad\", // Dark pastel violet\n \"#2c3e50\", // Dark pastel gray\n \"#27ae60\", // Dark pastel green\n \"#2980b9\", // Dark pastel blue\n \"#c0392b\", // Dark pastel red\n \"#e74c3c\", // Dark pastel pink\n \"#ecf0f1\", // Dark pastel gray\n \"#f39c12\", // Dark pastel orange\n \"#d35400\", // Dark pastel orange\n \"#bdc3c7\", // Dark pastel gray\n \"#7f8c8d\", // Dark pastel gray\n \"#1abc9c\", // Dark pastel green\n \"#3498db\", // Dark pastel blue\n \"#95a5a6\", // Dark pastel gray\n \"#e67e22\", // Dark pastel orange\n \"#e74c3c\", // Dark pastel red\n \"#bdc3c7\", // Dark pastel gray\n ];\n const randomIndex = Math.floor(Math.random() * pastelColors.length);\n return pastelColors[randomIndex];\n };\n\n const createIJIfNeeded = () => {\n // create interactive journey space, recieve new id and parent\n // update id and parent attributes\n if (!window.$currentSpaceName) {\n return;\n }\n\n if (!props.editor.isEditable) {\n return;\n }\n\n if (fixTimeout.current) {\n clearTimeout(fixTimeout.current);\n }\n\n fixTimeout.current = setTimeout(() => {\n const spaceName =\n window.$currentSpaceName < 90\n ? `${window.$currentSpaceName} prompt`\n : `${window.$currentSpaceName.slice(0, 90)}... prompt`;\n\n SpaceModel.onCreate(\n { intention: spaceName, version: \"interactive-discussion\" },\n window.$currentSlug,\n (data) => {\n const { tr } = props.editor.view.state;\n tr.setNodeMarkup(props.getPos(), undefined, {\n ...props.node.attrs,\n id: data.slug,\n circle_id: window.$currentSlug,\n });\n props.editor.view.dispatch(tr);\n\n if (!window.$spaceUserInteractions) {\n window.$spaceUserInteractions = {\n position: 9999,\n can_manage: true,\n count: 1,\n };\n }\n },\n (data) => {}\n );\n }, 3000);\n };\n\n const performCableConnection = () => {\n if (lastConnectionAttempt.current.channel) {\n // lastConnectionAttempt.current.channel.unsubscribe();\n }\n lastConnectionAttempt.current.channel = cable.subscriptions.create(\n {\n channel: \"PodsChannel\",\n pod_slug: props.node.attrs.id,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\n \"Interactive Input Channel connected: \" + props.node.attrs.id\n );\n },\n disconnected: () => {},\n received: (data) => {\n console.log(\"Interactive Input Received data: \");\n console.log(data);\n if (data.slug == props.node.attrs.id) {\n setReceiveData(data);\n return;\n }\n },\n }\n );\n };\n\n const onReceivedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n props.node.attrs.id,\n (data) => {\n let addToHighlights = false;\n if (data.user.id != window.$currentUserId) {\n if (!isManager() && !showAll) {\n return;\n }\n } else {\n addToHighlights = true;\n }\n\n let newMessages = [...messagesCopy.current];\n\n if (messagesCopy.current.length == 0) {\n messagesCopy.current = [...messages];\n newMessages = [...messagesCopy.current];\n }\n\n let exist = false;\n for (let i = 0; i < messagesCopy.current.length; i++) {\n const msg = messagesCopy.current[i];\n if (msg.id == data.id) {\n exist = true;\n break;\n }\n }\n\n if (!exist) {\n newMessages.push(data);\n messagesCopy.current.push(data);\n setMessages(newMessages);\n }\n\n if (addToHighlights) {\n let auxAiSummary = { ...aiSummary };\n auxAiSummary.highlights.unshift(data);\n setAiSummary(auxAiSummary);\n\n if (typeof swiperRef.current?.slideNext === 'function') {\n setTimeout(() => {\n swiperRef.current.slideNext();\n }, 1000)\n }\n }\n },\n (data) => {}\n );\n };\n\n const onUpdatedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n props.node.attrs.id,\n (data) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages[i] = data;\n break;\n }\n }\n\n if (selectedMessage && messageId == selectedMessage.id) {\n setSelectedMessage(data);\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n\n const auxAiSummary = { ...aiSummary };\n\n for (let i = 0; i < auxAiSummary.highlights.length; i++) {\n if (auxAiSummary.highlights[i].id == messageId) {\n auxAiSummary.highlights[i] = data;\n }\n }\n\n setAiSummary(auxAiSummary);\n },\n (data) => {}\n );\n };\n\n const onDestroyedMessage = (messageId) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages.splice(i, 1);\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n };\n\n const onPinnedMessage = (messageId) => {\n const newSpace = { ...space };\n newSpace.pin_message = messageId;\n // dispatch(setSpace(newSpace));\n };\n\n const searchForMessage = (messageId) => {\n if (querySearchCount.current > 10) {\n return;\n }\n\n querySearchCount.current++;\n\n const search = window.location.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n const reflection_id = new URLSearchParams(search).get(\"reflection_id\");\n const interactive_slug = new URLSearchParams(search).get(\n \"interactive_slug\"\n );\n\n if (pod_message_id && interactive_slug === props.node.attrs.id) {\n if (reflection_id) {\n MessageModel.onFetchById(\n messageId,\n props.node.attrs.id,\n (data) => {\n \n if (data?.pod_slug === props.node.attrs.id) {\n \n paginator.current.page = 1;\n onFetchMessages();\n \n onChangeTab(2);\n \n setSelectedMessage(data);\n setOpenedReflections(true);\n markReflectionAsSeen(messageId);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n \n setTimeout(() => {\n window.history.replaceState(null, null, location.pathname);\n }, 1000);\n }\n \n },\n (data) => {}\n );\n } else {\n paginator.current.page = 1;\n onFetchMessages();\n onChangeTab(2);\n setTimeout(() => {\n window.history.replaceState(null, null, location.pathname);\n }, 1000);\n }\n }\n };\n\n const scrollToMe = () => {\n if (props.editor.isEditable) {\n return;\n }\n\n setTimeout(() => {\n try {\n const search = window.location.search;\n const pod_message_id = new URLSearchParams(search).get(\n \"pod_message_id\"\n );\n\n let $scrollTo = document.getElementById(`${props.node.attrs.uid}`);\n\n if (!pod_message_id) {\n const firstContextNode = beginningOfContextForInteraction(\n props.editor,\n props.getPos()\n );\n\n if (firstContextNode) {\n $scrollTo = document.getElementById(\n `${firstContextNode.attrs.uid}`\n );\n\n if (!$scrollTo) {\n $scrollTo = document.querySelector(\n `[uid=\"${firstContextNode.attrs.uid}\"]`\n );\n }\n }\n }\n\n const $contentScrollViewport = document\n .getElementById(`main-scroll-area`)\n .querySelectorAll(\"div\")[0];\n\n const top =\n $scrollTo.offsetTop -\n $contentScrollViewport.offsetTop +\n $contentScrollViewport.scrollTop +\n 80;\n\n $contentScrollViewport.scrollTo({\n top: top,\n behavior: \"smooth\",\n });\n } catch (e) {}\n }, 1000);\n };\n\n const onFetch = () => {\n const ctrl = new AbortController();\n SpaceModel.onFetch(\n props.node.attrs.id,\n [\"members\"],\n (data) => {\n loaded.current = true;\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n colors: { ...data.colors },\n interactions: data.interactions ? { ...data.interactions } : false,\n });\n },\n (data) => {\n // Something went wrong\n },\n ctrl.signal\n );\n\n // MOVE\n const ctrl2 = new AbortController();\n MessageModel.onFetchAiSummary(\n props.node.attrs.id,\n (data) => {\n setAiSummary({ ...data });\n setDummyPostsPrompt(data.dummy_posts_prompt);\n },\n (data) => {\n // Something went wrong\n },\n ctrl2.signal\n );\n };\n\n const onFetchMessages = (new_sort_by) => {\n const search = window.location.search;\n const _tag = new URLSearchParams(search).get(\"tag\");\n \n let only_current_user = false\n if (isAdvancedEngagement()) {\n if (!isManager() && !props.node.attrs.interactiveInputShowAll) {\n only_current_user = true\n }\n if (!isManager() && props.node.attrs.interactiveInputShowAll) {\n only_current_user = !showAll\n }\n if (isManager()) {\n only_current_user = !showAll\n }\n } else {\n only_current_user = isManager() ? false : !showAll\n }\n\n if (_tag) {\n trackMixpanel(window.$currentUsername, \"Tag clicked\", { space_slug: props.node.attrs.id }); \n }\n\n MessageModel.onFetch(\n props.node.attrs.id,\n {\n tag: _tag,\n only_current_user: only_current_user,\n update_last_seen: displayToTheUser() && (isAdvancedEngagement() ? activeTab === 2 : true),\n sort_by: new_sort_by || sort_by\n },\n paginator.current.page,\n (data) => {\n setHasOthersResponses(data.has_others_responses);\n setHasUserResponses(data.has_user_responses);\n setCanLoadMore(paginator.current.page < data.pages);\n\n if (paginator.current.page == 1) {\n messagesCopy.current = [...data.data];\n setMessages([...data.data]);\n } else if (data.data.length > 0) {\n const auxData = data.data.concat(messagesCopy.current);\n messagesCopy.current = [...auxData];\n setMessages([...auxData]);\n }\n\n if (showNextInteractionAux.current) {\n showNextInteractionAux.current = false;\n showNextInteraction(props.editor, props.getPos());\n }\n },\n (data) => {}\n );\n };\n\n const onLoadMore = () => {\n paginator.current.page++;\n onFetchMessages();\n };\n\n const getRadius = () => {\n if (props.node.attrs.radius == \"no-radius\") {\n return \"xs\";\n } else if (props.node.attrs.radius == \"circle-radius\") {\n return \"xl\";\n } else if (props.node.attrs.radius == \"with-radius\") {\n return \"sm\";\n } else {\n return \"xs\";\n }\n };\n\n const displayToTheUser = () => {\n if (window.$spaceUserInteractions) {\n if (window.$spaceUserInteractions.can_manage) {\n auxPos.current = \"manage\";\n return true;\n }\n try {\n interaction.current = closestBlockingInteraction(\n props.editor,\n props.getPos(),\n true\n );\n \n if (interaction.current) {\n auxPos.current = interaction.current.interactivePosition;\n }\n\n if (\n interaction.current != null &&\n window.$spaceUserInteractions.position <\n interaction.current.interactivePosition\n ) {\n return false;\n } else {\n return true;\n }\n } catch (error) {\n console.log('IJ ERROR displayToTheUser:', error);\n return false;\n }\n }\n return true;\n };\n\n const isActiveToTheUser = () => {\n if (window.$spaceUserInteractions) {\n if (window.$spaceUserInteractions.can_manage) {\n return true;\n }\n try {\n interaction.current = closestInteraction(\n props.editor,\n props.getPos(),\n true\n );\n\n blockingInteraction.current = closestBlockingInteraction(\n props.editor,\n props.getPos(),\n true\n );\n\n return (\n (!interaction.current &&\n !blockingInteraction.current &&\n window.$spaceUserInteractions.position == -1) ||\n (interaction.current != null &&\n window.$spaceUserInteractions.position ==\n interaction.current.interactivePosition) ||\n (blockingInteraction.current != null &&\n window.$spaceUserInteractions.position >=\n blockingInteraction.current.interactivePosition)\n );\n } catch (error) {\n console.log('IJ ERROR isActiveToTheUser:', error);\n return false;\n }\n }\n return false;\n };\n\n const isInteractedWith = () => {\n if (window.$spaceUserInteractions) {\n if (window.$spaceUserInteractions.can_manage) {\n return true;\n }\n try {\n return (\n window.$spaceUserInteractions.position >=\n props.node.attrs.interactivePosition\n );\n } catch (error) {\n console.log('IJ ERROR isInteractedWith:', error);\n return false;\n }\n }\n return false;\n };\n\n const isManager = () => {\n return (\n window.$spaceUserInteractions && window.$spaceUserInteractions.can_manage\n );\n };\n\n const onContentUpdate = (_content, html, clearCallback, isEmpty) => {\n if (isEmpty) {\n content.current = null;\n return;\n }\n\n content.current = {\n json: _content.content,\n html: html,\n clear: clearCallback,\n };\n };\n\n const onSetAskPrivacy = () => {\n if (!content.current) {\n return;\n }\n\n setAskPrivacy(true);\n };\n\n const onSave = (privacy = \"open\") => {\n if (!content.current || isSaving.current) {\n return;\n }\n if (\n !window.$spaceUserInteractions.logged_in &&\n !window.$spaceUserInteractions.can_manage\n ) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n return;\n }\n if (props.editor && !props.editor.isEditable && !saving) {\n isSaving.current = true;\n setSaving(true);\n\n setTimeout(() => {\n if (\n !content.current.json ||\n (content.current.json[0] &&\n content.current.json[0].type == \"paragraph\" &&\n !content.current.json[0].content)\n ) {\n isSaving.current = false;\n setSaving(false);\n return;\n }\n const json = {\n attrs: {\n uid: `message-${new Date().getTime()}`,\n },\n type: \"paragraph\",\n content: content.current.json,\n };\n const html = content.current.html;\n\n MessageModel.onCreate(\n props.node.attrs.id,\n { json, html, privacy, auto_tag: props.node.attrs.autoTag },\n (data) => {\n setAskPrivacy(false);\n isSaving.current = false;\n setSaving(false);\n // onFetchMessages()\n content.current.clear();\n storeJSON(\"spaces\", `interactive-input-${props.node.attrs.id}`, {\n json: \"\",\n html: \"\",\n });\n\n content.current = null;\n\n if (window.$spaceUserInteractions.can_manage) {\n setShowMessages(true);\n setShowAll(true);\n return;\n }\n\n if (isAdvancedEngagement()) {\n if (props.node.attrs.interactiveInputShowAll) {\n setShowAll(true);\n }\n onSaveInterationOnly();\n setInteracted(true);\n onPromptResponseScroll();\n return;\n }\n\n if (!isInteractedWith()) {\n onSaveInteration();\n } else {\n if (props.node.attrs.interactiveInputShowAll) {\n setShowAll(true);\n }\n }\n },\n (data) => {\n isSaving.current = false;\n setSaving(false);\n }\n );\n }, 550);\n }\n };\n\n const isAdvancedEngagement = () => {\n return props.node.attrs.interactiveAdvancedEngagement;\n };\n\n const onSaveInterationOnly = () => {\n\n InteractionModel.onCreate(\n params.slug,\n {\n view_id: `circle-content-${params.slug}`,\n position: props.node.attrs.interactivePosition,\n },\n (data) => {\n console.log(\"onSaveInterationOnly ===> \", window.$spaceUserInteractions);\n },\n (data) => {}\n );\n };\n\n const onSaveInteration = () => {\n InteractionModel.onCreate(\n params.slug,\n {\n view_id: `circle-content-${params.slug}`,\n position: props.node.attrs.interactivePosition,\n },\n (data) => {\n window.$spaceUserInteractions = {\n count: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.count\n : 1,\n position: props.node.attrs.interactivePosition,\n logged_in: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.logged_in\n : false,\n };\n\n window.$spaceUserInteractions.position =\n props.node.attrs.interactivePosition;\n\n showNextInteractionAux.current = true;\n\n if (props.node.attrs.interactiveInputShowAll) {\n setShowAll(true);\n }\n\n showNextInteraction(props.editor, props.getPos(), false);\n\n setInteracted(false);\n setInteracted(true);\n\n if (data.auto_joined) {\n // setTimeout(() => {\n // navigate(`/space/${params.slug}?refresh=true`);\n // }, 1000);\n }\n },\n (data) => {}\n );\n };\n\n const onSkip = () => {\n if (props.editor && !props.editor.isEditable) {\n if (window.$spaceUserInteractions.can_manage) {\n return;\n }\n if (!window.$spaceUserInteractions.logged_in) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n\n return;\n }\n\n if (isAdvancedEngagement()) {\n onMoveOn();\n // setShowAll(true);\n // setInteracted(true);\n // onPromptResponseScroll();\n return;\n }\n\n InteractionModel.onCreate(\n params.slug,\n {\n view_id: `circle-content-${params.slug}`,\n position: props.node.attrs.interactivePosition,\n },\n (data) => {\n window.$spaceUserInteractions = {\n count: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.count\n : 1,\n position: props.node.attrs.interactivePosition,\n logged_in: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.logged_in\n : false,\n };\n showNextInteraction(props.editor, props.getPos());\n setInteracted(true);\n },\n (data) => {}\n );\n }\n };\n\n const onOpenReflections = (messageId) => {\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n markReflectionAsSeen(messageId);\n setSelectedMessage(messages[i]);\n return;\n }\n }\n\n if (aiSummary && aiSummary.highlights){\n for (let i = 0; i < aiSummary.highlights.length; i++) {\n if (aiSummary.highlights[i].id == messageId) {\n markReflectionAsSeen(messageId);\n setSelectedMessage(aiSummary.highlights[i]);\n return;\n }\n }\n }\n\n };\n\n const markReflectionAsSeen = (messageId) => {\n NotificationModel.onMarkAsSeen(\"reflection\", messageId, (data) => {});\n };\n\n const openMessages = () => {\n let filtered_messages = [];\n if (isManager()) {\n if (showPrivate) {\n filtered_messages = messages.filter((msg) => msg.privacy == \"open\");\n } else {\n filtered_messages = messages.filter((msg) => !msg.is_private)\n }\n } else {\n filtered_messages = messages.filter((msg) => msg.privacy == \"open\");\n }\n return filtered_messages.reverse();\n };\n\n const hasPrivateMessages = () => {\n return messages.filter((msg) => msg.is_private).length > 0;\n };\n\n const onMoveOn = () => {\n\n if (!window.$spaceUserInteractions.logged_in) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n\n return;\n }\n\n if (!isInteractedWith()) {\n onSaveInteration();\n }\n\n setTimeout(() => {\n const _pos = props.getPos();\n const node = props.node;\n const viewport = document.querySelector(\n \"#main-scroll-area .mantine-ScrollArea-viewport\"\n );\n if (viewport) {\n const node = props.editor.view.state.doc.nodeAt(_pos + 1);\n let element = document.getElementById(node.attrs.uid);\n if (!element) {\n element = document.querySelector(`[uid=\"${node.attrs.uid}\"]`);\n }\n if (element) {\n const rect = element.getBoundingClientRect();\n const scrollTop = rect.top + viewport.scrollTop - viewport.getBoundingClientRect().top;\n const top = scrollTop - 50;\n if (top > 100) {\n viewport.scrollTo({ top: top });\n }\n }\n }\n }, 1000);\n };\n\n const onPromptResponseScroll = () => {\n setTimeout(() => {\n const _pos = props.getPos();\n const node = props.node;\n const viewport = document.querySelector(\n \"#main-scroll-area .mantine-ScrollArea-viewport\"\n );\n if (viewport) {\n const node = props.editor.view.state.doc.nodeAt(_pos);\n let element = document.getElementById(node.attrs.uid);\n if (!element) {\n element = document.querySelector(`[uid=\"${node.attrs.uid}\"]`);\n }\n // viewport.scrollTo({ top: element.offsetTop });\n viewport.scrollBy(0, 130);\n }\n }, 1000);\n };\n\n const onHighlightsTrigger = () => {\n MessageModel.onAiSummaryTrigger(\n props.node.attrs.id,\n (data) => {\n alert(\"summary triggered\");\n },\n (data) => {}\n );\n };\n\n const onContextTrigger = () => {\n MessageModel.onGenerateContext(\n props.node.attrs.id,\n (data) => {\n alert(\"context triggered\");\n },\n (data) => {}\n );\n };\n\n const onTranscriptsTrigger = () => {\n const doc = props.editor.view.state.doc;\n\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (node.type.name == \"embed\") {\n const mediaFile = {\n original_url: node.attrs.src,\n url: node.attrs.src,\n upload_type: \"embed\",\n slug: window.$currentSlug,\n embed_id: node.attrs.videoId,\n apify: true,\n };\n\n MediaFileModel.onCreate(\n mediaFile,\n (data) => {\n alert(\"MEDIA FILE STORED\");\n },\n (data) => {}\n );\n }\n });\n };\n\n const onSuggestedPrompt = () => {\n MessageModel.onSuggestedPrompt(\n props.node.attrs.id,\n (data) => {\n alert(\"prompt triggered\");\n },\n (data) => {}\n );\n };\n\n const onDummyPosts = () => {\n MessageModel.onDummyPosts(\n props.node.attrs.id,\n dummyPostsEmail,\n dummyPostsPrompt,\n (data) => {\n alert(\"dummy post generated\");\n },\n (data) => {}\n );\n };\n\n const onTriggerActions = () => {\n MessageModel.onTriggerActions(\n props.node.attrs.id,\n (data) => {\n alert(`trigger action for ${triggerActionsEmail}`);\n },\n (data) => {}\n );\n };\n\n const onTriggerDispatcher = () => {\n MessageModel.onTriggerDispatcher(\n props.node.attrs.id,\n triggerActionsEmail,\n (data) => {\n alert(`trigger action for ${triggerActionsEmail}`);\n },\n (data) => {}\n );\n };\n\n const onTriggerAction = () => {\n MessageModel.onTriggerAction(\n props.node.attrs.id,\n triggerActionsEmail,\n selectedAction,\n (data) => {\n alert(`trigger action`);\n },\n (data) => {}\n );\n };\n\n const onSummaryHTML = () => {\n const converter = new showdown.Converter();\n return converter.makeHtml(aiSummary.summary);\n };\n\n const onGetMemberActions = () => {\n MessageModel.onGetMemberActions(\n props.node.attrs.id,\n triggerActionsEmail,\n (data) => {\n alert(data.actions);\n },\n (data) => {}\n );\n };\n\n const onFetchFunctions = () => {\n FunctionModel.onFetch(\n (data) => {\n setFunctions(\n data.map((item) => ({ label: item.name, value: item.slug }))\n );\n setOriFunctions(data);\n },\n (data) => {}\n );\n };\n\n const onChangeSortBy = (value) => {\n paginator.current.page = 1;\n setSortBy(value);\n onFetchMessages(value);\n };\n\n const debouncedSave = useDebounce(onSave, 500);\n\n return (\n \n {displayToTheUser() && (\n \n \n {space &&\n ((openMessages().length > 0 &&\n (!isActiveToTheUser() ||\n isInteractedWith() ||\n interacted ||\n props.node.attrs.interactiveInputPreShowAll)) ||\n isManager()) &&\n props.editor &&\n !props.editor.isEditable && (\n <>\n {isAdvancedEngagement() ? (\n <>\n \n \n {\n swiperRef.current = swiper;\n }}\n slidesPerView={\"auto\"}\n centeredSlides={true}\n navigation={{\n nextEl: \".custom-next\",\n prevEl: \".custom-prev\",\n }}\n spaceBetween={20}\n modules={[Navigation]}\n className=\"mySwiper\"\n >\n {space &&\n space.slug &&\n aiSummary.highlights &&\n aiSummary.highlights.map((message, index) => {\n return (\n \n {({ isActive }) => (\n \n )}\n \n );\n })}\n\n
\n
\n \n
\n \n \n \n {aiSummary &&\n aiSummary.summary != \"none\" &&\n aiSummary.highlights &&\n aiSummary.highlights.length > 1 ? (\n \n ) : (\n \n {\n \"We’re still waiting for a few more responses to come in before we generate a summary.\"\n }\n \n )}\n \n \n {aiSummary &&\n aiSummary.highlights &&\n aiSummary.highlights.length <= 3 && (\n \n {\n \"We’re still waiting for a few more responses to come in before we generate a wordcloud.\"\n }\n \n )}\n \n \n \n \n \n Discussion\n {activityCount > 0 && (\n \n {activityCount}\n \n )}\n \n }\n >\n \n \n {window.$currentRole == \"admin\" && (\n \n \n onTranscriptsTrigger()}\n radius=\"xl\"\n >\n {`Trigger Video Transcripts`}\n \n onContextTrigger()}\n radius=\"xl\"\n >\n {`Trigger Ai Context`}\n \n onHighlightsTrigger()}\n radius=\"xl\"\n >\n {`Trigger Ai Summary`}\n \n\n onSuggestedPrompt()}\n radius=\"xl\"\n >\n {`Trigger Suggested Prompt`}\n \n \n \n {aiSummary && (\n \n {aiSummary.prompt && (\n \n \n \n )}\n\n \n \n \n\n \n {\"Current\"}\n \n {\"Next\"}\n \n \n\n \n \n \n\n \n \n \n\n \n {JSON.stringify(aiSummary.wordcloud)}\n \n\n \n {JSON.stringify(aiSummary.highlights)}\n \n\n \n \n \n setDummyPostsPrompt(\n event.currentTarget.value\n )\n }\n >\n \n setDummyPostsEmail(\n event.currentTarget.value\n )\n }\n />\n onDummyPosts()}\n >\n {\"Create post\"}\n \n \n \n\n \n \n \n setTriggerActionsEmail(\n event.currentTarget.value\n )\n }\n />\n \n onTriggerActions()}\n >\n {\"Trigger actions\"}\n \n onGetMemberActions()}\n >\n {\"Get member actions\"}\n \n onTriggerDispatcher()}\n >\n {\"Trigger dispatcher\"}\n \n \n \n \n \n \n \n setTriggerActionsEmail(\n event.currentTarget.value\n )\n }\n />\n \n {selectedFunction && (\n \n item.slug == selectedFunction\n )[0]\n .actions.map((item) => ({\n value: item.slug,\n label: item.name,\n }))}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n />\n )}\n \n onTriggerAction()}\n >\n {\"Trigger action\"}\n \n \n \n \n \n )}\n \n \n )}\n \n {!isInteractedWith() && !isManager() && interacted && activeTab !== 2 && (\n \n \n }\n onClick={() => onMoveOn()}\n >\n {\"Next section\"}\n \n \n )}\n \n ) : (\n \n \n )}\n \n )}\n {props.editor && props.editor.isEditable ? (\n <>\n \n \n \n \n ({\n backgroundColor: props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n props.node.attrs.buttonBackgroundColor\n )\n .darken(5)\n .toString(),\n },\n })}\n >\n {`${props.node.attrs.buttonText}`}\n \n {props.node.attrs.interactiveInputAllowSkip && (\n ({\n backgroundColor:\n colors.secondary_button_background_color,\n color: props.node.attrs.secondary_button_text_color,\n border: `1px solid ${colors.secondary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n colors.secondary_button_background_color\n )\n .darken(5)\n .toString(),\n },\n })}\n >\n {`Skip`}\n \n )}\n \n {`Prompt ${props.node.attrs.id}`}\n \n \n ) : (isActiveToTheUser() && !isInteractedWith() && !interacted) ||\n (displayToTheUser() && openMessages().length == 0 && props.node.attrs.interactiveInputAllowMultipost) ||\n (displayToTheUser() && openMessages().length == 0 && !props.node.attrs.isBlocking) ||\n (displayToTheUser() && openMessages().length == 0 && isInteractedWith()) ||\n props.node.attrs.interactiveInputAllowMultipost ||\n isManager() ? (\n <>\n \n {!askPrivacy ? (\n <>\n onSetAskPrivacy()\n : () => debouncedSave()\n }\n saveButtonText={props.node.attrs.buttonText}\n />\n\n {props.node.attrs.interactiveInputAllowSkip && !isInteractedWith() && (\n onSkip()}\n radius={getRadius()}\n sx={(theme) => ({\n backgroundColor:\n colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n border: `1px solid ${colors.secondary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n colors.secondary_button_background_color\n )\n .darken(5)\n .toString(),\n },\n })}\n >\n {`Skip`}\n \n )}\n \n ) : (\n <>\n \n \n {t(\"tiptap.components.interactiveInput.text\")}\n \n debouncedSave(\"open\")}\n radius={getRadius()}\n sx={(theme) => ({\n backgroundColor:\n props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n props.node.attrs.buttonBackgroundColor\n )\n .darken(5)\n .toString(),\n },\n })}\n >{`Yes`}\n debouncedSave(\"private\")}\n radius={getRadius()}\n sx={(theme) => ({\n backgroundColor:\n colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n border: `1px solid ${colors.secondary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n colors.secondary_button_background_color\n )\n .darken(5)\n .toString(),\n },\n })}\n >{`No`}\n \n \n )}\n \n ) : (\n <>\n )}\n\n {space && (((isInteractedWith() || interacted || props.node.attrs.interactiveInputPreShowAll)) || isManager()) && props.editor && !props.editor.isEditable && (\n <>\n {(activeTab === 2 || !isAdvancedEngagement()) && (\n \n <>\n \n {(hasUserResponses || hasOthersResponses) && (showMessages || !isManager()) && (\n <>\n {showAll && (\n \n ({\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString()\n },\n })}\n onClick={(event) => {\n if (opened) {\n handlers.close();\n } else {\n handlers.open();\n }\n }}\n >\n \n Sort by:\n {sort_by}\n \n \n \n }\n >\n onChangeSortBy(\"newest\")}>\n Newest\n \n {isAdvancedEngagement() && (\n onChangeSortBy(\"highlighted\")}>\n Highlighted\n \n )}\n onChangeSortBy(\"most liked\")}>\n Most Liked\n \n \n \n )}\n {hasOthersResponses && props.node.attrs.interactiveInputShowAll && (\n ({\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString(),\n },\n })}\n onClick={(event) => setShowAll(prevState => !prevState)}\n >\n {t(`tiptap.components.interactiveInput.${showAll ? \"showResponses\" : \"hideResponses\"}`)}\n \n )}\n \n )}\n\n {isManager() && (showMessages || showAll) && hasPrivateMessages() && (\n ({\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString()\n }\n })}\n onClick={(event) => setShowPrivate(!showPrivate)}\n >\n {t(`tiptap.components.interactiveInput.${showPrivate ? \"hidePrivateMessages\" : \"showPrivateMessages\"}`)}\n \n )}\n {isManager() && (showAll || !isAdvancedEngagement()) && (\n ({\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString()\n },\n })}\n onClick={(event) => setShowMessages(prevState => !prevState)}\n >\n {t(`tiptap.components.interactiveInput.${showMessages ? \"hideResponses2\" : \"showResponses2\"}`)}\n \n )}\n \n \n {(showMessages || !isManager()) &&\n openMessages().map((message) => {\n return (\n \n );\n })}\n {openMessages().length == 0 && (\n \n \n {\n \"This discussion hasn’t received any responses yet.\"\n }\n \n \n )}\n \n {canLoadMore && showMessages && (\n \n ({\n color:\n colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n colors.background_color\n )\n .darken(3)\n .toString(),\n // color: tinycolor(colors.primary_button_background_color).lighten(5).toString()\n },\n })}\n onClick={(event) => onLoadMore()}\n >\n {t(\n \"tiptap.components.interactiveInput.loadMoreResponse\"\n )}\n \n \n )}\n {!isInteractedWith() && !isManager() && interacted && (\n \n \n }\n onClick={() => onMoveOn()}\n >\n {\"Next section\"}\n \n \n )}\n \n \n )}\n \n )}\n\n {space && space.permissions && (\n setOpenedReflections(false)}\n title={reflectionsDrawerHeader}\n padding=\"xl\"\n size={600}\n classNames={{\n drawer: classes.drawer,\n header: classes.drawerHeader,\n }}\n // styles={{\n // drawer: {\n // backgroundColor: \"red\"\n // }\n // }}\n >\n \n \n )}\n
\n \n )}\n \n );\n}\n","import { useEffect, useCallback, useRef } from 'react';\n\nexport function useDebounce(callback, delay) {\n const timeoutRef = useRef(null);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return useCallback((value) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n callback(value);\n }, delay);\n }, [callback, delay]);\n};\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\n\nimport InteractiveInput from '../components/InteractiveInput';\nimport {stylesToString} from '../../../utils/StylesToString'\n\nimport {v4 as uuidv4} from 'uuid';\n\nconst InteractiveInputNode = Node.create({\n name: 'interactiveInput',\n draggable: false,\n allowGapCursor: true,\n selectable: true,\n allowGapCursor: false,\n group: \"block\",\n inline: false,\n\n addAttributes() {\n return {\n interactiveInputPlaceholder: {\n default: \"Write something...\",\n },\n interactiveInputLabel: {\n default: \"https://sutra.co\",\n },\n interactiveInputShowAll: {\n default: true,\n },\n interactiveInputAllowMultipost: {\n default: false,\n },\n interactiveInputAllowSkip: {\n default: false,\n },\n interactiveInputShowAllManager: {\n default: true,\n },\n interactiveInputPreShowAll: {\n default: false,\n },\n interactiveInputWithPrivacyCheck: {\n default: true,\n },\n interactiveInputNotificationOnEachPost: {\n default: false,\n },\n interactiveAdvancedEngagement: {\n default: true,\n },\n showProgressBar: {\n default: true,\n },\n autoTag: {\n default: false,\n },\n idName: {\n default: \"interactive-input-node\",\n },\n id: {\n default: null,\n },\n circle_id: {\n default: null,\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'interactiveinput',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['interactiveinput', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(InteractiveInput)\n\n },\n})\n\nexport default InteractiveInputNode;\n","import React, { useState, useRef } from \"react\";\n\nimport { useNavigate, useParams } from \"react-router-dom\";\n\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport InteractionModel from \"../../../models/Interaction\";\n\nimport { closestInteraction, closestBlockingInteraction, showNextInteraction, setUniqId} from \"../utils/selection\";\n\nimport { Button, Box } from \"@mantine/core\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport tinycolor from \"tinycolor2\";\n\nexport default function InteractiveButton(props) {\n const navigate = useNavigate();\n const params = useParams();\n\n const auxPos = useRef();\n const [interacted, setInteracted] = useState(false);\n const interaction = useRef(null);\n const blockingInteraction = useRef(null);\n\n //setUniqId(props.editor, props.node, props.getPos);\n\n const getRadius = () => {\n if (props.node.attrs.radius == \"no-radius\") {\n return \"xs\";\n } else if (props.node.attrs.radius == \"circle-radius\") {\n return \"xl\";\n } else if (props.node.attrs.radius == \"with-radius\") {\n return \"sm\";\n } else {\n return \"xs\";\n }\n };\n\n const displayToTheUser = () => {\n if (window.$spaceUserInteractions) {\n if (window.$spaceUserInteractions.can_manage) {\n auxPos.current = \"manage\";\n return true;\n }\n\n blockingInteraction.current = closestBlockingInteraction(\n props.editor,\n props.getPos(),\n true\n );\n if (blockingInteraction.current) {\n auxPos.current = blockingInteraction.interactivePosition;\n }\n\n if (\n blockingInteraction.current != null &&\n window.$spaceUserInteractions.position < blockingInteraction.current.interactivePosition\n ) {\n return false;\n } else {\n return true;\n }\n }\n return true;\n };\n\n const isActiveToTheUser = () => {\n if (window.$spaceUserInteractions) {\n if (window.$spaceUserInteractions.can_manage) {\n return true;\n }\n\n interaction.current = closestInteraction(\n props.editor,\n props.getPos(),\n true\n );\n\n blockingInteraction.current = closestBlockingInteraction(\n props.editor,\n props.getPos(),\n true\n );\n \n return (\n (!interaction.current) ||\n (interaction.current != null &&\n (window.$spaceUserInteractions.position ==\n interaction.current.interactivePosition) || (blockingInteraction.current != null && window.$spaceUserInteractions.position >= blockingInteraction.current.interactivePosition))\n );\n }\n return false;\n };\n\n const isInteractedWith = () => {\n if (window.$spaceUserInteractions) {\n if (window.$spaceUserInteractions.can_manage) {\n return false;\n }\n try {\n\n interaction.current = closestInteraction(\n props.editor,\n props.getPos(),\n true\n );\n\n return (\n window.$spaceUserInteractions.position >=\n props.node.attrs.interactivePosition\n );\n } catch {\n return false;\n }\n }\n return false;\n };\n\n const onSave = () => {\n if (props.editor && !props.editor.isEditable) {\n if (window.$spaceUserInteractions.can_manage) {\n return;\n }\n if (!window.$spaceUserInteractions.logged_in) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n return;\n }\n InteractionModel.onCreate(\n params.slug,\n {\n view_id: `circle-content-${params.slug}`,\n position: props.node.attrs.interactivePosition,\n },\n (data) => {\n window.$spaceUserInteractions = {\n count: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.count\n : 1,\n position: props.node.attrs.interactivePosition,\n logged_in: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.logged_in\n : false,\n };\n showNextInteraction(props.editor, props.getPos());\n setInteracted(true);\n if (data.auto_joined) {\n // setTimeout(() => {\n // navigate(`/space/${params.slug}?refresh=true`);\n // }, 1000)\n }\n },\n (data) => {}\n );\n }\n };\n\n return (\n \n {!(displayToTheUser() && (isInteractedWith() || interacted)) && (\n \n
\n {props.editor && props.editor.isEditable ? (\n ({\n backgroundColor: props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n props.node.attrs.buttonBackgroundColor\n )\n .darken(5)\n .toString(),\n },\n })}\n >\n {`${props.node.attrs.buttonText}`}\n \n ) : (\n (displayToTheUser() || isActiveToTheUser()) &&\n !interacted && (\n onSave()}\n fullWidth\n radius={getRadius()}\n sx={(theme) => ({\n backgroundColor: props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n props.node.attrs.buttonBackgroundColor\n )\n .darken(5)\n .toString(),\n },\n })}\n >\n {`${props.node.attrs.buttonText}`}\n \n )\n )}\n \n \n )}\n {displayToTheUser() && (isInteractedWith() || interacted) && (\n ({\n borderTop: `1px solid ${theme.colors.gray[4]}`,\n marginTop: 20,\n marginBottom: 20,\n })}\n >\n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\n\nimport InteractiveButton from '../components/InteractiveButton';\nimport {stylesToString} from '../../../utils/StylesToString'\n\n\nconst InteractiveButtonNode = Node.create({\n name: 'interactiveButton',\n draggable: false,\n allowGapCursor: true,\n selectable: true,\n allowGapCursor: false,\n group: \"block\",\n inline: false,\n\n addAttributes() {\n return {\n idName: {\n default: \"interactive-button-node\",\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'interactivebutton',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['interactivebutton', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(InteractiveButton)\n\n },\n})\n\nexport default InteractiveButtonNode;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\nimport { DateTime } from \"luxon\";\n\nimport InteractionModel from \"../../../models/Interaction\";\n\nimport { Text, createStyles, Paper, Group } from \"@mantine/core\";\n\nimport { showNextInteraction, setUniqId } from \"../utils/selection\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n}));\n\nexport default function InteractiveWait(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const navigate = useNavigate();\n const params = useParams();\n\n const checked = useRef();\n\n const formattedDate = DateTime.fromFormat(props.node.attrs.interactiveWaitValue, \"yyyy/M/d\").toFormat(\"LLLL d, yyyy\");\n\n //setUniqId(props.editor, props.node, props.getPos);\n\n useEffect(() => {\n if (\n !checked.current &&\n window.$spaceUserInteractions &&\n !window.$spaceUserInteractions.can_manage\n ) {\n checked.current = true;\n checkInteraction();\n }\n }, [props]);\n\n const displayToTheUser = () => {\n if (window.$spaceUserInteractions) {\n if (window.$spaceUserInteractions.can_manage) {\n return true;\n }\n\n return false;\n }\n return true;\n };\n\n const checkInteraction = () => {\n if (window.$spaceUserInteractions.can_manage) {\n return;\n }\n if (!window.$spaceUserInteractions.logged_in) {\n return;\n }\n if (props.editor && !props.editor.isEditable) {\n InteractionModel.onCreate(\n params.slug,\n {\n view_id: `circle-content-${params.slug}`,\n position: props.node.attrs.interactivePosition,\n wait: props.node.attrs.interactiveWaitValue,\n },\n (data) => {\n if (data.interacted) {\n window.$spaceUserInteractions = {\n count: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.count\n : 1,\n position: props.node.attrs.interactivePosition,\n logged_in: window.$spaceUserInteractions\n ? window.$spaceUserInteractions.logged_in\n : false,\n };\n showNextInteraction(props.editor, props.getPos());\n }\n },\n (data) => {}\n );\n }\n };\n\n const getHoursToDays = () => {\n return (\n parseInt(props.node.attrs.interactiveWaitValue.replace(\"h\", \"\")) / 24\n );\n };\n\n return (\n \n {displayToTheUser() && (\n \n \n \n {props.node.attrs.interactiveWaitType == \"datetime\" ? (\n \n {`Wait until ${formattedDate}`}\n \n ) : (\n \n {`Wait for ${getHoursToDays()} days`}\n \n )}\n \n \n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\n\nimport InteractiveWait from '../components/InteractiveWait';\nimport {stylesToString} from '../../../utils/StylesToString'\n\nimport {v4 as uuidv4} from 'uuid';\n\nconst InteractiveWaitNode = Node.create({\n name: 'interactiveWait',\n draggable: false,\n allowGapCursor: true,\n selectable: true,\n allowGapCursor: false,\n group: \"block\",\n inline: false,\n\n addAttributes() {\n return {\n interactiveWaitSendNotificationEmail: {\n default: false,\n },\n interactiveWaitNotificationIncludeCustomMessage: {\n default: false,\n },\n interactiveWaitNotificationCustomMessage: {\n default: null,\n },\n interactiveWaitNotificationCustomSubject: {\n default: null,\n },\n interactiveWaitNotificationIncludeContent: {\n default: false,\n },\n interactiveWaitNotificationIncludeContentValue: {\n default: \"full\",\n },\n interactiveWaitStatus: {\n default: 'pending'\n },\n interactiveWaitMessage: {\n default: \"Please wait...\",\n },\n interactiveWaitShowTimeLeft: {\n default: true,\n },\n interactiveWaitType: {\n default: \"datetime\",\n },\n interactiveWaitValue: {\n default: \"1d\",\n },\n idName: {\n default: \"interactive-input-node\",\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'interactivewait',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['interactivewait', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(InteractiveWait)\n\n },\n})\n\nexport default InteractiveWaitNode;\n","import { mergeAttributes, Node, nodeInputRule } from \"@tiptap/core\";\nimport { TextSelection } from \"prosemirror-state\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst HorizontalRule = Node.create({\n name: \"horizontalRule\",\n\n addOptions() {\n return {\n HTMLAttributes: {},\n };\n },\n\n group: \"block\",\n\n parseHTML() {\n return [{ tag: \"hr\" }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"hr\", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)];\n },\n\n addCommands() {\n return {\n setHorizontalRule:\n () =>\n ({ chain }) => {\n return (\n chain()\n .insertContent({ type: this.name })\n // set cursor after horizontal rule\n .command(({ tr, dispatch }) => {\n if (dispatch) {\n const { $to } = tr.selection;\n const posAfter = $to.end();\n\n if ($to.nodeAfter) {\n tr.setSelection(TextSelection.create(tr.doc, $to.pos));\n } else {\n // add node after horizontal rule if it’s the end of the document\n const node =\n $to.parent.type.contentMatch.defaultType?.create();\n\n if (node) {\n tr.insert(posAfter, node);\n tr.setSelection(TextSelection.create(tr.doc, posAfter));\n }\n }\n\n tr.scrollIntoView();\n }\n\n return true;\n })\n .run()\n );\n },\n };\n },\n\n addInputRules() {\n return [\n nodeInputRule({\n find: /^(?:---|—-|___\\s|\\*\\*\\*\\s)$/,\n type: this.type,\n }),\n ];\n },\n\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n const content = document.createElement(\"hr\");\n content.style.maxWidth = wideOrNarrow(\"px\", 0, 32);\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n dom.append(content);\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default HorizontalRule;\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport InteractionModel from \"../../../models/Interaction\";\nimport SpaceModel from \"../../../models/Space\";\nimport MessageModel from \"../../../models/Message\";\nimport Message from \"../../spaces_neo/presentations/discussion/Message\";\nimport Reflections from \"../../spaces_neo/presentations/discussion/Reflections\";\nimport TiptapInline from \"./TiptapInline\";\n\nimport NotificationModel from \"../../../../models/NotificationModel\";\n\nimport { storeJSON } from \"../../../utils/LocalDB\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\n\nimport {\n Button,\n createStyles,\n Box,\n ScrollArea,\n Drawer,\n Text,\n Center,\n Stack,\n} from \"@mantine/core\";\n\nimport {\n isNodeInsideNode,\n //setUniqId,\n checkInteractionAndHideIfNeededReact,\n} from \"../utils/selection\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\nimport { prosemirrorJSONToYDoc } from \"y-prosemirror\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../utils/IsDarkColor\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n drawer: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n buttonStyle: {\n backgroundColor: props.node.attrs.buttonBackgroundColor,\n color: props.node.attrs.buttonTextColor,\n border: `1px solid ${props.node.attrs.buttonBackgroundColor}`,\n \"&:hover\": {\n backgroundColor: tinycolor(props.node.attrs.buttonBackgroundColor)\n .darken(5)\n .toString(),\n },\n },\n placeholder: {\n borderRadius: \"10px\",\n padding: \"20px\",\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n },\n}));\n\nexport default function InteractiveInput(props) {\n const cable = useContext(ActionCableContext);\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors, props });\n const { t } = useTranslation();\n\n const [space, setSpace] = useState(null);\n const [messages, setMessages] = useState([]);\n const [interacted, setInteracted] = useState(false);\n const [tagging, setTagging] = useState(0);\n const [showAll, setShowAll] = useState(false);\n const [showMessages, setShowMessages] = useState(false);\n const [showPrivate, setShowPrivate] = useState(true);\n\n const [receiveData, setReceiveData] = useState(null);\n const [canLoadMore, setCanLoadMore] = useState(false);\n const [saving, setSaving] = useState(false);\n\n const [openedReflections, setOpenedReflections] = useState(false);\n const [selectedMessage, setSelectedMessage] = useState(null);\n const [reflectionsTagging, setReflectionsTagging] = useState(false);\n const [askPrivacy, setAskPrivacy] = useState(false);\n const [reflectionsDrawerHeader, setReflectionsDrawerHeader] = useState(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n const navigate = useNavigate();\n const params = useParams();\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n const viewport = useRef();\n\n const loaded = useRef();\n const content = useRef();\n const auxPos = useRef();\n const querySearchCount = useRef(0);\n const messagesCopy = useRef([]);\n const fixTimeout = useRef([]);\n\n const paginator = useRef({\n per: 30,\n page: 1,\n });\n\n const lastConnectionAttempt = useRef({\n slug: null,\n state: null,\n channel: null,\n });\n\n useEffect(() => {\n if (window.$reloadTagsFeed == props.node.attrs.id) {\n window.$reloadTagsFeed = null;\n onFetchMessages();\n }\n }, [props]);\n\n useEffect(() => {\n const search = window.location.search;\n const interactive_slug = new URLSearchParams(search).get(\"tags_feed_slug\");\n if (\n (inView || interactive_slug) &&\n !space &&\n (!loaded.current || props.node.attrs.forceUpdate)\n ) {\n if (!props.editor.isEditable) {\n onFetch();\n onFetchMessages();\n performCableConnection();\n }\n\n if (!props.editor.isEditable) {\n if (interactive_slug && interactive_slug == props.node.attrs.id) {\n scrollToMe();\n }\n }\n }\n }, [inView]);\n\n useEffect(() => {\n if (!props.editor.isEditable && inView && space) {\n onFetchMessages();\n } else {\n // Check on backend if another IJ exist with same ID\n }\n }, [showAll]);\n\n useEffect(() => {\n if (!props.editor.isEditable) {\n const search = window.location.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n\n if (pod_message_id && openMessages().length > 0) {\n if (querySearchCount.current == 0) {\n setShowAll(true);\n setTimeout(() => {\n searchForMessage(pod_message_id);\n }, 3000);\n } else {\n searchForMessage(pod_message_id);\n }\n }\n }\n }, [messages]);\n\n useEffect(() => {\n if (receiveData && !props.editor.isEditable) {\n let changes = receiveData.changes;\n if (receiveData.state != \"multi\") {\n changes = [receiveData];\n }\n\n for (var i = 0; i < changes.length; i++) {\n if (changes[i].state == \"new\") {\n onReceivedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"update\") {\n onUpdatedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"destroy\") {\n onDestroyedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"pin\") {\n onPinnedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"unpin\") {\n onPinnedMessage(null);\n }\n }\n }\n }, [receiveData]);\n\n const performCableConnection = () => {\n if (props.node.attrs.id) {\n for (let i = 0; i < props.node.attrs.id.length; i++) {\n const _id = props.node.attrs.id[i];\n\n cable.subscriptions.create(\n {\n channel: \"PodsChannel\",\n pod_slug: _id,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\"Tags feed Channel connected: \" + _id);\n },\n disconnected: () => {},\n received: (data) => {\n console.log(\"Tags feed Channel connected: \");\n console.log(data);\n if (data.slug == _id && messageHasTags(data.tags)) {\n // setReceiveData(data);\n return;\n }\n },\n }\n );\n }\n }\n // if (lastConnectionAttempt.current.channel) {\n // lastConnectionAttempt.current.channel.unsubscribe();\n // }\n // lastConnectionAttempt.current.channel = cable.subscriptions.create(\n // {\n // channel: \"PodsChannel\",\n // pod_slug: props.node.attrs.id,\n // token: window.$currentUserAuthToken,\n // },\n // {\n // connected: () => {\n // console.log(\"Tags feed Channel connected: \" + props.node.attrs.id);\n // },\n // disconnected: () => {},\n // received: (data) => {\n // console.log(\"Tags feed Channel connected: \");\n // console.log(data);\n // if (props.node.attrs.id.indexOf(props.node.attrs.id) >= 0) {\n // setReceiveData(data);\n // return;\n // }\n // },\n // }\n // );\n };\n\n const messageHasTags = (messageTags) => {\n if (props.node.attrs.tags) {\n for (let i = 0; i < props.node.attrs.tags.length; i++) {\n const tag1 = props.node.attrs.tags[i];\n for (let j = 0; j < messageTags.length; j++) {\n const tag2 = messageTags[j];\n if (tag1 == tag2) {\n return true;\n }\n }\n }\n }\n return false;\n };\n\n const onReceivedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n props.node.attrs.id,\n (data) => {\n if (data.user.id != window.$currentUserId) {\n if (!isManager() && !showAll) {\n return;\n }\n }\n\n let newMessages = [...messagesCopy.current];\n\n if (messagesCopy.current.length == 0) {\n messagesCopy.current = [...messages];\n newMessages = [...messagesCopy.current];\n }\n\n let exist = false;\n for (let i = 0; i < messagesCopy.current.length; i++) {\n const msg = messagesCopy.current[i];\n if (msg.id == data.id) {\n exist = true;\n break;\n }\n }\n\n if (!exist) {\n newMessages.push(data);\n messagesCopy.current.push(data);\n setMessages(newMessages);\n }\n },\n (data) => {}\n );\n };\n\n const onUpdatedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n props.node.attrs.id,\n (data) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages[i] = data;\n if (selectedMessage && messageId == selectedMessage.id) {\n setSelectedMessage({ ...newMessages[i] });\n }\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n },\n (data) => {}\n );\n };\n\n const onDestroyedMessage = (messageId) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages.splice(i, 1);\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n };\n\n const onPinnedMessage = (messageId) => {\n const newSpace = { ...space };\n newSpace.pin_message = messageId;\n // dispatch(setSpace(newSpace));\n };\n\n const searchForMessage = (messageId) => {\n if (querySearchCount.current > 10) {\n return;\n }\n\n querySearchCount.current++;\n\n const search = window.location.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n const reflection_id = new URLSearchParams(search).get(\"reflection_id\");\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n querySearchCount.current = 99;\n scrollToMessage(messageId);\n if (reflection_id) {\n const newMessage = { ...messages[i] };\n newMessage.reflectionId = reflection_id;\n\n setSelectedMessage(newMessage);\n setOpenedReflections(true);\n markReflectionAsSeen(messageId);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n }\n return;\n }\n }\n\n onFetchMessages();\n };\n\n const scrollToMe = () => {\n if (!props.editor.isEditable) {\n return;\n }\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`${props.node.attrs.uid}`);\n const $contentScrollViewport = document\n .getElementById(`main-scroll-area`)\n .querySelectorAll(\"div\")[0];\n\n const top =\n $scrollTo.offsetTop -\n $contentScrollViewport.offsetTop +\n $contentScrollViewport.scrollTop +\n 80;\n\n $contentScrollViewport.scrollTo({\n top: top,\n behavior: \"smooth\",\n });\n } catch (e) {}\n }, 500);\n };\n\n const scrollToMessage = (messageId) => {\n if (!props.editor.isEditable) {\n return;\n }\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`msg_${messageId}`);\n const $contentScrollViewport = document\n .getElementById(`main-scroll-area`)\n .querySelectorAll(\"div\")[0];\n\n const top =\n $scrollTo.offsetTop -\n $contentScrollViewport.offsetTop +\n $contentScrollViewport.scrollTop +\n 80;\n\n $contentScrollViewport.scrollTo({\n top: top,\n behavior: \"smooth\",\n });\n } catch (e) {}\n }, 500);\n };\n\n const onFetch = () => {\n loaded.current = true;\n };\n\n const onFetchMessages = () => {\n const search = window.location.search;\n const _tag = props.node.attrs.tags;\n\n if (_tag) {\n trackMixpanel(window.$currentUsername, \"Tag clicked\", { space_slug: props.node.attrs.id }); \n }\n\n MessageModel.onFetch(\n props.node.attrs.id,\n {\n tag: _tag,\n only_current_user: props.node.attrs.tagsFeedShowAll,\n reverse: true,\n per: props.node.attrs.tagsNumberOfPosts,\n },\n paginator.current.page,\n (data) => {\n setCanLoadMore(paginator.current.page < data.pages);\n\n if (paginator.current.page == 1) {\n messagesCopy.current = [...data.data];\n setMessages([...data.data]);\n } else if (data.data.length > 0) {\n const auxData = data.data.concat(messagesCopy.current);\n messagesCopy.current = [...auxData];\n setMessages([...auxData]);\n }\n },\n (data) => {}\n );\n };\n\n const onLoadMore = () => {\n paginator.current.page++;\n onFetchMessages();\n };\n\n const isManager = () => {\n return (\n window.$currentRole &&\n (window.$currentRole == \"manager\" || window.$currentRole == \"admin\")\n );\n };\n\n const onOpenReflections = (messageId) => {\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n markReflectionAsSeen(messageId);\n setSelectedMessage(messages[i]);\n break;\n }\n }\n };\n\n const markReflectionAsSeen = (messageId) => {\n NotificationModel.onMarkAsSeen(\"reflection\", messageId, (data) => {});\n };\n\n const openMessages = () => {\n if (isManager()) {\n if (showPrivate) {\n return messages.filter((msg) => msg.privacy == \"open\");\n } else {\n return messages.filter((msg) => !msg.is_private);\n }\n } else {\n return messages.filter((msg) => msg.privacy == \"open\");\n }\n };\n\n return (\n \n {checkInteractionAndHideIfNeededReact(props.editor, props.getPos) && (\n \n \n {openMessages().length > 0 && props.editor ? (\n !props.editor.isEditable ? (\n \n <>\n \n {openMessages().map((message) => {\n return (\n \n );\n })}\n \n \n {canLoadMore && (\n ({\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(\n colors.background_color\n )\n .darken(3)\n .toString(),\n // color: tinycolor(colors.primary_button_background_color).lighten(5).toString()\n },\n })}\n onClick={(event) => onLoadMore()}\n >\n {t(\n \"tiptap.components.interactiveInput.loadMoreResponse\"\n )}\n \n )}\n \n \n\n setOpenedReflections(false)}\n title={reflectionsDrawerHeader}\n padding=\"xl\"\n size={600}\n classNames={{\n drawer: classes.drawer,\n header: classes.drawerHeader,\n }}\n // styles={{\n // drawer: {\n // backgroundColor: \"red\"\n // }\n // }}\n >\n \n \n \n ) : (\n \n \n Tag feed\n {props.editor.isEditable ? (\n \n This block will load messages with selected tags from\n selected spaces\n \n ) : (\n No messages posted yet\n )}\n \n \n )\n ) : (\n \n \n Tag feed\n {props.editor.isEditable ? (\n \n This block will load messages with selected tags from\n selected spaces\n \n ) : (\n No messages posted yet\n )}\n \n \n )}\n \n \n )}\n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\n\nimport TagsFeed from '../components/TagsFeed';\nimport {stylesToString} from '../../../utils/StylesToString'\n\nimport {v4 as uuidv4} from 'uuid';\n\nconst TagsFeedNode = Node.create({\n name: 'tagsFeed',\n draggable: false,\n allowGapCursor: true,\n selectable: true,\n allowGapCursor: false,\n group: \"block columnable\",\n inline: false,\n\n addAttributes() {\n return {\n tags: {\n default: [],\n },\n tagsFeedShowAll: {\n default: false\n },\n tagsShowUser: {\n default: false\n },\n tagsDate: {\n default: false\n },\n tagsShowMessageActions: {\n default: false\n },\n tagsShowMTagsOnEachMessage: {\n default: false\n },\n tagsNumberOfPosts: {\n default: \"5\"\n },\n idName: {\n default: \"tags-feed-node\",\n },\n id: {\n default: [],\n },\n circle_id: {\n default: null,\n },\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"15px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'tagsfeed',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n\n return ['tagsfeed', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(TagsFeed)\n\n },\n})\n\nexport default TagsFeedNode;\n","import TaskList from \"@tiptap/extension-task-list\";\nimport { mergeAttributes } from \"@tiptap/core\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst CustomTaskList = TaskList.extend({\n group: \"block list columnable\",\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n const content = document.createElement(\"ul\");\n content.style.maxWidth = wideOrNarrow();\n content.dataset.type = \"taskList\";\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n dom.append(content);\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default CustomTaskList;\n","import BulletList from \"@tiptap/extension-bullet-list\";\nimport { mergeAttributes } from \"@tiptap/core\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst CustomBulletList = BulletList.extend({\n group: \"block list columnable\",\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n const content = document.createElement(\"ul\");\n content.style.maxWidth = wideOrNarrow();\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n dom.append(content);\n\n console.log(\"RAN ------> RAN\");\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default CustomBulletList;\n","import OrderedList from \"@tiptap/extension-ordered-list\";\nimport { mergeAttributes } from \"@tiptap/core\";\nimport { checkInteractionAndHideIfNeeded, setUniqId} from \"../utils/selection\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nconst CustomOrderedList = OrderedList.extend({\n group: \"block list columnable\",\n addNodeView() {\n return ({ editor, getPos, node, HTMLAttributes }) => {\n const dom = document.createElement(\"section\");\n const content = document.createElement(\"ol\");\n content.style.maxWidth = wideOrNarrow();\n\n const attributes = mergeAttributes(HTMLAttributes, {});\n content.setAttribute(\"id\", attributes[\"data-uid\"]);\n Object.entries(attributes).forEach(([key, value]) =>\n dom.setAttribute(key, value)\n );\n dom.append(content);\n\n checkInteractionAndHideIfNeeded(editor, dom, getPos);\n //setUniqId(editor, node, getPos, dom);\n\n return {\n dom,\n contentDOM: content,\n };\n };\n },\n});\n\nexport default CustomOrderedList;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport ParagraphIcon from \"../../../src/images/buttons/text.png\";\nimport Headline1Icon from \"../../../src/images/buttons/heading1.png\";\nimport Headline2Icon from \"../../../src/images/buttons/heading2.png\";\nimport Headline3Icon from \"../../../src/images/buttons/heading3.png\";\nimport BulletListIcon from \"../../../src/images/buttons/list_bullet.png\";\nimport OrderedListIcon from \"../../../src/images/buttons/list_ordered.png\";\nimport CheckListIcon from \"../../../src/images/buttons/list_checklist.png\";\nimport ResourceTopicsIcon from \"../../../src/images/buttons/collapsible_topic.png\";\nimport ImageIcon from \"../../../src/images/buttons/image.png\";\nimport EmbedIcon from \"../../../src/images/buttons/embeded.png\";\nimport VideoIcon from \"../../../src/images/buttons/video.png\";\nimport AudioIcon from \"../../../src/images/buttons/audio.png\";\nimport FileIcon from \"../../../src/images/buttons/file.png\";\nimport TagsIcon from \"../../../src/images/buttons/tag_cloud.png\";\nimport SurveyIcon from \"../../../src/images/buttons/survey.png\";\n\nimport ContentIcon from \"../../../src/images/buttons/content.png\";\nimport DiscussionIcon from \"../../../src/images/buttons/discussion.png\";\nimport EventIcon from \"../../../src/images/buttons/event.png\";\nimport CalendarIcon from \"../../../src/images/buttons/calendar.png\";\nimport ForumIcon from \"../../../src/images/buttons/forum.png\";\nimport ShowcaseIcon from \"../../../src/images/buttons/showcase.png\";\n\nimport Grid1 from \"../../../src/images/grid/one_column.png\";\nimport Grid2 from \"../../../src/images/grid/two_columns.png\";\nimport Grid3 from \"../../../src/images/grid/three_columns.png\";\nimport Grid4 from \"../../../src/images/grid/left_column.png\";\nimport Grid5 from \"../../../src/images/grid/right_column.png\";\nimport Grid6 from \"../../../src/images/grid/four_columns.png\";\n\nimport ListBuilder from \"../../../src/images/buttons/list_builder.png\";\nimport ActionButton from \"../../../src/images/buttons/action_button.png\";\nimport BundleButton from \"../../../src/images/buttons/bundle_button.png\";\n\nimport InteractiveInput from \"../../../src/images/buttons/automation_response.png\";\nimport InteractiveButton from \"../../../src/images/buttons/automation_next.png\";\nimport InteractiveWait from \"../../../src/images/buttons/automation_time_block.png\";\nimport Divider from \"../../../src/images/buttons/divider.png\";\nimport InfoBox from \"../../../src/images/buttons/info_box.png\";\nimport MarkComplete from \"../../../src/images/buttons/mark_complete.png\";\nimport ZoomIcon from \"../../../src/images/buttons/zoom.png\";\n\nimport { DEFAULT_THEME } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n isTopNode,\n getTopParentNode,\n closestInteraction,\n updateInteractionsPositions,\n} from \"../utils/selection\";\n\nconst onToggleFormat = (editor, format) => {\n if (!window.$tiptapLastSelectionRange) {\n return;\n }\n\n const { from, to } = window.$tiptapLastSelectionRange;\n if (format == \"p\") {\n editor.commands.insertContentAt({ from, to }, `

`, {\n updateSelection: true,\n parseOptions: { preserveWhitespace: \"full\" },\n });\n setTimeout(() => {\n editor.commands.focus();\n }, 200);\n } else {\n const level = format.charAt(1);\n\n editor.commands.insertContentAt(\n { from, to },\n `<${format} level=\"${level}\">`,\n { updateSelection: true, parseOptions: { preserveWhitespace: \"full\" } }\n );\n }\n // editor.chain().focus().setTextSelection({ from: to + 1, to: to + 1 }).selectTextblockEnd().run()\n};\n\nexport const sideMenuOptions = () => {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n\n const adminFeatureZoom = user?.is_admin ? [\n {\n tooltip: \"Automatically save a Zoom recording to Sutra\",\n name: t(\"tiptap.blocks.zoom\"),\n image: ZoomIcon,\n type: \"zoom\",\n callback: () => {},\n }\n ] : [];\n\n return [\n {\n name: t(\"tiptap.blocks.section7\"), //interactive\n only_beta: true,\n blocks: [\n {\n tooltip: \"Add an input box for discussion or comments\",\n name: t(\"tiptap.blocks.interactiveInput\"),\n image: InteractiveInput,\n type: \"interactive_input\",\n callback: (e, editor, id, circle_id, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n const interaction = closestInteraction(\n editor,\n editor.view.state.selection.to\n );\n\n const nextPos = interaction\n ? interaction.interactivePosition + 1\n : 0;\n debugger\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n\n setTimeout(() => {\n updateInteractionsPositions(editor);\n }, 500);\n },\n },\n {\n tooltip: \"Content after this button will not be visible until the button is clicked\",\n name: t(\"tiptap.blocks.interactiveButton\"),\n image: InteractiveButton,\n type: \"interactive_button\",\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n const interaction = closestInteraction(\n editor,\n editor.view.state.selection.to\n );\n\n const nextPos = interaction\n ? interaction.interactivePosition + 1\n : 0;\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n\n setTimeout(() => {\n updateInteractionsPositions(editor);\n }, 500);\n },\n },\n {\n tooltip: \"Content after this section will not be visible until a time period has passed\",\n name: t(\"tiptap.blocks.interactiveWait\"),\n image: InteractiveWait,\n type: \"interactive_wait\",\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n const interaction = closestInteraction(\n editor,\n editor.view.state.selection.to\n );\n\n const nextPos = interaction\n ? interaction.interactivePosition + 1\n : 0;\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n\n setTimeout(() => {\n updateInteractionsPositions(editor);\n }, 500);\n },\n },\n ],\n },\n {\n name: t(\"tiptap.blocks.section4\"), //media\n blocks: [\n {\n tooltip: \"Upload or embed with a link\",\n name: t(\"tiptap.blocks.image\"),\n image: ImageIcon,\n type: \"image\",\n callback: () => {},\n },\n {\n tooltip: \"Upload or embed with a link\",\n name: t(\"tiptap.blocks.video\"),\n image: VideoIcon,\n type: \"video\",\n callback: () => {},\n },\n {\n tooltip: \"Embed videos, docs, and more\",\n name: t(\"tiptap.blocks.embed\"),\n image: EmbedIcon,\n type: \"embed\",\n callback: () => {},\n },\n {\n tooltip: \"Upload or embed with a link\",\n name: t(\"tiptap.blocks.audio\"),\n image: AudioIcon,\n type: \"audio\",\n callback: () => {},\n },\n {\n tooltip: \"Upload or embed with a link\",\n name: t(\"tiptap.blocks.file\"),\n image: FileIcon,\n type: \"file\",\n callback: () => {},\n },\n ...adminFeatureZoom\n ],\n },\n {\n name: t(\"tiptap.blocks.section6\"), //buttons\n blocks: [\n {\n tooltip: \"Create a call to action or link to a registration page\",\n name: t(\"tiptap.blocks.actionButton\"),\n image: ActionButton,\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n // editor.chain().focus().setTextSelection({ from: to, to: to }).enter().run()\n\n const target =\n window.location.pathname.indexOf(\"/registration\") >= 0\n ? \"_current\"\n : \"_blank\";\n\n // debugger;\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n },\n },\n {\n tooltip: \"Clicking this button will mark this section complete\",\n name: t(\"tiptap.blocks.markComplete\"),\n image: MarkComplete,\n type: \"mark_complete_button\",\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n // editor.chain().focus().setTextSelection({ from: to, to: to }).enter().run()\n\n const target = \"_nothing\";\n\n // debugger;\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n },\n },\n {\n tooltip: \"Create a collection of spaces that can be purchased in one go\",\n name: t(\"tiptap.blocks.bundleButton\"),\n image: BundleButton,\n type: \"bundle_button\",\n callback: (e, editor, colors) => {},\n },\n ],\n },\n {\n name: t(\"tiptap.blocks.section8\"), //special\n blocks: [\n {\n tooltip: \"Make you content stand out with a fancy box\",\n name: t(\"tiptap.blocks.infobox\"),\n layout: \"full_width\",\n image: InfoBox,\n callback: (e, editor, colors) => {\n try {\n if (!isTopNode(editor)) {\n const parentNode = getTopParentNode(editor);\n editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n } catch (error) {}\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n '

'\n )\n .run();\n\n setTimeout(() => {\n editor.commands.setTextSelection({\n from: editor.view.state.selection.to - 4,\n to: editor.view.state.selection.to - 4,\n });\n\n const { selection } = editor.view.state;\n const { $anchor } = selection;\n const { parent, path } = $anchor;\n\n const newStyles = {};\n\n newStyles[\"align-items\"] = \"flex-start\";\n newStyles[\"background-color\"] = DEFAULT_THEME.colors.orange[1];\n newStyles[\"background-image\"] = \"none\";\n newStyles[\"background-position\"] = \"center center\";\n newStyles[\"background-size\"] = \"cover\";\n newStyles[\"background-repeat\"] = \"no-repeat\";\n newStyles[\"margin-top\"] = \"0px\";\n newStyles[\"margin-bottom\"] = \"0px\";\n newStyles[\"margin-left\"] = \"0px\";\n newStyles[\"margin-right\"] = \"0px\";\n newStyles[\"padding-top\"] = \"20px\";\n newStyles[\"padding-bottom\"] = \"20px\";\n newStyles[\"padding-left\"] = \"25px\";\n newStyles[\"padding-right\"] = \"25px\";\n\n const { tr } = editor.view.state;\n tr.setNodeMarkup(path[5], undefined, {\n ...path[6].attrs,\n styles: newStyles,\n });\n editor.view.dispatch(tr);\n }, 10);\n },\n },\n {\n tooltip: \"Visually divide content on this page\",\n name: t(\"tiptap.blocks.divider\"),\n image: Divider,\n callback: (e, editor) => {\n editor.chain().focus().setHorizontalRule().run();\n },\n },\n {\n tooltip: \"Create a collapsible section with content and sub pages\",\n name: t(\"tiptap.blocks.collapsableSection\"),\n type: \"resource\",\n image: ResourceTopicsIcon,\n callback: (e, editor, colors) => {},\n },\n {\n tooltip: \"Add a survey or quiz\",\n name: t(\"tiptap.blocks.survey\"),\n type: \"survey\",\n image: SurveyIcon,\n callback: (e, editor, colors) => {},\n },\n {\n tooltip: \"Add a form to collect first name and email address\",\n name: t(\"tiptap.blocks.interestForm\"),\n image: ListBuilder,\n type: \"interest_form\",\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n // editor.chain().focus().setTextSelection({ from: to, to: to }).enter().run()\n\n // debugger;\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n },\n },\n {\n tooltip: \"Pull tagged messages from chat spaces and discussion prompts\",\n name: \"Tag feed\",\n type: \"tags-feed\",\n image: TagsIcon,\n callback: (e, editor, colors) => {\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(`

`)\n .run();\n },\n },\n \n // {\n // name: \"Collapsable content\",\n // image: Banner2,\n // callback: (e, editor) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n // editor.chain().focus().setTextSelection({ from: to, to: to }).setDetails().run()\n // }\n // }\n ],\n },\n {\n name: t(\"tiptap.blocks.section2\"), //spaces\n blocks: [\n {\n tooltip: \"Create a space for a learning module or general content\",\n name: t(\"tiptap.blocks.content\"),\n type: \"content\",\n image: ContentIcon,\n callback: () => {},\n },\n {\n tooltip: \"Create a post feed where people can add discussion topics\",\n name: t(\"tiptap.blocks.list\"),\n type: \"list\",\n image: ForumIcon,\n callback: () => {},\n },\n {\n tooltip: \"Create a messaging space for discussion or announcements\",\n name: t(\"tiptap.blocks.discussion\"),\n type: \"discussion\",\n image: DiscussionIcon,\n callback: () => {},\n },\n {\n tooltip: \"Create a single event\",\n name: t(\"tiptap.blocks.event\"),\n type: \"event\",\n image: EventIcon,\n callback: () => {},\n },\n {\n tooltip: \"Create a list of events\",\n name: t(\"tiptap.blocks.events\"),\n type: \"events\",\n image: CalendarIcon,\n callback: () => {},\n },\n {\n tooltip: \"Create a gallery of spaces\",\n name: t(\"tiptap.blocks.showcase\"),\n type: \"showcase\",\n image: ShowcaseIcon,\n callback: () => {},\n },\n ],\n },\n {\n name: t(\"tiptap.blocks.section5\"), //grids\n blocks: [\n {\n tooltip: \"Add a single column grid\",\n name: t(\"tiptap.blocks.grid1\"),\n layout: \"full_width\",\n image: Grid1,\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n try {\n if (!isTopNode(editor)) {\n const parentNode = getTopParentNode(editor);\n editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n } catch (error) {}\n // debugger;\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n '

'\n )\n .run();\n // debugger;\n setTimeout(() => {\n editor.commands.setTextSelection({\n from: editor.view.state.selection.to - 4,\n to: editor.view.state.selection.to - 4,\n });\n }, 10);\n },\n },\n {\n tooltip: \"Add a two column grid\",\n name: t(\"tiptap.blocks.grid2\"),\n layout: \"full_width\",\n image: Grid2,\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n try {\n if (!isTopNode(editor)) {\n const parentNode = getTopParentNode(editor);\n editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n } catch (error) {}\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n '

'\n )\n .run();\n // debugger;\n setTimeout(() => {\n editor.commands.setTextSelection({\n from: editor.view.state.selection.to - 4,\n to: editor.view.state.selection.to - 4,\n });\n }, 10);\n },\n },\n {\n tooltip: \"Add a three column grid\",\n name: t(\"tiptap.blocks.grid3\"),\n layout: \"full_width\",\n image: Grid3,\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n try {\n if (!isTopNode(editor)) {\n const parentNode = getTopParentNode(editor);\n editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n } catch (error) {}\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n '

'\n )\n .run();\n },\n },\n {\n tooltip: \"Add a four column grid\",\n name: t(\"tiptap.blocks.grid6\"),\n layout: \"full_width\",\n image: Grid6,\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n try {\n if (!isTopNode(editor)) {\n const parentNode = getTopParentNode(editor);\n editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n } catch (error) {}\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n '

'\n )\n .run();\n },\n },\n {\n tooltip: \"Add a two column grid with a narrow left column\",\n name: t(\"tiptap.blocks.grid4\"),\n layout: \"full_width\",\n image: Grid4,\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n try {\n if (!isTopNode(editor)) {\n const parentNode = getTopParentNode(editor);\n editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n } catch (error) {}\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n '

'\n )\n .run();\n },\n },\n {\n tooltip: \"Add a two column grid with a narrow right column\",\n name: t(\"tiptap.blocks.grid5\"),\n layout: \"full_width\",\n image: Grid5,\n callback: (e, editor, colors) => {\n // const {from, to} = window.$tiptapLastSelectionRange\n\n try {\n if (!isTopNode(editor)) {\n const parentNode = getTopParentNode(editor);\n editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n } catch (error) {}\n\n editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n '

'\n )\n .run();\n },\n },\n \n ],\n },\n {\n name: t(\"tiptap.blocks.section1\"), //basic\n blocks: [\n {\n tooltip: \"Just start writing with plain text\",\n name: t(\"tiptap.blocks.text\"),\n image: ParagraphIcon,\n callback: (e, editor, colors) => {\n onToggleFormat(editor, \"p\");\n },\n },\n {\n tooltip: \"Big section heading\",\n name: t(\"tiptap.blocks.headline1\"),\n image: Headline1Icon,\n callback: (e, editor, colors) => {\n onToggleFormat(editor, \"h1\");\n },\n },\n {\n tooltip: \"Medium section heading\",\n name: t(\"tiptap.blocks.headline2\"),\n image: Headline2Icon,\n callback: (e, editor, colors) => {\n onToggleFormat(editor, \"h2\");\n },\n },\n {\n tooltip: \"Small section heading\",\n name: t(\"tiptap.blocks.headline3\"),\n image: Headline3Icon,\n callback: (e, editor, colors) => {\n onToggleFormat(editor, \"h3\");\n },\n },\n {\n tooltip: \"Create a bulleted list\",\n name: t(\"tiptap.blocks.bulletList\"),\n image: BulletListIcon,\n callback: (e, editor, colors) => {\n const { from, to } = window.$tiptapLastSelectionRange;\n\n if (!window.$tiptapLastSelectionRange) {\n return;\n }\n\n editor\n .chain()\n .focus()\n .setTextSelection({ from: to, to: to })\n .toggleBulletList()\n .setCustomStyles({\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"4px\",\n \"padding-bottom\": \"4px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n })\n .run();\n },\n },\n {\n tooltip: \"Create a numbered list\",\n name: t(\"tiptap.blocks.orderedList\"),\n image: OrderedListIcon,\n callback: (e, editor, colors) => {\n const { from, to } = window.$tiptapLastSelectionRange;\n\n if (!window.$tiptapLastSelectionRange) {\n return;\n }\n\n editor\n .chain()\n .focus()\n .setTextSelection({ from: to, to: to })\n .toggleOrderedList()\n .setCustomStyles({\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"4px\",\n \"padding-bottom\": \"4px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n })\n .run();\n },\n },\n {\n tooltip: \"Create a checklist\",\n name: t(\"tiptap.blocks.checklist\"),\n image: CheckListIcon,\n callback: (e, editor, colors) => {\n const { from, to } = window.$tiptapLastSelectionRange;\n\n if (!window.$tiptapLastSelectionRange) {\n return;\n }\n\n editor\n .chain()\n .focus()\n .setTextSelection({ from: to, to: to })\n .toggleTaskList()\n .setCustomStyles({\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"4px\",\n \"padding-bottom\": \"4px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n })\n .run();\n },\n },\n ],\n }, \n ];\n};\n","import { useMediaQuery, useViewportSize } from '@mantine/hooks';\n\nexport function addDummyCursor(){\n\n return\n if (!window.$tiptapSelectionCoords){\n }\n\n const dummyCursor = document.createElement('div');\n dummyCursor.id = \"dummyCursor\"\n dummyCursor.style.position = \"absolute\";\n\n const sideFrame = document.getElementsByClassName(\"app-side-frame\")[0]\n const sideFrameWidth = sideFrame.offsetWidth\n\n if (window.$sidebarIsOpen){\n dummyCursor.style.left = window.$tiptapSelectionCoords.left - sideFrameWidth +'px';\n }\n else{\n dummyCursor.style.left = window.$tiptapSelectionCoords.left + 'px';\n }\n dummyCursor.style.top = window.$tiptapSelectionCoords.top - window.$skipHeight + 16 +'px';\n dummyCursor.style.width = \"5px\"\n dummyCursor.style.height = \"25px\"\n dummyCursor.style.backgroundColor = \"black\";\n document.getElementsByClassName(\"tiptap-wrapper\")[0].appendChild(dummyCursor)\n}\n\nexport function removeDummyCursor(){\n\n const dummyCursor = document.getElementById('dummyCursor');\n if (dummyCursor){\n dummyCursor.remove();\n }\n\n}\n","import axios from \"axios\";\n\nclass View {\n constructor() {\n if (this instanceof View) {\n throw Error(\"View class cannot be instantiated.\");\n }\n }\n\n static onFetch = async (id, space_id, sucessCallback, errorCallback) => {\n\n const urlParams = new URLSearchParams(window.location.search);\n\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n preview_ij: urlParams.has('preview_ij') ? true : null\n };\n\n await axios\n .get(`/api/v4/spaces/${space_id}/views/${id}.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchRaw = async (id, space_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n raw: true\n };\n\n await axios\n .get(`/api/v4/spaces/${space_id}/views/${id}.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchBackupById = async (\n id,\n backup_id,\n space_id,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n backup_id,\n };\n\n await axios\n .get(`/api/v4/spaces/${space_id}/views/${id}/backup.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onFetchBackups = async (\n id,\n space_id,\n { page, per },\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n page,\n per,\n };\n\n await axios\n .get(`/api/v4/spaces/${space_id}/views/${id}/backups.json`, { params })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onRestoreBackup = async (\n id,\n backup_id,\n space_id,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n backup_id,\n };\n\n await axios\n .post(\n `/api/v4/spaces/${space_id}/views/${id}/restore_backup.json`,\n params\n )\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUpdate = async (\n id,\n space_id,\n content,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n content: content,\n };\n\n await axios\n .put(`/api/v4/spaces/${space_id}/views/${id}.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onAiMagic = async (\n id,\n space_id,\n ai_params,\n sucessCallback,\n errorCallback\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n ...ai_params,\n };\n\n await axios\n .post(`/api/v4/spaces/${space_id}/views/${id}/ai_magic.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n}\n\nexport default View;\n","import React from \"react\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\n\nimport TiptapInline from \"./TiptapInline\";\n\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\n\nimport { Box } from \"@mantine/core\";\n\nexport default function VisionInput(props) {\n return (\n \n \n \n {}}\n />\n \n \n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\n\nimport VisionInput from '../components/VisionInput';\nimport {stylesToString} from '../../../utils/StylesToString'\n\nconst VisionInputNode = Node.create({\n name: 'visionInput',\n draggable: false,\n allowGapCursor: false,\n selectable: false,\n group: \"block\",\n inline: false,\n\n addAttributes() {\n return {\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"0px\",\n \"padding-bottom\": \"10px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'visionInput',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return ['visionInput', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(VisionInput)\n },\n})\n\nexport default VisionInputNode;\n","import React from \"react\";\n\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\nimport { useSelector } from \"react-redux\";\n\nimport { stylesToCamelCase } from \"../../../utils/StylesToString\";\nimport { wideOrNarrow } from \"../../../utils/PageWidth\";\nimport isDark from \"../../../utils/IsDarkColor\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\n\nimport {\n Group,\n Stack,\n createStyles,\n Image,\n Text,\n Box,\n} from \"@mantine/core\";\nimport { useElementSize, useMediaQuery } from \"@mantine/hooks\";\nimport tinycolor from \"tinycolor2\";\n\nconst useStyles = createStyles(\n (theme, { colors, isDark, isVCard, isList }) => ({\n spaceListItem: {\n backgroundPosition: \"center\",\n backgroundSize: \"cover\",\n borderRadius: \"10px\",\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(1).toString()\n : tinycolor(colors.background_color).darken(1).toString(),\n padding: isVCard ? null : isList ? \"20px 20px\" : \"20px 20px 15px\",\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n display: \"flex\",\n width: \"100%\",\n \"&:hover\": {\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n backgroundColor: isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(2).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n cursor: \"pointer\",\n textDecoration: \"none\"\n }\n },\n title: {\n textDecoration: \"none\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n fontSize: isList ? \"1.7em\" : \"1.5em\",\n lineHeight: isList ? \"1.1em\" : \"1.3em\",\n fontWeight: 600,\n \"&:hover\": {\n textDecoration: \"none\"\n }\n },\n titleGroup: isVCard ? {\n margin: \"15px 10px 0px 10px\"\n } : {\n marginTop: 10\n },\n titleHasHeader: {\n color: \"#fff\",\n textShadow: \"1px 1px #000000\",\n textDecoration: \"none\",\n \"&:hover\": {\n color: \"#fff\",\n textDecoration: \"none\"\n }\n },\n abstract: {\n textDecoration: \"none\",\n margin: isVCard ? \"0px 10px\" : 0,\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n \"overflow-wrap\": \"break-word\",\n \"word-wrap\": \"break-word\",\n \"-ms-word-break\": \"break-all\",\n \"word-break\": \"break-all\",\n \"word-break\": \"break-word\",\n \"&:hover\": {\n textDecoration: \"none\"\n }\n },\n titleSm: {\n fontSize: \"1.2em\"\n },\n thumbnailImageStyle: {\n width: \"100%\",\n borderBottomLeftRadius: isVCard ? 0 : 10,\n borderBottomRightRadius: isVCard ? 0 : 10\n }\n })\n);\n\nexport default function VisionCircle(props) {\n const smallScreen = useMediaQuery(\"(max-width: 1300px)\");\n const { refSize, width } = useElementSize();\n\n const name = props.node.attrs.title;\n const description = props.node.attrs.description;\n const gallery_feature = props.node.attrs.gallery_feature;\n const isVCard = props.node.attrs.viewAs == \"vcard\";\n const isList = props.node.attrs.viewAs == \"list\";\n\n const showVCard = (isVCard || smallScreen) && !isList;\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({\n colors,\n isDark: isDark,\n isVCard: showVCard,\n isList: isList\n });\n\n return (\n \n \n \n {!!gallery_feature?.url && showVCard && (\n \n )}\n \n \n \n \n {name}\n \n \n {!isVCard && (\n \n {description}\n \n )}\n {!isList && }\n \n\n {!!gallery_feature?.url && !smallScreen && !isVCard && !isList && (\n \n )}\n \n \n \n \n );\n}\n","import { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport {stylesToString} from '../../../utils/StylesToString'\n\nimport VisionCircle from '../components/VisionCircle';\n\nconst VisionCircleNode = Node.create({\n name: 'visionCircle',\n allowGapCursor: false,\n addOptions() {\n return {\n inline: false,\n HTMLAttributes: {},\n }\n },\n inline() {\n return this.options.inline\n },\n group() {\n return this.options.inline ? 'inline' : 'block columnable'\n },\n draggable: true,\n addAttributes() {\n return {\n title: {\n default: \"\",\n },\n description: {\n default: \"\",\n },\n gallery_feature: {\n default: null,\n },\n viewAs: {\n default: \"hcard\"\n },\n styles: {\n default: {\n \"margin-top\": \"8px\",\n \"margin-bottom\": \"8px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"6px\",\n \"padding-bottom\": \"0px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n styles: stylesToString(attributes.styles),\n })\n }\n }\n },\n parseHTML() {\n return [\n {\n tag: 'visionCircle',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return ['visionCircle', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes)]\n },\n addNodeView() {\n return ReactNodeViewRenderer(VisionCircle)\n },\n})\n\nexport default VisionCircleNode;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Drawer, Text, Box, ScrollArea } from \"@mantine/core\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport TiptapReadonly from \"./TiptapReadonly\";\n\nconst ViewPage = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n const [page, setPage] = useState({});\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"viewPage\") {\n setPage({...tiptapSidemenu.option.page})\n setOpened(true);\n } else {\n if (!window.$modalSpaceOpened){\n setOpened(false);\n }\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"viewPage\") {\n if (tiptap && tiptap.editor) {\n tiptap.editor.commands.focus();\n }\n window.$closingSideMenu = true;\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n }\n }, [opened]);\n\n return (\n setOpened(false)}\n title={\n \n {page.id\n ? page.title\n : `Resource page`}\n \n }\n padding=\"xl\"\n size={700}\n // overlayOpacity={0.1}\n styles={{\n drawer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n }}\n zIndex={99999}\n >\n \n {page &&\n page.content_json ? (\n \n ) : (\n {t(\"tiptap.components.viewPage.text\")}\n )}\n \n \n \n );\n};\n\nexport default ViewPage;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport { Modal, AspectRatio, ScrollArea } from \"@mantine/core\";\n\nimport { getFullDomain } from \"../../../utils/Host\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\n\n\nconst ViewVideo = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n const [node, setNode] = useState({});\n const video = useRef();\n\n useEffect(() => {\n Broadcaster.receive(\"open_VideVideo\", document.body, (event, data) => {\n console.log(\"open_VideVideo IN\");\n setNode(data.node);\n setOpened(true);\n });\n\n return () => {\n Broadcaster.unRegisterElement(\"open_VideVideo\", document.body);\n };\n }, []);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"viewVideo\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"viewVideo\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n }\n else{\n\n setTimeout(() => {\n if (!video.current){\n return\n }\n if (Hls.isSupported()) {\n let thumbnail = `${node.attrs.src\n .replace(\".m3u8\", \"\")\n .replace(\n \"sutra-video-output.s3.us-west-1.amazonaws.com\",\n \"sutra-video-thumbnails.s3.us-west-1.amazonaws.com/thumbnails\"\n )}_00001.png`;\n if (node.attrs.link.thumbnail && node.attrs.link.thumbnail.url){\n thumbnail = node.attrs.link.thumbnail.url\n }\n video.current.setAttribute(\"poster\", thumbnail);\n\n const hls_config = {\n debug: false,\n xhrSetup: function (xhr, url) {\n // xhr.withCredentials = true; // do send cookie\n // xhr.setRequestHeader(\"Access-Control-Allow-Headers\",\"Content-Type, Accept, X-Requested-With\");\n xhr.setRequestHeader(\n \"Access-Control-Allow-Origin\",\n `${getFullDomain()}`\n );\n // xhr.setRequestHeader(\"Access-Control-Allow-Credentials\",\"true\");\n },\n };\n\n try {\n const hls = new Hls(hls_config);\n\n hls.loadSource(\n `/api/v4/proxy?url=https://sutra-video-output.s3.us-west-1.amazonaws.com/${node.attrs.src\n .split(\"/\")\n .pop()}`\n );\n hls.attachMedia(video.current);\n debugger\n hls.on(Hls.Events.MANIFEST_PARSED, () => {\n video.current.play().catch(function (error) {\n console.error(\"Failed to start video playback:\", error);\n });\n });\n } catch (e) {}\n }\n }, 1000)\n }\n }, [opened]);\n\n return (\n setOpened(false)}\n padding=\"sm\"\n size={900}\n styles={{\n modal: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n }}\n zIndex={99999}\n >\n \n {node && node.type && node.type.name == \"embed\" && (\n \n \n \n )}\n {node && node.type && node.type.name == \"video\" && (\n \n )}\n \n \n );\n};\n\nexport default ViewVideo;\n","import React, { useState, useEffect } from \"react\";\nimport { Box, MantineProvider, Select, Button, Group } from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SurveyModel from \"../../../models/Survey\";\n\nexport default function SurveyPerson(props) {\n const space = useSelector((state) => state.space);\n const [surveys, setSurveys] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"survey\",\n object_id: \"\",\n },\n\n validate: {\n object_id: (value) =>\n value.length > 0 ? null : \"Please select a survey or quiz\",\n },\n });\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n const onFetch = () => {\n SurveyModel.onFetch(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const _surveys = data.data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select an existing survey\",\n }));\n setSurveys([\n {\n value: \"new_survey\",\n label: \"Create a new survey or quiz\",\n group: \"New survey or quiz\",\n },\n ..._surveys,\n ]);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values.object_id);\n };\n\n return (\n \n
onSend(values))}>\n \n \n \n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n size=\"md\"\n fullWidth\n >\n {`Add survey`}\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Drawer, ScrollArea, useMantineTheme } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport CreateSurveyForm from \"../../spaces_neo/settings/surveys/CreateSurveyForm\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport SurveyPerson from \"./SurveyPerson\";\n\nexport default function CreateSurvey(props) {\n const theme = useMantineTheme();\n\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n const [opened, setOpened] = useState(false);\n const [survey, setSurvey] = useState();\n const [step, setStep] = useState(0);\n const colors = useSelector((state) => state.colors);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"createSurvey\") {\n setOpened(true);\n if (tiptapSidemenu.option && tiptapSidemenu.option.survey) {\n setStep(1)\n }\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"createSurvey\") {\n dispatch(setTiptapSidemenu({ opened: null, option: null }));\n }\n setStep(0)\n }\n }, [opened]);\n\n const onCreate = (surveyId) => {\n if (surveyId == \"new_survey\"){\n setStep(1)\n return\n }\n onUpdate(surveyId)\n };\n\n const onUpdate = (surveyId) => {\n \n window.$reloadSurveyId = surveyId\n if (tiptapSidemenu.option && tiptapSidemenu.option.survey) {\n tiptap.editor\n .chain()\n .focus()\n .updateAttributes(\"id\", surveyId)\n .blur()\n .run();\n } else {\n tiptap.editor\n .chain()\n .focus()\n // .enter()\n .insertContent(\n ``\n )\n .run();\n }\n\n setTimeout(() => {\n setOpened(false);\n }, 250);\n };\n\n return (\n setOpened(false)}\n title={\n \n {t(\"spaces.settings.survey.createSurvey.description\")}\n \n }\n padding=\"xl\"\n size={600}\n overlayOpacity={0.1}\n // zIndex={99999}\n >\n \n {step == 0 ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, SegmentedControl, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Summary from \"../../spaces_neo/settings/surveys/Summary\";\nimport Individual from \"../../spaces_neo/settings/surveys/Individual\";\n\nimport SurveyModel from \"../../../models/Survey\";\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nexport default function ShowSurvey(props) {\n const dispatch = useDispatch();\n\n\n const space = useSelector((state) => state.space);\n const [surveyType, setSurveyType] = useState(\"summary\");\n const { t, i18n } = useTranslation();\n const [survey, setSurvey] = useState(null);\n const [opened, setOpened] = useState(false);\n\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n useEffect(() => {\n if (props.survey && props.survey.id) {\n onFetch();\n }\n }, [props]);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"showSurvey\") {\n \n if (tiptapSidemenu.option && tiptapSidemenu.option.survey) {\n onFetch(tiptapSidemenu.option.survey.id)\n }\n setOpened(true);\n } else {\n if (!window.$modalSpaceOpened){\n setOpened(false);\n }\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"showSurvey\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n }\n }, [opened]);\n\n const onFetch = (id) => {\n SurveyModel.onFetchById(\n id,\n space.id,\n (data) => {\n setSurvey(data);\n },\n (data) => {}\n );\n };\n\n const displaySurveyType = () => {\n if (surveyType == \"summary\") {\n return ;\n } else if (surveyType == \"individual\") {\n return ;\n } else {\n return ;\n }\n };\n\n return (\n setOpened(false)}\n title={\n \n {t(\"spaces.settings.survey.showSurvey.survey.title\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n\n {displaySurveyType()}\n\n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setActions } from \"../../../store/app\";\nimport ViewModel from \"../../../models/View\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { Text, Button, Group, Container, Box } from \"@mantine/core\";\nimport tinycolor from \"tinycolor2\";\n\n\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\n\nimport TiptapNoHP from \"./TiptapNoHP\";\n\nconst EmptyMessage = (props) => {\n const { t, i18n } = useTranslation();\n const colors = useSelector((state) => state.colors);\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const mainActions = useSelector((state) => state.mainActions);\n\n const tiptap = useSelector((state) => state.tiptap);\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const intervalId = useRef();\n const [content, setContent] = useState();\n\n useEffect(() => {\n onFetch();\n }, [space]);\n\n const onEditPage = () => {\n dispatch(setActions({ editPage: true }));\n };\n\n const onUseTemplate = () => {\n if (intervalId.current) {\n clearInterval(intervalId.current);\n }\n\n dispatch(setActions({ editPage: true }));\n window.$openTemplatesOnEditMode = true;\n };\n\n const onTryDemo = () => {\n window.open(`https://complexity.sutra.co`, \"_blank\");\n }\n\n const onLearnMore = () => {\n if (space.pod_state == \"model\") {\n return;\n }\n trackMixpanel(user.username, \"Tutorial Opened\");\n navigate(`/space/${space.slug}/getting_started`);\n }\n\n const onFetch = () => {\n ViewModel.onFetch(\n \"welcome_message\",\n space.slug,\n (data) => {\n setContent({ ...data.content });\n },\n (data) => {\n navigate(`/home/top`);\n }\n );\n };\n\n return (\n <>\n {space.permissions &&\n space.permissions.can_edit &&\n (props.useSpace2 ? (\n \"\"\n ) : (\n <>\n {space &&\n space.parents.length == 0 &&\n content &&\n content.default && (\n \n \n \n )}\n {space && space.parents.length == 0 ? (\n \n \n onEditPage()}\n >\n {\"Start from scratch\"}\n \n onUseTemplate()}\n >\n {\"Use a template\"}\n \n onTryDemo()}\n >\n {\"Try a demo course\"}\n \n onLearnMore()}\n >\n {\"Learn more\"}\n \n \n \n \n ) : (\n \n \n ({\n color: tinycolor(colors.default_text_color)\n .lighten(55)\n .toString(),\n // fontWeight: 500\n })}\n >\n {t(\"tiptap.components.emptyMessage.text\")}\n \n onEditPage()}\n >\n {t(\"tiptap.components.emptyMessage.button1\")}\n \n ({\n color: tinycolor(colors.default_text_color)\n .lighten(55)\n .toString(),\n // fontWeight: 500\n })}\n >\n {t(\"tiptap.components.emptyMessage.text2\")}\n \n onUseTemplate()}\n >\n {t(\"tiptap.components.emptyMessage.button2\")}\n \n ({\n color: tinycolor(colors.default_text_color)\n .lighten(65)\n .toString(),\n // fontWeight: 500\n })}\n >\n {t(\"tiptap.components.emptyMessage.text3\")}\n \n \n \n )}\n \n ))}\n \n );\n};\n\nexport default EmptyMessage;\n","import { Extension } from '@tiptap/core'\nimport { TextSelection } from 'prosemirror-state';\n\nimport { setUniqId } from \"../utils/selection\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setCookie } from \"../../../utils/Cookies\";\nimport { getRoot } from '../../../utils/Host';\n\nconst EditorEvents = Extension.create({\n onBeforeCreate({ editor }) {\n\n },\n onCreate({ editor }) {\n // console.log(\"TIPTAP: onCreate\")\n window.$tiptapNeedSaving = {status: false, leave: false, init: true}\n setTimeout(() => {\n // console.log(\"TIPTAP: onInit finished\")\n window.$tiptapNeedSaving.init = false\n }, 2000)\n },\n onUpdate({ editor }) {\n if (window.$tiptapNeedSaving && !window.$tiptapNeedSaving.init){\n // console.log(\"TIPTAP: onUpdate\")\n window.$tiptapNeedSaving.status = true\n window.$tiptapNeedSaving.leave = false\n }\n\n setCookie(\n `last_local_updated_at_${window.location.href.split(\"/\")[4]}`,\n Math.floor(Date.now() / 1000),\n 365 * 10\n );\n\n const { tr, doc } = editor.view.state;\n \n const types = [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"horizontalRule\",\n \"infobox\",\n \"tagsFeed\"\n ]\n const usedUuid = [];\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (!node.isText && types.indexOf(node.type.name) >= 0 && (!node.attrs.uid || usedUuid.indexOf(node.attrs.uid) >= 0)) {\n usedUuid.push(setUniqId(editor, pos));\n }\n else{\n usedUuid.push(node.attrs.uid)\n }\n });\n\n\n\n },\n onSelectionUpdate({ editor }) {\n if (!editor.isEditable){\n return\n }\n\n const {from, to, $anchor} = editor.view.state.selection\n\n\n if (window.$sectionParams && window.$sectionParams.isSelection == true) {\n\n const pos = editor.view.state.doc.resolve(from);\n let parent = null;\n if (pos.depth > 0) {\n parent = pos.node(1);\n }\n if (parent?.type?.name === \"doc\") {\n parent = pos.node(pos.depth - 1);\n }\n\n let node = parent ? parent : editor.view.state.selection.$anchor.parent;\n\n if (node?.type?.name === \"doc\") {\n node = editor.view.state.doc.nodeAt(from)\n }\n\n window.$sectionParams.isSelection = false\n\n const transaction = editor.view.state.tr.setSelection(\n TextSelection.create(editor.view.state.doc, window.$sectionParams.origin.from, window.$sectionParams.origin.to)\n );\n\n editor.view.dispatch(transaction);\n\n const path = window.location.pathname.indexOf(\"/registration\") >= 0 ? \"register\" : \"content\";\n\n if (node?.attrs?.uid) {\n const href = `${getRoot()}/space/${window.$currentSlug}/${path}#jumpTo=${node.attrs.uid}`;\n\n if (typeof window.$sectionParams.onUpdateLink === \"function\") {\n window.$sectionParams.onUpdateLink(href);\n } else {\n editor.commands.setLink({\n href,\n target: null\n });\n }\n\n Swal.fire({\n title: `${window.$sectionParams.swalTitle}`,\n icon: \"success\"\n });\n } else {\n Swal.fire({\n title: `Please try again.`,\n icon: \"error\"\n });\n }\n \n }\n \n const time = new Date().getTime()\n\n window.$tiptapSelectionRange = {from, to, time}\n\n window.$tiptapSelectionCoords = editor.view.coordsAtPos(to)\n \n window.$selectionUpdateForConfigurations = true\n \n \n },\n onTransaction({ editor, transaction }) {\n // console.log(\"TIPTAP: onTransaction\")\n // console.log(transaction)\n \n },\n onFocus({ editor, event }) {\n if (!editor.isEditable){\n return\n }\n if (window.$tiptapLastSelectionRange && window.$closingSideMenu){\n\n window.$closingSideMenu = false\n // const {from, to} = window.$tiptapLastSelectionRange\n // window.$tiptapLastSelectionRange = null\n // editor.chain().setTextSelection({ from: to, to: to }).run()\n }\n\n },\n onBlur({ editor, event }) {\n\n },\n onDestroy() {\n },\n})\n\nexport default EditorEvents;\n","import { Extension } from '@tiptap/core'\nimport {stylesToString} from '../../../utils/StylesToString'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst ListStyles = Extension.create({\n name: \"listStyles\",\n addOptions() {\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'tasklist',\n 'orderedlist',\n 'bulletList',\n\n ],\n // … with those attributes\n attributes: {\n styles: {\n default: {\n \"margin-top\": \"0px\",\n \"margin-bottom\": \"0px\",\n \"margin-left\": \"0px\",\n \"margin-right\": \"0px\",\n \"padding-top\": \"4px\",\n \"padding-bottom\": \"4px\",\n \"padding-left\": \"0px\",\n \"padding-right\": \"0px\",\n \"background-color\": \"\",\n \"background-image\": \"none\",\n \"background-position\": \"center center\",\n \"background-size\": \"cover\",\n \"background-repeat\": \"no-repeat\",\n },\n renderHTML: attributes => ({\n style: stylesToString(attributes.styles),\n })\n }\n },\n },\n ]\n },\n addCommands() {\n return {\n setListStyles: (styles) => ({ commands, chain, view }) => {\n if (!window.$tiptapSelectionRange){\n return\n }\n const {from, to} = window.$tiptapSelectionRange\n\n\n const { selection } = view.state\n\n const content = selection.node ? selection.node : selection.$anchor.parent\n\n return commands.updateAttributes(content.type.name, { styles: styles })\n\n\n },\n }\n },\n})\n\nexport default ListStyles;\n","import { Extension } from '@tiptap/core'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomRadius = Extension.create({\n name: \"customRadius\",\n addOptions() {\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'image',\n 'video',\n 'embed',\n 'file',\n 'audio',\n 'actionbutton',\n 'customform',\n 'survey',\n 'interactiveButton',\n 'interactiveInput',\n 'circle'\n ],\n // … with those attributes\n attributes: {\n radius: {\n default: \"no-radius\",\n renderHTML: attributes => ({\n radius: `${attributes.radius}`,\n })\n }\n },\n },\n ]\n },\n addCommands() {\n return {\n setCustomRadius: (_radius) => ({ commands }) => {\n\n return this.options.types.every(type => commands.updateAttributes(type, { radius: _radius }))\n },\n }\n },\n})\n\nexport default CustomRadius;\n","import { Extension } from '@tiptap/core'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomNestedRadius = Extension.create({\n name: \"customNestedRadius\",\n addOptions() {\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'paragraph',\n 'heading',\n 'bulletList',\n 'orderedList',\n 'taskList',\n 'gird1',\n 'gird2',\n 'gird3',\n 'column',\n ],\n // … with those attributes\n attributes: {\n nestedRadius: {\n default: \"no-radius\",\n renderHTML: attributes => ({\n nestedRadius: `${attributes.nestedRadius}`,\n })\n }\n },\n },\n ]\n },\n addCommands() {\n return {\n setCustomNestedRadius: (_nestedRadius) => ({ commands }) => {\n\n return this.options.types.every(type => commands.updateAttributes(type, { nestedRadius: _nestedRadius }))\n },\n }\n },\n})\n\nexport default CustomNestedRadius;\n","import { Extension } from \"@tiptap/core\";\n\nimport { Plugin } from \"prosemirror-state\";\nimport { Decoration, DecorationSet } from \"prosemirror-view\";\n\nconst Placeholder = Extension.create({\n name: \"placeholder\",\n\n addOptions() {\n return {\n emptyEditorClass: \"is-editor-empty\",\n emptyNodeClass: \"is-empty\",\n placeholder: \"Write something …\",\n showOnlyWhenEditable: true,\n showOnlyCurrent: true,\n includeChildren: false,\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n decorations: ({ doc, selection }) => {\n const active =\n this.editor.isEditable || !this.options.showOnlyWhenEditable;\n const { anchor } = selection;\n const decorations = [];\n\n if (!active) {\n return null;\n }\n\n doc.descendants((node, pos) => {\n const hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize;\n const isEmpty = !node.isLeaf && !node.childCount;\n\n if ((hasAnchor || !this.options.showOnlyCurrent) && isEmpty) {\n const classes = [this.options.emptyNodeClass];\n\n if (this.editor.isEmpty) {\n classes.push(this.options.emptyEditorClass);\n }\n\n const decoration = Decoration.node(pos, pos + node.nodeSize, {\n class: classes.join(\" \"),\n \"data-placeholder\":\n typeof this.options.placeholder === \"function\"\n ? this.options.placeholder({\n editor: this.editor,\n node,\n pos,\n hasAnchor,\n })\n : this.options.placeholder,\n });\n\n decorations.push(decoration);\n }\n\n return this.options.includeChildren;\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n});\n\nexport default Placeholder;\n","import { Extension } from '@tiptap/core'\n\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst Interactive = Extension.create({\n name: \"interactive\",\n addOptions() {\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'interactiveButton',\n 'interactiveInput',\n 'interactiveWait',\n ],\n // … with those attributes\n attributes: {\n isInteractive: {\n default: true,\n },\n interactivePosition: {\n default: 0,\n },\n isBlocking: {\n default: true\n }\n },\n },\n ]\n },\n})\n\nexport default Interactive;\n","import { Extension } from \"@tiptap/core\";\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst Incrementor = Extension.create({\n name: \"incrementor\",\n addOptions() {\n return {\n types: [],\n };\n },\n addGlobalAttributes() {\n return [\n {\n // Extend the following extensions\n types: [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"infobox\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n ],\n // … with those attributes\n attributes: {\n incrementor: {\n default: 0,\n },\n },\n },\n ];\n },\n});\n\nexport default Incrementor;\n","import { Extension } from '@tiptap/core'\n\n// https://tiptap.dev/guide/custom-extensions#attributes\n\nconst CustomBlockId = Extension.create({\n name: \"customBlockId\",\n addOptions() {\n\n return {\n types: [],\n }\n },\n addGlobalAttributes() {\n\n return [\n {\n // Extend the following extensions\n types: [\n 'paragraph',\n 'heading',\n 'orderedlist',\n 'bulletList',\n ],\n // … with those attributes\n attributes: {\n blockId: {\n default: \"\",\n },\n },\n },\n ]\n },\n addCommands() {\n return {\n setCustomBlockId: (_blockId) => ({ commands, view }) => {\n\n return this.options.types.every(type => commands.updateAttributes(type, { blockId: _blockId }))\n },\n }\n },\n})\n\nexport default CustomBlockId;\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport MessageModel from \"../../../../models/Message\";\n\nimport Message from \"../discussion/Message\";\nimport Reflections from \"../discussion/Reflections\";\n\nimport NotificationModel from \"../../../../../models/NotificationModel\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from '../../../../collections/defaultSpaceColors'\nimport trackMixpanel from \"../../../../utils/TrackMixpanel\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport {\n Button,\n createStyles,\n Box,\n ScrollArea,\n Drawer,\n Center,\n Divider,\n Group,\n Text\n} from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { useInView } from \"react-intersection-observer\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { ActionCableContext } from \"../../../../components/Index\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n drawer: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n buttonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primar_button_text_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(5)\n .toString(),\n },\n },\n dividerStyle: {\n marginTop: 10,\n marginBottom: 10,\n borderTop: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : colors.header_color\n }`,\n },\n}));\n\nexport default function Comments(props) {\n const cable = useContext(ActionCableContext);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n const user = useSelector((state) => state.user);\n const { classes, cx, theme } = useStyles({ colors: getColors(), props });\n const { t } = useTranslation();\n\n const [messages, setMessages] = useState([]);\n const [tagging, setTagging] = useState(0);\n\n const [receiveData, setReceiveData] = useState(null);\n const [canLoadMore, setCanLoadMore] = useState(false);\n const [allowComments, setAllowComments] = useState(false);\n\n const [openedReflections, setOpenedReflections] = useState(false);\n const [selectedMessage, setSelectedMessage] = useState(null);\n const [reflectionsTagging, setReflectionsTagging] = useState(false);\n const [reflectionsDrawerHeader, setReflectionsDrawerHeader] = useState(\n window.$showBackButtonModal ? t(\"spaces.presentations.discussion.backToPost\") : t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n const { ref, inView } = useInView({ triggerOnce: true });\n\n const viewport = useRef();\n\n const loaded = useRef();\n const messagesCopy = useRef([]);\n const querySearchCount = useRef(0);\n\n const paginator = useRef({\n per: 30,\n page: 1,\n });\n\n const lastConnectionAttempt = useRef({\n slug: null,\n state: null,\n channel: null,\n });\n\n useEffect(() => {\n if (inView && !loaded.current) {\n onFetchMessages();\n performCableConnection();\n }\n }, [inView]);\n\n useEffect(() => {\n const search = window.location.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n\n if (pod_message_id && messages.length > 0) {\n searchForMessage(pod_message_id);\n }\n }, [messages]);\n\n useEffect(() => {\n if (!getSpace().slug){\n return\n }\n if (!window.$currentSpaceAllowComments){\n setAllowComments(getSpace().permissions.allow_comments)\n }\n else{\n if (window.$currentSpaceAllowComments.slug == getSpace().slug){\n setAllowComments(window.$currentSpaceAllowComments.allow)\n }\n else{\n setAllowComments(getSpace().permissions.allow_comments)\n }\n }\n }, [space, space2])\n\n useEffect(() => {\n if (receiveData) {\n let changes = receiveData.changes;\n if (receiveData.state != \"multi\") {\n changes = [receiveData];\n }\n\n for (var i = 0; i < changes.length; i++) {\n if (changes[i].state == \"new\") {\n onReceivedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"update\") {\n onUpdatedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"destroy\") {\n onDestroyedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"pin\") {\n onPinnedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"unpin\") {\n onPinnedMessage(null);\n }\n }\n }\n }, [receiveData]);\n\n const getSpace = () => {\n if (props.useSpace2){\n return space2;\n }\n else{\n return space;\n }\n }\n\n const performCableConnection = () => {\n if (lastConnectionAttempt.current.channel) {\n //lastConnectionAttempt.current.channel.unsubscribe();\n }\n lastConnectionAttempt.current.channel = cable.subscriptions.create(\n {\n channel: \"PodsChannel\",\n pod_slug: getSpace().slug,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\"Interactive Input Channel connected: \" + getSpace().slug);\n },\n disconnected: () => {},\n received: (data) => {\n console.log(\"Interactive Input Received data: \");\n console.log(data);\n if (data.slug == getSpace().slug) {\n setReceiveData(data);\n return;\n }\n },\n }\n );\n };\n\n const onReceivedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n getSpace().slug,\n (data) => {\n if (data.user.id == user.id) {\n setTimeout(() => {\n scrollToBottom();\n }, 500);\n }\n\n let newMessages = [...messagesCopy.current];\n\n if (messagesCopy.current.length == 0) {\n messagesCopy.current = [...messages];\n newMessages = [...messagesCopy.current];\n }\n\n newMessages.push(data);\n messagesCopy.current.push(data);\n\n setMessages(newMessages);\n },\n (data) => {}\n );\n };\n\n const onUpdatedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n getSpace().slug,\n (data) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages[i] = data;\n if (selectedMessage && messageId == selectedMessage.id) {\n setSelectedMessage({ ...newMessages[i] });\n }\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n },\n (data) => {}\n );\n };\n\n const onDestroyedMessage = (messageId) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages.splice(i, 1);\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n };\n\n const onPinnedMessage = (messageId) => {\n //const newSpace = { ...space };\n //newSpace.pin_message = messageId;\n // dispatch(setSpace(newSpace));\n };\n\n const searchForMessage = (messageId) => {\n if (querySearchCount.current > 10) {\n return;\n }\n\n querySearchCount.current++;\n\n const search = window.location.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n const reflection_id = new URLSearchParams(search).get(\"reflection_id\");\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n querySearchCount.current = 99;\n scrollToMessage(messageId);\n if (reflection_id) {\n const newMessage = { ...messages[i] };\n newMessage.reflectionId = reflection_id;\n\n setSelectedMessage(newMessage);\n setOpenedReflections(true);\n markReflectionAsSeen(messageId);\n setReflectionsDrawerHeader(\n window.$showBackButtonModal ? t(\"spaces.presentations.discussion.backToPost\") : t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n }\n return;\n }\n }\n\n onFetchMessages();\n };\n\n const scrollToMe = () => {\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`${props.node.attrs.uid}`);\n const $contentScrollViewport = document.getElementById(`main-scroll-area`).querySelectorAll(\"div\")[0];;\n const top =\n $scrollTo.offsetTop -\n $contentScrollViewport.offsetTop +\n $contentScrollViewport.scrollTop +\n 80;\n\n $contentScrollViewport.scrollTo({\n top: top,\n behavior: \"smooth\",\n });\n } catch (e) {}\n }, 500);\n };\n\n const scrollToMessage = (messageId) => {\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`msg_${messageId}`);\n const $contentScrollViewport = document.getElementById(`main-scroll-area`).querySelectorAll(\"div\")[0];;\n const top =\n $scrollTo.offsetTop -\n $contentScrollViewport.offsetTop +\n $contentScrollViewport.scrollTop +\n 80;\n\n $contentScrollViewport.scrollTo({\n top: top,\n behavior: \"smooth\",\n });\n } catch (e) {}\n }, 500);\n };\n\n const scrollToBottom = () => {\n setTimeout(() => {\n try {\n const $contentScrollViewport = document.getElementById(`main-scroll-area`).querySelectorAll(\"div\")[0];;\n if ($contentScrollViewport) {\n const top = $contentScrollViewport.scrollHeight;\n $contentScrollViewport.scrollTo({ top: top });\n }\n } catch (e) {}\n }, 500);\n };\n\n const onFetchMessages = () => {\n const search = window.location.search;\n const _tag = new URLSearchParams(search).get(\"tag\");\n\n if (_tag) {\n trackMixpanel(window.$currentUsername, \"Tag clicked\", { space_slug: getSpace().slug }); \n }\n\n MessageModel.onFetch(\n getSpace().slug,\n { tag: _tag, message_type: \"comment\" },\n paginator.current.page,\n (data) => {\n setCanLoadMore(paginator.current.page < data.pages);\n\n if (paginator.current.page == 1) {\n messagesCopy.current = [...data.data];\n setMessages([...data.data]);\n } else if (data.data.length > 0) {\n const auxData = data.data.concat(messagesCopy.current);\n messagesCopy.current = [...auxData];\n setMessages([...auxData]);\n }\n },\n (data) => {}\n );\n };\n\n const onLoadMore = () => {\n paginator.current.page++;\n onFetchMessages();\n };\n\n const onOpenReflections = (messageId) => {\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n markReflectionAsSeen(messageId);\n setSelectedMessage(messages[i]);\n break;\n }\n }\n };\n\n const markReflectionAsSeen = (messageId) => {\n NotificationModel.onMarkAsSeen(\"reflection\", messageId, (data) => {});\n };\n\n if (!allowComments) {\n return null;\n }\n\n return (\n \n \n {getSpace().slug && messages.length > 0 && (\n \n {canLoadMore && (\n
\n ({\n color: getColors().primary_button_background_color,\n border: `1px solid ${getColors().primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(getColors().background_color)\n .darken(3)\n .toString(),\n },\n })}\n onClick={(event) => onLoadMore()}\n >\n {t(\"tiptap.components.interactiveInput.loadMoreResponse\")}\n \n
\n )}\n \n {messages.map((message) => {\n return (\n \n );\n })}\n \n\n {getSpace() && getSpace().permissions && (\n setOpenedReflections(false)}\n title={\n window.$showBackButtonModal ? setOpenedReflections(false) : null}>\n {window.$showBackButtonModal && (\n \n )}\n \n {window.$showBackButtonModal ? t(\"spaces.presentations.discussion.backToPost\") : t(\"spaces.presentations.discussion.reflectionHeader\")}\n \n \n }\n padding=\"xl\"\n size={600}\n classNames={{\n drawer: classes.drawer,\n header: classes.drawerHeader,\n }}\n >\n \n \n )}\n
\n )}\n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport MessageModel from \"../../../../models/Message\";\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\n\nimport { storeJSON } from \"../../../../utils/LocalDB\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from '../../../../collections/defaultSpaceColors'\n\nimport {\n createStyles,\n Box,\n Paper,\n Group,\n Switch,\n Center,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n}));\n\nexport default function Comments(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n \n const navigate = useNavigate()\n \n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n\n const { classes, cx, theme } = useStyles({ colors: getColors() });\n\n const [saving, setSaving] = useState(false);\n const [allowComments, setAllowComments] = useState(false);\n\n const content = useRef();\n const mounted = useRef();\n\n useEffect(() => {\n if (!getSpace().slug){\n return\n }\n if (!window.$currentSpaceAllowComments){\n setAllowComments(getSpace().permissions.allow_comments)\n }\n else{\n if (window.$currentSpaceAllowComments.slug == getSpace().slug){\n setAllowComments(window.$currentSpaceAllowComments.allow)\n }\n else{\n setAllowComments(getSpace().permissions.allow_comments)\n }\n }\n }, [space, space2])\n\n useEffect(() => {\n if (mounted.current) {\n window.$currentSpaceAllowComments = {slug: getSpace().slug, allow: allowComments}\n onSaveSettings();\n } else {\n setTimeout(() => {\n mounted.current = true;\n }, 1000);\n }\n }, [allowComments]);\n\n const getSpace = () => {\n if (props.useSpace2){\n return space2;\n }\n else{\n return space;\n }\n }\n\n const onSaveSettings = () => {\n SpaceSettingModel.onUpdate(\n space.slug,\n { pod_settings_attributes: { allow_comments: allowComments } },\n (data) => {\n scrollToBottom();\n },\n (data) => {}\n );\n };\n\n const onContentUpdate = (_content, html, clearCallback, isEmpty) => {\n content.current = {\n json: _content.content,\n html: html,\n clear: clearCallback,\n };\n };\n\n const onSave = () => {\n\n if (!user.authenticated) {\n\n localStorage.setItem(\"join_slug\", space.slug);\n navigate(`/user/start?s=${space.slug}`);\n return;\n }\n\n if (!content.current) {\n return;\n }\n\n if (!props.editable && !saving) {\n setSaving(true);\n\n setTimeout(() => {\n const json = {\n attrs: {\n uid: `message-${new Date().getTime()}`,\n },\n type: \"paragraph\",\n content: content.current.json,\n };\n const html = content.current.html;\n\n MessageModel.onCreate(\n getSpace().slug,\n { json, html, message_type: \"comment\" },\n (data) => {\n setSaving(false);\n content.current.clear();\n storeJSON(\"spaces\", `comments-${getSpace().slug}`, { json: \"\", html: \"\" });\n },\n (data) => {\n setSaving(false);\n }\n );\n }, 550);\n }\n };\n\n const scrollToBottom = () => {\n setTimeout(() => {\n try {\n const $contentScrollViewport = document.getElementById(`main-scroll-area`).querySelectorAll(\"div\")[0];;\n if ($contentScrollViewport) {\n const top = $contentScrollViewport.scrollHeight;\n $contentScrollViewport.scrollTo({ top: top });\n }\n } catch (e) {}\n }, 500);\n };\n\n const toggleAllowComments = (event) => {\n event.stopPropagation();\n\n if (getSpace().interactions && event.currentTarget.checked == true){\n setAllowComments(false)\n return\n }\n\n setAllowComments(event.currentTarget.checked)\n }\n\n const getCommentsToggleLabel = () => {\n if (getSpace().interactions){\n return t(\"spaces.presentations.content.commentInput.toggleLabel1\")\n }\n if (getSpace().parents_versions && (getSpace().parents_versions.indexOf(\"list\") >= 0 || getSpace().parents_versions.indexOf(\"showcase\") >= 0)){\n return t(\"spaces.presentations.content.commentInput.toggleLabel2\")\n }\n else{\n if (getSpace().calendar.has_start_date){\n return t(\"spaces.presentations.content.commentInput.toggleLabel3\")\n }\n else{\n return t(\"spaces.presentations.content.commentInput.toggleLabel4\")\n }\n }\n }\n\n return (\n \n\n {props.editable && (getSpace().slug && getSpace().permissions.can_manage) && allowComments ? (\n toggleAllowComments(event)}\n >\n
\n \n \n toggleAllowComments(event)\n }\n label={getCommentsToggleLabel()}\n styles={{\n label: { color: getColors().sidebar_text_color },\n }}\n />\n \n
\n \n ) : (\n \n )}\n\n {getSpace().permissions.can_moderate && (\n \n )}\n \n {allowComments && (\n <>\n \n \n \n )}\n
\n );\n}\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport LikeButton from \"../../likes/Button\";\n\nimport { Box } from \"@mantine/core\";\n\nconst TiptapLikeButtonWrapper = (props) => {\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n return (\n <>\n {getSpace().slug && getSpace().list_allow_likes && (\n \n \n \n )}\n \n );\n};\n\nexport default TiptapLikeButtonWrapper;\n","import React from \"react\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\nimport { useSelector } from \"react-redux\";\n\nimport StarterKit from \"@tiptap/starter-kit\";\n\nimport TextStyle from \"@tiptap/extension-text-style\";\nimport { Color } from \"@tiptap/extension-color\";\n\nimport TaskItem from \"@tiptap/extension-task-item\";\n\nimport UniqueID from \"../plugins/CustomUniqId\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Details from \"@tiptap-pro/extension-details\";\nimport DetailsSummary from \"@tiptap-pro/extension-details-summary\";\nimport DetailsContent from \"@tiptap-pro/extension-details-content\";\nimport Focus from \"@tiptap/extension-focus\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport Underline from \"@tiptap/extension-underline\";\n\nimport Link from \"@tiptap/extension-link\";\nimport CircleNode from \"../nodes/CircleNode\";\nimport Grid4Node from \"../nodes/Grid4Node\";\nimport Grid3Node from \"../nodes/Grid3Node\";\nimport Grid2Node from \"../nodes/Grid2Node\";\nimport Grid1Node from \"../nodes/Grid1Node\";\nimport InfoBoxNode from \"../nodes/InfoBoxNode\";\nimport ColumnNode from \"../nodes/ColumnNode\";\nimport ParagraphNode from \"../nodes/ParagraphNode\";\nimport HeadingNode from \"../nodes/HeadingNode\";\nimport ImageNode from \"../nodes/ImageNode\";\nimport VideoNode from \"../nodes/VideoNode\";\nimport AudioNode from \"../nodes/AudioNode\";\nimport EmbedNode from \"../nodes/EmbedNode\";\nimport FileNode from \"../nodes/FileNode\";\nimport ListItemNode from \"../nodes/ListItemNode\";\nimport ResourceNode from \"../nodes/ResourceNode\";\nimport SurveyNode from \"../nodes/SurveyNode\";\nimport FormNode from \"../nodes/FormNode\";\nimport ButtonNode from \"../nodes/ButtonNode\";\nimport InteractiveInputNode from \"../nodes/InteractiveInputNode\";\nimport InteractiveButtonNode from \"../nodes/InteractiveButtonNode\";\nimport InteractiveWaitNode from \"../nodes/InteractiveWaitNode\";\nimport FancyLinkNode from \"../nodes/FancyLinkNode\";\nimport HorizontalRule from \"../nodes/HorizontalRuleNode\";\nimport TagsFeedNode from \"../nodes/TagsFeedNode\";\nimport VisionInputNode from \"../nodes/VisionInputNode\";\nimport VisionCircleNode from \"../nodes/VisionCircleNode\";\n\nimport TaskList from \"../nodes/TaskList\";\nimport BulletList from \"../nodes/BulletList\";\nimport OrderedList from \"../nodes/OrderedList\";\n\nimport ViewPage from \"./ViewPage\";\nimport ViewVideo from \"./ViewVideo\";\nimport TakeSurvey from \"./TakeSurvey\";\nimport CreateSurvey from \"./CreateSurvey\";\nimport ShowSurvey from \"./ShowSurvey\";\n\nimport EmptyMessage from \"./EmptyMessage\";\nimport EventHandler from \"../plugins/EventHandler\";\nimport EditorEvents from \"../plugins/EditorEvents\";\nimport CustomStyles from \"../plugins/CustomStyles\";\nimport ListStyles from \"../plugins/ListStyles\";\nimport ColumnStyles from \"../plugins/ColumnStyles\";\nimport CustomSize from \"../plugins/CustomSize\";\nimport CustomResizeable from \"../plugins/CustomResizeable\";\nimport CustomButton from \"../plugins/CustomButton\";\nimport CustomRadius from \"../plugins/CustomRadius\";\nimport CustomNestedRadius from \"../plugins/CustomNestedRadius\";\nimport Placeholder from \"../plugins/Placeholder\";\nimport Interactive from \"../plugins/Interactive\";\nimport Incrementor from \"../plugins/Incrementor\";\nimport CustomBlockId from \"../plugins/CustomBlockId\";\nimport { isDocumentEmpty } from \"../utils/selection\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport { Box, Container } from \"@mantine/core\";\n\nimport { EditorView } from \"prosemirror-view\";\n\nimport Emoji, { gitHubEmojis } from \"@tiptap-pro/extension-emoji\";\n\nimport { Mention } from \"../plugins/Mention\";\nimport mentionSuggestion from \"../plugins/mentionSuggestion\";\n\nimport Comments from \"../../spaces_neo/presentations/content/Comments\";\nimport CommentInput from \"../../spaces_neo/presentations/content/CommentInput\";\n\nimport LikeButton from \"../../likes/Button\";\nimport TiptapLikeButtonWrapper from \"./TiptapLikeButtonWrapper\";\n\n// Tiptap -> prosemirror bug / issue\n//https://github.com/ueberdosis/tiptap/issues/1451#issuecomment-953348865\nEditorView.prototype.updateState = function updateState(state) {\n try {\n if (!this.docView) return; // This prevents the matchesNode error on hot reloads\n this.updateStateInner(state, this.state.plugins != state.plugins);\n } catch {\n return;\n }\n};\n\nconst Tiptap = (props) => {\n const { settingsView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !settingsView ? colors : defaultSpaceColors;\n\n const editor = useEditor({\n onCreate({ editor }) {\n // applyDevTools(editor.view);\n },\n editable: false,\n content: props.content,\n extensions: [\n StarterKit.configure({\n history: false,\n paragraph: false,\n heading: false,\n listItem: false,\n orderedList: false,\n bulletList: false,\n blockquote: false,\n }),\n UniqueID.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"horizontalRule\",\n \"infobox\",\n \"tagsFeed\",\n \"visionInput\",\n \"visionCircle\",\n ],\n }),\n Incrementor.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"horizontalRule\",\n \"infobox\",\n \"tagsFeed\",\n \"visionInput\",\n \"visionCircle\",\n ],\n }),\n CustomBlockId.configure({\n types: [\"heading\", \"paragraph\", \"bulletList\", \"orderedList\"],\n }),\n CustomNestedRadius.configure({\n types: [\n \"paragraph\",\n \"heading\",\n \"bulletList\",\n \"orderedList\",\n \"taskList\",\n \"gird1\",\n \"gird2\",\n \"gird3\",\n \"gird4\",\n \"column\",\n \"infobox\",\n ],\n }),\n Highlight.configure({\n multicolor: true,\n }),\n HorizontalRule,\n Underline,\n // History,\n ListItemNode,\n TextStyle,\n Color,\n ParagraphNode,\n // LeafParagraphNode,\n HeadingNode,\n CircleNode,\n ResourceNode,\n SurveyNode,\n FormNode,\n ButtonNode,\n InteractiveInputNode,\n InteractiveButtonNode,\n InteractiveWaitNode,\n TagsFeedNode,\n Grid4Node,\n Grid3Node,\n Grid2Node,\n Grid1Node,\n InfoBoxNode,\n ColumnNode,\n VideoNode,\n AudioNode,\n EmbedNode,\n FancyLinkNode,\n EventHandler,\n EditorEvents,\n FileNode,\n VisionInputNode,\n VisionCircleNode,\n CustomStyles.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"image\",\n \"video\",\n \"audio\",\n \"file\",\n \"embed\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"circle\",\n \"resource\",\n \"details\",\n \"detailsSummary\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"infobox\",\n \"horizontalRule\",\n \"tagsFeed\",\n \"visionInput\",\n \"visionCircle\",\n ],\n }),\n Interactive.configure({\n types: [\"interactiveInput\", \"interactiveButton\", \"interactiveWait\", \"visionInput\", \"visionCircle\"],\n }),\n ListStyles.configure({\n types: [\"tasklist\", \"orderedlist\", \"bulletList\"],\n }),\n ColumnStyles.configure({\n types: [\"column\"],\n }),\n CustomSize.configure({\n types: [\n \"file\",\n \"audio\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveButton\",\n \"fancyLink\",\n \"circle\",\n ],\n }),\n CustomResizeable.configure({\n types: [\"image\", \"video\", \"embed\"],\n }),\n CustomRadius.configure({\n types: [\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveButton\",\n \"interactiveInput\",\n \"circle\",\n \"visionInput\",\n \"visionCircle\",\n ],\n }),\n CustomButton.configure({\n types: [\n \"actionbutton\",\n \"customform\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"circle\",\n \"survey\",\n \"visionInput\",\n \"visionCircle\",\n ],\n }),\n OrderedList,\n BulletList,\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Placeholder.configure({\n placeholder: ({ node }) => {\n if (node.type.name === \"heading\") {\n return \"\";\n }\n if (node.type.name === \"paragraph\") {\n return \"\";\n }\n if (node.type.name === \"detailsSummary\") {\n return \"\";\n }\n\n return \"\";\n },\n showOnlyCurrent: false,\n includeChildren: true,\n }),\n Focus.configure({\n className: \"is-focus\",\n }),\n Link.configure({\n openOnClick: false,\n }),\n ImageNode,\n TextAlign.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"detailsSummary\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveButton\",\n \"fancyLink\",\n \"circle\",\n ],\n }),\n Details.configure({\n HTMLAttributes: {\n openClassName: \"is-open\",\n class: \"tiptap-details\",\n },\n }),\n DetailsSummary.configure({\n HTMLAttributes: {\n class: \"tiptap-details-summary\",\n },\n }),\n DetailsContent.configure({\n HTMLAttributes: {\n class: \"tiptap-details-content\",\n },\n }),\n Emoji.configure({\n emojis: gitHubEmojis,\n enableEmoticons: true,\n // suggestion,\n }),\n Mention.configure({\n HTMLAttributes: {\n class: \"mention\",\n },\n suggestion: mentionSuggestion,\n renderLabel({ options, node }) {\n const value = node.attrs.label ?? node.attrs.id.split(\"|\")[1];\n return `${options.suggestion.char}${value}`;\n },\n }),\n ],\n });\n\n return (\n
\n {editor && isDocumentEmpty(editor) && (\n \n )}\n \n \n \n \n \n\n
\n \n \n \n \n {props.space && props.space.list_allow_likes && (\n \n \n \n )}\n {props.allowComments && (\n \n \n \n \n \n \n \n )}\n {!props.noPaddingBottom && (\n \n )}\n
\n
\n );\n};\n\nexport default Tiptap;\n","import axios from \"axios\";\n\nclass Vision {\n constructor() {\n if (this instanceof User) {\n throw Error(\"Vision class cannot be instantiated.\");\n }\n }\n\n static onFetch = async (\n id,\n sucessCallback,\n errorCallback,\n signal\n ) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken\n };\n\n await axios\n .get(`/api/v4/visions/${id}.json`, { params, signal })\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n }\n });\n };\n\n static onCreate = async (prompt, space_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n prompt,\n space_id\n };\n\n await axios\n .post(`/api/v4/visions.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n static onUseTemplate = async (id, slug, type, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n id,\n slug,\n type\n };\n\n await axios\n .post(`/api/v4/visions/use_template.json`, params)\n .then((res) => {\n sucessCallback(res.data);\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data);\n } catch (e) {\n } finally {\n }\n });\n };\n\n}\n\nexport default Vision;\n","import React, { useEffect, useRef, useContext } from \"react\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\n\nconst VisionChannel = (props) => {\n const visionChannel = useRef();\n\n const cable = useContext(ActionCableContext);\n\n useEffect(() => {\n cableConnect();\n return () => {\n if (visionChannel.current) {\n visionChannel.current.unsubscribe();\n visionChannel.current = null;\n }\n };\n }, []);\n\n const cableConnect = () => {\n if (!visionChannel.current) {\n visionChannel.current = cable.subscriptions.create(\n {\n channel: \"VisionChannel\",\n user_id: props.user_id,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {},\n disconnected: () => {},\n received: (data) => {\n console.log(\"VISION channel: \" + JSON.stringify(data));\n if (data.user_id == props.user_id) {\n if (data.action == \"update\") {\n if (typeof props.onUpdate === \"function\") {\n props.onUpdate(data.vision_id, data.type);\n }\n } else if (data.action == \"add_content\") {\n if (typeof props.onAddContent == \"function\") {\n props.onAddContent(data);\n }\n }\n }\n },\n }\n );\n }\n };\n\n return (\n <>\n );\n};\n\nexport default VisionChannel;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport VisionModel from \"../../../models/Vision\";\n\nimport VisionChannel from \"./VisionChannel\";\n\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\nimport { setColors } from \"../../../store/app\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\n\nimport {\n Modal,\n ScrollArea,\n Box,\n Center,\n Loader,\n Group,\n Text,\n Grid,\n Image,\n createStyles,\n Button,\n Textarea,\n Progress,\n} from \"@mantine/core\";\n\nimport { getRoot } from \"../../../utils/Host\";\n\nimport TiptapNoHP from \"./TiptapNoHP\";\n\nconst useStyles = createStyles(() => ({\n sidebarItem: {\n padding: \"10px 10px\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"#fafafa\",\n },\n }\n}));\n\nconst content_json = { type: \"doc\", content: [] };\n\nconst AIBuilderModal = (props) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n\n const { classes } = useStyles();\n\n const [templates, setTemplates] = useState([\n { id: 1, name: \"Single page course\", type: \"single_page\", loading: true, content_json },\n { id: 2, name: \"Multi page course\", type: \"multi_page\", loading: true, content_json },\n { id: 3, name: \"Worksheet\", type: \"worksheet\", loading: true, content_json },\n { id: 4, name: \"Online summit\", type: \"online_summit\", loading: true, content_json },\n { id: 5, name: \"Cohort course\", type: \"cohort_course\", loading: true, content_json },\n { id: 6, name: \"Event\", type: \"event\", loading: true, content_json },\n ]);\n const [themes, setThemes] = useState([]);\n const [activeTemplateTab, setActiveTemplateTab] = useState(0);\n const [selectedTheme, setSelectedTheme] = useState(null);\n const [vision, setVision] = useState(null);\n const [space, setSpace] = useState(null);\n const [newNode, setNewNode] = useState(null);\n const [aiPromptValue, setAIPromptValue] = useState(\"\");\n const [isGenerated, setIsGenerated] = useState(false);\n\n const [uploading, setUploading] = useState(false);\n\n const selectedTemplate = templates[activeTemplateTab];\n const loading = templates[activeTemplateTab]?.loading;\n const existsContent = Array.isArray(selectedTemplate?.content_json?.content);\n\n const btnBgColor = selectedTheme?.primary_button_background_color || undefined;\n const btnTextColor = selectedTheme?.primary_button_text_color || undefined;\n const isComponent = props.isComponent;\n const showAiPrompt = isComponent && !isGenerated;\n\n useEffect(() => {\n if (props.space) {\n setSpace(props.space);\n if (isComponent && colors && isSpaceThemed(colors)) {\n setSelectedTheme(colors);\n }\n trackMixpanel(user.username, \"Vision template selected\");\n } else {\n onCreateVision();\n onFetchThemes();\n trackMixpanel(user.username, \"Vision builder selected\");\n }\n // onFetchVision(138, \"cohort_course\");\n window.$spaceUserInteractions = {};\n return () => {\n if (!isComponent) {\n dispatch(setColors(defaultSpaceColors));\n }\n }\n }, [])\n\n useEffect(() => {\n if (aiPromptValue.length && isGenerated && !vision) {\n onCreateVision(aiPromptValue);\n }\n }, [aiPromptValue, isGenerated, vision])\n\n useEffect(() => {\n if (!newNode) return;\n \n const template = templates.find(t => t.type === newNode.type);\n if (!template) return;\n \n const exists = template.content_json.content.find(\n item => item.attrs?.uid === newNode.node?.attrs?.uid\n );\n \n if (!exists && newNode.node) {\n const updated = {\n ...template,\n content_json: {\n type: \"doc\",\n content: [...template.content_json.content, newNode.node]\n }\n };\n \n setTemplates(prev => prev.map(t => \n t.id === template.id ? updated : t\n ));\n }\n \n setNewNode(null);\n }, [newNode, templates]);\n\n const onCreateSpace = () => {\n setUploading(true);\n if (space) {\n onUseTemplate(space.slug);\n } else {\n const spaceParams = {\n intention: selectedTemplate?.content_json?.intention || \"VISION\",\n version: \"content\",\n privacy_level: \"open\",\n join_on_create: true,\n launch_on_date: null,\n launch_time: null,\n show_start_date: selectedTemplate?.type === \"event\" ? true : false,\n start_date: new Date(new Date().getTime() + 86400000),\n end_date: new Date(new Date().getTime() + 90000000),\n start_time: new Date(new Date().getTime() + 86400000),\n end_time: new Date(new Date().getTime() + 90000000),\n content: \"\",\n hangout_link: \"\",\n };\n SpaceModel.onCreate(\n spaceParams,\n null,\n (data) => {\n setSpace(data);\n onUseTemplate(data.slug);\n if (selectedTheme) {\n onSaveTheme(selectedTheme, data.slug);\n }\n },\n (data) => {}\n );\n }\n };\n\n const onCreateVision = (value) => {\n VisionModel.onCreate(\n value || props.aiPrompt,\n null,\n (data) => {\n setVision(data);\n },\n (data) => {}\n );\n }\n \n const onFetchThemes = () => {\n SpaceModel.onFetchThemes(\n (data) => {\n setThemes(data);\n },\n (data) => {}\n );\n };\n\n const onFetchVision = (vision_id, type) => {\n if (!vision_id) {\n return;\n }\n VisionModel.onFetch(\n vision_id,\n (data) => {\n setTemplates(prev => prev.map(t => ({\n ...t,\n content_json: Array.isArray(data[t.type]?.content) ? data[t.type] : t.content_json,\n loading: t.type === type ? false : t.loading\n })));\n setTimeout(() => {\n setVision(data);\n }, 500);\n },\n (data) => {}\n );\n };\n\n const onUseTemplate = (space_slug) => {\n VisionModel.onUseTemplate(\n vision.id,\n space_slug,\n selectedTemplate.type,\n (data) => {\n setUploading(false);\n dispatch(setColors(defaultSpaceColors));\n if (data.redirect_url) {\n window.location = `${getRoot()}${data.redirect_url}`;\n if (isComponent) {\n window.location.reload();\n }\n }\n },\n (data) => {\n setUploading(false);\n }\n );\n };\n\n const onAddContent = (data) => {\n console.log(\"DATA VISION BUILDER:::\", data);\n setNewNode(data);\n };\n\n const onSelectedTheme = (theme) => {\n setSelectedTheme(theme);\n dispatch(setColors({...theme, is_vision_builder: true}));\n };\n\n const onResetTheme = () => {\n setSelectedTheme(null);\n dispatch(setColors(defaultSpaceColors));\n }\n\n const onSaveTheme = (theme, space_slug) => {\n SpaceModel.onSaveColors(\n space_slug,\n theme,\n (data) => {},\n (data) => {}\n );\n };\n\n const ModalOrView = isComponent ? Box : Modal;\n\n if (isComponent && !props.opened) {\n return null;\n }\n\n return (\n props.setOpened(false)}\n padding={0}\n size=\"90%\"\n zIndex={99999}\n >\n \n {!showAiPrompt && (\n \n \n\n {isComponent ? (\n \n ) : (\n {\"Templates\"}\n )}\n {templates.map((template, index) => {\n return (\n setActiveTemplateTab(index)}\n align=\"top\"\n disabled={showAiPrompt}\n >\n \n {template?.loading && !showAiPrompt ? (\n \n ) : (\n \n )}\n \n {template.name}\n \n );\n })}\n\n \n\n {!isComponent && (\n <>\n \n\n \n {t(\"spaces.colors.form.colorTheme\")}\n {!!selectedTheme && (\n \n )}\n \n \n {Object.keys(themes).map((theme) => {\n return (\n \n {\n if (!showAiPrompt) {\n onSelectedTheme(themes[theme]);\n }\n }}\n >\n \n \n \n );\n })}\n \n \n )}\n\n \n \n )}\n\n {showAiPrompt ? (\n \n \n setAIPromptValue(event.currentTarget.value)}\n minRows={3}\n maxRows={3}\n radius=\"md\"\n styles={{ label: { fontWeight: \"600\", fontSize: 18, paddingBottom: 10 } }}\n />\n\n \n\n \n {\"Our AI Vision Builder can help you create the perfect template for your project. Please share a sentence or more about what you have in mind.\"}\n \n\n = 25 && aiPromptValue.length <= 1000 ? false : true}\n leftIcon={}\n onClick={() => setIsGenerated(true)}\n >\n {\"Start generating\"}\n \n \n \n ) : (\n \n \n \n \n \n {selectedTemplate.name}\n \n {existsContent && (\n <>\n {uploading ? (\n <>\n Loading...\n \n \n ) : (\n \n )}\n \n )}\n \n \n \n \n \n \n \n \n {existsContent && (\n <>\n {selectedTemplate.content_json.content.length > 0 ? (\n \n ) : (\n \n )}\n \n )}\n {!!loading && (\n
\n \n \n {\"Please wait a moment, this can take a minute or two…\"}\n \n
\n )}\n
\n
\n
\n )}\n \n\n {!!user?.id && (\n \n )}\n\n \n );\n};\n\nexport default AIBuilderModal;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport ViewModel from \"../../../models/View\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceNeo4jModel from \"../../../models/neo4j/Space\";\n\nimport pako from \"pako\";\n\nimport {\n Modal,\n ScrollArea,\n Box,\n Stack,\n SegmentedControl,\n Center,\n Loader,\n Button,\n Group,\n Text,\n MultiSelect,\n Grid,\n Image,\n createStyles,\n} from \"@mantine/core\";\n\nimport TiptapNoHP from \"./TiptapNoHP\";\nimport AIBuilderModal from \"./AIBuilderModal\";\n\nimport data from \"@emoji-mart/data\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n sidebarItem: {\n padding: \"10px 20px\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: \"#fafafa\",\n },\n },\n image: {\n \"&:hover\": {\n backgroundColor: \"#fafafa\",\n boxShadow: \"0 2px 2px rgba(0, 0, 0, 0.3)\",\n // border: \"1px solid #efefef\"\n borderRadius: \"5px\"\n },\n }\n}));\n\nconst TemplatesModal = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const navigate = useNavigate();\n\n const { classes, cx, theme } = useStyles({ colors: colors });\n\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n const [type, setType] = useState(\"templates\");\n const [templates, setTemplates] = useState([]);\n const [layouts, setLayouts] = useState([]);\n const [models, setModels] = useState([]);\n const [activeTemplate, setActiveTemplate] = useState({});\n const [activeLayout, setActiveLayout] = useState({});\n const [activeModels, setActiveModels] = useState({});\n const [activeTemplateTab, setActiveTemplateTab] = useState(0);\n const [activeLayoutTab, setActiveLayoutTab] = useState(0);\n const [activeModelsTab, setActiveModelsTab] = useState(0);\n const [loading, setLoading] = useState(false);\n\n const [templatesTags, setTemplatesTags] = useState([]);\n const [layoutsTags, setLayoutsTags] = useState([]);\n const [modelsTags, setModelsTags] = useState([]);\n const [selectedTemplateTags, setSelectedTemplateTags] = useState([]);\n const [selectedLayoutsTags, setSelectedLayoutsTags] = useState([]);\n const [selectedModelsTags, setSelectedModalsTags] = useState([]);\n\n useEffect(() => {\n if (type == \"templates\") {\n // onFetchTemplates();\n }\n if (type == \"layouts\") {\n onFetchLayouts();\n }\n if (type == \"models\") {\n onFetchModels();\n }\n }, [type]);\n\n useEffect(() => {\n onFetchView(filterTemplates()[activeTemplateTab]);\n }, [activeTemplateTab]);\n\n useEffect(() => {\n onFetchView(filterLayouts()[activeLayoutTab]);\n }, [activeLayoutTab]);\n\n useEffect(() => {\n onFetchView(filterModals()[activeModelsTab]);\n }, [activeModelsTab]);\n\n useEffect(() => {\n document.activeElement.blur();\n }, [selectedTemplateTags, selectedLayoutsTags]);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"templatesModal\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"templatesModal\") {\n if (tiptap && tiptap.editor) {\n tiptap.editor.commands.focus();\n }\n window.$closingSideMenu = true;\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n window.$selectedTemplateChildren = null\n \n setType(\"templates\")\n } else {\n if (tiptapSidemenu.option){\n setType(tiptapSidemenu.option.toLowerCase())\n }\n else{\n setType(\"templates\")\n }\n onFetchView(templates[0]);\n }\n window.$templatesModalIsOpened = opened;\n }, [opened]);\n\n const onFetchLayouts = () => {\n // if (window.$contentLayouts) {\n // setLayouts([...window.$contentLayouts]);\n // return;\n // }\n SpaceModel.onFetchLayouts(\n space.slug,\n (data) => {\n // let array = [];\n // for (let i = 0; i < data.categories.length; i++) {\n // array = array.concat(data.categories[i].blocks);\n // }\n\n setLayouts([...data.categories]);\n if (\n data.categories.length > 0 &&\n data.categories[0].blocks.length > 0\n ) {\n onFetchView(data.categories[0].blocks[0]);\n }\n },\n (data) => {}\n );\n };\n\n const onFetchTemplates = () => {\n // if (window.$contentTemplates) {\n // setTemplates([...window.$contentTemplates]);\n // return;\n // }\n SpaceModel.onFetchTemplates(\n space.slug,\n (data) => {\n setTemplatesTags([...data.tags].filter(Boolean));\n setTemplates([...data.categories]);\n if (data.categories.length > 0) {\n onFetchView(data.categories[0]);\n }\n window.$contentTemplates = [...data.categories];\n },\n (data) => {}\n );\n };\n\n const onFetchModels = () => {\n SpaceModel.onFetchModels(\n (data) => {\n setModels([...data]);\n if (data.length > 0) {\n onFetchView(data[0]);\n }\n window.$contentModels = [...data.categories];\n },\n (data) => {}\n );\n };\n\n const decompressGzip = (compressedData) => {\n try {\n if (!compressedData) return [];\n const bytes = Uint8Array.from(atob(compressedData), c => c.charCodeAt(0));\n const decompressed = pako.ungzip(bytes, { to: \"string\" });\n return JSON.parse(decompressed);\n } catch (err) {\n console.error(\"Decompression error:\", err);\n return [];\n }\n };\n\n const onFetchView = (object) => {\n if (!object) {\n return;\n }\n onFetchViewData(object);\n SpaceNeo4jModel.onFetchChildren(\n object.slug,\n { topSlug: \"\", role: \"member\" },\n (res) => {\n \n onFetchViewData(object);\n\n const auxData = {...res.data}\n auxData.children = [...decompressGzip(res.data.children)]\n window.$selectedTemplateChildren = [...auxData.children];\n },\n (data) => {\n onFetchViewData(object);\n }\n );\n };\n\n const onFetchViewData = (object) => {\n setLoading(true);\n ViewModel.onFetch(\n \"tiptap\",\n object.slug,\n (data) => {\n const auxObject = { ...object };\n auxObject.content = data.content;\n if (type == \"templates\") {\n setActiveTemplate(auxObject);\n } else if (type == \"layouts\") {\n setActiveLayout(auxObject);\n } else if (type == \"models\") {\n setActiveModels(auxObject);\n }\n setTimeout(() => {\n setLoading(false);\n }, 250);\n },\n (data) => {\n setLoading(false);\n }\n );\n };\n\n const onUseView = () => {\n if (type == \"templates\") {\n props.onAddTemplate(activeTemplate);\n } else if (type == \"layouts\") {\n props.onAddLayout(activeLayout.content.default);\n } else if (type == \"models\") {\n props.onAddTemplate(activeModels);\n }\n setOpened(false);\n };\n\n const onSelectedName = () => {\n if (type == \"templates\") {\n return activeTemplate.name;\n } else if (type == \"layouts\") {\n return activeLayout.name;\n } else if (type == \"models\") {\n return activeModels.name;\n }\n setOpened(false);\n };\n\n const onButtonName = () => {\n if (type == \"templates\") {\n return \"template\";\n } else if (type == \"layouts\") {\n return \"Layout\";\n } else if (type == \"models\") {\n return \"template\";\n }\n setOpened(false);\n };\n\n const getEmojiCode = (emoji) => {\n if (emoji) {\n return data.emojis[emoji].skins[0].native;\n } else {\n return null;\n }\n };\n\n const displayEmoji = (emojicon) => {\n if (emojicon && emojicon != \"\") {\n if (emojicon.split(\"/\")[0] === \"emoji\") {\n return {getEmojiCode(emojicon.split(\"/\")[1])};\n } else if (emojicon.split(\"/\")[0] === \"icon\") {\n const iconType = emojicon.split(\"/\")[1].split(\"#\")[0];\n const iconValue = emojicon.split(\"/\")[1].split(\"#\")[1];\n if (iconValue === \"bolt\") {\n return ;\n }\n return ;\n // return ()\n } else {\n return {getEmojiCode(emojicon)};\n }\n }\n return ;\n };\n\n const filterTemplates = () => {\n if (selectedTemplateTags.length == 0) {\n return templates;\n }\n return templates.filter((item) => {\n return sharesTags(selectedTemplateTags, item.tagged_with);\n });\n };\n\n const filterLayouts = () => {\n if (selectedLayoutsTags.length == 0) {\n return layouts;\n }\n return layouts.filter((item) => {\n return sharesCategories(selectedLayoutsTags, item.name);\n });\n };\n\n const filterModals = () => {\n if (selectedModelsTags.length == 0) {\n return models;\n }\n return models.filter((item) => {\n return sharesTags(selectedModelsTags, item.tagged_with);\n });\n };\n\n const sharesTags = (selected, tagged) => {\n // Check if at least one element in arr1 has a matching key in arr2\n return selected.some((item1) =>\n tagged.some((item2) => item1 === item2.name)\n );\n };\n\n const sharesCategories = (selected, category) => {\n // Check if at least one element in arr1 has a matching key in arr2\n return selected.indexOf(category) >= 0;\n };\n\n const onEdit = () => {\n if (type == \"models\") {\n window.open(`/space/${activeModels.slug}/content?edit=true`, \"_blank\");\n }\n };\n\n const getTagsNames = (template) => {\n let tags = [];\n for (let i = 0; i < template.tagged_with.length; i++) {\n tags.push(`${template.tagged_with[i].name}`);\n }\n\n return tags.join(\", \");\n };\n\n return (\n setOpened(false)}\n // overflow=\"inside\"\n title={\n \n \n \n }\n padding={0}\n size=\"90%\"\n zIndex={99999}\n >\n setOpened(false)}\n />\n {type == \"templates\" ? (\n <>\n ) : (\n \n \n \n {type == \"templates\" && (\n ({\n label: item.name,\n value: item.name,\n }))}\n placeholder=\"Filter by tags\"\n zIndex={99999}\n value={selectedTemplateTags}\n onChange={setSelectedTemplateTags}\n mt={20}\n mb={20}\n radius={\"xl\"}\n size=\"lg\"\n />\n )}\n {type == \"layouts\" && (\n \n )}\n {type == \"models\" && }\n\n {type == \"templates\" &&\n filterTemplates().map((template, index) => {\n return (\n setActiveTemplateTab(index)}\n align=\"top\"\n >\n \n {displayEmoji(template.emojicon)}\n \n \n \n {`${template.name}`}\n \n \n {`${getTagsNames(template)}`}\n \n \n \n );\n })}\n {type == \"layouts\" &&\n layouts.length > 0 &&\n filterLayouts().map((layout, index) => {\n return (\n \n {`${layout.name}`}\n \n {layout.blocks.map((block, index) => {\n return (\n \n \n onFetchView(block)}\n sx={{ cursor: \"pointer\" }}\n />\n\n \n \n );\n })}\n \n \n );\n })}\n\n {type == \"models\" &&\n filterModals().map((model, index) => {\n return (\n setActiveModelsTab(index)}\n >\n \n {displayEmoji(model.emojicon)}\n \n {`${model.name}`}\n \n );\n })}\n {type == \"models\" && filterModals().length == 0 && (\n
You have no saved templates
\n )}\n \n
\n
\n \n \n \n \n \n \n {type != \"layouts\" ? onSelectedName() : \"\"}\n \n \n \n onUseView()}\n >{`Use ${onButtonName()}`}\n \n {type == \"models\" && (\n \n onEdit()}\n >{`Edit ${onButtonName()}`}\n \n )}\n \n \n \n \n \n \n {loading ? (\n
\n \n
\n ) : (\n \n {activeTemplate.content && type == \"templates\" && (\n \n )}\n {activeLayout.content && type == \"layouts\" && (\n \n )}\n {activeModels.content && type == \"models\" && (\n \n )}\n \n )}\n \n \n
\n
\n )}\n \n \n );\n};\n\nexport default TemplatesModal;\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport {\n Drawer,\n SimpleGrid,\n Button,\n Image,\n Text,\n ScrollArea,\n Box,\n Accordion,\n Tooltip,\n Center,\n Popover,\n createStyles,\n} from \"@mantine/core\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport MediaFileModel from \"../../../models/MediaFile\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\nimport { sideMenuOptions } from \"../collections/sideMenuOptions\";\nimport { addDummyCursor, removeDummyCursor } from \"../utils/dummyCursor\";\nimport { isTopNode, getTopParentNode } from \"../utils/selection\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport TemplatesModal from \"./TemplatesModal\";\n\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n blockGridItem: {\n width: \"100%\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n borderRight: `1px solid ${theme.colors.gray[3]}`,\n borderBottom: `1px solid ${theme.colors.gray[3]}`,\n paddingLeft: 10,\n paddingRight: 10,\n height: 100,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor: theme.colors.gray[2],\n },\n },\n\n blockGridItemLayout: {\n height: 110,\n justifyContent: \"center\",\n },\n\n blockGridItemTemplate: {\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: 100,\n backgroundColor: theme.colors.gray[0],\n },\n\n blockName: {\n fontSize: 12,\n width: \"100%\",\n textAlign: \"center\",\n lineHeight: 1.1,\n height: 40,\n display: \"flex\",\n flexFlow: \"column\",\n justifyContent: \"center\",\n paddingBottom: 4,\n },\n\n imageWrapper: {\n width: \"100%\",\n display: \"flex\",\n flexFlow: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n\n iconWrap: {\n height: \"100%\",\n display: \"flex\",\n flexFlow: \"column\",\n justifyContent: \"center\",\n },\n item: {\n borderBottom: \"none\",\n },\n label: {\n fontWeight: 800,\n },\n control: {\n paddingTop: 0,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 16,\n fontWeight: \"bold\",\n\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n content: {\n backgroundColor: theme.colors.gray[0],\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n paddingBottom: 0,\n borderTop: `1px solid ${theme.colors.gray[3]}`,\n borderLeft: `1px solid ${theme.colors.gray[3]}`,\n },\n\n segmentedRoot: {\n backgroundColor: theme.colors.gray[7],\n },\n\n segmentedControlActive: {\n backgroundColor: theme.colors.sutrablue[3],\n color: \"#fff\",\n },\n\n segmentedControlWrap: {\n backgroundColor: theme.colors.gray[2],\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n segmentedLabel: {\n color: \"#fff !important\",\n },\n\n segmentedLabelActive: {\n color: `${theme.colors.gray[7]} !important`,\n },\n\n segmentedControlBlock: {\n display: \"flex\",\n flexFlow: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n}));\n\nconst SideBlocksMenu = (props) => {\n const { theme, classes, cx } = useStyles();\n const params = useParams();\n\n const sideMenuOptionsArray = sideMenuOptions();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const { t, i18n } = useTranslation();\n const [opened, setOpened] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n const [category, setCategory] = useState(\"blocks\");\n const [selectedOption, setSelectedOption] = useState(null);\n const [blocks, setBlocks] = useState([]);\n const [layouts, setLayouts] = useState([]);\n const [templates, setTemplates] = useState([]);\n const [infoPopoverOpened, setInfoPopoverOpened] = useState(null);\n const [loadingModalOpened, setLoadingModalOpened] = useState(null);\n\n const viewport = useRef();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n onSetBlocks();\n\n Broadcaster.receive(\"open_SideBlockMenu\", document.body, (event, data) => {\n setOpened(true);\n });\n\n return () => {\n window.$contentTemplates = null;\n Broadcaster.unRegisterElement(\"open_SideBlockMenu\", document.body);\n };\n }, []);\n\n useEffect(() => {\n if (opened) {\n onFetchLayouts();\n onFetchTemplates();\n }\n }, [opened])\n\n useEffect(() => {\n window.$contentLayouts = null;\n window.$contentTemplates = null;\n }, [params]);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"blocks\") {\n setOpened(true);\n if (tiptapSidemenu.option) {\n // setSelectedOption(getOptionByName(tiptapSidemenu.option))\n if (\n tiptapSidemenu.option === \"Layouts\" ||\n tiptapSidemenu.option === \"Templates\"\n ) {\n setCategory(tiptapSidemenu.option.toLowerCase());\n } else {\n setCategory(\"blocks\");\n if (tiptapSidemenu.option === \"Grids\") {\n setTimeout(() => {\n if (viewport && viewport.current) {\n viewport.current.scrollTo({\n top: viewport.current.scrollHeight / 2,\n behavior: \"smooth\",\n });\n }\n }, 200);\n }\n }\n } else {\n setCategory(\"blocks\");\n }\n } else {\n onCloseDrawer();\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"blocks\") {\n tiptap.editor.commands.focus();\n window.$closingSideMenu = true;\n dispatch(setTiptapSidemenu({ opened: null }));\n removeDummyCursor();\n }\n } else {\n addDummyCursor();\n }\n }, [opened]);\n\n const onOpenTemplates = (event) => {\n event.stopPropagation();\n dispatch(setTiptapSidemenu({ opened: \"templatesModal\" }));\n };\n\n const onSetBlocks = () => {\n if (blocks.length < 4) {\n const newOptions = [...sideMenuOptionsArray];\n if (window.location.pathname.indexOf(\"/registration\") >= 0) {\n newOptions.splice(0, 1);\n newOptions.splice(3, 1);\n }\n if (!window.$currentUserIsAdmin) {\n // newOptions[6].blocks.splice(3, 1);\n // newOptions[2].blocks.splice(5, 1);\n }\n setBlocks([...newOptions]);\n }\n };\n\n const onFetchLayouts = () => {\n if (window.$contentLayouts) {\n setLayouts([...window.$contentLayouts]);\n return;\n }\n SpaceModel.onFetchLayouts(\n space.slug,\n (data) => {\n setLayouts([...data.categories]);\n window.$contentLayouts = [...data.categories];\n },\n (data) => {}\n );\n };\n\n const onFetchTemplates = () => {\n if (window.$contentTemplates) {\n setTemplates([...window.$contentTemplates]);\n return;\n }\n SpaceModel.onFetchTemplates(\n space.slug,\n (data) => {\n setTemplates([...data.categories]);\n window.$contentTemplates = [...data.categories];\n },\n (data) => {}\n );\n };\n\n const onOptionClicked = (event, option) => {\n setSelectedOption(option);\n };\n\n const onBlockClicked = (event, block, option = true) => {\n if (\n block.type == \"content\" ||\n block.type == \"discussion\" ||\n block.type == \"event\" ||\n block.type == \"events\" ||\n block.type == \"list\" ||\n block.type == \"showcase\"\n ) {\n setSelectedOption(false);\n dispatch(setTiptapSidemenu({ opened: \"newSpace\", option: option }));\n } else if (block.type == \"resource\") {\n setSelectedOption(false);\n dispatch(setTiptapSidemenu({ opened: \"newResource\", option: option }));\n } else if (block.type == \"survey\") {\n\n const validatePremium = [\n ...space.permissions.can_survey,\n ];\n if (space.slug && space.permissions && validatePremium[0]) {\n setSelectedOption(false);\n dispatch(setTiptapSidemenu({ opened: \"createSurvey\", option: option }));\n } else {\n setOpenedPremium([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n } else if (block.type == \"bundle_button\") {\n setSelectedOption(false);\n dispatch(setTiptapSidemenu({ opened: \"createBundle\", option: option }));\n } else if (\n block.type == \"image\" ||\n block.type == \"embed\" ||\n block.type == \"video\" ||\n block.type == \"audio\" ||\n block.type == \"file\" ||\n block.type == \"zoom\"\n ) {\n setSelectedOption(false);\n dispatch(setTiptapSidemenu({ opened: \"newMedia\", option: option }));\n } else if (block.type == \"layout\") {\n setSelectedOption(false);\n onAddLayout(block.content);\n } else if (block.type == \"template\") {\n onAddTemplate(block);\n } else if (block.type == \"interest_form\") {\n const validatePremium = [\n ...space.permissions.can_use_interest_form_block,\n ];\n if (space.slug && space.permissions && validatePremium[0]) {\n setSelectedOption(false);\n block.callback(event, tiptap.editor, colors);\n window.$closingSideMenu = true;\n } else {\n setOpenedPremium([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n } else if (block.type == \"interactive_input\") {\n if (space.slug && space.permissions) {\n dispatch(\n setTiptapSidemenu({\n opened: \"loading\",\n text: \"Discussion prompt is loading, please wait…\",\n })\n );\n\n const spaceName =\n space.name < 90\n ? `${space.name} prompt`\n : `${space.name.slice(0, 90)}... prompt`;\n\n SpaceModel.onCreate(\n { intention: spaceName, version: \"interactive-discussion\" },\n space.id,\n (data) => {\n dispatch(setTiptapSidemenu({ opened: null }));\n setSelectedOption(false);\n block.callback(event, tiptap.editor, data.slug, space.slug, colors);\n window.$closingSideMenu = true;\n if (!window.$spaceUserInteractions) {\n window.$spaceUserInteractions = {\n position: 9999,\n can_manage: true,\n count: 1,\n };\n }\n setTimeout(() => {\n onTranscriptsTrigger();\n }, 3000);\n onCloseDrawer();\n },\n (data) => {\n dispatch(setTiptapSidemenu({ opened: null }));\n if (data.permissions) {\n setOpenedPremium([\n true,\n data.permissions[1],\n data.permissions[2],\n ]);\n }\n }\n );\n return;\n } else {\n setOpenedPremium([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n } else {\n if (\n block.type == \"interactive_button\" ||\n block.type == \"interactive_wait\"\n ) {\n const validatePremium = [\n ...space.permissions.can_use_interactive_block,\n ];\n if (space.slug && space.permissions && validatePremium[0]) {\n if (!window.$spaceUserInteractions) {\n window.$spaceUserInteractions = {\n position: 9999,\n can_manage: true,\n count: 1,\n };\n }\n } else {\n setOpenedPremium([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n } else if (block.type == \"mark_complete_button\") {\n if (space.permissions.is_top_level) {\n Swal.fire(\n \"\",\n \"The mark complete option cannot be added to a top level space\",\n \"info\"\n );\n return;\n }\n SpaceSettingModel.onUpdate(\n space.slug,\n { pod_settings_attributes: { allow_completions: true } },\n (data) => {},\n (data) => {}\n );\n }\n setSelectedOption(false);\n block.callback(event, tiptap.editor, colors);\n window.$closingSideMenu = true;\n }\n onCloseDrawer();\n };\n\n const onTranscriptsTrigger = () => {\n const doc = tiptap.editor.view.state.doc;\n\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (node.type.name == \"embed\") {\n const mediaFile = {\n original_url: node.attrs.src,\n url: node.attrs.src,\n upload_type: \"embed\",\n slug: window.$currentSlug,\n embed_id: node.attrs.videoId,\n apify: true,\n };\n\n MediaFileModel.onCreate(\n mediaFile,\n (data) => {\n console.log(\"MEDIA FILE STORED\");\n },\n (data) => {}\n );\n }\n });\n };\n\n const onAddLayout = (layout) => {\n if (!isTopNode(props.editor)) {\n const parentNode = getTopParentNode(props.editor);\n props.editor\n .chain()\n .setNodeSelection(parentNode.pos)\n .enter()\n .focus()\n .run();\n }\n\n props.editor.chain().addNewEmptyLine().insertContent(layout).run();\n };\n\n const onAddTemplate = (template) => {\n window.$waitForTemplateResponse = true;\n dispatch(\n setTiptapSidemenu({\n opened: \"loading\",\n text: \"Your template is loading, please wait…\",\n })\n );\n SpaceModel.onCopyTemplate(\n template.slug,\n space.slug,\n (data) => {\n // setTimeout(() => {\n // dispatch(setTiptapSidemenu({ opened: null }));\n // }, 10000);\n },\n (data) => {\n dispatch(setTiptapSidemenu({ opened: null }));\n if (data.permissions) {\n setTimeout(() => {\n setOpenedPremium([true, data.permissions[1], data.permissions[2]]);\n }, 200);\n }\n }\n );\n };\n\n const getOptionByName = (optionName) => {\n for (var i = 0; i < blocks.length; i++) {\n const option = blocks[i];\n if (option.name == optionName) {\n return option;\n }\n }\n return sideMenuOptionsArray[0];\n };\n\n const onCloseDrawer = () => {\n setOpened(false);\n onOptionClicked(null, null);\n };\n\n const displayBlockCategory = () => {\n if (category === \"blocks\") {\n return (\n \n {blocks.map((option) => {\n return (\n \n \n {option.blocks.map((block, index) => {\n return (\n \n \n onBlockClicked(event, block, block.type)\n }\n >\n
\n \n
\n
{block.name}
\n \n \n );\n })}\n
\n \n );\n })}\n \n );\n } else if (category === \"layouts\") {\n return (\n <>\n \n {t(\"tiptap.components.sideBlocksMenu.text\")}\n \n \n {layouts.map((option, optionIndex) => {\n return (\n \n {option.blocks && (\n \n {option.blocks.map((block, blockIndex) => {\n return (\n setInfoPopoverOpened(null)}\n position=\"right\"\n placement=\"start\"\n trapFocus={false}\n closeOnEscape={false}\n transition=\"pop-top-left\"\n width={500}\n zIndex={99999}\n styles={{ body: { pointerEvents: \"none\" } }}\n target={\n \n setInfoPopoverOpened(\n `${optionIndex}-${blockIndex}`\n )\n }\n onMouseLeave={() => setInfoPopoverOpened(null)}\n className={cx(\n classes.blockGridItem,\n classes.blockGridItemLayout\n )}\n key={`side-menu-block-${block.name}`}\n onClick={(event) =>\n onBlockClicked(event, block, block.type)\n }\n >\n \n \n }\n >\n
\n \n
\n \n );\n })}\n
\n )}\n \n );\n })}\n \n \n );\n } else if (category === \"templates\") {\n return (\n <>\n \n {t(\"tiptap.components.sideBlocksMenu.text2\")}\n \n {templates.map((option, optionIndex) => {\n return (\n \n setInfoPopoverOpened(null)}\n position=\"right\"\n placement=\"start\"\n trapFocus={false}\n closeOnEscape={false}\n transition=\"pop-top-left\"\n width={440}\n zIndex={99999}\n styles={{ body: { pointerEvents: \"none\" } }}\n target={\n \n setInfoPopoverOpened(`${optionIndex}`)\n }\n onMouseLeave={() => setInfoPopoverOpened(null)}\n className={cx(\n classes.blockGridItem,\n classes.blockGridItemTemplate\n )}\n key={`side-menu-block-${option.name}`}\n onClick={(event) =>\n onBlockClicked(event, option, option.type)\n }\n >\n \n \n {option.name}\n \n \n }\n >\n
\n \n \n {option.description}\n \n
\n ({\n padding: 5,\n border: `1px solid ${theme.colors.gray[3]}`,\n })}\n />\n
\n
\n
\n \n
\n );\n })}\n \n );\n }\n };\n\n return (\n <>\n onCloseDrawer()}\n title={\n \n {t(\"tiptap.components.sideBlocksMenu.addBlock\")}\n \n }\n padding={0}\n size={\"300px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n styles={{\n header: {\n paddingTop: 20,\n paddingBottom: 0,\n paddingLeft: 20,\n paddingRight: 20,\n marginBottom: 0,\n },\n }}\n >\n \n \n onOpenTemplates(event)}\n >\n Templates & visuals\n \n \n \n\n \n ({\n marginLeft: 0,\n marginRight: 0,\n })}\n >\n {displayBlockCategory()}\n \n \n \n \n \n\n \n \n );\n};\n\nexport default SideBlocksMenu;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport {\n stylesToString,\n fixStringToJSON,\n} from \"../../../../utils/StylesToString\";\n\nimport {\n Group,\n Popover,\n Text,\n Button,\n Slider,\n createStyles,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { withinGrid }, getRef) => ({\n buttonControl: {\n fontSize: 9,\n backgroundColor: \"#fff\",\n width: withinGrid ? \"\" : 122,\n // paddingLeft: 4,\n // paddingRight: 4\n },\n buttonControlLabel: {\n fontSize: 9,\n fontWeight: 800,\n marginRight: 4,\n },\n}));\n\nexport default function Padding(props) {\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n const { classes, cx, theme } = useStyles({ withinGrid: props.withinGrid });\n let topDefault = 0;\n let bottomDefault = 0;\n let leftDefault = 0;\n let rightDefault = 0;\n\n topDefault = props.type == \"block\" ? 10 : 0;\n bottomDefault = props.type == \"block\" ? 8 : 0;\n\n const [top, setTop] = useState(topDefault);\n const [bottom, setBottom] = useState(bottomDefault);\n const [left, setLeft] = useState(leftDefault);\n const [right, setRight] = useState(rightDefault);\n\n const [sTop, setSTop] = useState(topDefault);\n const [sBottom, setSBottom] = useState(bottomDefault);\n const [sLeft, setSLeft] = useState(leftDefault);\n const [sRight, setSRight] = useState(rightDefault);\n\n const [topOpened, setTopOpened] = useState(false);\n const [bottomOpened, setBottomOpened] = useState(false);\n const [leftOpened, setLeftOpened] = useState(false);\n const [rightOpened, setRightOpened] = useState(false);\n\n useEffect(() => {\n const node = props.element;\n if (!node) {\n return;\n }\n let newStyles = node.node.attrs.styles\n ? { ...node.node.attrs.styles }\n : null;\n if (newStyles) {\n const stylesKeys = Object.keys(newStyles);\n if (stylesKeys && stylesKeys[0] == \"0\") {\n console.log(newStyles);\n console.log(stylesToString(newStyles));\n newStyles = fixStringToJSON(stylesToString(newStyles));\n console.log(node.node.type);\n console.log(newStyles);\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n return;\n }\n }\n\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n newStyles[\"padding-top\"] = `${top}px`;\n newStyles[\"padding-bottom\"] = `${bottom}px`;\n newStyles[\"padding-left\"] = `${left}px`;\n newStyles[\"padding-right\"] = `${right}px`;\n\n if (newStyles) {\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n }\n }, [top, bottom, left, right]);\n\n useEffect(() => {\n if (\n props.element &&\n props.element.node.attrs.styles &&\n typeof props.element.node.attrs.styles[\"padding-top\"] !== \"undefined\" &&\n typeof props.element.node.attrs.styles[\"padding-bottom\"] !==\n \"undefined\" &&\n typeof props.element.node.attrs.styles[\"padding-left\"] !== \"undefined\" &&\n typeof props.element.node.attrs.styles[\"padding-right\"] !== \"undefined\"\n ) {\n loading.current = props.element.node.attrs.uid;\n\n setTop(\n parseInt(\n props.element.node.attrs.styles[\"padding-top\"].replace(\"px\", \"\")\n )\n );\n setSTop(\n parseInt(\n props.element.node.attrs.styles[\"padding-top\"].replace(\"px\", \"\")\n )\n );\n setBottom(\n parseInt(\n props.element.node.attrs.styles[\"padding-bottom\"].replace(\"px\", \"\")\n )\n );\n setSBottom(\n parseInt(\n props.element.node.attrs.styles[\"padding-bottom\"].replace(\"px\", \"\")\n )\n );\n setLeft(\n parseInt(\n props.element.node.attrs.styles[\"padding-left\"].replace(\"px\", \"\")\n )\n );\n setSLeft(\n parseInt(\n props.element.node.attrs.styles[\"padding-left\"].replace(\"px\", \"\")\n )\n );\n setRight(\n parseInt(\n props.element.node.attrs.styles[\"padding-right\"].replace(\"px\", \"\")\n )\n );\n setSRight(\n parseInt(\n props.element.node.attrs.styles[\"padding-right\"].replace(\"px\", \"\")\n )\n );\n }\n }, [props.element]);\n\n return (\n \n setTopOpened(false)}\n target={\n setTopOpened((o) => !o)}\n >\n \n {t(\"tiptap.components.sidebar.padding.top\")}\n {\" \"}\n {top}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"start\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.padding.topPadding\")}\n {props.type}\n \n \n setBottomOpened(false)}\n target={\n setBottomOpened((o) => !o)}\n >\n \n {t(\"tiptap.components.sidebar.padding.bottom\")}\n {\" \"}\n {bottom}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"start\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.padding.bottomPadding\")}\n {props.type}\n \n \n\n {props.withinGrid && (\n <>\n setLeftOpened(false)}\n target={\n setLeftOpened((o) => !o)}\n >\n \n {t(\"tiptap.components.sidebar.padding.left\")}\n {\" \"}\n {left}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"center\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.padding.leftPadding\")}\n {props.type}\n \n \n\n setRightOpened(false)}\n target={\n setRightOpened((o) => !o)}\n >\n \n {t(\"tiptap.components.sidebar.padding.right\")}\n {\" \"}\n {right}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.padding.rightPadding\")}\n {props.type}\n \n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n stylesToString,\n fixStringToJSON,\n} from \"../../../../utils/StylesToString\";\n\nimport {\n Group,\n Popover,\n Text,\n Button,\n Slider,\n createStyles,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { withinGrid }, getRef) => ({\n buttonControl: {\n fontSize: 9,\n backgroundColor: \"#fff\",\n width: withinGrid ? \"\" : 122,\n // paddingLeft: 4,\n // paddingRight: 4\n },\n buttonControlLabel: {\n fontSize: 9,\n fontWeight: 800,\n marginRight: 4,\n },\n}));\n\nexport default function Margin(props) {\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n\n const { classes, cx, theme } = useStyles({ withinGrid: props.withinGrid });\n let topDefault = 0;\n let bottomDefault = 0;\n let leftDefault = 0;\n let rightDefault = 0;\n\n const [top, setTop] = useState(topDefault);\n const [bottom, setBottom] = useState(bottomDefault);\n const [left, setLeft] = useState(leftDefault);\n const [right, setRight] = useState(rightDefault);\n\n const [sTop, setSTop] = useState(topDefault);\n const [sBottom, setSBottom] = useState(bottomDefault);\n const [sLeft, setSLeft] = useState(leftDefault);\n const [sRight, setSRight] = useState(rightDefault);\n\n const [topOpened, setTopOpened] = useState(false);\n const [bottomOpened, setBottomOpened] = useState(false);\n const [leftOpened, setLeftOpened] = useState(false);\n const [rightOpened, setRightOpened] = useState(false);\n\n useEffect(() => {\n const node = props.element;\n if (!node) {\n return;\n }\n\n let newStyles = node.node.attrs.styles\n ? { ...node.node.attrs.styles }\n : null;\n if (newStyles) {\n const stylesKeys = Object.keys(newStyles);\n if (stylesKeys && stylesKeys[0] == \"0\") {\n console.log(newStyles);\n console.log(stylesToString(newStyles));\n newStyles = fixStringToJSON(stylesToString(newStyles));\n console.log(node.node.type);\n console.log(newStyles);\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n return;\n }\n }\n\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n newStyles[\"margin-top\"] = `${top}px`;\n newStyles[\"margin-bottom\"] = `${bottom}px`;\n newStyles[\"margin-left\"] = `${left}px`;\n newStyles[\"margin-right\"] = `${right}px`;\n\n if (newStyles) {\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n }\n }, [top, bottom, left, right]);\n\n useEffect(() => {\n if (\n props.element &&\n props.element.node.attrs.styles &&\n typeof props.element.node.attrs.styles[\"margin-top\"] !== \"undefined\" &&\n typeof props.element.node.attrs.styles[\"margin-bottom\"] !== \"undefined\" &&\n typeof props.element.node.attrs.styles[\"margin-left\"] !== \"undefined\" &&\n typeof props.element.node.attrs.styles[\"margin-right\"] !== \"undefined\"\n ) {\n loading.current = props.element.node.attrs.uid;\n setTop(\n parseInt(\n props.element.node.attrs.styles[\"margin-top\"].replace(\"px\", \"\")\n )\n );\n setSTop(\n parseInt(\n props.element.node.attrs.styles[\"margin-top\"].replace(\"px\", \"\")\n )\n );\n setBottom(\n parseInt(\n props.element.node.attrs.styles[\"margin-bottom\"].replace(\"px\", \"\")\n )\n );\n setSBottom(\n parseInt(\n props.element.node.attrs.styles[\"margin-bottom\"].replace(\"px\", \"\")\n )\n );\n setLeft(\n parseInt(\n props.element.node.attrs.styles[\"margin-left\"].replace(\"px\", \"\")\n )\n );\n setSLeft(\n parseInt(\n props.element.node.attrs.styles[\"margin-left\"].replace(\"px\", \"\")\n )\n );\n setRight(\n parseInt(\n props.element.node.attrs.styles[\"margin-right\"].replace(\"px\", \"\")\n )\n );\n setSRight(\n parseInt(\n props.element.node.attrs.styles[\"margin-right\"].replace(\"px\", \"\")\n )\n );\n }\n }, [props.element]);\n\n return (\n \n setTopOpened(false)}\n target={\n setTopOpened((o) => !o)}\n >\n Top {top}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"start\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.margin.topMargin\")}\n {props.type}\n \n \n setBottomOpened(false)}\n target={\n setBottomOpened((o) => !o)}\n >\n \n {t(\"tiptap.components.sidebar.margin.bottom\")}\n {\" \"}\n {bottom}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"start\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.margin.text\")}\n {props.type}\n \n \n {props.withinGrid && (\n <>\n setLeftOpened(false)}\n target={\n setLeftOpened((o) => !o)}\n >\n \n {t(\"tiptap.components.sidebar.margin.left\")}\n {\" \"}\n {left}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"center\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.margin.leftMargin\")}\n {props.type}\n \n \n\n setRightOpened(false)}\n target={\n setRightOpened((o) => !o)}\n >\n \n {t(\"tiptap.components.sidebar.margin.right\")}\n {\" \"}\n {right}\n \n }\n width={260}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n zIndex={999999}\n >\n \n\n \n {t(\"tiptap.components.sidebar.margin.rightMargin\")}\n {props.type}\n \n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from \"react-i18next\";\n\n\nimport {\n Chips,\n Chip,\n\n createStyles\n} from '@mantine/core';\n\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n chipChecked: {\n backgroundColor: `${theme.colors.dark[3]} !important`,\n color: theme.white,\n [`& .${getRef('iconWrapper')}`]: {\n color: theme.white,\n },\n },\n chipOutline3: {\n width: '80px',\n border: `1px solid ${theme.colors.dark[3]}`\n },\n chipOutline4: {\n border: `1px solid ${theme.colors.dark[3]}`\n },\n chipLabel: {\n textAlign: 'center',\n fontSize: 9,\n fontWeight: 800,\n color: theme.colors.dark[3],\n height: 26\n }\n}\n));\n\nexport default function Alignment(props) {\n\n const timeoutId = useRef(null)\n\n const loading = useRef(false)\n const { t, i18n } = useTranslation();\n const { classes, cx, theme } = useStyles();\n\n const tiptap = useSelector(state => state.tiptap);\n const [textAlign, setTextAlign] = useState('left');\n\n useEffect(() => {\n\n if (!props.element || !props.element.node.attrs || (props.element && props.element.node.attrs && loading.current != props.element.node.attrs.uid)){\n return\n }\n\n\n const node = props.element\n const newTextAlign = node.node.attrs.textAlign ? {...node.node.attrs.textAlign} : null\n\n if (newTextAlign) {\n\n if (node.node.type.name.indexOf(\"grid\") < 0 && node.node.type.name != \"column\"){\n tiptap.editor.commands.setTextAlign(textAlign)\n }\n else{\n const {tr} = tiptap.editor.view.state\n tr.setNodeMarkup(node.pos, undefined, {\n ...node.node.attrs,\n textAlign: textAlign,\n })\n tiptap.editor.view.dispatch(tr)\n }\n\n if (timeoutId.current){\n clearTimeout(timeoutId.current)\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null\n props.saveNodeData()\n }, 2000)\n\n }\n }, [textAlign])\n\n useEffect(() => {\n if (props.element && props.element.node.attrs){\n loading.current = props.element.node.attrs.uid\n setTextAlign(props.element.node.attrs.textAlign ? props.element.node.attrs.textAlign : null)\n }\n }, [props.element])\n\n return (\n\n \n {t(\"tiptap.components.sidebar.alignment.left\")}\n {t(\"tiptap.components.sidebar.alignment.center\")}\n {t(\"tiptap.components.sidebar.alignment.right\")}\n \n\n )\n\n}\n","import React, { useState, useEffect, useRef } from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Chips,\n Chip,\n createStyles\n} from '@mantine/core';\n\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n chipChecked: {\n backgroundColor: `${theme.colors.dark[3]} !important`,\n color: theme.white,\n [`& .${getRef('iconWrapper')}`]: {\n color: theme.white,\n },\n },\n chipOutline3: {\n width: '80px',\n border: `1px solid ${theme.colors.dark[3]}`\n },\n chipOutline4: {\n border: `1px solid ${theme.colors.dark[3]}`\n },\n chipLabel: {\n textAlign: 'center',\n fontSize: 9,\n fontWeight: 800,\n color: theme.colors.dark[3],\n height: 26\n }\n}\n));\n\nexport default function Width(props) {\n\n const timeoutId = useRef(null)\n const { t, i18n } = useTranslation();\n const loading = useRef(false)\n\n const { classes, cx, theme } = useStyles();\n\n const tiptap = useSelector(state => state.tiptap);\n const [size, setSize] = useState('tiptap-size-100');\n\n useEffect(() => {\n\n if (!props.element || !props.element.node.attrs || (props.element && props.element.node.attrs && loading.current != props.element.node.attrs.uid)){\n return\n }\n\n const node = props.element\n const newClass = node.node.attrs.class ? {...node.node.attrs.class} : null\n\n if (node.node.type.name.indexOf(\"grid\") < 0 && node.node.type.name != \"column\"){\n if (props.resizeable && size){\n const auxSize = size.replace(\"tiptap-size-\", \"\")\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n resizeableWidth: `${auxSize}%`,\n resizeableHeight: \"98%\",\n resizeableParentHeight: \"unset\"\n });\n // resizeableParentHeight: auxSize == \"100\" ? props.grid ? \"200px\" : \"400px\" : \"unset\"\n }\n else{\n tiptap.editor.commands.setCustomSize(size)\n }\n }\n else{\n const {tr} = tiptap.editor.view.state\n tr.setNodeMarkup(node.pos, undefined, {\n ...node.node.attrs,\n class: size,\n })\n tiptap.editor.view.dispatch(tr)\n }\n\n if (timeoutId.current){\n clearTimeout(timeoutId.current)\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null\n props.saveNodeData()\n }, 2000)\n \n }, [size])\n\n useEffect(() => {\n if (props.element && props.element.node.attrs){\n loading.current = props.element.node.attrs.uid\n if (props.resizeable && size){\n const auxSize = props.element.node.attrs.resizeableWidth == \"100%\" ? \"tiptap-size-100\" : props.element.node.attrs.resizeableWidth == \"75%\" ? \"tiptap-size-75\" : props.element.node.attrs.resizeableWidth == \"50%\" ? \"tiptap-size-50\" : null\n // if (auxSize){\n setSize(auxSize)\n // }\n }\n else{\n setSize(props.element.node.attrs.class ? props.element.node.attrs.class : null)\n }\n }\n }, [props.element])\n\n return (\n\n \n {t(\"tiptap.components.sidebar.width.full\")}\n {t(\"tiptap.components.sidebar.width.size\")}\n {t(\"tiptap.components.sidebar.width.size2\")}\n {t(\"tiptap.components.sidebar.width.actual\")}\n \n\n )\n\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Chips, Chip, createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n chipChecked: {\n backgroundColor: `${theme.colors.dark[3]} !important`,\n color: theme.white,\n [`& .${getRef(\"iconWrapper\")}`]: {\n color: theme.white,\n },\n },\n chipOutline3: {\n width: \"80px\",\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipOutline4: {\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipLabel: {\n textAlign: \"center\",\n fontSize: 9,\n fontWeight: 800,\n color: theme.colors.dark[3],\n height: 26,\n },\n}));\n\nexport default function Radius(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const { classes, cx, theme } = useStyles();\n\n const tiptap = useSelector((state) => state.tiptap);\n const [radius, setRadius] = useState(\"no-radius\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newRadius = node.node.attrs.radius\n ? { ...node.node.attrs.radius }\n : null;\n\n if (newRadius == radius) {\n return;\n }\n\n if (\n node.node.type.name.indexOf(\"grid\") < 0 &&\n node.node.type.name != \"column\"\n ) {\n tiptap.editor.commands.setCustomRadius(radius);\n } else {\n const { tr } = tiptap.editor.view.state;\n tr.setNodeMarkup(node.pos, undefined, {\n ...node.node.attrs,\n radius: radius,\n });\n tiptap.editor.view.dispatch(tr);\n }\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }, [radius]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs) {\n loading.current = props.element.node.attrs.uid;\n setRadius(\n props.element.node.attrs.radius ? props.element.node.attrs.radius : null\n );\n }\n }, [props.element]);\n\n return (\n \n \n {t(\"tiptap.components.sidebar.radius.square\")}\n \n \n {t(\"tiptap.components.sidebar.radius.round\")}\n \n \n {t(\"tiptap.components.sidebar.radius.circle\")}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Chips, Chip, createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n chipChecked: {\n backgroundColor: `${theme.colors.dark[3]} !important`,\n color: theme.white,\n [`& .${getRef(\"iconWrapper\")}`]: {\n color: theme.white,\n },\n },\n chipOutline3: {\n width: \"80px\",\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipOutline4: {\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipLabel: {\n textAlign: \"center\",\n fontSize: 9,\n fontWeight: 800,\n color: theme.colors.dark[3],\n height: 26,\n },\n}));\n\nexport default function NestedRadius(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const { classes, cx, theme } = useStyles();\n\n const tiptap = useSelector((state) => state.tiptap);\n const [radius, setRadius] = useState(\"no-radius\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newRadius = node.node.attrs.nestedRadius\n ? { ...node.node.attrs.nestedRadius }\n : null;\n\n if (newRadius == radius) {\n return;\n }\n\n if (\n node.node.type.name.indexOf(\"grid\") < 0 &&\n node.node.type.name != \"column\"\n ) {\n tiptap.editor.commands.setCustomNestedRadius(radius);\n } else {\n const { tr } = tiptap.editor.view.state;\n tr.setNodeMarkup(node.pos, undefined, {\n ...node.node.attrs,\n nestedRadius: radius,\n });\n tiptap.editor.view.dispatch(tr);\n }\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }, [radius]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs) {\n loading.current = props.element.node.attrs.uid;\n setRadius(\n props.element.node.attrs.nestedRadius\n ? props.element.node.attrs.nestedRadius\n : null\n );\n }\n }, [props.element]);\n\n return (\n \n \n {t(\"tiptap.components.sidebar.radius.square\")}\n \n \n {t(\"tiptap.components.sidebar.radius.round\")}\n \n \n {t(\"tiptap.components.sidebar.radius.circle\")}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Chips, Chip, createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n chipChecked: {\n backgroundColor: `${theme.colors.dark[3]} !important`,\n color: theme.white,\n [`& .${getRef(\"iconWrapper\")}`]: {\n color: theme.white,\n },\n },\n chipOutline3: {\n width: \"80px\",\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipOutline4: {\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipLabel: {\n textAlign: \"center\",\n fontSize: 9,\n fontWeight: 800,\n color: theme.colors.dark[3],\n height: 26,\n },\n}));\n\nexport default function VerticalAlignment(props) {\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n const { classes, cx, theme } = useStyles();\n\n const tiptap = useSelector((state) => state.tiptap);\n const [verticalAlign, setVerticalAlign] = useState(\"flex-start\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n let newStyles = node.node.attrs.styles\n ? { ...node.node.attrs.styles }\n : null;\n\n if (!newStyles) {\n newStyles = {};\n }\n\n newStyles[\"align-items\"] = verticalAlign;\n\n if (newStyles) {\n // tiptap.editor.commands.setColumnStyles(newStyles)\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n }\n }, [verticalAlign]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs) {\n loading.current = props.element.node.attrs.uid;\n setVerticalAlign(props.element.node.attrs.styles[\"align-items\"]);\n }\n }, [props.element]);\n\n return (\n \n \n {t(\"tiptap.components.sidebar.verticalAllignment.top\")}\n \n \n {t(\"tiptap.components.sidebar.verticalAllignment.center\")}\n \n \n {t(\"tiptap.components.sidebar.verticalAllignment.bottom\")}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from \"react-i18next\";\nimport { stylesToString, fixStringToJSON } from \"../../../../utils/StylesToString\";\nimport colorPickerSwatches from \"../../../../utils/ColorSwatches\";\n\nimport tinycolor from 'tinycolor2'\nimport ColorPicker from 'react-best-gradient-color-picker'\n\nimport {\n Stack,\n Group,\n Popover,\n Text,\n Button,\n createStyles,\n MantineProvider,\n} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n \n}));\n\nexport default function BackgroundColor(props) {\n\n const loading = useRef(false)\n const { t, i18n } = useTranslation();\n const colors = useSelector(state => state.colors);\n const [color, setColor] = useState('rgba(255,255,255,1)');\n const [bgColorOpened, setBgColorOpened] = useState(false)\n\n const { cx, theme, classes } = useStyles();\n\n useEffect(() => {\n\n if (!props.element || !props.element.node.attrs || (props.element && props.element.node.attrs && loading.current != props.element.node.attrs.uid)){\n return\n }\n\n const node = props.element\n\n let newStyles = node.node.attrs.styles\n ? { ...node.node.attrs.styles }\n : null;\n if (newStyles) {\n const stylesKeys = Object.keys(newStyles);\n if (stylesKeys && stylesKeys[0] == \"0\") {\n console.log(newStyles);\n console.log(stylesToString(newStyles));\n newStyles = fixStringToJSON(stylesToString(newStyles));\n console.log(node.node.type);\n console.log(newStyles);\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n return;\n }\n }\n\n // newStyles['background-color'] = color\n if (color && color.indexOf(\"linear-gradient\") >= 0){\n newStyles[\"background-image\"] = color\n newStyles[\"background-color\"] = \"\"\n }\n else{\n newStyles[\"background-color\"] = color\n newStyles[\"background-image\"] = \"none\"\n }\n\n if (newStyles) {\n props.saveNodeData({ newStyles, _node: node }, \"styles\")\n }\n }, [color])\n\n const onRemoveBackgroundColor = (event) => {\n setColor(\"\")\n }\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles){\n loading.current = props.element.node.attrs.uid;\n\n if (props.element.node.attrs.styles[\"background-image\"] && props.element.node.attrs.styles[\"background-image\"].indexOf(\"linear-gradient\") >= 0){\n setColor(props.element.node.attrs.styles[\"background-image\"])\n }\n else{\n setColor(props.element.node.attrs.styles[\"background-color\"])\n }\n }\n }, [props.element])\n\n return (\n\n \n setBgColorOpened(false)}\n target={\n \n \n {t(\"tiptap.components.sidebar.backgroundColor.text\")}\n \n {color && color.indexOf(\"linear-gradient\") >= 0 ? (\n setBgColorOpened((o) => !o)}\n sx={(theme)=>({\n background: color,\n color: colors.default_text_color,\n border: `1px solid ${theme.colors.gray[6]}`,\n width: 70,\n // padding: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(color).darken(5).toString()\n }\n })}\n >\n \n ) : (\n setBgColorOpened((o) => !o)}\n sx={(theme)=>({\n backgroundColor: color == \"\" || color == \"none\" ? \"white\" : color,\n color: colors.default_text_color,\n border: `1px solid ${theme.colors.gray[6]}`,\n width: 70,\n // padding: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(color).darken(5).toString()\n }\n })}\n >\n \n )}\n\n \n }\n gutter={15}\n zIndex={999999}\n width={326}\n >\n \n \n \n \n \n onRemoveBackgroundColor(event)}>\n {t(\"tiptap.components.sidebar.backgroundColor.clearColor\")}\n \n \n \n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { stylesToString, fixStringToJSON } from \"../../../../utils/StylesToString\";\n\nimport Uploady, {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\n\nimport { Stack, Button, Image, Progress, NativeSelect } from \"@mantine/core\";\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n const { t, i18n } = useTranslation();\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data.file.url);\n });\n\n return (\n <>\n {progress > 0 && progress <= 100 ? (\n \n ) : (\n \"\"\n )}\n \n );\n};\n\nconst CustomUploadButton = asUploadButton((props) => {\n const { t, i18n } = useTranslation();\n return (\n \n );\n});\n\nexport default function BackgroundImage(props) {\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n const firstLoad = useRef(false);\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const [bgImage, setBgImage] = useState();\n const [bgSize, setBgSize] = useState();\n const [bgPosition, setBgPosition] = useState();\n const [bgRepeat, setBgRepeat] = useState();\n\n const onBackgroundImageUpload = (image_url) => {\n setBgImage(image_url);\n };\n\n const onRemoveBackgroundImage = (event) => {\n setBgImage(null);\n };\n\n useEffect(() => {}, []);\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n if (!firstLoad.current) {\n setTimeout(() => {\n firstLoad.current = true;\n }, 500);\n return;\n }\n\n const node = props.element;\n let newStyles = node.node.attrs.styles\n ? { ...node.node.attrs.styles }\n : null;\n if (newStyles) {\n const stylesKeys = Object.keys(newStyles);\n if (stylesKeys && stylesKeys[0] == \"0\") {\n console.log(newStyles);\n console.log(stylesToString(newStyles));\n newStyles = fixStringToJSON(stylesToString(newStyles));\n console.log(node.node.type);\n console.log(newStyles);\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n return;\n }\n }\n if (bgImage && bgImage != \"none\") {\n newStyles[\"background-image\"] = `url(${bgImage})`;\n } else {\n newStyles[\"background-image\"] = \"\";\n }\n newStyles[\"background-size\"] = bgSize;\n newStyles[\"background-position\"] = bgPosition;\n newStyles[\"background-repeat\"] = bgRepeat;\n newStyles[\"background-color\"] = \"\";\n if (newStyles) {\n props.saveNodeData({ newStyles, _node: node }, \"styles\");\n }\n }, [bgImage, bgSize, bgPosition, bgRepeat]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n if (\n props.element.node.attrs.styles[\"background-image\"] &&\n (props.element.node.attrs.styles[\"background-image\"] == \"url(null)\" ||\n props.element.node.attrs.styles[\"background-image\"] == \"url(none)\" ||\n props.element.node.attrs.styles[\"background-image\"].indexOf(\n \"linear-gradient\"\n ) >= 0)\n ) {\n setBgImage(null);\n } else if (props.element.node.attrs.styles[\"background-image\"]) {\n setBgImage(\n props.element.node.attrs.styles[\"background-image\"]\n .replace(\"url\", \"\")\n .replace(\"(\", \"\")\n .replace(\")\", \"\")\n );\n }\n setBgSize(props.element.node.attrs.styles[\"background-size\"]);\n setBgPosition(props.element.node.attrs.styles[\"background-position\"]);\n setBgRepeat(props.element.node.attrs.styles[\"background-repeat\"]);\n }\n }, [props.element]);\n\n return (\n \n {bgImage && bgImage != \"none\" ? (\n <>\n \"Background\n onRemoveBackgroundImage(event)}\n >\n {t(\"tiptap.components.sidebar.backgroundImage.removeButton\")}\n \n setBgSize(event.target.value)}\n label=\"Size\"\n placeholder=\"Pick one\"\n data={[\n { value: \"cover\", label: \"cover\" },\n { value: \"contain\", label: \"contain\" },\n ]}\n />\n setBgPosition(event.target.value)}\n label={t(\"tiptap.components.sidebar.backgroundImage.label\")}\n placeholder={t(\n \"tiptap.components.sidebar.backgroundImage.placeholder\"\n )}\n data={[\n {\n value: \"left top\",\n label: t(\"tiptap.components.sidebar.backgroundImage.leftTop\"),\n },\n {\n value: \"left center\",\n label: t(\n \"tiptap.components.sidebar.backgroundImage.leftCenter\"\n ),\n },\n {\n value: \"left bottom\",\n label: t(\n \"tiptap.components.sidebar.backgroundImage.leftBottom\"\n ),\n },\n {\n value: \"right top\",\n label: t(\"tiptap.components.sidebar.backgroundImage.rightTop\"),\n },\n {\n value: \"right center\",\n label: t(\n \"tiptap.components.sidebar.backgroundImage.rightCenter\"\n ),\n },\n {\n value: \"right bottom\",\n label: t(\n \"tiptap.components.sidebar.backgroundImage.rightBottom\"\n ),\n },\n {\n value: \"center top\",\n label: t(\"tiptap.components.sidebar.backgroundImage.centerTop\"),\n },\n {\n value: \"center center\",\n label: t(\n \"tiptap.components.sidebar.backgroundImage.centerCenter\"\n ),\n },\n {\n value: \"center bottom\",\n label: t(\n \"tiptap.components.sidebar.backgroundImage.centerBottom\"\n ),\n },\n ]}\n />\n setBgRepeat(event.target.value)}\n label={t(\"tiptap.components.sidebar.backgroundImage.label2\")}\n placeholder={t(\n \"tiptap.components.sidebar.backgroundImage.placeholder2\"\n )}\n data={[\n {\n value: \"no-repeat\",\n label: t(\"tiptap.components.sidebar.backgroundImage.noRepeat\"),\n },\n {\n value: \"repeat\",\n label: t(\"tiptap.components.sidebar.backgroundImage.repeat\"),\n },\n {\n value: \"repeat-x\",\n label: t(\"tiptap.components.sidebar.backgroundImage.repeat-x\"),\n },\n {\n value: \"repeat-y\",\n label: t(\"tiptap.components.sidebar.backgroundImage.repeat-y\"),\n },\n {\n value: \"space\",\n label: t(\"tiptap.components.sidebar.backgroundImage.space\"),\n },\n {\n value: \"round\",\n label: t(\"tiptap.components.sidebar.backgroundImage.round\"),\n },\n ]}\n />\n \n ) : (\n <>\n \n \n \n \n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport tinycolor from \"tinycolor2\";\nimport ColorPicker from \"react-best-gradient-color-picker\";\nimport colorPickerSwatches from \"../../../../utils/ColorSwatches\";\n\nimport {\n Stack,\n Group,\n Popover,\n Text,\n Button,\n createStyles,\n MantineProvider,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({}));\n\nexport default function ButtonColor(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const colors = useSelector((state) => state.colors);\n const [color, setColor] = useState();\n const [bgColorOpened, setBgColorOpened] = useState(false);\n\n const { cx, theme, classes } = useStyles();\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newColor = node.node.attrs[props.attrName] ? color : null;\n\n if (newColor) {\n tiptap.editor.commands.setCustomButtonAttr(props.attrName, newColor);\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [color]);\n\n const onRemoveBackgroundColor = (event) => {\n setColor(\"\");\n };\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n if (\n props.element.node.attrs[props.attrName] &&\n props.element.node.attrs[props.attrName].indexOf(\"linear-gradient\") >= 0\n ) {\n setColor(props.element.node.attrs[props.attrName]);\n } else {\n setColor(props.element.node.attrs[props.attrName]);\n }\n }\n }, [props.element]);\n\n return (\n \n setBgColorOpened(false)}\n target={\n \n {props.label}\n {color && color.indexOf(\"linear-gradient\") >= 0 ? (\n setBgColorOpened((o) => !o)}\n sx={(theme) => ({\n background: color,\n color: colors.default_text_color,\n border: `1px solid ${theme.colors.gray[6]}`,\n width: 70,\n // padding: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(color).darken(5).toString(),\n },\n })}\n >\n ) : (\n setBgColorOpened((o) => !o)}\n sx={(theme) => ({\n backgroundColor:\n color == \"\" || color == \"none\" ? \"white\" : color,\n color: colors.default_text_color,\n border: `1px solid ${theme.colors.gray[6]}`,\n width: 70,\n // padding: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(color).darken(5).toString(),\n },\n })}\n >\n )}\n \n }\n gutter={15}\n zIndex={999999}\n width={326}\n >\n
\n \n
\n \n {false && (\n \n onRemoveBackgroundColor(event)}\n >\n {t(\"tiptap.components.sidebar.buttonBackgroundColor.button\")}\n \n \n )}\n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Stack, TextInput } from \"@mantine/core\";\n\nexport default function ButtonText(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [text, setText] = useState();\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newText = node.node.attrs.buttonText ? text : null;\n\n if (newText) {\n tiptap.editor.commands.setCustomButtonAttr(\"buttonText\", newText);\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [text]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setText(props.element.node.attrs.buttonText === \"Register\" ? \"\" : props.element.node.attrs.buttonText);\n }\n }, [props.element]);\n\n return (\n \n setText(event.currentTarget.value)}\n placeholder={t(\"tiptap.components.sidebar.buttonText.placeholder\")}\n label={props.label}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Stack,\n NativeSelect,\n Switch,\n TextInput,\n Select,\n Loader,\n Text,\n Button,\n} from \"@mantine/core\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport default function ButtonAction(props) {\n const location = useLocation();\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n const searchTimeoutId = useRef(false);\n\n const space = useSelector((state) => state.space);\n const tiptap = useSelector((state) => state.tiptap);\n const [text, setText] = useState();\n const [callback, setCallback] = useState(\"message\");\n const [regPageAction, setRegPageAction] = useState(\"\");\n const [target, setTarget] = useState(\"_current\");\n const [markComplete, setMarkComplete] = useState(false);\n const [markCompleteHeader, setMarkCompleteHeader] = useState(false);\n const [spacesList, setSpacesList] = useState(\"custom\");\n const [searching, setSearching] = useState(\"custom\");\n const [spaces, setSpaces] = useState([]);\n const [isSelection, setIsSelection] = useState(false);\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newText = text;\n const newCallback = callback;\n const newTarget = target;\n\n let edited = false;\n console.log(`BUTTON: ${newText}`)\n console.log(`BUTTON: ${props.element.node.attrs.actionCallbackValue}`)\n if (newText) {\n edited = true;\n if (\n callback == \"link\" &&\n newText.indexOf(\"http://\") < 0 &&\n newText.indexOf(\"https://\") < 0 &&\n newText.indexOf(\"mailto://\") < 0 &&\n newText.indexOf(\"tel://\") < 0\n ) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n actionCallbackValue: `https://${newText}`,\n actionCallbackTarget: newTarget,\n });\n } else {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n actionCallbackValue: `${newText}`,\n actionCallbackTarget: newTarget,\n });\n }\n }\n if (newCallback) {\n edited = true;\n tiptap.editor.commands.setCustomButtonAttr(\"actionCallback\", newCallback);\n }\n if (props.element.node.attrs.isMarkComplete != markComplete) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n isMarkComplete: markComplete,\n });\n }\n\n if (edited) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n if (text) {\n props.saveNodeData();\n }\n }, 2000);\n }\n }, [text, callback, target, markComplete]);\n\n useEffect(() => {\n window.$showMarkCompleteButton = markCompleteHeader\n SpaceSettingModel.onUpdate(\n space.slug,\n { pod_settings_attributes: { show_mark_complete_button_in_header: markCompleteHeader } },\n (data) => {\n // setSpacesList(\"spaces\");\n },\n (data) => {}\n );\n }, [markCompleteHeader]);\n\n useEffect(() => {\n const gatewayLink = getGatewayLink();\n if (regPageAction == \"registration\" && text != gatewayLink) {\n setText(getGatewayLink());\n } else {\n setText(\"\");\n }\n }, [regPageAction]);\n\n useEffect(() => {\n if (space && space.slug){\n setMarkCompleteHeader(window.$showMarkCompleteButton)\n }\n }, [space]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n if (props.element && props.element.node.type.name != \"actionbutton\") {\n setCallback(props.element.node.attrs.actionCallback);\n } else {\n setCallback(\"link\");\n if (location && location.pathname.indexOf(\"/registration\") >= 0) {\n setRegPageAction(\n !props.element.node.attrs.actionCallbackValue ||\n props.element.node.attrs.actionCallbackValue == getGatewayLink()\n ? \"registration\"\n : \"custom\"\n );\n }\n }\n\n console.log(\"MARK COMPLETE: \" + props.element.node.attrs.isMarkComplete);\n setText(props.element.node.attrs.actionCallbackValue);\n setTarget(props.element.node.attrs.actionCallbackTarget);\n setMarkComplete(props.element.node.attrs.isMarkComplete);\n\n if (\n props.element.node.attrs.actionCallbackValue &&\n props.element.node.attrs.actionCallbackValue.indexOf(\n \"https://sutra.co/space\"\n ) >= 0\n ) {\n setSpacesList(\"spaces\");\n } else {\n setSpacesList(\"custom\");\n }\n }\n }, [props.element]);\n\n const onSetText = (selection) => {\n if (selection != props.element.node.attrs.actionCallbackValue){\n setText(selection)\n }\n }\n\n const getGatewayLink = () => {\n return `${window.location.href.split(\"/space\")[0]}/space/${\n location.pathname.split(\"/\")[2]\n }/gateway`;\n };\n\n const onSearchSpaces = (query) => {\n // if (!query){\n // return;\n // }\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\", `order-context-${window.$fetchedTopSlug}`];\n if (query) {\n include.push(`q=${query}`);\n }\n SpaceModel.onFetchManaged(\n null,\n include,\n { page: 1, per: 10 },\n (data) => {\n const _spaces = [];\n for (let i = 0; i < data.length; i++) {\n _spaces.push({\n value: `https://sutra.co/space/${data[i].slug}/${data[i].version}`,\n label: `${data[i].name} (${data[i].slug})`,\n });\n }\n setSpaces(_spaces);\n },\n (data) => {}\n );\n };\n\n return (\n \n {props.element &&\n props.element.node.type.name != \"actionbutton\" &&\n props.element.node.type.name.indexOf(\"interactive\") < 0 && (\n setCallback(event.target.value)}\n label={t(\"tiptap.components.sidebar.buttonAction.label\")}\n description={t(\n \"tiptap.components.sidebar.buttonAction.description\"\n )}\n placeholder={t(\n \"tiptap.components.sidebar.buttonAction.placeholder\"\n )}\n data={[\n { value: \"message\", label: \"Pop up message\" },\n { value: \"link\", label: \"Redirect to custom link\" },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n\n {props.element &&\n props.element.node.type.name == \"actionbutton\" &&\n location &&\n location.pathname.indexOf(\"/registration\") >= 0 && (\n setRegPageAction(event.target.value)}\n label={t(\"tiptap.components.sidebar.buttonAction.label2\")}\n placeholder={t(\n \"tiptap.components.sidebar.buttonAction.placeholder2\"\n )}\n data={[\n { value: \"registration\", label: \"Space registration\" },\n { value: \"bundle\", label: \"Bundle payment\" },\n { value: \"custom\", label: \"Custom link\" },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n {props.element &&\n props.element.node.type.name == \"actionbutton\" &&\n location &&\n location.pathname.indexOf(\"/registration\") < 0 && markComplete && (\n setMarkCompleteHeader(event.target.checked)}\n label={\"Mark complete button in header\"}\n placeholder={\n \"Toggle to make a mark complete button appear in the header for all members\"\n }\n />\n )}\n {regPageAction != \"registration\" && props.element &&\n props.element.node.type.name == \"actionbutton\" &&\n callback == \"link\" && (\n <>\n {markComplete ? (\n setTarget(event.target.value)}\n label={t(\"tiptap.components.sidebar.buttonAction.label3\")}\n description={t(\n \"tiptap.components.sidebar.buttonAction.description3\"\n )}\n placeholder={t(\n \"tiptap.components.sidebar.buttonAction.placeholder3\"\n )}\n data={[\n { value: \"_current\", label: t(\"tiptap.components.sidebar.buttonAction.label7\") },\n { value: \"_blank\", label: t(\"tiptap.components.sidebar.buttonAction.label8\") },\n { value: \"_nothing\", label: t(\"tiptap.components.sidebar.buttonAction.label9\") },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n ) : (\n setTarget(event.target.value)}\n label={t(\"tiptap.components.sidebar.buttonAction.label3\")}\n description={t(\n \"tiptap.components.sidebar.buttonAction.description4\"\n )}\n placeholder={t(\n \"tiptap.components.sidebar.buttonAction.description4\"\n )}\n data={[\n { value: \"_current\", label: t(\"tiptap.components.sidebar.buttonAction.label7\") },\n { value: \"_blank\", label: t(\"tiptap.components.sidebar.buttonAction.label8\") },\n { value: \"_section\", label: t(\"tiptap.components.sidebar.buttonAction.label4\") },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n {!(target === \"_nothing\" || target === \"_section\") && (\n setSpacesList(event.target.value)}\n label={t(\"tiptap.components.sidebar.buttonAction.label10\")}\n placeholder={t(\"tiptap.components.sidebar.buttonAction.label11\")}\n data={[\n { value: \"spaces\", label: t(\"tiptap.components.sidebar.buttonAction.label12\") },\n { value: \"custom\", label: t(\"tiptap.components.sidebar.buttonAction.label13\") },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n \n )}\n {regPageAction != \"registration\" && !(target === \"_nothing\" || target === \"_section\") && spacesList == \"spaces\" && callback == \"link\" && (\n \n ) : (\n \n )\n }\n searchable\n limit={100}\n mt={5}\n data={spaces}\n onChange={(selection) => onSetText(selection)}\n label={t(\"tiptap.components.sidebar.buttonAction.callbacklinkTo\")}\n placeholder={\"Search space\"}\n description={text && `Redirecting to ${text}`}\n value={text}\n onSearchChange={(query) => onSearchSpaces(query)}\n styles={{\n description: {\n fontWeight: 600\n }\n }}\n />\n )}\n \n {target === \"_section\" && (\n <>\n \n {t(\"tiptap.components.sidebar.buttonAction.description5\")}\n \n \n {t(\"tiptap.components.sidebar.buttonAction.description6\")}\n \n {\n window.$sectionParams = {\n origin: {\n from: tiptap.editor.view.state.selection.from,\n to: tiptap.editor.view.state.selection.to\n },\n isSelection: true,\n swalTitle: t(\"tiptap.components.sidebar.buttonAction.label5\"),\n onUpdateLink: (link) => {\n setText(link);\n setIsSelection(false);\n }\n };\n setIsSelection(true);\n }}\n >\n {isSelection ? t(\"tiptap.components.sidebar.buttonAction.label14\") : t(\"tiptap.components.sidebar.buttonAction.selectSection\")}\n \n \n )}\n\n {regPageAction != \"registration\" && location &&\n location.pathname.indexOf(\"/registration\") < 0 &&\n props.element.node.type.name.indexOf(\"interactive\") < 0 &&\n spacesList == \"custom\" &&\n !(target === \"_nothing\" || target === \"_section\") && (\n setText(event.currentTarget.value)}\n placeholder={`${\n callback == \"message\"\n ? \"Completion action text\"\n : \"https://example.com\"\n }`}\n label={`${\n callback == \"message\"\n ? t(\"tiptap.components.sidebar.buttonAction.callBackComplete\")\n : t(\"tiptap.components.sidebar.buttonAction.callbacklinkTo\")\n }`}\n description={`${\n callback == \"message\"\n ? t(\n \"tiptap.components.sidebar.buttonAction.completeDescription\"\n )\n : t(\"tiptap.components.sidebar.buttonAction.linkDescription\")\n }`}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n {regPageAction != \"registration\" &&\n location &&\n location.pathname.indexOf(\"/registration\") >= 0 &&\n target != \"_nothing\" && (\n setText(event.currentTarget.value)}\n placeholder={`${\n callback == \"message\"\n ? \"Completion action text\"\n : \"https://example.com\"\n }`}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Stack,\n NativeSelect,\n Switch,\n TextInput,\n Select,\n Loader,\n} from \"@mantine/core\";\n\nimport BundleModel from \"../../../../models/Bundle\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport default function BundleAction(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const space = useSelector((state) => state.space);\n const tiptap = useSelector((state) => state.tiptap);\n const [callback, setCallback] = useState(\"message\");\n\n const [bundles, setBundles] = useState([]);\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const newCallback = `/space/${space.slug}/gateway?bundles=${callback}`;\n\n let edited = false;\n\n if (newCallback) {\n edited = true;\n tiptap.editor.commands.setCustomButtonAttr(\n \"actionCallbackValue\",\n newCallback\n );\n }\n\n if (edited) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n if (newCallback) {\n props.saveNodeData();\n }\n }, 2000);\n }\n }, [callback]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n const vals = props.element.node.attrs.actionCallbackValue.split(\"bundles=\").pop()\n console.log(vals)\n setCallback(vals);\n }\n onFetch();\n }, [props.element]);\n\n const onFetch = () => {\n BundleModel.onFetch(\n space.slug,\n (data) => {\n const _bundles = data.map((item, index) => ({\n value: `${item.id}`,\n label: item.name,\n group: \"Select an existing bundle\",\n }));\n setBundles([\n {\n value: \"new_bundle\",\n label: \"Create a new bundle\",\n group: \"New bundle\",\n },\n ..._bundles,\n ]);\n },\n (data) => {}\n );\n };\n\n return (\n \n setCallback(event.target.value)}\n label={\"Select a bundle\"}\n data={bundles}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Box,\n Button,\n Progress,\n Text,\n Image,\n MantineProvider,\n createStyles,\n TextInput,\n Textarea,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Uploady, {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport { setSpace, setListSpaceToUpdate } from \"../../../../store/app\";\n\nimport axios from \"axios\";\n\nimport tinycolor from \"tinycolor2\";\n\nconst LogProgress = (props) => {\n const { t, i18n } = useTranslation();\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data.url);\n });\n\n return (\n <>\n {progress > 0 && progress <= 100 ? (\n \n ) : (\n \"\"\n )}\n \n );\n};\n\nconst CustomUploadHeaderButton = asUploadButton((props) => {\n const { t, i18n } = useTranslation();\n\n return (\n }\n {...props}\n >\n {window.$uploadMethodSidebutton == \"header\"\n ? t(\"tiptap.components.sidebar.spaceAttrs.addCover\")\n : \"Add thumbnail\"}\n \n );\n});\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n appearanceButtonRoot: {\n color: theme.colors.gray[7],\n fontWeight: 400,\n fontSize: 16,\n borderRadius: 5,\n display: \"block\",\n width: \"100%\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n paddingLeft: 10,\n },\n appearanceButtonLeftIcon: {\n color: theme.colors.gray[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonInner: {\n justifyContent: \"flex-start\",\n },\n}));\n\nexport default function SpaceAttrs(props) {\n const timeoutId = useRef(null);\n\n const tiptap = useSelector((state) => state.tiptap);\n const colors = useSelector((state) => state.colors);\n const { classes, cx } = useStyles({ colors });\n\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const [space, setSpace] = useState();\n const [spaceName, setSpaceName] = useState(\"\");\n const [spaceAbstract, setSpaceAbstract] = useState(\"\");\n\n const fetchTimeoutId = useRef();\n\n const [loading, setLoading] = useState(false);\n\n const [canUploadCover, setCanUploadCover] = useState([]);\n\n const [opened, setOpened] = useState([]);\n const [uploadMethod, setUploadMethod] = useState(\"header\");\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.id) {\n setUploadMethod(\n props.element.node.attrs.viewAs.indexOf(\"card\") >= 0\n ? \"gallery_feature\"\n : \"header\"\n );\n window.$uploadMethodSidebutton =\n props.element.node.attrs.viewAs.indexOf(\"card\") >= 0\n ? \"gallery_feature\"\n : \"header\";\n\n setLoading(true);\n if (fetchTimeoutId.current) {\n clearTimeout(fetchTimeoutId.current);\n }\n fetchTimeoutId.current = setTimeout(() => {\n onFetch();\n }, 500);\n }\n }, [props]);\n\n const onFetch = () => {\n SpaceModel.onFetch(\n props.element.node.attrs.id,\n [\"tree\", \"members\"],\n (data) => {\n setSpace({\n ...data.space,\n permissions: { ...data.permissions },\n colors: { ...data.colors },\n });\n setCanUploadCover(\n data.permissions && data.permissions.can_upload_cover\n );\n setSpaceName(data.space.name);\n setSpaceAbstract(data.abstract);\n setLoading(false);\n },\n (data) => {}\n );\n };\n\n const onCoverUploadFinished = (url) => {\n const newSpace = { ...space };\n newSpace[uploadMethod].url = url;\n setSpace(newSpace);\n onSave();\n };\n\n const onRemoveHeader = () => {\n if (uploadMethod == \"header\") {\n SpaceModel.onRemoveHeader(\n space.slug,\n (data) => {\n onCoverUploadFinished(null);\n onSave();\n },\n (data) => {}\n );\n } else {\n SpaceModel.onRemoveThumbnail(\n space.slug,\n (data) => {\n onCoverUploadFinished(null);\n onSave();\n },\n (data) => {}\n );\n }\n };\n\n const onChangeName = (value) => {\n setSpaceName(value);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n onUpdateName(value);\n }, 100);\n };\n\n const onChangeAbstract = (value) => {\n setSpaceAbstract(value);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n onUpdateAbstract(value);\n }, 100);\n };\n\n const onUpdateName = (value) => {\n SpaceModel.onUpdate(\n space.slug,\n { intention: value },\n (data) => {\n onSave();\n },\n (data) => {}\n );\n };\n\n const onUpdateAbstract = (value) => {\n SpaceModel.onUpdate(\n space.slug,\n { abstract_text: value },\n (data) => {\n onSave();\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n dispatch(setListSpaceToUpdate({ slug: space.slug }));\n setTimeout(() => {\n dispatch(setListSpaceToUpdate({ slug: space.slug }));\n }, 500)\n };\n\n return (\n \n {space && space.slug && (\n <>\n {props.element &&\n props.element.node &&\n props.element.node.attrs.viewAs != \"link\" &&\n props.element.node.attrs.viewAs != \"button\" && (\n onChangeName(event.currentTarget.value)}\n />\n )}\n {props.element &&\n props.element.node &&\n props.element.node.attrs.viewAs.indexOf(\"card\") >= 0 && (\n \n onChangeAbstract(event.currentTarget.value)\n }\n />\n )}\n \n )}\n\n {props.element &&\n props.element.node &&\n props.element.node.attrs.viewAs != \"link\" &&\n props.element.node.attrs.viewAs != \"button\" &&\n (space && space[uploadMethod] && !space[uploadMethod].url ? (\n canUploadCover[0] ? (\n \n \n \n \n {t(\"tiptap.components.sidebar.spaceAttrs.text\")}\n \n \n ) : (\n <>\n }\n onClick={() =>\n setOpened([true, canUploadCover[1], canUploadCover[2]])\n }\n >\n {uploadMethod == \"header\"\n ? t(\"tiptap.components.sidebar.spaceAttrs.addCover2\")\n : \"Add thumbnail\"}\n \n \n {t(\"tiptap.components.sidebar.spaceAttrs.text2\")}\n \n \n )\n ) : (\n \n {space && space[uploadMethod] && space[uploadMethod].url && (\n \n )}\n \n }\n // classNames={{\n // root: classes.appearanceButtonRoot,\n // inner: classes.appearanceButtonInner,\n // leftIcon: classes.appearanceButtonLeftIcon\n // }}\n onClick={() => onRemoveHeader()}\n >\n {uploadMethod == \"header\"\n ? t(\"tiptap.components.sidebar.spaceAttrs.removeCover\")\n : \"Remove thumbnail\"}\n \n \n \n ))}\n\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { Stack, TextInput } from \"@mantine/core\";\n\nexport default function InteractiveText(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [text, setText] = useState();\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newText = props.element.node.attrs[`${props.attrName}`] ? text : null;\n\n if (newText) {\n const data = {};\n data[`${props.attrName}`] = newText;\n\n tiptap.editor.commands.updateAttributes(\n props.element.node.type.name,\n data\n );\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [text]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setText(props.element.node.attrs[`${props.attrName}`]);\n }\n }, [props.element]);\n\n return (\n \n setText(event.currentTarget.value)}\n placeholder={`${props.attrPlaceholder}`}\n label={`${props.attrLabel}`}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { Stack, Switch } from \"@mantine/core\";\n\nimport { setAttrsToAllByType } from \"../../utils/selection\";\n\nexport default function InteractiveText(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [checked, setChecked] = useState(false);\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const _checked = props.element.node.attrs[`${props.attrName}`];\n\n if (_checked != checked) {\n const data = {};\n data[`${props.attrName}`] = checked;\n\n if (props.global){\n setAttrsToAllByType(tiptap.editor, props.element.node.type.name, data)\n }\n else{\n tiptap.editor.commands.updateAttributes(\n props.element.node.type.name,\n data\n );\n }\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData(checked);\n }, 2000);\n\n }\n }, [checked]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setChecked(props.element.node.attrs[`${props.attrName}`]);\n }\n }, [props.element]);\n\n return (\n \n setChecked(event.currentTarget.checked)}\n label={`${props.attrLabel}`}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Stack, NativeSelect } from \"@mantine/core\";\nimport { DatePicker } from \"@mantine/dates\";\n\nexport default function InteractiveText(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n const tiptap = useSelector((state) => state.tiptap);\n const [type, setType] = useState(\"datetime\");\n const [value, setValue] = useState();\n const [status, setStatus] = useState();\n \n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n\n if (value) {\n const data = {};\n data.interactiveWaitValue =\n type == \"datetime\" ? value.toLocaleDateStringAbs() : value;\n if (data.interactiveWaitValue.indexOf(\"NaN\") >= 0) {\n data.interactiveWaitValue = new Date(\n new Date().getTime() + 90000000\n ).toLocaleDateStringAbs();\n }\n data.interactiveWaitType = type;\n if (typeof status === \"string\" && status === \"pending\") {\n data.interactiveWaitStatus = \"pending\";\n }\n\n tiptap.editor.commands.updateAttributes(\n props.element.node.type.name,\n data\n );\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [value]);\n\n useEffect(() => {\n if (type != props.element.node.attrs.interactiveWaitType) {\n if (type == \"datetime\") {\n setValue(new Date(new Date().getTime() + 90000000));\n } else {\n setValue(\"24h\");\n }\n }\n }, [type]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setType(props.element.node.attrs.interactiveWaitType);\n if (props.element.node.attrs.interactiveWaitType == \"datetime\") {\n if (props.element.node.attrs.interactiveWaitValue.indexOf(\"NaN\") >= 0) {\n setValue(new Date(new Date().getTime() + 90000000));\n } else {\n setValue(\n props.element.node.attrs.interactiveWaitValue\n ? new Date(props.element.node.attrs.interactiveWaitValue)\n : \"\"\n );\n }\n } else {\n setValue(props.element.node.attrs.interactiveWaitValue);\n }\n }\n }, [props.element]);\n\n return (\n \n setType(event.currentTarget.value)}\n data={[\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label2\"),\n value: `datetime`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label3\"),\n value: `days`,\n },\n ]}\n />\n {type == \"datetime\" ? (\n {\n setValue(newValue);\n setStatus(\"pending\");\n }}\n />\n ) : (\n {\n setValue(event.currentTarget.value);\n setStatus(\"pending\");\n }}\n data={[\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label5\"),\n value: `${1 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label6\"),\n value: `${2 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label7\"),\n value: `${3 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label8\"),\n value: `${4 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label9\"),\n value: `${5 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label10\"),\n value: `${6 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label11\"),\n value: `${7 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label12\"),\n value: `${14 * 24}h`,\n },\n {\n label: t(\"tiptap.components.sidebar.interactiveWaitTime.label13\"),\n value: `${30 * 24}h`,\n },\n ]}\n />\n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { Stack, Textarea } from \"@mantine/core\";\n\nexport default function InteractiveTextArea(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [value, setValue] = useState(false);\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const _checked = props.element.node.attrs[`${props.attrName}`];\n\n if (_checked != value) {\n const data = {};\n data[`${props.attrName}`] = value;\n\n tiptap.editor.commands.updateAttributes(\n props.element.node.type.name,\n data\n );\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n\n }\n }, [value]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setValue(props.element.node.attrs[`${props.attrName}`]);\n }\n }, [props.element]);\n\n return (\n \n setValue(event.currentTarget.value)}\n >\n {props.attrLabel}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { Stack, RadioGroup, Radio } from \"@mantine/core\";\n\nexport default function InteractiveRadio(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [value, setValue] = useState(false);\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const _checked = props.element.node.attrs[`${props.attrName}`];\n\n if (_checked != value) {\n const data = {};\n data[`${props.attrName}`] = value;\n\n tiptap.editor.commands.updateAttributes(\n props.element.node.type.name,\n data\n );\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n\n }\n }, [value]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setValue(props.element.node.attrs[`${props.attrName}`]);\n }\n }, [props.element]);\n\n return (\n \n {Array.isArray(props.radioData) && (\n \n {props.radioData.map((item, key) => (\n \n ))}\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { Stack, TextInput } from \"@mantine/core\";\n\nexport default function FileName(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n const tiptap = useSelector((state) => state.tiptap);\n const [name, setName] = useState();\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newName = node.node.attrs.name ? name : null;\n\n if (newName) {\n tiptap.editor.commands.setCustomButtonAttr(\"name\", newName);\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [name]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setName(props.element.node.attrs.name);\n }\n }, [props.element]);\n\n return (\n \n setName(event.currentTarget.value)}\n placeholder={t(\"tiptap.components.sidebar.fileName.placeholder\")}\n label={t(\"tiptap.components.sidebar.fileName.label\")}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { Stack, TextInput } from \"@mantine/core\";\n\nexport default function BlockId(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n const tiptap = useSelector((state) => state.tiptap);\n const [blockId, setBlockId] = useState();\n\n useEffect(() => {\n \n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newBlockId = node.node.attrs.blockId != null ? blockId : null;\n \n if (newBlockId) {\n tiptap.editor.commands.setCustomBlockId(newBlockId);\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [blockId]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.blockId != null) {\n loading.current = props.element.node.attrs.uid;\n\n setBlockId(props.element.node.attrs.blockId);\n }\n }, [props.element]);\n\n return (\n \n setBlockId(event.currentTarget.value)}\n placeholder={t(\"tiptap.components.sidebar.blockId.placeholder\")}\n label={t(\"tiptap.components.sidebar.blockId.label\")}\n description={t(\"tiptap.components.sidebar.blockId.description\")}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Stack, NativeSelect, TextInput } from \"@mantine/core\";\n\nexport default function ButtonAction(props) {\n const location = useLocation();\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [url, setUrl] = useState(\"\");\n const [target, setTarget] = useState(\"_current\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newUrl = url;\n const newTarget = target;\n\n let edited = false;\n\n const oldLinkAttrs = { ...props.element.node.attrs.link };\n if (newUrl) {\n edited = true;\n\n if (\n newUrl.indexOf(\"http://\") < 0 &&\n newUrl.indexOf(\"https://\") < 0 &&\n newUrl.indexOf(\"mailto://\") < 0 &&\n newUrl.indexOf(\"tel://\") < 0\n ) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n link: {\n ...oldLinkAttrs,\n url: `https://${newUrl}`,\n target: newTarget,\n },\n });\n } else {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n link: { ...oldLinkAttrs, url: newUrl, target: newTarget },\n });\n }\n } else {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n link: { ...oldLinkAttrs, url: null, target: null },\n });\n }\n\n if (edited) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n if (url) {\n props.saveNodeData();\n }\n }, 2000);\n }\n }, [url, target]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.link) {\n loading.current = props.element.node.attrs.uid;\n setUrl(props.element.node.attrs.link.url);\n setTarget(props.element.node.attrs.link.target);\n }\n }, [props.element]);\n\n return (\n \n setTarget(event.target.value)}\n label={t(\"tiptap.components.sidebar.linkAction.label\")}\n description={t(\"tiptap.components.sidebar.linkAction.description\")}\n placeholder={t(\"tiptap.components.sidebar.linkAction.placeholder\")}\n data={[\n {\n value: \"_current\",\n label: t(\"tiptap.components.sidebar.linkAction.label2\"),\n },\n {\n value: \"_blank\",\n label: t(\"tiptap.components.sidebar.linkAction.label3\"),\n },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n setUrl(event.currentTarget.value)}\n placeholder={`Link url`}\n label={`Link url`}\n description={`Specify the URL link the user will be taken to`}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { Stack, NativeSelect } from \"@mantine/core\";\n\nexport default function DisplayAs(props) {\n const location = useLocation();\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [displayAs, setDisplayAs] = useState(\"link\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newDisplayAs = displayAs;\n\n let edited = false;\n\n if (newDisplayAs) {\n edited = true;\n\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n displayAs: newDisplayAs,\n });\n }\n\n if (edited) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n if (displayAs) {\n props.saveNodeData();\n }\n }, 2000);\n }\n }, [displayAs]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.displayAs) {\n loading.current = props.element.node.attrs.uid;\n setDisplayAs(props.element.node.attrs.displayAs);\n }\n }, [props.element]);\n\n return (\n \n setDisplayAs(event.target.value)}\n label=\"Display as\"\n placeholder=\"Select PDF display option\"\n data={[\n { value: \"link\", label: \"Download link\" },\n { value: \"embed\", label: \"Embedded PDF\" },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { Stack, NativeSelect } from \"@mantine/core\";\n\nexport default function DisplayAs(props) {\n const location = useLocation();\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [displayAs, setDisplayAs] = useState(\"link\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newDisplayAs = displayAs;\n\n let edited = false;\n\n if (newDisplayAs) {\n edited = true;\n\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n viewAs: newDisplayAs,\n });\n }\n\n if (edited) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n if (displayAs) {\n props.saveNodeData();\n }\n }, 2000);\n }\n }, [displayAs]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.viewAs) {\n loading.current = props.element.node.attrs.uid;\n setDisplayAs(props.element.node.attrs.viewAs);\n }\n }, [props.element]);\n\n return (\n \n setDisplayAs(event.target.value)}\n label=\"Display as\"\n placeholder=\"Select a display option\"\n data={[\n { value: \"list\", label: \"List item\" },\n { value: \"vcard\", label: \"Vertical card\" },\n { value: \"hcard\", label: \"Horizontal card\" },\n { value: \"button\", label: \"Button\" },\n { value: \"link\", label: \"Link\" },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { Stack, NativeSelect } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nexport default function DisplayAs(props) {\n const location = useLocation();\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [displayAs, setDisplayAs] = useState(\"link\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newDisplayAs = displayAs;\n\n let edited = false;\n\n if (newDisplayAs) {\n edited = true;\n\n if (newDisplayAs == \"card\" && props.element.node.attrs.link && props.element.node.attrs.link.url){\n tiptap.editor.chain().updateAttributes(props.element.node.type.name, {\n viewAs: newDisplayAs,\n }).run();\n }\n else if (newDisplayAs == \"card\"){\n onFetchLink()\n }\n else{\n tiptap.editor.chain().updateAttributes(props.element.node.type.name, {\n viewAs: newDisplayAs,\n }).setTextAlign(\"left\").run();\n }\n\n \n }\n\n if (edited) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n if (displayAs) {\n props.saveNodeData();\n }\n }, 2000);\n }\n }, [displayAs]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.viewAs) {\n loading.current = props.element.node.attrs.uid;\n setDisplayAs(props.element.node.attrs.viewAs);\n }\n }, [props.element]);\n\n const transformVimeoLink = (link) => {\n // Extract the video ID and the part after the \"?h=\"\n const match = link.match(/\\/(\\d+)\\?h=(\\w+)/);\n \n if (match && match.length === 3) {\n const videoID = match[1];\n const hashPart = match[2];\n const transformedLink = `https://vimeo.com/${videoID}/${hashPart}`;\n return transformedLink;\n }\n \n // Return original link if the pattern doesn't match\n return link;\n }\n\n const onFetchLink = () => {\n if (props.element.node.type.name == \"embed\"){\n let link = \"\";\n let auxVideoId = props.element.node.attrs.videoId\n\n if (props.element.node.attrs.src.indexOf(\"youtube\") >= 0){\n link = `https://www.youtube.com/watch?v=${auxVideoId}`\n }\n else if (props.element.node.attrs.src.indexOf(\"vimeo\") >= 0){\n auxVideoId = props.element.node.attrs.src.split(\"/\").pop()\n link = transformVimeoLink(`https://vimeo.com/${auxVideoId}`)\n }\n else if (props.element.node.attrs.src.indexOf(\"loom\") >= 0){\n auxVideoId = props.element.node.attrs.src.split(\"/\").pop()\n link = `https://www.loom.com/share/${auxVideoId}`\n }\n \n SpaceModel.onFetchLink(\n link,\n (data) => {\n tiptap.editor.chain().updateAttributes(props.element.node.type.name, {\n viewAs: \"card\",\n link: {\n url: link,\n target: \"_modal\",\n title: data.data.title,\n description: data.data.description,\n image: {\n url: data.data.image.url,\n },\n },\n }).setTextAlign(\"left\").run();\n \n },\n (data) => {\n \n tiptap.editor.chain().updateAttributes(props.element.node.type.name, {\n viewAs: \"card\",\n link: {\n url: link,\n target: \"_modal\",\n title: \"Embeded video\",\n description: \"\",\n image: {\n url: null,\n },\n },\n }).setTextAlign(\"left\").run();\n \n }\n );\n }\n else{\n\n const thumbnail = `${props.element.node.attrs.src\n .replace(\".m3u8\", \"\")\n .replace(\n \"sutra-video-output.s3.us-west-1.amazonaws.com\",\n \"sutra-video-thumbnails.s3.us-west-1.amazonaws.com/thumbnails\"\n )}_00001.png`;\n\n tiptap.editor.chain().updateAttributes(props.element.node.type.name, {\n viewAs: \"card\",\n link: {\n url: props.element.node.attrs.src,\n target: \"_modal\",\n title: \"Direct upload\",\n description: \"\",\n image: {\n url: thumbnail,\n },\n },\n }).setTextAlign(\"left\").run();\n }\n }\n\n return (\n \n setDisplayAs(event.target.value)}\n label=\"Display as\"\n placeholder=\"Select a display option\"\n data={[\n { value: \"inline\", label: \"Embed\" },\n { value: \"card\", label: \"Card\" },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Stack, TextInput } from \"@mantine/core\";\n\nexport default function LinkTitle(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [text, setText] = useState('');\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newText = text;\n\n if (typeof newText === \"string\" && text !== node.node.attrs.link.title) {\n\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n link: {\n url: props.element.node.attrs.link.url,\n target: props.element.node.attrs.link.target,\n title: text,\n description: props.element.node.attrs.link.description,\n image: { ...props.element.node.attrs.link.image },\n thumbnail: { ...props.element.node.attrs.link.thumbnail },\n },\n });\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [text]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setText(props.element.node.attrs.link.title);\n }\n }, [props.element]);\n\n return (\n \n setText(event.currentTarget.value)}\n placeholder={\"Title\"}\n label={\"Card title\"}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Stack, Textarea } from \"@mantine/core\";\n\nexport default function LinkTitle(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [text, setText] = useState('');\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newText = text//node.node.attrs.link.description ? text : null;\n\n if (typeof newText === \"string\" && text !== node.node.attrs.link.description) {\n\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n link: {\n url: props.element.node.attrs.link.url,\n target: props.element.node.attrs.link.target,\n title: props.element.node.attrs.link.title,\n description: text,\n image: { ...props.element.node.attrs.link.image },\n thumbnail: { ...props.element.node.attrs.link.thumbnail },\n },\n });\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [text]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setText(props.element.node.attrs.link.description);\n }\n }, [props.element]);\n\n return (\n \n setText(event.currentTarget.value)}\n placeholder={\"Description\"}\n label={\"Card description\"}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Stack, MantineProvider, Image, Button, Modal } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport FilerobotImageEditor, {\n TABS,\n TOOLS,\n} from \"react-filerobot-image-editor\";\n\nconst S3_IMAGE_BUCKET = \"sutra-froala\";\n\nconst REGION = \"us-west-1\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport Swal from \"sweetalert2\";\n\n\nimport AWS from \"aws-sdk\";\n\nexport default function LinkImage(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [text, setText] = useState();\n const [isImgEditorHeaderShown, setIsImgEditorHeaderShown] = useState(false);\n const htmlImageHeader = useRef();\n const fileInputHeader = useRef();\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newText = text; //node.node.attrs.link.description ? text : null;\n\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n link: {\n ...props.element.node.attrs.link,\n thumbnail: { url: text },\n },\n });\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }, [text]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n if (props.element.node.attrs.link.thumbnail) {\n setText(props.element.node.attrs.link.thumbnail.url);\n }\n }\n }, [props.element]);\n\n const onUploadHeader = (file) => {\n const extension = file.fullName.split(\".\").pop();\n const fileName = escapeFilename(file.fullName).replace(`.${extension}`, \"\");\n\n const imageId = `${uuidv4().replace(/-/g, \"\")}/${encodeURIComponent(\n fileName\n )}.${extension}`;\n\n const upload = {\n id: imageId,\n file: file,\n type: \"image\",\n status: \"pending\",\n };\n\n uploadFile(upload);\n };\n\n const uploadFile = (upload) => {\n const client = newClient();\n const key = `uploads/${upload.id}`;\n\n const folderParams = {\n ACL: \"public-read\",\n Body: \"\",\n Bucket: client.config.params.Bucket,\n Key: key.split(\"/\")[0] + \"/\",\n };\n\n const params = {\n ACL: \"public-read\",\n Body: base64(upload.file.imageBase64),\n Bucket: client.config.params.Bucket,\n Key: key,\n };\n\n client.putObject(folderParams, (err, data) => {\n if (err) {\n } else {\n client\n .putObject(params, (err, data) => {\n setTimeout(() => {\n setText(\n `https://${client.config.params.Bucket}.s3.${REGION}.amazonaws.com/${key}`\n );\n }, 1000);\n })\n .on(\"httpUploadProgress\", (evt) => {})\n .send((err) => {\n if (err) console.log(err);\n });\n }\n });\n };\n\n const base64 = (base64Image) => {\n const base64Data = base64Image.split(\",\")[1];\n\n // Convert base64 to Blob\n const binaryString = window.atob(base64Data);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return new Blob([bytes], { type: \"image/png\" });\n };\n\n const escapeFilename = (filename) => {\n // Remove any leading or trailing spaces\n filename = filename.trim();\n\n // Replace any consecutive whitespace characters with a single space\n filename = filename.replace(/\\s+/g, \" \");\n\n // Replace any special characters with underscores\n filename = filename.replace(/[^0-9A-Za-z.\\-]/g, \"_\");\n\n // Limit the length of the file name to 255 characters\n filename = filename.slice(0, 255);\n\n return filename;\n };\n\n const newClient = (type) => {\n return new AWS.S3({\n params: { Bucket: S3_IMAGE_BUCKET },\n region: REGION,\n keyStart: window.$RAILS_ENV.AWS_CONFIG.key_start,\n });\n };\n\n const openImgEditorHeader = () => {\n setIsImgEditorHeaderShown(true);\n };\n\n const closeImgEditorHeader = () => {\n setIsImgEditorHeaderShown(false);\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n };\n\n const onOpenFileSelector = (event) => {\n try {\n event.target.children[0].click();\n } catch {}\n };\n\n const handleFileInputHeader = (e) => {\n const file = e.target.files[0];\n\n if (!isFileValid(file, e.target)){\n return\n }\n\n htmlImageHeader.current = document.createElement(\"img\");\n\n if (file) {\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", function () {\n htmlImageHeader.current.src = reader.result;\n openImgEditorHeader();\n });\n\n reader.readAsDataURL(file);\n } else {\n // Clear the value of the file input\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n }\n };\n\n const isFileValid = (selectedFile, target) => {\n const maxSize = 5 * 1024 * 1024; // 5MB in bytes\n\n if (selectedFile.size > maxSize) {\n Swal.fire(\"\", \"Your image must be less than 5MB\", \"info\");\n target.value = ''; // Clear the selected file\n return false;\n }\n return true;\n }\n\n return (\n \n {text ? (\n <>\n \n \n }\n onClick={() => setText(\"\")}\n >\n {\"Remove thumbnail\"}\n \n \n \n ) : (\n }\n onClick={(event) => onOpenFileSelector(event)}\n >\n \n {`Change thumbnail`}\n \n )}\n setIsImgEditorHeaderShown(false)}\n title={\"\"}\n zIndex={99999}\n >\n \n onUploadHeader(editedImageObject, designState)\n }\n onClose={closeImgEditorHeader}\n Rotate={{ angle: 90, componentType: \"slider\" }}\n Crop={{\n ratio: 160 / 120,\n ratioTitleKey: \"Thumbnail\",\n noPresets: true,\n autoResize: true,\n }}\n defaultSavedImageQuality={0.7}\n defaultSavedImageName={\"thumb\"}\n tabsIds={[TABS.ADJUST]} // or {['Adjust', 'Annotate', 'Watermark']}\n defaultTabId={TABS.ADJUST} // or 'Annotate'\n defaultToolId={TOOLS.TEXT} // or 'Text'\n onBeforeSave={() => false}\n />\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Stack,\n NativeSelect,\n Switch,\n MultiSelect,\n Select,\n Loader,\n} from \"@mantine/core\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\nimport SpaceModel from \"../../../../models/Space\";\nimport TagModel from \"../../../../models/Tag\";\n\nimport Tag from \"../../../spaces_neo/presentations/discussion/Tag\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport default function ButtonAction(props) {\n const location = useLocation();\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n const searchTimeoutId = useRef(false);\n const tagsLoader = useRef(null);\n const tagsAux = useRef([]);\n\n const space = useSelector((state) => state.space);\n const tiptap = useSelector((state) => state.tiptap);\n const [searching, setSearching] = useState(false);\n const [spaces, setSpaces] = useState([]);\n\n const [id, setId] = useState([]);\n const [tags, setTags] = useState([]);\n const [tagsList, setTagsList] = useState([]);\n const [tagsFeedShowAll, setTagsFeedShowAll] = useState(false);\n const [tagsShowUser, setTagsShowUser] = useState(false);\n const [tagsDate, setTagsDate] = useState(false);\n const [tagsShowMessageActions, setTagsShowMessageActions] = useState(false);\n const [tagsShowMTagsOnEachMessage, setTagsShowMTagsOnEachMessage] =\n useState(false);\n const [tagsNumberOfPosts, setTagsNumberOfPosts] = useState(\"5\");\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n let edited = true;\n\n if (props.element.node.attrs.id != id) {\n edited = true;\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n id: id,\n });\n tagsLoader.current = null\n onFetchTags();\n }\n if (props.element.node.attrs.tagsFeedShowAll != tagsFeedShowAll) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n tagsFeedShowAll: tagsFeedShowAll,\n });\n }\n if (props.element.node.attrs.tagsShowUser != tagsShowUser) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n tagsShowUser: tagsShowUser,\n });\n }\n if (props.element.node.attrs.tagsDate != tagsDate) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n tagsDate: tagsDate,\n });\n }\n if (props.element.node.attrs.tagsShowMessageActions != tagsShowMessageActions) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n tagsShowMessageActions: tagsShowMessageActions,\n });\n }\n if (props.element.node.attrs.tagsShowMTagsOnEachMessage != tagsShowMTagsOnEachMessage) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n tagsShowMTagsOnEachMessage: tagsShowMTagsOnEachMessage,\n });\n }\n if (props.element.node.attrs.tagsNumberOfPosts != tagsNumberOfPosts) {\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n tagsNumberOfPosts: tagsNumberOfPosts,\n });\n }\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n tags: tags,\n });\n\n if (edited) {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n if (id) {\n \n window.$reloadTagsFeed = id;\n props.saveNodeData();\n }\n }, 2000);\n }\n }, [id, tagsFeedShowAll, tagsShowUser, tagsDate, tags, tagsShowMessageActions, tagsShowMTagsOnEachMessage, tagsNumberOfPosts]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n if (props.element.node.attrs.id instanceof Array){\n setId(props.element.node.attrs.id);\n }\n else if (props.element.node.attrs.id instanceof String){\n setId([props.element.node.attrs.id]);\n }\n else{\n setId([])\n }\n setTags(props.element.node.attrs.tags);\n setTagsFeedShowAll(props.element.node.attrs.tagsFeedShowAll);\n setTagsShowUser(props.element.node.attrs.tagsShowUser);\n setTagsDate(props.element.node.attrs.tagsDate);\n setTagsShowMessageActions(props.element.node.attrs.tagsShowMessageActions);\n setTagsShowMTagsOnEachMessage(props.element.node.attrs.tagsShowMTagsOnEachMessage);\n setTagsNumberOfPosts(props.element.node.attrs.tagsNumberOfPosts);\n tagsLoader.current = null\n onFetchTags();\n onFetchSpaces();\n }\n }, [props.element]);\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onFetchSpaces = (query = null) => {\n const include = [\n \"members\",\n \"simple\",\n `priority-context-${window.$fetchedTopSlug}`,\n `include-ids-${id.join(\",\")}`\n ];\n if (query) {\n include.push(`q=${query}`);\n }\n SpaceModel.onFetchManagedDiscussions(\n null,\n include,\n { page: 1, per: 10 },\n (data) => {\n const _spaces = [];\n for (let i = 0; i < data.length; i++) {\n _spaces.push({\n value: data[i].slug,\n label: `${data[i].name} (${data[i].slug})`,\n });\n }\n setSpaces(_spaces);\n },\n (data) => {}\n );\n };\n\n const onFetchTags = () => {\n if (tagsLoader.current == null){\n tagsLoader.current = 0\n }\n else{\n tagsLoader.current ++;\n }\n\n try{\n \n const _id = props.element.node.attrs.id[tagsLoader.current];\n TagModel.onFetch(\n _id,\n (data) => {\n tagsAux.current = mergeArraysUniqueByKey(tagsAux.current, data, 'value')\n setTagsList([...tagsAux.current]);\n onFetchTags()\n },\n (data) => {}\n );\n }\n catch{}\n \n };\n\n const mergeArraysUniqueByKey = (array1, array2, key) => {\n const merged = {};\n\n // Add elements from array1\n array1.forEach(item => {\n merged[item[key]] = item;\n });\n\n // Add elements from array2, overwriting existing ones with the same key\n array2.forEach(item => {\n merged[item[key]] = item;\n });\n\n // Extract values from the merged object\n const result = Object.values(merged);\n\n return result;\n}\n\n const onTag = () => {};\n const setTag = () => {};\n const onUpdated = () => {};\n\n return (\n \n \n ) : (\n \n )\n }\n searchable\n limit={100}\n mt={tagsNumberOfPosts}\n data={spaces}\n onChange={(selection) => setId(selection)}\n label={\"Fetch tag messages from\"}\n placeholder={\"Search space\"}\n description={`Select a chat or discussion prompt to fetch the messages from`}\n value={id}\n onSearchChange={(query) => onSearchSpaces(query)}\n styles={{\n description: {\n fontWeight: 600,\n },\n label: {\n whiteSpace: \"normal\"\n },\n defaultValue: {\n height: \"unset\"\n }\n }}\n />\n\n \n\n setTagsFeedShowAll(event.target.checked)}\n label={\"Show posts from current user only\"}\n placeholder={\"Toggle to show posts from current user only\"}\n />\n\n setTagsShowUser(event.target.checked)}\n label={\"Show message username and avatar\"}\n placeholder={\n \"Toggle to show the user username and avatar on each message\"\n }\n />\n\n setTagsDate(event.target.checked)}\n label={\"Show message posted date\"}\n placeholder={\"Toggle to show the date when the messages was posted\"}\n />\n\n setTagsShowMessageActions(event.target.checked)}\n label={\"Show message actions\"}\n placeholder={\"Toggle to show actions for each message\"}\n />\n\n \n setTagsShowMTagsOnEachMessage(event.target.checked)\n }\n label={\"Show message tags\"}\n placeholder={\"Toggle to show the tags of each message\"}\n />\n\n setTagsNumberOfPosts(selection)}\n label={\"Number of posts\"}\n placeholder={\"Select a number\"}\n description={`Select the number of post that will load initially`}\n value={tagsNumberOfPosts}\n styles={{\n description: {\n fontWeight: 600,\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { Stack, Switch } from \"@mantine/core\";\n\nimport Tag from \"../../../spaces_neo/presentations/discussion/Tag\";\n\nimport TagModel from \"../../../../models/Tag\";\n\nexport default function InteractiveTags(props) {\n const timeoutId = useRef(null);\n\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [checked, setChecked] = useState(false);\n const [tags, setTags] = useState([]);\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const _checked = props.element.node.attrs[`${props.attrName}`];\n\n if (_checked != checked) {\n const data = {};\n data[`${props.attrName}`] = checked;\n\n tiptap.editor.commands.updateAttributes(\n props.element.node.type.name,\n data\n );\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [checked]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setChecked(props.element.node.attrs[`${props.attrName}`]);\n\n onFetchTags();\n }\n }, [props.element]);\n\n const onFetchTags = () => {\n TagModel.onFetch(\n props.element.node.attrs.id,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n };\n\n const onTag = () => {};\n\n const onUpdated = () => {};\n\n return (\n <>\n \n setChecked(event.currentTarget.checked)}\n label={`${props.attrLabel}`}\n />\n \n {checked && (\n \n \n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Stack, TextInput } from \"@mantine/core\";\n\nexport default function BlockTitle(props) {\n const timeoutId = useRef(null);\n const { t, i18n } = useTranslation();\n const loading = useRef(false);\n\n const tiptap = useSelector((state) => state.tiptap);\n const [text, setText] = useState();\n\n useEffect(() => {\n if (\n !props.element ||\n !props.element.node.attrs ||\n (props.element &&\n props.element.node.attrs &&\n loading.current != props.element.node.attrs.uid)\n ) {\n return;\n }\n\n const node = props.element;\n const newText = text;\n\n \n if (newText) {\n\n tiptap.editor.commands.updateAttributes(props.element.node.type.name, {\n blockTitle: text,\n });\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n props.saveNodeData();\n }, 2000);\n }\n }, [text]);\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n setText(props.element.node.attrs.blockTitle);\n }\n }, [props.element]);\n\n return (\n \n setText(event.currentTarget.value)}\n // placeholder={\"Survey block label\"}\n label={\"Survey block label\"}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { Stack, Textarea, Button } from \"@mantine/core\";\n\nimport MediaFileModel from \"../../../../models/MediaFile\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function Transcript(props) {\n\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [transcript, setTranscript] = useState(\"\");\n\n useEffect(() => {\n if (props.element && props.element.node.attrs.styles) {\n loading.current = props.element.node.attrs.uid;\n\n onFetch();\n }\n }, [props.element]);\n\n const onFetch = () => {\n MediaFileModel.onFetch(props.element.node.attrs.src, space.slug, (data) => {\n setTranscript(data.transcription)\n },\n (data) => {})\n }\n\n const onTranscribe = () => {\n MediaFileModel.onTranscribe(props.element.node.attrs.src, space.slug, (data) => {\n Swal.fire(\"In process\", \"This process may take a few minutes\", \"success\");\n },\n (data) => {})\n }\n\n return (\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Drawer,\n Button,\n Text,\n Select,\n ScrollArea,\n createStyles,\n MantineProvider,\n Accordion,\n Tabs,\n Box,\n} from \"@mantine/core\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\nimport { addDummyCursor, removeDummyCursor } from \"../utils/dummyCursor\";\nimport { getListOfNodes, getAllParents } from \"../utils/selection\";\n\nimport Padding from \"./sidebar/Padding\";\nimport Margin from \"./sidebar/Margin\";\nimport Alignment from \"./sidebar/Alignment\";\nimport Width from \"./sidebar/Width\";\nimport Radius from \"./sidebar/Radius\";\nimport NestedRadius from \"./sidebar/NestedRadius\";\nimport VerticalAlignment from \"./sidebar/VerticalAlignment\";\nimport BackgroundColor from \"./sidebar/BackgroundColor\";\nimport BackgroundImage from \"./sidebar/BackgroundImage\";\nimport ButtonBackgroundColor from \"./sidebar/ButtonBackgroundColor\";\nimport ButtonText from \"./sidebar/ButtonText\";\nimport ButtonAction from \"./sidebar/ButtonAction\";\nimport BundleAction from \"./sidebar/BundleAction\";\nimport SpaceAttrs from \"./sidebar/SpaceAttrs\";\nimport InteractiveText from \"./sidebar/InteractiveText\";\nimport InteractiveSwitch from \"./sidebar/InteractiveSwitch\";\nimport InteractiveWaitTime from \"./sidebar/InteractiveWaitTime\";\nimport InteractiveTextArea from \"./sidebar/InteractiveTextArea\";\nimport InteractiveRadio from \"./sidebar/InteractiveRadio\";\nimport FileName from \"./sidebar/FileName\";\nimport BlockId from \"./sidebar/BlockId\";\nimport LinkAction from \"./sidebar/LinkAction\";\nimport DisplayAs from \"./sidebar/DisplayAs\";\nimport CircleDisplayAs from \"./sidebar/CircleDisplayAs\";\nimport VideoDisplayAs from \"./sidebar/VideoDisplayAs\";\nimport LinkTitle from \"./sidebar/LinkTitle\";\nimport LinkDescription from \"./sidebar/LinkDescription\";\nimport LinkImage from \"./sidebar/LinkImage\";\nimport TagsFeedAttrs from \"./sidebar/TagsFeedAttrs\";\nimport InteractiveTags from \"./sidebar/InteractiveTags\";\nimport BlockTitle from \"./sidebar/BlockTitle\";\nimport Transcript from \"./sidebar/Transcript\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n tabInner: {\n justifyContent: \"flex-start\",\n },\n tabControl: {\n padding: 0,\n height: \"30px\",\n fontSize: 10,\n marginRight: 20,\n // color: 'red',\n },\n tabsList: {\n marginBottom: -5,\n },\n tabActive: {\n fontWeight: \"bold\",\n color: `${theme.colors.dark[9]} !important`,\n borderBottomColor: `${theme.colors.sutrablue[4]} !important`,\n // color: `${theme.colors.sutrablue[3]} !important`,\n // borderBottomColor: `${theme.colors.sutrablue[3]} !important`\n },\n item: {\n borderBottom: \"none\",\n },\n control: {\n paddingTop: 0,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 16,\n // backgroundColor: theme.colors.gray[0],\n // borderRadius: 5,\n // marginLeft: -5,\n // marginRight: \"-20px !important\",\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n icon: {\n // marginRight: 8,\n // marginLeft: -5\n },\n content: {\n backgroundColor: theme.colors.gray[0],\n paddingLeft: 20,\n paddingRight: 20,\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n iconWrapper: {\n ref: getRef(\"iconWrapper\"),\n },\n chipChecked: {\n backgroundColor: `${theme.colors.dark[3]} !important`,\n color: theme.white,\n [`& .${getRef(\"iconWrapper\")}`]: {\n color: theme.white,\n },\n },\n chipOutline3: {\n width: \"80px\",\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipOutline4: {\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipLabel: {\n textAlign: \"center\",\n fontSize: 9,\n fontWeight: 800,\n color: theme.colors.dark[3],\n height: 26,\n },\n}));\n\nlet loadingStyles = false;\nlet updateIntervalId = null;\n\nconst SideConfigurationsMenu = (props) => {\n const { classes, cx, theme } = useStyles();\n\n const lastNodeSaved = useRef(null);\n const { t, i18n } = useTranslation();\n\n const user = useSelector((state) => state.user);\n\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n const [opened, setOpened] = useState(false);\n const [styles, setStyles] = useState({});\n\n const [bgType, setBgType] = useState(\"color\");\n const [gridBgType, setGridBgType] = useState(\"color\");\n const [columnBgType, setColumnBgType] = useState(\"color\");\n\n const [tNode, setTNode] = useState({ type: \"none\" });\n const [update, setUpdate] = useState(false);\n const [grid, setGrid] = useState();\n const [column, setColumn] = useState();\n const [node, setNode] = useState();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n updateIntervalId = setInterval(() => {\n if (window.$selectionUpdateForConfigurations) {\n if (\n lastNodeSaved.current &&\n lastNodeSaved.current.count < 2 &&\n (lastNodeSaved.current.node.node.type.name.indexOf(\"grid\") >= 0 ||\n lastNodeSaved.current.node.node.type.name.indexOf(\"column\") >= 0)\n ) {\n lastNodeSaved.current.count++;\n\n return;\n }\n window.$selectionUpdateForConfigurations = false;\n\n setUpdate(true);\n }\n }, 250);\n\n return () => {\n clearInterval(updateIntervalId);\n };\n }, []);\n\n useEffect(() => {\n if (update) {\n abstractNodesFromSelection();\n setUpdate(false);\n }\n }, [update]);\n\n useEffect(() => {\n \n if (tiptapSidemenu && tiptapSidemenu.opened == \"configuration\") {\n setOpened(true);\n abstractNodesFromSelection();\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"configuration\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n removeDummyCursor();\n }\n } else {\n addDummyCursor();\n }\n }, [opened]);\n\n const saveNodeData = (\n { newStyles, newClass, newRadius, newTextAlign, _node },\n type\n ) => {\n if (loadingStyles) {\n return;\n }\n lastNodeSaved.current = {\n node: _node,\n count: 0,\n range: { ...window.$tiptapSelectionRange },\n leafNode: node,\n time: new Date().getTime(),\n };\n if (newStyles && type == \"styles\") {\n if (\n _node.node.type.name.indexOf(\"grid\") < 0 &&\n _node.node.type.name != \"column\"\n ) {\n tiptap.editor.commands.setCustomStyles(newStyles);\n } else {\n try {\n const { tr } = tiptap.editor.view.state;\n tr.setNodeMarkup(_node.pos, undefined, {\n ..._node.node.attrs,\n styles: newStyles,\n });\n\n tiptap.editor.view.dispatch(tr);\n } catch (e) {\n } finally {\n }\n }\n\n abstractNodesFromSelection();\n }\n };\n\n const abstractNodesFromSelection = () => {\n if (!props.editor) {\n return;\n }\n\n if (lastNodeSaved.current && lastNodeSaved.current.count >= 2) {\n if (\n window.$tiptapSelectionRange.from != lastNodeSaved.current.range.from &&\n window.$tiptapSelectionRange.to != lastNodeSaved.current.range.to\n ) {\n if (window.$tiptapSelectionRange.time < lastNodeSaved.current.time) {\n try {\n if (lastNodeSaved.current.leafNode.node.isTextblock) {\n props.editor.commands.setTextSelection({\n from: lastNodeSaved.current.range.from,\n to: lastNodeSaved.current.range.to,\n });\n } else {\n props.editor.commands.setNodeSelection(\n lastNodeSaved.current.range.from\n );\n }\n window.$tiptapSelectionRange = { ...lastNodeSaved.current.range };\n } catch {}\n } else {\n try {\n if (lastNodeSaved.current.leafNode.node.isTextblock) {\n props.editor.commands.setTextSelection({\n from: window.$tiptapSelectionRange.from,\n to: window.$tiptapSelectionRange.to,\n });\n } else {\n props.editor.commands.setNodeSelection(\n window.$tiptapSelectionRange.from\n );\n }\n } catch {}\n }\n\n lastNodeSaved.current = null;\n return;\n }\n }\n\n loadingStyles = true;\n const { from, to } = window.$tiptapSelectionRange\n ? window.$tiptapSelectionRange\n : { from: 0, to: 0 };\n\n const { selection } = props.editor.view.state;\n const { $anchor, node } = selection;\n const { parent, path } = $anchor;\n const contParent = { node: null };\n\n const actNode = node\n ? { node: node, pos: selection.anchor }\n : { node: parent, pos: $anchor.pos };\n\n if (\n actNode.node.type.name.indexOf(\"grid\") >= 0 ||\n actNode.node.type.name == \"column\"\n ) {\n // props.editor.editor.commands.selectTextblockEnd()\n return;\n }\n\n if ($anchor.depth > 1) {\n if (\n path[3].type.name.indexOf(\"grid\") >= 0 ||\n path[3].type.name.indexOf(\"infobox\") >= 0\n ) {\n const cleanStylesColumn = cleanStylesForEdition(path[6].attrs.styles);\n const cleanStylesGrid = cleanStylesForEdition(path[3].attrs.styles);\n if (cleanStylesColumn && cleanStylesColumn[\"background-image\"]) {\n setColumnBgType(\n cleanStylesColumn[\"background-image\"].indexOf(\"https\") >= 0 ||\n cleanStylesColumn[\"background-image\"].indexOf(\"uploads\") >= 0\n ? \"image\"\n : \"color\"\n );\n }\n if (cleanStylesGrid && cleanStylesGrid[\"background-image\"]) {\n setGridBgType(\n cleanStylesGrid[\"background-image\"].indexOf(\"https\") >= 0 ||\n cleanStylesGrid[\"background-image\"].indexOf(\"uploads\") >= 0\n ? \"image\"\n : \"color\"\n );\n }\n\n setColumn({ node: path[6], pos: path[5] });\n setGrid({ node: path[3], pos: path[2] });\n } else {\n setColumn(null);\n setGrid(null);\n }\n } else {\n if (\n (actNode.node.isTextblock || actNode.node.isText) &&\n !actNode.node.textContent\n ) {\n setOpened(false);\n return;\n }\n setColumn(null);\n setGrid(null);\n }\n\n const cleanStylesNode = cleanStylesForEdition(node ? node : parent);\n\n if (cleanStylesNode && cleanStylesNode[\"background-image\"]) {\n setBgType(\n cleanStylesNode[\"background-image\"].indexOf(\"https\") >= 0 ||\n cleanStylesNode[\"background-image\"].indexOf(\"uploads\") >= 0\n ? \"image\"\n : \"color\"\n );\n }\n\n setTimeout(() => {\n setNode(actNode);\n }, 100);\n setTimeout(() => {\n loadingStyles = false;\n }, 350);\n };\n\n const cleanStylesForEdition = (_styles) => {\n if (!_styles) {\n return;\n }\n\n const cleanStyles = { ..._styles };\n\n const stylesKeys = Object.keys(_styles);\n\n for (var i = 0; i < stylesKeys.length; i++) {\n const key = stylesKeys[i];\n const value = _styles[key];\n if (key.indexOf(\"padding\") >= 0) {\n cleanStyles[key] = parseInt(value.replace(\"px\", \"\"));\n } else if (key == \"background-image\") {\n if (value == \"none\" || !value) {\n cleanStyles[key] = null;\n // setColor('rgba(255,255,255,1)')\n } else {\n if (\n cleanStyles[key] &&\n !(\n cleanStyles[key].indexOf(\"https\") >= 0 ||\n cleanStyles[key].indexOf(\"uploads\") >= 0\n )\n ) {\n } else {\n cleanStyles[key] = cleanStyles[key]\n .replace(\"url(\", \"\")\n .replace(\")\", \"\")\n .replaceAll(\"'\", \"\");\n }\n }\n // Remove url() and leave only the URL PATH\n }\n }\n return cleanStyles;\n };\n\n const fixStylesForEdition = (_styles) => {\n const fixedStyles = { ...styles };\n const stylesKeys = Object.keys(styles);\n\n for (var i = 0; i < stylesKeys.length; i++) {\n const key = stylesKeys[i];\n const value = styles[key];\n if (key.indexOf(\"padding\") >= 0) {\n fixedStyles[key] += \"px\";\n } else if (key == \"background-image\") {\n if (value == null) {\n fixedStyles[key] = `none`;\n } else {\n if (fixedStyles[key].indexOf(\"linear-gradient\") < 0) {\n if (\n fixedStyles[key].indexOf(\"https\") >= 0 ||\n fixedStyles[key].indexOf(\"uploads\") >= 0\n ) {\n fixedStyles[key] = `url('${fixedStyles[key]}')`;\n } else {\n fixedStyles[\"background-color\"] = fixedStyles[key];\n }\n }\n }\n }\n }\n\n return fixedStyles;\n };\n\n // const onBackgroundImageUpload = (image_url) => {\n // setBgImage(image_url)\n // }\n\n // const onRemoveBackgroundImage = (event) => {\n // setBgImage(null)\n // }\n\n // const onRemoveBackgroundColor = (event) => {\n // setColor(\"\")\n // }\n\n const onGridBackgroundImageUpload = (image_url) => {\n setGridBgImage(image_url);\n };\n\n const onGridRemoveBackgroundImage = (event) => {\n setGridBgImage(null);\n };\n\n const onGridRemoveBackgroundColor = (event) => {\n setGridColor(\"\");\n };\n\n const onColumnBackgroundImageUpload = (image_url) => {\n setColumnBgImage(image_url);\n };\n\n const onColumnRemoveBackgroundImage = (event) => {\n setColumnBgImage(null);\n };\n\n const onColumnRemoveBackgroundColor = (event) => {\n setColumnColor(\"\");\n };\n\n const onResetNode = (_node) => {\n const attrToReset = [];\n\n if (_node.node.attrs.textAlign) {\n attrToReset.push(\"textAlign\");\n }\n if (_node.node.attrs.styles) {\n attrToReset.push(\"styles\");\n }\n if (_node.node.attrs.class) {\n attrToReset.push(\"class\");\n }\n if (_node.node.attrs.radius) {\n attrToReset.push(\"radius\");\n }\n if (_node.node.attrs.nestedRadius) {\n attrToReset.push(\"nestedRadius\");\n }\n if (_node.node.attrs.buttonText) {\n attrToReset.push(\"buttonText\");\n attrToReset.push(\"buttonBackgroundColor\");\n attrToReset.push(\"buttonBorderColor\");\n attrToReset.push(\"buttonTextColor\");\n attrToReset.push(\"actionCallback\");\n attrToReset.push(\"actionCallbackValue\");\n }\n\n tiptap.editor.commands.resetAttributes(_node.node.type.name, attrToReset);\n };\n\n const onReset = (event) => {\n if (node) {\n onResetNode(node);\n }\n\n if (column) {\n onResetNode(column);\n }\n\n if (grid) {\n onResetNode(grid);\n }\n };\n\n const getLNodes = () => {\n try {\n return getListOfNodes(props.editor, tNode).join(\",\");\n } catch (e) {\n return e;\n } finally {\n }\n };\n\n const getHumanNodeType = (type, translation = \"\") => {\n const newType = type.charAt(0).toUpperCase() + node.node.type.name.slice(1);\n if (translation) {\n translation = t(translation);\n }\n if (newType == \"Actionbutton\") {\n return `Button ${translation}`;\n } else if (newType == \"Customform\") {\n return `Form ${translation}`;\n } else {\n return `${newType} ${translation}`;\n }\n };\n\n return (\n setOpened(false)}\n title={\n \n {t(\"tiptap.components.sideConfigurationsMenu.title\")}\n \n }\n size={\"300px\"}\n withOverlay={false}\n closeOnClickOutside={false}\n overlayOpacity={0.1}\n zIndex={99999}\n styles={{\n header: {\n paddingTop: 20,\n paddingLeft: 20,\n paddingRight: 20,\n },\n }}\n >\n \n ({\n marginLeft: 0,\n marginRight: 0,\n })}\n >\n \n {node && node.node && node.node.type.name == \"circle\" && (\n \n \n \n {node &&\n node.node &&\n node.node.type.name == \"circle\" &&\n node.node.attrs.viewAs == \"button\" && (\n \n )}\n \n )}\n\n {node && node.node && node.node.type.name == \"tagsFeed\" && (\n \n \n \n )}\n\n {node &&\n node.node &&\n node.node.attrs.src &&\n (node.node.type.name == \"video\" ||\n node.node.type.name == \"embed\") &&\n (node.node.attrs.src.indexOf(\"youtube\") ||\n node.node.attrs.src.indexOf(\"vimeo\") ||\n node.node.attrs.src.indexOf(\"loom\") ||\n node.node.attrs.src.indexOf(\"sutra\")) && (\n \n \n \n )}\n\n {node && node.node && node.node.type.name == \"file\" && (\n \n \n {node.node.attrs.displayAs && (\n \n )}\n \n )}\n\n {node &&\n node.node &&\n node.node.attrs.link &&\n (node.node.type.name == \"video\" ||\n node.node.type.name == \"embed\") &&\n node.node.attrs.viewAs.indexOf(\"card\") >= 0 && (\n \n \n \n \n \n )}\n\n {node &&\n node.node &&\n // node.node.attrs.title &&\n node.node.type.name == \"survey\" && (\n \n \n \n )}\n\n {node &&\n node.node &&\n node.node.attrs.link &&\n node.node.type.name == \"video\" &&\n node.node.attrs.viewAs.indexOf(\"card\") < 0 && (\n \n \n \n )}\n\n {node &&\n node.node &&\n node.node.attrs.link &&\n (node.node.type.name == \"image\" ||\n node.node.type.name == \"fancyLink\") && (\n \n \n {node.node.type.name == \"fancyLink\" && (\n <>\n \n \n \n \n )}\n \n )}\n\n {node && node.node && node.node.type.name == \"interactiveInput\" && (\n \n \n {\n tiptap.editor.commands.updateAttributes(\n node.node.type.name,\n { interactiveAdvancedEngagement: !!checked }\n );\n abstractNodesFromSelection();\n }}\n element={node}\n attrLabel={t(\n \"tiptap.components.sideConfigurationsMenu.attrLabel2\"\n )}\n attrName=\"interactiveInputShowAll\"\n />\n {node.node.attrs.interactiveInputShowAll && (\n \n \n \n \n \n )}\n\n \n\n \n\n \n\n \n\n \n\n \n \n )}\n\n {node && node.node && node.node.type.name == \"interactiveWait\" && (\n \n \n {node.node.attrs.interactiveWaitSendNotificationEmail && (\n <>\n \n {node.node.attrs.interactiveWaitNotificationIncludeCustomMessage && (\n \n )}\n {node.node.attrs.interactiveWaitNotificationIncludeCustomMessage && (\n \n )}\n \n {node.node.attrs.interactiveWaitNotificationIncludeContent && (\n \n \n \n )}\n \n )}\n \n )}\n\n {node && node.node && node.node.type.name == \"interactiveWait\" && (\n \n \n \n )}\n\n {node &&\n node.node &&\n node.node.attrs.buttonBackgroundColor &&\n (node.node.type.name != \"circle\" ||\n (node.node.type.name == \"circle\" &&\n node.node.attrs.viewAs == \"button\")) && (\n \n \n {/**/}\n \n \n {t(\"tiptap.components.sideConfigurationsMenu.text\")}\n \n \n {node && node.node && node.node.type.name != \"circle\" && (\n \n )}\n {node.node.type.name != \"circle\" &&\n node.node.type.name != \"survey\" &&\n node.node.attrs.actionCallback != \"bundle\" && (\n \n )}\n {node.node.attrs.actionCallback == \"bundle\" && (\n \n )}\n \n )}\n\n {node &&\n node.node &&\n (!grid || (grid && grid.node.type.name != \"infobox\")) && (\n \n {grid ? (\n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n )}\n \n )}\n\n {node &&\n node.node &&\n (!grid || (grid && grid.node.type.name != \"infobox\")) && (\n \n {grid ? (\n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n )}\n \n )}\n {node &&\n node.node &&\n node.node.attrs.textAlign &&\n (node.node.type.name != \"circle\" ||\n (node.node.type.name == \"circle\" &&\n node.node.attrs.viewAs == \"button\")) && (\n \n \n \n )}\n\n {/*NEW COLUMN V ALIGN*/}\n {column &&\n node &&\n node.node &&\n (!grid || (grid && grid.node.type.name != \"infobox\")) && (\n \n \n \n )}\n {/*NEW COLUMN V ALIGN*/}\n\n {node &&\n node.node &&\n (node.node.attrs.class || node.node.attrs.resizeableWidth) &&\n (node.node.type.name != \"circle\" ||\n (node.node.type.name == \"circle\" &&\n node.node.attrs.viewAs == \"button\")) && (\n \n \n \n )}\n\n {node &&\n node.node &&\n node.node.attrs.radius &&\n !node.node.attrs.buttonBackgroundColor && node.node.type.name !== \"audio\" && (\n \n {grid ? (\n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n )}\n \n )}\n\n {node &&\n node.node &&\n grid &&\n node.node.attrs.nestedRadius &&\n (!grid || (grid && grid.node.type.name != \"infobox\")) && (\n \n \n \n \n \n \n \n \n {/* \n \n */}\n \n \n )}\n\n {node &&\n node.node &&\n // node.node.type.name != \"horizontalRule\" &&\n node.node.type.name != \"circle\" &&\n node.node.type.name != \"resource\" && (\n \n {grid && grid.node.type.name != \"infobox\" ? (\n \n \n \n {bgType == \"color\" ? (\n \n ) : (\n \n )}\n \n \n \n {columnBgType == \"color\" ? (\n \n ) : (\n \n )}\n \n \n \n\n {gridBgType == \"color\" ? (\n \n ) : (\n \n )}\n \n \n ) : (\n <>\n \n\n {bgType == \"color\" ? (\n \n ) : (\n \n )}\n \n )}\n \n )}\n\n \n \n onReset(event, props)}\n >\n {t(\"tiptap.components.sideConfigurationsMenu.resetBlock\")}\n \n \n \n\n {window.$currentUserIsAdmin &&\n node &&\n node.node &&\n node.node.attrs.blockId != null && (\n \n \n \n )}\n\n {node &&\n node.node &&\n node.node.attrs.src &&\n (node.node.type.name == \"video\" ||\n node.node.type.name == \"embed\") &&\n (node.node.attrs.src.indexOf(\"youtube\") ||\n node.node.attrs.src.indexOf(\"vimeo\") ||\n node.node.attrs.src.indexOf(\"loom\") ||\n node.node.attrs.src.indexOf(\"sutra\")) && (\n \n \n \n )}\n \n \n \n \n );\n};\n\nexport default SideConfigurationsMenu;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Drawer, Text } from \"@mantine/core\";\n\nimport Form from \"../../spaces_neo/form/Form\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport { addDummyCursor, removeDummyCursor } from \"../utils/dummyCursor\";\n\nconst NewSpace = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n const [spaceType, setSpaceType] = useState(\"content\");\n const [spaceViewAs, setSpaceViewAs] = useState(\"list\");\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"newSpace\") {\n setOpened(true);\n setSpaceType(tiptapSidemenu.option);\n const prevCircleNode = findPreviousCircle();\n setSpaceViewAs(prevCircleNode?.attrs?.viewAs);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"newSpace\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n removeDummyCursor();\n }\n } else {\n addDummyCursor();\n }\n }, [opened]);\n\n const onSave = (spaceId, spaceLink, spaceName = \"\") => {\n document.activeElement.blur();\n\n setTimeout(() => {\n const viewAs = [\"vcard\", \"hcard\"].includes(spaceViewAs) ? spaceViewAs : \"list\";\n tiptap.editor\n .chain()\n .focus()\n .insertContent(\n ``\n )\n .run();\n\n setOpened(false);\n tiptap.editor\n .chain()\n .setTextSelection(tiptap.editor.view.state.selection.to - 1)\n .enter()\n .run();\n\n setTimeout(() => {\n tiptap.editor\n .chain()\n .setTextSelection(tiptap.editor.view.state.selection.to + 1)\n .run();\n }, 500);\n }, 1000);\n };\n\n const findPreviousCircle = () => {\n const { state } = tiptap.editor;\n const doc = state.doc;\n const currentPos = state.selection.anchor;\n \n let prevCircle = null;\n \n doc.nodesBetween(0, currentPos, (node, pos) => {\n if (node.type.name === 'circle') {\n prevCircle = node\n }\n });\n \n return prevCircle;\n };\n\n return (\n setOpened(false)}\n title={{`NEW SPACE`}}\n padding=\"xl\"\n size={\"400px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n );\n};\n\nexport default NewSpace;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Drawer, Text, ScrollArea, Box } from \"@mantine/core\";\n\nimport Uploader from \"./Uploader\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport { addDummyCursor, removeDummyCursor } from \"../utils/dummyCursor\";\n\nconst NewMedia = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const space = useSelector((state) => state.space);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n const [mediaType, setMediaType] = useState(\"image\");\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == props.name) {\n setOpened(true);\n setMediaType(tiptapSidemenu.option);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == props.name) {\n dispatch(setTiptapSidemenu({ opened: null }));\n removeDummyCursor();\n }\n } else {\n addDummyCursor();\n }\n }, [opened]);\n\n const onSave = () => {\n setTimeout(() => {\n setOpened(false);\n }, 250);\n };\n const { t, i18n } = useTranslation();\n return (\n setOpened(false)}\n title={\n \n {t(\"tiptap.components.newMedia.add\")} {mediaType}\n \n }\n padding=\"xl\"\n size={\"400px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n \n \n \n \n );\n};\n\nexport default NewMedia;\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Group,\n Text,\n Switch,\n createStyles,\n Box,\n Loader,\n Center,\n} from \"@mantine/core\";\nimport ResourceModel from \"../../models/Resource\";\n\nimport { useForm } from \"@mantine/form\";\nimport { TimeInput, DatePicker } from \"@mantine/dates\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport TiptapInline from \"../tiptap/components/TiptapInline\";\n\nimport { storeJSON } from \"../../utils/LocalDB\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n}));\n\nexport default function Form(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const [newSpaceLoading, setNewSpaceLoading] = useState(false);\n const dispatch = useDispatch();\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const [publish, setPublish] = useState(false);\n const [defaultOpened, setDefaultOpened] = useState(false);\n\n const form = useForm({\n initialValues: {\n title: \"\",\n publish_on_date: false,\n publish_date: new Date(new Date().getTime() + 86400000),\n publish_time: new Date(new Date().getTime() + 86400000),\n content: \"\",\n default_opened: false,\n },\n\n validate: {\n title: (value) => (value.length >= 3 ? null : \"write a title\"),\n },\n });\n\n useEffect(() => {\n if (props.resource) {\n form.setFieldValue(\"title\", props.resource.title);\n setPublish(props.resource.publish_on_date);\n setDefaultOpened(props.resource.default_opened);\n form.setFieldValue(\"publish_date\", new Date(props.resource.publish_time));\n form.setFieldValue(\"publish_time\", new Date(props.resource.publish_time));\n form.setFieldValue(\"content\", props.resource.content);\n }\n }, [props]);\n\n useEffect(() => {\n form.setFieldValue(\"publish_on_date\", publish);\n }, [publish]);\n\n useEffect(() => {\n form.setFieldValue(\"default_opened\", defaultOpened);\n }, [defaultOpened]);\n\n const onSave = () => {\n if (!props.resource) {\n onCreate();\n } else {\n onUpdate();\n }\n };\n\n const onCreate = () => {\n if (newSpaceLoading) {\n return;\n }\n setNewSpaceLoading(true);\n const spaceParams = { ...form.values };\n if (form.values.publish_on_date) {\n const _publishDate = new Date(form.values.publish_date);\n const _publishTime = new Date(form.values.publish_time);\n\n // spaceParams.publish_time = publishDate.toISOString().split(\"T\")[0] +\"T\"+ publishTime.toISOString().split(\"T\")[1]\n spaceParams.publish_time = new Date(\n `${_publishDate.toLocaleDateStringAbs()}, ${_publishTime.toLocaleTimeString()}`\n ).toISOString();\n spaceParams.publish_on_date = true;\n }\n\n ResourceModel.onCreate(\n props.parentId,\n spaceParams,\n (data) => {\n props.onSave(data.id);\n clearIndexdb();\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n },\n (data) => {\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n };\n\n const onUpdate = () => {\n if (newSpaceLoading) {\n return;\n }\n setNewSpaceLoading(true);\n const spaceParams = { ...form.values };\n if (form.values.publish_on_date) {\n const _publishDate = new Date(form.values.publish_date);\n const _publishTime = new Date(form.values.publish_time);\n\n // spaceParams.publish_time = publishDate.toISOString().split(\"T\")[0] +\"T\"+ publishTime.toISOString().split(\"T\")[1]\n spaceParams.publish_time = new Date(\n `${_publishDate.toLocaleDateStringAbs()}, ${_publishTime.toLocaleTimeString()}`\n ).toISOString();\n spaceParams.publish_on_date = true;\n }\n\n ResourceModel.onUpdate(\n props.resource.id,\n props.parentId,\n spaceParams,\n (data) => {\n props.onSave(data.id);\n clearIndexdb();\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n },\n (data) => {\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n };\n\n const clearIndexdb = () => {\n const context = props.resource\n ? `edit-resource-${props.parentId}-${props.resource.id}`\n : `new-resource-${props.parentId}`;\n storeJSON(\"spaces\", context, {\n json: \"\",\n html: \"\",\n });\n };\n\n const onContentUpdate = (content) => {\n form.setFieldValue(\"content\", content.content);\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n \n Description\n \n \n \n setPublish(event.currentTarget.checked)}\n label={t(\"resources.form.publish.label\")}\n styles={{\n label: {\n color: colors.default_text_color,\n },\n }}\n />\n {form.values.publish_on_date ? (\n
\n \n Publish date and time\n \n \n \n \n \n
\n ) : (\n \"\"\n )}\n \n setDefaultOpened(event.currentTarget.checked)\n }\n label={\"Default opened\"}\n styles={{\n label: {\n color: colors.default_text_color,\n },\n }}\n />\n
\n {newSpaceLoading ? (\n
\n \n
\n ) : (\n \n {props.resource\n ? t(\"resources.form.update\")\n : t(\"resources.form.create\")}\n \n )}\n
\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Drawer } from \"@mantine/core\";\n\nimport Form from \"../../resources/Form\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport { addDummyCursor, removeDummyCursor } from \"../utils/dummyCursor\";\nimport tinycolor from \"tinycolor2\";\n\nconst NewResource = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"newResource\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"newResource\") {\n tiptap.editor.commands.focus();\n window.$closingSideMenu = true;\n dispatch(setTiptapSidemenu({ opened: null }));\n removeDummyCursor();\n }\n } else {\n addDummyCursor();\n }\n }, [opened]);\n\n const onSave = (resourceId, resourceLink = \"\") => {\n window.$reloadResourceId = resourceId \n if (tiptapSidemenu.option && tiptapSidemenu.option.resource) {\n \n tiptap.editor.chain().focus().updateAttributes(\"id\", resourceId).blur().run();\n } else {\n \n tiptap.editor\n .chain()\n .focus()\n // .enter()\n .insertContent(\n ``\n ).run();\n }\n\n setTimeout(() => {\n setOpened(false);\n }, 250);\n };\n\n return (\n setOpened(false)}\n title={\n tiptapSidemenu.option && tiptapSidemenu.option.resource\n ? `Edit collapsable section`\n : `New collapsable section`\n }\n padding=\"xl\"\n overlayOpacity={0.1}\n zIndex={99999}\n styles={{\n drawer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n closeButton: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color)\n .lighten(10)\n .toString(),\n },\n },\n }}\n >\n \n \n );\n};\n\nexport default NewResource;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Box,\n createStyles,\n Loader,\n Center,\n} from \"@mantine/core\";\nimport PageModel from \"../../../models/Page\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport TiptapInline from \"../../tiptap/components/TiptapInline\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\n\nimport { storeJSON } from \"../../../utils/LocalDB\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n}));\n\nexport default function Form(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const [newSpaceLoading, setNewSpaceLoading] = useState(false);\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content_json: \"\",\n },\n\n validate: {\n title: (value) => (value.length >= 3 ? null : \"write a title\"),\n // start_date: (value) => value.length >= 3 ? null : t('spaces.create.invalidNameErrorMsg'),\n },\n });\n\n useEffect(() => {\n if (props.page) {\n form.setFieldValue(\"title\", props.page.title);\n form.setFieldValue(\"content_json\", props.page.content_json);\n }\n }, [props]);\n\n const onSave = () => {\n if (!props.page) {\n onCreate();\n } else {\n onUpdate();\n }\n };\n\n const onCreate = () => {\n if (newSpaceLoading) {\n return;\n }\n setNewSpaceLoading(true);\n const pageParams = { ...form.values };\n\n PageModel.onCreate(\n props.resourceId,\n props.spaceId,\n pageParams,\n (data) => {\n storeJSON(\"spaces\", `new-page-${props.resourceId}-${props.spaceId}`, {\n json: \"\",\n html: \"\",\n });\n props.onSave(data.id);\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n },\n (data) => {\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n };\n\n const onUpdate = () => {\n if (newSpaceLoading) {\n return;\n }\n setNewSpaceLoading(true);\n const pageParams = { ...form.values };\n\n PageModel.onUpdate(\n props.page.id,\n props.resourceId,\n props.spaceId,\n pageParams,\n (data) => {\n props.onSave(data.id);\n storeJSON(\n \"spaces\",\n `edit-page-${props.resourceId}-${props.spaceId}-${props.page.id}`,\n { json: \"\", html: \"\" }\n );\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n },\n (data) => {\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n };\n\n const onContentUpdate = (content) => {\n form.setFieldValue(\"content_json\", content.content);\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n \n\n {newSpaceLoading ? (\n
\n \n
\n ) : (\n \n {props.page\n ? t(\"resources.pages.form.save\")\n : t(\"resources.pages.form.create\")}\n \n )}\n
\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { Drawer, Box, Text, ScrollArea } from \"@mantine/core\";\n\nimport Form from \"../../resources/pages/Form\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nconst NewPage = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"newPage\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"newPage\") {\n if (tiptap.editor){\n tiptap.editor.commands.focus();\n }\n window.$closingSideMenu = true;\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n }\n }, [opened]);\n\n const onSave = (resourceId, resourceLink) => {\n // const oldAttrs = { ...tiptapSidemenu.options };\n window.$reloadResourceId = tiptapSidemenu.option.resourceId\n tiptap.editor.chain().focus().updateAttributes(\"id\", tiptapSidemenu.option.resourceId).blur().run();\n\n setTimeout(() => {\n setOpened(false);\n }, 250);\n };\n\n return (\n setOpened(false)}\n title={\n \n {tiptapSidemenu.option && tiptapSidemenu.option.page\n ? `Edit page`\n : `New page`}\n \n }\n padding=\"xl\"\n size={700}\n // overlayOpacity={0.1}\n styles={{\n drawer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n closeButton: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color)\n .lighten(10)\n .toString(),\n },\n },\n }}\n zIndex={99999}\n >\n \n \n \n \n \n );\n};\n\nexport default NewPage;\n","import React, { useState, useEffect } from \"react\";\nimport { Box, MantineProvider, Select, Button, Group } from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport BundleModel from \"../../../models/Bundle\";\n\nexport default function BundleSelection(props) {\n const space = useSelector((state) => state.space);\n const [bundles, setBundles] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"bundle\",\n object_id: \"\",\n },\n\n validate: {\n object_id: (value) =>\n value.length > 0 ? null : \"Please select a bundle\",\n },\n });\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n const onFetch = () => {\n \n BundleModel.onFetch(\n space.slug,\n (data) => {\n const _bundles = data.map((item, index) => ({\n value: `${item.id}`,\n label: item.name,\n group: \"Select an existing bundle\",\n }));\n setBundles([\n {\n value: \"new_bundle\",\n label: \"Create a new bundle\",\n group: \"New bundle\",\n },\n ..._bundles,\n ]);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values.object_id);\n };\n\n return (\n \n
onSend(values))}>\n \n \n \n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n size=\"md\"\n fullWidth\n >\n {`Add bundle`}\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Drawer, ScrollArea, useMantineTheme } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport BundlesForm from \"../../spaces_neo/settings/payment/BundlesForm\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport BundleSelection from \"./BundleSelection\";\n\nexport default function CreateBundle(props) {\n const theme = useMantineTheme();\n\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n const [opened, setOpened] = useState(false);\n const [survey, setSurvey] = useState();\n const [step, setStep] = useState(0);\n const colors = useSelector((state) => state.colors);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"createBundle\") {\n setOpened(true);\n if (tiptapSidemenu.option && tiptapSidemenu.option.survey) {\n setStep(1);\n }\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"createBundle\") {\n dispatch(setTiptapSidemenu({ opened: null, option: null }));\n }\n setStep(0);\n }\n }, [opened]);\n\n const onCreate = (bundleId) => {\n if (bundleId == \"new_bundle\") {\n setStep(1);\n return;\n }\n onUpdate(bundleId);\n };\n\n const onUpdate = (bundleId) => {\n window.$reloadBundleId = bundleId;\n if (tiptapSidemenu.option && tiptapSidemenu.option.bundle) {\n tiptap.editor\n .chain()\n .focus()\n .updateAttributes(\"id\", bundleId)\n .blur()\n .run();\n } else {\n tiptap.editor\n .chain()\n .focus()\n // .enter()\n .insertContent(\n `

`\n )\n .run();\n }\n\n setTimeout(() => {\n setOpened(false);\n }, 250);\n };\n\n return (\n setOpened(false)}\n title={\n \n {\"New bundle button\"}\n \n }\n padding=\"xl\"\n size={600}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n {\"Bundles let you create a collection of spaces that can be purchased in one go. A bundle button will link to a checkout page for the collection of spaces associated with the bundle.\"}\n \n {step == 0 ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import * as React from \"react\"\n\nconst SvgComponent = (props) => (\n \n \n \n \n \n \n)\n\nexport default SvgComponent\n","import React, { useState, useRef, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport { onDragStart } from \"../plugins/EventHandler\";\n\nimport {\n getSimpleStructure,\n isEmptySelection,\n isDocumentEmpty,\n isTopNode,\n isMultilineSelection,\n updateInteractionsPositions,\n closestInteraction,\n isInDepth\n} from \"../utils/selection\";\n\nimport { isTextSelection } from \"@tiptap/core\";\n\nimport SpacesIcon from \"../../../src/images/buttons/spacesIcon\";\nimport PremiumModal from \"../../app/PremiumModal\";\nimport DuplicateForm from \"../../spaces_neo/form/DuplicateForm\";\n\nimport { useTranslation } from \"react-i18next\";\nimport data from \"@emoji-mart/data\";\n\nimport Picker from \"@emoji-mart/react\";\n\nimport Swal from \"sweetalert2\";\n\nimport { colors } from \"../../../collections/colors\";\nimport SpaceModel from \"../../../models/Space\";\nimport MediaFileModel from \"../../../models/MediaFile\";\n\nimport {\n Paper,\n Group,\n ActionIcon,\n Tooltip,\n Text,\n Box,\n createStyles,\n Popover,\n Menu,\n Drawer,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n newLineButtonStyle: {\n // color: theme.colors.gray[5]\n },\n}));\n\nconst BlockMenu = (props) => {\n const { t, i18n } = useTranslation();\n const { classes, cx, theme } = useStyles();\n const tiptap = useSelector((state) => state.tiptap);\n const space = useSelector((state) => state.space);\n const colors2 = useSelector((state) => state.colors);\n\n const [openedEmojis, setOpenedEmojis] = useState(false);\n const [openedDuplicate, setOpenedDuplicate] = useState(false);\n const [validatePremium2, setValidatePremium2] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const rightClicked = useRef();\n\n const spaceNodeId = props?.editor?.view?.state?.selection?.node?.attrs?.id;\n const spaceNodeName =\n props?.editor?.view?.state?.selection?.node?.attrs?.buttonText;\n\n useEffect(() => {\n setValidatePremium2(\n space && space.permissions && space.permissions.can_duplicate_spaces\n );\n }, [space]);\n\n const openBlocksSideMenu = (option = null) => {\n const { from, to, $anchor } = props.editor.view.state.selection;\n\n const isEmptyTextBlock =\n !props.editor.view.state.doc.textBetween(from, to).length &&\n isTextSelection(props.editor.view.state.selection);\n const onlyTextNodes = !props.excludedFound;\n\n if (\n ($anchor.parent && $anchor.parent.textContent != \"\") ||\n props.excludedFound\n ) {\n // props.editor.chain().focus().setTextSelection({ from: to, to: to }).enter().run()\n props.editor.commands.addNewEmptyLine();\n window.$tiptapLastSelectionRange = { from: to + 1, to: to + 1 };\n\n // props.editor.chain().focus().setTextSelection({ from: to+1, to: to+1 }).run()\n } else {\n window.$tiptapLastSelectionRange = { from: to, to: to };\n }\n if (option == \"Templates\" || option == \"Layouts\") {\n dispatch(setTiptapSidemenu({ opened: \"templatesModal\", option: option }));\n } else {\n dispatch(setTiptapSidemenu({ opened: \"blocks\", option: option }));\n }\n };\n\n const onEmojiSelect = (emoji) => {\n props.editor.chain().focus().setEmoji(emoji.id).run();\n };\n\n const openConfigurationSideMenu = () => {\n const { from, to } = props.editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from, to };\n dispatch(setTiptapSidemenu({ opened: \"configuration\" }));\n };\n\n const onButtonDragStart = (e) => {\n const { from, to } = props.editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from, to };\n\n let node = props.editor.view.state.selection.node;\n\n if (node) {\n const ghost = document.getElementById(node.attrs.uid);\n\n if (ghost) {\n e.dataTransfer.setDragImage(ghost, 250, 20);\n }\n }\n\n setTimeout(() => {\n const slice = onDragStart(e, window.$tiptapAchorPos, props.editor);\n const nodes = getSimpleStructure(props.editor, slice);\n\n // - If 1 node check if only 1 circle\n // - - Perform current logic\n // - If 1 node and NOT a circle || Multiple nodes\n // - - Perform backend \"cut and paste\" logic\n\n window.$draggingNode = {\n nodes: nodes,\n parent: \"current\",\n outsider: true,\n selection_type: \"multiple\",\n };\n\n // if (nodes.length == 1){\n // if (isSingleCircleNode(props.editor, slice)){\n // const nodeLeaf = getLeaf(editor, slice)\n // draggingNode.nodes.push(nodeLeaf.leaf)\n // draggingNode.type = \"circle\"\n // }\n // else{\n // draggingNode.nodes.push(nodeLeaf.leaf.attrs.id)\n // draggingNode.type = \"circle\"\n // }\n // }\n\n // dispatch(setSidebarDragging(draggingNode));\n }, 200);\n };\n\n const onButtonDragClick = (e) => {\n // onDragClick(e, props.editor.view)\n };\n\n const onDeleteNode = () => {\n const { $anchor, node } = props.editor.view.state.selection;\n\n if (\n (node && node.type.name == \"interactiveInput\") ||\n $anchor.parent.type.name == \"interactiveInput\"\n ) {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"Deleting a discussion prompt will delete all associated user responses\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n if (node) {\n props.editor.commands.deleteSelection();\n } else {\n props.editor.commands.deleteNode($anchor.parent.type.name);\n }\n setTimeout(() => {\n updateInteractionsPositions(props.editor);\n }, 500);\n }\n });\n\n return;\n }\n\n const dontDelete = [\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"resource\",\n \"circle\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"tagsFeed\",\n \"infobox\",\n \"orderedList\",\n \"bulletList\",\n \"listItem\",\n \"video\",\n ];\n\n if (node && dontDelete.indexOf(node.type.name) >= 0) {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You are about to delete a content block\",\n showDenyButton: true,\n confirmButtonText: \"Yes, delete\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n if (node) {\n props.editor.commands.deleteSelection();\n } else {\n props.editor.commands.deleteNode($anchor.parent.type.name);\n }\n if (\n (node && node.type.name.indexOf(\"interactive\") >= 0) ||\n $anchor.parent.type.name.indexOf(\"interactive\") >= 0\n ) {\n setTimeout(() => {\n updateInteractionsPositions(props.editor);\n }, 500);\n }\n }\n });\n\n return;\n }\n\n if (node) {\n props.editor.commands.deleteSelection();\n } else {\n props.editor.commands.deleteNode($anchor.parent.type.name);\n }\n if (\n (node && node.type.name.indexOf(\"interactive\") >= 0) ||\n $anchor.parent.type.name.indexOf(\"interactive\") >= 0\n ) {\n setTimeout(() => {\n updateInteractionsPositions(props.editor);\n }, 500);\n }\n };\n\n const onButtonDuplicate = () => {\n if (!props.editor) return;\n\n const { $anchor } = props.editor.state.selection;\n\n const path = $anchor.path;\n const lastChild =\n path.length > 5 ? path[path.length - 3] : $anchor.nodeAfter;\n const prevChild = path.length > 8 ? path[path.length - 6] : null;\n const isListItem = prevChild?.type?.name === \"listItem\";\n const isColumn = lastChild?.type?.name === \"column\";\n const parentNode = isListItem\n ? prevChild\n : isColumn\n ? lastChild.content.content[$anchor.parentOffset]\n : lastChild;\n\n if (!parentNode) return;\n\n const insertPos =\n isColumn || path.length < 6 ? $anchor.pos : $anchor.after($anchor.depth);\n const copy = parentNode.copy(parentNode.content);\n\n const transaction = props.editor.state.tr.insert(insertPos, copy);\n\n props.editor.view.dispatch(transaction);\n };\n\n const onDuplicateSpace = () => {\n try {\n if (!validatePremium2[0]) {\n setOpenedPremium([true, validatePremium2[1], validatePremium2[2]]);\n return;\n }\n } catch {}\n setOpenedDuplicate(true);\n };\n\n const onDuplicate = (id, link) => {\n setOpenedDuplicate(false);\n window.location = link;\n };\n\n const goToSpace = () => {\n const node = props.editor.view.state.selection.node;\n navigate(`/space/${node.attrs.id}`);\n };\n\n const insertCircle = () => {\n if (window.location.pathname.indexOf(\"/registration\") >= 0) {\n return;\n }\n AddLineBelowSelection();\n\n dispatch(setTiptapSidemenu({ opened: \"newSpace\", option: \"content\" }));\n };\n\n const insertIj = () => {\n if (window.location.pathname.indexOf(\"/registration\") >= 0) {\n return;\n }\n AddLineBelowSelection();\n\n dispatch(\n setTiptapSidemenu({\n opened: \"loading\",\n text: \"Discussion prompt is loading, please wait…\",\n })\n );\n\n const spaceName =\n space.name < 90\n ? `${space.name} prompt`\n : `${space.name.slice(0, 90)}... prompt`;\n\n SpaceModel.onCreate(\n { intention: spaceName, version: \"interactive-discussion\" },\n space.id,\n (data) => {\n const interaction = closestInteraction(\n tiptap.editor,\n tiptap.editor.view.state.selection.to\n );\n\n const nextPos = interaction ? interaction.interactivePosition + 1 : 0;\n\n tiptap.editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n\n dispatch(setTiptapSidemenu({ opened: null }));\n\n setTimeout(() => {\n updateInteractionsPositions(tiptap.editor);\n }, 500);\n\n if (!window.$spaceUserInteractions) {\n window.$spaceUserInteractions = {\n position: 9999,\n can_manage: true,\n count: 1,\n };\n }\n setTimeout(() => {\n onTranscriptsTrigger();\n }, 3000);\n },\n (data) => {\n dispatch(setTiptapSidemenu({ opened: null }));\n if (data.permissions) {\n setOpenedPremium([true, data.permissions[1], data.permissions[2]]);\n }\n }\n );\n return;\n };\n\n const onTranscriptsTrigger = () => {\n const doc = tiptap.editor.view.state.doc;\n\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (node.type.name == \"embed\") {\n const mediaFile = {\n original_url: node.attrs.src,\n url: node.attrs.src,\n upload_type: \"embed\",\n slug: window.$currentSlug,\n embed_id: node.attrs.videoId,\n apify: true,\n };\n\n MediaFileModel.onCreate(\n mediaFile,\n (data) => {\n console.log(\"MEDIA FILE STORED\");\n },\n (data) => {}\n );\n }\n });\n };\n\n const AddLineBelowSelection = () => {\n const { from, to, $anchor } = props.editor.view.state.selection;\n\n if (!isEmptySelection(props.editor)) {\n props.editor.commands.addNewEmptyLine();\n window.$tiptapLastSelectionRange = { from: to + 1, to: to + 1 };\n\n // tiptap.editor.chain().focus().setTextSelection({ from: to+1, to: to+1 }).run()\n } else {\n window.$tiptapLastSelectionRange = { from: to, to: to };\n }\n };\n\n const openDirectMedia = (option) => {\n const { from, to, $anchor } = props.editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from: to, to: to };\n dispatch(setTiptapSidemenu({ opened: \"newMedia\", option: option }));\n };\n\n const editMedia = (option) => {\n const { from, to, $anchor } = props.editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from: to, to: to };\n dispatch(\n setTiptapSidemenu({\n opened: \"newMedia\",\n option: option,\n action: \"update\",\n })\n );\n };\n\n const getAlignment = () => {\n if (props.editor.isActive({ textAlign: \"left\" })) {\n return ;\n } else if (props.editor.isActive({ textAlign: \"center\" })) {\n return ;\n } else if (props.editor.isActive({ textAlign: \"right\" })) {\n return ;\n } else {\n return ;\n }\n };\n\n const basicBlockOptions = () => {\n return (\n \n {!props.isMultiple && !props.isEmpty && !window.$spaceIsPost && (\n \n openBlocksSideMenu()}>\n \n \n \n )}\n {!props.excludedFound && !props.isMultiple && (\n \n setOpenedEmojis(false)}\n target={\n setOpenedEmojis(true)}\n >\n \n \n }\n position=\"bottom\"\n withArrow\n width={352}\n styles={{\n popover: {\n order: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n wrapper: {\n order: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n inner: {\n padding: 0,\n border: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n body: {\n border: \"none\",\n backgroundColor: \"rgba(255,255,255,0)\",\n },\n }}\n >\n \n \n \n )}\n {!props.isMultiple && !window.$spaceIsPost && (!props.isEmpty || isInDepth(props.editor)) && (\n \n openConfigurationSideMenu()}>\n \n \n \n )}\n {!props.isMultiple && (\n \n onDeleteNode()}>\n \n \n \n )}\n {!props.isInteractive && (\n \n onButtonDragClick(event)}\n onDragStart={(event) => onButtonDragStart(event)}\n draggable={true}\n >\n \n \n \n )}\n {!props.isInteractive && !props.isResource && (\n \n {\n if (props.isASpace) {\n onDuplicateSpace();\n } else {\n onButtonDuplicate(event);\n }\n }}\n >\n \n \n \n )}\n {props.isASpace && (\n \n goToSpace()}>\n \n \n \n )}\n {props.isAMedia && (\n <>\n \n editMedia(props.isAMedia)}>\n \n \n \n \n \n }\n compact\n >\n {getAlignment()}\n \n }\n >\n \n props.editor.chain().focus().setTextAlign(\"left\").run()\n }\n >\n \n \n {t(\"tiptap.components.blockMenuActions.left\")}\n \n \n \n props.editor.chain().focus().setTextAlign(\"center\").run()\n }\n >\n \n \n \n {t(\"tiptap.components.blockMenuActions.center\")}\n \n \n \n \n props.editor.chain().focus().setTextAlign(\"right\").run()\n }\n >\n \n \n {t(\"tiptap.components.blockMenuActions.right\")}\n \n \n \n \n \n )}\n \n );\n };\n\n const reFocusDocument = (event) => {\n if (props.isEmpty && isDocumentEmpty(props.editor)) {\n event.preventDefault();\n event.stopPropagation();\n props.editor.chain().focus().run();\n }\n };\n\n const handleRightClick = (event) => {\n props.editor.chain().focus().run();\n };\n\n const handleInput = () => {\n props.editor.chain().focus().run();\n };\n\n return (\n <>\n reFocusDocument(event)}>\n {props.isEmpty &&\n isEmptySelection(props.editor) &&\n isTopNode(props.editor) &&\n !isMultilineSelection(props.editor) && (\n props.editor.chain().focus().run()}\n onContextMenu={(event) => handleRightClick(event)}\n onInput={handleInput}\n sx={(theme) => ({\n color: theme.colors.gray[5],\n marginLeft: -10,\n })}\n >\n {t(\"tiptap.components.blockMenuActions.write\")}\n \n )}\n \n \n

{document.getElementsByClassName(\"is-focus\").length > 0}

\n {props.isEmpty ? (\n <>\n \n {!props.isMultiple && !window.$spaceIsPost && (\n \n openBlocksSideMenu()}>\n \n \n \n )}\n \n \n props.editor\n .chain()\n .focus()\n .toggleHeading({ level: 1 })\n .run()\n }\n >\n \n {t(\"tiptap.components.blockMenuActions.h1\")}\n \n \n \n \n \n props.editor\n .chain()\n .focus()\n .toggleHeading({ level: 2 })\n .run()\n }\n >\n \n {t(\"tiptap.components.blockMenuActions.h2\")}\n \n \n \n\n {window.location.pathname.indexOf(\"/registration\") < 0 &&\n !window.$spaceIsPost && (\n \n insertIj()}>\n \n \n \n )}\n\n {window.location.pathname.indexOf(\"/registration\") < 0 &&\n !window.$spaceIsPost && (\n \n insertCircle()}\n // sx={{\n // width: \"30px\",\n // height: \"30px\"\n // }}\n >\n \n \n \n )}\n\n \n openDirectMedia(\"image\")}>\n \n \n \n\n \n openDirectMedia(\"video\")}>\n \n \n \n {!window.$spaceIsPost && (\n \n openBlocksSideMenu(\"Grids\")}\n >\n \n \n \n )}\n {!window.$spaceIsPost && (\n \n openBlocksSideMenu(\"Templates\")}\n >\n \n \n \n )}\n \n\n ({\n width: \"1px\",\n height: \"40px\",\n backgroundColor: theme.colors.gray[4],\n })}\n >\n\n {basicBlockOptions()}\n \n ) : (\n <>{basicBlockOptions()}\n )}\n
\n
\n
\n setOpenedDuplicate(false)}\n title={{\"DUPLICATE SPACE\"}}\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n \n \n );\n};\n\nexport default BlockMenu;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { FloatingMenu } from \"@tiptap/react\";\n\nimport { isTextSelection } from \"@tiptap/core\";\nimport BlockMenuActions from \"./BlockMenuActions\";\n\nimport { isEmptySelection, isNonTextBlock } from \"../utils/selection\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nconst BlockMenuFloating = (props) => {\n const [isMultiple, setIsMultiple] = useState(false);\n const [isASpace, setIsASpace] = useState(false);\n const [isResource, setIsResource] = useState(false);\n const [isAMedia, setIsAMedia] = useState(false);\n const [isInteractive, setIsInteractive] = useState(false);\n const [excludedFound, setExcludedFound] = useState(false);\n const [isRange, setIsRange] = useState(false);\n const [isEmpty, setIsEmpty] = useState(false);\n const [showInsides, setShowInsides] = useState(false);\n\n const dispatch = useDispatch();\n const tiptap = useSelector((state) => state.tiptap);\n\n let show = useRef(true);\n let shown = useRef(false);\n let force = useRef(false);\n let timeoutId = useRef(null);\n let lastText = useRef(-1);\n\n useEffect(() => {\n const scrollDiv = document\n .getElementsByClassName(\"content-scrollview\")[0]\n .getElementsByTagName(\"div\")[0];\n\n return () => {\n scrollDiv.onscroll = null; //scrollDiv.removeEventListener(\"scroll\", setScrollEvents)\n scrollDiv.onmousemove = null; //scrollDiv.removeEventListener(\"scroll\", setScrollEvents)\n };\n }, []);\n\n useEffect(() => {\n const scrollDiv = document\n .getElementsByClassName(\"content-scrollview\")[0]\n .getElementsByTagName(\"div\")[0];\n\n scrollDiv.onscroll = setScrollEvents;\n scrollDiv.onmousemove = setMouseMoveEvents;\n }, [props]);\n\n const setScrollEvents = (event) => {\n return;\n if (props.editor && shown.current) {\n const { doc, selection } = props.editor.view.state;\n const slice = selection.content();\n\n const { from, to, empty } = selection;\n const isEmptyTextBlock =\n !doc.textBetween(from, to).length && isTextSelection(selection);\n\n if (doc.textBetween(from, to).length == 0) {\n return;\n }\n\n show.current = false;\n props.editor.chain().blur().run();\n\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n timeoutId.current = setTimeout(() => {\n show.current = true;\n // props.editor.chain().focus().run()\n }, 1000);\n }\n };\n\n const setMouseMoveEvents = (event) => {\n const tiptapWrapper = document.getElementsByClassName(\"tiptap-wrapper\")[0];\n const focusElement = tiptapWrapper.getElementsByClassName(\"is-focus\");\n\n if (!focusElement.length && !tiptapWrapper.dataset.focused) {\n return;\n } else if (focusElement.length) {\n tiptapWrapper.dataset.focused = true;\n }\n\n const { doc, selection } = props.editor.view.state;\n\n const { from, to } = selection;\n\n const slice = selection.content();\n\n if (doc.textBetween(from, to).length && slice.content.content.length <= 1) {\n return;\n }\n\n if (\n props.editor &&\n !shown.current &&\n !force.current &&\n !isNonTextBlock(props.editor)\n ) {\n force.current = true;\n props.editor.chain().blur().run();\n setTimeout(() => {\n props.editor.chain().focus().run();\n }, 100);\n }\n };\n\n const shouldShow = (view, state, from, to) => {\n const { doc, selection } = state;\n const { empty } = selection;\n const { $anchor } = selection;\n\n window.$tiptapAchorPos = $anchor.pos;\n\n const text = view.state.selection.$head.parent.textContent;\n\n if (window.$sectionParams?.isSelection) {\n return false;\n } else if (\n lastText.current != text.length &&\n !force.current &&\n !isNonTextBlock(props.editor)\n ) {\n lastText.current = text.length;\n shown.current = false;\n setShowInsides(false);\n return false;\n }\n\n // Sometime check for `empty` is not enough.\n // Doubleclick an empty paragraph returns a node size of 2.\n // So we check also for an empty text size.\n const node = state.selection.node;\n\n const isEmptyTextBlock =\n !doc.textBetween(selection.from, selection.to).length &&\n isTextSelection(state.selection);\n\n if (\n doc.textBetween(selection.from, selection.to).length &&\n isTextSelection(selection)\n ) {\n return false;\n }\n\n const slice = state.selection.content();\n\n const listTypes = [props.editor.view.state.doc.nodeAt(selection.from)];\n let exludedFoundAux = false;\n if (listTypes && listTypes.length > 0 && listTypes[0]) {\n exludedFoundAux = listTypes.some(\n (r) => props.excludedNodes.indexOf(r.type.name) >= 0\n );\n }\n const auxIsEmpty = isEmptySelection(props.editor);\n\n setIsASpace(listTypes.length == 1 && listTypes[0] == \"circle\");\n setIsResource(listTypes.length == 1 && listTypes[0] == \"resource\");\n setIsInteractive(\n listTypes.length == 1 &&\n listTypes[0] &&\n [\"interactiveInput\", \"interactiveButton\", \"interactiveWait\"].indexOf(\n listTypes[0].type.name\n ) >= 0\n );\n\n setIsAMedia(\n listTypes.length == 1 &&\n listTypes[0] &&\n [\"image\", \"video\", \"file\", \"embed\", \"audio\"].indexOf(\n listTypes[0].type.name\n ) >= 0\n ? listTypes[0].type.name\n : false\n );\n\n setIsEmpty(auxIsEmpty);\n\n setExcludedFound(exludedFoundAux);\n\n setIsMultiple(slice.content.content.length > 1);\n\n if (auxIsEmpty) {\n setShowInsides(false);\n return false;\n }\n\n if (\n listTypes &&\n listTypes.length > 0 &&\n listTypes[0] &&\n [\"grid1\", \"grid2\", \"grid3\"].indexOf(listTypes[0].type.name) >= 0\n ) {\n shown.current = false;\n setShowInsides(false);\n return false;\n }\n\n if (\n ((!view.hasFocus() || doc.textBetween(from, to).length) &&\n slice.content.content.length <= 1) ||\n (slice.content.content.length > 1 && !exludedFoundAux)\n ) {\n shown.current = false;\n setShowInsides(false);\n return false;\n }\n\n if (!show.current && !force.current) {\n show.current = true;\n shown.current = false;\n setShowInsides(false);\n return false;\n }\n\n shown.current = true;\n force.current = false;\n\n // setIsRange(doc.textBetween(from, to).length)\n\n setShowInsides(true);\n return true;\n };\n\n return (\n \n shouldShow(view, state, from, to)\n }\n tippyOptions={{ duration: 100, placement: \"bottom\" }}\n >\n {showInsides && (\n \n )}\n \n );\n};\n\nexport default BlockMenuFloating;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { BubbleMenu } from \"@tiptap/react\";\nimport { isTextSelection } from \"@tiptap/core\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch } from \"react-redux\";\n\nimport { onDragStart } from \"../plugins/EventHandler\";\n\nimport {\n createStyles,\n Group,\n Button,\n Menu,\n Paper,\n ActionIcon,\n Box,\n Image,\n Text,\n ColorPicker,\n TextInput,\n Stack,\n Popover,\n Tooltip,\n MantineProvider,\n NativeSelect,\n} from \"@mantine/core\";\n\nimport TextIcon from \"../../../src/images/buttons/text.png\";\nimport Heading1Icon from \"../../../src/images/buttons/heading1.png\";\nimport Heading2Icon from \"../../../src/images/buttons/heading2.png\";\nimport Heading3Icon from \"../../../src/images/buttons/heading2.png\";\nimport BulletIcon from \"../../../src/images/buttons/list_bullet.png\";\nimport NumberedIcon from \"../../../src/images/buttons/list_ordered.png\";\nimport SpaceModel from \"../../../models/Space\";\nimport colorPickerSwatches from \"../../../utils/ColorSwatches\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Swal from \"sweetalert2\";\n\nimport {\n getLeaf,\n getSimpleStructure,\n getListOfNodes,\n} from \"../utils/selection\";\n\nconst useStyles = createStyles((theme) => ({\n colorButton: {\n color: theme.colors.gray[7],\n padding: \"4px 4px\",\n borderRadius: 4,\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n },\n button: {},\n isActive: {\n backgroundColor: theme.colors.gray[2],\n },\n menuButton: {\n border: \"none\",\n height: 28,\n },\n menuWrap: {\n cursor: \"pointer\",\n borderRight: `1px solid ${theme.colors.gray[2]}`,\n },\n}));\n\nconst FormatMenu = (props) => {\n const { t, i18n } = useTranslation();\n const { cx, theme, classes } = useStyles();\n const [isMultiple, setIsMultiple] = useState(false);\n const [isOnlyText, setIsOnlyText] = useState(false);\n const [colorOpened, setColorOpened] = useState(false);\n const [colorHOpened, setColorHOpened] = useState(false);\n const [textColor, onTextColorChange] = useState(\"#000\");\n const [auxTextColor, setAuxTextColor] = useState(\"#000\");\n const [highlightColor, onHighlightColorChange] = useState(\"#BBB\");\n const [auxHighlightColor, setAuxHighlightColor] = useState(\"#BBB\");\n const [showInsides, setShowInsides] = useState(false);\n const [linkOpened, setLinkOpened] = useState(false);\n const [linkUrl, setLinkUrl] = useState(\"\");\n const [linkTarget, setLinkTarget] = useState(\"_current\");\n const [linkFormat, setLinkFormat] = useState(\"text\");\n const [isMouseDragging, setIsMouseDragging] = useState(false);\n const [sectionID, setSectionID] = useState(null);\n const timeoutId = useRef(null);\n const isMouseDown = useRef(null);\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n setMouseEvents();\n\n return () => {\n unsetMouseEvents();\n };\n }, []);\n\n useEffect(() => {\n if (colorOpened || colorHOpened || linkOpened) {\n setIsMouseDragging(false);\n setShowInsides(true);\n }\n }, [colorOpened, colorHOpened, linkOpened]);\n\n useEffect(() => {\n if (!showInsides) {\n // setColorOpened(false);\n // setColorHOpened(false);\n // setLinkOpened(false);\n }\n }, [showInsides]);\n\n useEffect(() => {\n if (props.editor) {\n const actualColor = props.editor.getAttributes(\"textStyle\").color || \"#000\";\n if (actualColor != textColor && actualColor) {\n props.editor.chain().focus().setColor(textColor).run();\n }\n }\n }, [textColor]);\n\n useEffect(() => {\n if (props.editor) {\n const actualColor = props.editor.getAttributes(\"highlight\").color || \"#BBB\";\n if (actualColor != highlightColor && actualColor && highlightColor) {\n props.editor.commands.setHighlight({ color: highlightColor });\n }\n }\n }, [highlightColor]);\n\n const handleMouseDown = (event) => {\n isMouseDown.current = true;\n setIsMouseDragging(false);\n setShowInsides(true);\n };\n\n const handleMouseMove = (event) => {\n if (isMouseDown.current) {\n setIsMouseDragging(true);\n setShowInsides(false);\n // Track the mouse drag event here\n console.log(\"Mouse dragging\");\n }\n };\n\n const handleMouseUp = (event) => {\n isMouseDown.current = false;\n setIsMouseDragging(false);\n setShowInsides(true);\n };\n\n const setMouseEvents = () => {\n // document.addEventListener(\"mousedown\", handleMouseDown);\n // document.addEventListener(\"mousemove\", handleMouseMove);\n // document.addEventListener(\"mouseup\", handleMouseUp);\n };\n\n const unsetMouseEvents = () => {\n // document.removeEventListener(\"mousedown\", handleMouseDown);\n // document.removeEventListener(\"mousemove\", handleMouseMove);\n // document.removeEventListener(\"mouseup\", handleMouseUp);\n };\n\n const onChangeColor = (value, callback, auxCallback) => {\n auxCallback(value);\n if (timeoutId) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n callback(value);\n }, 1000);\n };\n\n const shouldShow = (view, state, from, to) => {\n // if (isMouseDragging) {\n // console.log(\"NOT SHOW\");\n // return false;\n // }\n\n const { doc, selection } = state;\n const { empty } = selection;\n\n const slice = selection.content();\n\n // Sometime check for `empty` is not enough.\n // Doubleclick an empty paragraph returns a node size of 2.\n // So we check also for an empty text size.\n const isEmptyTextBlock =\n !doc.textBetween(from, to).length && isTextSelection(state.selection);\n\n const listTypes = getListOfNodes(props.editor);\n\n const onlyTextNodes = listTypes.some(\n (r) => props.excludedNodes.indexOf(r) < 0\n );\n const exludedFoundAux =\n props.excludedNodes.indexOf(\n selection.node\n ? selection.node.type.name\n : selection.$anchor.parent.type.name\n ) >= 0;\n\n setIsMultiple(slice.content.content.length > 1);\n setIsOnlyText(onlyTextNodes);\n\n if (colorHOpened) {\n setColorHOpened(false);\n }\n\n const actualColor = props.editor.getAttributes(\"textStyle\").color;\n const actualHighlightColor = props.editor.getAttributes(\"highlight\").color;\n setAuxTextColor(actualColor);\n\n setAuxHighlightColor(actualHighlightColor);\n onHighlightColorChange(actualHighlightColor);\n const link = props.editor.getAttributes(\"link\");\n if (link?.href && !linkOpened) {\n setLinkUrl(link.href);\n setLinkTarget(link.target == \"_blank\" ? \"_blank\" : \"_current\");\n // onTextColorChange(\"#ff69b4\");\n } else {\n onTextColorChange(actualColor);\n }\n setLinkFormat(\"text\");\n // setAuxHighlightColor(actualColor)\n\n if (exludedFoundAux) {\n setShowInsides(false);\n return false;\n }\n\n if (!view.hasFocus() || empty || isEmptyTextBlock) {\n setShowInsides(false);\n return false;\n }\n\n setShowInsides(true);\n return true;\n };\n\n const getFormat = () => {\n if (props.editor.isActive(\"paragraph\")) {\n return t(\"tiptap.components.formatMenu.text\");\n } else if (props.editor.isActive(\"heading\", { level: 1 })) {\n return t(\"tiptap.components.formatMenu.heading1\");\n } else if (props.editor.isActive(\"heading\", { level: 2 })) {\n return t(\"tiptap.components.formatMenu.heading2\");\n } else if (props.editor.isActive(\"heading\", { level: 3 })) {\n return t(\"tiptap.components.formatMenu.heading3\");\n } else if (props.editor.isActive(\"heading\", { level: 4 })) {\n return t(\"tiptap.components.formatMenu.largeText\");\n } else if (props.editor.isActive(\"heading\", { level: 5 })) {\n return t(\"tiptap.components.formatMenu.smallText\");\n } else if (props.editor.isActive(\"bulletList\")) {\n return t(\"tiptap.components.formatMenu.bulletedList\");\n } else if (props.editor.isActive(\"orderedList\")) {\n return t(\"tiptap.components.formatMenu.orderedList\");\n } else {\n return t(\"tiptap.components.formatMenu.text2\");\n }\n };\n\n const getAlignment = () => {\n if (props.editor.isActive({ textAlign: \"left\" })) {\n return ;\n } else if (props.editor.isActive({ textAlign: \"center\" })) {\n return ;\n } else if (props.editor.isActive({ textAlign: \"right\" })) {\n return ;\n } else {\n return ;\n }\n };\n\n const getOldAttrs = () => {\n // const rangeStr = prompt(\"range\")\n // props.editor.view.state.tr.setBlockType(props.editor.view.state.selection.$head, null, props.editor.view.state.schema.nodes.heading)\n // props.editor.view.dispatch(props.editor.view.state.tr.setBlockType(window.$tiptapAchorPos, null, props.editor.view.state.schema.nodes.heading))\n const { from, to } = props.editor.view.state.selection;\n\n const leafContent = getLeaf(props.editor);\n const selection = props.editor.view.state.selection;\n const { $anchor, $head, anchor, head } = selection;\n const content = props.editor.view.state.selection.content().content.content;\n\n const pivot = anchor < head ? $anchor : $head;\n\n // LOOK FOR LEAF NODE\n if ($anchor.depth > 1) {\n const auxNode = $anchor.path[9];\n return {\n styles: { ...auxNode.attrs.styles },\n textAlign: auxNode.attrs.textAlign,\n };\n } else {\n return {\n styles: { ...content[0].attrs.styles },\n textAlign: content[0].attrs.textAlign,\n };\n }\n };\n\n const onUnsetLink = () => {\n props.editor.commands.unsetLink();\n onTextColorChange(\"#000\");\n setLinkOpened(false);\n };\n\n const onSetLink = () => {\n if (linkFormat == \"text\") {\n if (\n linkUrl.indexOf(\"http://\") < 0 &&\n linkUrl.indexOf(\"https://\") < 0 &&\n linkUrl.indexOf(\"mailto://\") < 0 &&\n linkUrl.indexOf(\"tel://\") < 0\n ) {\n props.editor.commands.setLink({\n href: `https://${linkUrl}`,\n target: linkTarget == \"_blank\" ? \"_blank\" : null,\n });\n } else {\n props.editor.commands.setLink({\n href: linkUrl,\n target: linkTarget == \"_blank\" ? \"_blank\" : null,\n });\n }\n } else {\n SpaceModel.onFetchLink(\n linkUrl,\n (data) => {\n props.editor\n .chain()\n .enter()\n .insertContent({\n type: \"fancyLink\",\n attrs: {\n link: {\n url: linkUrl,\n target: linkTarget == \"_blank\" ? \"_blank\" : null,\n title: data.data.title,\n description: data.data.description,\n image: {\n url: data.data.image.url,\n },\n },\n },\n })\n .run();\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n }\n setLinkOpened(false);\n };\n\n if (!props.editor) {\n return null;\n }\n\n const onButtonDragClick = (e) => {\n // onDragClick(e, props.editor.view)\n };\n\n const onButtonDragStart = (e) => {\n const { from, to } = props.editor.view.state.selection;\n window.$tiptapLastSelectionRange = { from, to };\n\n setTimeout(() => {\n const slice = onDragStart(e, window.$tiptapAchorPos, props.editor);\n const nodes = getSimpleStructure(props.editor, slice);\n\n // - If 1 node check if only 1 circle\n // - - Perform current logic\n // - If 1 node and NOT a circle || Multiple nodes\n // - - Perform backend \"cut and paste\" logic\n\n window.$draggingNode = {\n nodes: nodes,\n parent: \"current\",\n outsider: true,\n selection_type: \"multiple\",\n };\n\n // if (nodes.length == 1){\n // if (isSingleCircleNode(props.editor, slice)){\n // const nodeLeaf = getLeaf(editor, slice)\n // draggingNode.nodes.push(nodeLeaf.leaf)\n // draggingNode.type = \"circle\"\n // }\n // else{\n // draggingNode.nodes.push(nodeLeaf.leaf.attrs.id)\n // draggingNode.type = \"circle\"\n // }\n // }\n\n // dispatch(setSidebarDragging(draggingNode));\n }, 200);\n };\n\n return (\n \n shouldShow(view, state, from, to)\n }\n tippyOptions={{ duration: 100, maxWidth: \"none\" }}\n >\n {showInsides && (\n \n \n {isOnlyText && (\n <>\n \n props.editor.chain().focus().toggleBold().run()}\n // className={props.editor.isActive('bold') ? `isActive ${classes.button}` : `${classes.button}`}\n variant=\"default\"\n className={classes.menuButton}\n rightIcon={\n \n }\n compact\n >\n {getFormat()}\n \n \n }\n >\n \n props.editor\n .chain().toggleHeading({\n level: 5,\n ...getOldAttrs(),\n })\n .setParagraph()\n .updateAttributes(\"paragraph\", getOldAttrs())\n .run()\n }\n // className={props.editor.isActive('paragraph') ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenu.text3\")}\n \n \n \n props.editor.commands.toggleHeading({\n level: 5,\n ...getOldAttrs(),\n })\n }\n // className={props.editor.isActive('paragraph') ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenu.smallText\")}\n \n \n \n props.editor.commands.toggleHeading({\n level: 4,\n ...getOldAttrs(),\n })\n }\n // className={props.editor.isActive('paragraph') ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenu.largeText\")}\n \n \n \n props.editor.commands.toggleHeading({\n level: 1,\n ...getOldAttrs(),\n })\n }\n // className={props.editor.isActive('heading', { level: 1 }) ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenu.heading1\")}\n \n \n \n props.editor.commands.toggleHeading({\n level: 2,\n ...getOldAttrs(),\n })\n }\n // className={props.editor.isActive('heading', { level: 2 }) ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenu.heading2\")}\n \n \n \n props.editor.commands.toggleHeading({\n level: 3,\n ...getOldAttrs(),\n })\n }\n // className={props.editor.isActive('heading', { level: 3 }) ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n {t(\"tiptap.components.formatMenu.heading3\")}\n \n \n \n props.editor\n .chain()\n .focus()\n .toggleBulletList()\n .updateAttributes(\"bulbulletList\", getOldAttrs())\n .run()\n }\n // className={props.editor.isActive('bulletList') ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n \n {t(\"tiptap.components.formatMenu.bulletedList\")}\n \n \n \n \n props.editor\n .chain()\n .focus()\n .toggleOrderedList()\n .updateAttributes(\"orderedList\", getOldAttrs())\n .run()\n }\n // className={props.editor.isActive('orderedList') ? `isActive ${classes.button}` : `${classes.button}`}\n >\n \n \n \n {t(\"tiptap.components.formatMenu.numberedList\")}\n \n \n \n \n \n \n }\n compact\n >\n {getAlignment()}\n \n \n }\n >\n \n props.editor.chain().focus().setTextAlign(\"left\").run()\n }\n >\n \n \n {t(\"tiptap.components.formatMenu.left\")}\n \n \n \n props.editor.chain().focus().setTextAlign(\"center\").run()\n }\n >\n \n \n {t(\"tiptap.components.formatMenu.center\")}\n \n \n \n props.editor.chain().focus().setTextAlign(\"right\").run()\n }\n >\n \n \n {t(\"tiptap.components.formatMenu.right\")}\n \n \n \n \n )}\n \n setLinkOpened(false)}\n target={\n setLinkOpened(true)}\n className={cx(classes.colorButton, {\n [classes.isActive]: props.editor.isActive(\"link\"),\n })}\n sx={(theme) => ({\n cursor: \"pointer\",\n })}\n >\n {props.editor.isActive(\"link\") ? (\n \n ) : (\n \n )}\n \n }\n position=\"bottom\"\n gutter={15}\n >\n \n setLinkTarget(event.target.value)}\n label={t(\"tiptap.components.formatMenu.label3\")}\n description={t(\n linkTarget === \"_section\"\n ? \"tiptap.components.formatMenu.description3\"\n : \"tiptap.components.formatMenu.description\"\n )}\n placeholder={t(\"tiptap.components.formatMenu.placeholder\")}\n data={[\n {\n value: \"_current\",\n label: t(\"tiptap.components.formatMenu.label4\"),\n },\n {\n value: \"_blank\",\n label: t(\"tiptap.components.formatMenu.label5\"),\n },\n {\n value: \"_section\",\n label: t(\"tiptap.components.formatMenu.label14\"),\n },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n {linkTarget === \"_section\" ? (\n <>\n \n {t(\"tiptap.components.formatMenu.description4\")}\n \n \n {t(\"tiptap.components.formatMenu.description5\")}\n \n {\n window.$sectionParams = {\n origin: {\n from: props.editor.view.state.selection.from,\n to: props.editor.view.state.selection.to,\n },\n isSelection: true,\n swalTitle: t(\n \"tiptap.components.formatMenu.label15\"\n ),\n };\n setLinkOpened(false);\n }}\n >\n {t(\"tiptap.components.formatMenu.selectSection\")}\n \n \n ) : (\n <>\n \n setLinkUrl(event.currentTarget.value)\n }\n placeholder={t(\"tiptap.components.formatMenu.label16\")}\n label={t(\"tiptap.components.formatMenu.label16\")}\n description={t(\n \"tiptap.components.formatMenu.description6\"\n )}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n setLinkFormat(event.target.value)}\n label={t(\"tiptap.components.formatMenu.label6\")}\n description={t(\n \"tiptap.components.formatMenu.description2\"\n )}\n placeholder={t(\n \"tiptap.components.formatMenu.placeholder2\"\n )}\n data={[\n {\n value: \"text\",\n label: t(\"tiptap.components.formatMenu.label7\"),\n },\n {\n value: \"fancy\",\n label: t(\"tiptap.components.formatMenu.label8\"),\n },\n ]}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n )}\n \n {linkTarget !== \"_section\" && (\n \n )}\n {linkUrl && (\n onUnsetLink()}\n >\n {t(\"tiptap.components.formatMenu.delete\")}\n \n )}\n \n \n \n \n \n \n props.editor.chain().focus().toggleBold().run()\n }\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"bold\"),\n })}\n >\n \n \n \n\n \n \n props.editor.chain().focus().toggleItalic().run()\n }\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"italic\"),\n })}\n >\n \n \n \n\n \n \n props.editor.chain().focus().toggleStrike().run()\n }\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"strike\"),\n })}\n >\n \n \n \n\n \n \n props.editor.chain().focus().toggleUnderline().run()\n }\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"underline\"),\n })}\n >\n \n \n \n {/* props.editor.chain().focus().setTextAlign('left').run()}\n className={cx(classes.button, { [classes.isActive]: props.editor.isActive('align-left') })}\n >\n \n \n props.editor.chain().focus().setTextAlign('center').run()}\n className={cx(classes.button, { [classes.isActive]: props.editor.isActive('align-center') })}\n >\n \n \n props.editor.chain().focus().setTextAlign('right').run()}\n className={cx(classes.button, { [classes.isActive]: props.editor.isActive('align-right') })}\n >\n \n */}\n \n \n props.editor.chain().focus().toggleCode().run()\n }\n className={cx(classes.button, {\n [classes.isActive]: props.editor.isActive(\"code\"),\n })}\n >\n \n \n \n setColorOpened(false)}\n target={\n /* setColorOpened((o) => !o)}\n size={20} />\n */\n \n setColorOpened((o) => !o)}\n spacing={1}\n align=\"center\"\n className={cx(classes.colorButton)}\n sx={(theme) => ({\n cursor: \"pointer\",\n })}\n >\n \n ({\n backgroundColor: textColor,\n height: 5,\n width: 20,\n borderRadius: 3,\n })}\n >\n \n \n }\n position=\"bottom\"\n gutter={15}\n >\n \n \n\n setAuxTextColor(event.target.value)}\n />\n {auxTextColor && (\n \n onChangeColor(\n auxTextColor,\n onTextColorChange,\n setAuxTextColor\n )\n }\n >\n {\"Apply color\"}\n \n )}\n\n props.editor.commands.unsetColor()}\n >\n {t(\"tiptap.components.formatMenu.unsetColor\")}\n \n \n \n setColorHOpened(false)}\n target={\n /*\n setColorHOpened((o) => !o)}\n size={20} />\n */\n \n setColorHOpened((o) => !o)}\n spacing={1}\n align=\"center\"\n className={cx(classes.colorButton)}\n sx={(theme) => ({\n cursor: \"pointer\",\n })}\n >\n \n ({\n backgroundColor: highlightColor,\n height: 5,\n width: 20,\n borderRadius: 3,\n })}\n >\n \n \n }\n position=\"bottom\"\n gutter={15}\n >\n \n {\n setColorHOpened(false);\n onHighlightColorChange(hex);\n }}\n />\n \n setAuxHighlightColor(event.target.value)\n }\n />\n {auxHighlightColor && (\n {\n onChangeColor(\n auxHighlightColor,\n onHighlightColorChange,\n setAuxHighlightColor\n );\n setColorHOpened(false);\n }}\n >\n {\"Apply color\"}\n \n )}\n {\n props.editor.commands.unsetHighlight();\n setColorHOpened(false);\n }}\n >\n {t(\"tiptap.components.formatMenu.unsetColor\")}\n \n \n \n \n \n props.editor.chain().unsetAllMarks().unsetLink().unsetColor().unsetHighlight().run()\n }\n className={classes.button}\n >\n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default FormatMenu;\n","import React, { useState } from \"react\";\n\nimport {\n isEmptySelection,\n isParagraph,\n isInsideNode,\n isDocumentFocused,\n isMultilineSelection,\n} from \"../utils/selection\";\n\nimport { FloatingMenu } from \"@tiptap/react\";\n\nimport BlockMenuActions from \"./BlockMenuActions\";\n\nconst ActionsMenu = (props) => {\n // const [shouldShow, setShouldShow] = useState(false);\n const [activeType, setActiveType] = useState(null);\n const [showInsides, setShowInsides] = useState(false);\n\n const shouldShowMenu = (view, state) => {\n const show =\n isDocumentFocused(props.editor) &&\n isEmptySelection(props.editor) &&\n isParagraph(props.editor) &&\n !isInsideNode(props.editor, [\"listItem\", \"taskItem\"]) &&\n !isMultilineSelection(props.editor);\n setShowInsides(show);\n return show;\n };\n\n if (!props.editor) {\n return null;\n }\n\n return (\n shouldShowMenu(view, state)}\n editor={props.editor}\n tippyOptions={{ duration: 100, maxWidth: \"none\" }}\n >\n {showInsides && (\n \n )}\n \n );\n};\n\nexport default ActionsMenu;\n","// import axios from 'axios';\n\nclass Backup {\n constructor() {\n if (this instanceof Backup) {\n throw Error('Payment class cannot be instantiated.');\n }\n }\n\n static onFetch = async (spaceId, type, paginator, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n type,\n ...paginator\n }\n\n await window.$api.get(`/api/v4/spaces/${spaceId}/backups.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n static onFetchById = async (id, spaceId, type, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n type\n }\n\n await window.$api.get(`/api/v4/spaces/${spaceId}/backups/${id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n // errorCallback(error.response.data)\n });\n }\n\n}\n\nexport default Backup;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport BackupModel from \"../../../models/Backup\";\n\nimport { ScrollArea } from \"@mantine/core\";\n\nexport default function BackupsList(props) {\n const [backups, setBackups] = useState([]);\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n if (space.slug) {\n onFetch();\n }\n }, [space]);\n\n const onFetch = () => {\n BackupModel.onFetch(\n space.slug,\n \"content\",\n { page: 1, per: 50 },\n (data) => {\n setBackups(data.data);\n },\n (data) => {}\n );\n };\n\n const onPreview = () => {};\n\n const onRestore = () => {};\n\n return ;\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\nimport tinycolor from \"tinycolor2\";\nimport ColorPicker from \"react-best-gradient-color-picker\";\n\nimport {\n Stack,\n Group,\n Popover,\n Text,\n Button,\n MantineProvider,\n} from \"@mantine/core\";\n\nexport default function RegPageColor(props) {\n const loading = useRef(false);\n const { t, i18n } = useTranslation();\n const colors = useSelector((state) => state.colors);\n const [color, setColor] = useState(\"rgba(255,255,255,1)\");\n const [bgColorOpened, setBgColorOpened] = useState(false);\n\n useEffect(() => {\n props.onChange(props.attr, color);\n }, [color]);\n\n const onRemoveBackgroundColor = (event) => {\n setColor(\"\");\n };\n\n useEffect(() => {\n setColor(props.color);\n }, [props]);\n\n return (\n \n setBgColorOpened(false)}\n target={\n \n {props.title}\n {color && color.indexOf(\"linear-gradient\") >= 0 ? (\n setBgColorOpened((o) => !o)}\n sx={(theme) => ({\n background: color,\n color: colors.default_text_color,\n border: `1px solid ${theme.colors.gray[6]}`,\n width: 70,\n // padding: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(color).darken(5).toString(),\n },\n })}\n >\n ) : (\n setBgColorOpened((o) => !o)}\n sx={(theme) => ({\n backgroundColor:\n color == \"\" || color == \"none\" ? \"white\" : color,\n color: colors.default_text_color,\n border: `1px solid ${theme.colors.gray[6]}`,\n width: 70,\n // padding: 10,\n \"&:hover\": {\n backgroundColor: tinycolor(color).darken(5).toString(),\n },\n })}\n >\n )}\n \n }\n gutter={15}\n zIndex={999999}\n width={326}\n >\n
\n \n
\n \n \n onRemoveBackgroundColor(event)}\n >\n {t(\"tiptap.components.regPageColor.clearColor\")}\n \n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Drawer,\n Box,\n Accordion,\n Button,\n Text,\n Switch,\n createStyles,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\nimport SpaceModel from \"../../../models/Space\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport RegPageColor from \"./RegPageColor\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n tabInner: {\n justifyContent: \"flex-start\",\n },\n tabControl: {\n padding: 0,\n height: \"30px\",\n fontSize: 10,\n marginRight: 20,\n // color: 'red',\n },\n tabsList: {\n marginBottom: -5,\n },\n tabActive: {\n fontWeight: \"bold\",\n color: `${theme.colors.dark[9]} !important`,\n borderBottomColor: `${theme.colors.sutrablue[4]} !important`,\n // color: `${theme.colors.sutrablue[3]} !important`,\n // borderBottomColor: `${theme.colors.sutrablue[3]} !important`\n },\n item: {\n borderBottom: \"none\",\n },\n control: {\n paddingTop: 0,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 16,\n // backgroundColor: theme.colors.gray[0],\n // borderRadius: 5,\n // marginLeft: -5,\n // marginRight: \"-20px !important\",\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n icon: {\n // marginRight: 8,\n // marginLeft: -5\n },\n content: {\n backgroundColor: theme.colors.gray[0],\n paddingLeft: 20,\n paddingRight: 20,\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n iconWrapper: {\n ref: getRef(\"iconWrapper\"),\n },\n chipChecked: {\n backgroundColor: `${theme.colors.dark[3]} !important`,\n color: theme.white,\n [`& .${getRef(\"iconWrapper\")}`]: {\n color: theme.white,\n },\n },\n chipOutline3: {\n width: \"80px\",\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipOutline4: {\n border: `1px solid ${theme.colors.dark[3]}`,\n },\n chipLabel: {\n textAlign: \"center\",\n fontSize: 9,\n fontWeight: 800,\n color: theme.colors.dark[3],\n height: 26,\n },\n}));\n\nconst RegPageColors = (props) => {\n const { t, i18n } = useTranslation();\n const { classes, cx, theme } = useStyles();\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const auxColors = useRef({});\n const loading = useRef(false);\n const loaded = useRef(false);\n const [width, setWidth] = useState(false);\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n\n useEffect(() => {\n return () => {\n loaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"regPageColors\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"regPageColors\") {\n loaded.current = false;\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n }\n }, [opened]);\n\n useEffect(() => {\n if (!loaded.current) {\n loaded.current = true;\n auxColors.current = { ...colors };\n setOpened(opened);\n }\n }, [colors]);\n\n useEffect(() => {\n if (space && space.slug) {\n loading.current = true;\n\n setWidth(space.registration_width == \"wide\");\n\n setTimeout(() => {\n loading.current = false;\n }, 1000);\n }\n }, [space]);\n\n const onChange = (attr, color) => {\n auxColors.current[attr] = color;\n console.log(attr);\n console.log(color);\n };\n\n const onSave = () => {\n SpaceModel.onSaveColors(\n space.slug,\n auxColors.current,\n (data) => {\n onSaveWidth();\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const onSaveWidth = () => {\n SpaceSettingModel.onUpdate(\n space.slug,\n {\n pod_settings_attributes: {\n registration_width: width ? \"wide\" : \"narrow\",\n },\n },\n (data) => {\n window.location.reload();\n // const auxSpace = { ...space };\n // auxSpace.registration_width = width ? \"wide\" : \"narrow\";\n // dispatch(setSpace(auxSpace));\n // window.$registrationWideWidth = width;\n\n // dispatch(setColors({ ...auxColors.current }));\n // dispatch(setTiptapSidemenu({ opened: null }));\n },\n (data) => {}\n );\n };\n\n return (\n setOpened(false)}\n title={{t(\"tiptap.components.regPageColors.text\")}}\n size={\"300px\"}\n withOverlay={false}\n closeOnClickOutside={false}\n overlayOpacity={0.1}\n zIndex={99999}\n styles={{\n header: {\n paddingTop: 20,\n paddingLeft: 20,\n paddingRight: 20,\n },\n }}\n >\n \n ({\n marginLeft: 0,\n marginRight: 0,\n })}\n >\n \n \n \n \n \n \n \n \n setWidth(event.currentTarget.checked)}\n label={t(\"tiptap.components.regPageColors.label3\")}\n />\n \n \n \n \n \n \n \n \n );\n};\n\nexport default RegPageColors;\n","import React, { useState } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { setTiptapSidemenu } from \"../../../store/app\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport { isEmptySelection, updateInteractionsPositions, closestInteraction } from \"../utils/selection\";\n\nimport { Group, Box, Paper, Tooltip, createStyles, Modal } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport MediaFileModel from \"../../../models/MediaFile\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\nimport tinycolor from \"tinycolor2\";\n\n// import SpaceIcon from \"../../../src/images/buttons/spaceIcon.png\"\nimport SpacesIcon from \"../../../src/images/buttons/spacesIcon.jsx\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport BackupsList from \"./BackupsList\";\nimport RegPageColors from \"./RegPageColors\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n moreButton: {\n color: colors.default_text_color,\n border: `solid 1px ${theme.colors.gray[7]}`,\n backgroundColor: theme.colors.gray[7],\n paddingTop: 15,\n paddingBottom: 15,\n // paddingLeft: 20,\n // paddingRight: 20,\n borderRadius: 100,\n textAlign: \"center\",\n cursor: \"pointer\",\n width: 95,\n\n \"&:hover\": {\n border: `solid 1px ${theme.colors.gray[8]}`,\n backgroundColor: theme.colors.gray[8],\n },\n },\n buttonItem: {\n // color: colors.default_text_color,\n paddingTop: 5,\n paddingBottom: 5,\n paddingLeft: 5,\n paddingRight: 5,\n margin: 5,\n borderRadius: 50,\n width: 100,\n textAlign: \"center\",\n cursor: \"pointer\",\n color: isSpaceThemed(colors)\n ? `${tinycolor(colors.default_text_color).lighten(30).toString()}`\n : `${tinycolor(colors.default_text_color).lighten(70).toString()}`,\n \"&:hover\": {\n color: colors.default_text_color,\n },\n // \"&:hover\": {\n // backgroundColor: tinycolor(colors.sidebar_background_color).darken(4).toString()\n // },\n },\n buttonText: {\n userSelect: \"none\",\n // color: colors.sidebar_text_color\n },\n buttonIcon: {\n fontSize: 30,\n margin: 0,\n padding: 0,\n height: 35,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n // buttonWrap2: {\n // border: `dashed 1px ${theme.colors.gray[5]}`,\n // borderRadius: 50,\n // backgroundColor: theme.colors.gray[0]\n // },\n buttonWrap: {\n borderTopRightRadius: 5,\n borderTopLeftRadius: 5,\n backgroundColor: colors.sidebar_background_color,\n marginBottom: -3,\n border: `1px solid ${tinycolor(colors.sidebar_background_color)\n .darken(4)\n .toString()}`,\n },\n\n menuPanel: {\n // border: `1px solid ${tinycolor(colors.sidebar_background_color).darken(4).toString()}`,\n // marginTop: 50,\n borderRadius: 10,\n border: `1px solid ${tinycolor(colors.default_text_color)\n .lighten(90)\n .toString()}`,\n backgroundColor: \"transparent\",\n },\n\n menuWrap: {\n paddingBottom: 0,\n paddingTop: 50,\n },\n}));\n\nconst FixedBottomMenu = (props) => {\n const { t, i18n } = useTranslation();\n const { registrationView } = useSidebarStyles();\n let colors = useSelector((state) => state.colors);\n colors = !registrationView ? colors : defaultSpaceColors;\n const { classes, cx, theme } = useStyles({ colors });\n\n const tiptap = useSelector((state) => state.tiptap);\n\n const space = useSelector((state) => state.space);\n\n const [showBlocksMenu, setShowBlocksMenu] = useState(false);\n const [backupsOpened, setBackupsOpened] = useState(false);\n const [colorsOpened, setColorsOpened] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n\n const dispatch = useDispatch();\n\n const shouldShow = (view, state) => {\n // const { selection } = state\n // const { $anchor, empty } = selection\n // const isRootDepth = $anchor.depth === 1\n // const isEmptyTextBlock = $anchor.parent.isTextblock && !$anchor.parent.type.spec.code && !$anchor.parent.textContent\n //\n // if (!view.hasFocus() || !empty || !isRootDepth || !isEmptyTextBlock || !props.editor.isActive('paragraph')) {\n // if (showBlocksMenu){\n // setShowBlocksMenu(false);\n // }\n // return false\n // }\n\n return true;\n };\n\n const insertIj = () => {\n if (window.location.pathname.indexOf(\"/registration\") >= 0) {\n return;\n }\n AddLineBelowSelection();\n\n dispatch(\n setTiptapSidemenu({\n opened: \"loading\",\n text: \"Discussion prompt is loading, please wait…\",\n })\n );\n\n const spaceName =\n space.name < 90\n ? `${space.name} prompt`\n : `${space.name.slice(0, 90)}... prompt`;\n\n SpaceModel.onCreate(\n { intention: spaceName, version: \"interactive-discussion\" },\n space.id,\n (data) => {\n const interaction = closestInteraction(\n tiptap.editor,\n tiptap.editor.view.state.selection.to\n );\n\n const nextPos = interaction ? interaction.interactivePosition + 1 : 0;\n\n tiptap.editor\n .chain()\n .addNewEmptyLine()\n .insertContent(\n `

`\n )\n .run();\n\n dispatch(setTiptapSidemenu({ opened: null }));\n\n setTimeout(() => {\n updateInteractionsPositions(tiptap.editor);\n }, 500);\n\n if (!window.$spaceUserInteractions) {\n window.$spaceUserInteractions = {\n position: 9999,\n can_manage: true,\n count: 1,\n };\n }\n setTimeout(() => {\n onTranscriptsTrigger();\n }, 3000);\n },\n (data) => {\n dispatch(setTiptapSidemenu({ opened: null }));\n if (data.permissions) {\n setOpenedPremium([true, data.permissions[1], data.permissions[2]]);\n }\n }\n );\n return;\n };\n\n const onTranscriptsTrigger = () => {\n const doc = tiptap.editor.view.state.doc;\n\n doc.nodesBetween(0, doc.content.size, (node, pos) => {\n if (node.type.name == \"embed\") {\n const mediaFile = {\n original_url: node.attrs.src,\n url: node.attrs.src,\n upload_type: \"embed\",\n slug: window.$currentSlug,\n embed_id: node.attrs.videoId,\n apify: true,\n };\n\n MediaFileModel.onCreate(\n mediaFile,\n (data) => {\n console.log(\"MEDIA FILE STORED\");\n },\n (data) => {}\n );\n }\n });\n };\n\n const AddLineBelowSelection = () => {\n const { from, to, $anchor } = tiptap.editor.view.state.selection;\n\n if (!isEmptySelection(tiptap.editor)) {\n tiptap.editor.commands.addNewEmptyLine();\n window.$tiptapLastSelectionRange = { from: to + 1, to: to + 1 };\n\n // tiptap.editor.chain().focus().setTextSelection({ from: to+1, to: to+1 }).run()\n } else {\n window.$tiptapLastSelectionRange = { from: to, to: to };\n }\n };\n\n const insertCircle = (event) => {\n event.stopPropagation();\n event.preventDefault();\n AddLineBelowSelection();\n\n dispatch(setTiptapSidemenu({ opened: \"newSpace\", option: \"content\" }));\n };\n\n const openBlocksSideMenu = (event, option = null) => {\n event.stopPropagation();\n event.preventDefault();\n AddLineBelowSelection();\n if (option == \"Templates\" || option == \"Layouts\"){\n dispatch(setTiptapSidemenu({ opened: \"templatesModal\", option: option }));\n }\n else{\n dispatch(setTiptapSidemenu({ opened: \"blocks\", option: option }));\n }\n \n };\n\n const openPageColorsMenu = (event, option = null) => {\n event.stopPropagation();\n event.preventDefault();\n\n dispatch(setTiptapSidemenu({ opened: \"regPageColors\", option: option }));\n };\n\n const onOpenBackups = () => {};\n\n if (!tiptap.editor) {\n return null;\n }\n if (space.slug && space.is_post) {\n return null;\n }\n\n return (\n
\n \n \n \n openBlocksSideMenu(event)}\n >\n
\n \n
\n
\n {t(\"tiptap.components.fixedBottomMenu.addBlock\")}\n
\n \n \n {window.location.pathname.indexOf(\"/registration\") < 0 && (\n \n insertIj(event)}\n >\n
\n \n
\n
\n {\"Discussion\"}\n
\n \n \n )}\n {window.location.pathname.indexOf(\"/registration\") < 0 && (\n \n insertCircle(event)}\n >\n
\n \n {/*\n \n */}\n
\n
\n {t(\"tiptap.components.fixedBottomMenu.space\")}\n
\n \n \n )}\n\n {/*\n\n\n openBlocksSideMenu(event, \"Text\")}\n >\n \n \n
\n \n Heading\n \n \n openBlocksSideMenu(event, \"Media\")}\n >\n \n \n \n \n Image\n \n \n openBlocksSideMenu(event, \"Media\")}\n >\n \n \n \n \n Video\n \n \n\n\n */}\n\n \n openBlocksSideMenu(event, \"Grids\")}\n >\n
\n \n
\n
\n {t(\"tiptap.components.fixedBottomMenu.grid\")}\n
\n \n \n \n openBlocksSideMenu(event, \"Templates\")}\n >\n
\n \n
\n
\n {t(\"tiptap.components.fixedBottomMenu.template\")}\n
\n \n \n \n \n setBackupsOpened(false)}\n title=\"Changes log\"\n >\n \n \n setColorsOpened(false)}\n />\n \n \n );\n};\n\nexport default FixedBottomMenu;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport { Text, Box, Modal, Textarea, Button } from \"@mantine/core\";\nimport { useTranslation } from \"react-i18next\";\nimport { useFocusTrap } from \"@mantine/hooks\";\nimport { useForm } from \"@mantine/form\";\n\nimport ViewModel from \"../../../models/View\";\n\nconst TiptapAi = (props) => {\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n const [opened, setOpened] = useState(false);\n const [allowAi, setAllowAi] = useState(false);\n\n const focusTrapRef = useFocusTrap();\n\n useEffect(() => {3\n \n }, []);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"ai\") {\n setOpened(true);\n } else {\n // setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {}, [props]);\n\n const form = useForm({\n initialValues: {\n description: \"\",\n people: \"\",\n },\n\n validate: {\n description: (value) =>\n value.length >= 3\n ? null\n : \"Fill this field for the AI to work properly\",\n people: (value) =>\n value.length >= 3\n ? null\n : \"Fill this field for the AI to work properly\",\n },\n });\n\n const onSave = () => {\n dispatch(setTiptapSidemenu({ opened: \"loading\", text: \"Generating language...\" }));\n setOpened(false);\n setAllowAi(false);\n\n const id = window.location.pathname.indexOf(\"/registration\") >= 0 ? \"editable-registration-page\" : \"tiptap\";\n\n // This is a test comment\n ViewModel.onAiMagic(\n id,\n space.slug,\n { ...form.values },\n (data) => {\n form.setFieldValue(\"description\", \"\");\n form.setFieldValue(\"people\", \"\");\n },\n (data) => {}\n );\n };\n\n return (\n {}}\n zIndex={99999}\n styles={{\n header: { marginBottom: 0 },\n }}\n >\n \n {allowAi ? (\n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n \n \n ) : (\n <>\n \n {t(\"tiptap.components.tiptapAi.text\")}\n \n \n \n \n )}\n \n \n );\n};\n\nexport default TiptapAi;\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport {\n setTiptapSidemenu,\n setListSpaceToUpdate,\n setActions,\n} from \"../../../store/app\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\n\nimport TiptapAi from \"./TiptapAi\";\n\nimport { Text, Box, Modal, Loader } from \"@mantine/core\";\n\nconst TiptapChannel = (props) => {\n const test = useRef();\n const editor = useRef();\n const timeoutId = useRef();\n const tiptapChannel = useRef();\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n const dispatch = useDispatch();\n\n const cable = useContext(ActionCableContext);\n\n const [loadingModalOpened, setLoadingModalOpened] = useState(null);\n\n useEffect(() => {\n test.current = Math.random();\n cableConnect();\n return () => {\n if (tiptapChannel.current) {\n tiptapChannel.current.unsubscribe();\n tiptapChannel.current = null;\n }\n };\n }, []);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"loading\") {\n setLoadingModalOpened(true);\n } else {\n setLoadingModalOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n editor.current = props.editor;\n }, [props]);\n\n const onInsertContent = (content, user_id, allow_ai) => {\n \n if (user.id != user_id) {\n return;\n }\n \n if (allow_ai) {\n dispatch(setTiptapSidemenu({ opened: \"ai\" }));\n }\n\n if (timeoutId.current) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n if (editor.current) {\n\n if (!allow_ai) {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n \n timeoutId.current = null;\n\n window.$waitForTemplateResponse = false;\n }\n }, 5000);\n };\n\n const onUpdateContent = (content) => {\n if (editor.current) {\n for (let i = 0; i < content.length; i++) {\n dispatch(setListSpaceToUpdate({ slug: content[i].slug }));\n }\n }\n };\n\n const cableConnect = () => {\n if (!tiptapChannel.current) {\n tiptapChannel.current = cable.subscriptions.create(\n {\n channel: \"TiptapChannel\",\n pod_slug: space.slug,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {},\n disconnected: () => {},\n received: (data) => {\n // Validate view name to avoud inserting content blocks into reg page and viceversa\n console.log(\"TIPTAP channel: \" + JSON.stringify(data));\n if (data.slug == space.slug) {\n if (data.action == \"insert\" && window.$waitForTemplateResponse) {\n onInsertContent(data.content, data.user_id, data.allow_ai);\n }\n if (data.action == \"finish\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n if (data.action == \"loading\") {\n dispatch(setTiptapSidemenu({ opened: \"loading\", text: data.text, text2: data.text2 }));\n }\n if (data.action == \"update\") {\n onUpdateContent(data.content);\n }\n if (data.action == \"save\") {\n if (\n window.$tiptapNeedSaving &&\n window.$tiptapNeedSaving.leave == true\n ) {\n dispatch(setActions({ editPage: false }));\n }\n window.$tiptapNeedSaving = { status: false, leave: false };\n }\n if (data.action == \"new-post\" || data.action == \"thumbnail-upload\" || data.action == \"update-post\") {\n if (typeof props.onActionCallback === \"function\") {\n props.onActionCallback(data.new_slug);\n }\n }\n }\n },\n }\n );\n }\n };\n\n return (\n <>\n {}}\n zIndex={99999}\n >\n \n \n {tiptapSidemenu.text}\n {tiptapSidemenu.text2 && (\n {tiptapSidemenu.text2}\n )}\n \n \n \n \n );\n};\n\nexport default TiptapChannel;\n","import { Collaboration } from '@tiptap/extension-collaboration'\nimport { ySyncPlugin, yUndoPlugin, yUndoPluginKey } from 'y-prosemirror'\n//https://github.com/yjs/y-prosemirror/issues/114#issuecomment-1180235892\nexport const CustomCollaboration = Collaboration.extend({\n addProseMirrorPlugins () {\n\n const fragment = this.options.fragment\n ? this.options.fragment\n : this.options.document.getXmlFragment(this.options.field)\n\n const yUndoPluginInstance = yUndoPlugin()\n const originalUndoPluginView = yUndoPluginInstance.spec.view\n yUndoPluginInstance.spec.view = view => {\n const undoManager = yUndoPluginKey.getState(view.state).undoManager\n if (undoManager.restore) {\n undoManager.restore()\n undoManager.restore = () => {}\n }\n const viewRet = originalUndoPluginView(view)\n return {\n destroy: () => {\n const hasUndoManSelf = undoManager.trackedOrigins.has(undoManager)\n const observers = undoManager._observers\n undoManager.restore = () => {\n if (hasUndoManSelf) {\n undoManager.trackedOrigins.add(undoManager)\n }\n undoManager.doc.on('afterTransaction', undoManager.afterTransactionHandler)\n undoManager._observers = observers\n }\n viewRet.destroy()\n }\n }\n }\n return [\n ySyncPlugin(fragment),\n yUndoPluginInstance\n ]\n }\n})\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport {\n Modal,\n Text,\n Grid,\n ScrollArea,\n Timeline,\n Loader,\n Center,\n Group,\n Button,\n Box,\n MantineProvider,\n} from \"@mantine/core\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport ViewModel from \"../../../models/View\";\n\nimport TiptapNoHP from \"./TiptapNoHP\";\n\nconst VersionControl = (props) => {\n const tiptap = useSelector((state) => state.tiptap);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(false);\n const [content, setContent] = useState({});\n const [backups, setBackups] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loadingB, setLoadingB] = useState(false);\n const [activeIndex, setActiveIndex] = useState(0);\n const paginator = useRef({ page: 1, per: 30 });\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"versionControl\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"versionControl\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n } else {\n onFetchBackups();\n }\n }, [opened]);\n\n const onNextPage = () => {\n onFetchBackups(paginator.current.page + 1);\n };\n\n const onFetchBackups = (page = 1) => {\n setLoadingB(true);\n ViewModel.onFetchBackups(\n props.viewId,\n space.slug,\n { page, per: paginator.current.per },\n (data) => {\n if (data.length > 0) {\n paginator.current.page = page;\n if (page == 1) {\n setBackups([...data]);\n onFetchBackupById(data[0].id, 0);\n } else {\n const newData = [...backups];\n setBackups(newData.concat(data));\n }\n }\n setLoadingB(false);\n },\n (data) => {\n setLoadingB(false);\n }\n );\n };\n\n const onFetchBackupById = (backupId, index) => {\n setActiveIndex(index);\n setLoading(true);\n ViewModel.onFetchBackupById(\n props.viewId,\n backupId,\n space.slug,\n (data) => {\n setContent(data.content);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n };\n\n const onFetchBackupRestore = (backupId, index) => {\n ViewModel.onRestoreBackup(\n props.viewId,\n backupId,\n space.slug,\n (data) => {\n setOpened(false);\n },\n (data) => {}\n );\n };\n\n return (\n setOpened(false)}\n title={\n \n {t(\"spaces.header.buttons.versionHistory\")}\n \n }\n padding=\"xl\"\n styles={{\n inner: {\n overflow: \"hidden\",\n height: \"90vh\",\n },\n modal: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n }}\n zIndex={99999}\n >\n \n \n \n {loading ? (\n
\n \n
\n ) : (\n \n )}\n \n
\n
\n \n \n \n {backups.map((backup, index) => {\n return (\n \n )\n }\n >\n \n {/* \n Size\n \n {\": \"}\n {backup.size} */}\n\n \n {activeIndex != index && (\n onFetchBackupById(backup.id, index)}\n >\n View\n \n )}\n {activeIndex == index && (\n \n onFetchBackupRestore(backup.id)}\n >\n Restore\n \n \n )}\n \n \n \n );\n })}\n \n {loadingB && (\n \n
\n \n
\n
\n )}\n \n
\n onNextPage()}\n >\n Load more\n \n
\n
\n\n \n
\n
\n
\n \n );\n};\n\nexport default VersionControl;\n","import React, { useState, useEffect, memo } from \"react\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\n\nimport { useDispatch } from \"react-redux\";\nimport { setTiptap, setTiptapSidemenu } from \"../../../store/app\";\n\nimport StarterKit from \"@tiptap/starter-kit\";\n\nimport TextStyle from \"@tiptap/extension-text-style\";\nimport { Color } from \"@tiptap/extension-color\";\n\nimport TaskItem from \"@tiptap/extension-task-item\";\n\nimport UniqueID from \"../plugins/CustomUniqId\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Details from \"@tiptap-pro/extension-details\";\nimport DetailsSummary from \"@tiptap-pro/extension-details-summary\";\nimport DetailsContent from \"@tiptap-pro/extension-details-content\";\nimport Focus from \"@tiptap/extension-focus\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport Underline from \"@tiptap/extension-underline\";\n\nimport Link from \"@tiptap/extension-link\";\nimport CircleNode from \"../nodes/CircleNode\";\nimport Grid4Node from \"../nodes/Grid4Node\";\nimport Grid3Node from \"../nodes/Grid3Node\";\nimport Grid2Node from \"../nodes/Grid2Node\";\nimport Grid1Node from \"../nodes/Grid1Node\";\nimport InfoBoxNode from \"../nodes/InfoBoxNode\";\nimport ColumnNode from \"../nodes/ColumnNode\";\nimport ParagraphNode from \"../nodes/ParagraphNode\";\nimport HeadingNode from \"../nodes/HeadingNode\";\nimport ImageNode from \"../nodes/ImageNode\";\nimport VideoNode from \"../nodes/VideoNode\";\nimport AudioNode from \"../nodes/AudioNode\";\nimport EmbedNode from \"../nodes/EmbedNode\";\nimport FileNode from \"../nodes/FileNode\";\nimport ListItemNode from \"../nodes/ListItemNode\";\nimport ResourceNode from \"../nodes/ResourceNode\";\nimport SurveyNode from \"../nodes/SurveyNode\";\nimport FormNode from \"../nodes/FormNode\";\nimport ButtonNode from \"../nodes/ButtonNode\";\nimport InteractiveInputNode from \"../nodes/InteractiveInputNode\";\nimport InteractiveButtonNode from \"../nodes/InteractiveButtonNode\";\nimport InteractiveWaitNode from \"../nodes/InteractiveWaitNode\";\nimport FancyLinkNode from \"../nodes/FancyLinkNode\";\nimport HorizontalRule from \"../nodes/HorizontalRuleNode\";\nimport TagsFeedNode from \"../nodes/TagsFeedNode\";\n\nimport TaskList from \"../nodes/TaskList\";\nimport BulletList from \"../nodes/BulletList\";\nimport OrderedList from \"../nodes/OrderedList\";\n\nimport CollaborationCursor from \"@tiptap/extension-collaboration-cursor\";\n\nimport SideBlocksMenu from \"./SideBlocksMenu\";\nimport SideConfigurationsMenu from \"./SideConfigurationsMenu\";\nimport NewSpace from \"./NewSpace\";\nimport NewMedia from \"./NewMedia\";\nimport NewResource from \"./NewResource\";\nimport NewPage from \"./NewPage\";\nimport ViewPage from \"./ViewPage\";\nimport ViewVideo from \"./ViewVideo\";\nimport TakeSurvey from \"./TakeSurvey\";\nimport CreateSurvey from \"./CreateSurvey\";\nimport CreateBundle from \"./CreateBundle\";\nimport ShowSurvey from \"./ShowSurvey\";\nimport BlockMenuFloating from \"./BlockMenuFloating\";\nimport FormatMenu from \"./FormatMenu\";\nimport ActionsMenu from \"./ActionsMenu\";\nimport FixedBottomMenu from \"./FixedBottomMenu\";\nimport EmptyMessage from \"./EmptyMessage\";\nimport TiptapChannel from \"./TiptapChannel\";\nimport EventHandler from \"../plugins/EventHandler\";\nimport EditorEvents from \"../plugins/EditorEvents\";\nimport CustomStyles from \"../plugins/CustomStyles\";\nimport ListStyles from \"../plugins/ListStyles\";\nimport ColumnStyles from \"../plugins/ColumnStyles\";\nimport CustomSize from \"../plugins/CustomSize\";\nimport CustomResizeable from \"../plugins/CustomResizeable\";\nimport CustomButton from \"../plugins/CustomButton\";\nimport { CustomCollaboration } from \"../plugins/CustomCollaboration\";\nimport CustomRadius from \"../plugins/CustomRadius\";\nimport CustomNestedRadius from \"../plugins/CustomNestedRadius\";\nimport Placeholder from \"../plugins/Placeholder\";\nimport Interactive from \"../plugins/Interactive\";\nimport Incrementor from \"../plugins/Incrementor\";\nimport CustomBlockId from \"../plugins/CustomBlockId\";\nimport { isDocumentEmpty, isEmptySelection } from \"../utils/selection\";\n\nimport { Box, Container } from \"@mantine/core\";\n\nimport { EditorView } from \"prosemirror-view\";\n\nimport Emoji, { gitHubEmojis } from \"@tiptap-pro/extension-emoji\";\n\nimport { Mention } from \"../plugins/Mention\";\nimport mentionSuggestion from \"../plugins/mentionSuggestion\";\n\nimport CommentInput from \"../../spaces_neo/presentations/content/CommentInput\";\nimport VersionControl from \"./VersionControl\";\n\n// Tiptap -> prosemirror bug / issue\n//https://github.com/ueberdosis/tiptap/issues/1451#issuecomment-953348865\nEditorView.prototype.updateState = function updateState(state) {\n try {\n if (!this.docView) return; // This prevents the matchesNode error on hot reloads\n this.updateStateInner(state, this.state.plugins != state.plugins);\n } catch {\n return;\n }\n};\n\nconst Tiptap = memo((props) => {\n const dispatch = useDispatch();\n const [loaded, setLoaded] = useState(false);\n\n const editor = useEditor({\n onCreate({ editor }) {\n // applyDevTools(editor.view);\n },\n editable: props.editable,\n extensions: [\n StarterKit.configure({\n history: false,\n paragraph: false,\n heading: false,\n listItem: false,\n orderedList: false,\n bulletList: false,\n horizontalRule: false,\n blockquote: false,\n }),\n UniqueID.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"taskItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"horizontalRule\",\n \"infobox\",\n \"tagsFeed\",\n ],\n }),\n Incrementor.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"column\",\n \"tasklist\",\n \"taskItem\",\n \"circle\",\n \"resource\",\n \"video\",\n \"audio\",\n \"image\",\n \"embed\",\n \"file\",\n \"detailsSummary\",\n \"details\",\n \"detailsContent\",\n \"bulletList\",\n \"orderedList\",\n \"listItem\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"horizontalRule\",\n \"infobox\",\n \"tagsFeed\",\n ],\n }),\n CustomBlockId.configure({\n types: [\"heading\", \"paragraph\", \"bulletList\", \"orderedList\"],\n }),\n CustomNestedRadius.configure({\n types: [\n \"paragraph\",\n \"heading\",\n \"bulletList\",\n \"orderedList\",\n \"taskList\",\n \"gird1\",\n \"gird2\",\n \"gird3\",\n \"gird4\",\n \"column\",\n \"infobox\",\n ],\n }),\n Highlight.configure({\n multicolor: true,\n }),\n Underline,\n HorizontalRule,\n ListItemNode,\n TextStyle,\n Color,\n ParagraphNode,\n HeadingNode,\n CircleNode,\n ResourceNode,\n SurveyNode,\n FormNode,\n ButtonNode,\n InteractiveInputNode,\n InteractiveButtonNode,\n InteractiveWaitNode,\n TagsFeedNode,\n Grid4Node,\n Grid3Node,\n Grid2Node,\n Grid1Node,\n InfoBoxNode,\n ColumnNode,\n VideoNode,\n AudioNode,\n EmbedNode,\n FancyLinkNode,\n EventHandler,\n EditorEvents,\n FileNode,\n CustomStyles.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"image\",\n \"video\",\n \"audio\",\n \"file\",\n \"embed\",\n \"grid1\",\n \"grid2\",\n \"grid3\",\n \"grid4\",\n \"circle\",\n \"resource\",\n \"details\",\n \"detailsSummary\",\n \"resource\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"interactiveWait\",\n \"fancyLink\",\n \"infobox\",\n \"horizontalRule\",\n \"tagsFeed\",\n ],\n }),\n Interactive.configure({\n types: [\"interactiveInput\", \"interactiveButton\", \"interactiveWait\"],\n }),\n ListStyles.configure({\n types: [\"tasklist\", \"orderedlist\", \"bulletList\"],\n }),\n ColumnStyles.configure({\n types: [\"column\"],\n }),\n CustomSize.configure({\n types: [\n \"file\",\n \"audio\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveButton\",\n \"fancyLink\",\n \"circle\",\n ],\n }),\n CustomResizeable.configure({\n types: [\"image\", \"video\", \"embed\"],\n }),\n CustomRadius.configure({\n types: [\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveButton\",\n \"interactiveInput\",\n \"circle\",\n ],\n }),\n CustomButton.configure({\n types: [\n \"actionbutton\",\n \"customform\",\n \"interactiveInput\",\n \"interactiveButton\",\n \"circle\",\n \"survey\",\n ],\n }),\n OrderedList,\n BulletList,\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Placeholder.configure({\n placeholder: ({ node }) => {\n if (node.type.name === \"heading\") {\n return \"\";\n }\n if (node.type.name === \"paragraph\") {\n return \"\";\n }\n if (node.type.name === \"detailsSummary\") {\n return \"\";\n }\n\n return \"\";\n },\n showOnlyCurrent: false,\n includeChildren: true,\n }),\n Focus.configure({\n className: \"is-focus\",\n }),\n Link.configure({\n openOnClick: false,\n }),\n ImageNode,\n TextAlign.configure({\n types: [\n \"heading\",\n \"paragraph\",\n \"detailsSummary\",\n \"image\",\n \"video\",\n \"embed\",\n \"file\",\n \"audio\",\n \"actionbutton\",\n \"customform\",\n \"survey\",\n \"interactiveButton\",\n \"fancyLink\",\n \"circle\",\n ],\n }),\n Details.configure({\n HTMLAttributes: {\n openClassName: \"is-open\",\n class: \"tiptap-details\",\n },\n }),\n DetailsSummary.configure({\n HTMLAttributes: {\n class: \"tiptap-details-summary\",\n },\n }),\n DetailsContent.configure({\n HTMLAttributes: {\n class: \"tiptap-details-content\",\n },\n }),\n CustomCollaboration.configure({\n document: props.provider.document,\n }),\n // CollaborationCursor.configure({\n // provider: props.provider,\n // user: {\n // name: props.userName,\n // color: \"#\" + (Math.random().toString(16) + \"00000\").slice(2, 8),\n // },\n // render: (user) => {\n // const cursor = document.createElement(\"span\");\n // const main = document.getElementById(\"tiptap-main\");\n\n // if (main && main.classList.contains(\"editing\")) {\n // cursor.classList.add(\"collaboration-cursor__caret\");\n // cursor.setAttribute(\"style\", `border-color: ${user.color}`);\n\n // const label = document.createElement(\"div\");\n\n // label.classList.add(\"collaboration-cursor__label\");\n // label.setAttribute(\"style\", `background-color: ${user.color}`);\n // label.insertBefore(document.createTextNode(user.name), null);\n // cursor.insertBefore(label, null);\n // }\n // return cursor;\n // },\n // }),\n Emoji.configure({\n emojis: gitHubEmojis,\n enableEmoticons: true,\n // suggestion,\n }),\n Mention.configure({\n HTMLAttributes: {\n class: \"mention\",\n },\n suggestion: mentionSuggestion,\n renderLabel({ options, node }) {\n const value = node.attrs.label ?? node.attrs.id.split(\"|\")[1];\n return `${options.suggestion.char}${value}`;\n },\n }),\n ],\n });\n\n useEffect(() => {\n return () => {\n props.provider.disconnect();\n\n dispatch(setTiptap({ editor: null }));\n };\n }, []);\n\n useEffect(() => {\n if (!editor) {\n const tiptapCont = document.getElementById(\"tiptap-main\");\n if (tiptapCont) {\n tiptapCont.style.display = \"none\";\n }\n }\n if (editor && !loaded) {\n dispatch(setTiptap({ editor: editor }));\n setTimeout(() => {\n setLoaded(true);\n\n const isEmpty = isDocumentEmpty(editor);\n if (props.editable && isEmpty) {\n editor.chain().focus().run();\n }\n }, 1000);\n setTimeout(() => {\n const tiptapCont = document.getElementById(\"tiptap-main\");\n if (tiptapCont) {\n tiptapCont.style.display = \"block\";\n }\n if (window.$openTemplatesOnEditMode) {\n window.$openTemplatesOnEditMode = null;\n dispatch(\n setTiptapSidemenu({ opened: \"templatesModal\", option: \"Templates\" })\n );\n }\n if (window.$openVersionHistoryOnEditMode) {\n window.$openVersionHistoryOnEditMode = null;\n\n dispatch(setTiptapSidemenu({ opened: \"versionControl\" }));\n }\n if (window.$openCreateSpaceOnEditMode) {\n window.$openCreateSpaceOnEditMode = null;\n\n AddLineBelowSelection();\n\n dispatch(\n setTiptapSidemenu({ opened: \"newSpace\", option: \"content\" })\n );\n }\n }, 800);\n }\n }, [editor]);\n\n const AddLineBelowSelection = () => {\n const { from, to, $anchor } = editor.view.state.selection;\n\n if (!isEmptySelection(editor)) {\n editor.commands.addNewEmptyLine();\n window.$tiptapLastSelectionRange = { from: to + 1, to: to + 1 };\n\n // tiptap.editor.chain().focus().setTextSelection({ from: to+1, to: to+1 }).run()\n } else {\n window.$tiptapLastSelectionRange = { from: to, to: to };\n }\n };\n\n const onFocusIfEditable = (event) => {\n console.log(window.$tiptapSidemenu);\n if (window.$tiptapSidemenu) {\n return;\n }\n\n let node = null;\n const pos = editor.view.posAtCoords({\n left: event.clientX,\n top: event.clientY,\n });\n\n let lastPos = null;\n if (editor.view.state.doc) {\n lastPos =\n editor.view.state.doc.nodeSize > 3\n ? editor.view.state.doc.nodeSize - 3\n : 0;\n }\n\n if (props.editable && !pos) {\n try {\n editor.chain().focus().setNodeSelection(lastPos).run();\n node = editor.view.state.selection.node;\n } catch (e) {\n editor.chain().focus().setTextSelection(lastPos).run();\n node = editor.view.state.selection.$anchor.path[3];\n } finally {\n }\n\n if (node) {\n if (node && node.type.name.indexOf(\"grid\") >= 0) {\n const insertAt =\n editor.view.state.selection.$anchor.path[2] + node.nodeSize;\n editor\n .chain()\n .focus()\n .insertContentAt(insertAt, \"

\")\n .setTextSelection(insertAt)\n .selectTextblockStart()\n .selectAll()\n .selectTextblockEnd()\n .run();\n } else if (\n (node.type.name == \"paragraph\" && node.textContent) ||\n node.type.name != \"paragraph\"\n ) {\n editor.chain().focus().enter().selectAll().selectTextblockEnd().run();\n }\n }\n }\n };\n\n return (\n \n {props.editable ? (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n editor &&\n isDocumentEmpty(editor) &&\n loaded &&\n !props.editable && \n )}\n \n \n \n \n \n \n \n onFocusIfEditable(event)}\n >\n \n \n \n {props.editable && (\n \n )}\n {props.editable && props.allowComments && (\n \n )}\n \n \n \n \n );\n});\n\nexport default Tiptap;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Stack,\n ScrollArea,\n Container,\n createStyles,\n Skeleton,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Loading(props) {\n const { t, i18n } = useTranslation();\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef, useCallback, memo } from \"react\";\nimport Tiptap from \"../../../tiptap/components/Tiptap\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { HocuspocusProvider } from \"@hocuspocus/provider\";\n\nimport { useSelector } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\n\nimport {\n Stack,\n ScrollArea,\n createStyles,\n Notification,\n Container,\n} from \"@mantine/core\";\n\nimport { getHocuspocusHost, getEnv } from \"../../../../utils/Host\";\n\nimport * as Y from \"yjs\";\n\nimport trackMixpanel from \"../../../../utils/TrackMixpanel\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n \n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? (isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString())\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nlet disconnectInterval = null;\n\nconst Content = memo((props) => {\n const { t, i18n } = useTranslation();\n\n const [loaded, setLoaded] = useState();\n\n const [forcedDisconnected, setForceDisconnect] = useState(false);\n const [unsaveChanges, setUnsaveChanges] = useState(0);\n\n const provider = useRef({\n provider: null,\n status: null,\n documentName: null,\n editable: false,\n unSyncCount: 0,\n forcedDisconnected: false,\n });\n\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n\n const params = useParams();\n const navigate = useNavigate();\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const viewport = useRef();\n const connectionInterval = useRef();\n const tiptapKey = useRef(`tiptap-${new Date()}`);\n\n const helpScouteLoaded = useRef();\n\n useEffect(() => {\n return () => {\n window.Beacon(\"destroy\");\n helpScouteLoaded.current = false;\n unMount();\n };\n }, []);\n\n useEffect(() => {\n window.$contentScrollViewport = viewport.current;\n }, [viewport.current]);\n\n useEffect(() => {\n if (user && user.authenticated) {\n trackMixpanel(user.username, \"Content edited\");\n if (!helpScouteLoaded.current && user.username) {\n helpScouteLoaded.current = true;\n setTimeout(() => {\n window.Beacon(\"init\", \"8baee135-5597-476a-8269-cb1460d638e4\");\n window.Beacon(\"identify\", {\n name: user.name,\n email: user.email,\n account_type: user.account_type,\n // avatar: user.avatar ? user.avatar.url : \"\",\n });\n }, 2000);\n }\n }\n }, [user]);\n\n useEffect(() => {\n if (props.hideLayout) {\n props.hideLayout(window.$hiddenLayoutElements);\n setTimeout(() => {\n props.hideLayout(window.$hiddenLayoutElements);\n }, 500);\n }\n\n const newDocumentName = `circle-content-${params.slug}`;\n\n if (newDocumentName != provider.current.documentName) {\n provider.current.documentName = `circle-content-${params.slug}`;\n\n resetProvider();\n }\n }, [params]);\n\n const unMount = () => {\n provider.current.documentName = null;\n provider.current.status = null;\n provider.current.editable = false;\n clearProvider();\n };\n\n const onStatusChange = useCallback((status) => {\n if (status == \"connect\") {\n } else if (status == \"synced\") {\n console.log(\"3. PROVIDER synced: \");\n\n setTimeout(() => {\n setLoaded(true);\n }, 250);\n } else if (status == \"disconnect\") {\n console.log(\"PROVIDER disconnect: \");\n\n setForceDisconnect(true);\n setUnsaveChanges(provider.current.provider.unsyncedChanges);\n\n reconnector();\n } else if (status == \"destroy\") {\n } else if (status == \"status\") {\n }\n });\n\n const reconnector = () => {\n if (connectionInterval.current) {\n clearInterval(connectionInterval.current);\n }\n\n connectionInterval.current = setInterval(() => {\n console.log(\"PROVIDER reconnecting: \" + provider.current.provider.status);\n if (\n provider.current.provider.status == \"connected\" ||\n provider.current.provider.isSynced\n ) {\n console.log(\"PROVIDER reconnecting OK: \");\n setForceDisconnect(false);\n clearInterval(connectionInterval.current);\n }\n provider.current.provider.connect();\n }, 1000);\n };\n\n const clearProvider = () => {\n if (provider.current.provider) {\n provider.current.provider.off(\"destroy\");\n provider.current.provider.off(\"disconnect\");\n provider.current.provider.off(\"connect\");\n provider.current.provider.off(\"synced\");\n\n provider.current.provider.disconnect();\n provider.current.provider.destroy();\n }\n tiptapKey.current = `tiptap-${new Date()}`;\n };\n\n const resetProvider = () => {\n const yDocument = new Y.Doc();\n\n clearProvider();\n\n provider.current.provider = new HocuspocusProvider({\n url: getHocuspocusHost(),\n name: provider.current.documentName,\n document: yDocument,\n token: user.authentication_token,\n broadcast: getEnv() == \"production\",\n delay: 1000,\n factor: 0,\n forceSyncInterval: 1000,\n });\n\n provider.current.provider.on(\"status\", () => {\n onStatusChange(\"status\");\n });\n provider.current.provider.on(\"connect\", () => {\n onStatusChange(\"connect\");\n });\n provider.current.provider.on(\"synced\", () => {\n onStatusChange(\"synced\");\n });\n\n provider.current.provider.on(\"disconnect\", () => {\n onStatusChange(\"disconnect\");\n });\n\n provider.current.provider.on(\"destroy\", () => {\n onStatusChange(\"destroy\");\n });\n };\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n \n \n {forcedDisconnected && (\n \n \n {t(\"spaces.presentations.fallback.message\")}\n \n \n )}\n\n \n \n \n );\n});\n\nexport default Content;\n","import React, { useState, useEffect, useRef, memo } from \"react\";\nimport TiptapNoHP from \"../../../tiptap/components/TiptapNoHP\";\n\nimport { useSelector } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\n\nimport { Stack, ScrollArea, createStyles } from \"@mantine/core\";\n\nimport trackMixpanel from \"../../../../utils/TrackMixpanel\";\nimport ViewModel from \"../../../../models/View\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? (isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString())\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nlet disconnectInterval = null;\n\nconst Content = memo((props) => {\n const user = useSelector((state) => state.colors);\n const colors = useSelector((state) => state.colors);\n\n const params = useParams();\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const viewport = useRef();\n const helpScouteLoaded = useRef();\n\n const [loaded, setLoaded] = useState(false);\n const content = useRef({});\n const lastSlug = useRef();\n const width = useRef();\n\n useEffect(() => {\n setLoaded(false);\n return () => {\n console.log(\"CONTENT READONLY UNMOUNT\");\n setLoaded(false);\n window.Beacon(\"destroy\");\n helpScouteLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n console.log(\"CONTENT READONLY PARAMS\");\n if (props.hideLayout) {\n props.hideLayout();\n setTimeout(() => {\n props.hideLayout();\n }, 500);\n }\n\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoaded(false);\n onFetch();\n }\n }, [params]);\n\n useEffect(() => {\n if (user && user.authenticated) {\n trackMixpanel(user.username, \"Content loaded\");\n if (!helpScouteLoaded.current && user.username) {\n helpScouteLoaded.current = true;\n setTimeout(() => {\n window.Beacon(\"init\", \"8baee135-5597-476a-8269-cb1460d638e4\");\n window.Beacon(\"identify\", {\n name: user.name,\n email: user.email,\n account_type: user.account_type,\n // avatar: user.avatar ? user.avatar.url : \"\",\n });\n }, 2000);\n }\n }\n }, [user]);\n\n useEffect(() => {\n window.$contentScrollViewport = viewport.current;\n }, [viewport.current]);\n\n const onFetch = () => {\n ViewModel.onFetch(\n \"tiptap\",\n params.slug,\n (data) => {\n content.current = data.content;\n window.$spaceUserInteractions = data.interactions;\n width.current = data.view_width;\n window.$spaceWideWidth = data.view_width;\n window.$themeColors = { ...data.colors };\n setTimeout(() => {\n setLoaded(true);\n }, 250);\n },\n (data) => {}\n );\n };\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n \n \n\n \n \n \n );\n});\n\nexport default Content;\n","import React, {useState, useEffect, useRef} from 'react';\nimport TiptapNoHP from '../../../tiptap/components/TiptapNoHP';\n\nimport { useSelector } from 'react-redux';\nimport { useParams, useNavigate } from 'react-router-dom';\n\nimport FixedHeader from '../../FixedHeader'\n\nimport BackupModel from '../../../../models/Backup'\n\n\nimport { \n Stack,\n ScrollArea,\n createStyles\n}\nfrom '@mantine/core';\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color\n }\n }\n}));\n\nexport default function Content(props) {\n\n\n const colors = useSelector(state => state.colors);\n\n const params = useParams();\n\n const { classes, cx, theme } = useStyles({colors});\n\n const viewport = useRef();\n\n const [loaded, setLoaded] = useState(false)\n const [content, setContent] = useState(null)\n\n useEffect(() => {\n return (() => {\n setLoaded(false)\n })\n }, [])\n\n useEffect(() => {\n\n if (props.hideLayout){\n props.hideLayout()\n setTimeout(() => {\n props.hideLayout()\n }, 500)\n }\n\n if (props.space && props.space.slug == params.slug && !content){\n BackupModel.onFetchById(params.id, props.space.slug, props.type, (data) => {\n setContent(data.content)\n setLoaded(true)\n }, (data) => {\n\n })\n }\n\n }, [props])\n\n useEffect(() => {\n \n window.$contentScrollViewport = viewport.current\n\n }, [viewport.current])\n\n return (\n \n \n \n {loaded && content && (\n \n )}\n \n\n \n )\n}\n","import React, { useState, useEffect, useRef, useCallback } from \"react\";\nimport Tiptap from \"../../../tiptap/components/Tiptap\";\n\nimport { HocuspocusProvider } from \"@hocuspocus/provider\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n setHiddenSidebar,\n setHiddenHeader,\n setForceLayoutUpdate,\n} from \"../../../../store/app\";\nimport SpaceModel from \"../../../../models/Space\";\n\nimport Loading from \"../static/Loading\";\n\nimport { Stack, ScrollArea, createStyles, Container, Notification } from \"@mantine/core\";\n\nimport { getHocuspocusHost, getEnv } from \"../../../../utils/Host\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport * as Y from \"yjs\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.registration_page_background_color,\n color: colors.registration_page_default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n \n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? (isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString())\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nexport default function RegistationPage(props) {\n const { t, i18n } = useTranslation();\n const [loaded, setLoaded] = useState();\n\n const [forcedDisconnected, setForceDisconnect] = useState(false);\n const [unsaveChanges, setUnsaveChanges] = useState(0);\n\n const [invitation, setInvitation] = useState(null);\n\n const provider = useRef({\n provider: null,\n status: null,\n documentName: null,\n editable: false,\n unSyncCount: 0,\n forcedDisconnected: false,\n });\n\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const forceLayoutUpdate = useSelector((state) => state.forceLayoutUpdate);\n\n const params = useParams();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const handlesIntervalId = useRef();\n const layoutUpdateForced = useRef();\n\n const connectionInterval = useRef();\n const tiptapKey = useRef(`tiptap-${new Date()}`);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n dispatch(setForceLayoutUpdate({ update: false }));\n unMount();\n };\n }, []);\n\n useEffect(() => {\n if (!space.slug) {\n return;\n }\n const header =\n space.permissions && space.permissions.can_manage ? \"admin\" : false;\n\n if (window.location.pathname.indexOf(\"/registration/view\") >= 0) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n \n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n }\n else{\n\n if (header) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n \n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n }, 500);\n }\n }\n\n\n if (props.invitationSlug) {\n onFetchInvitation();\n }\n\n // Refactor for more elegant wway\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n }, 500);\n\n if (window.location.pathname.indexOf(\"/registration/view\") >= 0) {\n const regex = /{{space_name}}/g;\n if (handlesIntervalId.current) {\n return;\n }\n handlesIntervalId.current = setInterval(() => {\n const prosemirrorEditorDivs = document.querySelectorAll(\"div.is_text\");\n console.log(\"INNNNN: \" + prosemirrorEditorDivs);\n if (prosemirrorEditorDivs.length) {\n clearInterval(handlesIntervalId.current);\n for (let i = 0; i < prosemirrorEditorDivs.length; i++) {\n const child = prosemirrorEditorDivs[i];\n if (child && regex.test(`${child.innerHTML}`)) {\n child.innerHTML = `${child.innerHTML}`.replace(regex, space.name);\n }\n }\n }\n }, 100);\n }\n }, [space]);\n\n useEffect(() => {\n provider.current.forcedDisconnected = forcedDisconnected;\n }, [forcedDisconnected]);\n\n useEffect(() => {\n if (!forceLayoutUpdate.update && !layoutUpdateForced.current) {\n layoutUpdateForced.current = true;\n dispatch(setForceLayoutUpdate({ update: true }));\n }\n }, [forceLayoutUpdate]);\n\n useEffect(() => {\n const newDocumentName = `circle-${props.documentName}-${params.slug}`;\n\n if (newDocumentName != provider.current.documentName) {\n provider.current.documentName = `circle-${props.documentName}-${params.slug}`;\n\n resetProvider();\n }\n }, [params]);\n\n const unMount = (mount = false) => {\n provider.current.documentName = null;\n provider.current.status = null;\n provider.current.editable = false;\n clearProvider();\n };\n\n const onFetchInvitation = () => {\n SpaceModel.onFetchSimple(\n params.slug,\n \"payment\",\n (data) => {\n setInvitation(data);\n },\n (data) => {}\n );\n };\n\n const clearProvider = () => {\n if (provider.current.provider) {\n provider.current.provider.off(\"destroy\");\n provider.current.provider.off(\"disconnect\");\n provider.current.provider.off(\"connect\");\n provider.current.provider.off(\"synced\");\n\n provider.current.provider.disconnect();\n provider.current.provider.destroy();\n }\n tiptapKey.current = `tiptap-${new Date()}`;\n };\n\n const onStatusChange = useCallback((status) => {\n if (status == \"connect\") {\n } else if (status == \"synced\") {\n console.log(\"3. PROVIDER synced: \");\n\n setTimeout(() => {\n setLoaded(true);\n }, 250);\n } else if (status == \"disconnect\") {\n console.log(\"PROVIDER disconnect: \");\n\n setForceDisconnect(true);\n setUnsaveChanges(provider.current.provider.unsyncedChanges);\n\n reconnector();\n } else if (status == \"destroy\") {\n } else if (status == \"status\") {\n }\n });\n\n const reconnector = () => {\n if (connectionInterval.current) {\n clearInterval(connectionInterval.current);\n }\n\n connectionInterval.current = setInterval(() => {\n console.log(\"PROVIDER reconnecting: \" + provider.current.provider.status);\n if (\n provider.current.provider.status == \"connected\" ||\n provider.current.provider.isSynced\n ) {\n console.log(\"PROVIDER reconnecting OK: \");\n setForceDisconnect(false);\n clearInterval(connectionInterval.current);\n }\n provider.current.provider.connect();\n }, 1000);\n };\n\n const resetProvider = () => {\n const yDocument = new Y.Doc();\n\n clearProvider();\n\n provider.current.provider = new HocuspocusProvider({\n url: getHocuspocusHost(),\n name: provider.current.documentName,\n document: yDocument,\n token: user.authentication_token,\n broadcast: getEnv() == \"production\",\n delay: 1000,\n factor: 0,\n forceSyncInterval: 1000,\n });\n\n provider.current.provider.on(\"status\", () => {\n onStatusChange(\"status\");\n });\n provider.current.provider.on(\"connect\", () => {\n onStatusChange(\"connect\");\n });\n provider.current.provider.on(\"synced\", () => {\n onStatusChange(\"synced\");\n });\n\n provider.current.provider.on(\"disconnect\", () => {\n onStatusChange(\"disconnect\");\n });\n\n provider.current.provider.on(\"destroy\", () => {\n onStatusChange(\"destroy\");\n });\n };\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n {forcedDisconnected && (\n \n \n {t(\"spaces.presentations.fallback.message\")}\n \n \n )}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { useTranslation } from \"react-i18next\";\nimport useLangUser from \"../../utils/LangUser\";\n\nimport { Box, Text, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textStyle: {\n fontSize: 18,\n color: colors.sidebar_text_color,\n },\n linkStyle: {\n textDecoration: \"underline\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function StatusBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n\n if (!props.isMember) {\n return null;\n }\n\n return (\n \n \n {t(`spaces.alreadyMember.member.welcome`)}\n \n {t(`spaces.alreadyMember.member.clickHere`)}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { useTranslation } from \"react-i18next\";\nimport useLangUser from \"../../utils/LangUser\";\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport { Box, Text, Group, Button, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n display: \"flex\",\n justifyContent: \"center\",\n },\n textStyle: {\n fontSize: 20,\n color: colors.sidebar_text_color,\n },\n linkStyle: {\n textDecoration: \"underline\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n}));\n\nexport default function InvitationBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n\n if (props.isMember) {\n return null;\n }\n\n return (\n \n {props.isFull ? (\n \n \n {`This space is full.`}\n \n \n ) : (\n \n \n {`Invitation for `}\n \n {props.invitation.invitation && (\n \n {`${props.invitation.invitation.email}`}\n \n )}\n {props.invitation.payment &&\n props.invitation.payment.invitation_has_different_price && (\n <>\n {!props.invitation.payment.is_flexible && (\n \n {` - ${\n getSymbolFromCurrency(props.invitation.payment.currency) +\n props.invitation.payment.price\n }`}\n \n )}\n \n {t(\"spaces.invitationBar.button.register\")}\n \n \n )}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport TiptapNoHP from \"../../../tiptap/components/TiptapNoHP\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n setHiddenSidebar,\n setHiddenHeader,\n setForceLayoutUpdate,\n} from \"../../../../store/app\";\nimport SpaceModel from \"../../../../models/Space\";\nimport ViewModel from \"../../../../models/View\";\n\nimport FixedBottomMenu from \"../../../tiptap/components/FixedBottomMenu\";\nimport AlreadyMember from \"../../AlreadyMember\";\nimport InvitationBar from \"../../InvitationBar\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Loading from \"../static/Loading\";\n\nimport { Stack, ScrollArea, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\n// import { IndexeddbPersistence } from 'y-indexeddb'\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.registration_page_background_color,\n color: colors.registration_page_default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nexport default function RegistationPage(props) {\n const [invitation, setInvitation] = useState(null);\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const forceLayoutUpdate = useSelector((state) => state.forceLayoutUpdate);\n\n const params = useParams();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const handlesIntervalId = useRef();\n const layoutUpdateForced = useRef();\n\n const [loaded, setLoaded] = useState(false);\n\n const content = useRef({});\n\n const fetchTimeout = useRef({});\n const lastSlug = useRef();\n const width = useRef();\n\n // const lastEditState = useRef(false)\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n dispatch(setForceLayoutUpdate({ update: false }));\n setLoaded(false);\n };\n }, []);\n\n useEffect(() => {\n if (!space.slug) {\n return;\n }\n const header =\n space.permissions && space.permissions.can_manage ? \"admin\" : false;\n\n if (location.pathname.indexOf(\"/register\") >= 0) {\n if (header) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n }\n } else {\n if (header) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n }, 500);\n }\n }\n\n if (props.invitationSlug) {\n onFetchInvitation();\n }\n\n // Refactor for more elegant wway\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n }, 500);\n }, [space]);\n\n useEffect(() => {\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoaded(false);\n onFetch();\n }\n }, [params]);\n\n useEffect(() => {\n if (!forceLayoutUpdate.update && !layoutUpdateForced.current) {\n layoutUpdateForced.current = true;\n dispatch(setForceLayoutUpdate({ update: true }));\n }\n }, [forceLayoutUpdate]);\n\n const onFetch = () => {\n ViewModel.onFetch(\n \"registration_page\",\n params.slug,\n (data) => {\n content.current = data.content;\n width.current = data.view_width;\n window.$registrationWideWidth = data.view_width;\n setLoaded(true);\n },\n (data) => {}\n );\n };\n\n const onFetchInvitation = () => {\n SpaceModel.onFetchSimple(\n params.slug,\n \"payment\",\n (data) => {\n setInvitation(data);\n },\n (data) => {}\n );\n };\n\n if (!loaded) {\n return ;\n }\n\n return (\n <>\n {space &&\n space.slug &&\n location &&\n location.pathname.indexOf(\"/register\") >= 0 && (\n <>\n \n {(invitation || space.permissions.is_full) && (\n \n )}\n \n )}\n \n \n {loaded && (\n \n )}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { Text, Group } from \"@mantine/core\";\n\nexport default function TaxAndDiscount({ currency, tax_amount, discount_type, discount_value }) {\n return (\n <>\n {typeof tax_amount === \"number\" && (\n \n Estimated tax\n \n {currency}{tax_amount}\n \n \n )}\n {!!discount_type && (\n \n Discount\n \n {discount_type === \"amount\" ? `${currency}${discount_value}` : `${discount_value}%`}\n \n \n )}\n \n );\n}\n","import React, { useState } from \"react\";\n\nimport { Group, TextInput, Button, Divider } from \"@mantine/core\";\n\nexport default function CouponButton({ onApplyCode }) {\n const [addCoupon, setAddCoupon] = useState(false);\n const [couponCode, setCouponCode] = useState(\"\");\n return (\n <>\n \n {addCoupon && (\n setCouponCode(event.currentTarget.value)}\n onClick={(event) => event.stopPropagation()}\n />\n )}\n {\n if (addCoupon) {\n if (typeof onApplyCode === \"function\") {\n onApplyCode(event, couponCode);\n }\n } else {\n event.stopPropagation();\n setAddCoupon(true);\n }\n }}\n >\n {addCoupon ? \"Apply coupon\" : \"+ Add coupon\"}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n mt={20}\n mb={15}\n />\n \n );\n}\n","import React, { useState } from \"react\";\n\nimport {\n Text,\n Group,\n Box,\n Checkbox,\n TextInput,\n ActionIcon,\n createStyles,\n} from \"@mantine/core\";\nimport { useMediaQuery } from \"@mantine/hooks\";\nimport { ArrowRight } from \"tabler-icons-react\";\n\nconst useStyles = createStyles(() => ({}));\n\nexport default function FlexibleList({ data, formatted_price, selectedBundle, selectedFlexible, currency, setSelectedFlexible }) {\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n const { theme } = useStyles();\n\n const [otherValue, setOtherValue] = useState(\"\");\n \n if (!Array.isArray(data)) {\n return null;\n }\n const ensure2Dec = (value) => {\n value = value ? parseFloat(value) : 0;\n return value.toFixed(2).replace(\".00\", \"\");\n };\n const getPaymentDetailsFlexible = (item) => {\n if (item.frequency == \"once\" || item.frequency == \"\" || item.frequency == null) {\n return \"\";\n } else {\n return item.frequency.replace(\"per\", \"/\");\n }\n };\n return (\n <>\n {data.map((price, index) => {\n const isChecked = selectedFlexible?.id === price.id;\n const amountTitle = Array.isArray(formatted_price) ? formatted_price[index]?.content : \"\";\n return (\n \n \n \n {amountTitle}\n {price?.amount ? (\n {`${currency}${ensure2Dec(price.amount)} ${getPaymentDetailsFlexible(price)}`}\n ) : (\n setOtherValue(event.currentTarget.value)}\n rightSection={\n \n {\n setSelectedFlexible({ ...price, otherPrice: parseFloat(otherValue) });\n }}\n />\n \n }\n />\n )}\n \n {typeof price.description === \"string\" && (\n \n {price.description}\n \n )}\n \n }\n checked={isChecked}\n onClick={() => {\n if (!isChecked) {\n if (price.amount) {\n setSelectedFlexible(price); \n } else if (otherValue !== \"\") {\n setSelectedFlexible({ ...price, otherPrice: parseFloat(otherValue) });\n }\n }\n }}\n />\n \n );\n })}\n \n );\n};\n\nconst styles = {\n checkbox: {\n label: { width: \"100%\" },\n root: {\n display: \"flex\",\n alignItems: \"flex-start\",\n },\n input: { marginTop: 2 },\n icon: { marginTop: 9 }\n },\n labelGroup: {\n display: \"flex\",\n alignItems: \"flex-start\"\n }\n};\n","import React from \"react\";\nimport { DateTime } from \"luxon\";\nimport { useTranslation } from \"react-i18next\";\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport {\n Text,\n Title,\n Group,\n Paper,\n Box,\n Checkbox,\n Divider,\n} from \"@mantine/core\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\nimport CouponButton from \"./CouponButton\";\nimport TaxAndDiscount from \"./TaxAndDiscount\";\n\nexport default function BundlesList({\n data,\n bundlesType,\n shouldShowPaymentBox,\n selectedBundle,\n setSelectedBundle,\n onApplyCode,\n tax_amount,\n discount_type,\n discount_value\n}) {\n const { t } = useTranslation();\n const { language } = useLangUser();\n\n const discount = typeof discount_value == \"number\" ? discount_value : 0;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const getBundlePaymentDetails = (bundle) => {\n const currency = getSymbolFromCurrency(bundle.currency);\n const amount = ensure2Dec(bundle.default_payment_amount);\n const frequency = bundle.default_payment_frequency != \"once\" ? ` / ${bundle.default_payment_frequency.replace(\"per \", \"\")}` : \"\";\n if (bundle.default_payment_frequency == \"once\") {\n return `One time payment of ${currency}${amount}`;\n }\n if (bundle.subscription_type == \"ongoing\") {\n if (bundle.default_payment_frequency == \"per month\") {\n return `Monthly subscription of ${currency}${amount}${frequency}`;\n } else {\n return `Annual subscription of ${currency}${amount}${frequency}`;\n }\n }\n if (bundle.number_of_times && bundle.number_of_times > 0) {\n return `${bundle.number_of_times} ${bundle.number_of_times == 1 ? \"payment\" : \"payments\"} of ${currency}${amount}`;\n }\n if (bundle.until_date) {\n return `${currency}${amount} ${frequency} until ${DateTime.fromISO(bundle.until_date)\n .setLocale(language)\n .toFormat(\"MMM d, y\")}`;\n }\n return `${currency}${amount}`;\n };\n\n const ensure2Dec = (value) => {\n value = value ? parseFloat(value) : 0;\n return value.toFixed(2).replace(\".00\", \"\");\n };\n\n return (\n <>\n {data.map((bundle) => {\n const isChecked = selectedBundle && selectedBundle.id == bundle.id;\n const price = Number(bundle.default_payment_amount);\n const hasDescription = Array.isArray(bundle.description?.content) && bundle.description.content.filter(item => !(item.type === \"paragraph\" && !('content' in item))).length > 0;\n if ((bundlesType === \"bundle\" && !isChecked) || !bundle.show_in_checkout && !isChecked) {\n return null;\n }\n return (\n {\n if (bundlesType !== \"bundle\") {\n setSelectedBundle(isChecked ? null : bundle)\n }\n }}\n >\n \n \n {bundlesType == \"regular\" && (\n \n )}\n ({ fontSize: 24, fontWeight: 600 })}\n order={2}\n >\n {bundle.name}\n \n \n\n {!shouldShowPaymentBox && (\n \n )}\n\n {!bundle.is_flexible && (\n \n {`${getBundlePaymentDetails(bundle)}`}\n \n )}\n\n {hasDescription && (\n <>\n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n )}\n\n \n\n \n {bundle.trial_period ? (\n {`Total due in ${bundle.trial_period} days`}\n ) : (\n {t(\"users.spaceReference.total\")}\n )}\n ({ fontWeight: 600 })}>\n {`${getSymbolFromCurrency(bundle.currency)}\n ${ensure2Dec(\n price + (isChecked && tax_amount ? tax_amount : 0) - (isChecked ? (discount_type === \"percent\" ? (price * discount / 100) : discount) : 0)\n )}\n `}\n \n \n\n \n \n );\n })}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { DateTime } from \"luxon\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\nimport Swal from \"sweetalert2\";\n\nimport {\n Paper,\n Title,\n Text,\n Container,\n Group,\n Box,\n Divider,\n Image,\n createStyles,\n} from \"@mantine/core\";\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport SpaceModel from \"../../models/Space\";\nimport StripeModel from \"../../models/Stripe\";\n\nimport useLangUser from \"../../utils/LangUser\";\n\nimport TiptapReadonly from \"../tiptap/components/TiptapReadonly\";\nimport TaxAndDiscount from \"../spaces_neo/settings/payment/TaxAndDiscount\";\nimport CouponButton from \"../spaces_neo/settings/payment/CouponButton\";\nimport FlexibleList from \"../spaces_neo/settings/payment/FlexibleList\";\nimport BundlesList from \"../spaces_neo/settings/payment/BundlesList\";\n\nconst useStyles = createStyles(() => ({\n spaceContainer: {\n \".ProseMirror p\": {\n color: \"#000000\",\n },\n \".ProseMirror a\": {\n color: \"#000000\",\n },\n \".ProseMirror .file-node svg\": {\n stroke: \"#000000\",\n },\n \".ProseMirror .file-node a\": {\n color: \"#000000\",\n },\n },\n}));\n\nexport default function SpaceReference(props) {\n const { t } = useTranslation();\n const currentLocation = useLocation();\n const { classes } = useStyles();\n const { language } = useLangUser();\n \n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n const [space, setSpace] = useState(null);\n const [discount_type, setDiscountType] = useState(null);\n const [discount_value, setDiscountValue] = useState(null);\n const [selectedFlexible, setSelectedFlexible] = useState(null);\n const [selectedBundle, setSelectedBundle] = useState(null);\n const [bundlesType, setBundlesType] = useState(\"regular\");\n const [isShowOnlyBundles, setIsShowOnlyBundles] = useState(false);\n\n const space2 = useSelector(state => state.space);\n\n const price = useRef(null);\n const currency = useRef(null);\n const frequency = useRef(null);\n const coupon = useRef(null);\n\n const shouldShowPaymentBox = bundlesType == \"regular\" || props.isStartPage;\n const isMember = props.isMember;\n const tax_amount = space?.payment?.tax_collection ? Number(props.tax_amount || 0) : null;\n const discount = typeof discount_value == \"number\" ? discount_value : 0;\n\n useEffect(() => {\n fetchSpace();\n }, []);\n\n useEffect(() => {\n if (selectedFlexible) {\n price.current = selectedFlexible.otherPrice ? Number(selectedFlexible.otherPrice) : selectedFlexible.amount;\n frequency.current = selectedFlexible.frequency || \"once\";\n if (coupon.current) {\n onApplyCode(null, coupon.current);\n } else {\n onPriceChange(price.current, currency.current, frequency.current);\n }\n }\n }, [selectedFlexible])\n\n useEffect(() => {\n if (selectedBundle) {\n price.current = Number(selectedBundle.default_payment_amount);\n currency.current = selectedBundle.currency;\n frequency.current = selectedBundle.default_payment_frequency || \"once\";\n window.$selectedBundleId = selectedBundle.id;\n if (coupon.current) {\n onApplyCode(null, coupon.current);\n } else {\n onPriceChange(price.current, currency.current, frequency.current);\n }\n } else {\n window.$selectedBundleId = null;\n }\n }, [selectedBundle])\n\n const fetchSpace = () => {\n const locationBundleId = new URLSearchParams(currentLocation.search).get(\"bundles\");\n const cookieBundleId = localStorage.getItem('bundles');\n const bundleID = locationBundleId || cookieBundleId;\n\n SpaceModel.onFetchSimple(\n props.slug,\n \"payment\",\n (data) => {\n setSpace(data);\n currency.current = data.payment.currency;\n \n const _bundle = Array.isArray(data.bundles) ? data.bundles.find((item) => {\n return item.id == Number(bundleID);\n }) : null;\n\n if (typeof props.setShowNewsLetter === \"function\"){\n props.setShowNewsLetter(data.show_newsletter);\n }\n if (typeof props.setShowSpaceReference === \"function\") {\n props.setShowSpaceReference(data.privacy_level === \"private\" ? false : true);\n }\n if (typeof props.setProviders === \"function\") {\n props.setProviders(data.sso_providers);\n }\n if (data.is_paid && typeof props.setStepper === \"function\") {\n props.setStepper(true);\n }\n\n const bundlesFiltered = Array.isArray(data.bundles) && data.bundles.filter((item) => item.show_in_checkout);\n\n if (!data.payment.price && bundlesFiltered.length > 0 && !data.payment.is_flexible && !data.payment.invitation_has_different_price) {\n setSelectedBundle(data.bundles[0]);\n setIsShowOnlyBundles(true);\n } else if (_bundle && !data.payment.invitation_has_different_price) {\n setSelectedBundle(_bundle);\n setBundlesType(\"bundle\");\n } else if (data.payment.is_flexible) {\n setSelectedFlexible(data.payment.price[0]);\n } else {\n price.current = data.payment.price;\n frequency.current = data.payment.frequency || \"once\";\n \n onPriceChange(price.current, currency.current, frequency.current);\n }\n\n setTimeout(() => {\n if (currentLocation.pathname.indexOf(\"/pay\") >= 0) {\n localStorage.removeItem('bundles');\n }\n }, 5000);\n\n },\n (error) => {\n if (typeof props.setSpaceReference === \"function\") {\n props.setSpaceReference(null);\n }\n }\n );\n };\n\n const onApplyCode = (event, couponCode) => {\n if (event) {\n event.stopPropagation();\n }\n if (couponCode === \"\") {\n return;\n }\n coupon.current = couponCode;\n StripeModel.onApplyCode(\n props.slug,\n couponCode,\n price.current,\n frequency.current,\n currency.current,\n (data) => {\n setDiscountType(data.data.type);\n setDiscountValue(data.data.value);\n onPriceChange(data.data.new_total, currency.current, frequency.current, data.data.coupon);\n },\n (e) => {\n if (e?.title) {\n Swal.fire(e.title, e.message, \"error\");\n }\n }\n );\n };\n\n const onPriceChange = (_price, _currency, _frequency, _coupon) => {\n if (typeof props.onPriceChange === \"function\") {\n props.onPriceChange(_price, _currency, _frequency, _coupon);\n }\n };\n\n const ensure2Dec = (value) => {\n value = value ? parseFloat(value) : 0;\n return value.toFixed(2).replace(\".00\", \"\");\n };\n\n const showCouponButton = () => {\n if (space.is_paid && !isMember && space?.has_coupons && !props.hideCoupon) {\n return ;\n } else {\n return ;\n }\n };\n\n const getPaymentDetails = () => {\n const _currency = getSymbolFromCurrency(space.payment.currency);\n const _amount = ensure2Dec(space.payment.price);\n const _frequency = space.payment.frequency && space.payment.frequency != \"once\" ? ` / ${space.payment.frequency.replace(\"per \", \"\")}` : \"\";\n if (space.payment.frequency == \"once\") {\n return `One time payment of ${_currency}${_amount}`;\n }\n if (space.payment.subscription_type == \"ongoing\") {\n if (space.payment.frequency == \"per month\") {\n return `Monthly subscription of ${_currency}${_amount}${_frequency}`;\n } else {\n return `Annual subscription of ${_currency}${_amount}${_frequency}`;\n }\n }\n if (space.payment.number_of_times && space.payment.number_of_times > 0) {\n return `${space.payment.number_of_times} ${\n space.payment.number_of_times == 1 ? \"payment\" : \"payments\"\n } of ${_currency}${_amount}`;\n }\n if (space.payment.until_date) {\n return `${_currency}${_amount} ${_frequency} until ${DateTime.fromISO(space.payment.until_date)\n .setLocale(language)\n .toFormat(\"MMM d, y\")}`;\n }\n return `${_currency}${_amount}`;\n };\n\n if (!space) {\n return null;\n }\n\n const hasDescription = Array.isArray(space?.payment?.description) && space.payment.description.filter(item => !(item.type === \"paragraph\" && !('content' in item))).length > 0;\n const totalPrice = selectedFlexible ? (selectedFlexible.otherPrice ? Number(selectedFlexible.otherPrice) : selectedFlexible.amount) : space.payment.price;\n\n return (\n \n {shouldShowPaymentBox && (\n \n {!!space.header?.url && (\n ({\n borderTopLeftRadius: theme.radius.md,\n borderTopRightRadius: theme.radius.md,\n overflow: \"hidden\",\n })}\n src={space.header.url}\n alt={space.name}\n />\n )}\n\n \n {space.top_parent && {space.top_parent}}\n ({ fontSize: 24, fontWeight: 600 })}\n order={2}\n mb={20}\n >\n {space.name}\n \n {typeof space2?.calendar?.plain_description === \"string\" && space2.calendar.plain_description.trim().length > 0 && (\n <>\n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n {space2.calendar.plain_description.replace(/
/g, \" \")}
\n \n )}\n\n {space.is_paid &&\n (!space.payment.is_flexible ||\n space.payment.invitation_has_different_price) &&\n !isMember && (\n \n {`${getPaymentDetails()}`}\n \n )}\n\n {space.is_paid && space.payment.is_flexible && !space.payment.invitation_has_different_price && !isMember && (\n {\n setSelectedFlexible(value);\n setSelectedBundle(null);\n }}\n />\n )}\n\n {showCouponButton()}\n\n {space.is_paid && !isMember && !props.notLoggedIn && (\n <>\n \n \n {space.payment.has_trial && space.payment.trial_period > 0 && space.payment?.frequency !== \"once\" ? (\n {`Total due in ${space.payment.trial_period} days`}\n ) : (\n {t(\"users.spaceReference.total\")}\n )}\n ({ fontWeight: 600 })}>\n {`${getSymbolFromCurrency(space.payment.currency)}\n ${ensure2Dec(\n Number(totalPrice) + tax_amount - (discount_type === \"percent\" ? (totalPrice * discount / 100) : discount)\n )}\n `}\n \n \n\n {space.payment.is_flexible && hasDescription && (\n <>\n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n \n )}\n \n )}\n\n
\n \n )}\n\n {!(isMember || space.payment.with_invitation) && !props.notLoggedIn && (\n {\n coupon.current = null;\n setDiscountType(null);\n setDiscountValue(null);\n setSelectedBundle(value);\n if (!value) {\n fetchSpace();\n }\n }}\n onApplyCode={onApplyCode}\n />\n )}\n\n \n );\n}\n","import React from 'react';\n\nimport {PaymentElement, useStripe, useElements} from '@stripe/react-stripe-js';\n\nimport {\n Button,\n} from '@mantine/core';\n\nimport getSymbolFromCurrency from 'currency-symbol-map'\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Payment(props) {\n const { t, i18n } = useTranslation();\n\n const stripe = useStripe();\n const elements = useElements();\n\n const onSubmit = async (event) => {\n event.preventDefault()\n\n await props.onPay(stripe, elements)\n }\n\n const getFrequency = () => {\n\n if (!props.frequency){\n return \"\"\n }\n return props.frequency != \"once\" ? ` / ${props.frequency}` : \"\"\n }\n\n const buttonText = () => {\n const amount = props.amount ? parseFloat(props.amount) : 0\n \n return `${t(\"spaces.stripe.pay\")} ${getSymbolFromCurrency(props.currency)}${amount.toFixed(2).replace(\".00\", \"\")}${getFrequency()}`\n }\n\n return (\n \n \n \n {buttonText()}\n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch } from 'react-redux';\n\nimport {setHiddenSidebar} from '../../../store/app';\n\nimport SpaceReference from '../../users/SpaceReference';\nimport StripeForm from './StripeForm';\n\nimport StripeModel from \"../../../models/Stripe\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport {Elements} from '@stripe/react-stripe-js';\nimport {loadStripe} from '@stripe/stripe-js';\n\nimport Swal from 'sweetalert2'\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Paper,\n Title,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea\n} from '@mantine/core';\n\nimport { useMediaQuery } from '@mantine/hooks';\n\nexport default function Payment(props) {\n\n const { t, i18n } = useTranslation();\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const intent = useRef(null)\n const intervalId = useRef(null)\n const currency = useRef(null)\n const frequency = useRef(null)\n const loaded = useRef(null)\n const stripePromise = useRef(null)\n const stripeOptions = useRef(null)\n const price = useRef(null)\n\n const [spaceReference, setSpaceReference] = useState()\n\n // const [stripePromise, setStripePromise] = useState()\n // const [stripeOptions, setStripeOptions] = useState({clientSecret: \"\"})\n const [returnUrl, setReturnUrl] = useState()\n // const [price, setPrice] = useState()\n // const [currency, setCurrency] = useState()\n // const [frequency, setFrequency] = useState()\n // const [loaded, setLoaded] = useState(false)\n\n useEffect(() => {\n dispatch(setHiddenSidebar({hidden: true}))\n setTimeout(() => {\n dispatch(setHiddenSidebar({hidden: true}))\n }, 1000)\n return () => {\n dispatch(setHiddenSidebar({hidden: false}))\n }\n }, [])\n\n useEffect(() => {\n if (props.space.slug){\n \n }\n }, [props])\n\n // useEffect(() => {\n // if (props.space.slug){\n // onCreate()\n // }\n // }, [price.current])\n\n const onCreate = () => {\n\n\n StripeModel.onCreate(props.space.slug, parseFloat(price), (data) => {\n stripePromise.current = loadStripe(data.publishable_key)\n stripeOptions.current = {clientSecret: data.client_secret}\n setReturnUrl(data.return_url)\n intent.current = data.intent_id\n \n }, (data) => {\n \n })\n }\n\n const onPriceChange = (_price, _currency, _frequency) => {\n price.current = _price\n currency.current = _currency\n frequency.current = _frequency\n loaded.current = true\n \n onCreate()\n }\n\n const onPay = async (stripe, elements) => {\n\n if (!stripe || !elements) {\n return;\n }\n\n StripeModel.onCheckIntent(props.space.slug, intent.current, (data) => {\n\n if (!data.data.is_valid){\n Swal.fire(t(\"spaces.payment.onCheckIntent.alertTitle\"), t(\"spaces.payment.onCheckIntent.alertMessage\"), \"error\")\n return\n }\n\n stripe.confirmPayment({\n //`Elements` instance that was used to create the Payment Element\n elements,\n confirmParams: {\n return_url: returnUrl,\n },\n }).then(function(result) {\n if (result.error) {\n // Show error to your customer (for example, payment details incomplete)\n Swal.fire(t(\"spaces.payment.onConfirmPayment.alertTitle\"), result.error.message, \"error\")\n } else {\n // Your customer will be redirected to your `return_url`. For some payment\n // methods like iDEAL, your customer will be redirected to an intermediate\n // site first to authorize the payment, then redirected to the `return_url`.\n }\n });\n\n }, (data) => {\n\n })\n\n\n }\n\n const smallScreen = useMediaQuery('(max-width: 768px)');\n\n const setStepper = () => {\n\n }\n const setShowSpaceReference = () => {\n\n }\n\n const onJoin = () => {\n SpaceModel.onJoin(props.space.slug, (data) => {\n navigate(`${data.redirect_to}?refresh=true`)\n }, (data) => {\n\n })\n }\n\n return (\n \n \n {!smallScreen && props.space ? (\n \n \n \n \n \n \n \n ) : ('')}\n \n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"spaces.payment.completePayment\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n {props.space && stripePromise.current && stripeOptions.current && price.current > 0 ? (\n \n \n \n ) : (\n props.space && stripePromise && stripeOptions && loaded.current && (\n onJoin()}>\n {t(\"spaces.payment.join\")}\n \n )\n )}\n \n \n \n \n {props.space && props.space.slug && (\n \n \n \n )}\n \n \n \n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setUser, setAlert } from \"../../store/app\";\n\nimport Uploady, {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\nimport DefaultAvatar from \"../../src/images/fallback/default.png\";\nimport UserModel from \"../../models/User\";\n\nimport { setHiddenSidebar } from \"../../store/app\";\n\nimport SpaceReference from \"./SpaceReference\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport useAuthUser from \"../../utils/AuthUser\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport {\n TextInput,\n PasswordInput,\n Checkbox,\n Paper,\n Title,\n Text,\n Container,\n Group,\n Button,\n Box,\n Divider,\n Image,\n Stepper,\n Grid,\n Textarea,\n ScrollArea,\n Progress,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data);\n });\n\n return progress > 0 && progress < 100 ? : \"\";\n};\n\nconst CustomUploadButton = asUploadButton((props) => {\n const { t, i18n } = useTranslation();\n return (\n \n {t(\"users.edit.addProfileImage\")}\n \n );\n});\n\nexport default function Edit(props) {\n const { t, i18n } = useTranslation();\n\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n\n const [dialog, setDialog] = useState({\n opened: false,\n title: \"\",\n message: \"\",\n color: \"indigo\",\n });\n\n const [spaceReference, setSpaceReference] = useState();\n\n const didMount = useRef(false);\n\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n const { setAuthUser } = useAuthUser();\n\n const [showStepper, setStepper] = useState(false);\n\n const form = useForm({\n initialValues: {\n bio: \"\",\n },\n });\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n initFormData();\n }, [user]);\n\n const initFormData = () => {\n form.setFieldValue(\"bio\", user.bio);\n };\n\n const onAvatarUploaded = (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n // const newUser = { ...user };\n // newUser.avatar = { url: data.url };\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n };\n\n const onRemoveAvatar = () => {\n UserModel.onRemoveAvatar(\n user.id,\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n // const newUser = { ...user };\n // newUser.avatar.url = null;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onSave = (values) => {\n UserModel.onUpdate(\n user.id,\n {\n bio: values.bio,\n },\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n // const newUser = { ...user };\n // user.bio = values.bio;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n\n if (props.spaceId) {\n navigate(`/space/${props.spaceId}/${space.version}`);\n } else {\n navigate(onSkip());\n }\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onSkip = () => {\n return user.open_invitations\n ? `/home/invitations`\n : user.space_count\n ? `/home/top`\n : `/app/getting_started`;\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n {`Sutra - Complete profile`}\n \n \n {!smallScreen && props.spaceId && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onSave(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.edit.title\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n
\n \n \n
\n {!user.avatar.url ||\n user.avatar.url.indexOf(\"assets/fallback\") >= 0 ? (\n \n \n \n \n ) : (\n onRemoveAvatar()}\n >\n {t(\"users.edit.removeProfileImage\")}\n \n )}\n \n \n \n {t(\"users.edit.submit\")}\n \n {props.spaceId ? (\n \n \n {t(\"users.edit.skip\")}\n \n \n ) : (\n \n {t(\"users.edit.skip\")}\n \n )}\n
\n
\n
\n
\n
\n {props.spaceId ? (\n \n \n \n ) : (\n <>\n )}\n
\n \n
\n
\n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\nimport {\n Text,\n Box,\n Stack,\n ScrollArea,\n Container,\n createStyles,\n Button,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Private(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const params = useParams();\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n return (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n {t(\"spaces.presentations.static.private.message.part1\")}{\" \"}\n {!user.authenticated && (\n \n {t(\"spaces.presentations.static.private.message.part2\")}\n \n )}\n \n\n {!user ||\n (user && !user.authenticated && (\n \n {t(\"spaces.presentations.static.private.button\")}\n \n ))}\n \n
\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nimport HeaderImage from \"../../HeaderImage\";\n\nimport FixedHeader from \"../../FixedHeader\";\n\nimport Loading from \"./Loading\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport ViewModel from \"../../../../models/View\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Box,\n Text,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Pending(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const params = useParams();\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const [loaded, setLoaded] = useState(false);\n const content = useRef({});\n const lastSlug = useRef();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n setLoaded(false);\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n\n\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoaded(false);\n onFetch();\n }\n\n }, [params]);\n\n const onFetch = () => {\n ViewModel.onFetch(\"pending_member_view\", params.slug, (data) => {\n content.current = data.content\n setLoaded(true);\n }, (data) => {\n\n })\n }\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n \n \n ({\n height: \"100%\",\n })}\n >\n {props.space && content.current ? (\n <>\n \n \n \n ) : (\n {t(\"spaces.presentations.static.pending.message\")}\n )}\n \n \n \n );\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport { Text, Box, MantineProvider, Alert, Container } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Processing(props) {\n const { t, i18n } = useTranslation();\n\n const intervalId = useRef();\n const params = useParams();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (intervalId.current) {\n clearInterval(intervalId.current);\n }\n\n intervalId.current = setInterval(() => {\n onReset();\n }, 1000);\n\n return () => {\n clearInterval(intervalId.current);\n };\n }, []);\n\n const onReset = () => {\n SpaceModel.onFetchSimple(\n params.slug,\n \"basic\",\n (data) => {\n if (data.status != \"processing\") {\n setTimeout(() => {\n location.href = `/space/${data.slug}/${data.version}`;\n }, 3000);\n }\n },\n (data) => {}\n );\n };\n\n return (\n \n \n \n \n \n {t(\"spaces.presentations.static.processing.message\")}\n \n \n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport HeaderImage from \"../../HeaderImage\";\n\nimport FixedHeader from \"../../FixedHeader\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Text,\n Button,\n createStyles,\n} from \"@mantine/core\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Pending(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const location = useLocation();\n const navigate = useNavigate();\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n const onAcceptInvitation = () => {\n const slug = new URLSearchParams(location.search).get(\"slug\");\n\n InvitationModel.onAccept(\n slug,\n props.space.slug,\n (data) => {\n navigate(\n `/space/${props.space.slug}/${props.space.version}?refresh=true`\n );\n },\n (data) => {}\n );\n };\n\n return (\n \n \n \n \n ({\n height: \"100%\",\n })}\n >\n {t(\"spaces.presentations.static.invitation.message\")}\n \n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport TakeSurvey from \"../../../surveys/take/Form\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Box,\n Title,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Survey(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const colors = useSelector(state => state.colors);\n const space = useSelector(state => state.space);\n const survey = useSelector(state => state.survey);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n const onTaken = () => {\n navigate(`/space/${props.space.slug}?refresh=true`);\n };\n\n return (\n \n \n\n\n ({\n height: \"100%\",\n maxWidth: 600\n })}>\n {survey && survey.id && (\n \n ({\n border: `1px solid ${colors.default_text_color}`,\n borderRadius: 10,\n paddingTop: 30,\n paddingBottom: 40,\n paddingLeft: 40,\n paddingRight: 40,\n marginBottom: 40,\n })}\n >\n ({\n marginBottom: 10,\n fontSize: 24,\n fontWeight: 900 })}\n >\n {space.name}\n \n \n \n \n )}\n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Gateway(props) {\n const navigate = useNavigate();\n\n const colors = useSelector((state) => state.colors);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n return () => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n };\n }, []);\n\n useEffect(() => {\n if (props.space && props.space.slug) {\n SpaceModel.onGateway(\n props.space.slug,\n (data) => {\n localStorage.setItem(\"gateway_slug\", props.space.slug);\n navigate(data.redirect_to.url);\n },\n (data) => {}\n );\n }\n }, [props]);\n\n return

;\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Link, useNavigate, useParams } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport BroadcastModel from \"../../../../models/Broadcast\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Box,\n Text,\n Button,\n Center,\n Title,\n createStyles,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n linkStyle: {\n color: \"#000\",\n },\n}));\n\nexport default function BroadcastExclude(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const params = useParams();\n\n const [excluded, setExcluded] = useState(false);\n const [email, setEmail] = useState(false);\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n\n const email = new URLSearchParams(location.search).get(\"email\");\n setEmail(email)\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n };\n }, []);\n\n useEffect(() => {\n if (email){\n onIsExcluded();\n }\n }, [email]);\n\n const onInclude = () => {\n BroadcastModel.onInclude(\n params.slug,\n email,\n (data) => {\n setExcluded(false);\n },\n (data) => {}\n );\n };\n const onExclude = () => {\n BroadcastModel.onExclude(\n params.slug,\n email,\n (data) => {\n setExcluded(true);\n },\n (data) => {}\n );\n };\n const onIsExcluded = () => {\n BroadcastModel.onIsExcluded(\n params.slug,\n email,\n (data) => {\n setExcluded(data.data.excluded);\n },\n (data) => {}\n );\n };\n\n return (\n \n \n ({\n height: \"100%\",\n maxWidth: 600,\n })}\n >\n \n ({\n border: `1px solid ${colors.default_text_color}`,\n borderRadius: 10,\n paddingTop: 30,\n paddingBottom: 40,\n paddingLeft: 40,\n paddingRight: 40,\n marginBottom: 40,\n })}\n >\n \n ({\n marginBottom: 10,\n fontSize: 24,\n fontWeight: 900,\n })}\n >\n {props.space.name}\n \n \n\n {!excluded ? (\n
\n \n \n {`${t(\n \"spaces.presentations.static.broadcastExclude.unsubscribe.part1\"\n )} ${props.space.name}? ${t(\n \"spaces.presentations.static.broadcastExclude.unsubscribe.part2\"\n )}`}\n \n \n onExclude()}\n >\n {t(\n \"spaces.presentations.static.broadcastExclude.unsubscribe.button\"\n )}\n \n \n \n
\n ) : (\n
\n \n \n {`${t(\n \"spaces.presentations.static.broadcastExclude.subscribe.part1\"\n )} ${props.space.name}.`}\n \n {`Changed your mind?`}\n \n \n \n \n
\n )}\n
\n \n \n
\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Group,\n Text,\n Select,\n SegmentedControl,\n Switch,\n MantineProvider,\n Box,\n Textarea,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\nimport TagModel from \"../../../models/SpaceTag\";\n\nimport { useForm } from \"@mantine/form\";\nimport { TimeInput, DatePicker } from \"@mantine/dates\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport TiptapInline from \"../../tiptap/components/TiptapInline\";\n\nimport { storeJSON, getJSON } from \"../../../utils/LocalDB\";\n\nimport Tag from \"../presentations/lists/Tag\";\n\nconst SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n);\n\nexport default function Form(props) {\n const [publish, setPublish] = useState(false);\n const [join, setJoin] = useState(true);\n const [privacyDescription, setPrivacyDescription] = useState(\"\");\n const [rootPrivacyDescription, setRootPrivacyDescription] = useState(\"\");\n const [opened, setOpened] = useState(false);\n const [tags, setTags] = useState(null);\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n const newSpaceLoading = useRef(false);\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n intention: \"\",\n version: \"\",\n privacy_level: \"open\",\n join_on_create: true,\n launch_on_date: null,\n launch_time: null,\n show_start_date: false,\n start_date: new Date(new Date().getTime() + 86400000),\n end_date: new Date(new Date().getTime() + 90000000),\n start_time: new Date(new Date().getTime() + 86400000),\n end_time: new Date(new Date().getTime() + 90000000),\n content: \"\",\n hangout_link: \"\",\n description: \"\",\n tags: [],\n },\n\n validate: {\n intention: (value) =>\n value.length >= 3 && value.length <= 100\n ? null\n : t(\"spaces.create.invalidName2ErrorMsg\"),\n },\n });\n\n useEffect(() => {\n return () => {\n newSpaceLoading.current = false;\n };\n }, []);\n\n useEffect(() => {\n form.setFieldValue(\"version\", props.version);\n if (props.privacyControl != null) {\n form.setFieldValue(\n \"privacy_level\",\n props.privacyControl == \"any\" ? \"open\" : props.privacyControl\n );\n }\n if (!tags){\n onFetchTags();\n }\n }, [props]);\n\n useEffect(() => {\n form.setFieldValue(\"join_on_create\", join);\n }, [join]);\n\n useEffect(() => {\n if (form.values.privacy_level === \"open\") {\n setPrivacyDescription(\n `${t(\"spaces.form.form.privacyDescription1\")} ${space.name}.`\n );\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription1\")}`\n );\n } else if (form.values.privacy_level === \"private\") {\n setPrivacyDescription(`${t(\"spaces.form.form.privacyDescription2\")}`);\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription2\")}`\n );\n }\n }, [form.values.privacy_level]);\n\n const onFetchTags = () => {\n TagModel.onFetch(\n space.slug,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n if (newSpaceLoading.current) {\n return;\n }\n newSpaceLoading.current = true;\n const spaceParams = { ...form.values };\n if (spaceParams.version == \"event\") {\n spaceParams.version = \"content\";\n spaceParams.show_start_date = true;\n\n if (spaceParams.start_date) {\n const _startDate = new Date(spaceParams.start_date);\n const _startTime = spaceParams.start_time\n ? new Date(spaceParams.start_time)\n : new Date();\n\n spaceParams.start_date = new Date(\n `${_startDate.toLocaleDateStringAbs()}, ${_startTime.toLocaleTimeString()}`\n ).toISOString();\n }\n if (spaceParams.end_date) {\n const _endDate = new Date(spaceParams.end_date);\n const _endTime = spaceParams.end_time\n ? new Date(spaceParams.end_time)\n : new Date();\n\n spaceParams.end_date = new Date(\n `${_endDate.toLocaleDateStringAbs()}, ${_endTime.toLocaleTimeString()}`\n ).toISOString();\n }\n }\n if (spaceParams.launch_on_date) {\n const _launchDate = new Date(spaceParams.launch_on_date);\n const _launchTime = spaceParams.launch_time\n ? new Date(spaceParams.launch_time)\n : new Date();\n\n spaceParams.launch_time = new Date(\n `${_launchDate.toLocaleDateStringAbs()}, ${_launchTime.toLocaleTimeString()}`\n ).toISOString();\n\n spaceParams.launch_on_date = true;\n }\n\n if (props.duplicateFrom) {\n spaceParams.copy_resources = true;\n spaceParams.copy_sub_circles = true;\n spaceParams.parent_slug = space.slug;\n\n SpaceModel.onDuplicate(\n spaceParams,\n props.duplicateFrom,\n (data) => {\n props.onSave(data.data.slug, data.data.link);\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 2000);\n },\n (data) => {\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 500);\n }\n );\n } else {\n SpaceModel.onCreate(\n spaceParams,\n props.parentId,\n (data) => {\n props.onSave(data.slug, data.link);\n storeJSON(\"spaces\", `new-space-${props.parentId}`, {\n json: \"\",\n html: \"\",\n });\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 2000);\n },\n (data) => {\n if (data.permissions) {\n setOpened([true, data.permissions[1], data.permissions[2]]);\n // props.onSave()\n }\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 500);\n }\n );\n }\n };\n\n const spacesVersions = () => {\n let versions = [\n {\n value: \"content\",\n label: t(\"spaces.form.form.versions.content.label\"),\n description: t(\"spaces.form.form.versions.content.description\"),\n },\n {\n value: \"list\",\n label: t(\"spaces.form.form.versions.list.label\"),\n description: t(\"spaces.form.form.versions.list.description\"),\n },\n {\n value: \"discussion\",\n label: t(\"spaces.form.form.versions.discussion.label\"),\n description: t(\"spaces.form.form.versions.discussion.description\"),\n },\n {\n value: \"event\",\n label: t(\"spaces.form.form.versions.event.label\"),\n description: t(\"spaces.form.form.versions.event.description\"),\n },\n {\n value: \"events\",\n label: t(\"spaces.form.form.versions.events.label\"),\n description: t(\"spaces.form.form.versions.events.description\"),\n },\n ];\n\n return versions;\n };\n\n const onContentUpdate = (content, html) => {\n form.setFieldValue(\"content\", content.content);\n };\n\n const onTag = ({ name, color, action, rTags }) => {\n if (action == \"add\") {\n const selectedTags = [...form.values.tags];\n selectedTags.push({ name: name, color: color });\n form.setFieldValue(\"tags\", selectedTags);\n } else if (action == \"replace\") {\n form.setFieldValue(\"tags\", rTags);\n }\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n {props.content && !props.duplicateFrom && (\n \n \n \n )}\n {!props.isRoot ? (\n \n {space && space.slug && space.version == \"content\" && (\n \n )}\n\n {form.getInputProps(\"version\").value == \"event\" ? (\n \n {/* \n {t(\"spaces.form.form.eventDescription\")}\n */}\n \n \n \n {t(\"spaces.form.form.eventStartTime\")}\n \n \n \n \n \n \n {t(\"spaces.form.form.eventEndDate\")}\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n ) : (\n \"\"\n )}\n\n \n {props.privacyControl == \"any\" && (\n \n \n {t(\"spaces.form.form.privacyLevelText\")}\n \n \n {!props.isRoot && (\n \n {privacyDescription}\n \n )}\n {props.isRoot && (\n \n {rootPrivacyDescription}\n \n )}\n \n )}\n {!props.noAdvance && !props.isRoot && (\n <>\n setJoin(event.target.checked)}\n label={t(\"spaces.form.form.joinAsMember.label\")}\n />\n setPublish(event.target.checked)}\n label={t(\"spaces.form.form.publishDate.label\")}\n />\n {publish ? (\n
\n \n {t(\"spaces.form.form.publishDateTime\")}\n \n \n \n \n \n
\n ) : (\n \"\"\n )}\n \n )}\n {tags && tags.length > 0 && (\n \n )}\n
\n\n \n
\n \n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Box,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nlet regexSutraLink = /^(http|https):\\/\\/([\\w-]+\\.)+[\\w-]+\\/space\\/[\\w-]+\\/?.*$/;\nlet regexSutraLink2 = /^(http|https):\\/\\/([a-zA-Z0-9]+)\\.sutra\\.co\\/?.*$/;\n\n\nexport default function Form(props) {\n const [opened, setOpened] = useState(false);\n const space = useSelector((state) => state.space);\n const newSpaceLoading = useRef(false);\n const [canLink, setCanLink] = useState(true)\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n link: \"\",\n },\n\n validate: {\n link: (value) =>\n regexSutraLink.test(value) || regexSutraLink2.test(value) ? null : t(\"spaces.form.linkForm.linkErrMessage\"),\n },\n });\n\n useEffect(() => {\n return () => {\n newSpaceLoading.current = false;\n };\n }, []);\n\n useEffect(() => {\n setCanLink(true)\n }, [form.values.link]);\n\n function extractSlug() {\n let parts = []\n if (regexSutraLink.test(form.values.link)){\n parts = form.values.link.split(\"/\");\n return parts[4];\n }\n else{\n parts = form.values.link.replace(\"https://\", \"\").replace(\"http://\", \"\").split(\".\");\n return parts[0];\n }\n }\n\n const onSave = () => {\n\n\n SpaceModel.onCanBeLinked(\n extractSlug(),\n props.parentId,\n (data) => {\n setCanLink(data.can_be_linked)\n if (data.can_be_linked) {\n onLink();\n }\n },\n (data) => {\n\n }\n );\n };\n\n const onLink = () => {\n\n if (newSpaceLoading.current) {\n return;\n }\n newSpaceLoading.current = true;\n\n SpaceModel.onLink(\n extractSlug(),\n props.parentId,\n (data) => {\n props.onSave(data.slug, data.link);\n\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 2000);\n },\n (data) => {\n\n setTimeout(() => {\n newSpaceLoading.current = false;\n }, 500);\n }\n );\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n {!canLink && (\n ({\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0],\n textAlign: 'center',\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor:\n theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[1],\n },\n })}\n >\n {space.version != \"events\" ? t(\"spaces.form.linkForm.link.errors.space\") : t(\"spaces.form.linkForm.link.errors.event\")}\n\n \n )}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { Modal, Text, Avatar, Group, createStyles } from \"@mantine/core\";\n\nimport Form from \"../../form/ListForm\";\nimport LinkForm from \"../../form/LinkForm\";\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors, publishOnDate }, getRef) => ({\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n}));\n\nconst NewSpace = (props) => {\n const space = useSelector((state) => state.space);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const [spaceType, setSpaceType] = useState(\"content\");\n\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n setSpaceType(props.spaceType);\n }, [props]);\n\n const onSave = (spaceId, spaceLink, spaceName=\"\") => {\n props.setOpened(false);\n props.onSave(spaceId, spaceLink);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n \n\n \n {`${user.first_name} ${user.last_name}`}\n \n \n }\n padding=\"xl\"\n size=\"lg\"\n overlayOpacity={0.1}\n zIndex={99999}\n >\n {props.linkOnly ? (\n \n ) : (\n props.opened && (\n \n )\n )}\n \n );\n};\n\nexport default NewSpace;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\nimport SpaceModel from \"../../../../models/Space\";\nimport TagModel from \"../../../../models/SpaceTag\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { setWideWidth, setSpace } from \"../../../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Tag from \"./Tag\";\n\nimport {\n Drawer,\n Text,\n Box,\n Stack,\n ScrollArea,\n Accordion,\n Select,\n createStyles,\n Button,\n Switch,\n TextInput,\n Loader,\n Group,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderBottom: \"none\",\n },\n control: {\n paddingTop: 0,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 16,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n icon: {\n // marginRight: 8,\n // marginLeft: -5\n },\n content: {\n backgroundColor: theme.colors.gray[0],\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n}));\n\nconst Settings = (props) => {\n const { t, i18n } = useTranslation();\n const { classes, cx, theme } = useStyles();\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const [visualType, setVisualType] = useState(\"list\");\n const [authors, setAuthors] = useState();\n const [templates, setTemplates] = useState([]);\n const [listChildVersion, setListChildVersion] = useState(\n props.parentVersion == \"list\" ? \"post\" : \"\"\n );\n const [listTemplateId, setListTemplateId] = useState(\"create\");\n const [listActionText, setListActionText] = useState(\n props.parentVersion == \"list\" ? \"Create post\" : \"Add event\"\n );\n const [listLinkAction, setListLinkAction] = useState(\"subspace\");\n const [listShowPreviewText, setListShowPreviewText] = useState();\n const [listShowThumbnail, setListShowThumbnail] = useState();\n const [listShowComments, setListShowComments] = useState();\n const [listShowMembers, setListShowMembers] = useState();\n const [listShowTimestamp, setListShowTimestamp] = useState();\n const [listAutoThumbnail, setListAutoThumbnail] = useState();\n const [listPrivacyControl, setListPrivacyControl] = useState();\n const [newTemplateName, setNewTemplateName] = useState();\n const [resourceEditing, setResourceEditing] = useState();\n const [listFilterBy, setListFilterBy] = useState();\n const [listFlatView, setListFlatView] = useState();\n const [listOpenInModal, setListOpenInModal] = useState();\n const [listAllowLikes, setListAllowLikes] = useState();\n const [width, setWidth] = useState(false);\n const [tags, setTags] = useState([]);\n\n const [listChildrenCapabilities, setListChildrenCapabilities] = useState([\n \"limited\",\n ]);\n\n const creationTypes = [\n {\n label: t(\"spaces.presentations.settings.versions.posts\"),\n value: \"posts\",\n description: t(\n \"spaces.presentations.settings.versionsDescriptions.posts\"\n ),\n },\n {\n label: t(\"spaces.presentations.settings.versions.content\"),\n value: \"content\",\n description: t(\n \"spaces.presentations.settings.versionsDescriptions.content\"\n ),\n },\n // {\n // label: t(\"spaces.presentations.settings.versions.discussions\"),\n // value: \"discussions\",\n // description: t(\n // \"spaces.presentations.settings.versionsDescriptions.discussions\"\n // ),\n // },\n {\n label: t(\"spaces.presentations.settings.versions.link\"),\n value: \"link\",\n description: t(\"spaces.presentations.settings.versionsDescriptions.link\"),\n },\n ];\n\n if (props.parentVersion == \"list\") {\n creationTypes.push({\n label: t(\"spaces.presentations.settings.versions.template\"),\n value: \"template\",\n description: t(\n \"spaces.presentations.settings.versionsDescriptions.template\"\n ),\n });\n }\n\n const loading = useRef(false);\n const spaceId = useRef();\n const saving = useRef();\n const visualTypeChanged = useRef();\n const tagsTimeout = useRef();\n const [savingLoader, setSavingLoader] = useState(false);\n\n useEffect(() => {\n loading.current = false;\n onFetchTemplates();\n }, []);\n\n useEffect(() => {\n if (props.spaceId && props.spaceId != spaceId.current) {\n spaceId.current = props.spaceId;\n onFetch();\n }\n if (props.opened){\n onFetchTags();\n }\n }, [props]);\n\n useEffect(() => {\n if (loading.current) {\n setWidth(visualType == \"grid\");\n setListFlatView(visualType == \"list\");\n }\n }, [visualType]);\n\n useEffect(() => {\n if (loading.current) {\n visualTypeChanged.current = true;\n }\n }, [width]);\n\n useEffect(() => {\n if (loading.current) {\n if (listChildVersion != \"posts\"){\n setListAllowLikes(false)\n setListOpenInModal(false)\n }\n if (listChildVersion == \"posts\"){\n setListAllowLikes(true)\n setListOpenInModal(true)\n }\n }\n }, [listChildVersion]);\n\n useEffect(() => {\n if (loading.current) {\n setSavingLoader(true);\n if (listChildVersion != \"template\" && props.parentVersion == \"list\") {\n setListTemplateId(\"create\");\n setListLinkAction(\"subspace\");\n setListPrivacyControl(\"open\");\n setListChildrenCapabilities(\"limited\");\n }\n if (props.parentVersion == \"events\") {\n setListTemplateId(\"create\");\n setListLinkAction(\"subspace\");\n setListPrivacyControl(\"open\");\n setListChildrenCapabilities(\"full\");\n }\n\n if (saving.current) {\n clearTimeout(saving.current);\n }\n saving.current = setTimeout(() => {\n onSave();\n }, 1000);\n }\n }, [\n visualType,\n authors,\n listChildVersion,\n listActionText,\n listTemplateId,\n listLinkAction,\n listShowPreviewText,\n listShowThumbnail,\n listShowComments,\n listShowMembers,\n listShowTimestamp,\n listAutoThumbnail,\n listPrivacyControl,\n resourceEditing,\n listFilterBy,\n listFlatView,\n width,\n listOpenInModal,\n listAllowLikes\n ]);\n\n const onFetchTags = () => {\n if (tagsTimeout.current) {\n clearTimeout(tagsTimeout.current);\n }\n tagsTimeout.current = setTimeout(() => {\n TagModel.onFetch(\n props.spaceId,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n }, 2000);\n };\n\n const onFetch = () => {\n SpaceSettingModel.onFetch(\n props.spaceId,\n (data) => {\n if (!loading.current) {\n setVisualType(data.space.present_as);\n setWidth(data.space.space_width == \"wide\");\n setResourceEditing(data.space.resource_editing == \"closed\");\n\n setAuthors(data.settings.list_show_author);\n setListShowPreviewText(data.settings.list_show_preview_text);\n setListShowThumbnail(data.settings.list_show_thumbnail);\n setListShowComments(data.settings.list_show_comments_count);\n setListShowMembers(data.settings.list_show_members);\n setListShowTimestamp(data.settings.list_show_timestamp);\n setListAutoThumbnail(data.settings.list_auto_thumbnail);\n setListPrivacyControl(data.settings.list_privacy_control);\n setListFilterBy(data.settings.list_filter_by ? data.settings.list_filter_by : \"pods.created_at DESC\");\n setListFlatView(data.settings.list_flat_view);\n setListOpenInModal(data.settings.list_open_in_modal);\n setListAllowLikes(data.settings.list_allow_likes);\n\n setListChildVersion(\n data.settings.list_child_version\n ? data.settings.list_child_version\n : \"posts\"\n );\n setListActionText(\n data.settings.list_action_text\n ? data.settings.list_action_text\n : props.parentVersion == \"list\" ? \"Create post\" : \"Add event\"\n );\n setListTemplateId(\n data.settings.list_template_id\n ? data.settings.list_template_id\n : \"create\"\n );\n setListLinkAction(\n data.settings.list_link_action\n ? data.settings.list_link_action\n : \"subspace\"\n );\n setListChildrenCapabilities(\n data.settings.list_children_capabilities\n ? data.settings.list_children_capabilities\n : \"limited\"\n );\n\n setTimeout(() => {\n loading.current = true;\n }, 1000);\n }\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n const auxSettings = {\n space_width: width ? \"wide\" : \"narrow\",\n list_action_text: listActionText,\n list_template_id: listTemplateId != \"create\" ? listTemplateId : null,\n list_child_version: listChildVersion,\n list_link_action: listLinkAction,\n list_show_author: authors,\n list_show_preview_text: listShowPreviewText,\n list_show_thumbnail: listShowThumbnail,\n list_show_comments_count: listShowComments,\n list_show_members: listShowMembers,\n list_show_timestamp: listShowTimestamp,\n list_auto_thumbnail: listAutoThumbnail,\n list_privacy_control: listPrivacyControl,\n list_filter_by: listFilterBy,\n list_flat_view: listFlatView,\n list_open_in_modal: listOpenInModal,\n list_allow_likes: listAllowLikes,\n list_children_capabilities:\n listTemplateId != \"create\" || listChildVersion == \"content\"\n ? [\"full\"]\n : [\"limited\"],\n };\n\n SpaceSettingModel.onUpdate(\n props.spaceId,\n {\n present_as: `${visualType}`,\n resource_editing: `${resourceEditing ? \"closed\" : \"open\"}`,\n pod_settings_attributes: { ...auxSettings },\n },\n (data) => {\n onFetchTags();\n setSavingLoader(false);\n if (visualTypeChanged.current) {\n visualTypeChanged.current = false;\n dispatch(setWideWidth({ on: width }));\n const auxSpace = { ...space };\n auxSpace.space_width = width ? \"wide\" : \"narrow\";\n auxSpace.present_as = `${visualType}`;\n auxSpace.resource_editing = `${resourceEditing ? \"closed\" : \"open\"}`;\n\n auxSpace.settings = {\n ...auxSpace.settings,\n ...auxSettings,\n };\n\n window.$spaceWideWidth = width;\n dispatch(setSpace(auxSpace));\n }\n },\n (data) => {}\n );\n\n props.onSave({\n visualType,\n authors,\n listChildVersion,\n listActionText,\n listTemplateId,\n listLinkAction,\n listShowPreviewText,\n listShowThumbnail,\n listShowComments,\n listShowMembers,\n listShowTimestamp,\n listAutoThumbnail,\n listPrivacyControl,\n resourceEditing,\n listFilterBy,\n listFlatView,\n listOpenInModal,\n listAllowLikes,\n width,\n });\n };\n\n const onCreateNewTemplate = () => {\n SpaceModel.onCreate(\n {\n version: \"content\",\n intention: newTemplateName,\n join_on_create: true,\n privacy_level: \"private\",\n pod_state: \"model\",\n },\n null,\n (data) => {\n const auxTemplates = [...templates];\n auxTemplates.unshift({ label: data.name, value: data.slug });\n setTemplates(auxTemplates);\n setListTemplateId(data.slug);\n onEditTemplate(data.slug);\n },\n (data) => {}\n );\n };\n\n const onEditTemplate = (slug) => {\n window.open(`/space/${slug}/content`, \"_blank\");\n // navigate(`/space/${slug}/content`)\n };\n\n const onFetchTemplates = () => {\n SpaceModel.onFetchModels(\n (data) => {\n const array = [];\n array.push({\n label: t(\"spaces.presentations.settings.createNewTemplate\"),\n value: \"create\",\n });\n for (let i = 0; i < data.length; i++) {\n const element = data[i];\n array.push({ label: element.name, value: element.slug });\n }\n setTemplates(array);\n },\n (data) => {}\n );\n };\n\n const SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n );\n\n const onTag = (res) => {\n props.onFetchTags();\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.presentations.settings.title\")}\n {savingLoader && }\n \n }\n styles={{\n header: {\n paddingTop: 20,\n paddingLeft: 20,\n paddingRight: 20,\n },\n }}\n size={\"400px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n \n \n \n \n\n {props.parentVersion == \"list\" && (\n \n )}\n \n {(props.parentVersion == \"list\" ||\n (props.parentVersion == \"events\" && visualType == \"grid\")) && (\n \n \n \n setResourceEditing(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.onlyManagers\"\n )}\n />\n \n \n \n setAuthors(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showAuthor\"\n )}\n />\n \n \n \n setListShowPreviewText(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showPreview\"\n )}\n />\n \n \n \n setListShowComments(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showComments\"\n )}\n />\n \n \n \n setListShowMembers(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showMembers\"\n )}\n />\n \n \n \n setListShowTimestamp(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showTimestamp\"\n )}\n />\n \n \n \n setListAllowLikes(event.currentTarget.checked)\n }\n label=\"Show heart button\"\n />\n \n \n \n setListShowThumbnail(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showThumbnail\"\n )}\n />\n \n {listShowThumbnail && (\n \n \n setListAutoThumbnail(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.autoThumbnail\"\n )}\n />\n \n )}\n\n \n \n setListFlatView(!event.currentTarget.checked)\n }\n label={`Display as cards`}\n />\n \n\n \n \n setWidth(event.currentTarget.checked)\n }\n label=\"Wide page width\"\n />\n \n\n \n \n setListOpenInModal(event.currentTarget.checked)\n }\n label=\"Open posts in side panel\"\n />\n \n \n )}\n\n \n \n {listChildVersion == \"template\" && (\n <>\n {templates.length > 0 && (\n \n )}\n {!listTemplateId || listTemplateId == \"create\" ? (\n <>\n \n setNewTemplateName(event.currentTarget.value)\n }\n placeholder={t(\n \"spaces.presentations.settings.accordion3.templateName.placeholder\"\n )}\n label={t(\n \"spaces.presentations.settings.accordion3.templateName.label\"\n )}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n onCreateNewTemplate()}\n disabled={!newTemplateName}\n >\n {t(\"spaces.presentations.settings.createNewTemplate\")}\n \n \n ) : (\n \n )}\n \n \n \n )}\n \n\n \n \n setListActionText(event.currentTarget.value)\n }\n placeholder={t(\n \"spaces.presentations.settings.accordion4.createPost.label\"\n )}\n description={t(\n \"spaces.presentations.settings.accordion4.createPost.description\"\n )}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n\n \n \n \n \n \n \n \n \n );\n};\n\nexport default Settings;\n","import React, { useState } from \"react\";\n\n\n\nimport {\n Drawer,\n Stack,\n\n Center,\n Text,\n Progress,\n\n ScrollArea,\n Box,\n} from \"@mantine/core\";\n\nimport Uploader from \"../../../tiptap/components/Uploader\";\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst Thumbnail = (props) => {\n const { t, i18n } = useTranslation();\n const [mediaType, setMediaType] = useState(\"image\");\n const [loading, setLoading] = useState(0);\n\n const onSave = (file) => {\n \n setLoading(0);\n SpaceModel.onUploadThumbnail(\n props.spaceId,\n file,\n (data) => {\n setTimeout(() => {\n props.onSave(props.spaceId, data.url);\n props.setOpened(false);\n setLoading(0);\n }, 1000);\n },\n (progress) => {\n setLoading(progress);\n },\n (data) => {\n setLoading(0);\n }\n );\n };\n\n return (\n props.setOpened(false)}\n title={{t(\"spaces.presentations.thumbnail.title\")}}\n padding=\"xl\"\n size={\"400px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n {!loading ? (\n \n ) : (\n \n
\n \n
\n
\n {t(\"spaces.presentations.thumbnail.message\")}\n
\n
\n )}\n
\n
\n \n );\n};\n\nexport default Thumbnail;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setActions } from \"../../../../store/app\";\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport {\n Stack,\n Box,\n ScrollArea,\n createStyles,\n Container,\n Button,\n Text,\n Group,\n MantineProvider,\n Tooltip,\n ActionIcon,\n SimpleGrid,\n Center,\n Loader,\n Chips,\n Chip,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport ViewModel from \"../../../../models/View\";\nimport TagModel from \"../../../../models/SpaceTag\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\nimport SpaceListItem from \"../List\";\n\nimport NewSpace from \"./NewSpace\";\nimport Settings from \"./Settings\";\nimport Thumbnail from \"./Thumbnail\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport tinycolor from \"tinycolor2\";\nimport TiptapChannel from \"../../../tiptap/components/TiptapChannel\";\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst paginator = {\n per: 15,\n page: 1,\n};\n\nconst scrollTimeoutIds = [];\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n filterButtonActive: {\n border: `2px solid ${colors.primary_button_background_color}`,\n color: colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString(),\n },\n },\n filterButtonPassive: {\n border: `1px solid ${tinycolor(colors.default_text_color).toString()}`,\n color: tinycolor(colors.default_text_color).toString(),\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString(),\n },\n },\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n },\n settingsButtonStyle: {\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nexport default function Events(props) {\n const params = useParams();\n const { t, i18n } = useTranslation();\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n const [filter, setFilter] = useState([\"upcoming\", \"ASC\"]);\n const [filteredSpaces, setFilterSpaces] = useState([]);\n const [settingsOpened, setSettingsOpened] = useState(false);\n const [thumbnailOpened, setThumbnailOpened] = useState(false);\n\n const [settings, setSettings] = useState({});\n const [content, setContent] = useState({});\n\n const [loadingMore, setLoadingMore] = useState(false);\n\n const [tags, setTags] = useState(null);\n const [tagsList, setTagsList] = useState([]);\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const mainActions = useSelector((state) => state.mainActions);\n const { classes, cx, theme } = useStyles({ colors });\n\n const user = useSelector((state) => state.user);\n\n const viewport = useRef();\n const selectedSpace = useRef(null);\n const spacesArray = useRef([]);\n const reload = useRef(false);\n const contentEmpty = useRef(true);\n const noMore = useRef(false);\n const lastSlug = useRef();\n const tagFiltering = useRef();\n const tagTimeout = useRef();\n const tagsTimeout = useRef();\n const ctrlTags = useRef();\n\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(setActions({ editPage: false }));\n return () => {\n paginator.page = 1;\n setSpaces([]);\n spacesArray.current = [];\n setContent({});\n };\n }, []);\n\n useEffect(() => {\n if (params.slug) {\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoading(true);\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpacesIDB();\n onFetchView();\n onFetchTags();\n }\n }\n }, [params]);\n\n useEffect(() => {\n if (props.hideLayout) {\n props.hideLayout();\n setTimeout(() => {\n props.hideLayout();\n }, 500);\n }\n\n if (space && space.slug) {\n setSettings({\n openPost: space.resource_editing == \"open\",\n visualType: space.present_as,\n authors: space.settings.list_show_author,\n listChildVersion: space.settings.list_child_version,\n listActionText: space.settings.list_action_text,\n listTemplateId: space.settings.list_template_id,\n listLinkAction: space.settings.list_link_action,\n listShowPreviewText: space.settings.list_show_preview_text,\n listShowThumbnail: space.settings.list_show_thumbnail,\n listShowComments: space.settings.list_show_comments_count,\n listShowMembers: space.settings.list_show_members,\n listShowTimestamp: space.settings.list_show_timestamp,\n listAutoThumbnail: space.settings.list_auto_thumbnail,\n listPrivacyControl: space.settings.list_privacy_control,\n listFilterBy: space.settings.list_filter_by,\n listFlatView: space.settings.list_flat_view,\n spaceWidth: space.settings.space_width,\n listAllowLikes: space.settings.list_allow_likes,\n });\n }\n }, [props]);\n\n useEffect(() => {\n if (reload.current == true) {\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n }\n }, [settings]);\n\n useEffect(() => {\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n }, [filter]);\n\n useEffect(() => {\n if (!tags) {\n return;\n }\n const tagsFilter = tags.length > 0 ? `tags=${JSON.stringify(tags)}` : \"\";\n if (tagTimeout.current) {\n clearTimeout(tagTimeout.current);\n }\n\n tagTimeout.current = setTimeout(() => {\n tagFiltering.current = true;\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpaces(ctrl, false, [], tagsFilter);\n }, 800);\n }, [tags]);\n\n useEffect(() => {\n if (spaces.length > 0) {\n\n const auxSpaces = spaces.sort((a, b) => {\n const itemDayA = new Date(a.calendar.raw_start_date).getDate();\n const itemDayB = new Date(b.calendar.raw_start_date).getDate();\n return itemDayA - itemDayB;\n });\n\n const firstSpace = auxSpaces[0];\n const lastSpace = auxSpaces[spaces.length - 1];\n\n const currentDate = new Date(firstSpace.calendar.raw_event_date);\n const pastDate = new Date(lastSpace.calendar.raw_end_date);\n \n const currentYear = new Date().getFullYear();\n const months = [];\n if (filter[0] == \"past\") {\n for (let d = currentDate; d >= pastDate; d.setMonth(d.getMonth() - 1)) {\n const year = d.getFullYear();\n const month = d.getMonth();\n const monthName = new Date(0, month).toLocaleString(\"default\", {\n month: \"long\",\n });\n\n const data = {\n name: currentYear != year ? `${monthName} / ${year}` : monthName,\n spaces: [],\n };\n\n data.spaces = spaces.filter((space) => {\n const itemYear = new Date(\n space.calendar.raw_event_date\n ).getFullYear();\n const itemMonth = new Date(\n space.calendar.raw_event_date\n ).getMonth();\n return itemYear === year && itemMonth === month;\n });\n data.spaces = data.spaces.sort((a, b) => {\n const itemDayA = new Date(a.calendar.raw_start_date).getDate();\n const itemDayB = new Date(b.calendar.raw_start_date).getDate();\n return itemDayB - itemDayA;\n });\n\n months.push(data);\n }\n } else {\n for (let d = currentDate; d <= pastDate; d.setMonth(d.getMonth() + 1)) {\n const year = d.getFullYear();\n const month = d.getMonth();\n const monthName = new Date(0, month).toLocaleString(\"default\", {\n month: \"long\",\n });\n\n const data = {\n name: currentYear != year ? `${monthName} / ${year}` : monthName,\n spaces: [],\n };\n\n data.spaces = spaces.filter((space) => {\n const itemYear = new Date(\n space.calendar.raw_event_date\n ).getFullYear();\n const itemMonth = new Date(\n space.calendar.raw_event_date\n ).getMonth();\n return itemYear === year && itemMonth === month;\n });\n data.spaces = data.spaces.sort((a, b) => {\n const itemDayA = new Date(a.calendar.raw_start_date).getDate();\n const itemDayB = new Date(b.calendar.raw_start_date).getDate();\n return itemDayA - itemDayB;\n });\n\n months.push(data);\n }\n }\n setFilterSpaces(months);\n } else {\n setFilterSpaces([]);\n }\n }, [spaces]);\n\n useEffect(() => {\n console.log(filteredSpaces);\n }, [filteredSpaces]);\n\n const newDataFromApi = (arr1, arr2) => {\n // Check if lengths are different\n if (arr1.length !== arr2.length) {\n return true;\n }\n\n // Compare elements\n for (let i = 0; i < arr1.length; i++) {\n if (\n arr1[i].slug !== arr2[i].slug ||\n arr1[i].name !== arr2[i].name ||\n arr1[i].abstract !== arr2[i].abstract ||\n arr1[i].comments_count !== arr2[i].comments_count ||\n arr1[i].likes_count !== arr2[i].likes_count ||\n JSON.stringify(arr1[i].tagged_with) !=\n JSON.stringify(arr2[i].tagged_with) ||\n arr1[i].activity != arr2[i].activity\n ) {\n return true;\n }\n }\n\n for (let i = 0; i < arr2.length; i++) {\n if (\n arr1[i].slug !== arr2[i].slug ||\n arr1[i].name !== arr2[i].name ||\n arr1[i].abstract !== arr2[i].abstract ||\n arr1[i].comments_count !== arr2[i].comments_count ||\n arr1[i].likes_count !== arr2[i].likes_count ||\n JSON.stringify(arr1[i].tagged_with) !=\n JSON.stringify(arr2[i].tagged_with) ||\n arr1[i].activity != arr2[i].activity\n ) {\n return true;\n }\n }\n\n // If all elements are equal, return true\n return false;\n };\n\n const fetchSpacesIDB = () => {\n getJSON(`spaces`, `events_children_${params.slug}`, (data) => {\n const ctrl = new AbortController();\n if (data && data.length) {\n const oldData = [...data];\n setSpaces(oldData);\n spacesArray.current = [...data];\n onFinishedLoading();\n fetchSpaces(ctrl, true, oldData);\n } else {\n fetchSpaces(ctrl);\n }\n });\n };\n\n const fetchSpaces = (ctrl, check = false, oldData = [], tagsFilter = \"\") => {\n if (loading) {\n return;\n }\n if (paginator.page == 1) {\n } else {\n if ((!tagsFilter && noMore.current) || loadingMore) {\n return;\n }\n setLoadingMore(true);\n\n setTimeout(() => {\n setLoadingMore(false);\n }, 1500);\n\n // scrollToBottom();\n }\n\n SpaceModel.onFetchDirectChildren(\n params.slug,\n [`order=pod_settings.start_date ${filter[1]}`, tagsFilter],\n paginator,\n [\"active\", filter[0]],\n (data) => {\n if (data.page == 1) {\n const newData = [...data.data];\n if (!tagsFilter) {\n storeJSON(\"spaces\", `list_children_${params.slug}`, newData);\n if (!check || (check && newDataFromApi(newData, oldData))) {\n spacesArray.current = [...newData];\n setSpaces(data.data);\n }\n paginator.page = 2;\n onFinishedLoading();\n } else {\n spacesArray.current = [...newData];\n setSpaces(newData);\n paginator.page = 2;\n onFinishedLoading(false);\n }\n } else {\n if (data.data.length > 0) {\n spacesArray.current = spacesArray.current.concat(data.data);\n setSpaces(spacesArray.current.concat(data.data));\n paginator.page = data.page + 1;\n } else {\n noMore.current = true;\n setTimeout(() => {\n noMore.current = false;\n }, 3000);\n }\n onFinishedLoading(tagsFilter == \"\");\n }\n },\n (data) => {\n onFinishedLoading();\n },\n ctrl.signal\n );\n };\n\n const onFinishedLoading = (loadmore = true) => {\n // if (loading) {\n setTimeout(() => {\n setLoading(false);\n setTimeout(() => {\n if ((paginator.page == 2 || paginator.page == 3) && loadmore) {\n // onScrollBottom();\n }\n }, 300);\n }, 300);\n // }\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 200) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n }\n };\n\n const onThumbnailSave = (spaceId, url) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count\n ? auxSpaces[i].update_count + 1\n : 1;\n auxSpaces[i].gallery_feature = { url: url };\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onRemoveThumbnail = (spaceId) => {\n SpaceModel.onRemoveThumbnail(\n spaceId,\n (data) => {\n setTimeout(() => {\n onSave(spaceId);\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const onSettingsSave = (_settings) => {\n reload.current = settings.listFilterBy != _settings.listFilterBy;\n onFetchView();\n if (settings.spaceWidth != _settings.spaceWidth) {\n }\n setSettings(_settings);\n };\n\n const onSetSettingsOpened = (event, value) => {\n event.preventDefault();\n event.stopPropagation();\n setSettingsOpened(value);\n };\n\n const onListActionTextChanged = (text) => {\n setListActionText(text);\n };\n\n const onListTemplateIdChanged = (id) => {\n setListTemplateId(id);\n };\n\n const onSave = (spaceId, spaceLink, spaceName = null) => {\n // paginator.page = 1;\n // const ctrl = new AbortController();\n // fetchSpaces(ctrl);\n setNewSpaceOpened(false);\n\n SpaceModel.onFetchSimple(\n spaceId,\n \"simple\",\n (data) => {\n navigate(`/space/${data.slug}/${data.version}`);\n return;\n // const auxSpaces = [...spacesArray.current];\n // for (let i = 0; i < auxSpaces.length; i++) {\n // if (auxSpaces[i].slug == spaceId) {\n // auxSpaces[i] = { ...data };\n // auxSpaces[i].update_count = auxSpaces[i].update_count\n // ? auxSpaces[i].update_count + 1\n // : 1;\n // setSpaces([]);\n // setTimeout(() => {\n // setSpaces(auxSpaces);\n // spacesArray.current = [...auxSpaces];\n // }, 100);\n // return;\n // }\n // }\n // auxSpaces.push({ ...data });\n\n // setSpaces([]);\n // setTimeout(() => {\n // setSpaces(auxSpaces);\n // spacesArray.current = [...auxSpaces];\n // }, 100);\n },\n (data) => {}\n );\n };\n\n const onUpdate = (spaceId, action) => {\n const auxSpaces = [...spacesArray.current];\n\n if (action == \"pin\" || action == \"unpin\") {\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.id == spaceId) {\n if (action == \"pin\") {\n space.is_pinned.is_pinned = true;\n space.is_pinned.date = new Date();\n } else {\n space.is_pinned.is_pinned = false;\n }\n space.update_count = space.update_count ? space.update_count + 1 : 1;\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"delete\") {\n const auxSpaces = [...spaces];\n console.log(`AUX SPACES: ${auxSpaces.length}`);\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.id == spaceId) {\n console.log(`AUX SPACES: ${i}`);\n auxSpaces.splice(i, 1);\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"thumbnail-upload\") {\n selectedSpace.current = spaceId;\n setThumbnailOpened(true);\n } else if (action == \"thumbnail-delete\") {\n selectedSpace.current = spaceId;\n onRemoveThumbnail(spaceId);\n }\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n return;\n }\n SpaceModel.onJoin(\n params.slug,\n (data) => {\n navigate(`${data.redirect_to}?refresh=true`);\n },\n (data) => {}\n );\n };\n\n const onFetchTags = () => {\n if (tagsTimeout.current) {\n clearTimeout(tagsTimeout.current);\n }\n tagsTimeout.current = setTimeout(() => {\n TagModel.onFetch(\n props.spaceId,\n (data) => {\n setTagsList([...data]);\n },\n (data) => {}\n );\n }, 2000);\n };\n\n const onFetchView = () => {\n ViewModel.onFetch(\n \"description_view\",\n params.slug,\n (data) => {\n contentEmpty.current = data.is_empty;\n window.$spaceWideWidth = data.view_width;\n setContent({ ...data.content });\n },\n (data) => {\n setContent({});\n }\n );\n };\n\n const onContentUpdate = (_content, html) => {\n ViewModel.onUpdate(\n \"description_view\",\n params.slug,\n _content,\n (data) => {\n contentEmpty.current = data.is_empty;\n setContent({ ..._content });\n },\n (data) => {}\n );\n };\n\n const capitalize = (str) => {\n return str.replace(/^(.)(.*)$/, function (_, firstChar, restOfString) {\n return firstChar.toUpperCase() + restOfString;\n });\n };\n\n if (loading) {\n return ;\n }\n\n return (\n \n \n \n \n\n {mainActions.editPage && (\n \n \n \n \n \n )}\n {!mainActions.editPage && content && !contentEmpty.current && (\n \n \n \n \n \n )}\n\n \n \n \n \n setFilter([\"upcoming\", \"ASC\"])}\n >\n {t(\"spaces.presentations.events.upcomingButton\")}\n \n setFilter([\"past\", \"DESC\"])}\n >\n {t(\"spaces.presentations.events.pastButton\")}\n \n \n \n {(settings.openPost ||\n (space.slug && space.permissions.can_manage)) && (\n \n {space.slug && space.permissions.can_edit ? (\n \n }\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n onClick={() => setNewSpaceOpened(true)}\n >\n {settings.listActionText ||\n t(\"spaces.presentations.events.addEvent\")}\n \n ) : (\n \n }\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n onClick={() => onJoin()}\n >\n {settings.listActionText ||\n t(\"spaces.presentations.events.addEvent\")}\n \n )}\n {space && space.permissions && space.permissions.can_manage && (\n \n onSetSettingsOpened(event, true)}\n >\n \n \n \n )}\n \n )}\n \n \n\n \n {tagsList && tagsList.length > 0 && (\n \n \n \n \n {tagsList.map((tag) => {\n return {tag.name};\n })}\n \n \n \n \n )}\n \n\n \n {filteredSpaces.map((month) => {\n return (\n <>\n {month.spaces.length > 0 && (\n \n \n {capitalize(month.name)}\n \n {settings.visualType == \"list\" &&\n month.spaces.map((space) => {\n return (\n space.can_view && (\n ({\n margin: \"15px 0px\",\n })}\n >\n \n \n )\n );\n })}\n {settings.visualType == \"grid\" && (\n \n {month.spaces.map((space) => {\n return (\n space.can_view && (\n ({\n margin: \"0px 0px\",\n })}\n >\n \n \n )\n );\n })}\n \n )}\n \n )}\n \n );\n })}\n \n {loadingMore && (\n
\n \n
\n )}\n \n {space && space.permissions && space.permissions.can_manage && (\n \n )}\n \n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setActions } from \"../../../../store/app\";\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport {\n Stack,\n Box,\n ScrollArea,\n createStyles,\n Container,\n SimpleGrid,\n Drawer,\n Paper,\n Avatar,\n Group,\n Text,\n ActionIcon,\n Tooltip,\n Loader,\n Center,\n Chips,\n Chip,\n} from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport TagModel from \"../../../../models/SpaceTag\";\nimport ViewModel from \"../../../../models/View\";\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\nimport SpaceListItem from \"../List\";\n\nimport NewSpace from \"./NewSpace\";\nimport Settings from \"./Settings\";\nimport Thumbnail from \"./Thumbnail\";\nimport DuplicateForm from \"../../form/DuplicateForm\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport TiptapChannel from \"../../../tiptap/components/TiptapChannel\";\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst paginator = {\n per: 15,\n page: 1,\n};\n\nconst scrollTimeoutIds = [];\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n // backgroundColor: colors.sidebar_background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n chipStyle: {\n color: colors.default_text_color,\n backgroundColor: colors.background_color,\n height: \"auto\",\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(40).toString()\n : tinycolor(colors.background_color).darken(40).toString()\n }`\n : `1px solid #ced4da`,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? `${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(5).toString()\n : tinycolor(colors.background_color).darken(5).toString()\n }`\n : `#e9ecef`,\n },\n },\n },\n separator: {\n borderBottom: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n },\n}));\n\nexport default function List(props) {\n const params = useParams();\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const mainActions = useSelector((state) => state.mainActions);\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n const [settingsOpened, setSettingsOpened] = useState(false);\n const [thumbnailOpened, setThumbnailOpened] = useState(false);\n const [openedDuplicate, setOpenedDuplicate] = useState(false);\n\n const [settings, setSettings] = useState({});\n const [content, setContent] = useState({});\n const [loadingMore, setLoadingMore] = useState(false);\n const [tags, setTags] = useState(null);\n const [tagsList, setTagsList] = useState([]);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const user = useSelector((state) => state.user);\n\n const viewport = useRef();\n const selectedSpace = useRef(null);\n const spacesArray = useRef([]);\n const reload = useRef(false);\n const contentEmpty = useRef(true);\n const noMore = useRef(false);\n const lastSlug = useRef();\n const tagFiltering = useRef();\n const tagTimeout = useRef();\n const tagsTimeout = useRef();\n const ctrlTags = useRef();\n\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(setActions({ editPage: false }));\n setLoading(true);\n return () => {\n paginator.page = 1;\n setSpaces([]);\n spacesArray.current = [];\n setContent({});\n };\n }, []);\n\n useEffect(() => {\n if (params.slug) {\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpacesIDB();\n onFetchView();\n onFetchTags();\n }\n }\n }, [params]);\n\n useEffect(() => {\n if (props.hideLayout) {\n props.hideLayout();\n setTimeout(() => {\n props.hideLayout();\n }, 500);\n }\n\n if (space && space.slug) {\n setSettings({\n openPost: space.resource_editing == \"open\",\n visualType: space.present_as,\n authors: space.settings.list_show_author,\n listChildVersion: space.settings.list_child_version,\n listActionText: space.settings.list_action_text,\n listTemplateId: space.settings.list_template_id,\n listLinkAction: space.settings.list_link_action,\n listShowPreviewText: space.settings.list_show_preview_text,\n listShowThumbnail: space.settings.list_show_thumbnail,\n listShowComments: space.settings.list_show_comments_count,\n listShowMembers: space.settings.list_show_members,\n listShowTimestamp: space.settings.list_show_timestamp,\n listAutoThumbnail: space.settings.list_auto_thumbnail,\n listPrivacyControl: space.settings.list_privacy_control,\n listFilterBy: space.settings.list_filter_by,\n listFlatView: space.settings.list_flat_view,\n listAllowLikes: space.settings.list_allow_likes,\n spaceWidth: space.settings.space_width,\n listTitleLineClamp: space.settings.list_title_line_clamp,\n listAbstractLineClamp: space.settings.list_abstract_line_clamp\n });\n }\n }, [space]);\n\n useEffect(() => {\n onFinishedLoading();\n }, [spaces]);\n\n useEffect(() => {\n if (reload.current == true) {\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n }\n }, [settings]);\n\n useEffect(() => {\n if (!tags){\n return\n }\n const tagsFilter = tags.length > 0 ? `tags=${JSON.stringify(tags)}` : \"\";\n \n if (tagTimeout.current) {\n clearTimeout(tagTimeout.current);\n }\n\n tagTimeout.current = setTimeout(() => {\n tagFiltering.current = true;\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpaces(ctrl, false, [], tagsFilter);\n }, 800);\n }, [tags]);\n\n const newDataFromApi = (arr1, arr2) => {\n // Check if lengths are different\n if (arr1.length !== arr2.length) {\n return true;\n }\n\n // Compare elements\n for (let i = 0; i < arr1.length; i++) {\n if (\n arr1[i].slug !== arr2[i].slug ||\n arr1[i].name !== arr2[i].name ||\n arr1[i].abstract !== arr2[i].abstract ||\n arr1[i].comments_count !== arr2[i].comments_count ||\n arr1[i].likes_count !== arr2[i].likes_count ||\n JSON.stringify(arr1[i].tagged_with) !=\n JSON.stringify(arr2[i].tagged_with) ||\n arr1[i].activity != arr2[i].activity\n ) {\n return true;\n }\n }\n\n for (let i = 0; i < arr2.length; i++) {\n if (\n arr1[i].slug !== arr2[i].slug ||\n arr1[i].name !== arr2[i].name ||\n arr1[i].abstract !== arr2[i].abstract ||\n arr1[i].comments_count !== arr2[i].comments_count ||\n arr1[i].likes_count !== arr2[i].likes_count ||\n JSON.stringify(arr1[i].tagged_with) !=\n JSON.stringify(arr2[i].tagged_with) ||\n arr1[i].activity != arr2[i].activity\n ) {\n return true;\n }\n }\n\n // If all elements are equal, return true\n return false;\n };\n\n const fetchSpacesIDB = () => {\n setLoading(true);\n\n getJSON(`spaces`, `list_children_${params.slug}`, (data) => {\n const ctrl = new AbortController();\n if (data && data.length) {\n const oldData = [...data];\n setSpaces(oldData);\n spacesArray.current = [...data];\n\n fetchSpaces(ctrl, true, oldData);\n } else {\n fetchSpaces(ctrl);\n }\n });\n };\n\n const fetchSpaces = (ctrl, check = false, oldData = [], tagsFilter = \"\") => {\n if (paginator.page == 1 && !tagFiltering.current) {\n setLoading(true);\n } else {\n if ((!tagsFilter && noMore.current) || loadingMore) {\n return;\n }\n setLoadingMore(true);\n\n setTimeout(() => {\n setLoadingMore(false);\n }, 1500);\n\n // scrollToBottom();\n }\n tagFiltering.current = false;\n\n SpaceModel.onFetchDirectChildren(\n params.slug,\n [settings.listFilterBy, \"abstract\", tagsFilter],\n paginator,\n [\"active\"],\n (data) => {\n if (data.page == 1) {\n const newData = [...data.data];\n if (!tagsFilter) {\n storeJSON(\"spaces\", `list_children_${params.slug}`, newData);\n if (!check || (check && newDataFromApi(newData, oldData))) {\n spacesArray.current = [...newData];\n setSpaces(newData);\n }\n paginator.page = 2;\n onFinishedLoading();\n } else {\n spacesArray.current = [...newData];\n setSpaces(newData);\n paginator.page = 2;\n onFinishedLoading(false);\n }\n } else {\n if (data.data.length > 0) {\n spacesArray.current = spacesArray.current.concat(data.data);\n setSpaces([...spacesArray.current]);\n paginator.page = data.page + 1;\n } else {\n \n noMore.current = true;\n setTimeout(() => {\n noMore.current = false;\n }, 3000);\n }\n onFinishedLoading(tagsFilter == \"\");\n }\n },\n (data) => {\n onFinishedLoading();\n },\n ctrl.signal\n );\n };\n\n const onFinishedLoading = (loadmore=true) => {\n // if (loading) {\n setTimeout(() => {\n setLoading(false);\n setTimeout(() => {\n if ((paginator.page == 2 || paginator.page == 3) && loadmore) {\n // onScrollBottom();\n }\n }, 300);\n }, 300);\n // }\n };\n\n const scrollToBottom = () => {\n // setIsFirstLoad(false);\n if (viewport.current) {\n // viewport.current.style.scrollBehavior = \"auto\";\n }\n setTimeout(() => {\n if (viewport.current) {\n const top = viewport.current.scrollHeight + 2000;\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n // viewport.current.style.scrollBehavior = \"smooth\";\n }\n }, 500);\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 200) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n }\n };\n\n const onThumbnailSave = (spaceId, url) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count\n ? auxSpaces[i].update_count + 1\n : 1;\n auxSpaces[i].gallery_feature = { url: url };\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onSave = (spaceId, spaceLink, spaceName = null) => {\n SpaceModel.onFetchSimple(\n spaceId,\n \"simple\",\n (data) => {\n const auxSpaces = [...spacesArray.current];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i] = { ...data };\n auxSpaces[i].update_count = auxSpaces[i].update_count\n ? auxSpaces[i].update_count + 1\n : 1;\n setSpaces([]);\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n return;\n }\n }\n auxSpaces.unshift({ ...data });\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n },\n (data) => {}\n );\n };\n\n const onUpdate = (spaceId, action) => {\n const auxSpaces = [...spacesArray.current];\n\n if (action == \"pin\" || action == \"unpin\") {\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.id == spaceId) {\n if (action == \"pin\") {\n space.is_pinned.is_pinned = true;\n space.is_pinned.date = new Date();\n } else {\n space.is_pinned.is_pinned = false;\n }\n space.update_count = space.update_count ? space.update_count + 1 : 1;\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"delete\") {\n const auxSpaces = [...spaces];\n console.log(`AUX SPACES: ${auxSpaces.length}`);\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.id == spaceId) {\n console.log(`AUX SPACES: ${i}`);\n auxSpaces.splice(i, 1);\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"thumbnail-upload\") {\n selectedSpace.current = spaceId;\n setThumbnailOpened(true);\n } else if (action == \"thumbnail-delete\") {\n selectedSpace.current = spaceId;\n onRemoveThumbnail(spaceId);\n }\n };\n\n const onRemoveThumbnail = (spaceId) => {\n SpaceModel.onRemoveThumbnail(\n spaceId,\n (data) => {\n setTimeout(() => {\n onSave(spaceId);\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const onSettingsSave = (_settings) => {\n reload.current =\n settings.listFilterBy != _settings.listFilterBy ||\n settings.listOpenInModal != _settings.listOpenInModal;\n\n onFetchView();\n if (settings.spaceWidth != _settings.spaceWidth) {\n }\n\n setSettings(_settings);\n };\n\n const onSetSettingsOpened = (event, value) => {\n event.preventDefault();\n event.stopPropagation();\n setSettingsOpened(value);\n };\n\n const onListActionTextChanged = (text) => {\n setListActionText(text);\n };\n\n const onListTemplateIdChanged = (id) => {\n setListTemplateId(id);\n };\n\n const pinned = () => {\n return spaces\n .filter((space) => space.is_pinned.is_pinned == true)\n .sort((a, b) => new Date(a.is_pinned.date) - new Date(b.is_pinned.date));\n };\n\n const unpinned = () => {\n return spaces.filter((space) => space.is_pinned.is_pinned == false);\n };\n\n const onFetchView = () => {\n ViewModel.onFetch(\n \"description_view\",\n params.slug,\n (data) => {\n contentEmpty.current = data.is_empty;\n console.log(\"window.$spaceWideWidth 1\");\n window.$spaceWideWidth = data.view_width;\n setContent({ ...data.content });\n },\n (data) => {\n setContent({});\n }\n );\n };\n\n const onContentUpdate = (_content, html) => {\n ViewModel.onUpdate(\n \"description_view\",\n params.slug,\n _content,\n (data) => {\n contentEmpty.current = data.is_empty;\n setContent({ ..._content });\n },\n (data) => {}\n );\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n return;\n }\n SpaceModel.onJoin(\n params.slug,\n (data) => {\n navigate(`${data.redirect_to}?refresh=true`);\n },\n (data) => {}\n );\n };\n\n const onFetchTags = () => {\n if (tagsTimeout.current) {\n clearTimeout(tagsTimeout.current);\n }\n tagsTimeout.current = setTimeout(() => {\n TagModel.onFetch(\n props.spaceId,\n (data) => {\n setTagsList([...data]);\n },\n (data) => {}\n );\n }, 2000);\n };\n\n const onNewPost = () => {\n if (space.slug && space.permissions.can_edit) {\n setNewSpaceOpened(true);\n } else {\n onJoin();\n }\n };\n\n const onOpenedDuplicate = (spaceId, spaceName) => {\n selectedSpace.current = { slug: spaceId, name: spaceName };\n setOpenedDuplicate(true);\n };\n\n const onDuplicate = (id, link) => {\n setOpenedDuplicate(false);\n onSave(id);\n };\n\n if (loading) {\n return ;\n }\n\n return (\n \n \n \n \n {mainActions.editPage && (\n \n \n \n \n \n )}\n {!mainActions.editPage && content && !contentEmpty.current && (\n \n \n \n \n \n )}\n {(settings.openPost ||\n (space.slug &&\n space.permissions &&\n space.permissions.can_manage)) && (\n \n onNewPost()}\n shadow=\"sm\"\n radius=\"md\"\n // withBorder\n pl={20}\n pr={25}\n pt={20}\n pb={20}\n sx={{\n cursor: \"pointer\",\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color)\n .lighten(20)\n .toString()\n : tinycolor(colors.background_color)\n .darken(20)\n .toString()\n }`\n : `1px solid #e9ecef`,\n }}\n >\n \n \n \n \n \n {settings.listActionText\n ? settings.listActionText\n : t(\"spaces.presentations.list.createButton\")}\n \n \n {space &&\n space.permissions &&\n space.permissions.can_manage && (\n \n onSetSettingsOpened(event, true)}\n >\n \n \n \n )}\n \n \n \n \n )}\n\n \n {tagsList && tagsList.length > 0 && (\n \n \n \n \n {tagsList.map((tag) => {\n return {tag.name};\n })}\n \n \n \n \n )}\n \n\n {settings.visualType == \"list\" && (\n \n {pinned().map((space) => {\n return (\n space.can_view && (\n ({\n margin: settings.listFlatView ? \"0px\" : \"15px 0px\",\n })}\n >\n \n {settings.listFlatView && (\n \n )}\n \n )\n );\n })}\n {unpinned().map((space) => {\n return (\n space.can_view && (\n ({\n margin: settings.listFlatView ? \"0px\" : \"15px 0px\",\n })}\n >\n \n {settings.listFlatView && (\n \n )}\n \n )\n );\n })}\n \n )}\n {settings.visualType == \"grid\" && (\n \n \n {pinned().map((space) => {\n return (\n space.can_view && (\n ({\n margin: \"0px 0px\",\n })}\n >\n \n \n )\n );\n })}\n {unpinned().map((space) => {\n return (\n space.can_view && (\n ({\n margin: \"0px 0px\",\n })}\n >\n \n \n )\n );\n })}\n \n \n )}\n {loadingMore && (\n
\n \n
\n )}\n \n setOpenedDuplicate(false)}\n title={\n \n {t(\"spaces.presentations.list.duplicateFormTitle\")}\n \n }\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n\n {space && space.permissions && space.permissions.can_manage && (\n \n )}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Group,\n Button,\n Tooltip,\n Box,\n Paper,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport DirectMessageModel from \"../../../models/DirectMessage\";\n\nimport Avatar from \"../../utils/LazyAvatar\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n drawer: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n buttonStyle: {\n backgroundColor: \"none\",\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function RegisteredRow(props) {\n const { t, i18n } = useTranslation();\n const [emailCopiedToClipboard, setEmailCopiedToClipboard] = useState(false);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors, props });\n\n const dispatch = useDispatch();\n\n const [member, setMember] = useState({});\n const [role, setRole] = useState(null);\n\n useEffect(() => {\n if (\n !member.id ||\n member.id != props.member.id ||\n member.status == \"deleted\" ||\n (member.status != \"active\" && props.member.status == \"active\")\n ) {\n setMember(props.member);\n setRole(props.member.is_manager ? \"Manager\" : \"Member\");\n }\n }, [props]);\n\n useEffect(() => {\n if (\n role &&\n ((member.is_manager == true && role == \"Member\") ||\n (member.is_manager == false && role == \"Manager\"))\n ) {\n onSelectedRole(role);\n }\n }, [role]);\n\n const onDirectMessage = (event) => {\n event.preventDefault();\n event.stopPropagation();\n DirectMessageModel.onFetchOrCreate(\n member.user_id,\n (data) => {\n dispatch(\n setTiptapSidemenu({ opened: \"direct\", option: data.space.slug })\n );\n },\n (data) => {}\n );\n };\n\n const onCopyEmail = (event) => {\n setEmailCopiedToClipboard(true);\n setTimeout(() => {\n setEmailCopiedToClipboard(false);\n }, 2000);\n };\n\n const onClickEmailButton = (event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username }));\n };\n\n return (\n openProfile()}\n shadow=\"sm\"\n radius=\"md\"\n p={20}\n key={member.username}\n className={props.memberItemClass}\n >\n \n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n {props.user.id !== member.user_id && (\n \n onDirectMessage(event)}\n >\n {t(\"spaces.members.messageButton\")}\n \n {props.showEmail && (\n \n onCopyEmail(event)}\n onCopy={(event) => onCopyEmail(event)}\n text={member.email}\n >\n onClickEmailButton(event)}\n >\n {t(\"spaces.members.emailButton\")}\n \n \n \n )}\n \n )}\n \n {member.bio}\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Container,\n Text,\n Group,\n ScrollArea,\n Button,\n Box,\n TextInput,\n createStyles,\n Stack,\n SimpleGrid,\n Loader,\n Center,\n} from \"@mantine/core\";\n\nimport MemberModel from \"../../../models/Member\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useViewportSize } from \"@mantine/hooks\";\n\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport InvitePeople from \"../settings/members/InvitePeople\";\nimport SectionHeader from \"../settings/layout/SectionHeader\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport Member from \"./Member\";\n\nconst paginator = {\n page: 1,\n per: 15,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nconst useStyles = createStyles((theme, { colors }) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n secondaryButtonStyle: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.secondary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n linkButtonStyle: {\n color: colors.header_link_color,\n \"&:hover\": {\n color: tinycolor(colors.header_link_color).darken(4).toString(),\n },\n },\n searchBar: {},\n title: {\n color: colors.default_text_color,\n },\n subtitle: {\n color: tinycolor(colors.default_text_color).darken(20).toString(),\n },\n memberItem: {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n cursor: \"pointer\",\n },\n memberItemText: {\n color: colors.sidebar_text_color,\n \"&:hover\": {\n color: colors.sidebar_text_color,\n },\n },\n memberItemTextDimmed: {\n color: tinycolor(colors.sidebar_text_color).darken(5).toString(),\n \"&:hover\": {\n color: tinycolor(colors.sidebar_text_color).darken(5).toString(),\n },\n },\n}));\n\nexport default function List(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const mainActions = useSelector((state) => state.mainActions);\n const location = useLocation();\n const dispatch = useDispatch();\n const { height, width } = useViewportSize();\n\n const [opennedInvite, setOpenedInvite] = useState(false);\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [loading, setLoading] = useState(false);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const viewport = useRef();\n const timeoutId = useRef();\n const nomore = useRef();\n\n useEffect(() => {\n return () => {\n nomore.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n const onFetch = () => {\n setLoading(true);\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n\n MemberModel.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setLoading(false);\n if (paginator.page == 1) {\n setMembers({ ...data });\n } else {\n if (data.data.length > 0) {\n const auxMembers = { ...members };\n auxMembers.data = members.data.concat(data.data);\n setMembers(auxMembers);\n } else {\n paginator.page--;\n nomore.current = true;\n }\n }\n },\n (data) => {\n setLoading(false);\n }\n );\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 100) {\n if (nomore.current) {\n return;\n }\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n changePage(paginator.page + 1);\n }, 1000);\n }\n };\n\n return (\n \n \n \n \n \n {t(\"spaces.members.manage\")}\n \n setOpenedInvite(true)}\n leftIcon={}\n className={classes.primaryButtonStyle}\n >\n {t(\"spaces.members.invite\")}\n \n \n ) : null\n }\n />\n\n \n \n }\n placeholder={t(\"spaces.members.search.placeholder\")}\n classNames={{ input: classes.searchBar }}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term && (\n onClearSearch()}\n >\n \n \n )\n }\n />\n onSearch()}\n className={classes.primaryButtonStyle}\n >\n {t(\"spaces.members.search.button\")}\n \n \n \n\n {members.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor: colors.sidebar_background_color,\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n marginTop: 20,\n color: colors.sidebar_text_color,\n \"&:hover\": {\n backgroundColor: colors.sidebar_background_color,\n },\n })}\n >\n {t(\"spaces.members.emptyMessage\")}\n \n ) : (\n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n )}\n {loading && (\n
\n \n
\n )}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Start(props) {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.start.invalidEmailErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n setSpaceReference(props.space.slug);\n }, [props]);\n\n const onStart = () => {\n navigate(`/space/${props.space.slug}/demo/sign_up`);\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n\n \n \n \n
onStart(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.start.title\")}\n \n \n {t(\"users.start.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n {t(\"users.start.submit\")}\n \n \n \n
\n
\n
\n {spaceReference && showSpaceReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport {\n TextInput,\n PasswordInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery, useFocusTrap } from \"@mantine/hooks\";\n\nexport default function SignIn(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n password: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.signIn.invalidEmailErrorMsg\"),\n },\n });\n\n const focusTrapRef = useFocusTrap();\n\n const [spaceReference, setSpaceReference] = useState();\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n const [showStepper, setStepper] = useState(false);\n const [isMember, setIsMember] = useState(false);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n setSpaceReference(props.space.slug);\n }, [props]);\n\n const onSignIn = () => {\n localStorage.removeItem(\"dummy_was_registered\");\n if (props.space.is_paid) {\n navigate(`/space/${props.space.slug}/demo/pay`);\n } else {\n if (props.space && props.space.permissions.block_until_approved){\n navigate(`/space/${props.space.slug}/demo/pending`);\n }\n else{\n navigate(`/space/${props.space.slug}`);\n }\n }\n };\n\n const getMagicLinkPath = () => {\n return `/space/${props.space.slug}/demo/magic_link`;\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n\n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n onSignIn(values))}\n ref={focusTrapRef}\n >\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.signIn.title\")}\n \n \n {t(\"users.signIn.subtitle\")}{\" \"}\n \n {t(\"users.signIn.subtitleLink\")}\n \n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n \n {t(\"users.signIn.submit\")}\n \n ({\n borderTopColor: theme.colors.gray[2],\n color: theme.colors.gray[2],\n })}\n my=\"sm\"\n label=\"OR\"\n labelPosition=\"center\"\n labelProps={{ color: \"#666\" }}\n />\n \n {t(\"users.signIn.magicLink\")}\n \n \n \n {t(\"users.signIn.forgotPassword\")}\n \n \n \n \n \n \n \n {spaceReference && showSpaceReference && (\n \n \n \n )}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useNavigate, useLocation } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport {\n Box,\n TextInput,\n PasswordInput,\n Checkbox,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Divider,\n Grid,\n Stepper,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function SignUp(props) {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n username: \"\",\n password: \"\",\n subscribe_to_sutra: true,\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.signUp.invalidEmailErrorMsg\"),\n password: (value) =>\n value.length >= 8 ? null : t(\"users.signUp.invalidPasswordErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [showStepper, setStepper] = useState(false);\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n setSpaceReference(props.space.slug);\n }, [props]);\n\n const onSignUp = () => {\n localStorage.setItem(\"dummy_was_registered\", true);\n if (props.space.is_paid) {\n navigate(`/space/${props.space.slug}/demo/pay`);\n } else {\n navigate(`/space/${props.space.slug}/demo/edit_profile`);\n }\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onSignUp(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.signUp.title\")}\n \n \n {t(\"users.signUp.subtitle\")}{\" \"}\n \n {t(\"users.signUp.subtitleLink\")}\n \n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n \n \n \n {window.location.hostname.indexOf(\"stablenavel.com\") >=\n 0 && (\n \n )}\n\n {!spaceReference ? (\n \n ) : (\n \"\"\n )}\n \n {t(\"users.signUp.submit\")}\n \n \n {t(\"users.signUp.legalPrefix\")}\n
\n \n {t(\"users.signUp.terms\")}\n and{\" \"}\n {t(\"users.signUp.privacy\")}\n
\n
\n
\n
\n
\n
\n {spaceReference && showSpaceReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setAlert, setHiddenSidebar } from \"../../../store/app\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function MagicLink(props) {\n const { t, i18n } = useTranslation();\n\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.magicLink.invalidEmailErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [showStepper, setStepper] = useState(false);\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 250);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n setSpaceReference(props.space.slug);\n }, [props]);\n\n const onMagicLink = () => {\n dispatch(\n setAlert({\n opened: true,\n title: t(\"users.magicLink.alertTitle\"),\n message: t(\"users.magicLink.alertMessage\"),\n color: \"green\",\n })\n );\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n\n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onMagicLink(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.magicLink.title\")}\n \n \n {t(\"users.magicLink.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n {t(\"users.magicLink.submit\")}\n \n ({\n borderTopColor: theme.colors.gray[2],\n color: theme.colors.gray[2],\n })}\n my=\"sm\"\n label=\"OR\"\n labelPosition=\"center\"\n labelProps={{ color: \"#666\" }}\n />\n \n \n {t(\"users.magicLink.footer\")}\n \n \n \n \n
\n
\n
\n {spaceReference && showSpaceReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setAlert, setHiddenSidebar } from \"../../../store/app\";\nimport FixedHeader from \"../FixedHeader\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n ScrollArea,\n} from \"@mantine/core\";\n\nexport default function Recover(props) {\n const { t, i18n } = useTranslation();\n\n const dispatch = useDispatch();\n\n const [form, setForm] = useState({\n user: {\n email: \"\",\n },\n });\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 250);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n const onRecover = () => {\n dispatch(\n setAlert({\n opened: true,\n title: t(\"users.recover.alertTitle\"),\n message: t(\"users.recover.alertMessage\"),\n color: \"green\",\n })\n );\n };\n\n const onInputChange = (event, field) => {\n form.user[field] = event.target.value;\n setForm({ ...form });\n };\n\n return (\n \n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.recover.title\")}\n \n \n {t(\"users.recover.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n onInputChange(event, \"email\")}\n label={t(\"users.recover.email\")}\n radius=\"sm\"\n size=\"md\"\n mb={15}\n />\n onRecover()}\n >\n {t(\"users.recover.submit\")}\n \n \n {t(\"users.recover.footer\")}{\" \"}\n \n {t(\"users.recover.footerLink\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport {\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Image,\n Stepper,\n Grid,\n Textarea,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Edit(props) {\n const { t, i18n } = useTranslation();\n\n const user = useSelector((state) => state.user);\n\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n const [showStepper, setStepper] = useState(false);\n\n const form = useForm({\n initialValues: {\n bio: \"\",\n },\n });\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n initFormData();\n }, [user]);\n\n const initFormData = () => {\n form.setFieldValue(\"bio\", user.bio);\n };\n\n const onSave = (values) => {\n navigate(getSkipLink());\n };\n\n const getSkipLink = () => {\n if (props && props.space) {\n if (props.space && props.space.permissions.block_until_approved){\n return `/space/${props.space.slug}/demo/pending`;\n }\n else{\n return `/space/${props.space.slug}`;\n }\n } else if (user.open_invitations) {\n return `/home/invitations`;\n } else if (user.space_count > 0) {\n return `/space/${props.space.slug}/settings/main`;\n } else {\n return `/space/${props.space.slug}/settings/main`;\n }\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n\n \n {!smallScreen && props.space && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onSave(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.edit.title\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n
\n \n \n
\n \n {t(\"users.edit.addProfileImage\")}\n \n \n \n \n {t(\"users.edit.submit\")}\n \n {props.space ? (\n \n \n {t(\"users.edit.skip\")}\n \n \n ) : (\n \n {t(\"users.edit.skip\")}\n \n )}\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\nimport PaymentImage from \"../../../src/images/app/emptyPayment.png\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Paper,\n Title,\n Image,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Payment(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [price, setPrice] = useState();\n const [currency, setCurrency] = useState();\n const [frequency, setFrequency] = useState();\n const [loaded, setLoaded] = useState(false);\n const [spaceReference, setSpaceReference] = useState();\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n setSpaceReference(props.space.slug);\n }, [props]);\n\n useEffect(() => {\n if (props.space.slug) {\n onCreate();\n }\n }, [price]);\n\n const onCreate = () => {};\n\n const onPriceChange = (price, currency, frequency) => {\n setPrice(price);\n setCurrency(currency);\n setFrequency(frequency);\n setLoaded(true);\n };\n\n const onPay = () => {\n if (localStorage.getItem(\"dummy_was_registered\") == \"true\") {\n navigate(`/space/${props.space.slug}/demo/edit_profile`);\n } else {\n if (props.space && props.space.permissions.block_until_approved) {\n navigate(`/space/${props.space.slug}/demo/pending`);\n } else {\n navigate(`/space/${props.space.slug}`);\n }\n }\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n const setStepper = () => {};\n const setShowSpaceReference = () => {};\n\n const onJoin = () => {\n if (localStorage.getItem(\"dummy_was_registered\") == \"true\") {\n navigate(`/space/${props.space.slug}/demo/edit_profile`);\n } else {\n navigate(`/space/${props.space.slug}`);\n }\n };\n\n const getFrequency = () => {\n if (!frequency) {\n return \"\";\n }\n return frequency != \"once\" ? ` / ${frequency}` : \"\";\n };\n\n const buttonText = () => {\n const amount = price ? parseFloat(price) : 0;\n\n return `${t(\"users.payment.pay\")} ${getSymbolFromCurrency(currency)}${amount\n .toFixed(2)\n .replace(\".00\", \"\")}${getFrequency()}`;\n };\n\n return (\n \n \n \n\n {!smallScreen && props.space ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.payment.completePayment\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n {props.space && price > 0 ? (\n <>\n \n onPay()}\n >\n {buttonText()}\n \n \n ) : (\n props.space &&\n loaded && (\n onJoin()}\n >\n {t(\"users.payment.join\")}\n \n )\n )}\n \n \n \n \n {props.space && props.space.slug && (\n \n \n \n )}\n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {setHiddenSidebar} from '../../../store/app';\n\nimport TiptapReadonly from '../../tiptap/components/TiptapReadonly'\n\n\nimport HeaderImage from '../HeaderImage'\n\nimport FixedHeader from '../FixedHeader'\n\nimport Loading from \"../presentations/static/Loading\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport ViewModel from \"../../../models/View\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Container,\n Stack,\n ScrollArea,\n Text,\n createStyles\n}\nfrom '@mantine/core';\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color\n }\n}));\n\nexport default function Pending(props) {\n const { t, i18n } = useTranslation();\n\n const dispatch = useDispatch();\n\n const colors = useSelector(state => state.colors);\n\n const params = useParams()\n\n const { classes, cx, theme } = useStyles({colors});\n\n const [loaded, setLoaded] = useState(false);\n const content = useRef({});\n const lastSlug = useRef();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0]\n // debugger;\n b.style.display = 'none';\n\n dispatch(setHiddenSidebar({hidden: true}))\n\n setTimeout(() => {\n\n const b = document.getElementsByTagName(\"body\")[0]\n b.style.display = '';\n dispatch(setHiddenSidebar({hidden: true}))\n\n }, 500)\n\n return (() => {\n setLoaded(false);\n dispatch(setHiddenSidebar({hidden: false}))\n\n })\n }, [])\n\n useEffect(() => {\n\n\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoaded(false);\n onFetch()\n }\n\n }, [params]);\n\n const onFetch = () => {\n ViewModel.onFetch(\"pending_member_view\", props.space.slug, (data) => {\n content.current = data.content\n setLoaded(true);\n }, (data) => {\n\n })\n }\n\n if (!loaded) {\n return ;\n }\n\n\n return (\n\n \n \n \n \n ({\n height: \"100%\"\n })}>\n {props.space && content.current ? (\n \n ) : (\n \n {t(\"spaces.pending.message\")}\n \n )}\n \n \n\n \n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n Routes,\n Route,\n useParams,\n useNavigate,\n useLocation,\n useSearchParams,\n} from \"react-router-dom\";\n\nimport {\n setSpace,\n setColors,\n setTree,\n setSettingsTabs,\n setPath,\n setPaths,\n setSettings,\n setJourneys,\n setSurvey,\n setPermissions,\n setPinMessage,\n setCalendar,\n setCompleted,\n setInteractions,\n setHiddenSidebar,\n setHiddenHeader,\n setHiddenCover,\n setHiddenTitle,\n setHiddenBreadcrumbs,\n setForceLayoutUpdate,\n setActions\n} from \"../../store/app\";\nimport SpaceModel from \"../../models/Space\";\nimport { storeJSON, getJSON, deleteJSON } from \"../../utils/LocalDB\";\nimport SpaceSettings from \"./settings/Settings\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Discussion from \"./presentations/discussion/Discussion\";\nimport Content from \"./presentations/content/Content\";\nimport ContentReadonly from \"./presentations/content/ContentReadonly\";\nimport BackupPreview from \"./presentations/content/BackupPreview\";\nimport RegistrationPage from \"./presentations/registration/RegistrationPage\";\nimport RegistrationPageReadonly from \"./presentations/registration/RegistrationPageReadonly\";\nimport Payment from \"./payment/Payment\";\nimport UserEdit from \"../users/Edit\";\nimport Private from \"./presentations/static/Private\";\nimport Pending from \"./presentations/static/Pending\";\nimport Processing from \"./presentations/static/Processing\";\nimport Invitation from \"./presentations/static/Invitation\";\nimport Survey from \"./presentations/static/Survey\";\nimport Gateway from \"./presentations/static/Gateway\";\nimport BroadcastExclude from \"./presentations/static/BroadcastExclude\";\n\nimport Events from \"./presentations/lists/Events\";\nimport List from \"./presentations/lists/List\";\n\nimport GettingStarted from \"../app/GettingStarted\";\nimport Members from \"./members/List\";\nimport DummyStart from \"./dummy/Start\";\nimport DummySignIn from \"./dummy/SignIn\";\nimport DummySignUp from \"./dummy/SignUp\";\nimport DummyMagicLink from \"./dummy/MagicLink\";\nimport DummyRecover from \"./dummy/Recover\";\nimport DummyEditProfile from \"./dummy/Edit\";\nimport DummyPay from \"./dummy/Payment\";\nimport DummyPending from \"./dummy/Pending\";\n\nimport { setCookie, getCookie } from \"../../utils/Cookies\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function Space(props) {\n const params = useParams();\n\n const space = useSelector((state) => state.space);\n const permissions = useSelector((state) => state.permissions);\n\n const user = useSelector((state) => state.user);\n\n const mainActions = useSelector((state) => state.mainActions);\n const { t, i18n } = useTranslation();\n const didMount = useRef(false);\n const refreshed = useRef(false);\n const preview = useRef(false);\n const invitationSlug = useRef(null);\n const editable = useRef(null);\n const forceLayoutUpdate = useRef(null);\n\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n\n const location = useLocation();\n\n const paramsChangeTimeout = useRef([]);\n const lastColorTheme = useRef();\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n // setLoading(true);\n return () => {\n dispatch(setColors());\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n dispatch(setHiddenCover({ hidden: false }));\n dispatch(setHiddenTitle({ hidden: false }));\n dispatch(setHiddenBreadcrumbs({ hidden: false }));\n dispatch(setSpace({ slug: null }));\n refreshed.current = false;\n window.$currentTopSlug = null;\n window.$fetchedTopSlug = null;\n };\n }, []);\n\n useEffect(() => {\n console.log(\"LOCATION CHANGE ================>\");\n // setLoading(true);\n if (paramsChangeTimeout.current) {\n clearTimeout(paramsChangeTimeout.current);\n }\n paramsChangeTimeout.current = setTimeout(() => {\n console.log(\"LOCATION CHANGE TIMEOUT ================>\");\n onSlugChange();\n }, 300);\n }, [location.pathname]);\n\n const onSlugChange = () => {\n const edit = new URLSearchParams(location.search).get(\"edit\");\n if (edit) {\n dispatch(setActions({ editPage: true }));\n\n searchParams.delete('edit');\n setSearchParams(searchParams);\n }\n invitationSlug.current = new URLSearchParams(location.search).get(\n \"invitation_slug\"\n );\n\n if (invitationSlug.current) {\n setCookie(\"invitation_slug\", invitationSlug.current, 1);\n // localStorage.setItem(\"invitation_slug\", invitationSlug.current)\n } else {\n // invitationSlug.current = localStorage.getItem(\"invitation_slug\")\n invitationSlug.current = getCookie(\"invitation_slug\");\n }\n\n if (\n location.pathname.split(\"/\")[0] == \"circle\" ||\n location.pathname.split(\"/\")[1] == \"circle\"\n ) {\n const newUrl = location.pathname.replace(\"circle\", \"space\");\n navigate(newUrl);\n return;\n }\n preview.current =\n location.pathname.indexOf(\"/register\") >= 0 ||\n location.pathname.indexOf(\"/registration\") >= 0;\n\n // if (params.slug && (!space || (space && space.slug != params.slug) || (refresh && !refreshed.current))){\n refreshed.current = true;\n fetchSpace();\n // }\n };\n\n const hideLayout = (hidden_layout_elements = null) => {\n if (space && !space.slug) {\n return;\n }\n\n if (!hidden_layout_elements) {\n hidden_layout_elements = space.hidden_layout_elements;\n }\n\n dispatch(\n setHiddenSidebar({\n hidden:\n hidden_layout_elements.indexOf(\"sidebar\") >= 0 ||\n space.pod_type == \"user_message\",\n })\n );\n\n if (hidden_layout_elements.indexOf(\"header\") >= 0) {\n const hide = space.permissions.can_manage ? \"admin\" : true;\n dispatch(\n setHiddenHeader({\n hidden: hide,\n })\n );\n if (!forceLayoutUpdate.current) {\n forceLayoutUpdate.current = true;\n setTimeout(() => {\n dispatch(setForceLayoutUpdate({ update: true }));\n }, 1000);\n }\n } else {\n dispatch(setHiddenHeader(false));\n }\n dispatch(\n setHiddenCover({\n hidden: hidden_layout_elements.indexOf(\"cover\") >= 0,\n })\n );\n dispatch(\n setHiddenTitle({\n hidden: hidden_layout_elements.indexOf(\"title\") >= 0,\n })\n );\n dispatch(\n setHiddenBreadcrumbs({\n hidden: hidden_layout_elements.indexOf(\"breadcrumbs\") >= 0,\n })\n );\n\n if (mainActions.editPage) {\n window.$spaceWideWidth = space.space_width;\n window.$registrationWideWidth = space.registration_width;\n }\n };\n\n const fetchSpace = () => {\n // setLoading(true);\n console.log(\"ON ACCESS SPACE\")\n try {\n $(`#collapse-button-node-${params.slug}-closed`).click();\n } catch {}\n\n getJSON(`spaces`, params.slug, (data) => {\n if (data && data.space && data.space.slug) {\n SpaceModel.onAccess(\n params.slug,\n (accessData) => {\n window.$spaceUserInteractions = accessData.interactions;\n data.redirect_to = { ...accessData.redirect_to };\n onSpaceFetched(data);\n onFetchSpaceFromAPI(data.stored_at);\n },\n (data) => {}\n );\n } else {\n onFetchSpaceFromAPI();\n }\n });\n };\n\n const onFetchSpaceFromAPI = (storedAt = null) => {\n\n const include = [\"tree\", \"members\", \"views\", \"redirect_to\", \"survey\"];\n\n SpaceModel.onFetch(\n params.slug,\n include,\n (data) => {\n // window.$spaceUserInteractions = data.interactions;\n window.$fetchedTopSlug = data.tree.slug;\n window.$currentSlug = params.slug;\n window.$showMarkCompleteButton = data.permissions.show_mark_complete_button_in_header\n\n storeJSON(\"spaces\", params.slug, { ...data });\n\n if (!data.tree.nosave) {\n storeJSON(\"spaces\", `tree_${data.tree.slug}`, { ...data.tree });\n }\n\n const updatedAtLocalDate = new Date(Date.parse(data.updated_at));\n\n console.log(\"CHECKING: SILENT UPDATE DONE SPACE\");\n console.log(updatedAtLocalDate);\n console.log(storedAt);\n if (\n !storedAt ||\n (storedAt && updatedAtLocalDate > storedAt) ||\n space.slug == null\n ) {\n console.log(\"SILENT UPDATE DONE SPACE\");\n\n onSpaceFetched(data);\n }\n },\n (data) => {\n navigate(`/home/top`);\n }\n );\n };\n\n const onSetSpaceData = (data, tree, force = false) => {\n if (mainActions.editPage) {\n window.$spaceWideWidth = data.space.space_width;\n window.$registrationWideWidth = data.space.registration_width;\n }\n\n window.$spaceIsPost = data.space.is_post && !data.permissions.can_manage;\n\n window.$spacePath = data.space.path;\n\n window.$currentTopSlug = tree.slug;\n window.$currentSpaceName = data.space.name;\n\n refreshed.current = false;\n\n if (\n data.colors &&\n JSON.stringify(data.colors) != JSON.stringify(lastColorTheme.current)\n ) {\n lastColorTheme.current = { ...data.colors };\n window.$themeColors = { ...data.colors };\n dispatch(setColors(data.colors));\n } else if (!data.colors) {\n lastColorTheme.current = null;\n dispatch(setColors());\n }\n\n const oldTree = space.tree;\n\n dispatch(\n setSpace({\n ...data.space,\n completed: data.completed,\n survey: data.survey ? { ...data.survey } : null,\n permissions: { ...data.permissions },\n colors: { ...data.colors },\n interactions: data.interactions ? { ...data.interactions } : false,\n tree: { ...tree },\n settings_tabs: [...data.settings_tabs],\n path: [...data.path],\n paths: { ...data.space.path },\n settings: { ...data.settings },\n journeys: data.journeys ? [...data.journeys] : [],\n is_top_level: data.is_top_level,\n tags: [...data.tags],\n tagged_with: [...data.tagged_with],\n is_liked: data.is_liked\n })\n );\n\n dispatch(setCompleted({ completed: data.completed }));\n\n // dispatch(\n // setSpaceLoading({loading: false})\n // );\n\n dispatch(setSettingsTabs([...data.settings_tabs]));\n\n dispatch(setPath([...data.path]));\n\n dispatch(setPaths({ ...data.space.path }));\n\n dispatch(setSettings({ ...data.settings }));\n\n dispatch(setJourneys(data.journeys ? [...data.journeys] : []));\n\n dispatch(setSurvey(data.survey ? { ...data.survey } : null));\n\n dispatch(setPermissions({ ...data.permissions }));\n\n dispatch(setCalendar({ ...data.space.calendar }));\n\n dispatch(setPinMessage({ ...data.space.pin_message }));\n\n dispatch(\n setInteractions(data.interactions ? { ...data.interactions } : false)\n );\n\n if (\n !space.slug ||\n (space.slug && space.tree && space.tree.slug != tree.slug) ||\n force\n ) {\n const auxTree = { ...tree };\n auxTree.permissions = data.permissions;\n window.$forceTreeUpdate = true;\n dispatch(setTree(auxTree));\n // console.log(\"TREE SET: \" + auxTree.children.length);\n }\n };\n\n const onSpaceFetched = (data) => {\n getJSON(\n `spaces`,\n `tree_${\n window.$fetchedTopSlug && window.$fetchedTopSlug == data.tree.slug\n ? window.$fetchedTopSlug\n : data.tree.slug\n }`,\n (treeData) => {\n if (treeData && treeData.slug) {\n if (\n data.tree &&\n data.tree.children &&\n treeData.children.length < data.tree.children.length\n ) {\n onSetSpaceData(data, data.tree, true);\n } else {\n if (\n window.$sidebarTree &&\n window.$sidebarTree.children &&\n treeData &&\n treeData.children &&\n window.$sidebarTree.children.length < treeData.children.length\n ) {\n onSetSpaceData(data, treeData, true);\n } else {\n onSetSpaceData(data, treeData);\n }\n }\n } else {\n onSetSpaceData(data, data.tree, true);\n }\n }\n );\n\n window.$hiddenLayoutElements = null;\n\n if (\n data.redirect_to &&\n data.redirect_to.action == \"react\" &&\n data.redirect_to.url.indexOf(\"/processing\") >= 0 &&\n location.pathname.indexOf(\"processing\") < 0\n ) {\n navigate(data.redirect_to.url);\n return;\n }\n\n setTimeout(() => {\n // setLoading(false);\n }, 250);\n\n // Validate on second\n if (\n location.pathname.indexOf(\"/members\") >= 0 &&\n ((data.permissions.show_members &&\n (data.space.is_open || data.permissions.is_member)) ||\n data.permissions.can_manage ||\n data.permissions.is_admin)\n ) {\n return;\n }\n\n if (location.pathname.indexOf(\"/broadcast/exclude\") >= 0) {\n return;\n }\n\n if (location.pathname.indexOf(\"/getting_started\") >= 0) {\n return;\n }\n\n if (location.pathname.indexOf(\"/gateway\") >= 0) {\n return;\n }\n\n if (location.pathname.indexOf(\"/pay\") >= 0 && !data.permissions.is_member) {\n return;\n }\n\n if (location.pathname.indexOf(\"/edit\") >= 0 && location.pathname.indexOf(\"/registration\") < 0) {\n return;\n }\n\n if (location.pathname.indexOf(\"/demo\") >= 0) {\n if (data.permissions.can_manage) {\n return;\n } else {\n navigate(`/space/${data.slug}`);\n }\n }\n\n if (\n preview.current &&\n ((data.space.block_until_registered && !data.permissions.is_member) ||\n data.permissions.can_manage ||\n data.permissions.is_admin)\n ) {\n if (\n location.pathname.indexOf(\"/circle\") < 0 &&\n data.permissions.use_legacy_registration_page\n ) {\n window.location.href= `/circle/${data.space.slug}/register`;\n } else {\n if (\n !data.permissions.can_manage &&\n !data.permissions.is_admin &&\n location.pathname.indexOf(\"/registration\") >= 0\n ) {\n if (data.space.block_until_registered) {\n window.location.href= `/space/${data.space.slug}/register`;\n } else {\n window.location.href= `/space/${data.space.slug}`;\n }\n }\n }\n return;\n }\n\n if (\n data.redirect_to &&\n data.redirect_to.action == \"react\" &&\n ((!data.permissions.can_manage && !data.permissions.is_admin) ||\n data.redirect_to.force_admin)\n ) {\n const search = window.location.search;\n const _pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n const _reflection_id = new URLSearchParams(search).get(\"reflection_id\");\n const _interactive_slug = new URLSearchParams(search).get(\n \"interactive_slug\"\n );\n const _tag = new URLSearchParams(search).get(\"tag\");\n if (_pod_message_id) {\n const symbol = data.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n data.redirect_to.url += `${symbol}pod_message_id=${_pod_message_id}`;\n }\n if (_reflection_id) {\n const symbol = data.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n data.redirect_to.url += `${symbol}reflection_id=${_reflection_id}`;\n }\n if (_tag) {\n const symbol = data.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n data.redirect_to.url += `${symbol}tag=${_tag}`;\n }\n if (_interactive_slug) {\n const symbol = data.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n data.redirect_to.url += `${symbol}interactive_slug=${_interactive_slug}`;\n }\n\n if (data.redirect_to.url.indexOf(\"user\") >= 0) {\n deleteJSON(\"spaces\", data.space.slug);\n deleteJSON(\"spaces\", `tree_${data.space.slug}`);\n }\n\n navigate(data.redirect_to.url);\n } else if (data.redirect_to && data.redirect_to.action == \"redirect\") {\n window.location.href= data.redirect_to.url;\n return;\n } else if (\n data.space.version != location.pathname.split(\"/\").pop() &&\n location.pathname.indexOf(\"/settings\") < 0 &&\n location.pathname.indexOf(\"/processing\") < 0\n ) {\n navigate(`/space/${data.space.slug}/${data.space.version}`);\n }\n if (\n data.space.version == location.pathname.split(\"/\").pop() &&\n data.permissions.is_member\n ) {\n localStorage.removeItem(\"invitation_slug\");\n }\n };\n\n return (\n <>\n \n \n {space.slug ? space.name : t(\"spaces.space.sutraLoading\")}\n \n \n \n \n }\n />\n\n \n }\n />\n\n \n }\n />\n {space.permissions &&\n space.permissions.can_edit &&\n mainActions.editPage ? (\n }\n />\n ) : (\n }\n />\n )}\n\n \n }\n />\n\n \n }\n />\n\n {space.permissions && space.permissions.can_manage && (\n \n }\n />\n )}\n {space.permissions && space.permissions.can_manage && (\n \n }\n />\n )}\n {space.permissions && space.permissions.can_manage && (\n } />\n )}\n\n } />\n\n {space.permissions && !space.permissions.can_manage && (\n } />\n )}\n } />\n } />\n }\n />\n } />\n }\n />\n }\n />\n } />\n } />\n }\n />\n\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { createStyles, Text } from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n settingsNav: {\n paddingTop: 20,\n height: `calc(100vh - ${theme.other.headerHeight}px)`,\n },\n link: {\n color: \"#fff\",\n display: \"block\",\n padding: \"10px 25px\",\n marginLeft: \"15px\",\n textDecoration: \"none\",\n fontSize: theme.fontSizes.lg,\n fontWeight: 500,\n borderTopLeftRadius: theme.radius.xl,\n borderBottomLeftRadius: theme.radius.xl,\n\n \"&:hover\": {\n color: \"#fff\",\n backgroundColor: theme.colors.gray[6],\n textDecoration: \"none\",\n },\n },\n active: {\n \"&, &:hover\": {\n color: \"#000\",\n backgroundColor: \"#fff\",\n },\n },\n}));\n\nexport default function NavbarContent() {\n const { t, i18n } = useTranslation();\n const { classes, cx } = useStyles();\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const location = useLocation();\n const [current, setCurrent] = useState(\"main\");\n\n const settingsLinks = [\n {\n value: \"main\",\n label: t(\"spaces.settings.layout.navbarContent.mainSettings\"),\n to: `/space/${space.slug}/settings/main`,\n },\n // {\n // value: \"additional\",\n // label: t('spaces.settings.layout.navbarContent.additionalSettings'),\n // to: `/space/${space.slug}/settings/additional`\n // },\n {\n value: \"members\",\n label: t(\"spaces.settings.layout.navbarContent.members\"),\n to: `/space/${space.slug}/settings/members`,\n },\n {\n value: \"broadcast\",\n label: t(\"spaces.settings.layout.navbarContent.broadcast\"),\n to: `/space/${space.slug}/settings/broadcast`,\n },\n {\n value: \"surveys\",\n label: t(\"spaces.settings.layout.navbarContent.surveys\"),\n to: `/space/${space.slug}/settings/surveys`,\n },\n {\n value: \"structures\",\n label: t(\"spaces.settings.layout.navbarContent.structures\"),\n to: `/space/${space.slug}/settings/structures`,\n },\n {\n value: \"admin\",\n label: t(\"spaces.settings.layout.navbarContent.sutraAdmin\"),\n to: `/space/${space.slug}/settings/admin`,\n },\n {\n value: \"scheduled\",\n label: t(\"spaces.settings.layout.navbarContent.scheduled\"),\n to: `/space/${space.slug}/settings/scheduled`,\n },\n // {\n // value: \"archived\",\n // label: t(\"spaces.settings.layout.navbarContent.archived\"),\n // to: `/space/${space.slug}/settings/archived`,\n // },\n {\n value: \"participation\",\n label: t(\"spaces.settings.layout.navbarContent.participation\"),\n to: `/space/${space.slug}/settings/participation`,\n },\n ];\n\n const moderatorLinks = [\n {\n value: \"participation\",\n label: t(\"spaces.settings.layout.navbarContent.participation\"),\n to: `/space/${space.slug}/settings/participation`,\n },\n ];\n\n const data = [\"moderator\", \"editor\"].includes(window.$currentRole) ? moderatorLinks : settingsLinks;\n\n useEffect(() => {\n setCurrent(location.pathname.split(\"/\").pop());\n }, [location]);\n\n return (\n
\n {data.map(\n (item) =>\n user.settings_tabs && user.settings_tabs.indexOf(item.value) >= 0 && (\n \n {item.label}\n \n )\n )}\n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Text, Switch, Group, Box, createStyles, MantineProvider, Alert } from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n}));\n\nexport default function Scheduling({ onUpdate }) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n\n const [showStartDate, setShowStartDate] = useState(false);\n const [startDate, setStartDate] = useState(\"\");\n const [startTime, setStartTime] = useState(\"\");\n const [endDate, setEndDate] = useState(\"\");\n const [endTime, setEndTime] = useState(\"\");\n\n const [showLaunchDate, setShowLaunchDate] = useState(false);\n const [launchDate, setLaunchDate] = useState(\"\");\n const [launchTime, setLaunchTime] = useState(\"\");\n\n const [showArchiveDate, setShowArchiveDate] = useState(false);\n const [archiveDate, setArchiveDate] = useState(\"\");\n const [archiveTime, setArchiveTime] = useState(\"\");\n\n const [showReadonlyDate, setShowReadonlyDate] = useState(false);\n const [readonlyDate, setReadonlyDate] = useState(\"\");\n const [readonlyTime, setReadonlyTime] = useState(\"\");\n const [disableActions, setDisableActions] = useState(false);\n\n const [opened, setOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!space.settings) {\n return;\n }\n\n propsLoaded.current = false;\n // setDisableActions(true);\n\n setShowStartDate(space.settings.show_start_date);\n if (space.settings.start_date) {\n setStartDate(new Date(space.settings.start_date));\n setStartTime(new Date(space.settings.start_date));\n }\n if (space.settings.end_date) {\n setEndDate(new Date(space.settings.end_date));\n setEndTime(new Date(space.settings.end_date));\n }\n\n setShowLaunchDate(space.launch_on_date);\n if (space.settings.launch_time) {\n setLaunchDate(new Date(space.settings.launch_time));\n setLaunchTime(new Date(space.settings.launch_time));\n }\n\n setShowArchiveDate(space.settings.archive_on_date);\n if (space.settings.archive_time) {\n setArchiveDate(new Date(space.settings.archive_time));\n setArchiveTime(new Date(space.settings.archive_time));\n }\n\n setShowReadonlyDate(space.settings.readonly_on_date);\n if (space.settings.readonly_time) {\n setReadonlyDate(new Date(space.settings.readonly_time));\n setReadonlyTime(new Date(space.settings.readonly_time));\n }\n\n setValidatePremium(\n space && space.permissions && space.permissions.can_schedule_states\n );\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 500);\n }, [space]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { show_start_date: showStartDate },\n });\n }\n }, [showStartDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n start_date: mergeDateAndTime(startDate, startTime),\n },\n });\n }\n }, [startDate, startTime]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n end_date: mergeDateAndTime(endDate, endTime),\n },\n });\n }\n }, [endDate, endTime]);\n\n useEffect(() => {\n if (showLaunchDate && !validatePremium[0] && propsLoaded.current) {\n setShowLaunchDate(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { launch_on_date: showLaunchDate },\n });\n }\n }, [showLaunchDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n launch_time: mergeDateAndTime(launchDate, launchTime),\n launch_on_date: showLaunchDate,\n },\n });\n }\n }, [launchDate, launchTime]);\n\n useEffect(() => {\n if (showArchiveDate && !validatePremium[0] && propsLoaded.current) {\n setShowArchiveDate(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { archive_on_date: showArchiveDate },\n });\n }\n }, [showArchiveDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n archive_time: mergeDateAndTime(archiveDate, archiveTime),\n archive_on_date: showArchiveDate,\n },\n });\n }\n }, [archiveDate, archiveTime]);\n\n useEffect(() => {\n if (showReadonlyDate && !validatePremium[0] && propsLoaded.current) {\n setShowReadonlyDate(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { readonly_on_date: showReadonlyDate },\n });\n }\n }, [showReadonlyDate]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n readonly_time: mergeDateAndTime(readonlyDate, readonlyTime),\n readonly_on_date: showReadonlyDate,\n },\n });\n }\n }, [readonlyDate, readonlyTime]);\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n return (\n \n {space.pod_state == \"model\" ? (\n \n \n \n \n {\"Scheduling settings are disabled for model spaces.\"}\n \n \n \n \n ) : (\n <>\n \n \n
\n \n {t(\n \"spaces.settings.main.scheduling.showStartDate.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.scheduling.showStartDate.description2\"\n )}\n \n
\n \n setShowStartDate(event.currentTarget.checked)\n }\n />\n
\n {showStartDate ? (\n \n \n \n {t(\"spaces.settings.main.scheduling.startDateTime.title\")}\n \n \n setStartDate(date)}\n />\n setStartTime(time)}\n />\n \n \n \n \n {t(\"spaces.settings.main.scheduling.endDateTime.title\")}\n \n \n setEndDate(date)}\n minDate={startDate ? startDate : null}\n />\n setEndTime(time)}\n />\n \n \n \n ) : (\n \"\"\n )}\n
\n\n \n \n
\n \n {t(\n \"spaces.settings.main.scheduling.showLaunchDate.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.scheduling.showLaunchDate.description2\"\n )}\n \n
\n \n setShowLaunchDate(event.currentTarget.checked)\n }\n />\n
\n {showLaunchDate ? (\n \n setLaunchDate(date)}\n />\n setLaunchTime(time)}\n />\n \n ) : (\n \"\"\n )}\n
\n\n \n \n
\n \n {t(\n \"spaces.settings.main.scheduling.showArchiveDate.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.scheduling.showArchiveDate.description2\"\n )}\n \n
\n \n setShowArchiveDate(event.currentTarget.checked)\n }\n />\n
\n {showArchiveDate ? (\n \n setArchiveDate(date)}\n />\n setArchiveTime(time)}\n />\n \n ) : (\n \"\"\n )}\n
\n\n \n \n
\n \n {t(\n \"spaces.settings.main.scheduling.showReadonlyDate.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.scheduling.showReadonlyDate.description2\"\n )}\n \n
\n \n setShowReadonlyDate(event.currentTarget.checked)\n }\n />\n
\n {showReadonlyDate ? (\n \n setReadonlyDate(date)}\n />\n setReadonlyTime(time)}\n />\n \n ) : (\n \"\"\n )}\n
\n \n \n )}\n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {\n Popover,\n Button,\n Group,\n ActionIcon,\n ColorSwatch,\n createStyles,\n} from \"@mantine/core\";\n\nimport { X, ChevronDown } from \"tabler-icons-react\";\n\nimport TagModel from \"../../../../models/SpaceTag\";\nimport useTagColors from \"../../../../collections/TagColors\";\n\nconst useStyles = createStyles((theme) => ({\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n height: 20,\n paddingRight: 2,\n paddingLeft: 3,\n },\n\n menuControl2: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n height: 20,\n paddingRight: 10,\n paddingLeft: 3,\n },\n\n removeTag: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n },\n}));\n\nlet manualUpdate = false;\n\nexport default function TagButton(props) {\n const mount = useRef();\n const { classes, theme } = useStyles();\n const [colorPicker, setColorPicker] = useState(false);\n const [name, setName] = useState(\"\");\n const [color, setColor] = useState();\n const [tagId, setTagId] = useState(null);\n\n useEffect(() => {\n if (!props.tagId) {\n onCreate();\n }\n }, []);\n\n useEffect(() => {\n setName(props.name);\n setColor(swatches[props.color]);\n setTagId(props.tagId);\n }, [props]);\n\n useEffect(() => {\n if (tagId && mount.current && manualUpdate) {\n manualUpdate = false;\n onUpdate();\n } else {\n mount.current = true;\n }\n }, [color]);\n\n const onCreate = () => {\n if (props.action == \"create\") {\n TagModel.onCreate(\n props.spaceId,\n {name: props.name},\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n } else if (props.action == \"tag\") {\n TagModel.onTag(\n props.spaceId,\n props.parentTagId,\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n }\n else{\n // TagModel.onFetchByName(\n // props.spaceId,\n // props.name,\n // (data) => {\n // setTagId(data.id);\n // props.onCreate({name: data.name, color: data.color, action: \"add\"});\n // },\n // (data) => {}\n // );\n }\n };\n\n const onUpdate = () => {\n if (props.action == \"create\") {\n TagModel.onUpdate(\n props.spaceId,\n tagId,\n { name, color: swatches.indexOf(color) },\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n } \n };\n\n const onDestroy = () => {\n if (props.action == \"create\") {\n TagModel.onDestroy(\n props.spaceId,\n tagId,\n (data) => {\n props.onDestroy(name);\n },\n (data) => {}\n );\n } else if (props.action == \"tag\") {\n TagModel.onUntag(\n props.spaceId,\n props.parentTagId,\n (data) => {\n setTagId(data.id);\n props.onCreate();\n },\n (data) => {}\n );\n }\n else{\n props.onDestroy(name);\n }\n };\n\n const onUpdateColor = (_color) => {\n manualUpdate = true;\n setColor(_color);\n };\n\n const swatches = [\n theme.other.tagColors[0].backgroundColor,\n theme.other.tagColors[1].backgroundColor,\n theme.other.tagColors[2].backgroundColor,\n theme.other.tagColors[3].backgroundColor,\n theme.other.tagColors[4].backgroundColor,\n theme.other.tagColors[5].backgroundColor,\n theme.other.tagColors[6].backgroundColor,\n theme.other.tagColors[7].backgroundColor,\n theme.other.tagColors[8].backgroundColor,\n theme.other.tagColors[9].backgroundColor,\n theme.other.tagColors[10].backgroundColor,\n theme.other.tagColors[11].backgroundColor,\n theme.other.tagColors[12].backgroundColor,\n theme.other.tagColors[13].backgroundColor,\n ];\n\n return (\n \n onDestroy()}\n >\n \n \n {props.action == \"create\" ? (\n\n setColorPicker(false)}\n styles={{\n target: {\n lineHeight: 1,\n },\n inner: {\n paddingTop: 0,\n paddingLeft: 5,\n paddingRight: 5,\n paddingBottom: 5,\n },\n }}\n target={\n ({\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].backgroundColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].hoverColor,\n },\n })}\n onClick={() => setColorPicker(!colorPicker)}\n styles={{\n rightIcon: {\n marginLeft: 2,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n label: {\n fontSize: 10,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n }}\n radius=\"xl\"\n size=\"xs\"\n rightIcon={}\n >\n {props.name}\n \n }\n width={240}\n position=\"bottom\"\n placement=\"end\"\n withArrow\n >\n \n {swatches.map((_color) => (\n {\n onUpdateColor(_color);\n }}\n style={{ cursor: \"pointer\" }}\n />\n ))}\n \n \n ) : (\n ({\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].backgroundColor,\n \"&:hover\": {\n backgroundColor:\n theme.other.tagColors[useTagColors(color)].hoverColor,\n },\n })}\n onClick={() => setColorPicker(!colorPicker)}\n styles={{\n rightIcon: {\n marginLeft: 2,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n label: {\n fontSize: 10,\n color: theme.other.tagColors[useTagColors(color)].textColor,\n },\n }}\n radius=\"xl\"\n size=\"xs\"\n >\n {props.name}\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, memo, useRef } from \"react\";\nimport { Text, Group, Box, Select } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport TagButton from \"./TagButton\";\n\nimport TagModel from \"../../../../models/SpaceTag\";\n\nconst Tag = memo((props) => {\n const [tags, setTags] = useState([]);\n const [selectValue, setSelectValue] = useState([]);\n const [selectedTags, setSelectedTags] = useState([]);\n const [error, setError] = useState(\"\");\n const selectRef = useRef()\n\n const { t } = useTranslation();\n\n useEffect(() => {\n const tagsNames = props.tags.map((i) => i[\"name\"]);\n if (props.action != \"select\"){\n setSelectedTags(tagsNames);\n }\n if (props.action == \"select\" && tags && tags.length == 0){\n onFetch();\n }\n else if (props.action != \"select\"){\n onFetch();\n }\n }, [props]);\n\n const onFetch = () => {\n setTags(props.parentTags.map((i) => ({label: i[\"name\"], value: i[\"name\"], color: i[\"color\"], id: i[\"id\"]})))\n\n // if (props.parent){\n \n // TagModel.onFetchParents(\n // props.spaceId,\n // (data) => {\n // setTags([...data]);\n // },\n // (data) => {}\n // );\n // }\n // else{\n // TagModel.onFetch(\n // props.spaceId,\n // (data) => {\n // setTags([...data]);\n // },\n // (data) => {}\n // );\n // }\n \n };\n\n const onAdd = (tag) => {\n if (tag.length > 22){\n setError(\"Tags must be less than 22 characters\")\n return\n }\n\n if (!tag.match(/^[a-zA-Z0-9\\s]+$/)) {\n setError(\"Tags can only contain letters, numbers and spaces\")\n return\n }\n\n setError(\"\")\n if (selectedTags.indexOf(tag) === -1) {\n setSelectedTags(selectedTags.concat(tag));\n if (props.action == \"select\"){\n props.onUpdatedMessage({name: tag, color: 0, action: \"add\"});\n }\n }\n setTimeout(() => {\n selectRef.current.blur()\n setSelectValue(\"\");\n }, 200)\n };\n\n const onRemove = (tag) => {\n const index = selectedTags.indexOf(tag);\n if (index >= 0) {\n const newSelectedTags = [...selectedTags];\n newSelectedTags.splice(index, 1);\n setSelectedTags(newSelectedTags);\n props.onUpdatedMessage({action: \"replace\", rTags: [...newSelectedTags]});\n }\n };\n\n const getIdForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].id;\n }\n }\n return null;\n };\n\n const getColorForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].name == tag) {\n return props.tags[i].color;\n }\n }\n return null;\n };\n\n const getParentTagIdForTagName = (tag) => {\n for (let i = 0; i < props.tags.length; i++) {\n if (props.tags[i].value == tag) {\n return props.tags[i].id;\n }\n }\n for (let i = 0; i < tags.length; i++) {\n if (tags[i].value == tag) {\n return tags[i].id;\n }\n }\n return null;\n };\n\n const Item = ({ label, ...others }) => (\n
\n \n
\n {label}\n
\n
\n
\n );\n\n return (\n \n \n \n `+ ${t(\"spaces.presentations.tag.createAction\")} ${query}`\n }\n data={tags}\n maxDropdownHeight={400}\n onChange={(tag) => onAdd(tag)}\n value={selectValue}\n />\n {error && {error}}\n\n \n 0 ? 10 : 0} pb={selectedTags.length > 0 ? 10 : 0}>\n {selectedTags.map((tag) => {\n return (\n \n );\n })}\n \n \n );\n})\n\nexport default Tag\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport {\n Select,\n Text,\n Switch,\n Group,\n MultiSelect,\n Box,\n ActionIcon,\n NumberInput,\n createStyles,\n Loader,\n} from \"@mantine/core\";\n\nimport { Plus, Minus, ListDetails } from \"tabler-icons-react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Swal from \"sweetalert2\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Tag from \"../../presentations/lists/Tag\";\nimport Tag2 from \"../../presentations/discussion/Tag\";\n\nimport TagModel from \"../../../../models/Tag\";\nimport SpaceTagModel from \"../../../../models/SpaceTag\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n textAlign: \"center\",\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nconst podSizeMin = 0;\nconst podSizeMax = 1000;\n\nexport default function Additional({ onUpdate }) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n\n const [spaces, setSpaces] = useState([]);\n const [children, setChildren] = useState([]);\n const [resourceEditing, setResourceEditing] = useState(false);\n const [circleCreation, setCircleCreation] = useState(false);\n const [circleCreationTypes, setCircleCreationTypes] = useState([]);\n const [allowMemberCopy, setAllowMemberCopy] = useState(false);\n const [podType, setPodType] = useState(false);\n const [allowReflections, setAllowReflections] = useState(false);\n const [showMembers, setShowMembers] = useState(false);\n const [hideMemberEmails, setHideMemberEmails] = useState(false);\n const [newMemberNotifications, setNewMemberNotifications] = useState(false);\n const [parentCircles, setParentCircles] = useState([]);\n const [podSize, setPodSize] = useState(false);\n const [podSizeValue, setPodSizeValue] = useState(0);\n const [sidebarDefaultOpened, setSidebarDefaultOpened] = useState(false);\n const [sidebarHideChildren, setSidebarHideChildren] = useState(false);\n const [allowCompletions, setAllowCompletions] = useState(false);\n const [showMarkCompleteButtonInHeader, setShowMarkCompleteButtonInHeader] =\n useState(false);\n const [disableActions, setDisableActions] = useState(false);\n const [searching, setSearching] = useState(false);\n const [searching2, setSearching2] = useState(false);\n const [redirectToSpace, setRedirectToSpace] = useState(\"\");\n const [listAutoTag, setListAutoTag] = useState(false);\n const [allowMembersToCreateTags, setAllowMembersToCreateTags] =\n useState(false);\n\n const [canActivateCompletions, setCanActivateCompletions] = useState(false);\n const [allowComments, setAllowComments] = useState(false);\n const [opened, setOpened] = useState(false);\n\n const [tags, setTags] = useState([]);\n\n const handlers = useRef();\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n const searchTimeoutId = useRef();\n const selectedParents = useRef([]);\n const originalParents = useRef([]);\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!space.settings) {\n return;\n }\n\n propsLoaded.current = false;\n // setDisableActions(true);\n\n setResourceEditing(space.resource_editing == \"open\");\n setCircleCreation(space.circle_creation ? true : false);\n setCircleCreationTypes(\n space.circle_creation ? space.circle_creation.split(\",\") : []\n );\n\n setShowMembers(space.show_members);\n setHideMemberEmails(space.settings.hide_member_emails);\n\n setAllowMemberCopy(space.settings.allow_member_copy);\n setPodType(space.pod_type == \"standard\" ? true : false);\n setAllowReflections(space.allow_reflections);\n\n setSpaces([...space.parents]);\n selectedParents.current = [...space.parents];\n originalParents.current = [...space.parents];\n\n setNewMemberNotifications(\n space.settings.new_member_notifications == \"manager\"\n );\n setPodSize(space.size ? true : false);\n setPodSizeValue(space.size ? parseInt(space.size) : space.size);\n setParentCircles(space.parents_slugs);\n setSidebarDefaultOpened(space.settings.sidebar_default_opened);\n setSidebarHideChildren(space.settings.sidebar_hide_children);\n setAllowCompletions(space.settings.allow_completions);\n setShowMarkCompleteButtonInHeader(\n space.settings.show_mark_complete_button_in_header\n );\n setRedirectToSpace(space.settings.redirect_to_space);\n setListAutoTag(space.settings.list_auto_tag);\n setAllowMembersToCreateTags(space.settings.allow_members_to_create_tags);\n setAllowComments(space.settings.allow_comments);\n\n setCanActivateCompletions(\n space && space.permissions && space.permissions.can_activate_completions\n );\n\n onFetchTags();\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n }, [space]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ resource_editing: resourceEditing ? \"open\" : \"closed\" });\n }\n }, [resourceEditing]);\n\n useEffect(() => {\n if (propsLoaded.current && !circleCreation) {\n onUpdate({ circle_creation: \"\" });\n }\n }, [circleCreation]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ circle_creation: circleCreationTypes.join(\",\") });\n }\n }, [circleCreationTypes]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { allow_member_copy: allowMemberCopy },\n });\n }\n }, [allowMemberCopy]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ pod_type: podType ? \"standard\" : \"readonly\" });\n }\n }, [podType]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ allow_reflections: allowReflections });\n }\n }, [allowReflections]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ show_members: showMembers });\n }\n }, [showMembers]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { hide_member_emails: hideMemberEmails },\n });\n }\n }, [hideMemberEmails]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n new_member_notifications: newMemberNotifications ? \"manager\" : \"none\",\n },\n });\n }\n }, [newMemberNotifications]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n list_auto_tag: listAutoTag,\n },\n });\n }\n }, [listAutoTag]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n allow_members_to_create_tags: allowMembersToCreateTags,\n },\n });\n }\n }, [allowMembersToCreateTags]);\n\n useEffect(() => {\n if (propsLoaded.current && !podSize) {\n onUpdate({ size: null });\n }\n }, [podSize]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ size: podSizeValue });\n }\n }, [podSizeValue]);\n\n useEffect(() => {\n const originalParentsSlugs = originalParents.current.map(\n (item) => item.value\n );\n if (\n propsLoaded.current &&\n !arraysAreEqual(parentCircles, originalParentsSlugs)\n ) {\n let message = `This space will become a child of:

${selectedParents.current\n .map((item) => `${item.label}`)\n .join(\"

\")}

`;\n\n if (selectedParents.current.length == 0) {\n message =\n \"This action will make this space a top level space\";\n }\n\n Swal.fire({\n title: \"Are you sure?\",\n html: message,\n showDenyButton: true,\n confirmButtonText: \"Yes, update\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: colors.blue,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n onUpdate({ parent_circles: parentCircles });\n originalParents.current = [...selectedParents.current];\n } else {\n setParentCircles(originalParentsSlugs);\n selectedParents.current = [...originalParents.current];\n }\n });\n }\n }, [parentCircles]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n sidebar_default_opened: sidebarDefaultOpened,\n },\n });\n }\n }, [sidebarDefaultOpened]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { sidebar_hide_children: sidebarHideChildren },\n });\n }\n }, [sidebarHideChildren]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { allow_comments: allowComments },\n });\n }\n }, [allowComments]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { redirect_to_space: redirectToSpace },\n });\n }\n }, [redirectToSpace]);\n\n useEffect(() => {\n if (allowCompletions && !canActivateCompletions[0] && propsLoaded.current) {\n setAllowCompletions(false);\n setOpened([true, canActivateCompletions[1], canActivateCompletions[2]]);\n return;\n }\n\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: { allow_completions: allowCompletions },\n });\n }\n }, [allowCompletions]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({\n pod_settings_attributes: {\n show_mark_complete_button_in_header: showMarkCompleteButtonInHeader,\n },\n });\n }\n }, [showMarkCompleteButtonInHeader]);\n\n const arraysAreEqual = (arr1, arr2) => {\n if (arr1.length !== arr2.length) {\n return false; // If the arrays have different lengths, they can't be the same.\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false; // If any elements don't match, the arrays are not equal.\n }\n }\n\n return true; // If no mismatches are found, the arrays are equal.\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onSearchChildren = (query) => {\n setSearching2(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchChildren(query);\n setSearching2(false);\n }, 1000);\n };\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n SpaceModel.onFetchManaged(\n space.slug,\n include,\n { page: 1, per: 10 },\n (data) => {\n const _spaces = [...selectedParents.current];\n for (let i = 0; i < data.length; i++) {\n _spaces.push({\n value: data[i].slug,\n label: `${data[i].name} (${data[i].slug})`,\n });\n }\n setSpaces(_spaces);\n },\n (data) => {}\n );\n };\n\n const onFetchChildren = (query = null) => {\n const ctrl = new AbortController();\n SpaceModel.onFetchDirectChildren(\n space.slug,\n [\"order=pods.created_at DESC\", \"abstract\"],\n { page: 1, per: 10 },\n [\"active\"],\n (data) => {\n const _spaces = [...selectedParents.current];\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({\n value: data.data[i].slug,\n label: `${data.data[i].name} (${data.data[i].slug})`,\n });\n }\n setChildren(_spaces);\n },\n (data) => {},\n ctrl.signal\n );\n };\n\n const onSelectedParents = (selection) => {\n setParentCircles(selection);\n selectedParents.current = [];\n for (let i = 0; i < spaces.length; i++) {\n if (selection.indexOf(spaces[i].value) >= 0) {\n selectedParents.current.push(spaces[i]);\n }\n }\n };\n\n const onFetchTags = () => {\n if (space.version == \"discussion\" || space.version == \"content\") {\n TagModel.onFetch(\n space.slug,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n } else {\n setTags([...space.tags]);\n }\n };\n\n const onTag = (action=\"\") => {\n if (action == \"delete\"){\n onFetchTags()\n }\n };\n\n const onUpdated = () => {};\n\n return (\n \n {space && space.slug && space.version == \"content\" && (\n \n
\n \n {t(\"spaces.settings.main.additional.allowMembersEdit\")}\n \n \n {t(\"spaces.settings.main.additional.membersWillAddContent\")}\n \n
\n \n setResourceEditing(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space &&\n space.slug &&\n (space.version == \"list\" || space.version == \"showcase\") && (\n \n
\n \n {t(\"spaces.settings.main.additional.allowMembersCreatePosts\")}\n \n \n {t(\"spaces.settings.main.additional.membersWillCreatePosts\")}\n \n
\n \n setResourceEditing(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && space.version == \"events\" && (\n \n
\n \n {t(\"spaces.settings.main.additional.allowMembersCreateEvents\")}\n \n \n {t(\"spaces.settings.main.additional.membersWillCreateEvents\")}\n \n
\n \n setResourceEditing(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && space.version == \"content\" && false && (\n \n \n
\n \n {t(\n \"spaces.settings.main.additional.allowMembersCreateSubspaces\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.membersWillCreateSubspaces\"\n )}\n \n
\n \n setCircleCreation(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n {circleCreation && (\n \n \n \n {t(\"spaces.settings.main.additional.membersCanCreate\")}:\n \n setCircleCreationTypes(selection)}\n />\n \n\n \n
\n \n {t(\n \"spaces.settings.main.additional.allowMembersToCopy.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.allowMembersToCopy.description2\"\n )}\n \n
\n \n setAllowMemberCopy(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n
\n )}\n
\n )}\n {space && space.slug && space.version == \"discussion\" && (\n \n
\n \n {t(\"spaces.settings.main.additional.podType.description1\")}\n \n \n {t(\"spaces.settings.main.additional.podType.description2\")}\n \n
\n setPodType(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space && space.slug && space.version == \"discussion\" && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.allowReflections.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.allowReflections.description2\"\n )}\n \n
\n \n setAllowReflections(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n \n \n
\n \n {t(\"spaces.settings.main.additional.showMembers.description1\")}\n \n \n {t(\"spaces.settings.main.additional.showMembers.description2\")}\n \n
\n setShowMembers(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n {showMembers ? (\n \n \n
\n \n {t(\n \"spaces.settings.main.additional.hideMmemberEmails.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.hideMmemberEmails.description2\"\n )}\n \n
\n \n setHideMemberEmails(!event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n
\n ) : (\n \"\"\n )}\n
\n \n
\n \n {t(\n \"spaces.settings.main.additional.newMemberNotifications.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.newMemberNotifications.description2\"\n )}\n \n
\n \n setNewMemberNotifications(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n \n \n
\n \n {t(\"spaces.settings.main.additional.podSize.description1\")}\n \n \n {t(\"spaces.settings.main.additional.podSize.description2\")}\n \n
\n setPodSize(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n {podSize ? (\n \n \n {t(\"spaces.settings.main.additional.podSizeValue.description\")}\n \n
\n handlers.current.decrement()}\n disabled={podSizeValue === podSizeMin}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={podSizeValue === podSizeMax}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n
\n ) : (\n \"\"\n )}\n
\n {space &&\n space.slug &&\n (space.version == \"content\") && (\n \n
\n \n {\"Show comment thread\"}\n \n \n {\"Display a comment thread at the bottom of this content page\"}\n \n
\n \n setAllowComments(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space &&\n space.slug &&\n (space.version == \"content\" ||\n space.version == \"list\" ||\n space.version == \"showcase\" ||\n space.version == \"events\") &&\n (!space.permissions.is_top_level || space.pod_state == \"model\") && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.sidebarDefaultOpened.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.sidebarDefaultOpened.description2\"\n )}\n \n
\n \n setSidebarDefaultOpened(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {space &&\n space.slug &&\n (space.version == \"content\" ||\n space.version == \"list\" ||\n space.version == \"showcase\" ||\n space.version == \"events\") &&\n (!space.permissions.is_top_level || space.pod_state == \"model\") && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.sidebarHideChildren.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.sidebarHideChildren.description2\"\n )}\n \n
\n \n setSidebarHideChildren(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n {/* {space && space.slug && (!space.permissions.is_top_level || space.pod_state == \"model\") && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.allowCompletions.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.allowCompletions.description2\"\n )}\n \n
\n \n setAllowCompletions(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )} */}\n {space &&\n space.slug &&\n (!space.permissions.is_top_level || space.pod_state == \"model\") && (\n \n
\n \n {t(\n \"spaces.settings.main.additional.allowCompletions.description1\"\n )}\n \n \n {t(\n \"spaces.settings.main.additional.allowCompletions.description2\"\n )}\n \n
\n \n setShowMarkCompleteButtonInHeader(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n\n {space &&\n space.slug &&\n (space.version == \"discussion\" ||\n space.version == \"content\" ||\n space.version == \"list\" ||\n space.version == \"events\" ||\n space.version == \"showcase\") && (\n \n
\n \n {\"Allow members to create their own tags\"}\n \n \n {\n \"If this setting is turned on members can create their own tags\"\n }\n \n
\n \n setAllowMembersToCreateTags(event.currentTarget.checked)\n }\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n\n {space &&\n space.slug &&\n (space.version == \"discussion\" ||\n space.version == \"content\" ||\n space.version == \"list\" ||\n space.version == \"events\" ||\n space.version == \"showcase\") && (\n \n
\n \n {\"Automatically tag posts with AI\"}\n \n \n {\n \"If this setting is turned on, new posts will get automatically tagged using AI\"\n }\n \n
\n setListAutoTag(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n )}\n\n {space &&\n space.slug &&\n (space.version == \"discussion\" ||\n space.version == \"content\" ||\n space.version == \"list\" ||\n space.version == \"events\" ||\n space.version == \"showcase\") && (\n \n \n {\"List of tags\"}\n \n \n {\n \"Manage the tags that are available in this space\"\n }\n \n\n {(space.version == \"discussion\" || space.version == \"content\") ? (\n \n ) : (\n \n )}\n \n )}\n\n \n \n {t(\"spaces.settings.main.additional.redirectToSubspace.description1\")}\n \n \n {t(\"spaces.settings.main.additional.redirectToSubspace.description2\")}\n \n \n ) : (\n \n )\n }\n disabled={disableActions}\n searchable\n clearable\n limit={100}\n mt={5}\n data={children}\n onChange={setRedirectToSpace}\n placeholder={t(\n \"spaces.settings.main.additional.parentCircles.placeholder\"\n )}\n value={redirectToSpace}\n onSearchChange={(query) => onSearchChildren(query)}\n />\n \n\n \n \n {t(\"spaces.settings.main.additional.parentCircles.description1\")}\n \n \n ) : (\n \n )\n }\n disabled={disableActions}\n searchable\n limit={100}\n mt={5}\n data={spaces}\n onChange={(selection) => onSelectedParents(selection)}\n placeholder={t(\n \"spaces.settings.main.additional.parentCircles.placeholder\"\n )}\n value={parentCircles}\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n \n
\n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n createStyles,\n TextInput,\n Textarea,\n Progress,\n Button,\n Image,\n MantineProvider,\n Group,\n} from \"@mantine/core\";\n\nimport Uploady, {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n width: \"100%\",\n },\n}));\n\nconst podSizeMin = 0;\nconst podSizeMax = 1000;\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data);\n });\n\n return progress > 0 && progress < 100 ? : \"\";\n};\n\nconst CustomUploadButton = asUploadButton((props) => {\n const { t, i18n } = useTranslation();\n return (\n \n Select image\n \n );\n});\n\nexport default function Seo(props) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n\n const [metaTitle, setMetaTitle] = useState(\"\");\n const [metaDescription, setMetaDescription] = useState(\"\");\n const [metaImage, setMetaImage] = useState(\"\");\n const [disableActions, setDisableActions] = useState(\"\");\n\n const handlers = useRef();\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n const saveTimeoutId = useRef();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (!space.slug) {\n return;\n }\n if (propsLoaded.current && space.slug == lastSpaceId.current) {\n return;\n }\n\n propsLoaded.current = false;\n // setDisableActions(true);\n lastSpaceId.current = space.slug;\n\n setMetaTitle(space.settings.meta_title);\n setMetaDescription(space.settings.meta_description);\n setMetaImage(space.settings.meta_image);\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n }, [space]);\n\n useEffect(() => {\n if (!propsLoaded.current) {\n return;\n }\n if (saveTimeoutId.current) {\n clearTimeout(saveTimeoutId.current);\n }\n\n saveTimeoutId.current = setTimeout(() => {\n props.onUpdate({\n pod_settings_attributes: {\n meta_description: metaDescription,\n meta_title: metaTitle,\n },\n });\n }, 1000);\n }, [metaDescription, metaTitle]);\n\n const onImageUploaded = (data) => {\n setMetaImage(data.url);\n };\n\n const onRemoveMetaImage = () => {\n SpaceSettingModel.onRemoveMetaImage(\n space.slug,\n (data) => {\n setMetaImage(null);\n },\n (data) => {}\n );\n };\n\n return (\n \n \n \n {t(\"spaces.settings.main.seo.title.title\")}\n \n \n {t(\"spaces.settings.main.seo.title.description\")}\n \n setMetaTitle(event.currentTarget.value)}\n />\n \n\n \n \n {t(\"spaces.settings.main.seo.description.title\")}\n \n \n {t(\"spaces.settings.main.seo.description.description\")}\n \n setMetaDescription(event.currentTarget.value)}\n />\n \n {space && space.slug && space.settings && (\n \n \n {t(\"spaces.settings.main.seo.image.title\")}\n \n \n {t(\"spaces.settings.main.seo.image.description\")}\n \n\n {metaImage && (\n \n )}\n \n \n \n \n \n {metaImage && (\n \n }\n onClick={() => onRemoveMetaImage()}\n >\n {\"Remove image\"}\n \n \n )}\n \n \n )}\n \n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n createStyles,\n TextInput,\n Group,\n NativeSelect,\n Button,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n // borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n}));\n\nconst providersData = [\n {\n value: \"facebook-pixel\",\n label: \"Facebook pixel\",\n placeholder: \"Facebook pixel ID\",\n },\n {\n value: \"google-analytics\",\n label: \"Google Analytics\",\n placeholder: \"Tracking ID (UA-XXXXXXXX-X)\",\n },\n];\n\nexport default function Scripts({onUpdate, openPremiumModal}) {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const space = useSelector((state) => state.space);\n\n const [disableActions, setDisableActions] = useState(\"\");\n const [scripts, setScripts] = useState([]);\n\n const propsLoaded = useRef();\n const lastSpaceId = useRef();\n const saveTimeout = useRef();\n\n useEffect(() => {\n return () => {\n propsLoaded.current = false;\n };\n }, []);\n\n useEffect(() => {\n\n if (!space.settings){\n return\n }\n\n propsLoaded.current = false;\n\n setScripts(\n space.settings.third_party_scripts\n ? space.settings.third_party_scripts\n : []\n );\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n\n }, [space]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n if (saveTimeout.current) {\n clearTimeout(saveTimeout.current);\n }\n\n saveTimeout.current = setTimeout(() => {\n onUpdate({\n pod_settings_attributes: { third_party_scripts: scripts },\n });\n }, 2000);\n }\n }, [scripts]);\n\n const onAddScript = () => {\n const newScripts = [...scripts];\n newScripts.push({ provider: null, id: null });\n setScripts(newScripts);\n };\n\n const onEditScript = (index, key, value) => {\n const newScripts = [...scripts];\n const script = newScripts[index];\n script[key] = value;\n setScripts(newScripts);\n };\n\n const onDeleteScript = (index) => {\n const newScripts = [...scripts];\n newScripts.splice(index, 1);\n setScripts(newScripts);\n };\n\n const getProviders = () => {\n const array = [];\n // for (let i = 0; i < providersData.length; i ++){\n\n // let exist = false\n // for (let j = 0; j < scripts.length; j++) {\n // const script = scripts[j];\n // if (script.provider == providersData[i].value){\n // exist = true\n // }\n // }\n\n // if (!exist){\n // array.push(providersData[i])\n // }\n // }\n // return array\n return providersData;\n };\n\n const getPlaceholder = (item) => {\n for (let i = 0; i < providersData.length; i++) {\n if (providersData[i].value == item.provider) {\n return providersData[i].placeholder;\n }\n }\n return \"Select a provider\";\n };\n\n const onAllScriptsValid = () => {\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts[i];\n if (!script.provider || !script.id) {\n return false;\n }\n }\n return true;\n };\n\n return (\n \n \n {\"Add third party scripts\"}\n \n {\n \"Add Google Analytics or a Facebook pixel to your registration page.\"\n }\n \n {scripts.map((item, index) => {\n return (\n \n \n onEditScript(index, \"provider\", event.currentTarget.value)\n }\n disabled={disableActions}\n />\n \n onEditScript(index, \"id\", event.currentTarget.value)\n }\n />\n onDeleteScript(index)}\n >\n X\n \n \n );\n })}\n {\n if (typeof openPremiumModal === \"function\") {\n openPremiumModal();\n } else {\n onAddScript()\n }\n }}\n disabled={!onAllScriptsValid()}\n >\n Add script\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Group,\n Text,\n Switch,\n Button,\n createStyles,\n useMantineTheme,\n Textarea,\n} from \"@mantine/core\";\n\nimport Scripts from \"./Scripts\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst useStyles = createStyles((theme) => ({\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n}));\n\nexport default function Registration({\n onUpdate,\n blockUntilRegistered,\n setBlockUntilRegistered,\n}) {\n const { t, i18n } = useTranslation();\n const theme = useMantineTheme();\n const space = useSelector((state) => state.space);\n\n const { classes } = useStyles({ theme });\n\n const propsLoaded = useRef();\n\n const [useLegacyRegistrationPage, setUseLegacyRegistrationPage] = useState(false);\n const [blockUntilRegistered2, setBlockUntilRegistered2] = useState(false);\n const [opened, setOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n const [description, setDescription] = useState(\"\");\n\n const saveTimeoutId = useRef();\n\n useEffect(() => {\n if (!space.settings) {\n return;\n }\n\n propsLoaded.current = false;\n setBlockUntilRegistered2(space.block_until_registered);\n\n setUseLegacyRegistrationPage(space.use_legacy_registration_page);\n\n setValidatePremium(\n space && space.permissions && space.permissions.can_create_registration_page\n );\n\n const plain_description = space.calendar?.plain_description;\n setDescription(typeof plain_description === \"string\" ? plain_description.replace(/
/g, \"\\n\") : \"\");\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n }, [space]);\n\n useEffect(() => {\n \n if (propsLoaded.current) {\n onUpdate({ block_until_registered: blockUntilRegistered2 });\n setBlockUntilRegistered(blockUntilRegistered2)\n }\n }, [blockUntilRegistered2]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ use_legacy_registration_page: useLegacyRegistrationPage });\n }\n }, [useLegacyRegistrationPage]);\n\n useEffect(() => {\n if (!propsLoaded.current) {\n return;\n }\n if (saveTimeoutId.current) {\n clearTimeout(saveTimeoutId.current);\n }\n\n saveTimeoutId.current = setTimeout(() => {\n onSave(description);\n }, 1000);\n }, [description]);\n\n const onEditRegistrationPage = () => {\n if(validatePremium && !validatePremium[0]) {\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n if (space && space.use_legacy_registration_page) {\n window.location.href= `/circle/${space.slug}/pages/manage/1?auth_token=${window.$currentUserAuthToken}`;\n } else {\n window.location.href= `/space/${space.slug}/registration/edit`;\n }\n };\n\n const onViewRegistrationPage = () => {\n if (space && space.use_legacy_registration_page) {\n window.open(\n `/circle/${space.slug}/register?preview=true&auth_token=${window.$currentUserAuthToken}`,\n `_blank`\n );\n } else {\n if (validatePremium) {\n if (validatePremium[0] && !blockUntilRegistered2) {\n window.open(`/space/${space.slug}/demo/start`, `_blank`);\n } else {\n window.open(`/space/${space.slug}/register?preview=true`, `_blank`);\n }\n } else {\n window.open(`/space/${space.slug}/register?preview=true`, `_blank`);\n }\n }\n };\n\n const onSave = (description) => {\n SpaceSettingModel.onUpdate(\n space.slug,\n { description },\n (data) => {},\n (data) => {}\n );\n };\n\n return (\n <>\n \n
\n \n {t(\"spaces.settings.main.main.title2\")}\n \n \n {t(\"spaces.settings.main.main.description2\")}\n \n
\n {\n if(validatePremium && !validatePremium[0]) {\n setOpened([true, validatePremium[1], validatePremium[2]]);\n } else {\n setBlockUntilRegistered2(event.currentTarget.checked)\n }\n }}\n />\n
\n {space && space.has_legacy_registration_page && (\n \n
\n \n {t(\"spaces.settings.main.main.title3\")}\n \n \n {t(\"spaces.settings.main.main.description3\")}\n \n
\n {\n if(validatePremium && !validatePremium[0]) {\n setOpened([true, validatePremium[1], validatePremium[2]]);\n } else {\n setUseLegacyRegistrationPage(event.currentTarget.checked)\n }\n }}\n />\n
\n )}\n\n \n \n \n \n\n
\n \n {/*t(\"spaces.settings.main.main.title2\")*/}\n {\"Add description for login page\"}\n \n \n {/*t(\"spaces.settings.main.main.description2\")*/}\n {\"This text will show up under the space name on the login page for this space.\"}\n \n
\n\n setDescription(event.currentTarget.value)}\n />\n\n {\n setOpened([true, validatePremium[1], validatePremium[2]]);\n } : undefined}\n />\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Box,\n Divider,\n Text,\n Group,\n Card,\n UnstyledButton,\n Button,\n createStyles,\n Input,\n Tooltip,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport SectionHeader from \"../layout/SectionHeader\";\n\nimport Swal from \"sweetalert2\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\nimport MemberModel from \"../../../../models/Member\";\n\nconst useStyles = createStyles((theme) => ({\n card: {\n backgroundColor: theme.colors.gray[0],\n },\n //\n // inner: {\n // display: 'flex',\n //\n // [theme.fn.smallerThan(350)]: {\n // flexDirection: 'column',\n // },\n // },\n //\n // ring: {\n // flex: 1,\n // display: 'flex',\n // justifyContent: 'flex-end',\n //\n // [theme.fn.smallerThan(350)]: {\n // justifyContent: 'center',\n // marginTop: theme.spacing.md,\n // },\n // },\n\n metricItem: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n borderRadius: theme.radius.md,\n padding: 10,\n backgroundColor: theme.colors.gray[0],\n transition: \"box-shadow 150ms ease, transform 100ms ease\",\n\n \"&:hover\": {\n boxShadow: `${theme.shadows.xs} !important`,\n backgroundColor: theme.white,\n transform: \"scale(1.05)\",\n },\n },\n customLinkRight: {\n backgroundColor: theme.colors.gray[2],\n display: \"flex\",\n alignItems: \"center\",\n paddingLeft: 5,\n paddingRight: 5,\n height: 36,\n borderTopLeftRadius: 5,\n borderBottomLeftRadius: 5,\n borderTop: `1px solid ${theme.colors.gray[4]}`,\n borderBottom: `1px solid ${theme.colors.gray[4]}`,\n borderLeft: `1px solid ${theme.colors.gray[4]}`,\n color: theme.colors.gray[7],\n },\n customLinkLeft: {\n backgroundColor: theme.colors.gray[2],\n display: \"flex\",\n alignItems: \"center\",\n paddingLeft: 5,\n paddingRight: 5,\n height: 36,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderTop: `1px solid ${theme.colors.gray[4]}`,\n borderBottom: `1px solid ${theme.colors.gray[4]}`,\n borderRight: `1px solid ${theme.colors.gray[4]}`,\n color: theme.colors.gray[7],\n },\n accordionTitle: {\n fontWeight: 800,\n fontSize: 40,\n color: \"red\",\n root: {\n fontWeight: 800,\n fontSize: 40,\n },\n child: {\n fontWeight: 800,\n fontSize: 40,\n },\n \"& > div > div\": {\n fontWeight: \"800 !important\",\n fontSize: \"40px !important\",\n },\n },\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n}));\n\nexport default function Top({ setInviteOpened }) {\n const navigate = useNavigate();\n const { t, i18n } = useTranslation();\n const theme = useMantineTheme();\n const { classes } = useStyles({ theme });\n const space = useSelector((state) => state.space);\n const [editLink, setEditLink] = useState(false);\n const [opened, setOpened] = useState(false);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const [urlHandle, setUrlHandle] = useState(\"\");\n const [sharebleLink, setSharebleLink] = useState(\"\");\n\n const smallScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n interested: 0,\n invitations: 0,\n payments: 0,\n earnings: 0,\n formatted_earnings: \"$0\",\n });\n\n useEffect(() => {\n if (!space.settings) {\n return;\n }\n\n setUrlHandle(space.url_handle);\n setSharebleLink(space.shareble_link);\n onFetchCounts();\n\n setValidatePremium(\n space && space.permissions && space.permissions.can_edit_shareable_link\n );\n }, [space]);\n\n useEffect(() => {\n if (editLink && !validatePremium[0]) {\n setEditLink(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n }\n }, [editLink]);\n\n const onUpdateUrlHandle = () => {\n // const urlHandle = document.getElementById(\"url_handle\").value;\n\n SpaceSettingModel.onUpdateUrlHandle(\n space.slug,\n urlHandle,\n (data) => {\n setEditLink(false);\n setSharebleLink(data.shareable_link);\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const goToMembers = (stat) => {\n let link = `/space/${space.slug}/settings/members?section=${stat.section}`;\n if (stat.scope) {\n link += `?scope=${stat.scope}`;\n }\n navigate(link);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const getStats = () => {\n const keys = Object.keys(counts);\n const stats = [];\n\n if (counts.active > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label11\"),\n value: counts.active,\n section: \"registered\",\n scope: \"all\",\n });\n }\n if (counts.pending > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label12\"),\n value: counts.pending,\n section: \"registered\",\n scope: \"pending\",\n });\n }\n if (counts.interested > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label13\"),\n value: counts.interested,\n section: \"interested\",\n });\n }\n if (counts.invitations > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label14\"),\n value: counts.invitations,\n section: \"invited\",\n });\n }\n if (counts.earnings > 0) {\n stats.push({\n label: t(\"spaces.settings.main.main.label15\"),\n value: counts.formatted_earnings,\n section: \"payments\",\n });\n }\n\n return stats;\n };\n\n return (\n <>\n \n setInviteOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.main.main.invite\")}\n \n \n }\n />\n\n \n
\n \n \n \n \n {t(\"spaces.settings.main.main.shareableLink\")}\n \n {editLink ? (\n \n setEditLink(false)}\n >\n {t(\"spaces.settings.main.main.cancelLink\")}\n \n onUpdateUrlHandle()}\n >\n {t(\"spaces.settings.main.main.saveLink\")}\n \n \n ) : (\n setEditLink(true)}\n >\n {t(\"spaces.settings.main.main.editLinkButton\")}\n \n )}\n \n {editLink ? (\n <>\n \n \n https://\n \n \n setUrlHandle(event.currentTarget.value)\n }\n placeholder={t(\"spaces.settings.main.main.subdomain\")}\n radius={0}\n sx={(theme) => ({\n width: 140,\n })}\n />\n \n {t(\"spaces.settings.main.main.sutra_co\")}\n \n \n \n ) : (\n \n onCopyLink()}\n text={sharebleLink}\n >\n \n {`${sharebleLink}`}\n \n \n \n )}\n \n {smallScreen ? (\n ({\n borderTopColor: theme.colors.gray[2],\n width: \"100%\",\n })}\n />\n ) : (\n \"\"\n )}\n\n \n {getStats().map((stat) => (\n goToMembers(stat)}\n >\n \n {stat.value}\n \n \n {stat.label}\n \n \n ))}\n \n \n
\n
\n \n );\n}\n","import React from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n MantineProvider,\n Alert\n} from '@mantine/core'\n\nexport default function Open() {\n const { t, i18n } = useTranslation();\n return (\n \n \n \n \n {t(\"spaces.settings.privacy.open.open.description\")}\n \n \n \n \n )\n}\n","import React from 'react';\nimport { useTranslation } from \"react-i18next\";\nimport {\n Text,\n Box,\n MantineProvider,\n Alert\n} from '@mantine/core'\n\nexport default function Private(props) {\n const { t, i18n } = useTranslation();\n return (\n \n \n \n \n {t(\"spaces.settings.privacy.private.private.description\")}\n \n \n \n \n )\n\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Box,\n Text,\n Group,\n MantineProvider,\n Select,\n createStyles,\n Switch,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Open from \"../privacy/Open\";\nimport Private from \"../privacy/Private\";\nimport Paid from \"../privacy/Paid\";\n\nconst useStyles = createStyles((theme) => ({\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n}));\n\nexport default function Privacy({\n onUpdate,\n privacyOptions,\n privacySelection,\n setPrivacySelection,\n}) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n const [visibility, setVisibility] = useState();\n\n const { classes } = useStyles();\n\n const propsLoaded = useRef();\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const onFetch = () => {\n \n }\n\n const displayPrivacySelection = () => {\n if (privacySelection == \"open\") {\n return ;\n } else if (privacySelection == \"private\") {\n return ;\n } else if (privacySelection == \"payment\") {\n return (\n \n );\n } else {\n return ;\n }\n };\n\n useEffect(() => {\n if (!space.settings) {\n return;\n }\n propsLoaded.current = false;\n setPrivacySelection(space.privacy_level);\n setVisibility(space.visibility == \"public\");\n\n setTimeout(() => {\n propsLoaded.current = true;\n // setDisableActions(false);\n }, 1000);\n }, [space]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ visibility: visibility ? \"public\" : \"\" });\n }\n }, [visibility]);\n\n useEffect(() => {\n if (propsLoaded.current) {\n onUpdate({ privacy_level: privacySelection });\n }\n }, [privacySelection]);\n\n return (\n \n \n \n \n\n {privacySelection != \"private\" &&\n space.slug &&\n space.belongs_to_private_or_paid_circles && (\n \n
\n \n {t(\"spaces.settings.main.main.title1\")}\n \n \n {t(\"spaces.settings.main.main.description1\")}\n \n
\n setVisibility(event.currentTarget.checked)}\n />\n
\n )}\n\n {displayPrivacySelection()}\n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Box,\n Button,\n Progress,\n Text,\n Image,\n MantineProvider,\n createStyles,\n Modal,\n Loader,\n Center,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useItemProgressListener, useItemFinishListener } from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport { setSpace } from \"../../../store/app\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport FilerobotImageEditor, {\n TABS,\n TOOLS,\n} from \"react-filerobot-image-editor\";\n\nimport Swal from \"sweetalert2\";\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data.url);\n });\n\n return (\n <>\n {progress > 0 && progress <= 100 ? (\n \n ) : (\n \"\"\n )}\n \n );\n};\n\nconst CustomUploadHeaderButton = asUploadButton((props) => {\n const { t } = useTranslation();\n return (\n }\n {...props}\n >\n {t(\"spaces.colors.headerAndLogo.addCover\")}\n \n );\n});\n\nconst CustomUploadLogoButton = asUploadButton((props) => {\n const { t } = useTranslation();\n return (\n }\n {...props}\n >\n {t(\"spaces.colors.headerAndLogo.changeLogo\")}\n \n );\n});\n\nconst useStyles = createStyles((theme, { colors }) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n appearanceButtonRoot: {\n color: theme.colors.gray[7],\n fontWeight: 400,\n fontSize: 16,\n borderRadius: 5,\n display: \"block\",\n width: \"100%\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n paddingLeft: 10,\n },\n appearanceButtonLeftIcon: {\n color: theme.colors.gray[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonInner: {\n justifyContent: \"flex-start\",\n },\n}));\n\nexport default function HeaderAndLogo(props) {\n const { t } = useTranslation();\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const { classes, cx } = useStyles({ colors });\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState([]);\n const [canUploadCover, setCanUploadCover] = useState([]);\n const [canUploadLogo, setCanUploadLogo] = useState([]);\n\n const [isImgEditorHeaderShown, setIsImgEditorHeaderShown] = useState(false);\n const [isImgEditorLogoShown, setIsImgEditorLogoShown] = useState(false);\n const htmlImageHeader = useRef();\n const htmlImageLogo = useRef();\n const fileInputHeader = useRef();\n const fileInputLogo = useRef();\n\n const [uploading, setUploading] = useState(false);\n\n useEffect(() => {\n setCanUploadCover(\n space && space.permissions && space.permissions.can_upload_cover\n );\n setCanUploadLogo(\n space && space.permissions && space.permissions.can_upload_logo\n );\n }, [space]);\n\n const handleFileInputHeader = (e) => {\n const file = e.target.files[0];\n\n if (!isFileValid(file, e.target)) {\n return;\n }\n\n htmlImageHeader.current = document.createElement(\"img\");\n\n if (file) {\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", function () {\n htmlImageHeader.current.src = reader.result;\n openImgEditorHeader();\n });\n\n reader.readAsDataURL(file);\n } else {\n // Clear the value of the file input\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n }\n };\n\n const handleFileInputLogo = (e) => {\n const file = e.target.files[0];\n\n if (!isFileValid(file, e.target)) {\n return;\n }\n\n htmlImageLogo.current = document.createElement(\"img\");\n\n if (file) {\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", function () {\n htmlImageLogo.current.src = reader.result;\n openImgEditorLogo();\n });\n\n reader.readAsDataURL(file);\n } else {\n // Clear the value of the file input\n if (fileInputLogo.current) {\n fileInputLogo.current.value = \"\";\n }\n }\n };\n\n const openImgEditorHeader = () => {\n setIsImgEditorHeaderShown(true);\n };\n\n const closeImgEditorHeader = () => {\n setIsImgEditorHeaderShown(false);\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n };\n\n const openImgEditorLogo = () => {\n setIsImgEditorLogoShown(true);\n };\n\n const closeImgEditorLogo = () => {\n setIsImgEditorLogoShown(false);\n if (fileInputLogo.current) {\n fileInputLogo.current.value = \"\";\n }\n };\n\n const isFileValid = (selectedFile, target) => {\n const maxSize = 5 * 1024 * 1024; // 5MB in bytes\n\n if (selectedFile.size > maxSize) {\n Swal.fire(\"\", \"Your image must be less than 5MB\", \"info\");\n target.value = \"\"; // Clear the selected file\n return false;\n }\n return true;\n };\n\n const onUploadHeader = (file) => {\n setUploading(true);\n SpaceModel.onUploadHeader(\n space.slug,\n file.imageBase64,\n (data) => {\n onCoverUploadFinished(data.url);\n setTimeout(() => {\n setUploading(false);\n }, 500);\n },\n (data) => {}\n );\n };\n\n const onUploadLogo = (file) => {\n setUploading(true);\n SpaceModel.onUploadLogo(\n space.slug,\n file.imageBase64,\n (data) => {\n onLogoUploadFinished(data.url);\n setTimeout(() => {\n setUploading(false);\n }, 500);\n },\n (data) => {}\n );\n };\n\n const onCoverUploadFinished = (url) => {\n const newSpace = { ...space };\n newSpace.header.url = url;\n dispatch(setSpace(newSpace));\n closeImgEditorHeader();\n };\n\n const onLogoUploadFinished = (url) => {\n const newSpace = { ...space };\n newSpace.logo.url = url;\n dispatch(setSpace(newSpace));\n closeImgEditorLogo();\n };\n\n const onRemoveHeader = () => {\n SpaceModel.onRemoveHeader(\n space.slug,\n (data) => {\n onCoverUploadFinished(null);\n },\n (data) => {}\n );\n };\n\n const onRemoveLogo = () => {\n SpaceModel.onRemoveLogo(\n space.slug,\n (data) => {\n onLogoUploadFinished(null);\n },\n (data) => {}\n );\n };\n\n const onOpenFileSelector = (event) => {\n try {\n event.target.children[0].click();\n } catch {}\n };\n\n return (\n \n {space && space.header && !space.header.url ? (\n \n {canUploadCover[0] ? (\n <>\n }\n onClick={(event) => onOpenFileSelector(event)}\n >\n \n {t(\"spaces.colors.headerAndLogo.addCover\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions\")}\n \n \n ) : (\n <>\n }\n onClick={() =>\n setOpened([true, canUploadCover[1], canUploadCover[2]])\n }\n >\n {t(\"spaces.colors.headerAndLogo.addCover\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions\")}\n \n \n )}\n \n ) : (\n \n \n \n }\n onClick={() => onRemoveHeader()}\n >\n {t(\"spaces.colors.headerAndLogo.removeCover\")}\n \n \n \n )}\n {space && space.header && !space.logo.url ? (\n \n {canUploadLogo[0] ? (\n <>\n }\n onClick={(event) => onOpenFileSelector(event)}\n >\n \n {t(\"spaces.colors.headerAndLogo.changeLogo\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions2\")}\n \n \n ) : (\n <>\n \n }\n onClick={() =>\n setOpened([true, canUploadLogo[1], canUploadLogo[2]])\n }\n >\n {t(\"spaces.colors.headerAndLogo.changeLogo\")}\n \n \n {t(\"spaces.colors.headerAndLogo.dimensions2\")}\n \n \n )}\n \n ) : (\n \n \n \n }\n onClick={() => onRemoveLogo()}\n >\n {t(\"spaces.colors.headerAndLogo.removeLogo\")}\n \n \n \n )}\n\n \n\n setIsImgEditorHeaderShown(false)}\n title={\"\"}\n zIndex={999999}\n >\n {uploading ? (\n
\n \n
\n ) : (\n \n onUploadHeader(editedImageObject, designState)\n }\n onClose={closeImgEditorHeader}\n Rotate={{ angle: 90, componentType: \"slider\" }}\n Crop={{\n ratio: 1200 / 300,\n ratioTitleKey: \"Profile picture\",\n noPresets: true,\n autoResize: true,\n }}\n defaultSavedImageQuality={0.7}\n defaultSavedImageName={\"profileImage\"}\n tabsIds={[TABS.ADJUST]} // or {['Adjust', 'Annotate', 'Watermark']}\n defaultTabId={TABS.ADJUST} // or 'Annotate'\n defaultToolId={TOOLS.TEXT} // or 'Text'\n onBeforeSave={() => false}\n />\n )}\n \n\n setIsImgEditorLogoShown(false)}\n title={\"\"}\n zIndex={999999}\n >\n {uploading ? (\n
\n \n
\n ) : (\n \n onUploadLogo(editedImageObject, designState)\n }\n onClose={closeImgEditorLogo}\n Rotate={{ angle: 90, componentType: \"slider\" }}\n Crop={{\n ratio: 360 / 120,\n ratioTitleKey: \"Profile picture\",\n noPresets: true,\n autoResize: true,\n // lockCropAreaAt: 'top-left'\n }}\n defaultSavedImageQuality={0.7}\n defaultSavedImageName={\"profileImage\"}\n tabsIds={[TABS.ADJUST]} // or {['Adjust', 'Annotate', 'Watermark']}\n defaultTabId={TABS.ADJUST} // or 'Annotate'\n defaultToolId={TOOLS.TEXT} // or 'Text'\n onBeforeSave={() => false}\n />\n )}\n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Group, Text, MantineProvider, Select } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../models/Space\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { deleteJSON } from \"../../../utils/LocalDB\";\n\nconst SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n);\n\nexport default function PageFormat(props) {\n const { t, i18n } = useTranslation();\n const [format, setFormat] = useState();\n\n const space = useSelector((state) => state.space);\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n const [opened, setOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const loading = useRef();\n\n useEffect(() => {\n if (space && space.slug) {\n setFormat(space.version);\n }\n setValidatePremium(\n space && space.permissions && space.permissions.can_set_format\n );\n }, [space]);\n\n useEffect(() => {\n if (!loading.current) {\n loading.current = true;\n return;\n }\n onChangeFormat();\n }, [format]);\n\n const onChangeFormat = () => {\n if (space && format && format != space.version) {\n if (!validatePremium[0]) {\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n SpaceModel.onUpdate(\n space.slug,\n { version: format },\n (data) => {\n props.setOpened(false);\n\n deleteJSON(\"spaces\", space.slug);\n\n setTimeout(() => {\n window.location.href= `/space/${space.slug}/${format}`;\n }, 1000);\n },\n (data) => {}\n );\n }\n };\n\n const getData = () => {\n \n const array = [];\n if (space.version != \"list\") {\n array.push({\n value: \"list\",\n label: t(\"spaces.colors.pageFormat.listLabel\"),\n description: t(\"spaces.colors.pageFormat.listDescription\"),\n });\n }\n if (\n (space.version_history.indexOf(\"content\") >= 0 &&\n [\"list\", \"events\", \"showcase\"].indexOf(space.version) >= 0) ||\n space.version == \"discussion\"\n ) {\n array.push({\n value: \"content\",\n label: t(\"spaces.colors.pageFormat.contentLabel\"),\n description: t(\"spaces.colors.pageFormat.contentDescription\"),\n });\n }\n if (space.version != \"discussion\") {\n array.push({\n value: \"discussion\",\n label: t(\"spaces.colors.pageFormat.discussionLabel\"),\n description: t(\"spaces.colors.pageFormat.discussionDescription\"),\n });\n }\n if (space.version != \"events\") {\n array.push({\n value: \"events\",\n label: t(\"spaces.colors.pageFormat.eventsLabel\"),\n description: t(\"spaces.colors.pageFormat.eventsDescription\"),\n });\n }\n if (space.version != \"showcase\") {\n array.push({\n value: \"showcase\",\n label: t(\"spaces.colors.pageFormat.showcaseLabel\"),\n description: t(\"spaces.colors.pageFormat.showcaseDescription\"),\n });\n }\n return array\n };\n\n return (\n \n \n {t(\"spaces.colors.pageFormat.description\")}\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { Switch, Group, Text, createStyles } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\nimport {\n setHiddenSidebar,\n setHiddenHeader,\n setHiddenCover,\n setHiddenTitle,\n setHiddenBreadcrumbs,\n setWideWidth,\n setSpace,\n} from \"../../../store/app\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n itemLast: {\n paddingBottom: 16,\n marginBottom: 18,\n },\n\n itemTitle: {\n fontSize: 18,\n },\n\n itemDescription: {\n fontSize: 14,\n color: theme.colors.gray[6],\n },\n\n switch: {\n \"& *\": {\n cursor: \"pointer\",\n },\n },\n\n subOptionWrap: {\n marginTop: 15,\n backgroundColor: theme.colors.gray[0],\n padding: 15,\n borderRadius: 5,\n },\n\n subOptionItem: {\n paddingBottom: 16,\n marginBottom: 18,\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n },\n\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[5] : theme.white,\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n textAlign: \"center\",\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nexport default function PageLayout(props) {\n const { t, i18n } = useTranslation();\n\n const { classes } = useStyles();\n\n const hiddenLayoutElements = useRef([]);\n const loading = useRef(false);\n\n const [sidebar, setSidebar] = useState(false);\n const [header, setHeader] = useState(false);\n const [cover, setCover] = useState(false);\n const [title, setTitle] = useState(false);\n const [breadcrumbs, setBreadcrumbs] = useState(true);\n const [opened, setOpened] = useState(false);\n const [width, setWidth] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const space = useSelector((state) => state.space);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (space && space.slug) {\n loading.current = true;\n if (window.$hiddenLayoutElements) {\n hiddenLayoutElements.current = [...window.$hiddenLayoutElements];\n } else {\n hiddenLayoutElements.current = [...space.hidden_layout_elements];\n }\n\n setSidebar(hiddenLayoutElements.current.indexOf(\"sidebar\") >= 0);\n setHeader(hiddenLayoutElements.current.indexOf(\"header\") >= 0);\n setCover(hiddenLayoutElements.current.indexOf(\"cover\") >= 0);\n setTitle(hiddenLayoutElements.current.indexOf(\"title\") >= 0);\n setBreadcrumbs(hiddenLayoutElements.current.indexOf(\"breadcrumbs\") >= 0);\n setWidth(space.space_width == \"wide\");\n\n setValidatePremium(\n space && space.permissions && space.permissions.can_set_layout\n );\n setTimeout(() => {\n loading.current = false;\n }, 1000);\n }\n }, [space]);\n\n useEffect(() => {\n if (sidebar && !validatePremium[0] && !loading.current) {\n setSidebar(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (sidebar) {\n if (!isHidden(\"sidebar\")) {\n hiddenLayoutElements.current.push(\"sidebar\");\n }\n } else {\n if (isHidden(\"sidebar\")) {\n removeHiddenLayoutElements(\"sidebar\");\n }\n }\n onSave();\n }, [sidebar]);\n\n useEffect(() => {\n if (header && !validatePremium[0] && !loading.current) {\n setHeader(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (header) {\n if (!isHidden(\"header\")) {\n hiddenLayoutElements.current.push(\"header\");\n }\n } else {\n if (isHidden(\"header\")) {\n removeHiddenLayoutElements(\"header\");\n }\n }\n onSave();\n }, [header]);\n\n useEffect(() => {\n if (cover && !validatePremium[0] && !loading.current) {\n setCover(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (cover) {\n if (!isHidden(\"cover\")) {\n hiddenLayoutElements.current.push(\"cover\");\n }\n } else {\n if (isHidden(\"cover\")) {\n removeHiddenLayoutElements(\"cover\");\n }\n }\n onSave();\n }, [cover]);\n\n useEffect(() => {\n if (title && !validatePremium[0] && !loading.current) {\n setTitle(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (title) {\n if (!isHidden(\"title\")) {\n hiddenLayoutElements.current.push(\"title\");\n }\n } else {\n if (isHidden(\"title\")) {\n removeHiddenLayoutElements(\"title\");\n }\n }\n onSave();\n }, [title]);\n\n useEffect(() => {\n if (breadcrumbs && !validatePremium[0] && !loading.current) {\n setBreadcrumbs(false);\n setOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n\n if (breadcrumbs) {\n if (!isHidden(\"breadcrumbs\")) {\n hiddenLayoutElements.current.push(\"breadcrumbs\");\n }\n } else {\n if (isHidden(\"breadcrumbs\")) {\n removeHiddenLayoutElements(\"breadcrumbs\");\n }\n }\n onSave();\n }, [breadcrumbs]);\n\n useEffect(() => {\n if (loading.current) {\n return;\n }\n onSaveWidth();\n const auxSpace = { ...space };\n auxSpace.space_width = width ? \"wide\" : \"narrow\";\n dispatch(setSpace(auxSpace));\n window.$spaceWideWidth = width;\n setTimeout(() => {\n window.location.reload();\n }, 500);\n }, [width]);\n\n const isHidden = (element) => {\n return hiddenLayoutElements.current.indexOf(element) >= 0;\n };\n\n const removeHiddenLayoutElements = (element) => {\n const index = hiddenLayoutElements.current.indexOf(element);\n if (index >= 0) {\n hiddenLayoutElements.current.splice(index, 1);\n }\n };\n\n const onSaveWidth = () => {\n SpaceSettingModel.onUpdate(\n space.slug,\n {\n pod_settings_attributes: {\n space_width: width ? \"wide\" : \"narrow\",\n },\n },\n (data) => {},\n (data) => {}\n );\n };\n\n const onSave = () => {\n if (loading.current) {\n return;\n }\n window.$hiddenLayoutElements = [...hiddenLayoutElements.current];\n SpaceModel.onUpdate(\n space.slug,\n {\n hidden_layout_elements: [...hiddenLayoutElements.current],\n space_width: width ? \"wide\" : \"narrow\",\n },\n (data) => {\n const newSpace = { ...space };\n\n // dispatch(\n // setHiddenSidebar({\n // hidden: hiddenLayoutElements.current.indexOf(\"sidebar\") >= 0,\n // })\n // );\n\n // if (hiddenLayoutElements.current.indexOf(\"header\") >= 0) {\n // dispatch(\n // setHiddenHeader({\n // hidden: space.permissions.can_manage ? \"admin\" : true,\n // })\n // );\n // } else {\n // dispatch(setHiddenHeader({ hidden: false }));\n // }\n // dispatch(\n // setHiddenCover({\n // hidden: hiddenLayoutElements.current.indexOf(\"cover\") >= 0,\n // })\n // );\n // dispatch(\n // setHiddenTitle({\n // hidden: hiddenLayoutElements.current.indexOf(\"title\") >= 0,\n // })\n // );\n // dispatch(\n // setHiddenBreadcrumbs({\n // hidden: hiddenLayoutElements.current.indexOf(\"breadcrumbs\") >= 0,\n // })\n // );\n // dispatch(setWideWidth({ on: width }));\n },\n (data) => {}\n );\n };\n\n return (\n <>\n \n
\n \n {t(\"spaces.colors.pageLayout.widePage\")}\n \n \n {\"Content on this page will display wider.\"}\n \n
\n setWidth(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n\n \n
\n \n {t(\"spaces.colors.pageLayout.hideSidebar\")}\n \n \n {\"The sidebar will no longer be accessible on this page.\"}\n \n
\n setSidebar(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n\n \n
\n \n {t(\"spaces.colors.pageLayout.hideHeader\")}\n \n \n {\"The header on this page will only be visible to managers.\"}\n \n
\n setHeader(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n\n \n
\n \n {t(\"spaces.colors.pageLayout.hideCoverImage\")}\n \n \n {\"The cover image will not be visible on this page.\"}\n \n
\n setCover(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n\n \n
\n \n {t(\"spaces.colors.pageLayout.hidePageTitle\")}\n \n \n {\"The page title will not show up at the top of the page.\"}\n \n
\n setTitle(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n\n \n
\n \n {t(\"spaces.colors.pageLayout.hideBreadcrumbs\")}\n \n \n {\"The breadcrumb navigation links will not be visible at the top of this page.\"}\n \n
\n setBreadcrumbs(event.currentTarget.checked)}\n onLabel=\"ON\"\n offLabel=\"OFF\"\n className={classes.switch}\n size=\"lg\"\n />\n
\n\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n ColorInput,\n InputWrapper,\n Box,\n Group,\n Accordion,\n Image,\n Text,\n Grid,\n MantineProvider,\n createStyles,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../../models/Space\";\nimport HeaderAndLogo from \"./HeaderAndLogo\";\nimport PageFormat from \"./PageFormat\";\nimport PageLayout from \"./PageLayout\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { setColors } from \"../../../store/app\";\n\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport Swal from \"sweetalert2\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderBottom: \"none\",\n },\n control: {\n paddingTop: 0,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 16,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n icon: {\n // marginRight: 8,\n // marginLeft: -5\n },\n content: {\n backgroundColor: theme.colors.gray[0],\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n}));\n\nexport default function Form(props) {\n const { classes, cx, theme } = useStyles();\n const dispatch = useDispatch();\n\n const { t } = useTranslation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n\n const [themes, setThemes] = useState({});\n const [selectedTheme, setSelectedTheme] = useState(null);\n\n const [opened, setOpened] = useState(false);\n const [validatePremiumTheme, setValidatePremiumTheme] = useState(false);\n const [validatePremiumLayout, setValidatePremiumLayout] = useState(false);\n const [validatePremiumFormat, setValidatePremiumFormat] = useState(false);\n\n useEffect(() => {\n onFetch();\n }, []);\n\n useEffect(() => {\n onSelectedTheme(colors);\n }, [colors]);\n\n useEffect(() => {\n setValidatePremiumTheme(\n space && space.permissions && space.permissions.can_set_theme\n );\n setValidatePremiumLayout(\n space && space.permissions && space.permissions.can_set_layout\n );\n setValidatePremiumFormat(\n space && space.permissions && space.permissions.can_set_format\n );\n }, [space]);\n\n const form = useForm({\n initialValues: {\n ...defaultSpaceColors,\n },\n });\n\n const onFetch = () => {\n SpaceModel.onFetchThemes(\n (data) => {\n setThemes(data);\n },\n (data) => {}\n );\n };\n\n const onSelectedTheme = (theme) => {\n setSelectedTheme(theme.id);\n\n form.setFieldValue(\"header_color\", theme.header_color);\n form.setFieldValue(\"header_link_color\", theme.header_link_color);\n form.setFieldValue(\n \"primary_button_background_color\",\n theme.primary_button_background_color\n );\n form.setFieldValue(\n \"primary_button_text_color\",\n theme.primary_button_text_color\n );\n form.setFieldValue(\n \"secondary_button_background_color\",\n theme.secondary_button_background_color\n );\n form.setFieldValue(\n \"secondary_button_text_color\",\n theme.secondary_button_text_color\n );\n form.setFieldValue(\"background_color\", theme.background_color);\n form.setFieldValue(\"default_text_color\", theme.default_text_color);\n form.setFieldValue(\n \"secondary_background_color\",\n theme.secondary_background_color\n );\n form.setFieldValue(\"sub_header_text_color\", theme.sub_header_text_color);\n form.setFieldValue(\n \"sidebar_background_color\",\n theme.sidebar_background_color\n );\n form.setFieldValue(\"sidebar_text_color\", theme.sidebar_text_color);\n form.setFieldValue(\"default_link_color\", theme.default_link_color);\n form.setFieldValue(\"default_badge_color\", theme.default_badge_color);\n form.setFieldValue(\n \"default_badge_text_color\",\n theme.default_badge_text_color\n );\n };\n\n const onSave = (values) => {\n if (!validatePremiumTheme[0]) {\n setOpened([true, validatePremiumTheme[1], validatePremiumTheme[2]]);\n return;\n }\n SpaceModel.onSaveColors(\n space.slug,\n values,\n (data) => {\n dispatch(setColors({ ...values }));\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const onReset = () => {\n SpaceModel.onSaveColors(\n space.slug,\n defaultSpaceColors,\n (data) => {\n dispatch(setColors({ ...defaultSpaceColors }));\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n return (\n \n onSave(values))}\n style={{ height: \"100%\" }}\n >\n \n \n } styles={{\n item: {\n border: \"1px solid #dee2e6\",\n marginBottom: \"10px\",\n borderRadius: \"10px\",\n \"&:hover\": {\n borderRadius: \"10px\",\n }\n },\n control: {\n \"&:hover\": {\n borderRadius: \"10px\",\n }\n },\n content: {\n paddingLeft: \"5px\"\n }\n }}\n >\n \n \n \n {t(\"spaces.colors.form.colorTheme\")}\n ) : (\n \n {t(\"spaces.colors.form.colorTheme\")}\n ({\n padding: \"3px 3px\",\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n borderRadius: 10,\n fontSize: 10,\n })}\n >\n \n \n \n )\n }\n >\n \n {Object.keys(themes).map((theme) => {\n return (\n \n onSelectedTheme(themes[theme])}\n >\n \n {themes[theme].title}\n \n \n );\n })}\n \n\n ({\n borderRadius: 10,\n borderBottom: \"none\",\n border: \"solid 1px #f1f1f1\",\n })}\n styles={{\n item: {\n borderBottom: \"none\",\n },\n control: {\n borderRadius: 10,\n },\n }}\n >\n \n \n {Object.keys(defaultSpaceColors).map((inputName) => {\n return (\n \n \n \n );\n })}\n \n \n \n \n \n \n \n onReset()}\n >\n {t(\"spaces.colors.form.resetColor\")}\n \n \n \n \n \n\n {t(\"spaces.colors.form.pageLayout\")}\n ) : (\n \n {t(\"spaces.colors.form.pageLayout\")}\n ({\n padding: \"3px 3px\",\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n borderRadius: 10,\n fontSize: 10,\n })}\n >\n \n \n \n )\n }\n >\n \n \n {t(\"spaces.colors.form.pageFormat\")}\n ) : (\n \n {t(\"spaces.colors.form.pageFormat\")}\n ({\n padding: \"3px 3px\",\n backgroundColor: theme.colors.green[6],\n color: \"#fff\",\n borderRadius: 10,\n fontSize: 10,\n })}\n >\n \n \n \n )\n }\n >\n \n \n \n \n \n \n\n \n \n );\n}\n","import React, { useState } from \"react\";\nimport {\n\n Box,\n\n Button,\n\n Group,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../../../../models/Space\";\n\nexport default function AddSimple(props) {\n const space = useSelector((state) => state.space);\n const [stepSlug, setStepSlug] = useState(null);\n const { t, i18n } = useTranslation();\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate({\n object_type: \"pod\",\n object_id: space.id,\n });\n } else {\n props.onCreate({\n object_type: \"pod\",\n object_id: space.id,\n });\n }\n };\n\n const onDestroy = (event) => {\n SpaceModel.onDestroy(\n props.step.id,\n (data) => {\n props.onDestroy(event);\n },\n (data) => {}\n );\n };\n\n return (\n \n {props.mode === \"edit\" ? (\n \n onSend(event)}\n type=\"submit\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.deleteButton\")}\n \n \n ) : (\n onSend(event)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton2\")}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Text,\n Box,\n MantineProvider,\n Select,\n Button,\n TextInput,\n\n Group\n} from '@mantine/core'\n\nimport { useForm } from '@mantine/form';\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport BroadcastModel from '../../../../../models/Broadcast'\n\nimport ManagerModel from '../../../../../models/Manager'\n\nimport TiptapInline from '../../../../tiptap/components/TiptapInline'\n\nexport default function EditEmail(props) {\n\n // const [sendTo, setSendTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n const [broadcast, setBroadcast] = useState()\n const [managers, setManagers] = useState([])\n const { t, i18n } = useTranslation()\n const space = useSelector(state => state.space);\n const loaded = useRef(false)\n\n\n\n useEffect(() => {\n if (props.step){\n onFetch()\n }\n }, [props])\n\n const sendEmailTo = () => {\n return props.trigger === \"interested\" ? \"interested\" : props.trigger === \"registered\" ? \"members\" : \"interested-members\"\n }\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n content_json: \"\",\n send_as: \"\",\n send_email_to: sendEmailTo(),\n email_address: \"\",\n status: \"journey_draft\"\n },\n\n validate: {\n title: (value) => value.length > 0 ? null : \"Write a title\",\n content: (value) => value.length > 0 ? null : \"Add some content\",\n },\n });\n\n const onFetch = () => {\n\n form.setFieldValue(\"send_as\", props.step.send_as)\n form.setFieldValue(\"send_email_to\", props.step.send_email_to)\n form.setFieldValue(\"email_address\", props.step.email_address)\n\n if (props.step.object_id) {\n BroadcastModel.onFetchById(props.step.object_id, space.slug, (data) => {\n loaded.current = true\n setBroadcast({...data})\n\n form.setFieldValue(\"title\", data.title)\n form.setFieldValue(\"content\", data.content)\n form.setFieldValue(\"content_json\", data.content_json)\n }, (data) => {\n\n })\n }\n else{\n loaded.current = true\n }\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const _managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: `${item.full_name} (${item.username})`\n }\n ))\n setManagers(_managers)\n }, (data) => {\n })\n\n }\n\n const onSave = (status=null) => {\n const broadcast_params = {\n title: form.values.title,\n content: form.values.content,\n content_json: form.values.content_json,\n user_id: form.values.send_as,\n status: form.values.status\n }\n\n const step_params = {\n send_as: form.values.send_as,\n send_email_to: form.values.send_email_to,\n email_address: form.values.email_address\n }\n\n if (props.step && props.step.object_id){\n BroadcastModel.onUpdate(props.step.object_id, space.slug, broadcast_params, (data) => {\n // Swal.fire(data.title, data.message, \"success\")\n //\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n props.onUpdate(step_params)\n }\n else{\n BroadcastModel.onCreate(space.slug, broadcast_params, (data) => {\n const _step_params = { ...step_params, object_id: data.id }\n props.onUpdate(_step_params)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n }\n }\n\n const onSend = () => {\n onSave(\"\")\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content_json\", content.content)\n form.setFieldValue(\"content\", html)\n }\n\n if (!loaded.current){\n return null\n }\n\n return (\n \n onSend(values))}>\n \n \n\n \n\n \n {\"Use {{first_name}}, {{last_name}}, {{start_date}}, {{event_link}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"}\n \n\n \n\n\n \n\n\n { form.values.send_email_to == \"custom\" && (\n \n )}\n\n \n \n }\n >\n {t(\"spaces.settings.registration.steps.editEmail.saveButton\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editEmail.deleteButton\")}\n \n \n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Text,\n Box,\n MantineProvider,\n\n Button,\n\n Group\n} from '@mantine/core'\n\nimport { useForm } from '@mantine/form';\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport BroadcastModel from '../../../../../models/Broadcast'\nimport ManagerModel from '../../../../../models/Manager'\n\nimport TiptapInline from '../../../../tiptap/components/TiptapInline'\n\nexport default function EditEmail(props) {\n\n // const [sendTo, setSendTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n const [broadcast, setBroadcast] = useState()\n const [managers, setManagers] = useState([])\n const { t, i18n } = useTranslation()\n const space = useSelector(state => state.space);\n const user = useSelector(state => state.user);\n const loaded = useRef(false)\n\n\n\n useEffect(() => {\n // if (props.step){\n // }\n onFetch()\n }, [props])\n\n const sendEmailTo = () => {\n return \"registered\"\n }\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n content_json: \"\",\n send_as: \"\",\n send_email_to: sendEmailTo(),\n email_address: \"\",\n status: \"journey_draft\"\n },\n\n validate: {\n title: (value) => value.length > 0 ? null : \"Write a title\",\n content: (value) => value.length > 0 ? null : \"Add some content\",\n },\n });\n\n const onFetch = () => {\n\n \n if (props.step && props.step.object_id) {\n // form.setFieldValue(\"send_as\", props.step.send_as)\n // form.setFieldValue(\"send_email_to\", props.step.send_email_to)\n // form.setFieldValue(\"email_address\", props.step.email_address)\n BroadcastModel.onFetchById(props.step.object_id, space.slug, (data) => {\n loaded.current = true\n setBroadcast({...data})\n\n form.setFieldValue(\"title\", data.title)\n form.setFieldValue(\"content\", data.content)\n form.setFieldValue(\"content_json\", data.content_json)\n }, (data) => {\n \n })\n }\n else{\n form.setFieldValue(\"title\", \"Automated direct message\")\n form.setFieldValue(\"send_as\", user.id)\n loaded.current = true\n }\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const _managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: item.full_name\n }\n ))\n setManagers(_managers)\n }, (data) => {\n })\n\n }\n\n const onSave = (status=null) => {\n const broadcast_params = {\n title: form.values.title,\n content: form.values.content,\n content_json: form.values.content_json,\n user_id: form.values.send_as,\n status: form.values.status\n }\n\n const step_params = {\n send_as: form.values.send_as,\n send_email_to: form.values.send_email_to,\n email_address: form.values.email_address\n }\n\n if (props.step && props.step.object_id){\n BroadcastModel.onUpdate(props.step.object_id, space.slug, broadcast_params, (data) => {\n // Swal.fire(data.title, data.message, \"success\")\n //\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n props.onUpdate(step_params)\n }\n else{\n BroadcastModel.onCreate(space.slug, broadcast_params, (data) => {\n const _step_params = { ...step_params, object_id: data.id }\n props.onCreate(_step_params)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n }\n }\n\n const onSend = () => {\n onSave(\"\")\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content_json\", content.content)\n form.setFieldValue(\"content\", html)\n }\n\n if (!loaded.current){\n return null\n }\n\n return (\n \n onSend(values))}>\n \n\n \n\n \n {\"Use {{first_name}}, {{last_name}}, {{start_date}}, {{event_link}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"}\n \n\n \n \n }\n >\n {t(\"spaces.settings.registration.steps.editEmail.saveButton\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editEmail.deleteButton\")}\n \n \n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group,\n Loader\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function AddToExistingSpace(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false)\n const { t, i18n } = useTranslation();\n const searchTimeoutId = useRef();\n const selectedParents = useRef([]);\n const auxSpaces = useRef([])\n\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [props])\n\n const onFetchSpaces = (query=null) => {\n auxSpaces.current = []\n\n const include = [\"members\", \"simple\"]\n if (query){\n include.push(`q=${query}`)\n }\n\n SpaceModel.onFetchDeepChildren(space.slug, include, {page: 1, per: 10}, [\"active_or_pending\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n auxSpaces.current.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n setSpaces([...auxSpaces.current])\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchManaged([], include, {page: 1, per: 10}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = auxSpaces.current.findIndex(x => x.value==data[i].id);\n index === -1 && (\n auxSpaces.current.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n }\n\n setSpaces([...auxSpaces.current])\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n console.log(\"form.values 22: \", form.values)\n props.onCreate(form.values)\n }\n\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true)\n if (searchTimeoutId.current){\n clearTimeout(searchTimeoutId.current)\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query)\n setSearching(false)\n }, 1000)\n }\n\n return (\n \n onSend(values))}>\n \n : }\n label={t(\"spaces.settings.registration.steps.addToExistingSpace.label\")}\n searchable\n mt={20}\n data={spaces}\n placeholder={t(\"spaces.settings.registration.steps.addToExistingSpace.placeholder\")}\n {...form.getInputProps('object_id')}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n\n Button,\n TextInput,\n Group\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from \"../../../../../models/Space\";\n\nexport default function AddToNewSpace(props) {\n\n const space = useSelector(state => state.space);\n const [stepSlug, setStepSlug] = useState(null)\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n intention: \"\",\n version: \"discussion\",\n privacy_level: \"private\",\n pod_state: \"model\",\n },\n\n validate: {\n intention: (value) => value.length > 0 ? null : \"Please add a name for your space\",\n }\n });\n\n useEffect(() => {\n if (props.mode === \"edit\") {\n onFetchSpace()\n }\n }, [props])\n\n const onFetchSpace = () => {\n if (props.step) {\n SpaceModel.onFetchSimple(props.step.object_id, \"basic\", (data) => {\n form.setFieldValue(\"intention\", data.name)\n setStepSlug(data.slug)\n }, (data) => {\n\n })\n }\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n SpaceModel.onUpdate(stepSlug, form.values, (data) => {\n props.onUpdate({\n object_type: \"pod\",\n object_id: props.step.object_id\n })\n }, (data) => {\n })\n } else {\n SpaceModel.onCreate(form.values, space.id, (data) => {\n props.onCreate({\n object_type: \"pod\",\n object_id: data.id\n })\n }, (data) => {\n })\n }\n }\n\n const onDestroy = (event) => {\n SpaceModel.onDestroy(stepSlug, (data) => {\n props.onDestroy(event)\n }, (data) => {\n\n })\n }\n\n return (\n \n onSend(values))}>\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton1\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group,\n Loader\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function AddFromSubSpace(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false)\n\n const searchTimeoutId = useRef();\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [])\n\n const onFetchSpaces = () => {\n const _spaces = []\n\n SpaceModel.onFetchChildren(space.slug, [\"members\"], {page: 1, per: 50}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchByScope(\"managed\", [\"members\", \"simple\"], {page: 1, per: 100}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = _spaces.findIndex(x => x.value==data[i].id);\n index === -1 && (\n _spaces.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n setSpaces(_spaces)\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n props.onCreate(form.values)\n }\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true)\n if (searchTimeoutId.current){\n clearTimeout(searchTimeoutId.current)\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query)\n setSearching(false)\n }, 1000)\n }\n\n return (\n \n onSend(values))}>\n \n : }\n label={t(\"spaces.settings.registration.steps.addFromSubSpace.label\")}\n description={t(\"spaces.settings.registration.steps.addFromSubSpace.description\")}\n searchable\n mt={20}\n data={spaces}\n placeholder={t(\"spaces.settings.registration.steps.addFromSubSpace.placeholder\")}\n {...form.getInputProps('object_id')}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.saveButton\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.saveButton2\")}\n \n )\n }\n \n\n \n )\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n\n Button,\n\n} from '@mantine/core'\n\n\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport StructureModel from '../../../../../models/Structure';\n\nimport Broadcaster from \"../../../../../helpers/Broadcaster\";\n\n\nexport default function EditStructure(props) {\n\n const [html, setHtml] = useState(\"\")\n\n const { t, i18n } = useTranslation();\n const space = useSelector(state => state.space);\n const [structureId, setStructureId] = useState(0)\n\n useEffect(() => {\n onFetch()\n }, [])\n\n const onFetch = () => {\n if (props.step && props.step.object_id) {\n setStructureId(props.step.object_id)\n } else {\n const structure_params = { title: \"New structure\" }\n\n StructureModel.onCreate(space.slug, structure_params, (data) => {\n setStructureId(data.id)\n props.onUpdate({ object_id: data.id }, false)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n }\n\n Broadcaster.receive(\"settings_closeModal\", document.body, () => {\n props.onUpdate()\n })\n\n return (() => {\n Broadcaster.unRegisterElement(\"settings_closeModal\", document.body)\n })\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n return (\n
\n \n {props.step && structureId && structureId !== 0 ? (\n \n ) : (\n \n )}\n onDestroy(event)}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.editStructure.deleteButton\")}\n \n
\n )\n\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function ApplyTemplate(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [])\n\n const onFetchSpaces = () => {\n const _spaces = []\n\n SpaceModel.onFetchChildren(space.slug, [\"members\"], {page: 1, per: 50}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchByScope(\"managed\", [\"members\", \"simple\"], {page: 1, per: 100}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = _spaces.findIndex(x => x.value==data[i].id);\n index === -1 && (\n _spaces.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n setSpaces(_spaces)\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n props.onCreate(form.values)\n }\n }\n\n return (\n \n onSend(values))}>\n \n \n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n Text,\n Box,\n MantineProvider,\n\n Button,\n\n Group,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceSettingModel from \"../../../../../models/SpaceSetting\";\nimport TiptapInline from \"../../../../tiptap/components/TiptapInline\";\n\nimport ViewModel from \"../../../../../models/View\";\n\nexport default function SetToPending(props) {\n const theme = useMantineTheme();\n const [settings, setSettings] = useState(null);\n const [pendingMessage, setPendingMessage] = useState(\"\");\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n const form = useForm({\n initialValues: {\n pending_message: \"\",\n },\n\n \n });\n\n useEffect(() => {\n console.log(pendingMessage);\n }, [pendingMessage]);\n\n useEffect(() => {\n if (props.settings && props.settings.slug) {\n\n ViewModel.onFetchRaw(\"pending_member_view\", space.slug, (data) => {\n const content = data.content ? data.content : \"\"\n setPendingMessage([...content]);\n form.setFieldValue(\"pending_message\", [...content]);\n }, (data) => {\n \n })\n\n setSettings({ ...props.settings });\n }\n }, [props]);\n\n // const onFetch = () => {\n\n // SpaceSettingModel.onFetch(space.slug, (data) => {\n\n // }, (data) => {\n\n // })\n // }\n\n const onSend = () => {\n debugger\n const params = {\n block_until_approved: true,\n pod_settings_attributes: {\n pending_message: form.values.pending_message,\n },\n };\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {\n if (props.mode === \"edit\") {\n props.onUpdate();\n } else {\n props.onCreate();\n }\n },\n (data) => {}\n );\n };\n\n const onDestroy = (event) => {\n const params = { block_until_approved: false };\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {},\n (data) => {}\n );\n\n props.onDestroy(event);\n };\n\n const onContentUpdate = (contentJson, html, callback, isEmpty) => {\n form.setFieldValue(\"pending_message\", contentJson.content);\n // setPendingMessage(contentJson)\n };\n\n return (\n \n
onSend(values))}>\n \n \n {t(\"spaces.settings.registration.steps.setToPending.title\")}\n \n \n {t(\"spaces.settings.registration.steps.setToPending.description\")}\n \n {(pendingMessage || props.mode != \"edit\") && (\n \n )}\n \n {\n \"Use {{first_name}}, {{last_name}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"\n }\n \n \n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.setToPending.saveButton1\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.setToPending.deleteButton\")}\n \n \n ) : (\n }\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.setToPending.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Box, Button } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SurveyModel from \"../../../../../models/Survey\";\nimport CreateSurveyForm from \"../../surveys/CreateSurveyForm\";\n\nexport default function EditSurvey(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [survey, setSurvey] = useState(null);\n const [surveyId, setSurveyId] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const mounted = useRef(false);\n\n useEffect(() => {\n if (props.step && !loading && !mounted.current) {\n setSurveyId(props.step.object_id);\n setLoading(true);\n onFetch();\n mounted.current = true;\n }\n }, [props]);\n\n const onFetch = () => {\n if (props.step && props.step.object_id) {\n SurveyModel.onFetchById(\n props.step.object_id,\n space.slug,\n (data) => {\n setSurvey(data);\n setLoading(false);\n },\n (data) => {}\n );\n } else if (!loading && !props.step.object_id) {\n const survey_params = { title: \"New survey\" };\n\n SurveyModel.onCreate(\n space.slug,\n survey_params,\n (data) => {\n SurveyModel.onFetchById(\n data.id,\n space.slug,\n (data) => {\n setSurvey(data);\n setLoading(false);\n },\n (data) => {}\n );\n\n props.onUpdate({ object_id: data.id }, false);\n },\n (data) => {}\n );\n }\n };\n\n const onUpdate = () => {};\n\n const onDestroy = (event) => {\n props.onDestroy(event);\n };\n\n if (loading) {\n return null;\n }\n\n return (\n \n onDestroy(event)}\n mt={15}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editSurvey.deleteButton\")}\n \n }\n />\n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { Group, Box, MantineProvider, Button, TextInput } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport WebhookModel from \"../../../../../models/Webhook\";\n\nconst paramsOptions = [\n { label: \"First name\", value: \"first_name\" },\n { label: \"Last name\", value: \"last_name\" },\n { label: \"Username\", value: \"username\" },\n { label: \"Email\", value: \"email\" },\n { label: \"Event date\", value: \"created_at\" },\n];\n\nexport default function Webhook(props) {\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n console.log(\"trigger: \", props.trigger);\n if (props.webhookId && space && space.slug) {\n onFetchById();\n }\n if (space && space.slug) {\n form.setFieldValue(\"name\", `Webhook ${space.slug}`);\n }\n }, [props]);\n\n const form = useForm({\n initialValues: {\n name: \"\",\n url: \"\",\n params: [\"first_name\", \"last_name\", \"email\", \"username\", \"created_at\"],\n },\n\n validate: {\n name: (value) =>\n value.length > 0 ? null : \"Please write a name for this webhook\",\n url: (value) => (value.length > 0 ? null : \"Please add a webhook url\"),\n params: (value) =>\n value.length > 0\n ? null\n : \"Please select at least one parameter for this webhook\",\n },\n });\n\n const onFetchById = () => {\n WebhookModel.onFetchById(\n props.webhookId,\n space.slug,\n (data) => {\n form.setFieldValue(\"name\", data.name);\n form.setFieldValue(\"url\", data.url);\n form.setFieldValue(\"params\", data.params);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n if (props.webhookId) {\n WebhookModel.onUpdate(\n props.webhookId,\n space.slug,\n { ...form.values },\n (data) => {\n // form.setFieldValue(\"name\", \"\");\n // form.setFieldValue(\"url\", \"\");\n // form.setFieldValue(\"params\", [\"first_name\", \"last_name\", \"email\", \"created_at\"]);\n props.onUpdate({ object_type: \"webhook\" });\n },\n (data) => {}\n );\n } else {\n WebhookModel.onCreate(\n space.slug,\n { ...form.values },\n (data) => {\n // form.setFieldValue(\"name\", \"\");\n // form.setFieldValue(\"url\", \"\");\n // form.setFieldValue(\"params\", [\"first_name\", \"last_name\", \"email\", \"created_at\"]);\n props.onCreate({ object_type: \"webhook\", object_id: data.id });\n },\n (data) => {}\n );\n }\n };\n\n return (\n \n
onSave(values))}>\n \n {/* */}\n \n {/* */}\n \n \n }\n mt={25}\n radius=\"xl\"\n fullWidth={!props.webhookId}\n >\n {t(\"spaces.settings.registration.steps.webhook.saveButton\")}\n \n {props.webhookId && (\n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.webhook.deleteButton\")}\n \n )}\n \n
\n
\n );\n}\n","import React, { useRef, useEffect, useState } from \"react\";\nimport {\n Text,\n Box,\n MantineProvider,\n Select,\n Button,\n Group,\n createStyles,\n NumberInput,\n ActionIcon,\n} from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\nimport { Plus, Minus } from \"tabler-icons-react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${theme.colors.gray[3]}`,\n backgroundColor: \"#fff\",\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n textAlign: \"center\",\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nexport default function Wait(props) {\n const [waitCondition, setWaitCondition] = useState(null);\n const [numberOfDays, setNumberOfDays] = useState(1);\n const [waitDate, setWaitDate] = useState(\"\");\n const [waitTime, setWaitTime] = useState(\"\");\n const { classes } = useStyles();\n const handlers = useRef();\n const [value, setValue] = useState(1);\n const { t, i18n } = useTranslation();\n const min = 1;\n const max = 1000;\n const mounted = useRef(false);\n\n const form = useForm({\n initialValues: {\n action: \"\",\n wait: 1,\n wait_until: null,\n },\n\n validate: {\n action: (value) =>\n value.length > 0 ? null : \"Please select a wait condition\",\n },\n });\n\n useEffect(() => {\n if (props.mode == \"edit\" && props.step) {\n form.setFieldValue(\"action\", props.step.action);\n form.setFieldValue(\"wait\", props.step.wait);\n\n if (props.step.action == \"wait_until\") {\n const waitUntil = new Date(props.step.wait_until);\n // const waitDate = waitUntil.split(\"T\")[0] +\"T\"+ waitUntil.split(\"T\")[1]\n setWaitDate(waitUntil);\n setWaitTime(waitUntil);\n }\n }\n }, []);\n\n useEffect(() => {\n if (waitDate && waitTime) {\n const _waitDate = new Date(waitDate);\n const _waitTime = new Date(waitTime);\n const waitUntil = new Date(\n `${_waitDate.toLocaleDateStringAbs()}, ${_waitTime.toLocaleTimeString()}`\n ).toISOString();\n form.setFieldValue(\"wait_until\", waitUntil);\n }\n }, [waitDate, waitTime]);\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values);\n } else {\n props.onCreate(form.values);\n }\n };\n\n return (\n \n
onSend(values))}>\n \n \n\n {form.values.action === \"wait\" && form.values.action !== null && (\n \n ({\n fontSize: 18,\n fontWeight: 500,\n color: theme.colors.gray[9],\n })}\n >\n {t(\"spaces.settings.registration.steps.wait.description1\")}\n \n\n
\n handlers.current.decrement()}\n disabled={value === min}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={value === max}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n
\n )}\n\n {form.values.action === \"wait_until\" &&\n form.values.action !== null && (\n \n ({\n fontSize: 18,\n fontWeight: 500,\n color: theme.colors.gray[9],\n })}\n >\n {t(\"spaces.settings.registration.steps.wait.description2\")}\n \n \n setWaitDate(date)}\n />\n setWaitTime(time)}\n />\n \n \n )}\n
\n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.wait.saveButton\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.wait.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.wait.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport AddSimple from \"./steps/AddSimple\";\nimport EditEmail from \"./steps/EditEmail\";\nimport EditMessage from \"./steps/EditMessage\";\nimport AddToExistingSpace from \"./steps/AddToExistingSpace\";\nimport AddToNewSpace from \"./steps/AddToNewSpace\";\nimport AddFromSubSpace from \"./steps/AddFromSubSpace\";\nimport EditStructure from \"./steps/EditStructure\";\nimport ApplyTemplate from \"./steps/ApplyTemplate\";\nimport SetToPending from \"./steps/SetToPending\";\nimport EditSurvey from \"./steps/EditSurvey\";\nimport Webhook from \"./steps/Webhook\";\nimport Wait from \"./steps/Wait\";\nimport StepModel from \"../../../../models/Step\";\n\nexport default function EditStep(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [action, setAction] = useState(\"\");\n const [name, setName] = useState(\"\");\n\n useEffect(() => {\n if (props && props.step) {\n setAction(props.step.action);\n setName(props.step.name);\n }\n }, [props]);\n\n const onUpdate = (params, closeSettings = true) => {\n StepModel.onUpdate(\n props.step.id,\n space.slug,\n props.step.journey_id,\n { action: props.step.action, position: props.step.position, ...params },\n (data) => {\n if (closeSettings) {\n props.setOpened(false);\n setTimeout(() => props.onSettingsChange(), 1000);\n }\n },\n (data) => {}\n );\n };\n\n const displayStepSettings = () => {\n switch (action) {\n case \"send_email\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n trigger={props.trigger}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"send_message\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n trigger={props.trigger}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_to_existing_space\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_to_new_space\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_from_sub_space\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_structure\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"apply_template\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"set_to_pending\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"survey_person\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n opened={props.opened}\n setOpened={props.setOpened}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"webhook\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait_until\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait_until_structure_complete\":\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n default:\n return (\n props.onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n }\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {name}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n {displayStepSettings()}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n TextInput,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport BroadcastModel from \"../../../../../models/Broadcast\";\nimport ManagerModel from \"../../../../../models/Manager\";\n\nexport default function SendEmail(props) {\n const [options, setOptions] = useState([]);\n // const [sendEmailTo, setSendEmailTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n // const [selectedBroadcast, setSelectedBroadcast] = useState(null)\n // const [emailAddress, setEmailAddress] = useState(null)\n const [managers, setManagers] = useState([]);\n const [params, setParams] = useState({});\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation()\n\n useEffect(() => {\n console.log(\"trigger: \", props.trigger);\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n const sendEmailTo = () => {\n return props.trigger === \"interested\"\n ? \"interested\"\n : props.trigger === \"registered\"\n ? \"members\"\n : \"interested-members\";\n };\n\n const form = useForm({\n initialValues: {\n object_type: \"broadcast\",\n send_email_to: sendEmailTo(),\n send_as: `${user.id}`,\n email_address: \"\",\n object_id: \"\",\n },\n\n validate: {\n send_email_to: (value) =>\n value.length > 0 ? null : \"Please select a value\",\n send_as: (value) => (value.length > 0 ? null : \"Please select a sender\"),\n object_id: (value) =>\n value.length > 0 ? null : \"Please select an email\",\n },\n });\n\n // useEffect(() => {\n // setParams({\n // object_type: \"broadcast\",\n // object_id: selectedBroadcast,\n // send_email_to: sendEmailTo,\n // send_as: sendAs,\n // email_address: emailAddress })\n // }, [sendEmailTo, sendAs, selectedBroadcast, emailAddress])\n\n const onFetch = () => {\n BroadcastModel.onFetchSimple(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const broadcasts = data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select a previously drafted broadcast\",\n }));\n setOptions([\n {\n value: \"new_email\",\n label: \"Write a new email\",\n group: \"New email\",\n },\n ...broadcasts,\n ]);\n },\n (data) => {}\n );\n\n ManagerModel.onFetch(\n space.slug,\n { page: 1, per: 1000 },\n { scope: \"\", term: \"\" },\n (data) => {\n const _managers = data.data.map((item, index) => ({\n value: `${item.user_id}`,\n label: `${item.full_name} (${item.username})`,\n }));\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values);\n };\n\n return (\n \n
onSend(values))}>\n \n \n\n \n\n \n\n {form.values[\"send_email_to\"] == \"custom\" && (\n setEmailAddress(event.currentTarget.value)}\n mt={20}\n placeholder={t(\"spaces.settings.registration.steps.sendEmail.placeholder4\")}\n label={t(\"spaces.settings.registration.steps.sendEmail.label4\")}\n radius=\"sm\"\n size=\"md\"\n {...form.getInputProps(\"email_address\")}\n />\n )}\n \n }\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.sendEmail.saveButton\")}\n \n \n
\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from \"react-i18next\";\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport StructureModel from '../../../../../models/Structure'\nimport ManagerModel from '../../../../../models/Manager'\n\nexport default function AddStructure(props) {\n\n const space = useSelector(state => state.space);\n const user = useSelector(state => state.user);\n const [structureOption, setStructureOption] = useState(null);\n const [structures, setStructures] = useState([]);\n const [options, setOptions] = useState([])\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"structure\",\n send_as: \"\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select at least one space\",\n }\n });\n\n useEffect(() => {\n onFetch()\n }, [props])\n\n const onFetch = () => {\n\n StructureModel.onFetch(space.slug, {page: 1, per: 100}, (data) => {\n const _structures = data.data.map((item, index) => (\n {\n value: `${item.id}`,\n label: item.title,\n group: 'Select an existing structure'\n }\n ))\n setStructures(\n [\n { value: 'new_structure', label: 'Create a new structure', group: 'New structure' },\n ..._structures\n ]\n )\n }, (data) => {\n\n })\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const sutrabot = [{\n value: \"474\",\n label: \"sutrabot\"\n }]\n const managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: item.full_name\n }\n ))\n\n setOptions([...sutrabot, ...managers])\n }, (data) => {\n\n })\n }\n\n const onSend = () => {\n props.onCreate(form.values)\n }\n\n return (\n \n onSend(values))}>\n \n \n\n\n \n\n\n \n }\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addStructure.saveButton\")}\n \n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Box, MantineProvider, Select, Button, Group } from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SurveyModel from \"../../../../../models/Survey\";\n\nexport default function SurveyPerson(props) {\n const space = useSelector((state) => state.space);\n const [surveys, setSurveys] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"survey\",\n object_id: \"\",\n },\n\n validate: {\n object_id: (value) =>\n value.length > 0 ? null : \"Please select a survey or quiz\",\n },\n });\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n const onFetch = () => {\n SurveyModel.onFetch(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const _surveys = data.data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select an existing survey or quiz\",\n }));\n setSurveys([\n {\n value: \"new_survey\",\n label: \"Create a new survey or quiz\",\n group: \"New survey or quiz\",\n },\n ..._surveys,\n ]);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values);\n };\n\n return (\n \n
onSend(values))}>\n \n \n \n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.surveyPerson.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\n \"spaces.settings.registration.steps.surveyPerson.deleteButton\"\n )}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.surveyPerson.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React from 'react';\nimport {\n Text,\n createStyles\n} from '@mantine/core'\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nconst useStyles = createStyles((theme) => ({\n\n symbol: {\n textAlign: 'center',\n fontSize: 30,\n fontWeight: 700,\n width: 60,\n }\n\n}));\n\nexport default function StepIcon(props) {\n\n const { classes, cx, theme } = useStyles();\n\n const displayStepIcon = () => {\n const value = props.value\n\n if (value == \"send_email\" || value == \"send_message\") {\n return (\n ({color: theme.colors.blue[5]})}\n >\n \n \n )\n } else if (\n value == \"add_to_existing_space\" ||\n value == \"add_to_new_space\" ||\n value == \"add_from_sub_space\" ||\n value == \"add_from_children\" ||\n value == \"add_to_direct_open_children\" ||\n value == \"add_sub_circle_members\"\n ) {\n return (\n ({color: theme.colors.green[5]})}\n >\n \n \n )\n } else if (value == \"add_structure\") {\n return (\n ({color: theme.colors.cyan[5]})}\n >\n \n \n )\n } else if (value == \"survey_person\") {\n return (\n ({color: theme.colors.violet[5]})}\n >\n \n \n )\n } else if (value == \"set_to_pending\") {\n return (\n ({color: theme.colors.red[5]})}\n >\n \n \n )\n } else if (\n value == \"wait\" ||\n value == \"wait_until\" ||\n value == \"wait_until_structure_complete\"\n ) {\n return (\n ({color: theme.colors.gray[5]})}\n >\n \n \n )\n } else if (value == \"apply_template\") {\n return (\n ({color: theme.colors.yellow[5]})}\n >\n \n \n )\n } else if (value == \"webhook\") {\n return (\n ({color: theme.colors.yellow[5]})}\n >\n \n \n )\n }\n }\n\n return (\n
\n {displayStepIcon()}\n
\n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Text, Box, Group, Drawer, Select, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport AddSimple from \"./steps/AddSimple\";\nimport EditMessage from \"./steps/EditMessage\";\n\nimport SendEmail from \"./steps/SendEmail\";\nimport AddToExistingSpace from \"./steps/AddToExistingSpace\";\nimport AddToNewSpace from \"./steps/AddToNewSpace\";\nimport AddFromSubSpace from \"./steps/AddFromSubSpace\";\nimport AddStructure from \"./steps/AddStructure\";\nimport ApplyTemplate from \"./steps/ApplyTemplate\";\nimport SetToPending from \"./steps/SetToPending\";\nimport SurveyPerson from \"./steps/SurveyPerson\";\nimport Webhook from \"./steps/Webhook\";\nimport Wait from \"./steps/Wait\";\n\nimport StepModel from \"../../../../models/Step\";\nimport JourneyModel from \"../../../../models/Journey\";\nimport StepIcon from \"./StepIcon\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nexport default function AddStep(props) {\n const { t, i18n } = useTranslation();\n const [firstSelection, setFirstSelection] = useState(null);\n const [actions, setActions] = useState([]);\n const [canSetToPending, setCanSetToPending] = useState(false);\n const [canAddToExistingSpace, setCanAddToExistingSpace] = useState(false);\n const [canWait, setWait] = useState(false);\n const [canSurveyPerson, setCanSurveyPerson] = useState([]);\n const [canSendEmail, setCanSendEmail] = useState([]);\n const [canSendMessage, setCanSendMessage] = useState([]);\n const [canAddFromChildren, setCanAddFromChildren] = useState([]);\n const [canAddToDirectOpenChildren, setCanAddToDirectOpenChildren] = useState(\n []\n );\n const [canWebhook, setCanWebhook] = useState([]);\n const [opened, setOpened] = useState(false);\n const lastOpenedState = useRef(false);\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {}, []);\n\n useEffect(() => {\n setCanSetToPending(\n space &&\n space.permissions &&\n space.permissions.can_add_step_send_to_pending\n );\n setCanAddToExistingSpace(\n space &&\n space.permissions &&\n space.permissions.can_add_add_to_existing_space\n );\n setWait(space && space.permissions && space.permissions.can_add_step_wait);\n setCanSurveyPerson(\n space && space.permissions && space.permissions.can_add_step_survey_person\n );\n setCanSurveyPerson(\n space && space.permissions && space.permissions.can_add_step_survey_person\n );\n setCanSendEmail(\n space && space.permissions && space.permissions.can_add_step_send_email\n );\n\n setCanWebhook(\n space && space.permissions && space.permissions.can_add_step_webhook\n );\n\n setCanSendMessage(\n space && space.permissions && space.permissions.can_send_message\n );\n setCanAddFromChildren(\n space && space.permissions && space.permissions.can_add_from_children\n );\n setCanAddToDirectOpenChildren(\n space &&\n space.permissions &&\n space.permissions.can_add_to_direct_open_children\n );\n }, [space]);\n\n useEffect(() => {\n if (props.opened == true && !lastOpenedState.current) {\n onFetchActions();\n }\n lastOpenedState.current = props.opened;\n }, [props]);\n\n useEffect(() => {\n if (firstSelection == \"set_to_pending\" && !canSetToPending[0]) {\n setOpened([true, canSetToPending[1], canSetToPending[2]]);\n setFirstSelection(null);\n }\n if (\n firstSelection == \"add_to_existing_space\" &&\n !canAddToExistingSpace[0]\n ) {\n setOpened([true, canAddToExistingSpace[1], canAddToExistingSpace[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"wait\" && !canWait[0]) {\n setOpened([true, canWait[1], canWait[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"survey_person\" && !canSurveyPerson[0]) {\n setOpened([true, canSurveyPerson[1], canSurveyPerson[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"send_email\" && !canSendEmail[0]) {\n setOpened([true, canSendEmail[1], canSendEmail[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"send_message\" && !canSendMessage[0]) {\n setOpened([true, canSendMessage[1], canSendMessage[2]]);\n setFirstSelection(null);\n }\n if (firstSelection == \"can_add_from_children\" && !canAddFromChildren[0]) {\n setOpened([true, canAddFromChildren[1], canAddFromChildren[2]]);\n setFirstSelection(null);\n }\n if (\n firstSelection == \"can_add_to_direct_open_children\" &&\n !canAddToDirectOpenChildren[0]\n ) {\n setOpened([\n true,\n canAddToDirectOpenChildren[1],\n canAddToDirectOpenChildren[2],\n ]);\n setFirstSelection(null);\n }\n if (firstSelection == \"webhook\" && !canWebhook[0]) {\n setOpened([true, canWebhook[1], canWebhook[2]]);\n setFirstSelection(null);\n }\n }, [firstSelection]);\n\n const onFetchActions = () => {\n JourneyModel.onFetchActions(\n props.trigger,\n props.position,\n space.slug,\n (data) => {\n setActions(data.actions);\n },\n (data) => {}\n );\n };\n\n const onCreate = (params) => {\n StepModel.onCreate(\n space.slug,\n props.journey,\n { action: firstSelection, position: props.position, ...params },\n (data) => {\n if (firstSelection == \"send_email\" && params.object_id == \"new_email\") {\n props.setTriggerEdit(data.id);\n } else if (\n firstSelection == \"send_message\" &&\n params.object_id == \"new_message\"\n ) {\n props.setTriggerEdit(data.id);\n } else if (\n firstSelection == \"add_structure\" &&\n params.object_id == \"new_structure\"\n ) {\n props.setTriggerEdit(data.id);\n } else if (\n firstSelection == \"survey_person\" &&\n params.object_id == \"new_survey\"\n ) {\n props.setTriggerEdit(data.id);\n }\n props.setOpened(false);\n setFirstSelection(null);\n setTimeout(() => props.onSettingsChange(), 1000);\n },\n (data) => {}\n );\n };\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const displaySecondSelection = () => {\n switch (firstSelection) {\n case \"send_email\":\n return (\n \n );\n break;\n case \"send_message\":\n return (\n \n );\n break;\n case \"add_to_existing_space\":\n return (\n \n );\n break;\n case \"add_to_new_space\":\n return (\n \n );\n break;\n case \"add_from_sub_space\":\n return (\n \n );\n break;\n case \"add_structure\":\n return (\n \n );\n break;\n case \"apply_template\":\n return (\n \n );\n break;\n case \"set_to_pending\":\n return (\n \n );\n break;\n case \"survey_person\":\n return (\n \n );\n break;\n case \"webhook\":\n return (\n \n );\n break;\n case \"wait\":\n return (\n \n );\n break;\n default:\n return (\n firstSelection && (\n \n )\n );\n break;\n }\n };\n\n return (\n <>\n {\n props.setOpened(false);\n setFirstSelection(null);\n }}\n title={\n \n {t(\"spaces.settings.registration.addStep.addStep.description\")}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n \n {displaySecondSelection()}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n createStyles,\n Text,\n ActionIcon,\n Button,\n MantineProvider,\n Group,\n Box,\n Select,\n} from \"@mantine/core\";\nimport { useListState } from \"@mantine/hooks\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Swal from \"sweetalert2\";\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\nimport JourneyModel from \"../../../../models/Journey\";\nimport StepModel from \"../../../../models/Step\";\nimport EditStep from \"./EditStep\";\nimport AddStep from \"./AddStep\";\nimport StepIcon from \"./StepIcon\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n padding: `15px 20px 15px 5px`,\n // paddingRight: theme.spacing.xs, // to offset drag handle\n backgroundColor: \"#fff\",\n },\n\n itemDragging: {\n boxShadow: theme.shadows.sm,\n },\n\n symbol: {\n textAlign: \"center\",\n fontSize: 30,\n fontWeight: 700,\n width: 80,\n },\n\n settings: {\n color: theme.colors.gray[6],\n fontSize: 18,\n width: 30,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n dragHandle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n color: theme.colors.gray[6],\n paddingLeft: 10,\n paddingRight: 0,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n stepFooterPadding: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"spaceBetween\",\n },\n\n stepFooterLeft: {\n borderRight: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterRight: {\n borderLeft: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterAddStep: {\n display: \"flex\",\n justifyContent: \"center\",\n fontSize: 16,\n },\n\n addStepHidden: {\n visibility: \"hidden\",\n },\n\n addStepHover: {\n \"&:hover\": {\n color: \"#fff\",\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n backgroundColor: theme.colors.sutrablue[3],\n },\n },\n\n bottomConnector: {\n fontSize: 20,\n color: theme.colors.gray[4],\n marginTop: -15,\n textAlign: \"center\",\n height: 20,\n },\n\n addStepButtonWrap: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: 5,\n },\n\n addStepButtonHover: {\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[3],\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n color: \"#fff\",\n },\n },\n}));\n\nexport default function RegistrationFlow({ onUpdate }) {\n const { classes, cx, theme } = useStyles();\n const { language, setLangUser } = useLangUser();\n const space = useSelector((state) => state.space);\n const { t, i18n } = useTranslation();\n const [journey, setJourney] = useState(null);\n const [steps, handlers] = useListState([]);\n const mounted = useRef(false);\n const [isDragging, setIsDragging] = useState(false);\n const [settingsOpened, setSettingsOpened] = useState(false);\n const [addStepOpened, setAddStepOpened] = useState(false);\n const [selectedStep, setSelectedStep] = useState(\"\");\n const [triggerEdit, setTriggerEdit] = useState(null);\n // const [actionName, setActionName] = useState(\"\");\n // const [actionValue, setActionValue] = useState(\"\");\n const [stepPosition, setStepPosition] = useState(null);\n const [trigger, setTrigger] = useState(\"interested-registered\");\n\n useEffect(() => {\n if (!space.settings) {\n return;\n }\n onFetch();\n if (space.journeys && space.journeys.length > 0) {\n setTrigger(space.journeys[0].trigger);\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [addStepOpened]);\n\n useEffect(() => {\n if (!addStepOpened && !settingsOpened) {\n onFetch();\n setSelectedStep(null);\n }\n }, [addStepOpened, settingsOpened]);\n\n useEffect(() => {\n if (mounted.current) {\n onReorder();\n } else {\n mounted.current = true;\n }\n }, [steps]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [trigger]);\n\n const onReorder = () => {\n if (steps.length == 0) {\n return;\n }\n\n const order = steps.map((step, index) => {\n return { id: step.id, position: index + 1 };\n });\n\n StepModel.onReorder(\n space.slug,\n journey,\n order,\n (data) => {},\n (data) => {}\n );\n };\n\n const onDestroy = (event, step) => {\n event.preventDefault();\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This step will be permanently deleted\",\n showDenyButton: true,\n confirmButtonText: \"Delete step\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n StepModel.onDestroy(\n step.id,\n space.slug,\n step.journey_id,\n (data) => {\n setSettingsOpened(false);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const triggerOptions = [\n {\n label: t(\n \"spaces.settings.registration.registrationFlow.registration.label1\"\n ),\n value: \"interested-registered\",\n description: t(\n \"spaces.settings.registration.registrationFlow.registration.description3\"\n ),\n },\n\n {\n label: t(\n \"spaces.settings.registration.registrationFlow.registration.label2\"\n ),\n value: \"registered\",\n description: t(\n \"spaces.settings.registration.registrationFlow.registration.description4\"\n ),\n },\n\n {\n label: t(\n \"spaces.settings.registration.registrationFlow.registration.label3\"\n ),\n value: \"interested\",\n description: t(\n \"spaces.settings.registration.registrationFlow.registration.description5\"\n ),\n },\n ];\n\n const onFetch = () => {\n JourneyModel.onFetchByTrigger(\n trigger,\n space.slug,\n (data) => {\n setJourney(data.id);\n handlers.setState(data.steps);\n\n if (triggerEdit) {\n setSelectedStep(\n data.steps.filter((step) => step.id === triggerEdit)[0]\n );\n setSettingsOpened(true);\n setTriggerEdit(null);\n }\n },\n (data) => {}\n );\n\n // JourneyModel.onFetchById(space.journey_id, space.slug, (data) => {\n // setJourney(data.id)\n // handlers.setState(data.steps);\n //\n // if (triggerEdit){\n // setSelectedStep(data.steps.filter(step => step.id === triggerEdit)[0])\n // setSettingsOpened(true)\n // setTriggerEdit(null)\n // }\n //\n // }, (data) => {\n //\n // })\n };\n\n const displayName = (step) => {\n if (step.action == \"wait_until\" && step.wait_until) {\n const wait_until = new Date(step.wait_until).toISOString();\n return `${step.name} ${DateTime.fromISO(wait_until)\n .setLocale(language)\n .toFormat(\"EEE, MMM d y, h:mm a\")}`;\n } else {\n return step.name;\n }\n };\n\n const displayStepIcon = (value) => {\n if (value == \"send_email\") {\n return (\n ({ color: theme.colors.blue[5] })}\n >\n \n \n );\n } else if (\n value == \"add_to_existing_space\" ||\n value == \"add_to_new_space\" ||\n value == \"add_from_sub_space\" ||\n value == \"add_sub_circle_members\"\n ) {\n return (\n ({ color: theme.colors.green[5] })}\n >\n \n \n );\n } else if (value == \"add_structure\") {\n return (\n ({ color: theme.colors.cyan[5] })}\n >\n \n \n );\n } else if (value == \"survey_person\") {\n return (\n ({ color: theme.colors.violet[5] })}\n >\n \n \n );\n } else if (value == \"set_to_pending\") {\n return (\n ({ color: theme.colors.red[5] })}\n >\n \n \n );\n } else if (\n value == \"wait\" ||\n value == \"wait_until\" ||\n value == \"wait_until_structure_complete\"\n ) {\n return (\n ({ color: theme.colors.gray[5] })}\n >\n \n \n );\n } else if (value == \"apply_template\") {\n return (\n ({ color: theme.colors.yellow[5] })}\n >\n \n \n );\n }\n };\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const AddStepBlock = (position) => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n \n {\n setAddStepOpened(true);\n setStepPosition(position);\n }}\n classNames={{\n outline: classes.addStepHover,\n }}\n >\n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n };\n\n const items = steps.map((item, index) => (\n \n {(provided, snapshot) => (\n
\n \n \n {/*displayStepIcon(item.action)*/}\n \n \n {displayName(item)}\n \n {item.description}\n \n \n \n {\n setSelectedStep(item);\n setSettingsOpened(true);\n }}\n classNames={{\n hover: classes.settings,\n outline: classes.settings,\n }}\n >\n \n \n \n \n
\n \n \n \n {AddStepBlock(index + 1)}\n \n )}\n \n ));\n\n const onSettingsChange = () => {\n \n }\n\n return (\n <>\n {window.$currentRole == \"admin\" ? (\n \n ) : (\n <>\n \n {t(\n \"spaces.settings.registration.registrationFlow.registration.description1\"\n )}\n \n \n {t(\n \"spaces.settings.registration.registrationFlow.registration.description2\"\n )}\n \n \n )}\n \n \n \n {AddStepBlock(0)}\n {\n setIsDragging(true);\n }}\n onDragEnd={({ destination, source }) => {\n handlers.reorder({ from: source.index, to: destination.index });\n setIsDragging(false);\n }}\n >\n \n {(provided) => (\n
\n {items}\n {provided.placeholder}\n
\n )}\n
\n \n \n
\n {\n setAddStepOpened(true);\n setStepPosition(null);\n }}\n classNames={{\n outline: classes.addStepButtonHover,\n }}\n variant=\"outline\"\n color=\"gray\"\n radius=\"xl\"\n >\n {t(\n \"spaces.settings.registration.registrationFlow.registration.addButton\"\n )}\n \n
\n
\n \n \n \n );\n}\n","// import axios from 'axios';\n\nclass Trigger {\n constructor() {\n if (this instanceof Trigger) {\n throw Error('Trigger class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, trigger_type, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger_type\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/engagement_triggers.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, function_slug, trigger_params, trigger_type, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n function_slug,\n trigger_params,\n trigger_type\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/engagement_triggers.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (trigger_id, slug, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/engagement_triggers/${trigger_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Trigger;\n","// import axios from 'axios';\n\nclass Step {\n constructor() {\n if (this instanceof Step) {\n throw Error('Step class cannot be instantiated.');\n }\n }\n\n static onFetch = async (slug, trigger_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger_id\n }\n\n await window.$api.get(`/api/v4/spaces/${slug}/engagement_steps.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onCreate = async (slug, trigger_id, step, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger_id,\n step\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/engagement_steps.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onUpdate = async (step_id, slug, trigger_id, step, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger_id,\n step\n }\n\n await window.$api.put(`/api/v4/spaces/${slug}/engagement_steps/${step_id}.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onReorder = async (slug, trigger_id, steps, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger_id,\n steps\n }\n\n await window.$api.post(`/api/v4/spaces/${slug}/engagement_steps/reorder.json`, params)\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n\n static onDestroy = async (step_id, slug, trigger_id, sucessCallback, errorCallback) => {\n const params = {\n locale: window.$currentUserLanguage,\n auth_token: window.$currentUserAuthToken,\n trigger_id\n }\n\n await window.$api.delete(`/api/v4/spaces/${slug}/engagement_steps/${step_id}.json`, {params})\n .then(res => {\n sucessCallback(res.data)\n })\n .catch((error) => {\n try {\n errorCallback(error.response.data)\n\n } catch (e) {\n\n }\n });\n }\n}\n\nexport default Step;\n","import React from \"react\";\nimport { Text, createStyles } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme) => ({\n symbol: {\n textAlign: \"center\",\n fontSize: 30,\n fontWeight: 700,\n width: 60,\n },\n}));\n\nexport default function StepIcon(props) {\n const { classes, cx, theme } = useStyles();\n\n const getColor = () => {\n const value = props.icon;\n\n if (value == \"send_email\" || value == \"send_message\" || value == \"push\") {\n return theme.colors.blue[5];\n } else if (\n value == \"add_to_existing_space\" ||\n value == \"add_to_new_space\" ||\n value == \"add_from_sub_space\" ||\n value == \"add_from_children\" ||\n value == \"add_to_direct_open_children\" ||\n value == \"add_sub_circle_members\" ||\n value == \"add_all_members_from_parent\" ||\n value == \"add_member_to_parent\"\n ) {\n return theme.colors.green[5];\n } else if (value == \"survey_person\") {\n return theme.colors.violet[5];\n } else if (value == \"set_to_pending\") {\n return theme.colors.red[5];\n } else if (\n value == \"wait\" ||\n value == \"wait_until\" ||\n value == \"wait_until_structure_complete\"\n ) {\n return theme.colors.gray[5];\n } else if (value == \"webhook\") {\n return theme.colors.yellow[5];\n } else if (value == \"delete_posts\" || value == \"delete_messages\" || value == \"remove_from_space\") {\n return theme.colors.red[5];\n } else {\n return theme.colors.blue[5];\n }\n };\n\n const displayStepIcon = () => {\n const value = props.icon;\n\n return (\n ({ color: getColor() })}>\n {value == \"send_email\" && }\n {value == \"send_message\" && (\n \n )}\n {value == \"push\" && }\n {(value == \"add_to_existing_space\" ||\n value == \"add_to_new_space\" ||\n value == \"add_from_sub_space\" ||\n value == \"add_from_children\" ||\n value == \"add_to_direct_open_children\" ||\n value == \"add_all_members_from_parent\" ||\n value == \"add_member_to_parent\" ||\n value == \"add_sub_circle_members\") && (\n \n )}\n {value == \"survey_person\" && (\n \n )}\n {value == \"set_to_pending\" && (\n \n )}\n {(value == \"wait\" ||\n value == \"wait_until\" ||\n value == \"wait_until_structure_complete\") && (\n \n )}\n {(value == \"delete_posts\" ||\n value == \"delete_messages\" ||\n value == \"remove_from_space\") && (\n \n )}\n {value == \"webhook\" && }\n \n );\n };\n\n return
{displayStepIcon()}
;\n}\n","import React, { useState } from \"react\";\nimport {\n\n Box,\n\n Button,\n\n Group,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../../../../models/Space\";\n\nexport default function AddSimple(props) {\n const space = useSelector((state) => state.space);\n const [stepSlug, setStepSlug] = useState(null);\n const { t, i18n } = useTranslation();\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate({\n object_type: \"pod\",\n object_id: space.id,\n });\n } else {\n props.onCreate({\n object_type: \"pod\",\n object_id: space.id,\n });\n }\n };\n\n const onDestroy = (event) => {\n SpaceModel.onDestroy(\n props.step.id,\n (data) => {\n props.onDestroy(event);\n },\n (data) => {}\n );\n };\n\n return (\n \n {props.mode === \"edit\" ? (\n \n onSend(event)}\n type=\"submit\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.deleteButton\")}\n \n \n ) : (\n onSend(event)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton2\")}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Text,\n Box,\n MantineProvider,\n\n Button,\n\n Group\n} from '@mantine/core'\n\nimport { useForm } from '@mantine/form';\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport BroadcastModel from '../../../../../models/Broadcast'\nimport ManagerModel from '../../../../../models/Manager'\n\nimport TiptapInline from '../../../../tiptap/components/TiptapInline'\n\nexport default function EditEmail(props) {\n\n // const [sendTo, setSendTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n const [broadcast, setBroadcast] = useState()\n const [managers, setManagers] = useState([])\n const { t, i18n } = useTranslation()\n const space = useSelector(state => state.space);\n const user = useSelector(state => state.user);\n const loaded = useRef(false)\n\n\n\n useEffect(() => {\n // if (props.step){\n // }\n onFetch()\n }, [props])\n\n const sendEmailTo = () => {\n return \"registered\"\n }\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n content_json: \"\",\n send_as: \"\",\n send_email_to: sendEmailTo(),\n email_address: \"\",\n status: \"journey_draft\"\n },\n\n validate: {\n title: (value) => value.length > 0 ? null : \"Write a title\",\n content: (value) => value.length > 0 ? null : \"Add some content\",\n },\n });\n\n const onFetch = () => {\n\n \n if (props.step && props.step.object_id) {\n // form.setFieldValue(\"send_as\", props.step.send_as)\n // form.setFieldValue(\"send_email_to\", props.step.send_email_to)\n // form.setFieldValue(\"email_address\", props.step.email_address)\n BroadcastModel.onFetchById(props.step.object_id, space.slug, (data) => {\n loaded.current = true\n setBroadcast({...data})\n\n form.setFieldValue(\"title\", data.title)\n form.setFieldValue(\"content\", data.content)\n form.setFieldValue(\"content_json\", data.content_json)\n }, (data) => {\n \n })\n }\n else{\n form.setFieldValue(\"title\", \"Automated direct message\")\n form.setFieldValue(\"send_as\", user.id)\n loaded.current = true\n }\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const _managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: item.full_name\n }\n ))\n setManagers(_managers)\n }, (data) => {\n })\n\n }\n\n const onSave = (status=null) => {\n const broadcast_params = {\n title: form.values.title,\n content: form.values.content,\n content_json: form.values.content_json,\n user_id: form.values.send_as,\n status: form.values.status\n }\n\n const step_params = {\n send_as: form.values.send_as,\n send_email_to: form.values.send_email_to,\n email_address: form.values.email_address\n }\n\n if (props.step && props.step.object_id){\n BroadcastModel.onUpdate(props.step.object_id, space.slug, broadcast_params, (data) => {\n // Swal.fire(data.title, data.message, \"success\")\n //\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n props.onUpdate(step_params)\n }\n else{\n BroadcastModel.onCreate(space.slug, broadcast_params, (data) => {\n const _step_params = { ...step_params, object_id: data.id }\n props.onCreate(_step_params)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n }\n }\n\n const onSend = () => {\n onSave(\"\")\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content_json\", content.content)\n form.setFieldValue(\"content\", html)\n }\n\n if (!loaded.current){\n return null\n }\n\n return (\n \n onSend(values))}>\n \n\n \n\n \n {\"Use {{first_name}}, {{last_name}}, {{start_date}}, {{event_link}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"}\n \n\n \n \n }\n >\n {t(\"spaces.settings.registration.steps.editEmail.saveButton\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editEmail.deleteButton\")}\n \n \n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n TextInput,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport BroadcastModel from \"../../../../../models/Broadcast\";\nimport ManagerModel from \"../../../../../models/Manager\";\n\nexport default function SendEmail(props) {\n const [options, setOptions] = useState([]);\n // const [sendEmailTo, setSendEmailTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n // const [selectedBroadcast, setSelectedBroadcast] = useState(null)\n // const [emailAddress, setEmailAddress] = useState(null)\n const [managers, setManagers] = useState([]);\n const [params, setParams] = useState({});\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation()\n\n useEffect(() => {\n console.log(\"trigger: \", props.trigger);\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n const sendEmailTo = () => {\n return props.trigger === \"interested\"\n ? \"interested\"\n : props.trigger === \"registered\"\n ? \"members\"\n : \"interested-members\";\n };\n\n const form = useForm({\n initialValues: {\n object_type: \"broadcast\",\n send_email_to: sendEmailTo(),\n send_as: `${user.id}`,\n email_address: \"\",\n object_id: \"\",\n },\n\n validate: {\n send_email_to: (value) =>\n value.length > 0 ? null : \"Please select a value\",\n send_as: (value) => (value.length > 0 ? null : \"Please select a sender\"),\n object_id: (value) =>\n value.length > 0 ? null : \"Please select an email\",\n },\n });\n\n // useEffect(() => {\n // setParams({\n // object_type: \"broadcast\",\n // object_id: selectedBroadcast,\n // send_email_to: sendEmailTo,\n // send_as: sendAs,\n // email_address: emailAddress })\n // }, [sendEmailTo, sendAs, selectedBroadcast, emailAddress])\n\n const onFetch = () => {\n BroadcastModel.onFetchSimple(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const broadcasts = data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select a previously drafted broadcast\",\n }));\n setOptions([\n {\n value: \"new_email\",\n label: \"Write a new email\",\n group: \"New email\",\n },\n ...broadcasts,\n ]);\n },\n (data) => {}\n );\n\n ManagerModel.onFetch(\n space.slug,\n { page: 1, per: 1000 },\n { scope: \"\", term: \"\" },\n (data) => {\n const _managers = data.data.map((item, index) => ({\n value: `${item.user_id}`,\n label: `${item.full_name} (${item.username})`,\n }));\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values);\n };\n\n return (\n \n
onSend(values))}>\n \n \n\n \n\n \n\n {form.values[\"send_email_to\"] == \"custom\" && (\n setEmailAddress(event.currentTarget.value)}\n mt={20}\n placeholder={t(\"spaces.settings.registration.steps.sendEmail.placeholder4\")}\n label={t(\"spaces.settings.registration.steps.sendEmail.label4\")}\n radius=\"sm\"\n size=\"md\"\n {...form.getInputProps(\"email_address\")}\n />\n )}\n \n }\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.sendEmail.saveButton\")}\n \n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group,\n Loader\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function AddToExistingSpace(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false)\n const { t, i18n } = useTranslation();\n const searchTimeoutId = useRef();\n const selectedParents = useRef([]);\n const auxSpaces = useRef([])\n\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [props])\n\n const onFetchSpaces = (query=null) => {\n auxSpaces.current = []\n\n const include = [\"members\", \"simple\"]\n if (query){\n include.push(`q=${query}`)\n }\n\n SpaceModel.onFetchDeepChildren(space.slug, include, {page: 1, per: 10}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n auxSpaces.current.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n setSpaces([...auxSpaces.current])\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchManaged([], include, {page: 1, per: 10}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = auxSpaces.current.findIndex(x => x.value==data[i].id);\n index === -1 && (\n auxSpaces.current.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n }\n\n setSpaces([...auxSpaces.current])\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n console.log(\"form.values 22: \", form.values)\n props.onCreate(form.values)\n }\n\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true)\n if (searchTimeoutId.current){\n clearTimeout(searchTimeoutId.current)\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query)\n setSearching(false)\n }, 1000)\n }\n\n return (\n \n onSend(values))}>\n \n : }\n label={t(\"spaces.settings.registration.steps.addToExistingSpace.label\")}\n searchable\n mt={20}\n data={spaces}\n placeholder={t(\"spaces.settings.registration.steps.addToExistingSpace.placeholder\")}\n {...form.getInputProps('object_id')}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToExistingSpace.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n\n Button,\n TextInput,\n Group\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from \"../../../../../models/Space\";\n\nexport default function AddToNewSpace(props) {\n\n const space = useSelector(state => state.space);\n const [stepSlug, setStepSlug] = useState(null)\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n intention: \"\",\n version: \"discussion\",\n privacy_level: \"private\",\n pod_state: \"model\",\n },\n\n validate: {\n intention: (value) => value.length > 0 ? null : \"Please add a name for your space\",\n }\n });\n\n useEffect(() => {\n if (props.mode === \"edit\") {\n onFetchSpace()\n }\n }, [props])\n\n const onFetchSpace = () => {\n if (props.step) {\n SpaceModel.onFetchSimple(props.step.object_id, \"basic\", (data) => {\n form.setFieldValue(\"intention\", data.name)\n setStepSlug(data.slug)\n }, (data) => {\n\n })\n }\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n SpaceModel.onUpdate(stepSlug, form.values, (data) => {\n props.onUpdate({\n object_type: \"pod\",\n object_id: props.step.object_id\n })\n }, (data) => {\n })\n } else {\n SpaceModel.onCreate(form.values, space.id, (data) => {\n props.onCreate({\n object_type: \"pod\",\n object_id: data.id\n })\n }, (data) => {\n })\n }\n }\n\n const onDestroy = (event) => {\n SpaceModel.onDestroy(stepSlug, (data) => {\n props.onDestroy(event)\n }, (data) => {\n\n })\n }\n\n return (\n \n onSend(values))}>\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton1\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addToNewSpace.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group,\n Loader\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function AddFromSubSpace(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false)\n\n const searchTimeoutId = useRef();\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [])\n\n const onFetchSpaces = () => {\n const _spaces = []\n\n SpaceModel.onFetchChildren(space.slug, [\"members\"], {page: 1, per: 50}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchByScope(\"managed\", [\"members\", \"simple\"], {page: 1, per: 100}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = _spaces.findIndex(x => x.value==data[i].id);\n index === -1 && (\n _spaces.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n setSpaces(_spaces)\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n props.onCreate(form.values)\n }\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true)\n if (searchTimeoutId.current){\n clearTimeout(searchTimeoutId.current)\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query)\n setSearching(false)\n }, 1000)\n }\n\n return (\n \n onSend(values))}>\n \n : }\n label={t(\"spaces.settings.registration.steps.addFromSubSpace.label\")}\n description={t(\"spaces.settings.registration.steps.addFromSubSpace.description\")}\n searchable\n mt={20}\n data={spaces}\n placeholder={t(\"spaces.settings.registration.steps.addFromSubSpace.placeholder\")}\n {...form.getInputProps('object_id')}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.saveButton\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addFromSubSpace.saveButton2\")}\n \n )\n }\n \n\n \n )\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from \"react-i18next\";\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport StructureModel from '../../../../../models/Structure'\nimport ManagerModel from '../../../../../models/Manager'\n\nexport default function AddStructure(props) {\n\n const space = useSelector(state => state.space);\n const user = useSelector(state => state.user);\n const [structureOption, setStructureOption] = useState(null);\n const [structures, setStructures] = useState([]);\n const [options, setOptions] = useState([])\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"structure\",\n send_as: \"\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select at least one space\",\n }\n });\n\n useEffect(() => {\n onFetch()\n }, [props])\n\n const onFetch = () => {\n\n StructureModel.onFetch(space.slug, {page: 1, per: 100}, (data) => {\n const _structures = data.data.map((item, index) => (\n {\n value: `${item.id}`,\n label: item.title,\n group: 'Select an existing structure'\n }\n ))\n setStructures(\n [\n { value: 'new_structure', label: 'Create a new structure', group: 'New structure' },\n ..._structures\n ]\n )\n }, (data) => {\n\n })\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const sutrabot = [{\n value: \"474\",\n label: \"sutrabot\"\n }]\n const managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: item.full_name\n }\n ))\n\n setOptions([...sutrabot, ...managers])\n }, (data) => {\n\n })\n }\n\n const onSend = () => {\n props.onCreate(form.values)\n }\n\n return (\n \n onSend(values))}>\n \n \n\n\n \n\n\n \n }\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.addStructure.saveButton\")}\n \n \n \n )\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n MantineProvider,\n Select,\n Button,\n\n Group\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nexport default function ApplyTemplate(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n }, [])\n\n const onFetchSpaces = () => {\n const _spaces = []\n\n SpaceModel.onFetchChildren(space.slug, [\"members\"], {page: 1, per: 50}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n _spaces.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n SpaceModel.onFetchByScope(\"managed\", [\"members\", \"simple\"], {page: 1, per: 100}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = _spaces.findIndex(x => x.value==data[i].id);\n index === -1 && (\n _spaces.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n\n }\n\n if (props.mode === \"edit\") {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, (data) => {\n\n })\n\n setSpaces(_spaces)\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n props.onCreate(form.values)\n }\n }\n\n return (\n \n onSend(values))}>\n \n \n \n\n {\n props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.applyTemplate.saveButton2\")}\n \n )\n }\n \n \n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n Text,\n Box,\n MantineProvider,\n\n Button,\n\n Group,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceSettingModel from \"../../../../../models/SpaceSetting\";\nimport TiptapInline from \"../../../../tiptap/components/TiptapInline\";\n\nimport ViewModel from \"../../../../../models/View\";\n\nexport default function SetToPending(props) {\n const theme = useMantineTheme();\n const [settings, setSettings] = useState(null);\n const [pendingMessage, setPendingMessage] = useState(\"\");\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n const form = useForm({\n initialValues: {\n pending_message: \"\",\n },\n\n \n });\n\n useEffect(() => {\n console.log(pendingMessage);\n }, [pendingMessage]);\n\n useEffect(() => {\n if (props.settings && props.settings.slug) {\n\n ViewModel.onFetchRaw(\"pending_member_view\", space.slug, (data) => {\n const content = data.content ? data.content : \"\"\n setPendingMessage([...content]);\n form.setFieldValue(\"pending_message\", [...content]);\n }, (data) => {\n \n })\n\n setSettings({ ...props.settings });\n }\n }, [props]);\n\n // const onFetch = () => {\n\n // SpaceSettingModel.onFetch(space.slug, (data) => {\n\n // }, (data) => {\n\n // })\n // }\n\n const onSend = () => {\n \n const params = {\n block_until_approved: true,\n pod_settings_attributes: {\n pending_message: form.values.pending_message,\n },\n };\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {\n if (props.mode === \"edit\") {\n props.onUpdate();\n } else {\n props.onCreate();\n }\n },\n (data) => {}\n );\n };\n\n const onDestroy = (event) => {\n const params = { block_until_approved: false };\n SpaceSettingModel.onUpdate(\n space.slug,\n params,\n (data) => {},\n (data) => {}\n );\n\n props.onDestroy(event);\n };\n\n const onContentUpdate = (contentJson, html, callback, isEmpty) => {\n form.setFieldValue(\"pending_message\", contentJson.content);\n // setPendingMessage(contentJson)\n };\n\n return (\n \n
onSend(values))}>\n \n \n {t(\"spaces.settings.registration.steps.setToPending.title\")}\n \n \n {t(\"spaces.settings.registration.steps.setToPending.description\")}\n \n {(pendingMessage || props.mode != \"edit\") && (\n \n )}\n \n {\n \"Use {{first_name}}, {{last_name}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"\n }\n \n \n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.setToPending.saveButton1\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.setToPending.deleteButton\")}\n \n \n ) : (\n }\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.setToPending.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Box, MantineProvider, Select, Button, Group } from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SurveyModel from \"../../../../../models/Survey\";\n\nexport default function SurveyPerson(props) {\n const space = useSelector((state) => state.space);\n const [surveys, setSurveys] = useState([]);\n const { t, i18n } = useTranslation();\n const form = useForm({\n initialValues: {\n object_type: \"survey\",\n object_id: \"\",\n },\n\n validate: {\n object_id: (value) =>\n value.length > 0 ? null : \"Please select a survey or quiz\",\n },\n });\n\n useEffect(() => {\n onFetch();\n }, [props]);\n\n const onFetch = () => {\n SurveyModel.onFetch(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const _surveys = data.data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select an existing survey or quiz\",\n }));\n setSurveys([\n {\n value: \"new_survey\",\n label: \"Create a new survey or quiz\",\n group: \"New survey or quiz\",\n },\n ..._surveys,\n ]);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n props.onCreate(form.values);\n };\n\n return (\n \n
onSend(values))}>\n \n \n \n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.surveyPerson.saveButton1\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\n \"spaces.settings.registration.steps.surveyPerson.deleteButton\"\n )}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.surveyPerson.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React, { useEffect } from \"react\";\nimport { Group, Box, MantineProvider, Button, TextInput } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport WebhookModel from \"../../../../../models/Webhook\";\n\nconst paramsOptions = [\n { label: \"First name\", value: \"first_name\" },\n { label: \"Last name\", value: \"last_name\" },\n { label: \"Username\", value: \"username\" },\n { label: \"Email\", value: \"email\" },\n { label: \"Event date\", value: \"created_at\" },\n];\n\nexport default function Webhook(props) {\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n if (props.webhookId && space && space.slug) {\n onFetchById();\n }\n if (space && space.slug) {\n form.setFieldValue(\"name\", `Webhook ${space.slug}`);\n }\n }, [props]);\n\n const form = useForm({\n initialValues: {\n name: \"\",\n url: \"\",\n params: [\"first_name\", \"last_name\", \"email\", \"username\", \"created_at\"],\n },\n\n validate: {\n name: (value) =>\n value.length > 0 ? null : \"Please write a name for this webhook\",\n url: (value) => (value.length > 0 ? null : \"Please add a webhook url\"),\n params: (value) =>\n value.length > 0\n ? null\n : \"Please select at least one parameter for this webhook\",\n },\n });\n\n const onFetchById = () => {\n WebhookModel.onFetchById(\n props.webhookId,\n space.slug,\n (data) => {\n form.setFieldValue(\"name\", data.name);\n form.setFieldValue(\"url\", data.url);\n form.setFieldValue(\"params\", data.params);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n if (props.webhookId) {\n WebhookModel.onUpdate(\n props.webhookId,\n space.slug,\n { ...form.values },\n (data) => {\n // form.setFieldValue(\"name\", \"\");\n // form.setFieldValue(\"url\", \"\");\n // form.setFieldValue(\"params\", [\"first_name\", \"last_name\", \"email\", \"created_at\"]);\n props.onUpdate({ object_type: \"webhook\" });\n },\n (data) => {}\n );\n } else {\n WebhookModel.onCreate(\n space.slug,\n { ...form.values },\n (data) => {\n // form.setFieldValue(\"name\", \"\");\n // form.setFieldValue(\"url\", \"\");\n // form.setFieldValue(\"params\", [\"first_name\", \"last_name\", \"email\", \"created_at\"]);\n props.onCreate({ object_type: \"webhook\", object_id: data.id });\n },\n (data) => {}\n );\n }\n };\n\n return (\n \n
onSave(values))}>\n \n {/* */}\n \n {/* */}\n \n \n }\n mt={25}\n radius=\"xl\"\n fullWidth={!props.webhookId}\n >\n {t(\"spaces.settings.registration.steps.webhook.saveButton\")}\n \n {props.webhookId && (\n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.webhook.deleteButton\")}\n \n )}\n \n
\n
\n );\n}\n","import React, { useRef, useEffect, useState } from \"react\";\nimport {\n Text,\n Box,\n MantineProvider,\n Select,\n Button,\n Group,\n createStyles,\n NumberInput,\n ActionIcon,\n} from \"@mantine/core\";\n\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\nimport { Plus, Minus } from \"tabler-icons-react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `6px ${theme.spacing.xs}px`,\n borderRadius: theme.radius.sm,\n border: `1px solid ${theme.colors.gray[3]}`,\n backgroundColor: \"#fff\",\n\n \"&:focus-within\": {\n borderColor: theme.colors[theme.primaryColor][6],\n },\n },\n\n control: {\n backgroundColor:\n theme.colorScheme === \"dark\" ? theme.colors.dark[7] : theme.white,\n border: `1px solid ${\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3]\n }`,\n\n \"&:disabled\": {\n borderColor:\n theme.colorScheme === \"dark\" ? \"transparent\" : theme.colors.gray[3],\n opacity: 0.8,\n backgroundColor: \"transparent\",\n },\n },\n\n input: {\n textAlign: \"center\",\n paddingRight: `${theme.spacing.sm}px !important`,\n paddingLeft: `${theme.spacing.sm}px !important`,\n height: 28,\n flex: 1,\n },\n}));\n\nexport default function Wait(props) {\n const [waitCondition, setWaitCondition] = useState(null);\n const [numberOfDays, setNumberOfDays] = useState(1);\n const [waitDate, setWaitDate] = useState(\"\");\n const [waitTime, setWaitTime] = useState(\"\");\n const { classes } = useStyles();\n const handlers = useRef();\n const [value, setValue] = useState(1);\n const { t, i18n } = useTranslation();\n const min = 1;\n const max = 1000;\n const mounted = useRef(false);\n\n const form = useForm({\n initialValues: {\n action: \"\",\n wait: 1,\n wait_until: null,\n },\n\n validate: {\n action: (value) =>\n value.length > 0 ? null : \"Please select a wait condition\",\n },\n });\n\n useEffect(() => {\n if (props.mode == \"edit\" && props.step) {\n form.setFieldValue(\"action\", props.step.action);\n form.setFieldValue(\"wait\", props.step.wait);\n\n if (props.step.action == \"wait_until\") {\n const waitUntil = new Date(props.step.wait_until);\n // const waitDate = waitUntil.split(\"T\")[0] +\"T\"+ waitUntil.split(\"T\")[1]\n setWaitDate(waitUntil);\n setWaitTime(waitUntil);\n }\n }\n }, []);\n\n useEffect(() => {\n if (waitDate && waitTime) {\n const _waitDate = new Date(waitDate);\n const _waitTime = new Date(waitTime);\n const waitUntil = new Date(\n `${_waitDate.toLocaleDateStringAbs()}, ${_waitTime.toLocaleTimeString()}`\n ).toISOString();\n form.setFieldValue(\"wait_until\", waitUntil);\n }\n }, [waitDate, waitTime]);\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values);\n } else {\n props.onCreate(form.values);\n }\n };\n\n return (\n \n
onSend(values))}>\n \n \n\n {form.values.action === \"wait\" && form.values.action !== null && (\n \n ({\n fontSize: 18,\n fontWeight: 500,\n color: theme.colors.gray[9],\n })}\n >\n {t(\"spaces.settings.registration.steps.wait.description1\")}\n \n\n
\n handlers.current.decrement()}\n disabled={value === min}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n\n \n\n handlers.current.increment()}\n disabled={value === max}\n className={classes.control}\n onMouseDown={(event) => event.preventDefault()}\n >\n \n \n
\n
\n )}\n\n {form.values.action === \"wait_until\" &&\n form.values.action !== null && (\n \n ({\n fontSize: 18,\n fontWeight: 500,\n color: theme.colors.gray[9],\n })}\n >\n {t(\"spaces.settings.registration.steps.wait.description2\")}\n \n \n setWaitDate(date)}\n />\n setWaitTime(time)}\n />\n \n \n )}\n
\n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.wait.saveButton\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.wait.deleteButton\")}\n \n \n ) : (\n props.onCreate(params)}\n leftIcon={}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.wait.saveButton2\")}\n \n )}\n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Box,\n MantineProvider,\n Select,\n Button,\n Group,\n Loader\n} from '@mantine/core'\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next'\n\nimport { useForm } from '@mantine/form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport SpaceModel from '../../../../../models/Space'\n\nconst groupOrder = {\n 'Current space': 1,\n 'Sub spaces': 2,\n 'All spaces': 3\n};\n\nexport default function RemoveFromSpace(props) {\n\n const space = useSelector(state => state.space);\n const [spaces, setSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false)\n const { t, i18n } = useTranslation();\n const searchTimeoutId = useRef();\n const selectedParents = useRef([]);\n const auxSpaces = useRef([])\n\n const sortedSpaces = spaces.sort((a, b) => {\n return groupOrder[a.group] - groupOrder[b.group];\n });\n\n const form = useForm({\n initialValues: {\n object_type: \"pod\",\n object_id: \"\"\n },\n\n validate: {\n object_id: (value) => value.length > 0 ? null : \"Please select a space\",\n }\n });\n\n useEffect(() => {\n onFetchSpaces()\n if (props.mode === \"edit\" && props?.step?.object_id) {\n form.setFieldValue(\"object_id\", `${props.step.object_id}`)\n }\n }, [props])\n\n const onFetchSpaces = (query=null) => {\n auxSpaces.current = [\n { value: `${space.id}`, label: `${space.name} ${space.slug}`, group: \"Current space\" }\n ];\n\n const include = [\"members\", \"simple\"]\n if (query){\n include.push(`q=${query}`)\n }\n\n SpaceModel.onFetchDeepChildren(space.slug, include, {page: 1, per: 10}, [\"active\"], (data) => {\n for (let i = 0; i < data.data.length; i++) {\n auxSpaces.current.push({value: `${data.data[i].id}`, label: `${data.data[i].name} (${data.data[i].slug})`, group: \"Sub spaces\"})\n }\n\n setSpaces([...auxSpaces.current])\n\n }, (data) => {\n\n })\n\n SpaceModel.onFetchManaged([], include, {page: 1, per: 10}, (data) => {\n\n for (let i = 0; i < data.length; i++) {\n var index = auxSpaces.current.findIndex(x => x.value==data[i].id);\n index === -1 && (\n auxSpaces.current.push({value: `${data[i].id}`, label: `${data[i].name} (${data[i].slug})`, group: \"All spaces\"})\n )\n }\n\n setSpaces([...auxSpaces.current])\n\n }, (data) => {\n\n })\n\n }\n\n const onSend = () => {\n if (props.mode === \"edit\") {\n props.onUpdate(form.values)\n } else {\n console.log(\"form.values 22: \", form.values)\n props.onCreate(form.values)\n }\n }\n\n const onSearchSpaces = (query) => {\n setSearching(true)\n if (searchTimeoutId.current){\n clearTimeout(searchTimeoutId.current)\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query)\n setSearching(false)\n }, 1000)\n }\n\n return (\n \n
onSend(values))}>\n \n : }\n label={t(\"spaces.settings.registration.steps.remove_from_space.label\")}\n searchable\n mt={20}\n data={sortedSpaces}\n placeholder={t(\"spaces.settings.registration.steps.remove_from_space.placeholder\")}\n {...form.getInputProps('object_id')}\n maxDropdownHeight={400}\n radius=\"sm\"\n size=\"md\"\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n\n {props.mode === \"edit\" ? (\n \n }\n >\n {t(\"spaces.settings.registration.steps.remove_from_space.saveButton\")}\n \n props.onDestroy(event)}\n mt={25}\n radius=\"xl\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.remove_from_space.deleteButton\")}\n \n \n ) : (\n }\n mt={25}\n radius=\"xl\"\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.remove_from_space.saveButton2\")}\n \n )}\n \n
\n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Group,\n Drawer,\n Select,\n ScrollArea,\n Button,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport StepModel from \"../../../../models/EngagementStep\";\nimport StepIcon from \"./StepIcon\";\n\nimport AddSimple from \"./steps/AddSimple\";\nimport EditMessage from \"./steps/EditMessage\";\n\nimport SendEmail from \"./steps/SendEmail\";\nimport AddToExistingSpace from \"./steps/AddToExistingSpace\";\nimport AddToNewSpace from \"./steps/AddToNewSpace\";\nimport AddFromSubSpace from \"./steps/AddFromSubSpace\";\nimport AddStructure from \"./steps/AddStructure\";\nimport ApplyTemplate from \"./steps/ApplyTemplate\";\nimport SetToPending from \"./steps/SetToPending\";\nimport SurveyPerson from \"./steps/SurveyPerson\";\nimport Webhook from \"./steps/Webhook\";\nimport Wait from \"./steps/Wait\";\nimport RemoveFromSpace from \"./steps/RemoveFromSpace\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nexport default function AddStep(props) {\n const { t, i18n } = useTranslation();\n const [firstSelection, setFirstSelection] = useState(null);\n const [actions, setActions] = useState([]);\n const [canSetToPending, setCanSetToPending] = useState(false);\n const [canAddToExistingSpace, setCanAddToExistingSpace] = useState(false);\n const [canWait, setWait] = useState(false);\n const [canSurveyPerson, setCanSurveyPerson] = useState([]);\n const [canSendEmail, setCanSendEmail] = useState([]);\n const [canSendMessage, setCanSendMessage] = useState([]);\n const [canAddFromChildren, setCanAddFromChildren] = useState([]);\n const [canAddToDirectOpenChildren, setCanAddToDirectOpenChildren] = useState(\n []\n );\n const [canWebhook, setCanWebhook] = useState([]);\n const [opened, setOpened] = useState(false);\n const lastOpenedState = useRef(false);\n\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n if (props.functionSlug && props.functions) {\n const _function = props.functions.filter(\n (item) => item.slug == props.functionSlug\n )[0];\n\n if (_function && _function.actions){\n setActions(\n _function.actions.map((item) => ({\n label: item.name,\n value: item.slug,\n description: item.selection_description,\n icon: item.type,\n }))\n );\n }\n }\n if (props.selectedStep) {\n setFirstSelection(props.selectedStep.action_slug);\n } else {\n setFirstSelection();\n }\n }, [props]);\n\n useEffect(() => {\n setCanSetToPending(\n space &&\n space.permissions &&\n space.permissions.can_add_step_send_to_pending\n );\n setCanAddToExistingSpace(\n space &&\n space.permissions &&\n space.permissions.can_add_add_to_existing_space\n );\n setWait(space && space.permissions && space.permissions.can_add_step_wait);\n setCanSurveyPerson(\n space && space.permissions && space.permissions.can_add_step_survey_person\n );\n setCanSurveyPerson(\n space && space.permissions && space.permissions.can_add_step_survey_person\n );\n setCanSendEmail(\n space && space.permissions && space.permissions.can_add_step_send_email\n );\n\n setCanWebhook(\n space && space.permissions && space.permissions.can_add_step_webhook\n );\n\n setCanSendMessage(\n space && space.permissions && space.permissions.can_send_message\n );\n setCanAddFromChildren(\n space && space.permissions && space.permissions.can_add_from_children\n );\n setCanAddToDirectOpenChildren(\n space &&\n space.permissions &&\n space.permissions.can_add_to_direct_open_children\n );\n }, [space]);\n\n useEffect(() => {\n if (getSelectionType(firstSelection) == \"set_to_pending\" && !canSetToPending[0]) {\n setOpened([true, canSetToPending[1], canSetToPending[2]]);\n setFirstSelection(null);\n }\n if (\n getSelectionType(firstSelection) == \"add_to_existing_space\" &&\n !canAddToExistingSpace[0]\n ) {\n setOpened([true, canAddToExistingSpace[1], canAddToExistingSpace[2]]);\n setFirstSelection(null);\n }\n if (getSelectionType(firstSelection) == \"wait\" && !canWait[0]) {\n setOpened([true, canWait[1], canWait[2]]);\n setFirstSelection(null);\n }\n if (getSelectionType(firstSelection) == \"survey_person\" && !canSurveyPerson[0]) {\n setOpened([true, canSurveyPerson[1], canSurveyPerson[2]]);\n setFirstSelection(null);\n }\n if (getSelectionType(firstSelection) == \"send_email\" && !canSendEmail[0]) {\n setOpened([true, canSendEmail[1], canSendEmail[2]]);\n setFirstSelection(null);\n }\n if (getSelectionType(firstSelection) == \"send_message\" && !canSendMessage[0]) {\n setOpened([true, canSendMessage[1], canSendMessage[2]]);\n setFirstSelection(null);\n }\n if (getSelectionType(firstSelection) == \"can_add_from_children\" && !canAddFromChildren[0]) {\n setOpened([true, canAddFromChildren[1], canAddFromChildren[2]]);\n setFirstSelection(null);\n }\n if (\n getSelectionType(firstSelection) == \"can_add_to_direct_open_children\" &&\n !canAddToDirectOpenChildren[0]\n ) {\n setOpened([\n true,\n canAddToDirectOpenChildren[1],\n canAddToDirectOpenChildren[2],\n ]);\n setFirstSelection(null);\n }\n if (getSelectionType(firstSelection) == \"webhook\" && !canWebhook[0]) {\n setOpened([true, canWebhook[1], canWebhook[2]]);\n setFirstSelection(null);\n }\n }, [firstSelection]);\n\n const onSave = () => {\n if (props.selectedStep) {\n onUpdate();\n } else {\n onCreate();\n }\n };\n\n const getSelectionType = (slug) => {\n const type = actions.filter((item) => item.value == slug)[0];\n return type ? type.icon : \"\";\n };\n\n const onCreate = (params) => {\n StepModel.onCreate(\n space.slug,\n props.triggerId,\n { action_slug: firstSelection, position: props.position, params: params },\n (data) => {\n if (\n getSelectionType(firstSelection) == \"send_email\" &&\n params.object_id == \"new_email\"\n ) {\n props.setTriggerEdit(data.data.id);\n } else if (\n getSelectionType(firstSelection) == \"send_message\" &&\n params.object_id == \"new_message\"\n ) {\n props.setTriggerEdit(data.data.id);\n } else if (\n getSelectionType(firstSelection) == \"add_structure\" &&\n params.object_id == \"new_structure\"\n ) {\n props.setTriggerEdit(data.data.id);\n } else if (\n getSelectionType(firstSelection) == \"survey_person\" &&\n params.object_id == \"new_survey\"\n ) {\n props.setTriggerEdit(data.data.id);\n }\n else{\n props.onUpdate();\n }\n setTimeout(() => {\n props.setOpened(false);\n }, 200);\n },\n (data) => {}\n );\n };\n\n const onUpdate = () => {\n StepModel.onUpdate(\n props.selectedStep.id,\n space.slug,\n props.triggerId,\n { action_slug: firstSelection, position: props.position },\n (data) => {\n props.onUpdate();\n props.setOpened(false);\n },\n (data) => {}\n );\n };\n\n const onDelete = () => {\n StepModel.onDestroy(\n props.selectedStep.id,\n space.slug,\n props.triggerId,\n (data) => {\n props.onUpdate();\n props.setOpened(false);\n },\n (data) => {}\n );\n };\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const displaySecondSelection = () => {\n switch (getSelectionType(firstSelection)) {\n case \"send_email\":\n return (\n \n );\n break;\n case \"send_message\":\n return (\n \n );\n break;\n case \"add_to_existing_space\":\n return (\n \n );\n break;\n case \"add_to_new_space\":\n return (\n \n );\n break;\n case \"add_from_sub_space\":\n return (\n \n );\n break;\n case \"add_structure\":\n return (\n \n );\n break;\n case \"apply_template\":\n return (\n \n );\n break;\n case \"set_to_pending\":\n return (\n \n );\n break;\n case \"survey_person\":\n return (\n \n );\n break;\n case \"webhook\":\n return (\n \n );\n break;\n case \"wait\":\n return (\n \n );\n break;\n case \"remove_from_space\":\n return (\n \n );\n break;\n default:\n return (\n firstSelection && (\n \n )\n );\n break;\n }\n };\n\n return (\n <>\n {\n props.setOpened(false);\n setFirstSelection(null);\n }}\n title={\n \n {!props.selectedStep\n ? t(\"spaces.settings.registration.addStep.addStep.description\")\n : props.selectedStep.action}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n \n {displaySecondSelection()}\n {!props.functionsType && (\n \n \n {props.selectedStep && props.selectedStep.id && (\n \n )}\n \n )}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Text,\n Box,\n MantineProvider,\n Select,\n Button,\n TextInput,\n\n Group\n} from '@mantine/core';\nimport Swal from \"sweetalert2\";\n\nimport { useForm } from '@mantine/form';\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport BroadcastModel from '../../../../../models/Broadcast'\n\nimport ManagerModel from '../../../../../models/Manager'\n\nimport TiptapInline from '../../../../tiptap/components/TiptapInline'\n\nexport default function EditEmail(props) {\n\n // const [sendTo, setSendTo] = useState(null)\n // const [sendAs, setSendAs] = useState(null)\n const [broadcast, setBroadcast] = useState()\n const [managers, setManagers] = useState([])\n const { t, i18n } = useTranslation()\n const space = useSelector(state => state.space);\n const loaded = useRef(false)\n\n\n\n useEffect(() => {\n if (props.step){\n onFetch()\n }\n }, [props])\n\n const sendEmailTo = () => {\n return props.trigger === \"interested\" ? \"interested\" : props.trigger === \"registered\" ? \"members\" : \"interested-members\"\n }\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n content_json: \"\",\n send_as: \"\",\n send_email_to: sendEmailTo(),\n email_address: \"\",\n status: \"journey_draft\"\n },\n\n validate: {\n title: (value) => value.length > 0 ? null : \"Write a title\",\n content: (value) => value.length > 0 ? null : \"Add some content\",\n },\n });\n\n const onFetch = () => {\n\n form.setFieldValue(\"send_as\", props.step.send_as)\n form.setFieldValue(\"send_email_to\", props.step.send_email_to)\n form.setFieldValue(\"email_address\", props.step.email_address)\n\n if (props.step.object_id) {\n BroadcastModel.onFetchById(props.step.object_id, space.slug, (data) => {\n loaded.current = true\n setBroadcast({...data})\n\n form.setFieldValue(\"title\", data.title)\n form.setFieldValue(\"content\", data.content)\n form.setFieldValue(\"content_json\", data.content_json)\n }, (data) => {\n\n })\n }\n else{\n loaded.current = true\n }\n\n ManagerModel.onFetch(space.slug, {page: 1, per: 1000}, {scope: \"\", term: \"\"}, (data) => {\n const _managers = data.data.map((item, index) => (\n {\n value: `${item.user_id}`,\n label: `${item.full_name} (${item.username})`\n }\n ))\n setManagers(_managers)\n }, (data) => {\n })\n\n }\n\n const onSave = (status=null) => {\n const broadcast_params = {\n title: form.values.title,\n content: form.values.content,\n content_json: form.values.content_json,\n user_id: form.values.send_as,\n status: form.values.status\n }\n\n const step_params = {\n send_as: form.values.send_as,\n send_email_to: form.values.send_email_to,\n email_address: form.values.email_address\n }\n\n if (props.step && props.step.object_id){\n BroadcastModel.onUpdate(props.step.object_id, space.slug, broadcast_params, (data) => {\n // Swal.fire(data.title, data.message, \"success\")\n //\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n props.onUpdate(step_params)\n }\n else{\n BroadcastModel.onCreate(space.slug, broadcast_params, (data) => {\n const _step_params = { ...step_params, object_id: data.id }\n props.onUpdate(_step_params)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n\n }\n }\n\n const onSend = () => {\n onSave(\"\")\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content_json\", content.content)\n form.setFieldValue(\"content\", html)\n }\n\n const onSendPreview = () => {\n const params = {\n ...form.values,\n status: \"preview\"\n };\n BroadcastModel.onSendPreview(\n space.slug,\n params,\n (data) => {\n Swal.fire(data.title, \"\", \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n if (!loaded.current){\n return null\n }\n\n return (\n \n onSend(values))}>\n \n \n\n \n\n \n {\"Use {{first_name}}, {{last_name}}, {{start_date}}, {{event_link}}, {{space_name}}, {{space_link}}, and {{space_name_link}} to autopopulate the corresponding information\"}\n \n\n \n\n\n \n\n\n { form.values.send_email_to == \"custom\" && (\n \n )}\n\n \n \n }\n >\n {t(\"spaces.settings.registration.steps.editEmail.saveButton\")}\n \n \n onSendPreview()}\n >\n {t(\"spaces.settings.broadcast.form.sendPreview\")}\n \n onDestroy(event)}\n mt={25}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editEmail.deleteButton\")}\n \n \n \n \n \n )\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n\n Box,\n\n Button,\n\n} from '@mantine/core'\n\n\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport StructureModel from '../../../../../models/Structure';\n\nimport Broadcaster from \"../../../../../helpers/Broadcaster\";\n\n\nexport default function EditStructure(props) {\n\n const [html, setHtml] = useState(\"\")\n\n const { t, i18n } = useTranslation();\n const space = useSelector(state => state.space);\n const [structureId, setStructureId] = useState(0)\n\n useEffect(() => {\n onFetch()\n }, [])\n\n const onFetch = () => {\n if (props.step && props.step.object_id) {\n setStructureId(props.step.object_id)\n } else {\n const structure_params = { title: \"New structure\" }\n\n StructureModel.onCreate(space.slug, structure_params, (data) => {\n setStructureId(data.id)\n props.onUpdate({ object_id: data.id }, false)\n }, (data) => {\n // Swal.fire(data.title, data.message, \"error\")\n })\n }\n\n Broadcaster.receive(\"settings_closeModal\", document.body, () => {\n props.onUpdate()\n })\n\n return (() => {\n Broadcaster.unRegisterElement(\"settings_closeModal\", document.body)\n })\n }\n\n const onDestroy = (event) => {\n props.onDestroy(event)\n }\n\n return (\n
\n \n {props.step && structureId && structureId !== 0 ? (\n \n ) : (\n \n )}\n onDestroy(event)}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n fullWidth\n >\n {t(\"spaces.settings.registration.steps.editStructure.deleteButton\")}\n \n
\n )\n\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Box, Button } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SurveyModel from \"../../../../../models/Survey\";\nimport CreateSurveyForm from \"../../surveys/CreateSurveyForm\";\n\nexport default function EditSurvey(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [survey, setSurvey] = useState(null);\n const [surveyId, setSurveyId] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const mounted = useRef(false);\n\n useEffect(() => {\n if (props.step && !loading && !mounted.current) {\n setSurveyId(props.step.object_id);\n setLoading(true);\n onFetch();\n mounted.current = true;\n }\n }, [props]);\n\n const onFetch = () => {\n if (props.step && props.step.object_id) {\n SurveyModel.onFetchById(\n props.step.object_id,\n space.slug,\n (data) => {\n setSurvey(data);\n setLoading(false);\n },\n (data) => {}\n );\n } else if (!loading && !props.step.object_id) {\n const survey_params = { title: \"New survey\" };\n\n SurveyModel.onCreate(\n space.slug,\n survey_params,\n (data) => {\n SurveyModel.onFetchById(\n data.id,\n space.slug,\n (data) => {\n setSurvey(data);\n setLoading(false);\n },\n (data) => {}\n );\n\n props.onUpdate({ object_id: data.id, object_type: \"survey\" }, false);\n },\n (data) => {}\n );\n }\n };\n\n const onUpdate = () => {};\n\n const onDestroy = (event) => {\n props.onDestroy(event);\n };\n\n if (loading) {\n return null;\n }\n\n return (\n \n onDestroy(event)}\n mt={15}\n radius=\"xl\"\n // size=\"md\"\n color=\"dark\"\n leftIcon={}\n >\n {t(\"spaces.settings.registration.steps.editSurvey.deleteButton\")}\n \n }\n />\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport AddSimple from \"./steps/AddSimple\";\nimport EditEmail from \"./steps/EditEmail\";\nimport EditMessage from \"./steps/EditMessage\";\nimport AddToExistingSpace from \"./steps/AddToExistingSpace\";\nimport AddToNewSpace from \"./steps/AddToNewSpace\";\nimport AddFromSubSpace from \"./steps/AddFromSubSpace\";\nimport EditStructure from \"./steps/EditStructure\";\nimport ApplyTemplate from \"./steps/ApplyTemplate\";\nimport SetToPending from \"./steps/SetToPending\";\nimport EditSurvey from \"./steps/EditSurvey\";\nimport Webhook from \"./steps/Webhook\";\nimport Wait from \"./steps/Wait\";\nimport RemoveFromSpace from \"./steps/RemoveFromSpace\";\n\nimport StepModel from \"../../../../models/EngagementStep\";\n\nexport default function EditStep(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [action, setAction] = useState(\"\");\n const [actions, setActions] = useState([]);\n const [name, setName] = useState(\"\");\n\n useEffect(() => {\n if (props.functionSlug && props.functions) {\n const _function = props.functions.filter(\n (item) => item.slug == props.functionSlug\n )[0];\n if (_function && _function.actions){\n setActions(\n _function.actions.map((item) => ({\n label: item.name,\n value: item.slug,\n description: item.description,\n icon: item.type,\n }))\n );\n }\n }\n\n if (props && props.step) {\n setAction(props.step.action_slug);\n setName(props.step.name);\n }\n }, [props]);\n\n const onUpdate = (params, closeSettings = true) => {\n \n StepModel.onUpdate(\n props.step.id,\n space.slug,\n props.triggerId,\n { action_slug: action, position: props.position, params: params },\n (data) => {\n if (closeSettings){\n props.setOpened(false);\n }\n props.onUpdate();\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n StepModel.onDestroy(\n props.step.id,\n space.slug,\n props.triggerId,\n (data) => {\n props.onUpdate();\n props.setOpened(false);\n },\n (data) => {}\n );\n };\n\n const getSelectionType = (slug) => {\n const type = actions.filter((item) => item.value == slug)[0];\n\n return type ? type.icon : \"\";\n };\n\n const displayStepSettings = () => {\n switch (getSelectionType(action)) {\n case \"send_email\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n trigger={props.trigger}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"send_message\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n trigger={props.trigger}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_to_existing_space\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_to_new_space\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_from_sub_space\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"add_structure\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"apply_template\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"set_to_pending\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"survey_person\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n opened={props.opened}\n setOpened={props.setOpened}\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"webhook\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait_until\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"wait_until_structure_complete\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n case \"remove_from_space\":\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n />\n );\n break;\n default:\n return (\n onDestroy(event, props.step)}\n mode=\"edit\"\n settings={props.settings}\n onSettingsChange={props.onSettingsChange}\n />\n );\n break;\n }\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {name}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n {displayStepSettings()}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n createStyles,\n Text,\n ActionIcon,\n Button,\n MantineProvider,\n Group,\n Box,\n Menu,\n Accordion,\n} from \"@mantine/core\";\nimport { useListState } from \"@mantine/hooks\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { Trash } from \"tabler-icons-react\";\n\nimport Swal from \"sweetalert2\";\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\nimport StepModel from \"../../../../models/EngagementStep\";\nimport TriggerModel from \"../../../../models/EngagementTrigger\";\n\nimport AddStep from \"./AddStep\";\nimport EditStep from \"./EditStep\";\nimport StepIcon from \"./StepIcon\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n padding: `15px 20px 15px 5px`,\n // paddingRight: theme.spacing.xs, // to offset drag handle\n backgroundColor: \"#fff\",\n },\n\n itemDragging: {\n boxShadow: theme.shadows.sm,\n },\n\n symbol: {\n textAlign: \"center\",\n fontSize: 30,\n fontWeight: 700,\n width: 80,\n },\n\n settings: {\n color: theme.colors.gray[6],\n fontSize: 18,\n width: 30,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n dragHandle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n color: theme.colors.gray[6],\n paddingLeft: 10,\n paddingRight: 0,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n stepFooterPadding: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"spaceBetween\",\n },\n\n stepFooterLeft: {\n borderRight: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterRight: {\n borderLeft: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterAddStep: {\n display: \"flex\",\n justifyContent: \"center\",\n fontSize: 16,\n },\n\n addStepHidden: {\n visibility: \"hidden\",\n },\n\n addStepHover: {\n \"&:hover\": {\n color: \"#fff\",\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n backgroundColor: theme.colors.sutrablue[3],\n },\n },\n\n bottomConnector: {\n fontSize: 20,\n color: theme.colors.gray[4],\n marginTop: -15,\n textAlign: \"center\",\n height: 20,\n },\n\n addStepButtonWrap: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: 5,\n },\n\n addStepButtonHover: {\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[3],\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n color: \"#fff\",\n },\n },\n}));\n\nexport default function Step({\n trigger,\n onUpdateTriggers,\n functions,\n functionsType,\n setOpenAddStep,\n openAddStep\n}) {\n const { classes, cx, theme } = useStyles();\n const { language, setLangUser } = useLangUser();\n const space = useSelector((state) => state.space);\n const { t, i18n } = useTranslation();\n // const [trigger, setTrigger] = useState([]);\n const [addStepOpened, setAddStepOpened] = useState(false);\n const [editStepOpened, setEditStepOpened] = useState(false);\n const [isDragging, setIsDragging] = useState(false);\n const [steps, handlers] = useListState([]);\n const [selectedStep, setSelectedStep] = useState(\"\");\n const [stepPosition, setStepPosition] = useState(null);\n const [triggerEdit, setTriggerEdit] = useState(null);\n const mounted = useRef(false);\n\n // useEffect(() => {\n // setTrigger({...props.trigger})\n // }, [props]);\n\n useEffect(() => {\n if (openAddStep == trigger.id){\n setAddStepOpened(true)\n setOpenAddStep(false)\n }\n }, [openAddStep]);\n\n useEffect(() => {\n onFetch();\n }, [trigger]);\n\n useEffect(() => {\n if (selectedStep) {\n setEditStepOpened(true);\n }\n }, [selectedStep]);\n\n useEffect(() => {\n if (!editStepOpened) {\n setSelectedStep(\"\");\n }\n }, [editStepOpened]);\n\n useEffect(() => {\n if (!addStepOpened) {\n // setSelectedStep(\"\");\n }\n }, [addStepOpened]);\n\n useEffect(() => {\n if (triggerEdit) {\n onFetch(triggerEdit);\n }\n }, [triggerEdit]);\n\n useEffect(() => {\n if (mounted.current) {\n onReorder();\n } else {\n mounted.current = true;\n }\n }, [steps]);\n\n const onDestroy = (event, step) => {\n event.preventDefault();\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This step will be permanently deleted\",\n showDenyButton: true,\n confirmButtonText: \"Delete step\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n } else if (result.isDenied) {\n }\n });\n };\n\n const onFetch = (stepId=null) => {\n \n if (!space.slug) {\n return;\n }\n StepModel.onFetch(\n space.slug,\n trigger.id,\n (data) => {\n handlers.setState(data);\n mounted.current = true;\n if (stepId) {\n const newStep = data.filter((step) => step.id === stepId)[0]\n setSelectedStep(newStep);\n }\n setTriggerEdit(null);\n },\n (data) => {}\n );\n };\n\n const onUpdate = () => {\n onFetch();\n };\n\n const displayName = (step) => {\n return step.name;\n };\n\n const AddStepBlock = (position) => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n \n {\n setSelectedStep(\"\");\n setAddStepOpened(true);\n setStepPosition(position);\n }}\n classNames={{\n outline: classes.addStepHover,\n }}\n >\n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n };\n\n const onReorder = () => {\n if (steps.length == 0) {\n return;\n }\n\n const order = steps.map((step, index) => {\n return { id: step.id, position: index + 1 };\n });\n\n StepModel.onReorder(\n space.slug,\n trigger.id,\n order,\n (data) => {},\n (data) => {}\n );\n };\n\n const onDelete = () => {\n TriggerModel.onDestroy(\n trigger.id,\n space.slug,\n (data) => {\n onUpdateTriggers();\n },\n (data) => {}\n );\n };\n\n const items = steps.map((item, index) => (\n \n {(provided, snapshot) => (\n
\n \n \n {/*displayStepIcon(item.action)*/}\n \n \n {displayName(item)}\n \n {item.description}\n \n \n \n {\n setSelectedStep(item);\n }}\n classNames={{\n hover: classes.settings,\n outline: classes.settings,\n }}\n >\n \n \n \n \n
\n \n \n \n {AddStepBlock(index + 1)}\n \n )}\n \n ));\n\n return (\n \n {/* {AddStepBlock(0)} */}\n {\n setIsDragging(true);\n }}\n onDragEnd={({ destination, source }) => {\n handlers.reorder({ from: source.index, to: destination.index });\n setIsDragging(false);\n }}\n >\n \n {(provided) => (\n
\n {items}\n {provided.placeholder}\n
\n )}\n
\n \n \n
\n {\n setSelectedStep(\"\");\n setAddStepOpened(true);\n setStepPosition(null);\n }}\n classNames={{\n outline: classes.addStepButtonHover,\n }}\n variant=\"outline\"\n color=\"gray\"\n radius=\"xl\"\n >\n {t(\n \"spaces.settings.registration.registrationFlow.registration.addButton\"\n )}\n \n
\n
\n \n \n }\n onClick={() => onDelete()}\n >\n Delete\n \n \n \n \n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Group,\n Drawer,\n Select,\n ScrollArea,\n Button,\n NumberInput,\n MantineProvider,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport TriggerModel from \"../../../../models/EngagementTrigger\";\nimport SurveyModel from \"../../../../models/Survey\";\n\nimport StepIcon from \"./StepIcon\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function AddTrigger({\n onUpdateTriggers,\n oriFunctions,\n functions,\n functionsType,\n}) {\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.space);\n\n const [trigger, setTrigger] = useState();\n const [triggers, setTriggers] = useState([]);\n // const [functions, setFunctions] = useState([])\n // const [oriFunctions, setOriFunctions] = useState([])\n const [opened, setOpened] = useState(false);\n const [params, setParams] = useState([]);\n const [surveys, setSurveys] = useState([]);\n const [selectedFunction, setSelectedFunction] = useState({ params: [] });\n\n useEffect(() => {\n setParams([]);\n setSelectedFunction({ params: [] });\n getSelectTrigger();\n onFetch();\n }, [trigger]);\n\n const onCreate = () => {\n const trigger_params = {};\n\n for (let i = 0; i < params.length; i++) {\n const ele = params[i];\n trigger_params[ele.key] = ele.value;\n }\n\n TriggerModel.onCreate(\n space.slug,\n trigger,\n trigger_params,\n functionsType,\n (data) => {\n setOpened(false);\n onUpdateTriggers(true);\n },\n (data) => {\n Swal.fire(t(\"errors.basic\"), data.message, \"error\");\n }\n );\n };\n\n const SelectItem = ({ label, description, ...others }) => (\n
\n \n \n
\n \n {label}\n \n \n {description}\n \n
\n
\n
\n );\n\n const getSelectTrigger = () => {\n const _selectedFunction = oriFunctions.filter(\n (item) => item.slug == trigger\n )[0];\n if (_selectedFunction) {\n setSelectedFunction(_selectedFunction);\n\n setParams(\n _selectedFunction.params.map((item) => ({\n value: item.default,\n key: item.key,\n }))\n );\n }\n };\n\n const onSetParamsValue = (index, val) => {\n const aux = [...params];\n aux[index].value = val;\n setParams(aux);\n };\n\n const onFetch = () => {\n SurveyModel.onFetch(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n const _surveys = data.data.map((item, index) => ({\n value: `${item.id}`,\n label: item.title,\n group: \"Select an existing survey or quiz\",\n }));\n setSurveys([..._surveys]);\n },\n (data) => {}\n );\n };\n\n return (\n \n \n {\n setOpened(false);\n }}\n title={\n \n {\"Add trigger\"}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n \n \n {selectedFunction.params.map((item, index) => {\n return (\n <>\n {params[index] && item.type == \"integer\" && (\n onSetParamsValue(index, val)}\n radius=\"sm\"\n size=\"md\"\n />\n )}\n {params[index] && item.type == \"survey\" && (\n onSetParamsValue(index, val)}\n />\n )}\n \n );\n })}\n \n \n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n createStyles,\n Text,\n ActionIcon,\n Button,\n MantineProvider,\n Group,\n Box,\n Select,\n Accordion,\n} from \"@mantine/core\";\nimport { useListState } from \"@mantine/hooks\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Swal from \"sweetalert2\";\nimport { DateTime } from \"luxon\";\n\nimport useLangUser from \"../../../../utils/LangUser\";\nimport TriggerModel from \"../../../../models/EngagementTrigger\";\nimport FunctionModel from \"../../../../models/EngagementFunction\";\nimport Step from \"./Step\";\nimport AddTrigger from \"./AddTrigger\";\nimport StepIcon from \"./StepIcon\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n padding: `15px 20px 15px 5px`,\n // paddingRight: theme.spacing.xs, // to offset drag handle\n backgroundColor: \"#fff\",\n },\n\n itemDragging: {\n boxShadow: theme.shadows.sm,\n },\n\n symbol: {\n textAlign: \"center\",\n fontSize: 30,\n fontWeight: 700,\n width: 80,\n },\n\n settings: {\n color: theme.colors.gray[6],\n fontSize: 18,\n width: 30,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n dragHandle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n color: theme.colors.gray[6],\n paddingLeft: 10,\n paddingRight: 0,\n\n \"&:hover\": {\n color: theme.colors.gray[7],\n },\n },\n\n stepFooterPadding: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"spaceBetween\",\n },\n\n stepFooterLeft: {\n borderRight: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterRight: {\n borderLeft: `1px solid ${theme.colors.gray[4]}`,\n height: 10,\n width: \"100%\",\n },\n\n stepFooterAddStep: {\n display: \"flex\",\n justifyContent: \"center\",\n fontSize: 16,\n },\n\n addStepHidden: {\n visibility: \"hidden\",\n },\n\n addStepHover: {\n \"&:hover\": {\n color: \"#fff\",\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n backgroundColor: theme.colors.sutrablue[3],\n },\n },\n\n bottomConnector: {\n fontSize: 20,\n color: theme.colors.gray[4],\n marginTop: -15,\n textAlign: \"center\",\n height: 20,\n },\n\n addStepButtonWrap: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: 5,\n },\n\n addStepButtonHover: {\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[3],\n border: `1px solid ${theme.colors.sutrablue[3]}`,\n color: \"#fff\",\n },\n },\n}));\n\nexport default function Engagement({ onUpdate, functionsType }) {\n const { classes, cx, theme } = useStyles();\n const { language, setLangUser } = useLangUser();\n const space = useSelector((state) => state.space);\n const { t, i18n } = useTranslation();\n const [triggers, setTriggers] = useState([]);\n const [addStepOpened, setAddStepOpened] = useState(false);\n const [isDragging, setIsDragging] = useState(false);\n const [steps, handlers] = useListState([]);\n const [selectedStep, setSelectedStep] = useState(\"\");\n const [stepPosition, setStepPosition] = useState(null);\n const [functions, setFunctions] = useState([]);\n const [oriFunctions, setOriFunctions] = useState([]);\n const [openAddStep, setOpenAddStep] = useState(false);\n\n const [accordionState, setAccordionState] = useState({});\n\n useEffect(() => {\n onFetchFunctions();\n }, []);\n\n useEffect(() => {\n onFetch();\n }, [space]);\n\n const onFetchFunctions = () => {\n FunctionModel.onFetch(\n functionsType,\n (data) => {\n setFunctions(\n data.map((item) => ({ label: item.name, value: item.slug }))\n );\n setOriFunctions(data);\n },\n (data) => {}\n );\n };\n\n const onFetch = (fetchNew = false) => {\n if (!space.slug) {\n return;\n }\n TriggerModel.onFetch(\n space.slug,\n functionsType,\n (data) => {\n const auxAccordionState = {};\n for (let i = 0; i < data.length; i++) {\n auxAccordionState[i] = false;\n }\n setTriggers(data);\n handlers.setState(data);\n setTimeout(() => {\n if (fetchNew) {\n // setOpenAddStep(data[data.length-1].id)\n auxAccordionState[data.length - 1] = true;\n setAccordionState(auxAccordionState);\n } else {\n setAccordionState(auxAccordionState);\n }\n }, 500);\n },\n (data) => {}\n );\n };\n\n const onMigrate = () => {\n if (!space.slug) {\n return;\n }\n FunctionModel.onMigrate(\n space.slug,\n (data) => {\n onFetch(true);\n alert(\"Migrated\");\n },\n (data) => {}\n );\n };\n\n const AccordionLabel = ({ label, description, index }) => {\n return (\n \n
\n \n {label}\n \n\n {!accordionState[index] ? (\n \n {description}\n \n ) : (\n \"\"\n )}\n
\n
\n );\n };\n\n const triggerDescriptions = {\n \"sutraautofunction1\": \"Trigger actions when a person joins the interested list for this space.\",\n \"sutraautofunction2\": \"Trigger actions when a person joins this space as a member.\",\n \"sutraautofunction3\": \"Trigger actions when a person joins the interested list or joins this space as a member.\",\n \"sutraautofunction4\": \"Trigger actions when a person marks this space as complete.\",\n \"sutraautofunction5\": \"Trigger actions when a person completes a survey in this space.\",\n \"sutraautofunction6\": \"Trigger actions when a person is removed from this space.\",\n \"sutraautofunction7\": \"Trigger actions when a person joins any subspace in this space\",\n \"sutraautofunction8\": \"Trigger actions when a direct subspace is created in this space.\"\n };\n\n return (\n <>\n {!functionsType ? (\n <>\n \n {t(\n \"spaces.settings.registration.registrationFlow.registration.description1\"\n )}\n \n \n {t(\n \"spaces.settings.registration.registrationFlow.registration.description2\"\n )}\n \n \n ) : (\n \n {\n \"This section allows you to sequence automated actions that are triggered based on various events that you can configure. Here you can do things like schedule emails and automatically add people to select spaces when they register.\"\n }\n \n )}\n }\n styles={{\n item: {\n border: \"1px solid #dee2e6\",\n marginBottom: \"10px\",\n borderRadius: \"10px\",\n \"&:hover\": {\n borderRadius: \"10px\",\n },\n },\n control: {\n \"&:hover\": {\n borderRadius: \"10px\",\n },\n },\n content: {\n paddingLeft: \"5px\",\n },\n }}\n multiple\n state={accordionState}\n onChange={(event) => setAccordionState(event)}\n >\n {triggers.map((trigger, index) => {\n return (\n \n }\n >\n \n \n );\n })}\n \n \n \n {window.$currentRole == \"admin\" && functionsType == \"automation\" && !window.$spaceIsMigrated && (\n \n \n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Container,\n Box,\n Text,\n Group,\n Accordion,\n Skeleton,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport InvitePeople from \"./members/InvitePeople\";\n\nimport Scheduling from \"./main/Scheduling\";\nimport Additional from \"./main/Additional\";\nimport Seo from \"./main/Seo\";\nimport Registration from \"./main/Registration\";\nimport Top from \"./main/Top\";\nimport Privacy from \"./main/Privacy\";\nimport Appearances from \"../colors/Form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport RegistrationFlow from \"./registration/RegistrationFlow\";\nimport Engagement from \"./engagement/Engagement\";\n\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nexport default function Main() {\n const { t, i18n } = useTranslation();\n\n const paramsUrl = useParams();\n\n const space = useSelector((state) => state.space);\n\n const [privacySelection, setPrivacySelection] = useState(\"open\");\n const [blockUntilRegistered, setBlockUntilRegistered] = useState();\n const [accordionState, setAccordionState] = useState({\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n 4: false,\n 5: false,\n });\n\n const [inviteOpened, setInviteOpened] = useState(false);\n\n const [opened, setOpened] = useState(false);\n\n const [loading, setLoading] = useState(false);\n\n const accordionLoaded = useRef();\n\n const isAfterCreated = new Date(space?.created_at) > new Date('2025-01-01');\n\n useEffect(() => {\n if (accordionLoaded.current) {\n localStorage.setItem(\n \"lastOpenedSettingsTabs\",\n JSON.stringify(accordionState)\n );\n }\n }, [accordionState]);\n\n useEffect(() => {\n const search = window.location.search;\n const section = new URLSearchParams(search).get(\"section\");\n if (section) {\n const sections = {\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n 4: false,\n 5: false,\n };\n sections[section] = true;\n setAccordionState(sections);\n } else {\n const auxState = localStorage.getItem(\"lastOpenedSettingsTabs\", \"\");\n if (auxState && auxState != \"null\") {\n setAccordionState(JSON.parse(auxState));\n }\n }\n\n accordionLoaded.current = true;\n }, [paramsUrl]);\n\n const itemsList = [\n {\n label: t(\"spaces.settings.main.main.label2\"),\n index: 0,\n },\n\n {\n label: t(\"spaces.settings.main.main.label3\"),\n description: t(\"spaces.settings.main.main.description4\"),\n index: 1,\n },\n {\n label: t(\"spaces.settings.main.main.label4\"),\n description: t(\"spaces.settings.main.main.description5\"),\n index: 2,\n },\n {\n label: t(\"spaces.settings.main.main.label5\"),\n description: t(\"spaces.settings.main.main.description6\"),\n index: 3,\n },\n\n {\n label: t(\"spaces.settings.main.main.label6\"),\n description: t(\"spaces.settings.main.main.description7\"),\n index: 4,\n },\n\n {\n label: t(\"spaces.settings.main.main.label16\"),\n description:\n \"Change the look and feel of your space with custom covers, logos, page layouts and color themes\",\n index: 5,\n },\n {\n label: t(\"spaces.settings.main.main.label7\"),\n description: t(\"spaces.settings.main.main.description8\"),\n index: 6,\n },\n {\n label: \"Advanced engagement\",\n description:\n \"Create a sequence of emails to engage participants in your conversational experience.\",\n index: 7,\n },\n ];\n\n const privacyOptions = [\n {\n label: t(\"spaces.settings.main.main.label8\"),\n value: \"open\",\n description: t(\"spaces.settings.main.main.description9\"),\n },\n\n {\n label: t(\"spaces.settings.main.main.label9\"),\n value: \"private\",\n description: t(\"spaces.settings.main.main.description10\"),\n },\n {\n label: t(\"spaces.settings.main.main.label10\"),\n value: \"payment\",\n description: t(\"spaces.settings.main.main.description11\"),\n },\n ];\n\n const registrationOptions = [\n {\n value: \"open and on\",\n description: t(\"spaces.settings.main.main.description12\"),\n },\n\n {\n value: \"open and off\",\n description: t(\"spaces.settings.main.main.description13\"),\n },\n {\n value: \"private and on\",\n description: t(\"spaces.settings.main.main.description14\"),\n },\n {\n value: \"private and off\",\n description: t(\"spaces.settings.main.main.description15\"),\n },\n {\n value: \"payment and on\",\n description: t(\"spaces.settings.main.main.description16\"),\n },\n {\n value: \"payment and off\",\n description: t(\"spaces.settings.main.main.description17\"),\n },\n ];\n\n const AccordionLabel = ({ label, description, index }) => {\n return (\n \n
\n \n {label}\n \n\n {!accordionState[index] ? (\n \n {description}\n \n ) : (\n \"\"\n )}\n
\n
\n );\n };\n\n const onUpdate = (params) => {\n if (Object.keys(params).length === 0) {\n return;\n }\n SpaceSettingModel.onUpdate(\n paramsUrl.slug,\n params,\n (data) => {},\n (data) => {}\n );\n };\n\n const getPrivacyMessage = () => {\n const selection = privacyOptions.filter(\n (item) => item.value == privacySelection\n )[0];\n if (selection) {\n return `${selection.label} - ${selection.description}`;\n } else {\n return \"\";\n }\n };\n\n const getRegistrationMessage = () => {\n const showPage = blockUntilRegistered ? \"on\" : \"off\";\n const registrationSetting = `${privacySelection} and ${showPage}`;\n const selection = registrationOptions.filter(\n (item) => item.value == registrationSetting\n )[0];\n\n if (selection) {\n return selection.description;\n } else {\n return \"\";\n }\n };\n\n if (loading) {\n return (\n ({\n // maxWidth: \"960px\",\n // width: \"960px\",\n height: \"100%\",\n })}\n >\n \n \n \n );\n }\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n\n setAccordionState(event)}\n >\n \n }\n >\n \n \n\n \n }\n >\n \n \n\n {window.$currentRole == \"admin\" ? (\n }\n key={itemsList[2].label}\n >\n \n \n {!isAfterCreated && }\n \n \n ) : (\n }\n key={itemsList[2].label}\n >\n \n {window.$spaceIsMigrated ? (\n \n ) : (\n \n )}\n \n \n )}\n\n }\n key={itemsList[3].label}\n >\n \n \n\n }\n key={itemsList[4].label}\n >\n \n \n \n \n\n }\n key={itemsList[5].label}\n >\n \n \n \n \n\n }\n key={itemsList[6].label}\n >\n \n \n \n \n {window.$currentRole == \"admin\" && (\n }\n key={itemsList[7].label}\n >\n { }\n \n )}\n \n\n \n\n {inviteOpened && }\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Checkbox,\n Divider,\n Text,\n Badge,\n Group,\n Menu,\n Button,\n Tooltip,\n Stack,\n Select,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport useFrequencyOptions from \"../../../../collections/FrequencyOptions\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { DateTime } from \"luxon\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\nimport DirectMessageModel from \"../../../../models/DirectMessage\";\nimport StripeModel from \"../../../../models/Stripe\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport Swal from \"sweetalert2\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport {setTiptapSidemenu} from '../../../../store/app';\n\nconst statusColors = {\n active: \"green\",\n pending: \"orange\",\n deleted: \"red\",\n registration_survey: \"blue\",\n survey_payment: \"yellow\",\n};\n\nconst statusString = {\n active: \"Active\",\n pending: \"Pending\",\n deleted: \"Removed\",\n registration_survey: \"Survey\",\n survey_payment: \"Payment\",\n};\n\nconst statusMessage = {\n active: \"This member is active and has access to all space features\",\n pending:\n \"This member is currently pending and must be approved to access the space\",\n deleted: \"You removed this member from this space\",\n registration_survey:\n \"This member has registered but hasn't completed the registration survey\",\n survey_payment:\n \"This member has registered but hasn't completed the survey payment\",\n};\n\nconst rolesData = [\"Member\", \"Moderator\", \"Editor\", \"Manager\"];\n\nexport default function RegisteredRow(props) {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const theme = useMantineTheme();\n\n const { t, i18n } = useTranslation();\n\n const { frequencyOptions } = useFrequencyOptions();\n\n const [member, setMember] = useState({});\n const [role, setRole] = useState(null);\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n useEffect(() => {\n if (\n !member.id ||\n member.id != props.member.id ||\n member.status == \"deleted\" ||\n (member.status != \"active\" && props.member.status == \"active\")\n ) {\n setMember(props.member);\n setRole(\n props.member.role.charAt(0).toUpperCase() +\n props.member.role.slice(1).toLowerCase()\n );\n }\n }, [props]);\n\n useEffect(() => {\n if (\n role &&\n ((member.role != \"member\" && role == \"Member\") ||\n (member.role != \"manager\" && role == \"Manager\") ||\n (member.role != \"editor\" && role == \"Editor\") ||\n (member.role != \"moderator\" && role == \"Moderator\")\n )\n ) {\n onSelectedRole(role);\n }\n }, [role]);\n\n const onSetRole = (nextRole) => {\n if (\n nextRole == \"Member\" ||\n nextRole == \"Editor\" ||\n nextRole == \"Moderator\" ||\n (nextRole == \"Manager\" && props.canAddNewManagers())\n ) {\n setRole(nextRole);\n }\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const onSelectedRole = (role) => {\n const newMember = { ...member };\n if (role == \"Manager\") {\n // newMember.is_manager = true\n ManagerModel.onCreate(\n props.spaceId,\n member.user_id,\n (data) => {\n // setMember(newMember)\n props.onUpdate(member);\n },\n (data) => {}\n );\n } else if (role == \"Editor\") {\n MemberModel.onUpdateRole(\n member.user_id,\n props.spaceId,\n \"editor\",\n (data) => {\n props.onUpdate(member);\n },\n (data) => {}\n );\n } else if (role == \"Moderator\") {\n MemberModel.onUpdateRole(\n member.user_id,\n props.spaceId,\n \"moderator\",\n (data) => {\n props.onUpdate(member);\n },\n (data) => {}\n );\n } else {\n if (member.role == \"manager\") {\n ManagerModel.onDestroy(\n member.user_id,\n props.spaceId,\n (data) => {\n props.onUpdate(member);\n },\n (data) => {}\n );\n } else {\n MemberModel.onUpdateRole(\n member.user_id,\n props.spaceId,\n \"member\",\n (data) => {\n props.onUpdate(member);\n },\n (data) => {}\n );\n }\n }\n };\n\n const onEmailFrequency = (frequency) => {\n const newMember = { ...member };\n newMember.email_frequency = frequency;\n \n MemberModel.onEmailFrequency(\n member.user_id,\n props.spaceId,\n frequency,\n (data) => {\n setMember(newMember);\n },\n (data) => {}\n );\n };\n\n const onApprove = () => {\n const newMember = { ...member };\n newMember.status = \"active\";\n MemberModel.onApprove(\n member.user_id,\n props.spaceId,\n (data) => {\n props.onUpdate(member);\n setMember(newMember);\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n const newMember = { ...member };\n newMember.status = \"deleted\";\n\n const Model = props.scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onDestroy(\n member.user_id,\n props.spaceId,\n (data) => {\n // props.onUpdate(member)\n setMember(newMember);\n },\n (data) => {}\n );\n };\n\n const onAdd = () => {\n MemberModel.onCreate(\n props.spaceId,\n member.user_id,\n (data) => {\n // props.onUpdate(data)\n setMember(data);\n },\n (data) => {}\n );\n };\n\n const onSendMessage = () => {\n DirectMessageModel.onFetchOrCreate(\n member.user_id,\n (data) => {\n dispatch(setTiptapSidemenu({ opened: \"direct\", option: data.space.slug, allow_reflections: true }));\n },\n (data) => {}\n );\n };\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n const onCancelSubscription = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You are about to cancel this subscription\",\n showDenyButton: true,\n confirmButtonText: \"Delete subscription\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n StripeModel.onCancelSubscription(\n member.user_id,\n props.spaceId,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n \n \n \n\n \n \n onCopyLink()} text={member.email}>\n \n {member.email}\n \n \n \n \n\n \n \n \n {statusString[member.status]}\n \n \n \n\n \n\n \n \n\n \n \n {member.status !== \"active\" && member.status !== \"deleted\" ? (\n onApprove()}\n >\n {t(\"spaces.settings.members.registeredRow.registered.roleApprove\")}\n \n ) : (\n \"\"\n )}\n {/*\n member.status == \"deleted\" ?\n (\n onAdd()}>\n Undo\n \n ) : (\"\")\n */}\n \n \n {t(\"spaces.settings.members.registeredRow.registered.joined\")} {new Date(member.joined).toLocaleString(DateTime.DATE_MED)}\n \n \n onSendMessage()}\n icon={}\n >\n {t(\"spaces.settings.members.registeredRow.registered.sendMessage\")}\n \n \n onSetRole(role == \"Manager\" ? \"Member\" : \"Manager\")\n }\n icon={}\n >\n {role == \"Manager\" ? \"Remove manager\" : \"Make manager\"}\n \n {props.hasSubscriptions && member.is_subscribed ? (\n onCancelSubscription()}\n icon={}\n >\n {t(\"spaces.settings.members.registeredRow.registered.stopCharging\")}\n \n ) : (\n \"\"\n )}\n \n \n \n {t(\"spaces.settings.members.registeredRow.registered.emailPreferences\")}\n \n \n }\n >\n {frequencyOptions.map((option) => {\n return (\n \n ) : (\n \"\"\n )\n }\n onClick={(event) => onEmailFrequency(option.value)}\n >\n {option.label}\n \n );\n })}\n \n \n onDestroy()}\n icon={}\n color=\"red\"\n >\n {t(\"spaces.settings.members.registeredRow.registered.removeMember\")}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Checkbox,\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n SegmentedControl,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./RegisteredRow\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst statusColors = {\n active: \"green\",\n pending: \"red\",\n registration_survey: \"blue\",\n survey_payment: \"yellow\",\n};\n\nconst statusString = {\n active: \"Active\",\n pending: \"Pending\",\n registration_survey: \"Survey\",\n survey_payment: \"Payment\",\n};\n\nconst statusMessage = {\n active: \"This member is active and has access to all space features\",\n pending:\n \"This member is currently pending and must be approved to access the space\",\n registration_survey:\n \"This member has registered but hasn't completed the registration survey\",\n survey_payment:\n \"This member has registered but hasn't completed the survey payment\",\n};\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function Registered(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const checkSearchParams = () => {\n const search = location.search;\n const scope = new URLSearchParams(search).get(\"scope\");\n\n if (scope) {\n setScope(scope);\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n onFetchCounts();\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n // useEffect(() => {\n // if (props.refresh) {\n // setLoading(true);\n // setTimeout(() => {\n // onFetch();\n // onFetchCounts();\n // props.setRefresh(false);\n // }, 2000);\n // }\n // }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setLoading(false);\n setMembers(data);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onApproveAll = () => {\n MemberModel.onApproveAll(\n space.slug,\n (data) => {\n onFetch();\n onFetchCounts();\n },\n (data) => {}\n );\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.registered.registered.searchPlaceholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n // onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.registered.registered.searchButton\")}\n \n {loading && }\n \n\n \n {!hasSelections() && (\n ({ backgroundColor: theme.colors.gray[0] })}\n data={[\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.all\"\n )} (${counts.all})`,\n value: \"all\",\n },\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.active\"\n )} (${counts.active})`,\n value: \"active\",\n },\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.pending\"\n )} (${counts.pending})`,\n value: \"pending\",\n },\n {\n label: `${t(\n \"spaces.settings.members.registered.registered.manager\"\n )} (${counts.managers})`,\n value: \"managers\",\n },\n ]}\n />\n )}\n {hasSelections() && (\n <>\n \n props.onSendBroadcast(\"email\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.registered.registered.email\")}\n \n \n props.onSendBroadcast(\"message\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.registered.registered.message\")}\n \n \n )}\n \n \n\n \n {members.data.length == 0 ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.registered.registered.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n
\n \n onSelectAll(event.currentTarget.checked)\n }\n />\n \n {t(\n \"spaces.settings.members.registered.registeredTable.member\"\n )}\n \n {t(\n \"spaces.settings.members.registered.registeredTable.email\"\n )}\n \n {t(\n \"spaces.settings.members.registered.registeredTable.status\"\n )}\n \n \n \n {t(\n \"spaces.settings.members.registered.registeredTable.role\"\n )}\n \n onApproveAll()}\n >\n {t(\n \"spaces.settings.members.registered.registeredTable.roleApproveAll\"\n )}\n \n \n
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Divider, Text, Group, Menu, Tooltip } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { DateTime } from \"luxon\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport Swal from \"sweetalert2\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nexport default function InvitedRow(props) {\n const [invitation, setInvitation] = useState({});\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n const { t, i18n } = useTranslation();\n useEffect(() => {\n if (!invitation.id || invitation.id != props.invitation.id) {\n setInvitation(props.invitation);\n }\n }, [props]);\n\n const onResend = () => {\n InvitationModel.onResend(\n invitation.id,\n props.spaceId,\n (data) => {\n Swal.fire(\n \"Invitation sent\",\n \"Your invitation has been resent\",\n \"success\"\n );\n },\n (data) => {\n Swal.fire(\n data.title,\n data.message,\n \"info\"\n );\n }\n );\n };\n\n const onCopy = () => {\n // Swal.fire(\"Done\", \"Text copied to clipboard\", \"success\")\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const getFrequency = () => {\n if (!invitation) {\n return \"\";\n }\n if (!invitation.price) {\n return \"\";\n }\n if (!invitation.price.frequency) {\n return \"\";\n }\n return invitation.price.frequency != \"once\"\n ? ` / ${invitation.price.frequency.replace(\"per \", \"\")}`\n : \"\";\n };\n\n const ensure2Dec = (value) => {\n value = value ? parseFloat(value) : 0;\n return value.toFixed(2).replace(\".00\", \"\");\n };\n\n return (\n \n \n \n {invitation.email}\n \n \n\n \n ({\n backgroundColor: theme.colors.gray[1],\n color: theme.colors.dark[4],\n borderRadius: \"15px\",\n padding: \"3px 15px\",\n // display: \"inline\",\n \"&:hover\": {\n backgroundColor: \"#fff\",\n cursor: \"pointer\",\n },\n })}\n >\n \n onCopy()} text={invitation.link}>\n {invitation.link}\n \n \n \n \n\n {invitation.price && (\n \n {invitation.price.is_flexible\n ? \"Flexible\"\n : invitation.price.currency &&\n (invitation.price.price || invitation.price.price == 0)\n ? `${getSymbolFromCurrency(invitation.price.currency)}${ensure2Dec(\n invitation.price.price\n )}${getFrequency()}`\n : \"\"}\n \n )}\n {!invitation.price && }\n\n {new Date(invitation.sent_at).toLocaleString(DateTime.DATE_MED)}\n\n \n \n \n onResend()}\n icon={}\n >\n {t(\"spaces.settings.members.invitedrow.invitation.resend\")}\n \n \n props.onDestroy(invitation)}\n icon={}\n color=\"red\"\n >\n {t(\"spaces.settings.members.invitedrow.invitation.cancel\")}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./InvitedRow\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nexport default function Invited(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [invitations, setInvitations] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [term, setTerm] = useState(null);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n useEffect(() => {\n if (props.refresh) {\n onFetch();\n props.setRefresh(false);\n }\n }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n InvitationModel.onFetch(\n space.slug,\n paginator,\n { term },\n (data) => {\n console.log(\"invitations: \", data);\n setInvitations(data);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onInvitationDestroy = (invitation) => {\n InvitationModel.onDestroy(\n invitation.id,\n space.slug,\n (data) => {\n const newInvitations = { ...invitations };\n for (var i = 0; i < newInvitations.data.length; i++) {\n if (newInvitations.data[i].id == invitation.id) {\n newInvitations.data.splice(i, 1);\n break;\n }\n }\n setInvitations(newInvitations);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.invited.invited.placeholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.invited.invited.button\")}\n \n {loading && }\n \n \n\n \n {invitations.data.length == 0 ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.invited.invited.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n {invitations.data.map((invitation) => {\n return (\n \n );\n })}\n \n
{t(\"spaces.settings.members.invited.table.email\")}\n {t(\"spaces.settings.members.invited.table.invitationlink\")}\n {t(\"spaces.settings.members.invited.table.amount\")}{t(\"spaces.settings.members.invited.table.date\")}
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Badge, Group, Menu, Tooltip, Stack } from \"@mantine/core\";\n\nimport { useDispatch } from \"react-redux\";\nimport useFrequencyOptions from \"../../../../collections/FrequencyOptions\";\n\nimport { DateTime } from \"luxon\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport StripeModel from \"../../../../models/Stripe\";\nimport { colors } from \"../../../../collections/colors\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport Swal from \"sweetalert2\";\n\nimport { setTiptapSidemenu } from \"../../../../store/app\";\n\nconst statusColors = {\n paid: \"green\",\n refunded: \"red\",\n failed: \"yellow\",\n pending: \"yellow\",\n trial: \"gray\",\n};\n\nconst statusString = {\n paid: \"Paid\",\n refunded: \"Refunded\",\n failed: \"Failed\",\n pending: \"Pending\",\n trial: \"Incomplete\",\n};\n\nconst statusMessage = {\n paid: \"This payment is complete\",\n refunded: \"This payment has been refunded\",\n failed: \"This payment has not been processed\",\n pending: \"This payment has not been processed\",\n trial: \"This payment is incomplete\"\n};\n\nexport default function PaymentRow(props) {\n \n const dispatch = useDispatch();\n\n const [payment, setPayment] = useState({ user: { avatar: {} } });\n const { frequencyOptions } = useFrequencyOptions();\n const { t, i18n } = useTranslation();\n \n useEffect(() => {\n if (!payment.id || payment.id != props.payment.id) {\n setPayment(props.payment);\n }\n }, [props]);\n\n const onRefund = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"You are about to refund the full amount of this payment\",\n showDenyButton: true,\n confirmButtonText: \"Yes, refund\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n StripeModel.onRefund(\n props.spaceId,\n payment.id,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: payment.user.username}));\n }\n\n if (!payment || !payment.user) {\n return null;\n }\n\n return (\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {payment.user.full_name}\n \n \n @{payment.user.username}\n \n \n \n \n\n \n {getSymbolFromCurrency(payment.currency)}\n {payment.formatted_amount}\n \n\n {new Date(payment.created_at).toLocaleString(DateTime.DATE_MED)}\n\n \n \n \n {statusString[payment.status]}\n \n \n \n\n \n {payment.status == \"paid\" ? (\n \n \n }\n color=\"red\"\n onClick={() => onRefund()}\n >\n {t(\"spaces.settings.members.paymentRow.payment.refundPayment\")}\n \n \n \n ) : (\n \"\"\n )}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n SegmentedControl\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./PaymentRow\";\nimport PaymentModel from \"../../../../models/Payment\";\nimport MemberModel from \"../../../../models/Member\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function Payments(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [payments, setPayments] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n onFetchCounts()\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n // useEffect(() => {\n // if (props.refresh) {\n // onFetch();\n // props.setRefresh(false);\n // }\n // }, [props]);\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n PaymentModel.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setPayments(data);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onPaymentUpdate = () => {};\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.payments.payment.searchPlaceholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.payments.payment.searchButton\")}\n \n {loading && }\n \n\n \n ({ backgroundColor: theme.colors.gray[0] })}\n data={[\n {\n label: `${counts.formatted_earnings}`,\n value: \"all\",\n },\n ]}\n />\n \n \n\n \n {payments.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.payments.payment.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n {payments.data.map((payment) => {\n return (\n \n );\n })}\n \n
\n {t(\"spaces.settings.members.payments.paymentTable.member\")}\n \n {t(\"spaces.settings.members.payments.paymentTable.amount\")}\n \n {t(\"spaces.settings.members.payments.paymentTable.date\")}\n \n {t(\"spaces.settings.members.payments.paymentTable.status\")}\n
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Group,\n Button,\n Drawer,\n TextInput,\n SegmentedControl,\n Switch,\n MultiSelect,\n Select,\n Divider,\n ScrollArea,\n Loader,\n Alert,\n MantineProvider\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport Swal from \"sweetalert2\";\n\nimport ManagerModel from \"../../../../models/Manager\";\nimport BroadcastModel from \"../../../../models/Broadcast\";\nimport SpaceModel from \"../../../../models/Space\";\nimport Premium from \"../../../app/Premium\";\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nexport default function ComposeBroadcast(props) {\n const [scheduled, setScheduled] = useState(false);\n const { t, i18n } = useTranslation();\n const [managers, setManagers] = useState([]);\n const [sender, setSender] = useState(\"\");\n\n const [spaces, setSpaces] = useState([]);\n const [searching, setSearching] = useState(false);\n const searchTimeoutId = useRef();\n const fixedUsers = useRef();\n const [loading, setLoading] = useState(false);\n\n const [canSendMessage, setCanSendMessage] = useState([]);\n\n const [validateOpened, setValidateOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const form = useForm({\n initialValues: {\n title: \"\",\n content: \"\",\n send_on_date: \"\",\n send_date: new Date(new Date().getTime() + 86400000),\n send_time: new Date(new Date().getTime() + 86400000),\n // send_to: [\"active\"],\n target: [],\n user_id: \"\",\n broadcast_type: \"email\",\n },\n\n validate: {\n title: (value, values) => value.length > 0 || values.broadcast_type === \"message\" ? null : \"Write a title\",\n content: (value) =>\n value.length > 0\n ? null\n : t(\"spaces.settings.broadcast.form.contentErrMessage\"),\n target: (value) =>\n value.length > 0\n ? null\n : t(\"spaces.settings.broadcast.form.targetErrMessage\"),\n },\n });\n\n useEffect(() => {\n onFetchManagers();\n onFetchSpaces();\n setCanSendMessage(\n space && space.permissions && space.permissions.can_send_message_broadcast\n );\n setValidatePremium(\n space && space.permissions && space.permissions.can_schedule_broadcast\n );\n }, [space]);\n\n useEffect(() => {\n form.setFieldValue(\"user_id\", sender);\n }, [sender]);\n\n useEffect(() => {\n if (props.broadcast && props.broadcast.id) {\n form.setFieldValue(\"title\", props.broadcast.title);\n form.setFieldValue(\"content_json\", props.broadcast.content_json);\n form.setFieldValue(\"content\", props.broadcast.content);\n form.setFieldValue(\"send_on_date\", props.broadcast.send_on_date);\n form.setFieldValue(\"target\", props.broadcast.target);\n if (props.broadcast.send_time) {\n setScheduled(true);\n form.setFieldValue(\"send_date\", new Date(props.broadcast.send_time));\n form.setFieldValue(\"send_time\", new Date(props.broadcast.send_time));\n }\n if (props.broadcast.user && props.broadcast.user.id) {\n setSender(props.broadcast.user.id);\n }\n if (props.broadcast.broadcast_type) {\n form.setFieldValue(\"broadcast_type\", props.broadcast.broadcast_type);\n }\n // form.setFieldValue(\"send_to\", new Date(props.broadcast.send_time))\n } else {\n onResetForm();\n\n if (props.sendTo) {\n form.setFieldValue(\"send_to\", props.sendTo);\n }\n if (props.sendToUsers && props.sendToUsers.length > 0) {\n const usersIds = props.sendToUsers.map((user) => user.username);\n form.setFieldValue(\"target\", usersIds);\n fixedUsers.current = true;\n } else {\n form.setFieldValue(\"target\", []);\n fixedUsers.current = false;\n }\n\n if (props.broadcastType) {\n form.setFieldValue(\"broadcast_type\", props.broadcastType);\n }\n }\n }, [props]);\n\n useEffect(() => {\n form.clearFieldError('title');\n form.clearFieldError('target');\n }, [form.values.broadcast_type])\n\n const getSendToData = () => {\n if (fixedUsers.current) {\n return props.sendToUsers.map((user) => ({\n value: user.username,\n label: user.full_name,\n }));\n }\n\n const activeLabel = props.isTopLevel\n ? t(\"spaces.settings.broadcast.membersTypes.active\")\n : `${t(\"spaces.settings.broadcast.membersTypes.active\")} in ${\n props.parentName\n }`;\n\n const pendingLabel = props.isTopLevel\n ? t(\"spaces.settings.broadcast.membersTypes.pending\")\n : `${t(\"spaces.settings.broadcast.membersTypes.pending\")} in ${\n props.parentName\n }`;\n\n const interestedLabel = props.isTopLevel\n ? t(\"spaces.settings.broadcast.membersTypes.interested\")\n : `${t(\"spaces.settings.broadcast.membersTypes.interested\")} in ${\n props.parentName\n }`;\n\n const interestedOnlyLabel = props.isTopLevel\n ? \"Interested people who are not registered\"\n : `Interested people who are not registered in ${props.parentName}`;\n\n const array = [\n { value: \"active\", label: activeLabel },\n { value: \"pending\", label: pendingLabel },\n { value: \"interested\", label: interestedLabel },\n { value: \"interested-only\", label: interestedOnlyLabel },\n ];\n\n if (form.values.broadcast_type == \"message\") {\n array.splice(2, 1);\n\n for (let i = 0; i < spaces.length; i++) {\n array.push(spaces[i]);\n }\n }\n\n return array;\n };\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n\n SpaceModel.onFetchChildren(\n space.slug,\n include,\n { page: 1, per: 10 },\n [\"active\", \"not_journey\", \"not_interactive\"],\n (data) => {\n setSpaces(\n data.data.map((item) => ({ label: item.name, value: item.slug }))\n );\n },\n (data) => {}\n );\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"title\", \"\");\n form.setFieldValue(\"content\", \"\");\n form.setFieldValue(\"send_on_date\", false);\n form.setFieldValue(\"send_date\", new Date(new Date().getTime() + 86400000));\n form.setFieldValue(\"send_time\", new Date(new Date().getTime() + 86400000));\n\n if (user && user.authenticated) {\n setSender(user.id);\n }\n };\n\n const onFetchManagers = () => {\n ManagerModel.onFetch(\n space.slug,\n { page: 1, per: 1000 },\n {},\n (data) => {\n const _managers = data.data.map((manager) => {\n return {\n label: `${manager.full_name} (${manager.username})`,\n value: `${manager.user_id}`,\n };\n });\n\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSend = () => {\n onSave(\"\");\n };\n\n const onSaveDraft = () => {\n onSave(\"draft\");\n };\n\n const onSave = (status = null) => {\n if (loading) {\n return;\n }\n\n setLoading(true);\n\n const send_time = mergeDateAndTime(\n form.values.send_date,\n form.values.send_time\n );\n\n if (!status && scheduled) {\n status = \"scheduled\";\n }\n\n const params = {\n ...form.values,\n send_on_date: status == \"scheduled\",\n send_time: status == \"scheduled\" ? send_time : null,\n status,\n };\n if (props.broadcast && props.broadcast.id) {\n BroadcastModel.onUpdate(\n props.broadcast.id,\n space.slug,\n params,\n (data) => {\n Swal.fire(data.title, \"\", \"success\");\n onUpdate();\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }\n );\n } else {\n BroadcastModel.onCreate(\n space.slug,\n params,\n (data) => {\n Swal.fire(data.title, \"\", \"success\");\n onUpdate();\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n setTimeout(() => {\n setLoading(false);\n }, 1000);\n }\n );\n }\n };\n\n const onSendPreview = () => {\n const params = {\n ...form.values,\n status: \"preview\"\n };\n BroadcastModel.onSendPreview(\n space.slug,\n params,\n (data) => {\n Swal.fire(data.title, \"\", \"success\");\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n }\n );\n };\n\n const onUpdate = () => {\n props.setOpened(false);\n\n props.onUpdate();\n };\n\n const mergeDateAndTime = (date, time) => {\n try {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n } catch {\n return new Date().toISOString();\n }\n };\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content_json\", content.content);\n form.setFieldValue(\"content\", html);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.broadcast.form.composeBroadcast\")}\n \n }\n padding=\"xl\"\n size={600}\n offsetScrollbars\n >\n {!props.isEmailReady ? (\n \n \n {\"You are currently on a free trial and cannot send broadcasts through Sutra. Email broadcasts can be sent through our system once your first account payment is processed or by making a request to support@sutra.co\"}\n \n \n ) : (\n \n
onSend(values))}>\n \n {form.values.broadcast_type == \"message\" && !canSendMessage[0] ? (\n \n \n \n ) : (\n \n \n\n \n {(form.values.broadcast_type == \"email\" || (form.values.broadcast_type == \"message\" && !fixedUsers.current)) && (\n \n {`${t(\n \"spaces.settings.broadcast.form.brackets.part1\"\n )} {{first_name}}, {{last_name}}, {{start_date}}, {{event_link}}, {{space_name}}, {{space_link}}, ${t(\n \"spaces.settings.broadcast.form.brackets.part2\"\n )} {{space_name_link}} ${t(\n \"spaces.settings.broadcast.form.brackets.part3\"\n )}`}\n \n )}\n {form.values.broadcast_type == \"message\" &&\n fixedUsers.current && (\n \n {`${t(\n \"spaces.settings.broadcast.form.brackets.part1\"\n )} {{first_name}}, {{last_name}} ${t(\n \"spaces.settings.broadcast.form.brackets.part3\"\n )}`}\n \n )}\n\n \n ) : (\n \n )\n }\n {...form.getInputProps(\"target\")}\n radius=\"sm\"\n size=\"md\"\n mt={15}\n searchable\n data={getSendToData()}\n label={t(\"spaces.settings.broadcast.form.target.label\")}\n placeholder={t(\n \"spaces.settings.broadcast.form.target.placeholder\"\n )}\n defaultValue={[\"active\"]}\n maxDropdownHeight={400}\n onSearchChange={(query) => onSearchSpaces(query)}\n styles={{\n label: { whiteSpace: \"break-spaces\" },\n value: { height: \"auto\" },\n }}\n />\n\n \n\n {\n if (validatePremium && !validatePremium[0]) {\n setValidateOpened([true, validatePremium[1], validatePremium[2]]);\n } else {\n setScheduled(event.currentTarget.checked);\n }\n }}\n />\n {scheduled && (\n \n \n \n \n )}\n\n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n \n }\n type=\"submit\"\n >\n {scheduled\n ? t(\"spaces.settings.broadcast.form.scheduleBroadcast\")\n : t(\"spaces.settings.broadcast.form.sendBroadcast\")}\n \n\n \n {form.values.broadcast_type == \"email\" && (\n onSendPreview()}\n >\n {t(\"spaces.settings.broadcast.form.sendPreview\")}\n \n )}\n\n {!fixedUsers.current && (\n }\n onClick={() => onSaveDraft()}\n >\n {t(\"spaces.settings.broadcast.form.saveDraft\")}\n \n )}\n\n \n \n \n )}\n \n \n
\n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Menu } from \"@mantine/core\";\n\nimport { DateTime } from \"luxon\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport default function InterestedRow(props) {\n const [interest, setInterest] = useState({});\n const { t, i18n } = useTranslation();\n useEffect(() => {\n if (!interest.id || interest.id != props.interest.id) {\n setInterest(props.interest);\n }\n }, [props]);\n\n return (\n \n \n \n {interest.first_name}\n \n \n\n \n \n {interest.email}\n \n \n\n {new Date(interest.created_at).toLocaleString(DateTime.DATE_MED)}\n\n \n \n \n props.onDestroy(interest)}\n icon={}\n color=\"red\"\n >\n {t(\n \"spaces.settings.members.interested.interestedrow.removeFromList\"\n )}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n ScrollArea,\n Button,\n Pagination,\n Box,\n TextInput,\n Loader,\n} from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport InterestModel from \"../../../../models/Interest\";\n\nimport ComposeBroadcast from \"../broadcast/ComposeBroadcast\";\n\nimport Row from \"./InterestedRow\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nexport default function Interested(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [interests, setInterests] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [term, setTerm] = useState(null);\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n useEffect(() => {\n if (props.refresh) {\n onFetch();\n props.setRefresh(false);\n }\n }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n InterestModel.onFetch(\n space.slug,\n paginator,\n { term },\n (data) => {\n setInterests(data);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onInterestDestroy = (interest) => {\n InterestModel.onDestroy(\n interest.id,\n space.slug,\n (data) => {\n const newInterest = { ...interests };\n for (var i = 0; i < newInterest.data.length; i++) {\n if (newInterest.data[i].id == interest.id) {\n newInterest.data.splice(i, 1);\n break;\n }\n }\n setInterests(newInterest);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onBroadcastUpdate = () => {\n // onFetch()\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.interested.interested.placeholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.interested.interested.button\")}\n \n {loading && }\n \n\n }\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n onClick={() => setOpened(true)}\n >\n {t(\"spaces.settings.members.interested.interested.broadcast\")}\n \n \n\n \n {interests.data.length == 0 ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.interested.interested.noRecordFound\")}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n {interests.data.map((interest) => {\n return (\n \n );\n })}\n \n
\n {t(\"spaces.settings.members.interested.table.firstname\")}\n {t(\"spaces.settings.members.interested.table.email\")}{t(\"spaces.settings.members.interested.table.date\")}
\n )}\n
\n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n\n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Container,\n Badge,\n Group,\n Center,\n ScrollArea,\n SegmentedControl,\n MantineProvider,\n Button,\n Box,\n useMantineTheme,\n Pagination\n} from \"@mantine/core\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport Registered from \"./members/Registered\";\nimport Invited from \"./members/Invited\";\nimport Payments from \"./members/Payments\";\nimport Interested from \"./members/Interested\";\n\nimport InvitePeople from \"./members/InvitePeople\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport MemberModel from \"../../../models/Member\";\n\nimport ComposeBroadcast from \"./broadcast/ComposeBroadcast\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nexport default function Members() {\n const { t, i18n } = useTranslation();\n const location = useLocation();\n const space = useSelector((state) => state.space);\n const theme = useMantineTheme();\n const [pageSection, setPageSection] = useState(\"registered\");\n const [inviteOpened, setInviteOpened] = useState(false);\n const [refresh, setRefresh] = useState(false);\n\n const [counts, setCounts] = useState(false);\n const [opened, setOpened] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n\n const [canSendSelective, setCanSendSelective] = useState([]);\n\n const sendToUsers = useRef([]);\n const broadcastType = useRef(\"email\");\n\n useEffect(() => {\n checkSearchParams();\n }, location);\n\n useEffect(() => {\n \n if (refresh){\n onFetchCounts();\n setRefresh(false)\n }\n }, [refresh]);\n\n useEffect(() => {\n setCanSendSelective(\n space &&\n space.permissions &&\n space.permissions.can_send_selective_broadcast\n );\n onFetchCounts();\n }, [space]);\n\n const onBroadcastUpdate = () => {};\n\n const onSendBroadcast = (type, users, selected) => {\n if (!canSendSelective[0]) {\n setOpenedPremium([true, canSendSelective[1], canSendSelective[2]]);\n return;\n }\n\n sendToUsers.current = [];\n for (let i = 0; i < users.length; i++) {\n if (\n selected.indexOf(users[i].username) >= 0 &&\n window.$currentUserId != users[i].user_id\n ) {\n sendToUsers.current.push({ ...users[i] });\n }\n }\n broadcastType.current = type;\n setOpened(true);\n };\n\n const checkSearchParams = () => {\n const search = location.search;\n const section = new URLSearchParams(search).get(\"section\");\n\n if (section) {\n setPageSection(section);\n }\n };\n\n const displayPageSection = () => {\n if (pageSection == \"registered\") {\n return (\n \n );\n } else if (pageSection == \"invited\") {\n return (\n \n );\n } else if (pageSection == \"interested\") {\n return (\n \n );\n } else if (pageSection == \"payments\") {\n return (\n \n );\n } else {\n return (\n \n );\n }\n };\n\n const onDownloadExcel = () => {\n MemberModel.onDownloadExcel(space.slug);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n \n setCounts(data);\n },\n (data) => {}\n );\n };\n \n const getTab = (label, key) => {\n \n return (\n
\n {label}\n \n {counts[key]}\n \n
\n );\n };\n\n return (\n \n ({\n width: \"850px\",\n maxWidth: \"850px\",\n })}\n >\n \n onDownloadExcel()}\n sx={(theme) => ({\n backgroundColor: theme.colors.gray[1],\n color: theme.colors.gray[8],\n })}\n >\n {t(\"spaces.settings.members.members.download\")}\n \n setInviteOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.members.invite\")}\n \n \n }\n />\n\n setPageSection(value)}\n data={[\n {\n label: getTab(t(\"spaces.settings.members.members.member\"), \"all\"),\n value: \"registered\",\n },\n {\n label: getTab(\n t(\"spaces.settings.members.members.invited\"),\n \"invitations\"\n ),\n value: \"invited\",\n },\n {\n label: getTab(\n t(\"spaces.settings.members.members.interested\"),\n \"interested\"\n ),\n value: \"interested\",\n },\n {\n label: getTab(\n t(\"spaces.settings.members.members.payment\"),\n \"payments\"\n ),\n value: \"payments\",\n },\n ]}\n />\n\n \n {displayPageSection()}\n \n {inviteOpened && (\n \n )}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Box,\n Menu,\n Group,\n Stack,\n Button,\n Badge,\n Divider,\n MantineProvider,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Copy, Edit } from \"tabler-icons-react\";\n\nimport { Link } from \"react-router-dom\";\n\nimport { DateTime } from \"luxon\";\n\nimport BroadcastModel from \"../../../../models/Broadcast\";\n\nimport Swal from \"sweetalert2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function BroadcastItem(props) {\n const { t, i18n } = useTranslation();\n\n const theme = useMantineTheme();\n const [broadcast, setBroadcast] = useState({ user: {} });\n\n useEffect(() => {\n if (props.broadcast && props.broadcast.id != broadcast.id) {\n setBroadcast(props.broadcast);\n }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(broadcast);\n };\n\n const onDuplicate = () => {\n BroadcastModel.onDuplicate(\n broadcast.id,\n props.spaceId,\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n Swal.fire({\n title: t(\"spaces.settings.broadcast.onDestroy.alertTitle\"),\n html: t(\"spaces.settings.broadcast.onDestroy.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.settings.broadcast.onDestroy.confirm\"),\n denyButtonText: t(\"spaces.settings.broadcast.onDestroy.deny\"),\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n BroadcastModel.onDestroy(\n broadcast.id,\n props.spaceId,\n (data) => {\n props.onUpdate();\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n \n \n ({\n color: theme.colors.sutrablue[3],\n fontWeight: 500,\n fontSize: 20,\n })}\n onClick={() => onEdit()}\n >\n {broadcast.title}\n \n \n \n \n ({\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n },\n })}\n >\n \n \n }\n >\n {!broadcast.is_sent && (\n onEdit()}\n icon={}\n >\n {t(\"spaces.settings.broadcast.actions.edit\")}\n \n )}\n onDuplicate()}\n icon={}\n >\n {t(\"spaces.settings.broadcast.actions.duplicate\")}\n \n \n onDestroy()}\n icon={}\n color=\"red\"\n >\n {t(\"spaces.settings.broadcast.actions.delete\")}\n \n \n \n \n \n ({ color: theme.colors.gray[6] })}\n >\n {broadcast.user.full_name}\n \n {broadcast.is_scheduled &&\n !broadcast.is_sent &&\n broadcast.send_time && (\n \n \n {DateTime.fromSQL(broadcast.send_time).toFormat(\n \"LLL d, yyyy, h:mm a\"\n )}\n \n \n \n )}\n {broadcast.is_sent && (\n \n \n {DateTime.fromSQL(broadcast.sent_on).toFormat(\n \"LLL d, yyyy, h:mm a\"\n )}\n \n \n \n )}\n {broadcast.send_count && broadcast.send_count > 0 && (\n \n {broadcast.send_to_text}\n \n \n )}\n \n {broadcast.is_sent && (\n \n {t(\"spaces.settings.broadcast.statuses.sent\")}\n \n ) }\n {broadcast.is_scheduled && !broadcast.is_sent && (\n \n {t(\"spaces.settings.broadcast.statuses.scheduled\")}\n \n )}\n {broadcast.is_draft &&\n !broadcast.is_scheduled &&\n !broadcast.is_sent && (\n \n {t(\"spaces.settings.broadcast.statuses.draft\")}\n \n )}\n {broadcast.is_processing && (\n \n {t(\"spaces.settings.broadcast.statuses.procesing\")}\n \n )}\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Box, Drawer, Divider, ScrollArea } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { DateTime } from \"luxon\";\n\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nexport default function Broadcast(props) {\n const { t, i18n } = useTranslation();\n const [broadcast, setBroadcast] = useState({ user: {} });\n\n const data = [\n {\n value: \"active\",\n label: t(\"spaces.settings.broadcast.membersType.active\"),\n },\n {\n value: \"pending\",\n label: t(\"spaces.settings.broadcast.membersType.pending\"),\n },\n {\n value: \"interested\",\n label: t(\"spaces.settings.broadcast.membersType.interested\"),\n },\n ];\n\n useEffect(() => {\n if (props.broadcast) {\n setBroadcast(props.broadcast);\n }\n }, [props]);\n\n return (\n props.setOpened(false)}\n title={\n \n {`${t(\"spaces.settings.broadcast.sentOn\")} `}\n {DateTime.fromSQL(broadcast.sent_on).toFormat(\"LLL d, yyyy, h:mm a\")}{\" \"}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n \n {broadcast.title}\n \n\n \n\n \n\n {Array.isArray(broadcast?.sent_to_users) && broadcast.sent_to_users.length > 0 && (\n <>\n \n \n Sent to:\n {broadcast.sent_to_users.join(', ')}\n \n \n )}\n\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Container, Button, ScrollArea } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\n\nimport ComposeBroadcast from \"./broadcast/ComposeBroadcast\";\nimport BroadcastItem from \"./broadcast/BroadcastItem\";\nimport BroadcastDetails from \"./broadcast/Broadcast\";\n\nimport BroadcastModel from \"../../../models/Broadcast\";\nimport PremiumModal from \"../../app/PremiumModal\";\n\nconst data = [\n { value: \"active\", label: \"Active members\" },\n { value: \"pending\", label: \"Pending members\" },\n { value: \"interested\", label: \"Interested members\" },\n];\n\nexport default function Broadcast() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [opened, setOpened] = useState(false);\n const [openedDetails, setOpenedDetails] = useState(false);\n const [broadcasts, setBroadcasts] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [selectedBroadcast, setSelectedBroadcast] = useState(null);\n const [validateOpened, setValidateOpened] = useState(false);\n const [validatePremium, setValidatePremium] = useState(false);\n\n const sortedBroadcasts = Array.isArray(broadcasts?.data) ? [...broadcasts.data].sort((a, b) => {\n if (a.is_processing && !b.is_processing) return -1;\n if (!a.is_processing && b.is_processing) return 1;\n return 0;\n }) : [];\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n setValidatePremium(\n space && space.permissions && space.permissions.can_broadcast\n );\n }, [space]);\n\n useEffect(() => {\n if (space && opened && !validatePremium[0]) {\n setOpened(false);\n setValidateOpened([true, validatePremium[1], validatePremium[2]]);\n return;\n }\n if (!opened) {\n setSelectedBroadcast(null);\n onFetch();\n }\n }, [opened]);\n\n useEffect(() => {\n if (!openedDetails) {\n setSelectedBroadcast(null);\n }\n }, [openedDetails]);\n\n const onFetch = () => {\n BroadcastModel.onFetch(\n space.slug,\n { page: 1, per: 100 },\n (data) => {\n setBroadcasts(data);\n },\n (data) => {}\n );\n };\n\n const onBroadcastUpdate = () => {\n setBroadcasts({ data: [] });\n setSelectedBroadcast(null);\n onFetch();\n };\n\n const onBroadcastEdit = (broadcast) => {\n setSelectedBroadcast(broadcast);\n if (broadcast.is_sent) {\n setOpenedDetails(true);\n } else {\n setOpened(true);\n }\n };\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n setOpened(true)}\n leftIcon={}\n sx={(theme) => ({\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n })}\n >\n {t(\"spaces.settings.broadcast.broadcastButton\")}\n \n }\n />\n {sortedBroadcasts.map((broadcast) => {\n return (\n \n );\n })}\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Drawer, ScrollArea, useMantineTheme } from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Broadcaster from \"../../../../helpers/Broadcaster\";\n\n// import jquery from \"jquery\";\n\nexport default function CreateStructure(props) {\n const [html, setHtml] = useState(\"\");\n\n const { t, i18n } = useTranslation();\n const theme = useMantineTheme();\n\n useEffect(() => {\n Broadcaster.receive(\"settings_closeModal\", document.body, () => {\n props.setOpened(false);\n });\n\n return () => {\n Broadcaster.unRegisterElement(\"settings_closeModal\", document.body);\n };\n }, []);\n\n // const onCloseModal = useCallback((event, data) => {\n // debugger;\n // props.setOpened(false)\n // })\n\n useEffect(() => {\n // SettingsModel.onFetch(`/api/v4/space/1nzywu/structures/new`, \"get\", (data) => {\n if (props.spaceId) {\n // SettingsModel.onFetch(`/circle/${props.spaceId}/structures/new`, \"get\", (data) => {\n // setHtml(data)\n // })\n }\n }, [props]);\n\n useEffect(() => {\n // debugger;\n // if ($){\n // jquery.ajax({\n // url: `/circle/${props.spaceId}/structures/new?scripts=true&auth_token=${window.$currentUserAuthToken}&from_site_api=true`,\n // type: \"GET\"\n // });\n // }\n }, [html]);\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.structure.createStructure.title.createStructure\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n \n {props.structure && props.structure.id ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import React from \"react\";\n\nimport {\n Text,\n Title,\n Box,\n Drawer,\n ScrollArea,\n Group,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderRadius: theme.radius.md,\n border: `1px solid ${theme.colors.gray[4]}`,\n paddingTop: 15,\n paddingBottom: 15,\n paddingRight: 15,\n paddingLeft: 15,\n backgroundColor: theme.white,\n marginTop: 15,\n width: \"100%\",\n },\n freeformResponse: {\n display: \"flex\",\n alignItems: \"flex-start\",\n // borderRadius: theme.radius.md,\n // backgroundColor: theme.colors.gray[1],\n // paddingTop: 10,\n // paddingBottom: 10,\n // paddingRight: 30,\n // paddingLeft: 30,\n // marginTop: 10,\n width: \"100%\",\n fontSize: 14,\n },\n}));\n\nexport default function ShowStructure(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n // const [structure, setStructure] = useState(null)\n\n return (\n props.setOpened(false)}\n title={\n \n Structure\n \n }\n padding=\"xl\"\n size={600}\n >\n {props.structure && props.structure.id && (\n \n \n {props.structure.title}\n \n {props.structure.description && (\n \n {props.structure.description}\n \n )}\n \n {props.structure.steps.map((step, index) => {\n return (\n <>\n \n \n {index + 1}\n \n \n \n \n\n {step.title && {step.title}}\n\n \n \n \n \n \n \n \n );\n })}\n
\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Text,\n Box,\n Drawer,\n Select,\n ScrollArea,\n Stack,\n Group,\n Button,\n MultiSelect,\n Divider,\n Switch,\n Loader,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { DatePicker, TimeInput } from \"@mantine/dates\";\n\nimport StructureModel from \"../../../../models/Structure\";\nimport SpaceModel from \"../../../../models/Space\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport Swal from \"sweetalert2\";\n\nexport default function Add(props) {\n const { t, i18n } = useTranslation();\n\n const [sender, setSender] = useState(\"\");\n const [scheduled, setScheduled] = useState(\"\");\n const [managers, setManagers] = useState([]);\n\n const [spaces, setSpaces] = useState([]);\n const [selectedSpaces, setSelectedSpaces] = useState([]);\n\n const [searching, setSearching] = useState(false);\n\n const searchTimeoutId = useRef();\n\n const form = useForm({\n initialValues: {\n pod_structures: \"\",\n user_id: \"\",\n start_on: \"\",\n start_date: \"\",\n start_time: \"\",\n // structure_message: \"\"\n },\n\n validate: {\n pod_structures: (value) => (value.length > 0 ? null : \"Select a space\"),\n user_id: (value) => (value.length > 0 ? null : \"Select a sender\"),\n // structure_message: (value) => value.length > 0 ? null : \"Write a message\",\n },\n });\n\n useEffect(() => {\n if (props.spaceId) {\n onFetchSpaces();\n onFetchManagers();\n }\n }, [props]);\n\n const onFetchSpaces = (query = null) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n\n SpaceModel.onFetchChildren(\n props.spaceId,\n include,\n { page: 1, per: 10 },\n [\"active\", \"not_journey\", \"discussions\"],\n (data) => {\n setSpaces(\n data.data.map((item) => ({ label: item.name, value: item.slug }))\n );\n },\n (data) => {}\n );\n };\n\n const onFetchManagers = () => {\n ManagerModel.onFetch(\n props.spaceId,\n { page: 1, per: 1000 },\n {},\n (data) => {\n const _managers = data.data.map((manager) => {\n return { label: manager.full_name, value: `${manager.user_id}` };\n });\n\n setManagers(_managers);\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n const start_time = mergeDateAndTime(\n form.values.start_date,\n form.values.start_time\n );\n\n const params = {\n ...form.values,\n start_time,\n start_on: start_time ? \"data\" : \"now\",\n };\n\n StructureModel.onAddToSpace(\n props.structure.id,\n props.spaceId,\n params,\n (data) => {\n Swal.fire(data.title, data.message, \"success\");\n props.setOpened(false);\n onResetForm();\n },\n (data) => {}\n );\n };\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"pod_structures\", \"\");\n form.setFieldValue(\"user_id\", \"\");\n form.setFieldValue(\"start_on\", false);\n form.setFieldValue(\"start_date\", \"\");\n form.setFieldValue(\"start_time\", \"\");\n // form.setFieldValue(\"structure_message\", \"\")\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n {t(\"spaces.settings.structure.add.add.title\")}\n \n }\n padding=\"xl\"\n size={600}\n >\n
onSave(values))}>\n \n \n {/**/}\n\n \n {t(\"spaces.settings..add.add.description\")}\n \n ) : (\n \n )\n }\n {...form.getInputProps(\"pod_structures\")}\n searchable\n mt={5}\n data={spaces}\n placeholder={t(\n \"spaces.settings.structure.add.add.placeholder1\"\n )}\n maxDropdownHeight={400}\n onSearchChange={(query) => onSearchSpaces(query)}\n />\n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n\n \n ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n />\n setScheduled(event.currentTarget.checked)}\n />\n {scheduled ? (\n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n \n \n
\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Text,\n Box,\n Menu,\n Group,\n Stack,\n Button,\n Divider,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Copy, Edit } from \"tabler-icons-react\";\n\nimport { sutraTheme } from \"../../../../collections/sutraTheme\";\n\nimport Swal from \"sweetalert2\";\n\nimport StructureModel from \"../../../../models/Structure\";\n\nexport default function StructureItem(props) {\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const [structure, setStructure] = useState({});\n\n useEffect(() => {\n if (props.structure && props.structure.id != structure.id) {\n setStructure(props.structure);\n }\n }, [props]);\n\n const onEdit = () => {\n props.onEdit(structure);\n };\n\n const onDuplicate = () => {\n StructureModel.onDuplicate(\n structure.id,\n props.spaceId,\n (data) => {\n props.onUpdate(structure);\n },\n (data) => {}\n );\n };\n\n const onDestroy = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This structure will be permanently deleted\",\n showDenyButton: true,\n confirmButtonText: \"Delete structure\",\n denyButtonText: \"Cancel\",\n confirmButtonColor: theme.colors.red[8],\n denyButtonColor: theme.colors.gray[6],\n }).then((result) => {\n if (result.isConfirmed) {\n StructureModel.onDestroy(\n structure.id,\n props.spaceId,\n (data) => {\n props.onUpdate(structure);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n \n \n props.onSelect(structure)}\n sx={(theme) => ({\n color: sutraTheme.colors.sutrablue[3],\n fontWeight: 500,\n fontSize: 20,\n cursor: \"pointer\",\n })}\n >\n {structure.title}\n \n \n \n \n ({\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n },\n })}\n >\n \n \n }\n >\n }\n onClick={() => props.onAdd(structure)}\n >\n {t(\"spaces.settings.structure.structureItem.item.addToSpace\")}\n \n }\n onClick={() => onEdit()}\n >\n {t(\"spaces.settings.structure.structureItem.item.edit\")}\n \n }\n onClick={() => onDuplicate()}\n >\n {t(\"spaces.settings.structure.structureItem.item.duplicate\")}\n \n \n }\n color=\"red\"\n onClick={() => onDestroy()}\n >\n {t(\"spaces.settings.structure.structureItem.item.delete\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Container, Button, useMantineTheme, ScrollArea } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\n\nimport CreateStructure from \"./structures/CreateStructure\";\nimport ShowStructure from \"./structures/ShowStructure\";\nimport AddToSpaces from \"./structures/Add\";\nimport StructureItem from \"./structures/StructureItem\";\n\nimport StructureModel from \"../../../models/Structure\";\n\nimport { sutraTheme } from \"../../../collections/sutraTheme\";\n\nexport default function Structures(props) {\n const theme = useMantineTheme();\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const [structures, setStructures] = useState([]);\n const [createStructureOpened, setCreateStructureOpened] = useState(false);\n const [showStructureOpened, setShowStructureOpened] = useState(false);\n const [showAddToSpaces, setShowAddToSpaces] = useState(false);\n const [selectedStructure, setSelectedStructure] = useState(null);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (!createStructureOpened) {\n setSelectedStructure(null);\n if (space && space.slug) {\n onFetch();\n }\n }\n }, [createStructureOpened]);\n\n const onFetch = () => {\n StructureModel.onFetch(\n space.slug,\n { page: 1, per: 10000 },\n (data) => {\n setStructures(data.data);\n },\n (data) => {}\n );\n };\n\n const onUpdateStructure = (structure) => {\n onFetch();\n };\n\n const onEditStructure = (structure) => {\n setSelectedStructure(structure);\n setCreateStructureOpened(structure);\n };\n\n const onSelectedStructure = (structure) => {\n setSelectedStructure(structure);\n setShowStructureOpened(structure);\n };\n\n const onAddStructure = (structure) => {\n setSelectedStructure(structure);\n setShowAddToSpaces(true);\n };\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n {props.scope != \"payment\" && (\n setCreateStructureOpened(true)}\n leftIcon={}\n sx={{\n backgroundColor: sutraTheme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: sutraTheme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.structures.createStructure\")}\n \n }\n />\n )}\n {structures.map((structure) => {\n return (\n \n );\n })}\n \n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { Container } from \"@mantine/core\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Admin() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n return (\n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport { ScrollArea, Box } from \"@mantine/core\";\nimport SpaceModel from \"../../models/Space\";\nimport SpaceListItem from \"./presentations/List\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst paginator = {\n per: 10,\n page: 1,\n};\n\nconst scrollTimeoutIds = [];\n\nexport default function ChildrenList(props) {\n const { t, i18n } = useTranslation();\n // const scroll = useSelector(state => state.scroll);\n const navigate = useNavigate();\n\n const params = useParams();\n const didMount = useRef(false);\n\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [showSpaceFilter, setSpaceFilter] = useState(true);\n\n const viewport = useRef();\n\n useEffect(() => {\n if (!didMount.current && props.spaceId) {\n didMount.current = true;\n onFetch();\n }\n }, [props]);\n\n const onFetch = () => {\n setLoading(true);\n\n SpaceModel.onFetchChildren(\n props.spaceId,\n [\"members\"],\n paginator,\n [props.scope],\n (data) => {\n setSpaces(data.data);\n },\n (data) => {\n setLoading(false);\n }\n );\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n paginator.page++;\n\n onFetch();\n }\n };\n\n const getScopedTitle = () => {\n // const scope = params.scope ? params.scope : \"top\"\n // if (scope == \"direct\"){\n // return t('home.spacesList.directMessagesTitle')\n // } else {\n // return t('home.spacesList.yourSpaces')\n // }\n\n const scope = props.scope ? props.scope : \"top\";\n if (scope == \"top\") {\n return t(\"home.spacesList.topTitle\");\n } else if (scope == \"managed\") {\n return t(\"home.spacesList.managedTitle\");\n } else if (scope == \"pending\") {\n return t(\"home.spacesList.managedTitle\");\n } else if (scope == \"all\") {\n return t(\"home.spacesList.allTitle\");\n } else if (scope == \"direct\") {\n return t(\"home.spacesList.directMessagesTitle\");\n } else if (scope == \"archived\") {\n return t(\"home.spacesList.archivedTitle\");\n } else if (scope == \"deleted\") {\n return t(\"home.spacesList.deletedTitle\");\n } else if (scope == \"invitations\") {\n return t(\"home.spacesList.invitations\");\n }\n };\n\n return (\n \n {spaces.map((space) => {\n return (\n ({\n margin: \"15px 0px\",\n })}\n >\n \n \n );\n })}\n {spaces.length == 0 && !loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n {`You don't have any `}\n {getScopedTitle().toLowerCase()}\n \n ) : (\n \"\"\n )}\n {props.addMargin && }\n \n );\n}\n","import React from \"react\";\n\nimport { Container } from \"@mantine/core\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ChildrenList from \"../ChildrenList\";\n\nexport default function Scheduled() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n return (\n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { Container } from \"@mantine/core\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ChildrenList from \"../ChildrenList\";\n\nexport default function Archived() {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n return (\n ({\n height: \"100%\"\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nexport default function Sorter(props) {\n if (!props.orderBy) {\n return null;\n }\n\n return (\n props.onSort(props.sortBy)}>\n {props.orderBy.by == props.sortBy ? (\n props.orderBy.as == \"asc\" ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Stack, Progress, Checkbox, Box } from \"@mantine/core\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport {setTiptapSidemenu} from '../../../../store/app';\n\nexport default function ParticipationActivity(props) {\n const [member, setMember] = useState({});\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n useEffect(() => {\n setMember(props.member);\n }, [props]);\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n const capToMinValue = (value) => {\n if (value < 20) {\n return 20;\n }\n return value;\n };\n\n const getProgress = () => {\n if (props.showWords) {\n return {\n value: capToMinValue(\n (member.words_count * 100) / props.counts.max_words_count\n ),\n color: \"orange\",\n label: {`${member.words_count} words`},\n };\n } else {\n return {\n value: capToMinValue(\n (member.posts_count * 100) / props.counts.max_posts_count\n ),\n color: \"yellow\",\n label: {`${member.posts_count} ${t(\"spaces.settings.members.participationActivityRow.posts\")}`},\n };\n }\n\n // return [\n // {\n // value: props.counts ? member.avg_post_size * 100 / props.counts.max_words_count / 2 : 0,\n // color: \"orange\",\n // label: `${member.avg_post_size} words`\n // },\n // {\n // value: props.counts ? member.posts_count * 100 / props.counts.max_posts_count / 2 : 0,\n // color: \"yellow\",\n // label: `${member.posts_count} posts`,\n // }\n // ]\n };\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n \n \n \n\n \n {/* */}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n Center,\n Button,\n Box,\n Switch,\n TextInput,\n Checkbox,\n Loader,\n Pagination\n} from \"@mantine/core\";\n\nimport { DateRangePicker } from \"@mantine/dates\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Sorter from \"./Sorter\";\nimport Row from \"./ParticipationActivityRow\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function ParticipationActivity(props) {\n const paginator = useRef({\n page: 1,\n per: 30,\n });\n\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n const [value, setValue] = useState([\"\", \"\"]);\n const [showWords, setShowWords] = useState(false);\n const [orderBy, setOrderBy] = useState({ by: \"name\", as: \"asc\" });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n const noMore = useRef();\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n useEffect(() => {\n if (space && space.slug) {\n paginator.current.page = 1;\n onFetch();\n // onFetchCounts();\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n if (value && value[0] && value[1]) {\n props.onSearchByDateRange(value, term, paginator.current.page);\n } else {\n onFetch();\n }\n }\n }, [term]);\n\n useEffect(() => {\n if (value && value[0] && value[1]) {\n props.onSearchByDateRange(\n value,\n document.getElementById(\"search-input\").value,\n paginator.current.page\n );\n } else {\n onFetch();\n }\n }, [value]);\n\n useEffect(() => {\n // paginator.current.page = 1;\n if (\n props.channelData &&\n props.channelData.data &&\n props.channelData.data.length > 0\n ) {\n setMembers({ ...props.channelData });\n props.setChannelData({});\n return;\n }\n // if (props.refresh) {\n // onFetch(props.refresh);\n // // onFetchCounts();\n // props.setRefresh(false);\n // }\n }, [props]);\n\n const onFetch = (refresh = null) => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n if (refresh == \"more-participationactivity\") {\n }\n\n if (loader.oldScope != scope) {\n paginator.current.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator.current,\n { scope, term },\n (data) => {\n setLoading(false);\n const newData = { ...data };\n if (paginator.current.page == 1) {\n newData.data = [].concat(data.data);\n paginator.current.page = 2;\n } else {\n newData.data = members.data.concat(data.data);\n paginator.current.page++;\n }\n if (data.data.length == 0 && paginator.current.page > 1) {\n paginator.current.page--;\n noMore.current = true;\n setTimeout(() => {\n noMore.current = false;\n }, 10000);\n }\n setMembers(newData);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.current.page = page;\n onFetch();\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onSort = (sortBy) => {\n const aux = { ...orderBy };\n aux.by = sortBy;\n aux.as = aux.as == \"asc\" ? \"desc\" : \"asc\";\n setOrderBy(aux);\n\n const auxMembers = { ...members };\n if (aux.as == \"asc\") {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return -1;\n }\n\n if (nameA > nameB) {\n return 1;\n }\n\n return 0; // names must be equal\n });\n } else {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return 1;\n }\n\n if (nameA > nameB) {\n return -1;\n }\n\n return 0; // names must be equal\n });\n }\n\n console.log(auxMembers.data);\n console.log(getSortKey(sortBy));\n console.log(aux);\n setMembers(auxMembers);\n };\n\n const getSortKey = (sortBy) => {\n return sortBy == \"name\"\n ? \"full_name\"\n : sortBy == \"participation\"\n ? showWords\n ? \"words_count\"\n : \"posts_count\"\n : sortBy;\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.participationActivity.participation.searchPlaceholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\n \"spaces.settings.members.participationActivity.participation.searchButton\"\n )}\n \n {loading && }\n \n\n \n {!hasSelections() && (\n \n )}\n {hasSelections() && (\n <>\n \n props.onSendBroadcast(\"email\", members.data, selected)\n }\n >\n {t(\n \"spaces.settings.members.participationActivity.participation.emailButton\"\n )}\n \n \n props.onSendBroadcast(\"message\", members.data, selected)\n }\n >\n {t(\n \"spaces.settings.members.participationActivity.participation.messageButton\"\n )}\n \n \n )}\n \n \n\n \n {members.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\n \"spaces.settings.members.participationActivity.participation.noRecordFound\"\n )}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n
\n \n onSelectAll(event.currentTarget.checked)\n }\n />\n \n \n {t(\n \"spaces.settings.members.participationActivity.memberTable.member\"\n )}{\" \"}\n \n \n \n \n {t(\n \"spaces.settings.members.participationActivity.memberTable.participation\"\n )}{\" \"}\n \n \n {t(\n \"spaces.settings.members.participationActivity.memberTable.posts\"\n )}\n \n setShowWords(event.currentTarget.checked)\n }\n />\n {t(\n \"spaces.settings.members.participationActivity.memberTable.words\"\n )}\n \n \n
\n {loading && !noMore.current && (\n
\n \n
\n )}\n \n )}\n \n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Box, Stack, Checkbox, createStyles } from \"@mantine/core\";\n\nimport { DateTime } from \"luxon\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { colors } from \"../../../../collections/colors\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport {setTiptapSidemenu} from '../../../../store/app';\n\nconst useStyles = createStyles((theme, { colors }) => ({\n markComplete: {\n color: theme.colors.green[6],\n },\n}));\n\nexport default function MemberActivityRow(props) {\n const { theme, classes, cx } = useStyles({ colors });\n\n const [member, setMember] = useState({});\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n setMember(props.member);\n }, [props]);\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username}));\n }\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n {member.full_name}\n \n \n @{member.username}\n \n \n \n \n\n \n \n {member.completed && (\n \n )}\n \n \n\n \n {member.last_seen_at\n ? DateTime.fromISO(member.last_seen_at).toFormat(\"LLL dd, yyyy\")\n : \"\"}\n \n\n \n {member.last_posted_at\n ? DateTime.fromISO(member.last_posted_at).toFormat(\"LLL dd, yyyy\")\n : \"\"}\n \n\n \n {member.joined\n ? DateTime.fromISO(member.joined).toFormat(\"LLL dd, yyyy\")\n : \"\"}\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Text,\n Table,\n Group,\n Pagination,\n Button,\n Center,\n Box,\n TextInput,\n Checkbox,\n Loader,\n} from \"@mantine/core\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./MemberActivityRow\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Sorter from \"./Sorter\";\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nexport default function MemberActivity(props) {\n\n const paginator = useRef({\n page: 1,\n per: 30,\n });\n\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const [orderBy, setOrderBy] = useState({ by: \"name\", as: \"asc\" });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const timeoutId = useRef();\n const noMore = useRef();\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n useEffect(() => {\n if (space && space.slug) {\n // paginator.current.page = 1;\n onFetch();\n // onFetchCounts();\n }\n }, [space, scope]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n // useEffect(() => {\n // // paginator.current.page = 1;\n // if (props.refresh) {\n // onFetch(props.refresh);\n // // onFetchCounts();\n // props.setRefresh(false);\n // }\n // }, [props]);\n\n const onFetch = (refresh = null) => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n if (refresh == \"more-memberactivity\") {\n \n }\n\n if (loader.oldScope != scope) {\n paginator.current.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator.current,\n { scope, term },\n (data) => {\n setLoading(false);\n const newData = { ...data };\n\n if (paginator.current.page == 1) {\n newData.data = [].concat(data.data);\n paginator.current.page = 2;\n } else {\n newData.data = members.data.concat(data.data);\n paginator.current.page ++;\n \n }\n if (data.data.length == 0 && paginator.current.page > 1) {\n paginator.current.page--;\n noMore.current = true\n setTimeout(() => {\n noMore.current = false\n }, 10000)\n }\n\n setMembers(newData);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.current.page = page;\n onFetch();\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onSort = (sortBy) => {\n const aux = { ...orderBy };\n aux.by = sortBy;\n aux.as = aux.as == \"asc\" ? \"desc\" : \"asc\";\n setOrderBy(aux);\n\n const auxMembers = { ...members };\n if (aux.as == \"asc\") {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return -1;\n }\n\n if (nameA > nameB) {\n return 1;\n }\n\n return 0; // names must be equal\n });\n } else {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return 1;\n }\n\n if (nameA > nameB) {\n return -1;\n }\n\n return 0; // names must be equal\n });\n }\n\n console.log(auxMembers.data);\n console.log(getSortKey(sortBy));\n console.log(aux);\n setMembers(auxMembers);\n };\n\n const getSortKey = (sortBy) => {\n return sortBy == \"name\"\n ? \"full_name\"\n : sortBy == \"participation\"\n ? showWords\n ? \"avg_post_size\"\n : \"posts_count\"\n : sortBy;\n };\n\n return (\n
\n \n \n }\n placeholder={t(\n \"spaces.settings.members.membersActivity.members.placeholder\"\n )}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term ? (\n onClearSearch()}\n >\n \n \n ) : (\n {\" \"}\n )\n }\n />\n onSearch()}\n sx={{\n backgroundColor: theme.colors.sutrablue[3],\n \"&:hover\": {\n backgroundColor: theme.colors.sutrablue[4],\n },\n }}\n >\n {t(\"spaces.settings.members.membersActivity.members.button\")}\n \n {loading && }\n \n {hasSelections() && (\n \n \n props.onSendBroadcast(\"email\", members.data, selected)\n }\n >\n {t(\"spaces.settings.members.membersActivity.members.emailButton\")}\n \n \n props.onSendBroadcast(\"message\", members.data, selected)\n }\n >\n {t(\n \"spaces.settings.members.membersActivity.members.messageButton\"\n )}\n \n \n )}\n \n\n \n {members.data.length == 0 && !loader.loading ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\"spaces.settings.members.membersActivity.members.noRecordFound\")}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n
\n \n onSelectAll(event.currentTarget.checked)\n }\n />\n \n {t(\n \"spaces.settings.members.membersActivity.memberTable.noRecordFound\"\n )}{\" \"}\n \n \n \n \n {t(\n \"spaces.settings.members.membersActivity.memberTable.lastSeen\"\n )}{\" \"}\n \n \n {t(\n \"spaces.settings.members.membersActivity.memberTable.lastPosted\"\n )}{\" \"}\n \n \n {t(\n \"spaces.settings.members.membersActivity.memberTable.date\"\n )}{\" \"}\n \n
\n {loading && !noMore.current && (\n
\n \n
\n )}\n \n )}\n \n ({ borderTopColor: theme.colors.gray[2] })} />\n \n \n \n\n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Text, Group, Stack, Button, Checkbox, Tooltip } from \"@mantine/core\";\n\nimport Avatar from \"../../../utils/LazyAvatar\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setTiptapSidemenu } from \"../../../../store/app\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport DirectMessageModel from \"../../../../models/DirectMessage\";\n\nexport default function ProgressActivity(props) {\n const user = useSelector((state) => state.user);\n const [member, setMember] = useState({});\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n setMember(props.member);\n }, [props]);\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username }));\n };\n\n const onOpenDiscussion = (item) => {\n if (!user.authenticated) {\n navigate(`/user/start`);\n return;\n }\n if ([\"list\", \"events\", \"showcase\"].indexOf(item.version) >= 0) {\n if (props.actions == \"commented\"){\n dispatch(\n setTiptapSidemenu({ opened: \"space-content\", option: item.action_data[0][2] })\n );\n }\n else{\n window.open(`/space/${item.slug}/${item.version}`, \"_blank\")\n }\n } else if (item.version.indexOf(\"discussion\") >= 0) {\n dispatch(\n setTiptapSidemenu({\n opened: \"direct\",\n option: item.slug,\n allow_reflections: true\n // pod_message_id: notification.pod_message_id,\n })\n );\n } else {\n dispatch(\n setTiptapSidemenu({ opened: \"space-content\", option: item.slug })\n );\n }\n };\n\n return (\n \n \n {window.$currentUserId != member.user_id && (\n props.onSelect(member.username)}\n />\n )}\n \n \n openProfile()}\n sx={{\n color: \"#000\",\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n }}\n noWrap\n >\n \n \n \n \n {member.full_name}\n \n \n \n @{member.username}\n \n \n \n \n {member.spaces &&\n member.spaces.map((item) => {\n return (\n \n {item.action && (\n \n onOpenDiscussion(item)}\n >\n \n \n \n )}\n \n );\n })}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Divider,\n Select,\n Table,\n Group,\n Center,\n Button,\n Box,\n MultiSelect,\n Checkbox,\n Loader,\n Text,\n Stack,\n Switch,\n Accordion,\n Tooltip,\n Badge,\n} from \"@mantine/core\";\n\nimport { DateRangePicker } from \"@mantine/dates\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useMediaQuery, useViewportSize } from \"@mantine/hooks\";\n\nimport { useLocation, Link, useNavigate } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Row from \"./ProgressActivityRowV2\";\nimport MemberModel from \"../../../../models/Member\";\nimport ManagerModel from \"../../../../models/Manager\";\nimport SpaceModel from \"../../../../models/Space\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Sorter from \"./Sorter\";\n\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\n\nconst paginator = {\n page: 1,\n per: 30,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nconst actionsOptions = () => {\n let versions = [\n {\n value: \"commented\",\n label: \"Commented\",\n description: \"Track all member posts and comments across selected spaces\",\n },\n {\n value: \"completed\",\n label: \"Completed\",\n description:\n \"Track all selected spaces that members have marked complete\",\n },\n {\n value: \"visited\",\n label: \"Visited\",\n description: \"Track all selected spaces that members have visited\",\n },\n ];\n\n return versions;\n};\n\nconst SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n);\n\nexport default function ProgressActivity(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const location = useLocation();\n // const theme = useMantineTheme();\n const theme = props.theme;\n const { height, width } = useViewportSize();\n\n const [orderBy, setOrderBy] = useState({ by: \"name\", as: \"asc\" });\n\n const [members, setMembers] = useState([]);\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const navigate = useNavigate();\n\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const [value, setValue] = useState([\n new Date(2021, 11, 1),\n new Date(2021, 11, 5),\n ]);\n\n const [opened, setOpened] = useState(false);\n const [selected, setSelected] = useState([]);\n\n const [loading, setLoading] = useState(false);\n const [searching, setSearching] = useState(false);\n const [searching2, setSearching2] = useState(false);\n const timeoutId = useRef();\n const noMore = useRef();\n const searchTimeoutId = useRef();\n const searchTimeoutId2 = useRef();\n const auxSpaces = useRef([]);\n const auxUsers = useRef([]);\n const indexedDbFetched = useRef(false);\n\n const [spaces, setSpaces] = useState([]);\n const [users, setUsers] = useState([]);\n const [selectedSpaces, setSelectedSpaces] = useState([]);\n const [infoSelectedSpaces, setInfoSelectedSpaces] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState([]);\n const [includeSubspaces, setIncludeSubspaces] = useState(true);\n const [filterByUsers, setFilterByUsers] = useState(false);\n\n const [actions, setActions] = useState(\"commented\");\n const [dateRange, setDateRange] = useState(() => {\n const today = new Date();\n const sevenDaysAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);\n return [sevenDaysAgo, today];\n });\n\n const onSelect = (id) => {\n const newSelected = [...selected];\n const index = selected.indexOf(id);\n if (index >= 0) {\n newSelected.splice(index, 1);\n } else {\n newSelected.push(id);\n }\n setSelected(newSelected);\n };\n\n const onSelectAll = (all) => {\n const newSelected = [];\n if (all) {\n for (let i = 0; i < members.data.length; i++) {\n newSelected.push(members.data[i].username);\n }\n }\n setSelected(newSelected);\n };\n\n const areAllSelected = () => {\n return members.data.length == selected.length;\n };\n\n const hasSelections = () => {\n return selected.length > 0;\n };\n\n const isAnySelected = () => {\n return !areAllSelected() && selected.length > 0;\n };\n\n const isSelected = (id) => {\n return selected.indexOf(id) >= 0;\n };\n\n const tableWidth = () => {\n if (largeScreen) {\n return width - 300;\n } else if (extraLargeScreen) {\n return width - 500;\n } else {\n return \"\";\n }\n };\n\n const canAddNewManagers = () => {\n const valid =\n counts.managers < space.permissions.max_allowed_managers[0] ||\n space.permissions.max_allowed_managers[0] == -1;\n if (!valid) {\n setOpened([\n true,\n space.permissions.max_allowed_managers[1],\n space.permissions.max_allowed_managers[2],\n ]);\n }\n return valid;\n };\n\n // useEffect(() => {\n // if (space && space.slug) {\n // paginator.page = 1;\n // onFetch();\n // // onFetchCounts();\n // }\n // }, [space, scope]);\n\n useEffect(() => {\n if (selectedSpaces.length) {\n onFetchUsers();\n }\n if (!indexedDbFetched.current) {\n return;\n }\n storeJSON(\"spaces\", `progress-activity-${space.slug}`, {\n selectedSpaces: selectedSpaces,\n selectedUsers: selectedUsers,\n actions: actions,\n dateRange: dateRange,\n includeSubspaces: includeSubspaces,\n filterByUsers: filterByUsers,\n });\n }, [\n selectedSpaces,\n selectedUsers,\n actions,\n dateRange,\n includeSubspaces,\n filterByUsers,\n ]);\n\n useEffect(() => {\n // if (props.refresh) {\n // onFetch(props.refresh);\n // // onFetchCounts();\n // props.setRefresh(false);\n // }\n }, [props]);\n\n useEffect(() => {\n getJSON(`spaces`, `progress-activity-${space.slug}`, (data) => {\n if (data && data.selectedSpaces && data.selectedSpaces.length) {\n setSelectedSpaces([...data.selectedSpaces]);\n onFetchSpaces();\n } else {\n setSelectedSpaces([space.slug]);\n onFetchSpaces();\n }\n if (data && data.selectedUsers && data.selectedUsers.length) {\n // setSelectedUsers([...data.selectedUsers]);\n }\n if (data && data.actions) {\n setActions(data.actions);\n }\n if (data && data.dateRange) {\n setDateRange(data.dateRange);\n }\n if (data && data.includeSubspaces) {\n setIncludeSubspaces(data.includeSubspaces);\n }\n if (data && data.includeSubspaces) {\n setFilterByUsers(data.filterByUsers);\n }\n indexedDbFetched.current = true;\n });\n }, [space]);\n\n const onFetch = (refresh = null) => {\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n if (refresh == \"more\") {\n paginator.page++;\n }\n\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n const Model = scope != \"managers\" ? MemberModel : ManagerModel;\n Model.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n setLoading(false);\n const newData = { ...data };\n\n if (paginator.page == 1) {\n newData.data = [].concat(data.data);\n } else {\n newData.data = members.data.concat(data.data);\n }\n\n if (data.data.length == 0 && paginator.page > 1) {\n paginator.page--;\n noMore.current = true;\n setTimeout(() => {\n noMore.current = false;\n }, 10000);\n }\n\n setMembers(newData);\n },\n (data) => {\n setLoading(false);\n }\n );\n }, 1000);\n };\n\n const onFetchCounts = () => {\n MemberModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onMemberUpdate = (member) => {\n onFetchCounts();\n };\n\n const onSort = (sortBy) => {\n const aux = { ...orderBy };\n aux.by = sortBy;\n aux.as = aux.as == \"asc\" ? \"desc\" : \"asc\";\n setOrderBy(aux);\n\n const auxMembers = { ...members };\n if (aux.as == \"asc\") {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return -1;\n }\n\n if (nameA > nameB) {\n return 1;\n }\n\n return 0; // names must be equal\n });\n } else {\n auxMembers.data = auxMembers.data.sort((a, b) => {\n const nameA =\n typeof a[getSortKey(sortBy)] === \"string\"\n ? a[getSortKey(sortBy)].toUpperCase()\n : a[getSortKey(sortBy)];\n const nameB =\n typeof b[getSortKey(sortBy)] === \"string\"\n ? b[getSortKey(sortBy)].toUpperCase()\n : b[getSortKey(sortBy)];\n\n if (nameA < nameB) {\n return 1;\n }\n\n if (nameA > nameB) {\n return -1;\n }\n\n return 0; // names must be equal\n });\n }\n\n console.log(auxMembers.data);\n console.log(getSortKey(sortBy));\n console.log(aux);\n setMembers(auxMembers);\n };\n\n const getSortKey = (sortBy) => {\n return sortBy == \"name\"\n ? \"full_name\"\n : sortBy == \"participation\"\n ? showWords\n ? \"avg_post_size\"\n : \"posts_count\"\n : sortBy;\n };\n\n const onSearchSpaces = (query) => {\n setSearching(true);\n if (searchTimeoutId.current) {\n clearTimeout(searchTimeoutId.current);\n }\n searchTimeoutId.current = setTimeout(() => {\n onFetchSpaces(query);\n setSearching(false);\n }, 1000);\n };\n\n const onFetchSpaces = (query) => {\n const include = [\"members\", \"simple\"];\n if (query) {\n include.push(`q=${query}`);\n }\n\n auxSpaces.current = [...infoSelectedSpaces];\n if (\n auxSpaces.current.filter((item) => item.slug == space.slug).length == 0\n ) {\n auxSpaces.current.push({\n value: `${space.slug}`,\n label: `${space.name} (${space.slug})`,\n group: \"Sub spaces\",\n });\n }\n\n SpaceModel.onFetchDeepChildren(\n space.slug,\n include,\n { page: 1, per: 10 },\n [\"active\", \"not_posts\"],\n (data) => {\n for (let i = 0; i < data.data.length; i++) {\n if (data.data[i].list_child_version.indexOf(\"posts\") < 0) {\n auxSpaces.current.push({\n value: `${data.data[i].slug}`,\n label: `${data.data[i].name} (${data.data[i].slug})`,\n group: \"Sub spaces\",\n });\n }\n }\n\n setSpaces([...auxSpaces.current]);\n },\n (data) => {}\n );\n };\n\n const onSearchUsers = (query) => {\n setSearching2(true);\n if (searchTimeoutId2.current) {\n clearTimeout(searchTimeoutId2.current);\n }\n searchTimeoutId2.current = setTimeout(() => {\n onFetchUsers(query);\n setSearching2(false);\n }, 1000);\n };\n\n const onFetchUsers = (query) => {\n auxUsers.current = [];\n MemberModel.onFetchMembersBySlugs(\n space.slug,\n selectedSpaces,\n [],\n query,\n (data) => {\n auxUsers.current = [...data];\n\n setUsers([...auxUsers.current]);\n },\n (data) => {}\n );\n };\n\n const onUpdate = () => {\n setLoading(true);\n MemberModel.onFetchMembersProgress(\n space.slug,\n selectedSpaces,\n selectedUsers,\n includeSubspaces,\n actions,\n dateRange,\n (data) => {\n setMembers([...data.members]);\n setInfoSelectedSpaces([...data.spaces]);\n setLoading(false);\n },\n (data) => {\n setLoading(false);\n }\n );\n };\n\n const onDownload = () => {\n MemberModel.onDownloadProgressExcel(\n space.slug,\n selectedSpaces,\n selectedUsers,\n includeSubspaces,\n actions,\n dateRange\n );\n };\n\n const onDateChange = (e) => {\n let start_at = null\n let end_at = null\n if (e[0]){\n let day = e[0].getDate();\n if (day < 10){\n day = `0${day}`;\n }\n let month = e[0].getMonth()+1;\n if (month < 10){\n month = `0${month}`;\n }\n start_at = new Date(`${e[0].getFullYear()}-${month}-${day}`);\n }\n if (e[1]){\n let day = e[1].getDate();\n if (day < 10){\n day = `0${day}`;\n }\n let month = e[1].getMonth()+1;\n if (month < 10){\n month = `0${month}`;\n }\n end_at = new Date(`${e[1].getFullYear()}-${month}-${day}`);\n }\n \n setDateRange([start_at, end_at])\n }\n\n return (\n
\n \n {user && !user.is_admin && !user.is_organization && (\n ({\n backgroundColor: theme.colors.green[0],\n borderRadius: \"10px\",\n padding: \"20px\",\n })}\n >\n \n {`Progress reporting is limited to only 5 people on your account\n level. Please upgrade to the Organization plan to unlock full\n reporting capabilities.`}\n \n \n {t(\"app.premium.upgrade\")}\n \n \n )}\n \n \n {actions == \"commented\" && (\n \n )}\n \n \n ) : (\n \n )\n }\n label={\"Select spaces\"}\n searchable\n data={spaces}\n placeholder={\"Select spaces\"}\n maxDropdownHeight={400}\n radius=\"md\"\n value={selectedSpaces}\n onChange={setSelectedSpaces}\n onSearchChange={(query) => onSearchSpaces(query)}\n // sx={{ maxHeight: \"50px\" }}\n styles={{\n description: {\n fontWeight: 600,\n },\n label: {\n whiteSpace: \"normal\",\n },\n defaultValue: {\n height: \"unset\",\n },\n values: {\n maxHeight: \"150px\",\n overflowY: \"scroll\",\n },\n }}\n />\n \n \n setIncludeSubspaces(event.currentTarget.checked)\n }\n />\n {`Include direct subspaces`}\n \n\n \n setFilterByUsers(event.currentTarget.checked)}\n />\n {`Filter by people`}\n \n {filterByUsers && (\n \n ) : (\n \n )\n }\n label={\"Filter by people\"}\n searchable\n data={users}\n placeholder={\"Select people\"}\n maxDropdownHeight={400}\n radius=\"md\"\n value={selectedUsers}\n onChange={setSelectedUsers}\n onSearchChange={(query) => onSearchUsers(query)}\n styles={{\n description: {\n fontWeight: 600,\n },\n label: {\n whiteSpace: \"normal\",\n },\n defaultValue: {\n height: \"unset\",\n },\n values: {\n maxHeight: \"150px\",\n overflowY: \"scroll\",\n },\n }}\n />\n )}\n \n onUpdate()}\n disabled={loading}\n >\n {loading ? : `Update`}\n \n onDownload()}\n disabled={loading}\n >\n {`Download XLS`}\n \n \n \n \n {infoSelectedSpaces.map((item, index) => {\n return (\n \n {`${index + 1}`}\n {`${item.label}`}\n \n );\n })}\n \n \n {hasSelections() && (\n \n \n props.onSendBroadcast(\"email\", members, selected)\n }\n >\n {t(\n \"spaces.settings.members.progressActivity.progress.emailButton\"\n )}\n \n \n props.onSendBroadcast(\"message\", members, selected)\n }\n >\n {t(\n \"spaces.settings.members.progressActivity.progress.messageButton\"\n )}\n \n \n )}\n \n\n \n {members.length == 0 ? (\n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n\n \"&:hover\": {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[5]\n : theme.colors.gray[1],\n },\n })}\n >\n {t(\n \"spaces.settings.members.progressActivity.progress.noRecordFound\"\n )}\n {members.length > 0 && (\n

\n {t(\n \"spaces.settings.members.progressActivity.progress.progressTracking\"\n )}\n

\n )}\n
\n ) : (\n
\n \n \n \n \n \n People\n \n {infoSelectedSpaces.map((item, index) => {\n return (\n \n \n {`${index + 1}`}\n \n {/* */}\n \n );\n })}\n \n \n \n {members.map((member) => {\n return (\n \n );\n })}\n \n
\n {/* \n onSelectAll(event.currentTarget.checked)\n }\n /> */}\n
\n {loading && !noMore.current && (\n
\n \n
\n )}\n
\n )}\n \n ({ borderTopColor: theme.colors.gray[2] })} />\n \n\n \n
\n );\n}\n","import React, { useState, useEffect, useContext, useRef } from \"react\";\n\nimport {\n Container,\n Text,\n Group,\n ScrollArea,\n SegmentedControl,\n MantineProvider,\n Box,\n SimpleGrid,\n Center,\n Paper,\n RingProgress,\n useMantineTheme,\n} from \"@mantine/core\";\n\nimport { useLocation, useParams } from \"react-router-dom\";\n\nimport SectionHeader from \"./layout/SectionHeader\";\nimport ParticipationActivity from \"./members/ParticipationActivity\";\nimport MemberActivity from \"./members/MemberActivity\";\nimport ProgressActivity from \"./members/ProgressActivity\";\nimport ProgressActivityV2 from \"./members/ProgressActivityV2\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ParticipationModel from \"../../../models/Participation\";\n\nimport ComposeBroadcast from \"./broadcast/ComposeBroadcast\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\nimport Premium from \"../../app/Premium\";\n\nexport default function Participation() {\n const { t, i18n } = useTranslation();\n const location = useLocation();\n const params = useParams();\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n const theme = useMantineTheme();\n const [pageSection, setPageSection] = useState(\"participationactivity\");\n const [counts, setCounts] = useState({});\n const [refresh, setRefresh] = useState(false);\n const [channelData, setChannelData] = useState({ data: [] });\n const [opened, setOpened] = useState(false);\n const [openedPremium, setOpenedPremium] = useState(false);\n const [canSendSelective, setCanSendSelective] = useState([]);\n const [canSeeTab, setCanSeeTab] = useState([]);\n\n const participationChannel = useRef();\n const sendToUsers = useRef([]);\n const broadcastType = useRef(\"email\");\n const cable = useContext(ActionCableContext);\n\n const viewport = useRef();\n\n useEffect(() => {\n cableConnect();\n return () => {\n if (participationChannel.current) {\n participationChannel.current.unsubscribe();\n participationChannel.current = null;\n }\n };\n }, []);\n\n useEffect(() => {\n checkSearchParams();\n }, [location]);\n\n useEffect(() => {\n localStorage.setItem(\"lastMetricsSection\", pageSection);\n \n }, [pageSection]);\n\n useEffect(() => {\n setCanSendSelective(\n space &&\n space.permissions &&\n space.permissions.can_send_selective_broadcast\n );\n setCanSeeTab(\n space && space.permissions && space.permissions.can_see_participation_tab\n );\n\n onFetchCounts();\n }, [space]);\n\n const onSendBroadcast = (type, users, selected) => {\n if (!canSendSelective[0]) {\n setOpenedPremium([true, canSendSelective[1], canSendSelective[2]]);\n return;\n }\n\n sendToUsers.current = [];\n for (let i = 0; i < users.length; i++) {\n if (\n selected.indexOf(users[i].username) >= 0 &&\n window.$currentUserId != users[i].user_id\n ) {\n sendToUsers.current.push({ ...users[i] });\n }\n }\n broadcastType.current = type;\n setOpened(true);\n };\n\n const onBroadcastUpdate = () => {};\n\n const cableConnect = () => {\n if (!participationChannel.current) {\n participationChannel.current = cable.subscriptions.create(\n {\n channel: \"ParticipationChannel\",\n user_token: window.$currentUserAuthToken,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\"participationChannel connected ============>\");\n },\n disconnected: () => {},\n received: (data) => {\n console.log(\"participationChannel ============>\");\n console.log(data);\n console.log(\"participationChannel ============>\");\n setChannelData(data);\n },\n }\n );\n }\n };\n\n const checkSearchParams = () => {\n const search = location.search;\n let section = new URLSearchParams(search).get(\"section\");\n\n if (!section){\n section = localStorage.getItem(\"lastMetricsSection\");\n }\n\n if (section) {\n setPageSection(section);\n }\n };\n\n const displayPageSection = () => {\n if (pageSection == \"memberactivity\") {\n return (\n \n );\n } else if (pageSection == \"participationactivity\") {\n return (\n \n );\n } else if (pageSection == \"progress\") {\n return (\n \n );\n }\n };\n\n const onFetchCounts = () => {\n ParticipationModel.onFetchCounts(\n space.slug,\n (data) => {\n setCounts(data);\n },\n (data) => {}\n );\n };\n\n const onSearchByDateRange = (dates, term, page) => {\n ParticipationModel.onSearchByDateRange(\n space.slug,\n { dates, term, page },\n (data) => {\n if (data.wait) {\n }\n },\n (data) => {}\n );\n };\n\n const getStats = () => {\n return [\n {\n label: t(\"spaces.settings.participation.label1\"),\n description: t(\"spaces.settings.participation.description1\"),\n count: counts.presence,\n stats: `${counts.presence}`,\n color: counts.presence < 40 ? \"red\" : \"green\",\n type: \"percent\",\n },\n {\n label: t(\"spaces.settings.participation.label2\"),\n description: t(\"spaces.settings.participation.description2\"),\n count: counts.activity,\n stats: `${counts.activity}`,\n color: counts.activity < 40 ? \"red\" : \"green\",\n type: \"percent\",\n },\n {\n label: t(\"spaces.settings.participation.label3\"),\n description: t(\"spaces.settings.participation.description3\"),\n count: counts.posts,\n stats: `${counts.posts}`,\n color: \"red\",\n type: \"number\",\n },\n ];\n };\n\n const stats = getStats().map((stat) => {\n return (\n \n \n {stat.type == \"percent\" ? (\n \n \n {stat.stats}\n \n \n }\n />\n ) : (\n \n
\n \n {stat.stats}\n \n
\n \n )}\n\n
\n \n {stat.label}\n \n \n {stat.description}\n \n
\n
\n
\n );\n });\n\n const onScrollPositionChange = (pos) => {\n // const div = viewport.current;\n // console.log(\n // `${div.scrollTop} + ${div.clientHeight} (${\n // div.scrollTop + div.clientHeight\n // }) = ${div.scrollHeight}`\n // );\n // console.log(\n // `${pos.y} + ${div.clientHeight} (${pos.y + div.clientHeight}) = ${\n // div.scrollHeight - 50\n // }`\n // );\n // if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n // setRefresh(`more-${pageSection}`);\n // }\n };\n\n if (!canSeeTab[0]) {\n return ;\n }\n\n return (\n \n ({\n // width: \"960px\",\n // maxWidth: \"960px\",\n })}\n >\n \n\n \n {counts.presence != null && counts.presence >= 0 ? stats : null}\n \n\n setPageSection(value)}\n data={[\n {\n label: t(\"spaces.settings.participation.label4\"),\n value: \"participationactivity\",\n },\n {\n label: t(\"spaces.settings.participation.label5\"),\n value: \"memberactivity\",\n },\n {\n label: t(\"spaces.settings.participation.label6\"),\n value: \"progress\",\n },\n ]}\n />\n\n \n {displayPageSection()}\n \n \n \n \n \n );\n}\n","import React from 'react';\n\nimport { Routes, Route } from \"react-router-dom\";\n\nimport { useSelector } from 'react-redux';\n\nimport SettingsMain from \"../Main\"\nimport SettingsMembers from \"../Members\"\nimport SettingsBroadcast from \"../Broadcast\"\nimport SettingsSurveys from \"../Surveys\"\nimport SettingsStructures from \"../Structures\"\nimport SettingsAdmin from \"../Admin\"\nimport SettingsScheduled from \"../Scheduled\"\nimport SettingsArchived from \"../Archived\"\nimport SettingsParticipation from \"../Participation\"\n\nexport default function MainContent() {\n\n const space = useSelector(state => state.space);\n\n return (\n
\n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n
\n )\n}\n","import React from \"react\";\n\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { createStyles } from \"@mantine/core\";\n\nimport NavbarContent from \"./layout/NavbarContent\";\nimport MainContent from \"./layout/MainContent\";\n\nimport { setHiddenSidebar, setHiddenHeader } from \"../../../store/app\";\n\nconst useStyles = createStyles((theme) => ({\n settingsWrap: {\n display: \"flex\",\n flexFlow: \"row\",\n height: \"100%\",\n },\n settingSidebar: {\n width: \"300px\",\n boxSizing: \"border-box\",\n overflow: \"hidden\",\n backgroundColor: theme.colors.gray[7],\n },\n settingsMain: {\n width: \"100%\",\n height: \"calc(100vh)\",\n // backgroundColor: \"red\",\n \"& > div\": {\n height: \"100%\",\n },\n },\n}));\n\nfunction Settings(props) {\n \n const timeoutId = useRef();\n const { classes, cx } = useStyles();\n\n const dispatch = useDispatch();\n\n const helpScouteLoaded = useRef();\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n\n timeoutId.current = setTimeout(() => {\n timeoutId.current = null;\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n }, 1000);\n\n if (window.$currentUserAuthToken) {\n \n if (!helpScouteLoaded.current && window.$currentUsername) {\n helpScouteLoaded.current = true;\n setTimeout(() => {\n window.Beacon(\"init\", \"8baee135-5597-476a-8269-cb1460d638e4\");\n window.Beacon(\"identify\", {\n name: window.$currentName,\n email: window.$currentEmail,\n account_type: window.$currentAccountType,\n });\n }, 2000);\n }\n }\n\n return () => {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n\n if (window.$hiddenLayoutElements) {\n dispatch(\n setHiddenSidebar({\n hidden: window.$hiddenLayoutElements.indexOf(\"sidebar\") >= 0,\n })\n );\n dispatch(\n setHiddenHeader({\n hidden: window.$hiddenLayoutElements.indexOf(\"header\") >= 0,\n })\n );\n } else {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n }\n\n window.Beacon(\"reset\");\n window.Beacon(\"destroy\");\n helpScouteLoaded.current = false;\n localStorage.removeItem(\"lastOpenedSettingsTabs\");\n };\n }, []);\n\n return (\n
\n
\n \n
\n
\n \n
\n
\n );\n}\n\nexport default Settings;\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nexport default function HeaderImage(props) {\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n const hiddenCover = useSelector((state) => state.hiddenCover);\n\n const [image, setImage] = useState({ url: null });\n\n useEffect(() => {\n if (getSpace() && getSpace().header) {\n setImage(getSpace().header);\n }\n }, [space, space2]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n if (hiddenCover.hidden) {\n return null;\n }\n\n return (\n <>\n {image.url ? (\n \n ) : (\n \"\"\n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport {\n Stack,\n Center,\n Modal,\n Group,\n Text,\n createStyles,\n Drawer,\n Button,\n Box,\n Loader,\n} from \"@mantine/core\";\n\nimport { setHiddenSidebar, setSpace } from \"../../store/app\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport isDark from \"../../utils/IsDarkColor\";\n// import {treeData} from '../../collections/testData'\nimport tinycolor from \"tinycolor2\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../models/Space\";\n\nimport PremiumModal from \"../app/PremiumModal\";\nimport Colors from \"./colors/Form\";\n\nconst offsetTop = {\n base: 60,\n origin: 0,\n};\n\nimport FilerobotImageEditor, {\n TABS,\n TOOLS,\n} from \"react-filerobot-image-editor\";\n\nimport Swal from \"sweetalert2\";\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n breadcrumbs: {\n height: \"40px\",\n marginBottom: 5,\n backgroundColor: colors.background_color,\n },\n breadcrumbWrap: {\n color: isSpaceThemed(colors)\n ? colors.default_text_color\n : tinycolor(colors.default_text_color).lighten(60).toString(),\n textDecoration: \"none\",\n },\n breadcrumbLink: {\n color: isSpaceThemed(colors)\n ? colors.default_text_color\n : tinycolor(colors.default_text_color).lighten(40).toString(),\n textDecoration: \"none\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n breadcrumbButton: {\n color: isSpaceThemed(colors)\n ? colors.default_text_color\n : tinycolor(colors.default_text_color).lighten(40).toString(),\n textDecoration: \"none\",\n // backgroundColor: 'red',\n \"&:hover\": {\n // backgroundColor: \"blue\",\n // textDecoration: \"underline\",\n },\n },\n breadcrumbButtonHover: {\n backgroundColor: \"red\",\n },\n fixed: {\n position: \"fixed\",\n },\n topOffset: {\n top: theme.other.headerHeight,\n },\n buttonItem: {\n // border: `1px solid ${tinycolor(colors.default_text_color)\n // .lighten(90)\n // .toString()}`,\n paddingTop: \"3px\",\n paddingBottom: \"3px\",\n paddingLeft: \"4px\",\n paddingRight: \"4px\",\n fontWeight: 400,\n borderRadius: 5,\n color: isSpaceThemed(colors)\n ? colors.default_text_color\n : tinycolor(colors.default_text_color).lighten(40).toString(),\n backgroundColor: isSpaceThemed(colors) ? isDark(colors.background_color)\n ? `${tinycolor(colors.background_color).lighten(10).toString()}`\n : `${tinycolor(colors.background_color).darken(10).toString()}` : colors.secondary_button_background_color,\n \"&:hover\": {\n color: colors.default_text_color,\n backgroundColor: `transparent`,\n },\n // \"&:hover\": {\n // backgroundColor: tinycolor(colors.sidebar_background_color).darken(4).toString()\n // },\n },\n}));\n\nexport default function TopActions(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const scroll = useSelector((state) => state.scroll);\n\n const [breadcrumbs, setBreadcrumbs] = useState([]);\n const [fixed, setFixed] = useState(false);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const dispatch = useDispatch();\n\n const [sidebar, setSidebar] = useState(true);\n\n const hiddenLayoutElements = useRef([]);\n const loading = useRef(false);\n const loaded = useRef(null);\n\n const [opened, setOpened] = useState([]);\n const [canUploadCover, setCanUploadCover] = useState([]);\n const [uploading, setUploading] = useState(false);\n const [openedColors, setOpenedColors] = useState(false);\n\n const [isImgEditorHeaderShown, setIsImgEditorHeaderShown] = useState(false);\n\n const htmlImageHeader = useRef();\n const fileInputHeader = useRef();\n\n useEffect(() => {\n if (space && space.slug) {\n\n const changes = JSON.stringify(space.hidden_layout_elements) != JSON.stringify(hiddenLayoutElements.current)\n\n if (loaded.current == space.slug && !changes){\n return\n }\n\n loading.current = true;\n\n loaded.current = space.slug;\n \n setCanUploadCover(\n space && space.permissions && space.permissions.can_upload_cover\n );\n\n if (window.$hiddenLayoutElements) {\n hiddenLayoutElements.current = [...window.$hiddenLayoutElements];\n } else {\n hiddenLayoutElements.current = [...space.hidden_layout_elements];\n }\n\n setSidebar(hiddenLayoutElements.current.indexOf(\"sidebar\") >= 0);\n\n setTimeout(() => {\n loading.current = false;\n }, 1000);\n }\n }, [space]);\n\n useEffect(() => {\n if (loading.current) {\n return;\n }\n if (sidebar) {\n if (!isHidden(\"sidebar\")) {\n hiddenLayoutElements.current.push(\"sidebar\");\n }\n } else {\n if (isHidden(\"sidebar\")) {\n removeHiddenLayoutElements(\"sidebar\");\n }\n }\n\n dispatch(\n setHiddenSidebar({\n hidden: sidebar,\n })\n );\n\n onSave();\n }, [sidebar]);\n\n const onAddConver = () => {};\n\n const isHidden = (element) => {\n return hiddenLayoutElements.current.indexOf(element) >= 0;\n };\n\n const removeHiddenLayoutElements = (element) => {\n const index = hiddenLayoutElements.current.indexOf(element);\n if (index >= 0) {\n hiddenLayoutElements.current.splice(index, 1);\n }\n };\n\n const onSave = () => {\n if (loading.current) {\n return;\n }\n window.$hiddenLayoutElements = [...hiddenLayoutElements.current];\n SpaceModel.onUpdate(\n space.slug,\n {\n hidden_layout_elements: [...hiddenLayoutElements.current],\n },\n (data) => {},\n (data) => {}\n );\n };\n\n const handleFileInputHeader = (e) => {\n const file = e.target.files[0];\n\n if (!isFileValid(file, e.target)) {\n return;\n }\n\n htmlImageHeader.current = document.createElement(\"img\");\n\n if (file) {\n const reader = new FileReader();\n\n reader.addEventListener(\"load\", function () {\n htmlImageHeader.current.src = reader.result;\n openImgEditorHeader();\n });\n\n reader.readAsDataURL(file);\n } else {\n // Clear the value of the file input\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n }\n };\n\n const openImgEditorHeader = () => {\n setIsImgEditorHeaderShown(true);\n };\n\n const closeImgEditorHeader = () => {\n setIsImgEditorHeaderShown(false);\n if (fileInputHeader.current) {\n fileInputHeader.current.value = \"\";\n }\n };\n\n const isFileValid = (selectedFile, target) => {\n const maxSize = 5 * 1024 * 1024; // 5MB in bytes\n\n if (selectedFile.size > maxSize) {\n Swal.fire(\"\", \"Your image must be less than 5MB\", \"info\");\n target.value = \"\"; // Clear the selected file\n return false;\n }\n return true;\n };\n\n const onCoverUploadFinished = (url) => {\n const newSpace = { ...space };\n newSpace.header.url = url;\n dispatch(setSpace(newSpace));\n closeImgEditorHeader();\n };\n\n const onUploadHeader = (file) => {\n setUploading(true);\n SpaceModel.onUploadHeader(\n space.slug,\n file.imageBase64,\n (data) => {\n setTimeout(() => {\n setUploading(false);\n }, 500);\n onCoverUploadFinished(data.url);\n },\n (data) => {}\n );\n };\n\n const onRemoveHeader = () => {\n SpaceModel.onRemoveHeader(\n space.slug,\n (data) => {\n onCoverUploadFinished(null);\n },\n (data) => {}\n );\n };\n\n const onOpenFileSelector = (event) => {\n try {\n event.target.children[0].click();\n } catch {}\n };\n\n return (\n \n \n {sidebar ? (\n }\n className={classes.buttonItem}\n variant=\"subtle\"\n compact\n onClick={(event) => setSidebar(false)}\n >\n Show sidebar\n \n ) : (\n }\n className={classes.buttonItem}\n variant=\"subtle\"\n compact\n onClick={(event) => setSidebar(true)}\n >\n Hide sidebar\n \n )}\n {space && space.header && !space.header.url ? (\n canUploadCover[0] ? (\n }\n className={classes.buttonItem}\n variant=\"subtle\"\n compact\n onClick={(event) => onOpenFileSelector(event)}\n >\n \n Add cover\n \n ) : (\n }\n className={classes.buttonItem}\n variant=\"subtle\"\n compact\n onClick={(event) =>\n setOpened([true, canUploadCover[1], canUploadCover[2]])\n }\n >\n Add cover\n \n )\n ) : (\n }\n className={classes.buttonItem}\n variant=\"subtle\"\n compact\n onClick={() => onRemoveHeader()}\n >\n Remove cover\n \n )}\n }\n className={classes.buttonItem}\n variant=\"subtle\"\n compact\n onClick={(event) => setOpenedColors(true)}\n >\n Branding\n \n \n setIsImgEditorHeaderShown(false)}\n title={\"\"}\n >\n {uploading ? (\n
\n \n
\n ) : (\n \n onUploadHeader(editedImageObject, designState)\n }\n onClose={closeImgEditorHeader}\n Rotate={{ angle: 90, componentType: \"slider\" }}\n Crop={{\n ratio: 1200 / 300,\n ratioTitleKey: \"Profile picture\",\n noPresets: true,\n autoResize: true,\n }}\n defaultSavedImageQuality={0.7}\n defaultSavedImageName={\"profileImage\"}\n tabsIds={[TABS.ADJUST]} // or {['Adjust', 'Annotate', 'Watermark']}\n defaultTabId={TABS.ADJUST} // or 'Annotate'\n defaultToolId={TOOLS.TEXT} // or 'Text'\n onBeforeSave={() => false}\n />\n )}\n \n \n setOpenedColors(false)}\n // title=\"Appearance options\"\n title={{t(\"spaces.header.buttons.brandingOptions\")}}\n styles={{\n header: {\n paddingTop: 20,\n paddingLeft: 20,\n paddingRight: 20,\n },\n }}\n size=\"xl\"\n // zIndex={999999}\n >\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\n\nimport {\n Breadcrumbs,\n Tooltip,\n Box,\n Text,\n createStyles,\n Menu,\n UnstyledButton,\n} from \"@mantine/core\";\n\nimport { getBreadcrumbs, getCollapsed } from \"../../utils/BreadcrumbsGenerator\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n// import {treeData} from '../../collections/testData'\nimport tinycolor from \"tinycolor2\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst offsetTop = {\n base: 60,\n origin: 0,\n};\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n breadcrumbs: {\n // marginTop: 30,\n paddingLeft: 3,\n marginBottom: 5,\n backgroundColor: colors.background_color,\n },\n breadcrumbWrap: {\n color: isSpaceThemed(colors)\n ? colors.default_text_color\n : tinycolor(colors.default_text_color).lighten(60).toString(),\n textDecoration: \"none\",\n },\n breadcrumbLink: {\n color: isSpaceThemed(colors)\n ? colors.default_text_color\n : tinycolor(colors.default_text_color).lighten(40).toString(),\n textDecoration: \"none\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n breadcrumbButton: {\n color: isSpaceThemed(colors)\n ? colors.default_text_color\n : tinycolor(colors.default_text_color).lighten(40).toString(),\n textDecoration: \"none\",\n // backgroundColor: 'red',\n \"&:hover\": {\n // backgroundColor: \"blue\",\n // textDecoration: \"underline\",\n },\n },\n breadcrumbButtonHover: {\n backgroundColor: \"red\",\n },\n fixed: {\n position: \"fixed\",\n },\n topOffset: {\n top: theme.other.headerHeight,\n },\n}));\n\nexport default function SystemBreadcrumbs(props) {\n const space = useSelector((state) => state.space);\n const scroll = useSelector((state) => state.scroll);\n\n const [breadcrumbs, setBreadcrumbs] = useState([]);\n const [fixed, setFixed] = useState(false);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n if (space && space.path) {\n // setBreadcrumbs(getBreadcrumbs(treeData, \"mclh6s\", \"LALALA\", space.version));\n \n const auxBreadcrumbs = getBreadcrumbs([...space.path]);\n auxBreadcrumbs.pop()\n setBreadcrumbs(auxBreadcrumbs);\n }\n }, [space]);\n\n if (\n space.linked_parents &&\n space.linked_parents.length > 0 &&\n !props.breadcrumbsHidden\n ) {\n return (\n \n \n event.stopPropagation()}\n >\n \n \n \n {space.linked_parents[0].name.replace(/%-%colon%-%/g, \"'\")}\n \n \n \n \n \n );\n }\n\n if (breadcrumbs.length > 0 && props.breadcrumbsHidden) {\n return ;\n }\n\n return (\n \n \n {breadcrumbs.map((item, index) => {\n return (\n <>\n {item.version == \"collapsed\" ? (\n \n \n \n }\n >\n {getCollapsed(space.path).map((c_item) => {\n return (\n event.stopPropagation()}\n >\n {c_item.name.replace(/%-%colon%-%/g, \"'\")}\n \n );\n })}\n \n ) : (\n event.stopPropagation()}\n >\n {item.name.replace(/%-%colon%-%/g, \"'\")}\n \n )}\n \n );\n })}\n \n \n );\n}\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Box,\n Text,\n Button,\n Group,\n Paper,\n createStyles,\n } from '@mantine/core';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nimport MessageModel from \"../../../../models/Message\";\n\nimport isSpaceThemed from '../../../../utils/IsSpaceThemed'\nimport tinycolor from 'tinycolor2'\n\nimport { useTranslation } from \"react-i18next\";\n\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color\n },\n textColor: {\n color: colors.sidebar_text_color\n },\n buttonColor: {\n border: isSpaceThemed(colors) ? `1px solid ${colors.sidebar_text_color}` : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors) ? colors.sidebar_text_color : colors.primary_button_background_color,\n '&:hover': {\n backgroundColor: isSpaceThemed(colors) ? tinycolor(colors.sidebar_background_color).lighten(5).toString() : tinycolor(colors.sidebar_background_color).darken(1).toString()\n }\n }\n}));\n\nexport default function PinMessage(props) {\n const { t, i18n } = useTranslation();\n const colors = useSelector(state => state.colors);\n const { classes, cx, theme } = useStyles({colors});\n\n const onFetch = () => {\n MessageModel.onFetchById(props.messageId, props.spaceId, (data) => {\n props.onViewPinnedMessage({...data})\n }, (data) => {\n\n });\n }\n\n return (\n \n \n \n {t(\"spaces.presentations.message.pinMessage.mainText\")}\n \n \n \n }\n onClick={() => onFetch()}>\n {t(\"spaces.presentations.message.pinMessage.viewButton\")}\n \n \n \n \n );\n\n}\n","import React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Box,\n Text,\n Button,\n Group,\n Paper,\n createStyles,\n } from '@mantine/core';\n\nimport {setNewMessage} from \"../../../../store/app\";\n\nimport tinycolor from 'tinycolor2'\n\nimport { useTranslation } from \"react-i18next\";\n\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color\n },\n textColor: {\n color: colors.sidebar_text_color\n },\n buttonColor: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n }\n}));\n\nexport default function PinMessage(props) {\n\n const { t, i18n } = useTranslation();\n\n const colors = useSelector(state => state.colors);\n const dispatch = useDispatch()\n const { classes, cx, theme } = useStyles({colors});\n\n const onScrollToBottom = () => {\n setTimeout(() => {\n if (props.newMessage && props.newMessage.viewport){\n const top = props.newMessage.viewport.scrollHeight\n props.newMessage.viewport.scrollTo({ top: top});\n }\n }, 500)\n dispatch(setNewMessage({show: false}))\n }\n\n return (\n \n \n \n {t(\"spaces.presentations.message.unreadMessagesText\")}\n \n \n \n // }\n onClick={() => onScrollToBottom()}>\n {t(\"spaces.presentations.message.scrollDownButton\")}\n \n \n \n \n );\n\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport {\n Box,\n Title,\n Group,\n Menu,\n ActionIcon,\n Tooltip,\n createStyles,\n Textarea,\n} from \"@mantine/core\";\nimport Swal from \"sweetalert2\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport SpaceModel from \"../../models/Space\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport isDark from \"../../utils/IsDarkColor\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\nlet timeoutId = null;\n\nconst useStyles = createStyles(\n (theme, { colors, isDark, listFlatView }, getRef) => ({\n datePosted: {\n color: tinycolor(colors.default_text_color).lighten(10).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonStyle: {\n // borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(50).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n // paddingLeft: 12,\n // paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n })\n);\n\nexport default function HeaderTitle(props) {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n const tiptap = useSelector((state) => state.tiptap);\n\n const carretPos = useRef(null);\n const titleInput = useRef(null);\n\n const [copiedToClipboard, setCopiedToClipboard] = useState(false);\n\n const { classes, cx, theme } = useStyles({\n colors: getColors(),\n isDark: isDark,\n listFlatView: props.listFlatView,\n });\n\n const [title, setTitle] = useState(\"\");\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n useEffect(() => {}, [props]);\n\n useEffect(() => {\n if (window.$updateTitle && window.$updateTitle.slug == getSpace().slug) {\n setTitle(window.$updateTitle.title);\n } else {\n setTitle(getSpace().is_direct ? getDirectMessageName() : getSpace().name);\n }\n\n // if (carretPos.current) {\n // setTimeout(() => {\n // try {\n // const selection = window.getSelection();\n // const range = document.createRange();\n // range.setStart(\n // document.getElementsByTagName(\"h1\")[0].childNodes[0],\n // carretPos.current\n // );\n // range.collapse(true);\n\n // // Select the range and set the caret position\n // selection.removeAllRanges();\n // selection.addRange(range);\n // } catch {}\n // }, 50);\n // }\n }, [space, space2]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n const onClick = (event) => {\n // To avoid focusing editor\n event.stopPropagation();\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n const titleValue = event.target.innerText;\n\n if (titleValue.length >= 100 && event.which != 8) {\n return false;\n }\n if (event.which == 13 || event.which == 40) {\n event.preventDefault();\n if (tiptap.editor) {\n tiptap.editor\n .chain()\n .focus()\n .setTextSelection(0)\n .insertContentAt(0, `

`)\n .setTextSelection(0)\n .run();\n }\n }\n };\n\n const onPaste = (event) => {\n event.preventDefault();\n const input = event.target;\n const currentTitle = input.innerText + \"\";\n input.innerText = \"\";\n\n const pastedTitle = event.clipboardData.getData(\"text\");\n\n input.innerText = `${currentTitle}${pastedTitle}`;\n\n placeCaretAtEnd(input);\n };\n\n const placeCaretAtEnd = (el) => {\n el.focus();\n if (\n typeof window.getSelection != \"undefined\" &&\n typeof document.createRange != \"undefined\"\n ) {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n };\n\n const onUpdate = (event) => {\n setTitle(event.currentTarget.value);\n // const selection = window.getSelection();\n // const range = selection.getRangeAt(0);\n\n // carretPos.current = range.startOffset;\n // console.log(`CARET: ${carretPos.current}`);\n\n const titleValue = event.currentTarget.value;\n window.$updateTitle = { title: titleValue, slug: getSpace().slug };\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n SpaceModel.onUpdate(\n getSpace().slug,\n { intention: titleValue },\n (data) => {},\n (data) => {}\n );\n }, 500);\n };\n\n const getDirectMessageName = () => {\n const otherUserName = getSpace()\n .name.replace(`${user.name}`, ``)\n .replace(`and`, ``)\n .trim();\n return `Conversation with ${otherUserName}`;\n };\n\n const onEdit = () => {\n navigate(`${getLink()}?edit=true`);\n };\n\n const onOpen = () => {\n navigate(getLink());\n };\n\n const getLink = () => {\n return `/space/${getSpace().slug}/${getSpace().version}`;\n };\n\n const onCopyLink = () => {\n setCopiedToClipboard(true);\n setTimeout(() => {\n setCopiedToClipboard(false);\n }, 2000);\n };\n\n const onDelete = () => {\n Swal.fire({\n title: t(\"spaces.presentations.gridPost.onDelete.alertTitle\"),\n html: t(\"spaces.presentations.gridPost.onDelete.alertMessage\"),\n showDenyButton: true,\n confirmButtonText: t(\"spaces.presentations.gridPost.onDelete.confirm\"),\n denyButtonText: t(\"spaces.presentations.gridPost.onDelete.deny\"),\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n if (getSpace().is_linked) {\n SpaceModel.onUnlink(\n getSpace().slug,\n window.location.href.split(\"/\")[4],\n (data) => {\n // if (props.onUpdate) {\n // props.onUpdate(space.slug, \"delete\");\n // }\n dispatch(\n setTiptapSidemenu({ opened: \"space-content-close\" })\n );\n },\n (data) => {}\n );\n } else {\n SpaceModel.onDestroy(\n getSpace().slug,\n (data) => {\n // if (props.onUpdate) {\n // props.onUpdate(space.slug, \"delete\");\n // }\n dispatch(\n setTiptapSidemenu({ opened: \"space-content-close\" })\n );\n },\n (data) => {}\n );\n }\n } else if (result.isDenied) {\n }\n });\n };\n\n return (\n \n {props.useSpace2 ? (\n \n ({\n fontSize: 38,\n fontWeight: 800,\n color: getColors().default_text_color,\n })}\n order={1}\n // onChange={(event) => onUpdate(event)}\n // onClick={(event) => onClick(event)}\n // onKeyPress={(event) => onKeyPress(event)}\n // onKeyDown={(event) => onKeyDown(event)}\n // onPaste={(event) => onPaste(event)}\n >\n {getSpace().is_direct ? getDirectMessageName() : title}\n \n \n \n \n \n \n \n \n event.stopPropagation()}\n withArrow\n placement=\"end\"\n control={\n event.stopPropagation()}\n classNames={{ root: classes.buttonStyle }}\n >\n \n \n }\n >\n {(\n getSpace().permissions.can_edit || \n (getSpace().permissions?.can_moderate && (space?.version === \"events\" || space?.version === \"list\") && (\n getSpace().permissions?.type === \"editor\" ? true : getSpace().is_post\n ))\n ) && (\n onEdit()}>\n {t(\"spaces.header.buttons.edit\")}{\" \"}\n {`${\n getSpace().is_post\n ? t(\"spaces.header.buttons.post\")\n : t(\"spaces.header.buttons.space\")\n }`}\n \n )}\n \n onCopyLink()}\n text={`https://sutra.co/space/${getSpace().slug}/${\n getSpace().version\n }`}\n >\n {t(\"spaces.header.buttons.copyToClipboard\")}\n \n \n {(\n getSpace().permissions.can_delete || \n ((getSpace().permissions?.can_moderate) && (space?.version === \"events\" || space?.version === \"list\"))\n ) && (\n onDelete()}>\n {t(\"spaces.header.buttons.deletePost\")}\n \n )}\n \n \n \n \n ) : props.editable ? (\n onUpdate(event)}\n onKeyDown={(event) => onKeyPress(event)}\n />\n ) : (\n ({\n fontSize: 38,\n fontWeight: 800,\n color: getColors().default_text_color,\n })}\n order={1}\n // onInput={(event) => onUpdate(event)}\n // onClick={(event) => onClick(event)}\n // onKeyPress={(event) => onKeyPress(event)}\n // onKeyDown={(event) => onKeyDown(event)}\n // onPaste={(event) => onPaste(event)}\n >\n {getSpace().is_direct ? getDirectMessageName() : title}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Box, Popover, createStyles, Button, Group } from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport isDark from \"../../utils/IsDarkColor\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport Tag from \"./presentations/lists/Tag\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nlet timeoutId = null;\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n button: {\n // border: `1px solid ${\n // !isSpaceThemed(colors)\n // ? theme.colors.gray[4]\n // : tinycolor(colors.background_color).lighten(3).toString()\n // }`,\n // border: `1px solid ${tinycolor(colors.default_text_color).lighten(20).toString()}`,\n color: tinycolor(colors.default_text_color).lighten(20).toString(),\n paddingLeft: 8,\n paddingRight: 8,\n height: 21,\n marginTop: 7,\n fontSize: 12,\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(40).toString()\n : tinycolor(colors.background_color).darken(40).toString()\n }`\n : `1px solid #ced4da`,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? `${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(5).toString()\n : tinycolor(colors.background_color).darken(5).toString()\n }`\n : `#e9ecef`,\n },\n\n // \"&:hover\": {\n // backgroundColor: !isSpaceThemed(colors)\n // ? theme.colors.gray[1]\n // : tinycolor(colors.background_color).lighten(3).toString(),\n // },\n },\n leftIcon: {\n marginRight: 5,\n },\n}));\n\nexport default function HeaderTags(props) {\n const { t } = useTranslation();\n\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n\n const { classes, cx, theme } = useStyles({ colors: getColors() });\n\n const [tag, setTag] = useState(false);\n const [tags, setTags] = useState([]);\n const [parentTags, setParentTags] = useState([]);\n\n const dispatch = useDispatch();\n\n const tagsTimeout = useRef();\n const tagsTimeout2 = useRef();\n\n useEffect(() => {}, [props]);\n\n useEffect(() => {\n if (getSpace().slug) {\n onFetchParentsTags();\n onFetchTags();\n }\n }, [space, space2]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n const onFetchTags = () => {\n setTags([...getSpace().tagged_with].filter(Boolean));\n };\n\n const onFetchParentsTags = () => {\n setParentTags([...getSpace().parent_tags].filter(Boolean));\n };\n\n const onTagFilter = (tags) => {};\n const onTag = (tags) => {\n onFetchTags();\n };\n\n const onCloseTags = () => {\n setTag(false);\n // onUpdated()\n };\n\n if (parentTags && parentTags.length == 0) {\n return null;\n }\n\n if (\n getSpace() &&\n (getSpace().version == \"list\" || getSpace().version == \"events\" || getSpace().version == \"showcase\")\n ) {\n return null;\n }\n\n return (\n \n {tags && tags.length > 0 && (\n \n {tags.map((tag) => {\n return (\n ({\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n color: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].textColor\n : \"black\",\n \"&:hover\": {\n backgroundColor: theme.other.tagColors[tag.color]\n ? theme.other.tagColors[tag.color].backgroundColor\n : \"white\",\n },\n })}\n styles={{\n root: {\n height: 20,\n marginRight: 5,\n },\n label: { fontSize: 10 },\n }}\n size=\"xs\"\n radius=\"xl\"\n onClick={() => onTagFilter(tag)}\n >\n {tag.name}\n \n );\n })}\n \n )}\n {getSpace() &&\n getSpace().permissions &&\n (getSpace().permissions.can_edit ||\n getSpace().permissions.can_manage) && (\n {\n onCloseTags();\n }}\n withCloseButton\n title={t(\"spaces.presentations.message.addTags\")}\n closeButtonLabel=\"Close popover\"\n closeOnClickOutside={false}\n styles={{\n inner: {\n // padding: 10,\n },\n }}\n target={\n {\n setTag(!tag);\n }}\n variant=\"outline\"\n radius=\"xl\"\n compact\n leftIcon={}\n >\n {t(\"spaces.presentations.message.tag\")}\n \n }\n width={320}\n position=\"bottom\"\n placement=\"end\"\n >\n \n \n )}\n \n );\n}\n","import React from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { createStyles, Group, Avatar, Stack, Text } from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\nimport isDark from \"../../utils/IsDarkColor\";\n\nimport useLangUser from \"../../utils/LangUser\";\nimport formatDate from \"../../utils/formatDate\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport DefaultAvatar from \"../../src/images/fallback/default.png\";\n\nlet timeoutId = null;\n\nconst useStyles = createStyles(\n (theme, { colors, isDark, listFlatView }, getRef) => ({\n datePosted: {\n color: tinycolor(colors.default_text_color).lighten(10).toString(),\n },\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonStyle: {\n // borderRadius: theme.radius.md,\n color: tinycolor(colors.default_text_color).lighten(50).toString(),\n // backgroundColor: \"red\",\n // border: '1px solid red',\n // paddingLeft: 12,\n // paddingRight: 12,\n\n \"&:hover\": {\n backgroundColor: !isSpaceThemed(colors)\n ? theme.colors.gray[1]\n : tinycolor(colors.background_color).lighten(3).toString(),\n },\n },\n })\n);\n\nexport default function HeaderAuthor(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n\n const { language, setLangUser } = useLangUser();\n const navigate = useNavigate();\n\n const { classes, cx, theme } = useStyles({\n colors: getColors(),\n isDark: isDark,\n listFlatView: props.listFlatView,\n });\n\n const dispatch = useDispatch();\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n if (!getSpace().list_show_author) {\n return null;\n }\n\n const openProfile = (event) => {\n event.stopPropagation();\n dispatch(\n setTiptapSidemenu({ opened: \"profile\", option: getSpace().user.username })\n );\n };\n\n return (\n \n openProfile(event)}\n radius=\"xl\"\n size={40}\n key={`member-avatar-${getSpace().user.id}`}\n src={\n getSpace().user.avatar && getSpace().user.avatar.url\n ? getSpace().user.avatar.url\n : DefaultAvatar\n }\n component=\"span\"\n />\n \n \n openProfile(event)}\n className={classes.abstract}\n weight={600}\n sx={{\n lineHeight: \"1\",\n }}\n mb={6}\n >\n {getSpace().user.full_name}\n \n \n\n {getSpace().list_show_timestamp && (\n \n {/* March 31 at 5:23 AM */}\n {formatDate(\n { raw_start_date: getSpace().created_at },\n language,\n \"LLL d\",\n \"LLL d\"\n )}\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Group,\n Text,\n Switch,\n Box,\n Textarea,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport { useForm } from \"@mantine/form\";\nimport { TimeInput, DatePicker } from \"@mantine/dates\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Form(props) {\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n\n const focusTrapRef = useFocusTrap();\n\n const [startDate, setStartDate] = useState(\"\");\n const [startTime, setStartTime] = useState(\"\");\n const [endDate, setEndDate] = useState(\"\");\n const [endTime, setEndTime] = useState(\"\");\n const [allowInterests, setAllowInterests] = useState(\"\");\n\n const form = useForm({\n initialValues: {\n hangout_link: \"\",\n description: \"\",\n },\n });\n\n useEffect(() => {\n onFetch();\n }, []);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n const mergeDateAndTime = (date, time) => {\n if (date && time) {\n const _date = new Date(date);\n const _time = new Date(time);\n\n const merged = new Date(\n `${_date.toLocaleDateStringAbs()}, ${_time.toLocaleTimeString()}`\n ).toISOString();\n\n return `${merged}`;\n } else if (date) {\n return `${date.toISOString()}`;\n }\n };\n\n const onFetch = () => {\n setAllowInterests(getSpace().calendar.allow_interested_on_join);\n\n const plain_description = getSpace().calendar.plain_description;\n\n form.setFieldValue(\"hangout_link\", getSpace().calendar.hangout_link);\n // form.setFieldValue(\"description\", getSpace().calendar.plain_description);\n form.setFieldValue(\"description\", typeof plain_description === \"string\" ? plain_description.replace(/
/g, \"\\n\") : \"\");\n\n if (getSpace().calendar.has_start_date) {\n setStartDate(new Date(getSpace().calendar.raw_start_date));\n setStartTime(new Date(getSpace().calendar.raw_start_date));\n }\n if (getSpace().calendar.has_end_date) {\n setEndDate(new Date(getSpace().calendar.raw_end_date));\n setEndTime(new Date(getSpace().calendar.raw_end_date));\n }\n };\n\n const onSave = () => {\n const params = { ...form.values };\n params.pod_settings_attributes = {};\n if (startDate) {\n params.pod_settings_attributes.show_start_date = true;\n params.pod_settings_attributes.start_date = mergeDateAndTime(\n startDate,\n startTime\n );\n }\n if (endDate) {\n params.pod_settings_attributes.show_start_date = true;\n params.pod_settings_attributes.end_date = mergeDateAndTime(\n endDate,\n endTime\n );\n }\n params.pod_settings_attributes.allow_interested_on_join = allowInterests;\n SpaceSettingModel.onUpdate(\n getSpace().slug,\n params,\n (data) => {\n props.onSave(\n form.values.hangout_link,\n form.values.description,\n params.pod_settings_attributes.start_date,\n params.pod_settings_attributes.end_date\n );\n },\n (data) => {}\n );\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n {/* {t(\"spaces.form.calendarLinks.text\")} */}\n \n \n \n \n {t(\"spaces.form.calendarLinks.eventStartDateAndTime\")}\n \n \n setStartDate(date)}\n />\n setStartTime(time)}\n />\n \n \n {t(\"spaces.form.calendarLinks.eventDateTime\")}\n \n \n setEndDate(date)}\n />\n setEndTime(time)}\n />\n \n \n setAllowInterests(event.currentTarget.checked)}\n label={t(\"spaces.form.calendarLinks.allowInterests\")}\n />\n \n \n \n {t(\"spaces.form.calendarLinks.automatedEmails\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport InterestModel from \"../../../models/Interest\";\n\nimport { setCookie } from \"../../../utils/Cookies\";\n\nimport {\n Box,\n Button,\n Stack,\n TextInput,\n createStyles,\n Modal,\n Text,\n Divider,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Swal from \"sweetalert2\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n drawerWrap: {\n backgroundColor: colors.background_color,\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n formStyleLabel: {\n color: colors.default_text_color,\n },\n formStyleLink: {\n color: colors.default_link_color,\n cursor: \"pointer\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n buttonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(5)\n .toString(),\n },\n },\n closeButton: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nexport default function Form(props) {\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors, props });\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [opened, setOpened] = useState(false);\n\n const location = useLocation();\n\n const openedFromUrl = useRef();\n\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n useEffect(() => {\n if (openedFromUrl.current != location.pathname) {\n setOpened(false);\n }\n }, [location]);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"interestedform\") {\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"interestedform\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n } else {\n openedFromUrl.current = location.pathname;\n }\n }, [opened]);\n\n const form = useForm({\n initialValues: {\n email: \"\",\n name: \"\",\n },\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.replace(/\\s/g, '')) ? null : t(\"users.signUp.invalidEmailErrorMsg\"),\n name: (value) =>\n value.length >= 2 ? null : t(\"users.signUp.invalidFirstNameErrorMsg\"),\n },\n });\n\n const onSave = () => {\n const params = {\n ...form.values,\n };\n\n const slug = tiptapSidemenu?.slug || location.pathname.split(\"/\")[2];\n\n InterestModel.onCreate(\n slug,\n params,\n (data) => {\n Swal.fire({\n icon: \"success\",\n html: t(\"spaces.form.interestedForm.createAlertTitle\"),\n showDenyButton: false,\n confirmButtonText: t(\"spaces.form.interestedForm.createAlertButton\"),\n confirmButtonColor: colors?.primary_button_background_color || \"#41c3f6\",\n }).then((result) => {\n if (result.isConfirmed) {\n }\n });\n setCookie(`interested_${slug}`, \"true\", 365);\n dispatch(setTiptapSidemenu({ opened: null }));\n onResetForm();\n },\n (data) => {}\n );\n };\n\n const onResetForm = () => {\n form.setFieldValue(\"email\", \"\");\n form.setFieldValue(\"name\", \"\");\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n localStorage.setItem(\"join_slug\", props.spaceId);\n navigate(`/user/start?s=${props.spaceId}`);\n return;\n }\n\n SpaceModel.onJoin(\n props.spaceId,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n };\n\n return (\n setOpened(false)}\n title={\n \n Register for this event\n \n }\n >\n \n
onSave(values))}>\n \n \n \n \n \n \n onJoin()}>\n {t(\"spaces.form.interestedForm.joinWithSutra\")}\n \n \n \n
\n
\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { atcb_action } from \"add-to-calendar-button\";\nimport { useNavigate } from \"react-router-dom\";\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport useLangUser from \"../../utils/LangUser\";\nimport SpaceModel from \"../../models/Space\";\nimport {\n simpleFormatDate,\n isSameDay,\n getTimeZone,\n} from \"../../utils/formatDate\";\nimport CalendarLinks from \"./form/CalendarLinks\";\nimport InterestedForm from \"./form/InterestedForm\";\n\nimport {\n Stack,\n Popover,\n Box,\n Text,\n Paper,\n Group,\n Button,\n Drawer,\n createStyles,\n} from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nimport { DateTime } from \"luxon\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\nimport { getCookie } from \"../../utils/Cookies\";\n\n// import { DateTime } from \"luxon\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n buttonColorSolid: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n ellipsisColor: {\n paddingLeft: 10,\n paddingRight: 10,\n // border: isSpaceThemed(colors) ? `1px solid ${colors.sidebar_text_color}` : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.sidebar_text_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n\n dateBlockWrap: {\n padding: \"7px 16px\",\n borderRadius: 5,\n height: \"100%\",\n // border: \"1px solid #ddd\",\n border: `1px solid ${\n isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\"\n }`,\n marginRight: 5,\n color: isSpaceThemed(colors) ? colors.sidebar_text_color : \"#000\",\n },\n\n dateBlockDate: {\n fontWeight: 800,\n fontSize: 20,\n lineHeight: 1,\n marginBottom: 5,\n },\n\n dateBlockMonth: {\n lineHeight: 1,\n },\n\n appearanceButtonRoot: {\n color: theme.colors.gray[7],\n fontWeight: 400,\n fontSize: 16,\n borderRadius: 5,\n display: \"block\",\n width: \"100%\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[0],\n },\n paddingLeft: 10,\n },\n appearanceButtonLeftIconGreen: {\n color: theme.colors.green[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonLeftIcon: {\n color: theme.colors.gray[7],\n width: 20,\n display: \"flex\",\n justifyContent: \"center\",\n },\n appearanceButtonInner: {\n justifyContent: \"flex-start\",\n },\n}));\n\nexport default function Calendar(props) {\n const user = useSelector((state) => state.user);\n const colors = useSelector((state) => state.colors);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { classes, cx, theme } = useStyles({ colors });\n const [opened, setOpened] = useState(false);\n const [openGoing, setOpenGoging] = useState(false);\n\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n const [calendar, setCalendar] = useState({});\n const [registered, setRegistered] = useState({});\n\n // React.useEffect(atcb_init, []);\n const [name, setName] = React.useState(\"Some event\");\n const changeName = (e) => {\n setName(e.target.value);\n };\n\n useEffect(() => {\n setCalendar({ ...props.calendar });\n setRegistered(getCookie(`interested_${props.spaceId}`));\n }, [props]);\n\n useEffect(() => {\n setRegistered(getCookie(`interested_${props.spaceId}`));\n }, [tiptapSidemenu]);\n\n const getlink = () => {\n return `https://sutra.co/space/${props.spaceId}/${props.spaceVersion}`;\n };\n\n const concatSpaceLink = (text) => {\n // return `${text}

${getlink()}

`\n return text;\n };\n\n const onSubmit = (event) => {\n event.preventDefault();\n try {\n if (calendar.has_end_date) {\n atcb_action({\n name: props.eventName,\n location: calendar.hangout_link,\n description: concatSpaceLink(calendar.description),\n startDate: calendar.raw_start_date,\n endDate: calendar.raw_end_date,\n options: [\n \"Apple\",\n \"Google\",\n \"iCal\",\n \"Microsoft365\",\n \"Outlook.com\",\n \"Yahoo\",\n ],\n timeZone: \"UTC\",\n iCalFileName: \"Reminder-Event\",\n });\n } else {\n atcb_action({\n name: props.eventName,\n location: calendar.hangout_link,\n description: concatSpaceLink(calendar.description),\n startDate: calendar.raw_start_date,\n endDate: calendar.raw_start_date,\n options: [\n \"Apple\",\n \"Google\",\n \"iCal\",\n \"Microsoft365\",\n \"Outlook.com\",\n \"Yahoo\",\n ],\n timeZone: \"UTC\",\n iCalFileName: \"Reminder-Event\",\n });\n }\n } catch {}\n };\n\n const onJoinCall = () => {\n window.open(calendar.hangout_link, \"_blank\");\n };\n\n const onSave = (link, description, start_date, end_date) => {\n setOpened(false);\n const newCalendar = { ...calendar };\n newCalendar.hangout_link = link;\n newCalendar.description = description;\n newCalendar.raw_start_date = start_date;\n newCalendar.raw_end_date = end_date;\n setCalendar(newCalendar);\n };\n\n const onJoin = () => {\n if (!user.authenticated) {\n if (calendar.allow_interested_on_join) {\n dispatch(setTiptapSidemenu({ opened: \"interestedform\", slug: props.spaceId }));\n return;\n }\n\n localStorage.setItem(\"join_slug\", props.spaceId);\n navigate(`/user/start?s=${props.spaceId}`);\n return;\n }\n SpaceModel.onJoin(\n props.spaceId,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n };\n\n const onLeave = () => {\n SpaceModel.onLeave(\n props.spaceId,\n (data) => {\n window.location.reload();\n },\n (data) => {}\n );\n };\n\n if (!calendar) {\n return null;\n }\n\n const hideAfter24h = DateTime.now().diff(DateTime.fromISO(calendar.raw_start_date), 'hours').hours >= 24;\n\n return (\n \n \n \n \n \n {DateTime.fromISO(calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"d\")}\n \n \n {DateTime.fromISO(calendar.raw_start_date)\n .setLocale(language)\n .toFormat(\"LLL\")}\n \n \n \n \n {simpleFormatDate(\n calendar.raw_start_date,\n language,\n \"cccc, LLL d\",\n \"cccc, LLL d, yyyy\",\n \"\"\n )}\n \n \n {simpleFormatDate(\n calendar.raw_start_date,\n language,\n \"\",\n \"\",\n \"h:mm a\"\n )}\n {calendar.raw_end_date\n ? isSameDay(\n calendar.raw_start_date,\n calendar.raw_end_date,\n language\n )\n ? \" to \" +\n simpleFormatDate(\n calendar.raw_end_date,\n language,\n \"\",\n \"\",\n \"h:mm a\"\n )\n : \" to \" +\n simpleFormatDate(\n calendar.raw_end_date,\n language,\n \"LLL d\",\n \"cccc, LLL d\",\n \", h:mm a\"\n )\n : \"\"}\n {\" \" + getTimeZone(calendar.raw_start_date, language)}\n \n \n \n \n {calendar.hangout_link && (props.isMember || registered) && !hideAfter24h && (\n onJoinCall()}\n >\n {t(\"spaces.calender.calender.joinButton\")}\n \n )}\n {(props.isMember || registered) && !hideAfter24h && (\n \n
onSubmit(event)}>\n \n {t(\"spaces.calender.calender.addButton\")}\n \n \n
\n )}\n {props.isMember && !hideAfter24h && (\n \n setOpenGoging(false)}\n width={props.canEdit ? 200 : 150}\n position=\"bottom\"\n placement=\"end\"\n size=\"md\"\n styles={{\n inner: {\n padding: 4,\n },\n }}\n target={\n setOpenGoging(true)}\n >\n Going\n \n }\n >\n {props.canEdit ? (\n \n You cannot unregister for this event because you’re a\n manager.\n \n ) : (\n <>\n \n }\n radius=\"xl\"\n onClick={() => onJoin()}\n >\n {\"Going\"}\n \n }\n radius=\"xl\"\n onClick={() => onLeave()}\n >\n {\"Not going\"}\n \n \n )}\n \n \n )}\n {!props.isMember && !registered && (\n \n onJoin()}\n >\n {t(\"spaces.calender.calender.joinEventButton\")}\n \n \n )}\n {props.canEdit && (\n setOpened(true)}\n >\n \n \n )}\n
\n
\n\n setOpened(false)}\n title={t(\"spaces.calender.calender.title\")}\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { atcb_action } from \"add-to-calendar-button\";\nimport \"add-to-calendar-button/assets/css/atcb.css\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useLangUser from \"../../utils/LangUser\";\nimport SpaceModel from \"../../models/Space\";\n\nimport { Text, Paper, Group, Button, createStyles, Box } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nimport { DateTime } from \"luxon\";\n\nimport Swal from \"sweetalert2\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function StatusBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n\n const navigate = useNavigate();\n // React.useEffect(atcb_init, []);\n const [name, setName] = React.useState(\"Some event\");\n const changeName = (e) => {\n setName(e.target.value);\n };\n\n const onSubmit = (event) => {\n event.preventDefault();\n\n atcb_action({\n name: props.eventName,\n description: props.eventDescription,\n startDate: props.calendar.raw_start_date,\n endDate: props.calendar.raw_end_date,\n options: [\n \"Apple\",\n \"Google\",\n \"iCal\",\n \"Microsoft365\",\n \"Outlook.com\",\n \"Yahoo\",\n ],\n timeZone: \"UTC\",\n iCalFileName: \"Reminder-Event\",\n });\n };\n\n const onRestore = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This space will be restored and members will have access again.\",\n showDenyButton: true,\n confirmButtonText: \"Yes\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onRestore(\n props.space.slug,\n (data) => {\n // navigate(data.redirect_to);\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const onHardDestroy = () => {\n Swal.fire({\n title: \"Are you sure?\",\n html: \"This space will be deleted and its content will not be recoverable.\",\n showDenyButton: true,\n confirmButtonText: \"Yes\",\n denyButtonText: \"No\",\n confirmButtonColor: colors.red,\n denyButtonColor: colors.gray,\n }).then((result) => {\n if (result.isConfirmed) {\n SpaceModel.onHardDestroy(\n props.space.slug,\n (data) => {\n navigate(\"/home/deleted\");\n },\n (data) => {}\n );\n } else if (result.isDenied) {\n }\n });\n };\n\n const formatDateTime = (timestamp) => {\n if (props.space && props.space.launch_time) {\n const d = new Date(props.space.launch_time).toISOString();\n return DateTime.fromISO(d).toFormat(\"ff\");\n }\n };\n\n const getStatusString = () => {\n let statusString = \"This space \";\n if (props.statusName === \"pending\") {\n statusString = statusString + `will publish on ${formatDateTime()}`;\n } else if (props.statusName === \"model\") {\n statusString = statusString + `is a template`;\n } else {\n statusString = statusString + `is ${props.statusName}`;\n }\n return statusString;\n };\n\n if (\n [\"archived\", \"deleted\", \"pending\", \"processing\", \"model\"].indexOf(props.statusName) <\n 0\n ) {\n return null;\n }\n\n return (\n \n \n \n {getStatusString()}\n \n {props.statusName === \"deleted\" && (\n \n \n // }\n onClick={() => onRestore()}\n >\n {t(\"spaces.statusBar.restoreButton\")}\n \n \n // }\n onClick={() => onHardDestroy()}\n >\n {\"Delete permanently\"}\n \n \n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\nimport { useTranslation } from \"react-i18next\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { Box, Text, Paper, Group, Button, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function TagFilter(props) {\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const navigate = useNavigate();\n const { t, i18n } = useTranslation();\n const onReset = (event) => {\n navigate(`/space/${space.slug}/${space.version}`);\n };\n\n return (\n \n \n \n {`Messages tagged with ${props.tagName}`}\n \n \n }\n onClick={() => onReset()}\n >\n {t(\"spaces.tagFilter.resetButton\")}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport useLangUser from \"../../utils/LangUser\";\n\nimport Broadcaster from \"../../helpers/Broadcaster.js\";\n\nimport { Box, Paper, Group, createStyles, Progress } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function InteractionsBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const { language, setLangUser } = useLangUser();\n\n const [progress, setProgress] = useState(0);\n const [interactions, setInteractions] = useState(0);\n const [preview, setPreview] = useState(false);\n\n useEffect(() => {\n Broadcaster.receive(\n \"open_InteractionsBar\",\n document.body,\n (event, data) => {\n if (data.progress <= 100) {\n setProgress(data.progress);\n }\n }\n );\n\n return () => {\n Broadcaster.unRegisterElement(\"open_InteractionsBar\", document.body);\n };\n }, []);\n\n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search);\n\n setPreview(urlParams.has(\"preview_ij\") ? true : null);\n\n const auxProgress =\n ((window.$spaceUserInteractions.position + 1) * 100) /\n (window.$spaceUserInteractions.count);\n\n // console.log(window.$spaceUserInteractions)\n\n setProgress(auxProgress > 100 ? 100 : auxProgress);\n }, [props]);\n\n if (\n !props.space.slug ||\n (props.space && props.space.slug && !window.$spaceUserInteractions)\n ) {\n return null;\n }\n\n return (\n <>\n {(!window.$spaceUserInteractions.can_manage || preview) && (\n \n \n \n )}\n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { Text, Paper, Group, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function DummyBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n \n \n \n {`This is a demo of what your participants will see. This is not live.`}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { Text, Paper, Group, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textColor: {\n color: colors.sidebar_text_color,\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function RedirectBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n \n \n \n {`This space is being redirected to ${props.space.name} (${props.space.slug})`}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { Box,\n Text,\n Button,\n Group,\n Paper,\n \n createStyles,\n } from '@mantine/core';\n\n\n\nimport ReflectionModel from \"../../../../models/Reflection\";\n\nimport tinycolor from 'tinycolor2'\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n panelWrap: {\n boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color\n },\n textColor: {\n color: colors.sidebar_text_color\n },\n buttonColor: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n }\n}));\n\nexport default function NewReflections(props) {\n const { t, i18n } = useTranslation();\n const navigate = useNavigate()\n\n const colors = useSelector(state => state.colors);\n const { classes, cx, theme } = useStyles({colors});\n\n const [reflections, setReflections] = useState([])\n const loaded = useRef()\n\n useEffect(() => {\n return () => {\n loaded.current = false\n }\n }, [])\n\n useEffect(() => {\n if (props.space && props.space.slug && !loaded.current){\n loaded.current =true\n onFetchReflections()\n }\n }, [props])\n\n const onFetchReflections = () => {\n ReflectionModel.onFetchUnread(null, props.space.slug, (data) => {\n setReflections([...data.reflections])\n }, (data) => {\n\n })\n }\n\n const reflectionsCount = () => {\n let total = 0\n for (let i = 0; i < reflections.length; i++){\n total += reflections[i].unread\n }\n return total\n }\n\n const onOpenNext = () => {\n if (reflections.length > 0){\n const reflection = reflections[0]\n const auxReflections = [...reflections]\n auxReflections.splice(0, 1)\n setReflections(auxReflections)\n navigate(reflection.link)\n }\n }\n\n if (reflections.length == 0){\n return null\n }\n\n return (\n \n \n \n {`${t(\"spaces.presentations.message.newReflections.part1\")} ${reflectionsCount()} ${t(\"spaces.presentations.message.newReflections.part2\")} ${reflections.length} ${t(\"spaces.presentations.message.newReflections.part3\")}`}\n \n \n onOpenNext()}>\n {t(\"spaces.presentations.message.viewNextButton\")}\n \n \n \n \n );\n\n}\n","import React, { useEffect, useState, useRef, memo } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Box, Chips, Chip, Modal, Button } from \"@mantine/core\";\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport tinycolor from \"tinycolor2\";\nimport { useFetcher } from \"react-router-dom\";\n\nimport {\n setSelectedDiscussionTags\n} from \"../../../../store/app\";\n\nconst TagsChips = (props) => {\n const { t, i18n } = useTranslation();\n\n const dispatch = useDispatch()\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n const space = useSelector((state) => state.colors);\n const colors = useSelector((state) => state.colors);\n const selectedTags = useSelector((state) => state.selectedDiscussionTags);\n\n const [tags, setTags] = useState([]);\n const [opened, setOpened] = useState(false);\n const [hasOverflow, setHasOverflow] = useState(false);\n\n const parentRef = useRef(null);\n\n const loaded = useRef(false);\n const skipNextTags = useRef(false);\n\n useEffect(() => {\n if (!loaded.current) {\n if (!window.$selectedTags) {\n if (props.selectedTag instanceof String) {\n setTags([props.selectedTag]);\n } else {\n setTags([...props.selectedTag]);\n }\n }\n\n // if (window.$selectedTags && window.$selectedTags.length) {\n // setTags([...window.$selectedTags]);\n // }\n }\n checkOverflow();\n }, [props]);\n\n useEffect(() => {\n const auxTags = [...tags].filter(item => item !== null)\n if (skipNextTags.current) {\n skipNextTags.current = false;\n return;\n }\n if (tags[tags.length - 1] == \"toggle-mode-options\") {\n const auxTags = [...auxTags];\n auxTags.pop();\n skipNextTags.current = true;\n setTags(auxTags);\n setOpened(true);\n return;\n }\n if (loaded.current) {\n props.setTags([...auxTags]);\n window.$selectedTags = [...auxTags];\n dispatch(setSelectedDiscussionTags({tags: [...auxTags]}))\n }\n setTimeout(() => {\n loaded.current = true;\n }, 300);\n }, [tags]);\n\n useEffect(() => {\n skipNextTags.current = true;\n setTags([...selectedTags.tags]);\n }, [selectedTags]);\n\n const checkOverflow = () => {\n const parent = parentRef.current;\n try{\n console.log(\"HAS OVERFOWN: \" + parent.children[0].clientWidth + \" > \" + (parent.clientWidth - 100))\n const isOverflowing = parent.children[0].clientWidth > parent.clientWidth - 100;\n setHasOverflow(isOverflowing);\n }\n catch{\n\n }\n };\n\n const orderTags = () => {\n if (props.tagsList && props.tagsList.length < 4) {\n return props.tagsList;\n }\n // Create a map to store the index of each tag value in selectedTags\n const tagIndexMap = new Map();\n tags.forEach((tag, index) => {\n tagIndexMap.set(tag, index);\n });\n\n const newTagsList = [...props.tagsList];\n\n \n \n // Sort the tags based on their index in selectedTags\n newTagsList.sort((a, b) => {\n const indexA = tagIndexMap.has(a.name)\n ? tagIndexMap.get(a.name)\n : -1;\n const indexB = tagIndexMap.has(b.name)\n ? tagIndexMap.get(b.name)\n : -1;\n return indexB - indexA;\n });\n \n\n return newTagsList;\n };\n\n return (\n <>\n {props.tagsList && props.tagsList.length > 0 && (\n \n \n \n \n {orderTags()\n .slice(0, 10)\n .map((tag) => {\n return {tag.name};\n })}\n\n \n {hasOverflow && !smallScreen && (\n \n \n \n )}\n \n \n setOpened(false)}\n title=\"All tags\"\n size={\"lg\"}\n >\n \n {props.tagsList.map((tag) => {\n return {tag.name};\n })}\n \n \n \n )}\n \n );\n};\n\nexport default TagsChips;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Container, Box } from \"@mantine/core\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport TopActions from \"./TopActions\";\nimport Breadcrumbs from \"./Breadcrumbs\";\nimport PinMessage from \"./presentations/discussion/PinMessage\";\nimport NewMessage from \"./presentations/discussion/NewMessage\";\nimport HeaderTitle from \"./HeaderTitle\";\nimport HeaderTags from \"./HeaderTags\";\nimport HeaderAuthor from \"./HeaderAuthor\";\nimport Calendar from \"./Calendar\";\nimport StatusBar from \"./StatusBar\";\nimport TagFilter from \"./TagFilter\";\nimport InteractionsBar from \"./InteractionsBar\";\nimport DummyBar from \"./DummyBar\";\nimport RedirectBar from \"./RedirectBar\";\nimport NewReflectionsBar from \"./presentations/discussion/NewReflections\";\nimport TagsChips from \"./presentations/discussion/TagsChips\";\n\nimport { setFixedHeaderStatus } from \"../../store/app\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport defaultSpaceColors from \"../../collections/defaultSpaceColors\";\n\nlet timeoutId = null;\n\nlet showAux = false;\nlet spaceAux = { header: { url: null } };\n\nexport default function FixedHeader(props) {\n const colors = useSelector((state) => state.colors);\n const colors2 = useSelector((state) => state.colors2);\n const [show, setShow] = useState(false);\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n const hiddenTitle = useSelector((state) => state.hiddenTitle);\n const hiddenBreadcrumbs = useSelector((state) => state.hiddenBreadcrumbs);\n const fixedHeaderStatus = useSelector((state) => state.fixedHeaderStatus);\n const newMessage = useSelector((state) => state.newMessage);\n\n const observer = useRef();\n const scrollViewport = useRef();\n\n const location = useLocation();\n\n const dispatch = useDispatch();\n\n const [tag, setTag] = useState(null);\n\n useEffect(() => {\n setShow(props.show);\n if (props.isMain) {\n const scrollViewComp =\n document.getElementsByClassName(\"content-scrollview\")[0];\n if (scrollViewComp) {\n scrollViewport.current = scrollViewComp.getElementsByClassName(\n \"mantine-ScrollArea-viewport\"\n )[0];\n if (scrollViewport.current) {\n scrollViewport.current.addEventListener(\n \"scroll\",\n onScrollPositionChange\n );\n if (observer.current) {\n clearInterval(observer.current);\n observer.current = null;\n }\n observer.current = setInterval(() => {\n if (window.$headerIntervalActive) {\n window.$headerIntervalActive = false;\n const scrollTop = scrollViewport.current.scrollTop;\n onScrollPositionChange({ currentTarget: { scrollTop } });\n }\n }, 500);\n }\n }\n }\n\n return () => {\n if (props.isMain) {\n const scrollViewComp =\n document.getElementsByClassName(\"content-scrollview\")[0];\n if (scrollViewComp) {\n scrollViewport.current = scrollViewComp.getElementsByClassName(\n \"mantine-ScrollArea-viewport\"\n )[0];\n if (scrollViewport.current) {\n scrollViewport.current.removeEventListener(\n \"scroll\",\n onScrollPositionChange\n );\n if (observer.current) {\n clearInterval(observer.current);\n observer.current = null;\n }\n }\n }\n }\n };\n }, []);\n\n useEffect(() => {\n setShow(props.inverted ? !fixedHeaderStatus.show : fixedHeaderStatus.show);\n }, [fixedHeaderStatus]);\n\n useEffect(() => {\n if (getSpace() && getSpace().slug) {\n spaceAux = { ...getSpace() };\n }\n }, [space, space2]);\n\n useEffect(() => {\n const search = location.search;\n const tag = new URLSearchParams(search).get(\"tag\");\n setTag(null);\n if (tag) {\n setTag(tag);\n }\n }, [location]);\n\n const getSpace = () => {\n if (props.useSpace2) {\n return space2;\n } else {\n return space;\n }\n };\n\n const getColors = () => {\n if (props.useSpace2) {\n return isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n } else {\n return isSpaceThemed(colors) ? colors : defaultSpaceColors;\n }\n };\n\n const onScrollPositionChange = (event) => {\n const pos = { y: event.currentTarget.scrollTop };\n\n // console.log(\"height:\", event.currentTarget.innerHeight)\n\n let fixedHeight = 80;\n let skipHeight = 80;\n\n if (spaceAux && spaceAux.header && spaceAux.header.url) {\n fixedHeight += 284;\n // skipHeight += 284\n }\n if (spaceAux && spaceAux.pin_message) {\n fixedHeight += 84;\n skipHeight += 84;\n }\n window.$skipHeight = skipHeight;\n\n if (pos.y > fixedHeight && !showAux) {\n showAux = true;\n\n dispatch(setFixedHeaderStatus({ show: true }));\n window.$skipHeight = 0;\n } else if (pos.y <= fixedHeight && showAux) {\n showAux = false;\n\n dispatch(setFixedHeaderStatus({ show: false }));\n window.$skipHeight = skipHeight;\n }\n\n if (showAux) {\n window.$skipHeight = skipHeight + 90;\n } else {\n window.$skipHeight = skipHeight;\n }\n };\n\n return (\n \n {props.isMain == false &&\n props.components.indexOf(\"interactions\") >= 0 &&\n getSpace().settings?.show_progress_bar && (\n \n )}\n\n = 0\n ? 960\n : 801\n }\n >\n {props.editable &&\n props.components.indexOf(\"topActions\") >= 0 && getSpace().permissions.can_manage ? (\n \n ) : (\n \n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"breadcrumbs\") >= 0 ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"title\") >= 0 &&\n !hiddenTitle.hidden ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"title\") >= 0 &&\n !hiddenTitle.hidden ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"title\") >= 0 &&\n !hiddenTitle.hidden ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"pinMessage\") >= 0 &&\n getSpace() &&\n getSpace().pin_message ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"new_message\") >= 0 &&\n newMessage.show ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"calendar\") >= 0 &&\n getSpace() &&\n getSpace().calendar &&\n getSpace().calendar.has_start_date ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"status\") >= 0 &&\n getSpace() && (\n \n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"tag\") >= 0 &&\n tag ? (\n \n ) : (\n \"\"\n )}\n\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"dummy\") >= 0 ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"redirect\") >= 0 &&\n getSpace().redirect_to_space ? (\n \n ) : (\n \"\"\n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"new_reflections\") >= 0 && (\n \n )}\n {((show && props.isMain) || props.isMain == false) &&\n props.components.indexOf(\"tags\") >= 0 && (\n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useParams, useLocation, useNavigate } from \"react-router-dom\";\nimport { setSpace, setNewMessage } from \"../../../../store/app\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Drawer,\n Box,\n createStyles,\n} from \"@mantine/core\";\n\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\nimport NotificationModel from \"../../../../../models/NotificationModel\";\nimport MessageModel from \"../../../../models/Message\";\nimport TagModel from \"../../../../models/Tag\";\nimport SpaceModel from \"../../../../models/Space\";\nimport { scrollToElement } from \"../../../../utils/ScrollToElement\";\nimport Message from \"./Message\";\nimport Reflections from \"./Reflections\";\n\nimport TiptapSimple from \"../../../tiptap/components/TiptapSimple\";\nimport { ActionCableContext } from \"../../../../components/Index\";\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport trackMixpanel from \"../../../../utils/TrackMixpanel\";\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nconst queryParams = {\n pod_message_id: null,\n reflection_id: null,\n};\n\nconst scrollPosition = {\n x: 0,\n y: 0,\n};\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n drawer: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n },\n closeButton: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nexport default function Discussion(props) {\n // const { ref, width, height } = useElementSize();\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t } = useTranslation();\n\n const viewport = useRef();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const cable = useContext(ActionCableContext);\n\n const currentLocation = useLocation();\n\n const params = useParams();\n\n const user = useSelector((state) => state.space);\n const space = useSelector((state) => state.space);\n const mainActions = useSelector((state) => state.mainActions);\n\n const [openedReflections, setOpenedReflections] = useState(false);\n const [messages, setMessages] = useState([]);\n const [selectedMessage, setSelectedMessage] = useState(null);\n const [receiveData, setReceiveData] = useState(null);\n const [tagging, setTagging] = useState(0);\n const [reflectionsTagging, setReflectionsTagging] = useState(false);\n const [reflectionsDrawerHeader, setReflectionsDrawerHeader] = useState(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n const [tag, setTag] = useState([]);\n const [tags, setTags] = useState([]);\n\n const pileIntervalId = useRef(null);\n const channelPile = useRef([]);\n const messagesCopy = useRef([]);\n const currentConnectedSlug = useRef();\n const scrollToBottomAfter = useRef();\n const atBottom = useRef(false);\n const scrollTimeoutIds = useRef([]);\n const connectionIntervalId = useRef([]);\n const lastConnectionAttempt = useRef({\n slug: null,\n state: null,\n channel: null,\n });\n const paramsChangeTimeout = useRef([]);\n const tagFetch = useRef(false);\n const querySearchCount = useRef(0);\n const loadingVariables = useRef(0);\n const tagsLoaded = useRef(0);\n\n const [isFirstLoad, setIsFirstLoad] = useState(false);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n useEffect(() => {\n if (pileIntervalId.current) {\n clearInterval(pileIntervalId.current);\n }\n\n pileIntervalId.current = setInterval(() => {\n // console.log(messagesCopy.current)\n\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"pending\"\n ) {\n channelPile.current[0].state = \"in_progress\";\n\n channelPile.current[0].action(channelPile.current[0].id);\n return;\n }\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"done\"\n ) {\n channelPile.current.splice(0, 1);\n\n return;\n }\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"in_progress\"\n ) {\n return;\n }\n }, 1000);\n\n if (window.$currentUserAuthToken) {\n trackMixpanel(window.$currentUsername, \"Discussion loaded\");\n try{\n window.Beacon(\"destroy\");\n }\n catch{\n\n }\n }\n\n return () => {\n setMessages([]);\n messagesCopy.current = [];\n\n if (lastConnectionAttempt.current.channel) {\n lastConnectionAttempt.current.channel.unsubscribe();\n lastConnectionAttempt.current.channel = null;\n lastConnectionAttempt.current.slug = null;\n lastConnectionAttempt.current.state = null;\n }\n clearInterval(pileIntervalId.current);\n clearTimeout(connectionIntervalId.current);\n\n scrollToBottomAfter.current = false;\n loadingVariables.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"reflections\") {\n setOpenedReflections(true);\n } else {\n setOpenedReflections(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n clearTimeout(connectionIntervalId.current);\n if (params && params.slug) {\n if (paramsChangeTimeout.current) {\n clearTimeout(paramsChangeTimeout.current);\n }\n paramsChangeTimeout.current = setTimeout(() => {\n cableConnect();\n }, 300);\n\n onFetchTags();\n }\n }, [params]);\n\n useEffect(() => {\n if (lastConnectionAttempt.current.state == \"connected\") {\n querySearchCount.current = 0;\n checkSearchParams();\n onFetchMessages(true);\n setTimeout(() => {\n markAsSeen();\n }, 5000);\n }\n }, [location.search]);\n\n useEffect(() => {}, [props]);\n\n useEffect(() => {\n if (receiveData) {\n let changes = receiveData.changes;\n if (receiveData.state != \"multi\") {\n changes = [receiveData];\n }\n\n for (var i = 0; i < changes.length; i++) {\n if (changes[i].state == \"new\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onReceivedMessage,\n state: \"pending\",\n });\n // onReceivedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"update\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onUpdatedMessage,\n state: \"pending\",\n });\n // onUpdatedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"destroy\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onDestroyedMessage,\n state: \"pending\",\n });\n // onDestroyedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"pin\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onPinnedMessage,\n state: \"pending\",onFetchMessages\n });\n // onPinnedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"unpin\") {\n channelPile.current.push({\n id: null,\n action: onPinnedMessage,\n state: \"pending\",\n });\n // onPinnedMessage(null);\n }\n }\n }\n }, [receiveData]);\n\n useEffect(() => {\n if (channelPile.current && channelPile.current.length > 0) {\n return;\n }\n\n if (scrollToBottomAfter.current == true) {\n scrollToBottomAfter.current = false;\n\n scrollToBottom();\n return;\n }\n\n if (!loadingVariables.current && messages.length > 0) {\n loadingVariables.current = true;\n if (!queryParams.pod_message_id) {\n // setIsFirstLoad(true);\n scrollToBottom();\n return;\n }\n }\n\n if (queryParams.pod_message_id && messages.length > 0) {\n searchForMessage(queryParams.pod_message_id);\n }\n }, [messages]);\n\n useEffect(() => {\n paginator.page = 1;\n if (tagsLoaded.current > 0){\n onFetchMessages();\n }\n else{\n setTimeout(() => {\n tagsLoaded.current = 1\n }, 1000)\n }\n }, [tag]);\n\n const checkSearchParams = () => {\n const search = currentLocation.search;\n const pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n const reflection_id = new URLSearchParams(search).get(\"reflection_id\");\n const _tag = new URLSearchParams(search).get(\"tag\");\n if (pod_message_id || reflection_id) {\n queryParams.pod_message_id = pod_message_id;\n queryParams.reflection_id = reflection_id;\n }\n\n if (_tag) {\n setTag([_tag]);\n } else {\n setTag([]);\n }\n\n if (\n messages.length > 0 &&\n messages[0].pod_slug == params.slug &&\n queryParams.pod_message_id\n ) {\n searchForMessage(queryParams.pod_message_id);\n }\n };\n\n const cableDisconnectIfNeeded = () => {\n if (\n cable &&\n lastConnectionAttempt.current.channel &&\n lastConnectionAttempt.current.slug != params.slug\n ) {\n lastConnectionAttempt.current.state = \"disconnecting\";\n // debugger;\n console.log(\n \"ACTION CABLE: disconnecting - \" + lastConnectionAttempt.current.slug\n );\n setTimeout(() => {\n console.log(\n \"ACTION CABLE: disconnected 1 - \" + lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.channel = null;\n lastConnectionAttempt.current.state = null;\n cableConnect();\n }, 100);\n lastConnectionAttempt.current.channel.unsubscribe();\n } else {\n }\n };\n\n const cableConnect = () => {\n cableDisconnectIfNeeded();\n\n if (lastConnectionAttempt.current.state == \"disconnecting\") {\n console.log(\n \"ACTION CABLE: disconnecting skipped - \" +\n lastConnectionAttempt.current.slug\n );\n return;\n }\n\n if (\n lastConnectionAttempt.current.slug == params.slug &&\n lastConnectionAttempt.current.state == \"connected\"\n ) {\n console.log(\n \"ACTION CABLE: skipping connection - \" +\n lastConnectionAttempt.current.slug\n );\n return;\n }\n\n lastConnectionAttempt.current.slug = params.slug;\n lastConnectionAttempt.current.state = \"connecting\";\n\n performCableConnection();\n\n connectionIntervalId.current = setTimeout(() => {\n if (lastConnectionAttempt.current.state == \"connecting\") {\n console.log(\"ACTION CABLE: forcing messages fetch 2 - \" + params.slug);\n onFetchMessages(true);\n }\n }, 1000);\n };\n\n const performCableConnection = () => {\n console.log(\n \"ACTION CABLE: connection attempt \" + lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.channel = cable.subscriptions.create(\n {\n channel: \"PodsChannel\",\n pod_slug: params.slug,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\n `ACTION CABLE: connection data: ${currentConnectedSlug.current} == ${params.slug}`\n );\n\n if (lastConnectionAttempt.current.state == \"connecting\") {\n console.log(\n \"ACTION CABLE: connected completed - \" +\n lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.state = \"connected\";\n checkSearchParams();\n setTimeout(() => {\n markAsSeen();\n }, 5000);\n onFetchMessages(true);\n return;\n }\n console.log(\"ACTION CABLE: messages.length - \" + messages.length);\n console.log(\n \"ACTION CABLE: message slug - \" + messages.length > 0 &&\n messages[0].pod_slug\n );\n if (\n messages.length == 0 ||\n (messages.length > 0 &&\n messages[0].pod_slug != lastConnectionAttempt.current.slug)\n ) {\n console.log(\n \"ACTION CABLE: forcing messages fetch - \" + params.slug\n );\n onFetchMessages(true);\n }\n console.log(\n \"ACTION CABLE: connected skipped - \" +\n lastConnectionAttempt.current.slug\n );\n },\n disconnected: () => {\n console.log(\n \"ACTION CABLE: disconnected 2 - \" +\n lastConnectionAttempt.current.slug\n );\n },\n received: (data) => {\n console.log(\n \"ACTION CABLE: received - \" + lastConnectionAttempt.current.slug\n );\n console.log(\n \"ACTION CABLE: data - \" +\n JSON.stringify(data) +\n \" - params: \" +\n params.slug +\n \" - current: \" +\n lastConnectionAttempt.current.slug\n );\n if (data.slug == lastConnectionAttempt.current.slug) {\n paginator.newMessage = true;\n setReceiveData(data);\n return;\n }\n console.log(\n \"ACTION CABLE: received ignored - \" +\n lastConnectionAttempt.current.slug\n );\n },\n }\n );\n };\n\n const markAsSeen = () => {\n NotificationModel.onMarkAsSeen(\"pod_message\", params.slug, (data) => {});\n };\n\n const markReflectionAsSeen = (messageId) => {\n NotificationModel.onMarkAsSeen(\"reflection\", messageId, (data) => {});\n };\n\n const onFetchMessages = (reset = false) => {\n if (channelPile.current && channelPile.current.length > 0) {\n return;\n }\n if (reset && messages.length > 0 && messages[0].pod_slug == params.slug) {\n return;\n }\n\n const search = window.location.search;\n let _tag = new URLSearchParams(search).get(\"tag\");\n const _pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n\n if (reset) {\n paginator.page = 1;\n messagesCopy.current = [];\n setMessages([]);\n loadingVariables.current = false;\n }\n\n if (_tag && tagFetch.current != _tag) {\n tagFetch.current = _tag;\n paginator.page = 1;\n messagesCopy.current = [];\n setMessages([]);\n loadingVariables.current = false;\n }\n\n if (tag && JSON.stringify(tag) != JSON.stringify(tagFetch.current)) {\n tagFetch.current = tag\n paginator.page = 1;\n messagesCopy.current = [];\n setMessages([]);\n loadingVariables.current = false;\n \n }\n if (tag){\n _tag = tag;\n }\n\n if (!_tag && !_pod_message_id && paginator.page == 1) {\n if (!queryParams.pod_message_id) {\n scrollToBottomAfter.current = true;\n }\n\n getJSON(`spaces`, `messages-${params.slug}`, (data) => {\n if (data && data.data.length > 0) {\n setMessages([...data.data]);\n messagesCopy.current = [...data.data];\n onFetchMessagesFromAPI(_tag, data.stored_at, data.data);\n } else {\n onFetchMessagesFromAPI(_tag);\n }\n });\n } else {\n onFetchMessagesFromAPI(_tag);\n }\n };\n\n const onFetchMessagesFromAPI = (_tag, storedAt = null, stored = null) => {\n if (_tag) {\n trackMixpanel(window.$currentUsername, \"Tag clicked\", { space_slug: params.slug }); \n }\n MessageModel.onFetch(\n params.slug,\n { tag: _tag },\n paginator.page,\n (data) => {\n let lookForMessage = true;\n if (data.data.length > 0 && paginator.page > 1) {\n setMessages(data.data.concat(messages));\n messagesCopy.current = [...data.data.concat(messages)];\n lookForMessage = false;\n } else {\n if (paginator.page == 1) {\n storeJSON(\"spaces\", `messages-${params.slug}`, { ...data });\n }\n\n if (data.data.length > 0 && paginator.page == 1) {\n if (\n !storedAt ||\n (storedAt &&\n anyFetchedMessageChanged(data.data, stored, storedAt))\n ) {\n console.log(\"SILENT UPDATE DONE MESSAGES\");\n setMessages([...data.data]);\n messagesCopy.current = [...data.data];\n lookForMessage = false;\n }\n } else if (paginator.page == 1) {\n setMessages([...data.data]);\n messagesCopy.current = [...data.data];\n lookForMessage = false;\n }\n }\n if (data.data.length == 0 && paginator.page > 1) {\n paginator.page--;\n }\n if (\n lookForMessage &&\n queryParams.pod_message_id &&\n messages.length > 0\n ) {\n searchForMessage(queryParams.pod_message_id);\n }\n window.$headerIntervalActive = true\n },\n (data) => {}\n );\n };\n\n const anyFetchedMessageChanged = (fetched, stored, storedAt) => {\n for (let i = 0; i < fetched.length; i++) {\n const objectA = fetched[i];\n const objectB = stored.find((obj) => obj.id === objectA.id);\n if (!objectB) {\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n if (\n objectB &&\n (new Date(objectA.updated_at) > new Date(objectB.updated_at) ||\n objectA.reflections.length > objectB.reflections.length)\n ) {\n // display bar\n\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n }\n\n for (let i = 0; i < stored.length; i++) {\n const objectA = stored[i];\n const objectB = fetched.find((obj) => obj.id === objectA.id);\n if (!objectB) {\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n if (\n objectB &&\n (new Date(objectB.updated_at) > new Date(objectA.updated_at) ||\n objectB.reflections.length > objectA.reflections.length)\n ) {\n // display bar\n\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n }\n\n return false;\n };\n\n const searchForMessage = (messageId) => {\n if (querySearchCount.current > 10) {\n return;\n }\n\n querySearchCount.current++;\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n queryParams.pod_message_id = null;\n querySearchCount.current = 99;\n\n scrollToMessage(messageId);\n if (queryParams.reflection_id) {\n const newMessage = { ...messages[i] };\n newMessage.reflectionId = queryParams.reflection_id;\n queryParams.reflection_id = null;\n setSelectedMessage(newMessage);\n setOpenedReflections(true);\n markReflectionAsSeen(messageId);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n }\n return;\n }\n }\n paginator.page++;\n onFetchMessages();\n };\n\n const onReceivedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n space.slug,\n (data) => {\n if (data.user.id != window.$currentUserId) {\n if (atBottom.current) {\n loadingVariables.current = false;\n scrollToBottomAfter.current = true;\n\n setTimeout(() => {\n scrollToBottom();\n }, 500);\n } else {\n //Trigger new message\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n } else {\n loadingVariables.current = false;\n scrollToBottomAfter.current = true;\n setTimeout(() => {\n scrollToBottom();\n }, 500);\n }\n\n let newMessages = [...messagesCopy.current];\n\n if (messagesCopy.current.length == 0) {\n messagesCopy.current = [...messages];\n newMessages = [...messagesCopy.current];\n }\n\n newMessages.push(data);\n messagesCopy.current.push(data);\n\n setMessages(newMessages);\n onRemovePileAction();\n },\n (data) => {\n onRemovePileAction();\n }\n );\n };\n\n const onUpdatedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n space.slug,\n (data) => {\n loadingVariables.current = true;\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages[i] = data;\n if (selectedMessage && messageId == selectedMessage.id) {\n setSelectedMessage({ ...newMessages[i] });\n }\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n onRemovePileAction();\n },\n (data) => {\n onRemovePileAction();\n }\n );\n };\n\n const onDestroyedMessage = (messageId) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages.splice(i, 1);\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n onRemovePileAction();\n };\n\n const onPinnedMessage = (messageId) => {\n const newSpace = { ...space };\n newSpace.pin_message = messageId;\n dispatch(setSpace(newSpace));\n onRemovePileAction();\n };\n\n const onRemovePileAction = () => {\n if (channelPile.current.length > 0) {\n channelPile.current[0].state = \"done\";\n }\n };\n\n const scrollToReflection = (message) => {\n scrollToElement(`reflection_${id}`);\n };\n\n const onScrollTop = () => {\n paginator.page++;\n onFetchMessages();\n };\n\n const onSave = (json, html) => {\n if (!space.permissions.is_member){\n onJoin()\n }\n json.attrs = { uid: `message-${new Date().getTime()}` };\n json.type = \"paragraph\";\n MessageModel.onCreate(\n params.slug,\n { json, html },\n (data) => {\n storeJSON(\"spaces\", `discussion-input-${params.slug}`, {\n json: \"\",\n html: \"\",\n });\n if (props.onSave) {\n props.onSave();\n }\n },\n (data) => {}\n );\n };\n\n const onJoin = () => {\n \n if (!user || (user && !user.id)) {\n \n localStorage.setItem(\"join_slug\", space.slug);\n navigate(`/user/start?s=${space.slug}`);\n return;\n }\n\n SpaceModel.onJoin(\n space.slug,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n };\n\n const onOpenReflections = (messageId) => {\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n markReflectionAsSeen(messageId);\n setSelectedMessage(messages[i]);\n break;\n }\n }\n };\n\n const scrollToBottom = () => {\n if (viewport.current) {\n }\n setTimeout(() => {\n if (viewport.current) {\n viewport.current.scrollTop = viewport.current.scrollHeight;\n const top = viewport.current.scrollHeight + 2000;\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n }\n }, 100);\n };\n\n const scrollToMessage = (messageId) => {\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`msg_${messageId}`);\n const top =\n $scrollTo.offsetTop -\n viewport.current.offsetTop +\n viewport.current.scrollTop +\n 80;\n\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n } catch (error) {}\n }, 500);\n };\n\n const scrollToTop = () => {\n viewport.current.scrollTo({ top: 0, behavior: \"instant\" });\n };\n\n const onViewPinnedMessage = (message) => {\n setSelectedMessage(message);\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.pinnedMessageHeader\")\n );\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 50) {\n const scrollTimeoutId = setTimeout(() => {\n dispatch(setNewMessage({ show: false }));\n atBottom.current = true;\n }, 1000);\n scrollTimeoutIds.current.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n atBottom.current = false;\n\n const scrollTimeoutId = setTimeout(() => {\n // At top\n onScrollTop();\n }, 300);\n scrollTimeoutIds.current.push(scrollTimeoutId);\n } else {\n // In between\n atBottom.current = false;\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.current.length; i++) {\n const id = scrollTimeoutIds.current[i];\n clearTimeout(id);\n }\n };\n\n const onFetchTags = () => {\n TagModel.onFetch(\n params.slug,\n (data) => {\n setTags([...data]);\n },\n (data) => {}\n );\n };\n\n // if (props.loading) {\n // return ;\n // }\n\n return (\n \n {props.showHeader && messages.length > 0 && (\n \n \n \n )}\n \n {props.showHeader && (\n <>\n \n \n \n )}\n {messages &&\n messages.length > 0 &&\n messages[0].pod_slug == params.slug && (\n ({\n height: \"100%\",\n paddingBottom: \"15px\",\n })}\n >\n {messages.map((message) => {\n return (\n \n );\n })}\n \n )}\n \n {space &&\n space.permissions &&\n !space.permissions.read_only && (\n \n \n \n \n \n )}\n {space && space.permissions ? (\n setOpenedReflections(false)}\n title={reflectionsDrawerHeader}\n padding=\"xl\"\n size={600}\n classNames={{\n drawer: classes.drawer,\n header: classes.drawerHeader,\n closeButton: classes.closeButton,\n }}\n >\n \n \n ) : (\n \"\"\n )}\n \n );\n}\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Stack,\n ScrollArea,\n Container,\n createStyles,\n Skeleton,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Loading(props) {\n const { t, i18n } = useTranslation();\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef, useCallback, memo } from \"react\";\nimport Tiptap from \"../../../tiptap/components/Tiptap\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { HocuspocusProvider } from \"@hocuspocus/provider\";\n\nimport { useSelector } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\n\nimport ViewModel from \"../../../../models/View\";\n\nimport * as idb from \"lib0/indexeddb\";\n\nimport {\n Stack,\n ScrollArea,\n createStyles,\n Notification,\n Box,\n Container\n} from \"@mantine/core\";\n\nimport { getHocuspocusHost, getEnv } from \"../../../../utils/Host\";\n\nimport * as Y from \"yjs\";\n\nimport trackMixpanel from \"../../../../utils/TrackMixpanel\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport { IndexeddbPersistence } from 'y-indexeddb'\n\nimport { getCookie } from \"../../../../utils/Cookies\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n \n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? (isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString())\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nlet disconnectInterval = null;\n\nconst Content = memo((props) => {\n const { t, i18n } = useTranslation();\n\n const [loaded, setLoaded] = useState();\n\n const [forcedDisconnected, setForceDisconnect] = useState(false);\n const [unsaveChanges, setUnsaveChanges] = useState(0);\n\n const provider = useRef({\n provider: null,\n status: null,\n documentName: null,\n editable: false,\n unSyncCount: 0,\n forcedDisconnected: false,\n });\n\n const colors = useSelector((state) => state.colors);\n\n const params = useParams();\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const viewport = useRef();\n const indexdbProvider = useRef();\n const connectionInterval = useRef();\n const tiptapKey = useRef(`tiptap-${new Date()}`);\n\n const helpScouteLoaded = useRef();\n\n useEffect(() => {\n\n \n if (window.$currentUserAuthToken) {\n trackMixpanel(window.$currentUsername, \"Content edited\");\n \n // if (!helpScouteLoaded.current && window.$currentUsername) {\n // helpScouteLoaded.current = true;\n // setTimeout(() => {\n // window.Beacon(\"init\", \"8baee135-5597-476a-8269-cb1460d638e4\");\n \n // window.Beacon(\"identify\", {\n // name: window.$currentName,\n // email: window.$currentEmail,\n // account_type: window.$currentAccountType,\n // });\n // }, 2000);\n // }\n }\n\n return () => {\n window.Beacon(\"destroy\");\n helpScouteLoaded.current = false;\n unMount();\n };\n }, []);\n\n useEffect(() => {\n window.$contentScrollViewport = viewport.current;\n }, [viewport.current]);\n\n useEffect(() => {\n\n const newDocumentName = `circle-content-${params.slug}`;\n\n if (newDocumentName != provider.current.documentName) {\n provider.current.documentName = `circle-content-${params.slug}`;\n\n resetProvider();\n }\n }, [params]);\n\n const unMount = () => {\n provider.current.documentName = null;\n provider.current.status = null;\n provider.current.editable = false;\n clearProvider();\n };\n\n const onStatusChange = useCallback((status) => {\n console.log(\"PROVIDER STATUS: \", status)\n if (status == \"connect\") {\n } else if (status == \"synced\") {\n console.log(\"3. PROVIDER synced: \");\n\n setTimeout(() => {\n setLoaded(true);\n }, 250);\n } else if (status == \"disconnect\") {\n console.log(\"PROVIDER disconnect: \");\n\n setForceDisconnect(true);\n setUnsaveChanges(provider.current.provider.unsyncedChanges);\n\n reconnector();\n } else if (status == \"destroy\") {\n } else if (status == \"status\") {\n }\n }, []);\n\n const reconnector = () => {\n if (connectionInterval.current) {\n clearInterval(connectionInterval.current);\n }\n\n connectionInterval.current = setInterval(() => {\n console.log(\"PROVIDER reconnecting: \" + provider.current.provider.status);\n if (\n provider.current.provider.status == \"connected\" ||\n provider.current.provider.isSynced\n ) {\n console.log(\"PROVIDER reconnecting OK: \");\n setForceDisconnect(false);\n clearInterval(connectionInterval.current);\n }\n provider.current.provider.connect();\n }, 1000);\n };\n\n const clearProvider = () => {\n window.$indexDbReady = 0\n indexdbProvider.current = null\n if (provider.current.provider) {\n provider.current.provider.off(\"destroy\");\n provider.current.provider.off(\"disconnect\");\n provider.current.provider.off(\"connect\");\n provider.current.provider.off(\"synced\");\n\n console.log(\"PROVIDER CLEAR: \", provider.current);\n\n provider.current.provider.disconnect();\n provider.current.provider.destroy();\n }\n tiptapKey.current = `tiptap-${new Date()}`;\n };\n\n const resetProvider = () => {\n const yDocument = new Y.Doc();\n\n \n ViewModel.onFetch(\n \"tiptap\",\n params.slug,\n (data) => {\n \n // if (!indexdbProvider.current){\n if (data.visibility.role == \"admin\" || data.visibility.role == \"manager\" || data.visibility.role == \"editor\" || data.visibility.role == \"moderator\") {\n let last_local_updated_at = getCookie(\n `last_local_updated_at_${params.slug}`\n );\n if (last_local_updated_at) {\n last_local_updated_at = parseInt(last_local_updated_at);\n }\n \n if (last_local_updated_at < data.last_updated_at) {\n idb.deleteDB(provider.current.documentName);\n }\n \n // indexdbProvider.current = new IndexeddbPersistence(provider.current.documentName, yDocument)\n \n }\n else{\n window.location.reload()\n }\n // }\n\n },\n (data) => {\n }\n );\n\n\n clearProvider();\n\n console.log(\"PROVIDER RESET: \", provider.current);\n\n provider.current.provider = new HocuspocusProvider({\n url: getHocuspocusHost(),\n name: provider.current.documentName,\n document: yDocument,\n token: window.$currentUserAuthToken,\n broadcast: getEnv() == \"production\",\n delay: 1000,\n factor: 0,\n forceSyncInterval: 1000,\n });\n\n provider.current.provider.on(\"status\", () => {\n onStatusChange(\"status\");\n });\n provider.current.provider.on(\"connect\", () => {\n onStatusChange(\"connect\");\n });\n provider.current.provider.on(\"synced\", () => {\n onStatusChange(\"synced\");\n });\n\n provider.current.provider.on(\"disconnect\", () => {\n onStatusChange(\"disconnect\");\n });\n\n provider.current.provider.on(\"destroy\", () => {\n onStatusChange(\"destroy\");\n });\n };\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n \n \n {forcedDisconnected && (\n \n \n {t(\"spaces.presentations.fallback.message\")}\n \n \n )}\n\n \n \n \n );\n});\n\nexport default Content;\n","import React, { useState, useEffect, useRef, memo } from \"react\";\nimport TiptapNoHP from \"../../../tiptap/components/TiptapNoHP\";\n\nimport { useSelector } from \"react-redux\";\nimport { useParams, useNavigate, useLocation } from \"react-router-dom\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\n\nimport { Stack, ScrollArea, createStyles, Button, Box } from \"@mantine/core\";\n\nimport trackMixpanel from \"../../../../utils/TrackMixpanel\";\nimport ViewModel from \"../../../../models/View\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport { HocuspocusProvider } from \"@hocuspocus/provider\";\nimport { getHocuspocusHost, getEnv } from \"../../../../utils/Host\";\nimport * as Y from \"yjs\";\n\nimport { IndexeddbPersistence } from \"y-indexeddb\";\n\nimport _ from \"lodash\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport BackgroundColor from \"../../../tiptap/components/sidebar/BackgroundColor\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nlet disconnectInterval = null;\n\nconst Content = memo((props) => {\n const user = useSelector((state) => state.colors);\n const colors = useSelector((state) => state.colors);\n\n const params = useParams();\n const location = useLocation();\n\n const navigate = useNavigate();\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const viewport = useRef();\n const helpScouteLoaded = useRef();\n\n const [loaded, setLoaded] = useState(false);\n const [atBottom, setAtBottom] = useState(false);\n const [showScrollButton, setShowScrollButton] = useState(false);\n const [showAbsScrollButton, setAbsShowScrollButton] = useState(true);\n const [tiptapKey, setTiptapKey] = useState(`tiptap-${new Date()}`);\n const content = useRef({});\n const lastSlug = useRef();\n const width = useRef();\n const synced = useRef();\n const refreshInterval = useRef();\n const scrollTimeoutIds = useRef([]);\n\n const provider = useRef({\n provider: null,\n status: null,\n documentName: null,\n editable: false,\n unSyncCount: 0,\n forcedDisconnected: false,\n });\n\n useEffect(() => {\n setLoaded(false);\n return () => {\n clearTimeout(refreshInterval.current);\n console.log(\"CONTENT READONLY UNMOUNT\");\n setLoaded(false);\n window.Beacon(\"destroy\");\n helpScouteLoaded.current = false;\n unMount();\n };\n }, []);\n\n useEffect(() => {\n console.log(\"CONTENT READONLY PARAMS\");\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoaded(false);\n onFetch();\n }\n }, [params]);\n\n useEffect(() => {\n if (window.$currentUserAuthToken) {\n trackMixpanel(window.$currentUsername, \"Content edited\");\n\n // if (!helpScouteLoaded.current && window.$currentUsername) {\n // helpScouteLoaded.current = true;\n\n // setTimeout(() => {\n // window.Beacon(\"init\", \"8baee135-5597-476a-8269-cb1460d638e4\");\n\n // window.Beacon(\"identify\", {\n // name: window.$currentName,\n // email: window.$currentEmail,\n // account_type: window.$currentAccountType,\n // });\n // }, 2000);\n // }\n }\n }, [user]);\n\n useEffect(() => {\n window.$contentScrollViewport = viewport.current;\n\n setTimeout(() => {\n const div = viewport.current;\n\n if (div && div.scrollHeight < 2000){\n setShowScrollButton(false);\n return\n }\n else{\n setShowScrollButton(true);\n }\n }, 500)\n\n }, [viewport.current]);\n\n useEffect(() => {\n const handleScroll = () => {\n if (location.hash && location.hash.indexOf(\"jumpTo\") !== -1) {\n const uid = location.hash.replace(\"#jumpTo=\", \"\");\n\n const checkElementAndScroll = () => {\n let element =\n document.querySelector(`[data-uid=\"${uid}\"]`) ||\n document.querySelector(`[uid=\"${uid}\"]`);\n\n if (element) {\n element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n window.history.replaceState(null, null, location.pathname);\n return true;\n }\n return false;\n };\n\n // Check immediately\n if (checkElementAndScroll()) return;\n\n // Use setInterval to keep checking periodically\n const intervalId = setInterval(() => {\n if (checkElementAndScroll()) {\n clearInterval(intervalId);\n }\n }, 1000);\n\n // Stop checking after 10 seconds\n const timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n }, 10000);\n\n // Clear interval and timeout when the component unmounts\n return () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n }\n };\n\n handleScroll();\n\n window.addEventListener(\"hashchange\", handleScroll);\n\n return () => {\n window.removeEventListener(\"hashchange\", handleScroll);\n };\n }, [location]);\n\n const onFetch = () => {\n ViewModel.onFetch(\n \"tiptap\",\n params.slug,\n (data) => {\n if (\n data.can_manage &&\n synced.current &&\n !_.isEqual(data.content, content.current)\n ) {\n // window.location.reload();\n return;\n }\n\n content.current = data.content;\n window.$spaceUserInteractions = data.interactions;\n width.current = data.view_width;\n window.$spaceWideWidth = data.view_width;\n window.$themeColors = { ...data.colors };\n window.$tiptapContentLastUpdatedAt = data.last_updated_at;\n // setTimeout(() => {\n\n // if (data.can_manage){\n\n // const newDocumentName = `circle-content-${params.slug}`;\n\n // if (newDocumentName != provider.current.documentName) {\n // provider.current.documentName = `circle-content-${params.slug}`;\n\n // resetProvider();\n // }\n // }\n setLoaded(true);\n\n // }, 250);\n },\n (data) => {\n console.log(\"TIPTAP VISIBILITY\", data);\n // debugger\n // navigate(`/home/top`);\n }\n );\n };\n\n const unMount = () => {\n provider.current.documentName = null;\n provider.current.status = null;\n provider.current.editable = false;\n clearProvider();\n };\n\n const clearProvider = () => {\n if (provider.current.provider) {\n provider.current.provider.off(\"destroy\");\n provider.current.provider.off(\"disconnect\");\n provider.current.provider.off(\"connect\");\n provider.current.provider.off(\"synced\");\n\n provider.current.provider.disconnect();\n provider.current.provider.destroy();\n }\n };\n\n const resetProvider = () => {\n const yDocument = new Y.Doc();\n\n // new IndexeddbPersistence(provider.current.documentName, yDocument);\n\n clearProvider();\n\n provider.current.provider = new HocuspocusProvider({\n url: getHocuspocusHost(),\n name: provider.current.documentName,\n document: yDocument,\n token: window.$currentUserAuthToken,\n broadcast: getEnv() == \"production\",\n delay: 500,\n factor: 0,\n forceSyncInterval: 600,\n });\n\n provider.current.provider.on(\"synced\", () => {\n console.log(\"MANAGER INDEXDB SYNC\");\n synced.current = true;\n refreshInterval.current = setTimeout(() => {\n onFetch();\n }, 3000);\n });\n };\n\n const onScrollToBottom = () => {\n setTimeout(() => {\n const viewport = document.querySelector(\n \"#main-scroll-area .mantine-ScrollArea-viewport\"\n );\n \n if (viewport) {\n viewport.scrollTo({ top: viewport.scrollHeight });\n }\n }, 100);\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n\n clearScrollTimeouts();\n\n if (div.scrollHeight < 2000){\n setShowScrollButton(false);\n return\n }\n else{\n setShowScrollButton(true);\n }\n \n if (pos.y + div.clientHeight >= div.scrollHeight - 2000) {\n const scrollTimeoutId = setTimeout(() => {\n setAtBottom(true);\n }, 1000);\n scrollTimeoutIds.current.push(scrollTimeoutId);\n } else {\n // In between\n setAtBottom(false);\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.current.length; i++) {\n const id = scrollTimeoutIds.current[i];\n clearTimeout(id);\n }\n };\n\n const onHideScrollButton = (event) => {\n event.stopPropagation();\n setAbsShowScrollButton(false)\n }\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n \n \n\n \n {!atBottom && showScrollButton && showAbsScrollButton && window.$spaceUserInteractions && (\n \n onScrollToBottom()}\n leftIcon={\n \n }\n rightIcon={\n onHideScrollButton(event)} />\n }\n >\n {\"Scroll to bottom\"}\n \n \n )}\n \n \n );\n});\n\nexport default Content;\n","import React from \"react\";\nimport { memo } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport Content from \"./Content\";\nimport ContentReadonly from \"./ContentReadonly\";\n\nconst ContentContainer = memo(({ spaceId }) => {\n const mainActions = useSelector((state) => state.mainActions);\n\n return (\n <>\n {mainActions.editPage ? (\n \n ) : (\n \n )}\n \n );\n});\n\nexport default ContentContainer;\n","import React, { useState, useEffect, useRef, useCallback } from \"react\";\nimport Tiptap from \"../../../tiptap/components/Tiptap\";\n\nimport { HocuspocusProvider } from \"@hocuspocus/provider\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n setHiddenSidebar,\n setHiddenHeader,\n setForceLayoutUpdate,\n} from \"../../../../store/app\";\nimport SpaceModel from \"../../../../models/Space\";\n\nimport Loading from \"../static/Loading\";\n\nimport { Stack, ScrollArea, createStyles, Box, Notification } from \"@mantine/core\";\n\nimport { getHocuspocusHost, getEnv } from \"../../../../utils/Host\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport * as Y from \"yjs\";\n\nimport { IndexeddbPersistence } from 'y-indexeddb'\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.registration_page_background_color,\n color: colors.registration_page_default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n \n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? (isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString())\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nexport default function RegistationPage(props) {\n const { t, i18n } = useTranslation();\n const [loaded, setLoaded] = useState();\n\n const [forcedDisconnected, setForceDisconnect] = useState(false);\n const [unsaveChanges, setUnsaveChanges] = useState(0);\n\n const [invitation, setInvitation] = useState(null);\n\n const provider = useRef({\n provider: null,\n status: null,\n documentName: null,\n editable: false,\n unSyncCount: 0,\n forcedDisconnected: false,\n });\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const forceLayoutUpdate = useSelector((state) => state.forceLayoutUpdate);\n\n const params = useParams();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const handlesIntervalId = useRef();\n const layoutUpdateForced = useRef();\n\n const connectionInterval = useRef();\n const tiptapKey = useRef(`tiptap-${new Date()}`);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n dispatch(setForceLayoutUpdate({ update: false }));\n unMount();\n };\n }, []);\n\n useEffect(() => {\n if (!space.slug) {\n return;\n }\n const header =\n space.permissions && space.permissions.can_manage ? \"admin\" : false;\n\n if (window.location.pathname.indexOf(\"/registration/view\") >= 0) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n \n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n }\n else{\n\n if (header) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n \n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n }, 500);\n }\n }\n\n\n if (props.invitationSlug) {\n onFetchInvitation();\n }\n\n // Refactor for more elegant wway\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n }, 500);\n\n if (window.location.pathname.indexOf(\"/registration/view\") >= 0) {\n const regex = /{{space_name}}/g;\n if (handlesIntervalId.current) {\n return;\n }\n handlesIntervalId.current = setInterval(() => {\n const prosemirrorEditorDivs = document.querySelectorAll(\"div.is_text\");\n console.log(\"INNNNN: \" + prosemirrorEditorDivs);\n if (prosemirrorEditorDivs.length) {\n clearInterval(handlesIntervalId.current);\n for (let i = 0; i < prosemirrorEditorDivs.length; i++) {\n const child = prosemirrorEditorDivs[i];\n if (child && regex.test(`${child.innerHTML}`)) {\n child.innerHTML = `${child.innerHTML}`.replace(regex, space.name);\n }\n }\n }\n }, 100);\n }\n }, [space]);\n\n useEffect(() => {\n const handleScroll = () => {\n if (location.hash && location.hash.indexOf(\"jumpTo\") !== -1) {\n const uid = location.hash.replace(\"#jumpTo=\", \"\");\n\n const checkElementAndScroll = () => {\n let element = document.querySelector(`[data-uid=\"${uid}\"]`) || document.querySelector(`[uid=\"${uid}\"]`);\n \n if (element) {\n element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n window.history.replaceState(null, null, location.pathname);\n return true;\n }\n return false;\n };\n\n // Check immediately\n if (checkElementAndScroll()) return;\n\n // Use setInterval to keep checking periodically\n const intervalId = setInterval(() => {\n if (checkElementAndScroll()) {\n clearInterval(intervalId);\n }\n }, 1000);\n\n // Stop checking after 10 seconds\n const timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n }, 10000);\n\n // Clear interval and timeout when the component unmounts\n return () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n\n }\n };\n\n handleScroll();\n\n window.addEventListener('hashchange', handleScroll);\n\n return () => {\n window.removeEventListener('hashchange', handleScroll);\n };\n }, [location]);\n\n useEffect(() => {\n provider.current.forcedDisconnected = forcedDisconnected;\n }, [forcedDisconnected]);\n\n useEffect(() => {\n if (!forceLayoutUpdate.update && !layoutUpdateForced.current) {\n layoutUpdateForced.current = true;\n dispatch(setForceLayoutUpdate({ update: true }));\n }\n }, [forceLayoutUpdate]);\n\n useEffect(() => {\n const newDocumentName = `circle-${props.documentName}-${params.slug}`;\n\n if (newDocumentName != provider.current.documentName) {\n provider.current.documentName = `circle-${props.documentName}-${params.slug}`;\n\n resetProvider();\n }\n }, [params]);\n\n const unMount = (mount = false) => {\n provider.current.documentName = null;\n provider.current.status = null;\n provider.current.editable = false;\n clearProvider();\n };\n\n const onFetchInvitation = () => {\n SpaceModel.onFetchSimple(\n params.slug,\n \"payment\",\n (data) => {\n setInvitation(data);\n },\n (data) => {}\n );\n };\n\n const clearProvider = () => {\n if (provider.current.provider) {\n provider.current.provider.off(\"destroy\");\n provider.current.provider.off(\"disconnect\");\n provider.current.provider.off(\"connect\");\n provider.current.provider.off(\"synced\");\n\n provider.current.provider.disconnect();\n provider.current.provider.destroy();\n }\n tiptapKey.current = `tiptap-${new Date()}`;\n };\n\n const onStatusChange = useCallback((status) => {\n if (status == \"connect\") {\n } else if (status == \"synced\") {\n console.log(\"3. PROVIDER synced: \");\n\n setTimeout(() => {\n setLoaded(true);\n }, 250);\n } else if (status == \"disconnect\") {\n console.log(\"PROVIDER disconnect: \");\n\n setForceDisconnect(true);\n setUnsaveChanges(provider.current.provider.unsyncedChanges);\n\n reconnector();\n } else if (status == \"destroy\") {\n } else if (status == \"status\") {\n }\n });\n\n const reconnector = () => {\n if (connectionInterval.current) {\n clearInterval(connectionInterval.current);\n }\n\n connectionInterval.current = setInterval(() => {\n console.log(\"PROVIDER reconnecting: \" + provider.current.provider.status);\n if (\n provider.current.provider.status == \"connected\" ||\n provider.current.provider.isSynced\n ) {\n console.log(\"PROVIDER reconnecting OK: \");\n setForceDisconnect(false);\n clearInterval(connectionInterval.current);\n }\n provider.current.provider.connect();\n }, 1000);\n };\n\n const resetProvider = () => {\n const yDocument = new Y.Doc();\n\n new IndexeddbPersistence(provider.current.documentName, yDocument)\n\n clearProvider();\n\n provider.current.provider = new HocuspocusProvider({\n url: getHocuspocusHost(),\n name: provider.current.documentName,\n document: yDocument,\n token: window.$currentUserAuthToken,\n broadcast: getEnv() == \"production\",\n delay: 1000,\n factor: 0,\n forceSyncInterval: 1000,\n });\n\n provider.current.provider.on(\"status\", () => {\n onStatusChange(\"status\");\n });\n provider.current.provider.on(\"connect\", () => {\n onStatusChange(\"connect\");\n });\n provider.current.provider.on(\"synced\", () => {\n onStatusChange(\"synced\");\n });\n\n provider.current.provider.on(\"disconnect\", () => {\n onStatusChange(\"disconnect\");\n });\n\n provider.current.provider.on(\"destroy\", () => {\n onStatusChange(\"destroy\");\n });\n };\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n {forcedDisconnected && (\n \n \n {t(\"spaces.presentations.fallback.message\")}\n \n \n )}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { useTranslation } from \"react-i18next\";\nimport useLangUser from \"../../utils/LangUser\";\n\nimport { Box, Text, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n },\n textStyle: {\n fontSize: 18,\n color: colors.sidebar_text_color,\n },\n linkStyle: {\n textDecoration: \"underline\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n}));\n\nexport default function StatusBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n\n if (!props.isMember) {\n return null;\n }\n\n return (\n \n \n {t(`spaces.alreadyMember.member.welcome`)}\n \n {t(`spaces.alreadyMember.member.clickHere`)}\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\n\nimport \"add-to-calendar-button/assets/css/atcb.css\";\n\nimport { useTranslation } from \"react-i18next\";\nimport useLangUser from \"../../utils/LangUser\";\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport { Box, Text, Group, Button, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n panelWrap: {\n // boxShadow: \"0px 0px 2px 0px rgba(0,0,0,0.2)\",\n backgroundColor: colors.sidebar_background_color,\n display: \"flex\",\n justifyContent: \"center\",\n },\n textStyle: {\n fontSize: 20,\n color: colors.sidebar_text_color,\n },\n linkStyle: {\n textDecoration: \"underline\",\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n buttonColor: {\n border: isSpaceThemed(colors)\n ? `1px solid ${colors.sidebar_text_color}`\n : `1px solid ${colors.primary_button_background_color}`,\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).lighten(5).toString()\n : tinycolor(colors.sidebar_background_color).darken(1).toString(),\n },\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n}));\n\nexport default function InvitationBar(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t, i18n } = useTranslation();\n const { language, setLangUser } = useLangUser();\n\n if (props.isMember) {\n return null;\n }\n\n return (\n \n {props.isFull ? (\n \n \n {`This space is full.`}\n \n \n ) : (\n \n \n {`Invitation for `}\n \n {props.invitation.invitation && (\n \n {`${props.invitation.invitation.email}`}\n \n )}\n {props.invitation.payment &&\n props.invitation.payment.invitation_has_different_price && (\n <>\n {!props.invitation.payment.is_flexible && (\n \n {` - ${\n getSymbolFromCurrency(props.invitation.payment.currency) +\n props.invitation.payment.price\n }`}\n \n )}\n \n {t(\"spaces.invitationBar.button.register\")}\n \n \n )}\n \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport TiptapNoHP from \"../../../tiptap/components/TiptapNoHP\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport {\n setHiddenSidebar,\n setHiddenHeader,\n setForceLayoutUpdate,\n} from \"../../../../store/app\";\nimport SpaceModel from \"../../../../models/Space\";\nimport ViewModel from \"../../../../models/View\";\n\nimport FixedBottomMenu from \"../../../tiptap/components/FixedBottomMenu\";\nimport AlreadyMember from \"../../AlreadyMember\";\nimport InvitationBar from \"../../InvitationBar\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport Loading from \"../static/Loading\";\n\nimport { Stack, ScrollArea, createStyles } from \"@mantine/core\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport { getCookie } from \"../../../../utils/Cookies\";\n\n// import { IndexeddbPersistence } from 'y-indexeddb'\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.registration_page_background_color,\n color: colors.registration_page_default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n}));\n\nexport default function RegistationPage(props) {\n const [invitation, setInvitation] = useState(null);\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const forceLayoutUpdate = useSelector((state) => state.forceLayoutUpdate);\n\n const params = useParams();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const handlesIntervalId = useRef();\n const layoutUpdateForced = useRef();\n\n const [loaded, setLoaded] = useState(false);\n\n const content = useRef({});\n\n const fetchTimeout = useRef({});\n const lastSlug = useRef();\n const width = useRef();\n\n // const lastEditState = useRef(false)\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const handleScroll = () => {\n if (location.hash && location.hash.indexOf(\"jumpTo\") !== -1) {\n const uid = location.hash.replace(\"#jumpTo=\", \"\");\n\n const checkElementAndScroll = () => {\n let element = document.querySelector(`[data-uid=\"${uid}\"]`) || document.querySelector(`[uid=\"${uid}\"]`);\n \n if (element) {\n element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n window.history.replaceState(null, null, location.pathname);\n return true;\n }\n return false;\n };\n\n // Check immediately\n if (checkElementAndScroll()) return;\n\n // Use setInterval to keep checking periodically\n const intervalId = setInterval(() => {\n if (checkElementAndScroll()) {\n clearInterval(intervalId);\n }\n }, 1000);\n\n // Stop checking after 10 seconds\n const timeoutId = setTimeout(() => {\n clearInterval(intervalId);\n }, 10000);\n\n // Clear interval and timeout when the component unmounts\n return () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n\n }\n };\n\n handleScroll();\n\n window.addEventListener('hashchange', handleScroll);\n\n return () => {\n window.removeEventListener('hashchange', handleScroll);\n };\n }, [location]);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n dispatch(setForceLayoutUpdate({ update: false }));\n setLoaded(false);\n };\n }, []);\n\n useEffect(() => {\n if (!space.slug) {\n return;\n }\n const header =\n space.permissions && space.permissions.can_manage ? \"admin\" : false;\n\n if (location.pathname.indexOf(\"/register\") >= 0) {\n if (header) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: true }));\n }, 500);\n }\n } else {\n if (header) {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n dispatch(setHiddenHeader({ hidden: header }));\n }, 500);\n }\n }\n\n let invitationSlug = new URLSearchParams(location.search).get(\n \"invitation_slug\"\n );\n\n if (!invitationSlug){\n invitationSlug = getCookie(\"invitation_slug\")\n }\n\n if (invitationSlug) {\n onFetchInvitation();\n }\n\n // Refactor for more elegant wway\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n }, 500);\n }, [space]);\n\n useEffect(() => {\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoaded(false);\n onFetch();\n }\n }, [params]);\n\n useEffect(() => {\n if (!forceLayoutUpdate.update && !layoutUpdateForced.current) {\n layoutUpdateForced.current = true;\n dispatch(setForceLayoutUpdate({ update: true }));\n }\n }, [forceLayoutUpdate]);\n\n const onFetch = () => {\n ViewModel.onFetch(\n \"registration_page\",\n params.slug,\n (data) => {\n content.current = data.content;\n width.current = data.view_width;\n window.$registrationWideWidth = data.view_width;\n setLoaded(true);\n },\n (data) => {\n navigate(`/home/top`)\n }\n );\n };\n\n const onFetchInvitation = () => {\n SpaceModel.onFetchSimple(\n params.slug,\n \"payment\",\n (data) => {\n setInvitation(data);\n },\n (data) => {}\n );\n };\n\n if (!loaded) {\n return ;\n }\n\n return (\n <>\n {space &&\n space.slug &&\n location &&\n location.pathname.indexOf(\"/register\") >= 0 && (\n <>\n \n {(invitation || space.permissions.is_full) && (\n \n )}\n \n )}\n \n \n {loaded && (\n \n )}\n \n \n \n );\n}\n","import React, {useEffect, useState, useRef, useCallback} from 'react';\nimport { useSelector } from \"react-redux\";\n\nimport {PaymentElement, useStripe, useElements, AddressElement} from '@stripe/react-stripe-js';\n\nimport { Button, Loader } from '@mantine/core';\n\nimport getSymbolFromCurrency from 'currency-symbol-map'\n\nimport { useTranslation } from \"react-i18next\";\n\nexport default function Payment(props) {\n const { t } = useTranslation();\n\n const user = useSelector((state) => state.user);\n\n const [loading, setLoading] = useState(false);\n const [addressCompleted, setAddressCompleted] = useState(false);\n const [paymentCompleted, setPaymentCompleted] = useState(false);\n\n const processing = useRef(0);\n const timeoutRef = useRef(null);\n\n const stripe = useStripe();\n const elements = useElements();\n\n const tax_amount = Number(props.tax_amount || 0);\n const defaultAddressValues = { defaultValues: props.address ? props.address : { name: user?.name, address: {} } };\n\n useEffect(() => {\n if (processing.current < props.processing){\n setLoading(false);\n }\n }, [props])\n\n const onSubmit = async (event) => {\n event.preventDefault();\n setLoading(true);\n await props.onPay(stripe, elements);\n }\n\n const getFrequency = () => {\n return props.frequency && props.frequency != \"once\" ? ` / ${props.frequency}` : \"\";\n }\n\n const buttonText = () => {\n let amount = props.amount ? parseFloat(props.amount) : 0\n amount = amount + tax_amount\n return `${t(\"spaces.stripe.pay\")} ${getSymbolFromCurrency(props.currency)}${amount.toFixed(2).replace(\".00\", \"\")}${getFrequency()}`\n }\n\n const handleAddressChange = (event) => {\n if (event.complete && !addressCompleted) {\n setAddressCompleted(true);\n if (typeof props.onAddressChanged === \"function\") {\n props.onAddressChanged(event?.value);\n }\n } else if (addressCompleted) {\n setAddressCompleted(false);\n }\n };\n\n const handlePaymentChange = (event) => {\n if (event.complete && !addressCompleted) {\n setPaymentCompleted(true);\n } else if (paymentCompleted) {\n setPaymentCompleted(false);\n }\n };\n\n const debouncedOnChangeAddress = useCallback((event) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => handleAddressChange(event), 1000);\n }, []);\n\n const debouncedOnChangePayment = useCallback((event) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => handlePaymentChange(event), 1000);\n }, []);\n\n return (\n
\n {props.tax_collection && (\n \n )}\n \n \n {loading ? : buttonText()}\n \n \n )\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setHiddenSidebar, setHiddenHeader } from \"../../../store/app\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport StripeForm from \"./StripeForm\";\n\nimport StripeModel from \"../../../models/Stripe\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport { loadStripe } from \"@stripe/stripe-js\";\n\nimport Swal from \"sweetalert2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Paper,\n Title,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n Center,\n Loader,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Payment() {\n const { t } = useTranslation();\n\n const space = useSelector((state) => state.space);\n\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const location = useLocation();\n\n const intent = useRef(null);\n const stripePromise = useRef(null);\n const stripeOptions = useRef(null);\n const returnUrl = useRef(null);\n\n const freeByCoupon = useRef(false);\n const coupon = useRef(false);\n const shippingAddress = useRef(null);\n const price = useRef(null);\n const currency = useRef(\"usd\");\n const frequency = useRef(\"once\");\n\n const [loaded, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [errorMessage, setErrorMessage] = useState(null);\n const [processing, setProcessing] = useState(0);\n const [tax_amount, setTaxAmount] = useState(0);\n const [amountTotal, setAmountTotal] = useState(0);\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n const isMobile = new URLSearchParams(location.search).get(\"mobile\");\n if (isMobile) {\n dispatch(setHiddenHeader({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n }\n }, [location]);\n\n const onCreate = () => {\n StripeModel.onCreate(\n space.slug,\n parseFloat(price.current),\n frequency.current,\n intent.current,\n (data) => {\n if (data.intent_id == \"error\") {\n setError(true);\n setLoading(false);\n return;\n }\n stripePromise.current = loadStripe(data.publishable_key);\n stripeOptions.current = { clientSecret: data.client_secret };\n returnUrl.current = data.return_url;\n intent.current = data.intent_id;\n setLoading(false);\n },\n (error) => {\n if (error?.not_logged) {\n navigate(`/user/start?s=${space.slug}`);\n } else {\n setError(true);\n setLoading(false);\n setErrorMessage(error?.message);\n Swal.fire(\n error?.title,\n error?.message,\n \"error\"\n );\n }\n }\n );\n };\n\n const onUpdatePaymentIntent = () => {\n StripeModel.onUpdatePaymentIntent(\n space.slug,\n {\n payment_intent_id: intent.current,\n price: parseFloat(price.current),\n currency: currency.current,\n coupon: coupon.current || {},\n shippingAddress: shippingAddress.current\n },\n (data) => {\n if (data.status == 200) {\n setTaxAmount(data.tax_amount);\n \n // For reloading elements\n setAmountTotal(data.amount_total);\n }\n },\n (error) => {\n console.log(\"ERROR\", error);\n Swal.fire(\n t(\"spaces.payment.onConfirmPayment.alertTitle\"),\n t(\"spaces.payment.onConfirmPayment.alertMessage\"),\n \"error\"\n );\n }\n );\n };\n\n const onPriceChange = (_price, _currency, _frequency, _coupon) => {\n const isDifferentFrequency = frequency.current !== _frequency;\n price.current = _price;\n currency.current = _currency;\n frequency.current = _frequency;\n if (!intent.current && price.current) {\n onCreate();\n } else {\n if (_price === 0 && _coupon?.free) {\n coupon.current = _coupon;\n freeByCoupon.current = true;\n setLoading(true);\n setTimeout(() => {\n setLoading(false);\n }, 500)\n } else if (!price.current) {\n setLoading(false);\n } else if (isDifferentFrequency) {\n setLoading(true);\n onCreate();\n freeByCoupon.current = false;\n } else {\n coupon.current = _coupon;\n onUpdatePaymentIntent();\n freeByCoupon.current = false;\n }\n }\n };\n\n const onAddressChanged = (address) => {\n shippingAddress.current = address;\n onUpdatePaymentIntent();\n };\n\n const onPay = async (stripe, elements) => {\n if (!stripe || !elements) {\n return;\n }\n\n StripeModel.onCheckIntent(\n space.slug,\n intent.current,\n (data) => {\n if (!data.data.is_valid) {\n Swal.fire(\n t(\"spaces.payment.onCheckIntent.alertTitle\"),\n t(\"spaces.payment.onCheckIntent.alertMessage\"),\n \"error\"\n );\n setProcessing(processing+1);\n return;\n }\n\n const params = {\n elements,\n confirmParams: { return_url: returnUrl.current }\n };\n\n if (intent.current.indexOf(\"seti\") >= 0) {\n stripe.confirmSetup(params)\n .then(function (result) {\n if (result.error) {\n Swal.fire(t(\"errors.basic\"), result.error.message, \"error\");\n }\n setProcessing(processing+1);\n });\n } else {\n stripe.confirmPayment(params)\n .then(function (result) {\n if (result.error) {\n Swal.fire(\n t(\"spaces.payment.onConfirmPayment.alertTitle\"),\n result.error.message,\n \"error\"\n );\n }\n setProcessing(processing+1);\n });\n }\n },\n (data) => {}\n );\n };\n\n const onJoin = () => {\n if (coupon.current && coupon.current.id) {\n SpaceModel.onJoinWithCoupon(\n space.slug,\n coupon.current.code,\n price.current,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n } else {\n SpaceModel.onJoin(\n space.slug,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n }\n };\n\n return (\n \n \n {!smallScreen && space.slug ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })} order={1}>\n {error ? \"Error\" : t(\"spaces.payment.completePayment\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n {loaded && (\n
\n \n
\n )}\n {error && price.current > 0 && (\n
\n {typeof errorMessage === \"string\" ? errorMessage : \"Payments are temporarily disabled for this space\"}\n
\n )}\n {space.slug &&\n stripePromise.current &&\n stripeOptions.current &&\n price.current > 0 &&\n !loaded &&\n !error &&\n !freeByCoupon.current ? (\n \n \n \n ) : (space.slug && !loaded && (!error || price.current == 0) && (\n onJoin()}\n >\n {t(\"spaces.payment.join\")}\n \n )\n )}\n \n
\n
\n
\n {space.slug && !error && (\n \n {}}\n />\n \n )}\n
\n
\n
\n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\nimport {\n Text,\n Box,\n Stack,\n ScrollArea,\n Container,\n createStyles,\n Button,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Private(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const params = useParams();\n\n const space = useSelector((state) => state.colors);\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n return (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n {t(\"spaces.presentations.static.private.message.part1\")}{\" \"}\n {!user.authenticated && (\n \n {t(\"spaces.presentations.static.private.message.part2\")}\n \n )}\n \n\n {!user ||\n (user && !user.authenticated && (\n \n {t(\"spaces.presentations.static.private.button\")}\n \n ))}\n \n \n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\nimport {\n Text,\n Box,\n Stack,\n ScrollArea,\n Container,\n createStyles,\n Button,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Disabled(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const params = useParams();\n\n const space = useSelector((state) => state.colors);\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n return (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n {\n \"Your access to this space has been restricted. Please contact the manager to restore your membership.\"\n }{\" \"}\n \n \n \n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\nimport {\n Text,\n Box,\n Stack,\n ScrollArea,\n Container,\n createStyles,\n Button,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function ConfirmId(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const params = useParams();\n\n const space = useSelector((state) => state.colors);\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n return (\n \n \n ({\n height: \"100%\",\n })}\n >\n \n \n \n {\n \"Please check your email to confirm ownership of your account on Sutra.\"\n }{\" \"}\n \n\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nimport HeaderImage from \"../../HeaderImage\";\n\nimport FixedHeader from \"../../FixedHeader\";\n\nimport Loading from \"./Loading\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport ViewModel from \"../../../../models/View\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Box,\n Text,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Pending(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const params = useParams();\n\n const colors = useSelector((state) => state.colors);\n const space = useSelector(state => state.space);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n const [loaded, setLoaded] = useState(false);\n const content = useRef({});\n const lastSlug = useRef();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n setLoaded(false);\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n\n\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n setLoaded(false);\n onFetch();\n }\n\n }, [params]);\n\n const onFetch = () => {\n ViewModel.onFetch(\"pending_member_view\", params.slug, (data) => {\n content.current = data.content\n setLoaded(true);\n }, (data) => {\n\n })\n }\n\n if (!loaded) {\n return ;\n }\n\n return (\n \n \n \n \n ({\n height: \"100%\",\n })}\n >\n {space && content.current ? (\n <>\n \n \n \n ) : (\n {t(\"spaces.presentations.static.pending.message\")}\n )}\n \n \n \n );\n}\n","import React, { useEffect, useRef } from \"react\";\nimport { Text, Box, MantineProvider, Alert, Container } from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useSelector } from \"react-redux\";\n\nexport default function Processing(props) {\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.colors);\n\n const intervalId = useRef();\n\n useEffect(() => {\n // if (intervalId.current) {\n // clearInterval(intervalId.current);\n // }\n\n // intervalId.current = setInterval(() => {\n // onReset();\n // }, 1000);\n\n // return () => {\n // clearInterval(intervalId.current);\n // };\n }, []);\n\n const onReset = () => {\n SpaceModel.onFetchSimple(\n space.slug,\n \"basic\",\n (data) => {\n if (data.status != \"processing\") {\n setTimeout(() => {\n location.href = `/space/${data.slug}/${data.version}`;\n }, 3000);\n }\n },\n (data) => {}\n );\n };\n\n return (\n \n \n \n \n \n {t(\"spaces.presentations.static.processing.message\")}\n \n \n \n \n \n );\n}\n","import React, { useEffect, useRef } from \"react\";\nimport {\n Text,\n Box,\n MantineProvider,\n Alert,\n Container,\n Loader,\n Center,\n Stack,\n} from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nexport default function ProcessingPayment(props) {\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.colors);\n\n const intervalId = useRef();\n\n const location = useLocation();\n\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n\n\n if (intervalId.current) {\n clearInterval(intervalId.current);\n }\n\n intervalId.current = setInterval(() => {\n onReset();\n }, 5000);\n \n return () => {\n clearInterval(intervalId.current);\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n const isMobile = new URLSearchParams(location.search).get(\"mobile\");\n if (isMobile) {\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n }\n }, [location]);\n\n const onReset = () => {\n SpaceModel.onAccess(\n location.pathname.split(\"/\")[2],\n (data) => {\n if (data.role != \"not_member\") {\n navigate(data.redirect_to.url);\n }\n },\n (data) => {}\n );\n };\n\n return (\n \n \n
\n \n
\n
\n \n \n \n {/* {t(\"spaces.presentations.static.processing.message\")} */}\n {\"Your payment is being processed...\"}\n \n \n \n
\n
\n
\n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport HeaderImage from \"../../HeaderImage\";\n\nimport FixedHeader from \"../../FixedHeader\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Text,\n Button,\n createStyles,\n} from \"@mantine/core\";\n\nimport InvitationModel from \"../../../../models/Invitation\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Pending(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const location = useLocation();\n const navigate = useNavigate();\n\n const colors = useSelector((state) => state.colors);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n const onAcceptInvitation = () => {\n const slug = new URLSearchParams(location.search).get(\"slug\");\n\n InvitationModel.onAccept(\n slug,\n space.slug,\n (data) => {\n navigate(\n `/space/${space.slug}/${space.version}?refresh=true`\n );\n },\n (data) => {}\n );\n };\n\n return (\n \n \n \n \n ({\n height: \"100%\",\n })}\n >\n {t(\"spaces.presentations.static.invitation.message\")}\n \n \n \n \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport TakeSurvey from \"../../../surveys/take/Form\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Box,\n Title,\n createStyles,\n} from \"@mantine/core\";\n\nimport SurveyModel from \"../../../../models/Survey\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Survey(props) {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [survey, setSurvey] = useState()\n const [loaded, setLoaded] = useState(false);\n\n const colors = useSelector(state => state.colors);\n const space = useSelector(state => state.space);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 2000);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (space.slug && !loaded) {\n onFetch();\n setLoaded(true);\n }\n }, [space, loaded])\n\n const onFetch = () => {\n SurveyModel.onFetchById(\n \"registration\",\n space.slug,\n (data) => {\n setSurvey(data);\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n },\n (data) => {}\n );\n }\n\n const onTaken = () => {\n navigate(`/space/${space.slug}?refresh=true`);\n };\n\n return (\n \n \n\n\n ({\n height: \"100%\",\n maxWidth: 600\n })}>\n {survey && survey.id && (\n \n ({\n border: `1px solid ${colors.default_text_color}`,\n borderRadius: 10,\n paddingTop: 30,\n paddingBottom: 40,\n paddingLeft: 40,\n paddingRight: 40,\n marginBottom: 40,\n })}\n >\n ({\n marginBottom: 10,\n fontSize: 24,\n fontWeight: 900 })}\n >\n {space.name}\n \n \n \n \n )}\n \n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport { setCookie } from \"../../../../utils/Cookies\";\n\nimport { createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n}));\n\nexport default function Gateway(props) {\n const navigate = useNavigate();\n\n const colors = useSelector((state) => state.colors);\n const space = useSelector((state) => state.space);\n\n const currentLocation = useLocation();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n return () => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n };\n }, []);\n\n useEffect(() => {\n if (space.slug) {\n\n const search = currentLocation.search;\n const show_bundles = new URLSearchParams(search).get(\"bundles\");\n if (show_bundles){\n // setCookie(\"bundles\", show_bundles, 365 * 10);\n localStorage.setItem(\"bundles\", show_bundles);\n }\n else{\n // setCookie(\"bundles\", \"null\", 0);\n localStorage.removeItem('bundles');\n }\n\n SpaceModel.onGateway(\n space.slug,\n (data) => {\n localStorage.setItem(\"gateway_slug\", space.slug);\n navigate(data.redirect_to.url);\n },\n (data) => {}\n );\n }\n }, [space]);\n\n return

;\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Link, useNavigate, useParams } from \"react-router-dom\";\nimport { setHiddenSidebar } from \"../../../../store/app\";\n\nimport BroadcastModel from \"../../../../models/Broadcast\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Container,\n Stack,\n ScrollArea,\n Box,\n Text,\n Button,\n Center,\n Title,\n createStyles,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n linkStyle: {\n color: \"#000\",\n },\n}));\n\nexport default function BroadcastExclude(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n\n const params = useParams();\n\n const [excluded, setExcluded] = useState(false);\n const [email, setEmail] = useState(false);\n\n const colors = useSelector((state) => state.colors);\n const space = useSelector((state) => state.space);\n\n const { classes, cx, theme } = useStyles({ colors });\n\n useEffect(() => {\n\n const email = new URLSearchParams(location.search).get(\"email\");\n setEmail(email)\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n\n return () => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n };\n }, []);\n\n useEffect(() => {\n if (email){\n onIsExcluded();\n }\n }, [email]);\n\n const onInclude = () => {\n BroadcastModel.onInclude(\n params.slug,\n email,\n (data) => {\n setExcluded(false);\n },\n (data) => {}\n );\n };\n const onExclude = () => {\n BroadcastModel.onExclude(\n params.slug,\n email,\n (data) => {\n setExcluded(true);\n },\n (data) => {}\n );\n };\n const onIsExcluded = () => {\n BroadcastModel.onIsExcluded(\n params.slug,\n email,\n (data) => {\n setExcluded(data.data.excluded);\n },\n (data) => {}\n );\n };\n\n return (\n \n \n ({\n height: \"100%\",\n maxWidth: 600,\n })}\n >\n \n ({\n border: `1px solid ${colors.default_text_color}`,\n borderRadius: 10,\n paddingTop: 30,\n paddingBottom: 40,\n paddingLeft: 40,\n paddingRight: 40,\n marginBottom: 40,\n })}\n >\n \n ({\n marginBottom: 10,\n fontSize: 24,\n fontWeight: 900,\n })}\n >\n {space.name}\n \n \n\n {!excluded ? (\n
\n \n \n {`${t(\n \"spaces.presentations.static.broadcastExclude.unsubscribe.part1\"\n )} ${space.name}? ${t(\n \"spaces.presentations.static.broadcastExclude.unsubscribe.part2\"\n )}`}\n \n \n onExclude()}\n >\n {t(\n \"spaces.presentations.static.broadcastExclude.unsubscribe.button\"\n )}\n \n \n \n
\n ) : (\n
\n \n \n {`${t(\n \"spaces.presentations.static.broadcastExclude.subscribe.part1\"\n )} ${space.name}.`}\n \n {`Changed your mind?`}\n \n \n \n \n
\n )}\n
\n \n \n
\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport Swal from \"sweetalert2\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Group,\n Text,\n Select,\n SegmentedControl,\n Switch,\n MantineProvider,\n Box,\n Loader,\n Center,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { useForm } from \"@mantine/form\";\nimport { TimeInput, DatePicker } from \"@mantine/dates\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nimport TiptapInline from \"../../tiptap/components/TiptapInline\";\n\nimport { storeJSON, getJSON } from \"../../../utils/LocalDB\";\n\nimport Tag from \"../presentations/lists/Tag\";\n\nimport { getEnv } from \"../../../utils/Host\";\n\nconst SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n);\n\nexport default function Form(props) {\n const navigate = useNavigate();\n const [publish, setPublish] = useState(false);\n const [join, setJoin] = useState(true);\n const [record, setRecord] = useState(false);\n const [privacyDescription, setPrivacyDescription] = useState(\"\");\n const [rootPrivacyDescription, setRootPrivacyDescription] = useState(\"\");\n const [opened, setOpened] = useState(false);\n const [tags, setTags] = useState(null);\n const space = useSelector((state) => state.space);\n const [newSpaceLoading, setNewSpaceLoading] = useState(false);\n const [newMeetingLoading, setNewMeetingLoading] = useState(false);\n const [zoomUserId, setZoomUserId] = useState(\"\");\n const [zoomMeetingId, setZoomMeetingId] = useState(\"\");\n const [zoomData, setZoomData] = useState({});\n const [zoomMeetings, setZoomMeetings] = useState([]);\n const [linkOption, setLinkOption] = useState(\"\");\n const [zoomLoaded, setZoomLoaded] = useState(false);\n const [canUseZoom, setCanUseZoom] = useState([]);\n const zoomIntervalId = useRef();\n const zoomIntervalCount = useRef(0);\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n intention: \"\",\n version: \"\",\n privacy_level: \"open\",\n join_on_create: true,\n launch_on_date: null,\n launch_time: null,\n show_start_date: false,\n start_date: new Date(new Date().getTime() + 86400000),\n end_date: new Date(new Date().getTime() + 90000000),\n start_time: new Date(new Date().getTime() + 86400000),\n end_time: new Date(new Date().getTime() + 90000000),\n content: \"\",\n hangout_link: \"\",\n description: \"\",\n tags: [],\n },\n\n validate: {\n intention: (value) =>\n value.length >= 3 && value.length <= 100\n ? null\n : t(\"spaces.create.invalidName2ErrorMsg\"),\n },\n });\n\n useEffect(() => {\n return () => {\n if (zoomIntervalId.current) {\n clearInterval(zoomIntervalId.current);\n zoomIntervalId.current = null;\n zoomIntervalCount.current = 0;\n }\n setNewSpaceLoading(false);\n };\n }, []);\n\n useEffect(() => {\n form.setFieldValue(\"version\", props.version);\n if (!zoomData.connected){\n onFetchZoomData();\n }\n if (props.privacyControl != null) {\n form.setFieldValue(\n \"privacy_level\",\n props.privacyControl == \"any\" ? \"open\" : props.privacyControl\n );\n }\n if (!tags) {\n onFetchTags();\n }\n }, [props]);\n\n useEffect(() => {\n if (record && !canUseZoom[0]) {\n setOpened([true, canUseZoom[1], canUseZoom[2]]);\n setRecord(false);\n return;\n }\n form.setFieldValue(\"record_zoom\", record);\n }, [record]);\n\n useEffect(() => {\n form.setFieldValue(\"join_on_create\", join);\n }, [join]);\n\n useEffect(() => {\n if (form.values.privacy_level === \"open\") {\n setPrivacyDescription(\n `${t(\"spaces.form.form.privacyDescription1\")} ${space.name}.`\n );\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription1\")}`\n );\n } else if (form.values.privacy_level === \"private\") {\n setPrivacyDescription(`${t(\"spaces.form.form.privacyDescription2\")}`);\n setRootPrivacyDescription(\n `${t(\"spaces.form.form.rootPrivacyDescription2\")}`\n );\n }\n }, [form.values.privacy_level]);\n\n useEffect(() => {\n if (zoomMeetingId) {\n form.setFieldValue(\"hangout_link\", getMeetingLink());\n } else {\n form.setFieldValue(\"hangout_link\", \"\");\n }\n }, [zoomMeetingId]);\n\n useEffect(() => {\n if (newMeetingLoading) {\n return;\n }\n setZoomMeetingId(\"\");\n }, [linkOption]);\n\n useEffect(() => {\n if (space && space.slug) {\n setCanUseZoom(\n space && space.permissions && space.permissions.can_use_zoom_recordings\n );\n }\n }, [space]);\n\n const getMeetingLink = (meetingId = null) => {\n return `https://us02web.zoom.us/j/${meetingId ? meetingId : zoomMeetingId}`;\n };\n\n const onPreSave = () => {\n if (linkOption == \"zoom-create-meeting\") {\n setNewMeetingLoading(true);\n onCreateZoom();\n return;\n }\n onSave();\n };\n\n const onFetchTags = () => {\n setTags([...space.tags]);\n };\n\n const onSave = (hangout_link = null) => {\n if (newSpaceLoading) {\n return;\n }\n setNewMeetingLoading(false);\n setNewSpaceLoading(true);\n const spaceParams = { ...form.values };\n if (spaceParams.version == \"event\") {\n spaceParams.version = \"content\";\n spaceParams.show_start_date = true;\n\n const _hangout_link = hangout_link ? hangout_link : form.values.hangout_link;\n\n if (linkOption.indexOf(\"zoom\") >= 0 && _hangout_link) {\n spaceParams.hangout_link = _hangout_link;\n }\n\n if (spaceParams.start_date) {\n const _startDate = new Date(spaceParams.start_date);\n const _startTime = spaceParams.start_time\n ? new Date(spaceParams.start_time)\n : new Date();\n\n spaceParams.start_date = new Date(\n `${_startDate.toLocaleDateStringAbs()}, ${_startTime.toLocaleTimeString()}`\n ).toISOString();\n }\n if (spaceParams.end_date) {\n const _endDate = new Date(spaceParams.end_date);\n const _endTime = spaceParams.end_time\n ? new Date(spaceParams.end_time)\n : new Date();\n\n spaceParams.end_date = new Date(\n `${_endDate.toLocaleDateStringAbs()}, ${_endTime.toLocaleTimeString()}`\n ).toISOString();\n }\n }\n if (spaceParams.launch_on_date) {\n const _launchDate = new Date(spaceParams.launch_on_date);\n const _launchTime = spaceParams.launch_time\n ? new Date(spaceParams.launch_time)\n : new Date();\n\n spaceParams.launch_time = new Date(\n `${_launchDate.toLocaleDateStringAbs()}, ${_launchTime.toLocaleTimeString()}`\n ).toISOString();\n\n spaceParams.launch_on_date = true;\n }\n\n if (props.duplicateFrom) {\n spaceParams.copy_resources = true;\n spaceParams.copy_sub_circles = true;\n spaceParams.parent_slug = space.slug;\n\n SpaceModel.onDuplicate(\n spaceParams,\n props.duplicateFrom,\n (data) => {\n props.onSave(data.data.slug, data.data.link);\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 2000);\n },\n (data) => {\n Swal.fire(data.title, data.message, \"error\");\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n } else {\n SpaceModel.onCreate(\n spaceParams,\n props.parentId,\n (data) => {\n props.onSave(data.slug, data.link);\n storeJSON(\"spaces\", `new-space-${props.parentId}`, {\n json: \"\",\n html: \"\",\n });\n setTimeout(() => {\n setNewSpaceLoading(false);\n if (props.version === \"event\") {\n navigate(data.link);\n }\n }, 2000);\n },\n (data) => {\n if (data.permissions) {\n setOpened([true, data.permissions[1], data.permissions[2]]);\n // props.onSave()\n }\n Swal.fire(data.title, data.message, \"error\");\n setTimeout(() => {\n setNewSpaceLoading(false);\n }, 500);\n }\n );\n }\n };\n\n const spacesVersions = () => {\n let versions = [\n {\n value: \"content\",\n label: t(\"spaces.form.form.versions.content.label\"),\n description: t(\"spaces.form.form.versions.content.description\"),\n },\n {\n value: \"list\",\n label: t(\"spaces.form.form.versions.list.label\"),\n description: t(\"spaces.form.form.versions.list.description\"),\n },\n {\n value: \"discussion\",\n label: t(\"spaces.form.form.versions.discussion.label\"),\n description: t(\"spaces.form.form.versions.discussion.description\"),\n },\n {\n value: \"event\",\n label: t(\"spaces.form.form.versions.event.label\"),\n description: t(\"spaces.form.form.versions.event.description\"),\n },\n {\n value: \"events\",\n label: t(\"spaces.form.form.versions.events.label\"),\n description: t(\"spaces.form.form.versions.events.description\"),\n },\n {\n value: \"showcase\",\n label: t(\"spaces.form.form.versions.showcase.label\"),\n description: t(\"spaces.form.form.versions.showcase.description\"),\n },\n ];\n\n return versions;\n };\n\n const onContentUpdate = (content, html, callback, isEmpty) => {\n form.setFieldValue(\"content\", content.content);\n };\n\n const onTag = ({ name, color, action, rTags }) => {\n if (action == \"add\") {\n const selectedTags = [...form.values.tags];\n selectedTags.push({ name: name, color: color });\n form.setFieldValue(\"tags\", selectedTags);\n } else if (action == \"replace\") {\n form.setFieldValue(\"tags\", rTags);\n }\n };\n\n const onConnectZoom = () => {\n let url = \"\";\n if (getEnv() == \"production\") {\n url = `https://zoom.us/oauth/authorize?client_id=Iq_GKcCRhWRVRdVaE3W5Q&response_type=code&redirect_uri=https://sutra.co/api/v4/hooks/zoom/redirect?state=zoom2_usr_${window.$currentUserAuthToken}`;\n } else {\n url = `https://zoom.us/oauth/authorize?client_id=YK0Cx_LQ16AVBy0FFvaxQ&response_type=code&redirect_uri=https://sutra.ngrok.dev/api/v4/hooks/zoom/redirect?state=zoom2_usr_${window.$currentUserAuthToken}`;\n }\n window.open(url, \"_blank\");\n\n zoomIntervalId.current = setInterval(() => {\n onFetchZoomData();\n zoomIntervalCount.current += 1;\n\n if (zoomIntervalCount.current > 60) {\n clearInterval(zoomIntervalId.current);\n }\n }, 1000);\n };\n\n const onDisconnectZoom = () => {\n SpaceModel.onZoomDisconnect(\n \"zoom\",\n (data) => {\n setZoomData({});\n },\n (data) => {}\n );\n };\n\n const onFetchZoomData = () => {\n SpaceModel.onZoomData(\n \"zoom\",\n zoomUserId,\n (data) => {\n setZoomData({ ...data.zoom_data });\n setZoomMeetings([...data.zoom_data.meetings]);\n if (data.zoom_data.users.length == 1) {\n lastZoomUser.current = data.zoom_data.users[0].value;\n setZoomUserId(data.zoom_data.users[0].value);\n }\n setZoomLoaded(true);\n },\n (data) => {}\n );\n };\n\n const onCreateZoom = (query) => {\n const spaceParams = { ...form.values };\n if (spaceParams.start_date) {\n const _startDate = new Date(spaceParams.start_date);\n const _startTime = spaceParams.start_time\n ? new Date(spaceParams.start_time)\n : new Date();\n try {\n spaceParams.start_date = new Date(\n `${_startDate.toLocaleDateStringAbs()}, ${_startTime.toLocaleTimeString()}`\n ).toISOString();\n version;\n } catch {}\n }\n if (spaceParams.end_date) {\n const _endDate = new Date(spaceParams.end_date);\n const _endTime = spaceParams.end_time\n ? new Date(spaceParams.end_time)\n : new Date();\n try {\n spaceParams.end_date = new Date(\n `${_endDate.toLocaleDateStringAbs()}, ${_endTime.toLocaleTimeString()}`\n ).toISOString();\n } catch {}\n }\n\n SpaceModel.onZoomCreateMeeting(\n {\n topic: form.values.intention,\n start_time: spaceParams.start_date,\n end_time: spaceParams.end_date,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n (data) => {\n setZoomMeetingId(data.meeting.id + \"\");\n form.setFieldValue(\"hangout_link\", getMeetingLink(data.meeting.id));\n setTimeout(() => {\n onSave(getMeetingLink(data.meeting.id));\n }, 500);\n },\n (data) => {}\n );\n };\n\n return (\n \n onPreSave(values))}\n ref={focusTrapRef}\n >\n \n \n {props.content && !props.duplicateFrom && (\n \n \n \n )}\n {!props.isRoot ? (\n \n {space && space.slug && space.version == \"content\" && (\n \n )}\n\n {form.getInputProps(\"version\").value == \"event\" ? (\n \n {/* \n {t(\"spaces.form.form.eventDescription\")}\n */}\n \n {zoomLoaded == true &&\n !zoomData.connected &&\n linkOption.indexOf(\"zoom\") >= 0 && (\n onConnectZoom()}\n >\n {\"Connect Zoom Account\"}\n \n )}\n {zoomData.connected && (\n <>\n {zoomData.users && zoomData.users.length > 1 && (\n \n )}\n {linkOption == \"zoom-meeting\" && (\n <>\n \n {/* {getMeetingLink()} */}\n \n )}\n {/*zoomData.connected &&\n linkOption.indexOf(\"zoom\") >= 0 && (\n <>\n \n setRecord(event.target.checked)\n }\n label={`Auto save zoom recording`}\n />\n \n {\n \"Enabling this option will automatically upload your Zoom cloud recording to Sutra once the meeting is over\"\n }\n \n \n )*/}\n \n )}\n {linkOption == \"custom-link\" && (\n \n )}\n \n \n {t(\"spaces.form.form.eventStartTime\")}\n \n \n \n \n \n \n {t(\"spaces.form.form.eventEndDate\")}\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n ) : (\n \"\"\n )}\n\n \n {props.privacyControl == \"any\" && (\n \n \n {t(\"spaces.form.form.privacyLevelText\")}\n \n \n {!props.isRoot && (\n \n {privacyDescription}\n \n )}\n {props.isRoot && (\n \n {rootPrivacyDescription}\n \n )}\n \n )}\n {!props.noAdvance && !props.isRoot && (\n <>\n setJoin(event.target.checked)}\n label={t(\"spaces.form.form.joinAsMember.label\")}\n />\n setPublish(event.target.checked)}\n label={t(\"spaces.form.form.publishDate.label\")}\n />\n {publish ? (\n
\n \n {t(\"spaces.form.form.publishDateTime\")}\n \n \n \n \n \n
\n ) : (\n \"\"\n )}\n \n )}\n {tags && tags.length > 0 && (\n \n )}\n
\n\n {newSpaceLoading || newMeetingLoading ? (\n
\n \n
\n ) : (\n \n )}\n
\n \n \n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Button,\n ScrollArea,\n Stack,\n TextInput,\n Box,\n Loader,\n Center\n} from \"@mantine/core\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFocusTrap } from \"@mantine/hooks\";\n\nimport PremiumModal from \"../../app/PremiumModal\";\n\nlet regexSutraLink = /^(http|https):\\/\\/([\\w-]+\\.)+[\\w-]+\\/space\\/[\\w-]+\\/?.*$/;\nlet regexSutraLink2 = /^(http|https):\\/\\/([a-zA-Z0-9]+)\\.sutra\\.co\\/?.*$/;\n\n\nexport default function Form(props) {\n const [opened, setOpened] = useState(false);\n const space = useSelector((state) => state.space);\n const [newSpaceLoading, setNewSpaceLoading] = useState(false);\n const [canLink, setCanLink] = useState(true)\n\n const { t, i18n } = useTranslation();\n\n const focusTrapRef = useFocusTrap();\n\n const form = useForm({\n initialValues: {\n link: \"\",\n },\n\n validate: {\n link: (value) =>\n regexSutraLink.test(value) || regexSutraLink2.test(value) ? null : t(\"spaces.form.linkForm.linkErrMessage\"),\n },\n });\n\n useEffect(() => {\n return () => {\n setNewSpaceLoading(false)\n };\n }, []);\n\n useEffect(() => {\n setCanLink(true)\n }, [form.values.link]);\n\n function extractSlug() {\n let parts = []\n if (regexSutraLink.test(form.values.link)){\n parts = form.values.link.split(\"/\");\n return parts[4];\n }\n else{\n parts = form.values.link.replace(\"https://\", \"\").replace(\"http://\", \"\").split(\".\");\n return parts[0];\n }\n }\n\n const onSave = () => {\n\n\n SpaceModel.onCanBeLinked(\n extractSlug(),\n props.parentId,\n (data) => {\n setCanLink(data.can_be_linked)\n if (data.can_be_linked) {\n onLink();\n }\n },\n (data) => {\n\n }\n );\n };\n\n const onLink = () => {\n\n if (newSpaceLoading) {\n return;\n }\n setNewSpaceLoading(true)\n\n SpaceModel.onLink(\n extractSlug(),\n props.parentId,\n (data) => {\n props.onSave(data.slug, data.link);\n\n setTimeout(() => {\n setNewSpaceLoading(false)\n }, 2000);\n },\n (data) => {\n\n setTimeout(() => {\n setNewSpaceLoading(false)\n }, 500);\n }\n );\n };\n\n return (\n \n onSave(values))}\n ref={focusTrapRef}\n >\n \n \n {!canLink && (\n ({\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0],\n textAlign: 'center',\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: 'pointer',\n\n '&:hover': {\n backgroundColor:\n theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[1],\n },\n })}\n >\n {space.version != \"events\" ? t(\"spaces.form.linkForm.link.errors.space\") : t(\"spaces.form.linkForm.link.errors.event\")}\n\n \n )}\n \n {newSpaceLoading ? (\n
\n \n
\n ) : (\n \n )}\n
\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\n\nimport { Modal, Text, Avatar, Group, createStyles } from \"@mantine/core\";\n\nimport Form from \"../../form/ListForm\";\nimport LinkForm from \"../../form/LinkForm\";\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors, publishOnDate }, getRef) => ({\n abstract: {\n textDecoration: \"none\",\n // color: \"#000\",\n color: isSpaceThemed(colors) ? colors.default_text_color : \"#000\",\n margin: 0,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n}));\n\nconst NewSpace = (props) => {\n const space = useSelector((state) => state.space);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const [spaceType, setSpaceType] = useState(\"content\");\n\n const user = useSelector((state) => state.user);\n\n useEffect(() => {\n setSpaceType(props.spaceType);\n }, [props]);\n\n const onSave = (spaceId, spaceLink, spaceName=\"\") => {\n props.setOpened(false);\n props.onSave(spaceId, spaceLink);\n };\n\n return (\n props.setOpened(false)}\n title={\n \n \n\n \n {`${user.first_name} ${user.last_name}`}\n \n \n }\n padding=\"xl\"\n size=\"lg\"\n overlayOpacity={0.1}\n zIndex={99999}\n >\n {props.linkOnly ? (\n \n ) : (\n props.opened && (\n \n )\n )}\n \n );\n};\n\nexport default NewSpace;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport SpaceSettingModel from \"../../../../models/SpaceSetting\";\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { setWideWidth, setSpace } from \"../../../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PremiumModal from \"../../../app/PremiumModal\";\n\nimport Tag from \"./Tag\";\n\nimport {\n Drawer,\n Text,\n Box,\n Stack,\n ScrollArea,\n Accordion,\n Select,\n createStyles,\n Button,\n Switch,\n TextInput,\n Loader,\n Group,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme) => ({\n item: {\n borderBottom: \"none\",\n },\n control: {\n paddingTop: 0,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n marginTop: 16,\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n icon: {\n // marginRight: 8,\n // marginLeft: -5\n },\n content: {\n backgroundColor: theme.colors.gray[0],\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n },\n contentInner: {\n paddingLeft: 0,\n paddingRight: 0,\n },\n}));\n\nconst Settings = (props) => {\n const { t, i18n } = useTranslation();\n const { classes, cx, theme } = useStyles();\n\n const space = useSelector((state) => state.space);\n\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const [visualType, setVisualType] = useState(\"list\");\n const [authors, setAuthors] = useState();\n const [templates, setTemplates] = useState([]);\n const [listChildVersion, setListChildVersion] = useState(\n props.parentVersion == \"list\" ? \"post\" : \"\"\n );\n const [listTemplateId, setListTemplateId] = useState(\"create\");\n const [listActionText, setListActionText] = useState(\n props.parentVersion == \"list\" ? \"Create post\" : props.parentVersion == \"showcase\" ? \"Create space\" : \"Add event\"\n );\n const [listLinkAction, setListLinkAction] = useState(\"subspace\");\n const [listShowPreviewText, setListShowPreviewText] = useState();\n const [listShowThumbnail, setListShowThumbnail] = useState();\n const [listShowComments, setListShowComments] = useState();\n const [listShowMembers, setListShowMembers] = useState();\n const [listShowTimestamp, setListShowTimestamp] = useState();\n const [listAutoThumbnail, setListAutoThumbnail] = useState();\n const [listPrivacyControl, setListPrivacyControl] = useState();\n const [newTemplateName, setNewTemplateName] = useState();\n const [resourceEditing, setResourceEditing] = useState();\n const [listFilterBy, setListFilterBy] = useState();\n const [listFlatView, setListFlatView] = useState();\n const [listOpenInModal, setListOpenInModal] = useState();\n const [listAllowLikes, setListAllowLikes] = useState();\n const [listTitleLineClamp, setListTitleLineClamp] = useState();\n const [listAbstractLineClamp, setListAbstractLineClamp] = useState();\n const [listAutoTag, setListAutoTag] = useState();\n const [listAddCreatorAsRole, setListAddCreatorAsRole] = useState();\n const [width, setWidth] = useState(false);\n const [tags, setTags] = useState([]);\n const [opened, setOpened] = useState([]);\n const [canAutoTag, setCanAutoTag] = useState([]);\n\n const [listChildrenCapabilities, setListChildrenCapabilities] = useState([\n \"limited\",\n ]);\n\n const creationTypes = [\n {\n label: t(\"spaces.presentations.settings.versions.posts\"),\n value: \"posts\",\n description: t(\n \"spaces.presentations.settings.versionsDescriptions.posts\"\n ),\n },\n {\n label: t(\"spaces.presentations.settings.versions.content\"),\n value: \"content\",\n description: t(\n \"spaces.presentations.settings.versionsDescriptions.content\"\n ),\n },\n {\n label: t(\"spaces.presentations.settings.versions.discussions\"),\n value: \"discussions\",\n description: t(\n \"spaces.presentations.settings.versionsDescriptions.discussion\"\n ),\n },\n {\n label: t(\"spaces.presentations.settings.versions.link\"),\n value: \"link\",\n description: t(\"spaces.presentations.settings.versionsDescriptions.link\"),\n },\n ];\n\n if (props.parentVersion == \"list\" || props.parentVersion == \"showcase\") {\n creationTypes.push({\n label: t(\"spaces.presentations.settings.versions.template\"),\n value: \"template\",\n description: t(\n \"spaces.presentations.settings.versionsDescriptions.template\"\n ),\n });\n }\n\n const loading = useRef(false);\n const spaceId = useRef();\n const saving = useRef();\n const visualTypeChanged = useRef();\n const tagsTimeout = useRef();\n const [savingLoader, setSavingLoader] = useState(false);\n\n useEffect(() => {\n loading.current = false;\n onFetchTemplates();\n }, []);\n\n // useEffect(() => {\n // if (props.spaceId && props.spaceId != spaceId.current) {\n // spaceId.current = props.spaceId;\n // onFetch();\n // }\n // }, [props]);\n\n useEffect(() => {\n loading.current = false;\n spaceId.current = space.slug;\n onFetchTags();\n onFetch();\n\n setCanAutoTag(space && space.permissions && space.permissions.can_auto_tag);\n }, [space]);\n\n useEffect(() => {\n if (loading.current) {\n setWidth(visualType == \"grid\");\n setListFlatView(visualType == \"list\");\n }\n }, [visualType]);\n\n useEffect(() => {\n if (loading.current) {\n visualTypeChanged.current = true;\n }\n }, [width]);\n\n useEffect(() => {\n if (loading.current) {\n if (listChildVersion != \"posts\") {\n setListAllowLikes(false);\n setListOpenInModal(false);\n }\n if (listChildVersion == \"posts\") {\n setListAllowLikes(true);\n setListOpenInModal(true);\n }\n }\n }, [listChildVersion]);\n\n useEffect(() => {\n if (loading.current) {\n if (listAutoTag && !canAutoTag[0]) {\n setOpened([true, canAutoTag[1], canAutoTag[2]]);\n setListAutoTag(false);\n return;\n }\n\n setSavingLoader(true);\n if (\n listChildVersion == \"posts\" &&\n (props.parentVersion == \"list\" || props.parentVersion == \"showcase\")\n ) {\n setListTemplateId(\"create\");\n setListLinkAction(\"subspace\");\n // setListPrivacyControl(\"open\");\n setListChildrenCapabilities(\"limited\");\n }\n if (props.parentVersion == \"events\") {\n setListTemplateId(\"create\");\n setListLinkAction(\"subspace\");\n // setListPrivacyControl(\"open\");\n setListChildrenCapabilities(\"full\");\n }\n\n if (saving.current) {\n clearTimeout(saving.current);\n }\n saving.current = setTimeout(() => {\n onSave();\n }, 1000);\n }\n }, [\n visualType,\n authors,\n listChildVersion,\n listActionText,\n listTemplateId,\n listLinkAction,\n listShowPreviewText,\n listShowThumbnail,\n listShowComments,\n listShowMembers,\n listShowTimestamp,\n listAutoThumbnail,\n listPrivacyControl,\n resourceEditing,\n listFilterBy,\n listFlatView,\n width,\n listOpenInModal,\n listAllowLikes,\n listTitleLineClamp,\n listAbstractLineClamp,\n listAutoTag,\n listAddCreatorAsRole,\n ]);\n\n const onFetchTags = () => {\n if (space.tags) {\n setTags([...space.tags]);\n }\n };\n\n const onFetch = () => {\n if (!space.slug) {\n return;\n }\n\n if (!loading.current) {\n setVisualType(space.present_as);\n setWidth(space.space_width == \"wide\");\n setResourceEditing(space.resource_editing == \"closed\");\n\n setAuthors(space.settings.list_show_author);\n setListShowPreviewText(space.settings.list_show_preview_text);\n setListShowThumbnail(space.settings.list_show_thumbnail);\n setListShowComments(space.settings.list_show_comments_count);\n setListShowMembers(space.settings.list_show_members);\n setListShowTimestamp(space.settings.list_show_timestamp);\n setListAutoThumbnail(space.settings.list_auto_thumbnail);\n setListPrivacyControl(space.settings.list_privacy_control);\n setListAddCreatorAsRole(\n space.settings.list_add_creator_as_role\n ? space.settings.list_add_creator_as_role\n : \"editor\"\n );\n setListTitleLineClamp(\n space.settings.list_title_line_clamp < 20 ? true : false\n );\n setListAbstractLineClamp(\n space.settings.list_abstract_line_clamp < 20 ? true : false\n );\n setListAutoTag(space.settings.list_auto_tag);\n setListFilterBy(\n space.settings.list_filter_by\n ? space.settings.list_filter_by\n : \"pods.created_at DESC\"\n );\n setListFlatView(space.settings.list_flat_view);\n setListOpenInModal(space.settings.list_open_in_modal);\n setListAllowLikes(space.settings.list_allow_likes);\n\n setListChildVersion(\n space.settings.list_child_version\n ? space.settings.list_child_version\n : \"posts\"\n );\n setListActionText(\n space.settings.list_action_text\n ? space.settings.list_action_text\n : props.parentVersion == \"list\"\n ? \"Create post\"\n : props.parentVersion == \"showcase\"\n ? \"Create space\"\n : \"Add event\"\n );\n setListTemplateId(\n space.settings.list_template_id\n ? space.settings.list_template_id\n : \"create\"\n );\n setListLinkAction(\n space.settings.list_link_action\n ? space.settings.list_link_action\n : \"subspace\"\n );\n setListChildrenCapabilities(\n space.settings.list_children_capabilities\n ? space.settings.list_children_capabilities\n : \"limited\"\n );\n\n setTimeout(() => {\n loading.current = true;\n }, 1000);\n }\n };\n\n const onSave = () => {\n const auxSettings = {\n space_width: width ? \"wide\" : \"narrow\",\n list_action_text: listActionText,\n list_template_id: listTemplateId != \"create\" ? listTemplateId : null,\n list_child_version: listChildVersion,\n list_link_action: listLinkAction,\n list_show_author: authors,\n list_show_preview_text: listShowPreviewText,\n list_show_thumbnail: listShowThumbnail,\n list_show_comments_count: listShowComments,\n list_show_members: listShowMembers,\n list_show_timestamp: listShowTimestamp,\n list_auto_thumbnail: listAutoThumbnail,\n list_privacy_control: listPrivacyControl,\n list_add_creator_as_role: listChildVersion == \"posts\" || (listChildVersion == \"content\" && listAddCreatorAsRole === \"member\") ? \"editor\" : listAddCreatorAsRole,\n list_filter_by: listFilterBy,\n list_flat_view: listFlatView,\n list_open_in_modal: listOpenInModal,\n list_allow_likes: listAllowLikes,\n list_auto_tag: listAutoTag,\n list_title_line_clamp: listTitleLineClamp ? 2 : 20,\n list_abstract_line_clamp: listAbstractLineClamp ? 2 : 20,\n list_children_capabilities:\n listTemplateId != \"create\" || listChildVersion == \"content\"\n ? [\"full\"]\n : [\"limited\"],\n };\n\n SpaceSettingModel.onUpdate(\n space.slug,\n {\n present_as: `${visualType}`,\n resource_editing: `${resourceEditing ? \"closed\" : \"open\"}`,\n pod_settings_attributes: { ...auxSettings },\n },\n (data) => {\n onFetchTags();\n setSavingLoader(false);\n if (visualTypeChanged.current) {\n visualTypeChanged.current = false;\n dispatch(setWideWidth({ on: width }));\n const auxSpace = { ...space };\n auxSpace.space_width = width ? \"wide\" : \"narrow\";\n auxSpace.present_as = `${visualType}`;\n auxSpace.resource_editing = `${resourceEditing ? \"closed\" : \"open\"}`;\n\n auxSpace.settings = {\n ...auxSpace.settings,\n ...auxSettings,\n };\n\n window.$spaceWideWidth = width;\n dispatch(setSpace(auxSpace));\n }\n },\n (data) => {}\n );\n\n props.onSave({\n visualType,\n authors,\n listChildVersion,\n listActionText,\n listTemplateId,\n listLinkAction,\n listShowPreviewText,\n listShowThumbnail,\n listShowComments,\n listShowMembers,\n listShowTimestamp,\n listAutoThumbnail,\n listPrivacyControl,\n resourceEditing,\n listFilterBy,\n listFlatView,\n listOpenInModal,\n listAllowLikes,\n width,\n listTitleLineClamp,\n listAbstractLineClamp,\n listAutoTag,\n listAddCreatorAsRole,\n });\n };\n\n const onCreateNewTemplate = () => {\n SpaceModel.onCreate(\n {\n version: \"content\",\n intention: newTemplateName,\n join_on_create: true,\n privacy_level: \"private\",\n pod_state: \"model\",\n },\n null,\n (data) => {\n const auxTemplates = [...templates];\n auxTemplates.unshift({ label: data.name, value: data.slug });\n setTemplates(auxTemplates);\n setListTemplateId(data.slug);\n onEditTemplate(data.slug);\n },\n (data) => {}\n );\n };\n\n const onEditTemplate = (slug) => {\n window.open(`/space/${slug}/content`, \"_blank\");\n // navigate(`/space/${slug}/content`)\n };\n\n const onFetchTemplates = () => {\n SpaceModel.onFetchModels(\n (data) => {\n const array = [];\n array.push({\n label: t(\"spaces.presentations.settings.createNewTemplate\"),\n value: \"create\",\n });\n for (let i = 0; i < data.length; i++) {\n const element = data[i];\n array.push({ label: element.name, value: element.slug });\n }\n setTemplates(array);\n },\n (data) => {}\n );\n };\n\n const SelectItem = ({ image, label, description, ...others }) => (\n
\n \n
\n {label}\n \n {description}\n \n
\n
\n
\n );\n\n const onTag = (res) => {\n props.onFetchTags();\n };\n\n return (\n <>\n props.setOpened(false)}\n title={\n \n {t(\"spaces.presentations.settings.title\")}\n {savingLoader && }\n \n }\n styles={{\n header: {\n paddingTop: 20,\n paddingLeft: 20,\n paddingRight: 20,\n },\n }}\n size={\"400px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n \n \n \n \n\n {(props.parentVersion == \"list\" ||\n props.parentVersion == \"showcase\"\n ) && (\n \n )}\n \n {(props.parentVersion == \"list\" ||\n props.parentVersion == \"events\" ||\n props.parentVersion == \"showcase\") && (\n \n \n \n setResourceEditing(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.onlyManagers\"\n )}\n />\n \n {(props.parentVersion != \"events\" ||\n visualType == \"grid\") && (\n <>\n \n \n setAuthors(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showAuthor\"\n )}\n />\n \n \n \n setListShowPreviewText(\n event.currentTarget.checked\n )\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showPreview\"\n )}\n />\n \n \n \n setListShowComments(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showComments\"\n )}\n />\n \n \n \n setListShowMembers(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showMembers\"\n )}\n />\n \n \n \n setListShowTimestamp(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showTimestamp\"\n )}\n />\n \n \n \n setListAllowLikes(event.currentTarget.checked)\n }\n label=\"Show heart button\"\n />\n \n \n \n setListShowThumbnail(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.showThumbnail\"\n )}\n />\n \n \n )}\n {listShowThumbnail && (\n \n \n setListAutoThumbnail(event.currentTarget.checked)\n }\n label={t(\n \"spaces.presentations.settings.accordion2.switches.autoThumbnail\"\n )}\n />\n \n )}\n\n \n \n setListFlatView(!event.currentTarget.checked)\n }\n label={`Display as cards`}\n />\n \n\n \n \n setWidth(event.currentTarget.checked)\n }\n label=\"Wide page width\"\n />\n \n\n \n \n setListOpenInModal(event.currentTarget.checked)\n }\n label=\"Open posts in side panel\"\n />\n \n\n \n \n setListTitleLineClamp(event.currentTarget.checked)\n }\n label=\"Limit title length\"\n />\n \n \n \n setListAbstractLineClamp(event.currentTarget.checked)\n }\n label=\"Limit preview length\"\n />\n \n \n \n setListAutoTag(event.currentTarget.checked)\n }\n label=\"Allow auto tagging\"\n />\n \n \n )}\n\n \n \n {listChildVersion == \"template\" && (\n <>\n {templates.length > 0 && (\n \n )}\n {!listTemplateId || listTemplateId == \"create\" ? (\n <>\n \n setNewTemplateName(event.currentTarget.value)\n }\n placeholder={t(\n \"spaces.presentations.settings.accordion3.templateName.placeholder\"\n )}\n description={t(\n \"spaces.presentations.settings.accordion3.templateName.label\"\n )}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n onCreateNewTemplate()}\n disabled={!newTemplateName}\n >\n {t(\n \"spaces.presentations.settings.createNewTemplate\"\n )}\n \n \n ) : (\n \n )}\n \n \n )}\n \n {listChildVersion != \"posts\" && (\n \n )}\n \n\n \n \n setListActionText(event.currentTarget.value)\n }\n placeholder={t(\n \"spaces.presentations.settings.accordion4.createPost.label\"\n )}\n description={t(\n \"spaces.presentations.settings.accordion4.createPost.description\"\n )}\n styles={{\n label: {\n fontWeight: 400,\n color: \"#000\",\n },\n }}\n />\n \n\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Settings;\n","import React, { useState } from \"react\";\n\nimport {\n Drawer,\n Stack,\n Center,\n Text,\n Progress,\n ScrollArea,\n Box,\n} from \"@mantine/core\";\n\nimport Uploader from \"../../../tiptap/components/Uploader\";\nimport SpaceModel from \"../../../../models/Space\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst Thumbnail = (props) => {\n const { t, i18n } = useTranslation();\n const [mediaType, setMediaType] = useState(\"image\");\n const [loading, setLoading] = useState(0);\n\n const onSave = (file) => {\n setLoading(0);\n SpaceModel.onUploadThumbnail(\n props.spaceId,\n file,\n (data) => {\n setTimeout(() => {\n props.onSave(props.spaceId, data.url);\n props.setOpened(false);\n setLoading(0);\n }, 1000);\n },\n (progress) => {\n setLoading(progress);\n },\n (data) => {\n setLoading(0);\n }\n );\n };\n\n return (\n props.setOpened(false)}\n title={{t(\"spaces.presentations.thumbnail.title\")}}\n padding=\"xl\"\n size={\"400px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n {!loading ? (\n \n ) : (\n \n
\n \n
\n
\n \n {t(\"spaces.presentations.thumbnail.message\")}\n \n
\n
\n )}\n
\n
\n \n );\n};\n\nexport default Thumbnail;\n","import React, { useState, useRef, useEffect } from \"react\";\n\nimport { useDispatch } from \"react-redux\";\n\nimport {\n Drawer,\n Stack,\n Textarea,\n Text,\n TextInput,\n ScrollArea,\n Box,\n Button\n} from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport { setListSpaceToUpdate } from \"../../../../store/app\";\n\nimport { useTranslation } from \"react-i18next\";\n\nconst Edit = (props) => {\n const { t, i18n } = useTranslation();\n const [mediaType, setMediaType] = useState(\"image\");\n const [loading, setLoading] = useState(false);\n const [spaceName, setSpaceName] = useState(\"\");\n const [spaceAbstract, setSpaceAbstract] = useState(\"\");\n const dispatch = useDispatch();\n\n const fetchTimeoutId = useRef();\n const timeoutId = useRef(null);\n\n useEffect(() => {\n if (props.spaceId) {\n setLoading(true);\n if (fetchTimeoutId.current) {\n clearTimeout(fetchTimeoutId.current);\n }\n fetchTimeoutId.current = setTimeout(() => {\n onFetch();\n }, 500);\n }\n }, [props]);\n\n const onFetch = (file) => {\n setLoading(true);\n SpaceModel.onFetch(\n props.spaceId,\n [\"tree\", \"members\"],\n (data) => {\n setSpaceName(data.space.name);\n setSpaceAbstract(data.abstract);\n setLoading(false);\n },\n (data) => {}\n );\n };\n\n const onUpdateName = (value) => {\n SpaceModel.onUpdate(\n props.spaceId,\n { intention: value },\n (data) => {\n onSave();\n },\n (data) => {}\n );\n };\n\n const onUpdateAbstract = (value) => {\n SpaceModel.onUpdate(\n props.spaceId,\n { abstract_text: value },\n (data) => {\n onSave();\n },\n (data) => {}\n );\n };\n\n const onSave = () => {\n SpaceModel.onUpdate(\n props.spaceId,\n { intention: spaceName, abstract_text: spaceAbstract },\n (data) => {\n \n dispatch(setListSpaceToUpdate({ slug: props.spaceId }));\n },\n (data) => {}\n );\n };\n\n return (\n props.setOpened(false)}\n title={{\"EDIT DETAILS\"}}\n padding=\"xl\"\n size={\"400px\"}\n overlayOpacity={0.1}\n zIndex={99999}\n >\n \n \n setSpaceName(event.currentTarget.value)}\n />\n\n setSpaceAbstract(event.currentTarget.value)}\n />\n \n \n \n \n );\n};\n\nexport default Edit;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport pako from \"pako\";\n\nimport { setActions } from \"../../../../store/app\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport {\n Stack,\n Box,\n ScrollArea,\n createStyles,\n Container,\n Button,\n Text,\n Group,\n MantineProvider,\n Tooltip,\n ActionIcon,\n SimpleGrid,\n Center,\n Loader,\n Drawer,\n} from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport ViewModel from \"../../../../models/View\";\nimport SpaceNeoModel from \"../../../../models/neo4j/Space\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\nimport SpaceListItem from \"../List\";\n\nimport NewSpace from \"./NewSpace\";\nimport Settings from \"./Settings\";\nimport Thumbnail from \"./Thumbnail\";\nimport Edit from \"./Edit\";\nimport DuplicateForm from \"../../form/DuplicateForm\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport tinycolor from \"tinycolor2\";\nimport TiptapChannel from \"../../../tiptap/components/TiptapChannel\";\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport TagsChips from \"../discussion/TagsChips\";\n\nconst paginator = {\n per: 50,\n page: 0\n};\n\nconst scrollTimeoutIds = [];\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n filterButtonActive: {\n border: `2px solid ${colors.primary_button_background_color}`,\n color: colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString(),\n },\n },\n filterButtonPassive: {\n border: `1px solid ${tinycolor(colors.default_text_color).toString()}`,\n color: tinycolor(colors.default_text_color).toString(),\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString(),\n },\n },\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n },\n settingsButtonStyle: {\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nexport default function Events() {\n const params = useParams();\n const { t } = useTranslation();\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n const [filter, setFilter] = useState([\"upcoming\", \"ASC\"]);\n const [filteredSpaces, setFilterSpaces] = useState([]);\n const [settingsOpened, setSettingsOpened] = useState(false);\n const [thumbnailOpened, setThumbnailOpened] = useState(false);\n const [editOpened, setEditOpened] = useState(false);\n const [openedDuplicate, setOpenedDuplicate] = useState(false);\n\n const [settings, setSettings] = useState({});\n const [content, setContent] = useState({});\n\n const [loadingMore, setLoadingMore] = useState(false);\n\n const [tags, setTags] = useState(null);\n const [tagsList, setTagsList] = useState([]);\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const mainActions = useSelector((state) => state.mainActions);\n const { classes } = useStyles({ colors });\n\n const viewport = useRef();\n const selectedSpace = useRef(null);\n const spacesArray = useRef([]);\n const reload = useRef(false);\n const contentEmpty = useRef(true);\n const noMore = useRef(false);\n const lastSlug = useRef();\n const tagFiltering = useRef();\n const tagTimeout = useRef();\n const tagsTimeout = useRef();\n const ctrlTags = useRef();\n\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(setActions({ editPage: false }));\n paginator.page = 0;\n fetchChildren();\n onFetchTags();\n onFetchView();\n }, [])\n\n useEffect(() => {\n if (space && space.slug) {\n setSettings({\n openPost: space.resource_editing == \"open\",\n visualType: space.present_as,\n authors: space.settings.list_show_author,\n listChildVersion: space.settings.list_child_version,\n listActionText: space.settings.list_action_text,\n listTemplateId: space.settings.list_template_id,\n listLinkAction: space.settings.list_link_action,\n listShowPreviewText: space.settings.list_show_preview_text,\n listShowThumbnail: space.settings.list_show_thumbnail,\n listShowComments: space.settings.list_show_comments_count,\n listShowMembers: space.settings.list_show_members,\n listShowTimestamp: space.settings.list_show_timestamp,\n listAutoThumbnail: space.settings.list_auto_thumbnail,\n listPrivacyControl: space.settings.list_privacy_control,\n listFilterBy: space.settings.list_filter_by,\n listFlatView: space.settings.list_flat_view,\n spaceWidth: space.settings.space_width,\n listAllowLikes: space.settings.list_allow_likes,\n openInModal: space.settings.list_open_in_modal,\n listTitleLineClamp: space.settings.list_title_line_clamp,\n listAbstractLineClamp: space.settings.list_abstract_line_clamp,\n });\n }\n }, [space]);\n\n useEffect(() => {\n let auxSpaces = [...spaces];\n\n const today = new Date().getTime();\n\n const noDateAuxSpaces = auxSpaces.filter((a) => {\n return !a.calendar.has_end_date && !a.calendar.has_start_date;\n });\n\n auxSpaces = auxSpaces\n .filter((a) => {\n if (!a.calendar?.has_start_date) {\n return false;\n }\n const dateToUse = a.calendar.raw_end_date ? a.calendar.raw_end_date : a.calendar.raw_start_date;\n const itemDayA = new Date(dateToUse).getTime();\n if (filter[1] == \"ASC\") {\n return itemDayA >= today;\n } else {\n return today > itemDayA;\n }\n })\n .sort((a, b) => {\n const itemDayA = new Date(a.calendar.raw_start_date).getTime();\n const itemDayB = new Date(b.calendar.raw_start_date).getTime();\n if (filter[1] == \"ASC\") {\n return itemDayA - itemDayB;\n } else {\n return itemDayB - itemDayA;\n }\n });\n\n const months = [];\n\n if (noDateAuxSpaces.length && filter[0] != \"past\") {\n months.push({\n name: \"Unscheduled\",\n spaces: [...noDateAuxSpaces],\n });\n }\n\n if (auxSpaces.length > 0) {\n const firstSpace = auxSpaces[0];\n const lastSpace = auxSpaces[auxSpaces.length - 1];\n\n const currentDate = new Date(firstSpace.calendar.raw_event_date);\n\n const currentYear = new Date().getFullYear();\n\n if (filter[0] == \"past\") {\n const pastDate = new Date(\n lastSpace.calendar.raw_event_date.replace(\n \"T12:00:00.000Z\",\n \"T10:00:00.000Z\"\n )\n );\n for (let d = currentDate; d >= pastDate; d.setMonth(d.getMonth() - 1)) {\n const year = d.getFullYear();\n const month = d.getMonth();\n const monthName = new Date(0, month).toLocaleString(\"default\", { month: \"long\" });\n\n const data = {\n name: currentYear != year ? `${monthName} / ${year}` : monthName,\n spaces: [],\n };\n\n data.spaces = auxSpaces.filter((space) => {\n const itemYear = new Date(space.calendar.raw_event_date).getFullYear();\n const itemMonth = new Date(space.calendar.raw_event_date).getMonth();\n return itemYear === year && itemMonth === month;\n });\n data.spaces = data.spaces.sort((a, b) => {\n const itemDayA = new Date(a.calendar.raw_start_date).getDate();\n const itemDayB = new Date(b.calendar.raw_start_date).getDate();\n return itemDayB - itemDayA;\n });\n\n months.push(data);\n }\n } else {\n const pastDate = new Date(\n lastSpace.calendar.raw_event_date.replace(\n \"T12:00:00.000Z\",\n \"T14:00:00.000Z\"\n )\n );\n for (let d = currentDate; d <= pastDate; d.setMonth(d.getMonth() + 1)) {\n const year = d.getFullYear();\n const month = d.getMonth();\n const monthName = new Date(0, month).toLocaleString(\"default\", { month: \"long\" });\n\n const data = {\n name: currentYear != year ? `${monthName} / ${year}` : monthName,\n spaces: [],\n };\n\n console.log(\"AUX SPACES:::\", auxSpaces);\n\n data.spaces = auxSpaces.filter((space) => {\n const itemYear = new Date(space.calendar.raw_event_date).getFullYear();\n const itemMonth = new Date(space.calendar.raw_event_date).getMonth();\n return itemYear === year && itemMonth === month;\n });\n data.spaces = data.spaces.sort((a, b) => {\n const itemDayA = new Date(a.calendar.raw_start_date).getDate();\n const itemDayB = new Date(b.calendar.raw_start_date).getDate();\n return itemDayA - itemDayB;\n });\n\n months.push(data);\n }\n }\n\n setFilterSpaces(months);\n } else {\n setFilterSpaces([]);\n }\n }, [filter, spaces]);\n\n const decompressGzip = (compressedData) => {\n try {\n if (!compressedData) return [];\n const bytes = Uint8Array.from(atob(compressedData), c => c.charCodeAt(0));\n const decompressed = pako.ungzip(bytes, { to: \"string\" });\n return JSON.parse(decompressed);\n } catch (err) {\n console.error(\"Decompression error:\", err);\n return [];\n }\n };\n\n const fetchChildren = (filters = {}) => {\n\n filters.topSlug = window.$fetchedTopSlug;\n filters.role = window.$currentRole;\n filters.page = paginator.page;\n filters.per = paginator.per;\n filters.filterBy = filters.filterBy || filter[0]\n filters.tags = filters.tags || tags\n\n if (Array.isArray(filters.tags)) {\n const _tags = filters.tags.map((tag) => tagsList.find((t) => t.name === tag).id);\n filters.tags = _tags;\n }\n\n SpaceNeoModel.onFetchEvents(\n params.slug,\n filters,\n (data) => {\n const _children = [...decompressGzip(data.data.children)];\n\n if (_children.length > 0) {\n setSpaces(prevState => {\n const uniqueSpaces = Array.from(new Set([...prevState, ..._children]));\n return uniqueSpaces;\n });\n paginator.page = parseInt(data.page) + 1;\n }\n },\n (data) => {}\n );\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 200) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n fetchChildren();\n }\n };\n\n const onThumbnailSave = (spaceId, url) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count ? auxSpaces[i].update_count + 1 : 1;\n auxSpaces[i].gallery_feature = { url: url };\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onRemoveThumbnail = (spaceId) => {\n SpaceModel.onRemoveThumbnail(\n spaceId,\n (data) => {\n setTimeout(() => {\n onThumbnailSave(spaceId, null);\n }, 1000);\n },\n (data) => { }\n );\n };\n\n const onSettingsSave = (_settings) => {\n reload.current = settings.listFilterBy != _settings.listFilterBy;\n onFetchView();\n if (settings.spaceWidth != _settings.spaceWidth) {\n }\n setSettings(_settings);\n };\n\n const onSetSettingsOpened = (event, value) => {\n event.preventDefault();\n event.stopPropagation();\n setSettingsOpened(value);\n };\n\n const onListActionTextChanged = (text) => {\n setListActionText(text);\n };\n\n const onListTemplateIdChanged = (id) => {\n setListTemplateId(id);\n };\n\n const onSave = (spaceId, spaceLink, spaceName = null) => {\n setNewSpaceOpened(false);\n };\n\n const onUpdate = (spaceId, action) => {\n const auxSpaces = [...spacesArray.current];\n\n if (action == \"pin\" || action == \"unpin\") {\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.slug == spaceId) {\n if (action == \"pin\") {\n space.is_pinned.is_pinned = true;\n space.is_pinned.date = new Date();\n } else {\n space.is_pinned.is_pinned = false;\n }\n space.update_count = space.update_count ? space.update_count + 1 : 1;\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"delete\") {\n const auxSpaces = [...spaces];\n // console.log(`AUX SPACES: ${auxSpaces.length}`);\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.slug == spaceId) {\n console.log(`AUX SPACES: ${i}`);\n auxSpaces.splice(i, 1);\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"thumbnail-upload\") {\n selectedSpace.current = spaceId;\n setThumbnailOpened(true);\n } else if (action == \"thumbnail-delete\") {\n selectedSpace.current = spaceId;\n onRemoveThumbnail(spaceId);\n } else if (action == \"edit\") {\n selectedSpace.current = spaceId;\n setEditOpened(spaceId);\n }\n };\n\n const onJoin = () => {\n if (!window.$currentUserAuthToken) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n return;\n }\n SpaceModel.onJoin(\n params.slug,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => { }\n );\n };\n\n const onFetchTags = () => {\n if (space.tags) {\n setTagsList([...space.tags.filter(Boolean)]);\n }\n };\n\n const onFetchView = () => {\n ViewModel.onFetch(\n \"description_view\",\n params.slug,\n (data) => {\n contentEmpty.current = data.is_empty;\n window.$spaceWideWidth = data.view_width;\n setContent({ ...data.content });\n },\n (data) => {\n setContent({});\n }\n );\n };\n\n const onContentUpdate = (_content, html, callback, isEmpty) => {\n ViewModel.onUpdate(\n \"description_view\",\n params.slug,\n _content,\n (data) => {\n contentEmpty.current = data.is_empty;\n setContent({ ..._content });\n },\n (data) => { }\n );\n };\n\n const capitalize = (str) => {\n return str.replace(/^(.)(.*)$/, function (_, firstChar, restOfString) {\n return firstChar.toUpperCase() + restOfString;\n });\n };\n\n const onEditSave = (spaceId, name, abstract) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count ? auxSpaces[i].update_count + 1 : 1;\n auxSpaces[i].name = name;\n auxSpaces[i].abstract = abstract;\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onChangeFilter = (newFilter) => {\n setSpaces([]);\n paginator.page = 0;\n setFilter(newFilter);\n fetchChildren({ filterBy: newFilter[0] });\n }\n\n const onChangeTags = (newTags) => {\n setSpaces([]);\n paginator.page = 0;\n setTags(newTags);\n \n fetchChildren({ tags: newTags });\n }\n\n const onOpenedDuplicate = (spaceId, spaceName) => {\n selectedSpace.current = { slug: spaceId, name: spaceName };\n setOpenedDuplicate(true);\n };\n\n const onDuplicate = (id, link) => {\n setOpenedDuplicate(false);\n };\n\n if (loading) {\n return ;\n }\n\n return (\n \n \n \n \n\n {mainActions.editPage && (\n \n \n \n \n \n )}\n {!mainActions.editPage && content && !contentEmpty.current && (\n \n \n \n \n \n )}\n\n \n \n \n \n onChangeFilter([\"upcoming\", \"ASC\"])}\n >\n {t(\"spaces.presentations.events.upcomingButton\")}\n \n onChangeFilter([\"past\", \"DESC\"])}\n >\n {t(\"spaces.presentations.events.pastButton\")}\n \n \n \n {(settings.openPost ||\n (space.slug && space.permissions.can_manage)) && (\n \n {space.slug && (space.permissions.can_edit || space.permissions.can_moderate) ? (\n \n }\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n onClick={() => setNewSpaceOpened(true)}\n >\n {settings.listActionText ||\n t(\"spaces.presentations.events.addEvent\")}\n \n ) : (\n \n }\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n onClick={() => onJoin()}\n >\n {settings.listActionText ||\n t(\"spaces.presentations.events.addEvent\")}\n \n )}\n {space && space.permissions && space.permissions.can_manage && (\n \n onSetSettingsOpened(event, true)}\n >\n \n \n \n )}\n \n )}\n \n \n\n \n {tagsList && tagsList.length > 0 && (\n \n )}\n \n\n \n {filteredSpaces.map((month) => {\n return (\n <>\n {month.spaces.length > 0 && (\n \n \n {capitalize(month.name)}\n \n {settings.visualType == \"list\" &&\n month.spaces.map((child) => {\n return (\n ({ margin: \"15px 0px\" })}>\n \n \n );\n })}\n {settings.visualType == \"grid\" && (\n \n {month.spaces.map((child) => {\n return (\n ({ margin: \"0px 0px\" })}>\n \n \n );\n })}\n \n )}\n \n )}\n \n );\n })}\n \n {loadingMore && (\n
\n \n
\n )}\n \n\n setOpenedDuplicate(false)}\n title={\n \n {t(\"spaces.presentations.showcase.duplicateFormTitle\")}\n \n }\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n\n {space && space.permissions && space.permissions.can_manage && (\n \n )}\n \n \n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setActions } from \"../../../../store/app\";\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\nimport pako from \"pako\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport {\n Stack,\n Box,\n ScrollArea,\n createStyles,\n Container,\n SimpleGrid,\n Drawer,\n Paper,\n Avatar,\n Group,\n Text,\n ActionIcon,\n Tooltip,\n Loader,\n Center,\n Chips,\n Chip,\n} from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport SpaceNeoModel from \"../../../../models/neo4j/Space\";\n\nimport ViewModel from \"../../../../models/View\";\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\nimport SpaceListItem from \"../List\";\n\nimport NewSpace from \"./NewSpace\";\nimport Settings from \"./Settings\";\nimport Thumbnail from \"./Thumbnail\";\nimport Edit from \"./Edit\";\nimport DuplicateForm from \"../../form/DuplicateForm\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport TiptapChannel from \"../../../tiptap/components/TiptapChannel\";\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nimport Broadcaster from \"../../../../helpers/Broadcaster\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport TagsChips from \"../discussion/TagsChips\";\n\nconst paginator = {\n per: 20,\n page: 1\n};\n\nconst scrollTimeoutIds = [];\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n // backgroundColor: colors.sidebar_background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n chipStyle: {\n color: colors.default_text_color,\n backgroundColor: colors.background_color,\n height: \"auto\",\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(40).toString()\n : tinycolor(colors.background_color).darken(40).toString()\n }`\n : `1px solid #ced4da`,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? `${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(5).toString()\n : tinycolor(colors.background_color).darken(5).toString()\n }`\n : `#e9ecef`,\n },\n },\n },\n separator: {\n borderBottom: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n },\n}));\n\nexport default function List(props) {\n const params = useParams();\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const children = useSelector((state) => state.children);\n const mainActions = useSelector((state) => state.mainActions);\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n const [settingsOpened, setSettingsOpened] = useState(false);\n const [thumbnailOpened, setThumbnailOpened] = useState(false);\n const [editOpened, setEditOpened] = useState(false);\n const [openedDuplicate, setOpenedDuplicate] = useState(false);\n\n const [settings, setSettings] = useState({});\n const [content, setContent] = useState({});\n const [loadingMore, setLoadingMore] = useState(false);\n const [tags, setTags] = useState(null);\n const [tagsList, setTagsList] = useState([]);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const viewport = useRef();\n const selectedSpace = useRef(null);\n const spacesArray = useRef([]);\n const reload = useRef(false);\n const contentEmpty = useRef(true);\n const noMore = useRef(false);\n const lastSlug = useRef();\n const tagFiltering = useRef();\n const tagTimeout = useRef();\n const tagsTimeout = useRef();\n const ctrlTags = useRef();\n\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(setActions({ editPage: false }));\n setLoading(true);\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n return () => {\n paginator.page = 1;\n setSpaces([]);\n spacesArray.current = [];\n setContent({});\n };\n }, []);\n\n useEffect(() => {\n if (params.slug) {\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n paginator.page = 2;\n const ctrl = new AbortController();\n // fetchSpacesIDB();\n onFetchView();\n }\n }\n }, [params]);\n\n useEffect(() => {\n onFetchTags();\n }, [space]);\n\n // useEffect(() => {\n // if (children.slug != params.slug) {\n // setSpaces([]);\n // spacesArray.current = [];\n // return;\n // }\n // if (children.children) {\n // let newSpaces = []\n // if (spacesArray.current.length > 0){\n // for (let i = 0; i < children.children.length; i++) {\n // const child = children.children[i];\n // if (!child.update_count){\n // child.update_count = 0\n // }\n // child.update_count += 1\n // newSpaces.push(child)\n // }\n // }\n // else{\n // newSpaces = [...children.children]\n // }\n // setSpaces(newSpaces);\n // spacesArray.current = [...newSpaces];\n // setLoading(false);\n // }\n // }, [children]);\n\n useEffect(() => {\n if (space && space.slug) {\n setSettings({\n openPost: space.resource_editing == \"open\",\n visualType: space.present_as,\n authors: space.settings.list_show_author,\n listChildVersion: space.settings.list_child_version,\n listActionText: space.settings.list_action_text,\n listTemplateId: space.settings.list_template_id,\n listLinkAction: space.settings.list_link_action,\n listShowPreviewText: space.settings.list_show_preview_text,\n listShowThumbnail: space.settings.list_show_thumbnail,\n listShowComments: space.settings.list_show_comments_count,\n listShowMembers: space.settings.list_show_members,\n listShowTimestamp: space.settings.list_show_timestamp,\n listAutoThumbnail: space.settings.list_auto_thumbnail,\n listPrivacyControl: space.settings.list_privacy_control,\n listFilterBy: space.settings.list_filter_by,\n listFlatView: space.settings.list_flat_view,\n listAllowLikes: space.settings.list_allow_likes,\n spaceWidth: space.settings.space_width,\n openInModal: space.settings.list_open_in_modal,\n listTitleLineClamp: space.settings.list_title_line_clamp,\n listAbstractLineClamp: space.settings.list_abstract_line_clamp,\n });\n }\n }, [space]);\n\n useEffect(() => {\n onFinishedLoading();\n }, [spaces]);\n\n // useEffect(() => {\n // if (reload.current == true) {\n // paginator.page = 1;\n // const ctrl = new AbortController();\n // fetchSpaces(ctrl);\n // }\n // }, [settings]);\n\n useEffect(() => {\n if (!tags || !tagsList.length) {\n return;\n }\n let tagsFilter = {};\n\n if (tags.length) {\n const _tags = tags.filter(tag => tagsList.some(t => t.name === tag))\n .map(tag => tagsList.find(t => t.name === tag)?.id);\n tagsFilter = { tags: _tags };\n }\n\n if (tagTimeout.current) {\n clearTimeout(tagTimeout.current);\n }\n\n tagTimeout.current = setTimeout(() => {\n tagFiltering.current = true;\n paginator.page = 1;\n noMore.current = false;\n const ctrl = new AbortController();\n fetchSpaces(ctrl, false, [], tagsFilter);\n }, 800);\n }, [tags, tagsList]);\n\n const decompressGzip = (compressedData) => {\n try {\n if (!compressedData) return [];\n const bytes = Uint8Array.from(atob(compressedData), c => c.charCodeAt(0));\n const decompressed = pako.ungzip(bytes, { to: \"string\" });\n return JSON.parse(decompressed);\n } catch (err) {\n console.error(\"Decompression error:\", err);\n return [];\n }\n };\n\n const fetchSpaces = (ctrl, check = false, oldData = [], filters = {}) => {\n if (paginator.page == 1 && !tagFiltering.current) {\n setLoading(true);\n } else {\n if (loadingMore || noMore.current) {\n return;\n }\n setLoadingMore(true);\n\n setTimeout(() => {\n setLoadingMore(false);\n }, 1500);\n\n // scrollToBottom();\n }\n tagFiltering.current = false;\n\n filters.topSlug = window.$fetchedTopSlug;\n filters.role = window.$currentRole;\n filters.page = paginator.page;\n filters.per = paginator.per;\n\n SpaceNeoModel.onFetchList(\n params.slug,\n filters,\n (data) => {\n const space = { ...data.data.space };\n const _children = [...decompressGzip(data.data.children)];\n\n if (parseInt(data.page) == 1) {\n const newData = [..._children];\n if (filters == {}) {\n // if (!check || (check && newDataFromApi(newData, oldData))) {\n spacesArray.current = [...newData];\n setSpaces(newData);\n // }\n paginator.page = 2;\n onFinishedLoading();\n } else {\n spacesArray.current = [...newData];\n setSpaces(newData);\n paginator.page = 2;\n onFinishedLoading(false);\n }\n } else {\n if (_children.length > 0) {\n spacesArray.current = spacesArray.current.concat(_children);\n setSpaces([...spacesArray.current]);\n paginator.page = parseInt(data.page) + 1;\n }\n onFinishedLoading(filters == {});\n }\n\n if (_children.length == 0){\n noMore.current = true;\n }\n },\n (data) => {\n onFinishedLoading();\n },\n ctrl.signal\n );\n };\n\n const onFinishedLoading = (loadmore = true) => {\n // if (loading) {\n setTimeout(() => {\n setLoading(false);\n setTimeout(() => {\n if ((paginator.page == 2 || paginator.page == 3) && loadmore) {\n // onScrollBottom();\n }\n }, 300);\n }, 300);\n // }\n };\n\n const scrollToBottom = () => {\n // setIsFirstLoad(false);\n if (viewport.current) {\n // viewport.current.style.scrollBehavior = \"auto\";\n }\n setTimeout(() => {\n if (viewport.current) {\n const top = viewport.current.scrollHeight + 2000;\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n // viewport.current.style.scrollBehavior = \"smooth\";\n }\n }, 500);\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 200) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n let tagsFilter = {};\n if (Array.isArray(tags) && tags.length) {\n const _tags = tags.filter(tag => tagsList.some(t => t.name === tag))\n .map(tag => tagsList.find(t => t.name === tag)?.id);\n tagsFilter = { tags: _tags };\n }\n const ctrl = new AbortController();\n fetchSpaces(ctrl, false, [], tagsFilter);\n }\n };\n\n const onThumbnailSave = (spaceId, url) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count\n ? auxSpaces[i].update_count + 1\n : 1;\n auxSpaces[i].gallery_feature = { url: url };\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onEditSave = (spaceId, name, abstract) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count\n ? auxSpaces[i].update_count + 1\n : 1;\n auxSpaces[i].name = name;\n auxSpaces[i].abstract = abstract;\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onSave = (spaceId, spaceLink, spaceName = null) => {\n // SpaceModel.onFetchSimple(\n // spaceId,\n // \"simple\",\n // (data) => {\n // const auxSpaces = [...spacesArray.current];\n // for (let i = 0; i < auxSpaces.length; i++) {\n // if (auxSpaces[i].slug == spaceId) {\n // auxSpaces[i] = { ...data };\n // auxSpaces[i].update_count = auxSpaces[i].update_count\n // ? auxSpaces[i].update_count + 1\n // : 1;\n // setSpaces([]);\n // setTimeout(() => {\n // setSpaces(auxSpaces);\n // spacesArray.current = [...auxSpaces];\n // }, 100);\n // return;\n // }\n // }\n // auxSpaces.unshift({ ...data });\n // setSpaces(auxSpaces);\n // spacesArray.current = [...auxSpaces];\n // },\n // (data) => {}\n // );\n };\n\n const onUpdate = (spaceId, action) => {\n\n const auxSpaces = [...spacesArray.current];\n\n if (action == \"pin\" || action == \"unpin\") {\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.slug == spaceId) {\n if (action == \"pin\") {\n space.is_pinned.is_pinned = true;\n space.is_pinned.date = new Date();\n } else {\n space.is_pinned.is_pinned = false;\n }\n space.update_count = space.update_count ? space.update_count + 1 : 1;\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"delete\") {\n const auxSpaces = [...spaces];\n console.log(`AUX SPACES: ${auxSpaces.length}`);\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.slug == spaceId) {\n console.log(`AUX SPACES: ${i}`);\n auxSpaces.splice(i, 1);\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"thumbnail-upload\") {\n selectedSpace.current = spaceId;\n setThumbnailOpened(true);\n } else if (action == \"thumbnail-delete\") {\n selectedSpace.current = spaceId;\n onRemoveThumbnail(spaceId);\n } else if (action == \"edit\") {\n selectedSpace.current = spaceId;\n setEditOpened(spaceId);\n }\n\n // Broadcaster.send(\n // \"change_sidebarTreeNode\",\n // document.getElementById(`sidebar_tree_node-${space.slug}`),\n // { data: { space: space, children: children, role: window.$currentRole } }\n // );\n\n \n };\n\n const onRemoveThumbnail = (spaceId) => {\n SpaceModel.onRemoveThumbnail(\n spaceId,\n (data) => {\n setTimeout(() => {\n onThumbnailSave(spaceId, null);\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const onSettingsSave = (_settings) => {\n reload.current =\n settings.listFilterBy != _settings.listFilterBy;\n\n onFetchView();\n if (settings.spaceWidth != _settings.spaceWidth) {\n }\n\n // setSettings(_settings);\n };\n\n const onSetSettingsOpened = (event, value) => {\n event.preventDefault();\n event.stopPropagation();\n setSettingsOpened(value);\n };\n\n const onListActionTextChanged = (text) => {\n setListActionText(text);\n };\n\n const onListTemplateIdChanged = (id) => {\n setListTemplateId(id);\n };\n\n const pinned = () => {\n return spaces\n .filter((space) => space.is_pinned.is_pinned == true)\n .sort((a, b) => new Date(a.is_pinned.date) - new Date(b.is_pinned.date));\n };\n\n const unpinned = () => {\n return spaces.filter((space) => space.is_pinned.is_pinned == false);\n };\n\n const onFetchView = () => {\n ViewModel.onFetch(\n \"description_view\",\n params.slug,\n (data) => {\n contentEmpty.current = data.is_empty;\n window.$spaceWideWidth = data.view_width;\n setContent({ ...data.content });\n },\n (data) => {\n setContent({});\n }\n );\n };\n\n const onContentUpdate = (_content, html, callback, isEmpty) => {\n ViewModel.onUpdate(\n \"description_view\",\n params.slug,\n _content,\n (data) => {\n contentEmpty.current = data.is_empty;\n setContent({ ..._content });\n },\n (data) => {}\n );\n };\n\n const onJoin = () => {\n if (!window.$currentUserAuthToken) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n return;\n }\n SpaceModel.onJoin(\n params.slug,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n };\n\n const onFetchTags = () => {\n if (space.tags) {\n setTagsList([...space.tags.filter(Boolean)]);\n }\n };\n\n const onNewPost = () => {\n if (space.slug && (space.permissions.can_edit || space.permissions.can_moderate)) {\n setNewSpaceOpened(true);\n } else {\n onJoin();\n }\n };\n\n const onOpenedDuplicate = (spaceId, spaceName) => {\n selectedSpace.current = { slug: spaceId, name: spaceName };\n setOpenedDuplicate(true);\n };\n\n const onDuplicate = (id, link) => {\n setOpenedDuplicate(false);\n onSave(id);\n };\n\n const onGetNewPost = (new_slug) => {\n SpaceNeoModel.onFetch(\n new_slug,\n (data) => {\n const postIndex = spacesArray.current.findIndex(item => item.slug === data.space.slug);\n let new_data = [];\n if (postIndex > -1) {\n new_data = [\n ...spacesArray.current.slice(0, postIndex),\n data.space,\n ...spacesArray.current.slice(postIndex + 1),\n ];\n } else {\n new_data = [data.space, ...spacesArray.current]\n }\n spacesArray.current = new_data;\n setSpaces(new_data);\n },\n (data) => {}\n );\n }\n\n if (loading) {\n return ;\n }\n\n return (\n \n \n \n \n {mainActions.editPage && (\n \n \n \n \n \n )}\n {!mainActions.editPage && content && !contentEmpty.current && (\n \n \n \n \n \n )}\n {(settings.openPost ||\n (space.slug &&\n space.permissions &&\n space.permissions.can_manage)) && (\n \n onNewPost()}\n shadow=\"sm\"\n radius=\"md\"\n // withBorder\n pl={20}\n pr={25}\n pt={20}\n pb={20}\n sx={{\n cursor: \"pointer\",\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color)\n .lighten(20)\n .toString()\n : tinycolor(colors.background_color)\n .darken(20)\n .toString()\n }`\n : `1px solid #e9ecef`,\n }}\n >\n \n \n \n \n \n {settings.listActionText\n ? settings.listActionText\n : t(\"spaces.presentations.list.createButton\")}\n \n \n {space &&\n space.permissions &&\n space.permissions.can_manage && (\n \n onSetSettingsOpened(event, true)}\n >\n \n \n \n )}\n \n \n \n \n )}\n\n \n {tagsList && tagsList.length > 0 && (\n\n \n )}\n \n\n {settings.visualType == \"list\" && (\n \n {pinned().map((child) => {\n return (\n ({\n margin: settings.listFlatView ? \"0px\" : \"15px 0px\",\n })}\n >\n \n {settings.listFlatView && (\n \n )}\n \n );\n })}\n {unpinned().map((child) => {\n return (\n ({\n margin: settings.listFlatView ? \"0px\" : \"15px 0px\",\n })}\n >\n \n {settings.listFlatView && (\n \n )}\n \n );\n })}\n \n )}\n {settings.visualType == \"grid\" && (\n \n \n {pinned().map((child) => {\n return (\n ({\n margin: \"0px 0px\",\n })}\n >\n \n \n );\n })}\n {unpinned().map((child) => {\n return (\n ({\n margin: \"0px 0px\",\n })}\n >\n \n \n );\n })}\n \n \n )}\n {loadingMore && (\n
\n \n
\n )}\n \n setOpenedDuplicate(false)}\n title={\n \n {t(\"spaces.presentations.list.duplicateFormTitle\")}\n \n }\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n\n {space && space.permissions && space.permissions.can_manage && (\n \n )}\n \n\n \n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setActions } from \"../../../../store/app\";\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\nimport pako from \"pako\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport {\n Stack,\n Box,\n ScrollArea,\n createStyles,\n Container,\n SimpleGrid,\n Drawer,\n Paper,\n Avatar,\n Group,\n Text,\n ActionIcon,\n Tooltip,\n Loader,\n Center,\n Chips,\n Chip,\n Button\n} from \"@mantine/core\";\n\nimport SpaceModel from \"../../../../models/Space\";\nimport SpaceNeoModel from \"../../../../models/neo4j/Space\";\n\nimport ViewModel from \"../../../../models/View\";\nimport DefaultAvatar from \"../../../../src/images/fallback/default.png\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\nimport SpaceListItem from \"../List\";\n\nimport NewSpace from \"./NewSpace\";\nimport Settings from \"./Settings\";\nimport Thumbnail from \"./Thumbnail\";\nimport Edit from \"./Edit\";\nimport DuplicateForm from \"../../form/DuplicateForm\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport TiptapChannel from \"../../../tiptap/components/TiptapChannel\";\nimport TiptapInline from \"../../../tiptap/components/TiptapInline\";\nimport TiptapReadonly from \"../../../tiptap/components/TiptapReadonly\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport TagsChips from \"../discussion/TagsChips\";\n\nconst paginator = {\n per: 20,\n page: 1,\n};\n\nconst scrollTimeoutIds = [];\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n // backgroundColor: colors.sidebar_background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n chipStyle: {\n color: colors.default_text_color,\n backgroundColor: colors.background_color,\n height: \"auto\",\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(40).toString()\n : tinycolor(colors.background_color).darken(40).toString()\n }`\n : `1px solid #ced4da`,\n \"&:hover\": {\n backgroundColor: isSpaceThemed(colors)\n ? `${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(5).toString()\n : tinycolor(colors.background_color).darken(5).toString()\n }`\n : `#e9ecef`,\n },\n },\n },\n separator: {\n borderBottom: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n filterButtonActive: {\n border: `2px solid ${colors.primary_button_background_color}`,\n color: colors.primary_button_background_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString(),\n },\n },\n filterButtonPassive: {\n border: `1px solid ${tinycolor(colors.default_text_color).toString()}`,\n color: tinycolor(colors.default_text_color).toString(),\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(3).toString(),\n },\n },\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n },\n settingsButtonStyle: {\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nexport default function Showcase(props) {\n const params = useParams();\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n const children = useSelector((state) => state.children);\n const mainActions = useSelector((state) => state.mainActions);\n const [spaces, setSpaces] = useState([]);\n const [loading, setLoading] = useState(false);\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n const [settingsOpened, setSettingsOpened] = useState(false);\n const [thumbnailOpened, setThumbnailOpened] = useState(false);\n const [editOpened, setEditOpened] = useState(false);\n const [openedDuplicate, setOpenedDuplicate] = useState(false);\n\n const [settings, setSettings] = useState({});\n const [content, setContent] = useState({});\n const [loadingMore, setLoadingMore] = useState(false);\n const [tags, setTags] = useState(null);\n const [tagsList, setTagsList] = useState([]);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const viewport = useRef();\n const selectedSpace = useRef(null);\n const spacesArray = useRef([]);\n const reload = useRef(false);\n const contentEmpty = useRef(true);\n const noMore = useRef(false);\n const lastSlug = useRef();\n const tagFiltering = useRef();\n const tagTimeout = useRef();\n const tagsTimeout = useRef();\n const ctrlTags = useRef();\n\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(setActions({ editPage: false }));\n setLoading(true);\n paginator.page = 1;\n const ctrl = new AbortController();\n fetchSpaces(ctrl);\n return () => {\n paginator.page = 1;\n setSpaces([]);\n spacesArray.current = [];\n setContent({});\n };\n }, []);\n\n useEffect(() => {\n if (params.slug) {\n if (params.slug && lastSlug.current != params.slug) {\n lastSlug.current = params.slug;\n paginator.page = 2;\n const ctrl = new AbortController();\n // fetchSpacesIDB();\n onFetchView();\n }\n }\n }, [params]);\n\n useEffect(() => {\n onFetchTags();\n }, [space]);\n\n // useEffect(() => {\n // if (children.slug != params.slug) {\n // setSpaces([]);\n // spacesArray.current = [];\n // return;\n // }\n // if (children.children) {\n // let newSpaces = [];\n // if (spacesArray.current.length > 0) {\n // for (let i = 0; i < children.children.length; i++) {\n // const child = children.children[i];\n // if (!child.update_count) {\n // child.update_count = 0;\n // }\n // child.update_count += 1;\n // newSpaces.push(child);\n // }\n // } else {\n // newSpaces = [...children.children];\n // }\n // setSpaces(newSpaces);\n // spacesArray.current = [...newSpaces];\n // setLoading(false);\n // }\n // }, [children]);\n\n useEffect(() => {\n if (space && space.slug) {\n setSettings({\n openPost: space.resource_editing == \"open\",\n visualType: space.present_as,\n authors: space.settings.list_show_author,\n listChildVersion: space.settings.list_child_version,\n listActionText: space.settings.list_action_text,\n listTemplateId: space.settings.list_template_id,\n listLinkAction: space.settings.list_link_action,\n listShowPreviewText: space.settings.list_show_preview_text,\n listShowThumbnail: space.settings.list_show_thumbnail,\n listShowComments: space.settings.list_show_comments_count,\n listShowMembers: space.settings.list_show_members,\n listShowTimestamp: space.settings.list_show_timestamp,\n listAutoThumbnail: space.settings.list_auto_thumbnail,\n listPrivacyControl: space.settings.list_privacy_control,\n listFilterBy: space.settings.list_filter_by,\n listFlatView: space.settings.list_flat_view,\n listAllowLikes: space.settings.list_allow_likes,\n spaceWidth: space.settings.space_width,\n openInModal: space.settings.list_open_in_modal,\n listTitleLineClamp: space.settings.list_title_line_clamp,\n listAbstractLineClamp: space.settings.list_abstract_line_clamp\n });\n }\n }, [space]);\n\n useEffect(() => {\n onFinishedLoading();\n }, [spaces]);\n\n // useEffect(() => {\n // if (reload.current == true) {\n // paginator.page = 1;\n // const ctrl = new AbortController();\n // fetchSpaces(ctrl);\n // }\n // }, [settings]);\n\n useEffect(() => {\n if (!tags || !tagsList.length) {\n return;\n }\n let tagsFilter = {};\n\n if (tags.length) {\n const _tags = tags.map((tag) => tagsList.find((t) => t.name === tag).id);\n tagsFilter = { tags: _tags };\n }\n\n if (tagTimeout.current) {\n clearTimeout(tagTimeout.current);\n }\n\n tagTimeout.current = setTimeout(() => {\n tagFiltering.current = true;\n paginator.page = 1;\n noMore.current = false;\n const ctrl = new AbortController();\n fetchSpaces(ctrl, false, [], tagsFilter);\n }, 800);\n }, [tags, tagsList]);\n\n const newDataFromApi = (arr1, arr2) => {\n // Check if lengths are different\n if (arr1.length !== arr2.length) {\n return true;\n }\n\n // Compare elements\n for (let i = 0; i < arr1.length; i++) {\n if (\n arr1[i].slug !== arr2[i].slug ||\n arr1[i].name !== arr2[i].name ||\n arr1[i].abstract !== arr2[i].abstract ||\n arr1[i].comments_count !== arr2[i].comments_count ||\n arr1[i].likes_count !== arr2[i].likes_count ||\n JSON.stringify(arr1[i].tagged_with) !=\n JSON.stringify(arr2[i].tagged_with) ||\n arr1[i].activity != arr2[i].activity\n ) {\n return true;\n }\n }\n\n for (let i = 0; i < arr2.length; i++) {\n if (\n arr1[i].slug !== arr2[i].slug ||\n arr1[i].name !== arr2[i].name ||\n arr1[i].abstract !== arr2[i].abstract ||\n arr1[i].comments_count !== arr2[i].comments_count ||\n arr1[i].likes_count !== arr2[i].likes_count ||\n JSON.stringify(arr1[i].tagged_with) !=\n JSON.stringify(arr2[i].tagged_with) ||\n arr1[i].activity != arr2[i].activity\n ) {\n return true;\n }\n }\n\n // If all elements are equal, return true\n return false;\n };\n\n const fetchSpacesIDB = () => {\n setLoading(true);\n\n // getJSON(`spaces`, `list_children_${params.slug}`, (data) => {\n // const ctrl = new AbortController();\n // if (data && data.length) {\n // const oldData = [...data];\n // setSpaces(oldData);\n // spacesArray.current = [...data];\n\n // fetchSpaces(ctrl, true, oldData);\n // } else {\n // fetchSpaces(ctrl);\n // }\n // });\n };\n\n const decompressGzip = (compressedData) => {\n try {\n if (!compressedData) return [];\n const bytes = Uint8Array.from(atob(compressedData), c => c.charCodeAt(0));\n const decompressed = pako.ungzip(bytes, { to: \"string\" });\n return JSON.parse(decompressed);\n } catch (err) {\n console.error(\"Decompression error:\", err);\n return [];\n }\n };\n\n const fetchSpaces = (ctrl, check = false, oldData = [], filters = {}) => {\n if (paginator.page == 1 && !tagFiltering.current) {\n setLoading(true);\n } else {\n if (loadingMore || noMore.current) {\n return;\n }\n setLoadingMore(true);\n\n setTimeout(() => {\n setLoadingMore(false);\n }, 1500);\n\n // scrollToBottom();\n }\n tagFiltering.current = false;\n\n filters.topSlug = window.$fetchedTopSlug;\n filters.role = window.$currentRole;\n filters.page = paginator.page;\n filters.per = paginator.per;\n\n SpaceNeoModel.onFetchList(\n params.slug,\n filters,\n (data) => {\n const space = { ...data.data.space };\n const _children = [...decompressGzip(data.data.children)];\n\n if (parseInt(data.page) == 1) {\n const newData = [..._children];\n if (filters == {}) {\n // if (!check || (check && newDataFromApi(newData, oldData))) {\n spacesArray.current = [...newData];\n setSpaces(newData);\n // }\n paginator.page = 2;\n onFinishedLoading();\n } else {\n spacesArray.current = [...newData];\n setSpaces(newData);\n paginator.page = 2;\n onFinishedLoading(false);\n }\n } else {\n if (_children.length > 0) {\n spacesArray.current = spacesArray.current.concat(_children);\n setSpaces([...spacesArray.current]);\n paginator.page = parseInt(data.page) + 1;\n }\n onFinishedLoading(filters == {});\n }\n\n if (_children.length == 0){\n noMore.current = true;\n }\n },\n (data) => {\n onFinishedLoading();\n },\n ctrl.signal\n );\n };\n\n const onFinishedLoading = (loadmore = true) => {\n // if (loading) {\n setTimeout(() => {\n setLoading(false);\n setTimeout(() => {\n if ((paginator.page == 2 || paginator.page == 3) && loadmore) {\n // onScrollBottom();\n }\n }, 300);\n }, 300);\n // }\n };\n\n const scrollToBottom = () => {\n // setIsFirstLoad(false);\n if (viewport.current) {\n // viewport.current.style.scrollBehavior = \"auto\";\n }\n setTimeout(() => {\n if (viewport.current) {\n const top = viewport.current.scrollHeight + 2000;\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n // viewport.current.style.scrollBehavior = \"smooth\";\n }\n }, 500);\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 200) {\n console.log(\"On bottom\");\n const scrollTimeoutId = setTimeout(() => {\n console.log(\"On bottom timer\");\n // At bottom\n onScrollBottom();\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n const scrollTimeoutId = setTimeout(() => {\n // At Top\n }, 1000);\n scrollTimeoutIds.push(scrollTimeoutId);\n } else {\n // In between\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.length; i++) {\n const id = scrollTimeoutIds[i];\n clearTimeout(id);\n }\n };\n\n const onScrollBottom = () => {\n if (!loading) {\n let tagsFilter = {};\n\n if (Array.isArray(tags) && tags.length) {\n const _tags = tags.map((tag) => tagsList.find((t) => t.name === tag).id);\n tagsFilter = { tags: _tags };\n }\n const ctrl = new AbortController();\n fetchSpaces(ctrl, false, [], tagsFilter);\n }\n };\n\n const onThumbnailSave = (spaceId, url) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count\n ? auxSpaces[i].update_count + 1\n : 1;\n auxSpaces[i].gallery_feature = { url: url };\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onEditSave = (spaceId, name, abstract) => {\n const auxSpaces = [...spaces];\n for (let i = 0; i < auxSpaces.length; i++) {\n if (auxSpaces[i].slug == spaceId) {\n auxSpaces[i].update_count = auxSpaces[i].update_count\n ? auxSpaces[i].update_count + 1\n : 1;\n auxSpaces[i].name = name;\n auxSpaces[i].abstract = abstract;\n\n setTimeout(() => {\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n }, 100);\n\n return;\n }\n }\n };\n\n const onSave = (spaceId, spaceLink, spaceName = null) => {\n // SpaceModel.onFetchSimple(\n // spaceId,\n // \"simple\",\n // (data) => {\n // const auxSpaces = [...spacesArray.current];\n // for (let i = 0; i < auxSpaces.length; i++) {\n // if (auxSpaces[i].slug == spaceId) {\n // auxSpaces[i] = { ...data };\n // auxSpaces[i].update_count = auxSpaces[i].update_count\n // ? auxSpaces[i].update_count + 1\n // : 1;\n // setSpaces([]);\n // setTimeout(() => {\n // setSpaces(auxSpaces);\n // spacesArray.current = [...auxSpaces];\n // }, 100);\n // return;\n // }\n // }\n // auxSpaces.unshift({ ...data });\n // setSpaces(auxSpaces);\n // spacesArray.current = [...auxSpaces];\n // },\n // (data) => {}\n // );\n };\n\n const onUpdate = (spaceId, action) => {\n const auxSpaces = [...spacesArray.current];\n\n if (action == \"pin\" || action == \"unpin\") {\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.slug == spaceId) {\n if (action == \"pin\") {\n space.is_pinned.is_pinned = true;\n space.is_pinned.date = new Date();\n } else {\n space.is_pinned.is_pinned = false;\n }\n space.update_count = space.update_count ? space.update_count + 1 : 1;\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"delete\") {\n const auxSpaces = [...spaces];\n console.log(`AUX SPACES: ${auxSpaces.length}`);\n for (let i = 0; i < auxSpaces.length; i++) {\n const space = auxSpaces[i];\n if (space.slug == spaceId) {\n console.log(`AUX SPACES: ${i}`);\n auxSpaces.splice(i, 1);\n break;\n }\n }\n setSpaces(auxSpaces);\n spacesArray.current = [...auxSpaces];\n } else if (action == \"thumbnail-upload\") {\n selectedSpace.current = spaceId;\n setThumbnailOpened(true);\n } else if (action == \"thumbnail-delete\") {\n selectedSpace.current = spaceId;\n onRemoveThumbnail(spaceId);\n } else if (action == \"edit\") {\n selectedSpace.current = spaceId;\n setEditOpened(spaceId);\n }\n };\n\n const onRemoveThumbnail = (spaceId) => {\n SpaceModel.onRemoveThumbnail(\n spaceId,\n (data) => {\n setTimeout(() => {\n onThumbnailSave(spaceId, null);\n }, 1000);\n },\n (data) => {}\n );\n };\n\n const onSettingsSave = (_settings) => {\n reload.current = settings.listFilterBy != _settings.listFilterBy;\n\n onFetchView();\n if (settings.spaceWidth != _settings.spaceWidth) {\n }\n\n setSettings(_settings);\n };\n\n const onSetSettingsOpened = (event, value) => {\n event.preventDefault();\n event.stopPropagation();\n setSettingsOpened(value);\n };\n\n const onListActionTextChanged = (text) => {\n setListActionText(text);\n };\n\n const onListTemplateIdChanged = (id) => {\n setListTemplateId(id);\n };\n\n const pinned = () => {\n return spaces\n .filter((space) => space.is_pinned?.is_pinned == true)\n .sort((a, b) => new Date(a.is_pinned?.date) - new Date(b.is_pinned?.date));\n };\n\n const unpinned = () => {\n return spaces.filter((space) => space.is_pinned?.is_pinned == false);\n };\n\n const onFetchView = () => {\n ViewModel.onFetch(\n \"description_view\",\n params.slug,\n (data) => {\n contentEmpty.current = data.is_empty;\n console.log(\"window.$spaceWideWidth 1\");\n window.$spaceWideWidth = data.view_width;\n setContent({ ...data.content });\n },\n (data) => {\n setContent({});\n }\n );\n };\n\n const onContentUpdate = (_content, html, callback, isEmpty) => {\n ViewModel.onUpdate(\n \"description_view\",\n params.slug,\n _content,\n (data) => {\n contentEmpty.current = data.is_empty;\n setContent({ ..._content });\n },\n (data) => {}\n );\n };\n\n const onJoin = () => {\n if (!window.$currentUserAuthToken) {\n localStorage.setItem(\"join_slug\", params.slug);\n navigate(`/user/start?s=${params.slug}`);\n return;\n }\n SpaceModel.onJoin(\n params.slug,\n (data) => {\n navigate(`${data.redirect_to.url}`);\n },\n (data) => {}\n );\n };\n\n const onFetchTags = () => {\n if (space.tags) {\n setTagsList([...space.tags.filter(Boolean)]);\n }\n };\n\n const onNewPost = () => {\n if (space.slug && space.permissions.can_edit) {\n setNewSpaceOpened(true);\n } else {\n onJoin();\n }\n };\n\n const onOpenedDuplicate = (spaceId, spaceName) => {\n selectedSpace.current = { slug: spaceId, name: spaceName };\n setOpenedDuplicate(true);\n };\n\n const onDuplicate = (id, link) => {\n setOpenedDuplicate(false);\n onSave(id);\n };\n\n const onGetNewPost = (new_slug) => {\n SpaceNeoModel.onFetch(\n new_slug,\n (data) => {\n const postIndex = spacesArray.current.findIndex(item => item.slug === data.space.slug);\n let new_data = [];\n if (postIndex > -1) {\n new_data = [\n ...spacesArray.current.slice(0, postIndex),\n data.space,\n ...spacesArray.current.slice(postIndex + 1),\n ];\n } else {\n new_data = [data.space, ...spacesArray.current]\n }\n spacesArray.current = new_data;\n setSpaces(new_data);\n },\n (data) => {}\n );\n }\n\n if (loading) {\n return ;\n }\n\n return (\n \n \n \n \n {mainActions.editPage && (\n \n \n \n \n \n )}\n {!mainActions.editPage && content && !contentEmpty.current && (\n \n \n \n \n \n )}\n {(settings.openPost ||\n (space.slug &&\n space.permissions &&\n space.permissions.can_manage)) && (\n \n \n \n \n \n {(settings.openPost ||\n (space.slug && space.permissions.can_manage)) && (\n \n {space.slug && (space.permissions.can_edit || space.permissions.can_moderate) ? (\n \n }\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n onClick={() => setNewSpaceOpened(true)}\n >\n {settings.listActionText ||\n t(\"spaces.presentations.showcase.createButton\")}\n \n ) : (\n \n }\n className={classes.primaryButtonStyle}\n radius=\"xl\"\n onClick={() => onJoin()}\n >\n {settings.listActionText ||\n t(\"spaces.presentations.showcase.createButton\")}\n \n )}\n {space &&\n space.permissions &&\n space.permissions.can_manage && (\n \n onSetSettingsOpened(event, true)}\n >\n \n \n \n )}\n \n )}\n \n \n )}\n\n \n {tagsList && tagsList.length > 0 && (\n \n )}\n \n\n {settings.visualType == \"list\" && (\n \n {pinned().map((child) => {\n return (\n ({\n margin: settings.listFlatView ? \"0px\" : \"15px 0px\",\n })}\n >\n \n {settings.listFlatView && (\n \n )}\n \n );\n })}\n {unpinned().map((child) => {\n return (\n ({\n margin: settings.listFlatView ? \"0px\" : \"15px 0px\",\n })}\n >\n \n {settings.listFlatView && (\n \n )}\n \n );\n })}\n \n )}\n {settings.visualType == \"grid\" && (\n \n \n {pinned().map((child) => {\n return (\n ({\n margin: \"0px 0px\",\n })}\n >\n \n \n );\n })}\n {unpinned().map((child) => {\n return (\n ({\n margin: \"0px 0px\",\n })}\n >\n \n \n );\n })}\n \n \n )}\n {loadingMore && (\n
\n \n
\n )}\n \n setOpenedDuplicate(false)}\n title={\n \n {t(\"spaces.presentations.showcase.duplicateFormTitle\")}\n \n }\n padding=\"xl\"\n size=\"xl\"\n >\n \n \n\n {space && space.permissions && space.permissions.can_manage && (\n \n )}\n \n\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n Text,\n Group,\n Button,\n Tooltip,\n Box,\n Paper,\n createStyles,\n} from \"@mantine/core\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport DirectMessageModel from \"../../../models/DirectMessage\";\n\nimport Avatar from \"../../utils/LazyAvatar\";\n\nimport { setTiptapSidemenu } from \"../../../store/app\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport isDark from \"../../../utils/IsDarkColor\";\n\nconst useStyles = createStyles((theme, { colors, props }) => ({\n drawer: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n formStyle: {\n \"&:focus\": {\n border: `1px solid ${tinycolor(colors.background_color)\n .darken(20)\n .toString()}`,\n },\n },\n buttonStyle: {\n backgroundColor: \"none\",\n color: colors.sidebar_background_color == colors.primary_button_background_color ? colors.secondary_button_background_color : colors.primary_button_background_color,\n border: `1px solid ${colors.sidebar_background_color == colors.primary_button_background_color ? colors.secondary_button_background_color : colors.primary_button_background_color}`,\n \"&:hover\": {\n // backgroundColor: tinycolor(colors.sidebar_background_color == colors.primary_button_background_color ? colors.sidebar_background_color : colors.background_color).darken(3).toString(),\n backgroundColor: isDark() ? tinycolor(colors.sidebar_background_color == colors.primary_button_background_color ? colors.sidebar_background_color : colors.background_color).lighten(1).toString() : tinycolor(colors.sidebar_background_color == colors.primary_button_background_color ? colors.sidebar_background_color : colors.background_color).darken(5).toString(),\n },\n cursor: \"pointer\"\n },\n}));\n\nexport default function Member(props) {\n const { t, i18n } = useTranslation();\n const [emailCopiedToClipboard, setEmailCopiedToClipboard] = useState(false);\n\n const colors = useSelector((state) => state.colors);\n const connections = useSelector((state) => state.connections);\n const user = useSelector((state) => state.user);\n const { classes, cx, theme } = useStyles({ colors, props });\n\n const dispatch = useDispatch();\n\n const [member, setMember] = useState({});\n const [role, setRole] = useState(null);\n\n useEffect(() => {\n if (\n !member.id ||\n member.id != props.member.id ||\n member.status == \"deleted\" ||\n (member.status != \"active\" && props.member.status == \"active\")\n ) {\n setMember(props.member);\n setRole(props.member.is_manager ? \"Manager\" : \"Member\");\n }\n }, [props]);\n\n useEffect(() => {\n if (\n role &&\n ((member.is_manager == true && role == \"Member\") ||\n (member.is_manager == false && role == \"Manager\"))\n ) {\n onSelectedRole(role);\n }\n }, [role]);\n\n const onDirectMessage = (event) => {\n event.preventDefault();\n event.stopPropagation();\n DirectMessageModel.onFetchOrCreate(\n member.user_id,\n (data) => {\n dispatch(\n setTiptapSidemenu({ opened: \"direct\", option: data.space.slug, allow_reflections: true })\n );\n },\n (data) => {}\n );\n };\n\n const onCopyEmail = (event) => {\n setEmailCopiedToClipboard(true);\n setTimeout(() => {\n setEmailCopiedToClipboard(false);\n }, 2000);\n };\n\n const onClickEmailButton = (event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const openProfile = () => {\n dispatch(setTiptapSidemenu({ opened: \"profile\", option: member.username }));\n };\n\n const isConnected = () => {\n return connections.connections.indexOf(member.username) >= 0;\n };\n\n return (\n openProfile()}\n shadow=\"sm\"\n radius=\"md\"\n p={20}\n key={member.username}\n className={props.memberItemClass}\n >\n \n \n {isConnected() && user.is_admin && (\n \n )}\n \n {member.full_name}\n \n \n @{member.username}\n \n {user.id !== member.user_id && (\n \n onDirectMessage(event)}\n >\n {t(\"spaces.members.messageButton\")}\n \n {props.showEmail && (\n \n onCopyEmail(event)}\n onCopy={(event) => onCopyEmail(event)}\n text={member.email}\n >\n onClickEmailButton(event)}\n >\n {t(\"spaces.members.emailButton\")}\n \n \n \n )}\n \n )}\n \n {member.bio}\n \n \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport {\n Container,\n Text,\n Group,\n ScrollArea,\n Button,\n Box,\n TextInput,\n createStyles,\n Stack,\n SimpleGrid,\n Loader,\n Center,\n} from \"@mantine/core\";\n\nimport MemberModel from \"../../../models/Member\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { useViewportSize } from \"@mantine/hooks\";\n\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport InvitePeople from \"../settings/members/InvitePeople\";\nimport SectionHeader from \"../settings/layout/SectionHeader\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport Member from \"./Member\";\n\nconst paginator = {\n page: 1,\n per: 15,\n};\n\nconst loader = {\n loading: false,\n oldScope: \"all\",\n};\n\nconst useStyles = createStyles((theme, { colors }) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n secondaryButtonStyle: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.secondary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n linkButtonStyle: {\n color: colors.header_link_color,\n \"&:hover\": {\n color: tinycolor(colors.header_link_color).darken(4).toString(),\n },\n },\n searchBar: {},\n title: {\n color: colors.default_text_color,\n },\n subtitle: {\n color: tinycolor(colors.default_text_color).darken(20).toString(),\n },\n memberItem: {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n cursor: \"pointer\",\n },\n memberItemText: {\n color: colors.sidebar_text_color,\n \"&:hover\": {\n color: colors.sidebar_text_color,\n },\n },\n memberItemTextDimmed: {\n color: tinycolor(colors.sidebar_text_color).darken(5).toString(),\n \"&:hover\": {\n color: tinycolor(colors.sidebar_text_color).darken(5).toString(),\n },\n },\n}));\n\nexport default function List(props) {\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const { t, i18n } = useTranslation();\n const space = useSelector((state) => state.space);\n\n const [opennedInvite, setOpenedInvite] = useState(false);\n\n const [members, setMembers] = useState({\n total: 0,\n page: 1,\n pages: 1,\n data: [],\n });\n const [scope, setScope] = useState(null);\n const [term, setTerm] = useState(null);\n const [loading, setLoading] = useState(false);\n const [counts, setCounts] = useState({\n all: 0,\n active: 0,\n pending: 0,\n managers: 0,\n });\n\n const viewport = useRef();\n const timeoutId = useRef();\n const nomore = useRef();\n const loadingCount = useRef(0);\n\n useEffect(() => {\n return () => {\n nomore.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [space]);\n\n useEffect(() => {\n if (space && space.slug) {\n onFetch();\n }\n }, [term]);\n\n const onFetch = () => {\n setLoading(true);\n if (loader.oldScope != scope) {\n paginator.page = 1;\n loader.oldScope = scope;\n }\n\n MemberModel.onFetch(\n space.slug,\n paginator,\n { scope, term },\n (data) => {\n loadingCount.current ++\n setLoading(false);\n if (paginator.page == 1) {\n setMembers({ ...data });\n } else {\n if (data.data.length > 0) {\n const auxMembers = { ...members };\n auxMembers.data = members.data.concat(data.data);\n setMembers(auxMembers);\n } else {\n paginator.page--;\n nomore.current = true;\n }\n }\n },\n (data) => {\n setLoading(false);\n }\n );\n };\n\n const onSearch = () => {\n setTerm(document.getElementById(\"search-input\").value);\n };\n\n const onClearSearch = () => {\n document.getElementById(\"search-input\").value = \"\";\n setTerm(\"\");\n };\n\n const changePage = (page) => {\n paginator.page = page;\n onFetch();\n };\n\n const onKeyPress = (event) => {\n onKeyGeneral(event);\n };\n const onKeyDown = (event) => {\n onKeyGeneral(event);\n };\n\n const onKeyGeneral = (event) => {\n if (event.which == 13) {\n event.preventDefault();\n onSearch();\n }\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n\n if (pos.y + div.clientHeight >= div.scrollHeight - 100) {\n if (nomore.current) {\n return;\n }\n setLoading(true);\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n timeoutId.current = setTimeout(() => {\n changePage(paginator.page + 1);\n }, 1000);\n }\n };\n\n return (\n \n \n \n \n \n {t(\"spaces.members.manage\")}\n \n setOpenedInvite(true)}\n leftIcon={}\n className={classes.primaryButtonStyle}\n >\n {t(\"spaces.members.invite\")}\n \n \n ) : null\n }\n />\n\n \n \n }\n placeholder={t(\"spaces.members.search.placeholder\")}\n classNames={{ input: classes.searchBar }}\n id=\"search-input\"\n radius=\"xl\"\n onKeyPress={(event) => onKeyPress(event)}\n onKeyDown={(event) => onKeyDown(event)}\n rightSection={\n term && (\n onClearSearch()}\n >\n \n \n )\n }\n />\n onSearch()}\n className={classes.primaryButtonStyle}\n >\n {t(\"spaces.members.search.button\")}\n \n \n \n\n {members.data.length == 0 && !loader.loading && loadingCount.current > 0 ? (\n ({\n backgroundColor: colors.sidebar_background_color,\n textAlign: \"center\",\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n cursor: \"pointer\",\n marginTop: 20,\n color: colors.sidebar_text_color,\n \"&:hover\": {\n backgroundColor: colors.sidebar_background_color,\n },\n })}\n >\n {t(\"spaces.members.emptyMessage\")}\n \n ) : (\n \n {members.data.map((member) => {\n return (\n \n );\n })}\n \n )}\n {loading && (\n
\n \n
\n )}\n {opennedInvite && }\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Start(props) {\n const space = useSelector((state) => state.space);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.start.invalidEmailErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (space.slug){\n setSpaceReference(space.slug);\n }\n }, [space]);\n\n const onStart = () => {\n navigate(`/space/${space.slug}/demo/sign_up`);\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n\n \n \n \n
onStart(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.start.title\")}\n \n \n {t(\"users.start.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n {t(\"users.start.submit\")}\n \n \n \n
\n
\n
\n {spaceReference && showSpaceReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport {\n TextInput,\n PasswordInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery, useFocusTrap } from \"@mantine/hooks\";\n\nexport default function SignIn(props) {\n const space = useSelector((state) => state.space);\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n password: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.signIn.invalidEmailErrorMsg\"),\n },\n });\n\n const focusTrapRef = useFocusTrap();\n\n const [spaceReference, setSpaceReference] = useState();\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n const [showStepper, setStepper] = useState(false);\n const [isMember, setIsMember] = useState(false);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (space.slug){\n setSpaceReference(space.slug);\n }\n }, [space]);\n\n const onSignIn = () => {\n localStorage.removeItem(\"dummy_was_registered\");\n if (space.is_paid) {\n navigate(`/space/${space.slug}/demo/pay`);\n } else {\n if (space.slug && space.permissions.block_until_approved){\n navigate(`/space/${space.slug}/demo/pending`);\n }\n else{\n navigate(`/space/${space.slug}`);\n }\n }\n };\n\n const getMagicLinkPath = () => {\n return `/space/${space.slug}/demo/magic_link`;\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n\n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n onSignIn(values))}\n ref={focusTrapRef}\n >\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.signIn.title\")}\n \n \n {t(\"users.signIn.subtitle\")}{\" \"}\n \n {t(\"users.signIn.subtitleLink\")}\n \n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n \n {t(\"users.signIn.submit\")}\n \n ({\n borderTopColor: theme.colors.gray[2],\n color: theme.colors.gray[2],\n })}\n my=\"sm\"\n label=\"OR\"\n labelPosition=\"center\"\n labelProps={{ color: \"#666\" }}\n />\n \n {t(\"users.signIn.magicLink\")}\n \n \n \n {t(\"users.signIn.forgotPassword\")}\n \n \n \n \n \n \n \n {spaceReference && showSpaceReference && (\n \n \n \n )}\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useNavigate, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport {\n Box,\n TextInput,\n PasswordInput,\n Checkbox,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Divider,\n Grid,\n Stepper,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function SignUp(props) {\n const space = useSelector((state) => state.space);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n username: \"\",\n password: \"\",\n subscribe_to_sutra: true,\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.signUp.invalidEmailErrorMsg\"),\n password: (value) =>\n value.length >= 8 ? null : t(\"users.signUp.invalidPasswordErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [showStepper, setStepper] = useState(false);\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (space.slug){\n setSpaceReference(space.slug);\n }\n }, [space]);\n\n const onSignUp = () => {\n localStorage.setItem(\"dummy_was_registered\", true);\n if (space.is_paid) {\n navigate(`/space/${space.slug}/demo/pay`);\n } else {\n navigate(`/space/${space.slug}/demo/edit_profile`);\n }\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onSignUp(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.signUp.title\")}\n \n \n {t(\"users.signUp.subtitle\")}{\" \"}\n \n {t(\"users.signUp.subtitleLink\")}\n \n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n \n \n \n {window.location.hostname.indexOf(\"stablenavel.com\") >=\n 0 && (\n \n )}\n\n {!spaceReference ? (\n \n ) : (\n \"\"\n )}\n \n {t(\"users.signUp.submit\")}\n \n \n {t(\"users.signUp.legalPrefix\")}\n
\n \n {t(\"users.signUp.terms\")}\n and{\" \"}\n {t(\"users.signUp.privacy\")}\n
\n
\n
\n
\n
\n
\n {spaceReference && showSpaceReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setAlert, setHiddenSidebar } from \"../../../store/app\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function MagicLink(props) {\n const space = useSelector((state) => state.space);\n const { t, i18n } = useTranslation();\n\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.magicLink.invalidEmailErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [showStepper, setStepper] = useState(false);\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 250);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (space.slug){\n setSpaceReference(space.slug);\n }\n }, [space]);\n\n const onMagicLink = () => {\n dispatch(\n setAlert({\n opened: true,\n title: t(\"users.magicLink.alertTitle\"),\n message: t(\"users.magicLink.alertMessage\"),\n color: \"green\",\n })\n );\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n \n\n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onMagicLink(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.magicLink.title\")}\n \n \n {t(\"users.magicLink.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n {t(\"users.magicLink.submit\")}\n \n ({\n borderTopColor: theme.colors.gray[2],\n color: theme.colors.gray[2],\n })}\n my=\"sm\"\n label=\"OR\"\n labelPosition=\"center\"\n labelProps={{ color: \"#666\" }}\n />\n \n \n {t(\"users.magicLink.footer\")}\n \n \n \n \n
\n
\n
\n {spaceReference && showSpaceReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setAlert, setHiddenSidebar } from \"../../../store/app\";\nimport FixedHeader from \"../FixedHeader\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n ScrollArea,\n} from \"@mantine/core\";\n\nexport default function Recover(props) {\n const space = useSelector((state) => state.space);\n const { t, i18n } = useTranslation();\n\n const dispatch = useDispatch();\n\n const [form, setForm] = useState({\n user: {\n email: \"\",\n },\n });\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 250);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n const onRecover = () => {\n dispatch(\n setAlert({\n opened: true,\n title: t(\"users.recover.alertTitle\"),\n message: t(\"users.recover.alertMessage\"),\n color: \"green\",\n })\n );\n };\n\n const onInputChange = (event, field) => {\n form.user[field] = event.target.value;\n setForm({ ...form });\n };\n\n return (\n \n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.recover.title\")}\n \n \n {t(\"users.recover.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n onInputChange(event, \"email\")}\n label={t(\"users.recover.email\")}\n radius=\"sm\"\n size=\"md\"\n mb={15}\n />\n onRecover()}\n >\n {t(\"users.recover.submit\")}\n \n \n {t(\"users.recover.footer\")}{\" \"}\n \n {t(\"users.recover.footerLink\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport DefaultAvatar from \"../../../src/images/fallback/default.png\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\nimport FixedHeader from \"../FixedHeader\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport {\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Image,\n Stepper,\n Grid,\n Textarea,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Edit(props) {\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.space);\n const user = useSelector((state) => state.user);\n\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n const [showStepper, setStepper] = useState(false);\n\n const form = useForm({\n initialValues: {\n bio: \"\",\n },\n });\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n initFormData();\n }, [user]);\n\n const initFormData = () => {\n form.setFieldValue(\"bio\", user.bio);\n };\n\n const onSave = (values) => {\n navigate(getSkipLink());\n };\n\n const getSkipLink = () => {\n if (space.slug) {\n if (space && space.permissions.block_until_approved){\n return `/space/${space.slug}/demo/pending`;\n }\n else{\n return `/space/${space.slug}`;\n }\n } else if (user.open_invitations) {\n return `/home/invitations`;\n } else if (user.space_count > 0) {\n return `/space/${space.slug}/settings/main`;\n } else {\n return `/space/${space.slug}/settings/main`;\n }\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n\n \n {!smallScreen && space.slug && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onSave(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.edit.title\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n
\n \n \n
\n \n {t(\"users.edit.addProfileImage\")}\n \n \n \n \n {t(\"users.edit.submit\")}\n \n {space.slug ? (\n \n \n {t(\"users.edit.skip\")}\n \n \n ) : (\n \n {t(\"users.edit.skip\")}\n \n )}\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { setHiddenSidebar } from \"../../../store/app\";\n\nimport getSymbolFromCurrency from \"currency-symbol-map\";\n\nimport SpaceReference from \"../../users/SpaceReference\";\nimport FixedHeader from \"../FixedHeader\";\nimport PaymentImage from \"../../../src/images/app/emptyPayment.png\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n Paper,\n Title,\n Image,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Payment(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [price, setPrice] = useState();\n const [currency, setCurrency] = useState();\n const [frequency, setFrequency] = useState();\n const [loaded, setLoaded] = useState(false);\n const [spaceReference, setSpaceReference] = useState();\n const space = useSelector((state) => state.space);\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n if (space.slug){\n setSpaceReference(space.slug);\n }\n }, [space]);\n\n useEffect(() => {\n if (space.slug) {\n onCreate();\n }\n }, [price]);\n\n const onCreate = () => {};\n\n const onPriceChange = (price, currency, frequency) => {\n setPrice(price);\n setCurrency(currency);\n setFrequency(frequency);\n setLoaded(true);\n };\n\n const onPay = () => {\n if (localStorage.getItem(\"dummy_was_registered\") == \"true\") {\n navigate(`/space/${space.slug}/demo/edit_profile`);\n } else {\n if (space.slug && space.permissions.block_until_approved) {\n navigate(`/space/${space.slug}/demo/pending`);\n } else {\n navigate(`/space/${space.slug}`);\n }\n }\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n const setStepper = () => {};\n const setShowSpaceReference = () => {};\n\n const onJoin = () => {\n if (localStorage.getItem(\"dummy_was_registered\") == \"true\") {\n navigate(`/space/${space.slug}/demo/edit_profile`);\n } else {\n navigate(`/space/${space.slug}`);\n }\n };\n\n const getFrequency = () => {\n if (!frequency) {\n return \"\";\n }\n return frequency != \"once\" ? ` / ${frequency}` : \"\";\n };\n\n const buttonText = () => {\n const amount = price ? parseFloat(price) : 0;\n\n return `${t(\"users.payment.pay\")} ${getSymbolFromCurrency(currency)}${amount\n .toFixed(2)\n .replace(\".00\", \"\")}${getFrequency()}`;\n };\n\n return (\n \n \n \n\n {!smallScreen && space.slug ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.payment.completePayment\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n {space.slug && price > 0 ? (\n <>\n \n onPay()}\n >\n {buttonText()}\n \n \n ) : (\n space.slug &&\n loaded && (\n onJoin()}\n >\n {t(\"users.payment.join\")}\n \n )\n )}\n \n \n \n \n {space.slug && (\n \n \n \n )}\n \n \n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {setHiddenSidebar} from '../../../store/app';\n\nimport TiptapReadonly from '../../tiptap/components/TiptapReadonly'\n\n\nimport HeaderImage from '../HeaderImage'\n\nimport FixedHeader from '../FixedHeader'\n\nimport Loading from \"../presentations/static/Loading\";\n\nimport ViewModel from \"../../../models/View\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Container,\n Stack,\n ScrollArea,\n Text,\n createStyles\n}\nfrom '@mantine/core';\n\nconst useStyles = createStyles((theme, {colors}, getRef) => ({\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color\n }\n}));\n\nexport default function Pending(props) {\n const { t, i18n } = useTranslation();\n\n const dispatch = useDispatch();\n\n const space = useSelector(state => state.space);\n const colors = useSelector(state => state.colors);\n\n const { classes, cx, theme } = useStyles({colors});\n\n const [loaded, setLoaded] = useState(false);\n const content = useRef({});\n const lastSlug = useRef();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0]\n // debugger;\n b.style.display = 'none';\n\n dispatch(setHiddenSidebar({hidden: true}))\n\n setTimeout(() => {\n\n const b = document.getElementsByTagName(\"body\")[0]\n b.style.display = '';\n dispatch(setHiddenSidebar({hidden: true}))\n\n }, 500)\n\n return (() => {\n setLoaded(false);\n dispatch(setHiddenSidebar({hidden: false}))\n\n })\n }, [])\n\n useEffect(() => {\n\n\n if (space.slug && lastSlug.current != space.slug) {\n lastSlug.current = space.slug;\n setLoaded(false);\n onFetch()\n }\n\n }, [space]);\n\n const onFetch = () => {\n ViewModel.onFetch(\"pending_member_view\", space.slug, (data) => {\n content.current = data.content\n setLoaded(true);\n }, (data) => {\n\n })\n }\n\n if (!loaded) {\n return ;\n }\n\n\n return (\n\n \n \n \n \n ({\n height: \"100%\"\n })}>\n {space && content.current ? (\n \n ) : (\n \n {t(\"spaces.pending.message\")}\n \n )}\n \n \n\n \n )\n}\n","import { getNeo4jWsHost } from \"../utils/Host\";\nimport { io } from \"socket.io-client\";\n\nconst url = getNeo4jWsHost(\"ws\");\n\nconst socket = io(url);\n\nconst socketManager = {\n subscribe: (channelSlug, callback) => {\n console.log(`SOCKETS - > User subscribing to channel: ${channelSlug}`);\n socket.emit(\"subscribe\", {\n channelSlug,\n auth_token: window.$currentUserAuthToken,\n username: window.$currentUsername\n });\n\n socket.on(channelSlug, callback);\n },\n unsubscribe: (channelSlug) => {\n socket.emit(\"unsubscribe\", {\n channelSlug,\n auth_token: window.$currentUserAuthToken,\n username: window.$currentUsername\n });\n\n socket.off(channelSlug);\n },\n};\n\nexport default socketManager;\n","import { useEffect, memo, useRef } from \"react\";\nimport manager from \"./manager\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setChildren, setTree } from \"../store/app\";\n\nimport Space from \"../models/neo4j/Space\";\n\nimport { storeJSON, getJSON } from \"../utils/LocalDB\";\n\nimport Broadcaster from \"../helpers/Broadcaster\";\n\nimport pako from \"pako\";\n\nconst SpaceChannel = memo(\n ({ spaceId, fetchSpace, access, updateChildren, onUpdateChildren }) => {\n const dispatch = useDispatch();\n\n const intervalId = useRef();\n const queue = useRef([]);\n const fetchedSpace = useRef({});\n const fetchedChildren = useRef([]);\n\n useEffect(() => {\n // if (!access.role){\n // return\n // }\n\n if (typeof spaceId !== \"string\") {\n return;\n }\n\n if (spaceId.length === 0) {\n return;\n }\n\n const time =\n access.role == \"manager\" || access.role == \"admin\" ? 500 : 1000;\n\n if (intervalId.current) {\n clearInterval(intervalId.current);\n }\n\n intervalId.current = setInterval(() => {\n if (!window.$waitForTemplateResponse) {\n const element = queue.current[0];\n queue.current.splice(0, 1);\n if (element) {\n execQueue({ ...element });\n }\n }\n }, time);\n\n const messageCallback = (data) => {\n console.log(\n `SOCKETS - > Message received to channel ${getChannelName()}: ${JSON.stringify(\n data\n )}`\n );\n\n addToQueue({ ...data });\n\n window.$connectedTo = spaceId;\n };\n\n const channelName = getChannelName();\n\n manager.subscribe(channelName, messageCallback);\n\n if (\n window.$connectedTo != spaceId ||\n fetchedChildren.length == 0 ||\n fetchedSpace.slug != spaceId\n ) {\n if (access.isTopSpace) {\n if (window.$lastTree != window.$fetchedTopSlug) {\n onFetchChildren(window.$fetchedTopSlug, \"tree-children\");\n }\n } else {\n if (window.$lastTree != window.$fetchedTopSlug) {\n onFetchChildren(window.$fetchedTopSlug, \"tree\");\n }\n\n onFetchChildren(spaceId, \"children\");\n }\n } else {\n console.log(\"SOCKETS SPACE FETCHING SKIPPED: \" + spaceId);\n }\n\n console.log(\"SOCKETS SPACE COMPONENT LOADED\");\n\n return () => {\n manager.unsubscribe(channelName);\n };\n }, [spaceId]);\n\n const execQueue = ({ action, id, slug }) => {\n // Exclude some events to avoid weird reloads\n if (action == \"space\") {\n if (\n slug == spaceId &&\n (access.role == \"manager\" || access.role == \"admin\")\n ) {\n fetchSpace();\n onFetchChildren(slug, \"children\", true);\n } else if (\n slug == spaceId &&\n (access.role == \"member\" || access.role == \"editor\" || access.role == \"moderator\") && (window.location.href.split(\"/\")[5] == \"list\" || window.location.href.split(\"/\")[5] == \"showcase\" || window.location.href.split(\"/\")[5] == \"events\")\n ) {\n onFetchChildren(slug, \"children\", true);\n }\n } else if (action == \"tree\") {\n if (data.topLevelSlug == window.$fetchedTopSlug) {\n onFetchChildren(data.topSlug, action, true);\n }\n } else if (\n action == \"add_member\" &&\n (!window.$spaceUserInteractions ||\n (window.$spaceUserInteractions &&\n !window.$spaceUserInteractions.logged_in) ||\n (window.$spaceUserInteractions &&\n window.$spaceUserInteractions.position <= 0))\n ) {\n if (id == window.$currentUsername) {\n fetchSpace();\n onFetchChildren(slug, \"children\", true);\n }\n } else if (\n action == \"delete_member\" &&\n (!window.$spaceUserInteractions ||\n (window.$spaceUserInteractions &&\n !window.$spaceUserInteractions.logged_in) ||\n (window.$spaceUserInteractions &&\n window.$spaceUserInteractions.position <= 0))\n ) {\n if (id == window.$currentUsername) {\n fetchSpace();\n onFetchChildren(slug, \"children\", true);\n }\n }\n };\n\n const addToQueue = ({ action, id, slug }) => {\n // window.$currentRole\n\n for (let i = 0; i < queue.current.length; i++) {\n const element = queue.current[i];\n if (\n element.action == action &&\n element.id == id &&\n element.slug == slug\n ) {\n return;\n }\n }\n\n queue.current.unshift({ action, id, slug });\n };\n\n const getChannelName = () => {\n return `space_${spaceId}`;\n };\n\n const onFetchChildren = (slug = null, action = \"tree\", direct = false) => {\n if (direct) {\n onFetchChildrenFromAPI(slug, action);\n return;\n }\n // getJSON(`spaces`, `space_children_${slug}`, (data) => {\n // if (data && data.space && data.space.slug) {\n // onSetTreeOrChildren(data, action)\n // }\n // });\n onFetchChildrenFromAPI(slug, action);\n };\n\n const onFetchChildrenFromAPI = (slug = null, action = \"tree\") => {\n slug = slug || spaceId;\n\n if (typeof slug === \"string\" && slug.length) {\n Space.onFetchChildren(\n slug,\n { topSlug: window.$fetchedTopSlug, role: access.role },\n (res) => {\n storeJSON(\"spaces\", `space_children_${slug}`, { ...res.data });\n \n onSetTreeOrChildren(res.data, action);\n },\n (data) => {}\n );\n }\n };\n\n const onSetTreeOrChildren = (data, action) => {\n const space = { ...data.space };\n const children = [...decompressGzip(data.children)];\n\n fetchedChildren.current = [...children];\n fetchedSpace.current = [...data.space];\n\n for (let i = 0; i < children.length; i++) {\n if (!children[0].role) {\n children[0].role = access.role;\n }\n }\n\n if (!updateChildren) {\n if (onUpdateChildren) {\n onUpdateChildren({ ...space, children: children, role: access.role });\n }\n return;\n }\n\n if (action.indexOf(\"tree\") >= 0) {\n window.$lastTree = space.slug;\n window.$forceTreeUpdate = true;\n\n dispatch(setTree({ ...space, children: children, role: access.role }));\n }\n if (action.indexOf(\"children\") >= 0) {\n window.$spaceChildren = {\n ...space,\n children: children,\n role: access.role,\n };\n\n dispatch(\n setChildren({ ...space, children: children, role: access.role })\n );\n }\n console.log(\"NEO UPDATE 1 -------> \" + space.name);\n Broadcaster.send(\n \"change_sidebarTreeNode\",\n document.getElementById(`sidebar_tree_node-${space.slug}`),\n { data: { space: space, children: children, role: access.role } }\n );\n };\n\n const decompressGzip = (compressedData) => {\n try {\n if (!compressedData) return [];\n const bytes = Uint8Array.from(atob(compressedData), c => c.charCodeAt(0));\n const decompressed = pako.ungzip(bytes, { to: \"string\" });\n return JSON.parse(decompressed);\n } catch (err) {\n console.error(\"Decompression error:\", err);\n return [];\n }\n };\n\n return null;\n }\n);\n\nexport default SpaceChannel;\n","import React, { useState, useEffect, useRef, memo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n useParams,\n useNavigate,\n useLocation,\n useSearchParams,\n} from \"react-router-dom\";\n\nimport {\n setSpace,\n setColors,\n setHiddenSidebar,\n setHiddenHeader,\n setHiddenCover,\n setHiddenTitle,\n setHiddenBreadcrumbs,\n setForceLayoutUpdate,\n setActions,\n setTiptapSidemenu\n} from \"../../store/app\";\nimport SpaceModel from \"../../models/Space\";\nimport SpaceNeo4jModel from \"../../models/neo4j/Space\";\nimport { storeJSON, getJSON, deleteJSON } from \"../../utils/LocalDB\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setCookie, getCookie } from \"../../utils/Cookies\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport SpaceChannel from \"../../sockets/Space\";\n\nconst Access = memo(({ spaceId, setSpaceAccess }) => {\n const space = useSelector((state) => state.space);\n const mainActions = useSelector((state) => state.mainActions);\n\n const { t, i18n } = useTranslation();\n\n const preview = useRef(false);\n const invitationSlug = useRef(null);\n const lastPage = useRef(null);\n\n const forceLayoutUpdate = useRef(null);\n\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n const location = useLocation();\n\n const lastColorTheme = useRef();\n\n const [access, setAccess] = useState(false);\n\n const [searchParams, setSearchParams] = useSearchParams();\n\n useEffect(() => {\n return () => {\n dispatch(setColors());\n dispatch(setHiddenSidebar({ hidden: false }));\n dispatch(setHiddenHeader({ hidden: false }));\n dispatch(setHiddenCover({ hidden: false }));\n dispatch(setHiddenTitle({ hidden: false }));\n dispatch(setHiddenBreadcrumbs({ hidden: false }));\n dispatch(setSpace({ slug: null }));\n window.$currentTopSlug = null;\n window.$fetchedTopSlug = null;\n };\n }, []);\n\n useEffect(() => {\n onSlugChange();\n }, [spaceId]);\n\n useEffect(() => {\n if (lastPage.current){\n if ((lastPage.current.indexOf(\"pending\") >= 0 && location.pathname.indexOf(\"pending\") < 0) || (lastPage.current.indexOf(\"private\") >= 0 && location.pathname.indexOf(\"private\") < 0) || (lastPage.current.indexOf(\"pay\") >= 0 && location.pathname.indexOf(\"pay\") < 0) || (lastPage.current.indexOf(\"register\") >= 0 && location.pathname.indexOf(\"register\") < 0)){\n onSlugChange();\n }\n }\n\n const refresh = new URLSearchParams(location.search).get(\"refresh\");\n if (refresh){\n hideLayout(window.$hiddenLayoutElements);\n }\n \n lastPage.current = location.pathname;\n }, [location]);\n\n useEffect(() => {\n hideLayout(window.$hiddenLayoutElements);\n }, [space]);\n \n const extractPath = (url) => {\n if (url.startsWith('http://') || url.startsWith('https://')) {\n const urlObject = new URL(url);\n return urlObject.pathname;\n } else {\n return url.startsWith('/') ? url : '/' + url;\n };\n };\n\n const onSlugChange = () => {\n fetchSpace();\n\n const edit = new URLSearchParams(location.search).get(\"edit\");\n if (edit) {\n dispatch(setActions({ editPage: true }));\n\n searchParams.delete('edit');\n setSearchParams(searchParams);\n setTimeout(() => {\n const zoom = new URLSearchParams(location.search).get(\"zoom_block\");\n if (zoom){\n dispatch(setTiptapSidemenu({ opened: \"newMedia\", option: \"zoom\" }));\n\n searchParams.delete('zoom_block');\n setSearchParams(searchParams);\n }\n }, 4000)\n }\n\n invitationSlug.current = new URLSearchParams(location.search).get(\n \"invitation_slug\"\n );\n\n if (invitationSlug.current) {\n setCookie(\"invitation_slug\", invitationSlug.current, 1);\n } else {\n invitationSlug.current = getCookie(\"invitation_slug\");\n }\n\n if (\n location.pathname.split(\"/\")[0] == \"circle\" ||\n location.pathname.split(\"/\")[1] == \"circle\"\n ) {\n const newUrl = location.pathname.replace(\"circle\", \"space\");\n navigate(newUrl);\n return;\n }\n\n preview.current =\n location.pathname.indexOf(\"/register\") >= 0 ||\n location.pathname.indexOf(\"/registration\") >= 0;\n };\n\n const hideLayout = (hidden_layout_elements = null) => {\n if (space && !space.slug) {\n return;\n }\n\n if (window.location.pathname.indexOf(\"/settings\") >= 0){\n return\n }\n\n if (!hidden_layout_elements) {\n hidden_layout_elements = space.hidden_layout_elements;\n }\n\n dispatch(\n setHiddenSidebar({\n hidden:\n hidden_layout_elements.indexOf(\"sidebar\") >= 0 ||\n space.pod_type == \"user_message\",\n })\n );\n\n if (hidden_layout_elements.indexOf(\"header\") >= 0) {\n const hide = space.permissions.can_manage ? \"admin\" : true;\n dispatch(\n setHiddenHeader({\n hidden: hide,\n })\n );\n if (!forceLayoutUpdate.current) {\n forceLayoutUpdate.current = true;\n setTimeout(() => {\n dispatch(setForceLayoutUpdate({ update: true }));\n }, 1000);\n }\n } else {\n dispatch(setHiddenHeader(false));\n }\n dispatch(\n setHiddenCover({\n hidden: hidden_layout_elements.indexOf(\"cover\") >= 0,\n })\n );\n dispatch(\n setHiddenTitle({\n hidden: hidden_layout_elements.indexOf(\"title\") >= 0,\n })\n );\n dispatch(\n setHiddenBreadcrumbs({\n hidden: hidden_layout_elements.indexOf(\"breadcrumbs\") >= 0,\n })\n );\n\n if (mainActions.editPage) {\n window.$spaceWideWidth = space.space_width;\n window.$registrationWideWidth = space.registration_width;\n }\n };\n\n const fetchSpace = () => {\n // setLoading(true);\n try {\n $(`#collapse-button-node-${spaceId}-closed`).click();\n } catch {}\n\n setAccess(false);\n\n \n const spaceAction = window.location.href.split(\"/\").pop()\n SpaceModel.onAccess(\n spaceId,\n (accessData) => {\n window.$spaceWideWidth = accessData.space_width;\n window.$registrationWideWidth = accessData.registration_width;\n window.$userIsPending = accessData.is_pending;\n window.$userIsSubscribed = accessData.is_subscribed;\n window.$spaceIsMigrated = accessData.is_migrated;\n\n try{\n if (\n accessData.colors &&\n JSON.stringify(accessData.colors) != JSON.stringify(lastColorTheme.current)\n ) {\n lastColorTheme.current = { ...accessData.colors };\n window.$themeColors = { ...accessData.colors };\n dispatch(setColors(accessData.colors));\n } else if (!accessData.colors) {\n lastColorTheme.current = null;\n dispatch(setColors());\n }\n \n if (window.location.pathname.indexOf(\"/content\") >= 0 || window.location.pathname.indexOf(\"/discussion\") >= 0 || window.location.pathname.indexOf(\"/list\") >= 0 || window.location.pathname.indexOf(\"/events\") >= 0 || window.location.pathname.indexOf(\"/showcase\") >= 0){\n hideLayout(accessData.hidden_layout_elements)\n }\n else if (window.location.pathname.indexOf(\"/private\") >= 0 || window.location.pathname.indexOf(\"/pending\") >= 0 || window.location.pathname.indexOf(\"/pay\") >= 0 || window.location.pathname.indexOf(\"/register\") >= 0 || window.location.pathname.indexOf(\"/registration\") >= 0){\n dispatch(setHiddenSidebar({ hidden: true }));\n }\n }\n catch{\n\n }\n\n SpaceNeo4jModel.onFetch(\n spaceId,\n (data) => {\n window.$isNeo4j = accessData.is_neo4j;\n if (accessData.is_neo4j != \"new\") {\n navigate(`/space_legacy/${spaceId}`);\n return;\n }\n setAccess({\n role: accessData.role,\n isTopSpace: data.topSpace == null,\n });\n\n try{\n onSetSpaceData(accessData, data.space, data.topSpace, data.path);\n onSpaceFetched(data.space);\n }\n catch{\n\n }\n \n\n if (accessData.redirect_to && accessData.redirect_to.mobile != spaceAction && [\"content\", \"discussion\", \"list\", \"events\"].indexOf(spaceAction) >= 0){\n setSpaceAccess(true)\n if (!window.location.pathname.includes(extractPath(accessData.redirect_to.url))) {\n navigate(accessData.redirect_to.url);\n }\n return\n }\n \n },\n (data) => {\n navigate(`/home/top`);\n }\n );\n },\n (data) => {\n navigate(`/home/top`);\n }\n );\n };\n\n const onSetSpaceData = (accessData, _space, topSpace, path) => {\n _space.permissions = _space.permissions[accessData.role];\n\n if (!(window.$currentRole === \"not_member\" && window.$spaceUserInteractions)) {\n window.$spaceUserInteractions = accessData.interactions;\n }\n window.$currentRole = accessData.role;\n _space.redirect_to = { ...accessData.redirect_to };\n\n // Set Global Variables\n window.$currentSpaceName = space.name;\n window.$currentTopSlug = topSpace ? topSpace.slug : _space.slug;\n window.$fetchedTopSlug = topSpace ? topSpace.slug : _space.slug;\n window.$fetchedTopSpace = topSpace ? {...topSpace} : {..._space};\n window.$currentSlug = spaceId;\n window.$showMarkCompleteButton =\n _space.permissions.show_mark_complete_button_in_header;\n window.$spaceIsPost = _space.is_post && !_space.permissions.can_manage;\n window.$spacePath = _space.path; // This is not in Neo4j\n\n if (mainActions.editPage) {\n window.$spaceWideWidth = _space.space_width;\n window.$registrationWideWidth = _space.registration_width;\n }\n\n \n dispatch(\n setSpace({\n ..._space,\n completed: _space.completed,\n permissions: { ..._space.permissions },\n colors: { ..._space.colors },\n interactions: _space.interactions ? { ..._space.interactions } : false,\n settings_tabs: [..._space.settings_tabs],\n settings: { ..._space.settings },\n is_top_level: _space.is_top_level,\n tags: [..._space.tags],\n tagged_with: [..._space.tagged_with],\n is_liked: _space.is_liked,\n path: path ? [...path] : [],\n })\n );\n };\n\n const onSpaceFetched = (_space) => {\n window.$hiddenLayoutElements = null;\n\n if (\n _space.redirect_to &&\n _space.redirect_to.action == \"react\" &&\n _space.redirect_to.url.indexOf(\"/processing\") >= 0 &&\n location.pathname.indexOf(\"processing\") < 0\n ) {\n navigate(_space.redirect_to.url);\n setSpaceAccess(true)\n return;\n }\n\n if (\n _space.redirect_to &&\n _space.redirect_to.action == \"react\" &&\n location.pathname.indexOf(\"processing\") >= 0\n ) {\n navigate(_space.redirect_to.url);\n setSpaceAccess(true)\n return;\n }\n\n if (\n location.pathname.indexOf(\"/members\") >= 0 &&\n ((_space.permissions.show_members &&\n (_space.is_open || _space.permissions.is_member)) ||\n _space.permissions.can_manage ||\n _space.permissions.is_admin)\n ) {\n setSpaceAccess(true)\n return;\n }\n\n if (location.pathname.indexOf(\"/broadcast/exclude\") >= 0) {\n setSpaceAccess(true)\n return;\n }\n\n if (location.pathname.indexOf(\"/getting_started\") >= 0) {\n setSpaceAccess(true)\n return;\n }\n\n if (location.pathname.indexOf(\"/gateway\") >= 0) {\n setSpaceAccess(true)\n return;\n }\n\n if (\n location.pathname.indexOf(\"/pay\") >= 0 &&\n !_space.permissions.is_member\n ) {\n setSpaceAccess(true)\n return;\n }\n\n if (\n location.pathname.indexOf(\"/edit\") >= 0 &&\n location.pathname.indexOf(\"/registration\") < 0\n ) {\n setSpaceAccess(true)\n return;\n }\n\n if (location.pathname.indexOf(\"/demo\") >= 0) {\n if (_space.permissions.can_manage) {\n setSpaceAccess(true)\n return;\n } else {\n navigate(`/space/${_space.slug}`);\n }\n }\n\n if (location.pathname.indexOf(\"/settings\") >= 0) {\n if (_space.permissions.can_manage) {\n setSpaceAccess(true)\n return;\n } else {\n navigate(`/space/${_space.slug}`);\n }\n }\n\n if (\n preview.current &&\n ((_space.block_until_registered && !_space.permissions.is_member) ||\n _space.permissions.can_manage ||\n _space.permissions.is_admin)\n ) {\n if (\n location.pathname.indexOf(\"/circle\") < 0 &&\n _space.permissions.use_legacy_registration_page\n ) {\n window.location.href= `/circle/${_space.slug}/register`;\n return\n } else {\n if (\n !_space.permissions.can_manage &&\n !_space.permissions.is_admin &&\n location.pathname.indexOf(\"/registration\") >= 0\n ) {\n if (_space.block_until_registered) {\n window.location.href= `/space/${_space.slug}/register`;\n return\n } else {\n window.location.href= `/space/${_space.slug}`;\n return\n }\n }\n }\n setSpaceAccess(true)\n return;\n }\n\n if (\n _space.redirect_to &&\n _space.redirect_to.action == \"react\" &&\n ((!_space.permissions.can_manage && !_space.permissions.is_admin) ||\n _space.redirect_to.force_admin)\n ) {\n const search = window.location.search;\n const _pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n const _reflection_id = new URLSearchParams(search).get(\"reflection_id\");\n const _interactive_slug = new URLSearchParams(search).get(\n \"interactive_slug\"\n );\n const _interactive_pop_up = new URLSearchParams(search).get(\n \"interactive_pop_up\"\n );\n const _tag = new URLSearchParams(search).get(\"tag\");\n if (_pod_message_id) {\n const symbol = _space.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n _space.redirect_to.url += `${symbol}pod_message_id=${_pod_message_id}`;\n }\n if (_reflection_id) {\n const symbol = _space.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n _space.redirect_to.url += `${symbol}reflection_id=${_reflection_id}`;\n }\n if (_tag) {\n const symbol = _space.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n _space.redirect_to.url += `${symbol}tag=${_tag}`;\n }\n if (_interactive_slug) {\n const symbol = _space.redirect_to.url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n const interactive_pop_up = _interactive_pop_up ? `&interactive_pop_up=${_interactive_pop_up}` : \"\";\n _space.redirect_to.url += `${symbol}interactive_slug=${_interactive_slug}${interactive_pop_up}`;\n }\n navigate(_space.redirect_to.url);\n } else if (_space.redirect_to && _space.redirect_to.action == \"redirect\") {\n window.history.replaceState(null, null, _space.redirect_to.url);\n window.location.href = _space.redirect_to.url;\n return;\n } else if (\n _space.version != location.pathname.split(\"/\").pop() &&\n location.pathname.indexOf(\"settings\") < 0 &&\n location.pathname.indexOf(\"processing\") < 0\n ) {\n navigate(`/space/${_space.slug}/${_space.version}`);\n }\n if (\n _space.version == location.pathname.split(\"/\").pop() &&\n _space.permissions.is_member\n ) {\n localStorage.removeItem(\"invitation_slug\");\n }\n setSpaceAccess(true)\n };\n\n return (\n <>\n \n \n {space.slug ? space.name : t(\"spaces.space.sutraLoading\")}\n \n \n {access && (\n \n )}\n \n );\n});\n\nexport default Access;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Routes, Route, useParams } from \"react-router-dom\";\n\nimport SpaceSettings from \"./settings/Settings\";\n\nimport Discussion from \"./presentations/discussion/Discussion\";\nimport ContentContainer from \"./presentations/content/ContentContainer\";\nimport RegistrationPage from \"./presentations/registration/RegistrationPage\";\nimport RegistrationPageReadonly from \"./presentations/registration/RegistrationPageReadonly\";\nimport Payment from \"./payment/Payment\";\nimport UserEdit from \"../users/Edit\";\nimport Private from \"./presentations/static/Private\";\nimport Disabled from \"./presentations/static/Disabled\";\nimport ConfirmId from \"./presentations/static/ConfirmId\";\nimport Pending from \"./presentations/static/Pending\";\nimport Processing from \"./presentations/static/Processing\";\nimport ProcessingPayment from \"./presentations/static/ProcessingPayment\";\nimport Invitation from \"./presentations/static/Invitation\";\nimport Survey from \"./presentations/static/Survey\";\nimport Gateway from \"./presentations/static/Gateway\";\nimport BroadcastExclude from \"./presentations/static/BroadcastExclude\";\nimport Loading from \"./presentations/static/Loading\";\n\nimport Events from \"./presentations/lists/Events\";\nimport List from \"./presentations/lists/List\";\nimport Showcase from \"./presentations/lists/Showcase\";\n\nimport GettingStarted from \"../app/GettingStarted\";\nimport Members from \"./members/List\";\nimport DummyStart from \"./dummy/Start\";\nimport DummySignIn from \"./dummy/SignIn\";\nimport DummySignUp from \"./dummy/SignUp\";\nimport DummyMagicLink from \"./dummy/MagicLink\";\nimport DummyRecover from \"./dummy/Recover\";\nimport DummyEditProfile from \"./dummy/Edit\";\nimport DummyPay from \"./dummy/Payment\";\nimport DummyPending from \"./dummy/Pending\";\n\nimport Access from \"./Access\";\n\nexport default function Space(props) {\n const params = useParams();\n const [access, setAccess] = useState(false);\n const lastSlug = useRef()\n\n useEffect(() => {\n // if (lastSlug.current == params.slug)\n console.log(\"ENTERING SPACE: \" + params.slug)\n setAccess(false)\n }, [params.slug])\n\n return (\n <>\n \n {access ? (\n \n }\n />\n\n }\n />\n\n }\n />\n\n } />\n\n }\n />\n\n } />\n\n \n }\n />\n\n \n }\n />\n\n } />\n\n } />\n\n }\n />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n }\n />\n\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n ) : \"\"}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport AuthModel from \"../../models/Auth\";\n\nimport { setHiddenSidebar } from \"../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"./SpaceReference\";\nimport PlanReference from \"../app/payment/PlanReference\";\nimport AffiliateData from \"./AffiliateData\";\n\nimport { setCookie } from \"../../utils/Cookies\";\n\nimport { Helmet } from \"react-helmet\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nexport default function Start(props) {\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const queryParams = useLocation().search;\n const { t, i18n } = useTranslation();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.start.invalidEmailErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n const [planReference, setPlanReference] = useState();\n const [providers, setProviders] = useState([]);\n const [joining, setJoining] = useState();\n\n const [dialog, setDialog] = useState({\n opened: false,\n title: \"\",\n message: \"\",\n color: \"indigo\",\n });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n const spaceReference = new URLSearchParams(queryParams).get(\"s\");\n const planReference = new URLSearchParams(queryParams).get(\"p\");\n setJoining(new URLSearchParams(queryParams).get(\"j\") == \"true\");\n\n setSpaceReference(spaceReference);\n setPlanReference(planReference);\n }, [queryParams]);\n\n const onStart = () => {\n const email = form.values.email.trim();\n AuthModel.onStart(\n email,\n spaceReference,\n (data) => {\n // Success callback\n // dispatch(setAlert({opened: true, title: data.title, message: data.message, color: \"green\"}))\n\n if (spaceReference) {\n navigate(\n `/user/sign_in?email=${email}&s=${spaceReference}&m=${data.data.is_member}${joining ? \"&j=true\" : \"\"}`\n );\n } else if (planReference) {\n navigate(`/user/sign_in?email=${email}&p=${planReference}`);\n } else {\n navigate(`/user/sign_in?email=${email}`);\n }\n },\n (data) => {\n // Error callback\n // dispatch(setAlert({opened: true, title: data.title, message: data.message, color: \"green\"}))\n if (spaceReference) {\n navigate(`/user/sign_up?email=${email}&s=${spaceReference}`);\n } else if (planReference) {\n navigate(`/user/sign_up?email=${email}&p=${planReference}`);\n } else {\n navigate(`/user/sign_up?email=${email}`);\n }\n }\n );\n };\n\n const onProviderSignIn = (link, redirect_to) => {\n setCookie(\"sso_redirect_to\", redirect_to, 365 * 10);\n window.location.href= link;\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n {`Sutra - Start`}\n \n \n \n \n \n
onStart(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.start.title\")}\n \n \n {t(\"users.start.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n {t(\"users.start.submit\")}\n \n {providers.map((provider) => {\n return (\n ({\n backgroundColor: provider.button_color,\n color: provider.button_text_color,\n \"&:hover\": {\n backgroundColor: provider.button_color,\n color: provider.button_text_color,\n },\n })}\n onClick={() => onProviderSignIn(provider.link, provider.redirect_to)}\n >\n {`Sign in with ${provider.button_label}`}\n \n );\n })}\n \n \n \n
\n
\n
\n {spaceReference && showSpaceReference && spaceReference != \"zoom\" && (\n \n \n \n )}\n {planReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useLocation } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { usePostHog } from 'posthog-js/react';\n\nimport AuthModel from \"../../models/Auth\";\nimport useAuthUser from \"../../utils/AuthUser\";\nimport { setUser, setAlert, setHiddenSidebar } from \"../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"./SpaceReference\";\nimport PlanReference from \"../app/payment/PlanReference\";\n\nimport { setCookie } from \"../../utils/Cookies\";\n\nimport {\n TextInput,\n PasswordInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery, useFocusTrap } from \"@mantine/hooks\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function SignIn(props) {\n const { t, i18n } = useTranslation();\n const dispatch = useDispatch();\n const posthog = usePostHog();\n const queryParams = useLocation().search;\n\n const { setAuthUser } = useAuthUser();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n password: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.signIn.invalidEmailErrorMsg\"),\n },\n });\n\n const focusTrapRef = useFocusTrap();\n\n const [spaceReference, setSpaceReference] = useState();\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n const [planReference, setPlanReference] = useState();\n const [showStepper, setStepper] = useState(false);\n const [isMember, setIsMember] = useState(false);\n const [providers, setProviders] = useState([]);\n const [joining, setJoining] = useState();\n\n const [dialog, setDialog] = useState({\n opened: false,\n title: \"\",\n message: \"\",\n color: \"indigo\",\n });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n const spaceReference = new URLSearchParams(queryParams).get(\"s\");\n const planReference = new URLSearchParams(queryParams).get(\"p\");\n setIsMember(new URLSearchParams(queryParams).get(\"m\") == \"true\");\n setJoining(new URLSearchParams(queryParams).get(\"j\") == \"true\");\n \n let email = decodeURIComponent(\n new URLSearchParams(queryParams).get(\"email\")\n );\n email = email === null || email === \"null\" ? \"\" : email.replace(/ /g, \"+\");\n form.setFieldValue(\"email\", email);\n setSpaceReference(spaceReference);\n setPlanReference(planReference);\n }, [queryParams]);\n\n const onSignIn = () => {\n const email = form.values.email.trim();\n AuthModel.onSignIn(\n email,\n form.values.password,\n { slug: spaceReference, plan: planReference, joining: joining },\n (data) => {\n // Success callback\n // dispatch(setAlert({opened: true, title: data.title, message: data.message, color: \"green\"}))\n\n data.user.redirect_to = data.redirect_to;\n\n setAuthUser(data.user);\n dispatch(setUser(data.user));\n if (typeof posthog?.identify === \"function\") {\n posthog.identify(data.user.id, {\n email: data.user.email\n });\n }\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const getMagicLinkPath = () => {\n if (form.values.email) {\n if (spaceReference) {\n return `/user/magic_link?email=${form.values.email}&s=${spaceReference}`;\n } else if (planReference) {\n return `/user/magic_link?email=${form.values.email}&p=${planReference}`;\n } else {\n return `/user/magic_link?email=${form.values.email}`;\n }\n } else {\n if (spaceReference) {\n return `/user/magic_link?s=${spaceReference.slug}`;\n } else if (planReference) {\n return `/user/magic_link?p=${planReference}`;\n } else {\n return `/user/magic_link`;\n }\n }\n };\n\n const onProviderSignIn = (link, redirect_to) => {\n setCookie(\"sso_redirect_to\", redirect_to, 365 * 10);\n window.location.href= link;\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n {`Sutra - Sign in`}\n \n \n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n onSignIn(values))}\n ref={focusTrapRef}\n >\n \n \n ({ fontSize: 28, fontWeight: 900 })}\n order={1}\n >\n {t(\"users.signIn.title\")}\n \n \n {t(\"users.signIn.subtitle\")}{\" \"}\n \n {t(\"users.signIn.subtitleLink\")}\n \n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n \n {t(\"users.signIn.submit\")}\n \n ({\n borderTopColor: theme.colors.gray[2],\n color: theme.colors.gray[2],\n })}\n my=\"sm\"\n label=\"OR\"\n labelPosition=\"center\"\n labelProps={{ color: \"#666\" }}\n />\n \n {t(\"users.signIn.magicLink\")}\n \n {providers.map((provider) => {\n return (\n ({\n backgroundColor: provider.button_color,\n color: provider.button_text_color,\n \"&:hover\": {\n backgroundColor: provider.button_color,\n color: provider.button_text_color,\n },\n })}\n onClick={() => onProviderSignIn(provider.link, provider.redirect_to)}\n >\n {`Sign in with ${provider.button_label}`}\n \n );\n })}\n \n \n {t(\"users.signIn.forgotPassword\")}\n \n \n \n \n \n \n \n {spaceReference && showSpaceReference && spaceReference != \"zoom\" && (\n \n \n \n )}\n {planReference && (\n \n \n \n )}\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useLocation } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { usePostHog } from 'posthog-js/react';\n\nimport AuthModel from \"../../models/Auth\";\nimport useAuthUser from \"../../utils/AuthUser\";\nimport { setUser, setAlert, setHiddenSidebar } from \"../../store/app\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport SpaceReference from \"./SpaceReference\";\nimport PlanReference from \"../app/payment/PlanReference\";\n\nimport AffiliateData from \"./AffiliateData\";\n\nimport {\n Box,\n TextInput,\n PasswordInput,\n Checkbox,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Divider,\n Grid,\n Stepper,\n createStyles,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function SignUp(props) {\n const dispatch = useDispatch();\n const posthog = usePostHog();\n const queryParams = useLocation().search;\n const { t, i18n } = useTranslation();\n const { setAuthUser } = useAuthUser();\n\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n username: \"\",\n password: \"\",\n subscribe_to_sutra: true,\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.signUp.invalidEmailErrorMsg\"),\n password: (value) =>\n value.length >= 8 ? null : t(\"users.signUp.invalidPasswordErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [planReference, setPlanReference] = useState();\n const [showStepper, setStepper] = useState(false);\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n const [loading, setLoading] = useState(false);\n const [showNewsLetter, setShowNewsLetter] = useState(false);\n const [joining, setJoining] = useState();\n\n const [dialog, setDialog] = useState({\n opened: false,\n title: \"\",\n message: \"\",\n color: \"indigo\",\n });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 500);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n const spaceReference = new URLSearchParams(queryParams).get(\"s\");\n const planReference = new URLSearchParams(queryParams).get(\"p\");\n setJoining(new URLSearchParams(queryParams).get(\"j\") == \"true\");\n let email = new URLSearchParams(queryParams).get(\"email\");\n email = email === null ? \"\" : email.replace(/ /g, \"+\"); //https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams\n form.setFieldValue(\"email\", email);\n setSpaceReference(spaceReference);\n setPlanReference(planReference);\n }, [queryParams]);\n\n const useStyles = createStyles((theme) => ({\n invalid: {\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.fn.rgba(theme.colors.red[8], 0.15)\n : theme.colors.red[0],\n },\n\n icon: {\n color: theme.colors.red[theme.colorScheme === \"dark\" ? 7 : 6],\n },\n }));\n\n const onSignUp = () => {\n try {\n if (!grecaptcha) {\n dispatch(\n setAlert({\n opened: true,\n title: \"Something came up...\",\n message: \"Recaptcha validation failed\",\n color: \"red\",\n })\n );\n return;\n }\n\n grecaptcha.ready(function () {\n // debugger;\n grecaptcha\n .execute(\"6LcMh-EqAAAAABsx_TYiYDHpOaGRVEhROOTpm3Vb\", {\n action: \"submit\",\n })\n .then(function (token) {\n console.log(\"token\", token);\n // debugger\n // Add your logic to submit to your backend server here.\n setLoading(true);\n const user_params = { ...form.values };\n user_params.email = user_params.email.trim();\n\n if (spaceReference) {\n user_params.subscribe_to_sutra = false;\n }\n\n AuthModel.onSignUp(\n { ...user_params, recaptcha_token: token },\n { slug: spaceReference, plan: planReference, joining: joining },\n (data) => {\n // Success callback\n // dispatch(setAlert({opened: true, title: data.title, message: data.message, color: \"green\"}))\n setLoading(false);\n data.user.redirect_to = data.redirect_to;\n\n setAuthUser(data.user);\n dispatch(setUser(data.user));\n if (typeof posthog?.identify === \"function\") {\n posthog.identify(data.user.id, {\n email: data.user.email\n });\n }\n },\n (data) => {\n setLoading(false);\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n });\n });\n } catch (err) {\n console.log(\"ERROR\", err);\n dispatch(\n setAlert({\n opened: true,\n title: \"Something came up...\",\n message: \"Recaptcha validation failed\",\n color: \"red\",\n })\n );\n return;\n }\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n const recaptchaVerifyCallback = (response) => {};\n\n const recaptchaOnLoadCallback = () => {};\n\n return (\n \n \n {`Sutra - Sign up`}\n \n \n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onSignUp(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.signUp.title\")}\n \n \n {t(\"users.signUp.subtitle\")}{\" \"}\n \n {t(\"users.signUp.subtitleLink\")}\n \n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n \n \n \n {window.location.hostname.indexOf(\"stablenavel.com\") >=\n 0 && (\n \n )}\n\n {(!spaceReference || showNewsLetter) ? (\n \n ) : (\n \"\"\n )}\n \n {t(\"users.signUp.submit\")}\n \n \n {t(\"users.signUp.legalPrefix\")}\n
\n \n {t(\"users.signUp.terms\")}\n {\" \"}\n and{\" \"}\n \n {t(\"users.signUp.privacy\")}\n \n
\n
\n \n
\n
\n
\n
\n {spaceReference && showSpaceReference && spaceReference != \"zoom\" && (\n \n \n \n )}\n {planReference && (\n \n \n \n )}\n
\n \n
\n
\n );\n}\n","import React, { useEffect } from \"react\";\n\nimport { useDispatch } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport useAuthUser from \"../../utils/AuthUser\";\nimport { setUser, setAlert } from \"../../store/app\";\n\nimport { Title, Container } from \"@mantine/core\";\n\nexport default function SignOut(props) {\n const dispatch = useDispatch();\n const { t, i18n } = useTranslation();\n const { removeAuthUser } = useAuthUser();\n\n useEffect(() => {\n removeAuthUser();\n dispatch(setUser({}));\n dispatch(\n setAlert({\n opened: true,\n title: t(\"users.signOut.title\"),\n message: t(\"users.signOut.message\"),\n color: \"green\",\n })\n );\n window.location.href= \"https://sutra.co\";\n }, []);\n\n return (\n \n ({})}>\n {/* {t(\"users.signOut.loggedOut\")} */}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport AuthModel from \"../../models/Auth\";\nimport useAuthUser from \"../../utils/AuthUser\";\nimport { setAlert, setHiddenSidebar } from \"../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function Recover(props) {\n const { t, i18n } = useTranslation();\n\n const dispatch = useDispatch();\n\n const { setAuthUser } = useAuthUser();\n\n const [form, setForm] = useState({\n user: {\n email: \"\",\n },\n });\n\n const [dialog, setDialog] = useState({\n opened: false,\n title: \"\",\n message: \"\",\n color: \"indigo\",\n });\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 250);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n const onRecover = () => {\n const email = form.user.email.trim();\n AuthModel.onRecoverPasswordInstructions(\n email,\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onInputChange = (event, field) => {\n form.user[field] = event.target.value;\n setForm({ ...form });\n };\n\n return (\n \n \n {`Sutra - Recover password`}\n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.recover.title\")}\n \n \n {t(\"users.recover.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n onInputChange(event, \"email\")}\n label={t(\"users.recover.email\")}\n radius=\"sm\"\n size=\"md\"\n mb={15}\n />\n onRecover()}\n >\n {t(\"users.recover.submit\")}\n \n \n {t(\"users.recover.footer\")}{\" \"}\n \n {t(\"users.recover.footerLink\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport AuthModel from \"../../models/Auth\";\nimport useAuthUser from \"../../utils/AuthUser\";\nimport { setUser, setAlert, setHiddenSidebar } from \"../../store/app\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n PasswordInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function ResetPassword(props) {\n const params = useParams();\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n\n const { setAuthUser } = useAuthUser();\n\n const { t, i18n } = useTranslation();\n\n const [form, setForm] = useState({\n user: {\n password: \"\",\n password_confirmation: \"\",\n },\n });\n\n const [dialog, setDialog] = useState({\n opened: false,\n title: \"\",\n message: \"\",\n color: \"indigo\",\n });\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 250);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n const onResetPassword = () => {\n AuthModel.onResetPassword(\n params.reset_password_token,\n form.user.password,\n form.user.password_confirmation,\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n navigate(\"/user/sign_in\");\n\n setAuthUser(data.user);\n dispatch(setUser(data.user));\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onInputChange = (event, field) => {\n form.user[field] = event.target.value;\n setForm({ ...form });\n };\n\n return (\n \n \n {`Sutra - Reset password`}\n \n \n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.resetPassword.title\")}\n \n \n {t(\"users.resetPassword.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n onInputChange(event, \"password\")}\n label={t(\"users.resetPassword.password\")}\n radius=\"sm\"\n mb={15}\n />\n \n onInputChange(event, \"password_confirmation\")\n }\n label={t(\"users.resetPassword.passwordConfirmation\")}\n radius=\"sm\"\n mb={15}\n />\n onResetPassword()}\n >\n {t(\"users.resetPassword.submit\")}\n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { Link, useParams, useLocation } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nimport AuthModel from \"../../models/Auth\";\nimport useAuthUser from \"../../utils/AuthUser\";\nimport { setAlert, setHiddenSidebar } from \"../../store/app\";\n\nimport SpaceReference from \"./SpaceReference\";\nimport PlanReference from \"../app/payment/PlanReference\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TextInput,\n Paper,\n Title,\n Text,\n Container,\n Button,\n Box,\n Divider,\n Stepper,\n Grid,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useForm } from \"@mantine/form\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { Helmet } from \"react-helmet\";\n\nexport default function MagicLink(props) {\n const { t, i18n } = useTranslation();\n\n const params = useParams();\n\n const dispatch = useDispatch();\n const queryParams = useLocation().search;\n\n const { setAuthUser } = useAuthUser();\n\n const form = useForm({\n initialValues: {\n email: \"\",\n },\n\n validate: {\n email: (value) =>\n /^\\S+@\\S+$/.test(value.trim())\n ? null\n : t(\"users.magicLink.invalidEmailErrorMsg\"),\n },\n });\n\n const [spaceReference, setSpaceReference] = useState();\n const [planReference, setPlanReference] = useState();\n const [showStepper, setStepper] = useState(false);\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n\n const [dialog, setDialog] = useState({\n opened: false,\n title: \"\",\n message: \"\",\n color: \"indigo\",\n });\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 250);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n const spaceReference = new URLSearchParams(queryParams).get(\"s\");\n const planReference = new URLSearchParams(queryParams).get(\"p\");\n let email = new URLSearchParams(queryParams).get(\"email\");\n email = email === null ? \"\" : email.replace(/ /g, \"+\");\n form.setFieldValue(\"email\", email);\n setSpaceReference(spaceReference);\n setPlanReference(planReference);\n }, [queryParams]);\n\n const onMagicLink = () => {\n const email = form.values.email.trim();\n AuthModel.onMagicLink(\n email,\n { slug: spaceReference, plan: planReference },\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n form.setFieldValue(\"email\", \"\");\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const smallScreen = useMediaQuery(\"(max-width: 768px)\");\n\n return (\n \n \n {`Sutra - Magic link`}\n \n \n {!smallScreen && spaceReference && showStepper ? (\n \n \n \n \n \n \n \n ) : (\n \"\"\n )}\n \n \n \n
onMagicLink(values))}>\n \n \n ({ fontSize: 28, fontWeight: 900 })}>\n {t(\"users.magicLink.title\")}\n \n \n {t(\"users.magicLink.subtitle\")}\n \n \n ({ borderTopColor: theme.colors.gray[2] })}\n my=\"sm\"\n />\n \n \n \n {t(\"users.magicLink.submit\")}\n \n ({\n borderTopColor: theme.colors.gray[2],\n color: theme.colors.gray[2],\n })}\n my=\"sm\"\n label=\"OR\"\n labelPosition=\"center\"\n labelProps={{ color: \"#666\" }}\n />\n \n \n {t(\"users.magicLink.footer\")}\n \n \n \n \n
\n
\n
\n {spaceReference && showSpaceReference && (\n \n \n \n )}\n {planReference && (\n \n \n \n )}\n
\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useParams, useNavigate, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport AuthModel from \"../../models/Auth\";\nimport useAuthUser from \"../../utils/AuthUser\";\nimport { setUser, setAlert, setHiddenSidebar } from \"../../store/app\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box, Modal, Loader, Text } from \"@mantine/core\";\n\nimport { getCookie } from \"../../utils/Cookies\";\n\nexport default function MagicSignIn(props) {\n const params = useParams();\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n const navigate = useNavigate();\n\n const dispatch = useDispatch();\n const queryParams = useLocation().search;\n const { setAuthUser } = useAuthUser();\n\n const [spaceReference, setSpaceReference] = useState();\n const [showSpaceReference, setShowSpaceReference] = useState(true);\n const [planReference, setPlanReference] = useState();\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: false }));\n\n const spaceReference = new URLSearchParams(queryParams).get(\"s\");\n const planReference = new URLSearchParams(queryParams).get(\"p\");\n\n setSpaceReference(spaceReference);\n setPlanReference(planReference);\n\n setTimeout(() => {\n onMagicSignIn(spaceReference);\n }, 1000);\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: false }));\n\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 1000);\n\n if (user.authenticated == true) {\n if (spaceReference) {\n navigate(`/space/${spaceReference}`);\n return;\n }\n if (planReference) {\n navigate(`/app/pay/${planReference}`);\n return;\n }\n navigate(`/home/top`);\n }\n }, [user]);\n\n const onMagicSignIn = (spaceReference) => {\n\n const cookieSlug = getCookie(`sso_redirect_to`)\n\n AuthModel.onMagicSignIn(\n params.magic_token,\n { slug: cookieSlug ? cookieSlug : spaceReference, plan: planReference },\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n data.user.redirect_to = data.redirect_to;\n\n setAuthUser(data.user);\n dispatch(setUser(data.user));\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n navigate(\"/user/sign_out\");\n }\n );\n };\n\n return (\n {}}\n opened={true}\n zIndex={99999}\n >\n \n \n {t(\"users.magicSignin.text\")}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\n\nimport {\n Button,\n Box,\n Group,\n Image,\n Text,\n Stack,\n Container,\n Grid,\n Title,\n MantineProvider,\n createStyles,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { useTranslation } from \"react-i18next\";\nimport UserModel from \"../../models/User\";\nimport DirectMessageModel from \"../../models/DirectMessage\";\nimport SpaceModel from \"../../models/Space\";\nimport DefaultAvatar from \"../../src/images/fallback/default.png\";\nimport SpaceListItem from \"../spaces_neo/presentations/List\";\n\nimport { setHiddenSidebar } from \"../../store/app\";\n\nimport { Helmet } from \"react-helmet\";\n\nconst useStyles = createStyles((theme) => ({\n userInfoWrap: {\n backgroundColor: theme.colors.gray[0],\n borderRadius: 10,\n padding: 40,\n paddingTop: 30,\n paddingBottom: 30,\n },\n userInfoMediumScreen: {\n justifyContent: \"center\",\n },\n avatarWrapMediumScreen: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n avatarMediumScreen: {\n width: 200,\n marginRight: 0,\n },\n avatar: {\n width: 300,\n marginRight: 30,\n },\n userDetailsWrap: {\n alignSelf: \"center\",\n },\n nameWrapMediumScreen: {\n justifyContent: \"center\",\n },\n nameWrap: {\n justifyContent: \"flex-start\",\n },\n}));\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nexport default function Profile(props) {\n const dispatch = useDispatch();\n const params = useParams();\n const navigate = useNavigate();\n const { t, i18n } = useTranslation();\n const { classes, theme } = useStyles();\n const smallScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.sm}px)`\n );\n const mediumScreen = useMediaQuery(`(max-width: 768px)`);\n const largeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.lg}px)`\n );\n const extraLargeScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.xl}px)`\n );\n\n const user = useSelector((state) => state.user);\n const [profileUser, setProfileUser] = useState({});\n const [spaces, setSpaces] = useState([]);\n const [showAllSpaces, setShowAllSpaces] = useState(false);\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n setTimeout(() => {\n dispatch(setHiddenSidebar({ hidden: true }));\n }, 1000);\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n console.log(mediumScreen);\n }, [mediumScreen]);\n\n useEffect(() => {\n if (params.username) {\n onFetch();\n onFetchSpaces();\n }\n }, [params]);\n\n const onFetch = () => {\n UserModel.onFetch(\n params.username,\n (data) => {\n setProfileUser(data);\n },\n (data) => {}\n );\n };\n\n const onFetchSpaces = () => {\n const ctrl = new AbortController();\n SpaceModel.onFetchByUser(\n params.username,\n [\"members\"],\n paginator,\n (data) => {\n if (paginator.page == 1) {\n setSpaces(data);\n } else {\n setSpaces(spaces.concat(data));\n }\n },\n (data) => {},\n ctrl.signal\n );\n };\n\n const onDirectMessage = () => {\n if (!user.authenticated) {\n navigate(`/user/start`);\n return;\n }\n DirectMessageModel.onFetchOrCreate(\n profileUser.id,\n (data) => {\n navigate(`/space/${data.space.slug}/discussion`);\n },\n (data) => {}\n );\n };\n\n if (!user) {\n return null;\n }\n\n return (\n \n \n \n {profileUser.id\n ? `Sutra - ${profileUser.username}`\n : `Sutra - Dashboard`}\n \n \n \n {/*\n ({\n width: 200,\n '&:hover': {\n backgroundColor: theme.colors.gray[0]\n }\n })}\n variant=\"outline\"\n radius=\"xl\"\n size=\"sm\"\n color=\"gray\"\n mb={20}\n leftIcon={}\n >\n Return to space\n \n */}\n\n \n \n \n \n \n \n \n \n ({\n fontWeight: 900,\n marginRight: 10,\n })}\n >\n {profileUser.full_name}\n \n \n @{profileUser.username}\n \n \n {profileUser && user.id != profileUser.id ? (\n ({\n width: 200,\n })}\n radius=\"xl\"\n size=\"md\"\n onClick={() => onDirectMessage()}\n >\n {t(\"users.profile.button\")}\n \n ) : (\n \n ({\n width: 200,\n })}\n radius=\"xl\"\n size=\"md\"\n component={Link}\n to=\"/settings/profile\"\n >\n {t(\"users.profile.button2\")}\n \n \n )}\n \n \n \n \n\n {profileUser.bio && profileUser.bio.length > 0 ? (\n {profileUser.bio}\n ) : (\n \"\"\n )}\n\n {spaces && spaces.length > 0 ? (\n <>\n ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n
\n ({ fontWeight: 900 })}>\n {t(\"users.profile.title\")}\n \n
\n \n setShowAllSpaces(showAllSpaces ? false : true)}\n className={{}}\n >\n {spaces.length > 6\n ? showAllSpaces\n ? \"See less\"\n : `See all`\n : \"\"}\n \n \n \n \n \n {spaces\n .slice(0, showAllSpaces ? spaces.length : 6)\n .map((space) => {\n return (\n \n \n \n );\n })}\n \n \n \n ) : (\n \"\"\n )}\n \n
\n
\n );\n}\n","import React, { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\n\nimport UserModel from \"../../models/User\";\n\nexport default function Gateway(props) {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const params = useParams();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n // debugger;\n b.style.display = \"none\";\n\n return () => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n };\n }, []);\n\n useEffect(() => {\n UserModel.onGateway(\n params.plan,\n (data) => {\n navigate(data.redirect_to.url);\n },\n (data) => {}\n );\n }, [params]);\n\n return

;\n}\n","import { useEffect, memo, useRef } from \"react\";\nimport manager from \"./manager\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setUser } from \"../store/app\";\n\nimport UserModel from \"../models/User\";\n\nimport * as Sentry from \"@sentry/react\";\n\nimport pluralizeJs from \"pluralize\";\n\nimport { storeJSON, getJSON } from \"../utils/LocalDB\";\n\nconst UserChannel = memo(({ username, userId, authToken }) => {\n const dispatch = useDispatch();\n\n const connectedTo = useRef();\n const lastProcessedTimestamp = useRef(0);\n const currentActivity = useRef({});\n const grouperTimeoutId = useRef(null);\n const firstLoad = useRef(false);\n\n // getJSON(`spaces`, `last-user-activity-at`, (data) => {\n // lastProcessedTimestamp.current = data ? data.time : 0;\n // });\n\n // getJSON(`spaces`, `user-activity`, (data) => {\n\n // currentActivity.current = data && data.activity\n // ? data\n // : { activity: [], today: { date: 0, ids: [] } };\n\n // const todayDate = new Date().setHours(0, 0, 0, 0);\n // if (\n // currentActivity.current.today.date > 0 &&\n // currentActivity.current.today.date < todayDate\n // ) {\n // currentActivity.current.today.date = todayDate;\n // currentActivity.current.today.ids = [];\n // }\n // });\n\n useEffect(() => {\n if (!username) {\n return;\n }\n\n if (connectedTo.current == username) {\n return;\n }\n\n const messageCallback = (data) => {\n console.log(\n `SOCKETS - > Message received to channel ${getChannelName()}: ${JSON.stringify(\n data\n )}`\n );\n\n const { action, id, slug } = data;\n\n connectedTo.current = username;\n\n if (action == \"user\") {\n if (slug == username || id == username) {\n onFetchUser();\n }\n }\n };\n\n const channelName = getChannelName();\n\n manager.subscribe(channelName, messageCallback);\n\n onFetchUser();\n\n return () => {\n manager.unsubscribe(channelName);\n connectedTo.current = null;\n };\n }, [username]);\n\n const getChannelName = () => {\n return `user_${username}`;\n };\n\n const onFetchUser = () => {\n UserModel.onAuth(\n userId,\n (data) => {\n window.$currentUserId = data.id;\n window.$currentName = data.name;\n window.$currentUserAuthToken = data.authentication_token;\n window.$currentUserId = data.id;\n window.$currentUsername = data.username;\n window.$currentEmail = data.email;\n window.$currentAccountType = data.account_type;\n window.$videoUploadKey = data.video_upload_key;\n window.$currentUserIsAdmin = data.is_admin;\n window.$currentUserAvatar =\n data.avatar && data.avatar.url ? data.avatar.url : DefaultAvatar;\n window.$videoUploadKey = data.video_upload_key;\n Sentry.setContext(\"user\", {\n id: data.id,\n username: data.username,\n });\n\n if (window.hj) {\n window.hj(\"identify\", data.username, {});\n }\n\n let auxActivity = [...data.activity];\n data.activity = [];\n if (!firstLoad.current){\n dispatch(setUser({ ...data }));\n }\n\n if (grouperTimeoutId.current){\n clearTimeout(grouperTimeoutId.current)\n }\n\n grouperTimeoutId.current = setTimeout(() => {\n const oldActivities = [...auxActivity[1]];\n oldActivities.forEach((notification) => {\n notification.is_seen = true;\n });\n \n auxActivity = [\n ...groupActivity(auxActivity[0]),\n ...oldActivities,\n ];\n \n data.activity = auxActivity;\n dispatch(setUser({ ...data }));\n }, firstLoad.current ? 0 : 1000)\n\n firstLoad.current = true\n\n },\n (data) => {}\n );\n };\n\n const groupActivity = (activity) => {\n const tmplastProcessedTimestamp = lastProcessedTimestamp.current;\n\n let groupedActivity = {};\n const startTime = performance.now();\n try {\n groupedActivity = activity.reduce((acc, notification) => {\n const key = `${notification.notification_type}_${notification.item_id}`;\n\n // Initialize the group if it doesn't exist\n if (!acc[key]) {\n acc[key] = {\n id: notification.id,\n notification_type: notification.notification_type,\n action: notification.action,\n raw_created_at: notification.created_at,\n created_at: timeAgo(new Date(notification.created_at)),\n is_seen: notification.is_seen,\n item_type: notification.item_type,\n item_id: notification.item_id,\n count: 1,\n not_seen_count: notification.is_seen ? 0 : 1,\n not_seen: notification.is_seen ? [] : [notification.id],\n meta_data: [],\n slug: notification.meta_data ? notification.meta_data.slug : \"\",\n pod_message_id: notification.meta_data\n ? notification.meta_data.pod_message_id\n : \"\",\n reflection_id: notification.meta_data\n ? notification.meta_data.reflection_id\n : \"\",\n parents_slugs: notification.meta_data\n ? notification.meta_data.parents_slugs\n : [],\n title: notification.meta_data\n ? notification.meta_data.item_name\n : \"\",\n subtitle: notification.meta_data\n ? notification.meta_data.top_parent_name\n : \"\",\n is_direct: notification.meta_data\n ? notification.meta_data.is_direct\n : false,\n url: notification.meta_data ? notification.meta_data.url : \"\",\n created_at: timeAgo(new Date(notification.created_at)),\n pod_messages: [],\n parents: [],\n };\n }\n\n if (\n new Date(notification.raw_created_at) > new Date(acc[key].raw_created_at)\n ) {\n acc[key].raw_created_at = notification.created_at;\n acc[key].created_at = timeAgo(new Date(notification.created_at));\n }\n\n acc[key].is_seen = acc[key].is_seen && notification.is_seen;\n acc[key].meta_data[notification.id] = notification.meta_data;\n acc[key].count++;\n if (!notification.is_seen) {\n acc[key].not_seen_count++;\n acc[key].not_seen.push(notification.id);\n }\n\n return acc;\n }, {});\n } catch {\n groupedActivity = {};\n }\n\n const endTime = performance.now();\n const elapsedTime = endTime - startTime;\n\n console.log(`Time taken grouping: ${elapsedTime} milliseconds`);\n\n return buildActivity(groupedActivity);\n };\n\n const buildActivity = (groupedActivity) => {\n const startTime = performance.now();\n const activityArray = Object.values(groupedActivity);\n\n for (const notification of activityArray) {\n const usernamesArr = new Set();\n const maxUsers = 3;\n\n if (notification.not_seen_count > 0) {\n for (const notificationId of notification.not_seen) {\n const username = notification.meta_data[notificationId].actor_name;\n usernamesArr.add(username);\n if (usernamesArr.size >= maxUsers) {\n break;\n }\n }\n } else {\n for (const meta_data of Object.values(notification.meta_data)) {\n const username = meta_data.actor_name;\n usernamesArr.add(username);\n if (usernamesArr.size >= maxUsers) {\n break;\n }\n }\n }\n const newArr = Array.from(usernamesArr);\n const usernames = newArr.join(\", \");\n const extras =\n usernamesArr.size > 2\n ? ` and ${usernamesArr.size - 2} other ${pluralizeJs(\"person\", usernamesArr.size - 2)}`\n : \"\";\n\n if (notification.notification_type == \"reflection\") {\n const action = \"posted\";\n const count = notification.not_seen_count > 0\n ? notification.not_seen_count\n : notification.count\n if (notification.action != \"mention\") {\n notification.content = `${usernames}${\n extras ? extras + \" \" : \"\"\n } ${action} ${count} ${pluralize(\n count,\n \"reflection\"\n )} on a message`;\n } else {\n notification.content = `${usernames} mentioned you in a reflection`;\n }\n } else if (notification.notification_type == \"liked_reflection\") {\n const action = \"liked\";\n const count = notification.not_seen_count > 0\n ? notification.not_seen_count\n : notification.count\n notification.content = `${usernames}${\n extras ? extras + \" \" : \"\"\n } ${action} your ${pluralize(\n count,\n \"reflection\"\n )}`;\n } else if (notification.notification_type == \"liked_pod_message\") {\n const action = \"liked\";\n const count = notification.not_seen_count > 0\n ? notification.not_seen_count\n : notification.count\n notification.content = `${usernames}${\n extras ? extras + \" \" : \"\"\n } ${action} your ${pluralize(\n count,\n \"messages\"\n )}`;\n } else if (notification.notification_type == \"liked_pod\") {\n const action = \"liked\";\n notification.content = `${usernames}${\n extras ? extras + \" \" : \"\"\n } ${action} your post`;\n } else if (notification.notification_type == \"pod_member\") {\n const action = notification.action;\n notification.content = `You were ${action} to ${notification.title}`;\n } else if (notification.notification_type == \"pod_activity\") {\n const action = \"joined\";\n notification.content = `${usernames}${\n extras ? extras + \" \" : \"\"\n } ${action}`;\n } else if (notification.notification_type == \"parent_activity\") {\n const action = \"created\";\n notification.content = `${usernames}${\n extras ? extras + \" \" : \"\"\n } ${action} a new post`;\n } else {\n const action = \"posted\";\n const count = notification.not_seen_count > 0\n ? notification.not_seen_count\n : notification.count\n if (notification.action != \"mention\") {\n notification.content = `${usernames}${\n extras ? extras + \" \" : \"\"\n } ${action} ${count} ${pluralize(\n count,\n \"message\"\n )}`;\n } else {\n notification.content = `${usernames} mentioned you in a message`;\n }\n }\n\n \n }\n\n const endTime = performance.now();\n const elapsedTime = endTime - startTime;\n console.log(`Time taken building: ${elapsedTime} milliseconds`);\n // storeGroupedActivities(activityArray);\n \n return activityArray;\n };\n\n const pluralize = (count, noun) => {\n if (noun == \"person\"){\n return \"people\"\n }\n return pluralizeJs(noun, count);\n };\n\n const timeAgo = (date) => {\n const now = new Date();\n const secondsPast = (now.getTime() - date.getTime()) / 1000;\n\n if (secondsPast < 60) {\n const time = parseInt(secondsPast);\n return time + ` ${pluralize(time, \"second\")} ago`;\n }\n if (secondsPast < 3600) {\n // less than an hour\n const time = parseInt(secondsPast / 60);\n return time + ` ${pluralize(time, \"minute\")} ago`;\n }\n if (secondsPast <= 86400) {\n // less than a day\n const time = parseInt(secondsPast / 3600);\n return time + ` ${pluralize(time, \"hour\")} ago`;\n }\n if (secondsPast <= 2592000) {\n // less than a month\n const time = parseInt(secondsPast / 86400);\n return time + ` ${pluralize(time, \"day\")} ago`;\n }\n if (secondsPast <= 31536000) {\n // less than a year\n const time = parseInt(secondsPast / 2592000);\n return time + ` ${pluralize(time, \"month\")} ago`;\n }\n\n const time = parseInt(secondsPast / 31536000);\n return time + ` ${pluralize(time, \"year\")} ago`;\n };\n\n const storeGroupedActivities = (groupedActivities) => {\n // storeJSON(\"spaces\", `user-activity`, {\n // activity: groupedActivities.slice(0, 30),\n // today: currentActivity.current.today,\n // });\n };\n\n const updatelastProcessedTimestamp = (timestamp) => {\n // storeJSON(\"spaces\", `last-user-activity-at`, { time: timestamp });\n };\n\n return null;\n});\n\nexport default UserChannel;\n","import { useEffect, memo, useRef } from \"react\";\nimport manager from \"./manager\";\nimport { useDispatch } from \"react-redux\";\n\nimport { setConnections } from \"../store/app\";\n\nconst ConnectionsChannel = memo(({username, isAdmin}) => {\n const dispatch = useDispatch();\n\n const connectedTo = useRef();\n\n useEffect(() => {\n\n if (!username) {\n return;\n }\n\n if (connectedTo.current == username) {\n return;\n }\n\n const messageCallback = (data) => {\n console.log(\n `SOCKETS - > Message received to channel ${getChannelName()}: ${JSON.stringify(data)}`\n );\n\n const { users } = data;\n\n connectedTo.current = username;\n // if (getIsAdmin()){\n dispatch(setConnections({ connections: [...users] }));\n // }\n };\n\n const channelName = getChannelName();\n\n manager.subscribe(channelName, messageCallback);\n\n return () => {\n manager.unsubscribe(channelName);\n connectedTo.current = null;\n };\n }, [username]);\n\n const getChannelName = () => {\n return `connections`;\n };\n\n const getIsAdmin = () => {\n return isAdmin\n }\n\n\n return null;\n});\n\nexport default ConnectionsChannel;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { setCookie } from \"../../utils/Cookies\";\n\nimport UserChannel from \"../../sockets/User\";\nimport ConnectionsChannel from \"../../sockets/Connections\";\n\nexport default function UserCtrl() {\n const currentLocation = useLocation();\n const user = useSelector((state) => state.user);\n const navigate = useNavigate();\n const location = useLocation();\n const dispatch = useDispatch();\n const currentUser = useRef();\n\n useEffect(() => {\n cookiesParams();\n }, []);\n\n useEffect(() => {\n if (user.authenticated == null){\n return\n }\n if (checkMagicToken()) {\n return;\n }\n\n checkAuthentication();\n \n }, [user]);\n\n const cookiesParams = () => {\n const search = window.location.search;\n const affiliateSpace = new URLSearchParams(search).get(\"r\");\n const affiliateSutra = new URLSearchParams(search).get(\"a\");\n if (affiliateSpace) {\n setCookie(\"affiliate_space\", affiliateSpace, 90);\n setCookie(\"affiliate_space_date\", new Date().getTime(), 90);\n }\n if (affiliateSutra) {\n setCookie(\"affiliate_sutra\", affiliateSutra, 90);\n setCookie(\"affiliate_sutra_date\", new Date().getTime(), 90);\n }\n\n // OAUTH PARAMS:\n const oauthClientId = new URLSearchParams(search).get(\"client_id\");\n const oauthClientSecret = new URLSearchParams(search).get(\"client_secret\");\n const oauthState = new URLSearchParams(search).get(\"state\");\n const oauthRedirectUri = new URLSearchParams(search).get(\"redirect_uri\");\n const oauthResponseType = new URLSearchParams(search).get(\"response_type\");\n\n if (oauthClientId) {\n setCookie(\"oauth_client_id\", oauthClientId, 30);\n }\n if (oauthClientSecret) {\n setCookie(\"oauth_client_secret\", oauthClientSecret, 30);\n }\n if (oauthClientId) {\n setCookie(\"oauth_state\", oauthState, 30);\n }\n if (oauthRedirectUri) {\n setCookie(\"oauth_redirect_uri\", oauthRedirectUri, 30);\n }\n if (oauthResponseType) {\n setCookie(\"oauth_response_type\", oauthResponseType, 30);\n }\n };\n\n const checkMagicToken = () => {\n const search = currentLocation.search;\n const magic_token = new URLSearchParams(search).get(\"magic_token\");\n if (magic_token) {\n navigate(`/user/magic_sign_in/${magic_token}`);\n return true;\n }\n return false;\n };\n\n const checkAuthentication = () => {\n const authRoutes = [\n \"/user/sign_in\",\n \"/user/sign_up\",\n \"/user/recover\",\n \"/user/start\",\n \"/user/magic_link\",\n \"/user/reset_password\",\n ];\n let isAuthRoute = false;\n for (let i = 0; i < authRoutes.length; i++) {\n if (location.pathname.indexOf(authRoutes[i]) >= 0) {\n isAuthRoute = true;\n break;\n }\n }\n\n if (!isAbsSpaceRoute()) {\n window.$currentTopSlug = null;\n }\n\n \n if (isAuthRoute) {\n if (user.authenticated == true) {\n navigate(user.redirect_to ? user.redirect_to : \"/home/top\");\n return false;\n } else if (user.authenticated == false) {\n return true;\n }\n } else {\n if (user.authenticated == true) {\n return true;\n } else if (\n !user.authenticated &&\n (\n location.pathname.indexOf(\"/home/top\") >= 0 ||\n location.pathname.indexOf(\"/home/managed\") >= 0 ||\n location.pathname.indexOf(\"/home/all\") >= 0 ||\n location.pathname.indexOf(\"/home/archived\") >= 0 ||\n location.pathname.indexOf(\"/home/deleted\") >= 0 ||\n location.pathname.indexOf(\"/home/direct\") >= 0 ||\n location.pathname.indexOf(\"/home/invitations\") >= 0 ||\n location.pathname.indexOf(\"/settings/profile\") >= 0 ||\n location.pathname.indexOf(\"/settings/account\") >= 0 ||\n location.pathname.indexOf(\"/settings/email\") >= 0 ||\n location.pathname.indexOf(\"/settings/affiliates\") >= 0 ||\n location.pathname.indexOf(\"/settings/billing\") >= 0 ||\n location.pathname.indexOf(\"/zoom/integration\") >= 0)\n ) {\n if (location.pathname.indexOf(\"/zoom/integration\") >= 0) {\n \n // navigate(\"/user/start?s=zoom\");\n } else {\n navigate(\"/user/start\");\n }\n return false;\n } else if (\n !user.authenticated &&\n !isSpaceRoute() &&\n !isAppRoute() &&\n !isUserRoute() &&\n !isProfileRoute() &&\n location.pathname.indexOf(\"/user/magic_sign_in\") < 0\n ) {\n navigate(\"/user/start\");\n return false;\n } else {\n return true;\n }\n }\n };\n\n const isAbsSpaceRoute = () => {\n return location.pathname.indexOf(\"/space\") >= 0;\n };\n\n const isSpaceRoute = () => {\n return (\n location.pathname.indexOf(\"/space\") >= 0 &&\n (location.pathname.indexOf(\"/content\") >= 0 ||\n location.pathname.indexOf(\"/discussion\") >= 0 ||\n location.pathname.indexOf(\"/register\") >= 0 ||\n location.pathname.indexOf(\"/gateway\") >= 0 ||\n location.pathname.indexOf(\"/broadcast/exclude\") >= 0)\n );\n };\n\n const isAppRoute = () => {\n return location.pathname.indexOf(\"/app/pricing\") >= 0;\n };\n\n const isUserRoute = () => {\n const routeSplit = location.pathname.split(\"/\");\n return (\n routeSplit.length == 2 &&\n [\"space\", \"user\", \"settings\", \"app\"].indexOf(routeSplit[1]) < 0\n );\n };\n\n const isProfileRoute = () => {\n return (\n /\\/[a-zA-Z0-9]{4,}$/.test(location.pathname) ||\n location.pathname.indexOf(\"/user/reset_password\")\n );\n };\n\n return (\n <>\n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { getEnv } from \"../../utils/Host\";\n\nimport {\n Button,\n ScrollArea,\n Container,\n Box,\n Text,\n Title,\n createStyles,\n Grid,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../models/Space\";\n\nimport { setHiddenSidebar } from \"../../store/app\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Helmet } from \"react-helmet\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n control: {\n display: \"block\",\n width: \"100%\",\n borderRadius: `${theme.radius.md}px`,\n padding: `10px 15px`,\n\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n color: theme.black,\n textDecoration: \"none\",\n },\n },\n controlActive: {\n backgroundColor: theme.colors.gray[1],\n },\n linkText: {\n fontWeight: 500,\n color: theme.black,\n fontSize: 16,\n lineHeight: 1.4,\n },\n linkTextActive: {\n // fontWeight: 600,\n },\n}));\n\nexport default function GettingStarted(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n const navigate = useNavigate();\n\n const [zoomUserId, setZoomUserId] = useState(\"\");\n const [zoomData, setZoomData] = useState({});\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n onFetchZoomData();\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: false }));\n // Triple checking that sidebar is displayed\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 1000);\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 2000);\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 3000);\n }, [user]);\n\n const onReadInstructions = () => {\n window.open(\n \"https://support.sutra.co/article/126-zoom-recording-integration\",\n \"_blank\"\n );\n };\n\n const onConnectZoom = () => {\n if (getEnv() == \"production\") {\n window.location.href= `https://zoom.us/oauth/authorize?client_id=Iq_GKcCRhWRVRdVaE3W5Q&response_type=code&redirect_uri=https://sutra.co/api/v4/hooks/zoom/redirect?state=${space.slug}_usr_${window.$currentUserAuthToken}`;\n } else {\n window.location.href= `https://zoom.us/oauth/authorize?client_id=YK0Cx_LQ16AVBy0FFvaxQ&response_type=code&redirect_uri=https://sutra.ngrok.dev/api/v4/hooks/zoom/redirect?state=${space.slug}_usr_${window.$currentUserAuthToken}`;\n }\n };\n\n const onDisconnectZoom = () => {\n SpaceModel.onZoomDisconnect(\n \"zoom\",\n (data) => {\n setZoomData({});\n },\n (data) => {}\n );\n };\n\n const onFetchZoomData = () => {\n SpaceModel.onZoomData(\n \"zoom\",\n zoomUserId,\n (data) => {\n setZoomData({ ...data.zoom_data });\n },\n (data) => {}\n );\n };\n\n return (\n \n \n {t(\"app.gettingStarted.tabTitle\")}\n \n \n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n \n \n \n ({ fontWeight: 900 })} mb={10}>\n {`Sutra - Zoom integration`}\n \n\n \n {\n \"You can create an integration between Sutra and Zoom so that your live sessions are automatically uploaded to your spaces.\"\n }\n \n \n {\n \"⭐ The Zoom Recording Integration feature is available on the Professional and Organization plans.\"\n }\n \n {zoomData.connected ? (\n onDisconnectZoom()}\n >\n {\"Disconnect Zoom Account\"}\n \n ) : (\n onConnectZoom()}\n >\n {\"Connect Zoom Account\"}\n \n )}\n\n onReadInstructions()}\n >\n {\"Learn more\"}\n \n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { getEnv } from \"../../utils/Host\";\n\nimport {\n Button,\n ScrollArea,\n Container,\n Box,\n Text,\n Title,\n createStyles,\n Grid,\n} from \"@mantine/core\";\nimport SpaceModel from \"../../models/Space\";\n\nimport { setHiddenSidebar } from \"../../store/app\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { Helmet } from \"react-helmet\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n control: {\n display: \"block\",\n width: \"100%\",\n borderRadius: `${theme.radius.md}px`,\n padding: `10px 15px`,\n\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n color: theme.black,\n textDecoration: \"none\",\n },\n },\n controlActive: {\n backgroundColor: theme.colors.gray[1],\n },\n linkText: {\n fontWeight: 500,\n color: theme.black,\n fontSize: 16,\n lineHeight: 1.4,\n },\n linkTextActive: {\n // fontWeight: 600,\n },\n}));\n\nexport default function GettingStarted(props) {\n const { classes, cx } = useStyles();\n const { t, i18n } = useTranslation();\n const user = useSelector((state) => state.user);\n const space = useSelector((state) => state.space);\n const navigate = useNavigate();\n\n const [zoomUserId, setZoomUserId] = useState(\"\");\n const [zoomData, setZoomData] = useState({});\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"none\";\n\n dispatch(setHiddenSidebar({ hidden: true }));\n\n onFetchZoomData();\n\n return () => {\n dispatch(setHiddenSidebar({ hidden: false }));\n };\n }, []);\n\n useEffect(() => {\n dispatch(setHiddenSidebar({ hidden: false }));\n // Triple checking that sidebar is displayed\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 1000);\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 2000);\n setTimeout(() => {\n const b = document.getElementsByTagName(\"body\")[0];\n b.style.display = \"\";\n\n dispatch(setHiddenSidebar({ hidden: false }));\n }, 3000);\n }, [user]);\n\n const onReadInstructions = () => {\n window.open(\n \"https://support.sutra.co/article/126-zoom-recording-integration\",\n \"_blank\"\n );\n };\n\n const onConnectZoom = () => {\n if (getEnv() == \"production\") {\n window.location.href= `https://zoom.us/oauth/authorize?client_id=Iq_GKcCRhWRVRdVaE3W5Q&response_type=code&redirect_uri=https://sutra.co/api/v4/hooks/zoom/redirect?state=${space.slug}_usr_${window.$currentUserAuthToken}`;\n } else {\n window.location.href= `https://zoom.us/oauth/authorize?client_id=YK0Cx_LQ16AVBy0FFvaxQ&response_type=code&redirect_uri=https://sutra.ngrok.dev/api/v4/hooks/zoom/redirect?state=${space.slug}_usr_${window.$currentUserAuthToken}`;\n }\n };\n\n const onDisconnectZoom = () => {\n SpaceModel.onZoomDisconnect(\n \"zoom\",\n (data) => {\n setZoomData({});\n },\n (data) => {}\n );\n };\n\n const onFetchZoomData = () => {\n SpaceModel.onZoomData(\n \"zoom\",\n zoomUserId,\n (data) => {\n setZoomData({ ...data.zoom_data });\n },\n (data) => {}\n );\n };\n\n return (\n \n \n {t(\"app.gettingStarted.tabTitle\")}\n \n \n ({\n backgroundColor:\n theme.colorScheme === \"dark\"\n ? theme.colors.dark[6]\n : theme.colors.gray[0],\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n })}\n >\n \n \n \n ({ fontWeight: 900 })} mb={10}>\n {`Zoom connection successful`}\n \n\n \n {\n \"Your Zoom account is now connected to Sutra. You will not have to do this again unless you disconnect your Zoom account. Please close this tab and return to the tab where you initiated the connection.\"\n }\n \n \n \n \n \n \n \n );\n}\n","import React from \"react\";\n\nimport {\n Routes,\n Route\n} from \"react-router-dom\";\n\n\nimport SpacesList from \"../home/SpacesList\";\nimport SettingsProfile from \"../settings/Profile\";\nimport SettingsAccount from \"../settings/Account\";\nimport SettingsAffiliates from \"../settings/Affiliates\";\nimport SettingsPaidSubscriptions from \"../settings/PaidSubscriptions\";\nimport SettingsEmail from \"../settings/Email\";\nimport SettingsBilling from \"../settings/Billing\";\nimport GettingStarted from \"../app/GettingStarted\";\nimport Welcome from \"../app/Welcome\";\nimport ScheduleDemo from \"../app/ScheduleDemo\";\nimport AppPricing from \"../app/Pricing\";\nimport AppPayment from \"../app/payment/Payment\";\nimport Space from \"../spaces/Space\";\nimport SpaceNeo from \"../spaces_neo/Space\";\nimport Start from \"../users/Start\";\nimport SignIn from \"../users/SignIn\";\nimport SignUp from \"../users/SignUp\";\nimport SignOut from \"../users/SignOut\";\nimport Recover from \"../users/Recover\";\n\nimport ResetPassword from \"../users/ResetPassword\";\nimport MagicLink from \"../users/MagicLink\";\nimport MagicSignIn from \"../users/MagicSignIn\";\nimport EditUser from \"../users/Edit\";\nimport User from \"../users/Profile\";\nimport Gateway from \"../users/Gateway\";\nimport UserCtrl from \"./UserCtrl\";\n\nimport ZoomIntegration from \"../zoom/Integration\";\nimport ZoomConnected from \"../zoom/Connected\";\n\n\nexport default function MainContent() {\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 } />\n } />\n\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n }\n />\n } />\n }\n />\n } />\n } />\n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useLocation } from \"react-router-dom\";\nimport { useSelector } from 'react-redux';\n\n\nimport { AlertCircle } from 'tabler-icons-react';\n\nimport {\n Dialog,\n Alert,\n MantineProvider\n} from '@mantine/core';\n\nexport default function SystemAlert(){\n const location = useLocation();\n\n const alert = useSelector(state => state.alert);\n\n const [dialog, setDialog] = useState({opened: false, title: \"\", message: \"\", color: \"indigo\"})\n\n useEffect(() => {\n setDialog({...alert})\n setTimeout(() => {\n setDialog({...alert, opened: false})\n }, 5000)\n }, [alert])\n\n useEffect(() => {\n const queryParams = location.search\n const title = new URLSearchParams(queryParams).get(\"at\")\n const message = new URLSearchParams(queryParams).get(\"am\")\n const color = new URLSearchParams(queryParams).get(\"ac\")\n if (message){\n setDialog({opened: true, title: title ? title : \"Alert\", message, color: color ? color : \"indigo\"})\n setTimeout(() => {\n setDialog({...alert, opened: false})\n }, 5000)\n }\n }, [location])\n\n return (\n \n ({ backgroundColor: dialog.color })}\n opened={dialog.opened}\n withBorder\n shadow=\"md\"\n size=\"lg\"\n radius=\"md\"\n p={0}\n position={{ top: 30, right: 30 }}\n >\n }\n title={dialog.title}\n color={dialog.color}\n withCloseButton\n onClose={() => setDialog({...dialog, opened: false})}\n >\n {dialog.message}\n \n \n \n\n )\n\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid, regular } from \"@fortawesome/fontawesome-svg-core/import.macro\";\nimport { Home2 } from \"tabler-icons-react\";\n\nimport NewSpace from \"../spaces_neo/New\";\nimport AIBuilderModal from \"../tiptap/components/AIBuilderModal\";\n\nimport useActivityCounter from \"../../utils/ActivityCounter\";\n\nimport { setCreateAiSpaceModalVisible } from \"../../store/app\";\n\nimport {\n Button,\n Box,\n UnstyledButton,\n Group,\n Stack,\n ThemeIcon,\n Text,\n MantineProvider,\n Badge,\n Divider,\n createStyles,\n useMantineTheme,\n Modal,\n Textarea,\n Progress,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n control: {\n fontWeight: 500,\n display: \"block\",\n width: \"100%\",\n borderRadius: `${theme.radius.md}px`,\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\n color: theme.black,\n fontSize: theme.fontSizes.md,\n\n \"&:hover\": {\n backgroundColor: theme.colors.gray[1],\n color: theme.black,\n textDecoration: \"none\",\n },\n [`&:hover .${getRef(\"themeIcon\")}`]: {\n backgroundColor: \"#fff\",\n // backgroundColor: theme.colors.gray[1],\n },\n },\n\n themeIcon: {\n ref: getRef(\"themeIcon\"),\n },\n}));\n\nexport default function Sidebar() {\n const { t, i18n } = useTranslation();\n const { classes } = useStyles();\n const location = useLocation();\n const dispatch = useDispatch();\n\n const user = useSelector((state) => state.user);\n const createAiSpace = useSelector((state) => state.createAiSpace);\n\n const [newSpaceOpened, setNewSpaceOpened] = useState(false);\n const [newAIModalPromptOpened, setNewAIModalPromptOpened] = useState(false);\n const [newSpaceAIBuilderOpened, setNewSpaceAIBuilderOpened] = useState(false);\n\n const [aiPrompt, setAIPrompt] = useState(\"\");\n\n const { activityCount } = useActivityCounter([\"user_message\"]);\n\n const spacesItems = [\n {\n key: \"spaceList\",\n label: t(\"home.sidebar.spaces\"),\n to: \"/home/top\",\n active: \"top\",\n icon: ,\n validation: () => true,\n },\n {\n key: \"directMessages\",\n label: t(\"home.sidebar.directMessages\"),\n to: \"/home/direct\",\n active: \"direct\",\n icon: ,\n validation: () => true,\n },\n {\n key: \"invitations\",\n label: t(\"home.sidebar.invitations\"),\n to: \"/home/invitations\",\n active: \"invitations\",\n icon: ,\n validation: (user) => user.open_invitations > 0,\n },\n ];\n\n const supportItems = [\n {\n key: \"gettingStarted\",\n label: t(\"home.sidebar.gettingStarted\"),\n to: \"/app/getting_started\",\n active: \"getting_started\",\n icon: ,\n validation: (user) => true,\n },\n {\n key: \"scheduleDemo\",\n label: t(\"home.sidebar.scheduleDemo\"),\n to: \"/app/schedule_demo\",\n active: \"demo\",\n icon: ,\n validation: () => true,\n },\n {\n key: \"upgrade\",\n label: t(\"home.sidebar.upgrade\"),\n to: \"/app/pricing\",\n active: \"upgrade\",\n icon: ,\n validation: (user) => user.is_basic || user.is_personal || user.is_pro,\n },\n ];\n\n const theme = useMantineTheme();\n\n useEffect(() => {\n return () => {\n dispatch(setCreateAiSpaceModalVisible({ isVisible: false }));\n };\n }, []);\n\n const checkActiveLink = (item) => {\n return location.pathname.indexOf(item.to) >= 0;\n };\n\n return (\n \n \n {\n dispatch(setCreateAiSpaceModalVisible({ isVisible: true }));\n }}\n leftIcon={}\n >\n {t(\"home.sidebar.createButton\")}\n \n \n \n \n {spacesItems.map(\n (item, index) =>\n item.validation(user) && (\n \n \n \n \n \n {item.icon}\n \n \n \n {item.label}\n \n \n \n {item.key === \"directMessages\" &&\n activityCount > 0 && (\n \n {activityCount}\n \n )}\n {item.key === \"invitations\" &&\n user.open_invitations > 0 && (\n \n {user.open_invitations}\n \n )}\n \n \n \n )\n )}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n ml={20}\n mr={20}\n />\n \n {supportItems.map(\n (item, index) =>\n item.validation(user) && (\n \n \n \n \n \n {item.icon}\n \n \n \n {item.label}\n \n \n \n \n \n \n )\n )}\n \n ({ borderTopColor: theme.colors.gray[2] })}\n ml={20}\n mr={20}\n />\n {user.is_basic && (\n \n \n \n {t(\"home.sidebar.promoBoxTitle\")}\n \n \n \n \n {t(\"home.sidebar.promoBoxItem1\")}\n \n \n \n {t(\"home.sidebar.promoBoxItem2\")}\n \n \n \n {t(\"home.sidebar.promoBoxItem3\")}\n \n \n }\n component={Link}\n to=\"/app/pricing\"\n >\n {t(\"home.sidebar.promoBoxButton\")}\n \n \n \n )}\n \n\n {\n setNewSpaceOpened(bool);\n if (!bool) {\n dispatch(setCreateAiSpaceModalVisible({ isVisible: true }));\n }\n }}\n />\n\n {newSpaceAIBuilderOpened && (\n {\n setAIPrompt(\"\");\n setNewSpaceAIBuilderOpened(bool);\n }}\n />\n )}\n\n dispatch(setCreateAiSpaceModalVisible({ isVisible: false }))}\n withCloseButton={false}\n padding={30}\n style={{ marginTop: 100 }}\n >\n \n }\n onClick={() => {\n dispatch(setCreateAiSpaceModalVisible({ isVisible: false }));\n setNewSpaceOpened(true);\n }}\n >\n {\"Start from scratch\"}\n \n }\n onClick={() => {\n dispatch(setCreateAiSpaceModalVisible({ isVisible: false }));\n setNewAIModalPromptOpened(true);\n }}\n >\n {\"Start with AI\"}\n \n \n \n\n {\n setAIPrompt(\"\");\n setNewAIModalPromptOpened(false);\n dispatch(setCreateAiSpaceModalVisible({ isVisible: true }));\n }}\n withCloseButton={false}\n style={{ marginTop: 100 }}\n >\n setAIPrompt(event.currentTarget.value)}\n minRows={5}\n maxRows={5}\n styles={{ label: { fontWeight: \"600\", fontSize: 18, paddingBottom: 10 } }}\n />\n\n \n\n = 25 && aiPrompt.length <= 1000 ? false : true}\n leftIcon={}\n onClick={() => {\n setNewAIModalPromptOpened(false)\n setNewSpaceAIBuilderOpened(true);\n dispatch(setCreateAiSpaceModalVisible({ isVisible: false }));\n }}\n >\n {\"Start generating\"}\n \n \n\n \n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport {\n Box,\n UnstyledButton,\n Group,\n Text,\n createStyles\n} from '@mantine/core';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { Link, useLocation } from \"react-router-dom\";\n\nconst useStyles = createStyles((theme, _params, getRef) => ({\n control: {\n display: 'block',\n width: '100%',\n borderRadius: `${theme.radius.md}px`,\n padding: `15px 0px`,\n\n '&:hover': {\n backgroundColor: theme.colors.gray[1],\n color: theme.black,\n textDecoration: \"none\"\n },\n },\n linkText: {\n fontWeight: 500,\n color: theme.black,\n fontSize: theme.fontSizes.lg,\n },\n linkTextActive: {\n fontWeight: 800,\n },\n\n}));\n\n\nexport default function Sidebar() {\n\n const { t, i18n } = useTranslation();\n\n const settingsItemsCollection = [\n {\n key: \"profile\",\n label: t('settings.editProfile.editProfile'),\n to: \"/settings/profile\",\n active: \"profile\"\n },\n {\n key: \"account\",\n label: t('settings.accountSettings.accountSettings'),\n to: \"/settings/account\",\n active: \"account\"\n },\n {\n key: \"email\",\n label: t('settings.emailPreferences.emailPreferences'),\n to: \"/settings/email\",\n active: \"email\"\n },\n\n {\n key: \"affiliates\",\n label: t('settings.affiliates.title'),\n to: \"/settings/affiliates\",\n active: \"affiliates\"\n },\n {\n key: \"billing\",\n label: t('settings.paid_subscriptions.title'),\n to: \"/settings/paid_subscriptions\",\n active: \"paid_subscriptions\"\n },\n {\n key: \"billing\",\n label: t('settings.billing.billing'),\n to: \"/settings/billing\",\n active: \"billing\"\n },\n ]\n\n\n const { classes, cx } = useStyles();\n\n const optionsLoaded = useRef(false)\n\n const user = useSelector((state) => state.user);\n\n const location = useLocation()\n\n const [settingsItems, setSettingsItems] = useState([])\n\n useEffect(() => {\n\n const auxItems = [...settingsItemsCollection]\n // if (user.is_admin && !optionsLoaded.current) {\n\n // optionsLoaded.current = true\n // auxItems.push(\n // {\n // key: \"affiliates\",\n // label: \"Affiliate\",\n // to: \"/settings/affiliates\",\n // active: \"affiliates\"\n // }\n // )\n // }\n setSettingsItems(auxItems)\n\n }, [user])\n\n const getSectionName = () => {\n\n return location.pathname.split(\"/\").pop()\n }\n\n return (\n
\n \n {settingsItems.map((item) => (\n \n \n \n \n \n {item.label}\n \n \n \n \n \n ))}\n \n\n
\n\n )\n}\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { solid, regular } from '@fortawesome/fontawesome-svg-core/import.macro'\n\nexport const faIcons = [\n { icon: ,\n type: 'solid',\n value: 'address-book' },\n { icon: ,\n type: 'solid',\n value: 'address-card' },\n { icon: ,\n type: 'solid',\n value: 'adjust' },\n { icon: ,\n type: 'solid',\n value: 'align-center' },\n { icon: ,\n type: 'solid',\n value: 'align-justify' },\n { icon: ,\n type: 'solid',\n value: 'align-left' },\n { icon: ,\n type: 'solid',\n value: 'align-right' },\n { icon: ,\n type: 'solid',\n value: 'allergies' },\n { icon: ,\n type: 'solid',\n value: 'ambulance' },\n { icon: ,\n type: 'solid',\n value: 'american-sign-language-interpreting' },\n { icon: ,\n type: 'solid',\n value: 'anchor' },\n { icon: ,\n type: 'solid',\n value: 'angle-double-down' },\n { icon: ,\n type: 'solid',\n value: 'angle-double-left' },\n { icon: ,\n type: 'solid',\n value: 'angle-double-right' },\n { icon: ,\n type: 'solid',\n value: 'angle-double-up' },\n { icon: ,\n type: 'solid',\n value: 'angle-down' },\n { icon: ,\n type: 'solid',\n value: 'angle-left' },\n { icon: ,\n type: 'solid',\n value: 'angle-right' },\n { icon: ,\n type: 'solid',\n value: 'angle-up' },\n { icon: ,\n type: 'solid',\n value: 'archive' },\n { icon: ,\n type: 'solid',\n value: 'arrow-alt-circle-down' },\n { icon: ,\n type: 'solid',\n value: 'arrow-alt-circle-left' },\n { icon: ,\n type: 'solid',\n value: 'arrow-alt-circle-right' },\n { icon: ,\n type: 'solid',\n value: 'arrow-alt-circle-up' },\n { icon: ,\n type: 'solid',\n value: 'arrow-circle-down' },\n { icon: ,\n type: 'solid',\n value: 'arrow-circle-left' },\n { icon: ,\n type: 'solid',\n value: 'arrow-circle-right' },\n { icon: ,\n type: 'solid',\n value: 'arrow-circle-up' },\n { icon: ,\n type: 'solid',\n value: 'arrow-down' },\n { icon: ,\n type: 'solid',\n value: 'arrow-left' },\n { icon: ,\n type: 'solid',\n value: 'arrow-right' },\n { icon: ,\n type: 'solid',\n value: 'arrow-up' },\n { icon: ,\n type: 'solid',\n value: 'arrows-alt' },\n { icon: ,\n type: 'solid',\n value: 'arrows-alt-h' },\n { icon: ,\n type: 'solid',\n value: 'arrows-alt-v' },\n { icon: ,\n type: 'solid',\n value: 'assistive-listening-systems' },\n { icon: ,\n type: 'solid',\n value: 'asterisk' },\n { icon: ,\n type: 'solid',\n value: 'at' },\n { icon: ,\n type: 'solid',\n value: 'audio-description' },\n { icon: ,\n type: 'solid',\n value: 'backward' },\n { icon: ,\n type: 'solid',\n value: 'balance-scale' },\n { icon: ,\n type: 'solid',\n value: 'ban' },\n { icon: ,\n type: 'solid',\n value: 'band-aid' },\n { icon: ,\n type: 'solid',\n value: 'barcode' },\n { icon: ,\n type: 'solid',\n value: 'bars' },\n { icon: ,\n type: 'solid',\n value: 'baseball-ball' },\n { icon: ,\n type: 'solid',\n value: 'basketball-ball' },\n { icon: ,\n type: 'solid',\n value: 'bath' },\n { icon: ,\n type: 'solid',\n value: 'battery-empty' },\n { icon: ,\n type: 'solid',\n value: 'battery-full' },\n { icon: ,\n type: 'solid',\n value: 'battery-half' },\n { icon: ,\n type: 'solid',\n value: 'battery-quarter' },\n { icon: ,\n type: 'solid',\n value: 'battery-three-quarters' },\n { icon: ,\n type: 'solid',\n value: 'bed' },\n { icon: ,\n type: 'solid',\n value: 'beer' },\n { icon: ,\n type: 'solid',\n value: 'bell' },\n { icon: ,\n type: 'solid',\n value: 'bell-slash' },\n { icon: ,\n type: 'solid',\n value: 'bicycle' },\n { icon: ,\n type: 'solid',\n value: 'binoculars' },\n { icon: ,\n type: 'solid',\n value: 'birthday-cake' },\n { icon: ,\n type: 'solid',\n value: 'blind' },\n { icon: ,\n type: 'solid',\n value: 'bold' },\n { icon: ,\n type: 'solid',\n value: 'bolt' },\n { icon: ,\n type: 'solid',\n value: 'bomb' },\n { icon: ,\n type: 'solid',\n value: 'book' },\n { icon: ,\n type: 'solid',\n value: 'bookmark' },\n { icon: ,\n type: 'solid',\n value: 'bowling-ball' },\n { icon: ,\n type: 'solid',\n value: 'box' },\n { icon: ,\n type: 'solid',\n value: 'box-open' },\n { icon: ,\n type: 'solid',\n value: 'boxes' },\n { icon: ,\n type: 'solid',\n value: 'braille' },\n { icon: ,\n type: 'solid',\n value: 'briefcase' },\n { icon: ,\n type: 'solid',\n value: 'briefcase-medical' },\n { icon: ,\n type: 'solid',\n value: 'bug' },\n { icon: ,\n type: 'solid',\n value: 'building' },\n { icon: ,\n type: 'solid',\n value: 'bullhorn' },\n { icon: ,\n type: 'solid',\n value: 'bullseye' },\n { icon: ,\n type: 'solid',\n value: 'burn' },\n { icon: ,\n type: 'solid',\n value: 'bus' },\n { icon: ,\n type: 'solid',\n value: 'calculator' },\n { icon: ,\n type: 'solid',\n value: 'calendar' },\n { icon: ,\n type: 'solid',\n value: 'calendar-alt' },\n { icon: ,\n type: 'solid',\n value: 'calendar-check' },\n { icon: ,\n type: 'solid',\n value: 'calendar-minus' },\n { icon: ,\n type: 'solid',\n value: 'calendar-plus' },\n { icon: ,\n type: 'solid',\n value: 'calendar-times' },\n { icon: ,\n type: 'solid',\n value: 'camera' },\n { icon: ,\n type: 'solid',\n value: 'camera-retro' },\n { icon: ,\n type: 'solid',\n value: 'capsules' },\n { icon: ,\n type: 'solid',\n value: 'car' },\n { icon: ,\n type: 'solid',\n value: 'caret-down' },\n { icon: ,\n type: 'solid',\n value: 'caret-left' },\n { icon: ,\n type: 'solid',\n value: 'caret-right' },\n { icon: ,\n type: 'solid',\n value: 'caret-square-down' },\n { icon: ,\n type: 'solid',\n value: 'caret-square-left' },\n { icon: ,\n type: 'solid',\n value: 'caret-square-right' },\n { icon: ,\n type: 'solid',\n value: 'caret-square-up' },\n { icon: ,\n type: 'solid',\n value: 'caret-up' },\n { icon: ,\n type: 'solid',\n value: 'cart-arrow-down' },\n { icon: ,\n type: 'solid',\n value: 'cart-plus' },\n { icon: ,\n type: 'solid',\n value: 'certificate' },\n { icon: ,\n type: 'solid',\n value: 'chart-area' },\n { icon: ,\n type: 'solid',\n value: 'chart-bar' },\n { icon: ,\n type: 'solid',\n value: 'chart-line' },\n { icon: ,\n type: 'solid',\n value: 'chart-pie' },\n { icon: ,\n type: 'solid',\n value: 'check' },\n { icon: ,\n type: 'solid',\n value: 'check-circle' },\n { icon: ,\n type: 'solid',\n value: 'check-square' },\n { icon: ,\n type: 'solid',\n value: 'chess' },\n { icon: ,\n type: 'solid',\n value: 'chess-bishop' },\n { icon: ,\n type: 'solid',\n value: 'chess-board' },\n { icon: ,\n type: 'solid',\n value: 'chess-king' },\n { icon: ,\n type: 'solid',\n value: 'chess-knight' },\n { icon: ,\n type: 'solid',\n value: 'chess-pawn' },\n { icon: ,\n type: 'solid',\n value: 'chess-queen' },\n { icon: ,\n type: 'solid',\n value: 'chess-rook' },\n { icon: ,\n type: 'solid',\n value: 'chevron-circle-down' },\n { icon: ,\n type: 'solid',\n value: 'chevron-circle-left' },\n { icon: ,\n type: 'solid',\n value: 'chevron-circle-right' },\n { icon: ,\n type: 'solid',\n value: 'chevron-circle-up' },\n { icon: ,\n type: 'solid',\n value: 'chevron-down' },\n { icon: ,\n type: 'solid',\n value: 'chevron-left' },\n { icon: ,\n type: 'solid',\n value: 'chevron-right' },\n { icon: ,\n type: 'solid',\n value: 'chevron-up' },\n { icon: ,\n type: 'solid',\n value: 'child' },\n { icon: ,\n type: 'solid',\n value: 'circle' },\n { icon: ,\n type: 'solid',\n value: 'circle-notch' },\n { icon: ,\n type: 'solid',\n value: 'clipboard' },\n { icon: ,\n type: 'solid',\n value: 'clipboard-check' },\n { icon: ,\n type: 'solid',\n value: 'clipboard-list' },\n { icon: ,\n type: 'solid',\n value: 'clock' },\n { icon: ,\n type: 'solid',\n value: 'clone' },\n { icon: ,\n type: 'solid',\n value: 'closed-captioning' },\n { icon: ,\n type: 'solid',\n value: 'cloud' },\n { icon: ,\n type: 'solid',\n value: 'cloud-download-alt' },\n { icon: ,\n type: 'solid',\n value: 'cloud-upload-alt' },\n { icon: ,\n type: 'solid',\n value: 'code' },\n { icon: ,\n type: 'solid',\n value: 'code-branch' },\n { icon: ,\n type: 'solid',\n value: 'coffee' },\n { icon: ,\n type: 'solid',\n value: 'cog' },\n { icon: ,\n type: 'solid',\n value: 'cogs' },\n { icon: ,\n type: 'solid',\n value: 'columns' },\n { icon: ,\n type: 'solid',\n value: 'comment' },\n { icon: ,\n type: 'solid',\n value: 'comment-alt' },\n { icon: ,\n type: 'solid',\n value: 'comment-dots' },\n { icon: ,\n type: 'solid',\n value: 'comment-slash' },\n { icon: ,\n type: 'solid',\n value: 'comments' },\n { icon: ,\n type: 'solid',\n value: 'compass' },\n { icon: ,\n type: 'solid',\n value: 'compress' },\n { icon: ,\n type: 'solid',\n value: 'copy' },\n { icon: ,\n type: 'solid',\n value: 'copyright' },\n { icon: ,\n type: 'solid',\n value: 'couch' },\n { icon: ,\n type: 'solid',\n value: 'credit-card' },\n { icon: ,\n type: 'solid',\n value: 'crop' },\n { icon: ,\n type: 'solid',\n value: 'crosshairs' },\n { icon: ,\n type: 'solid',\n value: 'cube' },\n { icon: ,\n type: 'solid',\n value: 'cubes' },\n { icon: ,\n type: 'solid',\n value: 'cut' },\n { icon: ,\n type: 'solid',\n value: 'database' },\n { icon: ,\n type: 'solid',\n value: 'deaf' },\n { icon: ,\n type: 'solid',\n value: 'desktop' },\n { icon: ,\n type: 'solid',\n value: 'diagnoses' },\n { icon: ,\n type: 'solid',\n value: 'dna' },\n { icon: ,\n type: 'solid',\n value: 'dollar-sign' },\n { icon: ,\n type: 'solid',\n value: 'dolly' },\n { icon: ,\n type: 'solid',\n value: 'dolly-flatbed' },\n { icon: ,\n type: 'solid',\n value: 'donate' },\n { icon: ,\n type: 'solid',\n value: 'dot-circle' },\n { icon: ,\n type: 'solid',\n value: 'dove' },\n { icon: ,\n type: 'solid',\n value: 'download' },\n { icon: ,\n type: 'solid',\n value: 'edit' },\n { icon: ,\n type: 'solid',\n value: 'eject' },\n { icon: ,\n type: 'solid',\n value: 'ellipsis-h' },\n { icon: ,\n type: 'solid',\n value: 'ellipsis-v' },\n { icon: ,\n type: 'solid',\n value: 'envelope' },\n { icon: ,\n type: 'solid',\n value: 'envelope-open' },\n { icon: ,\n type: 'solid',\n value: 'envelope-square' },\n { icon: ,\n type: 'solid',\n value: 'eraser' },\n { icon: ,\n type: 'solid',\n value: 'euro-sign' },\n { icon: ,\n type: 'solid',\n value: 'exchange-alt' },\n { icon: ,\n type: 'solid',\n value: 'exclamation' },\n { icon: ,\n type: 'solid',\n value: 'exclamation-circle' },\n { icon: ,\n type: 'solid',\n value: 'exclamation-triangle' },\n { icon: ,\n type: 'solid',\n value: 'expand' },\n { icon: ,\n type: 'solid',\n value: 'expand-arrows-alt' },\n { icon: ,\n type: 'solid',\n value: 'external-link-alt' },\n { icon: ,\n type: 'solid',\n value: 'external-link-square-alt' },\n { icon: ,\n type: 'solid',\n value: 'eye' },\n { icon: ,\n type: 'solid',\n value: 'eye-dropper' },\n { icon: ,\n type: 'solid',\n value: 'eye-slash' },\n { icon: ,\n type: 'solid',\n value: 'fast-backward' },\n { icon: ,\n type: 'solid',\n value: 'fast-forward' },\n { icon: ,\n type: 'solid',\n value: 'fax' },\n { icon: ,\n type: 'solid',\n value: 'female' },\n { icon: ,\n type: 'solid',\n value: 'fighter-jet' },\n { icon: ,\n type: 'solid',\n value: 'file' },\n { icon: ,\n type: 'solid',\n value: 'file-alt' },\n { icon: ,\n type: 'solid',\n value: 'file-archive' },\n { icon: ,\n type: 'solid',\n value: 'file-audio' },\n { icon: ,\n type: 'solid',\n value: 'file-code' },\n { icon: ,\n type: 'solid',\n value: 'file-excel' },\n { icon: ,\n type: 'solid',\n value: 'file-image' },\n { icon: ,\n type: 'solid',\n value: 'file-medical' },\n { icon: ,\n type: 'solid',\n value: 'file-medical-alt' },\n { icon: ,\n type: 'solid',\n value: 'file-pdf' },\n { icon: ,\n type: 'solid',\n value: 'file-powerpoint' },\n { icon: ,\n type: 'solid',\n value: 'file-video' },\n { icon: ,\n type: 'solid',\n value: 'file-word' },\n { icon: ,\n type: 'solid',\n value: 'film' },\n { icon: ,\n type: 'solid',\n value: 'filter' },\n { icon: ,\n type: 'solid',\n value: 'fire' },\n { icon: ,\n type: 'solid',\n value: 'fire-extinguisher' },\n { icon: ,\n type: 'solid',\n value: 'first-aid' },\n { icon: ,\n type: 'solid',\n value: 'flag' },\n { icon: ,\n type: 'solid',\n value: 'flag-checkered' },\n { icon: ,\n type: 'solid',\n value: 'flask' },\n { icon: ,\n type: 'solid',\n value: 'folder' },\n { icon: ,\n type: 'solid',\n value: 'folder-open' },\n { icon: ,\n type: 'solid',\n value: 'font' },\n { icon: ,\n type: 'solid',\n value: 'football-ball' },\n { icon: ,\n type: 'solid',\n value: 'forward' },\n { icon: ,\n type: 'solid',\n value: 'frown' },\n { icon: ,\n type: 'solid',\n value: 'futbol' },\n { icon: ,\n type: 'solid',\n value: 'gamepad' },\n { icon: ,\n type: 'solid',\n value: 'gavel' },\n { icon: ,\n type: 'solid',\n value: 'gem' },\n { icon: ,\n type: 'solid',\n value: 'genderless' },\n { icon: ,\n type: 'solid',\n value: 'gift' },\n { icon: ,\n type: 'solid',\n value: 'glass-martini' },\n { icon: ,\n type: 'solid',\n value: 'globe' },\n { icon: ,\n type: 'solid',\n value: 'golf-ball' },\n { icon: ,\n type: 'solid',\n value: 'graduation-cap' },\n { icon: ,\n type: 'solid',\n value: 'h-square' },\n { icon: ,\n type: 'solid',\n value: 'hand-holding' },\n { icon: ,\n type: 'solid',\n value: 'hand-holding-heart' },\n { icon: ,\n type: 'solid',\n value: 'hand-holding-usd' },\n { icon: ,\n type: 'solid',\n value: 'hand-lizard' },\n { icon: ,\n type: 'solid',\n value: 'hand-paper' },\n { icon: ,\n type: 'solid',\n value: 'hand-peace' },\n { icon: ,\n type: 'solid',\n value: 'hand-point-down' },\n { icon: ,\n type: 'solid',\n value: 'hand-point-left' },\n { icon: ,\n type: 'solid',\n value: 'hand-point-right' },\n { icon: ,\n type: 'solid',\n value: 'hand-point-up' },\n { icon: ,\n type: 'solid',\n value: 'hand-pointer' },\n { icon: ,\n type: 'solid',\n value: 'hand-rock' },\n { icon: ,\n type: 'solid',\n value: 'hand-scissors' },\n { icon: ,\n type: 'solid',\n value: 'hand-spock' },\n { icon: ,\n type: 'solid',\n value: 'hands' },\n { icon: ,\n type: 'solid',\n value: 'hands-helping' },\n { icon: ,\n type: 'solid',\n value: 'handshake' },\n { icon: ,\n type: 'solid',\n value: 'hashtag' },\n { icon: ,\n type: 'solid',\n value: 'hdd' },\n { icon: ,\n type: 'solid',\n value: 'heading' },\n { icon: ,\n type: 'solid',\n value: 'headphones' },\n { icon: ,\n type: 'solid',\n value: 'heart' },\n { icon: ,\n type: 'solid',\n value: 'heartbeat' },\n { icon: ,\n type: 'solid',\n value: 'history' },\n { icon: ,\n type: 'solid',\n value: 'hockey-puck' },\n { icon: ,\n type: 'solid',\n value: 'home' },\n { icon: ,\n type: 'solid',\n value: 'hospital' },\n { icon: ,\n type: 'solid',\n value: 'hospital-alt' },\n { icon: ,\n type: 'solid',\n value: 'hospital-symbol' },\n { icon: ,\n type: 'solid',\n value: 'hourglass' },\n { icon: ,\n type: 'solid',\n value: 'hourglass-end' },\n { icon: ,\n type: 'solid',\n value: 'hourglass-half' },\n { icon: ,\n type: 'solid',\n value: 'hourglass-start' },\n { icon: ,\n type: 'solid',\n value: 'i-cursor' },\n { icon: ,\n type: 'solid',\n value: 'id-badge' },\n { icon: ,\n type: 'solid',\n value: 'id-card' },\n { icon: ,\n type: 'solid',\n value: 'id-card-alt' },\n { icon: ,\n type: 'solid',\n value: 'image' },\n { icon: ,\n type: 'solid',\n value: 'images' },\n { icon: ,\n type: 'solid',\n value: 'inbox' },\n { icon: ,\n type: 'solid',\n value: 'indent' },\n { icon: ,\n type: 'solid',\n value: 'industry' },\n { icon: ,\n type: 'solid',\n value: 'info' },\n { icon: ,\n type: 'solid',\n value: 'info-circle' },\n { icon: ,\n type: 'solid',\n value: 'italic' },\n { icon: ,\n type: 'solid',\n value: 'key' },\n { icon: ,\n type: 'solid',\n value: 'keyboard' },\n { icon: ,\n type: 'solid',\n value: 'language' },\n { icon: ,\n type: 'solid',\n value: 'laptop' },\n { icon: ,\n type: 'solid',\n value: 'leaf' },\n { icon: ,\n type: 'solid',\n value: 'lemon' },\n { icon: ,\n type: 'solid',\n value: 'level-down-alt' },\n { icon: ,\n type: 'solid',\n value: 'level-up-alt' },\n { icon: ,\n type: 'solid',\n value: 'life-ring' },\n { icon: ,\n type: 'solid',\n value: 'lightbulb' },\n { icon: ,\n type: 'solid',\n value: 'link' },\n { icon: ,\n type: 'solid',\n value: 'lira-sign' },\n { icon: ,\n type: 'solid',\n value: 'list' },\n { icon: ,\n type: 'solid',\n value: 'list-alt' },\n { icon: ,\n type: 'solid',\n value: 'list-ol' },\n { icon: ,\n type: 'solid',\n value: 'list-ul' },\n { icon: ,\n type: 'solid',\n value: 'location-arrow' },\n { icon: ,\n type: 'solid',\n value: 'lock' },\n { icon: ,\n type: 'solid',\n value: 'lock-open' },\n { icon: ,\n type: 'solid',\n value: 'long-arrow-alt-down' },\n { icon: ,\n type: 'solid',\n value: 'long-arrow-alt-left' },\n { icon: ,\n type: 'solid',\n value: 'long-arrow-alt-right' },\n { icon: ,\n type: 'solid',\n value: 'long-arrow-alt-up' },\n { icon: ,\n type: 'solid',\n value: 'low-vision' },\n { icon: ,\n type: 'solid',\n value: 'magic' },\n { icon: ,\n type: 'solid',\n value: 'magnet' },\n { icon: ,\n type: 'solid',\n value: 'male' },\n { icon: ,\n type: 'solid',\n value: 'map' },\n { icon: ,\n type: 'solid',\n value: 'map-marker' },\n { icon: ,\n type: 'solid',\n value: 'map-marker-alt' },\n { icon: ,\n type: 'solid',\n value: 'map-pin' },\n { icon: ,\n type: 'solid',\n value: 'map-signs' },\n { icon: ,\n type: 'solid',\n value: 'mars' },\n { icon: ,\n type: 'solid',\n value: 'mars-double' },\n { icon: ,\n type: 'solid',\n value: 'mars-stroke' },\n { icon: ,\n type: 'solid',\n value: 'mars-stroke-h' },\n { icon: ,\n type: 'solid',\n value: 'mars-stroke-v' },\n { icon: ,\n type: 'solid',\n value: 'medkit' },\n { icon: ,\n type: 'solid',\n value: 'meh' },\n { icon: ,\n type: 'solid',\n value: 'mercury' },\n { icon: ,\n type: 'solid',\n value: 'microchip' },\n { icon: ,\n type: 'solid',\n value: 'microphone' },\n { icon: ,\n type: 'solid',\n value: 'microphone-slash' },\n { icon: ,\n type: 'solid',\n value: 'minus' },\n { icon: ,\n type: 'solid',\n value: 'minus-circle' },\n { icon: ,\n type: 'solid',\n value: 'minus-square' },\n { icon: ,\n type: 'solid',\n value: 'mobile' },\n { icon: ,\n type: 'solid',\n value: 'mobile-alt' },\n { icon: ,\n type: 'solid',\n value: 'money-bill-alt' },\n { icon: ,\n type: 'solid',\n value: 'moon' },\n { icon: ,\n type: 'solid',\n value: 'motorcycle' },\n { icon: ,\n type: 'solid',\n value: 'mouse-pointer' },\n { icon: ,\n type: 'solid',\n value: 'music' },\n { icon: ,\n type: 'solid',\n value: 'neuter' },\n { icon: ,\n type: 'solid',\n value: 'newspaper' },\n { icon: ,\n type: 'solid',\n value: 'notes-medical' },\n { icon: ,\n type: 'solid',\n value: 'object-group' },\n { icon: ,\n type: 'solid',\n value: 'object-ungroup' },\n { icon: ,\n type: 'solid',\n value: 'outdent' },\n { icon: ,\n type: 'solid',\n value: 'pallet' },\n { icon: ,\n type: 'solid',\n value: 'paper-plane' },\n { icon: ,\n type: 'solid',\n value: 'paperclip' },\n { icon: ,\n type: 'solid',\n value: 'parachute-box' },\n { icon: ,\n type: 'solid',\n value: 'paragraph' },\n { icon: ,\n type: 'solid',\n value: 'paste' },\n { icon: ,\n type: 'solid',\n value: 'pause' },\n { icon: ,\n type: 'solid',\n value: 'pause-circle' },\n { icon: ,\n type: 'solid',\n value: 'paw' },\n { icon: ,\n type: 'solid',\n value: 'pen-square' },\n { icon: ,\n type: 'solid',\n value: 'pencil-alt' },\n { icon: ,\n type: 'solid',\n value: 'people-carry' },\n { icon: ,\n type: 'solid',\n value: 'percent' },\n { icon: ,\n type: 'solid',\n value: 'phone' },\n { icon: ,\n type: 'solid',\n value: 'phone-slash' },\n { icon: ,\n type: 'solid',\n value: 'phone-square' },\n { icon: ,\n type: 'solid',\n value: 'phone-volume' },\n { icon: ,\n type: 'solid',\n value: 'piggy-bank' },\n { icon: ,\n type: 'solid',\n value: 'pills' },\n { icon: ,\n type: 'solid',\n value: 'plane' },\n { icon: ,\n type: 'solid',\n value: 'play' },\n { icon: ,\n type: 'solid',\n value: 'play-circle' },\n { icon: ,\n type: 'solid',\n value: 'plug' },\n { icon: ,\n type: 'solid',\n value: 'plus' },\n { icon: ,\n type: 'solid',\n value: 'plus-circle' },\n { icon: ,\n type: 'solid',\n value: 'plus-square' },\n { icon: ,\n type: 'solid',\n value: 'podcast' },\n { icon: ,\n type: 'solid',\n value: 'poo' },\n { icon: ,\n type: 'solid',\n value: 'pound-sign' },\n { icon: ,\n type: 'solid',\n value: 'power-off' },\n { icon: ,\n type: 'solid',\n value: 'prescription-bottle' },\n { icon: ,\n type: 'solid',\n value: 'prescription-bottle-alt' },\n { icon: ,\n type: 'solid',\n value: 'print' },\n { icon: ,\n type: 'solid',\n value: 'procedures' },\n { icon: ,\n type: 'solid',\n value: 'puzzle-piece' },\n { icon: ,\n type: 'solid',\n value: 'qrcode' },\n { icon: ,\n type: 'solid',\n value: 'question' },\n { icon: ,\n type: 'solid',\n value: 'question-circle' },\n { icon: ,\n type: 'solid',\n value: 'quidditch' },\n { icon: ,\n type: 'solid',\n value: 'quote-left' },\n { icon: ,\n type: 'solid',\n value: 'quote-right' },\n { icon: ,\n type: 'solid',\n value: 'random' },\n { icon: ,\n type: 'solid',\n value: 'recycle' },\n { icon: ,\n type: 'solid',\n value: 'redo' },\n { icon: ,\n type: 'solid',\n value: 'redo-alt' },\n { icon: ,\n type: 'solid',\n value: 'registered' },\n { icon: ,\n type: 'solid',\n value: 'reply' },\n { icon: ,\n type: 'solid',\n value: 'reply-all' },\n { icon: ,\n type: 'solid',\n value: 'retweet' },\n { icon: ,\n type: 'solid',\n value: 'ribbon' },\n { icon: ,\n type: 'solid',\n value: 'road' },\n { icon: ,\n type: 'solid',\n value: 'rocket' },\n { icon: ,\n type: 'solid',\n value: 'rss' },\n { icon: ,\n type: 'solid',\n value: 'rss-square' },\n { icon: ,\n type: 'solid',\n value: 'ruble-sign' },\n { icon: ,\n type: 'solid',\n value: 'rupee-sign' },\n { icon: ,\n type: 'solid',\n value: 'save' },\n { icon: ,\n type: 'solid',\n value: 'search' },\n { icon: ,\n type: 'solid',\n value: 'search-minus' },\n { icon: ,\n type: 'solid',\n value: 'search-plus' },\n { icon: ,\n type: 'solid',\n value: 'seedling' },\n { icon: ,\n type: 'solid',\n value: 'server' },\n { icon: ,\n type: 'solid',\n value: 'share' },\n { icon: ,\n type: 'solid',\n value: 'share-alt' },\n { icon: ,\n type: 'solid',\n value: 'share-alt-square' },\n { icon: ,\n type: 'solid',\n value: 'share-square' },\n { icon: ,\n type: 'solid',\n value: 'shekel-sign' },\n { icon: ,\n type: 'solid',\n value: 'shield-alt' },\n { icon: ,\n type: 'solid',\n value: 'ship' },\n { icon: ,\n type: 'solid',\n value: 'shipping-fast' },\n { icon: ,\n type: 'solid',\n value: 'shopping-bag' },\n { icon: ,\n type: 'solid',\n value: 'shopping-basket' },\n { icon: ,\n type: 'solid',\n value: 'shopping-cart' },\n { icon: ,\n type: 'solid',\n value: 'shower' },\n { icon: ,\n type: 'solid',\n value: 'sign' },\n { icon: ,\n type: 'solid',\n value: 'sign-in-alt' },\n { icon: ,\n type: 'solid',\n value: 'sign-language' },\n { icon: ,\n type: 'solid',\n value: 'sign-out-alt' },\n { icon: ,\n type: 'solid',\n value: 'signal' },\n { icon: ,\n type: 'solid',\n value: 'sitemap' },\n { icon: ,\n type: 'solid',\n value: 'sliders-h' },\n { icon: ,\n type: 'solid',\n value: 'smile' },\n { icon: ,\n type: 'solid',\n value: 'smoking' },\n { icon: ,\n type: 'solid',\n value: 'snowflake' },\n { icon: ,\n type: 'solid',\n value: 'sort' },\n { icon: ,\n type: 'solid',\n value: 'sort-alpha-down' },\n { icon: ,\n type: 'solid',\n value: 'sort-alpha-up' },\n { icon: ,\n type: 'solid',\n value: 'sort-amount-down' },\n { icon: ,\n type: 'solid',\n value: 'sort-amount-up' },\n { icon: ,\n type: 'solid',\n value: 'sort-down' },\n { icon: ,\n type: 'solid',\n value: 'sort-numeric-down' },\n { icon: ,\n type: 'solid',\n value: 'sort-numeric-up' },\n { icon: ,\n type: 'solid',\n value: 'sort-up' },\n { icon: ,\n type: 'solid',\n value: 'space-shuttle' },\n { icon: ,\n type: 'solid',\n value: 'spinner' },\n { icon: ,\n type: 'solid',\n value: 'square' },\n { icon: ,\n type: 'solid',\n value: 'square-full' },\n { icon: ,\n type: 'solid',\n value: 'star' },\n { icon: ,\n type: 'solid',\n value: 'star-half' },\n { icon: ,\n type: 'solid',\n value: 'step-backward' },\n { icon: ,\n type: 'solid',\n value: 'step-forward' },\n { icon: ,\n type: 'solid',\n value: 'stethoscope' },\n { icon: ,\n type: 'solid',\n value: 'sticky-note' },\n { icon: ,\n type: 'solid',\n value: 'stop' },\n { icon: ,\n type: 'solid',\n value: 'stop-circle' },\n { icon: ,\n type: 'solid',\n value: 'stopwatch' },\n { icon: ,\n type: 'solid',\n value: 'street-view' },\n { icon: ,\n type: 'solid',\n value: 'strikethrough' },\n { icon: ,\n type: 'solid',\n value: 'subscript' },\n { icon: ,\n type: 'solid',\n value: 'subway' },\n { icon: ,\n type: 'solid',\n value: 'suitcase' },\n { icon: ,\n type: 'solid',\n value: 'sun' },\n { icon: ,\n type: 'solid',\n value: 'superscript' },\n { icon: ,\n type: 'solid',\n value: 'sync' },\n { icon: ,\n type: 'solid',\n value: 'sync-alt' },\n { icon: ,\n type: 'solid',\n value: 'syringe' },\n { icon: ,\n type: 'solid',\n value: 'table' },\n { icon: ,\n type: 'solid',\n value: 'table-tennis' },\n { icon: ,\n type: 'solid',\n value: 'tablet' },\n { icon: ,\n type: 'solid',\n value: 'tablet-alt' },\n { icon: ,\n type: 'solid',\n value: 'tablets' },\n { icon: ,\n type: 'solid',\n value: 'tachometer-alt' },\n { icon: ,\n type: 'solid',\n value: 'tag' },\n { icon: ,\n type: 'solid',\n value: 'tags' },\n { icon: ,\n type: 'solid',\n value: 'tape' },\n { icon: ,\n type: 'solid',\n value: 'tasks' },\n { icon: ,\n type: 'solid',\n value: 'taxi' },\n { icon: ,\n type: 'solid',\n value: 'terminal' },\n { icon: ,\n type: 'solid',\n value: 'text-height' },\n { icon: ,\n type: 'solid',\n value: 'text-width' },\n { icon: ,\n type: 'solid',\n value: 'th' },\n { icon: ,\n type: 'solid',\n value: 'th-large' },\n { icon: ,\n type: 'solid',\n value: 'th-list' },\n { icon: ,\n type: 'solid',\n value: 'thermometer' },\n { icon: ,\n type: 'solid',\n value: 'thermometer-empty' },\n { icon: ,\n type: 'solid',\n value: 'thermometer-full' },\n { icon: ,\n type: 'solid',\n value: 'thermometer-half' },\n { icon: ,\n type: 'solid',\n value: 'thermometer-quarter' },\n { icon: ,\n type: 'solid',\n value: 'thermometer-three-quarters' },\n { icon: ,\n type: 'solid',\n value: 'thumbs-down' },\n { icon: ,\n type: 'solid',\n value: 'thumbs-up' },\n { icon: ,\n type: 'solid',\n value: 'thumbtack' },\n { icon: ,\n type: 'solid',\n value: 'ticket-alt' },\n { icon: ,\n type: 'solid',\n value: 'times' },\n { icon: ,\n type: 'solid',\n value: 'times-circle' },\n { icon: ,\n type: 'solid',\n value: 'tint' },\n { icon: ,\n type: 'solid',\n value: 'toggle-off' },\n { icon: ,\n type: 'solid',\n value: 'toggle-on' },\n { icon: ,\n type: 'solid',\n value: 'trademark' },\n { icon: ,\n type: 'solid',\n value: 'train' },\n { icon: ,\n type: 'solid',\n value: 'transgender' },\n { icon: ,\n type: 'solid',\n value: 'transgender-alt' },\n { icon: ,\n type: 'solid',\n value: 'trash' },\n { icon: ,\n type: 'solid',\n value: 'trash-alt' },\n { icon: ,\n type: 'solid',\n value: 'tree' },\n { icon: ,\n type: 'solid',\n value: 'trophy' },\n { icon: ,\n type: 'solid',\n value: 'truck' },\n { icon: ,\n type: 'solid',\n value: 'truck-loading' },\n { icon: ,\n type: 'solid',\n value: 'truck-moving' },\n { icon: ,\n type: 'solid',\n value: 'tty' },\n { icon: ,\n type: 'solid',\n value: 'tv' },\n { icon: ,\n type: 'solid',\n value: 'umbrella' },\n { icon: ,\n type: 'solid',\n value: 'underline' },\n { icon: ,\n type: 'solid',\n value: 'undo' },\n { icon: ,\n type: 'solid',\n value: 'undo-alt' },\n { icon: ,\n type: 'solid',\n value: 'universal-access' },\n { icon: ,\n type: 'solid',\n value: 'university' },\n { icon: ,\n type: 'solid',\n value: 'unlink' },\n { icon: ,\n type: 'solid',\n value: 'unlock' },\n { icon: ,\n type: 'solid',\n value: 'unlock-alt' },\n { icon: ,\n type: 'solid',\n value: 'upload' },\n { icon: ,\n type: 'solid',\n value: 'user' },\n { icon: ,\n type: 'solid',\n value: 'user-circle' },\n { icon: ,\n type: 'solid',\n value: 'user-md' },\n { icon: ,\n type: 'solid',\n value: 'user-plus' },\n { icon: ,\n type: 'solid',\n value: 'user-secret' },\n { icon: ,\n type: 'solid',\n value: 'user-times' },\n { icon: ,\n type: 'solid',\n value: 'users' },\n { icon: ,\n type: 'solid',\n value: 'utensil-spoon' },\n { icon: ,\n type: 'solid',\n value: 'utensils' },\n { icon: ,\n type: 'solid',\n value: 'venus' },\n { icon: ,\n type: 'solid',\n value: 'venus-double' },\n { icon: ,\n type: 'solid',\n value: 'venus-mars' },\n { icon: ,\n type: 'solid',\n value: 'vial' },\n { icon: ,\n type: 'solid',\n value: 'vials' },\n { icon: ,\n type: 'solid',\n value: 'video' },\n { icon: ,\n type: 'solid',\n value: 'video-slash' },\n { icon: ,\n type: 'solid',\n value: 'volleyball-ball' },\n { icon: ,\n type: 'solid',\n value: 'volume-down' },\n { icon: ,\n type: 'solid',\n value: 'volume-off' },\n { icon: ,\n type: 'solid',\n value: 'volume-up' },\n { icon: ,\n type: 'solid',\n value: 'warehouse' },\n { icon: ,\n type: 'solid',\n value: 'weight' },\n { icon: ,\n type: 'solid',\n value: 'wheelchair' },\n { icon: ,\n type: 'solid',\n value: 'wifi' },\n { icon: ,\n type: 'solid',\n value: 'window-close' },\n { icon: ,\n type: 'solid',\n value: 'window-maximize' },\n { icon: ,\n type: 'solid',\n value: 'window-minimize' },\n { icon: ,\n type: 'solid',\n value: 'window-restore' },\n { icon: ,\n type: 'solid',\n value: 'wine-glass' },\n { icon: ,\n type: 'solid',\n value: 'won-sign' },\n { icon: ,\n type: 'solid',\n value: 'wrench' },\n { icon: ,\n type: 'solid',\n value: 'x-ray' },\n { icon: ,\n type: 'solid',\n value: 'yen-sign' },\n { icon: ,\n type: 'regular',\n value: 'address-book' },\n { icon: ,\n type: 'regular',\n value: 'address-card' },\n { icon: ,\n type: 'regular',\n value: 'arrow-alt-circle-down' },\n { icon: ,\n type: 'regular',\n value: 'arrow-alt-circle-left' },\n { icon: ,\n type: 'regular',\n value: 'arrow-alt-circle-right' },\n { icon: ,\n type: 'regular',\n value: 'arrow-alt-circle-up' },\n { icon: ,\n type: 'regular',\n value: 'bell' },\n { icon: ,\n type: 'regular',\n value: 'bell-slash' },\n { icon: ,\n type: 'regular',\n value: 'bookmark' },\n { icon: ,\n type: 'regular',\n value: 'building' },\n { icon: ,\n type: 'regular',\n value: 'calendar' },\n { icon: ,\n type: 'regular',\n value: 'calendar-alt' },\n { icon: ,\n type: 'regular',\n value: 'calendar-check' },\n { icon: ,\n type: 'regular',\n value: 'calendar-minus' },\n { icon: ,\n type: 'regular',\n value: 'calendar-plus' },\n { icon: ,\n type: 'regular',\n value: 'calendar-times' },\n { icon: ,\n type: 'regular',\n value: 'caret-square-down' },\n { icon: ,\n type: 'regular',\n value: 'caret-square-left' },\n { icon: ,\n type: 'regular',\n value: 'caret-square-right' },\n { icon: ,\n type: 'regular',\n value: 'caret-square-up' },\n { icon: ,\n type: 'regular',\n value: 'chart-bar' },\n { icon: ,\n type: 'regular',\n value: 'check-circle' },\n { icon: ,\n type: 'regular',\n value: 'check-square' },\n { icon: ,\n type: 'regular',\n value: 'circle' },\n { icon: ,\n type: 'regular',\n value: 'clipboard' },\n { icon: ,\n type: 'regular',\n value: 'clock' },\n { icon: ,\n type: 'regular',\n value: 'clone' },\n { icon: ,\n type: 'regular',\n value: 'closed-captioning' },\n { icon: ,\n type: 'regular',\n value: 'comment' },\n { icon: ,\n type: 'regular',\n value: 'comment-alt' },\n { icon: ,\n type: 'regular',\n value: 'comments' },\n { icon: ,\n type: 'regular',\n value: 'compass' },\n { icon: ,\n type: 'regular',\n value: 'copy' },\n { icon: ,\n type: 'regular',\n value: 'copyright' },\n { icon: ,\n type: 'regular',\n value: 'credit-card' },\n { icon: ,\n type: 'regular',\n value: 'dot-circle' },\n { icon: ,\n type: 'regular',\n value: 'edit' },\n { icon: ,\n type: 'regular',\n value: 'envelope' },\n { icon: ,\n type: 'regular',\n value: 'envelope-open' },\n { icon: ,\n type: 'regular',\n value: 'eye-slash' },\n { icon: ,\n type: 'regular',\n value: 'file' },\n { icon: ,\n type: 'regular',\n value: 'file-alt' },\n { icon: ,\n type: 'regular',\n value: 'file-archive' },\n { icon: ,\n type: 'regular',\n value: 'file-audio' },\n { icon: ,\n type: 'regular',\n value: 'file-code' },\n { icon: ,\n type: 'regular',\n value: 'file-excel' },\n { icon: ,\n type: 'regular',\n value: 'file-image' },\n { icon: ,\n type: 'regular',\n value: 'file-pdf' },\n { icon: ,\n type: 'regular',\n value: 'file-powerpoint' },\n { icon: ,\n type: 'regular',\n value: 'file-video' },\n { icon: ,\n type: 'regular',\n value: 'file-word' },\n { icon: ,\n type: 'regular',\n value: 'flag' },\n { icon: ,\n type: 'regular',\n value: 'folder' },\n { icon: ,\n type: 'regular',\n value: 'folder-open' },\n { icon: ,\n type: 'regular',\n value: 'frown' },\n { icon: ,\n type: 'regular',\n value: 'futbol' },\n { icon: ,\n type: 'regular',\n value: 'gem' },\n { icon: ,\n type: 'regular',\n value: 'hand-lizard' },\n { icon: ,\n type: 'regular',\n value: 'hand-paper' },\n { icon: ,\n type: 'regular',\n value: 'hand-peace' },\n { icon: ,\n type: 'regular',\n value: 'hand-point-down' },\n { icon: ,\n type: 'regular',\n value: 'hand-point-left' },\n { icon: ,\n type: 'regular',\n value: 'hand-point-right' },\n { icon: ,\n type: 'regular',\n value: 'hand-point-up' },\n { icon: ,\n type: 'regular',\n value: 'hand-pointer' },\n { icon: ,\n type: 'regular',\n value: 'hand-rock' },\n { icon: ,\n type: 'regular',\n value: 'hand-scissors' },\n { icon: ,\n type: 'regular',\n value: 'hand-spock' },\n { icon: ,\n type: 'regular',\n value: 'handshake' },\n { icon: ,\n type: 'regular',\n value: 'hdd' },\n { icon: ,\n type: 'regular',\n value: 'heart' },\n { icon: ,\n type: 'regular',\n value: 'hospital' },\n { icon: ,\n type: 'regular',\n value: 'hourglass' },\n { icon: ,\n type: 'regular',\n value: 'id-badge' },\n { icon: ,\n type: 'regular',\n value: 'id-card' },\n { icon: ,\n type: 'regular',\n value: 'image' },\n { icon: ,\n type: 'regular',\n value: 'images' },\n { icon: ,\n type: 'regular',\n value: 'keyboard' },\n { icon: ,\n type: 'regular',\n value: 'lemon' },\n { icon: ,\n type: 'regular',\n value: 'life-ring' },\n { icon: ,\n type: 'regular',\n value: 'lightbulb' },\n { icon: ,\n type: 'regular',\n value: 'list-alt' },\n { icon: ,\n type: 'regular',\n value: 'map' },\n { icon: ,\n type: 'regular',\n value: 'meh' },\n { icon: ,\n type: 'regular',\n value: 'minus-square' },\n { icon: ,\n type: 'regular',\n value: 'money-bill-alt' },\n { icon: ,\n type: 'regular',\n value: 'moon' },\n { icon: ,\n type: 'regular',\n value: 'newspaper' },\n { icon: ,\n type: 'regular',\n value: 'object-group' },\n { icon: ,\n type: 'regular',\n value: 'object-ungroup' },\n { icon: ,\n type: 'regular',\n value: 'paper-plane' },\n { icon: ,\n type: 'regular',\n value: 'pause-circle' },\n { icon: ,\n type: 'regular',\n value: 'play-circle' },\n { icon: ,\n type: 'regular',\n value: 'plus-square' },\n { icon: ,\n type: 'regular',\n value: 'question-circle' },\n { icon: ,\n type: 'regular',\n value: 'registered' },\n { icon: ,\n type: 'regular',\n value: 'save' },\n { icon: ,\n type: 'regular',\n value: 'share-square' },\n { icon: ,\n type: 'regular',\n value: 'smile' },\n { icon: ,\n type: 'regular',\n value: 'snowflake' },\n { icon: ,\n type: 'regular',\n value: 'square' },\n { icon: ,\n type: 'regular',\n value: 'star' },\n { icon: ,\n type: 'regular',\n value: 'star-half' },\n { icon: ,\n type: 'regular',\n value: 'sticky-note' },\n { icon: ,\n type: 'regular',\n value: 'stop-circle' },\n { icon: ,\n type: 'regular',\n value: 'sun' },\n { icon: ,\n type: 'regular',\n value: 'thumbs-down' },\n { icon: ,\n type: 'regular',\n value: 'thumbs-up' },\n { icon: ,\n type: 'regular',\n value: 'times-circle' },\n { icon: ,\n type: 'regular',\n value: 'trash-alt' },\n { icon: ,\n type: 'regular',\n value: 'user' },\n { icon: ,\n type: 'regular',\n value: 'user-circle' },\n { icon: ,\n type: 'regular',\n value: 'window-close' },\n { icon: ,\n type: 'regular',\n value: 'window-maximize' },\n { icon: ,\n type: 'regular',\n value: 'window-minimize' },\n { icon: ,\n type: 'regular',\n value: 'window-restore' }\n]\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { faIcons } from \"../../../collections/faIcons2\";\n\nimport { createStyles, Box, Group, ScrollArea, TextInput } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n nodeIconWrap: {\n display: \"inline-block\",\n width: \"20px\",\n textAlign: \"center\",\n color: theme.colors.gray[7],\n },\n}));\n\nexport default function IconSelect(props) {\n const colors = useSelector((state) => state.colors);\n const { theme, classes, cx } = useStyles({ colors });\n const [iconType, setIconType] = useState(\"\");\n const [iconValue, setIconValue] = useState(\"\");\n const [value, setValue] = useState(\"\");\n const [icons, setIcons] = useState(faIcons);\n const { t, i18n } = useTranslation();\n const testIcon = \"stripe-s\";\n\n useEffect(() => {\n filterIcons();\n }, [value]);\n\n const onIconSelect = (event) => {\n setIconType(event.split(\"#\")[0]);\n setIconValue(event.split(\"#\")[1]);\n props.onIconSelect(event);\n };\n\n const displayIcons = () => {\n return icons.map((icon) => (\n onIconSelect(`${icon.type}#${icon.value}`)}\n >\n {icon.icon}\n \n ));\n };\n\n // const displayIcons = () => {\n // return icons.map((icon) => (\n // onIconSelect(`${icon.type}#${icon.value}`)}\n // >\n // {}\n // \n // ))\n // }\n\n const filterIcons = () => {\n setIcons(faIcons.filter((icon) => icon.value.includes(value)));\n };\n\n return (\n \n }\n radius=\"md\"\n size=\"sm\"\n mx={12}\n my={10}\n placeholder={t(\"spaces.sidebar.iconSelect.placeholder\")}\n rightSectionWidth={42}\n value={value}\n onChange={(event) => setValue(event.currentTarget.value)}\n styles={{\n input: {\n display: \"block\",\n border: 0,\n outline: 0,\n width: \"100%\",\n padding: \"10px 2em 10px 2.2em\",\n borderRadius: 10,\n backgroundColor: \"rgba(0, 0, 0, .05)\",\n transitionDuration: \"225ms\",\n transitionProperty: \"background-color, box-shadow\",\n transitionTimingFunction: \"cubic-bezier(.4, .0, .2, 1)\",\n\n \"&::placeholder\": {\n color: \"#777\",\n },\n },\n icon: {\n color: \"#777\",\n },\n }}\n />\n \n {displayIcons()}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\n\nimport { createStyles, Popover, Box, Tabs, Group } from \"@mantine/core\";\n\n// import { library } from '@fortawesome/fontawesome-svg-core'\n// import { far } from '@fortawesome/free-regular-svg-icons'\n// import { fas } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport data from \"@emoji-mart/data\";\n\nimport Picker from \"@emoji-mart/react\";\n\nimport IconSelect from \"./IconSelect\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n nodeIconWrap: {\n display: \"inline-block\",\n width: \"20px\",\n textAlign: \"center\",\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : theme.colors.gray[7],\n },\n nodeIconWrapSettings: {\n color: theme.colors.gray[7],\n },\n nodeIconWrapSettingsActive: {\n color: \"#fff\",\n },\n markComplete: {\n color: theme.colors.green[6],\n },\n}));\n\nexport default function NodeIcon(props) {\n // library.add(far, fas)\n\n const colors = useSelector((state) => state.colors);\n const { settingsView } = useSidebarStyles();\n const { t, i18n } = useTranslation();\n const { theme, classes, cx } = useStyles({ colors });\n const [opened, setOpened] = useState(false);\n const [markComplete, setMarkComplete] = useState(false);\n const [emojicon, setEmojicon] = useState();\n\n useEffect(() => {\n setMarkComplete(props.completed);\n // setEmojicon(getEmojiCode(props.emojicon))\n setEmojicon(props.emojicon);\n }, [props]);\n\n const onEmojiSelect = (emoji) => {\n // const native = getEmojiCode(emoji.id)\n // setEmojicon(native)\n setEmojicon(`emoji/${emoji.id}`);\n saveEmojicon(`emoji/${emoji.id}`);\n setOpened(false);\n };\n\n const getEmojiCode = (emoji) => {\n if (emoji) {\n return data.emojis[emoji].skins[0].native;\n } else {\n return null;\n }\n };\n\n const onIconSelect = (icon) => {\n setEmojicon(`icon/${icon}`);\n saveEmojicon(`icon/${icon}`);\n setOpened(false);\n };\n\n const saveEmojicon = (emoji) => {\n SpaceModel.onUpdate(\n props.spaceId,\n { emojicon: emoji },\n (data) => {},\n (data) => {}\n );\n };\n\n const onOpen = (event) => {\n event.stopPropagation();\n event.preventDefault();\n setOpened(!opened);\n };\n\n const displayEmoji = () => {\n if (emojicon && emojicon != \"\") {\n if (emojicon.split(\"/\")[0] === \"emoji\") {\n return getEmojiCode(emojicon.split(\"/\")[1]);\n } else if (emojicon.split(\"/\")[0] === \"icon\") {\n const iconType = emojicon.split(\"/\")[1].split(\"#\")[0];\n const iconValue = emojicon.split(\"/\")[1].split(\"#\")[1];\n if (iconValue === \"bolt\") {\n return ;\n }\n return ;\n // return ()\n } else {\n return getEmojiCode(emojicon);\n }\n }\n return ;\n };\n\n const onReset = (event) => {\n if (event === 2) {\n setEmojicon(\"\");\n saveEmojicon(\"\");\n setOpened(false);\n }\n };\n\n return (\n setOpened(false)}\n target={\n {\n props.editable && onOpen(event);\n }}\n >\n {markComplete ? (\n \n ) : (\n <>{displayEmoji()}\n )}\n \n }\n width={260}\n position=\"right\"\n placement=\"start\"\n withArrow\n >\n onReset(event)}\n >\n \n \n \n \n \n \n \n
\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { useSelector } from 'react-redux';\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\"\nimport defaultSpaceColors from '../../../collections/defaultSpaceColors'\n\nimport tinycolor from 'tinycolor2'\n\nimport {\n Group,\n Text,\n createStyles,\n Badge\n} from '@mantine/core';\n\nimport { ChevronDown, ChevronUp } from 'tabler-icons-react';\n\n\nimport NodeIcon from './NodeIcon'\n\nconst useStyles = createStyles((theme, {colors, settingsView}) => ({\n\n nodeItemInside: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n alignItems: \"center\",\n paddingLeft: \"100%\",\n marginLeft: \"-100%\",\n cursor: \"pointer\",\n minHeight: 47,\n // color: colors.sidebar_text_color,\n color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n flexWrap: \"nowrap\",\n\n \"&:hover\": {\n backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(4).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(4).toString(),\n },\n\n },\n\n nodeLabel: {\n lineHeight: 1.3\n },\n\n nodeItemInsideLinked: {\n display: \"flex\",\n alignItems: \"center\",\n },\n\n nodeItemInsideActive: {\n // window.location.pathname.indexOf(\"/settings/\") < 0\n // backgroundColor: tinycolor(colors.sidebar_background_color).darken(4).toString(),\n backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(4).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(4).toString(),\n color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n // color: colors.sidebar_text_color,\n\n \"& a\": {\n color: colors.sidebar_text_color,\n fontWeight: \"500\",\n\n },\n\n },\n\n nodeItemInsideActiveSettingsView: {\n // some weird bug here with the theme object losing it's value, so i'm using the hard coded value for theme.colors.gray[7]\n backgroundColor: \"#495057\",\n\n \"&:hover, & a, & a:hover\": {\n backgroundColor: \"#495057 !important\",\n color: \"#fff\",\n fontWeight: \"500\",\n },\n\n // \"&:hover\": {\n // backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(4).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(4).toString(),\n // },\n },\n\n nodeItemLink: {\n display: \"inline-block\",\n width: \"100%\",\n paddingTop: \"11px\",\n paddingBottom: \"11px\",\n textDecoration: \"none\",\n // marginLeft: \"5px\",\n fontWeight: 400,\n // color: colors.sidebar_text_color,\n color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n nodeItemEnd: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\"\n },\n\n toggler: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginRight: \"20px\",\n backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(10).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(10).toString(),\n // color: tinycolor(colors.sidebar_text_color).lighten(10).toString(),\n color: !settingsView ? tinycolor(colors.sidebar_text_color).lighten(10).toString() : tinycolor(defaultSpaceColors.sidebar_text_color).lighten(10).toString(),\n borderRadius: \"4px\",\n height: \"25px\",\n width: \"25px\",\n cursor: \"pointer\",\n },\n\n\n}));\n\nexport default function NodeLink(props){\n\n const location = useLocation()\n\n const colors = useSelector(state => state.colors);\n const space = useSelector(state => state.space);\n\n const { settingsView } = useSidebarStyles();\n\n const { classes, cx } = useStyles({colors, settingsView});\n\n const [hasChildren, setHasChildren] = useState(false)\n\n useEffect(() => {\n // console.log(props.name)\n setHasChildren(props.hasChildren)\n }, [props])\n\n const getLinkPath = (slug, version) => {\n if (settingsView){\n const setttingsSection = location.pathname.split(\"/\").pop()\n return `/space/${slug}/settings/${setttingsSection}`\n }\n else{\n }\n return `/space/${slug}/${version}`\n }\n\n const selectSettingsViewClasses = () => {\n return (\n settingsView ? classes.nodeItemInsideActiveSettingsView : classes.nodeItemInsideActive\n )\n }\n\n return (\n \n { props.editable && (\n \n )}\n \n \n { !props.editable && (\n \n )}\n \n {`${props.name}`}\n \n \n \n \n {props.unreadCount > 0 && (\n \n { props.unreadCount }\n \n )}\n {hasChildren ? (\n props.setOpened(!props.opened)}>\n {props.opened ? : }\n \n ) : ('')}\n \n \n )\n}\n","import React from \"react\";\n\nimport SubNodeItem from \"./NodeItem\";\n\nimport { createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, getRef) => ({\n topNodeItemChildren: {\n // [`& .${getRef('nodeItem')}`]: {\n paddingLeft: 0,\n // }\n },\n}));\n\nexport default function NodeContent(props) {\n const { classes, cx } = useStyles();\n\n return (\n \n {props.node && props.node.children\n ? props.node.children.map((child, index) => {\n return (\n child && (\n \n )\n );\n })\n : \"\"}\n \n );\n}\n","export function getDropPosition(x, y, dropTarget){\n\n const delimiterSize = 6\n\n const tOffset = dropTarget.getBoundingClientRect()\n const tOffsetX = tOffset.left// + window.scrollX;\n const tOffsetY = tOffset.top// + window.scrollY;\n\n const tWidth = dropTarget.offsetWidth;\n const tHeight = dropTarget.offsetHeight;\n\n const upMinLimitX = tOffsetX;\n const upMinLimitY = tOffsetY;\n const upMaxLimitX = tOffsetX + tWidth;\n const upMaxLimitY = tOffsetY + delimiterSize;\n\n const downMinLimitX = tOffsetX\n const downMinLimitY = tOffsetY + tHeight - delimiterSize;\n const downMaxLimitX = tOffsetX + tWidth\n const downMaxLimitY = tOffsetY + tHeight;\n\n // Left and right not in use\n const leftMinLimitX = tOffsetX;\n const leftMinLimitY = upMaxLimitY + 1;\n const leftMaxLimitX = tOffsetX + tWidth;\n const leftMaxLimitY = downMinLimitY - 1;\n\n const rightMinLimitX = leftMaxLimitX + tWidth;\n const rightMinLimitY = upMaxLimitY + 1;\n const rightMaxLimitX = tOffsetX + tWidth;\n const rightMaxLimitY = downMinLimitY - 1;\n\n if (x >= upMinLimitX && x <= upMaxLimitX && y >= upMinLimitY && y <= upMaxLimitY){\n\n return \"top\"\n }\n if (x >= downMinLimitX && x <= downMaxLimitX && y >= downMinLimitY && y <= downMaxLimitY){\n\n return \"bottom\"\n }\n if (x >= leftMinLimitX && x <= leftMaxLimitX && y >= leftMinLimitY && y <= leftMaxLimitY){\n // Left and right not in use\n return \"center\"\n }\n if (x >= rightMinLimitX && x <= rightMaxLimitX && y >= rightMinLimitY && y <= rightMaxLimitY){\n // Left and right not in use\n return \"center\"\n }\n return \"center\";\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { createStyles } from \"@mantine/core\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport NodeLink from \"./NodeLink\";\nimport NodeContent from \"./NodeContent\";\n\nimport { getDropPosition } from \"../../../utils/DropPosition\";\n\nimport SpaceModel from \"../../../models/Space\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport { storeJSON } from \"../../../utils/LocalDB\";\n\nconst useStyles = createStyles((theme) => ({\n topNodeItem: {\n padding: \"0px\",\n },\n\n nodeItem: {\n // ref: getRef('nodeItem'),\n padding: \"0px 0px 0px 20px\",\n boxSizing: \"border-box\",\n width: \"100%\",\n },\n\n dragging: {\n backgroundColor: \"rgba(0,0,0,0.05)\",\n },\n}));\n\nexport default function NodeItem(props) {\n const sidebarChildrenA = useSelector((state) => state.sidebarChildrenA);\n const sidebarChildrenB = useSelector((state) => state.sidebarChildrenB);\n\n const { classes, cx } = useStyles();\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(\"\");\n const [children, setChildren] = useState([]);\n const [pos, setPos] = useState();\n const [node, setNode] = useState();\n const [editable, setEditable] = useState(false);\n // const [draggedOver, setDraggedOver] = useState(null)\n const [dragClasses, setDragClasses] = useState(\"\");\n const [anchorDragOverClasses, setAnchorDragOverClasses] = useState(\"\");\n\n const broadcasterSet = useRef(false);\n const fetchedOnOpen = useRef(false);\n const intervalId = useRef();\n const intervalCounter = useRef(0);\n const currentDndState = useRef();\n const draggedOver = useRef();\n const fetchEscapeCounter = useRef(0);\n\n const onFetchSidebarChildrenTimeout = useRef();\n\n useEffect(() => {\n intervalCounter.current = 0;\n intervalId.current = setInterval(() => {\n console.log(\"BROADCAST INIT : \" + node);\n intervalCounter.current++;\n if (intervalCounter.current > 100) {\n clearInterval(intervalId.current);\n }\n if (broadcasterSet.current) {\n const element = document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n );\n if (element) {\n console.log(\"BROADCAST INIT : \" + broadcasterSet.current);\n clearInterval(intervalId.current);\n\n Broadcaster.receive(\n \"change_sidebarTreeNode\",\n document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n ),\n (event, data) => {\n console.log(\"EVENT RECEIVED\");\n if (data.close) {\n fetchedOnOpen.current = false;\n } else {\n onFetchSidebarChildren();\n }\n }\n );\n }\n }\n }, 100);\n\n return () => {\n const element = document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n );\n if (broadcasterSet.current && element) {\n Broadcaster.unRegisterElement(\n \"change_sidebarTreeNode\",\n document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n )\n );\n }\n };\n }, []);\n\n useEffect(() => {\n if (!props.node.children) {\n props.node.children = [];\n }\n setPos(props.pos);\n setEditable(props.editable);\n\n setNode({ ...props.node });\n broadcasterSet.current = { ...props.node };\n }, [props]);\n\n useEffect(() => {\n if (window.$spacePath) {\n for (var i = 0; i < window.$spacePath.length; i++) {\n if (window.$spacePath[i].slug == props.node.slug) {\n if (!opened) {\n setOpened(true);\n return;\n }\n }\n }\n } else {\n const strOpenedNodes = localStorage.getItem(\"treeOpenedNodes\");\n if (strOpenedNodes) {\n const openedNodes = JSON.parse(strOpenedNodes);\n if (openedNodes[props.current]) {\n setOpened(openedNodes[props.current].indexOf(props.node.slug) >= 0);\n } else {\n setOpened(props.opened);\n }\n } else {\n setOpened(props.opened);\n }\n }\n\n if (opened && node && props.parent !== null && !fetchedOnOpen.current) {\n fetchedOnOpen.current = true;\n onFetchSidebarChildren();\n }\n }, [node]);\n\n useEffect(() => {\n const strOpenedNodes = localStorage.getItem(\"treeOpenedNodes\");\n if (strOpenedNodes) {\n const openedNodes = JSON.parse(strOpenedNodes);\n if (openedNodes[props.current]) {\n if (opened) {\n if (openedNodes[props.current].indexOf(props.node.slug) < 0) {\n openedNodes[props.current].push(props.node.slug);\n }\n } else {\n const nodeIndex = openedNodes[props.current].indexOf(props.node.slug);\n if (nodeIndex >= 0) {\n openedNodes[props.current].splice(nodeIndex, 1);\n }\n }\n }\n }\n\n if (opened && node && props.parent !== null && !fetchedOnOpen.current) {\n fetchedOnOpen.current = true;\n onFetchSidebarChildren();\n }\n }, [opened]);\n\n const onFetchSidebarChildren = () => {\n if (fetchEscapeCounter.current > 5) {\n return;\n }\n\n if (onFetchSidebarChildrenTimeout.current) {\n fetchEscapeCounter.current++;\n clearTimeout(onFetchSidebarChildrenTimeout.current);\n }\n\n onFetchSidebarChildrenTimeout.current = setTimeout(() => {\n fetchEscapeCounter.current = 0;\n console.log(\"onFetchSidebarChildren\");\n\n for (let i = 0; i < broadcasterSet.current.children.length; i++) {\n const slug = broadcasterSet.current.children[i].slug;\n Broadcaster.send(\n \"change_sidebarTreeNode\",\n document.getElementById(`sidebar_tree_node-${slug}`),\n { close: true }\n );\n }\n\n SpaceModel.onFetchSidebarChildren(\n broadcasterSet.current.slug,\n (data) => {\n props.onUpdateTreeData({ ...data });\n\n if (window.$fetchedTopSlug == broadcasterSet.current.slug) {\n storeJSON(\"spaces\", `tree_${broadcasterSet.current.slug}`, {\n ...data,\n });\n }\n },\n (data) => {}\n );\n }, 500);\n };\n\n const getElement = () => {\n return document.getElementById(`sidebar_tree_node-${node.slug}`);\n };\n\n const resetClasses = () => {\n $(getElement()).prop(\"class\", \"\");\n $(getElement()).addClass(\n `${cx(classes.nodeItem, {\n [classes.topNodeItem]: !props.parent,\n })} dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`\n );\n // setDragClasses(`dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`)\n };\n\n const onDragStart = (event, node) => {\n event.stopPropagation();\n if (!editable) {\n // const ele = document.createElement(\"div\")\n // ele.innerHTML = \"

Go to edit mode to Drag

\"\n // event.dataTransfer.setDragImage(ele, 60, 20);\n return;\n }\n\n if (currentDndState.current == \"onDragStart\") {\n return;\n }\n currentDndState.current = \"onDragStart\";\n console.log(\"onDragStart\");\n event.dataTransfer.setDragImage(event.currentTarget, 60, 20);\n\n node.parent = props.parent;\n node.parent.setChildren = props.setChildren;\n // dispatch(setSidebarDragging(node));\n window.$draggingNode = node;\n // Add class to dragged element\n $(getElement()).addClass(`dragging`);\n // setDragClasses(`dragging dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`)\n };\n\n const onDragEnd = (event, node) => {\n event.stopPropagation();\n if (!editable) {\n return;\n }\n\n if (currentDndState.current == \"onDragEnd\") {\n return;\n }\n currentDndState.current = \"onDragEnd\";\n console.log(\"onDragEnd\");\n // dispatch(setSidebarDragging({id: null}));\n window.$draggingNode = { id: null };\n // remove class to dragged element\n resetClasses();\n // setDragClasses(`dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`)\n };\n\n const onDragOver = (event, node, type) => {\n event.stopPropagation();\n event.preventDefault();\n if (currentDndState.current == \"onDragOver\") {\n return;\n }\n currentDndState.current = \"onDragOver\";\n console.log(\"onDragOver: \" + pos);\n\n if (!window.$draggingNode || !editable) {\n return;\n }\n\n if (window.$draggingNode.outsider) {\n let foundInTarget = false;\n for (let i = 0; i < window.$draggingNode.nodes.length; i++) {\n const dNode = window.$draggingNode.nodes[i];\n if (dNode.type == \"circle\") {\n if (\n node.slug == dNode.attrs.id ||\n props.findNodeInTreeBySlug(node.children, dNode.attrs.id)\n ) {\n foundInTarget = true;\n break;\n }\n }\n }\n if (!foundInTarget) {\n // dispatch(setSidebarDraggedOver(node));\n node.parent = props.parent;\n window.$draggedOverNode = node;\n\n const auxPos = getDropPosition(\n event.clientX,\n event.clientY,\n event.target\n );\n if (pos > 0 && auxPos == \"top\") {\n auxPos == \"center\";\n }\n\n // setDraggedOver(auxPos)\n draggedOver.current = auxPos;\n // setAnchorDragOverClasses(`dnd-anchor dragged-over`)\n $(getElement()).addClass(`drop-at-${auxPos}`);\n $(getElement()).addClass(`dragged-over`);\n } else {\n // setAnchorDragOverClasses(`dnd-anchor dragged-over-error`)\n $(getElement()).addClass(`dragged-over-error`);\n }\n } else {\n const foundInTarget = props.findNodeInTreeBySlug(\n node.children,\n window.$draggingNode.slug\n );\n if (node.slug != window.$draggingNode.slug && !foundInTarget) {\n node.parent = props.parent;\n\n window.$draggedOverNode = node;\n const auxPos = getDropPosition(\n event.clientX,\n event.clientY,\n event.target\n );\n if (pos > 0 && auxPos == \"top\") {\n auxPos == \"center\";\n }\n\n // setDraggedOver(auxPos)\n draggedOver.current = auxPos;\n\n // setAnchorDragOverClasses(`dnd-anchor dragged-over`)\n $(getElement()).addClass(`dnd-anchor dragged-over`);\n $(getElement()).addClass(`drop-at-${auxPos}`);\n } else {\n // setAnchorDragOverClasses(`dnd-anchor dragged-over-error`)\n $(getElement()).addClass(`dnd-anchor dragged-over-error`);\n }\n }\n };\n\n const onDragLeave = (event, node, type) => {\n event.stopPropagation();\n console.log(\"onDragLeave\");\n if (!editable) {\n return;\n }\n\n if (currentDndState.current == \"onDragLeave\") {\n return;\n }\n currentDndState.current = \"onDragLeave\";\n\n window.$draggedOverNode = { id: null };\n draggedOver.current = null;\n // setDraggedOver(null)\n // $(getElement()).removeClass(`drop-at-${auxPos}`)\n\n // setAnchorDragOverClasses(`dnd-anchor`)\n // $(getElement()).addClass(`dnd-anchor`)\n resetClasses();\n };\n\n const onDrop = (event, node) => {\n event.stopPropagation();\n\n if (!editable) {\n return;\n }\n\n if (currentDndState.current == \"onDrop\") {\n return;\n }\n currentDndState.current = \"onDrop\";\n console.log(\"onDrop\");\n\n let auxDraggingNode = { ...window.$draggingNode };\n let auxDraggingNodeParent = window.$draggingNode.parent;\n let multiple = false;\n\n if (window.$draggingNode.outsider) {\n // Get current selected nodeitem\n // Set the current selected nodeitem as the draggingNode parent\n auxDraggingNodeParent = props.findNodeInTreeBySlug(\n null,\n window.location.href.split(\"/\")[4]\n );\n\n if (window.$draggingNode.selection_type == \"circle\") {\n const circleNode = window.$draggingNode.nodes[0];\n auxDraggingNode = props.findNodeInTreeBySlug(null, circleNode.attrs.id);\n auxDraggingNode.node_type = \"circle\";\n } else {\n multiple = true;\n }\n } else {\n auxDraggingNode.node_type = \"circle\";\n }\n\n // If is circle use moveNodeFromTo\n if (!multiple) {\n if (\n node.slug != auxDraggingNode.slug &&\n auxDraggingNode.node_type == \"circle\"\n ) {\n // Moving logic\n if (draggedOver.current != \"center\") {\n moveNodeFromTo(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode.parent,\n window.$draggedOverNode,\n draggedOver.current\n );\n } else {\n moveNodeFromTo(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode,\n null,\n draggedOver.current\n );\n }\n }\n // If not update tree\n else if (\n node.slug != window.$draggingNode.slug &&\n window.$draggingNode.type != \"circle\"\n ) {\n if (draggedOver.current != \"center\") {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode.parent,\n window.$draggedOverNode,\n draggedOver.current\n );\n } else {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode,\n null,\n draggedOver.current\n );\n }\n }\n } else {\n if (draggedOver.current != \"center\") {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode.parent,\n window.$draggedOverNode,\n draggedOver.current\n );\n } else {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode,\n null,\n draggedOver.current\n );\n }\n }\n\n // dispatch(setSidebarDraggedOver({slug: null}));\n window.$draggedOverNode = { slug: null };\n // setDraggedOver(null)\n draggedOver.current = null;\n // setAnchorDragOverClasses(`dnd-anchor`)\n resetClasses();\n };\n\n const moveNodeFromTo = (node, prevNode, targetNode, afterNode, position) => {\n props.onTreeUpdate(node, prevNode, targetNode, afterNode, position);\n };\n\n if (!node) {\n return null;\n }\n\n return (\n onDragStart(event, props.node)}\n onDragEnd={(event) => onDragEnd(event, props.node)}\n onDragOver={(event) => onDragOver(event, props.node, \"anchor\")}\n onDragLeave={(event) => onDragLeave(event, props.node, \"anchor\")}\n onDrop={(event) => onDrop(event, props.node)}\n className={`${cx(classes.nodeItem, {\n [classes.topNodeItem]: !props.parent,\n })}`}\n >\n {props.parent !== null ? (\n 0 &&\n !node.sidebar_hide_children\n }\n opened={opened}\n setOpened={setOpened}\n editable={editable}\n />\n ) : (\n \"\"\n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { createStyles, Box, Text, Skeleton } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n spaceName: {\n paddingLeft: theme.other.appShellPadding,\n paddingRight: theme.other.appShellPadding,\n paddingTop: 20,\n paddingBottom: 20,\n fontSize: 25,\n lineHeight: 1.3,\n fontWeight: 400,\n width: \"100%\",\n display: \"block\",\n // color: colors.sidebar_text_color,\n color: !settingsView\n ? colors.sidebar_text_color\n : defaultSpaceColors.sidebar_text_color,\n borderBottom: !settingsView\n ? `1px solid ${tinycolor(colors.sidebar_background_color)\n .darken(5)\n .toString()}`\n : `1px solid ${tinycolor(defaultSpaceColors.sidebar_background_color)\n .darken(5)\n .toString()}`,\n textDecoration: \"none\",\n\n \"&:hover\": {\n // backgroundColor: tinycolor(colors.sidebar_background_color).darken(4).toString(),\n backgroundColor: !settingsView\n ? `1px solid ${tinycolor(colors.sidebar_background_color)\n .darken(5)\n .toString()}`\n : `1px solid ${tinycolor(defaultSpaceColors.sidebar_background_color)\n .darken(5)\n .toString()}`,\n },\n },\n\n nodeItemInsideActiveSettingsView: {\n backgroundColor: theme.colors.gray[7],\n color: \"#fff\",\n // fontWeight: \"300\",\n\n \"&:hover, & a, & a:hover\": {\n backgroundColor: theme.colors.gray[7],\n },\n },\n}));\n\nexport default function SidebarTitle(props) {\n const location = useLocation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n\n const [title, setTitle] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (props.name) {\n setTitle(props.name);\n }\n\n setLoading(props.loading);\n }, [props]);\n\n const getLinkPath = (slug, version) => {\n if (settingsView) {\n const setttingsSection = location.pathname.split(\"/\").pop();\n return `/space/${slug}/settings/${setttingsSection}`;\n } else {\n }\n return `/space/${slug}/${version}`;\n };\n\n return (\n \n {loading ? (\n \n \n \n \n \n \n \n ) : (\n \n {title}\n \n )}\n \n );\n}\n","import React from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\nimport { useTranslation } from \"react-i18next\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport {\n createStyles,\n Box,\n Text,\n UnstyledButton,\n Group,\n Tooltip,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n margin: \"20px 20px 0px 20px\",\n padding: \"10px 10px 10px 20px\",\n borderRadius: 5,\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n fontWeight: 500,\n alignItems: \"center\",\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(5)\n .toString(),\n },\n },\n spaceNameClose: {\n color: \"#fff\",\n fontWeight: 600,\n padding: \"5px 8px\",\n borderRadius: 5,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(15)\n .toString(),\n },\n },\n}));\n\nexport default function SidebarTutorial(props) {\n const location = useLocation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n const navigate = useNavigate();\n\n const onOpenTutorial = (event) => {\n trackMixpanel(user.username, \"Tutorial Opened\");\n navigate(`/space/${props.slug}/getting_started`);\n };\n\n const onCloseTutorial = (event) => {\n event.preventDefault();\n event.stopPropagation();\n SpaceSettingModel.onUpdate(\n props.slug,\n { pod_settings_attributes: { tutorial: \"hide\" } },\n (data) => {\n props.onCloseTutorial();\n },\n (data) => {}\n );\n };\n\n if (!space.slug) {\n return null;\n }\n\n return (\n onOpenTutorial(event)}\n className={classes.spaceNameWrap}\n >\n \n \n \n {t(\"spaces.sidebar.sidebarTutorial.gettingStarted\")}\n \n \n \n onCloseTutorial(event)}\n >\n \n \n \n );\n}\n","import React from \"react\";\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\n\nimport { createStyles, Box, Text, Group } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n padding: \"0px 0px 0px 20px\",\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n alignItems: \"center\",\n cursor: \"pointer\",\n minHeight: 47,\n // color: colors.sidebar_text_color,\n // color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n // color: !settingsView && isSpaceThemed(colors) ? colors.sidebar_text_color : theme.colors.gray[7],\n flexWrap: \"nowrap\",\n\n \"&:hover\": {\n backgroundColor: !settingsView\n ? tinycolor(colors.sidebar_background_color).darken(4).toString()\n : tinycolor(defaultSpaceColors.sidebar_background_color)\n .lighten(4)\n .toString(),\n },\n },\n spaceNameClose: {\n color: \"#fff\",\n fontWeight: 600,\n padding: \"5px 8px\",\n borderRadius: 5,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(15)\n .toString(),\n },\n },\n nodeIconWrap: {\n display: \"inline-block\",\n width: \"20px\",\n textAlign: \"center\",\n },\n nodeItemLink: {\n display: \"inline-block\",\n width: \"100%\",\n paddingTop: \"11px\",\n paddingBottom: \"11px\",\n textDecoration: \"none\",\n // marginLeft: \"5px\",\n fontWeight: 400,\n // color: colors.sidebar_text_color,\n // color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n color:\n !settingsView && isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : theme.colors.gray[7],\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n textStyle: {\n color:\n !settingsView && isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : \"#000\",\n },\n}));\n\nexport default function MembersNode(props) {\n const location = useLocation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n const navigate = useNavigate();\n\n const getLinkPath = () => {\n return `/space/${props.slug}/members`;\n };\n\n if (!space.slug) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n {t(\"spaces.sidebar.membersNode.member\")}\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useContext, useRef } from \"react\";\n\nimport { createStyles } from \"@mantine/core\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport NodeItem from \"./NodeItem\";\nimport SidebarTitle from \"./SidebarTitle\";\nimport SidebarTutorial from \"./SidebarTutorial\";\nimport MembersNode from \"./MembersNode\";\n\nimport SpaceModel from \"../../../models/Space\";\n\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n sidebarContainer: {\n width: theme.other.sideFrameWidth,\n backgroundColor: !settingsView\n ? colors.sidebar_background_color\n : defaultSpaceColors.sidebar_background_color,\n minHeight: \"calc(100vh - 60px)\",\n borderRight: `1px solid ${\n isSpaceThemed(colors)\n ? \"none\"\n : !settingsView\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : \"none\"\n }`,\n paddingBottom: 100,\n },\n settingsView: {\n backgroundColor: theme.colors.gray[7],\n color: \"#fff\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[7],\n },\n },\n}));\n\nlet newTree = null;\nlet activeStateSidebarUpdater = null;\nlet openedNodes = [];\n\nexport default function Sidebar(props) {\n const spaceTree = useSelector((state) => state.tree);\n\n const mainActions = useSelector((state) => state.mainActions);\n\n const colors = useSelector((state) => state.colors);\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n\n const cable = useContext(ActionCableContext);\n const [channel, setChannel] = useState(null);\n\n const dispatch = useDispatch();\n\n const interactiveTimeout = useRef();\n const lastInteractivePos = useRef();\n const trimmedTree = useRef();\n\n // New version\n const currentTopSlug = useRef();\n const currentTree = useRef();\n const [tree, setTree] = useState(null);\n\n useEffect(() => {\n // onFetchLocalStorage()\n window.$findNodeInTreeBySlug = findNodeInTreeBySlug;\n }, []);\n\n useEffect(() => {\n if (spaceTree) {\n if (\n !tree ||\n (tree && spaceTree.slug != tree.slug) ||\n window.$forceTreeUpdate\n ) {\n window.$forceTreeUpdate = false;\n window.$sidebarTree = { ...spaceTree };\n reRenderTree();\n }\n cableConnect();\n\n return () => {\n if (channel) {\n channel.unsubscribe();\n clearInterval(interactiveTimeout.current);\n interactiveTimeout.current = null;\n }\n };\n }\n }, [spaceTree]); //tree\n\n const reRenderTree = () => {\n trimmedTree.current = null;\n const auxTree = { ...spaceTree };\n setTree(auxTree);\n currentTree.current = { ...auxTree };\n };\n\n const onFetchLocalStorage = () => {\n const strOpenedNodes = localStorage.getItem(\"treeOpenedNodes\");\n if (strOpenedNodes) {\n openedNodes = JSON.parse(strOpenedNodes);\n }\n };\n\n const onSaveLocalStorage = () => {\n localStorage.setItem(\"treeOpenedNodes\", JSON.stringify(openedNodes));\n };\n\n const isCurrentActiveSlug = (child) => {\n if (child) {\n return window.location.href.split(\"/\")[4] == child.slug;\n } else {\n return false;\n }\n };\n\n const isCurrentSlugChild = (_tree) => {\n if (_tree && _tree.children && _tree.children.length > 0) {\n for (var i = 0; i < _tree.children.length; i++) {\n const child = _tree.children[i];\n if (child) {\n if (window.location.href.split(\"/\")[4] == child.slug) {\n return true;\n } else {\n const isDown = isCurrentSlugChild(child);\n if (isDown) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n\n const cableConnect = () => {\n const _channel = cable.subscriptions.create(\n {\n channel: \"SidebarChannel\",\n pod_slug: spaceTree.slug,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => console.log(\"connected sidebar channel\"),\n disconnected: () => console.log(\"disconnected sidebar channel\"),\n received: (data) => {\n console.log(\"tree channel data:\");\n console.log(data);\n if (\n !data.user_id ||\n (data.user_id && data.user_id == window.$currentUserId)\n ) {\n console.log(\"tree channel data PROCESSING:\");\n Broadcaster.send(\n \"change_sidebarTreeNode\",\n document.getElementById(`sidebar_tree_node-${data.slug}`),\n {}\n );\n }\n },\n }\n );\n\n setChannel(_channel);\n };\n\n const onCloseTutorial = () => {\n const auxTree = { ...currentTree.current };\n auxTree.tutorial = null;\n onUpdateTreeData(auxTree);\n };\n\n const onUpdateTreeData = (node) => {\n const auxTree = { ...currentTree.current };\n\n if (auxTree.slug == node.slug) {\n setTree({ ...node });\n currentTree.current = { ...node };\n return;\n }\n\n findNodeInTreeBySlug(auxTree, node.slug, node, true);\n\n setTree(auxTree);\n currentTree.current = { ...auxTree };\n };\n\n const onUpdate = (node, prevNode, targetNode, afterNode, position) => {\n // API update on server\n\n const params = {\n moving_slug: node.slug,\n moving_nodes: !node.slug ? node : null,\n parent_a: {\n slug: prevNode.slug,\n children: prevNode.children.map((c) => c.slug),\n },\n parent_b: {\n slug: targetNode.slug,\n children: targetNode.children.map((c) => c.slug),\n },\n sibling: {\n slug: afterNode ? afterNode.slug : null,\n position: position,\n },\n };\n\n SpaceModel.onUpdateTree(\n params,\n (data) => {},\n (data) => {}\n );\n };\n\n const findNodeInTreeBySlug = (\n _tree = null,\n slug = null,\n updateWith = null,\n all = false\n ) => {\n if (!_tree) {\n _tree = tree;\n }\n if (!slug) {\n slug = spaceTree.slug;\n }\n\n if (_tree.slug == slug) {\n if (updateWith) {\n if (_tree.children && !all) {\n const oldChildren = _tree.children;\n if (oldChildren) {\n updateWith.children = [...oldChildren];\n }\n }\n _tree = updateWith;\n }\n return _tree;\n } else {\n if (_tree.children) {\n for (let i = 0; i < _tree.children.length; i++) {\n if (_tree.children[i] && _tree.children[i].slug == slug) {\n if (updateWith) {\n const oldChildren = _tree.children[i].children;\n if (oldChildren && !all) {\n updateWith.children = [...oldChildren];\n }\n _tree.children[i] = updateWith;\n }\n\n return _tree.children[i];\n } else {\n if (!_tree.children[i]) {\n return false;\n }\n const found = findNodeInTreeBySlug(\n _tree.children[i],\n slug,\n updateWith,\n all\n );\n if (found) {\n return found;\n }\n }\n }\n }\n }\n };\n\n // const onFetchSidebarChildren = () => {\n // SpaceModel.onFetchSidebarChildren(tree.slug, (data) => {\n //\n // onUpdateTreeData({...data})\n // }, (data) => {\n //\n // })\n // }\n\n return (\n
\n\n {tree ? (\n \n ) : (\n \"\"\n )}\n {tree && tree.tutorial ? (\n \n ) : (\n \"\"\n )}\n
\n {tree && tree.permissions && tree.permissions.show_members && (\n \n )}\n {tree ? (\n \n ) : (\n \"\"\n )}\n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport { faIcons } from \"../../../collections/faIcons2\";\n\nimport { createStyles, Box, Group, ScrollArea, TextInput } from \"@mantine/core\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n nodeIconWrap: {\n display: \"inline-block\",\n width: \"20px\",\n textAlign: \"center\",\n color: theme.colors.gray[7],\n },\n}));\n\nexport default function IconSelect(props) {\n const colors = useSelector((state) => state.colors);\n const { theme, classes, cx } = useStyles({ colors });\n const [iconType, setIconType] = useState(\"\");\n const [iconValue, setIconValue] = useState(\"\");\n const [value, setValue] = useState(\"\");\n const [icons, setIcons] = useState(faIcons);\n const { t, i18n } = useTranslation();\n const testIcon = \"stripe-s\";\n\n useEffect(() => {\n filterIcons();\n }, [value]);\n\n const onIconSelect = (event) => {\n setIconType(event.split(\"#\")[0]);\n setIconValue(event.split(\"#\")[1]);\n props.onIconSelect(event);\n };\n\n const displayIcons = () => {\n return icons.map((icon) => (\n onIconSelect(`${icon.type}#${icon.value}`)}\n >\n {icon.icon}\n \n ));\n };\n\n // const displayIcons = () => {\n // return icons.map((icon) => (\n // onIconSelect(`${icon.type}#${icon.value}`)}\n // >\n // {}\n // \n // ))\n // }\n\n const filterIcons = () => {\n setIcons(faIcons.filter((icon) => icon.value.includes(value)));\n };\n\n return (\n \n }\n radius=\"md\"\n size=\"sm\"\n mx={12}\n my={10}\n placeholder={t(\"spaces.sidebar.iconSelect.placeholder\")}\n rightSectionWidth={42}\n value={value}\n onChange={(event) => setValue(event.currentTarget.value)}\n styles={{\n input: {\n display: \"block\",\n border: 0,\n outline: 0,\n width: \"100%\",\n padding: \"10px 2em 10px 2.2em\",\n borderRadius: 10,\n backgroundColor: \"rgba(0, 0, 0, .05)\",\n transitionDuration: \"225ms\",\n transitionProperty: \"background-color, box-shadow\",\n transitionTimingFunction: \"cubic-bezier(.4, .0, .2, 1)\",\n\n \"&::placeholder\": {\n color: \"#777\",\n },\n },\n icon: {\n color: \"#777\",\n },\n }}\n />\n \n {displayIcons()}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nimport { useSelector } from \"react-redux\";\nimport { useTranslation } from \"react-i18next\";\nimport SpaceModel from \"../../../models/Space\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\n\nimport { createStyles, Popover, Box, Tabs, Group } from \"@mantine/core\";\n\n// import { library } from '@fortawesome/fontawesome-svg-core'\n// import { far } from '@fortawesome/free-regular-svg-icons'\n// import { fas } from '@fortawesome/free-solid-svg-icons'\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport data from \"@emoji-mart/data\";\n\nimport Picker from \"@emoji-mart/react\";\n\nimport IconSelect from \"./IconSelect\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n nodeIconWrap: {\n display: \"inline-block\",\n width: \"20px\",\n textAlign: \"center\",\n color: isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : theme.colors.gray[7],\n },\n nodeIconWrapSettings: {\n color: theme.colors.gray[7],\n },\n nodeIconWrapSettingsActive: {\n color: \"#fff\",\n },\n markComplete: {\n color: theme.colors.green[6],\n },\n}));\n\nexport default function NodeIcon(props) {\n // library.add(far, fas)\n\n const colors = useSelector((state) => state.colors);\n const { settingsView } = useSidebarStyles();\n const { t, i18n } = useTranslation();\n const { theme, classes, cx } = useStyles({ colors });\n const [opened, setOpened] = useState(false);\n const [markComplete, setMarkComplete] = useState(false);\n const [emojicon, setEmojicon] = useState();\n\n useEffect(() => {\n setMarkComplete(props.completed);\n // setEmojicon(getEmojiCode(props.emojicon))\n setEmojicon(props.emojicon);\n }, [props]);\n\n const onEmojiSelect = (emoji) => {\n // const native = getEmojiCode(emoji.id)\n // setEmojicon(native)\n setEmojicon(`emoji/${emoji.id}`);\n saveEmojicon(`emoji/${emoji.id}`);\n setOpened(false);\n };\n\n const getEmojiCode = (emoji) => {\n if (emoji) {\n return data.emojis[emoji].skins[0].native;\n } else {\n return null;\n }\n };\n\n const onIconSelect = (icon) => {\n setEmojicon(`icon/${icon}`);\n saveEmojicon(`icon/${icon}`);\n setOpened(false);\n };\n\n const saveEmojicon = (emoji) => {\n SpaceModel.onUpdate(\n props.spaceId,\n { emojicon: emoji },\n (data) => {},\n (data) => {}\n );\n };\n\n const onOpen = (event) => {\n event.stopPropagation();\n event.preventDefault();\n setOpened(!opened);\n };\n\n const displayEmoji = () => {\n if (emojicon && emojicon != \"\") {\n if (emojicon.split(\"/\")[0] === \"emoji\") {\n return getEmojiCode(emojicon.split(\"/\")[1]);\n } else if (emojicon.split(\"/\")[0] === \"icon\") {\n const iconType = emojicon.split(\"/\")[1].split(\"#\")[0];\n const iconValue = emojicon.split(\"/\")[1].split(\"#\")[1];\n if (iconValue === \"bolt\") {\n return ;\n }\n return ;\n // return ()\n } else {\n return getEmojiCode(emojicon);\n }\n }\n return ;\n };\n\n const onReset = (event) => {\n if (event === 2) {\n setEmojicon(\"\");\n saveEmojicon(\"\");\n setOpened(false);\n }\n };\n\n return (\n setOpened(false)}\n target={\n {\n props.editable && onOpen(event);\n }}\n >\n {markComplete ? (\n \n ) : (\n <>{displayEmoji()}\n )}\n \n }\n width={260}\n position=\"right\"\n placement=\"start\"\n withArrow\n >\n onReset(event)}\n >\n \n \n \n \n \n \n \n
\n \n \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { useSelector } from 'react-redux';\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\"\nimport defaultSpaceColors from '../../../collections/defaultSpaceColors'\n\nimport tinycolor from 'tinycolor2'\n\nimport {\n Group,\n Text,\n createStyles,\n Badge,\n Loader\n} from '@mantine/core';\n\nimport { ChevronDown, ChevronUp } from 'tabler-icons-react';\n\nimport useActivityCounter from \"../../../utils/ActivityCounter\";\n\nimport NodeIcon from './NodeIcon'\n\nconst useStyles = createStyles((theme, {colors, settingsView}) => ({\n\n nodeItemInside: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n alignItems: \"center\",\n paddingLeft: \"100%\",\n marginLeft: \"-100%\",\n cursor: \"pointer\",\n minHeight: 47,\n // color: colors.sidebar_text_color,\n color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n flexWrap: \"nowrap\",\n\n \"&:hover\": {\n backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(4).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(4).toString(),\n },\n\n },\n\n nodeLabel: {\n lineHeight: 1.3\n },\n\n nodeItemInsideLinked: {\n display: \"flex\",\n alignItems: \"center\",\n },\n\n nodeItemInsideActive: {\n // window.location.pathname.indexOf(\"/settings/\") < 0\n // backgroundColor: tinycolor(colors.sidebar_background_color).darken(4).toString(),\n backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(4).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(4).toString(),\n color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n // color: colors.sidebar_text_color,\n\n \"& a\": {\n color: colors.sidebar_text_color,\n fontWeight: \"500\",\n\n },\n\n },\n\n nodeItemInsideActiveSettingsView: {\n // some weird bug here with the theme object losing it's value, so i'm using the hard coded value for theme.colors.gray[7]\n backgroundColor: \"#495057\",\n\n \"&:hover, & a, & a:hover\": {\n backgroundColor: \"#495057 !important\",\n color: \"#fff\",\n fontWeight: \"500\",\n },\n\n // \"&:hover\": {\n // backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(4).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(4).toString(),\n // },\n },\n\n nodeItemLink: {\n display: \"inline-block\",\n width: \"100%\",\n paddingTop: \"11px\",\n paddingBottom: \"11px\",\n textDecoration: \"none\",\n // marginLeft: \"5px\",\n fontWeight: 400,\n // color: colors.sidebar_text_color,\n color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n\n nodeItemEnd: {\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\"\n },\n\n toggler: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginRight: \"20px\",\n backgroundColor: !settingsView ? tinycolor(colors.sidebar_background_color).darken(10).toString() : tinycolor(defaultSpaceColors.sidebar_background_color).lighten(10).toString(),\n // color: tinycolor(colors.sidebar_text_color).lighten(10).toString(),\n color: !settingsView ? tinycolor(colors.sidebar_text_color).lighten(10).toString() : tinycolor(defaultSpaceColors.sidebar_text_color).lighten(10).toString(),\n borderRadius: \"4px\",\n height: \"25px\",\n width: \"25px\",\n cursor: \"pointer\",\n },\n\n\n}));\n\nexport default function NodeLink(props){\n\n const location = useLocation()\n\n const colors = useSelector(state => state.colors);\n const space = useSelector(state => state.space);\n\n const { settingsView } = useSidebarStyles();\n\n const { classes, cx } = useStyles({colors, settingsView});\n\n const [hasChildren, setHasChildren] = useState(false)\n\n const { activityCount } = useActivityCounter(props.version == \"content\" || props.version == \"discussion\" ? [\"pod_message\", \"reflection\", \"parent_activity\", \"user_message\"] : [\"parent_activity\"], [props.slug], [\"pod_message\", \"pod\", \"parents_slugs\"], [props.slug]);\n\n useEffect(() => {\n // console.log(props.name)\n setHasChildren(props.hasChildren)\n }, [props])\n\n const getLinkPath = (slug, version) => {\n if (settingsView){\n const setttingsSection = location.pathname.split(\"/\").pop()\n return `/space/${slug}/settings/${setttingsSection}`\n }\n else{\n }\n return `/space/${slug}/${version}`\n }\n\n const selectSettingsViewClasses = () => {\n return (\n settingsView ? classes.nodeItemInsideActiveSettingsView : classes.nodeItemInsideActive\n )\n }\n\n return (\n \n { props.editable && (\n \n )}\n \n \n { !props.editable && (\n \n )}\n \n {`${props.name}`}\n \n \n \n \n {activityCount > 0 && (\n \n { activityCount }\n \n )}\n {hasChildren ? (\n props.setOpened(!props.opened)}>\n {props.loading ? : props.opened ? : }\n \n ) : ('')}\n \n \n )\n}\n","import React from \"react\";\n\nimport SubNodeItem from \"./NodeItem\";\n\nimport { createStyles } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, getRef) => ({\n topNodeItemChildren: {\n // [`& .${getRef('nodeItem')}`]: {\n paddingLeft: 0,\n // }\n },\n}));\n\nexport default function NodeContent(props) {\n const { classes, cx } = useStyles();\n\n const pinned = () => {\n const spaces = props.node.children;\n if (!spaces){\n return [];\n }\n if ([\"events\", \"showcase\", \"list\"].indexOf(props.node.version) < 0){\n return [];\n }\n return spaces\n .filter((space) => space.is_pinned.is_pinned == true)\n .sort((a, b) => new Date(a.is_pinned.date) - new Date(b.is_pinned.date));\n };\n\n const unpinned = () => {\n const spaces = props.node.children;\n if (!spaces){\n return [];\n }\n if ([\"events\", \"showcase\", \"list\"].indexOf(props.node.version) < 0){\n return spaces;\n }\n return spaces.filter((space) => space.is_pinned.is_pinned == false);\n };\n\n return (\n \n {props.node &&\n pinned().map((child, index) => {\n return (\n child && (\n \n )\n );\n })}\n {props.node &&\n unpinned().map((child, index) => {\n return (\n child && (\n \n )\n );\n })}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { createStyles } from \"@mantine/core\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport NodeLink from \"./NodeLink\";\nimport NodeContent from \"./NodeContent\";\n\nimport { getDropPosition } from \"../../../utils/DropPosition\";\n\nimport SpaceModel from \"../../../models/neo4j/Space\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nimport { getJSON, storeJSON } from \"../../../utils/LocalDB\";\n\nimport pako from \"pako\";\n\nconst useStyles = createStyles((theme) => ({\n topNodeItem: {\n padding: \"0px\",\n },\n\n nodeItem: {\n // ref: getRef('nodeItem'),\n padding: \"0px 0px 0px 20px\",\n boxSizing: \"border-box\",\n width: \"100%\",\n },\n\n dragging: {\n backgroundColor: \"rgba(0,0,0,0.05)\",\n },\n}));\n\nexport default function NodeItem(props) {\n const sidebarChildrenA = useSelector((state) => state.sidebarChildrenA);\n const sidebarChildrenB = useSelector((state) => state.sidebarChildrenB);\n\n const { classes, cx } = useStyles();\n\n const dispatch = useDispatch();\n\n const [opened, setOpened] = useState(\"\");\n const [children, setChildren] = useState([]);\n const [pos, setPos] = useState();\n const [node, setNode] = useState();\n const [loading, setLoading] = useState();\n const [editable, setEditable] = useState(false);\n // const [draggedOver, setDraggedOver] = useState(null)\n const [dragClasses, setDragClasses] = useState(\"\");\n const [anchorDragOverClasses, setAnchorDragOverClasses] = useState(\"\");\n\n const broadcasterSet = useRef(false);\n const fetchedOnOpen = useRef(false);\n const intervalId = useRef();\n const intervalCounter = useRef(0);\n const currentDndState = useRef();\n const draggedOver = useRef();\n const fetchEscapeCounter = useRef(0);\n const openedOnProps = useRef(false);\n\n const onFetchSidebarChildrenTimeout = useRef();\n\n useEffect(() => {\n intervalCounter.current = 0;\n intervalId.current = setInterval(() => {\n // console.log(\"BROADCAST INIT : \" + node);\n intervalCounter.current++;\n if (intervalCounter.current > 100) {\n clearInterval(intervalId.current);\n }\n if (broadcasterSet.current) {\n const element = document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n );\n if (element) {\n // console.log(\"BROADCAST INIT : \" + broadcasterSet.current);\n clearInterval(intervalId.current);\n\n Broadcaster.receive(\n \"change_sidebarTreeNode\",\n document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n ),\n (event, data) => {\n \n // console.log(\"EVENT RECEIVED\");\n // console.log(data);\n if (data.close) {\n fetchedOnOpen.current = false;\n } else {\n if (data.shouldUpdateTopTree) {\n onFetchTopChildrenFromAPI();\n } else {\n onFetchSidebarChildren(data.data);\n }\n }\n }\n );\n }\n }\n }, 100);\n\n return () => {\n const element = document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n );\n if (broadcasterSet.current && element) {\n Broadcaster.unRegisterElement(\n \"change_sidebarTreeNode\",\n document.getElementById(\n `sidebar_tree_node-${broadcasterSet.current.slug}`\n )\n );\n }\n };\n }, []);\n\n useEffect(() => {\n if (!props.node.children) {\n props.node.children = [];\n }\n setPos(props.pos);\n setEditable(props.editable);\n\n setNode({ ...props.node });\n broadcasterSet.current = { ...props.node };\n }, [props]);\n\n useEffect(() => {\n if (window.$spacePath) {\n for (var i = 0; i < window.$spacePath.length; i++) {\n if (window.$spacePath[i].slug == props.node.slug) {\n if (!opened) {\n setOpened(true);\n return;\n }\n }\n }\n } else {\n const strOpenedNodes = localStorage.getItem(\"treeOpenedNodes\");\n // if (strOpenedNodes) {\n // const openedNodes = JSON.parse(strOpenedNodes);\n // if (openedNodes[props.current]) {\n // setOpened(openedNodes[props.current].indexOf(props.node.slug) >= 0);\n // } else {\n // setOpened(props.opened);\n // }\n // } else {\n // setOpened(props.opened);\n // }\n }\n \n \n if (props.node && props.node.settings && props.node.settings.sidebar_default_opened && !openedOnProps.current){\n openedOnProps.current = true\n setTimeout(() => {\n setOpened(true)\n }, 500)\n }\n\n if (opened && node && props.parent !== null && !fetchedOnOpen.current) {\n fetchedOnOpen.current = true;\n onFetchSidebarChildren();\n }\n }, [node]);\n\n useEffect(() => {\n const openedNodes = {};\n const strOpenedNodes = localStorage.getItem(\"treeOpenedNodes\");\n if (strOpenedNodes) {\n const openedNodes = JSON.parse(strOpenedNodes);\n if (openedNodes[props.current]) {\n if (opened) {\n if (openedNodes[props.current].indexOf(props.node.slug) < 0) {\n openedNodes[props.current].push(props.node.slug);\n }\n } else {\n const nodeIndex = openedNodes[props.current].indexOf(props.node.slug);\n if (nodeIndex >= 0) {\n openedNodes[props.current].splice(nodeIndex, 1);\n }\n }\n } else {\n openedNodes[props.current] = [props.node.slug];\n }\n } else {\n openedNodes[props.current] = [props.node.slug];\n }\n\n localStorage.setItem(\"treeOpenedNodes\", JSON.stringify(openedNodes));\n\n if (opened && node && props.parent !== null && !fetchedOnOpen.current) {\n fetchedOnOpen.current = true;\n onFetchSidebarChildren();\n }\n }, [opened]);\n\n const onFetchSidebarChildren = (data) => {\n if (fetchEscapeCounter.current > 5) {\n return;\n }\n\n if (onFetchSidebarChildrenTimeout.current) {\n fetchEscapeCounter.current++;\n clearTimeout(onFetchSidebarChildrenTimeout.current);\n }\n\n onFetchSidebarChildrenTimeout.current = setTimeout(() => {\n fetchEscapeCounter.current = 0;\n console.log(\"onFetchSidebarChildren\");\n\n for (let i = 0; i < broadcasterSet.current.children.length; i++) {\n if (broadcasterSet.current.children[i]){\n const slug = broadcasterSet.current.children[i].slug;\n Broadcaster.send(\n \"change_sidebarTreeNode\",\n document.getElementById(`sidebar_tree_node-${slug}`),\n { close: true }\n );\n }\n }\n\n onFetchChildren(data);\n\n // SpaceModel.onFetchSidebarChildren(\n // broadcasterSet.current.slug,\n // (data) => {\n // props.onUpdateTreeData({ ...data });\n\n // if (window.$fetchedTopSlug == broadcasterSet.current.slug) {\n // storeJSON(\"spaces\", `tree_${broadcasterSet.current.slug}`, {\n // ...data,\n // });\n // }\n // },\n // (data) => {}\n // );\n }, 500);\n };\n\n const onFetchChildren = (neo_data=null) => {\n if (neo_data){\n console.log(\"NEO UPDATE 2 -------> \" + neo_data.space.name)\n onSetTreeOrChildren({...neo_data});\n return\n }\n setLoading(true)\n // getJSON(\n // `spaces`,\n // `space_children_${broadcasterSet.current.slug}`,\n // (data) => {\n // if (data && data.space && data.space.slug) {\n // onSetTreeOrChildren(data);\n // }\n // }\n // );\n if (broadcasterSet.current && broadcasterSet.current.slug){\n onFetchChildrenFromAPI(broadcasterSet.current.slug);\n }\n };\n\n const decompressGzip = (compressedData) => {\n try {\n if (!compressedData) return [];\n const bytes = Uint8Array.from(atob(compressedData), c => c.charCodeAt(0));\n const decompressed = pako.ungzip(bytes, { to: \"string\" });\n return JSON.parse(decompressed);\n } catch (err) {\n console.error(\"Decompression error:\", err);\n return [];\n }\n };\n\n const onFetchChildrenFromAPI = () => {\n SpaceModel.onFetchChildren(\n broadcasterSet.current.slug,\n {topSlug: window.$fetchedTopSlug},\n (res) => {\n const auxData = {...res.data}\n auxData.children = [...decompressGzip(res.data.children)]\n storeJSON(\"spaces\", `space_children_${broadcasterSet.current.slug}`, {\n ...auxData,\n });\n\n onSetTreeOrChildren(auxData);\n },\n (data) => {}\n );\n };\n\n const onFetchTopChildrenFromAPI = () => {\n SpaceModel.onFetchChildren(\n window.$fetchedTopSlug,\n {topSlug: window.$fetchedTopSlug},\n (res) => {\n const auxData = {...res.data}\n auxData.children = [...decompressGzip(res.data.children)]\n storeJSON(\"spaces\", `space_children_${window.$fetchedTopSlug}`, {\n ...auxData,\n });\n onSetTreeOrChildren(auxData);\n },\n (data) => {}\n );\n };\n\n const onSetTreeOrChildren = (data) => {\n const space = { ...data.space };\n let children = []\n try{\n children = [...data.children];\n space.sidebar_default_opened = true;\n }\n catch{\n\n }\n\n setTimeout(() => {\n setLoading(false)\n }, 200)\n \n props.onUpdateTreeData({ ...space, children: children });\n };\n\n const getElement = () => {\n return document.getElementById(`sidebar_tree_node-${node.slug}`);\n };\n\n const resetClasses = () => {\n $(getElement()).prop(\"class\", \"\");\n $(getElement()).addClass(\n `${cx(classes.nodeItem, {\n [classes.topNodeItem]: !props.parent,\n })} dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`\n );\n // setDragClasses(`dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`)\n };\n\n const onDragStart = (event, node) => {\n event.stopPropagation();\n if (!editable) {\n // const ele = document.createElement(\"div\")\n // ele.innerHTML = \"

Go to edit mode to Drag

\"\n // event.dataTransfer.setDragImage(ele, 60, 20);\n return;\n }\n\n if (currentDndState.current == \"onDragStart\") {\n return;\n }\n currentDndState.current = \"onDragStart\";\n console.log(\"onDragStart\");\n event.dataTransfer.setDragImage(event.currentTarget, 60, 20);\n\n node.parent = props.parent;\n node.parent.setChildren = props.setChildren;\n // dispatch(setSidebarDragging(node));\n window.$draggingNode = node;\n // Add class to dragged element\n $(getElement()).addClass(`dragging`);\n // setDragClasses(`dragging dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`)\n };\n\n const onDragEnd = (event, node) => {\n event.stopPropagation();\n if (!editable) {\n return;\n }\n\n if (currentDndState.current == \"onDragEnd\") {\n return;\n }\n currentDndState.current = \"onDragEnd\";\n console.log(\"onDragEnd\");\n // dispatch(setSidebarDragging({id: null}));\n window.$draggingNode = { id: null };\n // remove class to dragged element\n resetClasses();\n // setDragClasses(`dnd-anchor ${props.node.slug == props.current ? \"active\" : \"\"}`)\n };\n\n const onDragOver = (event, node, type) => {\n event.stopPropagation();\n event.preventDefault();\n if (currentDndState.current == \"onDragOver\") {\n return;\n }\n currentDndState.current = \"onDragOver\";\n console.log(\"onDragOver: \" + pos);\n\n if (!window.$draggingNode || !editable) {\n return;\n }\n\n if (window.$draggingNode.outsider) {\n let foundInTarget = false;\n for (let i = 0; i < window.$draggingNode.nodes.length; i++) {\n const dNode = window.$draggingNode.nodes[i];\n if (dNode.type == \"circle\") {\n if (\n node.slug == dNode.attrs.id ||\n props.findNodeInTreeBySlug(node.children, dNode.attrs.id)\n ) {\n foundInTarget = true;\n break;\n }\n }\n }\n if (!foundInTarget) {\n // dispatch(setSidebarDraggedOver(node));\n node.parent = props.parent;\n window.$draggedOverNode = node;\n\n const auxPos = getDropPosition(\n event.clientX,\n event.clientY,\n event.target\n );\n if (pos > 0 && auxPos == \"top\") {\n auxPos == \"center\";\n }\n\n // setDraggedOver(auxPos)\n draggedOver.current = auxPos;\n // setAnchorDragOverClasses(`dnd-anchor dragged-over`)\n $(getElement()).addClass(`drop-at-${auxPos}`);\n $(getElement()).addClass(`dragged-over`);\n } else {\n // setAnchorDragOverClasses(`dnd-anchor dragged-over-error`)\n $(getElement()).addClass(`dragged-over-error`);\n }\n } else {\n const foundInTarget = props.findNodeInTreeBySlug(\n node.children,\n window.$draggingNode.slug\n );\n if (node.slug != window.$draggingNode.slug && !foundInTarget) {\n node.parent = props.parent;\n\n window.$draggedOverNode = node;\n const auxPos = getDropPosition(\n event.clientX,\n event.clientY,\n event.target\n );\n if (pos > 0 && auxPos == \"top\") {\n auxPos == \"center\";\n }\n\n // setDraggedOver(auxPos)\n draggedOver.current = auxPos;\n\n // setAnchorDragOverClasses(`dnd-anchor dragged-over`)\n $(getElement()).addClass(`dnd-anchor dragged-over`);\n $(getElement()).addClass(`drop-at-${auxPos}`);\n } else {\n // setAnchorDragOverClasses(`dnd-anchor dragged-over-error`)\n $(getElement()).addClass(`dnd-anchor dragged-over-error`);\n }\n }\n };\n\n const onDragLeave = (event, node, type) => {\n event.stopPropagation();\n console.log(\"onDragLeave\");\n if (!editable) {\n return;\n }\n\n if (currentDndState.current == \"onDragLeave\") {\n return;\n }\n currentDndState.current = \"onDragLeave\";\n\n window.$draggedOverNode = { id: null };\n draggedOver.current = null;\n // setDraggedOver(null)\n // $(getElement()).removeClass(`drop-at-${auxPos}`)\n\n // setAnchorDragOverClasses(`dnd-anchor`)\n // $(getElement()).addClass(`dnd-anchor`)\n resetClasses();\n };\n\n const onDrop = (event, node) => {\n event.stopPropagation();\n\n if (!editable) {\n return;\n }\n\n if (currentDndState.current == \"onDrop\") {\n return;\n }\n currentDndState.current = \"onDrop\";\n console.log(\"onDrop\");\n\n let auxDraggingNode = { ...window.$draggingNode };\n let auxDraggingNodeParent = window.$draggingNode.parent;\n let multiple = false;\n\n if (window.$draggingNode.outsider) {\n // Get current selected nodeitem\n // Set the current selected nodeitem as the draggingNode parent\n auxDraggingNodeParent = props.findNodeInTreeBySlug(\n null,\n window.location.href.split(\"/\")[4]\n );\n\n if (window.$draggingNode.selection_type == \"circle\") {\n const circleNode = window.$draggingNode.nodes[0];\n auxDraggingNode = props.findNodeInTreeBySlug(null, circleNode.attrs.id);\n auxDraggingNode.node_type = \"circle\";\n } else {\n multiple = true;\n }\n } else {\n auxDraggingNode.node_type = \"circle\";\n }\n\n // If is circle use moveNodeFromTo\n if (!multiple) {\n if (\n node.slug != auxDraggingNode.slug &&\n auxDraggingNode.node_type == \"circle\"\n ) {\n // Moving logic\n if (draggedOver.current != \"center\") {\n moveNodeFromTo(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode.parent,\n window.$draggedOverNode,\n draggedOver.current\n );\n } else {\n moveNodeFromTo(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode,\n null,\n draggedOver.current\n );\n }\n }\n // If not update tree\n else if (\n node.slug != window.$draggingNode.slug &&\n window.$draggingNode.type != \"circle\"\n ) {\n if (draggedOver.current != \"center\") {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode.parent,\n window.$draggedOverNode,\n draggedOver.current\n );\n } else {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode,\n null,\n draggedOver.current\n );\n }\n }\n } else {\n if (draggedOver.current != \"center\") {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode.parent,\n window.$draggedOverNode,\n draggedOver.current\n );\n } else {\n props.onTreeUpdate(\n auxDraggingNode,\n auxDraggingNodeParent,\n window.$draggedOverNode,\n null,\n draggedOver.current\n );\n }\n }\n\n // dispatch(setSidebarDraggedOver({slug: null}));\n window.$draggedOverNode = { slug: null };\n // setDraggedOver(null)\n draggedOver.current = null;\n // setAnchorDragOverClasses(`dnd-anchor`)\n resetClasses();\n };\n\n const moveNodeFromTo = (node, prevNode, targetNode, afterNode, position) => {\n props.onTreeUpdate(node, prevNode, targetNode, afterNode, position);\n };\n\n const isUnpublished = () => {\n return (\n node && node.settings && node.settings.launch_on_date && new Date() < new Date(node.settings.launch_time)\n );\n };\n\n if (!node) {\n return null;\n }\n\n return (\n onDragStart(event, props.node)}\n onDragEnd={(event) => onDragEnd(event, props.node)}\n onDragOver={(event) => onDragOver(event, props.node, \"anchor\")}\n onDragLeave={(event) => onDragLeave(event, props.node, \"anchor\")}\n onDrop={(event) => onDrop(event, props.node)}\n className={`${cx(classes.nodeItem, {\n [classes.topNodeItem]: !props.parent,\n })}`}\n style={{\n display: !isUnpublished() ? \"block\" : \"none\",\n }}\n >\n {props.parent !== null ? (\n \n ) : (\n \"\"\n )}\n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { useSelector } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { createStyles, Box, Text, Skeleton } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n spaceName: {\n paddingLeft: theme.other.appShellPadding,\n paddingRight: theme.other.appShellPadding,\n paddingTop: 20,\n paddingBottom: 20,\n fontSize: 21,\n lineHeight: 1.3,\n fontWeight: 600,\n width: \"100%\",\n display: \"block\",\n // color: colors.sidebar_text_color,\n color: !settingsView\n ? colors.sidebar_text_color\n : defaultSpaceColors.sidebar_text_color,\n borderBottom: !settingsView\n ? `1px solid ${tinycolor(colors.sidebar_background_color)\n .darken(5)\n .toString()}`\n : `1px solid ${tinycolor(defaultSpaceColors.sidebar_background_color)\n .darken(5)\n .toString()}`,\n textDecoration: \"none\",\n\n \"&:hover\": {\n // backgroundColor: tinycolor(colors.sidebar_background_color).darken(4).toString(),\n backgroundColor: !settingsView\n ? `1px solid ${tinycolor(colors.sidebar_background_color)\n .darken(5)\n .toString()}`\n : `1px solid ${tinycolor(defaultSpaceColors.sidebar_background_color)\n .darken(5)\n .toString()}`,\n },\n },\n\n nodeItemInsideActiveSettingsView: {\n backgroundColor: theme.colors.gray[7],\n color: \"#fff\",\n // fontWeight: \"300\",\n\n \"&:hover, & a, & a:hover\": {\n backgroundColor: theme.colors.gray[7],\n },\n },\n}));\n\nexport default function SidebarTitle(props) {\n const location = useLocation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n\n const [title, setTitle] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (props.name) {\n setTitle(props.name);\n }\n\n setLoading(props.loading);\n }, [props]);\n\n const getLinkPath = (slug, version) => {\n if (settingsView) {\n const setttingsSection = location.pathname.split(\"/\").pop();\n return `/space/${slug}/settings/${setttingsSection}`;\n } else {\n }\n return `/space/${slug}/${version}`;\n };\n\n return (\n \n {loading ? (\n \n \n \n \n \n \n \n ) : (\n \n {title}\n \n )}\n \n );\n}\n","import React from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\nimport { useTranslation } from \"react-i18next\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport {\n createStyles,\n Box,\n Text,\n UnstyledButton,\n Group,\n Tooltip,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n margin: \"20px 20px 0px 20px\",\n padding: \"10px 10px 10px 20px\",\n borderRadius: 5,\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n fontWeight: 500,\n alignItems: \"center\",\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(5)\n .toString(),\n },\n },\n spaceNameClose: {\n color: \"#fff\",\n fontWeight: 600,\n padding: \"5px 8px\",\n borderRadius: 5,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(15)\n .toString(),\n },\n },\n}));\n\nexport default function SidebarTutorial(props) {\n const location = useLocation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n const navigate = useNavigate();\n\n const onOpenTutorial = (event) => {\n if (space.pod_state == \"model\"){\n return\n }\n trackMixpanel(user.username, \"Tutorial Opened\");\n navigate(`/space/${props.slug}/getting_started`);\n };\n\n const onCloseTutorial = (event) => {\n event.preventDefault();\n event.stopPropagation();\n SpaceSettingModel.onUpdate(\n props.slug,\n { pod_settings_attributes: { tutorial: \"hide\" } },\n (data) => {\n props.onCloseTutorial();\n },\n (data) => {}\n );\n };\n\n if (!space.slug) {\n return null;\n }\n\n return (\n onOpenTutorial(event)}\n className={classes.spaceNameWrap}\n >\n \n \n \n {t(\"spaces.sidebar.sidebarTutorial.gettingStarted\")}\n \n \n \n onCloseTutorial(event)}\n >\n \n \n \n );\n}\n","import React from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport trackMixpanel from \"../../../utils/TrackMixpanel\";\nimport { useTranslation } from \"react-i18next\";\nimport SpaceSettingModel from \"../../../models/SpaceSetting\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport {\n createStyles,\n Box,\n Text,\n UnstyledButton,\n Group,\n Tooltip,\n} from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n backgroundColor: \"#ff0000\",\n color: colors.primary_button_text_color,\n margin: \"20px 20px 0px 20px\",\n padding: \"10px 10px 10px 20px\",\n borderRadius: 5,\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n fontWeight: 500,\n alignItems: \"center\",\n },\n spaceNameClose: {\n color: \"#fff\",\n fontWeight: 600,\n padding: \"5px 8px\",\n borderRadius: 5,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(15)\n .toString(),\n },\n },\n}));\n\nexport default function SidebarTutorial(props) {\n const location = useLocation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const user = useSelector((state) => state.user);\n const { t, i18n } = useTranslation();\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n const navigate = useNavigate();\n\n if (!space.slug) {\n return null;\n }\n\n return (\n \n \n \n \n {\"Template space\"}\n \n \n \n \n );\n}\n","import React from \"react\";\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\n\nimport { createStyles, Box, Text, Group } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n padding: \"0px 0px 0px 20px\",\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n alignItems: \"center\",\n cursor: \"pointer\",\n minHeight: 47,\n // color: colors.sidebar_text_color,\n // color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n // color: !settingsView && isSpaceThemed(colors) ? colors.sidebar_text_color : theme.colors.gray[7],\n flexWrap: \"nowrap\",\n\n \"&:hover\": {\n backgroundColor: !settingsView\n ? tinycolor(colors.sidebar_background_color).darken(4).toString()\n : tinycolor(defaultSpaceColors.sidebar_background_color)\n .lighten(4)\n .toString(),\n },\n },\n spaceNameClose: {\n color: \"#fff\",\n fontWeight: 600,\n padding: \"5px 8px\",\n borderRadius: 5,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(15)\n .toString(),\n },\n },\n nodeIconWrap: {\n display: \"inline-block\",\n width: \"20px\",\n textAlign: \"center\",\n },\n nodeItemLink: {\n display: \"inline-block\",\n width: \"100%\",\n paddingTop: \"11px\",\n paddingBottom: \"11px\",\n textDecoration: \"none\",\n // marginLeft: \"5px\",\n fontWeight: 400,\n // color: colors.sidebar_text_color,\n // color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n color:\n !settingsView && isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : theme.colors.gray[7],\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n textStyle: {\n color:\n !settingsView && isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : \"#000\",\n },\n}));\n\nexport default function MembersNode(props) {\n const location = useLocation();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n \n const { t, i18n } = useTranslation();\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n const navigate = useNavigate();\n\n const getLinkPath = () => {\n return `/space/${props.slug}/members`;\n };\n\n if (!space.slug) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n {t(\"spaces.sidebar.membersNode.member\")}\n \n \n \n \n );\n}\n","import React from \"react\";\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\n\nimport { setActions, setTiptapSidemenu } from \"../../../store/app\";\n\nimport { isEmptySelection } from \"../../tiptap/utils/selection\";\n\nimport { createStyles, Box, Text, Group } from \"@mantine/core\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n spaceNameWrap: {\n padding: \"0px 0px 0px 20px\",\n display: \"flex\",\n flexFlow: \"row\",\n justifyContent: \"space-between\",\n boxSizing: \"border-box\",\n alignItems: \"center\",\n cursor: \"pointer\",\n minHeight: 47,\n // borderTop: !settingsView\n // ? `1px solid ${tinycolor(colors.sidebar_background_color)\n // .darken(5)\n // .toString()}`\n // : `1px solid ${tinycolor(defaultSpaceColors.sidebar_background_color)\n // .darken(5)\n // .toString()}`,\n // color: colors.sidebar_text_color,\n // color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n // color: !settingsView && isSpaceThemed(colors) ? colors.sidebar_text_color : theme.colors.gray[7],\n flexWrap: \"nowrap\",\n\n \"&:hover\": {\n backgroundColor: !settingsView\n ? tinycolor(colors.sidebar_background_color).darken(4).toString()\n : tinycolor(defaultSpaceColors.sidebar_background_color)\n .lighten(4)\n .toString(),\n },\n },\n spaceNameClose: {\n color: \"#fff\",\n fontWeight: 600,\n padding: \"5px 8px\",\n borderRadius: 5,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(15)\n .toString(),\n },\n },\n nodeIconWrap: {\n display: \"inline-block\",\n width: \"20px\",\n textAlign: \"center\",\n color:\n !settingsView && isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : theme.colors.gray[7],\n },\n nodeItemLink: {\n display: \"inline-block\",\n width: \"100%\",\n paddingTop: \"11px\",\n paddingBottom: \"11px\",\n textDecoration: \"none\",\n // marginLeft: \"5px\",\n fontWeight: 400,\n // color: colors.sidebar_text_color,\n // color: !settingsView ? colors.sidebar_text_color : defaultSpaceColors.sidebar_text_color,\n color:\n !settingsView && isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : theme.colors.gray[7],\n\n \"&:hover\": {\n textDecoration: \"none\",\n },\n },\n textStyle: {\n color:\n !settingsView && isSpaceThemed(colors)\n ? colors.sidebar_text_color\n : \"#000\",\n },\n}));\n\nexport default function NewSpaceNode(props) {\n const location = useLocation();\n const dispatch = useDispatch();\n\n const space = useSelector((state) => state.space);\n const colors = useSelector((state) => state.colors);\n const mainActions = useSelector((state) => state.mainActions);\n const tiptap = useSelector((state) => state.tiptap);\n\n const { t, i18n } = useTranslation();\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n\n const onNewSpace = () => {\n if (mainActions.editPage){\n AddLineBelowSelection();\n\n dispatch(\n setTiptapSidemenu({ opened: \"newSpace\", option: \"content\" })\n );\n }\n else{\n dispatch(setActions({ editPage: true }));\n window.$openCreateSpaceOnEditMode = true;\n }\n }\n\n const AddLineBelowSelection = () => {\n const { from, to, $anchor } = tiptap.editor.view.state.selection;\n\n if (!isEmptySelection(tiptap.editor)) {\n tiptap.editor.commands.addNewEmptyLine();\n window.$tiptapLastSelectionRange = { from: to + 1, to: to + 1 };\n\n // tiptap.editor.chain().focus().setTextSelection({ from: to+1, to: to+1 }).run()\n } else {\n window.$tiptapLastSelectionRange = { from: to, to: to };\n }\n };\n\n if (!space.slug ) {\n return null;\n }\n\n if (!space.permissions.can_edit) {\n return null;\n }\n\n if (space.version != \"content\") {\n return null;\n }\n\n\n return (\n onNewSpace()}\n >\n \n \n \n \n {\"Create new space\"}\n \n \n );\n}\n","import React, { useState, useEffect, useContext, useRef } from \"react\";\n\nimport { createStyles, Button, Box } from \"@mantine/core\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport NodeItem from \"./NodeItem\";\nimport SidebarTitle from \"./SidebarTitle\";\nimport SidebarTutorial from \"./SidebarTutorial\";\nimport SidebarTemplate from \"./SidebarTemplate\";\nimport MembersNode from \"./MembersNode\";\nimport NewSpaceNode from \"./NewSpaceNode\";\n\nimport SpaceModel from \"../../../models/Space\";\n\nimport defaultSpaceColors from \"../../../collections/defaultSpaceColors\";\nimport useSidebarStyles from \"../../../utils/SidebarStyles\";\nimport isSpaceThemed from \"../../../utils/IsSpaceThemed\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport { ActionCableContext } from \"../../../components/Index\";\n\nimport Broadcaster from \"../../../helpers/Broadcaster\";\n\nconst useStyles = createStyles((theme, { colors, settingsView }) => ({\n sidebarContainer: {\n width: theme.other.sideFrameWidth,\n backgroundColor: !settingsView\n ? colors.sidebar_background_color\n : defaultSpaceColors.sidebar_background_color,\n minHeight: \"calc(100vh - 60px)\",\n borderRight: `1px solid ${\n isSpaceThemed(colors)\n ? \"none\"\n : !settingsView\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : \"none\"\n }`,\n paddingBottom: 100,\n },\n settingsView: {\n backgroundColor: theme.colors.gray[7],\n color: \"#fff\",\n \"&:hover\": {\n backgroundColor: theme.colors.gray[7],\n },\n },\n}));\n\nlet newTree = null;\nlet activeStateSidebarUpdater = null;\nlet openedNodes = [];\n\nexport default function Sidebar(props) {\n const spaceTree = useSelector((state) => state.tree);\n\n const mainActions = useSelector((state) => state.mainActions);\n\n const colors = useSelector((state) => state.colors);\n const { settingsView } = useSidebarStyles();\n const { classes, cx } = useStyles({ colors, settingsView });\n\n const cable = useContext(ActionCableContext);\n const [channel, setChannel] = useState(null);\n\n const dispatch = useDispatch();\n\n const interactiveTimeout = useRef();\n const lastInteractivePos = useRef();\n const trimmedTree = useRef();\n\n // New version\n const currentTopSlug = useRef();\n const currentTree = useRef();\n const [tree, setTree] = useState(null);\n\n useEffect(() => {\n // onFetchLocalStorage()\n window.$findNodeInTreeBySlug = findNodeInTreeBySlug;\n }, []);\n\n useEffect(() => {\n if (spaceTree) {\n if (\n !tree ||\n (tree && spaceTree.slug != tree.slug) ||\n window.$forceTreeUpdate\n ) {\n window.$forceTreeUpdate = false;\n window.$sidebarTree = { ...spaceTree };\n reRenderTree();\n }\n\n return () => {\n if (channel) {\n clearInterval(interactiveTimeout.current);\n interactiveTimeout.current = null;\n }\n };\n }\n }, [spaceTree]); //tree\n\n const reRenderTree = () => {\n trimmedTree.current = null;\n const auxTree = { ...spaceTree };\n setTree(auxTree);\n currentTree.current = { ...auxTree };\n };\n\n const onCloseTutorial = () => {\n const auxTree = { ...currentTree.current };\n auxTree.tutorial = null;\n onUpdateTreeData(auxTree);\n };\n\n const onUpdateTreeData = (node) => {\n const auxTree = { ...currentTree.current };\n\n if (auxTree.slug == node.slug) {\n setTree({ ...node });\n currentTree.current = { ...node };\n return;\n }\n\n findNodeInTreeBySlug(auxTree, node.slug, node, true);\n\n setTree(auxTree);\n currentTree.current = { ...auxTree };\n };\n\n const onUpdate = (node, prevNode, targetNode, afterNode, position) => {\n // API update on server\n\n const params = {\n moving_slug: node.slug,\n moving_nodes: !node.slug ? node : null,\n parent_a: {\n slug: prevNode.slug,\n children: prevNode.children.map((c) => c.slug),\n },\n parent_b: {\n slug: targetNode.slug,\n children: targetNode.children.map((c) => c.slug),\n },\n sibling: {\n slug: afterNode ? afterNode.slug : null,\n position: position,\n },\n };\n\n SpaceModel.onUpdateTree(\n params,\n (data) => {},\n (data) => {}\n );\n };\n\n const findNodeInTreeBySlug = (\n _tree = null,\n slug = null,\n updateWith = null,\n all = false\n ) => {\n if (!_tree) {\n _tree = tree;\n }\n if (!slug) {\n slug = spaceTree.slug;\n }\n\n if (_tree.slug == slug) {\n if (updateWith) {\n if (_tree.children && !all) {\n const oldChildren = _tree.children;\n if (oldChildren) {\n updateWith.children = [...oldChildren];\n }\n }\n\n _tree = updateWith;\n }\n return _tree;\n } else {\n if (_tree.children) {\n for (let i = 0; i < _tree.children.length; i++) {\n if (_tree.children[i] && _tree.children[i].slug == slug) {\n if (updateWith) {\n const oldChildren = _tree.children[i].children;\n if (oldChildren && !all) {\n updateWith.children = [...oldChildren];\n }\n _tree.children[i] = updateWith;\n }\n\n return _tree.children[i];\n } else {\n if (!_tree.children[i]) {\n return false;\n }\n const found = findNodeInTreeBySlug(\n _tree.children[i],\n slug,\n updateWith,\n all\n );\n if (found) {\n return found;\n }\n }\n }\n }\n }\n };\n\n return (\n
\n {tree ? (\n \n ) : (\n \"\"\n )}\n {tree &&\n tree.tutorial &&\n tree.permissions[window.$currentRole].can_manage ? (\n tree.pod_state != \"model\" ? (\n \n ) : (\n \n )\n ) : (\n \"\"\n )}\n
\n {tree &&\n tree.settings &&\n tree.settings.show_members &&\n tree.pod_state != \"model\" && }\n {tree ? (\n \n ) : (\n \"\"\n )}\n \n
\n
\n );\n}\n","import React from 'react';\n\nimport { Routes, Route } from \"react-router-dom\";\n\nimport SidebarHome from '../home/Sidebar'\nimport SidebarUser from '../settings/Sidebar'\nimport SidebarSpace from '../spaces/sidebar/Sidebar'\nimport SidebarSpaceNeo from '../spaces_neo/sidebar/Sidebar'\n\nexport default function NavbarContent() {\n\n return (\n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n )\n}\n","import React from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { useMediaQuery } from '@mantine/hooks';\n\nimport { ScrollArea, createStyles } from '@mantine/core';\n\nimport NavbarContent from './NavbarContent'\nimport useSidebarStyles from \"../../utils/SidebarStyles\"\n\nconst useStyles = createStyles((theme, {spaceView, settingsView}) => ({\n appSideFrame: {\n width: theme.other.sideFrameWidth,\n height: `calc(100vh - ${theme.other.headerHeight}px)`,\n boxSizing: \"border-box\",\n overflow: \"hidden\",\n backgroundColor: \"#fff\",\n borderRight: !spaceView < 0 && !settingsView ? \"1px solid #ececec\" : \"none\"\n },\n appSideFrameHover: {\n display: \"block\",\n width: theme.other.sideFrameWidth,\n height: `calc(100vh - ${theme.other.headerHeight}px)`,\n boxSizing: \"border-box\",\n overflow: \"hidden\",\n backgroundColor: \"#fff\",\n position: \"absolute\",\n boxShadow: \"0px 15px 20px 5px #999\",\n zIndex: 299\n },\n}))\n\nexport default function Navbar() {\n\n const { spaceView, settingsView } = useSidebarStyles();\n const { classes, cx, theme } = useStyles({spaceView, settingsView});\n const hiddenSidebar = useSelector(state => state.hiddenSidebar);\n const hoverSidebar = useSelector(state => state.hoverSidebar);\n const mediumScreen = useMediaQuery(`(max-width: ${theme.other.breakpoints.md}px)`);\n\n const isStaticSpaceRoute = () => {\n return (window.location.pathname.indexOf(\"/space\") >= 0 || window.location.pathname.indexOf(\"/user\") >= 0 || window.location.pathname.indexOf(\"/app/pay\") >= 0) && (window.location.pathname.indexOf(\"/register\") >= 0 || window.location.pathname.indexOf(\"/registration\") >= 0 || window.location.pathname.indexOf(\"/private\") >= 0 || window.location.pathname.indexOf(\"/pending\") >= 0 || (window.location.pathname.indexOf(\"/survey\") >= 0 && window.location.pathname.indexOf(\"/surveys\") == 0) || window.location.pathname.indexOf(\"/demo\") >= 0 || window.location.pathname.indexOf(\"/pay\") >= 0 || window.location.href.split(\"/\").length == 5)\n }\n\n const alwaysHide = () => {\n return window.location.pathname.indexOf(\"/home\") >= 0 || (window.location.pathname.indexOf(\"/setting\") >= 0 && window.location.pathname.indexOf(\"/space\") < 0) || window.location.pathname.indexOf(\"/app\") >= 0\n }\n \n if ((hiddenSidebar.hidden && !alwaysHide()) || (mediumScreen && !hoverSidebar.hover) || isStaticSpaceRoute()){\n\n return null\n }\n\n return (\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setUser, setAlert } from \"../../store/app\";\nimport {\n Box,\n Button,\n TextInput,\n Textarea,\n Image,\n Progress,\n ScrollArea,\n Group,\n createStyles,\n} from \"@mantine/core\";\nimport Uploady, {\n useItemProgressListener,\n useItemFinishListener,\n} from \"@rpldy/uploady\";\nimport { asUploadButton } from \"@rpldy/upload-button\";\nimport DefaultAvatar from \"../../src/images/fallback/default.png\";\nimport UserModel from \"../../models/User\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useForm } from \"@mantine/form\";\nimport useAuthUser from \"../../utils/AuthUser\";\n\nimport tinycolor from \"tinycolor2\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n buttonStyleOutline: {\n backgroundColor: \"none\",\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(1).toString(),\n },\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n secondaryButtonStyle: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.secondary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n buttonStyle: {\n backgroundColor: \"none\",\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(1).toString(),\n },\n },\n inputLabelStyle: {\n color: colors.default_text_color,\n },\n}));\n\nconst LogProgress = (props) => {\n const [progress, setProgress] = useState(0);\n\n useItemProgressListener((item) => {\n setProgress(item.completed);\n });\n useItemFinishListener((item) => {\n props.onUploadCallback(item.uploadResponse.data);\n });\n\n return progress > 0 && progress < 100 ? (\n \n ) : (\n \"\"\n );\n};\n\nconst CustomUploadButton = asUploadButton((props) => {\n const { t, i18n } = useTranslation();\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n return (\n \n {t(\"settings.editProfile.addProfileImage\")}\n \n );\n});\n\nexport default function Profile() {\n const { t, i18n } = useTranslation();\n\n const user = useSelector((state) => state.user);\n\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n\n const dispatch = useDispatch();\n\n const { setAuthUser } = useAuthUser();\n\n const form = useForm({\n initialValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n username: \"\",\n bio: \"\",\n },\n\n validate: {\n email: (value) => (/^\\S+@\\S+$/.test(value) ? null : \"Invalid email\"),\n },\n });\n\n useEffect(() => {\n initFormData();\n }, [user]);\n\n const initFormData = () => {\n form.setFieldValue(\"first_name\", user.first_name);\n form.setFieldValue(\"last_name\", user.last_name);\n form.setFieldValue(\"email\", user.email);\n form.setFieldValue(\"username\", user.username);\n form.setFieldValue(\"bio\", user.bio);\n };\n\n const onAvatarUploaded = (data) => {\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n // const newUser = { ...user };\n // newUser.avatar.url = data.url;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n };\n\n const onRemoveAvatar = () => {\n UserModel.onRemoveAvatar(\n user.id,\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n\n // const newUser = { ...user };\n // newUser.avatar.url = null;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n const onSave = (values) => {\n UserModel.onUpdate(\n user.id,\n {\n first_name: values.first_name,\n last_name: values.last_name,\n username: values.username,\n bio: values.bio,\n email: values.email,\n // location: values.location\n },\n (data) => {\n // Success callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"green\",\n })\n );\n // const newUser = { ...user };\n\n // user.first_name = values.first_name;\n // user.last_name = values.last_name;\n // user.username = values.username;\n // user.bio = values.bio;\n // user.email = values.email;\n // // user.location = values.location\n // newUser.forceUpdate = true;\n // setAuthUser(newUser);\n // dispatch(setUser(newUser));\n },\n (data) => {\n // Error callback\n dispatch(\n setAlert({\n opened: true,\n title: data.title,\n message: data.message,\n color: \"red\",\n })\n );\n }\n );\n };\n\n if (!user) {\n return null;\n }\n\n return (\n \n \n
onSave(values))}>\n {user.avatar && (\n \n \n \n \n {!user.avatar.url ||\n user.avatar.url.indexOf(\"assets/fallback\") >= 0 ? (\n \n \n \n \n ) : (\n onRemoveAvatar()}\n >\n {t(\"settings.editProfile.removeProfileImage\")}\n \n )}\n \n )}\n\n \n\n \n\n \n\n \n \n \n {t(\"settings.editProfile.updateProfile\")}\n \n \n
\n
\n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation, useParams, useNavigate } from \"react-router-dom\";\n\nimport {\n Drawer,\n Button,\n Box,\n Group,\n Image,\n Text,\n Stack,\n Grid,\n Title,\n MantineProvider,\n createStyles,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport { useMediaQuery } from \"@mantine/hooks\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\nimport UserModel from \"../../models/User\";\nimport DirectMessageModel from \"../../models/DirectMessage\";\nimport SpaceModel from \"../../models/Space\";\nimport DefaultAvatar from \"../../src/images/fallback/default.png\";\nimport SpaceListItem from \"../spaces/presentations/List\";\n\nimport SettingsProfile from \"../settings/ProfileFormModal\";\n\nimport { setHiddenSidebar, setTiptapSidemenu } from \"../../store/app\";\n\nimport { Helmet } from \"react-helmet\";\nimport { colors } from \"../../collections/colors\";\n\nimport tinycolor from \"tinycolor2\";\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n userInfoWrap: {\n paddingBottom: 35,\n },\n avatarWrapMediumScreen: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n avatarMediumScreen: {\n width: 100,\n marginRight: 0,\n },\n avatar: {\n width: 300,\n marginRight: 30,\n },\n userDetailsWrap: {\n alignSelf: \"center\",\n },\n drawerWrap: {\n backgroundColor: colors.background_color,\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n secondaryButtonStyle: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.secondary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n buttonStyleOutline: {\n backgroundColor: \"none\",\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(1).toString(),\n },\n },\n themeTextColor: {\n color: colors.default_text_color,\n },\n closeButton: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n },\n}));\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nexport default function ProfileModal(props) {\n const dispatch = useDispatch();\n const params = useParams();\n const navigate = useNavigate();\n const location = useLocation();\n const { t, i18n } = useTranslation();\n const colors = useSelector((state) => state.colors);\n const { classes, theme } = useStyles({ colors });\n const smallScreen = useMediaQuery(\n `(max-width: ${theme.other.breakpoints.sm}px)`\n );\n const mediumScreen = true;\n const largeScreen = false;\n const extraLargeScreen = false;\n\n const user = useSelector((state) => state.user);\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const [profileUser, setProfileUser] = useState({});\n const [spaces, setSpaces] = useState([]);\n const [opened, setOpened] = useState(false);\n const [showAllSpaces, setShowAllSpaces] = useState(false);\n const [username, setUsername] = useState();\n const [edit, setEdit] = useState(false);\n\n const openedFromUrl = useRef();\n\n useEffect(() => {\n if (username) {\n onFetch();\n onFetchSpaces();\n }\n }, [username]);\n\n useEffect(() => {\n if (openedFromUrl.current != location.pathname) {\n setOpened(false);\n }\n }, [location]);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"profile\") {\n setUsername(tiptapSidemenu.option);\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n setEdit(false);\n if (tiptapSidemenu.opened == \"profile\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n } else {\n openedFromUrl.current = location.pathname;\n }\n }, [opened]);\n\n const onFetch = () => {\n UserModel.onFetch(\n username,\n (data) => {\n setProfileUser(data);\n },\n (data) => {}\n );\n };\n\n const onFetchSpaces = () => {\n const ctrl = new AbortController();\n SpaceModel.onFetchByUser(\n username,\n [\"members\"],\n paginator,\n (data) => {\n if (paginator.page == 1) {\n setSpaces(data);\n } else {\n setSpaces(spaces.concat(data));\n }\n },\n (data) => {},\n ctrl.signal\n );\n };\n\n const onDirectMessage = () => {\n if (!user.authenticated) {\n navigate(`/user/start`);\n return;\n }\n DirectMessageModel.onFetchOrCreate(\n profileUser.id,\n (data) => {\n dispatch(\n setTiptapSidemenu({ opened: \"direct\", option: data.space.slug, allow_reflections: true })\n );\n },\n (data) => {}\n );\n };\n\n if (!user) {\n return null;\n }\n\n return (\n setOpened(false)}\n title={\n \n {t(\"users.profileModal.profile\")}\n \n }\n padding=\"xl\"\n size=\"xl\"\n zIndex={9999}\n >\n {edit ? (\n <>\n }\n onClick={() => setEdit(false)}\n >\n {\"Go back\"}\n \n \n \n ) : (\n \n \n ({\n borderBottom:\n profileUser.bio && profileUser.bio.length > 0\n ? `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(10).toString()\n : colors.sidebar_background_color\n }`\n : profileUser,\n })}\n >\n \n \n \n \n \n ({\n fontWeight: 900,\n marginRight: 10,\n lineHeight: 1,\n })}\n >\n {profileUser.full_name}\n \n \n @{profileUser.username}\n \n \n \n {profileUser && user.id != profileUser.id ? (\n onDirectMessage()}\n >\n {t(\"users.profileModal.message\")}\n \n ) : (\n \n setEdit(true)}\n >\n {t(\"users.profileModal.editProfile\")}\n \n \n )}\n \n setOpened(false)}\n >\n {t(\"users.profileModal.openProfile\")}\n \n \n \n \n \n \n \n\n {profileUser.bio && profileUser.bio.length > 0 ? (\n \n {profileUser.bio}\n \n ) : (\n \"\"\n )}\n\n {spaces && spaces.length > 0 ? (\n <>\n ({\n borderBottom: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(10).toString()\n : colors.sidebar_background_color\n }`,\n })}\n >\n
\n ({ fontWeight: 900 })}\n >\n {t(\"users.profileModal.spaces\")}\n \n
\n {spaces.length > 6 && (\n \n \n setShowAllSpaces(showAllSpaces ? false : true)\n }\n >\n {showAllSpaces ? \"See less\" : `See all`}\n \n \n )}\n \n \n \n {spaces\n .slice(0, showAllSpaces ? spaces.length : 6)\n .map((space) => {\n return (\n \n \n \n );\n })}\n \n \n \n ) : (\n \"\"\n )}\n \n
\n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport {\n Drawer,\n Text,\n Stack,\n Box,\n createStyles,\n ScrollArea,\n} from \"@mantine/core\";\n\nimport SpaceNeo4jModel from \"../../../../models/neo4j/Space\";\nimport SpaceModel from \"../../../../models/Space\";\nimport ViewModel from \"../../../../models/View\";\nimport { storeJSON, getJSON } from \"../../../../utils/LocalDB\";\n\nimport tinycolor from \"tinycolor2\";\nimport isSpaceThemed from \"../../../../utils/IsSpaceThemed\";\nimport isDark from \"../../../../utils/IsDarkColor\";\n\nimport {\n setTiptapSidemenu,\n setSpace2,\n setColors2,\n} from \"../../../../store/app\";\n\nimport HeaderImage from \"../../HeaderImage\";\nimport FixedHeader from \"../../FixedHeader\";\nimport Loading from \"../static/Loading\";\n\nimport TiptapNoHP from \"../../../tiptap/components/TiptapNoHP\";\n\nimport defaultSpaceColors from \"../../../../collections/defaultSpaceColors\";\n\nimport SpaceChannel from \"../../../../sockets/Space\";\n\nconst useStyles = createStyles((theme, { colors }) => ({\n userInfoWrap: {\n paddingBottom: 35,\n },\n avatarWrapMediumScreen: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n avatarMediumScreen: {\n width: 100,\n marginRight: 0,\n },\n avatar: {\n width: 300,\n marginRight: 30,\n },\n userDetailsWrap: {\n alignSelf: \"center\",\n },\n drawerWrap: {\n backgroundColor: colors.background_color,\n },\n primaryButtonStyle: {\n backgroundColor: colors.primary_button_background_color,\n color: colors.primary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.primary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n secondaryButtonStyle: {\n backgroundColor: colors.secondary_button_background_color,\n color: colors.secondary_button_text_color,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.secondary_button_background_color)\n .darken(4)\n .toString(),\n },\n },\n buttonStyleOutline: {\n backgroundColor: \"none\",\n color: colors.primary_button_background_color,\n border: `1px solid ${colors.primary_button_background_color}`,\n \"&:hover\": {\n backgroundColor: tinycolor(colors.background_color).darken(1).toString(),\n },\n },\n themeTextColor: {\n color: colors.default_text_color,\n },\n closeButton: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \"&:hover\": {\n backgroundColor: colors.background_color,\n color: colors.primary_button_background_color,\n },\n // marginRight: \"25px\",\n },\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .file-node svg\": {\n stroke: colors.default_text_color,\n },\n \".ProseMirror .file-node a\": {\n color: colors.default_text_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.default_text_color,\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(8).toString()\n : tinycolor(colors.background_color).darken(8).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n border: isSpaceThemed(colors)\n ? `1px solid ${\n isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(20).toString()\n : tinycolor(colors.background_color).darken(20).toString()\n }`\n : `1px solid #e9ecef`,\n \"&:hover\": {\n // backgroundColor: theme.colors.gray[0],\n backgroundColor: isSpaceThemed(colors)\n ? isDark(colors.background_color)\n ? tinycolor(colors.background_color).lighten(10).toString()\n : tinycolor(colors.background_color).darken(10).toString()\n : tinycolor(colors.background_color).darken(2).toString(),\n boxShadow: \"0px 0px 5px 0px rgba(0,0,0,0.2)\",\n cursor: \"pointer\",\n // color: \"#000\",\n textDecoration: \"none\",\n },\n },\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n}));\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nexport default function ContentReadonlyModal(props) {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const location = useLocation();\n const { t, i18n } = useTranslation();\n\n const space = useSelector((state) => state.space);\n const space2 = useSelector((state) => state.space2);\n let colors2 = useSelector((state) => state.colors2);\n\n colors2 = isSpaceThemed(colors2) ? colors2 : defaultSpaceColors;\n\n const { classes, theme } = useStyles({ colors: colors2 });\n\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n const [opened, setOpened] = useState(false);\n const [access, setAccess] = useState(false);\n\n const [edit, setEdit] = useState(false);\n const [params, setParams] = useState({ slug: \"\" });\n\n const openedFromUrl = useRef();\n\n const [loaded, setLoaded] = useState(false);\n const content = useRef({});\n const lastSlug = useRef();\n const width = useRef();\n const viewport = useRef();\n const lastColorTheme = useRef();\n\n useEffect(() => {\n if (typeof params.slug === \"string\" && params.slug.length && params.updateChildren !== true) {\n onFetchSpace();\n onFetchView();\n }\n }, [params]);\n\n useEffect(() => {\n if (openedFromUrl.current != location.pathname) {\n setOpened(false);\n }\n }, [location]);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"space-content\") {\n setParams({ slug: tiptapSidemenu.option });\n setOpened(true);\n } else if (tiptapSidemenu && tiptapSidemenu.opened == \"space-content-close\") {\n setOpened(false);\n } else {\n // setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n window.$showBackButtonModal = false;\n content.current = {};\n\n setParams({ slug: space.slug, updateChildren: true });\n\n setTimeout(() => setParams({ slug: \"\" }), 250);\n setLoaded(false);\n\n setEdit(false);\n if (tiptapSidemenu.opened == \"space-content\" || tiptapSidemenu.opened == \"space-content-close\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n window.$modalSpaceOpened = false\n\n dispatch(\n setSpace2({})\n );\n } else {\n window.$showBackButtonModal = true;\n openedFromUrl.current = location.pathname;\n window.$modalSpaceOpened = tiptapSidemenu.option\n }\n }, [opened]);\n\n const onFetchView = () => {\n ViewModel.onFetch(\n \"tiptap\",\n params.slug,\n (data) => {\n content.current = data.content;\n window.$spaceUserInteractions = data.interactions;\n width.current = data.view_width;\n window.$spaceWideWidth = data.view_width;\n window.$themeColors = { ...data.colors };\n\n dispatch(setColors2({ ...data.colors }));\n setTimeout(() => {\n setLoaded(true);\n }, 250);\n },\n (data) => {\n navigate(`/home/top`)\n }\n );\n };\n\n const onFetchSpace = () => {\n // setAccess(false);\n SpaceModel.onAccess(\n params.slug,\n (accessData) => {\n if (tiptapSidemenu.option !== accessData.slug) {\n if (accessData.interactions){\n navigate(`/space/${accessData.slug}/${accessData.version}`);\n return\n }\n window.$spaceUserInteractions = accessData.interactions;\n }\n\n SpaceNeo4jModel.onFetch(\n params.slug,\n (data) => {\n \n setAccess({\n role: accessData.role,\n isTopSpace: data.topSpace == null,\n });\n\n data.space.redirect_to = { ...accessData.redirect_to };\n onSetSpaceData(accessData, data.space, data.topSpace, data.path);\n },\n (data) => {\n setOpened(false);\n }\n );\n },\n (data) => {}\n );\n };\n\n const onSetSpaceData = (accessData, _space, topSpace, path) => {\n const currentPath = `/space/${_space.slug}/${_space.version}`;\n\n if (_space.version != \"content\" || _space.redirect_to.url != currentPath) {\n navigate(currentPath);\n return;\n }\n\n window.$spaceIsPost = _space.is_post && !_space.permissions.can_manage;\n\n window.$currentSpaceName = _space.name;\n\n dispatch(\n setSpace2({\n ..._space,\n completed: _space.completed,\n permissions: { ..._space.permissions[accessData.role] },\n colors: { ..._space.colors },\n interactions: _space.interactions ? { ..._space.interactions } : false,\n settings_tabs: [..._space.settings_tabs],\n settings: { ..._space.settings },\n is_top_level: _space.is_top_level,\n tags: [..._space.tags],\n tagged_with: [..._space.tagged_with],\n is_liked: _space.is_liked,\n path: path ? [...path] : [],\n })\n );\n };\n\n const onSpaceFetched = (data) => {\n onSetSpaceData(data);\n };\n\n const onUpdateChildren = (data) => {\n window.$space2Children = data;\n };\n\n return (\n <>\n {access && (\n \n )}\n setOpened(false)}\n title={\n \n {\"\"}\n \n }\n padding=\"xs\"\n size={700}\n \n >\n {!space2.slug || !loaded || !access ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n );\n}\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { setSpace, setNewMessage } from \"../../store/app\";\nimport {\n Stack,\n ScrollArea,\n Drawer,\n Box,\n Text,\n createStyles,\n Group,\n Divider\n} from \"@mantine/core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { solid } from \"@fortawesome/fontawesome-svg-core/import.macro\";\n\n// import { useElementSize } from '@mantine/hooks';\nimport { storeJSON, getJSON } from \"../../utils/LocalDB\";\nimport NotificationModel from \"../../../models/NotificationModel\";\nimport MessageModel from \"../../models/Message\";\nimport SpaceModel from \"../../models/Space\";\nimport Message from \"../spaces_neo/presentations/discussion/Message\";\nimport Reflections from \"../spaces_neo/presentations/discussion/Reflections\";\nimport TiptapSimple from \"../tiptap/components/TiptapSimple\";\nimport TiptapReadonly from \"../tiptap/components/TiptapReadonly\";\nimport { ActionCableContext } from \"../../components/Index\";\nimport Loading from \"../spaces/presentations/static/Loading\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport { setTiptapSidemenu } from \"../../store/app\";\n\n\nimport isSpaceThemed from \"../../utils/IsSpaceThemed\";\nimport tinycolor from \"tinycolor2\";\nimport trackMixpanel from \"../../utils/TrackMixpanel\";\n\nconst paginator = {\n per: 30,\n page: 1,\n};\n\nconst queryParams = {\n pod_message_id: null,\n reflection_id: null,\n};\n\nconst useStyles = createStyles((theme, { colors }, getRef) => ({\n drawerWrap: {\n backgroundColor: colors.background_color,\n },\n drawerHeader: {\n color: colors.default_text_color,\n fontWeight: 700,\n paddingBottom: 10,\n // borderBottom: `1px solid ${colors.default_text_color}`\n },\n themeTextColor: {\n color: colors.default_text_color,\n },\n spaceContainer: {\n backgroundColor: colors.background_color,\n color: colors.default_text_color,\n \".ProseMirror a\": {\n color: colors.default_link_color,\n },\n \".ProseMirror .fancylink-node .main-content\": {\n color: colors.sidebar_text_color,\n backgroundColor: colors.sidebar_background_color,\n borderRadius: \"5px\",\n },\n },\n dividerStyle: {\n marginTop: 10,\n marginBottom: 10,\n borderTop: `1px solid ${\n !isSpaceThemed(colors)\n ? tinycolor(colors.sidebar_background_color).darken(5).toString()\n : colors.header_color\n }`,\n },\n}));\n\nexport default function DirectDiscussion(props) {\n // const { ref, width, height } = useElementSize();\n const colors = useSelector((state) => state.colors);\n const { classes, cx, theme } = useStyles({ colors });\n const { t } = useTranslation();\n\n const viewport = useRef();\n const dispatch = useDispatch();\n\n const cable = useContext(ActionCableContext);\n\n const currentLocation = useLocation();\n const user = useSelector((state) => state.user);\n\n const [opened, setOpened] = useState(false);\n const [openedReflections, setOpenedReflections] = useState(false);\n const [messages, setMessages] = useState([]);\n const [selectedMessage, setSelectedMessage] = useState(null);\n const [receiveData, setReceiveData] = useState(null);\n const [tagging, setTagging] = useState(0);\n\n const [tag, setTag] = useState(null);\n const [space, setSpace] = useState(null);\n const [aiSummary, setAiSummary] = useState({});\n\n const pileIntervalId = useRef(null);\n const channelPile = useRef([]);\n const messagesCopy = useRef([]);\n const currentConnectedSlug = useRef();\n const scrollToBottomAfter = useRef();\n const atBottom = useRef(false);\n const scrollTimeoutIds = useRef([]);\n const connectionIntervalId = useRef([]);\n const lastConnectionAttempt = useRef({\n slug: null,\n state: null,\n channel: null,\n });\n const tagFetch = useRef(false);\n const querySearchCount = useRef(0);\n const loadingVariables = useRef(0);\n\n const params = useRef({ slug: null });\n\n const openedFromUrl = useRef();\n\n const tiptapSidemenu = useSelector((state) => state.tiptapSidemenu);\n\n const [reflectionsTagging, setReflectionsTagging] = useState(false);\n\n const [reflectionsDrawerHeader, setReflectionsDrawerHeader] = useState(\n window.$showBackButtonModal\n ? t(\"spaces.presentations.discussion.backToPost\")\n : t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n useEffect(() => {\n if (pileIntervalId.current) {\n clearInterval(pileIntervalId.current);\n }\n\n pileIntervalId.current = setInterval(() => {\n // console.log(messagesCopy.current)\n\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"pending\"\n ) {\n channelPile.current[0].state = \"in_progress\";\n\n channelPile.current[0].action(channelPile.current[0].id);\n return;\n }\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"done\"\n ) {\n channelPile.current.splice(0, 1);\n\n return;\n }\n if (\n channelPile.current.length > 0 &&\n channelPile.current[0].state == \"in_progress\"\n ) {\n return;\n }\n }, 1000);\n\n return () => {\n setMessages([]);\n messagesCopy.current = [];\n\n if (lastConnectionAttempt.current.channel) {\n lastConnectionAttempt.current.channel.unsubscribe();\n lastConnectionAttempt.current.channel = null;\n lastConnectionAttempt.current.slug = null;\n lastConnectionAttempt.current.state = null;\n }\n clearInterval(pileIntervalId.current);\n clearTimeout(connectionIntervalId.current);\n\n scrollToBottomAfter.current = false;\n loadingVariables.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (tiptapSidemenu && tiptapSidemenu.opened == \"direct\") {\n params.current = { slug: tiptapSidemenu.option };\n querySearchCount.current = 0;\n checkSearchParams(tiptapSidemenu.pod_message_id);\n fetchSpace();\n cableConnect();\n onFetchContext()\n setOpened(true);\n } else {\n setOpened(false);\n }\n }, [tiptapSidemenu]);\n\n useEffect(() => {\n if (!opened) {\n if (tiptapSidemenu.opened == \"direct\") {\n dispatch(setTiptapSidemenu({ opened: null }));\n }\n window.$showBackButtonModal = false;\n } else {\n window.$showBackButtonModal = true;\n openedFromUrl.current = currentLocation.pathname;\n }\n }, [opened]);\n\n useEffect(() => {\n if (openedFromUrl.current != currentLocation.pathname) {\n setOpened(false);\n }\n }, [currentLocation]);\n\n useEffect(() => {\n if (receiveData) {\n let changes = receiveData.changes;\n if (receiveData.state != \"multi\") {\n changes = [receiveData];\n }\n\n for (var i = 0; i < changes.length; i++) {\n if (changes[i].state == \"new\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onReceivedMessage,\n state: \"pending\",\n });\n // onReceivedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"update\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onUpdatedMessage,\n state: \"pending\",\n });\n // onUpdatedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"destroy\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onDestroyedMessage,\n state: \"pending\",\n });\n // onDestroyedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"pin\") {\n channelPile.current.push({\n id: changes[i].pod_message_id,\n action: onPinnedMessage,\n state: \"pending\",\n });\n // onPinnedMessage(changes[i].pod_message_id);\n } else if (changes[i].state == \"unpin\") {\n channelPile.current.push({\n id: null,\n action: onPinnedMessage,\n state: \"pending\",\n });\n // onPinnedMessage(null);\n }\n }\n }\n }, [receiveData]);\n\n useEffect(() => {\n if (channelPile.current && channelPile.current.length > 0) {\n return;\n }\n\n if (scrollToBottomAfter.current == true) {\n scrollToBottomAfter.current = false;\n\n scrollToBottom();\n return;\n }\n\n if (!loadingVariables.current && messages.length > 0) {\n loadingVariables.current = true;\n if (!queryParams.pod_message_id) {\n // setIsFirstLoad(true);\n // scrollToBottom();\n return;\n }\n }\n\n if (queryParams.pod_message_id && messages.length > 0) {\n searchForMessage(queryParams.pod_message_id);\n }\n }, [messages]);\n\n useEffect(() => {\n paginator.page = 1;\n onFetchMessages();\n }, [tag]);\n\n const fetchSpace = () => {\n SpaceModel.onFetchSimple(\n params.current.slug,\n \"payment\",\n (data) => {\n setSpace(data);\n },\n (data) => {}\n );\n };\n\n const checkSearchParams = (pod_message_id) => {\n if (pod_message_id) {\n queryParams.pod_message_id = pod_message_id;\n }\n\n if (\n messages.length > 0 &&\n messages[0].pod_slug == params.current.slug &&\n queryParams.pod_message_id\n ) {\n searchForMessage(queryParams.pod_message_id);\n }\n };\n\n const cableDisconnectIfNeeded = () => {\n if (\n cable &&\n lastConnectionAttempt.current.channel &&\n lastConnectionAttempt.current.slug != params.current.slug\n ) {\n lastConnectionAttempt.current.state = \"disconnecting\";\n // debugger;\n console.log(\n \"ACTION CABLE: disconnecting - \" + lastConnectionAttempt.current.slug\n );\n setTimeout(() => {\n console.log(\n \"ACTION CABLE: disconnected 1 - \" + lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.channel = null;\n lastConnectionAttempt.current.state = null;\n cableConnect();\n }, 100);\n lastConnectionAttempt.current.channel.unsubscribe();\n } else {\n // console.log('ACTION CABLE: unknown state - ' + lastConnectionAttempt.current.state)\n }\n };\n\n const cableConnect = () => {\n cableDisconnectIfNeeded();\n\n if (lastConnectionAttempt.current.state == \"disconnecting\") {\n console.log(\n \"ACTION CABLE: disconnecting skipped - \" +\n lastConnectionAttempt.current.slug\n );\n return;\n }\n\n if (\n lastConnectionAttempt.current.slug == params.current.slug &&\n lastConnectionAttempt.current.state == \"connected\"\n ) {\n console.log(\n \"ACTION CABLE: skipping connection - \" +\n lastConnectionAttempt.current.slug\n );\n return;\n }\n\n lastConnectionAttempt.current.slug = params.current.slug;\n lastConnectionAttempt.current.state = \"connecting\";\n\n performCableConnection();\n\n connectionIntervalId.current = setTimeout(() => {\n if (lastConnectionAttempt.current.state == \"connecting\") {\n console.log(\n \"ACTION CABLE: forcing messages fetch 2 - \" + params.current.slug\n );\n onFetchMessages(true);\n }\n }, 1000);\n };\n\n const performCableConnection = () => {\n console.log(\n \"ACTION CABLE: connection attempt \" + lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.channel = cable.subscriptions.create(\n {\n channel: \"PodsChannel\",\n pod_slug: params.current.slug,\n token: window.$currentUserAuthToken,\n },\n {\n connected: () => {\n console.log(\n `ACTION CABLE: connection data: ${currentConnectedSlug.current} == ${params.current.slug}`\n );\n\n if (lastConnectionAttempt.current.state == \"connecting\") {\n console.log(\n \"ACTION CABLE: connected completed - \" +\n lastConnectionAttempt.current.slug\n );\n lastConnectionAttempt.current.state = \"connected\";\n checkSearchParams();\n setTimeout(() => {\n markAsSeen();\n }, 5000);\n onFetchMessages(true);\n return;\n }\n console.log(\"ACTION CABLE: messages.length - \" + messages.length);\n console.log(\n \"ACTION CABLE: message slug - \" + messages.length > 0 &&\n messages[0].pod_slug\n );\n if (\n messages.length == 0 ||\n (messages.length > 0 &&\n messages[0].pod_slug != lastConnectionAttempt.current.slug)\n ) {\n console.log(\n \"ACTION CABLE: forcing messages fetch - \" + params.current.slug\n );\n onFetchMessages(true);\n }\n console.log(\n \"ACTION CABLE: connected skipped - \" +\n lastConnectionAttempt.current.slug\n );\n },\n disconnected: () => {\n console.log(\n \"ACTION CABLE: disconnected 2 - \" +\n lastConnectionAttempt.current.slug\n );\n },\n received: (data) => {\n console.log(\n \"ACTION CABLE: received - \" + lastConnectionAttempt.current.slug\n );\n console.log(\n \"ACTION CABLE: data - \" +\n JSON.stringify(data) +\n \" - params: \" +\n params.current.slug +\n \" - current: \" +\n lastConnectionAttempt.current.slug\n );\n if (data.slug == lastConnectionAttempt.current.slug) {\n paginator.newMessage = true;\n setReceiveData(data);\n return;\n }\n console.log(\n \"ACTION CABLE: received ignored - \" +\n lastConnectionAttempt.current.slug\n );\n },\n }\n );\n };\n\n const markAsSeen = () => {\n NotificationModel.onMarkAsSeen(\n \"pod_message\",\n params.current.slug,\n (data) => {}\n );\n };\n\n const markReflectionAsSeen = (messageId) => {\n NotificationModel.onMarkAsSeen(\"reflection\", messageId, (data) => {});\n };\n\n const onFetchMessages = (reset = false) => {\n if (channelPile.current && channelPile.current.length > 0) {\n return;\n }\n if (\n reset &&\n messages.length > 0 &&\n messages[0].pod_slug == params.current.slug\n ) {\n return;\n }\n\n const search = window.location.search;\n const _tag = new URLSearchParams(search).get(\"tag\");\n const _pod_message_id = new URLSearchParams(search).get(\"pod_message_id\");\n\n if (reset) {\n paginator.page = 1;\n messagesCopy.current = [];\n setMessages([]);\n loadingVariables.current = false;\n }\n\n if (_tag && tagFetch.current != _tag) {\n tagFetch.current = _tag;\n paginator.page = 1;\n messagesCopy.current = [];\n setMessages([]);\n loadingVariables.current = false;\n }\n\n if (!_tag && !_pod_message_id && paginator.page == 1) {\n // Only for Page 1 and no tag\n // Check storeJSON and use it always\n // Fetch messages and do silent update of storeJSON\n // Check fetched messages VS stored messages if there is at least one change replace the message State\n\n if (!queryParams.pod_message_id) {\n scrollToBottomAfter.current = true;\n }\n\n getJSON(`spaces`, `messages-${params.current.slug}`, (data) => {\n if (data && data.data.length > 0) {\n setMessages([...data.data]);\n messagesCopy.current = [...data.data];\n onFetchMessagesFromAPI(_tag, data.stored_at, data.data);\n } else {\n onFetchMessagesFromAPI(_tag);\n }\n });\n } else {\n onFetchMessagesFromAPI(_tag);\n }\n };\n\n const onFetchMessagesFromAPI = (_tag, storedAt = null, stored = null) => {\n if (params.current.slug) {\n if (_tag) {\n trackMixpanel(window.$currentUsername, \"Tag clicked\", { space_slug: params.current.slug }); \n }\n MessageModel.onFetch(\n params.current.slug,\n { tag: _tag },\n paginator.page,\n (data) => {\n // loadingVariables,firstLoad = true;\n let lookForMessage = true;\n if (data.data.length > 0 && paginator.page > 1) {\n setMessages(data.data.concat(messages));\n messagesCopy.current = [...data.data.concat(messages)];\n lookForMessage = false;\n } else {\n if (data.data.length > 0 && paginator.page == 1) {\n storeJSON(\"spaces\", `messages-${params.current.slug}`, { ...data });\n \n if (\n !storedAt ||\n (storedAt &&\n anyFetchedMessageChanged(data.data, stored, storedAt))\n ) {\n console.log(\"SILENT UPDATE DONE MESSAGES\");\n setMessages([...data.data]);\n messagesCopy.current = [...data.data];\n lookForMessage = false;\n }\n }\n }\n if (data.data.length == 0 && paginator.page > 1) {\n paginator.page--;\n }\n if (\n lookForMessage &&\n queryParams.pod_message_id &&\n messages.length > 0\n ) {\n searchForMessage(queryParams.pod_message_id);\n }\n },\n (data) => {}\n );\n }\n };\n\n const anyFetchedMessageChanged = (fetched, stored, storedAt) => {\n for (let i = 0; i < fetched.length; i++) {\n const objectA = fetched[i];\n const objectB = stored.find((obj) => obj.id === objectA.id);\n if (!objectB) {\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n if (\n objectB &&\n (new Date(objectA.updated_at) > new Date(objectB.updated_at) ||\n objectA.reflections.length > objectB.reflections.length)\n ) {\n // display bar\n\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n }\n\n for (let i = 0; i < stored.length; i++) {\n const objectA = stored[i];\n const objectB = fetched.find((obj) => obj.id === objectA.id);\n if (!objectB) {\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n if (\n objectB &&\n (new Date(objectB.updated_at) > new Date(objectA.updated_at) ||\n objectB.reflections.length > objectA.reflections.length)\n ) {\n // display bar\n\n if (!atBottom.current) {\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n return true;\n }\n }\n\n return false;\n };\n\n const searchForMessage = (messageId) => {\n if (querySearchCount.current > 10) {\n return;\n }\n\n querySearchCount.current++;\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n queryParams.pod_message_id = null;\n querySearchCount.current = 99;\n\n scrollToMessage(messageId);\n if (queryParams.reflection_id) {\n const newMessage = { ...messages[i] };\n newMessage.reflectionId = queryParams.reflection_id;\n queryParams.reflection_id = null;\n setSelectedMessage(newMessage);\n setOpenedReflections(true);\n markReflectionAsSeen(messageId);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n }\n return;\n }\n }\n paginator.page++;\n onFetchMessages();\n };\n\n const onReceivedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n params.current.slug,\n (data) => {\n if (data.user.id != user.id) {\n if (atBottom.current) {\n loadingVariables.current = false;\n scrollToBottomAfter.current = true;\n\n setTimeout(() => {\n scrollToBottom();\n }, 500);\n } else {\n //Trigger new message\n dispatch(setNewMessage({ show: true, viewport: viewport.current }));\n }\n } else {\n loadingVariables.current = false;\n scrollToBottomAfter.current = true;\n setTimeout(() => {\n scrollToBottom();\n }, 500);\n }\n\n let newMessages = [...messagesCopy.current];\n\n if (messagesCopy.current.length == 0) {\n messagesCopy.current = [...messages];\n newMessages = [...messagesCopy.current];\n }\n\n newMessages.push(data);\n messagesCopy.current.push(data);\n\n setMessages(newMessages);\n onRemovePileAction();\n },\n (data) => {\n onRemovePileAction();\n }\n );\n };\n\n const onUpdatedMessage = (messageId) => {\n MessageModel.onFetchById(\n messageId,\n params.current.slug,\n (data) => {\n loadingVariables.current = true;\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages[i] = data;\n if (selectedMessage && messageId == selectedMessage.id) {\n setSelectedMessage({ ...newMessages[i] });\n }\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n onRemovePileAction();\n },\n (data) => {\n onRemovePileAction();\n }\n );\n };\n\n const onDestroyedMessage = (messageId) => {\n const newMessages = [...messages];\n\n for (let i = 0; i < newMessages.length; i++) {\n if (newMessages[i].id == messageId) {\n newMessages.splice(i, 1);\n break;\n }\n }\n\n setMessages(newMessages);\n messagesCopy.current = [...newMessages];\n onRemovePileAction();\n };\n\n const onPinnedMessage = (messageId) => {\n const newSpace = { ...space };\n newSpace.pin_message = messageId;\n dispatch(setSpace(newSpace));\n onRemovePileAction();\n };\n\n const onRemovePileAction = () => {\n if (channelPile.current.length > 0) {\n channelPile.current[0].state = \"done\";\n }\n };\n\n const onScrollTop = () => {\n paginator.page++;\n onFetchMessages();\n };\n\n const onSave = (json, html) => {\n json.attrs = { uid: `message-${new Date().getTime()}` };\n json.type = \"paragraph\";\n MessageModel.onCreate(\n params.current.slug,\n { json, html },\n (data) => {\n storeJSON(\"spaces\", `discussion-input-${params.current.slug}`, {\n json: \"\",\n html: \"\",\n });\n if (props.onSave) {\n props.onSave();\n }\n },\n (data) => {}\n );\n };\n\n const onOpenReflections = (messageId) => {\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.reflectionHeader\")\n );\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i].id == messageId) {\n markReflectionAsSeen(messageId);\n setSelectedMessage(messages[i]);\n break;\n }\n }\n };\n\n const scrollToBottom = () => {\n // setIsFirstLoad(false);\n if (viewport.current) {\n // viewport.current.style.scrollBehavior = \"auto\";\n }\n setTimeout(() => {\n if (viewport.current) {\n const top = viewport.current.scrollHeight + 2000;\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n // viewport.current.style.scrollBehavior = \"smooth\";\n }\n }, 500);\n };\n\n const scrollToMessage = (messageId) => {\n setTimeout(() => {\n try {\n const $scrollTo = document.getElementById(`msg_${messageId}`);\n const top =\n $scrollTo.offsetTop -\n viewport.current.offsetTop +\n viewport.current.scrollTop +\n 80;\n\n viewport.current.scrollTo({ top: top, behavior: \"instant\" });\n } catch (error) {}\n }, 500);\n };\n\n const onViewPinnedMessage = (message) => {\n setSelectedMessage(message);\n setOpenedReflections(true);\n setReflectionsDrawerHeader(\n t(\"spaces.presentations.discussion.pinnedMessageHeader\")\n );\n };\n\n const onScrollPositionChange = (pos) => {\n const div = viewport.current;\n // const div = document.getElementsByClassName(\"app-main-frame\")[0]\n clearScrollTimeouts();\n\n if (pos.y + div.clientHeight >= div.scrollHeight) {\n const scrollTimeoutId = setTimeout(() => {\n dispatch(setNewMessage({ show: false }));\n atBottom.current = true;\n }, 1000);\n scrollTimeoutIds.current.push(scrollTimeoutId);\n } else if (pos.y == 0) {\n atBottom.current = false;\n\n const scrollTimeoutId = setTimeout(() => {\n // At top\n onScrollTop();\n }, 300);\n scrollTimeoutIds.current.push(scrollTimeoutId);\n } else {\n // In between\n atBottom.current = false;\n }\n };\n\n const clearScrollTimeouts = () => {\n for (let i = 0; i < scrollTimeoutIds.current.length; i++) {\n const id = scrollTimeoutIds.current[i];\n clearTimeout(id);\n }\n };\n\n const getDirectMessageName = () => {\n const otherUserName = space.name\n .replace(`${user.name}`, ``)\n .replace(`and`, ``)\n .trim();\n return `Conversation with ${otherUserName}`;\n };\n\n const onFetchContext = () => {\n const ctrl2 = new AbortController();\n MessageModel.onFetchAiSummary(\n params.current.slug,\n (data) => {\n setAiSummary({ ...data });\n },\n (data) => {\n // Something went wrong\n },\n ctrl2.signal\n );\n };\n\n if (props.loading) {\n return ;\n }\n\n return (\n setOpened(false)}\n title={\n \n {space && space.name && getDirectMessageName()}\n \n }\n padding=\"xl\"\n size={700}\n >\n \n \n {aiSummary.tiptap_short_content && (\n \n \n \n \n )}\n {messages &&\n messages.length > 0 &&\n messages[0].pod_slug == params.current.slug && (\n ({\n height: \"100%\",\n paddingBottom: \"15px\",\n })}\n >\n {messages.map((message) => {\n return (\n \n );\n })}\n \n )}\n \n\n {tiptapSidemenu.allow_reflections && (\n setOpenedReflections(false)}\n title={\n \n window.$showBackButtonModal\n ? setOpenedReflections(false)\n : null\n }\n >\n {window.$showBackButtonModal && (\n \n )}\n \n {window.$showBackButtonModal\n ? t(\"spaces.presentations.discussion.backToPost\")\n : t(\"spaces.presentations.discussion.reflectionHeader\")}\n \n \n }\n padding=\"xl\"\n size={600}\n classNames={{\n drawer: classes.drawer,\n header: classes.drawerHeader,\n }}\n >\n \n \n )}\n\n \n \n \n \n \n \n \n );\n}\n","import React, {useEffect} from 'react';\n\nimport { createStyles } from '@mantine/core';\nimport { useSelector } from 'react-redux';\n\nimport HeaderContent from './HeaderContent'\nimport MainContent from './MainContent'\nimport SystemAlert from './SystemAlert'\nimport Navbar from './Navbar'\nimport ProfileModal from '../users/ProfileModal'\nimport ContentReadonlyModal from \"../spaces_neo/presentations/content/ContentReadonlyModal\";\nimport Direct from \"../users/Direct\";\n\nimport isSpaceThemed from '../../utils/IsSpaceThemed'\n// import useSidebarStyles from \"../../utils/SidebarStyles\"\n\nimport tinycolor from 'tinycolor2'\n\nconst useStyles = createStyles((theme, { registrationView }) => ({\n appBody: {\n display: \"flex\",\n flexFlow: \"row\"\n },\n\n appSideFrameHidden: {\n display: \"none\"\n },\n appSideFooter: {\n display: \"flex\",\n width: theme.other.sideFrameWidth,\n alignItems: \"center\",\n boxSizing: \"border-box\",\n backgroundColor: \"#fff\",\n position: \"fixed\",\n bottom: 0,\n left: 0,\n right: 0,\n },\n appMainFrame: {\n width: \"100vw\",\n height: `calc(100vh - ${registrationView ? 0 : theme.other.headerHeight}px)`,\n flex: 1,\n boxSizing: \"border-box\",\n },\n appMainFrameSettingsView: {\n borderLeft: `1px solid ${theme.colors.gray[7]}`,\n backgroundColor: \"#FFF\"\n },\n appMainFrameInnerWrap: {\n maxWidth: 1000,\n margin: \"0px auto\",\n paddingLeft: 20,\n paddingRight: 20,\n },\n appSideFrameSm: {\n width: theme.other.sideFrameWidthSm\n }\n}))\n\nexport default function Body() {\n\n const registrationView = (window.location.pathname.indexOf(\"/registration/view\") >= 0 || window.location.pathname.indexOf(\"/register\") >= 0) ? true : false;\n const { classes, cx, theme } = useStyles({registrationView});\n\n return (\n \n \n \n \n \n \n \n \n\n\n \n \n );\n}\n","export function isTouchDevice() {\n return ('ontouchstart' in window || navigator.maxTouchPoints) == true; // Check for touch event support\n}","import React from 'react';\nimport {useEffect} from 'react';\n\nimport {createStyles } from '@mantine/core';\n\nimport { useDispatch } from 'react-redux';\nimport {setUser} from '../store/app';\n\nimport Header from './layout/Header'\nimport Body from './layout/Body'\n\nimport useAuthUser from '../utils/AuthUser'\n\nimport trackMixpanel from '../utils/TrackMixpanel'\nimport {isTouchDevice} from '../utils/IsTouchDevice'\n\n\nconst useStyles = createStyles((theme) => ({\n appShell: {\n minHeight: \"100vh\",\n boxSizing: \"border-box\"\n }\n}\n));\n\nfunction App(props) {\n\n const { classes, cx, theme } = useStyles();\n\n const { authUser } = useAuthUser();\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(setUser(authUser));\n if (authUser && authUser.username){\n trackMixpanel(authUser.username, \"Site visited\")\n }\n window.$isTouchDevice = isTouchDevice\n }, [])\n\n return (\n\n
\n
\n \n\n
\n\n );\n}\n\nexport default App;\n","import i18n from \"i18next\";\n\nimport { initReactI18next } from \"react-i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\n\ni18n\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(LanguageDetector)\n // pass the i18n instance to react-i18next.\n .use(initReactI18next)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n debug: true,\n fallbackLng: \"en\",\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n resources: {\n en: {\n translation: {\n premiumFeatures: {\n personal: {\n description1:\n \"Unlimited spaces and members to organize content and conversations for all your offerings\",\n description2:\n \"Beautiful registration and landing pages for all your programs and events in one place\",\n description3:\n \"Send newsletter emails to all your participants with our powerful broadcast function\",\n },\n professional: {\n description1: \"No transaction fees on collected payments\",\n description2:\n \"Custom branding and layout options and personalized URL subdomains\",\n description3:\n \"Unlimited automations and interactive conversational learning experiences\",\n description4: \"Up to 2 managers for all of your spaces\",\n },\n organization: {\n description1: \"No transaction fees on collected payments\",\n description2: \"Advanced customer support\",\n description3: \"Unlimited managers\",\n description4: \"Option for Single Sign On integration\",\n },\n },\n premiumMessages: {\n can_auto_tag: {\n title: \"Upgrade to use this feature\",\n message: \"Auto tagging with AI is a premium feature available on the Silver plan.\"\n },\n can_use_zoom_recordings: {\n title: \"Upgrade to use this feature\",\n message: \"Zoom recordings is a premium feature available on the Gold plan.\"\n },\n can_create_quizzes: {\n title: \"Upgrade to use this feature\",\n message: \"Quizzes are a premium feature available on the Gold plan.\"\n },\n can_duplicate_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Duplicating a space is a premium feature available on the Silver plan.\",\n },\n can_save_templates: {\n title: \"Upgrade to use this feature\",\n message:\n \"Saving as space as a reusable template is a premium feature available on the Silver plan.\",\n },\n can_edit_shareable_link: {\n title: \"Upgrade to use this feature\",\n message:\n \"Custom shareable links are a premium feature available on the Silver plan.\",\n },\n\n can_upload_cover: {\n title: \"Upgrade to use this feature\",\n message:\n \"Uploading a custom cover image is a premium feature available on the Personal plan.\",\n },\n\n can_upload_logo: {\n title: \"Upgrade to use this feature\",\n message:\n \"Setting a custom logo is a premium feature available on the Silver plan.\",\n },\n\n can_set_layout: {\n title: \"Upgrade to use this feature\",\n message:\n \"Customizing the layout of your space is a premium feature available on the Silver plan.\",\n },\n\n can_set_theme: {\n title: \"Upgrade to use this feature\",\n message:\n \"Customizing the color theme of your space is a premium feature available on the Silver plan.\",\n },\n\n can_set_format: {\n title: \"Upgrade to use this feature\",\n message:\n \"Switching the format of your space is a premium feature available on the Silver plan.\",\n },\n\n can_add_step_send_to_pending: {\n title: \"Upgrade to use this feature\",\n message:\n \"Setting new members to a pending status is a premium feature available on the Personal plan.\",\n },\n\n can_add_step_send_email: {\n title: \"Upgrade to use this feature\",\n message:\n \"Sending automated emails is a premium feature available on the Personal plan.\",\n },\n\n can_add_add_to_existing_space: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automatically adding members to select spaces is a premium feature available on the Silver plan.\",\n },\n\n can_add_step_wait: {\n title: \"Upgrade to use this feature\",\n message:\n \"Adding a wait condition for additional steps is a premium feature available on the Silver plan.\",\n },\n\n can_add_step_webhook: {\n title: \"Upgrade to use this feature\",\n message:\n \"Adding webhooks is a premium feature available on the Silver plan.\",\n },\n\n can_add_step_survey_person: {\n title: \"Upgrade to use this feature\",\n message:\n \"Surveying new members is a premium feature available on the Silver plan.\",\n },\n\n can_schedule_states: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automated scheduling options for your space are a premium feature available on the Silver plan.\",\n },\n\n can_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Sending email broadcasts is a premium feature available on the Personal plan.\",\n },\n\n can_survey: {\n title: \"Upgrade to use this feature\",\n message:\n \"Creating surveys is a premium feature available on the Silver plan.\",\n },\n\n can_use_interest_form_block: {\n title: \"Upgrade to use this feature\",\n message:\n \"Adding interest forms is a premium feature available on the Silver plan.\",\n },\n\n can_use_interactive_block: {\n title: \"Upgrade to use this feature\",\n message:\n \"Adding interactive blocks is a premium feature available on the Silver plan.\",\n },\n\n can_set_flexible_payments: {\n title: \"Upgrade to use this feature\",\n message:\n \"Setting flexible payment options is a premium feature available on the Silver plan.\",\n },\n\n can_activate_completions: {\n title: \"Upgrade to use this feature\",\n message:\n \"The ability to mark spaces as complete is a premium feature available on the Silver plan.\",\n },\n\n max_allowed_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Hey there - looks like you've used up all your free spaces! Upgrading to the Personal plan gives you unlimited spaces and members so you can pretty much create anything.\",\n },\n\n max_allowed_ij: {\n title: \"Upgrade to use this feature\",\n message:\n \"You can only add up to 2 discussion prompts per space on the free plan. Please upgrade to the Silver plan to add unlimited discussion prompts to any space.\",\n },\n\n max_allowed_managers_pro: {\n title: \"Upgrade to add more managers\",\n message:\n \"Upgrade to the Silver plan to add up to 2 managers to your space or the Gold plan for unlimited managers.\",\n },\n\n max_allowed_managers_org: {\n title: \"Upgrade to add more managers\",\n message:\n \"Upgrade to the Gold plan to add unlimited managers to your space.\",\n },\n\n can_see_participation_tab: {\n title: \"Upgrade to use this feature\",\n message:\n \"Participation metrics are a premium feature available on the Silver plan.\",\n },\n\n can_send_selective_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Selective broadcasting is a premium feature available on the Gold plan.\",\n },\n\n can_send_message_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Message broadcasting is a premium feature available on the Gold plan.\",\n },\n can_schedule_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Scheduling broadcasts is a premium feature available on the Silver plan.\",\n },\n can_add_from_children: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automatically adding any members from sub spaces is a premium feature available on the Silver plan.\",\n },\n can_add_to_direct_open_children: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automatically adding incoming members to all direct open sub spaces is a premium feature available on the Silver plan.\",\n },\n can_send_message: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automatically sending direct messages to new members is a premium feature available on the Silver plan.\",\n },\n\n can_create_registration_page: {\n title: \"Upgrade to use this feature\",\n message: \"Creating custom registration and landing pages is a premium feature available on the Bronze plan.\"\n },\n\n can_create_coupon: {\n title: \"Upgrade to use this feature\",\n message: \"Creating coupon codes is a premium feature available on the Silver plan.\"\n },\n\n can_create_bundles: {\n title: \"Upgrade to use this feature\",\n message: \"Creating bundles is a premium feature available on the Silver plan.\"\n },\n \n },\n home: {\n sidebar: {\n createButton: \"New space\",\n spaces: \"Your spaces\",\n invitations: \"Invitations\",\n directMessages: \"Direct messages\",\n gettingStarted: \"Getting started\",\n scheduleDemo: \"Schedule a demo\",\n upgrade: \"Upgrade your plan\",\n promoBoxTitle:\n \"Join hundreds of creators using Sutra's advanced features to deliver powerful group experiences online\",\n promoBoxItem1: \"Unlimited spaces\",\n promoBoxItem2: \"Full branding options\",\n promoBoxItem3: \"Extra managers\",\n promoBoxButton: \"Upgrade now\",\n },\n spacesList: {\n yourSpaces: \"Your spaces\",\n directMessagesTitle: \"Direct messages\",\n invitationsTitle: \"Invitations\",\n topTitle: \"Top level spaces\",\n managedTitle: \"Managed spaces\",\n allTitle: \"All spaces\",\n archivedTitle: \"Archived spaces\",\n deletedTitle: \"Deleted spaces\",\n pendingTitle: \"Scheduled spaces\",\n directMessages: \"Direct\",\n top: \"Top level\",\n managed: \"Managed\",\n all: \"All\",\n archived: \"Archived\",\n invitations: \"Invitations\",\n deleted: \"Deleted\",\n pending: \"Scheduled\",\n empty: \"You don't have any\",\n tabTitle: \"Sutra - Dashboard\",\n learn: \"Learn the basics\",\n createFirst: \"Create your first space\",\n },\n },\n app: {\n payment: {\n payment: {\n tabTitle: \"Sutra - Payment form\",\n title: \"Complete payment\",\n },\n planOption: {\n frequencyDescription1: \"per month\",\n frequencyDescription2: \"per month when billed annually\",\n currentPlan: \"Current plan\",\n billedMonthly: \"Billed monthly\",\n billedAnnually: \"Billed annually\",\n },\n stripeForm: {\n due_in_trial: \"Due in 14 days\",\n pay: \"Pay\",\n },\n },\n gettingStarted: {\n items: {\n setup: \"Setting up your program space\",\n conversations: \"Creating conversational courses\",\n privacy: \"Privacy and payment settings\",\n registration: \"Creating a registration page\",\n invitations: \"Inviting participants\",\n settings: \"How space settings work\",\n automations: \"Automations\",\n interactive: \"Interactive journeys\",\n interest: \"Interest forms\",\n appearance: \"Branding and page layout\",\n grids: \"Grid and block settings\",\n broadcasts: \"Sending email broadcasts\",\n tagging: \"Tagging\",\n tagfeed: \"Tag feed and harvesting\",\n emojis: \"Sidebar emojis\",\n },\n\n templates: {\n groupprogram: {\n label: \"Group program\",\n description:\n \"A program space where you can organize everything you need for a group of people learning together.\",\n },\n zoomworkshop: {\n label: \"Zoom workshop\",\n description:\n \"Organize everything you need for a simple zoom based workshop.\",\n },\n mastermind: {\n label: \"Mastermind\",\n description:\n \"Invite a group of people to step into a mastermind process together.\",\n },\n selfpacedcourse: {\n label: \"Self paced course\",\n description:\n \"A flexible template to create a self paced course.\",\n },\n communityspace: {\n label: \"Community space\",\n description:\n \"Bring people together in a vibrant online community space that grows as your community grows.\",\n },\n oneononecoaching: {\n label: \"One-on-one coaching\",\n description:\n \"Create a dedicated space for each of your coaching clients.\",\n },\n },\n loading: {\n text: \"Your template is loading, please wait…\",\n },\n tabTitle: \"Sutra - Getting started\",\n mainTitle: \"Getting started guide\",\n selectTemplate: \"Select this template\",\n advanceFeatures: \"Advanced Features\",\n welcome: \"Welcome\",\n description1:\n \"Sutra makes it easy to organize content and conversations for courses, communities, one-on-one coaching, and everything in between. Learn the basics in this five minute video.\",\n watchVideo: \"Watch the video\",\n createFirstSpace: \"Create your first space\",\n gettingStartedGuide: \"Start with the basics\",\n description2:\n \"Learn more about how Sutra works and get started with a launch checklist and more detailed guidance.\",\n checkOutTheGuide: \"Check out the guide\",\n startWithATemplate: \"Start with a template\",\n description3:\n \"Learn more about how Sutra works and get started with a launch checklist and more detailed guidance.\",\n learnAbout: \"Learn about advanced features\",\n description4:\n \"Sutra is designed to be flexible and powerful to accommodate almost any use case can create uniquely engaging interactive experiences, capture interest for your various offerings, send email newsletters, and harvest collective knowledge.\",\n learnmore: \"Learn more\",\n },\n premium: {\n try: \"Try Sutra\",\n include: \"Features include\",\n upgrade: \"Upgrade now\",\n },\n pricing: {\n tabTitle: \"Sutra - Pricing\",\n upgrade: \"Upgrade your plan\",\n text: \"Whatever you need for your course or community, we're here to support your work. Reach out to us with any questions you might have at support@sutra.co.\",\n },\n scheduleDemo: {\n tabTitle: \"Sutra - Schedule a demo\",\n },\n welcome: {\n tabTitle: \"Sutra - Welcome\",\n title: \"Welcome to Sutra!\",\n description1:\n \"We are so happy to have you here. Please take a moment to watch the video below...\",\n description2:\n \"Would you like to try one of our paid plans for free?\",\n description3:\n \"Pick a plan below to start a 14 day free trial. Once the trial is over you will automatically be billed for the plan you select.\",\n yes: \"Yes, please show me the options\",\n no: \"No, thank you\",\n },\n },\n layout: {\n userButton: {\n home: \"Home\",\n viewProfile: \"View profile\",\n settings: \"Settings\",\n support: \"Support\",\n language: \"Language\",\n terms: \"Terms & privacy\",\n logout: \"Logout\",\n copyright: \"Sutra Spaces, LLC © 2022\",\n },\n directMessages: {\n label: \"Direct messages\",\n actionButton: \"View all\",\n empty: \"You don't have any direct messages\",\n directMessage: \"Direct messages\",\n },\n notifications: {\n label: \"Notifications\",\n actionButton: \"Clear all\",\n empty: \"You don't have any notifications\",\n notification: \"Notifications\",\n },\n headerContent: {\n registrationPage: \"Registration page\",\n nonManagersHidden: \"Header hidden for non-managers\",\n },\n search: {\n reflection: \"Reflection\",\n comment: \"Comment\",\n allSpaces: \"All spaces\",\n withinTop: \"Within top level space\",\n withinSpace: \" Within this space\",\n everything: \"Everything\",\n titlesOnly: \"Titles only\",\n tagsOnly: \"Tags only\",\n content: \"Content\",\n discussion: \"Chat\",\n events: \"Events\",\n users: \"Users\",\n placeholder: \"Search...\",\n nothingFound: \"Nothing found\",\n search: \"Search\",\n },\n uploader: {\n pending: \"Pending\",\n used: \"Used\",\n uploading: \"Uploading\",\n finishing: \"Finishing\",\n processing: \"Processing\",\n completed: \"Completed\",\n },\n },\n resources: {\n pages: {\n form: {\n label: \"Title\",\n placeholder: \"What's your page topic?\",\n create: \"Create page\",\n save: \"Save page\",\n },\n },\n form: {\n title: {\n label: \"Title\",\n placeholder: \"What's your topic?\",\n },\n publish: {\n label: \"Publish on date\",\n },\n date: {\n label: \"Pick date\",\n },\n update: \"Update collapsable section\",\n create: \"Create collapsable section\",\n },\n },\n settings: {\n editProfile: {\n tabTitle: \"Sutra - Edit Profile\",\n editProfile: \"Edit profile\",\n firstName: \"First name\",\n lastName: \"Last name\",\n username: \"Username\",\n email: \"Email\",\n removeProfileImage: \"Remove profile image\",\n addProfileImage: \"Add profile image\",\n about: \"About\",\n location: \"Location\",\n bio: \"Bio\",\n bioPlaceholder: \"Share a little about yourself...\",\n updateProfile: \"Update profile\",\n },\n accountSettings: {\n accountSettings: \"Account settings\",\n changePassword: \"Change password\",\n currentPassword: \"Current password\",\n newPassword: \"New password\",\n newPasswordConfirmation: \"New password confirmation\",\n updatePassword: \"Update password\",\n advanced: \"Advanced\",\n deleteAccount: \"Delete account\",\n warning: \"Warning\",\n deleteAccountWarning:\n \"Deleting your account is irreversible and will permanently remove your account details from our system.\",\n closeYourAccount: \"Close your account\",\n invalidCurrentPasswordErrorMsg: \"Can't be empty\",\n invalidPasswordErrorMsg:\n \"Password must be at least 8 characters long\",\n invalidPasswordConfirmationErrorMsg: \"Passwords don't match\",\n deleteAccountAlert: {\n title: \"Important\",\n message:\n \"Deleting your account is irreversible and will permanently remove your account details from our system\",\n input: \"Please type 'delete my account' to confirm this action\",\n confirmButton: \"Delete forever\",\n cancelButton: \"Cancel\",\n },\n cancelSubscriptionAlert: {\n title: \"Important\",\n message: \"Please cancel your subscription first\",\n confirmButton: \"Go to billing\",\n cancelButton: \"I'll do it later\",\n },\n stripeAccount: {\n title: \"Reset Stripe for all spaces\",\n alertTitle: \"Are you sure?\",\n alertMessage:\n \"If you reset your Stripe connection, your Stripe credentials will be cleared from your user account on Sutra and you will be able to connect a new Stripe account.\",\n buttonText: \"Reset connection\",\n confirmButton: \"Yes\",\n cancelButton: \"No\",\n confirmTitle: \"Are you sure?\",\n confirmMessage:\n \"Your Stripe credentials will be cleared from all spaces on Sutra\",\n },\n },\n emailPreferences: {\n tabTitle: \"Sutra - Email Preferences\",\n emailPreferences: \"Email preferences\",\n emailDigestPreferences: \"Email digest preferences\",\n emailDigestFrequency: \"Email digest frequency\",\n emailDigestMessage:\n \"To adjust email preferences by space, please view the subscriptions settings area. You can unsubscribe from a space completely by leaving it or you can set any individual space to 'Mute' in the subscriptions settings area.\",\n receiveWeeklyDigest:\n \"Receive a weekly digest of newly tagged items and discussions\",\n receiveAtMentions:\n \"Receive a notification when someone @mentions you\",\n receiveLikes: \"Receive a notification when someone hearts your post\",\n },\n subscriptions: {\n frequencyOptions: \"Frequency options\",\n otherActions: \"Other actions\",\n subscriptions: \"Space specific preferences\",\n searchBySpaceName: \"Search by space name\",\n search: \"Search\",\n clear: \"Clear\",\n options: \"Options\",\n otherActions: \"Other actions\",\n emptySubscriptions: \"You don't have any subscriptions.\",\n leaveSpaceConfirmationTitle:\n \"Are you sure you want to leave this space?\",\n leaveSpaceConfirmationHtml:\n \"You will no longer be a member of this space and may not be able to join again without asking the manager.\",\n leaveSpaceButtonText: \"Yes, leave\",\n leaveSpaceDenyButtonText: \"No\",\n leaveSpace: \"Leave space\",\n unsubscribe: \"Unsubscribe\",\n unsubscribed: \"Unsubscribed\",\n },\n digestPreferences: {\n digestedLabel: \"Group all updates into one digest\",\n digestedDescription:\n \"New messages across all your spaces will be digested into one email update.\",\n undigestedLabel: \"Group updates by space\",\n undigestedDescription:\n \"You will receive separate email digests for each space that has new messages.\",\n },\n paid_subscriptions: {\n tabTitle: \"Sutra - Paid subscriptions\",\n title: \"Paid subscriptions\",\n noPayments: \"You don't have any paid subscriptions\"\n },\n billing: {\n statuses: {\n pending: \"Pending\",\n processing: \"Processing\",\n paid: \"Paid\",\n trial: \"Trial\",\n },\n paymentMethod: {\n currentPaymentMethod: \"Current Payment Method\",\n noCurrentPaymentMethod: \"No Current Payment Method\",\n addNewPaymentMethod: \"Add new payment method\",\n },\n stripe: {\n updatePaymentMethod: \"Update payment method\",\n },\n tabTitle: \"Sutra - Billing\",\n updatePaymentMethodMayus: \"UPDATE PAYMENT METHOD\",\n payments: \"PAYMENTS\",\n pdf: \"PDF\",\n noPayments: \"You have no payment history\",\n billing: \"Billing\",\n upgradePlan: \"Upgrade plan\",\n changePlan: \"Change plan\",\n updatePaymentMethod: \"Update payment method\",\n cancelSubscription: \"Cancel subscription\",\n cancelConfirmationTitle:\n \"Are you sure you want to cancel your subscription?\",\n cancelConfirmationHtml:\n \"You will no longer have access to your plan's premium features.\",\n cancelConfirmButtonText: \"Yes, cancel\",\n cancelDenyButtonText: \"No\",\n billingHistory: \"Billing History\",\n tableDate: \"Date\",\n tableAmount: \"Amount\",\n tableStatus: \"Status\",\n tableInvoice: \"Invoice\",\n planPrefix: \"You are currently on the\",\n planSuffix: \"plan\",\n updatePayment: {\n success: {\n title: \"Success\",\n message: \"You payment method has been updated\",\n },\n error: {\n title: \"Opps, something went wrong!\",\n },\n },\n },\n frequencyOptions: {\n mute: \"Mute\",\n always: \"On every message\",\n hour1: \"Every hour\",\n hour2: \"Every 2 hours\",\n hour4: \"Every 4 hours\",\n hour8: \"Every 8 hours\",\n hour24: \"Once a day\",\n hour168: \"Once a week\",\n hour336: \"Every two weeks\",\n },\n affiliates: {\n history: {\n empty: \"You have no ambassador payout history\",\n table: {\n referralName: \"Referral name\",\n startAt: \"Start at\",\n endAt: \"End at\",\n createdAt: \"Charged on\",\n percent: \"Commission\",\n total: \"Total earned\",\n status: \"Status\",\n value: \"Amount\",\n revenue: \"Payout\",\n payAt: \"Paid at\",\n status: \"Status\",\n },\n statuses: {\n null: \"Pending\",\n pending: \"Pending\",\n processing: \"Processing\",\n paid: \"Paid\",\n active: \"Active\",\n },\n paymentsHistory: \"Payout history\",\n },\n tabTitle: \"Sutra - Ambassador program\",\n title: \"Ambassador program\",\n affiliateLink: \"This is your affiliate link\",\n copyMessage: \"Link copied to clipboard\",\n stripeTitle: \"Stripe connected to\",\n stripeConnected:\n \"This is your Stripe account ID. To find this ID on Stripe, please click on the link to log into Stripe and scroll to the bottom of your account settings page.\",\n stripeDisconnect: \"Disconnect\",\n description:\n \"To process payments for the ambassador program program please connect your Stripe account by clicking on the button below.\",\n description2:\n \"When you share this link with others, you'll automatically receive 40% of the first year of any revenue generated from anyone who signs up for a paid Sutra account.\",\n connect: \"Connect Stripe\",\n historyLabel: \"Payout history\",\n },\n },\n spaces: {\n settings: {\n layout: {\n navbarContent: {\n mainSettings: \"General settings\",\n members: \"Members\",\n broadcast: \"Broadcast\",\n surveys: \"Surveys\",\n structures: \"Structures\",\n sutraAdmin: \"Sutra Admin\",\n scheduled: \"Scheduled\",\n archived: \"Archived\",\n participation: \"Participation\",\n },\n headerActions: {\n shareableLink: \"SHAREABLE LINK\",\n },\n },\n main: {\n title: \"General settings\",\n main: {\n invite: \"Invite\",\n shareableLink: \"Shareable link\",\n cancelLink: \"Cancel\",\n saveLink: \"Save\",\n editLinkButton: \"Edit link\",\n subdomain: \"Your subdomain\",\n sutra_co: \".sutra.co\",\n label1: \"Link copied to clipboard\",\n privacySetting: \"Select a privacy setting\",\n title1: \"Make this space publically accessible\",\n description1:\n \"This space is within a private space and only visible to members of that space. You can make it publically accessible outside of this space by turning this setting on.\",\n title2: \"Display registration page\",\n description2:\n \"Non-members will see a custom registration page when they try to access this space if this setting is turned on.\",\n title3: \"Use legacy registration page\",\n description3:\n \"If this setting is turned on this space will use the registration page designed using our legacy editor.\",\n onButton: \"ON\",\n offButton: \"OFF\",\n editButton: \"Edit page\",\n previewButton: \"Preview page\",\n label2: \"Privacy and payment settings\",\n label3: \"Registration page settings\",\n description4:\n \"Active - People will land on a registration page before they can access this space\",\n label4: \"Automation\",\n description5:\n \"Schedule emails and automatically add people to spaces when they register\",\n label5: \"Scheduling settings\",\n description6:\n \"Set an event date or schedule publishing and archiving options\",\n label6: \"Additional settings\",\n description7:\n \"Content creation permissions, membership visibility, manager notifications, and parent spaces\",\n label7: \"SEO Settings\",\n description8:\n \"Set meta tag title, description, and image for social sharing and search engine optimization\",\n label8: \"Open\",\n description9: \"Anyone can access this space\",\n label9: \"Private\",\n description10:\n \"This space is private and people must be invited to join\",\n label10: \"Paid\",\n description11:\n \"This space is paid and private. People must pay to join\",\n description12:\n \"People will land on a registration page before they can access this open space.\",\n description13:\n \"People will land directly into this space when they access this open space.\",\n description14:\n \"People must be directly invited to access this private space. If they are invited they will see a registration page.\",\n description15:\n \"People must be directly invited to access this private space. If they are invited they will see an account creation page with no registration page.\",\n description16:\n \"People will land on a registration page before they can access this paid space.\",\n description17:\n \"People will land on an account creation and payment page before they can access this paid space. They will not see a registration page.\",\n on: \"ON\",\n off: \"OFF\",\n label11: \"Members\",\n label12: \"Pending\",\n label13: \"Interested\",\n label14: \"Invited\",\n label15: \"Payments\",\n label16: \"Branding\",\n },\n additional: {\n allowMembersEdit:\n \"Allow members to edit content on this page\",\n membersWillAddContent:\n \"Members will be able to add and edit content on this page\",\n allowMembersCreatePosts: \"Allow members to create new posts\",\n membersWillCreatePosts:\n \"Members will be able to create new posts in this space\",\n allowMembersCreateEvents:\n \"Allow members to create new events\",\n membersWillCreateEvents:\n \"Members will be able to create new events in this space\",\n allowMembersCreateSubspaces:\n \"Allow members to create new subspaces\",\n membersWillCreateSubspaces:\n \"Members will be able to create sub spaces on this page\",\n membersCanCreate: \"Members can create\",\n circleCreation: {\n options: {\n discussion: \"Chat spaces\",\n content: \"Content spaces\",\n event: \"Event spaces\",\n },\n placeholder:\n \"Select the types of spaces that members can create in this space\",\n },\n allowMembersToCopy: {\n description1: \"Allow members to copy members across spaces\",\n description2:\n \"Members will have the option to automatically add members from other circles\",\n },\n podType: {\n description1: \"All members can post messages in this space\",\n description2:\n \"If this option is turned off, only managers can post messages\",\n },\n allowReflections: {\n description1: \"Enable reflections for this space\",\n description2:\n \"If this option is turned off, the reflect option will not show up on messages\",\n },\n showMembers: {\n description1: \"Show members\",\n description2: \"Show the member directory for this space\",\n },\n hideMmemberEmails: {\n description1: \"Display member emails in member directory\",\n description2:\n \"If this option is turned off, member emails will not be listed in the directory\",\n },\n newMemberNotifications: {\n description1: \"Notify managers when new members join\",\n description2:\n \"Send a notification email on each new member sign up\",\n },\n podSize: {\n description1:\n \"Limit number of people that can join this space\",\n description2:\n \"Specify a maximum number of people that can join this space\",\n },\n podSizeValue: {\n description: \"How many people can join this space?\",\n },\n sidebarDefaultOpened: {\n description1: \"Space opened by default in sidebar\",\n description2:\n \" If this option is turned on this, this space will default to expanded in the sidebar\",\n },\n sidebarHideChildren: {\n description1: \"Hide sub spaces in sidebar\",\n description2:\n \" If this option is turned on, sub spaces created in this space will not appear in the sidebar\",\n },\n allowCompletions: {\n description1: \"Show mark complete button\",\n description2:\n 'If this option is turned on, members will see a \"Mark complete\" button for this space. After they select this option, the icon in the sidebar will be replaced with a check mark',\n },\n redirectToSubspace: {\n description1: \"Always redirect to sub space\",\n description2:\n \"If this option is turned on, members will always land in the selected sub space when accessing this space\",\n },\n parentCircles: {\n description1: \"Parent spaces\",\n placeholder:\n \"Search for a space to redirect to\",\n },\n },\n scheduling: {\n showStartDate: {\n description1: \"Display this space as an event\",\n description2:\n \"This space will display an event date wherever it is listed\",\n },\n startDateTime: {\n title: \"Start date and time\",\n placeholder: \"Pick date\",\n },\n endDateTime: {\n title: \"End date and time\",\n placeholder: \"Pick date\",\n },\n showLaunchDate: {\n description1: \"Publish this space on a date\",\n description2:\n \"This space will become visible and accessible on the date specified\",\n },\n launchDateTime: {\n placeholder: \"Pick date\",\n },\n showArchiveDate: {\n description1: \"Archive this space on a date\",\n description2:\n \"This space will no longer be accessible on the date specified\",\n },\n archiveDate: {\n placeholder: \"Pick date\",\n },\n showReadonlyDate: {\n description1: \"Make this space read-only on a date\",\n description2:\n \"No new messages can be posted after the date specified\",\n },\n readonlyDate: {\n placeholder: \"Pick date\",\n },\n },\n seo: {\n title: {\n title: \"Tag title\",\n description:\n \"This is the title that will show up in search engine results and social shares. Optimal length is 60 characters.\",\n },\n description: {\n title: \"Meta description\",\n description:\n \"This is the description that will show up in search engine results and social shares. Optimal length is 150 to 350 characters.\",\n },\n image: {\n title: \"Meta image\",\n description:\n \"This is the image that will show up in social media shares. The recommended dimension is 1200 pixels x 627 pixels (1.91/1 ratio).\",\n },\n },\n },\n members: {\n title: \"Members\",\n members: {\n download: \"Download XLS\",\n invite: \"Invite\",\n member: \"Members\",\n invited: \"Invited\",\n interested: \"Interested\",\n payment: \"Payments\",\n },\n interested: {\n interested: {\n button: \"Search\",\n placeholder: \"Search for more\",\n broadcast: \"Send broadcast\",\n noRecordFound: \"No records found\",\n },\n table: {\n firstname: \"First name\",\n email: \"Email\",\n date: \"Date\",\n },\n interestedrow: {\n removeFromList: \"Remove from list\",\n },\n },\n invited: {\n invited: {\n button: \"Search\",\n placeholder: \"Search for more\",\n noRecordFound: \"No records found\",\n },\n table: {\n email: \"Email\",\n invitationlink: \"Invitation link\",\n amount: \"Amount\",\n date: \"Date sent\",\n },\n },\n invitedrow: {\n invitation: {\n resend: \"Resend invitation\",\n cancel: \"Cancel invitation\",\n },\n },\n inviteEmail: {\n invite: {\n placeholder:\n \"Type the email address or @mention people you would like to add to this space. Entries can be separated by commas, spaces, or new lines.\",\n message: \"Add an optional welcome message\",\n checkboxLabel:\n \"Send email to notify people that they have been invited\",\n alertMessage:\n \"You are currently on a basic plan and cannot send invitations through Sutra. When you click invite, a unique invitation link will be generated for each email address that you add. You’ll be able to personally email each person with this link.\",\n alertbutton: \"Upgrade account\",\n button: \"Invite People\",\n },\n },\n inviteExisting: {\n invite: {\n copyMembers: \"Copy members from another space\",\n copyMembersPlaceholder:\n \"Select spaces from which to copy members\",\n addActiveMembers: \"Add active members from parent spaces\",\n addActiveMembersPlaceholder:\n \"Select active members to add to this space\",\n addPendingMembers: \"Add pending members from parent spaces\",\n addPendingMembersPlaceholder:\n \"Select pending members to add to this space\",\n checkboxLabel:\n \"Send email to notify people that they have been invited\",\n alert:\n \"You are currently on a basic plan and cannot send invitations through Sutra. When you click invite, a unique invitation link will be generated for each email address that you add. You’ll be able to personally email each person with this link.\",\n alertButton: \"Upgrade account\",\n button: \"Invite people\",\n thisOption: \"This option is not enabled for this space\",\n },\n },\n inviteLink: {\n invite: {\n shareLinkText:\n \"People can register for this space directly with the following link.\",\n youCannotShare:\n \"You cannot share a link to a private space.\",\n },\n },\n invitePeople: {\n invite: {\n invitePeople: \"Invite people\",\n },\n },\n membersActivity: {\n members: {\n placeholder: \"Search for\",\n button: \"Search\",\n emailButton: \"Email\",\n messageButton: \"Message\",\n noRecordFound: \"No records found\",\n },\n memberTable: {\n noRecordFound: \"Member\",\n lastSeen: \"Last seen\",\n lastPosted: \"Last posted\",\n date: \"Date joined\",\n },\n },\n participationActivity: {\n participation: {\n searchPlaceholder: \"Search for\",\n searchButton: \"Search\",\n pickDatePlaceholder: \"Pick date range\",\n emailButton: \"Email\",\n messageButton: \"Message\",\n noRecordFound: \"No records found\",\n },\n memberTable: {\n member: \"Member\",\n participation: \"Participation\",\n posts: \"Posts\",\n words: \"Words\",\n },\n },\n participationActivityRow: {\n posts: \"posts\",\n },\n paymentRow: {\n payment: {\n refundPayment: \"Refund payment\",\n },\n },\n payments: {\n payment: {\n searchPlaceholder: \"Search for\",\n searchButton: \"Search\",\n noRecordFound: \"No records found\",\n },\n paymentTable: {\n member: \"Member\",\n amount: \"Amount\",\n date: \"Date\",\n status: \"Status\",\n },\n },\n progressActivity: {\n progress: {\n searchPlaceholder: \"Search for\",\n searchButton: \"Search\",\n emailButton: \"Email\",\n messageButton: \"Message\",\n noRecordFound: \"No records found\",\n progressTracking:\n \"Progress tracking is only available in spaces that have interactive prompts.\",\n },\n progressTable: {\n member: \"Member\",\n progress: \"Progress\",\n },\n },\n registered: {\n registered: {\n searchPlaceholder: \"Search for\",\n searchButton: \"Search\",\n email: \"Email\",\n message: \"Message\",\n noRecordFound: \"No records found\",\n pending: \"Pending\",\n manager: \"Managers\",\n all: \"All\",\n active: \"Active\",\n },\n registeredTable: {\n member: \"Member\",\n email: \"Email\",\n status: \"Status\",\n role: \"Role\",\n roleApproveAll: \"Approve all\",\n },\n },\n registeredRow: {\n registered: {\n roleApprove: \"Approve\",\n joined: \"Joined\",\n sendMessage: \"Send message\",\n stopCharging: \"Stop charging\",\n emailPreferences: \"Email preferences\",\n removeMember: \"Remove member\",\n },\n },\n },\n payment: {\n charging: {\n NumberOfTimes: {\n howManyTimes: \"How many times?\",\n },\n UntilDate: {\n pickDate: \"Pick an end date for charging\",\n },\n },\n fees: {\n description: {\n fees: \"FEES:\",\n sutraFee: \"SUTRA FEE +\",\n stripeProcessingFee: \"STRIPE PROCESSING FEES\",\n },\n },\n flexible: {\n flexible: {\n description:\n \"To offer people flexible payment options such as a pay what you can model or multiple tiers of payment, you can create a payment survey which people will see when they register for your space. Click on the edit button below to customize the survey.\",\n },\n },\n once: {\n once: {\n description: \"How much will you charge?\",\n number: \"10\",\n },\n },\n recurring: {\n recurring: {\n description1: \"How much will you charge?\",\n description2: \"Select a charging option\",\n },\n },\n },\n privacy: {\n open: {\n open: {\n description: \"Anyone can access this space\",\n },\n },\n paid: {\n paid: {\n stripeConnected: \"Stripe Connected to\",\n disconnectButton: \"Disconnect\",\n description:\n \"To process payments for this space please connect your Stripe account by clicking on the button below.\",\n connectButton: \"Connect Stripe\",\n },\n },\n private: {\n private: {\n description:\n \"This space is private and people must be invited to join\",\n },\n },\n },\n registration: {\n steps: {\n addFromSubSpace: {\n label: \"Select a space to add member to\",\n description:\n \"In some situations, people are able to join a sub space without joining the parent space. Sometimes, you want to be sure that they're also added to a top level space or some shared space. This option lets you do that. Whenever someone joins a sub space here, they will automatically be added to any spaces that you select below.\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n addStructure: {\n label1: \"Select structure\",\n placeholder1: \"Select an option\",\n label2: \"Send as\",\n placeholder2: \"Select an option\",\n saveButton: \"Save step\",\n },\n addToExistingSpace: {\n label: \"Select a space to add member to\",\n placeholder: \"Select spaces\",\n saveButton1: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n addToNewSpace: {\n placeholder: \"Name of new space\",\n label: \"Create a name for the new space\",\n saveButton1: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n applyTemplate: {\n label: \"Select a space to copy\",\n description:\n \"Sometimes you want to create a template space and have that be replicated every time a new space is created. You can create a space and set it up exactly the way you want. Then all content and sub spaces will be copied into any newly created space here.\",\n saveButton1: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n editEmail: {\n placeholder1: \"Subject line\",\n label1: \"Send as\",\n placeholder2: \"Select an option\",\n label2: \"Send to\",\n placeholder3: \"Select an option\",\n placeholder4: \"someone@special.com\",\n label3: \"Email address\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n sendPreview: \"Send preview\",\n },\n editStructure: {\n deleteButton: \"Delete step\",\n },\n editSurvey: {\n deleteButton: \"Delete step\",\n },\n sendEmail: {\n label1: \"Select email\",\n placeholder1: \"Select an option\",\n label2: \"Send as\",\n placeholder2: \"Select an option\",\n label3: \"Send to\",\n placeholder3: \"Select an option\",\n label4: \"someone@special.com\",\n placeholder4: \"Email address\",\n saveButton: \"Save step\",\n label5: \"Managers\",\n label6: \"Custom email address\",\n },\n setToPending: {\n title: \"Welcome message\",\n description:\n \"This is the content that people will see right after they register for your space. This is a good place to explain when the program will launch and what they can expect in the meantime.\",\n saveButton1: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n surveyPerson: {\n placeholder: \"Select an option\",\n label: \"Select survey or quiz\",\n saveButton1: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n wait: {\n description1: \"How many days?\",\n description2: \"Wait until\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n label1: \"Select wait condition\",\n placeholder: \"Select an option\",\n label2: \"Number of days\",\n label3: \"Until specific date and time\",\n label4: \"Pick date\",\n },\n webhook: {\n label: \"Webhook URL\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n },\n remove_from_space: {\n label: \"Select a space to remove member from\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n },\n addStep: {\n addStep: {\n description: \"Add step\",\n label: \"Please select an action for this step\",\n placeholder: \"Select an action\",\n },\n },\n registrationFlow: {\n registration: {\n description1:\n \"This feature allows you to sequence automated actions that are triggered when a person joins or becomes interested in this space. Here you can do things like schedule emails and automatically add people to select spaces when they register.\",\n description2: \"Perform these actions after someone...\",\n placeholder1: \"Select a starting condition\",\n addButton: \"Add step\",\n label1: \"Becomes a member or joins the interested list\",\n description3:\n \"The following steps will be triggered when a person becomes a member of this space or joins the interested list by submitting their name and email address through an interest form.\",\n label2: \"Becomes a member of this space\",\n description4:\n \"The following steps will be triggered when a person becomes a member of this space.\",\n label3: \"Becomes interested in this space\",\n description5:\n \"The following steps will be triggered when a person joins the interested list by submitting their name and email address through an interest form.\",\n },\n },\n },\n structure: {\n add: {\n add: {\n title: \"Add to spaces\",\n description: \"Spaces\",\n placeholder1: \"Select a space\",\n label1: \"Send as\",\n placeholder2: \"Choose sender\",\n placeholder3: \"Pick date\",\n label2: \"Send date\",\n label3: \"Send time\",\n saveButton: \"Save\",\n label4: \"Schedule for later\",\n },\n },\n createStructure: {\n title: {\n createStructure: \"Create structure\",\n },\n },\n structureItem: {\n item: {\n addToSpace: \"Add to space\",\n open: \"View responses\",\n edit: \"Edit\",\n duplicate: \"Duplicate\",\n delete: \"Delete\",\n },\n },\n },\n survey: {\n add: {\n add: {\n title: \"Add to spaces\",\n spaces: \"Spaces\",\n placeholder1: \"Select a space\",\n label: \"Send as\",\n placeholder2: \"Choose sender\",\n saveButton: \"Save\",\n },\n },\n answer: {\n answer: {\n addOption: \"Add option\",\n },\n },\n createSurvey: {\n description: \"Create survey or quiz\",\n },\n createSurveyForm: {\n form: {\n title: \"Title\",\n description:\n \"Flexible payments allow you to offer multiple payment options for your program. If you would like people to set their own price, just create a payment option without setting the amount for that option. That option will show up with an input for the person to set their own amount. For example, you can offer a pay what you can model with several suggested levels and a completely open option. If you add explanation text below, that text will show up just above the payment options.\",\n optionalDescription: \"Optional description\",\n addQuestionButton: \"Add question\",\n saveButton: \"Save\",\n },\n },\n individual: {\n individual: {\n placeholder: \"Select a person\",\n },\n },\n multipleItem: {\n multipleItem: {\n placeholder: \"Option\",\n },\n },\n paymentItem: {\n paymentItem: {\n placeholder: \"Payment option\",\n },\n },\n paymentSurveyItem: {\n item: {\n editButton: \"Edit payment options\",\n viewButton: \"View responses\",\n },\n },\n showSurvey: {\n survey: {\n title: \"Survey responses\",\n },\n },\n singleItem: {\n item: {\n placeholder: \"Option\",\n },\n },\n surveyItem: {\n item: {\n addToSpace: \"Add to space\",\n open: \"View responses\",\n edit: \"Edit\",\n take: \"Preview survey\",\n duplicate: \"Duplicate\",\n download: \"Download XLS\",\n delete: \"Delete\",\n responses: \"Responses\",\n },\n },\n },\n broadcast: {\n broadcast: {\n button: {\n broadcastButton: \"New broadcast\",\n },\n },\n },\n broadcast: {\n title: \"Broadcast\",\n broadcastButton: \"New broadcast\",\n membersTypes: {\n active: \"Active members\",\n pending: \"Pending members\",\n interested: \"Interested members\",\n },\n sentOn: \"Broadcast sent on\",\n onDestroy: {\n alertTitle: \"Are you sure?\",\n alertMessage: \"This broadcast will be permanently deleted\",\n confirm: \"Delete broadcast\",\n deny: \"Cancel\",\n },\n actions: {\n edit: \"Edit\",\n duplicate: \"Duplicate\",\n delete: \"Delete\",\n },\n statuses: {\n sent: \"Sent\",\n scheduled: \"Scheduled\",\n draft: \"Draft\",\n procesing: \"Processing\",\n },\n form: {\n composeBroadcast: \"Compose Broadcast\",\n contentErrMessage: \"Add some content\",\n targetErrMessage: \"Select a receiver\",\n type: {\n email: \"Send email\",\n message: \"Message space\",\n },\n title: {\n placeholder: \"Subject line\",\n },\n brackets: {\n part1: \"Use\",\n part2: \"and\",\n part3: \"to autopopulate the corresponding information\",\n },\n target: {\n placeholder: \"Choose recipients\",\n label: \"Send to\",\n },\n sendAs: {\n label: \"Send as\",\n placeholder: \"Choose sender\",\n },\n schedule: {\n label: \"Schedule for later\",\n },\n sendAtDate: {\n label: \"Send date\",\n placeholder: \"Pick date\",\n },\n sendAtTime: {\n label: \"Send time\",\n placeholder: \"\",\n },\n scheduleBroadcast: \"Schedule broadcast\",\n sendBroadcast: \"Send broadcast\",\n saveDraft: \"Save draft\",\n sendPreview: \"Send preview\",\n },\n },\n surveys: {\n title: \"Surveys\",\n createSurvey: \"Create survey\",\n },\n structures: {\n title: \"Structures\",\n createStructure: \"Create structure\",\n },\n sutraAdmin: {\n title: \"Sutra admin\",\n },\n scheduled: {\n title: \"Scheduled\",\n },\n archived: {\n title: \"Archived\",\n },\n participation: {\n title: \"Participation\",\n label1: \"Presence\",\n description1: \"% of members who've visited in the last 7 days\",\n label2: \"Activity\",\n description2: \"% of members who've posted in the last 7 days\",\n label3: \"Posts\",\n description3:\n \"Total posts across all sub spaces in the last 7 days\",\n label4: \"Participation\",\n label5: \"Member Activity\",\n label6: \"Advanced\",\n },\n },\n sidebar: {\n iconSelect: {\n placeholder: \"Search\",\n },\n membersNode: {\n member: \"Members\",\n },\n nodeIcon: {\n reset: \"Reset\",\n },\n sidebarTutorial: {\n gettingStarted: \"Getting started\",\n },\n },\n alreadyMember: {\n member: {\n welcome: \"Welcome! You're already a member of this space - \",\n clickHere: \"Click here to enter\",\n },\n },\n calender: {\n calender: {\n joinButton: \"Join call\",\n addButton: \"Add to calendar\",\n joinEventButton: \"Register\",\n title: \"Event details\",\n },\n },\n invitationBar: {\n button: {\n register: \"Register\",\n },\n },\n space: {\n sutraLoading: \"Sutra - Loading...\",\n },\n statusBar: {\n restoreButton: \"Restore\",\n },\n tagFilter: {\n resetButton: \"Reset\",\n },\n presentations: {\n discussion: {\n reflectionHeader: \"Reflections\",\n backToPost: \"Back to post\",\n pinnedMessageHeader: \"Pinned message\",\n delete: {\n title: \"Are you sure?\",\n message: \"This action cannot be undone\",\n confirmButton: \"Yes delete\",\n cancelButton: \"Cancel\",\n },\n },\n tag: {\n placeholder: \"Search tags or create a new one\",\n placeholder2: \"Select a tag\",\n createAction: \"Create\",\n },\n message: {\n expand: \"Expand\",\n reply: \"Reflect\",\n addTags: \"Add tags\",\n tag: \"Tag\",\n copyToClipboard: \"Copy to clipboard\",\n messageCopied: \"Message copied to clipboard\",\n pinMessageAction: \"Pin message\",\n editMessage: \"Edit message\",\n deleteMessage: \"Delete message\",\n makePrivate: \"Make private\",\n viewReplies1: \"View\",\n viewReplies2single: \"reflection\",\n viewReplies2plural: \"reflections\",\n privateMessage:\n \"This post is currently only visible to you and the managers of this space. If you make it public it will be visible to other participants in this space. Click here to make it public.\",\n privateMessage2:\n \"This person has chosen to not share their response with other participants.\",\n unreadMessagesText: \"You have unread messages\",\n scrollDownButton: \"Scroll down\",\n newReflections: {\n part1: \"You have\",\n part2: \"unread reflections across\",\n part3: \"messages\",\n },\n viewNextButton: \"View next\",\n pinMessage: {\n mainText: \"Pinned message\",\n viewButton: \"View message\",\n },\n },\n content: {\n commentInput: {\n toggleLabel1:\n \"Comments are disabled for interactive journeys\",\n toggleLabel2: \"Turn on comments for this post\",\n toggleLabel3: \"Turn on comments for this event space\",\n toggleLabel4: \"Turn on comments for this content space\",\n placeholder1:\n \"Comments cannot be posted while you are editing.\",\n placeholder2: \"Write something...\",\n },\n },\n fallback: {\n title: \"Connection issue\",\n message:\n \"It seems you got disconnected from the internet. When you're back online, we'll automatically reconnect you.\",\n },\n events: {\n placeholder: \"Write something...\",\n upcomingButton: \"Upcoming\",\n pastButton: \"Past\",\n addEvent: \"Add event\",\n eventSettingsTooltip: \"Space settings\",\n newEventTitle: \"NEW EVENT\",\n },\n list: {\n placeholder: \"Write something...\",\n createButton: \"Create post\",\n listSettingsTooltip: \"Space settings\",\n duplicateFormTitle: \"DUPLICATE SPACE\",\n },\n showcase: {\n placeholder: \"Write something...\",\n createButton: \"Create space\",\n listSettingsTooltip: \"Space settings\",\n duplicateFormTitle: \"DUPLICATE SPACE\",\n },\n settings: {\n versions: {\n content: \"Content page\",\n posts: \"Posts\",\n discussions: \"Chat\",\n link: \"Link\",\n template: \"Template\",\n },\n versionsDescriptions: {\n content:\n \"New items will show up as a content page with full functionality.\",\n discussion: \"New items will show up as a discussion chat space.\",\n posts:\n \"New items will show up as a simple post with limited functionality\",\n link: \"This option allows you to submit a link to any space on Sutra which will then show up as an item here.\",\n template:\n \"Create a template space that will be duplicated each time a new item is created here.\",\n },\n createNewTemplate: \"Create new template\",\n editTemplate: \"Edit template\",\n title: \"SETTINGS\",\n accordion1: {\n label: \"Display as\",\n description: \"Display posts in a list or grid view\",\n listOption: \"List\",\n gridOption: \"Grid\",\n dateCreated: \"Date created\",\n dateCreatedReversed: \"Reverse date created\",\n lastActive: \"Last active\",\n lastEdited: \"Last edited\",\n alphabetic: \"Alphabetic\",\n reverseAlphabetic: \"Reverse alphabetic\",\n },\n accordion2: {\n label: \"Display options\",\n description: \"\",\n switches: {\n onlyManagers: \"Only managers can create a post\",\n showAuthor: \"Show author information\",\n showPreview: \"Show preview text\",\n showComments: \"Show comments count\",\n showMembers: \"Show member avatars\",\n showTimestamp: \"Show post creation timestamp\",\n showThumbnail: \"Show thumbnail\",\n autoThumbnail: \"Auto create thumbnail\",\n },\n },\n accordion3: {\n label: \"New post format\",\n description: \"Select format for new posts in this space\",\n templateName: {\n label: \"Name your template\",\n placeholder: \"Template name\",\n },\n templateDirectOption: \"Direct subspace\",\n templateLinkedOption: \"Linked space\",\n privacyDescription:\n \"Select the default privacy level for new posts\",\n privacyOpenOption: \"Open\",\n privacyPrivateOption: \"Private\",\n privacyAnyOption: \"Creator's choice\",\n },\n accordion4: {\n label: \"Button label\",\n createPost: {\n label: \"Create post\",\n description:\n \"Specify the text that shows up on the new post button\",\n },\n },\n accordion5: {\n label: \"Tags\",\n },\n templateDescription:\n \"New template spaces can either be direct subspaces of this space or they can be linked spaces. Linked spaces are independent top level spaces that will show up on this page. The creator of the space will become a full manager of the space that they create.\",\n },\n thumbnail: {\n title: \"ADD THUMBNAIL\",\n message: \"Thumbnail image is being uploaded...\",\n },\n static: {\n broadcastExclude: {\n unsubscribe: {\n part1: \"Are you sure you want to unsubscribe from\",\n part2:\n \"You will no longer receive any direct broadcast emails from the managers of this space\",\n button: \"Unsubscribe\",\n },\n subscribe: {\n part1:\n \"You have been unsubscribed and you will no longer receive broadcast emails from\",\n button: \"Subscribe\",\n },\n },\n invitation: {\n message: \"You have being invited to this space\",\n button: \"Accept invitation\",\n },\n pending: {\n message: \"Your membership is pending\",\n },\n private: {\n message: {\n part1: \"This is a private space.\",\n part2: \"If you're a member, please log in.\",\n },\n button: \"Log in\",\n },\n processing: {\n message: \"This space is still processing...\",\n },\n },\n gridPost: {\n onDelete: {\n alertTitle: \"Are you sure?\",\n alertMessage: \"This space will no longer be linked to here.\",\n alertMessage2: \"This space will no longer be linked to here.\",\n confirm: \"Yes\",\n deny: \"No\",\n },\n actions: {\n pin: \"Pin to top\",\n unpin: \"Unpin\",\n addThumbnail: \"Add thumbnail\",\n removeThumbnail: \"Remove thumbnail\",\n duplicate: \"Duplicate\",\n unlink: \"Unlink\",\n delete: \"Delete\",\n },\n },\n listContent: {\n publishTootip: \"Will publish on this date\",\n privateTooltip: \"This is a private space\",\n },\n },\n colors: {\n form: {\n colorTheme: \"Color theme\",\n customize: \"Customize color selection\",\n saveTheme: \"Save theme\",\n resetColor: \"Reset color\",\n pageLayout: \"Page layout\",\n pageFormat: \"Page format\",\n },\n headerAndLogo: {\n addCover: \"Add cover\",\n removeCover: \"Remove cover\",\n changeLogo: \"Change logo\",\n removeLogo: \"Remove logo\",\n dimensions:\n \"The recommended dimension for cover images is 1200 x 300 pixels\",\n dimensions2:\n \"The recommended dimension for logos is 360 x 120 pixels\",\n },\n pageFormat: {\n description:\n \"You can change the way that content in this space is presented by selecting an option below.\",\n contentLabel: \"Content\",\n discussionLabel: \"Chat\",\n contentDescription:\n \"A space for learning modules, general content, or community resources.\",\n discussionDescription:\n \"A space for discussion or announcements\",\n eventsLabel: \"Calendar\",\n eventsDescription: \"Create a calendar list of events\",\n listLabel: \"Forum\",\n listDescription:\n \"Create a feed where people can post discussion topics\",\n showcaseLabel: \"Showcase\",\n showcaseDescription:\n \"Create a gallery of spaces\",\n },\n pageLayout: {\n widePage: \"Wide page width\",\n hideSidebar: \"Hide sidebar\",\n hideHeader: \"Hide header\",\n hideCoverImage: \"Hide cover image\",\n hidePageTitle: \"Hide page title\",\n hideBreadcrumbs: \"Hide breadcrumbs\",\n },\n header_color: {\n label: \"Header color\",\n description: \"Description\",\n },\n header_link_color: {\n label: \"Header logo and text color\",\n description: \"Description\",\n },\n primary_button_background_color: {\n label: \"Primary button background color\",\n description: \"Description\",\n },\n primary_button_text_color: {\n label: \"Primary button text color\",\n description: \"Description\",\n },\n secondary_button_background_color: {\n label: \"Secondary button background color\",\n description: \"Description\",\n },\n secondary_button_text_color: {\n label: \"Secondary button text color\",\n description: \"Description\",\n },\n background_color: {\n label: \"Background color\",\n description: \"Description\",\n },\n default_text_color: {\n label: \"Default text color\",\n description: \"Description\",\n },\n sidebar_background_color: {\n label: \"Sidebar background color\",\n description: \"Description\",\n },\n sidebar_text_color: {\n label: \"Sidebar text color\",\n description: \"Description\",\n },\n default_link_color: {\n label: \"Default link color\",\n description: \"Description\",\n },\n default_badge_color: {\n label: \"Notification badge color\",\n description: \"Description\",\n },\n default_badge_text_color: {\n label: \"Notification badge text color\",\n description: \"Description\",\n },\n registration_page_background_color: {\n label: \"Registration page background color\",\n description: \"Description\",\n },\n registration_page_default_text_color: {\n label: \"Registration page text color\",\n description: \"Description\",\n },\n },\n create: {\n invalidNameErrorMsg:\n \"Space name must be between 3 and 100 characters long\",\n invalidName2ErrorMsg:\n \"Title must be between 3 and 100 characters long\",\n },\n dummy: {\n magicLink: {\n alertTitle: \"You're almost in...\",\n alertMessage:\n \"We sent the magic link to your email. THIS IS A TEST NO ACTUAL EMAIL SENT.\",\n },\n },\n pending: {\n message: \"Your membership is pending\",\n },\n recover: {\n alertTitle: \"You're almost in...\",\n alertMessage:\n \"We just sent you an email with instructions to recover you password. THIS IS A TEST NO ACTUAL EMAIL SENT.\",\n },\n form: {\n calendarLinks: {\n text: \"Information added below will be passed to the member's calendar when they add the event.\",\n link: {\n label: \"Event URL (Zoom link, etc)\",\n placeholder: \"What's the link of your video call\",\n },\n description: {\n label:\n \"Add a description for your event that will show up in the calendar information\",\n placeholder: \"Calendar description\",\n },\n eventStartDateAndTime: \"Event start date and time\",\n date: {\n placeholder: \"Pick date\",\n },\n eventDateTime: \"Event end date and time (optional)\",\n allowInterests:\n \"Allow people to join event without registering for Sutra\",\n automatedEmails: \"Set up automated emails\",\n save: \"Save details\",\n },\n duplicate: {\n prefix: \"Copy of\",\n intention: {\n label: \"Space name\",\n placeholder: \"What's your space called?\",\n },\n copyMembers: {\n label: \"Copy members\",\n },\n copyManagers: {\n label: \"Copy managers\",\n },\n copyContent: {\n label: \"Copy content\",\n },\n copyPosts: {\n label: \"Copy posts\",\n },\n copyBroadcasts: {\n label: \"Copy broadcasts\",\n },\n copyAutomation: {\n label: \"Copy automations\",\n },\n copyRegPage: {\n label: \"Copy registration page\",\n },\n save: \"Duplicate space\",\n saveTemplate: \"Create template\",\n },\n form: {\n privacyDescription1:\n \"The space you create will be accessible to everyone within\",\n rootPrivacyDescription1:\n \"The space you create will be accessible by anyone who has a link to it. You can set payment options once you create the space.\",\n privacyDescription2:\n \"The space you create will only be visible to people who are added to it.\",\n rootPrivacyDescription2:\n \"The space you create will only be visible to people who are invited to it. You can set payment options once you create the space.\",\n placeholderDescription: \"Description\",\n versions: {\n content: {\n label: \"Content\",\n description:\n \"Create a space for a learning module, general content, or community resources.\",\n },\n discussion: {\n label: \"Chat\",\n description:\n \"Create a chat space for discussion or announcements\",\n },\n event: {\n label: \"Event\",\n description: \"Create a single event\",\n },\n events: {\n label: \"Calendar\",\n description: \"Create a calendar list of events\",\n },\n list: {\n label: \"Forum\",\n description:\n \"Create a feed where people can post discussion topics\",\n },\n showcase: {\n label: \"Showcase\",\n description:\n \"Create a gallery of spaces\",\n },\n },\n segments: {\n space: {\n label: \"Space\",\n description:\n \"Whether you’re creating a course or a community, everything in Sutra starts with a space. This will be the home for your experience.\",\n },\n event: {\n label: \"Event\",\n description:\n \"Create a simple event page. Choose this option if you just want to organize a one-off event that you can publically share.\",\n },\n discussion: {\n label: \"Chat\",\n description:\n \"Create a simple chat space for your group. Choose this option if you just want to create a one-off discussion space for a group of people.\",\n },\n },\n intention: {\n label: \"Space name\",\n placeholder: \"What's your space called?\",\n },\n abstract: {\n label: \"Preview text\",\n placeholder: \"What's your space description?\",\n },\n content: {\n label: \"Space name\",\n description: \"Write something...\",\n placeholder: \"Write something...\",\n },\n spaceFormat: {\n label: \"Space format\",\n placeholder: \"Pick one\",\n },\n eventDescription:\n \"Information added below will be passed to the member's calendar when they add the event.\",\n hangoutLink: {\n label: \"Event URL (Zoom link, etc)\",\n placeholder: \"What's the link of your video call\",\n },\n eventStartTime: \"Event start date and time\",\n date: {\n placeholder: \"Pick date\",\n },\n eventEndDate: \"Event end date and time (optional)\",\n privacyLevelText: \"Privacy level\",\n privacy: {\n open: \"Open\",\n private: \"Private\",\n },\n joinAsMember: {\n label: \"Join this space as a member\",\n },\n publishDate: {\n label: \"Publish on date\",\n },\n publishDateTime: \"Publish date and time\",\n create: \"Create space\",\n },\n interestedForm: {\n title: \"Register for this event\",\n createAlertTitle: \"Thank you for registering!\",\n createAlertButton: \"Ok\",\n name: {\n label: \"First name\",\n placeholder: \"Write your first name\",\n },\n email: {\n label: \"Email\",\n placeholder: \"Write your email\",\n },\n register: \"Register\",\n joinWithSutra: \"Join with my Sutra Account\",\n },\n linkForm: {\n linkErrMessage: \"This is not a valid space link\",\n link: {\n label: \"\",\n placeholder: \"Link to space\",\n errors: {\n space:\n \"The space you want to share is private or does not exist!\",\n event:\n \"The space you want to share is private, is not an event or does not exist!\",\n },\n },\n },\n listForm: {\n intention: {\n placeholder: \"Title\",\n },\n },\n },\n header: {\n onLeave: {\n title: \"Are you sure?\",\n message:\n \"You will be removed as a member of this space and may need to be added again to restore access.\",\n confirm: \"Yes, please remove me\",\n deny: \"No\",\n },\n onArchive: {\n title: \"Are you sure?\",\n message:\n \"This space will be archived and members will no longer have access.\",\n confirm: \"Yes\",\n deny: \"No\",\n },\n onUnarchive: {\n title: \"Are you sure?\",\n message:\n \"This space will be unarchived and members will have access again.\",\n confirm: \"Yes\",\n deny: \"No\",\n },\n onDelete: {\n title: \"Are you sure?\",\n message:\n \"This space will be deleted and members will no longer have access.\",\n confirm: \"Yes\",\n deny: \"No\",\n },\n onFix: {\n title: \"Are you sure?\",\n message:\n \"Sutra will try to recreate this content space from the legacy data.\",\n confirm: \"Yes, fix\",\n deny: \"No\",\n confirmationTitle: \"Information\",\n confirmationMessage: \"Space fixed, reloading...\",\n confirmationError: \"This space cannot be fixed\",\n },\n buttons: {\n uncomplete: \"Completed\",\n markComplete: \"Mark complete\",\n edit: \"Edit\",\n post: \"post\",\n page: \"page\",\n space: \"space\",\n returnTo: \"Return to\",\n editTitle: \"Edit title\",\n viewPage: \"View space\",\n editDescription: \"Edit description\",\n appearance: \"Branding\",\n manage: \"Manage\",\n members: \"Members\",\n leave: \"Leave space\",\n delete: \"Delete space\",\n deletePost: \"Delete\",\n duplicate: \"Duplicate space\",\n template: \"Save as template\",\n archive: \"Archive space\",\n unarchive: \"Unarchive space\",\n fix: \"Fix\",\n joinEvent: \"Register\",\n joinSpace: \"Join space\",\n preview: \"Preview\",\n draft: \"Draft\",\n published: \"Published\",\n publish: \"Publish\",\n returnToSettings: \"Return to settings\",\n returnToSpace: \"Return to space\",\n undo: \"Undo\",\n openFullScreen: \"Open full screen\",\n copyToClipboard: \"Copy link\",\n copiedMessage: \"Space link copied to clipboard\",\n versionHistory: \"Version history\",\n brandingOptions: \"BRANDING OPTIONS\",\n },\n regPagePublishing:\n \"Your registration page is publishing, please wait...\",\n spaceUpdating: \"This space is being updated, please wait...\",\n },\n members: {\n sectionTitle: \"Members\",\n manage: \"Manage members\",\n invite: \"Invite\",\n search: {\n button: \"Search\",\n placeholder: \"Search for\",\n },\n emptyMessage: \"No records found\",\n messageButton: \"Message\",\n emailButton: \"Email\",\n copyClipboard: \"copy to clipboard\",\n },\n payment: {\n onCheckIntent: {\n alertTitle: \"Payment error\",\n alertMessage:\n \"Your session has expired. Please refresh the page to complete your payment.\",\n },\n onConfirmPayment: {\n alertTitle: \"Opps, something went wrong!\",\n alertMessage: \"something went wrong!\",\n },\n completePayment: \"Complete payment\",\n join: \"Join space\",\n },\n stripe: {\n pay: \"Pay\",\n },\n },\n survey: {\n form: {\n text: \"Your responses:\",\n submitButton: \"Submit\",\n },\n question: {\n yourAnswer: \"Your answer\",\n },\n },\n tiptap: {\n blocks: {\n section1: \"Basic\",\n text: \"Text\",\n headline1: \"Headline 1\",\n headline2: \"Headline 2\",\n headline3: \"Headline 3\",\n divider: \"Divider\",\n infobox: \"Info box\",\n infobox: \"Info box\",\n section2: \"Spaces\",\n content: \"Content space\",\n discussion: \"Chat space\",\n event: \"Event space\",\n events: \"Calendar\",\n list: \"Forum space\",\n showcase: \"Showcase space\",\n section3: \"List\",\n section8: \"Special\",\n bulletList: \"Bullet list\",\n orderedList: \"Ordered list\",\n checklist: \"Checklist\",\n collapsableSection: \"Collapsable section\",\n survey: \"Survey or quiz\",\n section4: \"Media\",\n image: \"Image\",\n embed: \"Embed code\",\n video: \"Video\",\n audio: \"Audio\",\n file: \"File\",\n zoom: \"Zoom recording\",\n section5: \"Grids\",\n grid1: \"1 column\",\n grid2: \"2 columns\",\n grid3: \"3 columns\",\n grid4: \"Left column\",\n grid5: \"Right column\",\n grid6: \"4 columns\",\n section6: \"Buttons\",\n interestForm: \"Interest form\",\n actionButton: \"Action button\",\n bundleButton: \"Bundle button\",\n markComplete: \"Mark complete\",\n section7: \"Interactive\",\n interactiveButton: \"Continue button\",\n interactiveInput: \"Discussion prompt\",\n interactiveWait: \"Wait condition\",\n },\n nameToBlocks: {\n circle: \"space\",\n grid1: \"grid\",\n grid2: \"grid\",\n grid3: \"grid\",\n grid4: \"grid\",\n column: \"column\",\n resource: \"collapsable section\",\n survey: \"survey\",\n interactiveInput: \"discussion prompt\",\n tagsFeed: \"tag feed\",\n infobox: \"info box\",\n },\n components: {\n sidebar: {\n alignment: {\n left: \"Left\",\n center: \"Center\",\n right: \"Right\",\n },\n backgroundColor: {\n text: \"Select background color\",\n clearColor: \"Clear color\",\n },\n backgroundImage: {\n button: \"Select image\",\n removeButton: \"Remove image\",\n label: \"Position\",\n placeholder: \"Pick one\",\n leftTop: \"left top\",\n leftCenter: \"left center\",\n leftBottom: \"left bottom\",\n rightTop: \"right top\",\n rightCenter: \"right center\",\n rightBottom: \"right bottom\",\n centerTop: \"right top\",\n centerCenter: \"center center\",\n centerBottom: \"center bottom\",\n label2: \"Repeat\",\n placeholder2: \"Pick one\",\n noRepeat: \"No Repeat\",\n repeat: \"Repeat\",\n \"repeat-x\": \"Repeat X\",\n \"repeat-y\": \"Repeat Y\",\n space: \"Space\",\n round: \"Round\",\n },\n blockId: {\n placeholder: \"Block ID\",\n label: \"Block ID\",\n description:\n \"Recommended IDs for AI briefDescription, aboutWorkshop, whatYouWillLearn1, whatYouWillLearn2, whatYouWillLearn3, whoThisIsFor, aboutUs, quote\",\n },\n buttonAction: {\n label: \"Completion action\",\n description:\n \"Specify what happens after a person submits their information through the selected form.\",\n placeholder: \"Pick one\",\n label2: \"Link to\",\n placeholder2: \"Pick one\",\n label3: \"Button action\",\n description3:\n \"Specify if the link will open on current browser tab or another tab.\",\n placeholder3: \"Pick one\",\n callBackComplete: \"Completion action text\",\n callbacklinkTo: \"Link to\",\n completeDescription:\n \"Add a short confirmation message that people will see after submitting their information.\",\n linkDescription:\n \"The person will be redirected to this link after clicking the button.\",\n label4: \"Link to space section\",\n description4: \"Specify if the link will open in the current browser tab or another tab or if the link will jump to a section on this page.\",\n selectSection: \"Select section\",\n description5: \"This option allows you to jump to a specific section on this page when the link is clicked.\",\n description6: \"To select the section, click on the button below and then click on the section you would like to link to.\",\n label5: \"Section is linked!\",\n label6: \"Link url\",\n description7: \"Specify the URL link the user will be taken to\",\n label7: \"Opens in current tab\",\n label8: \"Opens other tab\",\n label9: \"Do nothing\",\n label10: \"Redirect the user to\",\n label11: \"Select an option\",\n label12: \"Another space\",\n label13: \"Custom link\",\n label14: \"Click a section on the page\",\n },\n buttonBackgroundColor: {\n button: \"Clear color\",\n },\n buttonText: {\n placeholder: \"Button text\",\n label: \"Button text\",\n },\n fileName: {\n placeholder: \"File name\",\n label: \"File name\",\n },\n interactiveWaitTime: {\n label1: \"Select an option\",\n label2: \"Wait until a date\",\n label3: \"Wait number of days\",\n label4: \"Date to show content\",\n placeholder: \"Date to show content\",\n label5: \"1 day\",\n label6: \"2 days\",\n label7: \"3 days\",\n label8: \"4 days\",\n label9: \"5 days\",\n label10: \"6 days\",\n label11: \"1 week\",\n label12: \"2 weeks\",\n label13: \"1 month\",\n },\n linkAction: {\n label: \"Link action\",\n description:\n \"Specify if the link will open in current tab or in a new tab.\",\n placeholder: \"Pick one\",\n label2: \"Open in current tab\",\n label3: \"Open in new tab\",\n },\n margin: {\n topMargin: \"Top margin -\",\n text: \"Bottom margin - \",\n bottom: \"Bottom\",\n left: \"Left\",\n leftMargin: \"Left margin -\",\n right: \"Right\",\n rightMargin: \"Right margin\",\n },\n padding: {\n top: \"Top\",\n topPadding: \"Top padding -\",\n bottom: \"Bottom\",\n bottomPadding: \"Bottom padding - \",\n left: \"Left\",\n leftPadding: \"Left padding\",\n right: \"Right\",\n rightPadding: \"Right padding\",\n },\n radius: {\n square: \"Square\",\n round: \"Round\",\n circle: \"Circle\",\n },\n spaceAttrs: {\n addCover: \"Add Cover\",\n text: \"The recommended dimension for cover images is 1200 x 300 pixels\",\n addCover2: \"Add Cover\",\n text2:\n \"The recommended dimension for cover images is 1200 x 300 pixels\",\n removeCover: \"Remove cover\",\n },\n verticalAllignment: {\n top: \"Top\",\n center: \"Center\",\n bottom: \"Bottom\",\n },\n width: {\n full: \"Full\",\n size: \"3/4\",\n size2: \"1/2\",\n actual: \"Actual\",\n },\n },\n blockMenuActions: {\n label1: \"Add block\",\n label2: \"Add emoji\",\n label3: \"Settings\",\n label4: \"Delete\",\n label5: \"Move\",\n label6: \"Go to space or double click the block\",\n label7: \"Replace\",\n label8: \"Alignment\",\n left: \"Left\",\n center: \"Center\",\n right: \"Right\",\n write: \"Write something...\",\n label9: \"Add block\",\n label10: \"Heading 1\",\n h1: \"H1\",\n label11: \"Heading 2\",\n h2: \"H2\",\n label12: \"Add space\",\n label13: \"Add image\",\n label14: \"Add video\",\n label15: \"Add grid\",\n label16: \"Add template\",\n label17: \"Add layout\",\n label18: \"Duplicate\",\n },\n blocksMenu: {\n basicBlock: \"Basic Blocks\",\n mediaBlock: \"Media blocks\",\n contentBlock: \"Content blocks\",\n },\n blocksMenuInline: {\n file: \"File\",\n image: \"Image\",\n video: \"Video\",\n label1: \"Add emoji\",\n label2: \"Add image\",\n label3: \"Toggle formatbar\",\n },\n blocksMenuSimple: {\n label1: \"Add\",\n file: \"File\",\n image: \"Image\",\n video: \"Video\",\n audio: \"Audio\",\n label2: \"Add emoji\",\n label3: \"Add image\",\n label4: \"Show formatting\",\n cancelButton: \"Cancel\",\n },\n emptyMessage: {\n text: \"This is an empty content space. You can\",\n button1: \"edit this page\",\n text2: \"or\",\n button2: \"use a template\",\n text3: \"to get started.\",\n text4: \"An empty space filled with potential...\",\n },\n fixedBottomMenu: {\n label1: \"Add elements like headlines, images and video\",\n addBlock: \"Add block\",\n label2: \"Add a content, forum, chat, or event space\",\n space: \"Space\",\n label3: \"Add a grid to use multiple columns for content\",\n grid: \"Grid\",\n label4: \"Add a pre-created design option\",\n layouts: \"Layouts\",\n label5: \"Add a template to automatically set up your space\",\n template: \"Templates \",\n },\n formatMenu: {\n text: \"Text\",\n smallText: \"Small text\",\n largeText: \"Large text\",\n heading1: \"Heading 1\",\n heading2: \"Heading 2\",\n heading3: \"Heading 3\",\n bulletedList: \"Bulleted list\",\n orderedList: \"Ordered list\",\n text2: \"Text\",\n label1: \"Formatting\",\n text3: \"Text\",\n numberedList: \"Numbered list\",\n label2: \"Alignment\",\n left: \"Left\",\n center: \"Center\",\n right: \"Right\",\n label3: \"Link action\",\n description:\n \"Specify if the link will open on current browser tab or another tab.\",\n placeholder: \"Pick one\",\n label4: \"Opens in current tab\",\n label5: \"Opens other tab\",\n label6: \"Link format\",\n description2:\n \"Specify if the link will be shown as text or as a fancy link.\",\n placeholder2: \"Pick one\",\n label7: \"Display as text\",\n label8: \"Display as Fancy link\",\n save: \"Save\",\n delete: \"Delete\",\n label9: \"Strikethrough\",\n label10: \"Underline\",\n label11: \"Code block\",\n label12: \"Text color\",\n placeholder3: \"HEX value\",\n unsetColor: \"Unset color\",\n label13: \"Highlight color\",\n label14: \"Link to space section\",\n description3: \"Specify if the link will open in the current browser tab or another tab or if the link will jump to a section on this page.\",\n selectSection: \"Select section\",\n description4: \"This option allows you to jump to a specific section on this page when the link is clicked.\",\n description5: \"To select the section, click on the button below and then click on the section you would like to link to.\",\n label15: \"Section is linked!\",\n label16: \"Link url\",\n description6: \"Specify the URL link the user will be taken to\",\n },\n formatMenuSimple: {\n t: \"T\",\n h1: \"H1\",\n h2: \"H2\",\n h3: \"H3\",\n label1: \"Link action\",\n description1:\n \"Specify if the link will open on current browser tab or another tab.\",\n placeholder1: \"Pick one\",\n label2: \"Opens in current tab\",\n label3: \"Opens other tab\",\n label4: \"Link format\",\n description2:\n \"Specify if the link will be shown as text or as a fancy link.\",\n placeholder2: \"Pick one\",\n label5: \"Display as text\",\n label6: \"Display as Fancy link\",\n save: \"Save\",\n delete: \"Delete\",\n label7: \"Formatting\",\n left: \"Left\",\n center: \"Center\",\n right: \"Right\",\n placeholder3: \"HEX value\",\n placeholder4: \"Color Hex\",\n unsetColor: \"Unset color\",\n },\n inlineMenu: {\n h1: \"H1\",\n h2: \"H2\",\n bulletList: \"Bullet list\",\n checkList: \"Check List\",\n circle: \"Circle\",\n moreOption: \"More options\",\n },\n interactiveInput: {\n hideResponses: \"Show all responses\",\n showResponses: \"Show my responses\",\n hideResponses2: \"Hide responses\",\n hidePrivateMessages: \"Hide private messages\",\n showPrivateMessages: \"Show private messages\",\n showResponses2: \"Show responses\",\n hideResponses2: \"Hide responses\",\n loadMoreResponse: \"Load more responses\",\n placeholder: \"Write something...\",\n text: \"Do you want this response to be visible to other participants?\",\n },\n newMedia: {\n add: \"Add\",\n },\n regPageColor: {\n clearColor: \"Clear color\",\n },\n regPageColors: {\n text: \"Registration page appearance\",\n applyAppearance: \"Apply Appearance\",\n title1: \"Select background color\",\n title2: \"Select text color\",\n label1: \"Background color\",\n label2: \"Default text color\",\n label3: \"Wide page width\",\n },\n resource: {\n areYouSure: \"Are you sure?\",\n label1: \"Will publish on this date\",\n edit: \"Edit\",\n addPage: \"Add Page\",\n },\n sideBlocksMenuBak: {\n addBlock: \"Add block\",\n back: \"Back\",\n },\n sideBlocksMenu: {\n text: \"Layouts are pre-created design options that you can add to your space.\",\n text2:\n \"Get started with a selection of customizable full page templates\",\n layout: \"Layouts\",\n template: \"Templates\",\n addBlock: \"ADD BLOCK\",\n block: \"Blocks\",\n },\n sideConfigurationsMenu: {\n title: \"BLOCK SETTINGS\",\n label1: \"Space name and cover\",\n label2: \"File attributes\",\n label3: \"Discussion prompt options\",\n attrPlaceholder1: \"Write something...\",\n attrLabel: \"Placeholder\",\n attrLabel2: \"Allow participant to see all responses\",\n attrLabel3: \"Show responses before participant responds\",\n attrLabel4:\n \"Allow participant to choose if their response is visible to others\",\n attrLabel5: \"Allow multiple responses per person\",\n attrLabel6: \"Allow participant to skip this prompt\",\n attrLabel7: \"Notify managers on each new post\",\n label4: \"Discussion prompt options\",\n label5: \"Padding\",\n label6: \"BLOCK\",\n label7: \"COLUMN\",\n label8: \"Margin\",\n label9: \"GRID\",\n label10: \"Vertical alignment\",\n label11: \"Button options\",\n label12: \"Button background color\",\n label13: \"Button text color\",\n text: \"Button corners\",\n label14: \"Background\",\n label15: \"Color\",\n label16: \"Image\",\n label17: \"Reset\",\n resetBlock: \"Reset block\",\n label18: \"Alignment\",\n label19: \"Border radius\",\n label20: \"corners\",\n label21: \"Block name\",\n label22: \"Email notification options\",\n label23: \"Send notification email\",\n attrLabel8: \"Include custom message\",\n attrLabel9: \"Include next section content\",\n attrLabel10: \"Include full content\",\n attrLabel11: \"Short preview\",\n attrLabel12: \"Subject\",\n attrLabel13: \"Message\",\n defaultWaitLabel: \"The next section has been released in {{space_name}}\",\n defaultWaitMessage: \"Hi {{first_name}} - just wanted to let you know that the next section in {{space_name}} has been released. {{space_link_button}}\"\n },\n takeSurvey: {\n text: \"This survey is empty\",\n },\n tiptapAi: {\n placeholder: \"Write a short description\",\n label:\n \"Please write 2 or 3 sentences describing your offering.\",\n placeholder2: \"ex. coaches, consultants, and healers\",\n label2: \"Who is this offering for?\",\n text: \"Hey there, we're experimenting with a new AI feature. Do you want Sutra to automatically generate language for your template using AI?\",\n },\n uploader: {\n label1: \"Link\",\n label2: \"Code\",\n placeholder: \"Paste the image or file link\",\n label3: \"Embed link\",\n placeholder2: \"Paste the embed code -> \",\n label4: \"Embed code\",\n saveEmbed: \"Save embed\",\n placeholder3: \"Search images\",\n saveImage: \"Save image\",\n },\n viewPage: {\n text: \"This page is empty\",\n },\n },\n },\n users: {\n payment: {\n completePayment: \"Complete payment\",\n join: \"Join space\",\n pay: \"Pay\",\n },\n stepper: {\n step1: \"Step 1\",\n step1Description: \"Log in\",\n step2: \"Step 2\",\n step2Description: \"Complete payment\",\n step3: \"Step 3\",\n step3Description: \"Get access\",\n },\n start: {\n title: \"Welcome\",\n subtitle: \"Please enter your email address below\",\n email: \"Email\",\n submit: \"Continue\",\n invalidEmailErrorMsg: \"Invalid email\",\n },\n signIn: {\n title: \"Log in to your account\",\n subtitle: \"Don't have an account?\",\n subtitleLink: \"Sign up\",\n email: \"Email\",\n password: \"Password\",\n submit: \"Sign in\",\n magicLink: \"Get a magic link\",\n forgotPassword: \"Forgot password?\",\n invalidEmailErrorMsg: \"Invalid email\",\n },\n signUp: {\n invalidEmailErrorMsg: \"Invalid email\",\n invalidPasswordErrorMsg:\n \"Password must be at least 8 characters long\",\n invalidFirstNameErrorMsg:\n \"First name must be at least 3 characters long\",\n title: \"Create a new account\",\n subtitle: \"Already have an account?\",\n subtitleLink: \"Log in\",\n firstName: \"First Name\",\n lastName: \"Last Name\",\n username: \"Username\",\n email: \"Email\",\n password: \"Password\",\n emailNewsletterConfirmation:\n \"Sign up for the Sutra newsletter to hear about free webinars on group process, transformational teaching, and relational business.\",\n submit: \"Sign up\",\n legalPrefix: \"By signing up for Sutra you agree to our\",\n terms: \"Terms of Service\",\n privacy: \"Privacy Policy\",\n },\n spaceReference: {\n total: \"Total today\",\n },\n planReference: {\n total: \"Total\",\n total_today: \"Total today\",\n due_in: \"Due in 14 days\",\n paymentDetails: {\n annual: \"Annual subscription of\",\n month: \"Monthly subscription of\",\n },\n },\n resetPassword: {\n title: \"Reset your password\",\n subtitle:\n \"Please enter a new password for your Sutra account below.\",\n password: \"Password\",\n passwordConfirmation: \"Password confirmation\",\n submit: \"Reset password\",\n },\n recover: {\n title: \"Forgot your password?\",\n subtitle:\n \"Please enter your email address below and we'll send you instructions on how to reset your password.\",\n email: \"Email\",\n submit: \"Send me instructions\",\n footer: \"Already have an account?\",\n footerLink: \"Sign in\",\n },\n magicLink: {\n invalidEmailErrorMsg: \"Invalid email\",\n title: \"Request magic link\",\n subtitle:\n \"Please enter your email address below and we'll send you a link that will automatically log you in.\",\n email: \"Email\",\n submit: \"Continue\",\n footer: \"Log in with email\",\n alertTitle: \"You're almost in...\",\n alertMessage:\n \"We sent the magic link to your email. THIS IS A TEST NO ACTUAL EMAIL SENT.\",\n },\n edit: {\n title: \"Please complete your profile\",\n addProfileImage: \"Add profile image\",\n removeProfileImage: \"Remove profile image\",\n bioPlaceholder: \"Share a little about yourself...\",\n bio: \"Bio\",\n submit: \"Save\",\n skip: \"Skip this and do it later\",\n },\n magicSignin: {\n text: \"Signing in...\",\n },\n profile: {\n button: \"Message\",\n button2: \"Edit Profile\",\n title: \"Spaces\",\n },\n profileModal: {\n profile: \"Profile\",\n message: \"Message\",\n editProfile: \"Edit profile\",\n openProfile: \"Open profile\",\n spaces: \"Spaces\",\n selectImage: \"Select image\",\n },\n signOut: {\n loggedOUt: \"Logged out\",\n title: \"You're logged out\",\n message: \"See you later!\",\n },\n },\n errors: {\n basic: \"Opps, something went wrong!\",\n },\n },\n },\n es: {\n translation: {\n premiumFeatures: {\n personal: {\n description1:\n \"Espacios y miembros ilimitados para organizar el contenido y las conversaciones de todas tus ofertas\",\n description2:\n \"Hermosas páginas de registro y landings para todos tus cursos y eventos en la misma plataforma\",\n description3:\n \"Envía newsletters por correo electrónico a todos tus miembros a través de la potente función de envío masivo\",\n },\n professional: {\n description1: \"Sin comisiones por cobros recibidos\",\n description2:\n \"Opciones para la personalización de marca, de diseño y de subdominios URL.\",\n description3:\n \"Automatizaciones ilimitadas y experiencias de aprendizaje conversacionales interactivas\",\n description4: \"Hasta 2 administradores para todos tus espacios\",\n },\n organization: {\n description1: \"Sin comisiones por pagos recibidos\",\n description2: \"Soporte avanzado al cliente\",\n description3: \"Administradores ilimitados\",\n description4: \"Opción de integración de SSO\",\n },\n },\n premiumMessages: {\n can_auto_tag: {\n title: \"Upgrade to use this feature\",\n message: \"Auto tagging with AI is a premium feature available on the Professional plan.\"\n },\n can_use_zoom_recordings: {\n title: \"Upgrade to use this feature\",\n message: \"Zoom recordings is a premium feature available on the Organization plan.\"\n },\n can_create_quizzes: {\n title: \"Upgrade to use this feature\",\n message: \"Quizzes are a premium feature available on the Organization plan.\"\n },\n can_duplicate_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Duplicating a space is a premium feature available on the Professional plan.\",\n },\n can_save_templates: {\n title: \"Upgrade to use this feature\",\n message:\n \"Saving as space as a reusable template is a premium feature available on the Professional plan.\",\n },\n can_edit_shareable_link: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Compartir enlaces de acceso personalizables es una función premium disponible en el plan Profesional\",\n },\n can_upload_cover: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Subir una imagen de portada personalizada es una función premium disponible en el plan Personal. \",\n },\n can_upload_logo: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Subir un logotipo personalizado es una función premium disponible en el plan Profesional.\",\n },\n can_set_layout: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Personalizar el diseño de tu espacio es una función premium disponible en el plan Profesional.\",\n },\n can_set_theme: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Personalizar el tema de color de tu espacio es una función premium disponible en el plan Profesional.\",\n },\n can_set_format: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Cambiar el formato de tu espacio es una función premium disponible en el plan Profesional.\",\n },\n can_add_step_send_to_pending: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Asignar el estado Pendiente a miembros nuevos es una función premium disponible en el plan Personal.\",\n },\n can_add_step_send_email: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Enviar correos electrónicos automatizados es una función premium disponible en el plan Personal.\",\n },\n can_add_add_to_existing_space: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Añadir automáticamente miembros a espacios seleccionados es una función premium disponible en el plan Profesional.\",\n },\n can_add_step_wait: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Añadir una condición de espera en los pasos adicionales es una función premium disponible en el plan Profesional.\",\n },\n can_add_step_survey_person: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Realizar encuestas a miembros nuevos es una función premium disponible en el plan Profesional.\",\n },\n can_schedule_states: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Las opciones de programación automatizada de tu espacio son una función premium disponible en el plan Profesional.\",\n },\n can_broadcast: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"El envío masivo de correos electrónicos es una función premium disponible en el plan Profesional.\",\n },\n can_survey: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Crear encuestas es una función premium disponible en el plan Profesional.\",\n },\n can_use_interest_form_block: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Añadir formularios de interés es una función premium disponible en el plan Profesional.\",\n },\n can_use_interactive_block: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Añadir bloques interactivos es una función premium disponible en el plan Professional.\",\n },\n can_set_flexible_payments: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Configurar opciones de flexibilidad de pago es una función premium disponible en el plan Profesional.\",\n },\n can_activate_completions: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"La opción de marcar espacios como completados es una función premium disponible en el plan Profesional.\",\n },\n max_allowed_spaces: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"¡Hola! Parece que te has quedado sin espacios gratuitos. Si mejoras tu suscripción al plan Personal tendrás espacios y miembros ilimitados, y podrás crear todo lo que quieras.\",\n },\n max_allowed_ij: {\n title: \"Upgrade to use this feature\",\n message:\n \"You can only add up to 2 discussion prompts per space on the free plan. Please upgrade to the Professional plan to add unlimited discussion prompts to any space.\",\n },\n max_allowed_managers_pro: {\n title: \"Mejora tu plan para agregar administradores adicionales\",\n message:\n \"Mejora tu suscripción al plan Profesional para añadir hasta 2 administradores a tu espacio, o al plan Organización para obtener administradores ilimitados.\",\n },\n max_allowed_managers_org: {\n title: \"Mejora tu plan para agregar administradores adicionales\",\n message:\n \"Mejora tu suscripción al plan Organización para añadir administradores ilimitados a tu espacio.\",\n },\n can_see_participation_tab: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Las métricas de participación son una función premium disponible en el plan Profesional.\",\n },\n can_send_selective_broadcast: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"El envío masivo selectivo es una función premium disponible en el plan Organización.\",\n },\n can_send_message_broadcast: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"El envío masivo por mensaje es una función premium disponible en el plan Organización.\",\n },\n can_schedule_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Scheduling broadcasts is a premium feature available on the Silver plan.\",\n },\n can_add_from_children: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Añadir automáticamente cualquier miembro desde subespacios es una función premium disponible en el plan Profesional.\",\n },\n can_add_to_direct_open_children: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"Añadir automáticamente miembros nuevos a todos los subespacios directos abiertos es una función premium disponible en el plan Profesional.\",\n },\n can_send_message: {\n title: \"Mejora tu plan para utilizar esta función\",\n message:\n \"El envío automático de mensajes directos a miembros nuevos es una función premium disponible en el plan Profesional.\",\n },\n can_create_registration_page: {\n title: \"Upgrade to use this feature\",\n message: \"Creating custom registration and landing pages is a premium feature available on the Bronze plan.\"\n },\n can_create_coupon: {\n title: \"Upgrade to use this feature\",\n message: \"Creating coupon codes is a premium feature available on the Silver plan.\"\n },\n\n can_create_bundles: {\n title: \"Upgrade to use this feature\",\n message: \"Creating bundles is a premium feature available on the Silver plan.\"\n },\n },\n home: {\n sidebar: {\n createButton: \"Nuevo espacio\",\n spaces: \"Tus espacios\",\n invitations: \"Invitaciones\",\n directMessages: \"Mensajes directos\",\n gettingStarted: \"Primeros pasos\",\n scheduleDemo: \"Agendar una demostración\",\n upgrade: \"Mejora tu plan\",\n promoBoxTitle:\n \"Únete a los centenares de creadores que ya están aprovechando todas las funciones avanzadas de Sutra para brindar experiencias grupales impactantes online.\",\n promoBoxItem1: \"Espacios ilimitados\",\n promoBoxItem2: \"Personalización completa de marca\",\n promoBoxItem3: \"Administradores adicionales\",\n promoBoxButton: \"Mejora el plan ahora\",\n },\n spacesList: {\n yourSpaces: \"Tus espacios\",\n directMessagesTitle: \"Mensajes directos\",\n invitationsTitle: \"Invitaciones\",\n topTitle: \"Espacios superiores\",\n managedTitle: \"Espacios administrados\",\n allTitle: \"Todos los espacios\",\n archivedTitle: \"Espacios archivados\",\n deletedTitle: \"Espacios eliminados\",\n pendingTitle: \"Espacios programados\",\n directMessages: \"Directos\",\n top: \"Superiores\",\n managed: \"Administrados\",\n all: \"Todos\",\n archived: \"Archivados\",\n invitations: \"Invitaciones\",\n deleted: \"Eliminados\",\n pending: \"Programados\",\n empty: \"No tienes ninguno\",\n tabTitle: \"Sutra - Panel de control\",\n learn: \"Aprende lo básico\",\n createFirst: \"Crea tu primer espacio\",\n },\n },\n app: {\n payment: {\n payment: {\n tabTitle: \"Sutra - Formulario de pago\",\n title: \"Completa el pago\",\n },\n planOption: {\n frequencyDescription1: \"por mes\",\n frequencyDescription2: \"por mes con suscripción anual\",\n currentPlan: \"Plan actual\",\n billedMonthly: \"Suscripción mensual\",\n billedAnnually: \"Suscripción anual\",\n },\n stripeForm: {\n due_in_trial: \"Vence en 14 días\",\n pay: \"Pagar\",\n },\n },\n gettingStarted: {\n items: {\n setup: \"Configuración de tu espacio de programa\",\n privacy: \"Configuraciones de privacidad y pago\",\n registration: \"Creación de una página de registro\",\n invitations: \"Invitar a los miembros\",\n settings: \"Cómo funcionan las configuraciones del espacio\",\n interactive: \"Recorridos interactivos\",\n interest: \"Formularios de interés\",\n appearance: \"Diseño y temas de color\",\n grids: \"Configuraciones de cuadrícula y bloque\",\n broadcasts: \"Envío de correos electrónicos masivos\",\n tagging: \"Etiquetas\",\n emojis: \"Emojis de la barra lateral\",\n },\n templates: {\n groupprogram: {\n label: \"Programa grupal\",\n description:\n \"Un espacio de programa donde puedes organizar todo lo que necesitas para un grupo de personas que aprenden juntas.\",\n },\n zoomworkshop: {\n label: \"Taller Zoom\",\n description:\n \"Organiza todo lo que necesitas para un taller sencillo hecho por Zoom.\",\n },\n mastermind: {\n label: \"Mastermind\",\n description:\n \"Invita a un grupo de personas a participar juntas en un proceso de mastermind.\",\n },\n selfpacedcourse: {\n label: \"Curso “a tu ritmo”\",\n description:\n \"Una plantilla flexible para crear un curso “a tu ritmo”\",\n },\n communityspace: {\n label: \"Espacio de comunidad\",\n description:\n \"Reúne personas en un vibrante espacio online que crece junto a tu comunidad.\",\n },\n oneononecoaching: {\n label: \"Coaching uno a uno\",\n description:\n \"Crea un espacio dedicado a cada uno de tus clientes de coaching.\",\n },\n },\n loading: {\n text: \"Tu plantilla se está cargando, por favor espera...\",\n },\n tabTitle: \"Sutra - Primeros pasos\",\n mainTitle: \"Guía de primeros pasos\",\n selectTemplate: \"Selecciona esta plantilla\",\n advanceFeatures: \"Funciones avanzadas\",\n welcome: \"Bienvenido/a\",\n description1:\n \"Con Sutra es fácil organizar el contenido y las conversaciones de tus cursos, comunidades, coaching individual y todo lo demás. Aprende lo básico en este video de cinco minutos.\",\n watchVideo: \"Ver el video\",\n createFirstSpace: \"Crea tu primer espacio\",\n gettingStartedGuide: \"Guía de primeros pasos\",\n description2:\n \"Aprende más sobre cómo funciona Sutra y empieza con una lista de pasos para el lanzamiento y una guía más detallada.\",\n checkOutTheGuide: \"Echale un ojo a la guía\",\n startWithATemplate: \"Empieza con una plantilla\",\n description3:\n \"Aprende más sobre cómo funciona Sutra y empieza con una lista de pasos para el lanzamiento y una guía más detallada.\",\n learnAbout: \"Aprende sobre las funciones avanzadas\",\n description4:\n \"Sutra está diseñada para ser una plataforma flexible, poderosa y para adaptarse casi a cualquier caso de uso. Puedes crear experiencias interactivas únicas y atractivas, captar el interés por tus diferentes ofertas, enviar newletter por correo electrónico y cosechar el conocimiento colectivo.\",\n learnmore: \"Descubre más \",\n },\n premium: {\n try: \"Prueba Sutra\",\n include: \"Las funciones incluyen\",\n upgrade: \"Mejora el plan ahora\",\n },\n pricing: {\n tabTitle: \"Sutra - Precios\",\n upgrade: \"Mejora tu plan\",\n text: \"Cualquier cosa que necesites para tu curso o comunidad, estamos aquí para respaldar tu trabajo. Escríbenos a support@sutra.co si tienes alguna pregunta.\",\n },\n scheduleDemo: {\n tabTitle: \"Sutra - Agendar una demostración\",\n },\n welcome: {\n tabTitle: \"Sutra - Bienvenido/a\",\n title: \"¡Bienvenido/a a Sutra!\",\n description1:\n \"Estamos muy contentos de tenerte aquí. Por favor, tómate un momento para ver el siguiente video...\",\n description2:\n \" ¿Te gustaría probar uno de nuestros planes de forma gratuita?\",\n description3:\n \"Elige uno de los planes que ves abajo para empezar tu prueba gratuita de 14 días. Una vez que termine la prueba, se te facturará automáticamente por el plan que has elegido.\",\n yes: \"Sí, por favor, muéstrame las opciones\",\n no: \"No, gracias\",\n },\n },\n layout: {\n userButton: {\n home: \"Inicio\",\n viewProfile: \"Ver perfil\",\n settings: \"Configuraciones\",\n support: \"Soporte\",\n language: \"Idioma\",\n terms: \"Términos y Política de Privacidad\",\n logout: \"Salir\",\n copyright: \"Sutra Espacios, LLC © 2022\",\n },\n directMessages: {\n label: \"Mensajes directos\",\n actionButton: \"Ver todos\",\n empty: \"No tienes ningún mensaje\",\n directMessage: \"Mensajes directos\",\n },\n notifications: {\n label: \"Notificaciones\",\n actionButton: \"Borrar todo\",\n empty: \"No tienes ninguna notificación\",\n notification: \"Notificaciones\",\n },\n headerContent: {\n registrationPage: \"Página de registro\",\n nonManagersHidden: \"Cabecera oculta para todos excepto para los administradores\",\n },\n search: {\n reflection: \"Reflexión\",\n comment: \"Comentario\",\n allSpaces: \"Todos los espacios\",\n withinTop: \"Dentro del espacio superior\",\n withinSpace: \"Dentro de este espacio\",\n everything: \"Todo\",\n titlesOnly: \"Solo títulos\",\n tagsOnly: \"Solo etiquetas\",\n content: \"Contenido\",\n discussion: \"Discusión\",\n events: \"Eventos\",\n users: \"Usuarios\",\n placeholder: \"Busca aquí...\",\n nothingFound: \"No se han encontrado resultados\",\n search: \"Buscar\",\n },\n uploader: {\n pending: \"Pendiente\",\n used: \"Utilizado\",\n uploading: \"Subiendo\",\n finishing: \"Completando\",\n processing: \"Procesando\",\n completed: \"Completado\",\n },\n },\n resources: {\n pages: {\n form: {\n label: \"Título\",\n placeholder: \"¿Cuál es el tema de tu página?\",\n create: \"Crear página\",\n save: \"Guardar página\",\n },\n },\n form: {\n title: {\n label: \"Título\",\n placeholder: \"¿Cuál es tu tema?\",\n },\n publish: {\n label: \"Publicar en una fecha\",\n },\n date: {\n label: \"Seleccionar una fecha\",\n },\n update: \"Actualizar colección de páginas\",\n create: \"Crear colección de páginas\",\n },\n },\n settings: {\n editProfile: {\n tabTitle: \"Sutra - Editar perfil\",\n editProfile: \"Editar perfil\",\n firstName: \"Nombre\",\n lastName: \"Apellido\",\n username: \"Nombre de usuario\",\n email: \"Email\",\n removeProfileImage: \"Eliminar foto de perfil\",\n addProfileImage: \"Añadir foto de perfil\",\n about: \"Sobre mí\",\n location: \"Ubicación\",\n bio: \"Presentación\",\n bioPlaceholder: \"Comparte un poco sobre ti...\",\n updateProfile: \"Actualizar perfil\",\n },\n accountSettings: {\n accountSettings: \"Configuración de la cuenta\",\n changePassword: \"Cambiar contraseña\",\n currentPassword: \"Contraseña actual\",\n newPassword: \"Nueva contraseña\",\n newPasswordConfirmation: \"Confirmar nueva contraseña\",\n updatePassword: \"Actualizar contraseña\",\n advanced: \"Confguraciones avanzadas\",\n deleteAccount: \"Eliminar cuenta\",\n warning: \"Advertencia\",\n deleteAccountWarning:\n \"Eliminar tu cuenta es una acción irreversible. Los datos de tu cuenta se eliminarán permanentemente de nuestro sistema.\",\n closeYourAccount: \"Eliminar la cuenta\",\n invalidCurrentPasswordErrorMsg: \"No se puede dejar vacío\",\n invalidPasswordErrorMsg:\n \"La contraseña debe tener al menos 8 caracteres\",\n invalidPasswordConfirmationErrorMsg:\n \"Las contraseñas no coinciden\",\n deleteAccountAlert: {\n title: \"Importante\",\n message:\n \"Eliminar tu cuenta es irreversible y eliminará permanentemente los detalles de tu cuenta en nuestro sistema.\",\n input:\n \"Por favor, escribe 'elimina mi cuenta' para confirmar esta acción\",\n confirmButton: \"Eliminar permanentemente\",\n cancelButton: \"Cancelar\",\n },\n cancelSubscriptionAlert: {\n title: \"Importante\",\n message: \"Por favor, primero cancela tu suscripción\",\n confirmButton: \"Ir a facturación\",\n cancelButton: \"Hacerlo más tarde\",\n },\n stripeAccount: {\n title: \"Restablecer vinculación con Stripe\",\n alertTitle: \"¿Estás seguro/a?\",\n alertMessage:\n \"Si se restablece la vinculación con Stripe, tus credenciales de Stripe se borrarán de tu cuenta en Sutra y podrás vincular una nueva cuenta de Stripe.\",\n buttonText: \"Restablecer vinculación\",\n confirmButton: \"Sí\",\n cancelButton: \"No\",\n confirmTitle: \"¿Estás seguro/a?\",\n confirmMessage:\n \"Tus credenciales de Stripe se borrarán de tu cuenta en Sutra\",\n },\n },\n emailPreferences: {\n tabTitle: \"Sutra - Preferencias de notificaciones\",\n emailPreferences: \"Preferencias de notificaciones\",\n emailDigestPreferences:\n \"Preferencias de notificaciones por correo electrónico\",\n emailDigestFrequency:\n \"Frecuencia de notificaciones por correo electrónico\",\n emailDigestMessage:\n \"Para modificar las preferencias de notificaciones por espacio, por favor consulta el área de configuración de suscripciones. Puedes darte de baja completamente de un espacio dejándolo o puedes silenciar un espacio específico en el área de configuración de suscripciones.\",\n receiveWeeklyDigest:\n \"Recibir un resumen semanal de nuevos elementos y discusiones etiquetadas\",\n receiveAtMentions:\n \"Recibir una notificación cuando alguien te @mencione\",\n receiveLikes: \"Receive a notification when someone hearts your post\",\n },\n subscriptions: {\n frequencyOptions: \"Opciones de frecuencia\",\n otherActions: \"Otras acciones\",\n subscriptions: \"Preferencias específicas de espacio\",\n searchBySpaceName: \"Buscar el espacio por nombre\",\n search: \"Buscar\",\n clear: \"Borrar\",\n options: \"Opciones\",\n otherActions: \"Otras acciones\",\n emptySubscriptions: \"No tienes suscripciones.\",\n leaveSpaceConfirmationTitle:\n \"¿Estás seguro de que quieres dejar este espacio?\",\n leaveSpaceConfirmationHtml:\n \"Ya no serás miembro de este espacio y es posible que no puedas unirte nuevamente sin solicitarlo al administrador.\",\n leaveSpaceButtonText: \"Sí, abandonar\",\n leaveSpaceDenyButtonText: \"No\",\n leaveSpace: \"Abandonar espacio\",\n unsubscribe: \"Darse de baja\",\n unsubscribed: \"Dado de baja\",\n },\n digestPreferences: {\n digestedLabel: \"Agrupar todas las actualizaciones en un resumen\",\n digestedDescription:\n \"Los nuevos mensajes de todos tus espacios se agruparán en un único resumen por correo electrónico.\",\n undigestedLabel: \"Agrupar actualizaciones por espacio\",\n undigestedDescription:\n \"Recibirás resúmenes separados por correo electrónico para cada espacio que tenga nuevos mensajes.\",\n },\n billing: {\n statuses: {\n pending: \"Pendiente\",\n processing: \"Procesando\",\n paid: \"Pagado\",\n trial: \"Trial\",\n },\n paymentMethod: {\n currentPaymentMethod: \"Método de pago actual\",\n noCurrentPaymentMethod: \"Ningún método de pago guardado\",\n addNewPaymentMethod: \"Añadir nuevo método de pago\",\n },\n stripe: {\n updatePaymentMethod: \"Actualizar método de pago\",\n },\n tabTitle: \"Sutra - Facturación\",\n updatePaymentMethodMayus: \"ACTUALIZAR MÉTODO DE PAGO\",\n payments: \"PAGOS\",\n pdf: \"PDF\",\n noPayments: \"No tienes ningun historial de pagos\",\n billing: \"Facturación\",\n upgradePlan: \"Mejorar plan\",\n changePlan: \"Cambiar de plan\",\n updatePaymentMethod: \"Actualizar método de pago\",\n cancelSubscription: \"Cancelar suscripción\",\n cancelConfirmationTitle:\n \"¿Estás seguro de que quieres cancelar tu suscripción?\",\n cancelConfirmationHtml:\n \"Ya no tendrás acceso a las funciones premium de tu plan.\",\n cancelConfirmButtonText: \"Sí, cancelar\",\n cancelDenyButtonText: \"No\",\n billingHistory: \"Historial de facturación\",\n tableDate: \"Fecha\",\n tableAmount: \"Importe\",\n tableStatus: \"Estado\",\n tableInvoice: \"Factura\",\n planPrefix: \"Actualmente tienes suscripción al\",\n planSuffix: \"plan\",\n updatePayment: {\n success: {\n title: \"Éxito\",\n message: \"Se ha actualizado tu método de pago\",\n },\n error: {\n title: \"¡Vaya, algo ha salido mal!\",\n },\n },\n },\n frequencyOptions: {\n mute: \"Silenciar\",\n always: \"Cada mensaje\",\n hour1: \"Cada hora\",\n hour2: \"Cada 2 horas\",\n hour4: \"Cada 4 horas\",\n hour8: \"Cada 8 horas\",\n hour24: \"Una vez por día\",\n hour168: \"Una vez por la semana\",\n hour336: \"Cada dos semanas\",\n },\n affiliates: {\n empty: \"No tienes historial de pagos del programa embajadores.\",\n history: {\n table: {\n referralName: \"Nombre del referido\",\n startAt: \"Comienza el\",\n endAt: \"Termina el\",\n createdAt: \"Creado el\",\n percent: \"Porcentaje\",\n total: \"Total ganado\",\n status: \"Estado\",\n value: \"Valor\",\n revenue: \"Ingresos\",\n payAt: \"Pagar en fecha\",\n status: \"Estado\",\n },\n statuses: {\n null: \"Pendiente\",\n pending: \"Pendiente\",\n processing: \"Procesando\",\n paid: \"Pagado\",\n active: \"Activo\",\n },\n paymentsHistory: \"Historial de pagos\",\n },\n tabTitle: \"Sutra - Programa embajadores\",\n title: \"Programa embajadores\",\n affiliateLink: \"Este es tu enlace de afiliado\",\n copyMessage: \"Enlace copiado al portapapeles\",\n stripeTitle: \"Stripe vinculado a\",\n stripeConnected:\n \"Este es el identificador de tu cuenta en Stripe. Para encontrarlo, inicia sesión en Stripe, ve a configuraciones de cuenta y baja hasta el final de la página.\",\n stripeDisconnect: \"Desvincular\",\n description:\n \"Para recibir pagos del programa de embajadores, por favor vincula tu cuenta de Stripe haciendo clic en el siguiente botón.\",\n description2:\n \"Al compartir este enlace, recibirás automáticamente el 40% de los ingresos generados durante lel primer año por cada persona que se suscriba a un plan de pago en Sutra.\",\n connect: \"Vincular Stripe\",\n historyLabel: \"Historial del programa de embajadores.\",\n },\n },\n spaces: {\n settings: {\n layout: {\n navbarContent: {\n mainSettings: \"Configuración general\",\n members: \"Miembros\",\n broadcast: \"Envío masivo\",\n surveys: \"Encuestas\",\n structures: \"Estructuras\",\n sutraAdmin: \"Sutra Admin\",\n scheduled: \"Programados\",\n archived: \"Archivados\",\n participation: \"Participación\",\n },\n headerActions: {\n shareableLink: \"ENLACE PARA COMPARTIR\",\n },\n },\n main: {\n title: \"Configuración general\",\n main: {\n invite: \"Invitar\",\n shareableLink: \"Enlace para compartir\",\n cancelLink: \"Cancelar\",\n saveLink: \"Guardar\",\n editButton: \"Editar enlace\",\n subdomain: \"Tu subdominio\",\n sutra_co: \".sutra.co\",\n label1: \"Enlace copiado al portapapeles\",\n privacySetting: \"Selecciona una configuración de privacidad\",\n title1: \"Hacer este espacio accesible públicamente\",\n description1:\n \"Este espacio está dentro de un espacio privado y solo es visible a los miembros de ese espacio. Puedes hacerlo accesible públicamente fuera de este espacio activando esta opción.\",\n title2: \"Mostrar página de registro\",\n description2:\n \"Si esta opción está activada, las personas que no son miembros verán una página de registro cuando intenten acceder a este espacio.\",\n title3: \"Utilizar la versión antigua de la página de registro\",\n description3:\n \"Si esta opción está activada, este espacio utilizará la página de registro diseñada con nuestro editor anterior.\",\n onButton: \"ON\",\n offButton: \"OFF\",\n editButton: \"Editar página\",\n previewButton: \"Vista previa de la página\",\n label2: \"Configuración de privacidad y pago\",\n label3: \"Configuración de la página de registro\",\n description4:\n \"Activo - las personas llegarán a una página de registro antes de poder acceder a este espacio.\",\n label4: \"Automatización\",\n description5:\n \"Programa el envío automático de los correos electrónicos y añade personas a los espacios de forma automática al momento de su registro\",\n label5: \"Configuración de programación\",\n description6:\n \"Fija una fecha para tu evento o configura las opciones de publicación y archivado.\",\n label6: \"Configuraciones adicionales\",\n description7:\n \"Permisos de creación de contenido, visibilidad de miembros, notificaciones de administradores y espacios raíz\",\n label7: \"Configuración de SEO\",\n description8:\n \"Establece meta título, meta descripción e imagen para las redes sociales y el posicionamiento en motores de búsqueda\",\n label8: \"Abierto\",\n description9: \"Cualquiera puede acceder a este espacio\",\n label9: \"Privado\",\n description10:\n \"Este espacio es privado y las personas tienen que ser invitadas para acceder\",\n label10: \"Pago\",\n description11:\n \"Este espacio es de pago y privado. Las personas tienen que pagar para acceder\",\n description12:\n \"Las personas primero se dirigirán a una página de registro antes de poder acceder a este espacio abierto.\",\n description13:\n \"Las personas se dirigirán directamente a este espacio cuando accedan a este espacio abierto.\",\n description14:\n \"Las personas tienen que ser invitadas para poder acceder a este espacio privado. En caso de haber sido invitadas, se les dirigirá a una página de registro.\",\n description15:\n \"Las personas tienen que ser invitadas para poder acceder a este espacio privado. En caso de haber sido invitadas, verán una página donde pueden crear una cuenta y no verán una página de registro.\",\n description16:\n \"Las personas se dirigirán a una página de registro antes de poder acceder a este espacio de pago.\",\n description17:\n \"Las personas llegarán a una página de creación de cuenta y pago antes de poder acceder a este espacio de pago. No verán una página de registro.\",\n on: \"ON\",\n off: \"OFF\",\n label11: \"Miembros\",\n label12: \"Pendientes\",\n label13: \"Interesados\",\n label14: \"Invitados\",\n label15: \"Pagos\",\n label16: \"Herrada\",\n },\n additional: {\n allowMembersEdit:\n \"Permitir a los miembros editar el contenido de esta página\",\n membersWillAddContent:\n \"Los miembros podrán añadir y editar contenido de esta página\",\n allowMembersCreatePosts:\n \"Permitir a los miembros crear nuevas publicaciones\",\n membersWillCreatePosts:\n \"Los miembros podrán crear nuevas publicaciones en este espacio\",\n allowMembersCreateEvents:\n \"Permitir a los miembros crear nuevos eventos\",\n membersWillCreateEvents:\n \"Los miembros podrán crear nuevos eventos en este espacio\",\n allowMembersCreateSubspaces:\n \"Permitir a los miembros crear nuevos subespacios\",\n membersWillCreateSubspaces:\n \"Los miembros podrán crear subespacios en esta página\",\n membersCanCreate: \"Los miembros pueden crear\",\n circleCreation: {\n options: {\n discussion: \"Espacios de discusión\",\n content: \"Espacios de contenido\",\n event: \"Espacios de evento\",\n },\n placeholder:\n \"Selecciona los tipos de espacios que los miembros pueden crear en este espacio\",\n },\n allowMembersToCopy: {\n description1:\n \"Permitir a los miembros invitar a personas de otros espacios.\",\n description2:\n \"Los miembros tendrán la opción de añadir automáticamente miembros de otros círculos\",\n },\n podType: {\n description1:\n \"Todos los miembros pueden publicar mensajes en este espacio\",\n description2:\n \"Si esta opción está desactivada, solo los administradores pueden publicar mensajes\",\n },\n allowReflections: {\n description1: \"Activar reflexiones para este espacio\",\n description2:\n \"Si esta opción está desactivada, la opción de reflexión no aparecerá en los mensajes\",\n },\n showMembers: {\n description1: \"Mostrar miembros\",\n description2:\n \"Mostrar la lista de miembros de este espacio\",\n },\n hideMmemberEmails: {\n description1:\n \"Mostrar las direcciones de email de los miembros en la lista\",\n description2:\n \"Si esta opción está desactivada, las direcciones de email de los miembros no se mostrarán en la lista\",\n },\n newMemberNotifications: {\n description1:\n \"Notificar a los administradores cuando se unen nuevos miembros\",\n description2:\n \"Enviar una notificación por correo electrónico cada vez que se registre un nuevo miembro\",\n },\n podSize: {\n description1:\n \"Limitar el número de personas que pueden unirse a este espacio\",\n description2:\n \"Especificar un número máximo de personas que pueden unirse a este espacio\",\n },\n podSizeValue: {\n description:\n \"¿Cuántas personas pueden unirse a este espacio?\",\n },\n sidebarDefaultOpened: {\n description1:\n \"Espacio abierto por defecto en la barra lateral\",\n description2:\n \"Si esta opción está activada, este espacio se mostrará desplegado en la barra lateral\",\n },\n sidebarHideChildren: {\n description1: \"Ocultar subespacios en la barra lateral\",\n description2:\n \"Si esta opción está activada, los subespacios creados en este espacio no aparecerán en la barra lateral\",\n },\n allowCompletions: {\n description1: \"Mostrar botón de marcar como completado\",\n description2:\n 'Si esta opción está activada, los miembros verán un botón de \"Marcar como completado\" para este espacio. Después de seleccionar esta opción, el ícono en la barra lateral se reemplazará por un símbolo de completado.',\n },\n redirectToSubspace: {\n description1: \"Redirigir siempre a un subespacio\",\n description2:\n \"Si esta opción está activada, al acceder a este espacio los miembros serán dirigidos siempre al subespacio seleccionado.\",\n },\n parentCircles: {\n description1: \"Espacios raíz\",\n placeholder:\n \"Busca espacios para añadir como espacio raíz a este espacio\",\n },\n },\n scheduling: {\n showStartDate: {\n description1: \"Mostrar este espacio como un evento\",\n description2:\n \"Este espacio mostrará una fecha de evento en todos los lugares donde aparezca\",\n },\n startDateTime: {\n title: \"Fecha y hora de inicio\",\n placeholder: \"Elegir fecha\",\n },\n endDateTime: {\n title: \"Fecha y hora de finalización\",\n placeholder: \"Elegir fecha\",\n },\n showLaunchDate: {\n description1: \"Publicar este espacio en una fecha específica\",\n description2:\n \"Este espacio será visible y accesible en la fecha especificada\",\n },\n launchDateTime: {\n placeholder: \"Elegir fecha\",\n },\n showArchiveDate: {\n description1: \"Archivar este espacio en una fecha específica\",\n description2:\n \"Este espacio dejará de ser accesible en la fecha especificada.\",\n },\n archiveDate: {\n placeholder: \"Elegir fecha\",\n },\n showReadonlyDate: {\n description1:\n \"Convertir este espacio en un espacio solo de lectura en una fecha específica.\",\n description2:\n \"No se podrán publicar nuevos mensajes a partir de la fecha especificada\",\n },\n readonlyDate: {\n placeholder: \"Elegir fecha\",\n },\n },\n seo: {\n title: {\n title: \"Meta título\",\n description:\n \"Este título aparecerá en los resultados de los motores de búsqueda y cuando se comparta en redes sociales. La longitud óptima es de 60 caracteres.\",\n },\n description: {\n title: \"Meta descripción\",\n description:\n \"Esta descripción aparecerá en los resultados de los motores de búsqueda y cuando se comparta en redes sociales.\",\n },\n image: {\n title: \"Meta imagen\",\n description:\n \"Esta es la imagen que aparecerá al compartir en las redes sociales. La dimensión recomendada es 1200 píxeles x 627 píxeles (relación de aspecto 1.91/1).\",\n },\n },\n },\n members: {\n title: \"Miembros\",\n members: {\n download: \"Descargar CSV\",\n invite: \"Invitar\",\n member: \"Miembros\",\n invited: \"Invitados\",\n interested: \"Interesados\",\n payment: \"Pagos\",\n },\n interested: {\n interested: {\n button: \"Buscar\",\n placeholder: \"Buscar más\",\n broadcast: \"Envío masivo\",\n noRecordFound: \"No se encontraron registros\",\n },\n table: {\n firstname: \"Nombre\",\n email: \"Email\",\n date: \"Fecha\",\n },\n interestedrow: {\n removeFromList: \"Eliminar de la lista\",\n },\n },\n invited: {\n invited: {\n button: \"Buscar\",\n placeholder: \"Buscar más\",\n noRecordFound: \"No se encontraron registros\",\n },\n table: {\n email: \"Email\",\n invitationlink: \"Enlace de invitación\",\n amount: \"Importe\",\n date: \"Fecha de envío\",\n },\n },\n invitedrow: {\n invitation: {\n resend: \"Reenviar invitación\",\n cancel: \"Cancelar invitación\",\n },\n },\n inviteEmail: {\n invite: {\n placeholder:\n \"Escribe la dirección de email o @menciona a las personas que quieres añadir a este espacio. Los datos ingresados pueden estar separados por comas, espacios o saltos de línea.\",\n message: \"Añade un mensaje de bienvenida opcional\",\n checkboxLabel:\n \"Enviar un correo electrónico para notificar a las personas que han sido invitadas\",\n alertMessage:\n \"Actualmente tienes suscripción a un plan básico y no puedes enviar invitaciones a través de Sutra. Cuando hagas clic en Invitar, se generará un enlace único para cada dirección de correo electrónico que añades. Podrás enviar personalmente un correo electrónico a cada persona con este enlace.\",\n alertbutton: \"Mejora tu plan\",\n button: \"Invitar personas\",\n },\n },\n inviteExisting: {\n invite: {\n copyMembers: \"Copiar miembros desde otro espacio\",\n copyMembersPlaceholder:\n \"Seleccionar espacios desde cuales quieres copiar miembros\",\n addActiveMembers:\n \"Añadir miembros activos desde espacios superiores\",\n addActiveMembersPlaceholder:\n \"Selecciona miembros activos para añadirlos a este espacio\",\n addPendingMembers:\n \"Añadir miembros pendientes desde los espacios raíz\",\n addPendingMembersPlaceholder:\n \"Seleccionar miembros pendientes para añadir a este espacio\",\n checkboxLabel:\n \"Enviar un correo electrónico para notificar a las personas que han sido invitadas\",\n alert:\n \"Actualmente tienes suscripción a un plan básico y no puedes enviar invitaciones a través de Sutra. Cuando hagas clic en Invitar, se generará un enlace único para cada dirección de correo electrónico que añades. Podrás enviar personalmente un correo electrónico a cada persona con este enlace.\",\n alertButton: \"Mejora tu plan\",\n button: \"Invitar personas\",\n thisOption:\n \"Esta opción no está activada para este espacio\",\n },\n },\n inviteLink: {\n invite: {\n shareLinkText:\n \"Las personas pueden registrarse en este espacio directamente con el siguiente enlace. Puedes compartir este enlace donde quieras (por correo electrónico, en las redes sociales, etc).\",\n youCannotShare:\n \"No puedes compartir un enlace a un espacio privado.\",\n },\n },\n invitePeople: {\n invite: {\n invitePeople: \"Invitar personas\",\n },\n },\n membersActivity: {\n members: {\n placeholder: \"Buscar\",\n button: \"Buscar\",\n emailButton: \"Email\",\n messageButton: \"Mensaje\",\n noRecordFound: \"No se encontraron registros\",\n },\n memberTable: {\n noRecordFound: \"No se encontraron registros de miembros\",\n lastSeen: \"Última conexión\",\n lastPosted: \"Última publicación\",\n date: \"Miembro desde\",\n },\n },\n participationActivity: {\n participation: {\n searchPlaceholder: \"Buscar\",\n searchButton: \"Buscar\",\n pickDatePlaceholder: \"Seleccionar rango de fechas\",\n emailButton: \"Email\",\n messageButton: \"Mensaje\",\n noRecordFound: \"No se encontraron registros\",\n },\n memberTable: {\n member: \"Miembro\",\n participation: \"Participación\",\n posts: \"Publicaciones\",\n words: \"Palabras\",\n },\n },\n participationActivityRow: {\n posts: \"publicaciones\",\n },\n paymentRow: {\n payment: {\n refundPayment: \"Reembolsar pago\",\n },\n },\n payments: {\n payment: {\n searchPlaceholder: \"Buscar\",\n searchButton: \"Buscar\",\n noRecordFound: \"No se encontraron registros\",\n },\n paymentTable: {\n member: \"Miembro\",\n amount: \"Importe\",\n date: \"Fecha\",\n status: \"Estado\",\n },\n },\n progressActivity: {\n progress: {\n searchPlaceholder: \"Buscar\",\n searchButton: \"Buscar\",\n emailButton: \"Email\",\n messageButton: \"Mensaje\",\n noRecordFound: \"No se encontraron registros\",\n progressTracking:\n \"El seguimiento del progreso está disponible solo en los espacios con recorridos interactivos.\",\n },\n progressTable: {\n member: \"Miembro\",\n progress: \"Progreso\",\n },\n },\n registered: {\n registered: {\n searchPlaceholder: \"Buscar\",\n searchButton: \"Buscar\",\n email: \"Email\",\n message: \"Mensaje\",\n noRecordFound: \"No se encontraron registros\",\n pending: \"Pendientes\",\n manager: \"Administradores\",\n all: \"Todos\",\n active: \"Activos\",\n },\n registeredTable: {\n member: \"Miembro\",\n email: \"Email\",\n status: \"Estado\",\n role: \"Rol\",\n roleApproveAll: \"Aprobar todos\",\n },\n },\n registeredRow: {\n registered: {\n roleApprove: \"Aprobar\",\n joined: \"Unido\",\n sendMessage: \"Enviar mensaje\",\n stopCharging: \"Suspender cobro\",\n emailPreferences: \"Preferencias de notificaciones\",\n removeMember: \"Eliminar miembro\",\n },\n },\n },\n payment: {\n charging: {\n NumberOfTimes: {\n howManyTimes: \"¿Cuántas veces?\",\n },\n UntilDate: {\n pickDate:\n \"Elegir fecha de finalización del cobro\",\n },\n },\n fees: {\n description: {\n fees: \"TARIFAS:\",\n sutraFee: \"TARIFAS DE SUTRA +\",\n stripeProcessingFee: \"TARIFAS DE PROCESAMIENTO DE STRIPE\",\n },\n },\n flexible: {\n flexible: {\n description:\n \"Para ofrecer opciones de flexibilidad de pago, como el modelo “paga lo que puedes” o múltiples niveles de pago, puedes crear una encuesta de pago que las personas verán al registrarse en tu espacio. Haz clic en el botón Editar abajo para personalizar la encuesta.\",\n },\n },\n once: {\n once: {\n description: \"¿Cuánto cobrarás?\",\n number: \"10\",\n },\n },\n recurring: {\n recurring: {\n description1: \"¿Cuánto cobrarás?\",\n description2: \"Selecciona una opción de cobro\",\n },\n },\n },\n privacy: {\n open: {\n open: {\n description: \"Cualquiera puede acceder a este espacio\",\n },\n },\n paid: {\n paid: {\n stripeConnected: \"Stripe vinculado a\",\n disconnectButton: \"Desvincular\",\n description:\n \"Para procesar pagos de este espacio, por favor vincula tu cuenta de Stripe haciendo clic en el botón de abajo.\",\n connectButton: \"Vincular Stripe\",\n },\n },\n private: {\n private: {\n description:\n \"Este espacio es privado y las personas tienen que ser invitadas para unirse\",\n },\n },\n },\n registration: {\n steps: {\n addFromSubSpace: {\n label: \"Selecciona un espacio para añadir miembros\",\n description:\n \"En algunas circunstancias, los miembros pueden unirse a un subespacio sin unirse al espacio raíz. En estos casos, necesitarás asegurarte de que también estén agregados a un espacio raíz u otro espacio compartido. Con esta función puedes hacerlo de forma sencilla. Cada vez que alguien se una a un subespacio, se añadirá automáticamente a los espacios que selecciones aquí abajo.\",\n placeholder: \"Seleccionar espacios\",\n saveButton: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n saveButton2: \"Guardar paso\",\n },\n addStructure: {\n label1: \"Selecciona una estructura\",\n placeholder1: \"Selecciona una opción\",\n label2: \"Enviar como\",\n placeholder2: \"Selecciona una opción\",\n saveButton: \"Guardar paso\",\n },\n addToExistingSpace: {\n label: \"Selecciona un espacio al que añadir el miembro\",\n placeholder: \"Seleccionar espacios\",\n saveButton1: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n saveButton2: \"Guardar paso\",\n },\n addToNewSpace: {\n placeholder: \"Nombre del nuevo espacio\",\n label: \"Ponle un nombre al nuevo espacio\",\n saveButton1: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n saveButton2: \"Guardar paso\",\n },\n applyTemplate: {\n label: \"Selecciona un espacio para duplicar\",\n description:\n \"En algunos casos querrás crear un espacio plantilla para replicarlo cada vez que se cree un nuevo espacio. Puedes crear un espacio y configurarlo exactamente como quieras. El contenido y los subespacios se copiarán desde la plantilla al espacio recién creado aquí.\",\n saveButton1: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n saveButton2: \"Guardar paso\",\n },\n editEmail: {\n placeholder1: \"Asunto del correo\",\n label1: \"Enviar como\",\n placeholder2: \"Selecciona una opción\",\n label2: \"Enviar a\",\n placeholder3: \"Selecciona una opción\",\n placeholder4: \"alguien@especial.com\",\n label3: \"Dirección de correo electrónico\",\n saveButton: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n sendPreview: \"Send preview\",\n },\n editStructure: {\n deleteButton: \"Eliminar paso\",\n },\n editSurvey: {\n deleteButton: \"Eliminar paso\",\n },\n sendEmail: {\n label1: \"Selecciona correo\",\n placeholder1: \"Selecciona una opción\",\n label2: \"Enviar como\",\n placeholder2: \"Selecciona una opción\",\n label3: \"Enviar a\",\n placeholder3: \"Selecciona una opción\",\n label4: \"alguien@especial.com\",\n placeholder4: \"Dirección de correo electrónico\",\n saveButton: \"Guardar paso\",\n label5: \"Administradores\",\n label6: \"Dirección de correo electrónico personalizada\",\n },\n setToPending: {\n title: \"Mensaje de bienvenida\",\n description:\n \"Este contenido será lo que las personas verán justo después de registrarse en tu espacio. Es el lugar ideal para explicar cuándo comenzará el programa y qué pueden esperar en el período previo.\",\n saveButton1: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n saveButton2: \"Guardar paso\",\n },\n surveyPerson: {\n placeholder: \"Selecciona una opción\",\n label: \"Seleccionar encuesta\",\n saveButton1: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n saveButton2: \"Guardar paso\",\n },\n wait: {\n description1: \"¿Cuántos días?\",\n description2: \"Esperar hasta\",\n saveButton: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n saveButton2: \"Guardar paso\",\n label1: \"Seleccionar condición de espera\",\n placeholder: \"Selecciona una opción\",\n label2: \"Cantidad de días\",\n label3: \"Hasta una fecha y hora específicas\",\n label4: \"Elegir fecha\",\n },\n webhook: {\n label: \"URL del Webhook\",\n saveButton: \"Guardar paso\",\n deleteButton: \"Eliminar paso\",\n },\n remove_from_space: {\n label: \"Select a space to remove member from\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n },\n addStep: {\n addStep: {\n description: \"Añadir paso\",\n label: \"Por favor selecciona una acción para este paso\",\n placeholder: \"Selecciona una acción\",\n },\n },\n registrationFlow: {\n registration: {\n description1:\n \"Esta función te permite secuenciar acciones automatizadas que se activan cuando una persona se une o muestra interés en este espacio. Aquí puedes hacer cosas como programar el envío de correos electrónicos y añadir automáticamente personas a espacios seleccionados cuando se registran.\",\n description2:\n \"Realiza estas acciones después de que alguien...\",\n placeholder1: \"Selecciona una condición de inicio\",\n addButton: \"Añadir paso\",\n label1:\n \"Se convierte en miembro o se une a la lista de interesados\",\n description3:\n \"Los siguientes pasos se activarán cuando una persona se convierta en miembro de este espacio o se una a la lista de interesados enviando su nombre y correo electrónico a través de un formulario de interés.\",\n label2: \"Se convierte en miembro de este espacio\",\n description4:\n \"Los siguientes pasos se activarán cuando una persona se convierta en miembro de este espacio.\",\n label3: \"Muestra interés en este espacio\",\n description5:\n \"Los siguientes pasos se activarán cuando una persona se una a la lista de interesados enviando su nombre y correo electrónico a través de un formulario de interés.\",\n },\n },\n },\n structure: {\n add: {\n add: {\n title: \"Añadir a espacios\",\n description: \"Espacios\",\n placeholder1: \"Seleccionar un espacio\",\n label1: \"Enviar como\",\n placeholder2: \"Elegir remitente\",\n placeholder3: \"Seleccionar fecha\",\n label2: \"Fecha de envío\",\n label3: \"Hora de envío\",\n saveButton: \"Guardar\",\n label4: \"Programar para más tarde\",\n },\n },\n createStructure: {\n title: {\n createStructure: \"Crear estructura\",\n },\n },\n structureItem: {\n item: {\n addToSpace: \"Añadir al espacio\",\n open: \"View responses\",\n edit: \"Editar\",\n duplicate: \"Duplicar\",\n delete: \"Eliminar\",\n },\n },\n },\n survey: {\n add: {\n add: {\n title: \"Añadir a espacios\",\n spaces: \"espacios\",\n placeholder1: \"Seleccionar un espacio\",\n label: \"Enviar como\",\n placeholder2: \"Elegir remitente\",\n saveButton: \"Guardar\",\n },\n },\n answer: {\n answer: {\n addOption: \"Añadir opción\",\n },\n },\n createSurvey: {\n description: \"Crear encuesta\",\n },\n createSurveyForm: {\n form: {\n title: \"Título de la encuesta\",\n description:\n \"La flexibilidad de pago te permite ofrecer múltiples opciones para tu programa. Si deseas que las personas establezcan cuánto pagar, simplemente crea una opción sin establecer el importe. Esa opción aparecerá con un campo para que la persona pueda establecer su propio importe. Por ejemplo, puedes ofrecer un modelo “paga lo que puedes” con varios niveles de precios sugeridos y una opción completamente abierta. Si agregas un texto de explicación abajo, este texto se mostrará justo encima de las opciones de pago.\",\n optionalDescription: \"Descripción opcional de la encuesta\",\n addQuestionButton: \"Añadir pregunta\",\n saveButton: \"Guardar\",\n },\n },\n individual: {\n individual: {\n placeholder: \"Seleccionar una persona\",\n },\n },\n multipleItem: {\n multipleItem: {\n placeholder: \"Opción\",\n },\n },\n paymentItem: {\n paymentItem: {\n placeholder: \"Opción de pago\",\n },\n },\n paymentSurveyItem: {\n item: {\n editButton: \"Editar opciones de pago\",\n viewButton: \"Ver respuestas\",\n },\n },\n showSurvey: {\n survey: {\n title: \"Respuestas de la encuesta\",\n },\n },\n singleItem: {\n item: {\n placeholder: \"Opción\",\n },\n },\n surveyItem: {\n item: {\n addToSpace: \"Añadir al espacio\",\n open: \"View responses\",\n edit: \"Editar\",\n take: \"Preview survey\",\n duplicate: \"Duplicar\",\n download: \"Descargar CSV\",\n delete: \"Eliminar\",\n responses: \"Respuestas\",\n },\n },\n },\n broadcast: {\n broadcast: {\n button: {\n broadcastButton: \"Nuevo envío masivo\",\n },\n },\n },\n broadcast: {\n title: \"Envío masivo\",\n broadcastButton: \"Nuevo envío masivo\",\n membersTypes: {\n active: \"Miembros activos\",\n pending: \"Miembros pendientes\",\n interested: \"Miembros interesados\",\n },\n sentOn: \"Envío masivo enviado el\",\n onDestroy: {\n alertTitle: \"¿Estás seguro/a?\",\n alertMessage: \"Este envío masivo se eliminará permanentemente\",\n confirm: \"Eliminar envío\",\n deny: \"Cancelar\",\n },\n actions: {\n edit: \"Editar\",\n duplicate: \"Duplicar\",\n delete: \"Eliminar\",\n },\n statuses: {\n sent: \"Enviado\",\n scheduled: \"Programado\",\n draft: \"Borrador\",\n procesing: \"Processing\",\n },\n form: {\n composeBroadcast: \"Redactar envío\",\n contentErrMessage: \"Agrega contenido\",\n targetErrMessage: \"Selecciona un destinatario\",\n type: {\n email: \"Enviar por correo electrónico\",\n message: \"Mensaje al espacio\",\n },\n title: {\n placeholder: \"Asunto\",\n },\n brackets: {\n part1: \"Utiliza\",\n part2: \"y\",\n part3: \"para autocompletar la información correspondiente\",\n },\n target: {\n placeholder: \"Seleccionar destinatario\",\n label: \"Enviar a\",\n },\n sendAs: {\n label: \"Enviar como\",\n placeholder: \"Seleccionar remitente\",\n },\n schedule: {\n label: \"Programar para más tarde\",\n },\n sendAtDate: {\n label: \"Fecha de envío\",\n placeholder: \"Seleccionar fecha\",\n },\n sendAtTime: {\n label: \"Hora de envío\",\n placeholder: \"\",\n },\n scheduleBroadcast: \"Programar envío\",\n sendBroadcast: \"Enviar\",\n saveDraft: \"Guardar borrador\",\n sendPreview: \"Send preview\",\n },\n },\n surveys: {\n title: \"Encuestas\",\n createSurvey: \"Crear encuesta\",\n },\n structures: {\n title: \"Estructuras\",\n createStructure: \"Crear estructura\",\n },\n sutraAdmin: {\n title: \"Administrador de Sutra\",\n },\n scheduled: {\n title: \"Programado\",\n },\n archived: {\n title: \"Archivado\",\n },\n participation: {\n title: \"Participación\",\n label1: \"Presencia\",\n description1:\n \"% de miembros que han visitado el espacio en los últimos 7 días\",\n label2: \"Actividad\",\n description2:\n \"% de miembros que han creado publicaciones en los últimos 7 días\",\n label3: \"Publicaciones\",\n description3:\n \"Total de publicaciones en todos los subespacios en los últimos 7 días\",\n label4: \"Participación\",\n label5: \"Actividad de los miembros\",\n label6: \"Avanzado\",\n },\n },\n sidebar: {\n iconSelect: {\n placeholder: \"Buscar\",\n },\n membersNode: {\n member: \"Miembros\",\n },\n nodeIcon: {\n reset: \"Restablecer\",\n },\n sidebarTutorial: {\n gettingStarted: \"Primeros pasos\",\n },\n },\n alreadyMember: {\n member: {\n welcome: \"¡Bienvenido/a! Ya eres miembro de este espacio -\",\n clickHere: \"Haz clic aquí para entrar\",\n },\n },\n calender: {\n calender: {\n joinButton: \"Unirse a la videoconferencia\",\n addButton: \"Añadir al calendario\",\n joinEventButton: \"Registrarse\",\n title: \"Detalles del evento\",\n },\n },\n invitationBar: {\n button: {\n register: \"Registrarse\",\n },\n },\n space: {\n sutraLoading: \"Sutra - Cargando...\",\n },\n statusBar: {\n restoreButton: \"Restaurar\",\n },\n tagFilter: {\n resetButton: \"Restablecer\",\n },\n presentations: {\n discussion: {\n reflectionHeader: \"Reflexiones\",\n backToPost: \"Volver a la publicación\",\n pinnedMessageHeader: \"Mensaje fijado\",\n delete: {\n title: \"¿Estás seguro/a?\",\n message: \"Esta acción no se puede deshacer\",\n confirmButton: \"Sí, eliminar\",\n cancelButton: \"Cancelar\",\n },\n },\n tag: {\n placeholder: \"Buscar etiquetas o crear una nueva\",\n placeholder2: \"Selecciona una etiqueta\",\n createAction: \"Crear\",\n },\n message: {\n reply: \"Reflexionar\",\n addTags: \"Añadir etiquetas\",\n tag: \"Etiqueta\",\n copyToClipboard: \"Copiar al portapapeles\",\n messageCopied: \"Mensaje copiado al portapapeles\",\n pinMessageAction: \"Fijar mensaje\",\n editMessage: \"Editar mensaje\",\n deleteMessage: \"Eliminar mensaje\",\n makePrivate: \"Hacerlo privado\",\n viewReplies1: \"Ver\",\n viewReplies2single: \"reflexión\",\n viewReplies2plural: \"reflexiones\",\n privateMessage:\n \"Actualmente, solo los administradores de este espacio y tú pueden ver esta publicación. Si decides hacerla pública, todos los miembros la verán en este espacio.\",\n privateMessage2:\n \"Esta persona ha elegido no compartir su respuesta con otros miembros.\",\n unreadMessagesText: \"Tienes mensajes sin leer\",\n scrollDownButton: \"Desplazarse hacia abajo\",\n newReflections: {\n part1: \"Tienes\",\n part2: \"reflexiones sin leer en\",\n part3: \"mensajes\",\n },\n viewNextButton: \"Ver siguiente\",\n pinMessage: {\n mainText: \"Mensaje fijado\",\n viewButton: \"Ver mensaje\",\n },\n },\n content: {\n commentInput: {\n toggleLabel1:\n \"Los comentarios están desactivados para los recorridos interactivos\",\n toggleLabel2: \"Activar comentarios para esta publicación\",\n toggleLabel3:\n \"Activar comentarios para este espacio de evento\",\n toggleLabel4:\n \"Activar comentarios para este espacio de contenido\",\n placeholder1:\n \"No se pueden publicar comentarios mientras estás editando.\",\n placeholder2: \"Escribe algo...\",\n },\n },\n fallback: {\n title: \"Problemas de conexión\",\n message:\n \"Parece que no tienes Internet. Cuando lo tengas de vuelta, te reconectaremos automáticamente.\",\n },\n events: {\n placeholder: \"Escribe algo...\",\n upcomingButton: \"Próximos\",\n pastButton: \"Pasados\",\n addEvent: \"Añadir evento\",\n eventSettingsTooltip: \"Configuraciones del evento\",\n newEventTitle: \"NUEVO EVENTO\",\n },\n list: {\n placeholder: \"Escribe algo...\",\n createButton: \"Crear publicación\",\n listSettingsTooltip: \"Configuraciones del foro\",\n duplicateFormTitle: \"DUPLICAR ESPACIO\",\n },\n\n settings: {\n versions: {\n posts: \"Publicaciones\",\n discussions: \"Discusiones\",\n link: \"Enlace\",\n template: \"Plantilla\",\n },\n versionsDescriptions: {\n content:\n \"Los nuevos elementos se mostrarán como una página de contenido con funcionalidad completa.\",\n discussion: \"Vacío\",\n posts:\n \"Los nuevos elementos se mostrarán como una publicación simple con funcionalidad limitada.\",\n link: \"Esta opción te permite enviar un enlace a cualquier espacio en Sutra que luego aparecerá como un elemento aquí.\",\n template:\n \"Crea un espacio de plantilla que se duplicará cada vez que se cree un nuevo elemento aquí.\",\n },\n createNewTemplate: \"Crear nueva plantilla\",\n editTemplate: \"Editar plantilla\",\n title: \"CONFIGURACIONES\",\n accordion1: {\n label: \"Mostrar como\",\n description:\n \"Mostrar publicaciones en vista de lista o cuadrícula\",\n listOption: \"Lista\",\n gridOption: \"Cuadrícula\",\n dateCreated: \"Fecha de creación\",\n dateCreatedReversed: \"Fecha creación inverso\",\n lastActive: \"Última actividad\",\n lastEdited: \"Última edición\",\n alphabetic: \"Orden alfabético\",\n reverseAlphabetic: \"Orden alfabético inverso\",\n },\n accordion2: {\n label: \"Opciones de visualización\",\n description: \"\",\n switches: {\n onlyManagers:\n \"Solo administradores pueden publicar\",\n showAuthor: \"Mostrar información sobre el autor\",\n showPreview: \"Mostrar vista previa del texto\",\n showComments: \"Mostrar cantidad de comentarios\",\n showMembers: \"Mostrar avatares de los miembros\",\n showTimestamp:\n \"Mostrar marca temporal\",\n showThumbnail: \"Mostrar miniatura\",\n autoThumbnail: \"Creación automática de miniatura\",\n },\n },\n accordion3: {\n label: \"Formato de nueva publicación\",\n description:\n \"Selecciona el formato de nuevas publicaciones en este espacio\",\n templateName: {\n label: \"Nombra tu plantilla\",\n placeholder: \"Nombre de la plantilla\",\n },\n templateDirectOption: \"Subespacio directo\",\n templateLinkedOption: \"Espacio vinculado\",\n privacyDescription:\n \"Selecciona la configuración de privacidad predeterminada para nuevas publicaciones\",\n privacyOpenOption: \"Abierta\",\n privacyPrivateOption: \"Privada\",\n privacyAnyOption: \"Elección del creador\",\n },\n accordion4: {\n label: \"Texto del botón\",\n createPost: {\n label: \"Crear publicación\",\n description:\n \"Especifica el texto que aparecerá en el botón de nueva publicación\",\n },\n },\n accordion5: {\n label: \"Etiquetas\",\n },\n templateDescription:\n \"Los nuevos espacios plantilla pueden ser subespacios directos de este espacio o pueden ser espacios vinculados. Los espacios vinculados son espacios superiores independientes de los espacios raíz y aparecerán en esta página. El creador del espacio se convertirá en administrador completo del espacio que cree.\",\n },\n thumbnail: {\n title: \"Añadir MINIATURA\",\n message: \"La imagen de la miniatura se está cargando...\",\n },\n static: {\n broadcastExclude: {\n unsubscribe: {\n part1:\n \"¿Estás seguro de que quieres darte de baja de\",\n part2:\n \"Ya no recibirás correos electrónicos de envío masivo de parte de los administradores de este espacio\",\n button: \"Darse de baja\",\n },\n subscribe: {\n part1:\n \"Te has dado de baja y ya no recibirás correos electrónicos de envio masivo de parte de\",\n button: \"Suscribirse\",\n },\n },\n invitation: {\n message: \"Has sido invitado/a a este espacio\",\n button: \"Aceptar la invitación\",\n },\n pending: {\n message: \"Tu solicitud está pendiente\",\n },\n private: {\n message: {\n part1: \"Este es un espacio privado.\",\n part2: \"Si eres miembro, por favor, inicia sesión.\",\n },\n button: \"Iniciar sesión\",\n },\n processing: {\n message: \"Este espacio aún se está procesando...\",\n },\n },\n gridPost: {\n onDelete: {\n alertTitle: \"¿Estás seguro/a?\",\n alertMessage: \"Este espacio ya no estará vinculado aquí.\",\n alertMessage2: \"Este espacio ya no estará vinculado aquí.\",\n confirm: \"Sí\",\n deny: \"No\",\n },\n actions: {\n pin: \"Fijar en la parte superior\",\n unpin: \"Desfijar\",\n addThumbnail: \"Añadir miniatura\",\n removeThumbnail: \"Eliminar miniatura\",\n duplicate: \"Duplicar\",\n unlink: \"Desvincular\",\n delete: \"Eliminar\",\n },\n },\n listContent: {\n publishTootip: \"Se publicará en esta fecha\",\n privateTooltip: \"Este es un espacio privado\",\n },\n },\n colors: {\n form: {\n colorTheme: \"Tema de color\",\n customize: \"Personalizar la selección de colores\",\n saveTheme: \"Guardar tema\",\n resetColor: \"Restablecer color\",\n pageLayout: \"Diseño de página\",\n pageFormat: \"Formato de página\",\n },\n headerAndLogo: {\n addCover: \"Añadir imagen de portada\",\n removeCover: \"Eliminar imagen de portada\",\n changeLogo: \"Cambiar logotipo\",\n removeLogo: \"Eliminar logotipo\",\n dimensions:\n \"La dimensión recomendada para imágenes de portada es de 1200 x 300 píxeles\",\n dimensions2:\n \"La dimensión recomendada para logotipos es de 360 x 120 píxeles\",\n },\n pageFormat: {\n description:\n \"Puedes cambiar la forma en que se muestra el contenido en este espacio seleccionando una opción abajo.\",\n contentLabel: \"Contenido\",\n discussionLabel: \"Discusión\",\n contentDescription:\n \"Un espacio para módulos de aprendizaje, contenido general o recursos de la comunidad.\",\n discussionDescription: \"Un espacio para discusión o anuncios\",\n eventsLabel: \"Calendario\",\n eventsDescription: \"Crear una lista de eventos en el calendario\",\n listLabel: \"Foro\",\n listDescription:\n \"Crea un feed donde las personas puedan publicar temas de discusión\",\n },\n pageLayout: {\n widePage: \"Aumentar el ancho de la página\",\n hideSidebar: \"Ocultar barra lateral\",\n hideHeader: \"Ocular cabecera\",\n hideCoverImage: \"Ocultar imagen de portada\",\n hidePageTitle: \"Ocultar título de página\",\n hideBreadcrumbs: \"Ocultar breadcrumbs\",\n },\n header_color: {\n label: \"Color de cabecera\",\n description: \"Descripción\",\n },\n header_link_color: {\n label: \"Color del logotipo y el texto del encabezado\",\n description: \"Descripción\",\n },\n primary_button_background_color: {\n label: \"Color de fondo del botón primario\",\n description: \"Descripción\",\n },\n primary_button_text_color: {\n label: \"Color de texto del botón primario\",\n description: \"Descripción\",\n },\n secondary_button_background_color: {\n label: \"Color de fondo del botón secundario\",\n description: \"Descripción\",\n },\n secondary_button_text_color: {\n label: \"Color de texto del botón secundario\",\n description: \"Descripción\",\n },\n background_color: {\n label: \"Color de fondo\",\n description: \"Descripción\",\n },\n default_text_color: {\n label: \"Color de texto predeterminado\",\n description: \"Descripción\",\n },\n sidebar_background_color: {\n label: \"Color de fondo de la barra lateral\",\n description: \"Descripción\",\n },\n sidebar_text_color: {\n label: \"Color de texto de la barra lateral\",\n description: \"Descripción\",\n },\n default_link_color: {\n label: \"Color de enlace predeterminado\",\n description: \"Descripción\",\n },\n default_badge_color: {\n label: \"Color de ícono de notificación\",\n description: \"Descripción\",\n },\n default_badge_text_color: {\n label: \"Color de texto del ícono de notificación\",\n description: \"Descripción\",\n },\n registration_page_background_color: {\n label: \"Color de fondo de la página de registro\",\n description: \"Descripción\",\n },\n registration_page_default_text_color: {\n label: \"Color de texto de la página de registro\",\n description: \"Descripción\",\n },\n },\n create: {\n invalidNameErrorMsg:\n \"El nombre del espacio debe tener entre 3 y 100 caracteres\",\n },\n dummy: {\n magicLink: {\n alertTitle: \"Casi estás dentro...\",\n alertMessage:\n \"Hemos enviado el enlace mágico a tu correo electrónico. ESTO ES UNA PRUEBA, NO SE HA ENVIADO NINGÚN EMAIL REAL.\",\n },\n },\n pending: {\n message: \"Tu membresía está pendiente\",\n },\n recover: {\n alertTitle: \"Casi estás dentro...\",\n alertMessage:\n \"Hemos enviado el enlace de acceso directo a tu email. ESTO ES UNA PRUEBA, NO SE HA ENVIADO NINGÚN EMAIL REAL.\",\n },\n form: {\n calendarLinks: {\n text: \"La información que se añada a continuación se transferirá al calendario del miembro cuando se agregue el evento.\",\n link: {\n label: \"URL del evento (enlace de Zoom, etc.)\",\n placeholder: \"¿Cuál es el enlace de tu videoconferencia?\",\n },\n description: {\n label:\n \"Añade una descripción para tu evento que aparecerá en la información del calendario\",\n placeholder: \"Descripción del calendario\",\n },\n eventStartDateAndTime: \"Fecha y hora de inicio del evento\",\n date: {\n placeholder: \"Seleccionar fecha\",\n },\n eventDateTime:\n \"Fecha y hora de finalización del evento (opcional)\",\n allowInterests:\n \"Permitir que las personas participen al evento sin registrarse en Sutra\",\n automatedEmails: \"Configurar correos electrónicos automáticos\",\n save: \"Guardar detalles\",\n },\n duplicate: {\n prefix: \"Duplicado de\",\n intention: {\n label: \"Nombre del espacio\",\n placeholder: \"¿Cómo se llama tu espacio?\",\n },\n copyMembers: {\n label: \"Copiar miembros\",\n },\n copyManagers: {\n label: \"Copiar administradores\",\n },\n copyContent: {\n label: \"Copiar contenido\",\n },\n copyPosts: {\n label: \"Copy posts\",\n },\n copyBroadcasts: {\n label: \"Copiar envíos masivos\",\n },\n copyAutomation: {\n label: \"Copiar automatizaciones\",\n },\n copyRegPage: {\n label: \"Copiar página de registro\",\n },\n save: \"Duplicar espacio\",\n saveTemplate: \"Crear plantilla\",\n },\n form: {\n privacyDescription1:\n \"El espacio que crees será accesible a todos dentro de\",\n rootPrivacyDescription1:\n \"El espacio que crees será accesible a cualquier persona que tenga un enlace a él. Podrás configurar las opciones de pago una vez que el espacio haya sido creado.\",\n privacyDescription2:\n \"El espacio que crees solo será visible a las personas agregadas.\",\n rootPrivacyDescription2:\n \"El espacio que crees será visible solo a las personas invitadas.Podrás configurar las opciones de pago una vez que el espacio haya sido creado.\",\n versions: {\n content: {\n label: \"Contenido\",\n description:\n \"Crea un espacio para un módulo de aprendizaje, contenido general o recursos comunitarios.\",\n },\n discussion: {\n label: \"Discusión\",\n description:\n \"Crea un espacio de chat para discusiones o anuncios.\",\n },\n event: {\n label: \"Evento\",\n description: \"Crea un único evento.\",\n },\n events: {\n label: \"Calendario\",\n description: \"Crea una lista de eventos en el calendario.\",\n },\n list: {\n label: \"Foro\",\n description:\n \"Crea un feed donde las personas pueden publicar temas de discusión.\",\n },\n },\n segments: {\n space: {\n label: \"Espacio\",\n description:\n \"Crea un espacio para tu curso o comunidad. Elige esta opción si quieres crear un grupo de formación, un curso a tu propio ritmo, una comunidad, o cualquier tipo de grupo que se reunirá periódicamente a lo largo del tiempo.\",\n },\n event: {\n label: \"Evento\",\n description:\n \"Crea una página sencilla de evento. Elige esta opción si solo quieres organizar un único evento que puedas compartir públicamente.\",\n },\n discussion: {\n label: \"Discusión\",\n description:\n \"Crea un espacio sencillo de conversación para tu grupo. Elige esta opción si solo quieres crear un único espacio de discusión para un grupo de personas.\",\n },\n },\n intention: {\n label: \"Nombre del espacio\",\n placeholder: \"¿Cómo se llama tu espacio?\",\n },\n content: {\n label: \"Nombre del espacio\",\n description: \"Escribe algo...\",\n },\n spaceFormat: {\n label: \"Formato del espacio\",\n placeholder: \"Eligir\",\n },\n eventDescription:\n \"La información añadida a continuación se sincronizará con el calendario del miembro al añadir el evento.\",\n hangoutLink: {\n label: \"URL del evento (enlace de Zoom, etc.)\",\n placeholder: \"¿Cuál es el enlace de tu videoconferencia?\",\n },\n eventStartTime: \"Fecha y hora de inicio del evento\",\n date: {\n placeholder: \"Seleccionar fecha\",\n },\n eventEndDate:\n \"Fecha y hora de finalización del evento (opcional)\",\n privacyLevelText: \"Configuración de privacidad\",\n privacy: {\n open: \"Abierto\",\n private: \"Privado\",\n },\n joinAsMember: {\n label: \"Unirse a este espacio como miembro\",\n },\n publishDate: {\n label: \"Publicar en fecha\",\n },\n publishDateTime: \"Fecha y hora de publicación\",\n create: \"Crear espacio\",\n },\n interestedForm: {\n title: \"Registrarse en este evento\",\n createAlertTitle: \"¡Gracias por registrarte!\",\n createAlertButton: \"Ok\",\n name: {\n label: \"Nombre\",\n placeholder: \"Escribe tu nombre\",\n },\n email: {\n label: \"Correo electrónico\",\n placeholder: \"Escribe tu correo electrónico\",\n },\n register: \"Registrarse\",\n joinWithSutra: \"Entrar con mi cuenta de Sutra\",\n },\n linkForm: {\n linkErrMessage: \"No es un enlace válido al espacio\",\n link: {\n label: \"\",\n placeholder: \"Enlace al espacio\",\n errors: {\n space:\n \"¡El espacio que quieres compartir es privado o no existe!\",\n event:\n \"¡El espacio que quieres compartir es privado, no es un evento o no existe!\",\n },\n },\n },\n listForm: {\n intention: {\n placeholder: \"Título\",\n },\n },\n },\n header: {\n onLeave: {\n title: \"¿Estás seguro/a?\",\n message:\n \"Serás eliminado de la lista de miembros de este espacio y podrías necesitar ser añadido de nuevo para recuperar el acceso.\",\n confirm: \"Sí, por favor, quiero ser eliminado\",\n deny: \"No\",\n },\n onArchive: {\n title: \"¿Estás seguro/a?\",\n message:\n \"Este espacio se archivará y los miembros no tendrán más acceso a él.\",\n confirm: \"Sí\",\n deny: \"No\",\n },\n onUnarchive: {\n title: \"¿Estás seguro/a?\",\n message:\n \"Este espacio se desarchivará y los miembros tendrán de nuevo acceso a él.\",\n confirm: \"Sí\",\n deny: \"No\",\n },\n onDelete: {\n title: \"¿Estás seguro/a?\",\n message:\n \"Este espacio se eliminará y los miembros no volverán a tener acceso.\",\n confirm: \"Sí\",\n deny: \"No\",\n },\n onFix: {\n title: \"¿Estás seguro/a?\",\n message:\n \"Sutra intentará recrear este espacio de contenido utilizando la información de la versión anterior.\",\n confirm: \"Sí, arreglar\",\n deny: \"No\",\n confirmationTitle: \"Información\",\n confirmationMessage: \"Espacio arreglado, cargando de nuevo...\",\n confirmationError: \"Este espacio no se puede arreglar\",\n },\n buttons: {\n uncomplete: \"Marcar como no completado\",\n markComplete: \"Marcar como completado\",\n edit: \"Editar\",\n post: \"publicaciónr\",\n page: \"página\",\n space: \"espacio\",\n returnTo: \"Volver a\",\n editTitle: \"Editar título\",\n viewPage: \"Ver página\",\n editDescription: \"Editar descripción\",\n appearance: \"Apariencia\",\n manage: \"Administrar\",\n members: \"Miembros\",\n leave: \"Abandonar espacio\",\n delete: \"Eliminar espacio\",\n deletePost: \"Eliminar\",\n duplicate: \"Duplicar espacio\",\n archive: \"Archivar espacio\",\n unarchive: \"Desarchivar espacio\",\n template: \"Crear plantilla\",\n fix: \"Arreglar\",\n joinEvent: \"Registrarse\",\n joinSpace: \"Unirse al espacio\",\n preview: \"Vista previa\",\n draft: \"Borrador\",\n published: \"Publicado\",\n publish: \"Publicar\",\n returnToSettings: \"Volver a configuraciones\",\n returnToSpace: \"Volver al espacio\",\n undo: \"Deshacer\",\n openFullScreen: \"Abrir en pantalla completa\",\n copyToClipboard: \"Copiar enlace\",\n copiedMessage: \"Enlace del espacio copiado al porta papeles\",\n versionHistory: \"Historico de versiones\",\n brandingOptions: \"OPCIONES DE MARCA\",\n },\n regPagePublishing:\n \"Tu página de registro se está publicando, por favor, espera...\",\n spaceUpdating:\n \"Este espacio se está actualizando, por favor espera...\",\n },\n members: {\n sectionTitle: \"Miembros\",\n manage: \"Administrar miembros\",\n invite: \"Invitar\",\n search: {\n button: \"Buscar\",\n placeholder: \"Buscar\",\n },\n emptyMessage: \"No se encontraron registros\",\n messageButton: \"Mensaje\",\n emailButton: \"Email\",\n copyClipboard: \"copiar al portapapeles\",\n },\n payment: {\n onCheckIntent: {\n alertTitle: \"Error de pago\",\n alertMessage:\n \"Tu sesión ha caducado. Por favor, actualiza la página para completar el pago.\",\n },\n onConfirmPayment: {\n alertTitle: \"¡Vaya, algo ha salido mal!\",\n alertMessage: \"¡Algo ha salido mal!\",\n },\n completePayment: \"Completar el pago\",\n join: \"Unirse al espacio\",\n },\n stripe: {\n pay: \"Pagar\",\n },\n },\n survey: {\n form: {\n text: \"Ya has respondido a esta encuesta.\",\n submitButton: \"Enviar\",\n },\n question: {\n yourAnswer: \"Tu respuesta\",\n },\n },\n tiptap: {\n blocks: {\n section1: \"Básico\",\n text: \"Texto\",\n headline1: \"Título 1\",\n headline2: \"Título 2\",\n headline3: \"Título 3\",\n divider: \"Separador\",\n infobox: \"Caja de información\",\n section2: \"Espacios\",\n content: \"Espacio de contenido\",\n discussion: \"Espacio de discusión\",\n event: \"Espacio de evento\",\n events: \"Espacio de calendario\",\n list: \"Espacio de foro\",\n showcase: \"Showcase Space\",\n section3: \"Lista\",\n section8: \"Especial\",\n bulletList: \"Lista de viñetas\",\n orderedList: \"Lista ordenada\",\n checklist: \"Lista de verificación\",\n collapsableSection: \"Sección plegable\",\n survey: \"Survey or quiz\",\n section4: \"Multimedia\",\n image: \"Imagen\",\n embed: \"Código de incrustación\",\n video: \"Video\",\n audio: \"Audio\",\n file: \"Archivo\",\n zoom: \"Zoom recording\",\n section5: \"Cuadrículas\",\n grid1: \"1 columna\",\n grid2: \"2 columnas\",\n grid3: \"3 columnas\",\n grid4: \"Columna izquierda\",\n grid5: \"Columna derecha\",\n grid6: \"4 columnas\",\n section6: \"Botones\",\n interestForm: \"Formulario de interés\",\n actionButton: \"Botón de acción\",\n markComplete: \"Marcar como completado\",\n section7: \"Interactivo\",\n interactiveButton: \"Botón interactivo\",\n interactiveInput: \"Entrada interactiva\",\n interactiveWait: \"Espera interactiva\"\n },\n components: {\n sidebar: {\n verticalAllignment: {\n top: \"Superior\",\n bottom: \"Inferior\",\n center: \"Centrar\",\n },\n alignment: {\n left: \"Izquierda\",\n center: \"Centro\",\n right: \"Derecha\",\n },\n backgroundColor: {\n text: \"Seleccionar color de fondo\",\n clearColor: \"Eliminar color\",\n },\n backgroundImage: {\n button: \"Seleccionar imagen\",\n removeButton: \"Eliminar imagen\",\n label: \"Posición\",\n placeholder: \"Elegir\",\n leftTop: \"izquierda superior\",\n leftCenter: \"centro izquierda\",\n leftBottom: \"izquierda inferior\",\n rightTop: \"derecha superior\",\n rightCenter: \"centro derecha\",\n rightBottom: \"derecha inferior\",\n centerTop: \"centro superior\",\n centerCenter: \"centro centro\",\n centerBottom: \"centro inferior\",\n label2: \"Repetición\",\n placeholder2: \"Elegir\",\n noRepeat: \"No Repetir\",\n repeat: \"Repetir\",\n \"repeat-x\": \"Repetir en eje X\",\n \"repeat-y\": \"Repetir en eje Y\",\n space: \"Espacio\",\n round: \"Redondo\",\n },\n blockId: {\n placeholder: \"Identificador del bloque\",\n label: \"Identificador del bloque\",\n description:\n \"Los identificadores recomendados para IA: breve descripción, acerca del taller, lo que aprenderás 1, lo que aprenderás 2, lo que aprenderás 3, para quién es esto, sobre nosotros, cita\",\n },\n buttonAction: {\n label: \"Acción al completar\",\n description:\n \"Especifica lo que sucede después de que una persona envía su información a través del formulario seleccionado.\",\n placeholder: \"Elegir\",\n label2: \"Enlace a\",\n placeholder2: \"Elegir\",\n label3: \"Acción del enlace\",\n description3:\n \"Especifica si el enlace se abrirá en la pestaña actual o en otra pestaña.\",\n placeholder3: \"Elegir\",\n callBackComplete: \"Texto que aparecerá al completar la acción\",\n callBacklinkTo: \"Enlace a\",\n completeDescription:\n \"Añade un breve mensaje de confirmación que las personas verán después de enviar su información.\",\n linkDescription:\n \"La persona será redirigida a este enlace después de hacer clic en el botón.\",\n label4: \"Enlace a la sección de espacio\",\n description4: \"Especifique si el enlace se abrirá en la pestaña actual del navegador o en otra pestaña o si el enlace saltará a una sección de esta página.\",\n selectSection: \"Seleccionar sección\",\n description5: \"Esta opción le permite saltar a una sección específica de esta página cuando se hace clic en el enlace.\",\n description6: \"Para seleccionar la sección, haga clic en el botón a continuación y luego haga clic en la sección a la que desea vincularse.\",\n label5: \"¡La sección está vinculada!\",\n label6: \"URL del enlace\",\n description7: \"Especifique el enlace URL al que se dirigirá al usuario.\",\n label7: \"Se abre en la pestaña actual\",\n label8: \"Abre otra pestaña\",\n label9: \"Hacer nada\",\n label10: \"Redirigir al usuario a\",\n label11: \"Seleccione una opción\",\n label12: \"Otro espacio\",\n label13: \"Enlace personalizado\",\n label14: \"Haga clic en una sección de la página\",\n },\n buttonBackgroundColor: {\n button: \"Limpiar color\",\n },\n buttonText: {\n placeholder: \"Texto del botón\",\n label: \"Texto del botón\",\n },\n fileName: {\n placeholder: \"Nombre de archivo\",\n label: \"Nombre de archivo\",\n },\n interactiveWaitTime: {\n label1: \"Selecciona una opción\",\n label2: \"Esperar hasta una fecha\",\n label3: \"Esperar una cantidad de días\",\n label4: \"Fecha de la muestra de contenido\",\n placeholder: \"Fecha de la muestra de contenido\",\n label5: \"1 día\",\n label6: \"2 días\",\n label7: \"3 días\",\n label8: \"4 días\",\n label9: \"5 días\",\n label10: \"6 días\",\n label11: \"1 semana\",\n label12: \"2 semanas\",\n label13: \"1 mes\",\n },\n linkAction: {\n label: \"Acción del enlace\",\n description:\n \"Especificar si el enlace se abre en la misma pestaña o en una pestaña nueva.\",\n placeholder: \"Elegir\",\n label2: \"Se abre en la misma pestaña\",\n label3: \"Se abre en una pestaña nueva\",\n },\n margin: {\n topMargin: \"Margen superior -\",\n text: \"Margen inferior -\",\n bottom: \"Inferior\",\n left: \"Izquierda\",\n leftMargin: \"Margen izquierdo -\",\n right: \"Derecha\",\n rightMargin: \"Margen derecho\",\n },\n padding: {\n top: \"Superior\",\n topPadding: \"Relleno superior\",\n bottom: \"Inferior\",\n bottomPadding: \"Relleno inferior\",\n left: \"Izquierda\",\n leftPadding: \"Relleno izquierdo\",\n right: \"Derecha\",\n rightPadding: \"Relleno derecho\",\n },\n radius: {\n square: \"Cuadrado\",\n round: \"Redondeado\",\n circle: \"Circular\",\n },\n spaceAttrs: {\n addCover: \"Añadir imagen de portada\",\n text: \"Las dimensiones recomendadas para las imágenes de portada son 1200 x 300 píxeles\",\n addCover2: \"Añadir portada\",\n text2:\n \"Las dimensiones recomendadas para las imágenes de portada son 1200 x 300 píxeles\",\n removeCover: \"Eliminar portada\",\n },\n verticalAllignent: {\n top: \"Superior\",\n center: \"Centro\",\n bottom: \"Inferior\",\n },\n width: {\n full: \"Completo\",\n size: \"3/4\",\n size2: \"1/2\",\n actual: \"Actual\",\n },\n },\n blockMenuActions: {\n label1: \"Añadir bloque\",\n label2: \"Añadir emoji\",\n label3: \"Configuraciones\",\n label4: \"Eliminar\",\n label5: \"Mover\",\n label6: \"Ir al espacio o hacer doble clic en el bloque\",\n label7: \"Sustituir\",\n label8: \"Alineación\",\n left: \"Izquierda\",\n center: \"Centrar\",\n right: \"Derecha\",\n write: \"Escribir algo...\",\n label9: \"Añadir bloque\",\n label10: \"Encabezado 1\",\n h1: \"H1\",\n label11: \"Encabezado 2\",\n h2: \"H2\",\n label12: \"Añadir espacio\",\n label13: \"Añadir imagen\",\n label14: \"Añadir video\",\n label15: \"Añadir cuadrícula\",\n label16: \"Añadir plantilla\",\n label17: \"Añadir bloque\",\n label18: \"Duplicado\",\n },\n blocksMenu: {\n basicBlock: \"Bloques básicos\",\n mediaBlock: \"Bloques Medios\",\n contentBlock: \"Bloques de contenido\",\n },\n blocksMenuInline: {\n file: \"Archivo\",\n image: \"Imagen\",\n video: \"Video\",\n label1: \"Añadir emoji\",\n label2: \"Añadir imagen\",\n label3: \" Desplegar/Plegar la barra de formato\",\n },\n blocksMenuSimple: {\n label1: \"Añadir\",\n file: \"Archivo\",\n image: \"Imagen\",\n video: \"Video\",\n label2: \"Añadir emoji\",\n label3: \"Añadir imagen\",\n label4: \"Mostrar formato\",\n cancelButton: \"Cancelar\",\n },\n emptyMessage: {\n text: \"Este espacio de contenido está vacío. Puedes\",\n button1: \"editar esta página\",\n text2: \"o\",\n button2: \"utilizar una plantilla\",\n text3: \"para empezar\",\n text4: \"Un espacio vacío lleno de potencial...\",\n },\n fixedBottomMenu: {\n label1: \"Añadir elementos como encabezados, imágenes y videos\",\n addBlock: \"Añadir bloque\",\n label2: \"Añadir un espacio de contenido, discusión o evento\",\n space: \"Espacio\",\n label3:\n \"Añadir una cuadrícula para utilizar múltiples columnas para el contenido\",\n grid: \"Red\",\n label4: \"Añadir una opción de diseño precreada\",\n layouts: \"Diseños\",\n label5:\n \"Añadir una plantilla para configurar tu espacio automáticamente\",\n template: \"Plantillas\",\n },\n formatMenu: {\n text: \"Texto\",\n smallText: \"Texto pequeño\",\n largeText: \"Texto grande\",\n heading1: \"Encabezado 1\",\n heading2: \"Encabezado 2\",\n heading3: \"Encabezado 3\",\n bulletedList: \"Lista de viñetas\",\n orderedList: \"Lista ordenada\",\n text2: \"Texto\",\n label1: \"Formato\",\n text3: \"Texto\",\n numberedList: \"Lista numerada\",\n label2: \"Alineación\",\n left: \"Izquierda\",\n center: \"Centro\",\n right: \"Derecha\",\n label3: \"Acción del enlace\",\n description:\n \"Especificar si el enlace se abre en la misma pestaña o en una pestaña nueva.\",\n placeholder: \"Elegir\",\n label4: \"Se abre en la misma pestaña \",\n label5: \"Se abre en una pestaña nueva\",\n label6: \"Formato del enlace\",\n description2:\n \"Especifica si el enlace se mostrará como un texto plano o como un enlace destacado.\",\n placeholder2: \"Elegir\",\n label7: \"Mostrar como texto\",\n label8: \"Mostrar como enlace destacado\",\n save: \"Guardar\",\n delete: \"Eliminar\",\n label9: \"Tachado\",\n label10: \"Subrayado\",\n label11: \"Bloque de código\",\n label12: \"Color de texto\",\n placeholder3: \"Valor HEX\",\n unsetColor: \"Quitar color\",\n label13: \"Color de resaltado\",\n label14: \"Enlace a la sección de espacio\",\n description3: \"Especifique si el enlace se abrirá en la pestaña actual del navegador o en otra pestaña o si el enlace saltará a una sección de esta página.\",\n selectSection: \"Seleccionar sección\",\n description4: \"Esta opción le permite saltar a una sección específica de esta página cuando se hace clic en el enlace.\",\n description5: \"Para seleccionar la sección, haga clic en el botón a continuación y luego haga clic en la sección a la que desea vincularse.\",\n label15: \"¡La sección está vinculada!\",\n label16: \"URL del enlace\",\n description6: \"Especifique el enlace URL al que se dirigirá al usuario.\",\n },\n formatMenuSimple: {\n t: \"T\",\n h1: \"H1\",\n h2: \"H2\",\n h3: \"H3\",\n label1: \"Acción del enlace\",\n description1:\n \"Especificar si el enlace se abre en la misma pestaña o en una pestaña nueva.\",\n placeholder1: \"Elegir\",\n label2: \"Se abre en la misma pestaña\",\n label3: \"Se abre en una pestaña nueva\",\n label4: \"Formato del enlace\",\n description2:\n \"Especifica si el enlace se mostrará como un texto plano o como un enlace destacado\",\n placeholder2: \"Elegir\",\n label5: \"Mostrar como texto\",\n label6: \"Mostrar como enlace destacado\",\n save: \"Guardar\",\n delete: \"Eliminar\",\n label7: \"Formato\",\n left: \"Izquierda\",\n center: \"Centro\",\n right: \"Derecha\",\n placeholder3: \"Valor HEX\",\n placeholder4: \"Color HEX\",\n unsetColor: \"Quitar color\",\n },\n inlineMenu: {\n h1: \"H1\",\n h2: \"H2\",\n bulletList: \"Lista de viñetas\",\n checkList: \"Checklist\",\n circle: \"Círculo\",\n moreOption: \"Más opciones\",\n },\n interactiveInput: {\n hideResponses: \"Ocultar otras respuestas\",\n showResponses: \"Mostrar otras respuestas\",\n hideResponses2: \"Ocultar respuestas\",\n hidePrivateMessages: \"Ocultar mensajes privados\",\n showPrivateMessages: \"Mostrar mensajes privados\",\n showResponses2: \"Mostrar respuestas\",\n loadMoreResponse: \"Cargar más respuestas\",\n placeholder: \"Escribe algo...\",\n text: \"¿Quieres que esta respuesta sea visible para otros miembros?\",\n },\n newMedia: {\n add: \"Añadir\",\n },\n regPageColor: {\n clearColor: \"Limpiar color\",\n },\n regPageColors: {\n text: \"Apariencia de la página de registro\",\n applyAppearance: \"Aplicar apariencia\",\n title1: \"Seleccionar color de fondo\",\n title2: \"Seleccionar color de texto\",\n label1: \"Color de fondo\",\n label2: \"Color de texto predeterminado\",\n label3: \"Aumentar el ancho de la página\",\n },\n resource: {\n areYouSure: \"¿Estás seguro/a?\",\n label1: \"Se publicará en esta fecha\",\n edit: \"Editar\",\n addPage: \"Añadir página\",\n },\n sideBlocksMenuBak: {\n addBlock: \"Añadir bloque\",\n back: \"Volver\",\n },\n sideBlocksMenu: {\n text: \"Los diseños son opciones de diseño ya listas para añadir a tu espacio.\",\n text2:\n \"Empieza por una selección de plantillas personalizables de páginas completas\",\n layout: \"Diseños\",\n template: \"Plantillas\",\n addBlock: \"AÑADIR BLOQUE\",\n block: \"Bloques\",\n },\n sideConfigurationsMenu: {\n title: \"CONFIGURACIONES DEL BLOQUE\",\n label1: \"Nombre del espacio e imagen de portada\",\n label2: \"Atributos del archivo\",\n label3: \"Opciones de entrada interactiva\",\n attrPlaceholder1: \"Escribe algo...\",\n attrLabel: \"Marcador de posición\",\n attrLabel2:\n \"Permitir que los miembros vean todas las respuestas\",\n attrLabel3:\n \"Mostrar las respuestas de otros antes de enviar\",\n attrLabel4:\n \"Permitir que los miembros elijan si su respuesta será visible a los demás\",\n attrLabel5: \"Permitir múltiples respuestas por persona\",\n attrLabel6:\n \"Permitir que el participante omita esta solicitud\",\n attrLabel7:\n \"Notificar a los administradores sobre nuevas publicaciones\",\n label4: \"Opciones de entrada interactiva\",\n label5: \"Relleno\",\n label6: \"BLOQUE\",\n label7: \"COLUMNA\",\n label8: \"Margen\",\n label9: \"CUADRÍCULA\",\n label10: \"Alineación vertical\",\n label11: \"Opciones del botón\",\n label12: \"Color de fondo del botón\",\n label13: \"Color de texto del botón\",\n text: \"Esquinas del botón\",\n label14: \"Fondo\",\n label15: \"Color\",\n label16: \"Imagen\",\n lael17: \"Restablecer\",\n resetBlock: \"Restablecer bloque\",\n label18: \"Alineación\",\n label19: \"Radio del borde\",\n label20: \"esquinas\",\n label21: \"Nombre del bloque\",\n label22: \"Opciones de notificación por correo electrónico\",\n label23: \"Enviar correo electrónico de notificación\",\n attrLabel8: \"Incluir mensaje personalizado\",\n attrLabel9: \"Incluir el contenido de la siguiente sección\",\n attrLabel10: \"Incluir contenido completo\",\n attrLabel11: \"Vista previa breve\",\n attrLabel12: \"Sujeta\",\n attrLabel13: \"Mensaje\",\n defaultWaitLabel: \"La siguiente sección ha sido lanzada en {{space_name}}\",\n defaultWaitMessage: \"Hola {{first_name}}. Solo quería informarte que se lanzó la siguiente sección en {{space_name}}. {{space_link_button}}\"\n },\n takeSurvey: {\n text: \"Esta encuesta está vacía\",\n },\n tiptapAi: {\n placeholder: \"Escribe una breve descripción\",\n label:\n \"Por favor, escribe 2 o 3 oraciones para describir tu oferta.\",\n placeholder2: \"por ejemplo, coaches, consultores y otros profesionales de terapias holísticas.\",\n label2: \"¿Para quién es esta oferta?\",\n text: \"Hola! Estamos experimentando con una nueva función de IA. ¿Quieres que Sutra genere automáticamente el texto de tu plantilla utilizando IA?\",\n },\n uploader: {\n label1: \"Enlace\",\n label2: \"Código\",\n placeholder: \"Pega el enlace de la imagen o del archivo\",\n label3: \"Incrustar enlace\",\n placeholder2:\n \"Pega el código incrustado -> \",\n label4: \"Incrustar código\",\n saveEmbed: \"Guardar\",\n placeholder3: \"Buscar imágenes\",\n saveImage: \"Guardar imagen\",\n },\n viewPage: {\n text: \"Esta página está vacía\",\n },\n },\n },\n users: {\n payment: {\n completePayment: \"Completar el pago\",\n join: \"Unirse al espacio\",\n pay: \"Pagar\",\n },\n stepper: {\n step1: \"Paso 1\",\n step1Description: \"Inicia sesión\",\n step2: \"Paso 2\",\n step2Description: \"Completa el pago\",\n step3: \"Paso 3\",\n step3Description: \"Obtén el acceso\",\n },\n start: {\n title: \"Bienvenido/a\",\n subtitle:\n \"Por favor, introduce tu correo electrónico abajo.\",\n email: \"Correo electrónico\",\n submit: \"Continuar\",\n invalidEmailErrorMsg: \"Correo electrónico no válido\",\n },\n signIn: {\n title: \"Iniciar sesión con tu cuenta\",\n subtitle: \"¿No tienes una cuenta?\",\n subtitleLink: \"Registrarse\",\n email: \"Correo electrónico\",\n password: \"Contraseña\",\n submit: \"Iniciar sesión\",\n magicLink: \"Obtener un enlace de acceso directo\",\n forgotPassword: \"¿Has olvidado la contraseña?\",\n invalidEmailErrorMsg: \"Correo electrónico no válido\",\n },\n signUp: {\n invalidEmailErrorMsg: \"Correo electrónico no válido\",\n invalidPasswordErrorMsg:\n \"La contraseña debe tener al menos 8 caracteres\",\n invalidFirstNameErrorMsg:\n \"El nombre debe tener al menos 3 caracteres\",\n title: \"Crea una nueva cuenta\",\n subtitle: \"¿Ya tienes una cuenta?\",\n subtitleLink: \"Iniciar sesión\",\n firstName: \"Nombre\",\n lastName: \"Apellido\",\n username: \"Nombre de usuario\",\n email: \"Correo electrónico\",\n password: \"Contraseña\",\n emailNewsletterConfirmation:\n \"Suscríbete a la newsletter de Sutra para enterarte de nuestros seminarios web gratuitos sobre procesos grupales, enseñanzas transformadoras y negocios basados en relaciones.\",\n submit: \"Suscribirse\",\n legalPrefix: \"Suscribiendote a Sutra aceptas nuestros\",\n terms: \"Términos de servicio\",\n privacy: \"Política de privacidad\",\n },\n spaceReference: {\n total: \"Total de hoy\",\n },\n planReference: {\n total: \"Total\",\n total_today: \"Total de hoy\",\n due_in: \"Próximo pago en 14 días\",\n paymentDetails: {\n annual: \"Suscripción anual de\",\n month: \"Suscripción mensual de\",\n },\n },\n resetPassword: {\n title: \"Restablece tu contraseña\",\n subtitle:\n \"Por favor, introduce una contraseña nueva para tu account de Sutra abajo.\",\n password: \"Contraseña\",\n passwordConfirmation: \"Confirmar contraseña\",\n submit: \"Restablecer contraseña\",\n },\n recover: {\n title: \"¿Has olvidado tu contraseña?\",\n subtitle:\n \"Por favor, introduce tu dirección de correo electrónico y te enviaremos las instrucciones sobre como restablecer tu contraseña.\",\n email: \"Email\",\n submit: \"Envíame instrucciones \",\n footer: \"¿Ya tienes una cuenta?\",\n footerLink: \"Iniciar sesión\",\n },\n magicLink: {\n invalidEmailErrorMsg: \"Correo electrónico no válido\",\n title: \"Solicitar enlace de acceso directo\",\n subtitle:\n \"Por favor, introduce tu correo electrónico y te enviaremos un enlace de acceso directo que te permitirá iniciar sesión automáticamente.\",\n email: \"Email\",\n submit: \"Continuar\",\n footer: \"Iniciar sesión con tu email\",\n alertTitle: \"Ya casi...\",\n alertMessage:\n \"Hemos enviado un enlace de acceso directo a tu email. ESTO ES UNA PRUEBA, NO SE HA ENVIADO NINGÚN EMAIL REAL.\",\n },\n edit: {\n title: \"Por favor, completa tu perfil\",\n addProfileImage: \"Subir foto del perfil\",\n removeProfileImage: \"Eliminar foto del perfil\",\n bioPlaceholder: \"Comparte un poco sobre ti...\",\n bio: \"Presentación\",\n submit: \"Guardar\",\n skip: \"Omitir y hacerlo después \",\n },\n magicSignin: {\n text: \"Iniciando sesión...\",\n },\n profile: {\n button: \"Mensaje\",\n button2: \"Editar perfil\",\n title: \"Espacios\",\n },\n profileModal: {\n profile: \"Perfil\",\n message: \"Mensaje\",\n editProfile: \"Editar perfil\",\n openProfile: \"Visualizar perfil\",\n spaces: \"Espacios\",\n },\n signOut: {\n loggedOUt: \"Sesión cerrada\",\n title: \"Has cerrado sesión\",\n message: \"¡Hasta luego!\",\n },\n },\n errors: {\n basic: \"¡Vaya, algo ha salido mal!\",\n },\n },\n },\n ru: {\n translation: {\n premiumFeatures: {\n personal: {\n description1:\n \"Неограниченное количество спейсов и участников для размещения контента и общения для всех ваших предложений.\",\n description2:\n \"Красивые страницы для регистрации и лендинги для всех ваших курсов и мероприятий на одной платформе.\",\n description3:\n \"Отправляйте рассылки всем вашим участникам с помощью нашей мощной функцией рассылки\",\n },\n professional: {\n description1: \"Отсутствие комиссий за проведение платежей\",\n description2:\n \"Настройка фирменного стиля и оформления, а также персонализированные поддомены.\",\n description3:\n \"Неограниченное количество автоматизаций и процессов для обучения через функцию авто-разговора.\",\n description4: \"До 2 админов для всех ваших спейсов\",\n },\n organization: {\n description1: \"Отсутствие комиссий за проведение платежей\",\n description2: \"Расширенная служба поддержки клиентов\",\n description3: \"Безлимитное количество админов\",\n description4: \"Возможность интегрировать с Single Sign-on\",\n },\n },\n premiumMessages: {\n can_auto_tag: {\n title: \"Upgrade to use this feature\",\n message: \"Auto tagging with AI is a premium feature available on the Professional plan.\"\n },\n can_use_zoom_recordings: {\n title: \"Upgrade to use this feature\",\n message: \"Zoom recordings is a premium feature available on the Organization plan.\"\n },\n can_create_quizzes: {\n title: \"Upgrade to use this feature\",\n message: \"Quizzes are a premium feature available on the Organization plan.\"\n },\n can_duplicate_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Duplicating a space is a premium feature available on the Professional plan.\",\n },\n can_save_templates: {\n title: \"Upgrade to use this feature\",\n message:\n \"Saving as space as a reusable template is a premium feature available on the Professional plan.\",\n },\n can_edit_shareable_link: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Персонализированные ссылки для общего доступа — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_upload_cover: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \" Загрузка персонализированной обложки — это премиальная функция, доступная на тарифном плане Индивидуальный.\",\n },\n\n can_upload_logo: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Настройки логотипа — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_set_layout: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Настройка оформления вашего спейса — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_set_theme: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Настройка цветовой схемы вашего спейса — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_set_format: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Изменение формата вашего спейса — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_add_step_send_to_pending: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Присвоение новым участникам статуса ожидающих - это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_add_step_send_email: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Автоматическая Email-рассылка — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_add_add_to_existing_space: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Автоматическое добавление участников в выбранные спейсы — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_add_step_wait: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Добавление условий ожидания для дополнительных шагов — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_add_step_webhook: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Добавление вебхуков — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_add_step_survey_person: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Опрос новых участников — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_schedule_states: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Опции автоматического планирования вашего спейса — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_broadcast: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Отправка Email-рассылок — это премиальная функция, доступная на тарифном плане Индивидуальный.\",\n },\n\n can_survey: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Создание опросов - это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_use_interest_form_block: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \" Добавление форм сбора заявок — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n can_use_interactive_block: {\n title: \"Обновите, чтобы использовать эту функцию\",\n message:\n \"Добавление интерактивных блоков — это премиальная функция, доступной на тарифном плане Профессионал.\",\n },\n\n can_set_flexible_payments: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Настройка гибких опций оплаты — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_activate_completions: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Возможность отмечать спейсы пройденными — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n max_allowed_spaces: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Привет! Похоже, что вы использовали все свои бесплатные спейсы! Переход на план Индивидуальный даcт вам неограниченное количество спейсов и участников, чтобы вы могли создавать практически всё, что угодно.\",\n },\n max_allowed_ij: {\n title: \"Upgrade to use this feature\",\n message:\n \"You can only add up to 2 discussion prompts per space on the free plan. Please upgrade to the Professional plan to add unlimited discussion prompts to any space.\",\n },\n\n max_allowed_managers_pro: {\n title: \"Смените тариф, чтобы добавить дополнительных админов\",\n message:\n \"Перейдите на план Профессионал, чтобы добавить до двух админов для каждого спейса, или на план Организация, чтобы иметь доступ к неограниченному количеству админов.\",\n },\n\n max_allowed_managers_org: {\n title: \"Смените тариф, чтобы добавить дополнительных админов\",\n message:\n \"Перейдите на план Организация, чтобы добавить неограниченное количество админов.\",\n },\n\n can_see_participation_tab: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Метрики участников — это премиальная функция, доступная на тарифном плане Профессионал.\",\n },\n\n can_send_selective_broadcast: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Выборочная рассылка — это премиальная функция, доступная на тарифном плане Организация.\",\n },\n\n can_send_message_broadcast: {\n title: \"Смените тариф, чтобы использовать эту функцию\",\n message:\n \"Рассылка сообщений — это премиум-функция, доступная на тарифном плане Организация.\",\n },\n can_schedule_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Scheduling broadcasts is a premium feature available on the Silver plan.\",\n },\n can_add_from_children: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automatically adding any members from sub spaces is a premium feature available on the Silver plan.\",\n },\n can_add_to_direct_open_children: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automatically adding incoming members to all direct open sub spaces is a premium feature available on the Silver plan.\",\n },\n can_send_message: {\n title: \"Upgrade to use this feature\",\n message:\n \"Automatically sending direct messages to new members is a premium feature available on the Silver plan.\",\n },\n\n can_create_registration_page: {\n title: \"Upgrade to use this feature\",\n message: \"Creating custom registration and landing pages is a premium feature available on the Bronze plan.\"\n },\n\n can_create_coupon: {\n title: \"Upgrade to use this feature\",\n message: \"Creating coupon codes is a premium feature available on the Silver plan.\"\n },\n\n can_create_bundles: {\n title: \"Upgrade to use this feature\",\n message: \"Creating bundles is a premium feature available on the Silver plan.\"\n },\n },\n home: {\n sidebar: {\n createButton: \"Новый спейс\",\n spaces: \"Ваши спейсы\",\n invitations: \"Приглашения\",\n directMessages: \"Личные сообщения\",\n gettingStarted: \"Начало работы\",\n scheduleDemo: \"Записаться на демонстрацию\",\n upgrade: \"Улучшите ваш тариф\",\n promoBoxTitle:\n \"Присоединяйтесь к сотням создателей, которые пользуются расширенными функциями Sutra для проведения мощных групповых программ онлайн.\",\n promoBoxItem1: \"Неограниченное количество спейсов\",\n promoBoxItem2: \"Полные возможности фирменного стиля\",\n promoBoxItem3: \"Дополнительные админы\",\n promoBoxButton: \"Улучшить тариф сейчас\",\n },\n spacesList: {\n yourSpaces: \"Ваши спейсы\",\n directMessagesTitle: \"Личные сообщения\",\n invitationsTitle: \"Приглашения\",\n topTitle: \"Верхние спейсы\",\n managedTitle: \"Управляемые спейсы\",\n allTitle: \"Все спейсы\",\n archivedTitle: \"Архивированные спейсы\",\n deletedTitle: \"Удалённые спейсы\",\n pendingTitle: \"Запланированные спейсы\",\n directMessages: \"Личные сообщения\",\n top: \"Верхние\",\n managed: \"Управляемые\",\n all: \"Все\",\n archived: \"Архивированные\",\n invitations: \"Приглашения\",\n deleted: \"Удалённые\",\n pending: \"Запланированные\",\n empty: \"У вас нет\",\n tabTitle: \"Sutra - Панель управления\",\n learn: \"Изучить основы\",\n createFirst: \"Создайте ваш первый спейс\",\n },\n },\n app: {\n payment: {\n payment: {\n tabTitle: \"Sutra - Форма оплаты\",\n title: \"Завершить оплату\",\n },\n planOption: {\n frequencyDescription1: \"за месяц\",\n frequencyDescription2: \"Цена за месяц при оформлении годовой подписки\",\n currentPlan: \"Текущий тариф\",\n billedMonthly: \"Ежемесячная подписка\",\n billedAnnually: \"Годовая подписка\",\n },\n stripeForm: {\n due_in_trial: \"Оплата через 14 дней\",\n pay: \"Оплатить\",\n },\n },\n gettingStarted: {\n items: {\n setup: \"Настроить спейс вашей программы\",\n privacy: \"Настройки доступа и оплаты\",\n registration: \"Создание страницы регистрации\",\n invitations: \"Приглашение участников\",\n settings: \"Как работают настройки спейса\",\n interactive: \"Интерактивное обучение\",\n interest: \"Формы сбора заявок\",\n appearance: \"Оформление и схема цвета\",\n grids: \"Настройки плитки и блока\",\n broadcasts: \"Email-рассылки\",\n tagging: \"Теги\",\n emojis: \"Эмодзи на боковой панели\",\n },\n templates: {\n groupprogram: {\n label: \"Групповая программа\",\n description:\n \"Спейс для программы, где вы можете организовать всё необходимое для совместного обучения группы людей.\",\n },\n zoomworkshop: {\n label: \"Zoom Семинар\",\n description:\n \"Организуйте всё, что нужно для проведения простого семинара с помощью Zoom.\",\n },\n mastermind: {\n label: \"Мастермайнд\",\n description:\n \"Пригласите группу участников вместе вступить в процесс мастермайнда.\",\n },\n selfpacedcourse: {\n label: \"Курс в собственном темпе\",\n description:\n \"Гибкий шаблон для создания курса, который можно проходить в собственном темпе.\",\n },\n communityspace: {\n label: \"Спейс для сообщества\",\n description:\n \"Объединяйте людей в динамичном сообществе онлайн, которое будет расти вместе с вашим комьюнити.\",\n },\n oneononecoaching: {\n label: \"Коучинг один на один\",\n description:\n \"Создайте отдельный спейс для каждого вашего клиента коучинга.\",\n },\n },\n loading: {\n text: \"Ваш шаблон загружается, пожалуйста, подождите...\",\n },\n tabTitle: \"Sutra - Начало работы\",\n mainTitle: \"Гайд по началу работы\",\n selectTemplate: \"Выберите этот шаблон\",\n advanceFeatures: \"Дополнительные возможности\",\n welcome: \"Добро пожаловать\",\n description1:\n \"Sutra позволяет вам легко организовать контент и общение для курсов, сообществ, коучинга один на один и для других вариантов использования. Ознакомьтесь с основами платформы в этом пятиминутном видео.\",\n watchVideo: \"Посмотреть видео\",\n createFirstSpace: \"Создайте ваш первый спейс\",\n gettingStartedGuide: \"Гайд по началу работы\",\n description2:\n \"Узнайте больше о том, как работает Sutra: начните с чек-листа запуска и более подробного гайда.\",\n checkOutTheGuide: \"Ознакомиться с гайдом\",\n startWithATemplate: \"Начните с шаблона\",\n description3:\n \"Узнайте больше о том, как работает Sutra: начните с чек-листа запуска и более подробного гайда.\",\n learnAbout: \" Узнать подробнее о дополнительных возможностях\",\n description4:\n \"Sutra разработана таким образом, чтобы быть гибкой и мощной практически для любого варианта использования. На Sutra можно создавать уникальные взаимодействия онлайн, привлекать интерес к вашим различным предложениям, отправлять информационные рассылки и собирать коллективные знания.\",\n learnmore: \"Узнать подробнее\",\n },\n premium: {\n try: \" Попробовать Sutra\",\n include: \"Функции, включающие\",\n upgrade: \"Перейти на другой тариф сейчас\",\n },\n pricing: {\n tabTitle: \"Sutra - Тарифы\",\n upgrade: \"Смените ваш тариф\",\n text: \"Что бы вам ни понадобилось для вашего курса или сообщества, мы здесь, чтобы поддержать вашу деятельность. Обращайтесь к нам по любым вопросам, которые могут у вас возникнуть, по адресу support@sutra.co\",\n },\n scheduleDemo: {\n tabTitle: \"Sutra - Записаться на демонстрацию\",\n },\n welcome: {\n tabTitle: \"Sutra - Добро пожаловать\",\n title: \"Добро пожаловать на Sutra!\",\n description1:\n \"Мы рады, что вы здесь. Пожалуйста, найдите минутку, чтобы посмотреть видео ниже...\",\n description2:\n \"Хотите попробовать бесплатно один из наших платных тарифных планов?\",\n description3:\n \"Выберете один из тарифных планов, указанных ниже, чтобы начать 14-дневную бесплатную пробную версию. По окончании пробного периода вам автоматически будет выставлен счёт за выбранный вами тарифный план.\",\n yes: \"Да, показать тарифы\",\n no: \"Нет, спасибо\",\n },\n },\n layout: {\n userButton: {\n home: \"Главная\",\n viewProfile: \"Посмотреть профиль\",\n settings: \"Настройки\",\n support: \"Поддержка\",\n language: \"Язык\",\n terms: \"Условия и конфиденциальность\",\n logout: \"Выйти\",\n copyright: \"Sutra Spaces, LLC © 2022\",\n },\n directMessages: {\n label: \"Личные сообщения\",\n actionButton: \"Посмотреть все\",\n empty: \"У вас нет личных сообщений\",\n directMessage: \"Личные сообщения\",\n },\n notifications: {\n label: \"Уведомления\",\n actionButton: \"Очистить всё\",\n empty: \"У вас нет уведомлений\",\n notification: \"Уведомления\",\n },\n headerContent: {\n registrationPage: \"Страница регистрации\",\n nonManagersHidden: \"Шапка страницы скрыта для всех, кроме админов\",\n },\n search: {\n reflection: \"Ответ\",\n comment: \"Комментировать\",\n allSpaces: \"Все спейсы\",\n withinTop: \"Внутри верхнего спейса\",\n withinSpace: \"Внутри этого спейса\",\n everything: \"Всё\",\n titlesOnly: \"Только заголовки\",\n tagsOnly: \"Только теги\",\n content: \"Контент\",\n discussion: \"Чат\",\n events: \"Мероприятия\",\n users: \"Пользователи\",\n placeholder: \"Поиск...\",\n nothingFound: \"Ничего не найдено\",\n search: \"Поиск\",\n },\n uploader: {\n pending: \"В статусе ожидания\",\n used: \"Использовано\",\n uploading: \"Загрузка\",\n finishing: \"Завершение\",\n processing: \"Обработка\",\n completed: \"Завершено\",\n },\n },\n resources: {\n pages: {\n form: {\n label: \"Заголовок\",\n placeholder: \"О чем ваша страница?\",\n create: \"Создать страницу\",\n save: \"Сохранить страницу\",\n },\n },\n form: {\n title: {\n label: \"Заголовок\",\n placeholder: \"О чем ваша тема?\",\n },\n publish: {\n label: \"Опубликовать в определённую дату\",\n },\n date: {\n label: \"Выбрать дату\",\n },\n update: \"Обновить коллекцию страниц\",\n create: \"Создать коллекцию страниц\",\n },\n },\n settings: {\n editProfile: {\n tabTitle: \"Sutra - Редактировать профиль\",\n editProfile: \"Редактировать профиль\",\n firstName: \"Имя\",\n lastName: \"Фамилия\",\n username: \"Имя пользователя\",\n email: \"Email\",\n removeProfileImage: \"Удалить фото профиля\",\n addProfileImage: \"Загрузить фото профиля\",\n about: \"О себе\",\n location: \"Местонахождение\",\n bio: \"Биография\",\n bioPlaceholder: \"Расскажите немного о себе...\",\n updateProfile: \"Обновить профиль\",\n },\n accountSettings: {\n accountSettings: \"Настройки аккаунта\",\n changePassword: \"Изменить пароль\",\n currentPassword: \"Текущий пароль\",\n newPassword: \"Новый пароль\",\n newPasswordConfirmation: \"Подтвердите новый пароль\",\n updatePassword: \"Обновить пароль\",\n advanced: \"Дополнительно\",\n deleteAccount: \"Удалить аккаунт\",\n warning: \"Предупреждение\",\n deleteAccountWarning:\n \"Удаление вашего аккаунта необратимо. Данные вашего аккаунта будут удалены навсегда из нашей системы.\",\n closeYourAccount: \"Удалить ваш аккаунт\",\n invalidCurrentPasswordErrorMsg: \"Поле не может быть пустым\",\n invalidPasswordErrorMsg:\n \"Пароль должен содержать не менее 8 символов\",\n invalidPasswordConfirmationErrorMsg: \"Пароли не совпадают\",\n deleteAccountAlert: {\n title: \"Важно\",\n message:\n \"Удаление вашего аккаунта необратимо. Данные вашего аккаунта будут удалены навсегда из нашей системы.\",\n input:\n \"Пожалуйста, введите “удалить мой аккаунт”, чтобы подтвердить это действие.\",\n confirmButton: \"Удалить навсегда\",\n cancelButton: \"Отменить\",\n },\n cancelSubscriptionAlert: {\n title: \"Важно\",\n message: \"Пожалуйста, сначала отмените вашу подписку. \",\n confirmButton: \"Перейти к тарифному плану\",\n cancelButton: \"Сделать это позже\",\n },\n stripeAccount: {\n title: \"Сбросить подключение к Stripe\",\n alertTitle: \"Вы уверены?\",\n alertMessage:\n \"Если вы сбросите подключение к Stripe, ваши данные будут удалены с вашего аккаунта на Sutra, и вы сможете подключить новый аккаунт со Stripe.\",\n buttonText: \"Сбросить подключение\",\n confirmButton: \"Да\",\n cancelButton: \"Нет\",\n confirmTitle: \"Вы уверены?\",\n confirmMessage:\n \"Ваши данные Stripe будут удалены с вашего аккаунта на Sutra\",\n },\n },\n emailPreferences: {\n tabTitle: \"Sutra - Настройки уведомлений\",\n emailPreferences: \"Настройки уведомлений\",\n emailDigestPreferences: \"Настройки новостных рассылок\",\n emailDigestFrequency: \"Частота новостных рассылок\",\n emailDigestMessage:\n \"Чтобы настроить параметры рассылок для каждого спейса, перейдите в раздел настроек рассылок. Вы можете полностью отказаться от подписки на спейс, покинув его, или же вы можете кликнуть на «Отключить уведомления» в настройках рассылок.\",\n receiveWeeklyDigest:\n \"Получайте еженедельные новостные рассылки о новых отмеченных элементах и обсуждениях\",\n receiveAtMentions:\n \"Получать уведомление, когда кто-то @упомянул вас\",\n receiveLikes: \"Receive a notification when someone hearts your post\",\n },\n subscriptions: {\n frquencyOptions: \"Параметры частоты\",\n otherActions: \"Другие действия\",\n subscriptions: \"Особые предпочтения спейса\",\n searchBySpaceName: \"Поиск по названию спейса\",\n search: \"Поиск\",\n clear: \"Очистить\",\n options: \"Параметры\",\n otherActions: \"Другие действия\",\n emptySubscriptions: \"У вас нет подписок.\",\n leaveSpaceConfirmationTitle:\n \"Вы уверены, что хотите покинуть этот спейс?\",\n leaveSpaceConfirmationHtml:\n \"Вы больше не будете участником этого спейса и, возможно, не сможете присоединиться снова без согласия админа.\",\n leaveSpaceButtonText: \"Да, покинуть\",\n leaveSpaceDenyButtonText: \"Нет\",\n leaveSpace: \"Покинуть спейс\",\n unsubscribe: \"Отписаться\",\n unsubscribed: \"Отписан\",\n },\n digestPreferences: {\n digestedLabel: \"Сгруппировать все обновления в одну новостную рассылку\",\n digestedDescription:\n \"Новые сообщения из всех ваших спейсов будут сгруппированы в одной рассылке.\",\n undigestedLabel: \"Сгруппировать обновления по каждому спейсу\",\n undigestedDescription:\n \"Вы будете получать отдельные рассылки для каждого спейса, с которого будут поступать новые сообщения.\",\n },\n billing: {\n statuses: {\n pending: \"В статусе ожидания\",\n processing: \"Обработка\",\n paid: \"Оплачено\",\n trial: \"Trial\",\n },\n paymentMethod: {\n currentPaymentMethod: \"Текущий способ оплаты\",\n noCurrentPaymentMethod: \"Нет текущего способа оплаты\",\n addNewPaymentMethod: \"Добавить новый способ оплаты\",\n },\n stripe: {\n updatePaymentMethod: \"Обновить способ оплаты\",\n },\n tabTitle: \"Sutra - Тарифный план\",\n updatePaymentMethodMayus: \"ОБНОВИТЬ СПОСОБ ОПЛАТЫ\",\n payments: \"ПЛАТЕЖИ\",\n pdf: \"PDF\",\n noPayments: \"У вас нет истории платежей\",\n billing: \"Тарифный план\",\n upgradePlan: \"Сменить тариф\",\n changePlan: \"Сменить тариф\",\n updatePaymentMethod: \"Обновить способ оплаты\",\n cancelSubscription: \"Отменить подписку\",\n cancelConfirmationTitle:\n \"Вы уверены, что хотите отменить подписку?\",\n cancelConfirmationHtml:\n \"У вас больше не будет доступа к премиальным функциям вашего тарифного плана.\",\n cancelConfirmButtonText: \"Да, отменить\",\n cancelDenyButtonText: \"Нет\",\n billingHistory: \"История платежей\",\n tableDate: \"Дата\",\n tableAmount: \"Сумма\",\n tableStatus: \"Статус\",\n tableInvoice: \"Счет\",\n planPrefix: \"Вы сейчас подписаны на\",\n planSuffix: \"тарифный план\",\n updatePayment: {\n success: {\n title: \"Успешно\",\n message: \"Ваш способ оплаты был обновлен\",\n },\n error: {\n title: \"Ой, что-то пошло не так!\",\n },\n },\n },\n frequencyOptions: {\n mute: \"Отключить уведомления\",\n always: \"На каждом сообщении\",\n hour1: \"Каждый час\",\n hour2: \"Каждые 2 часа\",\n hour4: \"Каждые 4 часа\",\n hour8: \"Каждые 8 часов\",\n hour24: \"Раз в день\",\n hour168: \"Раз в неделю\",\n hour336: \"Раз в две недели\",\n },\n affiliates: {\n empty: \"У вас отсутствует история партнерских выплат\",\n history: {\n table: {\n referralName: \"Имя реферала\",\n startAt: \"Начало\",\n endAt: \"Окончание\",\n createdAt: \"Создано\",\n percent: \"Процент\",\n total: \"Общая заработанная сумма\",\n status: \"Статус\",\n value: \"Стоимость\",\n revenue: \"Доход\",\n payAt: \"Дата выплаты\",\n status: \"Статус\",\n },\n statuses: {\n null: \"Вожидании\",\n pending: \"Вожидании\",\n processing: \"Вобработке\",\n paid: \"Выплачено\",\n },\n paymentsHistory: \"История платежей\",\n },\n tabTitle: \"Sutra - Партнерская программа\",\n title: \"Партнерская программа\",\n affiliateLink: \"Это ваша партнерская ссылка\",\n copyMessage: \"Ссылка скопирована в буфер обмена\",\n stripeTitle: \"Stripe подключен к\",\n stripeConnected:\n \"Это ваш идентификатор аккаунта Stripe. Чтобы найти этот идентификатор в Stripe, пожалуйста, перейдите по ссылке для входа в Stripe и прокрутите вниз страницу настроек вашего аккаунта.\",\n stripeDisconnect: \"Отключить\",\n description:\n \"Чтобы получить оплату за партнерскую программу, пожалуйста, подключите ваш Stripe аккаунт, нажав на кнопку ниже.\",\n description2:\n \"Когда вы поделитесь этой ссылкой с другими, вы автоматически получите 40% дохода, полученного за первый год от тех, кто подпишется на платный план на Sutra.\",\n connect: \"Подключить Stripe\",\n history: \"История партнерских выплат\",\n historyLabel: \"Партнерская история\",\n },\n },\n spaces: {\n settings: {\n layout: {\n navbarContent: {\n mainSettings: \"Общие настройки\",\n members: \"Участники\",\n broadcast: \"Рассылки\",\n surveys: \"Опросы\",\n structures: \"Структуры\",\n sutraAdmin: \"Sutra Админ\",\n scheduled: \"Запланированные\",\n archived: \"Архивированные\",\n participation: \"Метрики участников\",\n },\n headerActions: {\n shareableLink: \"Ссылка для общего доступа\",\n },\n },\n main: {\n title: \"Общие настройки\",\n main: {\n invite: \"Пригласить\",\n shareableLink: \"Ссылка для общего доступа\",\n cancelLink: \"Отменить\",\n saveLink: \"Сохранить\",\n editButton: \"Редактировать ссылку\",\n subdomain: \"Ваш поддомен\",\n sutra_co: \".sutra.co\",\n label1: \"Ссылка скопирована в буфер обмена\",\n privacySetting: \"Выберите настройки доступа\",\n title1: \"Сделать этот спейс открытым\",\n description1:\n \"Этот спейс находится в пределах закрытого спейса и доступен только участникам этого спейса. Вы можете сделать его открытым за пределами этого спейса, включив эту функцию.\",\n title2: \"Показать страницу регистрации\",\n description2:\n \"Пользователи, не являющиеся участниками, увидят страницу регистрации при попытке получить доступ к этому спейсу, если эта функция включена.\",\n title3: \"Использовать страницу регистрации с устаревшими данными\",\n description3:\n \"Если этот параметр включен, в этом спейсе будет использоваться страница регистрации, созданная с помощью устаревшей версии.\",\n onButton: \"ON\",\n offButton: \"OFF\",\n editButton: \"Редактировать страницу\",\n previewButton: \"Предварительный просмотр страницы\",\n label2: \"Настройки доступа и оплаты\",\n label3: \"Настройки страницы регистрации\",\n description4:\n \"Включено - Участники попадут на страницу регистрации перед доступом к этому спейсу\",\n label4: \"Aвтоматизация\",\n description5:\n \"Запланируйте рассылки и автоматическое добавление участников в спейсы при их регистрации.\",\n label5: \"Настройки планирования\",\n description6:\n \"Выберите дату мероприятия или дату публикации и опции архивирования\",\n label6: \"Дополнительные настройки\",\n description7:\n \"Разрешения на создание контента, видимость участников, уведомления админа и исходные спейсы\",\n label7: \"Настройки SEO\",\n description8:\n \"Создайте мета-тег title, мета-описание и изображение, для поисковой оптимизации, которые будут отображаться в общих публикациях в социальных сетях.\",\n label8: \"Открытый\",\n description9:\n \"Этот спейс доступен всем\",\n label9: \"Закрытый\",\n description10:\n \"Этот спейс закрытый - участники должны быть приглашены в него.\",\n label10: \"Платный\",\n description11:\n \"Этот спейс платный и закрытый. Участники должны заплатить, чтобы присоединиться.\",\n description12:\n \"Участники будут попадать на страницу регистрации перед тем, как они смогут присоединиться к этому открытому спейсу.\",\n description13:\n \"Участники будут напрямую попадать в этот спейс, когда они присоединятся к нему.\",\n description14:\n \" Участники должны быть приглашены в этот закрытый спейс, чтобы получить доступ к нему. Если они приглашены, то они увидят страницу регистрации.\",\n description15:\n \"Участники должны быть приглашены напрямую в этот закрытый спейс, чтобы получить доступ к нему. Если они приглашены, то они увидят страницу для создания аккаунта, а не страницу регистрации.\",\n description16:\n \"Участники будут попадать на страницу регистрации перед тем, как они смогут присоединиться к этому платному спейсу.\",\n description17:\n \"Страница для создания аккаунта и оплаты будет показана перед тем, как участники смогут присоединиться к этому приватному спейсу. Они не увидят страницу регистрации.\",\n on: \"ON\",\n off: \"OFF\",\n label11: \"Участники\",\n label12: \"В статусе ожидания\",\n label13: \"Заинтересованные\",\n label14: \"Приглашенные\",\n label15: \"Платежи\",\n label16: \"Брендинг\",\n },\n additional: {\n allowMembersEdit:\n \"Разрешить участникам редактировать содержание на этой странице\",\n membersWillAddContent:\n \"Участники смогут добавлять и редактировать содержание на этой странице\",\n allowMembersCreatePosts:\n \"Разрешить участникам создавать новые публикации\",\n membersWillCreatePosts:\n \"Участники смогут создавать новые публикации в этом спейсе\",\n allowMembersCreateEvents:\n \"Разрешить участникам создавать новые мероприятия\",\n membersWillCreateEvents:\n \"Участники смогут создавать новые мероприятия в этом спейсе\",\n allowMembersCreateSubspaces:\n \"Разрешить участникам создавать новые под-спейсы\",\n membersWillCreateSubspaces:\n \"Участники смогут создавать под-спейсы на этой странице\",\n membersCanCreate: \"Участники могут создавать\",\n circleCreation: {\n options: {\n discussion: \"спейсы для чата\",\n content: \"спейсы для контента\",\n event: \"спейсы для мероприятия\",\n },\n placeholder:\n \"Выберите форматы спейсов, которые участники смогут создавать в этом спейсе\",\n },\n allowMembersToCopy: {\n description1:\n \"Разрешить участникам копировать участников со спейсов\",\n description2:\n \"Участники смогут автоматически добавлять участников из других спейсов\",\n },\n podType: {\n description1:\n \"Все участники могут создавать публикации в этом спейсе\",\n description2:\n \"Если этот параметр отключен, тогда только админы смогут создавать публикации\",\n },\n allowReflections: {\n description1: \"Включить функцию ответов для этого спейса\",\n description2:\n \"Если этот параметр отключен, то функция ответить не будет отображаться на публикациях\",\n },\n showMembers: {\n description1: \"Показывать участников\",\n description2:\n \"Показывать список участников этого спейса\",\n },\n hideMmemberEmails: {\n description1:\n \"Показывать адреса эл. почты в списке участников\",\n description2:\n \" Если этот параметр отключен, адреса эл. почты участников не будут показаны в списке участников\",\n },\n newMemberNotifications: {\n description1: \"Уведомлять админов о новых участниках\",\n description2:\n \"Отправлять уведомление по эл. почте при регистрации каждого нового участника\",\n },\n podSize: {\n description1:\n \"Ограничить количество участников, которые могут присоединиться к этому спейсу\",\n description2:\n \"Укажите максимальное количество участников, которые могут присоединиться к этому спейсу\",\n },\n podSizeValue: {\n description:\n \"Сколько участников могут присоединиться к этому спейсу?\",\n },\n sidebarDefaultOpened: {\n description1:\n \"спейс по умолчанию отображен на боковой панели\",\n description2:\n \"Если этот параметр включен, этот спейс будет по умолчанию отображен на боковой панели\",\n },\n sidebarHideChildren: {\n description1: \"Скрыть под-спейсы на боковой панели\",\n description2:\n \"Если этот параметр включен, созданные в этом спейсе под-спейсы не будут отображаться на боковой панели\",\n },\n allowCompletions: {\n description1:\n \"Показывать кнопку “пройдено”\",\n description2:\n \"Если этот параметр включен, участники увидят кнопку “пройдено” в этом спейсе, и иконка на боковой панели будет заменена на галочку\",\n },\n redirectToSubspace: {\n description1: \"Всегда перенаправлять в под-спейс\",\n description2:\n \"Если этот параметр включен, участники всегда будут попадать в этот под-спейс.\",\n },\n parentCircles: {\n description1: \"Исходные спейсы\",\n placeholder:\n \"Поиск спейсов, чтобы добавить их как исходный спейс к этому спейсу\",\n },\n },\n scheduling: {\n showStartDate: {\n description1: \"Отображать этот спейс как мероприятие\",\n description2:\n \"Этот спейс будет отображать дату мероприятия везде, где она указана\",\n },\n startDateTime: {\n title: \"Дата и время начала\",\n placeholder: \"Выберите дату\",\n },\n endDateTime: {\n title: \"Дата и время окончания\",\n placeholder: \"Выберите дату\",\n },\n showLaunchDate: {\n description1:\n \"Опубликовать это спейс в определенную дату\",\n description2:\n \"Это спейс станет видимым и доступным в указанную дату\",\n },\n launchDateTime: {\n placeholder: \"Выберите дату\",\n },\n showArchiveDate: {\n description1:\n \"Архивировать этот спейс в определенную дату\",\n description2:\n \"Доступ к этому спейсу будет прекращён с указанного числа\",\n },\n archiveDate: {\n placeholder: \"Выберите дату\",\n },\n showReadonlyDate: {\n description1:\n \"Сделать этот спейс доступным только для чтения в определенную дату\",\n description2:\n \"После указанной даты в этом спейсе нельзя будет создавать новые публикации\",\n },\n readonlyDate: {\n placeholder: \"Выберите дату\",\n },\n },\n seo: {\n title: {\n title: \"Тег Title\",\n description:\n \"Тег Title — это заголовок, который должен отражать суть страницы. Он будет отображаться в поисковой выдаче и в общих публикациях в социальных сетях. Оптимальная длина: 60 символов.\",\n },\n description: {\n title: \"Мета-описание\",\n description:\n \"Это описание, которое будет отображаться в поисковой выдаче и общих публикациях в социальных сетях. Оптимальная длина: от 150 до 350 символов.\",\n },\n image: {\n title: \"Мета-изображение\",\n description:\n \"Это изображение, которое будет отображаться в общих публикациях в социальных сетях. Рекомендуемые размеры: 1200 px x 627 px (соотношение 1.91/1).\",\n },\n },\n },\n members: {\n title: \"Участники\",\n members: {\n download: \"Скачать CSV\",\n invite: \"Пригласить\",\n member: \"Участники\",\n invited: \"Приглашенные\",\n interested: \"Заинтересованные\",\n payment: \"Платежи\",\n },\n interested: {\n interested: {\n button: \"Поиск\",\n placeholder: \"Расширенный поиск\",\n broadcast: \"Отправить рассылку\",\n noRecordFound: \"Записей не найдено \",\n },\n table: {\n firstname: \"Имя\",\n email: \"Email\",\n date: \"Дата\",\n },\n interestedrow: {\n removeFromList: \"Удалить из списка\",\n },\n },\n invited: {\n invited: {\n button: \"Поиск\",\n placeholder: \"Расширенный поиск\",\n noRecordFound: \"Не найдено записей\",\n },\n table: {\n email: \"Email\",\n invitationlink: \"Ссылка приглашения\",\n amount: \"Сумма\",\n date: \"Дата отправки\",\n },\n },\n invitedrow: {\n invitation: {\n resend: \"Повторно отправить приглашение\",\n cancel: \"Отменить приглашение\",\n },\n },\n inviteEmail: {\n invite: {\n placeholder:\n \"Введите адрес эл. почты или @упомяните людей, которых вы хотели бы добавить в этот спейс. Введенный текст может быть разделен запятыми, пробелами или новыми строками.\",\n message: \"Добавить приветствие (это необязательно)\",\n checkboxLabel:\n \"Отправить эл. письмо, уведомляющее людей о приглашении\",\n alertMessage:\n \"В настоящее время вы подписаны на Базовый тарифный план и не можете отправлять приглашения через Sutra. При нажатии кнопки «Пригласить» для каждого добавленного адреса эл. почты будет создана уникальная ссылка приглашения. Вы сможете лично отправить эл. письмо каждому человеку с этой ссылкой.\",\n alertbutton: \"Сменить тариф\",\n button: \"Пригласить людей\",\n },\n },\n inviteExisting: {\n invite: {\n copyMembers:\n \"Скопировать участников из другого спейса\",\n copyMembersPlaceholder:\n \"Выбрать спейсы, из которых нужно скопировать участников\",\n addActiveMembers:\n \"Добавить активных участников из исходных спейсов\",\n addActiveMembersPlaceholder:\n \"Выберите активных участников, чтобы добавить их в этот спейс\",\n addPendingMembers:\n \"Добавить участников из исходного спейса, которые находятся в статусе ожидания\",\n addPendingMembersPlaceholder:\n \"Выбрать участников в статусе ожидания, чтобы добавить их в этот спейс\",\n checkboxLabel:\n \"Отправить эл. письмо, чтобы уведомить людей о том, что они были приглашены\",\n alert:\n \"В настоящее время вы подписаны на Базовый тарифный план и не можете отправлять приглашения через Sutra. При нажатии кнопки «Пригласить» для каждого добавленного эл. адреса будет создана уникальная ссылка приглашения. Вы сможете лично отправить электронное письмо каждому человеку с этой ссылкой.\",\n alertButton: \"Сменить тариф\",\n button: \"Пригласить людей\",\n thisOption: \"Эта функция не включена для этого спейса\",\n },\n },\n inviteLink: {\n invite: {\n shareLinkText:\n \"Люди могут напрямую зарегистрироваться в этом спейсе по следующей ссылке. Вы можете поделиться этой ссылкой везде, где хотите (по эл. почте, в социальных сетях и т. д.).\",\n youCannotShare:\n \"Вы не можете поделиться ссылкой на закрытый спейс.\",\n },\n },\n invitePeople: {\n invite: {\n invitePeople: \"Пригласить людей\",\n },\n },\n membersActivity: {\n members: {\n placeholder: \"Поиск по ключевым словам\",\n button: \"Поиск\",\n emailButton: \"Email\",\n messageButton: \"Сообщение\",\n noRecordFound: \" Записей не найдено \",\n },\n memberTable: {\n noRecordFound: \"Записей не найдено\",\n lastSeen: \"Последнее посещение\",\n lastPosted: \"Последняя публикация\",\n date: \"Дата присоединения\",\n },\n },\n participationActivity: {\n participation: {\n searchPlaceholder: \"Поиск по ключевым словам\",\n searchButton: \"Поиск\",\n pickDatePlaceholder: \"Выберите диапазон дат\",\n emailButton: \"Эл. почта\",\n messageButton: \"Сообщение\",\n noRecordFound: \" Записей не найдено \",\n },\n memberTable: {\n member: \"Участник\",\n participation: \"Участие\",\n posts: \"Публикации\",\n words: \"Слова\",\n },\n },\n participationActivityRow: {\n posts: \"публикации\",\n },\n paymentRow: {\n payment: {\n refundPayment: \"Возврат оплаты\",\n },\n },\n payments: {\n payment: {\n searchPlaceholder: \"Поиск по ключевым словам\",\n searchButton: \"Поиск\",\n noRecordFound: \" Записей не найдено\",\n },\n paymentTable: {\n member: \"Участник\",\n amount: \"Сумма\",\n date: \"Дата\",\n status: \"Статус\",\n },\n },\n progressActivity: {\n progress: {\n searchPlaceholder: \"Поиск по ключевым словам\",\n searchButton: \"Поиск\",\n emailButton: \"Email\",\n messageButton: \"Сообщение\",\n noRecordFound: \"Записей не найдено\",\n progressTracking:\n \"Отслеживание прогресса доступно только в спейсах, где есть интерактивное обучение.\",\n },\n progressTable: {\n member: \"Участник\",\n progress: \"Прогресс\",\n },\n },\n registered: {\n registered: {\n searchPlaceholder: \"Поиск по ключевым словам\",\n searchButton: \"Поиск\",\n email: \"Эл. почта\",\n message: \"Сообщение\",\n noRecordFound: \"Записей не найдено\",\n pending: \"В статусе ожидания\",\n manager: \"Админы\",\n all: \"Все\",\n active: \"Активные\",\n },\n registeredTable: {\n member: \"Участник\",\n email: \"Эл. почта\",\n status: \"Статус\",\n role: \"Роль\",\n roleApproveAll: \"Одобрить всех\",\n },\n },\n registeredRow: {\n registered: {\n roleApprove: \"Одобрить\",\n joined: \"Присоединился\",\n sendMessage: \"Отправить сообщение\",\n stopCharging: \"Прекратить списание средств\",\n emailPreferences: \"Настройки рассылок\",\n removeMember: \"Удалить участника\",\n },\n },\n },\n payment: {\n charging: {\n NumberOfTimes: {\n howManyTimes: \"Сколько раз?\",\n },\n UntilDate: {\n pickDate: \"Выбрать дату окончания списания средств\",\n },\n },\n fees: {\n description: {\n fees: \"Сборы:\",\n sutraFee: \"Сборы SUTRA +: \",\n stripeProcessingFee: \"Сборы STRIPE:\",\n },\n },\n flexible: {\n flexible: {\n description:\n \"Чтобы предложить людям гибкую систему оплаты, такую как модель “Плати сколько можешь” или несколько уровней оплаты, вы можете создать опрос по оплате, который люди увидят, когда зарегистрируются в вашем спейсе. Нажмите кнопку редактирования ниже, чтобы настроить опрос.\",\n },\n },\n once: {\n once: {\n description: \"Укажите цену\",\n number: \"10\",\n },\n },\n recurring: {\n recurring: {\n description1: \"Укажите цену \",\n description2: \"Выберите опцию оплаты\",\n },\n },\n },\n privacy: {\n open: {\n open: {\n description:\n \"Этот спейс доступен всем\",\n },\n },\n paid: {\n paid: {\n stripeConnected: \"Подключено к Stripe\",\n disconnectButton: \"Отключить\",\n description:\n \"Для обработки платежей для этого спейса, пожалуйста, подключите свой аккаунт Stripe, нажав на кнопку ниже.\",\n connectButton: \"Подключить Stripe\",\n },\n },\n private: {\n private: {\n description:\n \"Это закрытый спейс, участники должны получить приглашение, чтобы к нему присоединиться.\",\n },\n },\n },\n registration: {\n steps: {\n addFromSubSpace: {\n label: \"Выбрать спейс, чтобы добавить участника\",\n description:\n \"В некоторых случаях люди могут присоединяться к под-спейсам без участия в исходном спейсе. Тогда вы хотите быть уверены, что они также добавлены в верхний спейс или какие-то открытые спейсы. Эта функция позволит вам это сделать. Когда кто-нибудь присоединяется к под-спейсу, они автоматически будут добавлены к любым спейсам, которые вы выберите ниже.\",\n placeholder: \"Выбрать спейсы\",\n saveButton: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n saveButton2: \"Сохранить шаг\",\n },\n addStructure: {\n label1: \"Выбрать структуру\",\n placeholder1: \"Выбрать вариант\",\n label2: \"Отправить как\",\n placeholder2: \"Выбрать вариант\",\n saveButton: \"Сохранить шаг\",\n },\n addToExistingSpace: {\n label: \"Выбрать спейс, чтобы добавить участника\",\n placeholder: \"Выбрать спейсы\",\n saveButton1: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n saveButton2: \"Сохранить шаг\",\n },\n addToNewSpace: {\n placeholder: \"Название нового спейса\",\n label: \"Придумайте название для нового спейса\",\n saveButton1: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n saveButton2: \"Сохранить шаг\",\n },\n applyTemplate: {\n label: \"Выбрать спейс, чтобы создать копию\",\n description:\n \"Если вам захочется создать спейс-шаблон и дублировать его каждый раз при создании нового спейса, вы можете создать и настроить его именно так, как вы хотите. Затем весь контент и под-спейсы будут скопированы в любой вновь созданный здесь спейс.\",\n saveButton1: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n saveButton2: \"Сохранить шаг\",\n },\n editEmail: {\n placeholder1: \"Тема письма\",\n label1: \"Отправить от имени\",\n placeholder2: \"Выбрать\",\n label2: \"Кому\",\n placeholder3: \"Выбрать вариант\",\n placeholder4: \"someone@special.com\",\n label3: \"Адрес эл. почты\",\n saveButton: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n sendPreview: \"Send preview\",\n },\n editStructure: {\n deleteButton: \"Удалить шаг\",\n },\n editSurvey: {\n deleteButton: \"Удалить шаг\",\n },\n sendEmail: {\n label1: \"Выберите адрес эл. почты\",\n placeholder1: \"Выберите вариант\",\n label2: \"Отправить от имени\",\n placeholder2: \"Выберите вариант\",\n label3: \"Кому\",\n placeholder3: \"Выберите вариант\",\n label4: \"someone@special.com\",\n placeholder4: \"Адрес эл. почты\",\n saveButton: \"Сохранить шаг\",\n label5: \"Админы\",\n label6: \"Настраиваемый адрес эл. почты\",\n },\n setToPending: {\n title: \"Приветствие\",\n description:\n \"Это контент, который люди увидят сразу после того, как зарегистрируются в вашем спейсе. Это хорошее место для пояснения, когда стартует программа, и что они могут ожидать в этот промежуток времени.\",\n saveButton1: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n saveButton1: \"Сохранить шаг\",\n },\n surveyPerson: {\n placeholder: \"Выберите вариант\",\n label: \"Выбрать опрос\",\n saveButton1: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n saveButton2: \"Сохранить шаг\",\n },\n wait: {\n description1: \"Сколько дней?\",\n description2: \"Ждать до\",\n saveButton: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n saveButton2: \"Сохранить шаг\",\n label1: \"Выбрать условие ожидания\",\n placeholder: \"Выберите вариант\",\n label2: \"Количество дней\",\n label3: \"До указанной даты и времени\",\n label4: \"Назначить дату\",\n },\n webhook: {\n label: \"URL вебхука\",\n saveButton: \"Сохранить шаг\",\n deleteButton: \"Удалить шаг\",\n },\n remove_from_space: {\n label: \"Select a space to remove member from\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n },\n addStep: {\n addStep: {\n description: \"Добавить шаг\",\n label: \"Пожалуйста, выберите действие для этого шага\",\n placeholder: \"Выбрать действие\",\n },\n },\n registrationFlow: {\n registration: {\n description1:\n \"Эта функция позволяет вам упорядочивать автоматические действия, которые запускаются, когда человек присоединяется к этому спейсу или проявляет к нему интерес. Здесь вы сможете запланировать время отправки эл. писем, а также автоматически добавить людей в выбранные спейсы при их регистрации.\",\n description2:\n \"Выполнить эти действия после того, как кто-то...\",\n placeholder1: \"Выберите начальное условие\",\n addButton: \"Добавить шаг\",\n label1:\n \"Становится участником или добавляется к списку заинтересованных\",\n description3:\n \"Следующие шаги будут запущены, когда человек станет участником этого спейса или добавится к списку заинтересованных, отправив свое имя и адрес эл. почты через форму сбора заявок.\",\n label2: \"Становится участником этого спейса\",\n description4:\n \"Следующие шаги будут запущены, когда человек станет участником этого спейса\",\n label3: \"Проявляет интерес к этому спейсу \",\n description5:\n \"Следующие шаги будут запущены, когда человек добавится к списку заинтересованных, отправив свое имя и адрес эл. почты через форму сбора заявок.\",\n },\n },\n },\n structure: {\n add: {\n add: {\n title: \"Добавить в спейсы\",\n description: \"спейсы\",\n placeholder1: \"Выбрать спейс\",\n label1: \"Отправить от имени\",\n placeholder2: \"Выбрать отправителя\",\n placeholder3: \"Выбрать дату\",\n label2: \"Дата отправки\",\n label3: \"Время отправки\",\n saveButton: \"Сохранить\",\n label4: \"Запланировать на потом\",\n },\n },\n createStructure: {\n title: {\n createStructure: \"Создать структуру\",\n },\n },\n structureItem: {\n item: {\n addToSpace: \"Добавить в спейс\",\n open: \"View responses\",\n edit: \"Редактировать\",\n duplicate: \"Дублировать\",\n delete: \"Удалить\",\n },\n },\n },\n survey: {\n add: {\n add: {\n title: \"Добавить в спейсы\",\n spaces: \"спейсы\",\n placeholder1: \"Выберите спейс\",\n label: \"Отправить как\",\n placeholder2: \"Выберите отправителя\",\n saveButton: \"Сохранить\",\n },\n },\n answer: {\n answer: {\n addOption: \"Добавить вариант\",\n },\n },\n createSurvey: {\n description: \"Создать опрос\",\n },\n createSurveyForm: {\n form: {\n title: \"Название опроса\",\n description:\n \"Гибкая платёжная система позволяет вам предлагать несколько способов оплаты для вашей программы. Если вы хотите, чтобы люди устанавливали сами свою цену, то создайте вариант оплаты, не фиксируя стоимость. Этот вариант будет отображаться с полем для ввода собственной суммы. Например, вы можете предложить модель оплаты “Плати сколько можешь” с несколькими рекомендуемыми уровнями и полностью свободным вариантом. Если вы добавите поясняющий текст ниже, то он будет отображаться прямо над вариантами оплаты.\",\n optionalDescription: \"Необязательное описание опроса\",\n addQuestionButton: \"Добавить вопрос\",\n saveButton: \"Сохранить\",\n },\n },\n individual: {\n individual: {\n placeholder: \"Выбрать участника\",\n },\n },\n multipleItem: {\n multipleItem: {\n placeholder: \"Вариант\",\n },\n },\n paymentItem: {\n paymentItem: {\n placeholder: \"Вариант оплаты\",\n },\n },\n paymentSurveyItem: {\n item: {\n editButton: \"Редактировать варианты оплаты\",\n viewButton: \"Посмотреть ответы\",\n },\n },\n showSurvey: {\n survey: {\n title: \"Ответы на опрос\",\n },\n },\n singleItem: {\n item: {\n placeholder: \"Вариант\",\n },\n },\n surveyItem: {\n item: {\n addToSpace: \"Добавить в спейс\",\n open: \"View responses\",\n edit: \"Редактировать\",\n take: \"Preview survey\",\n duplicate: \"Дублировать\",\n download: \"Скачать CSV\",\n delete: \"Удалить\",\n responses: \"Ответы\",\n },\n },\n },\n broadcast: {\n broadcast: {\n button: {\n broadcastButton: \"Новая рассылка\",\n },\n },\n },\n broadcast: {\n title: \"Рассылка\",\n broadcastButton: \"Новая рассылка\",\n membersTypes: {\n active: \"Активные участники\",\n pending: \"Участники в статусе ожидания\",\n interested: \"Заинтересованные участники\",\n },\n sentOn: \"Рассылка отправлена\",\n onDestroy: {\n alertTitle: \"Вы уверены?\",\n alertMessage: \"Эта рассылка будет удалена безвозвратно\",\n confirm: \"Удалить рассылку\",\n deny: \"Отменить\",\n },\n actions: {\n edit: \"Редактировать\",\n duplicate: \"Дублировать\",\n delete: \"Удалить\",\n },\n statuses: {\n sent: \"Отправлено\",\n scheduled: \"Запланировано\",\n draft: \"Черновик\",\n procesing: \"Processing\",\n },\n form: {\n composeBroadcast: \"Составить рассылку\",\n contentErrMessage: \"Добавьте содержание\",\n targetErrMessage: \"Выбрать получателя\",\n type: {\n email: \"Отправить по эл. почте\",\n message: \"Отправить сообщение в спейс\",\n },\n title: {\n placeholder: \"Тема письма\",\n },\n brackets: {\n part1: \"Использовать\",\n part2: \"и\",\n part3: \"для автоматического заполнения соответствующей информации\",\n },\n target: {\n placeholder: \"Выбрать получателей\",\n label: \"Кому\",\n },\n sendAs: {\n label: \"Отправить от имени\",\n placeholder: \"Выбрать отправителя\",\n },\n schedule: {\n label: \"Запланировать отправку\",\n },\n sendAtDate: {\n label: \"Дата отправки\",\n placeholder: \"Выберите дату\",\n },\n sendAtTime: {\n label: \"Время отправки\",\n placeholder: \"\",\n },\n scheduleBroadcast: \"Запланировать рассылку\",\n sendBroadcast: \"Отправить рассылку\",\n saveDraft: \"Сохранить черновик\",\n sendPreview: \"Send preview\",\n },\n },\n surveys: {\n title: \"Опросы\",\n createSurvey: \"Создать опрос\",\n },\n structures: {\n title: \"Структуры\",\n createStructure: \"Создать структуру\",\n },\n sutraAdmin: {\n title: \"Sutra Админ\",\n },\n scheduled: {\n title: \"Запланированные\",\n },\n archived: {\n title: \"Архивированные\",\n },\n participation: {\n title: \"Метрики участников\",\n label1: \"Присутствие\",\n description1: \"Процент участников, посетивших ресурс за последние 7 дней\",\n label2: \"Активность\",\n description2:\n \"Процент участников, создавших публикации за последние 7 дней\",\n label3: \"Публикации\",\n description3:\n \"Количество публикаций во всех под-спейсах за последние 7 дней\",\n label4: \"Участие\",\n label5: \"Активность участников\",\n label6: \"Прогресс\",\n },\n },\n sidebar: {\n iconSelect: {\n placeholder: \"Поиск\",\n },\n membersNode: {\n member: \"Участники\",\n },\n nodeIcon: {\n reset: \"Сброс\",\n },\n sidebarTutorial: {\n gettingStarted: \"Начало работы\",\n },\n },\n alreadyMember: {\n member: {\n welcome:\n \"Добро пожаловать! Вы уже являетесь участником этого спейса\",\n clickHere: \"Нажмите сюда, чтобы войти\",\n },\n },\n calender: {\n calender: {\n joinButton: \"Присоединиться к видеоконференции\",\n addButton: \"Добавить в календарь\",\n joinEventButton: \"Зарегистрироваться\",\n title: \"Подробности мероприятия\",\n },\n },\n invitationBar: {\n button: {\n register: \"Зарегистрироваться\",\n },\n },\n space: {\n sutraLoading: \"Sutra - Загрузка...\",\n },\n statusBar: {\n restoreButton: \"Восстановить\",\n },\n tagFilter: {\n resetButton: \"Сбросить\",\n },\n presentations: {\n discussion: {\n reflectionHeader: \"Отражения\",\n backToPost: \"Вернуться к сообщению\",\n pinnedMessageHeader: \"Закрепленное сообщение\",\n delete: {\n title: \"Вы уверены?\",\n message: \"Это действие нельзя отменить\",\n confirmButton: \"Да, удалить\",\n cancelButton: \"Отмена\",\n },\n },\n tag: {\n placeholder: \"Поиск тегов или создание нового\",\n placeholder2: \"Выбрать тег\",\n createAction: \"Создать\",\n },\n message: {\n reply: \"Ответить\",\n addTags: \"Добавить теги\",\n tag: \"Тег\",\n copyToClipboard: \"Скопировать в буфер обмена\",\n messageCopied: \"Сообщение скопировано\",\n pinMessageAction: \"Закрепить сообщение\",\n editMessage: \"Редактировать сообщение\",\n deleteMessage: \"Удалить сообщение\",\n makePrivate: \"Сделать приватным\",\n viewReplies1: \"Просмотр\",\n viewReplies2single: \"ответ\",\n viewReplies2plural: \"ответы\",\n privateMessage:\n \"Сейчас эту публикацию видите только вы и админы этого спейса. Если вы сделаете его открытой, другие участники спейса смогут увидеть его.\",\n privateMessage2:\n \"Этот участник решил не делиться своим ответом с другими участниками.\",\n unreadMessagesText: \"У вас есть непрочитанные сообщения\",\n scrollDownButton: \"Пролистать вниз\",\n newReflections: {\n part1: \"У вас\",\n part2: \"непрочитанные ответы в\",\n part3: \"сообщения\",\n },\n viewNextButton: \"Посмотреть следующее\",\n pinMessage: {\n mainText: \"Закрепленное сообщение\",\n viewButton: \"Посмотреть сообщение\",\n },\n },\n content: {\n commentInput: {\n toggleLabel1:\n \"Комментарии отключены для интерактивного обучения\",\n toggleLabel2: \"Включить комментарии для этой публикации\",\n toggleLabel3: \"Включить комментарии для этого спейс-мероприятия\",\n toggleLabel4: \"Включить комментарии для этого спейс-контента\",\n placeholder1:\n \"Комментарии не могут быть опубликованы во время редактирования\",\n placeholder2: \"Напишите что-нибудь...\",\n },\n },\n fallback: {\n title: \"Проблемы с подключением к Интернету\",\n message:\n \"Кажется, что у вас отсутствует подключение к Интернету. Когда связь появится снова, мы вас автоматически подключим.\",\n },\n events: {\n placeholder: \"Напишите что-нибудь...\",\n upcomingButton: \"Предстоящие\",\n pastButton: \"Прошедшие\",\n addEvent: \"Добавить мероприятие\",\n eventSettingsTooltip: \"Настройки мероприятия\",\n newEventTitle: \"НОВОЕ МЕРОПРИЯТИЕ\",\n },\n list: {\n placeholder: \"Напишите что-нибудь...\",\n createButton: \"Создать публикацию\",\n listSettingsTooltip: \"Настройки форума\",\n duplicateFormTitle: \"ДУБЛИРОВАТЬ СПЕЙС\",\n },\n settings: {\n versions: {\n content: \"Содержание страницы\",\n posts: \"Сообщения\",\n discussions: \"Чаты\",\n link: \"Ссылка\",\n template: \"Шаблон\",\n },\n versionsDescriptions: {\n content:\n \"Новые элементы будут отображаться в виде страницы контента с полным функционалом.\",\n discussion: \"Пусто\",\n posts:\n \"Новые элементы будут отображаться в виде простой публикации с ограниченной функциональностью.\",\n link: \"Эта опция позволяет вам отправить ссылку на любой спейс в Sutra, которая затем будет отображаться здесь в виде элемента.\",\n template:\n \"Создайте спейс-шаблон, который будет дублироваться каждый раз, когда здесь создается новый элемент.\",\n },\n createNewTemplate: \"Создать новый шаблон\",\n editTemplate: \"Редактировать шаблон\",\n title: \"НАСТРОЙКИ\",\n accordion1: {\n label: \"Отобразить как\",\n description: \"Отобразить публикации в виде списка или плитки\",\n listOption: \"Список\",\n gridOption: \"Плитка\",\n dateCreated: \"Дата создания\",\n dateCreatedReversed: \"Обратная дата создания\",\n lastActive: \"Последняя активность\",\n lastEdited: \"Последнее редактирование\",\n alphabetic: \"По алфавиту\",\n reverseAlphabetic: \"Обратный алфавитный\",\n },\n accordion2: {\n label: \"Варианты отображения\",\n description: \"\",\n switches: {\n onlyManagers: \"Только админы могут создавать публикации\",\n showAuthor: \"Показывать информацию об авторе\",\n showPreview: \"Показывать превью текста\",\n showComments: \"Показывать количество комментариев\",\n showMembers: \"Показывать аватарки участников\",\n showTimestamp:\n \"Показывать время создания публикации\",\n showThumbnail: \"Показывать миниатюру\",\n autoThumbnail: \"Автоматическое создание миниатюр\",\n },\n },\n accordion3: {\n label: \"Формат новой публикации\",\n description:\n \"Выберите формат для новых публикаций в этом спейсе\",\n templateName: {\n label: \"Название шаблона\",\n placeholder: \"Назовите ваш шаблон\",\n },\n templateDirectOption: \"Прямой под-спейс\",\n templateLinkedOption: \"Привязанный под-спейс\",\n privacyDescription:\n \"Выберите уровень конфиденциальности по умолчанию для новых публикаций\",\n privacyOpenOption: \"Открытая\",\n privacyPrivateOption: \"Приватная\",\n privacyAnyOption: \"Выбор создателя\",\n },\n accordion4: {\n label: \"Текст командной кнопки\",\n createPost: {\n label: \"Создать публикацию\",\n description:\n \"Укажите текст, который будет отображаться на кнопке новой публикации\",\n },\n },\n accordion5: {\n label: \"Теги\",\n },\n templateDescription:\n \"Новые шаблоны спейсов могут быть под-спейсами этого спейса или они могут быть привязанными. Привязанные спейсы независимые верхние спейсы, которые будут отображаться на этой странице. Создатель спейса станет полноправным админом созданного им спейса.\",\n },\n thumbnail: {\n title: \"ДОБАВИТЬ МИНИАТЮРУ\",\n message: \"изображение загружается...\",\n },\n static: {\n broadcastExclude: {\n unsubscribe: {\n part1: \"Вы уверены, что хотите отписаться от\",\n part2:\n \"Вы больше не будете получать какие-либо рассылки по эл. почте от админов этого спейса.\",\n button: \"Отписаться\",\n },\n subscribe: {\n part1:\n \"Вы были отписаны, и вы больше не будете получать рассылки по эл. почте от\",\n button: \"Подписаться\",\n },\n },\n invitation: {\n message: \"Вас пригласили в это спейс\",\n button: \"Принять приглашение\",\n },\n pending: {\n message: \"Ваш запрос на присоединение находится на рассмотрении\",\n },\n private: {\n message: {\n part1: \"Это закрытый спейс.\",\n part2: \"Если вы являетесь участником, пожалуйста, войдите в систему\",\n },\n button: \"Войти\",\n },\n processing: {\n message: \"Этот спейс находится в стадии обработки…\",\n },\n },\n gridPost: {\n onDelete: {\n alertTitle: \"Вы уверены?\",\n alertMessage:\n \"Этот спейс больше не будет привязан здесь.\",\n alertMessage2:\n \"Этот спейс больше не будет привязан здесь.\",\n confirm: \"Да\",\n deny: \"Нет\",\n },\n actions: {\n pin: \"Закрепить наверху\",\n unpin: \"Открепить\",\n addThumbnail: \"Добавить миниатюру\",\n removeThumbnail: \"Удалить миниатюру\",\n duplicate: \"Дублировать\",\n unlink: \"Отвязать\",\n delete: \"Удалить\",\n },\n },\n listContent: {\n publishTootip: \"Будет опубликован в эту дату\",\n privateTooltip: \"Этот спейс закрытый\",\n },\n },\n colors: {\n form: {\n colorTheme: \"Цветовая тема\",\n customize: \"Настроить выбор цвета\",\n saveTheme: \"Сохранить тему\",\n resetColor: \"Сброс цвета\",\n pageLayout: \"Оформление страницы\",\n pageFormat: \"Формат страницы\",\n },\n headerAndLogo: {\n addCover: \"Добавить обложку\",\n removeCover: \"Удалить обложку\",\n changeLogo: \"Сменить логотип\",\n removeLogo: \"Удалить логотип\",\n dimensions:\n \"Рекомендуемый размер изображения обложки — 1200 x 300 px\",\n dimensions2:\n \"Рекомендуемый размер логотипа — 360 x 120 px\",\n },\n pageFormat: {\n description:\n \"Вы можете изменить способ оформления контента в этом спейсе, выбрав один из вариантов ниже.\",\n contentLabel: \"Контент\",\n discussionLabel: \"Чат\",\n contentDescription:\n \"Спейс для учебных модулей, общего контента или для материалов сообщества.\",\n discussionDescription:\n \"спейс для чата или объявлений\",\n eventsLabel: \"Календарь\",\n eventsDescription: \"Создайте календарь мероприятий\",\n listLabel: \"Форум\",\n listDescription:\n \"Создайте ленту, где люди смогут публиковать темы для обсуждения\",\n },\n pageLayout: {\n widePage: \"Увеличить ширину страницы\",\n hideSidebar: \"Скрыть боковую панель\",\n hideHeader: \"Скрыть шапку страницы\",\n hideCoverImage: \"Скрыть обложку\",\n hidePageTitle: \"Скрыть заголовок страницы\",\n hideBreadcrumbs: \"Скрыть навигационную цепочку\",\n },\n header_color: {\n label: \"Цвет шапки страницы\",\n description: \"Описание\",\n },\n header_link_color: {\n label: \"Цвет логотипа и текста шапки\",\n description: \"Описание\",\n },\n primary_button_background_color: {\n label: \"Цвет фона основной кнопки\",\n description: \"Описание\",\n },\n primary_button_text_color: {\n label: \"Цвет текста основной кнопки\",\n description: \"Описание\",\n },\n secondary_button_background_color: {\n label: \"Цвет фона второстепенной кнопки\",\n description: \"Описание\",\n },\n secondary_button_text_color: {\n label: \"Цвет текста второстепенной кнопки\",\n description: \"Описание\",\n },\n background_color: {\n label: \"Цвет фона\",\n description: \"Описание\",\n },\n default_text_color: {\n label: \"Цвет текста по умолчанию\",\n description: \"Описание\",\n },\n sidebar_background_color: {\n label: \"Цвет фона боковой панели\",\n description: \"Описание\",\n },\n sidebar_text_color: {\n label: \"Цвет текста боковой панели\",\n description: \"Описание\",\n },\n default_link_color: {\n label: \"Цвет ссылок по умолчанию\",\n description: \"Описание\",\n },\n default_badge_color: {\n label: \"Цвет значка уведомлений\",\n description: \"Описание\",\n },\n default_badge_text_color: {\n label: \"Цвет текста значка уведомлений\",\n description: \"Описание\",\n },\n registration_page_background_color: {\n label: \"Цвет фона страницы регистрации\",\n description: \"Описание\",\n },\n registration_page_default_text_color: {\n label: \"Цвет текста на странице регистрации\",\n description: \"Описание\",\n },\n },\n create: {\n invalidNameErrorMsg:\n \"Название спейса должно содержать от 3 до 100 символов\",\n },\n dummy: {\n magicLink: {\n alertTitle: \"Вы почти вошли...\",\n alertMessage:\n \"Мы отправили волшебную ссылку на вашу эл. почту. ЭТО ТЕСТОВОЕ СООБЩЕНИЕ, ФАКТИЧЕСКАЯ ЭЛ. ПОЧТА НЕ ОТПРАВЛЯЕТСЯ.\",\n },\n },\n pending: {\n message: \"Ваш запрос на участие находится на стадии рассмотрения\",\n },\n recover: {\n alertTitle: \"Вы почти вошли...\",\n alertMessage:\n \" Мы только что отправили вам электронное письмо с инструкциями, чтобы восстановить ваш пароль. ЭТО ТЕСТОВОЕ СООБЩЕНИЕ, ФАКТИЧЕСКАЯ ЭЛЕКТРОННАЯ ПОЧТА НЕ ОТПРАВЛЯЕТСЯ.\",\n },\n form: {\n calendarLinks: {\n text: \"Информация, добавленная ниже, будет передана в календарь участника, при добавлении мероприятия. \",\n link: {\n label: \"Ссылка на мероприятие (ссылка Zoom и т.д.)\",\n placeholder: \"Какая ссылка на вашу видеоконференцию?\",\n },\n description: {\n label:\n \"Добавьте описание вашего мероприятия, которое будет показано в календаре\",\n placeholder: \"Описание в календаре\",\n },\n eventStartDateAndTime: \"Дата и время начала мероприятия\",\n date: {\n placeholder: \"Выберите дату\",\n },\n eventDateTime: \"Дата и время окончания мероприятия (необязательно)\",\n allowInterests:\n \"Разрешить людям присоединяться к мероприятию без регистрации в Sutra\",\n automatedEmails: \"Настройте автоматическую Email-рассылку\",\n save: \"Сохранить подробности\",\n },\n duplicate: {\n prefix: \"Копия\",\n intention: {\n label: \"Название спейса\",\n placeholder: \"Как называется ваш спейс?\",\n },\n copyMembers: {\n label: \"Копировать участников\",\n },\n copyManagers: {\n label: \"Копировать админов\",\n },\n copyContent: {\n label: \"Копировать контент\",\n },\n copyPosts: {\n label: \"Copy posts\",\n },\n copyBroadcasts: {\n label: \"Копировать рассылки\",\n },\n copyAutomation: {\n label: \"Копировать автоматизации\",\n },\n copyRegPage: {\n label: \"Копировать страницу регистрации\",\n },\n save: \"Дублировать спейс\",\n },\n form: {\n privacyDescription1:\n \"Спейс, который вы создаете, будет доступен всем, кто находится внутри\",\n rootPrivacyDescription1:\n \"Созданный вами спейс будет доступен любому, у кого есть на него ссылка. Вы можете установить варианты оплаты после создания спейса.\",\n privacyDescription2:\n \"Созданный вами спейс будет виден только тем, кто в него добавлен.\",\n rootPrivacyDescription2:\n \"Созданный вами спейс будет виден только тем, кто в него приглашен. Вы можете установить варианты оплаты после создания спейса.\",\n placeholderDescription: \"Описание\",\n versions: {\n content: {\n label: \"Контент\",\n description:\n \"Создайте спейс для учебного модуля, общего контента или для материалов сообщества .\",\n },\n discussion: {\n label: \"Чат\",\n description:\n \"Создайте спейс для чата или объявлений.\",\n },\n event: {\n label: \"Мероприятие\",\n description: \"Создайте разовое мероприятие.\",\n },\n events: {\n label: \"Календарь\",\n description: \"Создайте календарь мероприятий.\",\n },\n list: {\n label: \"Форум\",\n description:\n \"Создайте ленту, где люди смогут публиковать темы для обсуждения.\",\n },\n },\n segments: {\n space: {\n label: \"Спейс\",\n description:\n \"Создайте спейс для вашего курса или сообщества. Выберите этот вариант, если хотите создать группу обучения, курс в своем темпе, сообщество или любую группу, которая будет собираться продолжительное время.\",\n },\n event: {\n label: \"Мероприятие\",\n description:\n \"Создайте простую страницу мероприятия. Выберите этот вариант, если вы просто хотите организовать разовое мероприятие, которым вы можете поделиться публично.\",\n },\n discussion: {\n label: \"Чат\",\n description:\n \"Создайте простой спейс для чата вашей группы. Выберите этот вариант, если вы просто хотите создать отдельный чат для группы участников.\",\n },\n },\n intention: {\n label: \"Название спейса\",\n placeholder: \"Как называется ваш спейс?\",\n },\n content: {\n label: \"Название спейса\",\n description: \"Напишите что-нибудь...\",\n placeholder: \"Напишите что-нибудь...\",\n },\n spaceFormat: {\n label: \"Формат спейса\",\n placeholder: \"Выберите\",\n },\n eventDescription:\n \"Информация, добавленная ниже, будет передана в календарь участника при добавлении мероприятия.\",\n hangoutLink: {\n label: \"Ссылка мероприятия (ссылка Zoom и т.д.)\",\n placeholder: \"Какая ссылка на вашу видеоконференцию?\",\n },\n eventStartTime: \"Дата и время начала мероприятия\",\n date: {\n placeholder: \"Выберите дату\",\n },\n eventEndDate: \"Дата и время окончания мероприятия (необязательно)\",\n privacyLevelText: \"Настройки доступа\",\n privacy: {\n open: \"Открытый\",\n private: \"Закрытый\",\n },\n joinAsMember: {\n label:\n \"Присоединиться к этому спейсу как участник\",\n },\n publishDate: {\n label: \"Опубликовать в назначенную дату\",\n },\n publishDateTime: \"Время и дата публикации\",\n create: \"Создать спейс\",\n },\n interestedForm: {\n title: \"Зарегистрироваться на это мероприятие\",\n createAlertTitle: \"Спасибо за регистрацию!\",\n createAlertButton: \"Ок\",\n name: {\n label: \"Имя\",\n placeholder: \"Введите ваше имя\",\n },\n email: {\n label: \"Email\",\n placeholder: \"Введите ваш эл. адрес\",\n },\n register: \"Зарегистрироваться\",\n joinWithSutra: \"Присоединиться через мой аккаунт Sutra\",\n },\n linkForm: {\n linkErrMessage: \"это ссылка недействительна\",\n link: {\n label: \"\",\n placeholder: \"Ссылка на спейс\",\n errors: {\n space:\n \"Спейс, которым вы хотите поделиться, с закрытым доступом или не существует!\",\n event:\n \"Спейс, которым вы хотите поделиться, с закрытым доступом, не является мероприятием или не существует.\",\n },\n },\n },\n listForm: {\n intention: {\n placeholder: \"Заголовок\",\n },\n },\n },\n header: {\n onLeave: {\n title: \"Вы уверены?\",\n message:\n \"Вы будете удалены, как участник этого спейса, и вам может потребоваться, чтобы вас снова добавили для восстановления доступа.\",\n confirm: \"Да, пожалуйста, удалите меня\",\n deny: \"Нет\",\n },\n onArchive: {\n title: \"Вы уверены?\",\n message:\n \"Этот спейс будет заархивирован, и участники больше не будут иметь к нему доступ.\",\n confirm: \"Да\",\n deny: \"Нет\",\n },\n onUnarchive: {\n title: \"Вы уверены?\",\n message:\n \"Этот спейс будет разархивирован, и участники снова получат к нему доступ.\",\n confirm: \"Да\",\n deny: \"Нет\",\n },\n onDelete: {\n title: \"Вы уверены?\",\n message:\n \"Этот спейс будет разархивирован, и участники снова получат к нему доступ.\",\n confirm: \"Да\",\n deny: \"Нет\",\n },\n onFix: {\n title: \"Вы уверены?\",\n message:\n \"Sutra попытается восстановить этот спейс-контента с помощью устаревших данных.\",\n confirm: \"Да, исправить\",\n deny: \"Нет\",\n confirmationTitle: \"Информация\",\n confirmationMessage:\n \"Спейс исправлен, идёт перезагрузка...\",\n confirmationError: \"Этот спейс невозможно исправить\",\n },\n buttons: {\n uncomplete: \"Не пройдено\",\n markComplete: \"Отметить как пройдено\",\n edit: \"Редактировать\",\n post: \"публикацию\",\n page: \"страницу\",\n space: \"спейс\",\n returnTo: \"Вернуться на\",\n editTitle: \"Редактировать заголовок\",\n viewPage: \"Просмотр страницы\",\n editDescription: \"Редактировать описание\",\n appearance: \"Внешний вид\",\n manage: \"Управление\",\n members: \"Участники\",\n leave: \"Покинуть спейс\",\n delete: \"Удалить спейс\",\n deletePost: \"Удалить\",\n duplicate: \"Дублировать спейс\",\n template: \"Создать шаблон\",\n archive: \"Архивировать спейс\",\n unarchive: \"Разархивировать спейс\",\n fix: \"Исправить\",\n template: \"Make a template from this space\",\n joinEvent: \"Зарегистрироваться\",\n joinSpace: \"Присоединиться к спейсу\",\n preview: \"Предварительный просмотр\",\n draft: \"Черновик\",\n published: \"Опубликовано\",\n publish: \"Опубликовать\",\n returnToSettings: \"Вернуться к настройкам\",\n returnToSpace: \"Вернуться к спейсу\",\n undo: \"Отменить\",\n openFullScreen: \"Открыть в полноэкранном режиме\",\n copyToClipboard: \"Скопировать в буфер обмена\",\n copiedMessage:\n \"Ссылка на спейс скопирована в буфер обмена\",\n versionHistory: \"История версий\",\n brandingOptions: \"ВАРИАНТЫ БРЕНДИНГА\",\n },\n regPagePublishing:\n \"Ваша страница регистрации в процессе публикации. Пожалуйста, подождите...\",\n spaceUpdating:\n \"Этот спейс обновляется. Пожалуйста, подождите...\",\n },\n members: {\n sectionTitle: \"Участники\",\n manage: \"Управление участниками\",\n invite: \"Пригласить\",\n search: {\n button: \"Поиск\",\n placeholder: \"Поиск по ключевым словам\",\n },\n emptyMessage: \"Записей не найдено\",\n messageButton: \"Сообщение\",\n emailButton: \"Email\",\n copyClipboard: \"скопировать в буфер обмена\",\n },\n payment: {\n onCheckIntent: {\n alertTitle: \"Ошибка при проведении платежа\",\n alertMessage:\n \"Время сеанса истекло. Пожалуйста, обновите страницу, чтобы завершить платеж.\",\n },\n onConfirmPayment: {\n alertTitle: \"Ой! Что-то пошло не так!\",\n alertMessage: \"что-то пошло не так!\",\n },\n completePayment: \"Завершить платеж\",\n join: \"Присоединиться к спейсу\",\n },\n stripe: {\n pay: \"Оплатить\",\n },\n },\n survey: {\n form: {\n text: \"Вы уже ответили на этот опрос.\",\n submitButton: \"Отправить\",\n },\n question: {\n yourAnswer: \"Ваш ответ\",\n },\n },\n tiptap: {\n blocks: {\n section1: \"Основное\",\n text: \"Текст\",\n headline1: \"Заголовок 1\",\n headline2: \"Заголовок 2\",\n headline3: \"Заголовок 3\",\n divider: \"Разделитель\",\n infobox: \"Информационная панель\",\n section2: \"Пространства\",\n content: \"Пространство контента\",\n discussion: \"Пространство обсуждений\",\n event: \"Пространство событий\",\n events: \"Пространство календаря\",\n list: \"Пространство форума\",\n showcase: \"Showcase Space\",\n section3: \"Список\",\n section8: \"Special\",\n bulletList: \"Список с маркерами\",\n orderedList: \"Упорядоченный список\",\n checklist: \"Список задач\",\n collapsableSection: \"Сворачиваемый раздел\",\n survey: \"Survey or quiz\",\n section4: \"Мультимедиа\",\n image: \"Изображение\",\n embed: \"Встроенный код\",\n video: \"Видео\",\n audio: \"Аудио\",\n file: \"Файл\",\n zoom: \"Zoom recording\",\n section5: \"Сетки\",\n grid1: \"1 колонка\",\n grid2: \"2 колонки\",\n grid3: \"3 колонки\",\n grid4: \"Левая колонка\",\n grid5: \"Правая колонка\",\n grid6: \"4 columns\",\n section6: \"Кнопки\",\n interestForm: \"Форма интереса\",\n actionButton: \"Кнопка действия\",\n markComplete: \"Отметить как завершено\",\n section7: \"Интерактив\",\n interactiveButton: \"Интерактивная кнопка\",\n interactiveInput: \"Интерактивный ввод\",\n interactiveWait: \"Интерактивное ожидание\"\n },\n components: {\n sidebar: {\n alignment: {\n left: \"Слева\",\n center: \"По центру\",\n right: \"Справа\",\n },\n backgroundColor: {\n text: \"Выберите цвет фона\",\n clearColor: \"Убрать цвет\",\n },\n backgroundImage: {\n button: \"Выбрать изображение\",\n removeButton: \"Удалить изображение\",\n label: \"Положение\",\n placeholder: \"Выбрать\",\n leftTop: \"вверху слева\",\n leftCenter: \"слева по центру\",\n leftBottom: \"слева снизу\",\n rightTop: \"справа вверху\",\n rightCenter: \"справа по центру\",\n rightBottom: \"справа снизу\",\n centerTop: \"центр сверху\",\n centerCenter: \"по центру\",\n centerBottom: \"центр снизу\",\n label2: \"Повторение\",\n placeholder2: \"Выбрать\",\n noRepeat: \"Без повтора\",\n repeat: \"Повторить\",\n \"repeat-x\": \"Повтор по оси X\",\n \"repeat-y\": \"Повтор по оси Y\",\n space: \"Space\",\n round: \"Round\",\n },\n blockId: {\n placeholder: \"ID блока\",\n label: \"ID блока\",\n description:\n \"Рекомендуемые идентификаторы (ID) для краткого описания ИИ, о семинаре, что вы узнаете 1, что вы узнаете 2, что вы узнаете 3, для кого это, про нас, цитата\",\n },\n buttonAction: {\n label: \"Завершение действия\",\n description:\n \"Уточните, что происходит после того, как человек отправляет свои данные через выбранную форму.\",\n placeholder: \"Выбрать\",\n label2: \"Ссылка на\",\n placeholder2: \"Выбрать\",\n label3: \"Действие ссылке\",\n description3:\n \"Уточните, будет ли ссылка открыта в текущей вкладке браузера или в новой.\",\n placeholder3: \"Выбрать\",\n callBackComplete: \"Текст при завершении действия\",\n callBacklinkTo: \"Ссылка на\",\n completeDescription:\n \"Добавьте короткое сообщение с подтверждением, которое участники увидят после отправки информации.\",\n linkDescription:\n \"Человек будет перенаправлен по этой ссылке после нажатия кнопки.\",\n label4: \"Ссылка на раздел\",\n description4: \"Укажите, будет ли ссылка открываться в текущей вкладке браузера или на другой вкладке, или ссылка будет вести к разделу на этой странице.\",\n selectSection: \"Выберите раздел\",\n description5: \"Эта опция позволяет вам перейти к определенному разделу на этой странице при нажатии ссылки.\",\n description6: \"Чтобы выбрать раздел, нажмите кнопку ниже, а затем выберите раздел, на который вы хотите создать ссылку.\",\n label5: \"Раздел выбран!\",\n label6: \"URL-адрес ссылки\",\n description7: \"Укажите URL-ссылку, по которой будет перенаправлен пользователь.\",\n label7: \"Открывается в текущей вкладке\",\n label8: \"Открывает другую вкладку\",\n label9: \"Ничего не делать\",\n label10: \"Перенаправить пользователя на\",\n label11: \"Выберите вариант\",\n label12: \"Другое пространство\",\n label13: \"Пользовательская ссылка\",\n label14: \"Нажмите на раздел на странице\",\n },\n buttonBackgroundColor: {\n button: \"Убрать цвет\",\n },\n buttonText: {\n placeholder: \"Текст кнопки\",\n label: \"Текст кнопки\",\n },\n fileName: {\n placeholder: \"Имя файла\",\n label: \"Имя файла\",\n },\n interactiveWaitTime: {\n label1: \"Выбрать\",\n label2: \"Подождать до указанной даты\",\n label3: \"Подождать указанное количество дней\",\n label4: \"Дата показа контента\",\n placeholder: \"Дата показа контента\",\n label5: \"1 день\",\n label6: \"2 дня\",\n label7: \"3 дня\",\n label8: \"4 дня\",\n label9: \"5 дней\",\n label10: \"6 дней\",\n label11: \"1 неделя\",\n label12: \"2 недели\",\n label13: \"1 месяц\",\n },\n linkAction: {\n label: \"Действие ссылки\",\n description:\n \"Укажите, будет ли ссылка открыта в текущей вкладке браузера или в новой.\",\n placeholder: \"Выбрать\",\n label2: \"Открыть в текущей вкладке\",\n label3: \"Открыть в новой вкладке\",\n },\n margin: {\n topMargin: \"Отступ сверху -\",\n text: \"Отступ снизу -\",\n bottom: \"Снизу\",\n left: \"Слева\",\n leftMargin: \"Отступ слева -\",\n right: \"Справа\",\n rightMargin: \"Отступ справа\",\n },\n padding: {\n top: \"Сверху\",\n topPadding: \"Внутренний отступ сверху -\",\n bottom: \"Снизу\",\n bottomPadding: \"Внутренний отступ снизу -\",\n left: \"Слева\",\n leftPadding: \"Внутренний отступ слева -\",\n right: \"Справа\",\n rightPadding: \"Внутренний отступ справа -\",\n },\n radius: {\n square: \"Квадратные\",\n round: \"Закругленные\",\n circle: \"Круглые\",\n },\n spaceAttrs: {\n addCover: \"Добавить обложку\",\n text: \"Рекомендуемый размер изображения обложки — 1200 x 300 px\",\n addCover2: \"Добавить обложку\",\n text2: \"Рекомендуемый размер изображения обложки — 1200 x 300 px\",\n removeCover: \"Удалить обложку\",\n },\n verticalAllignment: {\n top: \"Сверху\",\n center: \"По центру\",\n bottom: \"Снизу\",\n },\n width: {\n full: \"Полная\",\n size: \"3/4\",\n size2: \"1/2\",\n actual: \"Фактическая\",\n },\n },\n blockMenuActions: {\n label1: \"Добавить блок\",\n label2: \"Добавить эмодзи\",\n label3: \"Настройки\",\n label4: \"Удалить\",\n label5: \"Переместить\",\n label6: \"Перейти в спейс или дважды кликнуть по блоку\",\n label7: \"Заменить\",\n label8: \"Выравнивание\",\n left: \"Слева\",\n center: \"По центру\",\n right: \"Справа\",\n write: \"Напишите что-нибудь...\",\n label9: \"Добавить блок\",\n label10: \"Заголовок 1\",\n h1: \"H1\",\n label11: \"Заголовок 2\",\n h2: \"H2\",\n label12: \"Добавить спейс\",\n label13: \"Добавить изображение\",\n label14: \"Добавить видео\",\n label15: \"Добавить плитку\",\n label16: \"Добавить шаблон\",\n label17: \"Добавить макет\",\n label18: \"Дублировать\",\n },\n blocksMenu: {\n basicBlock: \"Основные блоки\",\n mediaBlock: \"Блоки медия\",\n contentBlock: \"Блоки контента\",\n },\n blocksMenuInline: {\n file: \"Файл\",\n image: \"Изображение\",\n video: \"Видео\",\n label1: \"Добавить эмодзи\",\n label2: \"Добавить изображение\",\n label3: \"Переключить панель форматирования\",\n },\n blocksMenuSimple: {\n label1: \"Добавить\",\n file: \"Файл\",\n image: \"Изображение\",\n video: \"Видео\",\n audio: \"Audio\",\n label2: \"Добавить эмодзи\",\n label3: \"Добавить изображение\",\n label4: \"Показать форматирование\",\n cancelButton: \"Отменить\",\n },\n emptyMessage: {\n text: \"Это пустой спейс для контента. Вы можете\",\n button1: \"редактировать эту страницу\",\n text2: \"или\",\n button2: \"использовать шаблон,\",\n text3: \"чтобы начать\",\n text4: \"Это пустой спейс, полный потенциала...\",\n },\n fixedBottomMenu: {\n label1:\n \"Добавьте такие элементы, как заголовки, изображения и видео\",\n addBlock: \"Добавить блок\",\n label2:\n \"Добавить спейс для контента, чата или для мероприятия\",\n space: \"Спейс\",\n label3:\n \"Добавьте плитку, чтобы использовать колонки для контента\",\n grid: \"Плитка\",\n label4: \"Добавить заранее созданный вариант дизайна\",\n layouts: \"Макеты\",\n label5:\n \"Добавить шаблон, чтобы автоматически настроить ваш спейс\",\n template: \"Шаблоны\",\n },\n formatMenu: {\n text: \"Текст\",\n smallText: \"Маленький текст\",\n largeText: \"Крупный текст\",\n heading1: \"Заголовок 1\",\n heading2: \"Заголовок 2\",\n heading3: \"Заголовок 3\",\n bulletedList: \"Маркированный список\",\n orderedList: \"Нумерованный список\",\n text2: \"Текст\",\n label1: \"Форматирование\",\n text3: \"Текст\",\n numberedList: \"Нумерованный список\",\n label2: \"Выравнивание\",\n left: \"Слева\",\n center: \"По центру\",\n right: \"Справа\",\n label3: \"Действие ссылки\",\n description:\n \"Укажите, будет ли ссылка открыта в текущей вкладке браузера или в новой.\",\n placeholder: \"Выбрать\",\n label4: \"Открывается в текущей вкладке\",\n label5: \"Открывается в новой вкладке\",\n label6: \"Формат ссылки\",\n description2:\n \"Укажите, будет ли ссылка отображаться в виде текста или как блок-предпросмотр.\",\n placeholder2: \"Выбрать\",\n label7: \"Отображать как текст\",\n label8: \"Отображать как блок-предпросмотр\",\n save: \"Сохранить\",\n delete: \"Удалить\",\n label9: \"Зачеркнуть\",\n label10: \"Подчеркивание\",\n label11: \"Кодовый блок\",\n label12: \"Цвет текста\",\n placeholder3: \"HEX-код\",\n unsetColor: \"Убрать цвет\",\n label13: \"Выделение цветом\",\n label14: \"Ссылка на раздел\",\n description3: \"Укажите, будет ли ссылка открываться в текущей вкладке браузера или на другой вкладке, или ссылка будет вести к разделу на этой странице.\",\n selectSection: \"Выберите раздел\",\n description4: \"Эта опция позволяет вам перейти к определенному разделу на этой странице при нажатии ссылки.\",\n description5: \"Чтобы выбрать раздел, нажмите кнопку ниже, а затем выберите раздел, на который вы хотите создать ссылку.\",\n label15: \"Раздел выбран!\",\n label16: \"URL-адрес ссылки\",\n description6: \"Укажите URL-ссылку, по которой будет перенаправлен пользователь.\",\n },\n formatMenuSimple: {\n t: \"Т\",\n h1: \"Заголовок 1\",\n h2: \"Заголовок 2\",\n h3: \"Заголовок 3\",\n label1: \"Действие ссылки\",\n description1:\n \"Укажите, будет ли ссылка открыта в текущей вкладке браузера или в новой.\",\n placeholder1: \"Выбрать\",\n label2: \"Открывается в текущей вкладке\",\n label3: \"Открывается в новой вкладке\",\n label4: \"Формат ссылки\",\n description2:\n \"Укажите, будет ли ссылка отображаться в виде текста или как блок-предпросмотр.\",\n placeholder2: \"Выбрать\",\n label5: \"Отображать как текст\",\n label6: \"Отображать как блок-предпросмотр\",\n save: \"Сохранить\",\n delete: \"Удалить\",\n label7: \"Форматирование\",\n left: \"Слева\",\n center: \"По центру\",\n right: \"Справа\",\n placeholder3: \"HEX-код\",\n placeholder4: \"Цвет HEX\",\n unsetColor: \" Убрать цвет\",\n },\n inlineMenu: {\n h1: \"Заголовок 1\",\n h2: \"Заголовок 2\",\n bulletList: \"Маркированный список\",\n checkList: \"Чек-лист\",\n circle: \"Круг\",\n moreOption: \"Больше функций\",\n },\n interactiveInput: {\n hideResponses: \"Скрыть другие ответы\",\n showResponses: \"Показать другие ответы\",\n hideResponses2: \"Скрыть ответы\",\n hidePrivateMessages: \"Скрыть личные сообщения\",\n showPrivateMessages: \"Показать личные сообщения\",\n showResponses2: \"Показать ответы\",\n loadMoreResponse: \"Загрузить больше ответов\",\n placeholder: \"Напишите что-нибудь...\",\n text: \"Вы хотите, чтобы этот ответ был виден другим участникам?\",\n },\n newMedia: {\n add: \"Добавить\",\n },\n regPageColor: {\n clearColor: \"Убрать цвет\",\n },\n regPageColors: {\n text: \"Внешний вид страницы регистрации\",\n applyAppearance: \"Применить внешний вид\",\n title1: \"Выбрать цвет фона\",\n title2: \"Выбрать цвет текста\",\n label1: \"Цвет фона\",\n label2: \"Цвет текста по умолчанию\",\n label3: \"Увеличить ширину страницы\",\n },\n resource: {\n areYouSure: \"Вы уверены?\",\n label1: \"Будет опубликован в эту дату\",\n edit: \"Редактировать\",\n addPage: \"Добавить страницу\",\n },\n sideBlocksMenuBak: {\n addBlock: \"Добавить блок\",\n back: \"Вернуться\",\n },\n sideBlocksMenu: {\n text: \"Макеты - это предварительно созданные варианты дизайна, которые вы можете добавить в ваш спейс.\",\n text2:\n \"Начните с выбора настраиваемых полностраничных шаблонов\",\n layout: \"Макеты\",\n template: \"Шаблоны\",\n addBlock: \"Добавить блок\",\n block: \"Блоки\",\n },\n sideConfigurationsMenu: {\n title: \"Настройки блока\",\n label1: \"Название и обложка спейса\",\n label2: \"Атрибуты файла\",\n label3: \"Интерактивные настройки\",\n attrPlaceholder1: \"Напишите что-нибудь...\",\n attrLabel: \"Плейсхолдер\",\n attrLabel2: \"Разрешить участнику видеть все ответы\",\n attrLabel3: \"Показывать ответы до того, как ответит участник\",\n attrLabel4:\n \"Разрешить участнику выбирать, будет ли его ответ виден другим\",\n attrLabel5: \"Разрешить несколько ответов для каждого участника\",\n attrLabel6: \"Разрешить участникам пропустить этот промпт\",\n attrLabel7: \"Уведомлять админов о каждой новой публикации\",\n label4: \"Интерактивные настройки\",\n label5: \"Внутренний отступ\",\n label6: \"БЛОК\",\n label7: \"КОЛОНКА\",\n label8: \"Внешний отступ\",\n label9: \"ПЛИТКА\",\n label10: \"Вертикальное выравнивание\",\n label11: \"Параметры кнопки\",\n label12: \"Цвет фона кнопки\",\n label13: \"Цвет текста кнопки\",\n text: \"Углы кнопки\",\n label14: \"Фон\",\n label15: \"Цвет\",\n label16: \"Изображение\",\n label17: \"Сбросить\",\n resetBlock: \"Сбросить блок\",\n label18: \"Выравнивание\",\n label19: \"Радиус закругления углов\",\n label20: \"углы\",\n label21: \"Имя блока\",\n label22: \"Параметры уведомлений по электронной почте\",\n label23: \"Отправить уведомление по электронной почте\",\n attrLabel8: \"Включить пользовательское сообщение\",\n attrLabel9: \"Включить содержимое следующего раздела\",\n attrLabel10: \"Включить полный контент\",\n attrLabel11: \"Короткий обзор\",\n attrLabel12: \"Заголовок\",\n attrLabel13: \"Сообщение\",\n defaultWaitLabel: \"Следующий раздел был опубликован в {{space_name}}\",\n defaultWaitMessage: \"Привет, {{first_name}} — просто хотел сообщить, что следующий раздел в {{space_name}} был опубликован. {{space_link_button}}\"\n },\n takeSurvey: {\n text: \"Этот опрос пуст\",\n },\n tiptapAi: {\n placeholder: \"Напишите краткое описание\",\n label:\n \"Пожалуйста, напишите 2 или 3 фразы, описывающие ваше предложение.\",\n placeholder2: \"например, коучи, консультанты и энерготерапевты\",\n label2: \"Для кого предназначено это предложение?\",\n text: \"Здравствуйте! Мы тестируем новую функцию искусственного интеллекта. Хотите ли вы, чтобы Sutra автоматически генерировала текст для вашего шаблона с помощью ИИ?\",\n },\n uploader: {\n label1: \"Ссылка\",\n label2: \"Embed-код\",\n placeholder: \"Вставьте ссылку на изображение или файл\",\n label3: \"Вставить ссылку\",\n placeholder2: \"Вставить Embed-код -> \",\n label4: \"Вставить Embed-код\",\n saveEmbed: \"Сохранить Embed-код\",\n placeholder3: \"Поиск изображений\",\n saveImage: \"Сохранить изображение\",\n },\n viewPage: {\n text: \"Эта страница пуста\",\n },\n },\n },\n users: {\n payment: {\n completePayment: \"Завершить оплату\",\n join: \"Присоединиться к спейсу\",\n pay: \"Оплатить\",\n },\n stepper: {\n step1: \"Шаг 1\",\n step1Description: \"Войти в систему\",\n step2: \"Шаг 2\",\n step2Description: \"Завершить платеж\",\n step3: \"Шаг 3\",\n step3Description: \"Получить доступ\",\n },\n start: {\n title: \"Добро пожаловать\",\n subtitle: \"Пожалуйста, введите адрес вашей эл. почты ниже \",\n email: \"Email\",\n submit: \"Продолжить\",\n invalidEmailErrorMsg: \"Неверный адрес эл. почты\",\n },\n signIn: {\n title: \"Войти в свой аккаунт\",\n subtitle: \"Ещё нет аккаунта?\",\n subtitleLink: \"Зарегистрироваться\",\n email: \"Email\",\n password: \"Пароль\",\n submit: \"Войти\",\n magicLink: \"Получить волшебную ссылку для входа\",\n forgotPassword: \"Забыли пароль?\",\n invalidEmailErrorMsg: \"Неверный адрес эл. почты\",\n },\n signUp: {\n invalidEmailErrorMsg: \"Неверный адрес эл. почты\",\n invalidPasswordErrorMsg:\n \"Пароль должен содержать не менее 8 символов\",\n invalidFirstNameErrorMsg:\n \"Имя должно содержать не менее 3 символов\",\n title: \"Создать новый аккаунт\",\n subtitle: \"Уже есть аккаунт?\",\n subtitleLink: \"Войти\",\n firstName: \"Имя\",\n lastName: \"Фамилия\",\n username: \"Имя пользователя\",\n email: \"Email\",\n password: \"Пароль\",\n emailNewsletterConfirmation:\n \"Подпишитесь на рассылку новостей от Sutra, чтобы узнать о бесплатных вебинарах по групповому процессу, трансформационному обучению и бизнесу, основанному на взаимоотношениях.\",\n submit: \"Зарегистрироваться\",\n legalPrefix: \"Регистрируясь на Sutra, вы соглашаетесь с нашими\",\n terms: \"Условия использования\",\n privacy: \"Политикой конфиденциальности\",\n },\n spaceReference: {\n total: \"Итоговая сумма сегодня\",\n },\n planReference: {\n total: \"Итоговая сумма\",\n total_today: \"Итоговая сумма сегодня\",\n due_in: \"Оплата через 14 дней\",\n paymentDetails: {\n annual: \"Годовая подписка на\",\n month: \"Ежемесячная подписка на\",\n },\n },\n resetPassword: {\n title: \"Сбросить пароль\",\n subtitle:\n \"Пожалуйста, введите новый пароль вашего аккаунта Sutra ниже\",\n password: \"Пароль\",\n passwordConfirmation: \"Подтверждение пароля\",\n submit: \"Сбросить пароль\",\n },\n recover: {\n title: \"Забыли пароль?\",\n subtitle:\n \"Пожалуйста, введите адрес своей эл. почты ниже, и мы вышлем вам инструкции по сбросу пароля\",\n email: \"Email\",\n submit: \"Отправьте мне инструкции\",\n footer: \"Уже есть аккаунт?\",\n footerLink: \"Войти\",\n },\n magicLink: {\n invalidEmailErrorMsg: \"Неверный адрес эл. почты\",\n title: \"Запросить волшебную ссылку\",\n subtitle:\n \"Пожалуйста, введите адрес своей эл. почты ниже, и мы отправим вам ссылку, по которой вы автоматически войдете в систему.\",\n email: \"Email\",\n submit: \"Продолжить\",\n footer: \"Войти с помощью эл. почты\",\n alertTitle: \"Вы почти вошли...\",\n alertMessage:\n \"Мы отправили волшебную ссылку на вашу электронную почту. ЭТО ТЕСТОВОЕ СООБЩЕНИЕ, ФАКТИЧЕСКАЯ ЭЛЕКТРОННАЯ ПОЧТА НЕ ОТПРАВЛЯЕТСЯ.\",\n },\n edit: {\n title: \"Пожалуйста, заполните свой профиль\",\n addProfileImage: \"Загрузить фото профиля\",\n removeProfileImage: \"Удалить фото профиля\",\n bioPlaceholder: \"Расскажите немного о себе...\",\n bio: \"Биография\",\n submit: \"Сохранить\",\n skip: \"Пропустить и сделать это позже\",\n },\n magicSignin: {\n text: \"Вход в систему...\",\n },\n profile: {\n button: \"Сообщение\",\n button2: \"Редактировать профиль\",\n title: \"Спейсы\",\n },\n profileModal: {\n profile: \"Профиль\",\n message: \"Сообщение\",\n editProfile: \"Редактировать профиль\",\n openProfile: \"Открыть профиль\",\n spaces: \"Спейсы\",\n selectImage: \"Выбрать изображение\",\n },\n signOut: {\n loggedOUt: \"Вы вышли из аккаунта\",\n title: \"Вы вышли из аккаунта\",\n message: \"До скорого!\",\n },\n },\n errors: {\n basic: \"Ой! Что-то пошло не так!\",\n },\n },\n },\n pt: {\n translation: {\n premiumFeatures: {\n personal: {\n description1:\n \"Espaços e membros ilimitados para organizar o conteúdo e conversas de todos os seus cursos e comunidades\",\n description2:\n \"Tenha landing pages e registration pages modernas e responsivas para todos os seus programas e eventos em um só lugar\",\n description3:\n \"Envie newsletters para todos os seus participantes com nosso poderoso recurso de transmissão\",\n },\n professional: {\n description1: \"Sem taxas de transação sobre pagamentos recebidos\",\n description2:\n \"Opções de personalização de branding e layout e customização do subdomínio\",\n description3:\n \"Automações ilimitadas e experiências de aprendizagem interativas e conversacionais\",\n description4: \"Até 2 administradores para todos os seus espaços\",\n },\n organization: {\n description1: \"Sem taxas de transação sobre pagamentos recebidos\",\n description2: \"Suporte ao cliente avançado\",\n description3: \"Administradores ilimitados\",\n description4: \"Opção para integração de SSO (Single Sign On)\",\n },\n },\n premiumMessages: {\n can_auto_tag: {\n title: \"Upgrade to use this feature\",\n message: \"Auto tagging with AI is a premium feature available on the Professional plan.\"\n },\n can_use_zoom_recordings: {\n title: \"Upgrade to use this feature\",\n message: \"Zoom recordings is a premium feature available on the Organization plan.\"\n },\n can_create_quizzes: {\n title: \"Upgrade to use this feature\",\n message: \"Quizzes are a premium feature available on the Organization plan.\"\n },\n can_duplicate_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Duplicating a space is a premium feature available on the Professional plan.\",\n },\n can_save_templates: {\n title: \"Upgrade to use this feature\",\n message:\n \"Saving as space as a reusable template is a premium feature available on the Professional plan.\",\n },\n can_edit_shareable_link: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Personalizar o link do seu espaço é um recurso premium disponível no plano Professional.\",\n },\n\n can_upload_cover: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Personalizar a imagem da capa dos seus espaços é um recurso premium disponível no plano Personal.\",\n },\n\n can_upload_logo: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Personalizar o logotipo é um recurso premium disponível no plano Professional.\",\n },\n\n can_set_layout: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Personalizar o layout do seu espaço é um recurso premium disponível no plano Professional.\",\n },\n\n can_set_theme: {\n title: \"Fazer para usar esse recurso\",\n message:\n \"Personalizar a paleta de cores do seu espaço é um recurso premium disponível no plano Professional.\",\n },\n\n can_set_format: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Alterar o formato da página do seu espaço é um recurso premium disponível no plano Professional.\",\n },\n\n can_add_step_send_to_pending: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Definir novos membros como pendentes é um recurso premium disponível no plano Personal.\",\n },\n\n can_add_step_send_email: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Automatizar o envio de e-mails é um recurso premium disponível no plano Personal.\",\n },\n\n can_add_add_to_existing_space: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Adicionar automaticamente membros a espaços selecionados é um recurso premium disponível no plano Professional.\",\n },\n\n can_add_step_wait: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Adicionar uma condição de espera para etapas adicionais é um recurso premium disponível no plano Professional.\",\n },\n\n can_add_step_webhook: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Adicionar webhooks é um recurso premium disponível no plano Professional.\",\n },\n\n can_add_step_survey_person: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Enviar questionários para novos membros é um recurso premium disponível no plano Professional.\",\n },\n\n can_schedule_states: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Opções de agendamento automatizado para o seu espaço são um recurso premium disponível no plano Professional.\",\n },\n\n can_broadcast: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Transmitir e-mails e mensagens automatizadas para membros é um recurso premium disponível no plano Personal.\",\n },\n\n can_survey: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Criar questionários é um recurso premium disponível no plano Professional.\",\n },\n\n can_use_interest_form_block: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Adicionar formulários de interesse é um recurso premium disponível no plano Professional.\",\n },\n can_use_interactive_block: {\n title: \"Atualize para usar este recurso\",\n message:\n \"Adicionar blocos interativos é um recurso premium disponível no plano Professional.\",\n },\n\n can_set_flexible_payments: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Definir opções de pagamento flexíveis é um recurso premium disponível no plano Professional.\",\n },\n\n can_activate_completions: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Marcar módulos como concluídos é um recurso premium disponível no plano Professional.\",\n },\n\n max_allowed_spaces: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Olá! Parece que você já usou todos os seus espaços gratuitos! Atualize para o plano Personal e tenha espaços e membros ilimitados para que você possa criar praticamente qualquer coisa.\",\n },\n max_allowed_ij: {\n title: \"Upgrade to use this feature\",\n message:\n \"You can only add up to 2 discussion prompts per space on the free plan. Please upgrade to the Professional plan to add unlimited discussion prompts to any space.\",\n },\n\n max_allowed_managers_pro: {\n title: \"Fazer upgrade para adicionar mais administradores\",\n message:\n \"Faça o upgrade para o plano Professional para adicionar até 2 administradores ao seu espaço ou para o plano Organization para ter um numero ilimitado de administradores.\",\n },\n\n max_allowed_managers_org: {\n title: \"Fazer upgrade para adicionar mais administradores\",\n message:\n \"Faça o upgrade para o plano Organization para ter um numero ilimitado de administradores nos seus espaços.\",\n },\n\n can_see_participation_tab: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Métricas de participação são um recurso premium disponível no plano Professional.\",\n },\n\n can_send_selective_broadcast: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Transmissões seletivas são um recurso premium disponível no plano Organization.\",\n },\n\n can_send_message_broadcast: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Transmissões de mensagens e emails são um recurso premium disponível no plano Organization.\",\n },\n can_schedule_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Scheduling broadcasts is a premium feature available on the Silver plan.\",\n },\n can_add_from_children: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Adicionar automaticamente membros de outros espaços secundários é um recurso premium disponível no plano Professional.\",\n },\n can_add_to_direct_open_children: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Adicionar automaticamente novos membros a todos os espaços secundários abertos é um recurso premium disponível no plano Professional.\",\n },\n can_send_message: {\n title: \"Fazer upgrade para usar esse recurso\",\n message:\n \"Enviar automaticamente mensagens diretas para novos membros é um recurso premium disponível no plano Professional.\",\n },\n can_create_registration_page: {\n title: \"Upgrade to use this feature\",\n message: \"Creating custom registration and landing pages is a premium feature available on the Bronze plan.\"\n },\n can_create_coupon: {\n title: \"Upgrade to use this feature\",\n message: \"Creating coupon codes is a premium feature available on the Silver plan.\"\n },\n\n can_create_bundles: {\n title: \"Upgrade to use this feature\",\n message: \"Creating bundles is a premium feature available on the Silver plan.\"\n },\n },\n home: {\n sidebar: {\n createButton: \"Novo espaço\",\n spaces: \"Seus espaços\",\n invitations: \"Convites\",\n directMessages: \"Mensagens diretas\",\n gettingStarted: \"Primeiros passos\",\n scheduleDemo: \"Agendar uma demonstração\",\n upgrade: \"Atualizar seu plano\",\n promoBoxTitle:\n \"Junte-se a centenas de criadores usando os recursos avançados do Sutra para fornecer poderosas experiências em grupo online\",\n promoBoxItem1: \"Espaços ilimitados\",\n promoBoxItem2: \"Opções completas de personalização de branding\",\n promoBoxItem3: \"Administradores extras\",\n promoBoxButton: \"Fazer upgrade agora\",\n },\n spacesList: {\n yourSpaces: \"Seus espaços\",\n directMessagesTitle: \"Mensagens diretas\",\n invitationsTitle: \"Convites\",\n topTitle: \"Espaços principais\",\n managedTitle: \"Espaços administrados\",\n allTitle: \"Todos os espaços\",\n archivedTitle: \"Espaços arquivados\",\n deletedTitle: \"Espaços excluídos\",\n pendingTitle: \"Espaços agendados\",\n directMessages: \"Diretas\",\n top: \"Nível superior\",\n managed: \"Administrados\",\n all: \"Todos\",\n archived: \"Arquivados\",\n invitations: \"Convites\",\n deleted: \"Excluídos\",\n pending: \"Agendados\",\n empty: \"Você não tem nenhum\",\n tabTitle: \"Sutra - Painel\",\n learn: \"Aprenda o básico\",\n createFirst: \"Crie seu primeiro espaço\",\n },\n },\n app: {\n payment: {\n payment: {\n tabTitle: \"Sutra - Formulário de Pagamento\",\n title: \"Finalizar pagamento\",\n },\n planOption: {\n frequencyDescription1: \"por mês\",\n frequencyDescription2: \"por mês quando faturado anualmente\",\n currentPlan: \"Plano atual\",\n billedMonthly: \"Faturado mensalmente\",\n billedAnnually: \"Faturado anualmente\",\n },\n stripeForm: {\n due_in_trial: \"Vencimento em 14 dias\",\n pay: \"Pagar\",\n },\n },\n gettingStarted: {\n items: {\n setup: \"Configurando o seu espaço do programa\",\n privacy: \"Configurações de privacidade e pagamento\",\n registration: \"Criando uma página de registro\",\n invitations: \"Convidando participantes\",\n settings: \"Como funcionam as configurações do espaço\",\n interactive: \"Jornadas interativas\",\n interest: \"Formulários de interesse\",\n appearance: \"Layout e temas de cores\",\n grids: \"Configurações de grade e bloco\",\n broadcasts: \"Envio de transmissões por e-mail\",\n tagging: \"Tagging\",\n emojis: \"Emojis na barra lateral\",\n },\n templates: {\n groupprogram: {\n label: \"Programa em grupo\",\n description:\n \"Um espaço de programa onde você pode organizar tudo o que precisa para um grupo de pessoas que aprendem juntas.\",\n },\n zoomworkshop: {\n label: \"Workshop no Zoom\",\n description:\n \"Organize tudo o que você precisa para um workshop simples baseado no Zoom.\",\n },\n mastermind: {\n label: \"Mastermind\",\n description:\n \"Convide um grupo de pessoas para participar de um processo de mastermind juntas.\",\n },\n selfpacedcourse: {\n label: \"Curso em ritmo próprio\",\n description:\n \"Um modelo flexível para criar um curso em ritmo próprio.\",\n },\n communityspace: {\n label: \"Espaço da comunidade\",\n description:\n \"Reúna pessoas em um espaço vibrante de comunidade online que cresce à medida que sua comunidade cresce.\",\n },\n oneononecoaching: {\n label: \"Coaching individual\",\n description:\n \"Crie um espaço dedicado para cada um de seus clientes de coaching.\",\n },\n },\n loading: {\n text: \"Seu modelo está carregando, por favor aguarde...\",\n },\n tabTitle: \"Sutra - Guia de início\",\n mainTitle: \"Guia de início\",\n selectTemplate: \"Selecionar este modelo\",\n advanceFeatures: \"Recursos avançados\",\n welcome: \"Bem-vindo\",\n description1:\n \"O Sutra facilita a organização de conteúdo e conversas para cursos, comunidades, coaching individual e muito mais. Aprenda o básico neste vídeo de cinco minutos.\",\n watchVideo: \"Assistir ao vídeo\",\n createFirstSpace: \"Crie seu primeiro espaço\",\n gettingStartedGuide: \"Guia de início\",\n description2:\n \"Saiba mais sobre como o Sutra funciona e comece com uma lista de lançamento e orientações mais detalhadas.\",\n checkOutTheGuide: \"Confira o guia\",\n startWithATemplate: \"Comece com um modelo\",\n description3:\n \"Aprenda mais sobre como o Sutra funciona e comece com uma lista de lançamento e orientações mais detalhadas.\",\n learnAbout: \"Conheça os recursos avançados\",\n description4:\n \"O Sutra foi projetado para ser flexível e poderoso para acomodar quase todos os casos de uso. Você pode criar experiências interativas exclusivas, capturar o interesse em suas várias ofertas, enviar newsletters por e-mail e colher conhecimento coletivo.\",\n learnmore: \"aprender mais\",\n },\n premium: {\n try: \"Experimente o Sutra\",\n include: \"Recursos incluídos\",\n upgrade: \"Atualize agora\",\n },\n pricing: {\n tabTitle: \"Sutra - Preços\",\n upgrade: \"Atualize seu plano\",\n text: \"Seja qual for sua necessidade para o seu curso ou comunidade, estamos aqui para apoiar seu trabalho. Entre em contato conosco se tiver alguma dúvida em support@sutra.co.\",\n },\n scheduleDemo: {\n tabTitle: \"Sutra - Agendar uma demonstração\",\n },\n welcome: {\n tabTitle: \"Sutra - Bem-vindo\",\n title: \"Bem-vindo ao Sutra!\",\n description1:\n \"Estamos muito felizes por tê-lo aqui. Por favor, reserve um momento para assistir ao vídeo abaixo...\",\n description2:\n \"Gostaria de experimentar um dos nossos planos pagos gratuitamente?\",\n description3:\n \"Escolha um plano abaixo para iniciar um teste gratuito de 14 dias. Após o término do teste, você será automaticamente cobrado pelo plano selecionado.\",\n yes: \"Sim, por favor, mostre-me as opções\",\n no: \"Não, obrigado\",\n },\n },\n layout: {\n userButton: {\n home: \"Início\",\n viewProfile: \"Ver perfil\",\n settings: \"Configurações\",\n support: \"Suporte\",\n language: \"Idioma\",\n terms: \"Termos e privacidade\",\n logout: \"Sair\",\n copyright: \"Sutra Spaces, LLC © 2022\",\n },\n directMessages: {\n label: \"Mensagens diretas\",\n actionButton: \"Ver todas\",\n empty: \"Você não possui nenhuma mensagem direta\",\n directMessage: \"Mensagens diretas\",\n },\n notifications: {\n label: \"Notificações\",\n actionButton: \"clara fora\",\n empty: \"Você não possui nenhuma notificação\",\n notification: \"Notificações\",\n },\n headerContent: {\n registrationPage: \"Página de registro\",\n nonManagersHidden: \"Cabeçalho oculto para não gerentes\",\n },\n search: {\n reflection: \"Reflexão\",\n comment: \"Comentário\",\n allSpaces: \"Todos os espaços\",\n withinTop: \"Dentro do espaço de nível superior\",\n withinSpace: \"Dentro deste espaço\",\n everything: \"Tudo\",\n titlesOnly: \"Somente títulos\",\n tagsOnly: \"Somente tags\",\n content: \"Conteúdo\",\n discussion: \"Discussão\",\n events: \"Eventos\",\n users: \"Usuários\",\n placeholder: \"Buscar...\",\n nothingFound: \"Nada encontrado\",\n search: \"Buscar\",\n },\n uploader: {\n pending: \"Pendente\",\n used: \"Utilizado\",\n uploading: \"Enviando\",\n finishing: \"Finalizando\",\n processing: \"Processando\",\n completed: \"Concluído\",\n },\n },\n resources: {\n pages: {\n form: {\n label: \"Título\",\n placeholder: \"Qual é o tópico da sua página?\",\n create: \"Criar página\",\n save: \"Salvar página\",\n },\n },\n form: {\n title: {\n label: \"Título\",\n placeholder: \"Qual é o tópico?\",\n },\n publish: {\n label: \"Publicar na data\",\n },\n date: {\n label: \"Escolha data\",\n },\n update: \"Atualizar coleção de páginas\",\n create: \"Criar coleção de páginas\",\n },\n },\n settings: {\n editProfile: {\n tabTitle: \"Sutra - Editar Perfil\",\n editProfile: \"Editar perfil\",\n firstName: \"Primeiro nome\",\n lastName: \"Sobrenome\",\n username: \"Nome de usuário\",\n email: \"E-mail\",\n removeProfileImage: \"Remover imagem de perfil\",\n addProfileImage: \"Adicionar imagem de perfil\",\n about: \"Sobre\",\n location: \"Localização\",\n bio: \"Biografia\",\n bioPlaceholder: \"Conte um pouco sobre você...\",\n updateProfile: \"Atualizar perfil\",\n },\n accountSettings: {\n accountSettings: \"Configurações da conta\",\n changePassword: \"Alterar senha\",\n currentPassword: \"Senha atual\",\n newPassword: \"Nova senha\",\n newPasswordConfirmation: \"Confirmação da nova senha\",\n updatePassword: \"Atualizar senha\",\n advanced: \"Avançado\",\n deleteAccount: \"Excluir conta\",\n warning: \"Aviso\",\n deleteAccountWarning:\n \"Excluir sua conta é irreversível e removerá permanentemente seus detalhes da conta de nosso sistema.\",\n closeYourAccount: \"Encerrar sua conta\",\n invalidCurrentPasswordErrorMsg: \"Não pode ficar vazio\",\n invalidPasswordErrorMsg:\n \"A senha deve ter pelo menos 8 caracteres\",\n invalidPasswordConfirmationErrorMsg: \"As senhas não coincidem\",\n deleteAccountAlert: {\n title: \"Importante\",\n message:\n \"Excluir sua conta é irreversível e removerá permanentemente seus detalhes da conta de nosso sistema\",\n input: \"Digite 'excluir minha conta' para confirmar esta ação\",\n confirmButton: \"Excluir permanentemente\",\n cancelButton: \"Cancelar\",\n },\n cancelSubscriptionAlert: {\n title: \"Importante\",\n message: \"Por favor, cancele sua assinatura primeiro\",\n confirmButton: \"Ir para cobrança\",\n cancelButton: \"Eu farei isso depois\",\n },\n stripeAccount: {\n title: \"Redefinir conexão com o Stripe\",\n alertTitle: \"Você tem certeza?\",\n alertMessage:\n \"Se você redefinir sua conexão com o Stripe, suas credenciais do Stripe serão removidas de sua conta de usuário no Sutra e você poderá conectar uma nova conta do Stripe.\",\n buttonText: \"Redefinir conexão\",\n confirmButton: \"Sim\",\n cancelButton: \"Não\",\n confirmTitle: \"Você tem certeza?\",\n confirmMessage:\n \"Suas credenciais do Stripe serão removidas de sua conta de usuário no Sutra\",\n },\n },\n emailPreferences: {\n tabTitle: \"Sutra - Preferências de E-mail\",\n emailPreferences: \"Preferências de e-mail\",\n emailDigestPreferences: \"Preferências de resumo de e-mail\",\n emailDigestFrequency: \"Frequência do resumo de e-mail\",\n emailDigestMessage:\n \"Para ajustar as preferências de e-mail por espaço, consulte a área de configurações de assinaturas. Você pode cancelar a assinatura de um espaço completamente deixando-o ou pode definir qualquer espaço individual como 'Silenciar' nas configurações de assinaturas.\",\n receiveWeeklyDigest:\n \"Receber um resumo semanal de itens e discussões marcados recentemente\",\n receiveAtMentions:\n \"Receber uma notificação quando alguém mencionar você com @\",\n receiveLikes: \"Receive a notification when someone hearts your post\",\n },\n subscriptions: {\n subscriptions: \"Preferências específicas do espaço\",\n searchBySpaceName: \"Buscar por nome do espaço\",\n search: \"Buscar\",\n clear: \"Limpar\",\n options: \"Opções\",\n otherActions: \"Outras ações\",\n emptySubscriptions: \"Você não possui nenhuma assinatura.\",\n leaveSpaceConfirmationTitle:\n \"Tem certeza de que deseja sair deste espaço?\",\n leaveSpaceConfirmationHtml:\n \"Você deixará de ser membro deste espaço e talvez não consiga participar novamente sem pedir ao gerente.\",\n leaveSpaceButtonText: \"Sim, sair\",\n leaveSpaceDenyButtonText: \"Não\",\n leaveSpace: \"deixe espaço\",\n unsubscribe: \"Cancelar inscrição\",\n unsubscribed: \"Cancelada inscrição\",\n },\n digestPreferences: {\n digestedLabel: \"Agrupar todas as atualizações em um resumo\",\n digestedDescription:\n \"Novas mensagens em todos os seus espaços serão agrupadas em uma atualização de e-mail.\",\n undigestedLabel: \"Agrupar atualizações por espaço\",\n undigestedDescription:\n \"Você receberá resumos de e-mail separados para cada espaço que tiver novas mensagens.\",\n },\n \n billing: {\n statuses: {\n pending: \"Pendente\",\n processing: \"Processando\",\n paid: \"Pago\",\n trial: \"Trial\",\n },\n paymentMethod: {\n currentPaymentMethod: \"Método de pagamento atual\",\n noCurrentPaymentMethod: \"Nenhum método de pagamento atual\",\n addNewPaymentMethod: \"Adicionar novo método de pagamento\",\n },\n stripe: {\n updatePaymentMethod: \"Atualizar método de pagamento\",\n },\n tabTitle: \"Sutra - Faturamento\",\n updatePaymentMethodMayus: \"ATUALIZAR MÉTODO DE PAGAMENTO\",\n payments: \"PAGAMENTOS\",\n pdf: \"PDF\",\n noPayments: \"Você não possui histórico de pagamento\",\n billing: \"Faturamento\",\n upgradePlan: \"Atualizar plano\",\n changePlan: \"Alterar plano\",\n updatePaymentMethod: \"Atualizar método de pagamento\",\n cancelSubscription: \"Cancelar assinatura\",\n cancelConfirmationTitle:\n \"Tem certeza de que deseja cancelar sua assinatura?\",\n cancelConfirmationHtml:\n \"Você não terá mais acesso aos recursos premium do seu plano.\",\n cancelConfirmButtonText: \"Sim, cancelar\",\n cancelDenyButtonText: \"Não\",\n billingHistory: \"Histórico de faturamento\",\n tableDate: \"Data\",\n tableAmount: \"Valor\",\n tableStatus: \"Status\",\n tableInvoice: \"Fatura\",\n planPrefix: \"Você está atualmente no\",\n planSuffix: \"plano\",\n updatePayment: {\n success: {\n title: \"Sucesso\",\n message: \"Seu método de pagamento foi atualizado\",\n },\n error: {\n title: \"Ops, algo deu errado!\",\n },\n },\n },\n subscriptions: {\n frequencyOptions: \"Opções de frequência\",\n otherActions: \"Outras ações\",\n },\n frequencyOptions: {\n mute: \"Silenciar\",\n always: \"A cada mensagem\",\n hour1: \"A cada hora\",\n hour2: \"A cada 2 horas\",\n hour4: \"A cada 4 horas\",\n hour8: \"A cada 8 horas\",\n hour24: \"Uma vez por dia\",\n hour168: \"Uma vez por semana\",\n hour336: \"A cada duas semanas\",\n },\n affiliates: {\n history: {\n empty: \"Você não tem histórico de pagamento de afiliado\",\n table: {\n referralName: \"Referência Nome\",\n startAt: \"começar no\",\n endAt: \"Fim em\",\n createdAt: \"Criado em\",\n percent: \"Percentual\",\n total: \"Total ganho\",\n status: \"Status\",\n value: \"Valor\",\n revenue: \"Receita\",\n payAt: \"Pagar em\",\n status: \"Status\",\n },\n statuses: {\n null: \"Pendente\",\n pending: \"Pendente\",\n processing: \"Processando\",\n paid: \"Pago\",\n },\n paymentsHistory: \"Histórico de pagamentos\",\n },\n tabTitle: \"Sutra - Afiliados\",\n title: \"Afiliados\",\n affiliateLink: \"Este é o seu link de afiliado\",\n copyMessage: \"Link copiado para a área de transferência\",\n stripeTitle: \"Stripe conectado a\",\n stripeConnected:\n \"Este é o ID da sua conta Stripe. Para encontrar este ID no Stripe, clique no link para fazer login no Stripe e role até o final da página de configurações da sua conta.\",\n stripeDisconnect: \"Desconectar\",\n description:\n \"Para processar pagamentos para o programa de afiliados, conecte sua conta Stripe clicando no botão abaixo.\",\n description2:\n \"Ao compartilhar este link com outras pessoas, você receberá automaticamente 40% durante o primeiro ano de qualquer receita gerada por qualquer pessoa que se inscrever em uma conta paga do Sutra.\",\n connect: \"Conectar Stripe\",\n historyLabel: \"Histórico de afiliados\",\n },\n },\n spaces: {\n settings: {\n layout: {\n navbarContent: {\n mainSettings: \"Configurações Gerais\",\n members: \"Membros\",\n broadcast: \"Transmissão\",\n surveys: \"Enquete\",\n structures: \"Estruturas\",\n sutraAdmin: \"Administração do Sutra\",\n scheduled: \"Agendado\",\n archived: \"Arquivado\",\n participation: \"Participação\",\n },\n headerActions: {\n shareableLink: \"LINK COMPARTILHÁVEL\",\n },\n },\n main: {\n title: \"Configurações Gerais\",\n main: {\n invite: \"Convidar\",\n shareableLink: \"Link compartilhável\",\n cancelLink: \"Cancelar\",\n saveLink: \"Salvar\",\n editLinkButton: \"Editar link\",\n subdomain: \"Seu subdomínio\",\n sutra_co: \".sutra.co\",\n label1: \"Link copiado para a área de transferência\",\n privacySetting: \"Selecione uma configuração de privacidade\",\n title1: \"Tornar este espaço acessível publicamente\",\n description1:\n \"Este espaço está dentro de um espaço privado e só é visível para os membros desse espaço. Você pode torná-lo acessível publicamente fora deste espaço ativando essa configuração.\",\n title2: \"Exibir página de registro\",\n description2:\n \"Não membros verão uma página de registro quando tentarem acessar este espaço se essa configuração estiver ativada.\",\n title3: \"Usar página de registro legada\",\n description3:\n \"Se essa configuração estiver ativada, este espaço usará a página de registro projetada usando nosso editor legado.\",\n onButton: \"ATIVADO\",\n offButton: \"DESATIVADO\",\n editButton: \"Editar página\",\n previewButton: \"Visualizar página\",\n label2: \"Configurações de privacidade e pagamento\",\n label3: \"Configurações da página de registro\",\n description4:\n \"Ativo - As pessoas serão direcionadas para uma página de registro antes de acessar este espaço\",\n label4: \"Automação\",\n description5:\n \"Agende e-mails e adicione automaticamente pessoas a espaços quando elas se registrarem\",\n label5: \"Configurações de agendamento\",\n description6:\n \"Defina uma data de evento ou opções de publicação e arquivamento\",\n label6: \"Configurações adicionais\",\n description7:\n \"Permissões de criação de conteúdo, visibilidade de membros, notificações de gerentes e espaços pais\",\n label7: \"Configurações de SEO\",\n description8:\n \"Defina título, descrição e imagem de meta tag para compartilhamento em redes sociais e otimização de mecanismos de busca\",\n label8: \"Aberto\",\n description9: \"Qualquer pessoa pode acessar este espaço\",\n label9: \"Privado\",\n description10:\n \"Este espaço é privado e as pessoas devem ser convidadas para participar\",\n label10: \"Pago\",\n description11:\n \"Este espaço é pago e privado. As pessoas devem pagar para participar\",\n description12:\n \"As pessoas serão direcionadas para uma página de registro antes de acessar este espaço aberto.\",\n description13:\n \"As pessoas serão direcionadas diretamente para este espaço ao acessar este espaço aberto.\",\n description14:\n \"As pessoas devem ser convidadas diretamente para acessar este espaço privado. Se forem convidadas, elas verão uma página de registro.\",\n description15:\n \"As pessoas devem ser convidadas diretamente para acessar este espaço privado. Se forem convidadas, elas verão uma página de criação de conta sem página de registro.\",\n description16:\n \"As pessoas serão direcionadas para uma página de registro antes de acessar este espaço pago.\",\n description17:\n \"As pessoas serão direcionadas para uma página de criação de conta e pagamento antes de poderem acessar este espaço pago. Eles não verão uma página de registro.\",\n on: \"ATIVADO\",\n off: \"DESATIVADO\",\n label11: \"Membros\",\n label12: \"Pendentes\",\n label13: \"Interessados\",\n label14: \"Convidados\",\n label15: \"Pagamentos\",\n label16: \"Branding\",\n },\n additional: {\n allowMembersEdit:\n \"Permitir que os membros editem o conteúdo desta página\",\n membersWillAddContent:\n \"Os membros poderão adicionar e editar o conteúdo nesta página\",\n allowMembersCreatePosts:\n \"Permitir que os membros criem novas postagens\",\n membersWillCreatePosts:\n \"Os membros poderão criar novas postagens neste espaço\",\n allowMembersCreateEvents:\n \"Permitir que os membros criem novos eventos\",\n membersWillCreateEvents:\n \"Os membros poderão criar novos eventos neste espaço\",\n allowMembersCreateSubspaces:\n \"Permitir que os membros criem novos subespaços\",\n membersWillCreateSubspaces:\n \"Os membros poderão criar subespaços nesta página\",\n membersCanCreate: \"Os membros podem criar\",\n circleCreation: {\n options: {\n discussion: \"Espaços de discussão\",\n content: \"Espaços de conteúdo\",\n event: \"Espaços de evento\",\n },\n placeholder:\n \"Selecione os tipos de espaços que os membros podem criar neste espaço\",\n },\n allowMembersToCopy: {\n description1:\n \"Permitir que os membros copiem membros entre espaços\",\n description2:\n \"Os membros terão a opção de adicionar automaticamente membros de outros círculos\",\n },\n podType: {\n description1:\n \"Todos os membros podem enviar mensagens neste espaço\",\n description2:\n \"Se esta opção estiver desativada, apenas os gerentes poderão enviar mensagens\",\n },\n allowReflections: {\n description1: \"Ativar reflexões para este espaço\",\n description2:\n \"Se esta opção estiver desativada, a opção de reflexão não será exibida nas mensagens\",\n },\n showMembers: {\n description1: \"Mostrar membros\",\n description2: \"Mostrar o diretório de membros deste espaço\",\n },\n hideMmemberEmails: {\n description1:\n \"Exibir e-mails dos membros no diretório de membros\",\n description2:\n \"Se esta opção estiver desativada, os e-mails dos membros não serão listados no diretório\",\n },\n newMemberNotifications: {\n description1:\n \"Notificar os gerentes quando novos membros ingressarem\",\n description2:\n \"Enviar um e-mail de notificação para cada novo cadastro de membro\",\n },\n podSize: {\n description1:\n \"Limitar o número de pessoas que podem ingressar neste espaço\",\n description2:\n \"Especificar um número máximo de pessoas que podem ingressar neste espaço\",\n },\n podSizeValue: {\n description:\n \"Quantas pessoas podem ingressar neste espaço?\",\n },\n sidebarDefaultOpened: {\n description1: \"Espaço aberto por padrão na barra lateral\",\n description2:\n \"Se esta opção estiver ativada, este espaço será expandido por padrão na barra lateral\",\n },\n sidebarHideChildren: {\n description1: \"Ocultar subespaços na barra lateral\",\n description2:\n \"Se esta opção estiver ativada, os subespaços criados neste espaço não aparecerão na barra lateral\",\n },\n allowCompletions: {\n description1: \"Mostrar botão de marcar como concluído\",\n description2:\n 'Se estaopção estiver ativada, os membros verão um botão \"Marcar como concluído\" para este espaço. Depois de selecionar essa opção, o ícone na barra lateral será substituído por uma marca de seleção.',\n },\n redirectToSubspace: {\n description1: \"Redirecionar sempre para o subespaço\",\n description2:\n \"Se esta opção estiver ativada, os membros sempre serão redirecionados para o subespaço selecionado ao acessar este espaço.\",\n },\n parentCircles: {\n description1: \"espaços pai\",\n placeholder:\n \"Pesquise espaços para adicionar como pais deste espaço\",\n },\n },\n scheduling: {\n showStartDate: {\n description1: \"Exibir este espaço como um evento\",\n description2:\n \"Este espaço exibirá uma data de evento onde quer que seja listado\",\n },\n startDateTime: {\n title: \"Data e horário de início\",\n placeholder: \"Selecionar data\",\n },\n endDateTime: {\n title: \"Data e horário de término\",\n placeholder: \"Selecionar data\",\n },\n showLaunchDate: {\n description1: \"Publicar este espaço em uma data\",\n description2:\n \"Este espaço se tornará visível e acessível na data especificada\",\n },\n launchDateTime: {\n placeholder: \"Selecionar data\",\n },\n showArchiveDate: {\n description1: \"Arquivar este espaço em uma data\",\n description2:\n \"Este espaço não estará mais acessível na data especificada\",\n },\n archiveDate: {\n placeholder: \"Selecionar data\",\n },\n showReadonlyDate: {\n description1:\n \"Tornar este espaço somente leitura em uma data\",\n description2:\n \"Nenhuma nova mensagem poderá ser enviada após a data especificada\",\n },\n readonlyDate: {\n placeholder: \"Selecionar data\",\n },\n },\n seo: {\n title: {\n title: \"Título da tag\",\n description:\n \"Este é o título que será exibido nos resultados dos motores de busca e compartilhamentos nas redes sociais. O tamanho ideal é de 60 caracteres.\",\n },\n description: {\n title: \"Descrição meta\",\n description:\n \"Esta é a descrição que será exibida nos resultados dos motores de busca e compartilhamentos nas redes sociais. O tamanho ideal é de 150 a 350 caracteres.\",\n },\n image: {\n title: \"Imagem meta\",\n description:\n \"Esta é a imagem que será exibida nos compartilhamentos nas redes sociais. A dimensão recomendada é de 1200 pixels x 627 pixels (proporção 1.91/1).\",\n },\n },\n },\n members: {\n title: \"Membros\",\n members: {\n download: \"Baixar CSV\",\n invite: \"Convidar\",\n member: \"Membros\",\n invited: \"Convidados\",\n interested: \"Interessados\",\n payment: \"Pagamentos\",\n },\n interested: {\n interested: {\n button: \"Procura\",\n placeholder: \"Procura para mais\",\n broadcast: \"enviar broadcast\",\n noRecordFound: \"Nenhum registro encontrado\",\n },\n table: {\n firstname: \"Primeiro nome\",\n email: \"E-mail\",\n date: \"Data\",\n },\n interestedrow: {\n removeFromList: \"Remover da lista\",\n },\n },\n invited: {\n invited: {\n button: \"Procura\",\n placeholder: \"Procura para mais\",\n noRecordFound: \"Nenhum registro encontrado\",\n },\n table: {\n email: \"E-mail\",\n invitationlink: \"Link de convite\",\n amount: \"Quantia\",\n date: \"Data de envio\",\n },\n },\n invitedrow: {\n invitation: {\n resend: \"Reenviar convite\",\n cancel: \"Cancelar convite\",\n },\n },\n inviteEmail: {\n invite: {\n placeholder:\n \"Digite o endereço de e-mail ou mencione as pessoas que você deseja adicionar a este espaço. As entradas podem ser separadas por vírgulas, espaços ou novas linhas.\",\n message: \"Adicionar uma mensagem de boas-vindas opcional\",\n checkboxLabel:\n \"Enviar e-mail para notificar as pessoas que foram convidadas\",\n alertMessage:\n \"Você está atualmente em um plano básico e não pode enviar convites pelo Sutra. Quando você clicar em convidar, um link de convite exclusivo será gerado para cada endereço de e-mail que você adicionar. Você poderá enviar um e-mail pessoal para cada pessoa com este link.\",\n alertbutton: \"Atualizar conta\",\n button: \"Convidar pessoas\",\n },\n },\n inviteExisting: {\n invite: {\n copyMembers: \"Copiar membros de outro espaço\",\n copyMembersPlaceholder:\n \"Selecione os espaços dos quais deseja copiar membros\",\n addActiveMembers:\n \"Adicionar membros ativos de espaços superiores\",\n addActiveMembersPlaceholder:\n \"Selecione os membros ativos para adicionar a este espaço\",\n addPendingMembers:\n \"Adicionar membros pendentes de espaços superiores\",\n addPendingMembersPlaceholder:\n \"Selecione os membros pendentes para adicionar a este espaço\",\n checkboxLabel:\n \"Enviar e-mail para notificar as pessoas que foram convidadas\",\n alert:\n \"Você está atualmente em um plano básico e não pode enviar convites pelo Sutra. Quando você clicar em convidar, um link de convite exclusivo será gerado para cada endereço de e-mail que você adicionar. Você poderá enviar um e-mail pessoal para cada pessoa com este link.\",\n alertButton: \"Atualizar conta\",\n button: \"Convidar pessoas\",\n thisOption:\n \"Esta opção não está habilitada para este espaço\",\n },\n },\n inviteLink: {\n invite: {\n shareLinkText:\n \"As pessoas podem se registrar neste espaço diretamente com o seguinte link. Você pode compartilhar este link onde quiser (e-mail, rede social, etc).\",\n youCannotShare:\n \"Você não pode compartilhar um link para um espaço privado.\",\n },\n },\n invitePeople: {\n invite: {\n invitePeople: \"Convidar pessoas\",\n },\n },\n membersActivity: {\n members: {\n placeholder: \"Procurar para\",\n button: \"Procurar\",\n emailButton: \"E-mail\",\n messageButton: \"Mensagem\",\n noRecordFound: \"Nenhum registro encontrado\",\n },\n memberTable: {\n noRecordFound: \"Nenhum registro encontrado\",\n lastSeen: \"Última visualização\",\n lastPosted: \"Última publicação\",\n date: \"Data de entrada\",\n },\n },\n participationActivity: {\n participation: {\n searchPlaceholder: \"Pesquisar por\",\n searchButton: \"Pesquisar\",\n pickDatePlaceholder: \"Selecionar intervalo de datas\",\n emailButton: \"E-mail\",\n messageButton: \"Mensagem\",\n noRecordFound: \"Nenhum registro encontrado\",\n },\n memberTable: {\n member: \"Membro\",\n participation: \"Participação\",\n posts: \"Publicações\",\n words: \"Palavras\",\n },\n },\n participationActivityRow: {\n posts: \"publicações\",\n },\n paymentRow: {\n payment: {\n refundPayment: \"Reembolsar pagamento\",\n },\n },\n payments: {\n payment: {\n searchPlaceholder: \"Pesquisar por\",\n searchButton: \"Pesquisar\",\n noRecordFound: \"Nenhum registro encontrado\",\n },\n paymentTable: {\n member: \"Membro\",\n amount: \"Quantia\",\n date: \"Data\",\n status: \"Status\",\n },\n },\n progressActivity: {\n progress: {\n searchPlaceholder: \"Pesquisar por\",\n searchButton: \"Pesquisar\",\n emailButton: \"E-mail\",\n messageButton: \"Mensagem\",\n noRecordFound: \"Nenhum registro encontrado\",\n progressTracking:\n \"O acompanhamento de progresso está disponível apenas em espaços que possuem prompts interativos.\",\n },\n progressTable: {\n member: \"Membro\",\n progress: \"Progresso\",\n },\n },\n registered: {\n registered: {\n searchPlaceholder: \"Pesquisar por\",\n searchButton: \"Pesquisar\",\n email: \"E-mail\",\n message: \"Mensagem\",\n noRecordFound: \"Nenhum registro encontrado\",\n pending: \"Pendente\",\n manager: \"Gerentes\",\n all: \"Todos\",\n active: \"Ativos\",\n },\n registeredTable: {\n member: \"Membro\",\n email: \"E-mail\",\n status: \"Status\",\n role: \"Função\",\n roleApproveAll: \"Aprovar todos\",\n },\n },\n registeredRow: {\n registered: {\n roleApprove: \"Aprovar\",\n joined: \"Ingressou\",\n sendMessage: \"Enviar mensagem\",\n stopCharging: \"Parar cobrança\",\n emailPreferences: \"Preferências de e-mail\",\n removeMember: \"Remover membro\",\n },\n },\n },\n payment: {\n charging: {\n NumberOfTimes: {\n howManyTimes: \"Quantas vezes?\",\n },\n UntilDate: {\n pickDate: \"Selecionar uma data de término para a cobrança\",\n },\n },\n fees: {\n description: {\n fees: \"TAXAS:\",\n sutraFee: \"TAXA SUTRA +\",\n stripeProcessingFee: \"TAXAS DE PROCESSAMENTO DO STRIPE\",\n },\n },\n flexible: {\n flexible: {\n description:\n \"Para oferecer opções flexíveis de pagamento, como um modelo de pague o quanto puder ou várias camadas de pagamento, você pode criar uma pesquisa de pagamento que as pessoas verão ao se registrar em seu espaço. Clique no botão de edição abaixo para personalizar a pesquisa.\",\n },\n },\n once: {\n once: {\n description: \"Quanto você irá cobrar?\",\n number: \"10\",\n },\n },\n recurring: {\n recurring: {\n description1: \"Quanto você irá cobrar?\",\n description2: \"Selecione uma opção de cobrança\",\n },\n },\n },\n privacy: {\n open: {\n open: {\n description: \"Qualquer pessoa pode acessar este espaço\",\n },\n },\n paid: {\n paid: {\n stripeConnected: \"Conectado ao Stripe\",\n disconnectButton: \"Desconectar\",\n description:\n \"Para processar pagamentos para este espaço, por favor conecte sua conta do Stripe clicando no botão abaixo.\",\n connectButton: \"Conectar com o Stripe\",\n },\n },\n private: {\n private: {\n description:\n \"Este espaço é privado e as pessoas devem ser convidadas para participar\",\n },\n },\n },\n registration: {\n steps: {\n addFromSubSpace: {\n label: \"Selecionar um espaço para adicionar membro\",\n description:\n \"Em algumas situações, as pessoas podem ingressar em um subespaço sem ingressar no espaço pai. Às vezes, você deseja garantir que elas também sejam adicionadas a um espaço de nível superior ou a algum espaço compartilhado. Essa opção permite fazer isso. Sempre que alguém ingressar em um subespaço aqui, eles serão automaticamente adicionados a quaisquer espaços que você selecionar abaixo.\",\n placeholder: \"Selecionar espaços\",\n saveButton: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n saveButton2: \"Salvar etapa\",\n },\n addStructure: {\n label1: \"Selecionar estrutura\",\n placeholder1: \"Selecionar uma opção\",\n label2: \"Enviar como\",\n placeholder2: \"Selecionar uma opção\",\n saveButton: \"Salvar etapa\",\n },\n addToExistingSpace: {\n label: \"Selecionar um espaço para adicionar membro\",\n placeholder: \"Selecionar espaços\",\n saveButton1: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n saveButton2: \"Salvar etapa\",\n },\n addToNewSpace: {\n placeholder: \"Nome do novo espaço\",\n label: \"Criar um nome para o novo espaço\",\n saveButton1: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n saveButton2: \"Salvar etapa\",\n },\n applyTemplate: {\n label: \"Selecionar um espaço para copiar\",\n description:\n \"Às vezes, você deseja criar um espaço modelo e replicá-lo sempre que um novo espaço for criado. Você pode criar um espaço e configurá-lo exatamente como desejar. Em seguida, todo o conteúdo e subespaços serão copiados para qualquer novo espaço criado aqui.\",\n saveButton1: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n saveButton2: \"Salvar etapa\",\n },\n editEmail: {\n placeholder1: \"Linha de assunto\",\n label1: \"Enviar como\",\n placeholder2: \"Selecionar uma opção\",\n label2: \"Enviar para\",\n placeholder3: \"Selecionar uma opção\",\n placeholder4: \"alguem@especial.com\",\n label3: \"Endereço de e-mail\",\n saveButton: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n sendPreview: \"Send preview\",\n },\n editStructure: {\n deleteButton: \"Excluir etapa\",\n },\n editSurvey: {\n deleteButton: \"Excluir etapa\",\n },\n sendEmail: {\n label1: \"Selecionar e-mail\",\n placeholder1: \"Selecionar uma opção\",\n label2: \"Enviar como\",\n placeholder2: \"Selecionar uma opção\",\n label3: \"Enviar para\",\n placeholder3: \"Selecionar uma opção\",\n label4: \"alguem@especial.com\",\n placeholder4: \"Endereço de e-mail\",\n saveButton: \"Salvar etapa\",\n label5: \"Gerentes\",\n label6: \"Endereço de e-mail personalizado\",\n },\n setToPending: {\n title: \"Mensagem de boas-vindas\",\n description:\n \"Este é o conteúdo que as pessoas verão logo após secadastrarem no seu espaço. Este é um bom lugar para explicar quando o programa será lançado e o que elas podem esperar enquanto isso.\",\n saveButton1: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n saveButton2: \"Salvar etapa\",\n },\n surveyPerson: {\n placeholder: \"Selecionar uma opção\",\n label: \"Selecionar enquete\",\n saveButton1: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n saveButton2: \"Salvar etapa\",\n },\n wait: {\n description1: \"Quantos dias?\",\n description2: \"Aguardar até\",\n saveButton: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n saveButton2: \"Salvar etapa\",\n label1: \"Selecionar condição de espera\",\n placeholder: \"Selecionar uma opção\",\n label2: \"Número de dias\",\n label3: \"Até uma data e hora específicas\",\n label4: \"Selecionar data\",\n },\n webhook: {\n label: \"URL do Webhook\",\n saveButton: \"Salvar etapa\",\n deleteButton: \"Excluir etapa\",\n },\n remove_from_space: {\n label: \"Select a space to remove member from\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n },\n addStep: {\n addStep: {\n description: \"Adicionar etapa\",\n label: \"Por favor, selecione uma ação para esta etapa\",\n placeholder: \"Selecionar uma ação\",\n },\n },\n registrationFlow: {\n registration: {\n description1:\n \"Essa recurso permite que você sequencie ações automatizadas que são acionadas quando uma pessoa se junta ou se interessa por este espaço. Aqui você pode fazer coisas como agendar e-mails e adicionar automaticamente pessoas a espaços selecionados quando elas se cadastram.\",\n description2: \"Realizar essas ações após alguém...\",\n placeholder1: \"Selecionar uma condição inicial\",\n addButton: \"Adicionar etapa\",\n label1:\n \"Torna-se um membro ou se junta à lista de interessados\",\n description3:\n \"As etapas a seguir serão acionadas quando uma pessoa se tornar membro deste espaço ou se juntar à lista de interessados, enviando seu nome e endereço de e-mail por meio de um formulário de interesse.\",\n label2: \"Torna-se um membro deste espaço\",\n description4:\n \"As etapas a seguir serão acionadas quando uma pessoa se tornar membro deste espaço.\",\n label3: \"Tornar-se interessa-se por este espaço\",\n description5:\n \"As etapas a seguir serão acionadas quando uma pessoa se juntar à lista de interessados, enviando seu nome e endereço de e-mail por meio de um formulário de interesse.\",\n },\n },\n },\n structure: {\n add: {\n add: {\n title: \"Adicionar a espaços\",\n description: \"Espaços\",\n placeholder1: \"Selecionar um espaço\",\n label1: \"Enviar como\",\n placeholder2: \"Escolher remetente\",\n placeholder3: \"Selecionar data\",\n label2: \"Data de envio\",\n label3: \"Enviar tempo\",\n saveButton: \"Salvar\",\n label4: \"Agendar para mais tarde\",\n },\n },\n createStructure: {\n title: {\n createStructure: \"Criar estrutura\",\n },\n },\n structureItem: {\n item: {\n addToSpace: \"Adicionar ao espaço\",\n open: \"View responses\",\n edit: \"Edita\",\n duplicate: \"Duplicar\",\n delete: \"Excluir\",\n },\n },\n },\n survey: {\n add: {\n add: {\n title: \"Adicionar a espaços\",\n spaces: \"espaços\",\n placeholder1: \"Selecionar um espaço\",\n label: \"Enviar como\",\n placeholder2: \"Escolher remetente\",\n saveButton: \"Salvar\",\n },\n },\n answer: {\n answer: {\n addOption: \"Adicionar opção\",\n },\n },\n createSurvey: {\n description: \"Criar pesquisa\",\n },\n createSurveyForm: {\n form: {\n title: \"Enquete Título\",\n description:\n \"Pagamentos flexíveis permitem que você ofereça várias opções de pagamento para o seu programa. Se você deseja que as pessoas definam seu próprio preço, basta criar uma opção de pagamento sem definir o valor para essa opção. Essa opção será exibida com um campo de entrada para a pessoa definir o próprio valor. Por exemplo, você pode oferecer um modelo de pague o quanto puder com vários níveis sugeridos e uma opção completamente aberta. Se você adicionar um texto de explicação abaixo, esse texto será exibido logo acima das opções de pagamento.\",\n optionalDescription: \"Opcional Enquete descrição\",\n addQuestionButton: \"Adicionar pergunta\",\n saveButton: \"Salvar\",\n },\n },\n individual: {\n individual: {\n placeholder: \"Selecionar uma pessoa\",\n },\n },\n multipleItem: {\n multipleItem: {\n placeholder: \"Opção\",\n },\n },\n paymentItem: {\n paymentItem: {\n placeholder: \"Opção de pagamento\",\n },\n },\n paymentSurveyItem: {\n item: {\n editButton: \"Editar opções de pagamento\",\n viewButton: \"visualizar respostas\",\n },\n },\n showSurvey: {\n survey: {\n title: \"Respostas da pesquisa\",\n },\n },\n singleItem: {\n item: {\n placeholder: \"Opção\",\n },\n },\n surveyItem: {\n item: {\n addToSpace: \"Adicionar ao espaço\",\n open: \"View responses\",\n edit: \"Editar\",\n take: \"Preview survey\",\n duplicate: \"Duplicar\",\n download: \"Baixar CSV\",\n delete: \"Excluir\",\n responses: \"Respostas\",\n },\n },\n },\n broadcast: {\n broadcast: {\n button: {\n broadcastButton: \"Nova transmissão\",\n },\n },\n },\n broadcast: {\n title: \"Transmissão\",\n broadcastButton: \"Nova transmissão\",\n membersTypes: {\n active: \"Membros ativos\",\n pending: \"Membros pendentes\",\n interested: \"Membros interessados\",\n },\n sentOn: \"Transmissão enviada em\",\n onDestroy: {\n alertTitle: \"Tem certeza?\",\n alertMessage:\n \"Esta transmissão será excluída permanentemente\",\n confirm: \"Excluir transmissão\",\n deny: \"Cancelar\",\n },\n actions: {\n edit: \"Editar\",\n duplicate: \"Duplicar\",\n delete: \"Excluir\",\n },\n statuses: {\n sent: \"Enviada\",\n scheduled: \"Agendada\",\n draft: \"Rascunho\",\n procesing: \"Processing\",\n },\n form: {\n composeBroadcast: \"Compor Transmissão\",\n contentErrMessage: \"Adicione algum conteúdo\",\n targetErrMessage: \"Selecione um destinatário\",\n type: {\n email: \"Enviar e-mail\",\n message: \"Enviar mensagem ao espaço\",\n },\n title: {\n placeholder: \"Assunto linha\",\n },\n brackets: {\n part1: \"Use\",\n part2: \"e\",\n part3:\n \"para preencher automaticamente as informações correspondentes\",\n },\n target: {\n placeholder: \"Escolha os destinatários\",\n label: \"Enviar para\",\n },\n sendAs: {\n label: \"Enviar como\",\n placeholder: \"Escolha o remetente\",\n },\n schedule: {\n label: \"Agendar para mais tarde\",\n },\n sendAtDate: {\n label: \"Data de envio\",\n placeholder: \"Selecione a data\",\n },\n sendAtTime: {\n label: \"Horário de envio\",\n placeholder: \"\",\n },\n scheduleBroadcast: \"Agendar transmissão\",\n sendBroadcast: \"Enviar transmissão\",\n saveDraft: \"Salvar rascunho\",\n sendPreview: \"Send preview\",\n },\n },\n surveys: {\n title: \"Pesquisas\",\n createSurvey: \"Criar pesquisa\",\n },\n structures: {\n title: \"Estruturas\",\n createStructure: \"Criar estrutura\",\n },\n sutraAdmin: {\n title: \"Administração do Sutra\",\n },\n scheduled: {\n title: \"Agendados\",\n },\n archived: {\n title: \"Arquivados\",\n },\n participation: {\n title: \"Participação\",\n label1: \"Presença\",\n description1: \"% de membros que visitaram nos últimos 7 dias\",\n label2: \"Atividade\",\n description2: \"% de membros que postaram nos últimos 7 dias\",\n label3: \"Posts\",\n description3:\n \"Total de posts em todos os subespaços nos últimos 7 dias\",\n label4: \"Participação\",\n label5: \"Atividade dos Membros\",\n label6: \"Progresso\",\n },\n },\n sidebar: {\n iconSelect: {\n placeholder: \"Pesquisar\",\n },\n membersNode: {\n member: \"Membros\",\n },\n nodeIcon: {\n reset: \"Redefinir\",\n },\n sidebarTutorial: {\n gettingStarted: \"Primeiros passos\",\n },\n },\n alreadyMember: {\n member: {\n welcome: \"Bem-vindo! Você já é um membro deste espaço -\",\n clickHere: \"Clique aqui para entrar\",\n },\n },\n calender: {\n calender: {\n joinButton: \"Participar da chamada\",\n addButton: \"Adicionar ao calendário\",\n joinEventButton: \"Registrar\",\n title: \"Detalhes do evento\",\n },\n },\n invitationBar: {\n button: {\n register: \"Registrar\",\n },\n },\n space: {\n sutraLoading: \"Sutra - Carregando...\",\n },\n statusBar: {\n restoreButton: \"Restaurar\",\n },\n tagFilter: {\n resetButton: \"Redefinir\",\n },\n presentations: {\n discussion: {\n reflectionHeader: \"Reflexões\",\n backToPost: \"Voltar ao post\",\n pinnedMessageHeader: \"Mensagem fixada\",\n delete: {\n title: \"Tem certeza?\",\n message: \"Essa ação não pode ser desfeita\",\n confirmButton: \"Sim, excluir\",\n cancelButton: \"Cancelar\",\n },\n },\n tag: {\n placeholder: \"Pesquisar tags ou criar uma nova\",\n placeholder2: \"Selecione uma tag\",\n createAction: \"Criar\",\n },\n message: {\n reply: \"Refletir\",\n addTags: \"Adicionar tags\",\n tag: \"Tag\",\n copyToClipboard: \"Copiar para a área de transferência\",\n messageCopied: \"Mensagem copiada para a área de transferência\",\n pinMessageAction: \"Fixar mensagem\",\n editMessage: \"Editar mensagem\",\n deleteMessage: \"Excluir mensagem\",\n makePrivate: \"Tornar privado\",\n viewReplies1: \"Ver\",\n viewReplies2single: \"reflexão\",\n viewReplies2plural: \"reflexões\",\n privateMessage:\n \"Esta postagem está atualmente visível apenas para você e os gerentes deste espaço. Se torná-la pública, ela será visível para outros participantes deste espaço.\",\n privateMessage2:\n \"Esta pessoa optou por não compartilhar sua resposta com outros participantes.\",\n unreadMessagesText: \"Você tem mensagens não lidas\",\n scrollDownButton: \"Rolar para baixo\",\n newReflections: {\n part1: \"Você tem\",\n part2: \"reflexões não lidas em\",\n part3: \"mensagens\",\n },\n viewNextButton: \"Ver próxima\",\n pinMessage: {\n mainText: \"Mensagem fixada\",\n viewButton: \"Ver mensagem\",\n },\n },\n content: {\n commentInput: {\n toggleLabel1:\n \"Comentários estão desativados para jornadas interativas\",\n toggleLabel2: \"Ativar comentários para esta postagem\",\n toggleLabel3: \"Ativar comentários para este espaço de evento\",\n toggleLabel4:\n \"Ativar comentários para este espaço de conteúdo\",\n placeholder1:\n \"Comentários não podem ser postados enquanto você estiver editando.\",\n placeholder2: \"Escreva algo...\",\n },\n },\n fallback: {\n title: \"Problema de conexão\",\n message:\n \"Parece que você foi desconectado da internet. Quando estiver online novamente, iremos reconectá-lo automaticamente.\",\n },\n events: {\n placeholder: \"Escreva algo...\",\n upcomingButton: \"Próximos\",\n pastButton: \"Passados\",\n addEvent: \"Adicionar evento\",\n eventSettingsTooltip: \"Configurações do evento\",\n newEventTitle: \"NOVO EVENTO\",\n },\n list: {\n placeholder: \"Escreva algo...\",\n createButton: \"Criar postagem\",\n listSettingsTooltip: \"Configurações do fórum\",\n duplicateFormTitle: \"DUPLICAR ESPAÇO\",\n },\n settings: {\n versions: {\n content: \"Página de conteúdo\",\n posts: \"Posts\",\n discussions: \"Discussões\",\n link: \"Link\",\n template: \"Modelo\",\n },\n versionsDescriptions: {\n content:\n \"Novos itens serão exibidos como uma página de conteúdo com funcionalidade completa.\",\n discussion: \"Vazio\",\n posts:\n \"Novos itens serão exibidos como um post simples com funcionalidade limitada\",\n link: \"Essa opção permite que você envie um link para qualquer espaço no Sutra, que será exibido como um item aqui.\",\n template:\n \"Crie um espaço modelo que será duplicado cada vez que um novo item for criado aqui.\",\n },\n createNewTemplate: \"Criar novo modelo\",\n editTemplate: \"Editar modelo\",\n title: \"CONFIGURAÇÕES\",\n accordion1: {\n label: \"Exibir como\",\n description:\n \"Exibir posts em uma visualização em lista ou grade\",\n listOption: \"Lista\",\n gridOption: \"Grade\",\n dateCreated: \"Data de criação\",\n dateCreatedReversed: \"Data reversa de criação\",\n lastActive: \"Última atividade\",\n lastEdited: \"Última edição\",\n alphabetic: \"Ordem alfabética\",\n reverseAlphabetic: \"Alfabética reversa\",\n },\n accordion2: {\n label: \"Opções de exibição\",\n description: \"\",\n switches: {\n onlyManagers: \"Apenas os gerentes podem criar um post\",\n showAuthor: \"Mostrar informações do autor\",\n showPreview: \"Mostrar texto de visualização\",\n showComments: \"Mostrar contagem de comentários\",\n showMembers: \"Mostrar avatares dos membros\",\n showTimestamp: \"Mostrar horário de criação do post\",\n showThumbnail: \"Mostrar miniatura\",\n autoThumbnail: \"Criar miniatura automaticamente\",\n },\n },\n accordion3: {\n label: \"Formato do novo post\",\n description:\n \"Selecione o formato para novos posts neste espaço\",\n templateName: {\n label: \"Dê um nome ao seu modelo\",\n placeholder: \"Nome do modelo\",\n },\n templateDirectOption: \"Subespaço direto\",\n templateLinkedOption: \"Espaço vinculado\",\n privacyDescription:\n \"Selecione o nível de privacidade padrão para novos posts\",\n privacyOpenOption: \"Aberto\",\n privacyPrivateOption: \"Privado\",\n privacyAnyOption: \"Escolha do criador\",\n },\n accordion4: {\n label: \"Rótulo do botão\",\n createPost: {\n label: \"Criar post\",\n description:\n \"Especifique o texto que aparece no botão de novo post\",\n },\n },\n templateDescription:\n \"Novos espaços modelo podem ser subespaços diretos deste espaço ou podem ser espaços vinculados. Espaços vinculados são espaços independentes de nível superior que serão exibidos nesta página. O criador do espaço se tornará um gerente completo do espaço que eles criarem.\",\n },\n thumbnail: {\n title: \"ADICIONAR MINIATURA\",\n message: \"A imagem da miniatura está sendo carregada...\",\n },\n static: {\n broadcastExclude: {\n unsubscribe: {\n part1: \"Tem certeza de que deseja cancelar a inscrição em\",\n part2:\n \"Você não receberá mais e-mails de transmissão direta dos gerentes deste espaço\",\n button: \"Cancelar inscrição\",\n },\n subscribe: {\n part1:\n \"Você foi cancelado e não receberá mais e-mails de transmissão de\",\n button: \"Inscrever-se\",\n },\n },\n invitation: {\n message: \"Você foi convidado para este espaço\",\n button: \"Aceitar convite\",\n },\n pending: {\n message: \"Sua adesão está pendente\",\n },\n private: {\n message: {\n part1: \"Este é um espaço privado.\",\n part2: \"Se você é membro, faça o login.\",\n },\n button: \"Fazer login\",\n },\n processing: {\n message: \"Este espaço ainda está sendo processado...\",\n },\n },\n gridPost: {\n onDelete: {\n alertTitle: \"Tem certeza?\",\n alertMessage: \"Este espaço não estará mais vinculado aqui.\",\n alertMessage2: \"Este espaço não estará mais vinculado aqui.\",\n confirm: \"Sim\",\n deny: \"Não\",\n },\n actions: {\n pin: \"Fixar no topo\",\n unpin: \"Desafixar\",\n addThumbnail: \"Adicionar miniatura\",\n removeThumbnail: \"Remover miniatura\",\n duplicate: \"Duplicar\",\n unlink: \"Desvincular\",\n delete: \"Excluir\",\n },\n },\n listContent: {\n publishTootip: \"Será publicado nesta data\",\n privateTooltip: \"Este é um espaço privado\",\n },\n },\n colors: {\n form: {\n colorTheme: \"Tema de cores\",\n customize: \"Personalizar seleção de cores\",\n saveTheme: \"Salvar tema\",\n resetColor: \"Redefinir cor\",\n pageLayout: \"Layout da página\",\n pageFormat: \"Formato da página\",\n },\n headerAndLogo: {\n addCover: \"Adicionar capa\",\n removeCover: \"Remover capa\",\n changeLogo: \"Alterar logotipo\",\n removeLogo: \"Remover logotipo\",\n dimensions:\n \"A dimensão recomendada para imagens de capa é de 1200 x 300 pixels\",\n dimensions2:\n \"A dimensão recomendada para logotipos é de 360 x 120 pixels\",\n },\n pageFormat: {\n description:\n \"Você pode alterar a forma como o conteúdo deste espaço é apresentado selecionando uma opção abaixo.\",\n contentLabel: \"Conteúdo\",\n discussionLabel: \"Discussão\",\n contentDescription:\n \"Um espaço para módulos de aprendizado, conteúdo geral ou recursos da comunidade.\",\n discussionDescription: \"Um espaço para discussão ou anúncios\",\n eventsLabel: \"Calendário\",\n eventsDescription: \"Criar uma lista de eventos no calendário\",\n listLabel: \"Fórum\",\n listDescription:\n \"Criar um feed onde as pessoas podem publicar tópicos de discussão\",\n },\n pageLayout: {\n widePage: \"Largura de página ampla\",\n hideSidebar: \"Ocultar barra lateral\",\n hideHeader: \"Ocultar cabeçalho\",\n hideCoverImage: \"Ocultar imagem de capa\",\n hidePageTitle: \"Ocultar título da página\",\n hideBreadcrumbs: \"Ocultar trilhas de navegação\",\n },\n header_color: {\n label: \"Cor do cabeçalho\",\n description: \"Descrição\",\n },\n header_link_color: {\n label: \"Logótipo do cabeçalho e cor do texto\",\n description: \"Descrição\",\n },\n primary_button_background_color: {\n label: \"Cor de fundo do botão primário\",\n description: \"Descrição\",\n },\n primary_button_text_color: {\n label: \"Cor do texto do botão primário\",\n description: \"Descrição\",\n },\n secondary_button_background_color: {\n label: \"Cor de fundo do botão secundário\",\n description: \"Descrição\",\n },\n secondary_button_text_color: {\n label: \"Cor do texto do botão secundário\",\n description: \"Descrição\",\n },\n background_color: {\n label: \"Cor de fundo\",\n description: \"Descrição\",\n },\n default_text_color: {\n label: \"Cor do texto padrão\",\n description: \"Descrição\",\n },\n sidebar_background_color: {\n label: \"Cor de fundo da barra lateral\",\n description: \"Descrição\",\n },\n sidebar_text_color: {\n label: \"Cor do texto da barra lateral\",\n description: \"Descrição\",\n },\n default_link_color: {\n label: \"Cor do link padrão\",\n description: \"Descrição\",\n },\n default_badge_color: {\n label: \"Cor do distintivo de notificação\",\n description: \"Descrição\",\n },\n default_badge_text_color: {\n label: \"Cor do texto do distintivo de notificação\",\n description: \"Descrição\",\n },\n registration_page_background_color: {\n label: \"Cor de fundo da página de registro\",\n description: \"Descrição\",\n },\n registration_page_default_text_color: {\n label: \"Cor do texto padrão da página de registro\",\n description: \"Descrição\",\n },\n },\n create: {\n invalidNameErrorMsg:\n \"O nome do espaço deve ter entre 3 e 100 caracteres\",\n },\n dummy: {\n magicLink: {\n alertTitle: \"Você está quase lá...\",\n alertMessage:\n \"Enviamos o link mágico para o seu e-mail. ISSO É APENAS UM TESTE, NENHUM E-MAIL REAL FOI ENVIADO.\",\n },\n },\n pending: {\n message: \"Sua associação está pendente\",\n },\n recover: {\n alertTitle: \"Você está quase lá...\",\n alertMessage:\n \"Acabamos de enviar um e-mail com instruções para recuperar sua senha. ISSO É APENAS UM TESTE, NENHUM E-MAIL REAL FOI ENVIADO.\",\n },\n form: {\n calendarLinks: {\n text: \"As informações adicionadas abaixo serão transferidas para o calendário do membro quando ele adicionar o evento.\",\n link: {\n label: \"URL do evento (link do Zoom, etc)\",\n placeholder: \"Qual é o link da sua chamada de vídeo\",\n },\n description: {\n label:\n \"Adicione uma descrição para o seu evento que aparecerá nas informações do calendário\",\n placeholder: \"Descrição do calendário\",\n },\n eventStartDateAndTime: \"Data e hora de início do evento\",\n date: {\n placeholder: \"Escolha a data\",\n },\n eventDateTime: \"Data e hora de término do evento (opcional)\",\n allowInterests:\n \"Permitir que as pessoas participem do evento sem se registrarem no Sutra\",\n automatedEmails: \"Configurar e-mails automatizados\",\n save: \"Salvar detalhes\",\n },\n duplicate: {\n prefix: \"Cópia de\",\n intention: {\n label: \"Nome do espaço\",\n placeholder: \"Qual é o nome do seu espaço?\",\n },\n copyMembers: {\n label: \"Copiar membros\",\n },\n copyManagers: {\n label: \"Copiar gerentes\",\n },\n copyContent: {\n label: \"Copiar conteúdo\",\n },\n copyPosts: {\n label: \"Copy posts\",\n },\n copyBroadcasts: {\n label: \"Copiar transmissões\",\n },\n copyAutomation: {\n label: \"Copiar automações\",\n },\n copyRegPage: {\n label: \"Copiar página de registro\",\n },\n save: \"Duplicar espaço\",\n saveTemplate: \"Faça um modelo\",\n },\n form: {\n privacyDescription1:\n \"O espaço que você criar será acessível a todos dentro de\",\n rootPrivacyDescription1:\n \"O espaço que você criar será acessível a qualquer pessoa que tenha um link para ele. Você pode definir opções de pagamento depois de criar o espaço.\",\n privacyDescription2:\n \"O espaço que você criar será visível apenas para as pessoas que forem adicionadas a ele.\",\n rootPrivacyDescription2:\n \"O espaço que você criar será visível apenas para as pessoas que forem convidadas para ele. Você pode definir opções de pagamento depois de criar o espaço.\",\n placeholderDescription: \"Descrição\",\n versions: {\n content: {\n label: \"Conteúdo\",\n description:\n \"Crie um espaço para um módulo de aprendizagem, conteúdo geral ou recursos comunitários.\",\n },\n discussion: {\n label: \"Discussão\",\n description:\n \"Crie um espaço de chat para discussão ou anúncios\",\n },\n event: {\n label: \"Evento\",\n description: \"Crie um único evento\",\n },\n events: {\n label: \"Calendário\",\n description: \"Crie uma lista de eventos no calendário\",\n },\n list: {\n label: \"Fórum\",\n description:\n \"Crie um feed onde as pessoas podem postar tópicos de discussão\",\n },\n },\n segments: {\n space: {\n label: \"Espaço\",\n description:\n \"Crie um espaço para seu curso ou comunidade. Escolha esta opção se você deseja criar uma turma de treinamento, um curso em ritmo próprio, uma comunidade ou qualquer grupo que se reunirá ao longo do tempo.\",\n },\n event: {\n label: \"Evento\",\n description:\n \"Crie uma página de evento simples. Escolha esta opção se você deseja apenas organizar um evento único que possa ser compartilhado publicamente.\",\n },\n discussion: {\n label: \"Discussão\",\n description:\n \"Crie um espaço de chat simples para seu grupo. Escolha esta opção se você deseja criar um espaço de discussão único para um grupo de pessoas.\",\n },\n },\n intention: {\n label: \"Nome do espaço\",\n placeholder: \"Qual é o nome do seu espaço?\",\n },\n content: {\n label: \"Nome do espaço\",\n description: \"Escreva algo...\",\n placeholder: \"Escreva algo...\",\n },\n spaceFormat: {\n label: \"Formato do espaço\",\n placeholder: \"Escolha um\",\n },\n eventDescription:\n \"As informações adicionadas abaixo serão transferidas para o calendário do membro quando eles adicionarem o evento.\",\n hangoutLink: {\n label: \"URL do evento (link do Zoom, etc)\",\n placeholder: \"Qual é o link da sua chamada de vídeo\",\n },\n eventStartTime: \"Data e hora de início do evento\",\n date: {\n placeholder: \"Escolha a data\",\n },\n eventEndDate: \"Data e hora de término do evento (opcional)\",\n privacyLevelText: \"Nível de privacidade\",\n privacy: {\n open: \"Aberto\",\n private: \"Privado\",\n },\n joinAsMember: {\n label: \"Participar deste espaço como membro\",\n },\n publishDate: {\n label: \"Publicar na data\",\n },\n publishDateTime: \"Data e hora de publicação\",\n create: \"Criar espaço\",\n },\n interestedForm: {\n title: \"Registrar para este evento\",\n createAlertTitle: \"Obrigado por se registrar!\",\n createAlertButton: \"Ok\",\n name: {\n label: \"Nome\",\n placeholder: \"Digite seu primeiro nome\",\n },\n email: {\n label: \"E-mail\",\n placeholder: \"Digite seu e-mail\",\n },\n register: \"Registrar\",\n joinWithSutra: \"Entrar com minha Conta Sutra\",\n },\n linkForm: {\n linkErrMessage: \"Este não é um link de espaço válido\",\n link: {\n label: \"\",\n placeholder: \"Link para o espaço\",\n errors: {\n space:\n \"O espaço que você deseja compartilhar é privado ou não existe!\",\n event:\n \"O espaço que você deseja compartilhar é privado, não é um evento ou não existe!\",\n },\n },\n },\n listForm: {\n intention: {\n placeholder: \"Título\",\n },\n },\n },\n header: {\n onLeave: {\n title: \"São Tem certeza?\",\n message:\n \"Você será removido como membro deste espaço e poderá precisar ser adicionado novamente para recuperar o acesso.\",\n confirm: \"Sim, por favor me remova\",\n deny: \"Não\",\n },\n onArchive: {\n title: \"São Tem certeza?\",\n message:\n \"Este espaço será arquivado e os membros não terão mais acesso.\",\n confirm: \"Sim\",\n deny: \"Não\",\n },\n onUnarchive: {\n title: \"São Tem certeza?\",\n message:\n \"Este espaço será desarquivado e os membros terão acesso novamente.\",\n confirm: \"Sim\",\n deny: \"Não\",\n },\n onDelete: {\n title: \"São Tem certeza?\",\n message:\n \"Este espaço será excluído e os membros não terão mais acesso.\",\n confirm: \"Sim\",\n deny: \"Não\",\n },\n onFix: {\n title: \"São Tem certeza?\",\n message:\n \"A Sutra tentará recriar este espaço de conteúdo a partir dos dados legados.\",\n confirm: \"Sim, corrigir\",\n deny: \"Não\",\n confirmationTitle: \"Informação\",\n confirmationMessage: \"Espaço corrigido, recarregando...\",\n confirmationError: \"Este espaço não pode ser corrigido\",\n },\n buttons: {\n uncomplete: \"Marcar como incompleto\",\n markComplete: \"Marcar como completo\",\n edit: \"Editar\",\n post: \"publicação\",\n page: \"página\",\n space: \"espaço\",\n returnTo: \"Voltar para\",\n editTitle: \"Editar título\",\n viewPage: \"Ver página\",\n editDescription: \"Editar descrição\",\n appearance: \"Aparência\",\n manage: \"Gerenciar\",\n members: \"Membros\",\n leave: \"Sair do espaço\",\n delete: \"Excluir espaço\",\n deletePost: \"Excluir\",\n duplicate: \"Duplicar espaço\",\n template: \"Faça um modelo\",\n archive: \"Arquivar espaço\",\n unarchive: \"Desarquivar espaço\",\n fix: \"Corrigir\",\n joinEvent: \"Registrar\",\n joinSpace: \"Participar do espaço\",\n preview: \"Visualizar\",\n draft: \"Rascunho\",\n published: \"Publicado\",\n publish: \"Publicar\",\n returnToSettings: \"Voltar para as configurações\",\n returnToSpace: \"Voltar para o espaço\",\n undo: \"Desfazer\",\n openFullScreen: \"Abrir em tela cheia\",\n copyToClipboard: \"Copiar para a área de transferência\",\n copiedMessage:\n \"Link do espaço copiado para a área de transferência\",\n versionHistory: \"Histórico de versões\",\n brandingOptions: \"OPCJE BRANDINGU\",\n },\n regPagePublishing:\n \"Sua página de registro está sendo publicada, por favor aguarde...\",\n spaceUpdating:\n \"Este espaço está sendo atualizado, por favor aguarde...\",\n },\n members: {\n sectionTitle: \"Membros\",\n manage: \"Gerenciar membros\",\n invite: \"Convidar\",\n search: {\n button: \"Pesquisar\",\n placeholder: \"Pesquisar por\",\n },\n emptyMessage: \"Nenhum registro encontrado\",\n messageButton: \"Mensagem\",\n emailButton: \"E-mail\",\n copyClipboard: \"copiar para a área de transferência\",\n },\n payment: {\n onCheckIntent: {\n alertTitle: \"Erro de pagamento\",\n alertMessage:\n \"Sua sessão expirou. Por favor, atualize a página para concluir o pagamento.\",\n },\n onConfirmPayment: {\n alertTitle: \"Ops, algo deu errado!\",\n alertMessage: \"algo deu errado!\",\n },\n completePayment: \"Concluir pagamento\",\n join: \"Participar do espaço\",\n },\n stripe: {\n pay: \"Pagar\",\n },\n },\n survey: {\n form: {\n text: \"Você já respondeu a esta pesquisa.\",\n submitButton: \"Enviar\",\n },\n question: {\n yourAnswer: \"Sua resposta\",\n },\n },\n tiptap: {\n blocks: {\n section1: \"Básico\",\n text: \"Texto\",\n headline1: \"Título 1\",\n headline2: \"Título 2\",\n headline3: \"Título 3\",\n divider: \"Divisor\",\n infobox: \"Caixa de Informação\",\n section2: \"Espaços\",\n content: \"Espaço de Conteúdo\",\n discussion: \"Espaço de Discussão\",\n event: \"Espaço de Evento\",\n events: \"Espaço de Calendário\",\n list: \"Espaço de Fórum\",\n showcase: \"Showcase Space\",\n section3: \"Lista\",\n section8: \"Special\",\n bulletList: \"Lista com Marcadores\",\n orderedList: \"Lista Ordenada\",\n checklist: \"Lista de Verificação\",\n collapsableSection: \"Seção Recolhível\",\n survey: \"Survey or quiz\",\n section4: \"Mídia\",\n image: \"Imagem\",\n embed: \"Código de Incorporação\",\n video: \"Vídeo\",\n audio: \"Áudio\",\n file: \"Arquivo\",\n zoom: \"Zoom recording\",\n section5: \"Grade\",\n grid1: \"1 Coluna\",\n grid2: \"2 Colunas\",\n grid3: \"3 Colunas\",\n grid4: \"Coluna à Esquerda\",\n grid5: \"Coluna à Direita\",\n grid6: \"4 columns\",\n section6: \"Botões\",\n interestForm: \"Formulário de Interesse\",\n actionButton: \"Botão de Ação\",\n markComplete: \"Marcar como Concluído\",\n section7: \"Interativo\",\n interactiveButton: \"Botão Interativo\",\n interactiveInput: \"Entrada Interativa\",\n interactiveWait: \"Aguardar Interativo\"\n },\n components: {\n sidebar: {\n alignment: {\n left: \"Esquerda\",\n center: \"Centro\",\n right: \"Direita\",\n },\n backgroundColor: {\n text: \"Selecionar cor de fundo\",\n clearColor: \"Limpar cor\",\n },\n backgroundImage: {\n button: \"Selecionar imagem\",\n removeButton: \"Remover imagem\",\n label: \"Posição\",\n placeholder: \"Escolha uma\",\n leftTop: \"superior esquerdo\",\n leftCenter: \"centro esquerdo\",\n leftBottom: \"inferior esquerdo\",\n rightTop: \"superior direito\",\n rightCenter: \"centro direito\",\n rightBottom: \"inferior direito\",\n centerTop: \"superior centro\",\n centerCenter: \"centro\",\n centerBottom: \"inferior centro\",\n label2: \"Repita\",\n placeholder2: \"Escolha uma\",\n noRepeat: \"Sem repetição\",\n repeat: \"Repita\",\n \"repeat-x\": \"Repetir X\",\n \"repeat-y\": \"Repetir Y\",\n space: \"Espaço\",\n round: \"Redonda\",\n },\n blockId: {\n placeholder: \"ID do bloco\",\n label: \"ID do bloco\",\n description:\n \"IDs recomendados para descrição breve de IA, sobre o workshop, o que você vai aprender 1, o que você vai aprender 2, o que você vai aprender 3, para quem é isso, sobre nós, citação\",\n },\n buttonAction: {\n label: \"Ação de conclusão\",\n description:\n \"Especifique o que acontece depois que uma pessoa envia suas informações por meio do formulário selecionado.\",\n placeholder: \"Escolha uma\",\n label2: \"Link para\",\n placeholder2: \"Escolha uma\",\n label3: \"Ação do link\",\n description3:\n \"Especifique se o link será aberto na mesma aba do navegador ou em uma nova aba.\",\n placeholder3: \"Escolha uma\",\n callBackComplete: \"Texto de ação de conclusão\",\n callBacklinkTo: \"Link para\",\n completeDescription:\n \"Adicione uma mensagem curta de confirmação que as pessoas verão após enviar suas informações.\",\n linkDescription:\n \"A pessoa será redirecionada para este link ao clicar no botão.\",\n label4: \"Link para a seção de espaço\",\n description4: \"Especifique se o link será aberto na guia atual do navegador ou em outra guia ou se o link irá para uma seção desta página.\",\n selectSection: \"Selecione a seção\",\n description5: \"Esta opção permite que você vá para uma seção específica desta página quando o link for clicado.\",\n description6: \"Para selecionar a seção, clique no botão abaixo e, em seguida, clique na seção à qual deseja vincular.\",\n label5: \"A seção está vinculada!\",\n label6: \"URL do link\",\n description7: \"Especifique o link do URL para o qual o usuário será direcionado\",\n label7: \"Abre na guia atual\",\n label8: \"Abre outra aba\",\n label9: \"Fazer nada\",\n label10: \"Redirecionar o usuário para\",\n label11: \"Selecione uma opção\",\n label12: \"Outro espaço\",\n label13: \"Link personalizado\",\n label14: \"Clique em uma seção da página\",\n },\n buttonBackgroundColor: {\n button: \"Limpar cor\",\n },\n buttonText: {\n placeholder: \"Texto do botão\",\n label: \"Texto do botão\",\n },\n fileName: {\n placeholder: \"Nome do arquivo\",\n label: \"Nome do arquivo\",\n },\n interactiveWaitTime: {\n label1: \"Selecione uma opção\",\n label2: \"Esperar até uma data\",\n label3: \"Esperar número de dias\",\n label4: \"Data para mostrar conteúdo\",\n placeholder: \"Data para mostrar conteúdo\",\n label5: \"1 dia\",\n label6: \"2 dias\",\n label7: \"3 dias\",\n label8: \"4 dias\",\n label9: \"5 dias\",\n label10: \"6 dias\",\n label11: \"1 semana\",\n label12: \"2 semanas\",\n label13: \"1 mês\",\n },\n linkAction: {\n label: \"Ação do link\",\n description:\n \"Especifique se o link será aberto na mesma aba ou em uma nova aba.\",\n placeholder: \"Escolha uma\",\n label2: \"Abrir na mesma aba\",\n label3: \"Abrir em uma nova aba\",\n },\n margin: {\n topMargin: \"Margem superior -\",\n text: \"Margem inferior -\",\n bottom: \"Inferior\",\n left: \"Esquerda\",\n leftMargin: \"Margem esquerda -\",\n right: \"Direita\",\n rightMargin: \"Margem direita\",\n },\n padding: {\n top: \"Superior\",\n topPadding: \"Preenchimento superior -\",\n bottom: \"Inferior\",\n bottomPadding: \"Preenchimento inferior -\",\n left: \"Esquerda\",\n leftPadding: \"Preenchimento esquerdo\",\n right: \"Direita\",\n rightPadding: \"Preenchimento direito\",\n },\n radius: {\n square: \"Quadrado\",\n round: \"Redondo\",\n circle: \"Círculo\",\n },\n spaceAttrs: {\n addCover: \"Adicionar Capa\",\n text: \"A dimensão recomendada para imagens de capa é de 1200 x 300 pixels\",\n addCover2: \"Adicionar Capa\",\n text2:\n \"A dimensão recomendada para imagens de capa é de 1200 x 300 pixels\",\n removeCover: \"Remover capa\",\n },\n verticalAllignment: {\n top: \"Superior\",\n center: \"Centro\",\n bottom: \"Inferior\",\n },\n width: {\n full: \"Completa\",\n size: \"3/4\",\n size2: \"1/2\",\n actual: \"Atual\",\n },\n },\n blockMenuActions: {\n label1: \"Adicionar bloco\",\n label2: \"Adicionar emoji\",\n label3: \"Configurações\",\n label4: \"Excluir\",\n label5: \"Mover\",\n label6: \"Ir para o espaço ou clique duplo no bloco\",\n label7: \"Substituir\",\n label8: \"Alinhamento\",\n left: \"Esquerda\",\n center: \"Centro\",\n right: \"Direita\",\n write: \"Escreva algo...\",\n label9: \"Adicionar bloco\",\n label10: \"Título 1\",\n h1: \"H1\",\n label11: \"Título 2\",\n h2: \"H2\",\n label12: \"Adicionar espaço\",\n label13: \"Adicionar imagem\",\n label14: \"Adicionar vídeo\",\n label15: \"Adicionar grade\",\n label16: \"Adicionar modelo\",\n label17: \"Adicionar layout\",\n label18: \"Duplicado\",\n },\n blocksMenu: {\n basicBlock: \"Blocos básicos\",\n mediaBlock: \"Blocos de mídia\",\n contentBlock: \"Blocos de conteúdo\",\n },\n blocksMenuInline: {\n file: \"Arquivo\",\n image: \"Imagem\",\n video: \"Vídeo\",\n label1: \"Adicionar emoji\",\n label2: \"Adicionar imagem\",\n label3: \"Alternar barra de formatação\",\n },\n blocksMenuSimple: {\n label1: \"Adicionar\",\n file: \"Arquivo\",\n image: \"Imagem\",\n video: \"Vídeo\",\n audio: \"Audio\",\n label2: \"Adicionar emoji\",\n label3: \"Adicionar imagem\",\n label4: \"Mostrar formatação\",\n cancelButton: \"Cancelar\",\n },\n emptyMessage: {\n text: \"Este é um espaço de conteúdo vazio. Você pode\",\n button1: \"editar esta página\",\n text2: \"ou\",\n button2: \"usar um modelo\",\n text3: \"para começar\",\n text4: \"Um espaço vazio cheio de potencial...\",\n },\n fixedBottomMenu: {\n label1: \"Adicionar elementos como títulos, imagens e vídeos\",\n addBlock: \"Adicionar bloco\",\n label2: \"Adicionar um espaço de conteúdo, discussão ou evento\",\n space: \"Espaço\",\n label3:\n \"Adicionar uma grade para usar várias colunas de conteúdo\",\n grid: \"Grade\",\n label4: \"Adicionar uma opção de design pré-criada\",\n layouts: \"Layouts\",\n label5:\n \"Adicionar um modelo para configurar automaticamente o espaço\",\n template: \"Modelos\",\n },\n formatMenu: {\n text: \"Texto\",\n smallText: \"Texto pequeno\",\n largeText: \"Texto Grande\",\n heading1: \"Título 1\",\n heading2: \"Título 2\",\n heading3: \"Título 3\",\n bulletedList: \"Lista com marcadores\",\n orderedList: \"Lista numerada\",\n text2: \"Texto\",\n label1: \"Formatação\",\n text3: \"Texto\",\n numberedList: \"Lista numerada\",\n label2: \"Alinhamento\",\n left: \"Esquerda\",\n center: \"Centro\",\n right: \"Direita\",\n label3: \"Ação do link\",\n description:\n \"Especifica se o link será aberto na mesma aba do navegador ou em uma nova aba.\",\n placeholder: \"Escolha uma opção\",\n label4: \"Abre na mesma aba\",\n label5: \"Abre em nova aba\",\n label6: \"Formato do link\",\n description2:\n \"Especifica se o link será exibido como texto ou como um link estilizado.\",\n placeholder2: \"Escolha uma opção\",\n label7: \"Exibir como texto\",\n label8: \"Exibir como link estilizado\",\n save: \"Salvar\",\n delete: \"Excluir\",\n label9: \"Riscado\",\n label10: \"Sublinhado\",\n label11: \"Bloco de código\",\n label12: \"Cor do texto\",\n placeholder3: \"Valor HEX\",\n unsetColor: \"Remover cor\",\n label13: \"Selecione cor\",\n label14: \"Link para a seção de espaço\",\n description3: \"Especifique se o link será aberto na guia atual do navegador ou em outra guia ou se o link irá pular para uma seção desta página.\",\n selectSection: \"Selecione a seção\",\n description4: \"Esta opção permite que você vá para uma seção específica desta página quando o link for clicado.\",\n description5: \"Para selecionar a seção, clique no botão abaixo e, em seguida, clique na seção à qual deseja vincular.\",\n label15: \"A seção está vinculada!\",\n label16: \"URL do link\",\n description6: \"Especifique o link do URL para o qual o usuário será direcionado\",\n },\n formatMenuSimple: {\n t: \"T\",\n h1: \"H1\",\n h2: \"H2\",\n h3: \"H3\",\n label1: \"Ação do link\",\n description1:\n \"Especifica se o link será aberto na mesma aba do navegador ou em uma nova aba.\",\n placeholder1: \"Escolha uma opção\",\n label2: \"Abre na mesma aba\",\n label3: \"Abre em nova aba\",\n label4: \"Formato do link\",\n description2:\n \"Especifica se o link será exibido como texto ou como um link estilizado.\",\n placeholder2: \"Escolha uma opção\",\n label5: \"Exibir como texto\",\n label6: \"Exibir como link estilizado\",\n save: \"Salvar\",\n delete: \"Excluir\",\n label7: \"Formatação\",\n left: \"Esquerda\",\n center: \"Centro\",\n right: \"Direita\",\n placeholder3: \"Valor HEX\",\n placeholder4: \"Cor HEX\",\n unsetColor: \"Remover cor\",\n },\n inlineMenu: {\n h1: \"H1\",\n h2: \"H2\",\n bulletList: \"Lista com marcadores\",\n checkList: \"Lista de controle\",\n circle: \"Círculo\",\n moreOption: \"Mais opções\",\n },\n interactiveInput: {\n hideResponses: \"Ocultar outras respostas\",\n showResponses: \"Mostrar outras respostas\",\n hideResponses2: \"Ocultar respostas\",\n hidePrivateMessages: \"Ocultar mensagens privadas\",\n showPrivateMessages: \"Mostrar mensagens privadas\",\n showResponses2: \"Mostrar respostas\",\n loadMoreResponse: \"Carregar mais respostas\",\n placeholder: \"Escreva algo...\",\n text: \"Deseja que esta resposta seja visível para outros participantes?\",\n },\n newMedia: {\n add: \"Adicionar\",\n },\n regPageColor: {\n clearColor: \"Limpar cor\",\n },\n regPageColors: {\n text: \"Aparência da página de registro\",\n applyAppearance: \"Aplicar Aparência\",\n title1: \"Selecionar cor de fundo\",\n title2: \"Selecionar cor do texto\",\n label1: \"Cor de fundo\",\n label2: \"Cor do texto padrão\",\n label3: \"Largura da página ampla\",\n },\n resource: {\n areYouSure: \"Você tem certeza?\",\n label1: \"Será publicado nesta data\",\n edit: \"Editar\",\n addPage: \"Adicionar Página\",\n },\n sideBlocksMenuBak: {\n addBlock: \"Adicionar bloco\",\n back: \"Voltar\",\n },\n sideBlocksMenu: {\n text: \"Layouts são opções de design pré-criadas que você pode adicionar ao seu espaço.\",\n text2:\n \"Comece com uma seleção de modelos de página inteira personalizáveis\",\n layout: \"Layouts\",\n template: \"Modelos\",\n addBlock: \"ADICIONAR BLOCO\",\n block: \"Blocos\",\n },\n sideConfigurationsMenu: {\n title: \"CONFIGURAÇÕES DO BLOCO\",\n label1: \"Nome do espaço e capa\",\n label2: \"Atributos do arquivo\",\n label3: \"Opções de entrada interativa\",\n attrPlaceholder1: \"Escreva algo...\",\n attrLabel: \"Marcador de posição\",\n attrLabel2:\n \"Permitir que o participante veja todas as respostas\",\n attrLabel3: \"Mostrar respostas antes do participante responder\",\n attrLabel4:\n \"Permitir que o participante escolha se a resposta será visível para os outros\",\n attrLabel5: \"Permitir várias respostas por pessoa\",\n attrLabel6: \"Permitir que o participante pule esta solicitação\",\n attrLabel7: \"Notificar os gerentes em cada nova postagem\",\n label4: \"Opções de entrada interativa\",\n label5: \"Preenchimento\",\n label6: \"BLOCO\",\n label7: \"COLUNA\",\n label8: \"Margem\",\n label9: \"GRADE\",\n label10: \"Alinhamento vertical\",\n label11: \"Opções do botão\",\n label12: \"Cor de fundo do botão\",\n label13: \"Cor do texto do botão\",\n text: \"Cantos do botão\",\n label14: \"Fundo\",\n label15: \"Cor\",\n label16: \"Imagem\",\n label17: \"Redefinir\",\n resetBlock: \"Redefinir bloco\",\n label18: \"Alinhamento\",\n label19: \"Raio da borda\",\n label20: \"cantos\",\n label21: \"Nazwa bloku\",\n label22: \"Opcje powiadomień e-mail\",\n label23: \"Wyślij powiadomienie e-mail\",\n attrLabel8: \"Dołącz niestandardową wiadomość\",\n attrLabel9: \"Dołącz zawartość następnej sekcji\",\n attrLabel10: \"Dołącz pełną zawartość\",\n attrLabel11: \"Krótki podgląd\",\n attrLabel12: \"Temat\",\n attrLabel13: \"Wiadomość\",\n defaultWaitLabel: \"Następna sekcja została wydana w {{space_name}}\",\n defaultWaitMessage: \"Cześć {{first_name}} – chciałem tylko dać ci znać, że kolejna sekcja w {{space_name}} została wydana. {{space_link_button}}\"\n },\n takeSurvey: {\n text: \"Esta enquete está vazia\",\n },\n tiptapAi: {\n placeholder: \"Escreva uma breve descrição\",\n label:\n \"Por favor, escreva 2 ou 3 frases descrevendo sua oferta.\",\n placeholder2: \"ex. treinadores, consultores e curadores\",\n label2: \"Para quem é esta oferta?\",\n text: \"Olá, estamos experimentando um novo recurso de IA. Você deseja que o Sutra gere automaticamente o texto para o seu modelo usando IA?\",\n },\n uploader: {\n label1: \"Link\",\n label2: \"Código\",\n placeholder: \"Cole o link da imagem ou arquivo\",\n label3: \"Link incorporado\",\n placeholder2:\n \"Cole o código de incorporação -> \",\n label4: \"Código de incorporação\",\n saveEmbed: \"Salvar incorporação\",\n placeholder3: \"Buscar imagens\",\n saveImage: \"Salvar imagem\",\n },\n viewPage: {\n text: \"Esta página está vazia\",\n },\n },\n },\n users: {\n payment: {\n completePayment: \"Completa pagamento\",\n join: \"juntar espaço\",\n pay: \"Pagar\",\n },\n stepper: {\n step1: \"Passo 1\",\n step1Description: \"Faça login\",\n step2: \"Passo 2\",\n step2Description: \"Completa pagamento\",\n step3: \"Passo 3\",\n step3Description: \"Obter acesso\",\n },\n start: {\n title: \"Bem-vindo\",\n subtitle: \"Digite seu endereço de e-mail abaixo\",\n email: \"E-mail\",\n submit: \"Continuar\",\n invalidEmailErrorMsg: \"E-mail inválido\",\n },\n signIn: {\n title: \"Faça login em sua conta\",\n subtitle: \"Não tem uma conta?\",\n subtitleLink: \"Cadastre-se\",\n email: \"E-mail\",\n password: \"Senha\",\n submit: \"Entrar\",\n magicLink: \"Obter um link mágico\",\n forgotPassword: \"Esqueceu a senha?\",\n invalidEmailErrorMsg: \"E-mail inválido\",\n },\n signUp: {\n invalidEmailErrorMsg: \"E-mail inválido\",\n invalidPasswordErrorMsg:\n \"A senha deve ter pelo menos 8 caracteres\",\n invalidFirstNameErrorMsg:\n \"O nome deve ter pelo menos 3 caracteres\",\n title: \"Criar uma nova conta\",\n subtitle: \"Já tem uma conta?\",\n subtitleLink: \"Faça login\",\n firstName: \"Primeiro nome\",\n lastName: \"Sobrenome\",\n username: \"Nome de usuário\",\n email: \"E-mail\",\n password: \"Senha\",\n emailNewsletterConfirmation:\n \"Inscreva-se no boletim informativo do Sutra para saber sobre webinars gratuitos sobre processos em grupo, ensino transformacional e negócios relacionais.\",\n submit: \"Cadastre-se\",\n legalPrefix: \"Ao se cadastrar no Sutra, você concorda com nossos\",\n terms: \"Termos de Serviço\",\n privacy: \"Política de Privacidade\",\n },\n spaceReference: {\n total: \"Total hoje\",\n },\n planReference: {\n total: \"Total\",\n total_today: \"Total hoje\",\n due_in: \"Vencimento em 14 dias\",\n paymentDetails: {\n annual: \"Assinatura anual de\",\n month: \"Assinatura mensal de\",\n },\n },\n resetPassword: {\n title: \"Redefinir sua senha\",\n subtitle:\n \"Por favor, insira uma nova senha para sua conta no Sutra abaixo.\",\n password: \"Senha\",\n passwordConfirmation: \"Confirmação de senha\",\n submit: \"Redefinir senha\",\n },\n recover: {\n title: \"Esqueceu sua senha?\",\n subtitle:\n \"Por favor, insira seu endereço de e-mail abaixo e enviaremos instruções sobre como redefinir sua senha.\",\n email: \"E-mail\",\n submit: \"Enviar instruções\",\n footer: \"Já tem uma conta?\",\n footerLink: \"Conecte-se\",\n },\n magicLink: {\n invalidEmailErrorMsg: \"E-mail inválido\",\n title: \"Solicitar link mágico\",\n subtitle:\n \"Por favor, insira seu endereço de e-mail abaixo e enviaremos um link que fará login automaticamente.\",\n email: \"E-mail\",\n submit: \"Continuar\",\n footer: \"Conecte-se e-mail\",\n alertTitle: \"Você está quase lá...\",\n alertMessage:\n \"Enviamos o link mágico para o seu e-mail. ISTO É UM TESTE, NENHUM E-MAIL REAL FOI ENVIADO.\",\n },\n edit: {\n title: \"Por favor, complete seu perfil\",\n addProfileImage: \"Adicionar imagem de perfil\",\n removeProfileImage: \"Remover imagem de perfil\",\n bioPlaceholder: \"Compartilhe um pouco sobre você...\",\n bio: \"Biografia\",\n submit: \"Salvar\",\n skip: \"Pular isso e fazer depois\",\n },\n magicSignin: {\n text: \"Fazendo login...\",\n },\n profile: {\n button: \"Mensagem\",\n button2: \"Editar Perfil\",\n title: \"Espaços\",\n },\n profileModal: {\n profile: \"Perfil\",\n message: \"Mensagem\",\n editProfile: \"Editar perfil\",\n openProfile: \"Abrir perfil\",\n spaces: \"Espaços\",\n selectImage: \"Selecionar imagem\",\n },\n signOut: {\n loggedOUt: \"Desconectado\",\n title: \"Você está desconectado\",\n message: \"Até logo!\",\n },\n },\n errors: {\n basic: \"Ops, algo deu errado!\",\n },\n },\n },\n de: {\n translation: {\n premiumFeatures: {\n personal: {\n description1:\n \"Unbegrenzte Raums und Mitglieder, um Inhalte und Unterhaltungen für alle Ihre Angebote zu organisieren\",\n description2:\n \"Schöne Anmelde- und Landingpages für all Ihre Programme und Veranstaltungen an einem Ort\",\n description3:\n \"Senden Sie Newsletter-E-Mails an alle Ihre Teilnehmer mit unserer leistungsstarken Broadcast-Funktion\",\n },\n professional: {\n description1:\n \"Keine Transaktionsgebühren für eingezahlte Zahlungen\",\n description2:\n \"Individuelles Branding und Layoutoptionen sowie personalisierte URL-Subdomänen\",\n description3:\n \"Unbegrenzte Automatisierungen und interaktive Lernerlebnisse\",\n description4: \"Bis zu 2 Manager für alle Ihre Raum\",\n },\n organization: {\n description1:\n \"Keine Transaktionsgebühren für eingezahlte Zahlungen\",\n description2: \"Erweiterte Kundenunterstützung\",\n description3: \"Unbegrenzte Manager\",\n description4: \"Option für Single Sign-On-Integration\",\n },\n },\n premiumMessages: {\n can_auto_tag: {\n title: \"Upgrade to use this feature\",\n message: \"Auto tagging with AI is a premium feature available on the Professional plan.\"\n },\n can_use_zoom_recordings: {\n title: \"Upgrade to use this feature\",\n message: \"Zoom recordings is a premium feature available on the Organization plan.\"\n },\n can_create_quizzes: {\n title: \"Upgrade to use this feature\",\n message: \"Quizzes are a premium feature available on the Organization plan.\"\n },\n can_duplicate_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Duplicating a space is a premium feature available on the Professional plan.\",\n },\n can_save_templates: {\n title: \"Upgrade to use this feature\",\n message:\n \"Saving as space as a reusable template is a premium feature available on the Professional plan.\",\n },\n can_edit_shareable_link: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Anpassbare Freigabe-Links sind eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_upload_cover: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Hochladen eines individuellen Cover-Bildes ist eine Premium-Funktion, die im Personal-Plan verfügbar ist.\",\n },\n\n can_upload_logo: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Festlegen eines individuellen Logos ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_set_layout: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Die Anpassung des Layouts Ihres Raums ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_set_theme: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Die Anpassung des Farbthemas Ihres Raums ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_set_format: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Umschalten des Formats Ihres Raums ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_add_step_send_to_pending: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Setzen neuer Mitglieder auf den Status 'Ausstehend' ist eine Premium-Funktion, die im Personal-Plan verfügbar ist.\",\n },\n\n can_add_step_send_email: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Senden automatisierter E-Mails ist eine Premium-Funktion, die im Personal-Plan verfügbar ist.\",\n },\n\n can_add_add_to_existing_space: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das automatische Hinzufügen von Mitgliedern zu ausgewählten Räumen ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_add_step_wait: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Hinzufügen einer Wartebedingung für zusätzliche Schritte ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_add_step_webhook: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Hinzufügen von Webhooks ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_add_step_survey_person: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Die Umfrage neuer Mitglieder ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_schedule_states: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Automatisierte Terminplanungsoptionen für Ihren Bereich sind eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_broadcast: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Senden von E-Mail-Broadcasts ist eine Premium-Funktion, die im Personal-Plan verfügbar ist.\",\n },\n\n can_survey: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Erstellen von Umfragen ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_use_interest_form_block: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Hinzufügen von Interessensformularen ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n can_use_interactive_block: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das Hinzufügen von interaktiven Blöcken ist eine Premium-Funktion, die im Professional-Tarif verfügbar ist.\",\n },\n\n can_set_flexible_payments: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Die Einrichtung flexibler Zahlungsoptionen ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_activate_completions: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Die Möglichkeit, Räume als abgeschlossen zu markieren, ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n max_allowed_spaces: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Hallo! Es sieht so aus, als hätten Sie alle Ihre kostenlosen Räume verwendet! Durch ein Upgrade auf den Personal-Plan erhalten Sie unbegrenzte Räume und Mitglieder, sodass Sie praktisch alles erstellen können.\",\n },\n max_allowed_ij: {\n title: \"Upgrade to use this feature\",\n message:\n \"You can only add up to 2 discussion prompts per space on the free plan. Please upgrade to the Professional plan to add unlimited discussion prompts to any space.\",\n },\n\n max_allowed_managers_pro: {\n title: \"Upgrade, um weitere Manager hinzuzufügen\",\n message:\n \"Upgrade auf den Professional-Plan, um bis zu 2 Manager zu Ihrem Bereich hinzuzufügen, oder auf den Organization-Plan für unbegrenzte Manager.\",\n },\n\n max_allowed_managers_org: {\n title: \"Upgrade, um weitere Manager hinzuzufügen\",\n message:\n \"Upgrade auf den Organization-Plan, um unbegrenzt viele Manager zu Ihrem Bereich hinzuzufügen.\",\n },\n\n can_see_participation_tab: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Die Teilnahmemetriken sind eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n\n can_send_selective_broadcast: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Selektives Broadcasting ist eine Premium-Funktion, die im Organization-Plan verfügbar ist.\",\n },\n\n can_send_message_broadcast: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Message Broadcasting ist eine Premium-Funktion, die im Organization-Plan verfügbar ist.\",\n },\n can_schedule_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Scheduling broadcasts is a premium feature available on the Silver plan.\",\n },\n can_add_from_children: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das automatische Hinzufügen von Mitgliedern aus Unterbereichen ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n can_add_to_direct_open_children: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das automatische Hinzufügen eingehender Mitglieder zu allen direkt geöffneten Unterbereichen ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n can_send_message: {\n title: \"Upgrade, um diese Funktion zu nutzen\",\n message:\n \"Das automatische Senden von Direktnachrichten an neue Mitglieder ist eine Premium-Funktion, die im Professional-Plan verfügbar ist.\",\n },\n can_create_registration_page: {\n title: \"Upgrade to use this feature\",\n message: \"Creating custom registration and landing pages is a premium feature available on the Bronze plan.\"\n },\n can_create_coupon: {\n title: \"Upgrade to use this feature\",\n message: \"Creating coupon codes is a premium feature available on the Silver plan.\"\n },\n\n can_create_bundles: {\n title: \"Upgrade to use this feature\",\n message: \"Creating bundles is a premium feature available on the Silver plan.\"\n },\n },\n home: {\n sidebar: {\n createButton: \"Neuer Raum\",\n spaces: \"Ihre Räume\",\n invitations: \"Einladungen\",\n directMessages: \"Direktnachrichten\",\n gettingStarted: \"Gestartet Bekommen \",\n scheduleDemo: \"Demo vereinbaren\",\n upgrade: \"Upgrade Ihres Plans\",\n promoBoxTitle:\n \"Werden Sie Teil der Hunderten von Kreativen, die Sutra's fortgeschrittene Funktionen nutzen, um leistungsstarke Gruppenerlebnisse online zu ermöglichen\",\n promoBoxItem1: \"Unbegrenzte Räume\",\n promoBoxItem2: \"Volle Branding-Optionen\",\n promoBoxItem3: \"Zusätzliche Manager\",\n promoBoxButton: \"Jetzt upgraden\",\n },\n spacesList: {\n yourSpaces: \"Ihre Räume\",\n directMessagesTitle: \"Direktnachrichten\",\n invitationsTitle: \"Einladungen\",\n topTitle: \"Räume auf oberster Ebene\",\n managedTitle: \"Verwaltete Bereiche\",\n allTitle: \"Alle Räume\",\n archivedTitle: \"Archivierte Räume\",\n deletedTitle: \"Gelöschte Räume\",\n pendingTitle: \"Geplante Räume\",\n directMessages: \"Direkt\",\n top: \"Höchststufe\",\n managed: \"Verwaltete\",\n all: \"Alle\",\n archived: \"Archiviert\",\n invitations: \"Einladungen\",\n deleted: \"Gelöscht\",\n pending: \"Geplant\",\n empty: \"Du hast keine\",\n tabTitle: \"Sutra - Dashboard\",\n learn: \"Die Grundlagen lernen\",\n createFirst: \"Erstellen Sie Ihren ersten Raum\",\n },\n },\n app: {\n payment: {\n payment: {\n tabTitle: \"Sutra - Zahlungsformular\",\n title: \"Zahlung abschließen\",\n },\n planOption: {\n frequencyDescription1: \"pro Monat\",\n frequencyDescription2: \"pro Monat bei jährlicher Abrechnung\",\n currentPlan: \"Aktueller Plan\",\n billedMonthly: \"Monatliche Abrechnung\",\n billedAnnually: \"Jährliche Abrechnung\",\n },\n stripeForm: {\n due_in_trial: \"Fällig in 14 Tagen\",\n pay: \"Bezahlen\",\n },\n },\n gettingStarted: {\n items: {\n setup: \"Einrichten Ihres Programm Raums\",\n privacy: \"Datenschutz- und Zahlungseinstellungen\",\n registration: \"Erstellen einer Anmeldeseite\",\n invitations: \"Teilnehmer einladen\",\n settings: \"Funktionsweise der Raum-Einstellungen\",\n interactive: \"Interaktive Reisen\",\n interest: \"Interessensformulare\",\n appearance: \"Layout und Farbschemata\",\n grids: \"Grid- und Blockeinstellungen\",\n broadcasts: \"E-Mail-Rundsendungen\",\n tagging: \"Tagging\",\n emojis: \"Seitenleisten-Emojis\",\n },\n templates: {\n groupprogram: {\n label: \"Gruppen programm\",\n description:\n \"Ein Programmbereich, in dem Sie alles organisieren können, was Sie für eine Lerngruppe benötigen.\",\n },\n zoomworkshop: {\n label: \"Zoom-Workshop\",\n description:\n \"Organisieren Sie alles, was Sie für einen einfachen Zoom-Workshop benötigen.\",\n },\n mastermind: {\n label: \"Mastermind\",\n description:\n \"Laden Sie eine Gruppe von Menschen ein, sich gemeinsam auf einen Mastermind-Prozess einzulassen.\",\n },\n selfpacedcourse: {\n label: \"Selbstgesteuertes Kurs\",\n description:\n \"Eine flexible Vorlage zur Erstellung eines selbstgesteuerten Kurses.\",\n },\n communityspace: {\n label: \"Community-Raum\",\n description:\n \"Bringen Sie Menschen in einem lebendigen Online-Community-Raum zusammen, der mit Ihrem Community-Wachstum wächst.\",\n },\n oneononecoaching: {\n label: \"Einzelcoaching\",\n description:\n \"Erstellen Sie einen dedizierten Raum für jeden Ihrer Coaching-Klienten.\",\n },\n },\n loading: {\n text: \"Ihre Vorlage wird geladen, bitte warten Sie...\",\n },\n tabTitle: \"Sutra - Erste Schritte\",\n mainTitle: \"Sutra - Bekommen gestartet\",\n selectTemplate: \"Diese Vorlage auswählen\",\n advanceFeatures: \"Erweiterte Funktionen\",\n welcome: \"Willkommen\",\n description1:\n \"Sutra ermöglicht es Ihnen, Inhalte und Gespräche für Kurse, Gemeinschaften, Einzelcoachings und vieles mehr zu organisieren. Erfahren Sie in diesem fünfminütigen Video die Grundlagen.\",\n watchVideo: \"Video ansehen\",\n createFirstSpace: \"Erstellen Sie Ihren ersten Raum\",\n gettingStartedGuide: \"Leitfaden für den Einstieg\",\n description2:\n \"Erfahren Sie mehr über die Funktionsweise von Sutra und starten Sie mit einer Start-Checkliste und einer detaillierteren Anleitung.\",\n checkOutTheGuide: \"Den Leitfaden anzeigen\",\n startWithATemplate: \"Mit einer Vorlage starten\",\n description3:\n \"Erfahren Sie mehr über die Funktionsweise von Sutra und starten Sie mit einer Start-Checkliste und einer detaillierteren Anleitung.\",\n learnAbout: \"Erweiterte Funktionen kennenlernen\",\n description4:\n \"Sutra ist so konzipiert, dass es flexibel und leistungsstark ist und nahezu jeden Anwendungsfall unterstützen kann. Sie können einzigartige interaktive Erlebnisse schaffen, Interesse an Ihren verschiedenen Angeboten wecken, E-Mail-Newsletter versenden und gemeinsames Wissen nutzen.\",\n learnmore: \"Mehr erfahren\",\n },\n premium: {\n try: \"Sutra ausprobieren\",\n include: \"Funktionen umfassen\",\n upgrade: \"Jetzt upgraden\",\n },\n pricing: {\n tabTitle: \"Sutra - Preise\",\n upgrade: \"Upgrade Ihres Plans\",\n text: \"Was auch immer Sie für Ihren Kurs oder Ihre Gemeinschaft benötigen, wir unterstützen Ihre Arbeit. Bei Fragen können Sie uns unter support@sutra.co kontaktieren.\",\n },\n scheduleDemo: {\n tabTitle: \"Sutra - Demo vereinbaren\",\n },\n welcome: {\n tabTitle: \"Sutra - Willkommen\",\n title: \"Willkommen bei Sutra!\",\n description1:\n \"Wir freuen uns, Sie hier zu haben. Bitte nehmen Sie sich einen Moment Zeit, um das Video unten anzusehen...\",\n description2:\n \"Möchten Sie eines unserer kostenpflichtigen Pläne kostenlos ausprobieren?\",\n description3:\n \"Wählen Sie unten einen Plan aus, um eine 14-tägige kostenlose Testphase zu starten. Nach Ablauf der Testphase werden Sie automatisch für den ausgewählten Plan in Rechnung gestellt.\",\n yes: \"Ja, zeigen Sie mir die Optionen\",\n no: \"Nein, danke\",\n },\n },\n layout: {\n userButton: {\n home: \"Startseite\",\n viewProfile: \"Profil anzeigen\",\n settings: \"Einstellungen\",\n support: \"Support\",\n language: \"Sprache\",\n terms: \"Nutzungsbedingungen & Datenschutz\",\n logout: \"Ausloggen\",\n copyright: \"Sutra Spaces, LLC © 2022\",\n },\n directMessages: {\n label: \"Direktnachrichten\",\n actionButton: \"Alle ansehen\",\n empty: \"You don't have direct messages\",\n directMessage: \"Direktnachrichten\",\n },\n notifications: {\n label: \"Benachrichtigungen\",\n actionButton: \"Alle löschen\",\n empty: \"Sie haben keine Benachrichtigungen\",\n notification: \"Benachrichtigungen\",\n },\n headerContent: {\n registrationPage: \"Registrierungsseite\",\n nonManagersHidden: \"Kopfzeile für Nicht-Manager ausgeblendet\",\n },\n search: {\n reflection: \"Reflexion\",\n comment: \"Kommentar\",\n allSpaces: \"Alle Räume\",\n withinTop: \"Innerhalb des obersten Bereichs\",\n withinSpace: \" Innerhalb dieses Raums\",\n everything: \"Alles\",\n titlesOnly: \"Nur Titel\",\n tagsOnly: \"Nur Tags\",\n content: \"Inhalt\",\n discussion: \"Diskussion\",\n events: \"Veranstaltungen\",\n users: \"Benutzer\",\n placeholder: \"Suche...\",\n nothingFound: \"Nichts gefunden\",\n search: \"Suche hier\",\n },\n uploader: {\n pending: \"Ausstehend\",\n used: \"Verwendet\",\n uploading: \"Hochladen\",\n finishing: \"Abschließen\",\n processing: \"Verarbeiten\",\n completed: \"Abgeschlossen\",\n },\n },\n resources: {\n pages: {\n form: {\n label: \"Titel\",\n placeholder: \"Worum geht es auf deiner Seite?\",\n create: \"Seite erstellen\",\n save: \"Seite speichern\",\n },\n },\n form: {\n title: {\n label: \"Titel\",\n placeholder: \"Worum geht es?\",\n },\n publish: {\n label: \"Am Datum veröffentlichen\",\n },\n date: {\n label: \"Datum auswählen\",\n },\n update: \"Seitensammlung aktualisieren\",\n create: \"Seitensammlung erstellen\",\n },\n },\n settings: {\n editProfile: {\n tabTitle: \"Sutra - Profil bearbeiten\",\n editProfile: \"Profil bearbeiten\",\n firstName: \"Vorname\",\n lastName: \"Nachname\",\n username: \"Benutzername\",\n email: \"E-Mail\",\n removeProfileImage: \"Profilbild entfernen\",\n addProfileImage: \"Profilbild hinzufügen\",\n about: \"Über mich\",\n location: \"Standort\",\n bio: \"Biografie\",\n bioPlaceholder: \"Teilen Sie ein wenig über sich selbst mit.\",\n updateProfile: \"Profil aktualisieren\",\n },\n accountSettings: {\n accountSettings: \"Kontoeinstellungen\",\n changePassword: \"Passwort ändern\",\n currentPassword: \"Aktuelles Passwort\",\n newPassword: \"Neues Passwort\",\n newPasswordConfirmation: \"Bestätigung des neuen Passworts\",\n updatePassword: \"Passwort aktualisieren\",\n advanced: \"Erweitert\",\n deleteAccount: \"Konto löschen\",\n warning: \"Warnung\",\n deleteAccountWarning:\n \"Das Löschen Ihres Kontos ist nicht rückgängig zu machen und entfernt Ihre Kontodaten dauerhaft aus unserem System.\",\n closeYourAccount: \"Konto schließen\",\n invalidCurrentPasswordErrorMsg: \"Darf nicht leer sein\",\n invalidPasswordErrorMsg:\n \"Das Passwort muss mindestens 8 Zeichen lang sein\",\n invalidPasswordConfirmationErrorMsg:\n \"Passwörter stimmen nicht überein\",\n deleteAccountAlert: {\n title: \"Wichtig\",\n message:\n \"Das Löschen Ihres Kontos ist nicht rückgängig zu machen und entfernt Ihre Kontodaten dauerhaft aus unserem System.\",\n input:\n \"Bitte geben Sie 'Löschen Sie mein Konto' ein, um diese Aktion zu bestätigen\",\n confirmButton: \"Für immer löschen\",\n cancelButton: \"Abbrechen\",\n },\n cancelSubscriptionAlert: {\n title: \"Wichtig\",\n message: \"Bitte kündigen Sie zuerst Ihr Abonnement\",\n confirmButton: \"Zur Rechnungsstellung gehen\",\n cancelButton: \"Später erledigen\",\n },\n stripeAccount: {\n title: \"Stripe-Verbindung zurücksetzen\",\n alertTitle: \"Sind Sie sicher?\",\n alertMessage:\n \"Wenn Sie Ihre Stripe-Verbindung zurücksetzen, werden Ihre Stripe-Anmeldedaten aus Ihrem Benutzerkonto auf Sutra gelöscht und Sie können eine neue Stripe-Verbindung herstellen.\",\n buttonText: \"Verbindung zurücksetzen\",\n confirmButton: \"Ja\",\n cancelButton: \"Nein\",\n confirmTitle: \"Sind Sie sicher?\",\n confirmMessage:\n \"Ihre Stripe-Anmeldedaten werden aus Ihrem Benutzerkonto auf Sutra gelöscht\",\n },\n },\n emailPreferences: {\n tabTitle: \"Sutra - E-Mail-Einstellungen\",\n emailPreferences: \"E-Mail-Einstellungen\",\n emailDigestPreferences: \"E-Mail-Digest-Einstellungen\",\n emailDigestFrequency: \"E-Mail-Digest-Frequenz\",\n emailDigestMessage:\n \"Um E-Mail-Einstellungen pro Bereich anzupassen, sehen Sie bitte den Bereich 'Abonnementeinstellungen' ein. Sie können sich komplett von einem Bereich abmelden, indem Sie ihn verlassen, oder Sie können jeden einzelnen Bereich in den Abonnementeinstellungen auf 'Stumm' setzen.\",\n receiveWeeklyDigest:\n \"Erhalten Sie einen wöchentlichen Digest über neu markierte Elemente und Diskussionen\",\n receiveAtMentions:\n \"Erhalten Sie eine Benachrichtigung, wenn Sie von jemandem @erwähnt werden\",\n receiveLikes: \"Receive a notification when someone hearts your post\",\n },\n subscriptions: {\n subscriptions: \"Bereichsspezifische Einstellungen\",\n searchBySpaceName: \"Nach Bereichsnamen suchen\",\n search: \"Such\",\n clear: \"Klar\",\n options: \"Optionen\",\n otherActions: \"Andere Aktione\",\n emptySubscriptions: \"Sie haben keine Abonnements.\",\n leaveSpaceConfirmationTitle:\n \"Sind Sie sicher, dass Sie diesen Bereich verlassen möchten?\",\n leaveSpaceConfirmationHtml:\n \"Sie sind nicht mehr Mitglied dieses Bereichs und können möglicherweise ohne die Erlaubnis des Managers nicht mehr beitreten.\",\n leaveSpaceButtonText: \"Ja, verlassen\",\n leaveSpaceDenyButtonText: \"Nein\",\n leaveSpace: \"Bereich verlassen\",\n unsubscribe: \"Abbestellen\",\n unsubscribed: \"Abbestellt\",\n },\n digestPreferences: {\n digestedLabel: \"Alle Updates in einem Digest gruppieren\",\n digestedDescription:\n \"Neue Nachrichten in allen Ihren Bereichen werden in einer einzigen E-Mail-Aktualisierung zusammengefasst.\",\n undigestedLabel: \"Updates nach Bereich gruppieren\",\n undigestedDescription:\n \"Sie erhalten für jeden Bereich, der neue Nachrichten enthält, separate E-Mail-Zusammenfassungen.\",\n },\n billing: {\n statuses: {\n pending: \"Ausstehend\",\n processing: \"wird bearbeitet\",\n paid: \"Bezahlt\",\n trial: \"Trial\",\n },\n paymentMethod: {\n currentPaymentMethod: \"Aktuelle Zahlungsmethode\",\n noCurrentPaymentMethod: \"Keine aktuelle Zahlungsmethode\",\n addNewPaymentMethod: \"Neue Zahlungsmethode hinzufügen\",\n },\n stripe: {\n updatePaymentMethod: \"Zahlungsmethode aktualisieren\",\n },\n tabTitle: \"Sutra - Abrechnung\",\n updatePaymentMethodMayus: \"ZAHLUNGSMETHODE AKTUALISIEREN\",\n payments: \"ZAHLUNGEN\",\n pdf: \"PDF\",\n noPayments: \"Sie haben keine Zahlungshistorie\",\n billing: \"Abrechnung\",\n upgradePlan: \"Tarif aktualisieren\",\n changePlan: \"Tarif ändern\",\n updatePaymentMethod: \"Zahlungsmethode aktualisieren\",\n cancelSubscription: \"Abonnement kündigen\",\n cancelConfirmationTitle:\n \"Sind Sie sicher, dass Sie Ihr Abonnement kündigen möchten?\",\n cancelConfirmationHtml:\n \"Sie haben dann keinen Zugriff mehr auf die Premium-Funktionen Ihres Tarifs.\",\n cancelConfirmButtonText: \"Ja, kündigen\",\n cancelDenyButtonText: \"Nein\",\n billingHistory: \"Abrechnungsverlauf\",\n tableDate: \"Datum\",\n tableAmount: \"Betrag\",\n tableStatus: \"Status\",\n tableInvoice: \"Rechnung\",\n planPrefix: \"Sie befinden sich derzeit auf dem\",\n planSuffix: \"Tarif\",\n updatePayment: {\n success: {\n title: \"Erfolgreich\",\n message: \"Ihre Zahlungsmethode wurde aktualisiert\",\n },\n error: {\n title: \"Oops, etwas ist schiefgelaufen!\",\n },\n },\n },\n subscriptions: {\n frequencyOptions: \"Frequenzoptionen\",\n otherActions: \"Andere Aktionen\",\n },\n frequencyOptions: {\n mute: \"Stummschalten\",\n always: \"Bei jeder Nachricht\",\n hour1: \"Stündlich\",\n hour2: \"Alle 2 Stunden\",\n hour4: \"Alle 4 Stunden\",\n hour8: \"Alle 8 Stunden\",\n hour24: \"Einmal täglich\",\n hour168: \"Einmal wöchentlich\",\n hour336: \"Alle zwei Wochen\",\n },\n affiliates: {\n empty: \"Sie haben keine Affiliate-Auszahlungshistorie\",\n history: {\n table: {\n referralName: \"Empfehlungsname\",\n startAt: \"Startdatum\",\n endAt: \"Enddatum\",\n createdAt: \"Erstellt am\",\n percent: \"Prozent\",\n total: \"Insgesamt verdient\",\n status: \"Status\",\n value: \"Wert\",\n revenue: \"Einnahmen\",\n payAt: \"Zahlung am\",\n status: \"Status\",\n },\n statuses: {\n null: \"Ausstehend\",\n pending: \"Ausstehend\",\n processing: \"In Bearbeitung\",\n paid: \"Bezahlt\",\n },\n paymentsHistory: \"Zahlungshistorie\",\n },\n tabTitle: \"Sutra - Affiliates\",\n title: \"Affiliates\",\n affiliateLink: \"Das ist Ihr Affiliate-Link\",\n copyMessage: \"Link wurde in die Zwischenablage kopiert\",\n stripeTitle: \"Mit Stripe verbunden\",\n stripeConnected:\n \"Dies ist Ihre Stripe-Konto-ID. Um diese ID in Stripe zu finden, klicken Sie bitte auf den Link, um sich bei Stripe einzuloggen, und scrollen Sie zum Ende Ihrer Kontoeinstellungen.\",\n stripeDisconnect: \"Verbindung trennen\",\n description:\n \"Um Zahlungen für das Partnerprogramm abzuwickeln, verbinden Sie bitte Ihr Stripe-Konto, indem Sie auf den unten stehenden Button klicken.\",\n description2:\n \"Wenn Sie diesen Link mit anderen teilen, erhalten Sie automatisch 40% des Umsatzes, der im ersten Jahr von denen erzielt wird, die sich für einen kostenpflichtigen Plan auf Sutra anmelden.\",\n connect: \"Stripe verbinden\",\n historyLabel: \"Affiliate-Verlauf\",\n },\n },\n spaces: {\n settings: {\n layout: {\n navbarContent: {\n mainSettings: \"Allgemeine Einstellungen\",\n members: \"Mitglieder\",\n broadcast: \"Broadcast\",\n surveys: \"Umfragen\",\n structures: \"Strukturen\",\n sutraAdmin: \"Sutra Admin\",\n scheduled: \"Geplant\",\n archived: \"Archiviert\",\n participation: \"Teilnahme\",\n },\n headerActions: {\n shareableLink: \"TEILBARER LINK\",\n },\n },\n main: {\n title: \"Allgemeine Einstellunge\",\n main: {\n invite: \"Einladen\",\n shareableLink: \"Teilbarer Link\",\n cancelLink: \"Abbrechen\",\n saveLink: \"Speichern\",\n editLinkButton: \"Link bearbeiten\",\n subdomain: \"Dein Subdomain\",\n sutra_co: \".sutra.co\",\n label1: \"Link in Zwischenablage kopiert\",\n privacySetting: \"Wähle eine Datenschutzeinstellung\",\n title1: \"Diesen Space öffentlich zugänglich machen\",\n description1:\n \"Dieser Space befindet sich innerhalb eines privaten Spaces und ist nur für Mitglieder dieses Spaces sichtbar. Du kannst ihn öffentlich zugänglich machen, indem du diese Einstellung aktivierst.\",\n title2: \"Registrierungsseite anzeigen\",\n description2:\n \"Nicht-Mitglieder sehen eine Registrierungsseite, wenn sie auf diesen Space zugreifen möchten, wenn diese Einstellung aktiviert ist.\",\n title3: \"Legacy Registrierungsseite verwenden\",\n description3:\n \"Wenn diese Einstellung aktiviert ist, verwendet dieser Space die mit unserem Legacy-Editor erstellte Registrierungsseite.\",\n onButton: \"AN\",\n offButton: \"AUS\",\n editButton: \"Seite bearbeiten\",\n previewButton: \"Seite Vorschau\",\n label2: \"Datenschutz- und Zahlungseinstellungen\",\n label3: \"Einstellungen der Registrierungsseite\",\n description4:\n \"Aktiv - Personen sehen eine Registrierungsseite, bevor sie auf diesen Space zugreifen können\",\n label4: \"Automatisierung\",\n description5:\n \"Planen von E-Mails und automatisches Hinzufügen von Personen zu Spaces bei der Registrierung\",\n label5: \"Planungseinstellungen\",\n description6:\n \"Eventdatum festlegen oder Veröffentlichungs- und Archivierungsoptionen planen\",\n label6: \"Zusätzliche Einstellungen\",\n description7:\n \"Berechtigungen zur Inhalterstellung, Sichtbarkeit der Mitgliedschaft, Managerbenachrichtigungen und übergeordnete Spaces\",\n label7: \"SEO-Einstellungen\",\n description8:\n \"Meta-Titel, Beschreibung und Bild für die soziale Freigabe und Suchmaschinenoptimierung festlegen\",\n label8: \"Öffentlich\",\n description9: \"Jeder kann auf diesen Space zugreifen\",\n label9: \"Privat\",\n description10:\n \"Dieser Space ist privat und Personen müssen eingeladen werden, um beizutreten\",\n label10: \"Bezahlt\",\n description11:\n \"Dieser Space ist privat und kostenpflichtig. Personen müssen bezahlen, um beizutreten\",\n description12:\n \"Personen sehen eine Registrierungsseite, bevor sie auf diesen öffentlichen Space zugreifen können.\",\n description13:\n \"Personen gelangen direkt in diesen Space, wenn sie auf diesen öffentlichen Space zugreifen.\",\n description14:\n \"Personen müssen direkt eingeladen werden, um auf diesen privaten Space zugreifen zu können. Wenn sie eingeladen werden, sehen sie eine Registrierungsseite.\",\n description15:\n \"Personen müssen direkt eingeladen werden, um auf diesen privaten Space zugreifen zu können. Wenn sie eingeladen werden, sehen sie eine Kontenerstellungseite ohne Registrierungsseite.\",\n description16:\n \"Personen sehen eine Registrierungsseite, bevor sie auf diesen kostenpflichtigen Space zugreifen können.\",\n description17:\n \"Personen sehen eine Kontenerstellungs- und Zahlungsseite, bevor sie auf diesen kostenpflichtigen Space zugreifen können. Sie sehen keine Registrierungsseite.\",\n on: \"AN\",\n off: \"AUS\",\n label11: \"Mitglieder\",\n label12: \"Ausstehend\",\n label13: \"Interessiert\",\n label14: \"Eingeladen\",\n label15: \"Zahlungen\",\n label16: \"Markenbildung\",\n },\n additional: {\n allowMembersEdit:\n \"Mitgliedern erlauben, den Inhalt auf dieser Seite zu bearbeiten\",\n membersWillAddContent:\n \"Mitglieder können Inhalte auf dieser Seite hinzufügen und bearbeiten\",\n allowMembersCreatePosts:\n \"Mitgliedern erlauben, neue Beiträge zu erstellen\",\n membersWillCreatePosts:\n \"Mitglieder können neue Beiträge in diesem Space erstellen\",\n allowMembersCreateEvents:\n \"Mitgliedern erlauben, neue Veranstaltungen zu erstellen\",\n membersWillCreateEvents:\n \"Mitglieder können neue Veranstaltungen in diesem Space erstellen\",\n allowMembersCreateSubspaces:\n \"Mitgliedern erlauben, neue Unter-Spaces zu erstellen\",\n membersWillCreateSubspaces:\n \"Mitglieder können Unter-Spaces auf dieser Seite erstellen\",\n membersCanCreate: \"Mitglieder können erstellen\",\n circleCreation: {\n options: {\n discussion: \"Diskussions-Spaces\",\n content: \"Inhalts-Spaces\",\n event: \"Veranstaltungs-Spaces\",\n },\n placeholder:\n \"Wähle aus, welche Arten von Spaces Mitglieder in diesem Space erstellen können\",\n },\n allowMembersToCopy: {\n description1:\n \"Mitgliedern erlauben, Mitglieder zwischen Spaces zu kopieren\",\n description2:\n \"Mitglieder haben die Möglichkeit, Mitglieder automatisch von anderen Kreisen hinzuzufügen\",\n },\n podType: {\n description1:\n \"Alle Mitglieder können Nachrichten in diesem Space posten\",\n description2:\n \"Wenn diese Option deaktiviert ist, können nur Manager Nachrichten posten\",\n },\n allowReflections: {\n description1: \"Reflexionen für diesen Space aktivieren\",\n description2:\n \"Wenn diese Option deaktiviert ist, wird die Reflexions-Option bei Nachrichten nicht angezeigt\",\n },\n showMembers: {\n description1: \"Mitglieder anzeigen\",\n description2:\n \"Das Mitgliederverzeichnis für diesen Space anzeigen\",\n },\n hideMmemberEmails: {\n description1:\n \"E-Mail-Adressen der Mitglieder im Mitgliederverzeichnis anzeigen\",\n description2:\n \"Wenn diese Option deaktiviert ist, werden die E-Mail-Adressen der Mitglieder nicht im Verzeichnis aufgeführt\",\n },\n newMemberNotifications: {\n description1:\n \"Manager benachrichtigen, wenn neue Mitglieder beitreten\",\n description2:\n \"Eine Benachrichtigungs-E-Mail bei jeder Anmeldung eines neuen Mitglieds senden\",\n },\n podSize: {\n description1:\n \"Anzahl der Personen begrenzen, die diesem Space beitreten können\",\n description2:\n \"Eine maximale Anzahl von Personen angeben, die diesem Space beitreten können\",\n },\n podSizeValue: {\n description:\n \"Wie viele Personen können diesem Space beitreten?\",\n },\n sidebarDefaultOpened: {\n description1: \"Space standardmäßig im Seitenbereich öffnen\",\n description2:\n \"Wenn diese Option aktiviert ist, wird dieser Space standardmäßig im Seitenbereich erweitert angezeigt\",\n },\n sidebarHideChildren: {\n description1: \"Unter-Spaces im Seitenbereich ausblenden\",\n description2:\n \"Wenn diese Option aktiviert ist, werden in diesem Space erstellte Unter-Spaces nicht im Seitenbereich angezeigt\",\n },\n allowCompletions: {\n description1:\n \"Schaltfläche 'Als abgeschlossen markieren' anzeigen\",\n description2:\n 'Wenn diese Option aktiviert ist, sehen Mitglieder eine Schaltfläche \"Als abgeschlossen markieren\" für diesen Space. Nachdem sie diese Option ausgewählt haben, wird das Symbol im Seitenbereich durch ein Häkchen ersetzt.',\n },\n redirectToSubspace: {\n description1: \"Immer zu Unter-Space umleiten\",\n description2:\n \"Wenn diese Option aktiviert ist, gelangen Mitglieder immer direkt zum ausgewählten Unter-Space, wenn sie auf diesen Space zugreifen.\",\n },\n parentCircles: {\n description1: \"Übergeordnete Bereiche\",\n placeholder:\n \"Suche nach Spaces, die als Eltern für diesen Space hinzugefügt werden sollen\",\n },\n },\n scheduling: {\n showStartDate: {\n description1: \"Diesen Space als Veranstaltung anzeigen\",\n description2:\n \"Dieser Space zeigt überall ein Veranstaltungsdatum an, wo er aufgelistet ist\",\n },\n startDateTime: {\n title: \"Startdatum und -zeit\",\n placeholder: \"Datum auswählen\",\n },\n endDateTime: {\n title: \"Enddatum und -zeit\",\n placeholder: \"Datum auswählen\",\n },\n showLaunchDate: {\n description1:\n \"Diesen Space zu einem bestimmten Datum veröffentlichen\",\n description2:\n \"Dieser Space wird am angegebenen Datum sichtbar und zugänglich\",\n },\n launchDateTime: {\n placeholder: \"Datum auswählen\",\n },\n showArchiveDate: {\n description1:\n \"Diesen Space zu einem bestimmten Datum archivieren\",\n description2:\n \"Dieser Space wird am angegebenen Datum nicht mehr zugänglich sein\",\n },\n archiveDate: {\n placeholder: \"Datum auswählen\",\n },\n showReadonlyDate: {\n description1:\n \"Diesen Space zu einem bestimmten Datum schreibgeschützt machen\",\n description2:\n \"Nach dem angegebenen Datum können keine neuen Nachrichten mehr gepostet werden\",\n },\n readonlyDate: {\n placeholder: \"Datum auswählen\",\n },\n },\n seo: {\n title: {\n title: \"Titel-Tag\",\n description:\n \"Dies ist der Titel, der in den Suchmaschinenergebnissen und bei Social-Media-Beiträgen angezeigt wird. Die optimale Länge beträgt 60 Zeichen.\",\n },\n description: {\n title: \"Meta-Beschreibung\",\n description:\n \"Dies ist die Beschreibung, die in den Suchmaschinenergebnissen und bei Social-Media-Beiträgen angezeigt wird. Die optimale Länge beträgt 150 bis 350 Zeichen.\",\n },\n image: {\n title: \"Meta-Bild\",\n description:\n \"Dies ist das Bild, das bei Social-Media-Beiträgen angezeigt wird. Die empfohlene Abmessung beträgt 1200 Pixel x 627 Pixel (Seitenverhältnis 1,91/1).\",\n },\n },\n },\n members: {\n title: \"Mitglieder\",\n members: {\n download: \"CSV herunterladen\",\n invite: \"Einladen\",\n member: \"Mitglieder\",\n invited: \"Eingeladen\",\n interested: \"Interessiert\",\n payment: \"Zahlungen\",\n },\n interested: {\n interested: {\n button: \"Suchen\",\n placeholder: \"Suchen Sie nach mehr\",\n broadcast: \"Broadcast senden\",\n noRecordFound: \"Keine Einträge gefunden\",\n },\n table: {\n firstname: \"Vorname\",\n email: \"E-Mail\",\n date: \"Datum\",\n },\n interestedrow: {\n removeFromList: \"Aus der Liste entfernen\",\n },\n },\n invited: {\n invited: {\n button: \"Suchen\",\n placeholder: \"Suchen Sie nach mehr\",\n noRecordFound: \"Keine Einträge gefunden\",\n },\n table: {\n email: \"E-Mail\",\n invitationlink: \"Einladungslink\",\n amount: \"Betrag\",\n date: \"Versanddatum\",\n },\n },\n invitedrow: {\n invitation: {\n resend: \"Einladung erneut senden\",\n cancel: \"Einladung abbrechen\",\n },\n },\n inviteEmail: {\n invite: {\n placeholder:\n \"Geben Sie die E-Mail-Adresse ein oder erwähnen Sie Personen, die Sie zu diesem Space hinzufügen möchten. Einträge können durch Kommas, Leerzeichen oder Zeilenumbrüche getrennt werden.\",\n message:\n \"Fügen Sie eine optionale Begrüßungsnachricht hinzu\",\n checkboxLabel:\n \"E-Mail senden, um Personen darüber zu informieren, dass sie eingeladen wurden\",\n alertMessage:\n \"Sie verwenden derzeit einen Basic-Tarif und können keine Einladungen über Sutra senden. Wenn Sie auf Einladen klicken, wird für jede E-Mail-Adresse, die Sie hinzufügen, ein eindeutiger Einladungslink generiert. Sie können jede Person persönlich per E-Mail mit diesem Link kontaktieren.\",\n alertbutton: \"Konto upgraden\",\n button: \"Personen einladen\",\n },\n },\n inviteExisting: {\n invite: {\n copyMembers: \"Mitglieder von einem anderen Space kopieren\",\n copyMembersPlaceholder:\n \"Wählen Sie Spaces aus, von denen Sie Mitglieder kopieren möchten\",\n addActiveMembers:\n \"Aktive Mitglieder von übergeordneten Spaces hinzufügen\",\n addActiveMembersPlaceholder:\n \"Wählen Sie aktive Mitglieder aus, die Sie zu diesem Space hinzufügen möchten\",\n addPendingMembers:\n \"Ausstehende Mitglieder von übergeordneten Spaces hinzufügen\",\n addPendingMembersPlaceholder:\n \"Wählen Sie ausstehende Mitglieder aus, die Sie zu diesem Space hinzufügen möchten\",\n checkboxLabel:\n \"E-Mail senden, um Personen darüber zu informieren, dass sie eingeladen wurden\",\n alert:\n \"Sie verwenden derzeit einen Basic-Tarif und können keine Einladungen über Sutra senden. Wenn Sie auf Einladen klicken, wird für jede E-Mail-Adresse, die Sie hinzufügen, ein eindeutiger Einladungslink generiert. Sie können jede Person persönlich per E-Mail mit diesem Link kontaktieren.\",\n alertButton: \"Konto upgraden\",\n button: \"Personen einladen\",\n thisOption:\n \"Diese Option ist für diesen Space nicht aktiviert\",\n },\n },\n inviteLink: {\n invite: {\n shareLinkText:\n \"Personen können sich direkt mit dem folgenden Link für diesen Space registrieren. Sie können diesen Link überall teilen, wo Sie möchten (E-Mail, soziale Netzwerke usw.).\",\n youCannotShare:\n \"Sie können keinen Link zu einem privaten Space teilen.\",\n },\n },\n invitePeople: {\n invite: {\n invitePeople: \"Personen einladen\",\n },\n },\n membersActivity: {\n members: {\n placeholder: \"Suche nach\",\n button: \"Suchen\",\n emailButton: \"E-Mail\",\n messageButton: \"Nachricht\",\n noRecordFound: \"Keine Einträge gefunden\",\n },\n memberTable: {\n noRecordFound: \"Keine Einträge gefunden\",\n lastSeen: \"Zuletzt gesehen\",\n lastPosted: \"Zuletzt gepostet\",\n date: \"Beitrittsdatum\",\n },\n },\n participationActivity: {\n participation: {\n searchPlaceholder: \"Suche nach\",\n searchButton: \"Suchen\",\n pickDatePlaceholder: \"Zeitraum auswählen\",\n emailButton: \"E-Mail\",\n messageButton: \"Nachricht\",\n noRecordFound: \"Keine Einträge gefunden\",\n },\n memberTable: {\n member: \"Mitglied\",\n participation: \"Teilnahme\",\n posts: \"Beiträge\",\n words: \"Wörter\",\n },\n },\n participationActivityRow: {\n posts: \"Beiträge\",\n },\n paymentRow: {\n payment: {\n refundPayment: \"Zahlung erstatten\",\n },\n },\n payments: {\n payment: {\n searchPlaceholder: \"Suche nach\",\n searchButton: \"Suchen\",\n noRecordFound: \"Keine Einträge gefunden\",\n },\n paymentTable: {\n member: \"Mitglied\",\n amount: \"Betrag\",\n date: \"Datum\",\n status: \"Status\",\n },\n },\n progressActivity: {\n progress: {\n searchPlaceholder: \"Suche nach\",\n searchButton: \"Suchen\",\n emailButton: \"E-Mail\",\n messageButton: \"Nachricht\",\n noRecordFound: \"Keine Einträge gefunden\",\n progressTracking:\n \"Die Verfolgung des Fortschritts ist nur in Spaces verfügbar, die interaktive Aufgaben haben.\",\n },\n progressTable: {\n member: \"Mitglied\",\n progress: \"Fortschritt\",\n },\n },\n registered: {\n registered: {\n searchPlaceholder: \"Suche nach\",\n searchButton: \"Suchen\",\n email: \"E-Mail\",\n message: \"Nachricht\",\n noRecordFound: \"Keine Einträge gefunden\",\n pending: \"Ausstehend\",\n manager: \"Manager\",\n all: \"Alle\",\n active: \"Aktiv\",\n },\n registeredTable: {\n member: \"Mitglied\",\n email: \"E-Mail\",\n status: \"Status\",\n role: \"Rolle\",\n roleApproveAll: \"Alle genehmigen\",\n },\n },\n registeredRow: {\n registered: {\n roleApprove: \"Genehmigen\",\n joined: \"Beigetreten\",\n sendMessage: \"Nachricht senden\",\n stopCharging: \"Abrechnung beenden\",\n emailPreferences: \"E-Mail-Einstellungen\",\n removeMember: \"Mitglied entfernen\",\n },\n },\n },\n payment: {\n charging: {\n NumberOfTimes: {\n howManyTimes: \"Wie oft?\",\n },\n UntilDate: {\n pickDate: \"Wähle ein Enddatum für die Abrechnung\",\n },\n },\n fees: {\n description: {\n fees: \"GEBÜHREN:\",\n sutraFee: \"SUTRA GEBÜHR +\",\n stripeProcessingFee: \"STRIPE VERARBEITUNGSGEBÜHREN\",\n },\n },\n flexible: {\n flexible: {\n description:\n \"Um den Menschen flexible Zahlungsoptionen anzubieten, wie zum Beispiel ein Bezahlen-was-du-kannst-Modell oder mehrere Zahlungskategorien, kannst du eine Zahlungsumfrage erstellen, die die Menschen sehen, wenn sie sich für deinen Space registrieren. Klicke auf den Bearbeiten-Button unten, um die Umfrage anzupassen.\",\n },\n },\n once: {\n once: {\n description: \"Wie viel willst du berechnen?\",\n number: \"10\",\n },\n },\n recurring: {\n recurring: {\n description1: \"Wie viel willst du berechnen?\",\n description2: \"Wähle eine Abrechnungsoption\",\n },\n },\n },\n privacy: {\n open: {\n open: {\n description: \"Jeder kann auf diesen Space zugreifen\",\n },\n },\n paid: {\n paid: {\n stripeConnected: \"Mit Stripe verbunden\",\n disconnectButton: \"Trennen\",\n description:\n \"Um Zahlungen für diesen Space abzuwickeln, verbinde bitte dein Stripe-Konto, indem du auf den unten stehenden Button klickst.\",\n connectButton: \"Stripe verbinden\",\n },\n },\n private: {\n private: {\n description:\n \"Dieser Space ist privat und Personen müssen eingeladen werden, um beizutreten\",\n },\n },\n },\n registration: {\n steps: {\n addFromSubSpace: {\n label: \"Wähle einen Space aus, um Mitglied hinzuzufügen\",\n description:\n \"In manchen Situationen können Personen einem Unter-Space beitreten, ohne dem übergeordneten Space beizutreten. Manchmal möchtest du sicherstellen, dass sie auch zu einem Top-Level-Space oder einem gemeinsamen Space hinzugefügt werden. Diese Option ermöglicht es dir. Immer wenn jemand einem Unter-Space beitritt, wird er automatisch zu den ausgewählten Spaces unten hinzugefügt.\",\n placeholder: \"Spaces auswählen\",\n saveButton: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n saveButton2: \"Schritt speichern\",\n },\n addStructure: {\n label1: \"Struktur auswählen\",\n placeholder1: \"Option auswählen\",\n label2: \"Senden als\",\n placeholder2: \"Option auswählen\",\n saveButton: \"Schritt speichern\",\n },\n addToExistingSpace: {\n label: \"Wähle einen Space aus, um Mitglied hinzuzufügen\",\n placeholder: \"Spaces auswählen\",\n saveButton1: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n saveButton2: \"Schritt speichern\",\n },\n addToNewSpace: {\n placeholder: \"Name des neuen Spaces\",\n label: \"Einen Namen für den neuen Space festlegen\",\n saveButton1: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n saveButton2: \"Schritt speichern\",\n },\n applyTemplate: {\n label: \"Space zum Kopieren auswählen\",\n description:\n \"Manchmal möchtest du einen Vorlagen-Space erstellen und ihn jedes Mal replizieren, wenn ein neuer Space erstellt wird. Du kannst einen Space erstellen und genau so einrichten, wie du es möchtest. Dann werden alle Inhalte und Unter-Spaces in jedem neu erstellten Space hier kopiert.\",\n saveButton1: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n saveButton2: \"Schritt speichern\",\n },\n editEmail: {\n placeholder1: \"Betreff\",\n label1: \"Senden als\",\n placeholder2: \"Option auswählen\",\n label2: \"Senden an\",\n placeholder3: \"Option auswählen\",\n placeholder4: \"someone@special.com\",\n label3: \"E-Mail-Adresse\",\n saveButton: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n sendPreview: \"Send preview\",\n },\n editStructure: {\n deleteButton: \"Schritt löschen\",\n },\n editSurvey: {\n deleteButton: \"Schritt löschen\",\n },\n sendEmail: {\n label1: \"E-Mail auswählen\",\n placeholder1: \"Option auswählen\",\n label2: \"Senden als\",\n placeholder2: \"Option auswählen\",\n label3: \"Senden an\",\n placeholder3: \"Option auswählen\",\n label4: \"someone@special.com\",\n placeholder4: \"E-Mail-Adresse\",\n saveButton: \"Schritt speichern\",\n label5: \"Manager\",\n label6: \"Benutzerdefinierte E-Mail-Adresse\",\n },\n setToPending: {\n title: \"Willkommensnachricht\",\n description:\n \"Dies ist der Inhalt, den die Personen unmittelbar nach der Registrierung für deinen Space sehen werden. Dies ist ein guter Ort, um zu erklären, wann das Programm startet und was sie in der Zwischenzeit erwarten können.\",\n saveButton1: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n saveButton2: \"Schritt speichern\",\n },\n surveyPerson: {\n placeholder: \"Option auswählen\",\n label: \"Umfrage auswählen\",\n saveButton1: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n saveButton2: \"Schritt speichern\",\n },\n wait: {\n description1: \"Wie viele Tage?\",\n description2: \"Warten bis\",\n saveButton: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n saveButton2: \"Schritt speichern\",\n label1: \"Wartebedingung auswählen\",\n placeholder: \"Option auswählen\",\n label2: \"Anzahl der Tage\",\n label3:\n \"Bis zu einem bestimmten Datum und einer bestimmten Uhrzeit warten\",\n label4: \"Datum auswählen\",\n },\n webhook: {\n label: \"Webhook-URL\",\n saveButton: \"Schritt speichern\",\n deleteButton: \"Schritt löschen\",\n },\n remove_from_space: {\n label: \"Select a space to remove member from\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n },\n addStep: {\n addStep: {\n description: \"Schritt hinzufügen\",\n label: \"Bitte wähle eine Aktion für diesen Schritt aus\",\n placeholder: \"Aktion auswählen\",\n },\n },\n registrationFlow: {\n registration: {\n description1:\n \"Diese Funktion ermöglicht es dir, automatisierte Aktionen zu sequenzieren, die ausgelöst werden, wenn eine Person diesem Space beitritt oder Interesse zeigt. Hier kannst du beispielsweise E-Mails planen und Personen automatisch zu ausgewählten Spaces hinzufügen, wenn sie sich registrieren.\",\n description2: \"Diese Aktionen ausführen, nachdem jemand...\",\n placeholder1: \"Startbedingung auswählen\",\n addButton: \"Schritt hinzufügen\",\n label1:\n \"Mitglied wird oder sich für die Interessentenliste anmeldet\",\n description3:\n \"Die folgenden Schritte werden ausgelöst, wenn eine Person Mitglied dieses Spaces wird oder sich für die Interessentenliste anmeldet, indem sie ihren Namen und ihre E-Mail-Adresse über ein Interessenformular eingibt.\",\n label2: \"Mitglied dieses Spaces wird\",\n description4:\n \"Die folgenden Schritte werden ausgelöst, wenn eine Person Mitglied dieses Spaces wird.\",\n label3: \"Interessieren Sie sich für diesen Raum\",\n description5:\n \"Die folgenden Schritte werden ausgelöst, wenn eine Person sich für die Interessentenliste anmeldet, indem sie ihren Namen und ihre E-Mail-Adresse über ein Interessenformular eingibt.\",\n },\n },\n },\n structure: {\n add: {\n add: {\n title: \"Zu Spaces hinzufügen\",\n description: \"Räume\",\n placeholder1: \"Space auswählen\",\n label1: \"Senden als\",\n placeholder2: \"Absender wählen\",\n placeholder3: \"Datum auswählen\",\n label2: \"Sendedatum\",\n label3: \"Zeit senden\",\n saveButton: \"Speichern\",\n label4: \"Planen Sie für später\",\n },\n },\n createStructure: {\n title: {\n createStructure: \"Struktur erstellen\",\n },\n },\n structureItem: {\n item: {\n addToSpace: \"Zu Space hinzufügen\",\n open: \"View responses\",\n edit: \"Bearbeiten\",\n duplicate: \"Duplizieren\",\n delete: \"Entferne\",\n },\n },\n },\n survey: {\n add: {\n add: {\n title: \"Zu Spaces hinzufügen\",\n spaces: \"Spaces\",\n placeholder1: \"Space auswählen\",\n label: \"Senden als\",\n placeholder2: \"Absender wählen\",\n saveButton: \"Speichern\",\n },\n },\n answer: {\n answer: {\n addOption: \"Option hinzufügen\",\n },\n },\n createSurvey: {\n description: \"Umfrage erstellen\",\n },\n createSurveyForm: {\n form: {\n title: \"Umfragetitel\",\n description:\n \"Flexible Zahlungen ermöglichen Ihnen, mehrere Zahlungsoptionen für Ihr Programm anzubieten. Wenn Sie möchten, dass Personen ihren eigenen Preis festlegen, erstellen Sie einfach eine Zahlungsoption, ohne den Betrag für diese Option festzulegen. Diese Option wird mit einem Eingabefeld angezeigt, in dem die Person ihren eigenen Betrag festlegen kann. Sie können beispielsweise ein Pay-what-you-can-Modell mit mehreren vorgeschlagenen Stufen und einer völlig offenen Option anbieten. Wenn Sie unten eine Erklärung eingeben, wird dieser Text direkt über den Zahlungsoptionen angezeigt.\",\n optionalDescription: \"Optionale Umfragebeschreibung\",\n addQuestionButton: \"Frage hinzufügen\",\n saveButton: \"Speichern\",\n },\n },\n individual: {\n individual: {\n placeholder: \"Person auswählen\",\n },\n },\n multipleItem: {\n multipleItem: {\n placeholder: \"Option\",\n },\n },\n paymentItem: {\n paymentItem: {\n placeholder: \"Zahlungsoption\",\n },\n },\n paymentSurveyItem: {\n item: {\n editButton: \"Zahlungsoptionen bearbeiten\",\n viewButton: \"Antworten anzeigen\",\n },\n },\n showSurvey: {\n survey: {\n title: \"Umfrageantworten\",\n },\n },\n singleItem: {\n item: {\n placeholder: \"Option\",\n },\n },\n surveyItem: {\n item: {\n addToSpace: \"Zu Space hinzufügen\",\n open: \"View responses\",\n edit: \"Bearbeiten\",\n take: \"Preview survey\",\n duplicate: \"Duplizieren\",\n download: \"CSV herunterladen\",\n delete: \"Entferne\",\n responses: \"Antworten\",\n },\n },\n },\n broadcast: {\n broadcast: {\n button: {\n broadcastButton: \"Neue Sendung\",\n },\n },\n },\n broadcast: {\n title: \"Sendung\",\n broadcastButton: \"Neuer Rundfunk\",\n membersTypes: {\n active: \"Aktive Mitglieder\",\n pending: \"Ausstehende Mitglieder\",\n interested: \"Interessierte Mitglieder\",\n },\n sentOn: \"Sendung weitergeschickt\",\n onDestroy: {\n alertTitle: \"Bist du sicher?\",\n alertMessage: \"Dieser Rundfunk wird dauerhaft gelöscht\",\n confirm: \"Rundfunk löschen\",\n deny: \"Abbrechen\",\n },\n actions: {\n edit: \"Bearbeiten\",\n duplicate: \"Duplizieren\",\n delete: \"Löschen\",\n },\n statuses: {\n sent: \"Gesendet\",\n scheduled: \"Geplant\",\n draft: \"Entwurf\",\n procesing: \"Processing\",\n },\n form: {\n composeBroadcast: \"Rundfunk erstellen\",\n contentErrMessage: \"Füge etwas Inhalt hinzu\",\n targetErrMessage: \"Wähle einen Empfänger aus\",\n type: {\n email: \"E-Mail senden\",\n message: \"Nachrichtenbereich\",\n },\n title: {\n placeholder: \"Betreffzeile\",\n },\n brackets: {\n part1: \"Verwende\",\n part2: \"und\",\n part3:\n \"um die entsprechenden Informationen automatisch auszufüllen\",\n },\n target: {\n placeholder: \"Empfänger auswählen\",\n label: \"Senden an\",\n },\n sendAs: {\n label: \"Senden als\",\n placeholder: \"Absender wählen\",\n },\n schedule: {\n label: \"Später planen\",\n },\n sendAtDate: {\n label: \"Sendedatum\",\n placeholder: \"Datum auswählen\",\n },\n sendAtTime: {\n label: \"Sendezeit\",\n placeholder: \"\",\n },\n scheduleBroadcast: \"Rundfunk planen\",\n sendBroadcast: \"Rundfunk senden\",\n saveDraft: \"Entwurf speichern\",\n sendPreview: \"Send preview\",\n },\n },\n surveys: {\n title: \"Umfragen\",\n createSurvey: \"Umfrage erstellen\",\n },\n structures: {\n title: \"Strukturen\",\n createStructure: \"Struktur erstellen\",\n },\n sutraAdmin: {\n title: \"Sutra Admin\",\n },\n scheduled: {\n title: \"Geplant\",\n },\n archived: {\n title: \"Archiviert\",\n },\n participation: {\n title: \"Teilnahme\",\n label1: \"Anwesenheit\",\n description1:\n \"% der Mitglieder, die in den letzten 7 Tagen besucht haben\",\n label2: \"Aktivität\",\n description2:\n \"% der Mitglieder, die in den letzten 7 Tagen Beiträge veröffentlicht haben\",\n label3: \"Beiträge\",\n description3:\n \"Gesamtzahl der Beiträge in allen Unterbereichen in den letzten 7 Tagen\",\n label4: \"Teilnahme\",\n label5: \"Mitgliederaktivität\",\n label6: \"Fortschritt\",\n },\n },\n sidebar: {\n iconSelect: {\n placeholder: \"Suche\",\n },\n membersNode: {\n member: \"Mitglieder\",\n },\n nodeIcon: {\n reset: \"Zurücksetzen\",\n },\n sidebarTutorial: {\n gettingStarted: \"Erste Schritte\",\n },\n },\n alreadyMember: {\n member: {\n welcome:\n \"Willkommen! Du bist bereits Mitglied in diesem Bereich -\",\n clickHere: \"Klicke hier, um einzutreten\",\n },\n },\n calender: {\n calender: {\n joinButton: \"Anruf beitreten\",\n addButton: \"Zum Kalender hinzufügen\",\n joinEventButton: \"Registrieren\",\n title: \"Veranstaltungsdetails\",\n },\n },\n invitationBar: {\n button: {\n register: \"Registrieren\",\n },\n },\n space: {\n sutraLoading: \"Sutra - Lade...\",\n },\n statusBar: {\n restoreButton: \"Wiederherstellen\",\n },\n tagFilter: {\n resetButton: \"Zurücksetzen\",\n },\n presentations: {\n discussion: {\n reflectionHeader: \"Reflexionen\",\n backToPost: \"Zurück zum Beitrag\",\n pinnedMessageHeader: \"Angeheftete Nachricht\",\n delete: {\n title: \"Bist du sicher?\",\n message: \"Diese Aktion kann nicht rückgängig gemacht werden\",\n confirmButton: \"Ja, löschen\",\n cancelButton: \"Stornieren\",\n },\n },\n tag: {\n placeholder: \"Tags durchsuchen oder neuen erstellen\",\n placeholder2: \"Wähle ein Tag aus\",\n createAction: \"Erstellen\",\n },\n message: {\n reply: \"Reflektieren\",\n addTags: \"Tags hinzufügen\",\n tag: \"Tag\",\n copyToClipboard: \"In Zwischenablage kopieren\",\n messageCopied: \"Nachricht wurde in die Zwischenablage kopiert\",\n pinMessageAction: \"Nachricht anheften\",\n editMessage: \"Nachricht bearbeiten\",\n deleteMessage: \"Nachricht löschen\",\n makePrivate: \"Privat machen\",\n viewReplies1: \"Anzeigen\",\n viewReplies2single: \"Reflexion\",\n viewReplies2plural: \"Reflexionen\",\n privateMessage:\n \"Dieser Beitrag ist derzeit nur für dich und die Manager dieses Bereichs sichtbar. Wenn du ihn öffentlich machst, wird er für andere Teilnehmer in diesem Bereich sichtbar.\",\n privateMessage2:\n \"Diese Person hat sich entschieden, ihre Antwort nicht mit anderen Teilnehmern zu teilen.\",\n unreadMessagesText: \"Du hast ungelesene Nachrichten\",\n scrollDownButton: \"Nach unten scrollen\",\n newReflections: {\n part1: \"Du hast\",\n part2: \"ungelesene Reflexionen in\",\n part3: \"Nachrichten\",\n },\n viewNextButton: \"Weiter anzeigen\",\n pinMessage: {\n mainText: \"Angeheftete Nachricht\",\n viewButton: \"Nachricht anzeigen\",\n },\n },\n content: {\n commentInput: {\n toggleLabel1:\n \"Kommentare sind für interaktive Abläufe deaktiviert\",\n toggleLabel2: \"Kommentare für diesen Beitrag aktivieren\",\n toggleLabel3:\n \"Kommentare für diesen Veranstaltungsbereich aktivieren\",\n toggleLabel4:\n \"Kommentare für diesen Veranstaltungsbereich aktivieren\",\n placeholder1:\n \"Kommentare für diesen Inhaltsbereich aktivieren\",\n placeholder2: \"Schreibe etwas...\",\n },\n },\n fallback: {\n title: \"Verbindungsproblem\",\n message:\n \"Es scheint, dass du keine Internetverbindung hast. Sobald du wieder online bist, stellen wir automatisch eine Verbindung für dich her.\",\n },\n events: {\n placeholder: \"Schreibe etwas...\",\n upcomingButton: \"bevorstehende\",\n pastButton: \"Vergangene\",\n addEvent: \"Veranstaltung hinzufügen\",\n eventSettingsTooltip: \"Veranstaltungseinstellungen\",\n newEventTitle: \"NEUE VERANSTALTUNG\",\n },\n list: {\n placeholder: \"Schreibe etwas...\",\n createButton: \"Beitrag erstellen\",\n listSettingsTooltip: \"Forumseinstellungen\",\n duplicateFormTitle: \"BEREICH KOPIEREN\",\n },\n settings: {\n versions: {\n content: \"Inhaltseite\",\n posts: \"Beiträge\",\n discussions: \"Diskussionen\",\n link: \"Link\",\n template: \"Vorlage\",\n },\n versionsDescriptions: {\n content:\n \"Neue Elemente werden als Inhaltsseite mit voller Funktionalität angezeigt.\",\n discussion: \"Leer\",\n posts:\n \"Neue Elemente werden als einfacher Beitrag mit eingeschränkter Funktionalität angezeigt.\",\n link: \"Diese Option ermöglicht es Ihnen, einen Link zu einem beliebigen Bereich auf Sutra zu erstellen, der dann als Element hier angezeigt wird.\",\n template:\n \"Erstellen Sie einen Vorlagenbereich, der jedes Mal dupliziert wird, wenn ein neues Element hier erstellt wird.\",\n },\n createNewTemplate: \"Neue Vorlage erstellen\",\n editTemplate: \"Vorlage bearbeiten\",\n title: \"EINSTELLUNGEN\",\n accordion1: {\n label: \"Anzeige als\",\n description:\n \"Beiträge in Listen- oder Rasteransicht anzeigen\",\n listOption: \"Liste\",\n gridOption: \"Raster\",\n dateCreated: \"Erstellungsdatum\",\n dateCreatedReversed: \"Erstellungsdatum umkehren\",\n lastActive: \"Zuletzt aktiv\",\n lastEdited: \"Zuletzt bearbeitet\",\n alphabetic: \"Alphabetisch\",\n reverseAlphabetic: \"Umgekehrtes Alphabet\",\n },\n accordion2: {\n label: \"Anzeigeoptionen\",\n description: \"\",\n switches: {\n onlyManagers: \"Nur Manager können einen Beitrag erstellen\",\n showAuthor: \"Autorinformationen anzeigen\",\n showPreview: \"Vorschautext anzeigen\",\n showComments: \"Anzahl der Kommentare anzeigen\",\n showMembers: \"Mitglieder-Avatare anzeigen\",\n showTimestamp: \"Erstellungszeitpunkt anzeigen\",\n showThumbnail: \"Miniaturbild anzeigen\",\n autoThumbnail: \"Miniaturbild automatisch erstellen\",\n },\n },\n accordion3: {\n label: \"Neues Beitragformat\",\n description:\n \"Format für neue Beiträge in diesem Bereich auswählen\",\n templateName: {\n label: \"Vorlage benennen\",\n placeholder: \"Vorlagenname\",\n },\n templateDirectOption: \"Direkter Unterbereich\",\n templateLinkedOption: \"Verknüpfter Bereich\",\n privacyDescription:\n \"Standardmäßiger Datenschutzlevel für neue Beiträge auswählen\",\n privacyOpenOption: \"Öffentlich\",\n privacyPrivateOption: \"Privat\",\n privacyAnyOption: \"Entscheidung des Erstellers\",\n },\n accordion4: {\n label: \"Schaltflächenbeschriftung\",\n createPost: {\n label: \"Beitrag erstellen\",\n description:\n \"Geben Sie den Text an, der auf der Schaltfläche zum Erstellen eines neuen Beitrags angezeigt wird\",\n },\n },\n templateDescription:\n \"Neue Vorlagenbereiche können entweder direkte Unterbereiche dieses Bereichs sein oder sie können verknüpfte Bereiche sein. Verknüpfte Bereiche sind eigenständige Top-Level-Bereiche, die auf dieser Seite angezeigt werden. Der Ersteller des Bereichs wird zum vollen Manager des von ihm erstellten Bereichs.\",\n },\n thumbnail: {\n title: \"THUMBNAIL HINZUFÜGEN\",\n message: \"Das Miniaturbild wird hochgeladen...\",\n },\n static: {\n broadcastExclude: {\n unsubscribe: {\n part1:\n \"Sind Sie sicher, dass Sie sich abmelden möchten von\",\n part2:\n \"Sie werden keine direkten Rundmails mehr von den Managern dieses Bereichs erhalten\",\n button: \"Abmelden\",\n },\n subscribe: {\n part1:\n \"Sie wurden abgemeldet und werden keine Rundmails mehr von\",\n button: \"Abonnieren\",\n },\n },\n invitation: {\n message: \"Sie wurden zu diesem Bereich eingeladen\",\n button: \"Einladung annehmen\",\n },\n pending: {\n message: \"Ihre Mitgliedschaft ist ausstehend\",\n },\n private: {\n message: {\n part1: \"Dies ist ein privater Bereich.\",\n part2: \"Wenn Sie Mitglied sind, loggen Sie sich bitte ein.\",\n },\n button: \"Einloggen\",\n },\n processing: {\n message: \"Dieser Bereich wird noch verarbeitet...\",\n },\n },\n gridPost: {\n onDelete: {\n alertTitle: \"Sind Sie sicher?\",\n alertMessage:\n \"Dieser Bereich wird nicht mehr hier verlinkt sein.\",\n alertMessage2:\n \"Dieser Bereich wird nicht mehr hier verlinkt sein.\",\n confirm: \"Ja\",\n deny: \"Nein\",\n },\n actions: {\n pin: \"Oben anheften\",\n unpin: \"Lösen\",\n addThumbnail: \"Miniaturbild hinzufügen\",\n removeThumbnail: \"Miniaturbild entfernen\",\n duplicate: \"Duplizieren\",\n unlink: \"Verlinkung aufheben\",\n delete: \"Löschen\",\n },\n },\n listContent: {\n publishTootip: \"Wird an diesem Datum veröffentlicht\",\n privateTooltip: \"Dies ist ein privater Bereich\",\n },\n },\n colors: {\n form: {\n colorTheme: \"Farbthema\",\n customize: \"Farbauswahl anpassen\",\n saveTheme: \"Thema speichern\",\n resetColor: \"Farbe zurücksetzen\",\n pageLayout: \"Seitenlayout\",\n pageFormat: \"Seitenformat\",\n },\n headerAndLogo: {\n addCover: \"Titelbild hinzufügen\",\n removeCover: \"Titelbild entfernen\",\n changeLogo: \"Logo ändern\",\n removeLogo: \"Logo entfernen\",\n dimensions:\n \"Die empfohlene Größe für Titelbilder beträgt 1200 x 300 Pixel\",\n dimensions2:\n \"Die empfohlene Größe für Logos beträgt 360 x 120 Pixel\",\n },\n pageFormat: {\n description:\n \"Sie können das Erscheinungsbild des Inhalts in diesem Bereich ändern, indem Sie unten eine Option auswählen.\",\n contentLabel: \"Inhalt\",\n discussionLabel: \"Diskussion\",\n contentDescription:\n \"Ein Bereich für Lernmodule, allgemeinen Inhalt oder Community-Ressourcen.\",\n discussionDescription:\n \"Ein Bereich für Diskussionen oder Ankündigungen\",\n eventsLabel: \"Kalender\",\n eventsDescription:\n \"Erstellen Sie eine Liste von Ereignissen im Kalender\",\n listLabel: \"Forum\",\n listDescription:\n \"Erstellen Sie einen Feed, in dem Benutzer Diskussionsthemen veröffentlichen können\",\n },\n pageLayout: {\n widePage: \"Breite Seitenbreite\",\n hideSidebar: \"Seitenleiste ausblenden\",\n hideHeader: \"Kopfzeile ausblenden\",\n hideCoverImage: \"Titelbild ausblenden\",\n hidePageTitle: \"Seitentitel ausblenden\",\n hideBreadcrumbs: \"Brotkrumen ausblenden\",\n },\n header_color: {\n label: \"Kopfzeilenfarbe\",\n description: \"Beschreibung\",\n },\n header_link_color: {\n label: \"Kopfzeilenlogo und Textfarbe\",\n description: \"Beschreibung\",\n },\n primary_button_background_color: {\n label: \"Hintergrundfarbe des Primärbuttons\",\n description: \"Beschreibung\",\n },\n primary_button_text_color: {\n label: \"Textfarbe des Primärbuttons\",\n description: \"Beschreibung\",\n },\n secondary_button_background_color: {\n label: \"Hintergrundfarbe des Sekundärbuttons\",\n description: \"Beschreibung\",\n },\n secondary_button_text_color: {\n label: \"Textfarbe des Sekundärbuttons\",\n description: \"Beschreibung\",\n },\n background_color: {\n label: \"Hintergrundfarbe\",\n description: \"Beschreibung\",\n },\n default_text_color: {\n label: \"Standardtextfarbe\",\n description: \"Beschreibung\",\n },\n sidebar_background_color: {\n label: \"Hintergrundfarbe der Seitenleiste\",\n description: \"Beschreibung\",\n },\n sidebar_text_color: {\n label: \"Textfarbe der Seitenleiste\",\n description: \"Beschreibung\",\n },\n default_link_color: {\n label: \"Standard-Linkfarbe\",\n description: \"Beschreibung\",\n },\n default_badge_color: {\n label: \"Farbe des Benachrichtigungsabzeichens\",\n description: \"Beschreibung\",\n },\n default_badge_text_color: {\n label: \"Textfarbe des Benachrichtigungsabzeichens\",\n description: \"Beschreibung\",\n },\n registration_page_background_color: {\n label: \"Hintergrundfarbe der Registrierungsseite\",\n description: \"Beschreibung\",\n },\n registration_page_default_text_color: {\n label: \"Textfarbe der Registrierungsseite\",\n description: \"Beschreibung\",\n },\n },\n create: {\n invalidNameErrorMsg:\n \"Der Name des Bereichs muss zwischen 3 und 100 Zeichen lang sein\",\n },\n dummy: {\n magicLink: {\n alertTitle: \"Du bist fast drin...\",\n alertMessage:\n \"Wir haben den Magic Link an deine E-Mail gesendet. DIESES IST EIN TEST KEINE TATSÄCHLICHE E-MAIL GESCHICKT.\",\n },\n },\n pending: {\n message: \"Deine Mitgliedschaft steht aus\",\n },\n recover: {\n alertTitle: \"Du bist fast drin...\",\n alertMessage:\n \"Wir haben dir gerade eine E-Mail mit Anweisungen zur Wiederherstellung deines Passworts geschickt. DIESES IST EIN TEST KEINE TATSÄCHLICHE E-MAIL GESCHICKT.\",\n },\n form: {\n calendarLinks: {\n text: \"Die unten hinzugefügten Informationen werden dem Kalender des Mitglieds übergeben, wenn es das Ereignis hinzufügt.\",\n link: {\n label: \"Ereignis-URL (Zoom-Link usw.)\",\n placeholder: \"Wie lautet der Link zu Ihrem Videocall\",\n },\n description: {\n label:\n \"Fügen Sie eine Beschreibung für Ihr Ereignis hinzu, die in den Kalenderinformationen angezeigt wird\",\n placeholder: \"Kalenderbeschreibung\",\n },\n eventStartDateAndTime: \"Startdatum und -zeit des Ereignisses\",\n date: {\n placeholder: \"Datum auswählen\",\n },\n eventDateTime: \"Enddatum und -zeit des Ereignisses (optional)\",\n allowInterests:\n \"Erlauben Sie Personen, am Ereignis teilzunehmen, ohne sich für Sutra anzumelden\",\n automatedEmails: \"Automatisierte E-Mails einrichten\",\n save: \"Details speichern\",\n },\n duplicate: {\n prefix: \"Kopie von\",\n intention: {\n label: \"Raumname\",\n placeholder: \"Wie heißt Ihr Bereich?\",\n },\n copyMembers: {\n label: \"Mitglieder kopieren\",\n },\n copyManagers: {\n label: \"Manager kopieren\",\n },\n copyContent: {\n label: \"Inhalt kopieren\",\n },\n copyPosts: {\n label: \"Copy posts\",\n },\n copyBroadcasts: {\n label: \"Broadcasts kopieren\",\n },\n copyAutomation: {\n label: \"Automatisierung kopieren\",\n },\n copyRegPage: {\n label: \"Registrierungsseite kopieren\",\n },\n save: \"Bereich duplizieren\",\n saveTemplate: \"Erstellen Sie eine Vorlage\"\n },\n form: {\n privacyDescription1:\n \"Der von Ihnen erstellte Bereich wird für alle innerhalb von\",\n rootPrivacyDescription1:\n \"Der von Ihnen erstellte Bereich ist für alle sichtbar, die einen Link dazu haben. Sie können Zahlungsoptionen festlegen, sobald Sie den Bereich erstellt haben.\",\n privacyDescription2:\n \"Der von Ihnen erstellte Bereich ist nur für Personen sichtbar, die hinzugefügt wurden.\",\n rootPrivacyDescription2:\n \"Der von Ihnen erstellte Bereich ist nur für Personen sichtbar, die dazu eingeladen wurden. Sie können Zahlungsoptionen festlegen, sobald Sie den Bereich erstellt haben.\",\n placeholderDescription: \"Beschreibung\",\n versions: {\n content: {\n label: \"Inhalt\",\n description:\n \"Erstellen Sie einen Bereich für ein Lernmodul, allgemeinen Inhalt oder Community-Ressourcen.\",\n },\n discussion: {\n label: \"Diskussion\",\n description:\n \"Erstellen Sie einen Chat-Bereich für Diskussionen oder Ankündigungen.\",\n },\n event: {\n label: \"Veranstaltung\",\n description: \"Erstellen Sie eine einzelne Veranstaltung.\",\n },\n events: {\n label: \"Kalender\",\n description:\n \"Erstellen Sie eine Liste von Kalenderereignissen.\",\n },\n list: {\n label: \"Forum\",\n description:\n \"Erstellen Sie eine Feed, in dem Personen Diskussionsthemen veröffentlichen können.\",\n },\n },\n segments: {\n space: {\n label: \"BereichRaum\",\n description:\n \"Erstellen Sie einen Bereich für Ihren Kurs oder Ihre Community. Wählen Sie diese Option, wenn Sie eine Schulungskohorte, einen selbstgesteuerten Kurs, eine Community oder eine Gruppe erstellen möchten, die im Laufe der Zeit zusammentrifft.\",\n },\n event: {\n label: \"Veranstaltung\",\n description:\n \"Erstellen Sie eine einfache Veranstaltungsseite. Wählen Sie diese Option, wenn Sie einfach eine einmalige Veranstaltung organisieren möchten, die Sie öffentlich teilen können.\",\n },\n discussion: {\n label: \"Diskussion\",\n description:\n \"Erstellen Sie einen einfachen Chat-Bereich für Ihre Gruppe. Wählen Sie diese Option, wenn Sie einfach einen einmaligen Diskussionsbereich für eine Gruppe von Personen erstellen möchten.\",\n },\n },\n intention: {\n label: \"Raumname\",\n placeholder: \"Wie heißt Ihr Bereich?\",\n },\n content: {\n label: \"Raumname\",\n description: \"Etwas schreiben...\",\n placeholder: \"Etwas schreiben...\",\n },\n spaceFormat: {\n label: \"Bereichsformat\",\n placeholder: \"Wählen Sie eins aus\",\n },\n eventDescription:\n \"Die unten hinzugefügten Informationen werden dem Kalender des Mitglieds übergeben, wenn es das Ereignis hinzufügt.\",\n hangoutLink: {\n label: \"Ereignis-URL (Zoom-Link usw.)\",\n placeholder: \"Wie lautet der Link Ihres Videoanrufs?\",\n },\n eventStartTime: \"Startdatum und -zeit des Ereignisses\",\n date: {\n placeholder: \"Datum auswählen\",\n },\n eventEndDate: \"Enddatum und -zeit des Ereignisses (optional)\",\n privacyLevelText: \"Datenschutzstufe\",\n privacy: {\n open: \"Offen\",\n private: \"Privat\",\n },\n joinAsMember: {\n label: \"Tritt diesem Bereich als Mitglied bei\",\n },\n publishDate: {\n label: \"Am Datum veröffentlichen\",\n },\n publishDateTime: \"Veröffentlichungsdatum und -zeit\",\n create: \"Raum schaffen\",\n },\n interestedForm: {\n title: \"Für diese Veranstaltung registrieren\",\n createAlertTitle: \"Vielen Dank für Ihre Registrierung!\",\n createAlertButton: \"OK\",\n name: {\n label: \"Vorname\",\n placeholder: \"Geben Sie Ihren Vornamen ein\",\n },\n email: {\n label: \"E-Mail\",\n placeholder: \"Geben Sie Ihre E-Mail-Adresse ein\",\n },\n register: \"Registrieren\",\n joinWithSutra: \"Mit meinem Sutra-Konto beitreten\",\n },\n linkForm: {\n linkErrMessage: \"Dies ist kein gültiger Bereichslink\",\n link: {\n label: \"\",\n placeholder: \"Link zum Bereich\",\n errors: {\n space:\n \"Der Bereich, den Sie teilen möchten, ist privat oder existiert nicht!\",\n event:\n \"Der Bereich, den Sie teilen möchten, ist privat, keine Veranstaltung oder existiert nicht!\",\n },\n },\n },\n listForm: {\n intention: {\n placeholder: \"Titel\",\n },\n },\n },\n header: {\n onLeave: {\n title: \"Bist du sicher?\",\n message:\n \"Du wirst aus diesem Bereich entfernt und möglicherweise wieder hinzugefügt werden müssen, um den Zugriff wiederherzustellen.\",\n confirm: \"Ja, bitte entferne mich\",\n deny: \"Nein\",\n },\n onArchive: {\n title: \"Bist du sicher?\",\n message:\n \"Dieser Bereich wird archiviert und Mitglieder haben keinen Zugriff mehr.\",\n confirm: \"Ja\",\n deny: \"Nein\",\n },\n onUnarchive: {\n title: \"Bist du sicher?\",\n message:\n \"Dieser Bereich wird aus dem Archiv geholt und Mitglieder haben wieder Zugriff.\",\n confirm: \"Ja\",\n deny: \"Nein\",\n },\n onDelete: {\n title: \"Bist du sicher?\",\n message:\n \"Dieser Bereich wird gelöscht und Mitglieder haben keinen Zugriff mehr.\",\n confirm: \"Ja\",\n deny: \"Nein\",\n },\n onFix: {\n title: \"Bist du sicher?\",\n message:\n \"Sutra wird versuchen, diesen Inhaltsbereich aus den Legacy-Daten neu zu erstellen.\",\n confirm: \"Ja, reparieren\",\n deny: \"Nein\",\n confirmationTitle: \"Information\",\n confirmationMessage:\n \"Bereich wurde repariert, Seite wird neu geladen...\",\n confirmationError: \"Dieser Bereich kann nicht repariert werden\",\n },\n buttons: {\n uncomplete: \"Als unvollständig markieren\",\n markComplete: \"Als abgeschlossen markieren\",\n edit: \"Bearbeiten\",\n post: \"Post\",\n page: \"Seite\",\n space: \"Bereich\",\n returnTo: \"Zurück zu\",\n editTitle: \"Titel bearbeiten\",\n viewPage: \"Seite anzeigen\",\n editDescription: \"Beschreibung bearbeiten\",\n appearance: \"Erscheinungsbild\",\n manage: \"Verwalten\",\n members: \"Mitglieder\",\n leave: \"Bereich verlassen\",\n delete: \"Bereich löschen\",\n deletePost: \"Bereich\",\n duplicate: \"Bereich duplizieren\",\n template: \"Erstellen Sie eine Vorlage\",\n archive: \"Raum archivieren\",\n unarchive: \"Speicherplatz entarchivieren\",\n fix: \"Reparieren\",\n joinEvent: \"Registrieren\",\n joinSpace: \"Bereich beitreten\",\n preview: \"Vorschau\",\n draft: \"Entwurf\",\n published: \"Veröffentlicht\",\n publish: \"Veröffentlichen\",\n returnToSettings: \"Zurück zu den Einstellungen\",\n returnToSpace: \"Zurück zum Bereich\",\n undo: \"Rückgängig\",\n openFullScreen: \"Im Vollbildmodus öffnen\",\n copyToClipboard: \"In die Zwischenablage kopieren\",\n copiedMessage: \"Space-Link in die Zwischenablage kopiert\",\n versionHistory: \"Versionsgeschichte\",\n brandingOptions: \"BRANDING-OPTIONEN\",\n },\n regPagePublishing:\n \"Deine Registrierungsseite wird veröffentlicht, bitte warten...\",\n spaceUpdating:\n \"Dieser Bereich wird aktualisiert, bitte warten...\",\n },\n members: {\n sectionTitle: \"Mitglieder\",\n manage: \"Mitglieder verwalten\",\n invite: \"Einladen\",\n search: {\n button: \"Suchen\",\n placeholder: \"Suche nach\",\n },\n emptyMessage: \"Keine Einträge gefunden\",\n messageButton: \"Nachricht\",\n emailButton: \"E-Mail\",\n copyClipboard: \"In Zwischenablage kopieren\",\n },\n payment: {\n onCheckIntent: {\n alertTitle: \"Zahlungsfehler\",\n alertMessage:\n \"Deine Sitzung ist abgelaufen. Bitte aktualisiere die Seite, um deine Zahlung abzuschließen.\",\n },\n onConfirmPayment: {\n alertTitle: \"Oops, etwas ist schiefgelaufen!\",\n alertMessage: \"Etwas ist schiefgelaufen!\",\n },\n completePayment: \"Zahlung abschließen\",\n join: \"Raum beitreten\",\n },\n stripe: {\n pay: \"Bezahlen\",\n },\n },\n survey: {\n form: {\n text: \"Du hast bereits an dieser Umfrage teilgenommen.\",\n submitButton: \"Absenden\",\n },\n question: {\n yourAnswer: \"Deine Antwort\",\n },\n },\n tiptap: {\n blocks: {\n section1: \"Grundlegend\",\n text: \"Text\",\n headline1: \"Überschrift 1\",\n headline2: \"Überschrift 2\",\n headline3: \"Überschrift 3\",\n divider: \"Trennlinie\",\n infobox: \"Info-Box\",\n section2: \"Räume\",\n content: \"Inhaltsraum\",\n discussion: \"Diskussionsraum\",\n event: \"Eventraum\",\n events: \"Kalenderraum\",\n list: \"Forumraum\",\n showcase: \"Showcase Space\",\n section3: \"Liste\",\n section8: \"Special\",\n bulletList: \"Aufzählungsliste\",\n orderedList: \"Nummerierte Liste\",\n checklist: \"Checkliste\",\n collapsableSection: \"Ausklappbarer Abschnitt\",\n survey: \"Survey or quiz\",\n section4: \"Medien\",\n image: \"Bild\",\n embed: \"Einbettungscode\",\n video: \"Video\",\n audio: \"Audio\",\n file: \"Datei\",\n zoom: \"Zoom recording\",\n section5: \"Raster\",\n grid1: \"1 Spalte\",\n grid2: \"2 Spalten\",\n grid3: \"3 Spalten\",\n grid4: \"Linke Spalte\",\n grid5: \"Rechte Spalte\",\n grid6: \"4 columns\",\n section6: \"Schaltflächen\",\n interestForm: \"Interessensformular\",\n actionButton: \"Aktions-Schaltfläche\",\n markComplete: \"Als erledigt markieren\",\n section7: \"Interaktiv\",\n interactiveButton: \"Interaktive Schaltfläche\",\n interactiveInput: \"Interaktive Eingabe\",\n interactiveWait: \"Interaktive Wartezeit\"\n },\n components: {\n sidebar: {\n alignment: {\n left: \"Links\",\n center: \"Zentriert\",\n right: \"Rechts\",\n },\n backgroundColor: {\n text: \"Hintergrundfarbe auswählen\",\n clearColor: \"klare Farbe\",\n },\n backgroundImage: {\n button: \"Bild auswählen\",\n removeButton: \"Bild entfernen\",\n label: \"Position\",\n placeholder: \"Wähle eine aus\",\n leftTop: \"Links oben\",\n leftCenter: \"Links zentriert\",\n leftBottom: \"Links unten\",\n rightTop: \"Rechts oben\",\n rightCenter: \"Rechts zentriert\",\n rightBottom: \"Rechts unten\",\n centerTop: \"Zentriert oben\",\n centerCenter: \"Zentriert zentriert\",\n centerBottom: \"Zentriert unten\",\n label2: \"Wiederholen\",\n placeholder2: \"Wähle eine aus\",\n noRepeat: \"Keine Wiederholung\",\n repeat: \"Wiederholen\",\n \"repeat-x\": \"Wiederholen Sie X\",\n \"repeat-y\": \"Wiederholen Sie Y\",\n space: \"Raum\",\n round: \"Runden\",\n },\n blockId: {\n placeholder: \"Block-ID\",\n label: \"Block-ID\",\n description:\n \"Empfohlene IDs für AI briefDescription, aboutWorkshop, whatYouWillLearn1, whatYouWillLearn2, whatYouWillLearn3, whoThisIsFor, aboutUs, quote\",\n },\n buttonAction: {\n label: \"Aktion nach Abschluss\",\n description:\n \"Gib an, was nach dem Absenden der Informationen über das ausgewählte Formular geschehen soll.\",\n placeholder: \"Wähle eine aus\",\n label2: \"Verknüpfung zu\",\n placeholder2: \"Wähle eine aus\",\n label3: \"Link-Aktion\",\n description3:\n \"Gib an, ob der Link im aktuellen Browser-Tab oder in einem neuen Tab geöffnet wird.\",\n placeholder3: \"Wähle eine aus\",\n callBackComplete: \"Text nach Abschluss\",\n callBacklinkTo: \"Verknüpfung zu\",\n completeDescription:\n \"Füge eine kurze Bestätigungsnachricht hinzu, die Personen nach dem Absenden ihrer Informationen sehen werden.\",\n linkDescription:\n \"Die Person wird nach dem Klicken des Buttons zu diesem Link weitergeleitet.\",\n label4: \"Link zum Bereich Weltraum\",\n description4: \"Geben Sie an, ob der Link im aktuellen oder einem anderen Browser-Tab geöffnet wird oder ob der Link zu einem Abschnitt auf dieser Seite springt.\",\n selectSection: \"Abschnitt auswählen\",\n description5: \"Mit dieser Option können Sie beim Klicken auf den Link zu einem bestimmten Abschnitt auf dieser Seite springen.\",\n description6: \"Um den Abschnitt auszuwählen, klicken Sie auf die Schaltfläche unten und dann auf den Abschnitt, zu dem Sie eine Verknüpfung herstellen möchten.\",\n label5: \"Abschnitt ist verlinkt!\",\n label6: \"URL verknüpfen\",\n description7: \"Geben Sie den URL-Link an, zu dem der Benutzer weitergeleitet wird\",\n label7: \"Wird im aktuellen Tab geöffnet\",\n label8: \"Öffnet andere Registerkarte\",\n label9: \"Nichts tun\",\n label10: \"Leiten Sie den Benutzer weiter zu\",\n label11: \"Wähle eine Option\",\n label12: \"Ein anderer Raum\",\n label13: \"Benutzerdefinierten Link\",\n label14: \"Klicken Sie auf einen Abschnitt auf der Seite\",\n },\n buttonBackgroundColor: {\n button: \"Farbe entfernen\",\n },\n buttonText: {\n placeholder: \"Schaltflächentext\",\n label: \"Schaltflächentext\",\n },\n fileName: {\n placeholder: \"Dateiname\",\n label: \"Dateiname\",\n },\n interactiveWaitTime: {\n label1: \"Wähle eine Option\",\n label2: \"Warten bis zu einem Datum\",\n label3: \"Warten für eine Anzahl von Tagen\",\n label4: \"Datum, um den Inhalt anzuzeigen\",\n placeholder: \"Datum, um den Inhalt anzuzeigen\",\n label5: \"1 Tag\",\n label6: \"2 Tage\",\n label7: \"3 Tage\",\n label8: \"4 Tage\",\n label9: \"5 Tage\",\n label10: \"6 Tage\",\n label11: \"1 Woche\",\n label12: \"2 Wochen\",\n label13: \"1 Monat\",\n },\n linkAction: {\n label: \"Link-Aktion\",\n description:\n \"Gib an, ob der Link im aktuellen Tab oder in einem neuen Tab geöffnet wird.\",\n placeholder: \"Wähle eine aus\",\n label2: \"Im aktuellen Tab öffnen\",\n label3: \"Im neuen Tab öffnen\",\n },\n margin: {\n topMargin: \"Oberer Rand -\",\n text: \"Unterer Rand - \",\n bottom: \"Unten\",\n left: \"Links\",\n leftMargin: \"Linker Rand -\",\n right: \"Rechts\",\n rightMargin: \"Rechter Rand\",\n },\n padding: {\n top: \"Oben\",\n topPadding: \"Obere Polsterung -\",\n bottom: \"Unten\",\n bottomPadding: \"Untere Polsterung -\",\n left: \"Links\",\n leftPadding: \"Linke Polsterung\",\n right: \"Rechts\",\n rightPadding: \"Rechte Polsterung\",\n },\n radius: {\n square: \"Quadrat\",\n round: \"Rund\",\n circle: \"Kreis\",\n },\n spaceAttrs: {\n addCover: \"Cover hinzufügen\",\n text: \"Die empfohlene Abmessung für das Titelbild beträgt 1200 x 300 Pixel\",\n addCover2: \"Cover hinzufügen\",\n text2:\n \"Die empfohlene Abmessung für das Titelbild beträgt 1200 x 300 Pixel\",\n removeCover: \"Cover entfernen\",\n },\n verticalAllignment: {\n top: \"Oben\",\n center: \"Zentriert\",\n bottom: \"Unterseite\",\n },\n width: {\n full: \"Voll\",\n size: \"3/4\",\n size2: \"1/2\",\n actual: \"Tatsächlich\",\n },\n },\n blockMenuActions: {\n label1: \"Block hinzufügen\",\n label2: \"Emoji hinzufügen\",\n label3: \"Einstellungen\",\n label4: \"Löschen\",\n label5: \"Verschieben\",\n label6: \"Zum Space gehen oder Doppelklick auf den Block\",\n label7: \"Ersetzen\",\n label8: \"Ausrichtung\",\n left: \"Links\",\n center: \"Zentriert\",\n right: \"Rechts\",\n write: \"Etwas schreiben...\",\n label9: \"Block hinzufügen\",\n label10: \"Überschrift 1\",\n h1: \"H1\",\n label11: \"Überschrift 2\",\n h2: \"H2\",\n label12: \"Space hinzufügen\",\n label13: \"Bild hinzufügen\",\n label14: \"Video hinzufügen\",\n label15: \"Raster hinzufügen\",\n label16: \"Vorlage hinzufügen\",\n label17: \"Layout hinzufügen\",\n label18: \"Duplikat\",\n },\n blocksMenu: {\n basicBlock: \"Grundlegende Blöcke\",\n mediaBlock: \"Medienblöcke\",\n contentBlock: \"Inhaltsblöcke\",\n },\n blocksMenuInline: {\n file: \"Datei\",\n image: \"Bild\",\n video: \"Video\",\n label1: \"Emoji hinzufügen\",\n label2: \"Bild hinzufügen\",\n label3: \"Formatleiste umschalten\",\n },\n blocksMenuSimple: {\n label1: \"Hinzufügen\",\n file: \"Datei\",\n image: \"Bild\",\n video: \"Video\",\n audio: \"Audio\",\n label2: \"Emoji hinzufügen\",\n label3: \"Bild hinzufügen\",\n label4: \"Formatierung anzeigen\",\n cancelButton: \"Abbrechen\",\n },\n emptyMessage: {\n text: \"Dies ist ein leerer Inhaltsraum. Du kannst\",\n button1: \"diese Seite bearbeiten\",\n text2: \"oder\",\n button2: \"eine Vorlage verwenden\",\n text3: \"um loszulegen\",\n text4: \"Ein leerer Raum voller Möglichkeiten...\",\n },\n fixedBottomMenu: {\n label1:\n \"Elemente wie Überschriften, Bilder und Videos hinzufügen\",\n addBlock: \"Block hinzufügen\",\n label2:\n \"Einen Inhalts-, Diskussions- oder Event-Raum hinzufügen\",\n space: \"Space\",\n label3:\n \"Ein Raster hinzufügen, um mehrere Spalten für Inhalte zu nutzen\",\n grid: \"Raster\",\n label4: \"Eine vordefinierte Designoption hinzufügen\",\n layouts: \"Layouts\",\n label5:\n \"Eine Vorlage hinzufügen, um deinen Raum automatisch einzurichten\",\n template: \"Vorlagen\",\n },\n formatMenu: {\n text: \"Text\",\n smallText: \"Kleiner Text\",\n largeText: \"Großer Text\",\n heading1: \"Überschrift 1\",\n heading2: \"Überschrift 2\",\n heading3: \"Überschrift 3\",\n bulletedList: \"Aufzählungsliste\",\n orderedList: \"Nummerierte Liste\",\n text2: \"Text\",\n label1: \"Formatierung\",\n text3: \"Text\",\n numberedList: \"Nummerierte Liste\",\n label2: \"Ausrichtung\",\n left: \"Links\",\n center: \"Zentriert\",\n right: \"Rechts\",\n label3: \"Link-Aktion\",\n description:\n \"Legen Sie fest, ob der Link im aktuellen Browser-Tab oder in einem neuen Tab geöffnet wird.\",\n placeholder: \"Wählen Sie eine\",\n label4: \"Im aktuellen Tab öffnen\",\n label5: \"In anderem Tab öffnen\",\n label6: \"Link-Format\",\n description2:\n \"Legen Sie fest, ob der Link als Text oder als auffälliger Link angezeigt wird.\",\n placeholder2: \"Wählen Sie eine\",\n label7: \"Als Text anzeigen\",\n label8: \"Als auffälligen Link anzeigen\",\n save: \"Speichern\",\n delete: \"Löschen\",\n label9: \"Durchgestrichen\",\n label10: \"Unterstrichen\",\n label11: \"Code-Block\",\n label12: \"Textfarbe\",\n placeholder3: \"HEX-Wert\",\n unsetColor: \"Farbe aufheben\",\n label13: \"Hervorhebungsfarbe\",\n label14: \"Link zum Space-Bereich\",\n description3: \"Geben Sie an, ob der Link im aktuellen Browser-Tab oder einem anderen Tab geöffnet wird oder ob der Link zu einem Abschnitt auf dieser Seite springt.\",\n selectSection: \"Abschnitt auswählen\",\n description4: \"Mit dieser Option können Sie zu einem bestimmten Abschnitt auf dieser Seite springen, wenn Sie auf den Link klicken.\",\n description5: \"Um den Abschnitt auszuwählen, klicken Sie auf die Schaltfläche unten und dann auf den Abschnitt, zu dem Sie einen Link erstellen möchten.\",\n label15: \"Abschnitt ist verlinkt!\",\n label16: \"URL verknüpfen\",\n description6: \"Geben Sie den URL-Link an, zu dem der Benutzer weitergeleitet wird\",\n },\n formatMenuSimple: {\n t: \"T\",\n h1: \"H1\",\n h2: \"H2\",\n h3: \"H3\",\n label1: \"Link-Aktion\",\n description1:\n \"Legen Sie fest, ob der Link im aktuellen Browser-Tab oder in einem neuen Tab geöffnet wird.\",\n placeholder1: \"Wählen Sie eine\",\n label2: \"Im aktuellen Tab öffnen\",\n label3: \"In anderem Tab öffnen\",\n label4: \"Link-Format\",\n description2:\n \"Legen Sie fest, ob der Link als Text oder als auffälliger Link angezeigt wird.\",\n placeholder2: \"Wählen Sie eine\",\n label5: \"Als Text anzeigen\",\n label6: \"Als auffälligen Link anzeigen\",\n save: \"Speichern\",\n delete: \"Löschen\",\n label7: \"Formatierung\",\n left: \"Links\",\n center: \"Zentriert\",\n right: \"Rechts\",\n placeholder3: \"HEX-Wert\",\n placeholder4: \"Farb-Hex\",\n unsetColor: \"Farbe aufheben\",\n },\n inlineMenu: {\n h1: \"H1\",\n h2: \"H2\",\n bulletList: \"Aufzählungsliste\",\n checkList: \"Checkliste\",\n circle: \"Kreis\",\n moreOption: \"Weitere Optionen\",\n },\n interactiveInput: {\n hideResponses: \"Andere Antworten ausblenden\",\n showResponses: \"Andere Antworten anzeigen\",\n hideResponses2: \"Antworten ausblenden\",\n hidePrivateMessages: \"Private Nachrichten ausblenden\",\n showPrivateMessages: \"Private Nachrichten anzeigen\",\n showResponses2: \"Antworten anzeigen\",\n loadMoreResponse: \"Mehr Antworten laden\",\n placeholder: \"Schreibe etwas...\",\n text: \"Soll diese Antwort für andere Teilnehmer sichtbar sein?\",\n },\n newMedia: {\n add: \"Hinzufügen\",\n },\n regPageColor: {\n clearColor: \"Farbe aufheben\",\n },\n regPageColors: {\n text: \"Erscheinungsbild der Registrierungsseite\",\n applyAppearance: \"Erscheinungsbild anwenden\",\n title1: \"Hintergrundfarbe auswählen\",\n title2: \"Textfarbe auswählen\",\n label1: \"Hintergrundfarbe\",\n label2: \"Standardtextfarbe\",\n label3: \"Breite der Seite\",\n },\n resource: {\n areYouSure: \"Sind Sie sicher?\",\n label1: \"Wird am angegebenen Datum veröffentlicht\",\n edit: \"Bearbeiten\",\n addPage: \"Seite hinzufügen\",\n },\n sideBlocksMenuBak: {\n addBlock: \"Block hinzufügen\",\n back: \"Zurück\",\n },\n sideBlocksMenu: {\n text: \"Layouts sind vordefinierte Designoptionen, die Sie Ihrem Space hinzufügen können.\",\n text2:\n \"Starten Sie mit einer Auswahl an anpassbaren Vollseiten-Vorlagen\",\n layout: \"Layouts\",\n template: \"Vorlagen\",\n addBlock: \"BLOCK HINZUFÜGEN\",\n block: \"Blöcke\",\n },\n sideConfigurationsMenu: {\n title: \"BLOCKEINSTELLUNGEN\",\n label1: \"Space-Name und Cover\",\n label2: \"Dateiattribute\",\n label3: \"Interaktive Eingabeoptionen\",\n attrPlaceholder1: \"Etwas schreiben...\",\n attrLabel: \"Platzhalter\",\n attrLabel2: \"Teilnehmer dürfen alle Antworten sehen\",\n attrLabel3: \"Antworten vor Teilnehmerreaktion anzeigen\",\n attrLabel4:\n \"Teilnehmer können wählen, ob ihre Antwort für andere sichtbar ist\",\n attrLabel5: \"Mehrere Antworten pro Person zulassen\",\n attrLabel6: \"Teilnehmer dürfen diese Aufforderung überspringen\",\n attrLabel7: \"Manager bei jedem neuen Beitrag benachrichtigen\",\n label4: \"Interaktive Eingabeoptionen\",\n label5: \"Padding\",\n label6: \"BLOCK\",\n label7: \"SPALTE\",\n label8: \"Rand\",\n label9: \"GRID\",\n label10: \"Vertikale Ausrichtung\",\n label11: \"Button-Optionen\",\n label12: \"Button-Hintergrundfarbe\",\n label13: \"Button-Textfarbe\",\n text: \"Button-Ecken\",\n label14: \"Hintergrund\",\n label15: \"Farbe\",\n label16: \"Bild\",\n label17: \"Zurücksetzen\",\n resetBlock: \"Block zurücksetzen\",\n label18: \"Ausrichtung\",\n label19: \"Eckenradius\",\n label20: \"Ecken\",\n label21: \"Blockname\",\n label22: \"E-Mail-Benachrichtigungsoptionen\",\n label23: \"Benachrichtigungs-E-Mail senden\",\n attrLabel8: \"Benutzerdefinierte Nachricht einschließen\",\n attrLabel9: \"Inhalt des nächsten Abschnitts einschließen\",\n attrLabel10: \"Gesamten Inhalt einschließen\",\n attrLabel11: \"Kurze Vorschau\",\n attrLabel12: \"Betreff\",\n attrLabel13: \"Nachricht\",\n defaultWaitLabel: \"Der nächste Abschnitt wurde in {{space_name}} veröffentlicht\",\n defaultWaitMessage: \"Hallo {{first_name}} – ich wollte Sie nur wissen lassen, dass der nächste Abschnitt in {{space_name}} veröffentlicht wurde. {{space_link_button}}\"\n },\n takeSurvey: {\n text: \"Diese Umfrage ist leer\",\n },\n tiptapAi: {\n placeholder: \"Geben Sie eine kurze Beschreibung ein\",\n label:\n \"Bitte schreiben Sie 2 oder 3 Sätze, die Ihr Angebot beschreiben.\",\n placeholder2: \"z. B. Coaches, Berater und Heiler\",\n label2: \"Für wen ist dieses Angebot?\",\n text: \"Hallo, wir experimentieren mit einer neuen KI-Funktion. Möchten Sie, dass Sutra automatisch Sprache für Ihre Vorlage generiert?\",\n },\n uploader: {\n label1: \"Link\",\n label2: \"Code\",\n placeholder: \"Fügen Sie den Bild- oder Dateilink ein\",\n label3: \"Einbettungslink\",\n placeholder2:\n \"Fügen Sie den Einbettungscode ein -> \",\n label4: \"Einbettungscode\",\n saveEmbed: \"Einbettung speichern\",\n placeholder3: \"Bilder durchsuchen\",\n saveImage: \"Bild speichern\",\n },\n viewPage: {\n text: \"Diese Seite ist leer\",\n },\n },\n },\n users: {\n payment: {\n completePayment: \"Zahlung abschließen\",\n join: \"Space beitreten\",\n pay: \"Bezahlen\",\n },\n stepper: {\n step1: \"Schritt 1\",\n step1Description: \"Anmelden\",\n step2: \"Schritt 2\",\n step2Description: \"Zahlung abschließen\",\n step3: \"Schritt 3\",\n step3Description: \"Zugriff erhalten\",\n },\n start: {\n title: \"Willkommen\",\n subtitle: \"Bitte geben Sie unten Ihre E-Mail-Adresse ein\",\n email: \"E-Mail\",\n submit: \"Weitermachen\",\n invalidEmailErrorMsg: \"Ungültige E-Mail\",\n },\n signIn: {\n title: \"Melden Sie sich in Ihrem Konto an\",\n subtitle: \"Sie haben noch kein Konto?\",\n subtitleLink: \"Registrieren\",\n email: \"E-Mail\",\n password: \"Passwort\",\n submit: \"Anmelden\",\n magicLink: \"Magischen Link erhalte\",\n forgotPassword: \"Passwort vergessen?\",\n invalidEmailErrorMsg: \"Ungültige E-Mail\",\n },\n signUp: {\n invalidEmailErrorMsg: \"Ungültige E-Mail\",\n invalidPasswordErrorMsg:\n \"Passwort muss mindestens 8 Zeichen lang sein\",\n invalidFirstNameErrorMsg:\n \"Der Vorname muss mindestens 3 Zeichen lang sein\",\n title: \"Neues Konto erstellen\",\n subtitle: \"Haben Sie bereits ein Konto?\",\n subtitleLink: \"Einloggen\",\n firstName: \"Vorname\",\n lastName: \"Nachname\",\n username: \"Benutzername\",\n email: \"E-Mail\",\n password: \"Passwort\",\n emailNewsletterConfirmation:\n \"Melden Sie sich für den Sutra-Newsletter an, um Informationen über kostenlose Webinare zu Gruppenprozessen, transformierendem Unterricht und relationalen Geschäftspraktiken zu erhalten.\",\n submit: \"Registrieren\",\n legalPrefix: \"Durch die Anmeldung bei Sutra stimmen Sie unseren\",\n terms: \"Nutzungsbedingungen\",\n privacy: \"Datenschutzbestimmungen\",\n },\n spaceReference: {\n total: \"Gesamt heute\",\n },\n planReference: {\n total: \"Gesamt\",\n total_today: \"Gesamt heute\",\n due_in: \"Fällig in 14 Tagen\",\n paymentDetails: {\n annual: \"Jährliches Abonnement von\",\n month: \"Monatliches Abonnement von\",\n },\n },\n resetPassword: {\n title: \"Passwort zurücksetzen\",\n subtitle:\n \"Geben Sie unten ein neues Passwort für Ihr Sutra-Konto ein.\",\n password: \"Passwort\",\n passwordConfirmation: \"Passwort bestätigen\",\n submit: \"Passwort zurücksetzen\",\n },\n recover: {\n title: \"Passwort vergessen?\",\n subtitle:\n \"Geben Sie unten Ihre E-Mail-Adresse ein, und wir senden Ihnen Anweisungen zum Zurücksetzen Ihres Passworts.\",\n email: \"E-Mail\",\n submit: \"Anweisungen senden\",\n footer: \"Haben Sie bereits ein Konto?\",\n footerLink: \"Anmelden\",\n },\n magicLink: {\n invalidEmailErrorMsg: \"Ungültige E-Mail\",\n title: \"Magischen Link anfordern\",\n subtitle:\n \"Bitte geben Sie Ihre E-Mail-Adresse ein, und wir senden Ihnen einen Link, mit dem Sie automatisch angemeldet werden.\",\n email: \"E-Mail\",\n submit: \"Weiter\",\n footer: \"Mit E-Mail anmelden\",\n alertTitle: \"Fast geschafft...\",\n alertMessage:\n \"Wir haben den magischen Link an Ihre E-Mail gesendet. DAS IST EIN TEST, ES WIRD KEINE TATSÄCHLICHE E-MAIL GESSENDET.\",\n },\n edit: {\n title: \"Bitte vervollständigen Sie Ihr Profil\",\n addProfileImage: \"Profilbild hinzufügen\",\n removeProfileImage: \"Profilbild entfernen\",\n bioPlaceholder: \"Erzählen Sie etwas über sich...\",\n bio: \"Biografie\",\n submit: \"Speichern\",\n skip: \"Überspringen und später erledigen\",\n },\n magicSignin: {\n text: \"Anmelden...\",\n },\n profile: {\n button: \"Nachricht\",\n button2: \"Profil bearbeiten\",\n title: \"Räume\",\n },\n profileModal: {\n profile: \"Profil\",\n message: \"Nachricht\",\n editProfile: \"Profil bearbeiten\",\n openProfile: \"Profil öffnen\",\n spaces: \"Räume\",\n selectImage: \"Bild auswählen\",\n },\n signOut: {\n loggedOUt: \"Abgemeldet\",\n title: \"Sie sind abgemeldet\",\n message: \"Auf Wiedersehen!\",\n },\n },\n errors: {\n basic: \"Upps, da ist etwas schiefgelaufen!\",\n },\n },\n },\n it: {\n translation: {\n premiumFeatures: {\n personal: {\n description1:\n \"Spazi e membri illimitati per organizzare il contenuto e le conversazioni di tutte le tue offerte\",\n description2:\n \"Pagine di registrazione e landings bellissime per tutti i tuoi programmi ed eventi su un’unica piattaforma\",\n description3:\n \"Invia newsletters via email a tutti i membri con la nostra potente funzione di invio massivo\",\n },\n professional: {\n description:\n \"Senza commissioni per i pagamenti ricevuti\",\n description2:\n \"Opzioni di personalizzazione di branding, layout e URL dei sottodomini\",\n description3:\n \"Automazioni illimitate ed esperienze di apprendimento interattive e conversazionali\",\n description4: \"Fino a 2 amministratori per tutti i tuoi spazi\",\n },\n organization: {\n description:\n \"Senza commissioni per i pagamenti ricevuti\",\n description2: \"Supporto avanzato ai clienti\",\n description3: \"Amministratori illimitati\",\n description4: \"Opzione di integrazione dell’accesso Single Sign-On (SSO)\",\n },\n },\n premiumMessages: {\n can_auto_tag: {\n title: \"Upgrade to use this feature\",\n message: \"Auto tagging with AI is a premium feature available on the Professional plan.\"\n },\n can_use_zoom_recordings: {\n title: \"Upgrade to use this feature\",\n message: \"Zoom recordings is a premium feature available on the Organization plan.\"\n },\n can_create_quizzes: {\n title: \"Upgrade to use this feature\",\n message: \"Quizzes are a premium feature available on the Organization plan.\"\n },\n can_duplicate_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Duplicating a space is a premium feature available on the Professional plan.\",\n },\n can_save_templates: {\n title: \"Upgrade to use this feature\",\n message:\n \"Saving as space as a reusable template is a premium feature available on the Professional plan.\",\n },\n can_edit_shareable_link: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Personalizzare i link condivisibili è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_upload_cover: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Caricare un'immagine di copertina personalizzata è una funzione premium disponibile con il piano Personal.\",\n },\n\n can_upload_logo: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Impostare un logo personalizzato è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_set_layout: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Personalizzare il layout del tuo spazio è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_set_theme: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Personalizzare il tema di colore del tuo spazio è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_set_format: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Cambiare il formato del tuo spazio è una funzione premium disponibile nel piano Professional.\",\n },\n\n can_add_step_send_to_pending: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Assegnare lo stato di attesa ai nuovi membri è una funzione premium disponibile con il piano Personal.\",\n },\n\n can_add_step_send_email: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"L'invio di email automatiche è una funzione premium disponibile con il piano Personal.\",\n },\n\n can_add_add_to_existing_space: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Aggiungere automaticamente i membri agli spazi selezionati è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_add_step_wait: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Aggiungere una condizione di attesa per passaggi aggiuntivi è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_add_step_webhook: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Aggiungere webhooks è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_add_step_survey_person: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Fare un sondaggio tra i nuovi membri è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_schedule_states: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Le opzioni di pianificazione automatica del tuo spazio sono una funzione premium disponibile con il piano Professionale.\",\n },\n\n can_broadcast: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"L'invio massivo di email è una funzione premium disponibile con il piano Personal.\",\n },\n\n can_survey: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Creare sondaggi è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_use_interest_form_block: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Aggiungere moduli di interesse è una funzione premium disponibile con il piano Professional.\",\n },\n can_use_interactive_block: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Aggiungere blocchi interattivi è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_set_flexible_payments: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Impostare opzioni di pagamento flessibile è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_activate_completions: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Segnare gli spazi come completati è una funzione premium disponibile con il piano Professional.\",\n },\n\n max_allowed_spaces: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Ehi, sembra che tu abbia esaurito tutti i tuoi spazi gratuiti! Effettuando l’upgrade al piano Personal avrai spazi e membri illimitati. In questo modo potrai creare praticamente tutto quello che vuoi.\",\n },\n max_allowed_ij: {\n title: \"Upgrade to use this feature\",\n message:\n \"You can only add up to 2 discussion prompts per space on the free plan. Please upgrade to the Professional plan to add unlimited discussion prompts to any space.\",\n },\n\n max_allowed_managers_pro: {\n title: \"Effettua l’upgrade per aggiungere più amministratori\",\n message:\n \"Effettua l’upgrade al piano Professional per aggiungere fino a 2 amministratori al tuo spazio o passa al piano Organization per avere accesso ad amministratori illimitati.\",\n },\n\n max_allowed_managers_org: {\n title: \"Effettua l’upgrade per aggiungere più amministratori\",\n message:\n \"Effettua l’upgrade al piano Organization per aggiungere amministratori illimitati al tuo spazio.\",\n },\n\n can_see_participation_tab: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Le metriche di partecipazione sono una funzione premium disponibile con il piano Professional.\",\n },\n\n can_send_selective_broadcast: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"L’invio massivo selettivo è una funzione premium disponibile con il piano Organization.\",\n },\n\n can_send_message_broadcast: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"L’invio massivo dei messaggi è una funzione premium disponibile con il piano Organization.\",\n },\n\n can_schedule_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Scheduling broadcasts is a premium feature available on the Silver plan.\",\n },\n\n can_add_from_children: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Aggiungere i membri dai sottospazi è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_add_to_direct_open_children: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Aggiungere i nuovi membri a tutti i sottospazi aperti e diretti è una funzione premium disponibile con il piano Professional.\",\n },\n\n can_send_message: {\n title: \"Effettua l’upgrade per utilizzare questa funzione\",\n message:\n \"Inviare messaggi diretti automatici ai nuovi membri è una funzione premium disponibile con il piano Professional.\",\n },\n can_create_registration_page: {\n title: \"Upgrade to use this feature\",\n message: \"Creating custom registration and landing pages is a premium feature available on the Bronze plan.\"\n },\n can_create_coupon: {\n title: \"Upgrade to use this feature\",\n message: \"Creating coupon codes is a premium feature available on the Silver plan.\"\n },\n\n can_create_bundles: {\n title: \"Upgrade to use this feature\",\n message: \"Creating bundles is a premium feature available on the Silver plan.\"\n },\n },\n home: {\n sidebar: {\n createButton: \"Nuovo spazio\",\n spaces: \"I tuoi spazi\",\n invitations: \"Inviti\",\n directMessages: \"Messaggi diretti\",\n gettingStarted: \"Primi passi\",\n scheduleDemo: \"Prenotare una dimostrazione\",\n upgrade: \"Effettua l’upgrade\",\n promoBoxTitle:\n \"Unisciti a centinaia di creators che sfruttano le funzionalità avanzate di Sutra per dare vita a coinvolgenti esperienze di gruppo online.\",\n promoBoxItem1: \"Spazi illimitati\",\n promoBoxItem2: \"Opzioni di branding completo\",\n promoBoxItem3: \"Amministratori addizionali\",\n promoBoxButton: \"Effettua l’upgrade ora\",\n },\n spacesList: {\n yourSpaces: \"I tuoi spazi\",\n directMessagesTitle: \"Messaggi diretti\",\n invitationsTitle: \"Inviti\",\n topTitle: \"Spazi superiori\",\n managedTitle: \"Spazi gestiti\",\n allTitle: \"Tutti gli spazi\",\n archivedTitle: \"Spazi archiviati\",\n deletedTitle: \"Spazi eliminati\",\n pendingTitle: \"Spazi programmati\",\n directMessages: \"Diretti\",\n top: \"Superiori\",\n managed: \"Gestiti\",\n all: \"Tutti\",\n archived: \"Archiviati\",\n invitations: \"Inviti\",\n deleted: \"Eliminati\",\n pending: \"Programmati\",\n empty: \"Non ce ne sono\",\n tabTitle: \"Sutra - Pannello di controllo\",\n learn: \"Scopri le basi\",\n createFirst: \"Crea il tuo primo spazio\",\n },\n },\n app: {\n payment: {\n payment: {\n tabTitle: \"Sutra - Modulo di pagamento\",\n title: \"Completa il pagamento\",\n },\n planOption: {\n frequencyDescription1: \"al mese\",\n frequencyDescription2: \"al mese con pagamento annuale\",\n currentPlan: \"Piano attuale\",\n billedMonthly: \"Pagamento mensile\",\n billedAnnually: \"Pagamento annuale\",\n },\n stripeForm: {\n due_in_trial: \"Scade tra 14 giorni\",\n pay: \"Paga\",\n },\n },\n gettingStarted: {\n items: {\n setup: \"Configurazione del tuo spazio di programma\",\n privacy: \"Impostazioni della privacy e di pagamento\",\n registration: \"Creare una pagina di registrazione\",\n invitations: \"Invitare membri\",\n settings: \"Come funzionano le configurazioni dello spazio\",\n interactive: \"Percorsi interattivi\",\n interest: \"Moduli di interesse\",\n appearance: \"Layout e temi di colore\",\n grids: \"Impostazioni della griglia e dei blocchi\",\n broadcasts: \"Invio massivo di email\",\n tagging: \"Tags\",\n emojis: \"Emoji della barra laterale\",\n },\n templates: {\n groupprogram: {\n label: \"Programma di gruppo\",\n description:\n \"Uno spazio del programma dove puoi organizzare tutto quello di cui hai bisogno per un gruppo di persone che imparano insieme.\",\n },\n zoomworkshop: {\n label: \"Workshop su Zoom\",\n description:\n \"Organizza tutto quello di cui hai bisogno per un semplice workshop su Zoom.\",\n },\n mastermind: {\n label: \"Mastermind\",\n description:\n \"Invita un gruppo di persone ad entrare insieme in un processo di mastermind.\",\n },\n selfpacedcourse: {\n label: \"Corso al tuo ritmo\",\n description:\n \"Un modello flessibile per creare un corso al tuo ritmo.\",\n },\n communityspace: {\n label: \"Spazio della community\",\n description:\n \"Unisci le persone in un vibrante spazio online che cresce insieme alla tua community.\",\n },\n oneononecoaching: {\n label: \"Coaching individuale\",\n description:\n \"Crea uno spazio per ciascuno dei tuoi clienti di coaching.\",\n },\n },\n loading: {\n text: \"Il tuo template si sta caricando, per favore attendi...\",\n },\n tabTitle: \"Sutra - Primi passi\",\n mainTitle: \"Guida dei primi passi\",\n selectTemplate: \"Seleziona questo template\",\n advanceFeatures: \"Funzionalità avanzate\",\n welcome: \"Benvenuto/a\",\n description1:\n \"Sutra rende semplice l'organizzazione del contenuto e delle conversazioni dei tuoi corsi, community, coaching individuale e molto altro. Scopri le basi in questo video di cinque minuti.\",\n watchVideo: \"Guarda il video\",\n createFirstSpace: \"Crea il tuo primo spazio\",\n gettingStartedGuide: \"Guida dei primi passi\",\n description2:\n \"Scopri di più su come funziona Sutra e inizia con una checklist di lancio e una guida più dettagliata.\",\n checkOutTheGuide: \"Scopri la guida\",\n startWithATemplate: \"Iniziare con un template\",\n description3:\n \"Scopri di più su come funziona Sutra e inizia con una checklist di lancio e una guida più dettagliata.\",\n learnAbout: \"Scopri le funzionalità avanzate\",\n description4:\n \"Sutra è progettata per essere una piattaforma flessibile, potente e per adattarsi a qualsiasi caso d'uso. Puoi creare esperienze interattive uniche, catturare l'interesse per le tue offerte, inviare newsletter via email e raccogliere la conoscenza collettiva.\",\n learnmore: \"Scopri di più\",\n },\n premium: {\n try: \"Prova Sutra\",\n include: \"Funzionalità che includono\",\n upgrade: \"Effettua l’upgrade ora\",\n },\n pricing: {\n tabTitle: \"Sutra - Prezzi\",\n upgrade: \"Effettua l’upgrade\",\n text: \"Per qualsiasi cosa di cui hai bisogno per il tuo corso o la tua community, puoi contare sul nostro supporto. Contattaci per qualsiasi domanda all'indirizzo supporto@sutra.co.\",\n },\n scheduleDemo: {\n tabTitle: \"Sutra - Prenota una dimostrazione\",\n },\n welcome: {\n tabTitle: \"Sutra - Benvenuto/a\",\n title: \"Benvenuto/a su Sutra!\",\n description1:\n \"Siamo felici di averti qui. Dedica un momento per guardare il video qui sotto...\",\n description2:\n \"Ti piacerebbe provare gratuitamente uno dei nostri piani a pagamento?\",\n description3:\n \"Scegli uno dei piani che trovi qui sotto per iniziare una prova gratuita di 14 giorni. Al termine della prova, ti verrà automaticamente addebitato il costo del piano che hai selezionato.\",\n yes: \"Sì, mostrami le opzioni\",\n no: \"No, grazie\",\n },\n },\n layout: {\n userButton: {\n home: \"Home\",\n viewProfile: \"Visualizza profilo\",\n settings: \"Impostazioni\",\n support: \"Supporto\",\n language: \"Lingua\",\n terms: \"Termini & Privacy\",\n logout: \"Esci\",\n copyright: \"Sutra Spaces, LLC © 2022\",\n },\n directMessages: {\n label: \"Messaggi diretti\",\n actionButton: \"Visualizza tutto\",\n empty: \"Non ci sono messaggi\",\n directMessage: \"Messaggi diretti\",\n },\n notifications: {\n label: \"Notifiche\",\n actionButton: \"Cancella tutto\",\n empty: \"Non ci sono notifiche\",\n notification: \"Notifiche\",\n },\n headerContent: {\n registrationPage: \"Pagina di registrazione\",\n nonManagersHidden:\n \"Intestazione nascosta a tutti tranne agli amministratori\",\n },\n search: {\n reflection: \"Riflessione\",\n comment: \"Commento\",\n allSpaces: \"Tutti gli spazi\",\n withinTop: \"All’interno dello spazio superiore\",\n withinSpace: \"All'interno di questo spazio\",\n everything: \"Tutto\",\n titlesOnly: \"Solo i titoli\",\n tagsOnly: \"Solo i tag\",\n content: \"Contenuto\",\n discussion: \"Discussione\",\n events: \"Eventi\",\n users: \"Utenti\",\n placeholder: \"Cerca qui...\",\n nothingFound: \"Nessun risultato trovato\",\n search: \"Cerca\",\n },\n uploader: {\n pending: \"In attesa\",\n used: \"Utilizzato\",\n uploading: \"Caricamento\",\n finishing: \"Completando\",\n processing: \"In elaborazione\",\n completed: \"Completato\",\n },\n },\n resources: {\n pages: {\n form: {\n label: \"Titolo\",\n placeholder: \"Qual è il tema della tua pagina?\",\n create: \"Crea pagina\",\n save: \"Salva pagina\",\n },\n },\n form: {\n title: {\n label: \"Titolo\",\n placeholder: \"Qual è il tuo tema?\",\n },\n publish: {\n label: \"Pubblica in data\",\n },\n date: {\n label: \"Scegli la data\",\n },\n update: \"Aggiorna la raccolta di pagine\",\n create: \"Crea una raccolta di pagine\",\n },\n },\n settings: {\n editProfile: {\n tabTitle: \"Sutra - Modifica Profilo\",\n editProfile: \"Modifica profilo\",\n firstName: \"Nome\",\n lastName: \"Cognome\",\n username: \"Nome utente\",\n email: \"Email\",\n removeProfileImage: \"Rimuovi la foto del profilo\",\n addProfileImage: \"Carica la foto del profilo\",\n about: \"Su di me\",\n location: \"Luogo\",\n bio: \"Presentazione\",\n bioPlaceholder: \"Racconta qualcosa su di te..\",\n updateProfile: \"Aggiorna profilo\",\n },\n accountSettings: {\n accountSettings: \"Impostazioni dell'account\",\n changePassword: \"Cambia password\",\n currentPassword: \"Password attuale\",\n newPassword: \"Nuova password\",\n newPasswordConfirmation: \"Conferma la nuova password\",\n updatePassword: \"Aggiorna password\",\n advanced: \"Avanzate\",\n deleteAccount: \"Elimina account\",\n warning: \"Avviso\",\n deleteAccountWarning:\n \"L'eliminazione del tuo account è un’azione irreversibile ed i dati del tuo account verranno rimossi definitivamente dal nostro sistema.\",\n closeYourAccount: \"Chiudi il tuo account\",\n invalidCurrentPasswordErrorMsg: \"Non può essere vuoto\",\n invalidPasswordErrorMsg:\n \"La password deve contenere almeno 8 caratteri\",\n invalidPasswordConfirmationErrorMsg:\n \"Le password non coincidono\",\n deleteAccountAlert: {\n title: \"Importante\",\n message:\n \"L'eliminazione del tuo account è un’azione irreversibile ed i dati del tuo account verranno rimossi definitivamente dal nostro sistema.\",\n input:\n \"Digita 'elimina il mio account' per confermare questa azione\",\n confirmButton: \"Elimina definitivamente\",\n cancelButton: \"Annulla\",\n },\n cancelSubscriptionAlert: {\n title: \"Importante\",\n message: \"Per favore, annulla prima il tuo abbonamento\",\n confirmButton: \"Vai alla fatturazione\",\n cancelButton: \"Farlo più tardi\",\n },\n stripeAccount: {\n title: \"Ripristina collegamento Stripe\",\n alertTitle: \"Sei sicuro/a?\",\n alertMessage:\n \"Se ripristini il collegamento con Stripe, le tue credenziali di Stripe verranno cancellate dal tuo account di Sutra e potrai collegare un nuovo account Stripe.\",\n buttonText: \"Ripristina collegamento\",\n confirmButton: \"Sì\",\n cancelButton: \"No\",\n confirmTitle: \"Sei sicuro/a?\",\n confirmMessage:\n \"Le tue credenziali di Stripe verranno rimosse dal tuo account di Sutra.\",\n },\n },\n emailPreferences: {\n tabTitle: \"Sutra - Preferenze Email\",\n emailPreferences: \"Preferenze email\",\n emailDigestPreferences: \"Preferenze di notifica via email\",\n emailDigestFrequency: \"Preferenze di frequenza di notifica via email\",\n emailDigestMessage:\n \"Per modificare le preferenze di notifica per spazio, consulta l'area delle impostazioni di iscrizione. Puoi annullare completamente l'iscrizione ad uno spazio lasciandolo o puoi silenziare uno spazio specifico nell'area delle impostazioni di iscrizione.\",\n receiveWeeklyDigest:\n \"Ricevi un riepilogo settimanale degli elementi e discussioni recentemente taggati.\",\n receiveAtMentions:\n \"Ricevi una notifica quando qualcuno ti @menziona\",\n receiveLikes: \"Receive a notification when someone hearts your post\",\n },\n subscriptions: {\n frequencyOptions: \"Opzioni di frequenza\",\n otherActions: \"Altre azioni\",\n subscriptions: \"Preferenze specifiche dello spazio\",\n searchBySpaceName: \"Cerca lo spazio per nome..\",\n search: \"Cerca\",\n clear: \"Azzerrare\",\n options: \"Opzioni\",\n otherActions: \"Altre azioni\",\n emptySubscriptions: \"Non ci sono iscrizioni\",\n leaveSpaceConfirmationTitle:\n \"Sei sicuro che vuoi abbandonare questo spazio?\",\n leaveSpaceConfirmationHtml:\n \"Non sarai più un membro di questo spazio e potresti non essere in grado di rientrare senza richiedere l’accesso all’amministratore.\",\n leaveSpaceButtonText: \"Sì, abbandonare\",\n leaveSpaceDenyButtonText: \"No\",\n leaveSpace: \"Abbandonare lo spazio\",\n unsubscribe: \"Annullare l’iscrizione\",\n unsubscribed: \"Iscrizione annullata\",\n },\n digestPreferences: {\n digestedLabel:\n \"Raggruppare tutti gli aggiornamenti in un unico riepilogo\",\n digestedDescription:\n \"I nuovi messaggi di tutti i tuoi spazi verranno raggruppati in un unico aggiornamento via email.\",\n undigestedDescription:\n \"Raggruppare tutti gli aggiornamenti per spazio\",\n },\n billing: {\n statuses: {\n pending: \"In attesa\",\n processing: \"In elaborazione\",\n paid: \"Pagato\",\n trial: \"Trial\",\n },\n paymentMethod: {\n currentPaymentMethod: \"Metodo di pagamento attuale\",\n noCurrentPaymentMethod: \"Nessun metodo di pagamento salvato\",\n addNewPaymentMethod: \"Aggiungi un nuovo metodo di pagamento\",\n },\n stripe: {\n updatePaymentMethod: \"Aggiorna il metodo di pagamento\",\n },\n tabTitle: \"Sutra - Fatturazione\",\n updatePaymentMethodMayus: \"AGGIORNA IL METODO DI PAGAMENTO\",\n payments: \"PAGAMENTI\",\n pdf: \"PDF\",\n noPayments: \"Non hai uno storico dei pagamenti\",\n billing: \"Fatturazione\",\n upgradePlan: \"Effettua l’upgrade\",\n changePlan: \"Cambia piano\",\n updatePaymentMethod: \"Aggiorna il metodo di pagamento\",\n cancelSubscription: \"Annulla abbonamento\",\n cancelConfirmationTitle:\n \"Sei sicuro che vuoi annullare l’abbonamento?\",\n cancelConfirmationHtml:\n \"Non avrai più accesso alle funzionalità premium del tuo piano attuale.\",\n cancelConfirmButtonText: \"Sì, annulla\",\n cancelDenyButtonText: \"No\",\n billingHistory: \"Storico fatturazione\",\n tableDate: \"Data\",\n tableAmount: \"Importo\",\n tableStatus: \"Stato\",\n tableInvoice: \"Fattura\",\n planPrefix: \"Il tuo abbonamento attuale è\",\n planSuffix: \"piano\",\n updatePayment: {\n success: {\n title: \"Azione andata a buon fine\",\n message: \"Il tuo metodo di pagamento è stato aggiornato\",\n },\n error: {\n title: \"Ops, qualcosa è andato storto!\",\n },\n },\n },\n frequencyOptions: {\n mute: \"Silenzia\",\n always: \"Ogni messaggio\",\n hour1: \"Ogni ora\",\n hour2: \"Ogni 2 ore\",\n hour4: \"Ogni 4 ore\",\n hour8: \"Ogni 8 ore\",\n hour24: \"Una volta al giorno\",\n hour168: \"Una volta alla settimana\",\n hour336: \"Ogni due settimane\",\n },\n affiliates: {\n history: {\n empty: \"Non c'è uno storico\",\n table: {\n referralName: \"Nome del referito\",\n startAt: \"Inizio\",\n endAt: \"Fine\",\n createdAt: \"Creato il\",\n percent: \"Percentuale\",\n total: \"Totale guadagnato\",\n status: \"Stato\",\n value: \"Valore\",\n revenue: \"Ricavo\",\n payAt: \"Pagato il\",\n status: \"Stato\",\n },\n statuses: {\n null: \"In attesa\",\n pending: \"In attesa\",\n processing: \"In elaborazione\",\n paid: \"Pagato\",\n },\n paymentsHistory: \"Storico dei guadagni\",\n },\n tabTitle: \"Sutra - Programma ambasciatori\",\n title: \"Programma ambasciatori\",\n affiliateLink: \"Questo è il tuo link di affiliazione\",\n copyMessage: \"Link copiato negli appunti\",\n stripeTitle: \"Stripe collegato a\",\n stripeConnected:\n \"Questo è l’identificativo del tuo account Stripe. Per trovare questo ID su Stripe, accedi a Stripe tramite il link e scorri fino in fondo alla pagina delle impostazioni del tuo account.\",\n stripeDisconnect: \"Scollegare\",\n description:\n \"Per elaborare i pagamenti del programma ambasciatori, collega il tuo account Stripe facendo clic sul pulsante qui sotto.\",\n description2:\n \"Quando condividi questo link con gli altri, riceverai automaticamente il 40% durante il primo anno di ricavi generati da chiunque faccia abbonamento a uno dei piani a pagamento di Sutra.\",\n connect: \"Collega Stripe\",\n historyLabel: \"Storico dei guadagni\",\n },\n },\n spaces: {\n settings: {\n layout: {\n navbarContent: {\n mainSettings: \"Configurazioni generali\",\n members: \"Membri\",\n broadcast: \"Invio massivo\",\n surveys: \"Sondaggi\",\n structures: \"Strutture\",\n sutraAdmin: \"Sutra Admin\",\n scheduled: \"Programmati\",\n archived: \"Archiviati\",\n participation: \"Partecipazione\",\n },\n headerActions: {\n shareableLink: \"LINK CONDIVISIBILE\",\n },\n },\n main: {\n title: \"Configurazioni generali\",\n main: {\n invite: \"Invita\",\n shareableLink: \"Link condivisibile\",\n cancelLink: \"Annulla\",\n saveLink: \"Salva\",\n editLinkButton: \"Modifica link\",\n subdomain: \"Il tuo sottodominio\",\n sutra_co: \".sutra.co\",\n label1: \"Link copiato negli appunti\",\n privacySetting: \"Seleziona la impostazione sulla privacy\",\n title1: \"Rendi questo spazio accessibile pubblicamente\",\n description1:\n \"Questo spazio si trova all'interno di uno spazio privato ed è visibile solo ai membri di questo spazio. Puoi renderlo accessibile al di fuori di questo spazio attivando questa impostazione.\",\n description2:\n \"Se questa opzione è attiva, chi non è membro di questo spazio vedrà una pagina di registrazione quando cercherà di accedervi.\",\n title3: \"Utilizza la pagina di registrazione della versione precedente\",\n description3:\n \"Se attivi questa impostazione, lo spazio utilizzerà la pagina di registrazione creata con il nostro editor precedente.\",\n onButton: \"ON\",\n offButton: \"OFF\",\n editButton: \"Modifica pagina\",\n previewButton: \"Anteprima della pagina\",\n label2: \"Impostazioni della privacy e di pagamento\",\n label3: \"Impostazioni della pagina di registrazione\",\n description4:\n \"Attiva - le persone vedranno una pagina di registrazione prima di poter accedere a questo spazio\",\n label4: \"Automazione\",\n description5:\n \"Programma l’invio delle email e aggiungi membri automaticamente agli spazi quando si registrano\",\n label5: \"Impostazioni di programmazione\",\n description6:\n \"Imposta la data dell’evento o le opzioni di programmazione della pubblicazione e archiviazione \",\n label6: \"Configurazioni aggiuntive\",\n description7:\n \"Autorizzazioni per la creazione di contenuti, visibilità dei membri, notifiche per gli amministratori e spazi genitore\",\n label7: \"Impostazioni SEO\",\n description8:\n \"Imposta il meta titolo, la meta descrizione e l'immagine per la condivisione sui social e l'ottimizzazione dei motori di ricerca.\",\n label8: \"Aperto\",\n description9: \"Chiunque può accedere a questo spazio\",\n label9: \"Privato\",\n description10:\n \"Questo spazio è privato e le persone devono essere invitate per accendervi\",\n label10: \"A pagamento\",\n description11:\n \"Questo spazio è privato e a pagamento. Le persone devono pagare per accedervi.\",\n description12:\n \"Le persone verranno indirizzate ad una pagina di registrazione prima di accedere a questo spazio aperto.\",\n description13:\n \"Le persone verranno indirizzate direttamente dentro a questo spazio quando accederanno a questo spazio aperto.\",\n description14:\n \"Le persone devono essere direttamente invitate per accedere a questo spazio privato. Se sono state invitate, vedranno una pagina di registrazione.\",\n description15:\n \"Le persone devono essere direttamente invitate per accedere a questo spazio privato. Se sono state invitate, vedranno una pagina di creazione dell’account e non vedranno una pagina di registrazione.\",\n description16:\n \"Le persone verranno indirizzate a una pagina di registrazione prima di poter accedere a questo spazio a pagamento.\",\n description17:\n \"Prima di poter accedere a questo spazio a pagamento le persone verranno indirizzate ad una pagina di creazione dell’account e alla pagina di pagamento. Non vedranno una pagina di registrazione.\",\n on: \"ON\",\n off: \"OFF\",\n label11: \"Membri\",\n label12: \"In attesa\",\n label13: \"Interessati\",\n label14: \"Invitati\",\n label15: \"Pagamenti\",\n label16: \"Marchio\",\n },\n additional: {\n allowMembersEdit:\n \"Permettere ai membri di modificare i contenuti su questa pagina\",\n membersWillAddContent:\n \"I membri potranno aggiungere e modificare i contenuti su questa pagina\",\n allowMembersCreatePosts:\n \"Permettere ai membri di creare nuovi post\",\n membersWillCreatePosts:\n \"I membri potranno creare nuovi post in questo spazio\",\n allowMembersCreateEvents:\n \"Permettere ai membri di creare nuovi eventi\",\n membersWillCreateEvents:\n \"I membri potranno creare nuovi eventi in questo spazio\",\n allowMembersCreateSubspaces:\n \"Permettere ai membri di creare nuovi sottospazi\",\n membersWillCreateSubspaces:\n \"I membri potranno creare sottospazi su questa pagina\",\n membersCanCreate: \"I membri possono creare\",\n circleCreation: {\n options: {\n discussion: \"Spazi di discussione\",\n content: \"Spazi di contenuto\",\n event: \"Spazi di evento\",\n },\n placeholder:\n \"Seleziona i tipi di spazi che i membri possono creare in questo spazio\",\n },\n allowMembersToCopy: {\n description1:\n \"Permettere ai membri di invitare persone da altri spazi.\",\n description2:\n \"I membri avranno l'opzione di aggiungere automaticamente membri da altri spazi\",\n },\n podType: {\n description1:\n \"Tutti i membri possono postare messaggi in questo spazio\",\n description2:\n \"Se questa opzione è disattivata, solo gli amministratori possono postare messaggi\",\n },\n allowReflections: {\n description1: \"Abilita riflessioni per questo spazio\",\n description2:\n \"Se questa opzione è disattivata, l'opzione di riflessione non sarà disponibile nei messaggi\",\n },\n showMembers: {\n description1: \"Mostrare membri\",\n description2:\n \"Mostrare l'elenco dei membri per questo spazio\",\n },\n hideMmemberEmails: {\n description1:\n \"Mostrare gli indirizzi email dei membri nell'elenco\",\n description2:\n \"Se questa opzione è disattivata, gli indirizzi email dei membri non verranno mostrati nell'elenco\",\n },\n newMemberNotifications: {\n description1:\n \"Notificare gli amministratori quando si uniscono nuovi membri\",\n description2:\n \"Inviare una notifica via mail per ogni nuovo membro\",\n },\n podSize: {\n description1:\n \"Limitare il numero di persone che possono unirsi a questo spazio\",\n description2:\n \"Specifica un numero massimo di persone che possono unirsi a questo spazio\",\n },\n podSizeValue: {\n description:\n \"Quante persone possono unirsi a questo spazio?\",\n },\n sidebarDefaultOpened: {\n description1:\n \"Spazio aperto di default nella barra laterale\",\n description2:\n \"Se questa opzione è attiva, questo spazio sarà aperto di default nella barra laterale\",\n },\n sidebarHideChildren: {\n description1: \"Nascondere sottospazi nella barra laterale\",\n description2:\n \"Se questa opzione è attiva, gli sottospazi creati in questo spazio non appariranno nella barra laterale\",\n },\n allowCompletions: {\n description1: \"Mostrare il pulsante “Segna come completato”\",\n description2:\n \"Se questa opzione è attiva, i membri vedranno il pulsante “Segna come completato” in questo spazio. Dopo aver cliccato su questo pulsante, l'icona nella barra laterale verrà sostituita da un segno di spunta.\",\n },\n redirectToSubspace: {\n description1: \"Reindirizzare sempre al sottospazio\",\n description2:\n \"Se questa opzione è attiva, i membri verranno indirizzati sempre al sottospazio selezionato quando accedono a questo spazio.\",\n },\n parentCircles: {\n description1: \"Spazi genitore\",\n placeholder:\n \"Cerca spazi da aggiungere come spazi genitore di questo spazio\",\n },\n },\n scheduling: {\n showStartDate: {\n description1: \"Mostra questo spazio come un evento\",\n description2:\n \"Questo spazio mostrerà la data dell'evento ovunque sia elencato\",\n },\n startDateTime: {\n title: \"Data e ora di inizio\",\n placeholder: \"Seleziona la data\",\n },\n endDateTime: {\n title: \"Data e ora di fine\",\n placeholder: \"Seleziona la data\",\n },\n showLaunchDate: {\n description1:\n \"Pubblica questo spazio in una data specifica\",\n description2:\n \"Questo spazio diventerà visibile e accessibile in data specificata\",\n },\n launchDateTime: {\n placeholder: \"Seleziona la data\",\n },\n showArchiveDate: {\n description1:\n \"Archivia questo spazio in una data specifica\",\n description2:\n \"Questo spazio non sarà più accessibile dalla data specificata in poi\",\n },\n archiveDate: {\n placeholder: \"Seleziona la data\",\n },\n showReadonlyDate: {\n description1:\n \"Rendi questo spazio di sola lettura in una data specifica\",\n description2:\n \"Nessun nuovo messaggio potrà essere postato dopo la data specificata\",\n },\n readonlyDate: {\n placeholder: \"Seleziona la data\",\n },\n },\n seo: {\n title: {\n title: \"Tag title\",\n description:\n \"Questo è il titolo che apparirà nei risultati dei motori di ricerca e nelle condivisioni sui social. La lunghezza ottimale è di 60 caratteri.\",\n },\n description: {\n title: \"Meta description\",\n description:\n \"Questa è la descrizione che apparirà nei risultati dei motori di ricerca e nelle condivisioni sui social. La lunghezza ottimale è di 150-350 caratteri.\",\n },\n image: {\n title: \"Meta immagine\",\n description:\n \"Questa è l'immagine che apparirà nelle condivisioni sui social. Le dimensioni consigliate sono 1200 pixel x 627 pixel (proporzioni 1.91/1).\",\n },\n },\n },\n members: {\n title: \"Membri\",\n members: {\n download: \"Scarica CSV\",\n invite: \"Invita\",\n member: \"Membri\",\n invited: \"Invitati\",\n interested: \"Interessati\",\n payment: \"Pagamenti\",\n },\n interested: {\n interested: {\n button: \"Cerca\",\n placeholder: \"Ricerca avanzata\",\n broadcast: \"Invio massivo\",\n noRecordFound: \"Nessun risultato trovato\",\n },\n table: {\n firstname: \"Nome\",\n email: \"Email\",\n date: \"Data\",\n },\n interestedrow: {\n removeFromList: \"Rimuovi dalla lista\",\n },\n },\n invited: {\n invited: {\n button: \"Cerca\",\n placeholder: \"Ricerca avanzata\",\n noRecordFound: \"Nessun risultato trovato\",\n },\n table: {\n email: \"Email\",\n invitationlink: \"Link di invito\",\n amount: \"Importo\",\n date: \"Data di invio\",\n },\n },\n invitedrow: {\n invitation: {\n resend: \"Rinvia invito\",\n cancel: \"Annulla invito\",\n },\n },\n inviteEmail: {\n invite: {\n placeholder:\n \"Scrivi l'indirizzo email o menziona le persone che desideri aggiungere a questo spazio. I valori possono essere separati da virgole, spazi o nuove righe.\",\n message: \"Aggiungi un messaggio di benvenuto opzionale\",\n checkboxLabel:\n \"Invia un’email per notificare le persone che sono state invitate\",\n alertMessage:\n \"Attualmente stai utilizzando un piano base e non puoi inviare inviti tramite Sutra. Quando fai clic su “Invia”, verrà generato un link di invito unico per ogni indirizzo email che aggiungi. Potrai inviare questo link via email a ciascuna persona personalmente.\",\n alertbutton: \"Effettua l’upgrade\",\n button: \"Invita persone\",\n },\n },\n inviteExisting: {\n invite: {\n copyMembers: \"Copia membri da un altro spazio\",\n copyMembersPlaceholder:\n \"Seleziona gli spazi da cui copiare i membri\",\n addActiveMembers:\n \"Aggiungi i membri attivi dagli spazi principali\",\n addActiveMembersPlaceholder:\n \"Seleziona i membri attivi da aggiungere a questo spazio\",\n addPendingMembers:\n \"Aggiungi i membri che sono in attesa dagli spazi genitore\",\n addPendingMembersPlaceholder:\n \"Seleziona i membri che sono in attesa per aggiungerli a questo spazio\",\n checkboxLabel:\n \"Invia un'email per notificare le persone che sono state invitate\",\n alert:\n \"Attualmente stai utilizzando un piano base e non puoi inviare inviti tramite Sutra. Quando fai clic su “Invia”, verrà generato un link di invito unico per ogni indirizzo email che aggiungi. Potrai inviare questo link via email a ciascuna persona personalmente.\",\n alertButton: \"Effettua l’upgrade\",\n button: \"Invita persone\",\n thisOption:\n \"Questa opzione non è abilitata per questo spazio\",\n },\n },\n inviteLink: {\n invite: {\n shareLinkText:\n \"Le persone possono registrarsi a questo spazio direttamente con il seguente link. Puoi condividere questo link ovunque desideri (via email, sui social network, ecc).\",\n youCannotShare:\n \"Non puoi condividere link ad uno spazio privato.\",\n },\n },\n invitePeople: {\n invite: {\n invitePeople: \"Invita persone\",\n },\n },\n membersActivity: {\n members: {\n placeholder: \"Cerca\",\n button: \"Cerca\",\n emailButton: \"Email\",\n messageButton: \"Messaggio\",\n noRecordFound: \"Nessun risultato trovato\",\n },\n memberTable: {\n noRecordFound: \"Nessun risultato trovato per\",\n lastSeen: \"Ultima visualizzazione\",\n lastPosted: \"Ultimo post\",\n date: \"Si è unito/a in data\",\n },\n },\n participationActivity: {\n participation: {\n searchPlaceholder: \"Cerca\",\n searchButton: \"Cerca\",\n pickDatePlaceholder: \"Seleziona intervallo di date\",\n emailButton: \"Email\",\n messageButton: \"Messaggio\",\n noRecordFound: \"Nessun risultato trovato\",\n },\n memberTable: {\n member: \"Membro\",\n participation: \"Partecipazione\",\n posts: \"Post\",\n words: \"Parole\",\n },\n },\n participationActivityRow: {\n posts: \"post\",\n },\n paymentRow: {\n payment: {\n refundPayment: \"Rimborsare il pagamento\",\n },\n },\n payments: {\n payment: {\n searchPlaceholder: \"Cerca\",\n searchButton: \"Cerca\",\n noRecordFound: \"Nessun risultato trovato\",\n },\n paymentTable: {\n member: \"Membro\",\n amount: \"Importo\",\n date: \"Data\",\n status: \"Stato\",\n },\n },\n progressActivity: {\n progress: {\n searchPlaceholder: \"Cerca\",\n searchButton: \"Cerca\",\n emailButton: \"Email\",\n messageButton: \"Messaggio\",\n noRecordFound: \"Nessun risultato trovato\",\n progressTracking:\n \"Il monitoraggio del progresso è disponibile solo negli spazi che hanno prompt interattivi.\",\n },\n progressTable: {\n member: \"Membro\",\n progress: \"Progresso\",\n },\n },\n registered: {\n registered: {\n searchPlaceholder: \"Cerca\",\n searchButton: \"Cerca\",\n email: \"Email\",\n message: \"Messaggio\",\n noRecordFound: \"Nessun risultato trovato\",\n pending: \"In attesa\",\n manager: \"Amministratori\",\n all: \"Tutti\",\n active: \"Attivi\",\n },\n registeredTable: {\n member: \"Membro\",\n email: \"Email\",\n status: \"Stato\",\n role: \"Ruolo\",\n roleApproveAll: \"Approva tutti\",\n },\n },\n registeredRow: {\n registered: {\n roleApprove: \"Approva\",\n joined: \"Unito/a\",\n sendMessage: \"Invia un messaggio\",\n stopCharging: \"Sospendi l'addebito\",\n emailPreferences: \"Preferenze di notifica\",\n removeMember: \"Rimuovi membro\",\n },\n },\n },\n payment: {\n charging: {\n NumberOfTimes: {\n howManyTimes: \"Quante volte?\",\n },\n UntilDate: {\n pickDate: \"Scegli una data di fine riscossione del pagamento\",\n },\n },\n fees: {\n description: {\n fees: \"COMMISSIONI:\",\n sutraFee: \"COMMISSIONE SUTRA +\",\n stripeProcessingFee: \"COMMISSIONI STRIPE PER L'ELABORAZIONE DEI PAGAMENTI\",\n },\n },\n flexible: {\n flexible: {\n description:\n \"Per offrire opzioni di pagamento flessibile come ad esempio il modello “paga quello che puoi” o più livelli di pagamento, puoi creare un sondaggio di pagamento che le persone vedranno quando si registrano al tuo spazio. Fai clic sul pulsante di modifica qui sotto per personalizzare il sondaggio.\",\n },\n },\n once: {\n once: {\n description: \"Quanto addebiterai?\",\n number: \"10\",\n },\n },\n recurring: {\n recurring: {\n description1: \"Quanto addebiterai?\",\n description2: \"Seleziona un'opzione di addebito\",\n },\n },\n },\n privacy: {\n open: {\n open: {\n description: \"Chiunque può accedere a questo spazio\",\n },\n },\n paid: {\n paid: {\n stripeConnected: \"Stripe collegato a\",\n disconnectButton: \"Scollegare Stripe\",\n description:\n \"Per l’elaborazione dei pagamenti per questo spazio collega il tuo account Stripe cliccando sul bottone qui sotto\",\n connectButton: \"Collega Stripe\",\n },\n },\n private: {\n private: {\n description:\n \"Questo spazio è privato e le persone devono essere invitate per accedervi\",\n },\n },\n },\n registration: {\n steps: {\n addFromSubSpace: {\n label: \"Seleziona uno spazio a cui aggiungere il membro\",\n description:\n \"In alcune circostanze, i membri possono unirsi a un sottospazio senza unirsi allo spazio genitore. In questi casi, dovrai assicurarti che i membri vengano aggiunti anche a uno spazio genitore o ad un altro spazio condiviso. Con questa opzione puoi farlo facilmente. Ogni volta che qualcuno si unisce a un sottospazio, verrà automaticamente aggiunto agli spazi selezionati di seguito.\",\n placeholder: \"Seleziona gli spazi\",\n saveButton: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n saveButton2: \"Salva passaggio\",\n },\n addStructure: {\n label1: \"Seleziona struttura\",\n placeholder1: \"Seleziona un'opzione\",\n label2: \"Invia come\",\n placeholder2: \"Seleziona un'opzione\",\n saveButton: \"Salva passaggio\",\n },\n addToExistingSpace: {\n label: \"Seleziona uno spazio a cui aggiungere il membro\",\n placeholder: \"Seleziona spazi\",\n saveButton1: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n saveButton2: \"Salva passaggio\",\n },\n addToNewSpace: {\n placeholder: \"Nome del nuovo spazio\",\n label: \"Inventa un nome per il nuovo spazio\",\n saveButton1: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n saveButton2: \"Salva passaggio\",\n },\n applyTemplate: {\n label: \"Seleziona uno spazio da copiare\",\n description:\n \"In alcuni casi vorrai creare un template di spazio da replicare ogni volta che viene creato un nuovo spazio. Puoi creare uno spazio e configurarlo esattamente come vuoi. Il contenuto e gli sottospazi verranno copiati dal template nello spazio appena creato qui.\",\n saveButton1: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n saveButton2: \"Salva passaggio\",\n },\n editEmail: {\n placeholder1: \"Oggetto\",\n label1: \"Invia come\",\n placeholder2: \"Seleziona un'opzione\",\n label2: \"Invia a\",\n placeholder3: \"Seleziona un'opzione\",\n placeholder4: \"nome@dominio.com\",\n label3: \"Indirizzo email\",\n saveButton: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n sendPreview: \"Send preview\",\n },\n editStructure: {\n deleteButton: \"Elimina passaggio\",\n },\n editSurvey: {\n deleteButton: \"Elimina passaggio\",\n },\n sendEmail: {\n label1: \"Seleziona email\",\n placeholder1: \"Seleziona un'opzione\",\n label2: \"Invia come\",\n placeholder2: \"Seleziona un'opzione\",\n label3: \"Invia a\",\n placeholder3: \"Seleziona un'opzione\",\n label4: \"nome@dominio.com\",\n placeholder4: \"Indirizzo email\",\n saveButton: \"Salva passaggio\",\n label5: \"Amministratori\",\n label6: \"Indirizzo email personalizzato\",\n },\n setToPending: {\n title: \"Messaggio di benvenuto\",\n description:\n \"Questo è il contenuto che le persone vedranno subito dopo essersi registrate al tuo spazio. È il luogo ideale dove spiegare quando inizierà il programma e cosa possono aspettarsi nel frattempo.\",\n saveButton1: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n saveButton2: \"Salva passaggio\",\n },\n surveyPerson: {\n placeholder: \"Seleziona un'opzione\",\n label: \"Seleziona sondaggio\",\n saveButton1: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n saveButton2: \"Salva passaggio\",\n },\n wait: {\n description1: \"Quanti giorni?\",\n description2: \"Attendere fino a\",\n saveButton: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n saveButton2: \"Salva passaggio\",\n label1: \"Seleziona condizione di attesa\",\n placeholder: \"Seleziona un'opzione\",\n label2: \"Numero di giorni\",\n label3: \"Fino ad una data e ora specifica\",\n label4: \"Seleziona una data\",\n },\n webhook: {\n label: \"URL webhook\",\n saveButton: \"Salva passaggio\",\n deleteButton: \"Elimina passaggio\",\n },\n remove_from_space: {\n label: \"Select a space to remove member from\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n },\n addStep: {\n addStep: {\n description: \"Aggiungi passaggio\",\n label: \"Seleziona un'azione per questo passaggio\",\n placeholder: \"Seleziona un'azione\",\n },\n },\n registrationFlow: {\n registration: {\n description1:\n \"Questa funzione ti consente di sequenziare azioni automatizzate che vengono attivate quando una persona si unisce o manifesta interesse per questo spazio. Qui puoi eseguire operazioni come pianificare l'invio di email ed aggiungere automaticamente le persone agli spazi selezionati al momento della registrazione.\",\n description2: \"Eseguire queste azioni dopo che qualcuno...\",\n placeholder1: \"Seleziona una condizione di inizio\",\n addButton: \"Aggiungi passaggio\",\n label1: \"Diventa membro o si unisce alla lista degli interessati\",\n description3:\n \"I seguenti passaggi verranno attivati quando una persona diventa membro di questo spazio o si unisce alla lista degli interessati inviando il proprio nome e indirizzo email tramite un modulo di interesse.\",\n label2: \"Diventa membro di questo spazio\",\n description4:\n \"I seguenti passaggi verranno attivati quando una persona diventa membro di questo spazio.\",\n label3: \"Manifesta interesse per questo spazio\",\n description5:\n \"I seguenti passaggi verranno attivati quando una persona si unisce alla lista degli interessati inviando il proprio nome e indirizzo email tramite un modulo di interesse.\",\n },\n },\n },\n structure: {\n add: {\n add: {\n title: \"Aggiungi agli spazi\",\n description: \"Spazi\",\n placeholder1: \"Seleziona uno spazio\",\n label1: \"Invia come\",\n placeholder2: \"Scegli il mittente\",\n placeholder3: \"Seleziona una data\",\n label2: \"Data di invio\",\n label3: \"Ora di invio\",\n saveButton: \"Salva\",\n label4: \"Pianifica per dopo\",\n },\n },\n createStructure: {\n title: {\n createStructure: \"Crea struttura\",\n },\n },\n structureItem: {\n item: {\n addToSpace: \"Aggiungi allo spazio\",\n open: \"View responses\",\n edit: \"Modifica\",\n duplicate: \"Duplica\",\n delete: \"Elimina\",\n },\n },\n },\n survey: {\n add: {\n add: {\n title: \"Aggiungi agli spazi\",\n spaces: \"Spazi\",\n placeholder1: \"Seleziona uno spazio\",\n label: \"Invia come\",\n placeholder2: \"Scegli il mittente\",\n saveButton: \"Salva\",\n },\n },\n answer: {\n answer: {\n addOption: \"Aggiungi opzione\",\n },\n },\n createSurvey: {\n description: \"Crea sondaggio\",\n },\n createSurveyForm: {\n form: {\n title: \"Titolo del sondaggio\",\n description:\n \"Le opzioni di pagamento flessibile ti permettono di offrire più opzioni di pagamento per il tuo programma. Se vuoi che le persone impostino quanto pagare, crea semplicemente un'opzione senza impostare un importo fisso. Questa opzione apparirà con un campo dove le persone potranno impostare il proprio importo. Ad esempio, puoi offrire il modello “paga quanto puoi” con vari livelli di prezzo suggerito e un’opzione completamente libera. Se aggiungi un testo di spiegazione a seguito, questo testo verrà mostrato giusto sopra le opzioni di pagamento.\",\n optionalDescription:\n \"Descrizione facoltativa del sondaggio\",\n addQuestionButton: \"Aggiungi domanda\",\n saveButton: \"Salva\",\n },\n },\n individual: {\n individual: {\n placeholder: \"Seleziona una persona\",\n },\n },\n multipleItem: {\n multipleItem: {\n placeholder: \"Opzione\",\n },\n },\n paymentItem: {\n paymentItem: {\n placeholder: \"Opzione di pagamento\",\n },\n },\n paymentSurveyItem: {\n item: {\n editButton: \"Modifica le opzioni di pagamento\",\n viewButton: \"Visualizza risposte\",\n },\n },\n showSurvey: {\n survey: {\n title: \"Risposte del sondaggio\",\n },\n },\n singleItem: {\n item: {\n placeholder: \"Opzione\",\n },\n },\n surveyItem: {\n item: {\n addToSpace: \"Aggiungi allo spazio\",\n open: \"View responses\",\n edit: \"Modifica\",\n take: \"Preview survey\",\n duplicate: \"Duplica\",\n download: \"Scarica CSV\",\n delete: \"Elimina\",\n responses: \"Risposte\",\n },\n },\n },\n broadcast: {\n broadcast: {\n button: {\n broadcastButton: \"Nuovo invio massivo\",\n },\n },\n },\n broadcast: {\n title: \"Invio massivo\",\n broadcastButton: \"Nuovo invio massivo\",\n membersTypes: {\n active: \"Membri attivi\",\n pending: \"Membri in attesa\",\n interested: \"Membri interessati\",\n },\n sentOn: \"Invio massivo inviato il\",\n onDestroy: {\n alertTitle: \"Sei sicuro/a?\",\n alertMessage:\n \"Questo invio massivo verrà eliminato definitivamente\",\n confirm: \"Elimina l'invio massivo\",\n deny: \"Annulla\",\n },\n actions: {\n edit: \"Modifica\",\n duplicate: \"Duplica\",\n delete: \"Elimina\",\n },\n statuses: {\n sent: \"Inviato\",\n scheduled: \"Pianificato\",\n draft: \"Bozza\",\n procesing: \"Processing\",\n },\n form: {\n composeBroadcast: \"Crea l'invio massivo\",\n contentErrMessage: \"Aggiungi contenuto\",\n targetErrMessage: \"Seleziona un destinatario\",\n type: {\n email: \"Invia per email\",\n message: \"Invia come messaggio allo spazio\",\n },\n title: {\n placeholder: \"Oggetto\",\n },\n brackets: {\n part1: \"Utilizza\",\n part2: \"e\",\n part3: \"per autopopolare le informazioni corrispondenti\",\n },\n target: {\n placeholder: \"Scegli destinatari\",\n label: \"Invia a\",\n },\n sendAs: {\n label: \"Invia come\",\n placeholder: \"Scegli mittente\",\n },\n schedule: {\n label: \"Pianifica per dopo\",\n },\n sendAtDate: {\n label: \"Data di invio\",\n placeholder: \"Seleziona data\",\n },\n sendAtTime: {\n label: \"Orario di invio\",\n placeholder: \"\",\n },\n scheduleBroadcast: \"Pianifica l'invio\",\n sendBroadcast: \"Invia\",\n saveDraft: \"Salva bozza\",\n sendPreview: \"Send preview\",\n },\n },\n surveys: {\n title: \"Sondaggi\",\n createSurvey: \"Crea sondaggio\",\n },\n structures: {\n title: \"Strutture\",\n createStructure: \"Crea struttura\",\n },\n sutraAdmin: {\n title: \"Sutra Admin\",\n },\n scheduled: {\n title: \"Pianificati\",\n },\n archived: {\n title: \"Archiviati\",\n },\n participation: {\n title: \"Partecipazione\",\n label1: \"Presenza\",\n description1:\n \"% dei membri che hanno visitato lo spazio negli ultimi 7 giorni\",\n label2: \"Attività\",\n description2:\n \"% dei membri che hanno postato negli ultimi 7 giorni\",\n label3: \"Post\",\n description3:\n \"Numero totale dei post in tutti i sottospazi negli ultimi 7 giorni\",\n label4: \"Partecipazione\",\n label5: \"Attività dei membri\",\n label6: \"Progresso\",\n },\n },\n sidebar: {\n iconSelect: {\n placeholder: \"Cerca\",\n },\n membersNode: {\n member: \"Membri\",\n },\n nodeIcon: {\n reset: \"Ripristina\",\n },\n sidebarTutorial: {\n gettingStarted: \"Primi passi\",\n },\n },\n alreadyMember: {\n member: {\n welcome: \"Benvenuto! Sei già un membro di questo spazio -\",\n clickHere: \"Clicca qui per accedere\",\n },\n },\n calender: {\n calender: {\n joinButton: \"Partecipa alla videoconferenza\",\n addButton: \"Aggiungi al calendario\",\n joinEventButton: \"Registrati\",\n title: \"Dettagli dell'evento\",\n },\n },\n invitationBar: {\n button: {\n register: \"Registrati\",\n },\n },\n space: {\n sutraLoading: \"Sutra - Caricamento...\",\n },\n statusBar: {\n restoreButton: \"Ripristina\",\n },\n tagFilter: {\n resetButton: \"Ripristina\",\n },\n presentations: {\n discussion: {\n reflectionHeader: \"Riflessioni\",\n backToPost: \"Torna al post\",\n pinnedMessageHeader: \"Messaggio fissato\",\n delete: {\n title: \"Sei sicuro/a?\",\n message: \"Questa azione non può essere annullata\",\n confirmButton: \"Sì, elimina\",\n cancelButton: \"Annulla\",\n },\n },\n tag: {\n placeholder: \"Cerca tag o crea uno nuovo\",\n createAction: \"Crea\",\n },\n message: {\n reply: \"Rifletti\",\n addTags: \"Aggiungi tag\",\n tag: \"Tag\",\n copyToClipboard: \"Copia negli appunti\",\n messageCopied: \"Messaggio copiato negli appunti\",\n pinMessageAction: \"Fissa messaggio\",\n editMessage: \"Modifica messaggio\",\n deleteMessage: \"Elimina messaggio\",\n makePrivate: \"Rendi privato\",\n viewReplies1: \"Visualizza\",\n viewReplies2single: \"riflessione\",\n viewReplies2plural: \"riflessioni\",\n privateMessage:\n \"Attualmente solo tu e gli amministratori di questo spazio potete vedere questo post. Se decidi di renderlo pubblico, tutti i membri lo vedranno in questo spazio.\",\n privateMessage2:\n \"Questa persona ha scelto di non condividere la sua risposta con altri membri.\",\n unreadMessagesText: \"Hai messaggi non letti\",\n scrollDownButton: \"Scorri in basso\",\n newReflections: {\n part1: \"Hai\",\n part2: \"riflessioni non lette in\",\n part3: \"messaggi\",\n },\n viewNextButton: \"Visualizza successivo\",\n pinMessage: {\n mainText: \"Messaggio fissato\",\n viewButton: \"Visualizza messaggio\",\n },\n },\n content: {\n commentInput: {\n toggleLabel1:\n \"I commenti sono disabilitati per i percorsi interattivi\",\n toggleLabel2: \"Attiva i commenti per questo post\",\n toggleLabel3: \"Attiva i commenti per questo spazio di evento\",\n toggleLabel4: \"Attiva i commenti per questo spazio di contenuto\",\n placeholder1:\n \"I commenti non possono essere pubblicati durante la modifica.\",\n placeholder2: \"Scrivi qualcosa...\",\n },\n },\n fallback: {\n title: \"Problema di connessione\",\n message:\n \"Sembra che tu non abbia Internet. Quando sarai di nuovo online, ti ricollegheremo automaticamente.\",\n },\n events: {\n placeholder: \"Scrivi qualcosa...\",\n upcomingButton: \"In programma\",\n pastButton: \"Passati\",\n addEvent: \"Aggiungi evento\",\n eventSettingsTooltip: \"Impostazioni dell'evento\",\n newEventTitle: \"NUOVO EVENTO\",\n },\n list: {\n placeholder: \"Scrivi qualcosa...\",\n createButton: \"Crea post\",\n listSettingsTooltip: \"Impostazioni del forum\",\n duplicateFormTitle: \"DUPLICA SPAZIO\",\n },\n settings: {\n versions: {\n content: \"Pagina di contenuto\",\n posts: \"Post\",\n discussions: \"Discussioni\",\n link: \"Link\",\n template: \"Template\",\n },\n versionsDescriptions: {\n content:\n \"I nuovi elementi verranno visualizzati come una pagina di contenuto con funzionalità complete.\",\n discussion: \"Vuoto\",\n posts:\n \"I nuovi elementi verranno visualizzati come un semplice post con funzionalità limitate\",\n link: \"Questa opzione ti consente di inviare un link a qualsiasi spazio su Sutra che verrà mostrato qui come un elemento.\",\n template:\n \"Crea un template di spazio che verrà duplicato ogni volta che viene creato un nuovo elemento qui.\",\n },\n createNewTemplate: \"Crea nuovo template\",\n editTemplate: \"Modifica template\",\n title: \"IMPOSTAZIONI\",\n accordion1: {\n label: \"Visualizza come\",\n description: \"Visualizza i post in modalità elenco o griglia\",\n listOption: \"Elenco\",\n gridOption: \"Griglia\",\n dateCreated: \"Data di creazione\",\n dateCreatedReversed: \"Data di creazione inversa\",\n lastActive: \"Ultima attività\",\n lastEdited: \"Ultima modifica\",\n alphabetic: \"Ordine alfabetico\",\n reverseAlphabetic: \"Alfabetico inverso\",\n },\n accordion2: {\n label: \"Opzioni di visualizzazione\",\n description: \"\",\n switches: {\n onlyManagers: \"Solo i manager possono creare un post\",\n showAuthor: \"Mostra informazioni sull'autore\",\n showPreview: \"Mostra anteprima del testo\",\n showComments: \"Mostra numero di commenti\",\n showMembers: \"Mostra avatar dei membri\",\n showTimestamp: \"Mostra timestamp di creazione del post\",\n showThumbnail: \"Mostra miniatura\",\n autoThumbnail: \"Crea miniatura automaticamente\",\n },\n },\n accordion3: {\n label: \"Formato dei nuovi post\",\n description:\n \"Seleziona il formato per i nuovi post in questo spazio\",\n templateName: {\n label: \"Dai un nome al tuo template\",\n placeholder: \"Nome del template\",\n },\n templateDirectOption: \"Sottospazio diretto\",\n templateLinkedOption: \"Spazio collegato\",\n privacyDescription:\n \"Seleziona le configurazioni di default sulla privacy per i nuovi post\",\n privacyOpenOption: \"Aperto\",\n privacyPrivateOption: \"Privato\",\n privacyAnyOption: \"Scelta del creatore\",\n },\n accordion4: {\n label: \"Etichetta del pulsante\",\n createPost: {\n label: \"Crea post\",\n description:\n \"Specifica il testo che appare sul pulsante per creare un nuovo post\",\n },\n },\n accordion5: {\n label: \"Tag\",\n },\n templateDescription:\n \"I nuovi template di spazi possono essere sottospazi diretti di questo spazio o possono essere spazi collegati. Gli spazi collegati sono spazi superiori ed indipendenti che appariranno in questa pagina. Il creatore dello spazio diventerà amministratore completo dello spazio che crea.\",\n },\n thumbnail: {\n title: \"AGGIUNGI MINIATURA\",\n message: \"La miniatura si sta caricando...\",\n },\n static: {\n broadcastExclude: {\n unsubscribe: {\n part1: \"Sei sicuro che vuoi annullare l’iscrizione a\",\n part2:\n \"Non riceverai più email dirette di invio massivo dagli amministratori di questo spazio\",\n button: \"Annulla iscrizione\",\n },\n subscribe: {\n part1:\n \"Sei stato disiscritto e non riceverai più email di invio massivo da\",\n button: \"Iscriviti\",\n },\n },\n invitation: {\n message: \"Sei stato invitato a questo spazio\",\n button: \"Accetta l'invito\",\n },\n pending: {\n message: \"La tua richiesta è in attesa di approvazione\",\n },\n private: {\n message: {\n part1: \"Questo è uno spazio privato.\",\n part2: \"Se sei un membro, effettua l'accesso.\",\n },\n button: \"Accedi\",\n },\n processing: {\n message: \"Questo spazio è ancora in fase di elaborazione...\",\n },\n },\n gridPost: {\n onDelete: {\n alertTitle: \"Sei sicuro/a?\",\n alertMessage: \"Questo spazio non sarà più collegato qui.\",\n alertMessage2: \"Questo spazio non sarà più collegato qui.\",\n confirm: \"Sì\",\n deny: \"No\",\n },\n actions: {\n pin: \"Fissare in alto\",\n unpin: \"Non fissare\",\n addThumbnail: \"Aggiungi miniatura\",\n removeThumbnail: \"Rimuovi miniatura\",\n duplicate: \"Duplica\",\n unlink: \"Scollega\",\n delete: \"Elimina\",\n },\n },\n listContent: {\n publishTootip: \"Sarà pubblicato in questa data\",\n privateTooltip: \"Questo è uno spazio privato\",\n },\n },\n colors: {\n form: {\n colorTheme: \"Tema di colore\",\n customize: \"Personalizza la selezione dei colori\",\n saveTheme: \"Salva tema\",\n resetColor: \"Ripristina colore\",\n pageLayout: \"Layout della pagina\",\n pageFormat: \"Formato della pagina\",\n },\n headerAndLogo: {\n addCover: \"Aggiungi immagine di copertina\",\n removeCover: \"Rimuovi immagine di copertina\",\n changeLogo: \"Cambia logo\",\n removeLogo: \"Rimuovi logo\",\n dimensions:\n \"La dimensione consigliata per le immagini di copertina è di 1200 x 300 pixel\",\n dimensions2:\n \"La dimensione consigliata per i loghi è di 360 x 120 pixel\",\n },\n pageFormat: {\n description:\n \"Puoi cambiare il modo in cui i contenuti vengono presentati in questo spazio selezionando un'opzione sotto.\",\n contentLabel: \"Contenuto\",\n discussionLabel: \"Discussione\",\n contentDescription:\n \"Uno spazio per moduli di apprendimento, contenuti generali o risorse della community.\",\n discussionDescription: \"Uno spazio di discussione o di annunci\",\n },\n pageLayout: {\n widePage: \"Amplia la larghezza della pagina\",\n hideSidebar: \"Nascondi la barra laterale\",\n hideHeader: \"Nascondi intestazione\",\n hideCoverImage: \"Nascondi immagine di copertina\",\n hidePageTitle: \"Nascondi titolo della pagina\",\n hideBreadcrumbs: \"Nascondi i breadcrumb\",\n },\n header_color: {\n label: \"Colore d'intestazione\",\n description: \"Descrizione\",\n },\n header_link_color: {\n label: \"Logo dell'intestazione e colore del testo\",\n description: \"Descrizione\",\n },\n primary_button_background_color: {\n label: \"Colore di sfondo pulsante primario\",\n description: \"Descrizione\",\n },\n primary_button_text_color: {\n label: \"Colore testo pulsante primario\",\n description: \"Descrizione\",\n },\n secondary_button_background_color: {\n label: \"Colore di sfondo pulsante secondario\",\n description: \"Descrizione\",\n },\n secondary_button_text_color: {\n label: \"Colore testo pulsante secondario\",\n description: \"Descrizione\",\n },\n background_color: {\n label: \"Colore di sfondo\",\n description: \"Descrizione\",\n },\n default_text_color: {\n label: \"Colore testo predefinito\",\n description: \"Descrizione\",\n },\n sidebar_background_color: {\n label: \"Colore di sfondo barra laterale\",\n description: \"Descrizione\",\n },\n sidebar_text_color: {\n label: \"Colore testo barra laterale\",\n description: \"Descrizione\",\n },\n default_link_color: {\n label: \"Colore link predefinito\",\n description: \"Descrizione\",\n },\n default_badge_color: {\n label: \"Colore badge di notifica\",\n description: \"Descrizione\",\n },\n default_badge_text_color: {\n label: \"Colore testo badge di notifica\",\n description: \"Descrizione\",\n },\n registration_page_background_color: {\n label: \"Colore di sfondo della pagina di registrazione\",\n description: \"Descrizione\",\n },\n registration_page_default_text_color: {\n label: \"Colore testo della pagina di registrazione\",\n description: \"Descrizione\",\n },\n },\n create: {\n invalidNameErrorMsg:\n \"Il nome dello spazio deve avere una lunghezza tra 3 e 100 caratteri\",\n },\n dummy: {\n magicLink: {\n alertTitle: \"Ci sei quasi...\",\n alertMessage:\n \"Abbiamo inviato il link magico al tuo indirizzo email. QUESTO È UN TEST, NON VIENE INVIATA NESSUNA EMAIL EFFETTIVA.\",\n },\n },\n pending: {\n message: \"La tua richiesta è in attesa\",\n },\n recover: {\n alertTitle: \"Ci sei quasi...\",\n alertMessage:\n \"Ti abbiamo appena inviato un'email con le istruzioni per recuperare la tua password. QUESTO È UN TEST, NON VIENE INVIATA NESSUNA EMAIL EFFETTIVA.\",\n },\n form: {\n calendarLinks: {\n text: \"Le informazioni aggiunte di seguito verranno trasferite al calendario dei membri quando aggiungeranno l'evento.\",\n link: {\n label: \"URL dell'evento (link Zoom, ecc.)\",\n placeholder: \"Qual è il link della tua videochiamata\",\n },\n description: {\n label:\n \"Aggiungi una descrizione del tuo evento che verrà visualizzata nelle informazioni del calendario\",\n placeholder: \"Descrizione del calendario\",\n },\n eventStartDateAndTime: \"Data e ora di inizio dell'evento\",\n date: {\n placeholder: \"Scegli una data\",\n },\n eventDateTime: \"Data e ora di fine dell'evento (opzionale)\",\n allowInterests:\n \"Consenti alle persone di partecipare all'evento senza registrarsi su Sutra\",\n automatedEmails: \"Configura email automatizzate\",\n save: \"Salva dettagli\",\n },\n duplicate: {\n prefix: \"Copia di\",\n intention: {\n label: \"Nome dello spazio\",\n placeholder: \"Come si chiama il tuo spazio?\",\n },\n copyMembers: {\n label: \"Copia membri\",\n },\n copyManagers: {\n label: \"Copia amministratori\",\n },\n copyContent: {\n label: \"Copia contenuto\",\n },\n copyPosts: {\n label: \"Copy posts\",\n },\n copyBroadcasts: {\n label: \"Copia invio massivo\",\n },\n copyAutomation: {\n label: \"Copia automazioni\",\n },\n copyRegPage: {\n label: \"Copia la pagina di registrazione\",\n },\n save: \"Duplica spazio\",\n saveTemplate: \"Crea un modello\"\n },\n form: {\n privacyDescription1:\n \"Lo spazio che crei sarà accessibile a tutti all'interno di\",\n rootPrivacyDescription1:\n \"Lo spazio che crei sarà accessibile a chiunque abbia un link a questo spazio. Puoi impostare le opzioni di pagamento una volta che hai creato lo spazio.\",\n privacyDescription2:\n \"Lo spazio che crei sarà visibile solo alle persone che vengono aggiunte.\",\n rootPrivacyDescription2:\n \"Lo spazio che crei sarà visibile solo alle persone che vengono invitate. Puoi impostare le opzioni di pagamento una volta creato lo spazio.\",\n placeholderDescription: \"Descrizione\",\n versions: {\n content: {\n label: \"Contenuto\",\n description:\n \"Crea uno spazio per un modulo di apprendimento, contenuto generale o risorse della community.\",\n },\n discussion: {\n label: \"Discussione\",\n description:\n \"Crea uno spazio di chat per discussioni o annunci.\",\n },\n event: {\n label: \"Evento\",\n description: \"Crea un evento singolo.\",\n },\n events: {\n label: \"Calendario\",\n description: \"Crea un elenco di eventi nel calendario.\",\n },\n list: {\n label: \"Forum\",\n description:\n \"Crea un feed in cui le persone possono pubblicare argomenti di discussione.\",\n },\n },\n segments: {\n space: {\n label: \"Spazio\",\n description:\n \"Crea uno spazio per il tuo corso o la tua community. Scegli questa opzione se vuoi creare un gruppo di formazione, un corso a tuo ritmo, una community o qualsiasi tipo di gruppo che si riunirà periodicamente nel tempo.\",\n },\n event: {\n label: \"Evento\",\n description:\n \"Crea una semplice pagina di evento. Scegli questa opzione se vuoi organizzare un evento singolo che potrai condividere pubblicamente.\",\n },\n discussion: {\n label: \"Discussione\",\n description:\n \"Crea un semplice spazio di chat per il tuo gruppo. Scegli questa opzione se vuoi creare uno spazio di discussione per un gruppo di persone.\",\n },\n },\n intention: {\n label: \"Nome dello spazio\",\n placeholder: \"Come si chiama il tuo spazio?\",\n },\n content: {\n label: \"Nome dello spazio\",\n description: \"Scrivi qualcosa...\",\n placeholder: \"Scrivi qualcosa...\",\n },\n spaceFormat: {\n label: \"Formato dello spazio\",\n placeholder: \"Scegli uno\",\n },\n eventDescription:\n \"Le informazioni aggiunte di seguito verranno passate al calendario del membro quando aggiunge l'evento.\",\n hangoutLink: {\n label: \"URL dell'evento (link Zoom, ecc.)\",\n placeholder: \"Qual è il link della tua videoconferenza\",\n },\n eventStartTime: \"Data e ora di inizio dell'evento\",\n date: {\n placeholder: \"Seleziona una data\",\n },\n eventEndDate: \"Data e ora di fine dell'evento (opzionale)\",\n privacyLevelText: \"Configurazione sulla privacy\",\n privacy: {\n open: \"Aperto\",\n private: \"Privato\",\n },\n joinAsMember: {\n label: \"Unisciti a questo spazio come membro\",\n },\n publishDate: {\n label: \"Pubblica in data\",\n },\n publishDateTime: \"Data e ora di pubblicazione\",\n create: \"Crea spazio\",\n },\n interestedForm: {\n title: \"Registrati a questo evento\",\n createAlertTitle: \"Grazie per esserti registrato/a!\",\n createAlertButton: \"Ok\",\n name: {\n label: \"Nome\",\n placeholder: \"Inserisci il tuo nome\",\n },\n email: {\n label: \"Email\",\n placeholder: \"Inserisci il tuo indirizzo email\",\n },\n register: \"Registrati\",\n joinWithSutra: \"Accedi con il tuo account Sutra\",\n },\n linkForm: {\n linkErrMessage: \"Questo non è un link valido per lo spazio\",\n link: {\n label: \"\",\n placeholder: \"Link allo spazio\",\n errors: {\n space:\n \"Lo spazio che vuoi condividere è privato o non esiste!\",\n event:\n \"Lo spazio che vuoi condividere è privato, non è un evento o non esiste!\",\n },\n },\n },\n listForm: {\n intention: {\n placeholder: \"Titolo\",\n },\n },\n },\n header: {\n onLeave: {\n title: \"Sei sicuro/a?\",\n message:\n \"Sarai rimosso come membro da questo spazio e potrebbe essere necessario che tu venga aggiunto nuovamente per ripristinare l'accesso a questo spazio.\",\n confirm: \"Sì, rimuovimi\",\n deny: \"No\",\n },\n onArchive: {\n title: \"Sei sicuro/a?\",\n message:\n \"Questo spazio verrà archiviato e i membri non vi avranno più accesso.\",\n confirm: \"Sì\",\n deny: \"No\",\n },\n onUnarchive: {\n title: \"Sei sicuro/a?\",\n message:\n \"L’archiviazione di questo spazio verrà annullata e ai membri verrà ridato l'accesso a questo spazio.\",\n confirm: \"Sì\",\n deny: \"No\",\n },\n onDelete: {\n title: \"Sei sicuro/a?\",\n message:\n \"Questo spazio verrà eliminato e i membri non vi avranno più accesso.\",\n confirm: \"Sì\",\n deny: \"No\",\n },\n onFix: {\n title: \"Sei sicuro/a?\",\n message:\n \"Sutra proverà a ricreare lo spazio di contenuto a partire dai dati delle versioni precedenti.\",\n confirm: \"Sì, ripara\",\n deny: \"No\",\n confirmationTitle: \"Informazioni\",\n confirmationMessage: \"Spazio riparato, ricaricando...\",\n confirmationError: \"Questo spazio non può essere riparato\",\n },\n buttons: {\n uncomplete: \"Non completato\",\n markComplete: \"Segna come completato\",\n edit: \"Modifica\",\n post: \"post\",\n page: \"pagina\",\n space: \"spazio\",\n returnTo: \"Torna a\",\n editTitle: \"Modifica titolo\",\n viewPage: \"Visualizza pagina\",\n editDescription: \"Modifica descrizione\",\n appearance: \"Aspetto\",\n manage: \"Gestisci\",\n members: \"Membri\",\n leave: \"Abbandona spazio\",\n delete: \"Elimina spazio\",\n deletePost: \"Elimina\",\n duplicate: \"Duplica spazio\",\n template: \"Crea un modello\",\n archive: \"Archivia spazio\",\n unarchive: \"Annulla archiviazione\",\n fix: \"Ripara\",\n joinEvent: \"Unisciti\",\n joinSpace: \"Unisciti allo spazio\",\n preview: \"Anteprima\",\n draft: \"Bozza\",\n published: \"Pubblicato\",\n publish: \"Pubblica\",\n returnToSettings: \"Torna alle configurazioni\",\n returnToSpace: \"Torna allo spazio\",\n undo: \"Annulla\",\n openFullScreen: \"Schermo intero\",\n copyToClipboard: \"Copia negli appunti\",\n copiedMessage: \"Link dello spazio copiato negli appunti\",\n versionHistory: \"Cronologia delle versioni\",\n brandingOptions: \"OPZIONI DI BRANDING\",\n },\n regPagePublishing:\n \"La tua pagina di registrazione si sta pubblicando, per favore, attendi...\",\n spaceUpdating:\n \"Questo spazio si sta aggiornando, per favore, attendi...\",\n },\n members: {\n sectionTitle: \"Membri\",\n manage: \"Gestisci membri\",\n invite: \"Invita\",\n search: {\n button: \"Cerca\",\n placeholder: \"Cerca per\",\n },\n emptyMessage: \"Nessun risultato trovato\",\n messageButton: \"Messaggio\",\n emailButton: \"Email\",\n copyClipboard: \"copia negli appunti\",\n },\n payment: {\n onCheckIntent: {\n alertTitle: \"Errore di pagamento\",\n alertMessage:\n \"La sessione è scaduta. Aggiorna la pagina per completare il pagamento.\",\n },\n onConfirmPayment: {\n alertTitle: \"Ops, qualcosa è andato storto!\",\n alertMessage: \"Qualcosa è andato storto!\",\n },\n completePayment: \"Completa il pagamento\",\n join: \"Unisciti allo spazio\",\n },\n stripe: {\n pay: \"Paga\",\n },\n },\n survey: {\n form: {\n text: \"Hai già risposto a questo sondaggio.\",\n submitButton: \"Invia\",\n },\n question: {\n yourAnswer: \"La tua risposta\",\n },\n },\n tiptap: {\n blocks: {\n section1: \"Base\",\n text: \"Testo\",\n headline1: \"Titolo 1\",\n headline2: \"Titolo 2\",\n headline3: \"Titolo 3\",\n divider: \"Divisore\",\n infobox: \"Casella delle informazioni\",\n section2: \"Spazi\",\n content: \"Spazio del contenuto\",\n discussion: \"Spazio delle discussioni\",\n event: \"Spazio degli eventi\",\n events: \"Spazio del calendario\",\n list: \"Spazio del forum\",\n showcase: \"Showcase Space\",\n section3: \"Lista\",\n section8: \"Special\",\n bulletList: \"Lista puntata\",\n orderedList: \"Lista ordinata\",\n checklist: \"Lista di controllo\",\n collapsableSection: \"Sezione espandibile\",\n survey: \"Survey or quiz\",\n section4: \"Media\",\n image: \"Immagine\",\n embed: \"Codice di incorporamento\",\n video: \"Video\",\n audio: \"Audio\",\n file: \"File\",\n zoom: \"Zoom recording\",\n section5: \"Griglie\",\n grid1: \"1 colonna\",\n grid2: \"2 colonne\",\n grid3: \"3 colonne\",\n grid4: \"Colonna sinistra\",\n grid5: \"Colonna destra\",\n grid6: \"4 columns\",\n section6: \"Pulsanti\",\n interestForm: \"Modulo di interesse\",\n actionButton: \"Pulsante di azione\",\n markComplete: \"Segna come completato\",\n section7: \"Interattivo\",\n interactiveButton: \"Pulsante interattivo\",\n interactiveInput: \"Input interattivo\",\n interactiveWait: \"Attesa interattiva\"\n },\n components: {\n sidebar: {\n alignment: {\n left: \"Sinistra\",\n center: \"Centro\",\n right: \"Destra\",\n },\n backgroundColor: {\n text: \"Seleziona colore di sfondo\",\n clearColor: \"Resetta colore\",\n },\n backgroundImage: {\n button: \"Seleziona immagine\",\n removeButton: \"Rimuovi immagine\",\n label: \"Posizione\",\n placeholder: \"Scegli un'opzione\",\n leftTop: \"sinistra in alto\",\n leftCenter: \"sinistra al centro\",\n leftBottom: \"sinistra in basso\",\n rightTop: \"destra in alto\",\n rightCenter: \"destra al centro\",\n rightBottom: \"destra in basso\",\n centerTop: \"centro in alto\",\n centerCenter: \"centro centro\",\n centerBottom: \"centro in basso\",\n label2: \"Ripetizione\",\n placeholder2: \"Scegli un'opzione\",\n noRepeat: \"Nessuna ripetizione\",\n repeat: \"Ripeti\",\n \"repeat-x\": \"Ripeti X\",\n \"repeat-y\": \"Ripeti Y\",\n space: \"Space\",\n round: \"Round\",\n },\n blockId: {\n placeholder: \"ID blocco\",\n label: \"ID blocco\",\n description:\n \"Gli identificativi consigliati per IA: breve descrizione, riguardo al workshop, cosa imparerai 1, cosa imparerai 2, cosa imparerai 3, a chi è dedicato, chi siamo, citazione\",\n },\n buttonAction: {\n label: \"Azione al completamento\",\n description:\n \"Specifica cosa succede dopo che una persona ha inviato le proprie informazioni tramite il modulo selezionato.\",\n placeholder: \"Scegli un'opzione\",\n label2: \"Link a\",\n placeholder2: \"Scegli un'opzione\",\n label3: \"Azione del link\",\n description3:\n \"Specifica se il link verrà aperto nella scheda corrente o in una nuova scheda.\",\n placeholder3: \"Scegli un'opzione\",\n callBackComplete: \"Testo che apparirà al completamento dell'azione\",\n callbacklinkTo: \"Link a\",\n completeDescription:\n \"Aggiungi un breve messaggio di conferma che le persone vedranno dopo aver inviato le proprie informazioni.\",\n linkDescription:\n \"La persona verrà reindirizzata a questo link dopo aver cliccato sul pulsante.\",\n label4: \"Link alla sezione dedicata allo spazio\",\n description4: \"Specifica se il collegamento sarà aperto nella scheda corrente del browser o in un'altra scheda o se il collegamento passerà a una sezione di questa pagina.\",\n selectSection: \"Seleziona sezione\",\n description5: \"Questa opzione ti consente di passare a una sezione specifica di questa pagina quando si fa clic sul collegamento.\",\n description6: \"Per selezionare la sezione, fare clic sul pulsante in basso e quindi fare clic sulla sezione a cui si desidera collegarsi.\",\n label5: \"La sezione è collegata!\",\n label6: \"URL del collegamento\",\n description7: \"Specificare il collegamento URL a cui verrà indirizzato l'utente\",\n label7: \"Si apre nella scheda corrente\",\n label8: \"Apre un'altra scheda\",\n label9: \"Fare niente\",\n label10: \"Reindirizzare l'utente a\",\n label11: \"Seleziona un'opzione\",\n label12: \"Un altro spazio\",\n label13: \"Collegamento personalizzato\",\n label14: \"Fare clic su una sezione della pagina\",\n },\n buttonBackgroundColor: {\n button: \"Resetta colore\",\n },\n buttonText: {\n placeholder: \"Testo pulsante\",\n label: \"Testo pulsante\",\n },\n fileName: {\n placeholder: \"Nome file\",\n label: \"Nome file\",\n },\n interactiveWaitTime: {\n label1: \"Seleziona un'opzione\",\n label2: \"Attendi fino ad una data\",\n label3: \"Attendi un numero di giorni\",\n label4: \"Data per mostrare il contenuto\",\n placeholder: \"Data per mostrare il contenuto\",\n label5: \"1 giorno\",\n label6: \"2 giorni\",\n label7: \"3 giorni\",\n label8: \"4 giorni\",\n label9: \"5 giorni\",\n label10: \"6 giorni\",\n label11: \"1 settimana\",\n label12: \"2 settimane\",\n label13: \"1 mese\",\n },\n linkAction: {\n label: \"Azione del link\",\n description:\n \"Specifica se il link verrà aperto nella scheda corrente o in una nuova scheda.\",\n placeholder: \"Scegli un'opzione'\",\n label2: \"Apri nella scheda corrente\",\n label3: \"Apri in una nuova scheda\",\n },\n margin: {\n topMargin: \"Margine superiore -\",\n text: \"Margine inferiore -\",\n bottom: \"Inferiore\",\n left: \"Sinistra\",\n leftMargin: \"Margine sinistro -\",\n right: \"Destra\",\n rightMargin: \"Margine destro\",\n },\n padding: {\n top: \"Superiore\",\n topPadding: \"Spaziatura interna superiore -\",\n bottom: \"Inferiore\",\n bottomPadding: \"Spaziatura interna inferiore -\",\n left: \"Sinistra\",\n leftPadding: \"Spaziatura interna a sinistra\",\n right: \"Destra\",\n rightPadding: \"Spaziatura interna a destra\",\n },\n radius: {\n square: \"Quadrato\",\n round: \"Arrotondato\",\n circle: \"Circolare\",\n },\n spaceAttrs: {\n addCover: \"Aggiungi immagine di copertina\",\n text: \"La dimensione consigliata per le immagini di copertina è 1200 x 300 pixel\",\n addCover2: \"Aggiungi immagine di copertina\",\n text2:\n \"La dimensione consigliata per le immagini di copertina è 1200 x 300 pixel\",\n removeCover: \"Rimuovi copertina\",\n },\n verticalAllignment: {\n top: \"In alto\",\n center: \"Centro\",\n bottom: \"In basso\",\n },\n width: {\n full: \"Intera\",\n size: \"3/4\",\n size2: \"1/2\",\n actual: \"Effettiva\",\n },\n },\n blockMenuActions: {\n label1: \"Aggiungi blocco\",\n label2: \"Aggiungi emoji\",\n label3: \"Configurazioni\",\n label4: \"Elimina\",\n label5: \"Sposta\",\n label6: \"Vai allo spazio o fai doppio clic sul blocco\",\n label7: \"Sostituisci\",\n label8: \"Allineamento\",\n left: \"Sinistra\",\n center: \"Centro\",\n right: \"Destra\",\n write: \"Scrivi qualcosa...\",\n label9: \"Aggiungi blocco\",\n label10: \"Intestazione 1\",\n h1: \"H1\",\n label11: \"Intestazione 2\",\n h2: \"H2\",\n label12: \"Aggiungi spazio\",\n label13: \"Aggiungi immagine\",\n label14: \"Aggiungi video\",\n label15: \"Aggiungi griglia\",\n label16: \"Aggiungi template\",\n label17: \"Aggiungi layout\",\n label18: \"Duplicare\",\n },\n blocksMenu: {\n basicBlock: \"Blocchi base\",\n mediaBlock: \"Blocchi Media\",\n contentBlock: \"Blocchi contenuto\",\n },\n blocksMenuInline: {\n file: \"File\",\n image: \"Immagine\",\n video: \"Video\",\n label1: \"Aggiungi emoji\",\n label2: \"Aggiungi immagine\",\n label3: \"Attiva/disattiva barra di strumenti\",\n },\n blocksMenuSimple: {\n label1: \"Aggiungi\",\n file: \"File\",\n image: \"Immagine\",\n video: \"Video\",\n audio: \"Audio\",\n label2: \"Aggiungi emoji\",\n label3: \"Aggiungi immagine\",\n label4: \"Mostra formattazione\",\n cancelButton: \"Annulla\",\n },\n emptyMessage: {\n text: \"Questo è uno spazio di contenuto vuoto. Puoi\",\n button1: \"modificare questa pagina\",\n text2: \"o\",\n button2: \"usare un template\",\n text3: \"per iniziare\",\n text4: \"Uno spazio vuoto con enorme potenziale...\",\n },\n fixedBottomMenu: {\n label1: \"Aggiungi elementi come titoli, immagini e video\",\n addBlock: \"Aggiungi blocco\",\n label2:\n \"Aggiungi uno spazio di contenuto, discussione o evento\",\n space: \"Spazio\",\n label3:\n \"Aggiungi una griglia per utilizzare più colonne per il contenuto\",\n grid: \"Griglia\",\n label4: \"Aggiungi un'opzione di design pre-creata\",\n layouts: \"Layout\",\n label5:\n \"Aggiungi un modello per configurare automaticamente il tuo spazio\",\n template: \"Template\",\n },\n formatMenu: {\n text: \"Testo\",\n smallText: \"Piccolo testo\",\n largeText: \"Grande testo\",\n heading1: \"Intestazione 1\",\n heading2: \"Intestazione 2\",\n heading3: \"Intestazione 3\",\n bulletedList: \"Elenco puntato\",\n orderedList: \"Elenco numerato\",\n text2: \"Testo\",\n label1: \"Formato\",\n text3: \"Testo\",\n numberedList: \"Elenco numerato\",\n label2: \"Allineamento\",\n left: \"Sinistra\",\n center: \"Centro\",\n right: \"Destra\",\n label3: \"Azione del link\",\n description:\n \"Specifica se il link verrà aperto nella scheda corrente o in una nuova scheda.\",\n placeholder: \"Scegli un'opzione\",\n label4: \"Si apre nella scheda corrente\",\n label5: \"Si apre in una nuova scheda\",\n label6: \"Formato del link\",\n description2:\n \"Specifica se il link verrà visualizzato come testo o come un link decorativo.\",\n placeholder2: \"Scegli un'opzione\",\n label7: \"Mostra come testo\",\n label8: \"Mostra come link stilizzato\",\n save: \"Salva\",\n delete: \"Elimina\",\n label9: \"Barrato\",\n label10: \"Sottolineato\",\n label11: \"Blocco codice\",\n label12: \"Colore del testo\",\n placeholder3: \"Valore HEX\",\n unsetColor: \"Rimuovi colore\",\n label13: \"Colore evidenziazione\",\n label14: \"Link alla sezione dedicata allo spazio\",\n description3: \"Specifica se il collegamento sarà aperto nella scheda corrente del browser o in un'altra scheda o se il collegamento passerà a una sezione di questa pagina.\",\n selectSection: \"Seleziona sezione\",\n description4: \"Questa opzione ti consente di passare a una sezione specifica di questa pagina quando si fa clic sul collegamento.\",\n description5: \"Per selezionare la sezione, fare clic sul pulsante in basso e quindi fare clic sulla sezione a cui si desidera collegarsi.\",\n label15: \"La sezione è collegata!\",\n label16: \"URL del collegamento\",\n description6: \"Specificare il collegamento URL a cui verrà indirizzato l'utente\",\n },\n formatMenuSimple: {\n t: \"T\",\n h1: \"H1\",\n h2: \"H2\",\n h3: \"H3\",\n label1: \"Azione del link\",\n description1:\n \"Specifica se il link verrà aperto nella scheda corrente o in una nuova scheda.\",\n placeholder1: \"Scegli un'opzione\",\n label2: \"Si apre nella scheda corrente\",\n label3: \"Si apre in una nuova scheda\",\n label4: \"Formato del link\",\n description2:\n \"Specifica se il link verrà visualizzato come testo o come un link stilizzato.\",\n placeholder2: \"Scegli un'opzione\",\n label5: \"Mostra come testo\",\n label6: \"Mostra come link stilizzato\",\n save: \"Salva\",\n delete: \"Elimina\",\n label7: \"Formato\",\n left: \"Sinistra\",\n center: \"Centro\",\n right: \"Destra\",\n placeholder3: \"Valore HEX\",\n placeholder4: \"Colore HEX\",\n unsetColor: \"Rimuovi colore\",\n },\n inlineMenu: {\n h1: \"H1\",\n h2: \"H2\",\n bulletList: \"Elenco puntato\",\n checkList: \"Checklist\",\n circle: \"Cerchio\",\n moreOption: \"Altre opzioni\",\n },\n interactiveInput: {\n hideResponses: \"Nascondi altre risposte\",\n showResponses: \"Mostra altre risposte\",\n hideResponses2: \"Nascondi risposte\",\n hidePrivateMessages: \"Nascondi messaggi privati\",\n showPrivateMessages: \"Mostra messaggi privati\",\n showResponses2: \"Mostra risposte\",\n loadMoreResponse: \"Carica altre risposte\",\n placeholder: \"Scrivi qualcosa...\",\n text: \"Vuoi che questa risposta sia visibile agli altri membri?\",\n },\n newMedia: {\n add: \"Aggiungi\",\n },\n regPageColor: {\n clearColor: \"Rimuovi colore\",\n },\n regPageColors: {\n text: \"Aspetto della pagina di registrazione\",\n applyAppearance: \"Applica aspetto\",\n title1: \"Seleziona colore di sfondo\",\n title2: \"Seleziona colore del testo\",\n label1: \"Colore di sfondo\",\n label2: \"Colore predefinito del testo \",\n label3: \"Amplia larghezza della pagina\",\n },\n resource: {\n areYouSure: \"Sei sicuro/a?\",\n label1: \"Si pubblicherà in questa data\",\n edit: \"Modifica\",\n addPage: \"Aggiungi pagina\",\n },\n sideBlocksMenuBak: {\n addBlock: \"Aggiungi blocco\",\n back: \"Indietro\",\n },\n sideBlocksMenu: {\n text: \"I layout sono opzioni di design già pronte da aggiungere al tuo spazio.\",\n text2:\n \"Inizia con una selezione di template a pagina intera personalizzabili\",\n layout: \"Layout\",\n template: \"Template\",\n addBlock: \"AGGIUNGI BLOCCO\",\n block: \"Blocchi\",\n },\n sideConfigurationsMenu: {\n title: \"IMPOSTAZIONI BLOCCO\",\n label1: \"Nome spazio e copertina\",\n label2: \"Attributi del file\",\n label3: \"Opzioni di input interattivo\",\n attrPlaceholder1: \"Scrivi qualcosa...\",\n attrLabel: \"Segnaposto\",\n attrLabel2:\n \"Permettere al membro di vedere tutte le risposte\",\n attrLabel3:\n \"Mostrare le risposte prima che il membro risponda\",\n attrLabel4:\n \"Permettere al membro di scegliere se la sua risposta sarà visibile agli altri membri\",\n attrLabel5: \"Permettere risposte multiple per persona\",\n attrLabel6:\n \"Permettere al membro di saltare questo prompt\",\n label4: \"Opzioni di input interattivo\",\n label5: \"Spaziatura interna\",\n label6: \"BLOCCO\",\n label7: \"COLONNA\",\n label8: \"Margine\",\n label9: \"GRIGLIA\",\n label10: \"Allineamento verticale\",\n label11: \"Opzioni del pulsante\",\n label12: \"Colore di sfondo del pulsante\",\n label13: \"Colore testo del pulsante\",\n text: \"Angoli del pulsante\",\n label14: \"Sfondo\",\n label15: \"Colore\",\n label16: \"Immagine\",\n label17: \"Ripristina\",\n resetBlock: \"Ripristina blocco\",\n label18: \"Allineamento\",\n label19: \"Raggio bordo\",\n label20: \"angoli\",\n label21: \"Nome blocco\",\n label22: \"Opzioni di notifica e-mail\",\n label23: \"Invia e-mail di notifica\",\n attrLabel8: \"Includi messaggio personalizzato\",\n attrLabel9: \"Includi contenuto sezione successiva\",\n attrLabel10: \"Includi contenuto completo\",\n attrLabel11: \"Anteprima breve\",\n attrLabel12: \"Oggetto\",\n attrLabel13: \"Messaggio\",\n defaultWaitLabel: \"La prossima sezione è stata rilasciata in {{space_name}}\",\n defaultWaitMessage: \"Ciao {{first_name}}, volevo solo farti sapere che è stata rilasciata la prossima sezione in {{space_name}}. {{space_link_button}}\"\n },\n takeSurvey: {\n text: \"Questo sondaggio è vuoto\",\n },\n tiptapAi: {\n placeholder: \"Scrivi una breve descrizione\",\n label:\n \"Per favore, scrivi 2 o 3 frasi per descrivere la tua offerta\",\n placeholder2: \"ad esempio, coach, consulenti ed altri professionisti di terapia olistica.\",\n label2: \"Per chi è questa offerta?\",\n text: \"Ciao, stiamo sperimentando la nuova funzionalità di Intelligenza Artificiale. Vuoi che Sutra utilizzi l'IA per generare automaticamente il testo del tuo template?\",\n },\n uploader: {\n label1: \"Link\",\n label2: \"Codice\",\n placeholder: \"Incolla il link dell'immagine o del file\",\n label3: \"Incorpora link\",\n placeholder2:\n \"Incolla il codice da incorporare -> \",\n label4: \"Incorpora codice\",\n saveEmbed: \"Salva incorporamento\",\n placeholder3: \"Cerca immagini\",\n saveImage: \"Salva immagine\",\n },\n viewPage: {\n text: \"Questa pagina è vuota\",\n },\n },\n },\n users: {\n payment: {\n completePayment: \"Completa il pagamento\",\n join: \"Unisciti allo spazio\",\n pay: \"Pagare\",\n },\n stepper: {\n step1: \"Passaggio 1\",\n step1Description: \"Accedi\",\n step2: \"Passaggio 2\",\n step2Description: \"Completa il pagamento\",\n step3: \"Passaggio 3\",\n step3Description: \"Ottieni l'accesso\",\n },\n start: {\n title: \"Benvenuto/a\",\n subtitle: \"Inserisci il tuo indirizzo email\",\n email: \"Email\",\n submit: \"Continua\",\n invalidEmailErrorMsg: \"Indirizzo email non valido\",\n },\n signIn: {\n title: \"Accedi al tuo account\",\n subtitle: \"Non hai un account?\",\n subtitleLink: \"Registrati\",\n email: \"Email\",\n password: \"Password\",\n submit: \"Accedi\",\n magicLink: \"Richiedi un link magico\",\n forgotPassword: \"Password dimenticata?\",\n invalidEmailErrorMsg: \"Indirizzo email non valido\",\n },\n signUp: {\n invalidEmailErrorMsg: \"Indirizzo email non valido\",\n invalidPasswordErrorMsg:\n \"La password deve contenere almeno 8 caratteri\",\n invalidFirstNameErrorMsg:\n \"Il nome deve contenere almeno 3 caratteri\",\n title: \"Crea un nuovo account\",\n subtitle: \"Hai già un account?\",\n subtitleLink: \"Accedi\",\n firstName: \"Nome\",\n lastName: \"Cognome\",\n username: \"Nome utente\",\n email: \"Email\",\n password: \"Password\",\n emailNewsletterConfirmation:\n \"Iscriviti alla newsletter di Sutra per scoprire i nostri webinar gratuiti sui processi di gruppo, insegnamento trasformativo, e business basato sulle relazioni.\",\n submit: \"Registrati\",\n legalPrefix: \"Iscrivendoti a Sutra accetti i nostri\",\n terms: \"Termini di servizio\",\n privacy: \"Politica sulla Privacy\",\n },\n spaceReference: {\n total: \"Totale oggi\",\n },\n planReference: {\n total: \"Totale\",\n total_today: \"Totale oggi\",\n due_in: \"Dovuto in 14 giorni\",\n paymentDetails: {\n annual: \"Abbonamento annuale di\",\n month: \"Abbonamento mensile di\",\n },\n },\n resetPassword: {\n title: \"Reimposta la tua password\",\n subtitle:\n \"Inserisci una nuova password per il tuo account Sutra qui di seguito.\",\n password: \"Password\",\n passwordConfirmation: \"Conferma la password\",\n submit: \"Reimposta password\",\n },\n recover: {\n title: \"Hai dimenticato la password?\",\n subtitle:\n \"Inserisci il tuo indirizzo email e ti invieremo le istruzioni su come recuperare la tua password.\",\n email: \"Email\",\n submit: \"Inviami le istruzioni\",\n footer: \"Hai già un account?\",\n footerLink: \"Accedi\",\n },\n magicLink: {\n invalidEmailErrorMsg: \"Email non valido\",\n title: \"Richiedi un link magico\",\n subtitle:\n \"Inserisci il tuo indirizzo email e ti invieremo un link che ti permetterà di accedere automaticamente.\",\n email: \"Email\",\n submit: \"Continua\",\n footer: \"Accedi con email\",\n alertTitle: \"Ci sei quasi...\",\n alertMessage:\n \"Abbiamo inviato un link di accesso diretto alla tua email. QUESTO È UN TEST, NON È STATA INVIATA NESSUNA EMAIL EFFETTIVA.\",\n },\n edit: {\n title: \"Completa il tuo profilo\",\n addProfileImage: \"Carica la foto del profilo\",\n removeProfileImage: \"Rimuovi la foto del profilo\",\n bioPlaceholder: \"Racconta qualcosa su di te...\",\n bio: \"Presentazione\",\n submit: \"Salva\",\n skip: \"Salta e fai questo in seguito\",\n },\n magicSignin: {\n text: \"Accesso in corso...\",\n },\n profile: {\n button: \"Messaggio\",\n button2: \"Modifica profilo\",\n title: \"Spazi\",\n },\n profileModal: {\n profile: \"Profilo\",\n message: \"Messaggio\",\n editProfile: \"Modifica profilo\",\n openProfile: \"Visualizza profilo\",\n spaces: \"Spazi\",\n selectImage: \"Seleziona immagine\",\n },\n signOut: {\n loggedOUt: \"Disconnesso\",\n title: \"Ti sei disconnesso\",\n message: \"A presto!\",\n },\n },\n errors: {\n basic: \"Ops, qualcosa è andato storto!\",\n },\n },\n },\n fr: {\n translation: {\n premiumFeatures: {\n personal: {\n description1:\n \"Des espaces et des membres illimités pour organiser des contenus et des conversations pour toutes vos offres\",\n description2:\n \"De belles pages d'inscription et de destination pour tous vos programmes et événements au même endroit\",\n description3:\n \"Envoyez des newsletters par e-mail à tous vos participants avec notre puissante fonction d'envoi en masse\",\n },\n professional: {\n description:\n \"Aucun frais de transaction sur les paiements collectés\",\n description2:\n \"Options de personnalisation de la marque et du design, et sous-domaines URL personnalisés\",\n description3:\n \"Automatisations illimitées et expériences d'apprentissage interactives et conversationnelles\",\n description4: \"Jusqu'à 2 responsables pour tous vos espaces\",\n },\n organization: {\n description:\n \"Aucun frais de transaction sur les paiements collectés\",\n description2: \"Assistance client avancée\",\n description3: \"Gestionnaires illimités\",\n description4: \"Option d'intégration Single Sign On\",\n },\n },\n premiumMessages: {\n can_auto_tag: {\n title: \"Upgrade to use this feature\",\n message: \"Auto tagging with AI is a premium feature available on the Professional plan.\"\n },\n can_use_zoom_recordings: {\n title: \"Upgrade to use this feature\",\n message: \"Zoom recordings is a premium feature available on the Organization plan.\"\n },\n can_create_quizzes: {\n title: \"Upgrade to use this feature\",\n message: \"Quizzes are a premium feature available on the Organization plan.\"\n },\n can_duplicate_spaces: {\n title: \"Upgrade to use this feature\",\n message:\n \"Duplicating a space is a premium feature available on the Professional plan.\",\n },\n can_save_templates: {\n title: \"Upgrade to use this feature\",\n message:\n \"Saving as space as a reusable template is a premium feature available on the Professional plan.\",\n },\n can_edit_shareable_link: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"Les liens partageables personnalisés sont une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_upload_cover: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"Le téléchargement d'une image de couverture personnalisée est une fonctionnalité premium disponible dans le plan Personnel.\",\n },\n\n can_upload_logo: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La définition d'un logo personnalisé est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_set_layout: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La personnalisation de la mise en page de votre espace est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_set_theme: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La personnalisation du thème couleur de votre espace est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_set_format: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La modification du format de votre espace est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_add_step_send_to_pending: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La définition des nouveaux membres comme étant en attente est une fonctionnalité premium disponible dans le plan Personnel.\",\n },\n\n can_add_step_send_email: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'envoi d'e-mails automatisés est une fonctionnalité premium disponible dans le plan Personnel.\",\n },\n\n can_add_add_to_existing_space: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'ajout automatique de membres à des espaces spécifiques est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_add_step_wait: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'ajout d'une condition d'attente pour des étapes supplémentaires est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_add_step_webhook: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'ajout de webhooks est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_add_step_survey_person: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La réalisation de sondages auprès des nouveaux membres est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_schedule_states: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"Les options de planification automatisée pour votre espace sont une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_broadcast: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'envoi de diffusions par e-mail est une fonctionnalité premium disponible dans le plan Personnel.\",\n },\n\n can_survey: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La création de sondages est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_use_interest_form_block: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'ajout de formulaires d'intérêt est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n can_use_interactive_block: {\n title: \"Mettez à niveau pour utiliser cette fonction\",\n message:\n \"L'ajout de blocs interactifs est une fonctionnalité premium disponible dans le plan professionnel.\",\n },\n\n can_set_flexible_payments: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La définition d'options de paiement flexibles est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_activate_completions: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La possibilité de marquer des espaces comme étant terminés est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n max_allowed_spaces: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"Salut ! Il semble que vous ayez utilisé tous vos espaces gratuits. La mise à niveau vers le plan Personnel vous offre des espaces et des membres illimités pour que vous puissiez créer pratiquement tout.\",\n },\n max_allowed_ij: {\n title: \"Upgrade to use this feature\",\n message:\n \"You can only add up to 2 discussion prompts per space on the free plan. Please upgrade to the Professional plan to add unlimited discussion prompts to any space.\",\n },\n\n max_allowed_managers_pro: {\n title: \"Mettez à niveau pour ajouter plus de responsables\",\n message:\n \"Mettez à niveau vers le plan Professionnel pour ajouter jusqu'à 2 responsables à votre espace ou vers le plan Organisation pour des responsables illimités.\",\n },\n\n max_allowed_managers_org: {\n title: \"Mettez à niveau pour ajouter plus de responsables\",\n message:\n \"Mettez à niveau vers le plan Organisation pour ajouter des responsables illimités à votre espace.\",\n },\n\n can_see_participation_tab: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"Les statistiques de participation sont une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n\n can_send_selective_broadcast: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La diffusion sélective est une fonctionnalité premium disponible dans le plan Organisation.\",\n },\n\n can_send_message_broadcast: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"La diffusion de messages est une fonctionnalité premium disponible dans le plan Organisation.\",\n },\n can_schedule_broadcast: {\n title: \"Upgrade to use this feature\",\n message:\n \"Scheduling broadcasts is a premium feature available on the Silver plan.\",\n },\n can_add_from_children: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'ajout automatique de membres à partir des sous-espaces est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n can_add_to_direct_open_children: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'ajout automatique des nouveaux membres à tous les sous-espaces directs ouverts est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n can_send_message: {\n title: \"Mettez à niveau pour utiliser cette fonctionnalité\",\n message:\n \"L'envoi automatique de messages directs aux nouveaux membres est une fonctionnalité premium disponible dans le plan Professionnel.\",\n },\n can_create_registration_page: {\n title: \"Upgrade to use this feature\",\n message: \"Creating custom registration and landing pages is a premium feature available on the Bronze plan.\"\n },\n can_create_coupon: {\n title: \"Upgrade to use this feature\",\n message: \"Creating coupon codes is a premium feature available on the Silver plan.\"\n },\n can_create_bundles: {\n title: \"Upgrade to use this feature\",\n message: \"Creating bundles is a premium feature available on the Silver plan.\"\n },\n },\n home: {\n sidebar: {\n createButton: \"Nouvel espace\",\n spaces: \"Vos espaces\",\n invitations: \"Invitations\",\n directMessages: \"Messages directs\",\n gettingStarted: \"Obtenir commencé\",\n scheduleDemo: \"Planifier une démo\",\n upgrade: \"Mettre à niveau votre plan\",\n promoBoxTitle:\n \"Rejoignez des centaines de créateurs utilisant les fonctionnalités avancées de Sutra pour offrir de puissantes expériences de groupe en ligne\",\n promoBoxItem1: \"Espaces illimités\",\n promoBoxItem2: \"Options de personnalisation complètes\",\n promoBoxItem3: \"Gestionnaires supplémentaires\",\n promoBoxButton: \"Mettre à niveau maintenant\",\n },\n spacesList: {\n yourSpaces: \"Vos espaces\",\n directMessagesTitle: \"Messages directs\",\n invitationsTitle: \"Invitations\",\n topTitle: \"Espaces de niveau supérieur\",\n managedTitle: \"Espaces gérés\",\n allTitle: \"Tous les espaces\",\n archivedTitle: \"Espaces archivés\",\n deletedTitle: \"Espaces supprimés\",\n pendingTitle: \"Espaces programmés\",\n directMessages: \"Direct\",\n top: \"Niveau supérieur\",\n managed: \"Géré\",\n all: \"Tous\",\n archived: \"Archivé\",\n invitations: \"Invitations\",\n deleted: \"Supprimé\",\n pending: \"Programmé\",\n empty: \"Vous n'avez rien\",\n tabTitle: \"Sutra - Tableau de bord\",\n learn: \"Apprenez les bases\",\n createFirst: \"Créez votre premier espace\",\n },\n },\n app: {\n payment: {\n payment: {\n tabTitle: \"Sutra - Formulaire de paiement\",\n title: \"Paiement complet\",\n },\n planOption: {\n frequencyDescription1: \"par mois\",\n frequencyDescription2: \"par mois avec facturation annuelle\",\n currentPlan: \"Plan actuel\",\n billedMonthly: \"Facturé mensuellement\",\n billedAnnually: \"Facturé annuellement\",\n },\n stripeForm: {\n due_in_trial: \"Dû dans 14 jours\",\n pay: \"Payer\",\n },\n },\n gettingStarted: {\n items: {\n setup: \"Configuration de votre espace de programme\",\n privacy: \"Paramètres de confidentialité et de paiement\",\n registration: \"Création d'une page d'inscription\",\n invitations: \"Invitation des participants\",\n settings: \"Fonctionnement des paramètres d'espace\",\n interactive: \"Parcours interactifs\",\n interest: \"Formulaires d'intérêt\",\n appearance: \"Mise en page et thèmes de couleur\",\n grids: \"Paramètres de grille et de blocs\",\n broadcasts: \"Envoi de diffusions par e-mail\",\n tagging: \"Balises\",\n emojis: \"Emojis de la barre latérale\",\n },\n\n templates: {\n groupprogram: {\n label: \"Programme de groupe\",\n description:\n \"Un espace de programme où vous pouvez organiser tout ce dont vous avez besoin pour un groupe de personnes qui apprennent ensemble.\",\n },\n zoomworkshop: {\n label: \"Atelier Zoom\",\n description:\n \"Organisez tout ce dont vous avez besoin pour un atelier simple basé sur Zoom.\",\n },\n mastermind: {\n label: \"Mastermind\",\n description:\n \"Invitez un groupe de personnes à participer à un processus de mastermind ensemble.\",\n },\n selfpacedcourse: {\n label: \"Cours à votre rythme\",\n description:\n \"Un modèle flexible pour créer un cours à votre rythme.\",\n },\n communityspace: {\n label: \"Espace communautaire\",\n description:\n \"Réunissez les gens dans un espace communautaire en ligne dynamique qui grandit à mesure que votre communauté se développe.\",\n },\n oneononecoaching: {\n label: \"Coaching individuel\",\n description:\n \"Créez un espace dédié pour chacun de vos clients en coaching.\",\n },\n },\n loading: {\n text: \"Votre modèle se charge, veuillez patienter...\",\n },\n tabTitle: \"Sutra - Démarrage\",\n mainTitle: \"Guide de démarrage\",\n selectTemplate: \"Sélectionner ce modèle\",\n advanceFeatures: \"Fonctionnalités avancées\",\n welcome: \"Bienvenue\",\n description1:\n \"Sutra facilite l'organisation de contenu et de conversations pour les cours, les communautés, le coaching individuel et bien plus encore. Apprenez les bases dans cette vidéo de cinq minutes.\",\n watchVideo: \"Regarder la vidéo\",\n createFirstSpace: \"Créer votre premier espace\",\n gettingStartedGuide: \"Guide de démarrage\",\n description2:\n \"Découvrez comment Sutra fonctionne et commencez avec une liste de lancement et des conseils plus détaillés.\",\n checkOutTheGuide: \"Consulter le guide\",\n startWithATemplate: \"Commencer avec un modèle\",\n description3:\n \"Découvrez comment Sutra fonctionne et commencez avec une liste de lancement et des conseils plus détaillés.\",\n learnAbout: \"Découvrez les fonctionnalités avancées\",\n description4:\n \"Sutra est conçu pour être flexible et puissant afin de répondre à presque tous les cas d'utilisation. Vous pouvez créer des expériences interactives uniques, capturer l'intérêt pour vos différentes offres, envoyer des newsletters par e-mail et recueillir des connaissances collectives.\",\n learnmore: \"En savoir plus\",\n },\n premium: {\n try: \"Essayez Sutra\",\n include: \"Les fonctionnalités incluent\",\n upgrade: \"Mettre à niveau maintenant\",\n },\n pricing: {\n tabTitle: \"Sutra - Tarification\",\n upgrade: \"Mettez à niveau votre plan\",\n text: \"Quelles que soient vos besoins pour votre cours ou votre communauté, nous sommes là pour soutenir votre travail. N'hésitez pas à nous contacter si vous avez des questions à support@sutra.co.\",\n },\n scheduleDemo: {\n tabTitle: \"Sutra - Planifier une démonstration\",\n },\n welcome: {\n tabTitle: \"Sutra - Bienvenue\",\n title: \"Bienvenue sur Sutra !\",\n description1:\n \"Nous sommes ravis de vous accueillir ici. Prenez un moment pour regarder la vidéo ci-dessous...\",\n description2:\n \"Aimeriez-vous essayer l'un de nos plans payants gratuitement ?\",\n description3:\n \"Sélectionnez un plan ci-dessous pour commencer un essai gratuit de 14 jours. Une fois l'essai terminé, vous serez automatiquement facturé pour le plan que vous avez sélectionné.\",\n yes: \"Oui, montrez-moi les options\",\n no: \"Non, merci\",\n },\n },\n layout: {\n userButton: {\n home: \"Accueil\",\n viewProfile: \"Voir le profil\",\n settings: \"Paramètres\",\n support: \"Support\",\n language: \"Langue\",\n terms: \"Conditions et confidentialité\",\n logout: \"Déconnexion\",\n copyright: \"Sutra Spaces, LLC © 2022\",\n },\n directMessages: {\n label: \"Messages directs\",\n actionButton: \"Voir tous\",\n empty: \"Vous n'avez aucun message direct\",\n directMessage: \"Messages directs\",\n },\n notifications: {\n label: \"Notifications\",\n actionButton: \"Tout effacer\",\n empty: \"Vous n'avez aucune notification\",\n notification: \"Notifications\",\n },\n headerContent: {\n registrationPage: \"Page d'inscription\",\n nonManagersHidden: \"En-tête masqué pour les non-gestionnaires\",\n },\n search: {\n reflection: \"Réflexion\",\n comment: \"Commentaire\",\n allSpaces: \"Tous les espaces\",\n withinTop: \"Dans l'espace de niveau supérieur\",\n withinSpace: \"Dans cet espace\",\n everything: \"Tout\",\n titlesOnly: \"Titres uniquement\",\n tagsOnly: \"Balises uniquement\",\n content: \"Contenu\",\n discussion: \"Discussion\",\n events: \"Événements\",\n users: \"Utilisateurs\",\n placeholder: \"Recherche...\",\n nothingFound: \"Rien trouvé\",\n search: \"Rechercher\",\n },\n uploader: {\n pending: \"En attente\",\n used: \"Utilisé\",\n uploading: \"Téléchargement en cours\",\n finishing: \"Finition\",\n processing: \"en cours\",\n completed: \"complété\",\n },\n },\n resources: {\n pages: {\n form: {\n label: \"Titre\",\n placeholder: \"Quel est le sujet de votre page ?\",\n create: \"Créer une page\",\n save: \"Enregistrer la page\",\n },\n },\n form: {\n title: {\n label: \"Titre\",\n placeholder: \"Quel est votre sujet ?\",\n },\n publish: {\n label: \"Publier à la date\",\n },\n date: {\n label: \"Sélectionner une date\",\n },\n update: \"Mettre à jour la collection de pages\",\n create: \"Créer une collection de pages\",\n },\n },\n settings: {\n editProfile: {\n tabTitle: \"Sutra - Modifier le profil\",\n editProfile: \"Modifier le profil\",\n firstName: \"Prénom\",\n lastName: \"Nom de famille\",\n username: \"Nom d'utilisateur\",\n email: \"Email\",\n removeProfileImage: \"Supprimer l'image de profil\",\n addProfileImage: \"Ajouter une image de profil\",\n about: \"À propos de\",\n location: \"Emplacement\",\n bio: \"Bio\",\n bioPlaceholder: \"Parlez un peu de vous...\",\n updateProfile: \"Mettre à jour le profil\",\n },\n accountSettings: {\n accountSettings: \"Paramètres du compte\",\n changePassword: \"Changer le mot de passe\",\n currentPassword: \"Mot de passe actuel\",\n newPassword: \"Nouveau mot de passe\",\n newPasswordConfirmation: \"Confirmation du nouveau mot de passe\",\n updatePassword: \"Mettre à jour le mot de passe\",\n advanced: \"Avancé\",\n deleteAccount: \"Supprimer le compte\",\n warning: \"Avertissement\",\n deleteAccountWarning:\n \"La suppression de votre compte est irréversible et supprimera définitivement vos informations de compte de notre système.\",\n closeYourAccount: \"Fermer votre compte\",\n invalidCurrentPasswordErrorMsg: \"Ne peut pas être vide\",\n invalidPasswordErrorMsg:\n \"Le mot de passe doit contenir au moins 8 caractères\",\n invalidPasswordConfirmationErrorMsg:\n \"Les mots de passe ne correspondent pas\",\n deleteAccountAlert: {\n title: \"Important\",\n message:\n \"La suppression de votre compte est irréversible et supprimera définitivement vos informations de compte de notre système\",\n input:\n \"Veuillez saisir 'supprimer mon compte' pour confirmer cette action\",\n confirmButton: \"Supprimer définitivement\",\n cancelButton: \"Annuler\",\n },\n cancelSubscriptionAlert: {\n title: \"Important\",\n message: \"Veuillez d'abord annuler votre abonnement\",\n confirmButton: \"Aller à la facturation\",\n cancelButton: \"Je le ferai plus tard\",\n },\n stripeAccount: {\n title: \"Réinitialiser la connexion Stripe\",\n alertTitle: \"Êtes-vous sûr ?\",\n alertMessage:\n \"Si vous réinitialisez votre connexion Stripe, vos identifiants Stripe seront supprimés de votre compte utilisateur sur Sutra et vous pourrez connecter un nouveau compte Stripe.\",\n buttonText: \"Réinitialiser la connexion\",\n confirmButton: \"Oui\",\n cancelButton: \"Non\",\n confirmTitle: \"Êtes-vous sûr ?\",\n confirmMessage:\n \"Vos identifiants Stripe seront supprimés de votre compte utilisateur sur Sutra\",\n },\n },\n emailPreferences: {\n tabTitle: \"Sutra - Préférences de messagerie\",\n emailPreferences: \"Préférences de messagerie\",\n emailDigestPreferences: \"Préférences du résumé par e-mail\",\n emailDigestFrequency: \"Fréquence du résumé par e-mail\",\n emailDigestMessage:\n \"Pour ajuster les préférences de messagerie par espace, veuillez consulter la zone des paramètres d'abonnement. Vous pouvez vous désabonner complètement d'un espace en le quittant, ou vous pouvez définir chaque espace individuel sur 'Muet' dans la zone des paramètres d'abonnement.\",\n receiveWeeklyDigest:\n \"Recevoir un résumé hebdomadaire des nouveaux éléments marqués et des discussions\",\n receiveAtMentions:\n \"Recevoir une notification lorsque quelqu'un vous mentionne avec @\",\n receiveLikes: \"Receive a notification when someone hearts your post\",\n },\n subscriptions: {\n frequencyOptions: \"Options de fréquence\",\n otherActions: \"Autres actions\",\n subscriptions: \"Préférences spécifiques à l'espace\",\n searchBySpaceName: \"Rechercher par nom d'espace\",\n search: \"Rechercher\",\n clear: \"Effacer\",\n options: \"Options\",\n otherActions: \"Autres actions\",\n emptySubscriptions: \"Vous n'avez aucune souscription.\",\n leaveSpaceConfirmationTitle:\n \"Êtes-vous sûr de vouloir quitter cet espace ?\",\n leaveSpaceConfirmationHtml:\n \"Vous ne serez plus membre de cet espace et il se peut que vous ne puissiez pas le rejoindre sans demander à l'administrateur.\",\n leaveSpaceButtonText: \"Oui, quitter\",\n leaveSpaceDenyButtonText: \"Non\",\n leaveSpace: \"Quitter l'espace\",\n unsubscribe: \"Se désabonner\",\n unsubscribed: \"Désabonné\",\n },\n digestPreferences: {\n digestedLabel:\n \"Groupe toutes les mises à jour dans un seul résumé\",\n digestedDescription:\n \"Les nouveaux messages de tous vos espaces seront regroupés dans une seule mise à jour par e-mail.\",\n undigestedLabel: \"Groupe les mises à jour par espace\",\n undigestedDescription:\n \"Vous recevrez des résumés d'e-mails distincts pour chaque espace contenant de nouveaux messages.\",\n },\n billing: {\n statuses: {\n pending: \"En attente\",\n processing: \"En cours de traitement\",\n paid: \"Payé\",\n trial: \"Trial\",\n },\n paymentMethod: {\n currentPaymentMethod: \"Méthode de paiement actuelle\",\n noCurrentPaymentMethod: \"Aucune méthode de paiement actuelle\",\n addNewPaymentMethod: \"Ajouter une nouvelle méthode de paiement\",\n },\n stripe: {\n updatePaymentMethod: \"Mettre à jour la méthode de paiement\",\n },\n tabTitle: \"Sutra - Facturation\",\n updatePaymentMethodMayus: \"METTRE À JOUR LA MÉTHODE DE PAIEMENT\",\n payments: \"PAIEMENTS\",\n pdf: \"PDF\",\n noPayments: \"Vous n'avez aucun historique de paiement\",\n billing: \"Facturation\",\n upgradePlan: \"Passer à un plan supérieur\",\n changePlan: \"Changer de plan\",\n updatePaymentMethod: \"Mettre à jour la méthode de paiement\",\n cancelSubscription: \"Annuler l'abonnement\",\n cancelConfirmationTitle:\n \"Êtes-vous sûr de vouloir annuler votre abonnement ?\",\n cancelConfirmationHtml:\n \"Vous n'aurez plus accès aux fonctionnalités premium de votre plan.\",\n cancelConfirmButtonText: \"Oui, annuler\",\n cancelDenyButtonText: \"Non\",\n billingHistory: \"Historique de facturation\",\n tableDate: \"Date\",\n tableAmount: \"Montant\",\n tableStatus: \"Statut\",\n tableInvoice: \"Facture\",\n planPrefix: \"Vous êtes actuellement sur le\",\n planSuffix: \"plan\",\n updatePayment: {\n success: {\n title: \"Succès\",\n message: \"Votre méthode de paiement a été mise à jour\",\n },\n error: {\n title: \"Oops, quelque chose s'est mal passé !\",\n },\n },\n },\n frequencyOptions: {\n mute: \"Muet\",\n always: \"À chaque message\",\n hour1: \"Toutes les heures\",\n hour2: \"Toutes les 2 heures\",\n hour4: \"Toutes les 4 heures\",\n hour8: \"Toutes les 8 heures\",\n hour24: \"Une fois par jour\",\n hour168: \"Une fois par semaine\",\n hour336: \"Toutes les deux semaines\",\n },\n affiliates: {\n history: {\n empty: \"Vous n'avez aucun historique de paiement d'affilié\",\n table: {\n referralName: \"Nom du parrainage\",\n startAt: \"Commencer à\",\n endAt: \"Fin\",\n createdAt: \"Créé le\",\n percent: \"Pourcentage\",\n total: \"Total gagné\",\n status: \"Statut\",\n value: \"Valeur\",\n revenue: \"Revenu\",\n payAt: \"Payer le\",\n status: \"Statut\",\n },\n statuses: {\n null: \"En attente\",\n pending: \"En attente\",\n processing: \"En cours de traitement\",\n paid: \"Payé\",\n },\n paymentsHistory: \"Historique de paiement\",\n },\n tabTitle: \"Sutra - Affiliés\",\n title: \"Affiliés\",\n affiliateLink: \"Voici votre lien d'affilié\",\n copyMessage: \"Lien copié dans le presse-papiers\",\n stripeTitle: \"Stripe connecté à\",\n stripeConnected:\n \"Il s'agit de l'identifiant de votre compte Stripe. Pour trouver cet identifiant sur Stripe, veuillez cliquer sur le lien pour vous connecter à Stripe et faire défiler jusqu'au bas de la page des paramètres de votre compte.\",\n stripeDisconnect: \"Déconnecter\",\n description:\n \"Pour traiter les paiements du programme d'affiliation, veuillez connecter votre compte Stripe en cliquant sur le bouton ci-dessous.\",\n description2:\n \"Lorsque vous partagez ce lien avec d'autres personnes, vous recevrez automatiquement 40% la première année de revenus générés par toute personne qui s'inscrit à un compte payant Sutra.\",\n connect: \"Connecter Stripe\",\n historyLabel: \"Historique des affiliés\",\n },\n },\n spaces: {\n settings: {\n layout: {\n navbarContent: {\n mainSettings: \"Paramètres généraux\",\n members: \"Membres\",\n broadcast: \"Diffusion\",\n surveys: \"Sondages\",\n structures: \"Structures\",\n sutraAdmin: \"Administrateur Sutra\",\n scheduled: \"Planifié\",\n archived: \"Archivé\",\n participation: \"Participation\",\n },\n headerActions: {\n shareableLink: \"LIEN PARTAGEABLE\",\n },\n },\n main: {\n title: \"Réglages généraux\",\n main: {\n invite: \"Inviter\",\n shareableLink: \"Lien partageable\",\n cancelLink: \"Annuler\",\n saveLink: \"Enregistrer\",\n editLinkButton: \"Modifier le lien\",\n subdomain: \"Votre sous-domaine\",\n sutra_co: \".sutra.co\",\n label1: \"Lien copié dans le presse-papiers\",\n privacySetting:\n \"Sélectionnez un paramètre de confidentialité\",\n title1: \"Rendre cet espace accessible au public\",\n description1:\n \"Cet espace se trouve dans un espace privé et n'est visible que par les membres de cet espace. Vous pouvez le rendre accessible au public en dehors de cet espace en activant ce paramètre.\",\n title2: \"Afficher la page d'inscription\",\n description2:\n \"Les non-membres verront une page d'inscription lorsqu'ils essaieront d'accéder à cet espace si ce paramètre est activé.\",\n title3: \"Utiliser la page d'inscription héritée\",\n description3:\n \"Si ce paramètre est activé, cet espace utilisera la page d'inscription conçue avec notre éditeur hérité.\",\n onButton: \"ACTIVÉ\",\n offButton: \"DÉSACTIVÉ\",\n editButton: \"Modifier la page\",\n previewButton: \"Aperçu de la page\",\n label2: \"Paramètres de confidentialité et de paiement\",\n label3: \"Paramètres de la page d'inscription\",\n description4:\n \"Actif - Les personnes arriveront sur une page d'inscription avant de pouvoir accéder à cet espace\",\n label4: \"Automatisation\",\n description5:\n \"Planifiez des e-mails et ajoutez automatiquement des personnes à des espaces lors de leur inscription\",\n label5: \"Paramètres de planification\",\n description6:\n \"Définissez une date d'événement ou des options de publication et d'archivage\",\n label6: \"Paramètres supplémentaires\",\n description7:\n \"Autorisations de création de contenu, visibilité des membres, notifications des gestionnaires et espaces parent\",\n label7: \"Paramètres de référencement (SEO)\",\n description8:\n \"Définissez le titre, la description et l'image des balises méta pour le partage social et l'optimisation des moteurs de recherche\",\n label8: \"Ouvert\",\n description9: \"Tout le monde peut accéder à cet espace\",\n label9: \"Privé\",\n description10:\n \"Cet espace est privé et les personnes doivent être invitées à le rejoindre\",\n label10: \"Payant\",\n description11:\n \"Cet espace est payant et privé. Les personnes doivent payer pour y accéder\",\n description12:\n \"Les personnes arriveront sur une page d'inscription avant de pouvoir accéder à cet espace ouvert.\",\n description13:\n \"Les personnes arriveront directement dans cet espace lorsqu'elles accèdent à cet espace ouvert.\",\n description14:\n \"Les personnes doivent être directement invitées à accéder à cet espace privé. Si elles sont invitées, elles verront une page d'inscription.\",\n description15:\n \"Les personnes doivent être directement invitées à accéder à cet espace privé. Si elles sont invitées, elles verront une page de création de compte sans page d'inscription.\",\n description16:\n \"Les personnes arriveront sur une page d'inscription avant de pouvoir accéder à cet espace payant.\",\n description17:\n \"Les personnes arriveront sur une page de création de compte et de paiement avant de pouvoir accéder à cet espace payant. Elles ne verront pas de page d'inscription.\",\n on: \"ACTIVÉ\",\n off: \"DÉSACTIVÉ\",\n label11: \"Membres\",\n label12: \"En attente\",\n label13: \"Intéressés\",\n label14: \"Invités\",\n label15: \"Paiements\",\n label16: \"Image de marque\",\n },\n additional: {\n allowMembersEdit:\n \"Autoriser les membres à modifier le contenu de cette page\",\n membersWillAddContent:\n \"Les membres pourront ajouter et modifier le contenu de cette page\",\n allowMembersCreatePosts:\n \"Autoriser les membres à créer de nouveaux articles\",\n membersWillCreatePosts:\n \"Les membres pourront créer de nouveaux articles dans cet espace\",\n allowMembersCreateEvents:\n \"Autoriser les membres à créer de nouveaux événements\",\n membersWillCreateEvents:\n \"Les membres pourront créer de nouveaux événements dans cet espace\",\n allowMembersCreateSubspaces:\n \"Autoriser les membres à créer de nouveaux sous-espaces\",\n membersWillCreateSubspaces:\n \"Les membres pourront créer des sous-espaces sur cette page\",\n membersCanCreate: \"Les membres peuvent créer\",\n circleCreation: {\n options: {\n discussion: \"Espaces de discussion\",\n content: \"Espaces de contenu\",\n event: \"Espaces d'événement\",\n },\n placeholder:\n \"Sélectionnez les types d'espaces que les membres peuvent créer dans cet espace\",\n },\n allowMembersToCopy: {\n description1:\n \"Autoriser les membres à copier des membres entre les espaces\",\n description2:\n \"Les membres auront la possibilité d'ajouter automatiquement des membres d'autres cercles\",\n },\n podType: {\n description1:\n \"Tous les membres peuvent publier des messages dans cet espace\",\n description2:\n \"Si cette option est désactivée, seuls les gestionnaires peuvent publier des messages\",\n },\n allowReflections: {\n description1: \"Activer les réflexions pour cet espace\",\n description2:\n \"Si cette option est désactivée, l'option de réflexion n'apparaîtra pas sur les messages\",\n },\n showMembers: {\n description1: \"Afficher les membres\",\n description2:\n \"Afficher le répertoire des membres pour cet espace\",\n },\n hideMmemberEmails: {\n description1:\n \"Afficher les e-mails des membres dans le répertoire des membres\",\n description2:\n \"Si cette option est désactivée, les e-mails des membres ne seront pas répertoriés dans le répertoire\",\n },\n newMemberNotifications: {\n description1:\n \"Notifier les gestionnaires lors de l'arrivée de nouveaux membres\",\n description2:\n \"Envoyer un e-mail de notification à chaque nouvelle inscription de membre\",\n },\n podSize: {\n description1:\n \"Limite du nombre de personnes pouvant rejoindre cet espace\",\n description2:\n \"Spécifiez un nombre maximum de personnes pouvant rejoindre cet espace\",\n },\n podSizeValue: {\n description:\n \"Combien de personnes peuvent rejoindre cet espace ?\",\n },\n sidebarDefaultOpened: {\n description1:\n \"Espace ouvert par défaut dans la barre latérale\",\n description2:\n \"Si cette option est activée, cet espace sera automatiquement développé dans la barre latérale\",\n },\n sidebarHideChildren: {\n description1:\n \"Masquer les sous-espaces dans la barre latérale\",\n description2:\n \"Si cette option est activée, les sous-espaces créés dans cet espace n'apparaîtront pas dans la barre latérale\",\n },\n allowCompletions: {\n description1:\n \"Afficher le bouton de marquage comme terminé\",\n description2:\n 'Si cette option est activée, les membres verront un bouton \"Marquer comme terminé\" pour cet espace. Après avoir sélectionné cette option, l\\'icône dans la barre latérale sera remplacée par une coche.',\n },\n redirectToSubspace: {\n description1: \"Rediriger toujours vers le sous-espace\",\n description2:\n \"Si cette option est activée, les membres seront toujours redirigés vers le sous-espace sélectionné lorsqu'ils accèdent à cet espace.\",\n },\n parentCircles: {\n description1: \"Espaces parent\",\n placeholder:\n \"Recherchez les espaces à ajouter en tant que parents de cet espace\",\n },\n },\n scheduling: {\n showStartDate: {\n description1: \"Afficher cet espace en tant qu'événement\",\n description2:\n \"Cet espace affichera une date d'événement partout où il est répertorié\",\n },\n startDateTime: {\n title: \"Date et heure de début\",\n placeholder: \"Sélectionnez une date\",\n },\n endDateTime: {\n title: \"Date et heure de fin\",\n placeholder: \"Sélectionnez une date\",\n },\n showLaunchDate: {\n description1: \"Publier cet espace à une date spécifique\",\n description2:\n \"Cet espace deviendra visible et accessible à la date spécifiée\",\n },\n launchDateTime: {\n placeholder: \"Sélectionnez une date\",\n },\n showArchiveDate: {\n description1: \"Archiver cet espace à une date spécifique\",\n description2:\n \"Cet espace ne sera plus accessible à la date spécifiée\",\n },\n archiveDate: {\n placeholder: \"Sélectionnez une date\",\n },\n showReadonlyDate: {\n description1:\n \"Rendre cet espace en lecture seule à une date spécifique\",\n description2:\n \"Aucun nouveau message ne pourra être publié après la date spécifiée\",\n },\n readonlyDate: {\n placeholder: \"Sélectionnez une date\",\n },\n },\n seo: {\n title: {\n title: \"Titre de balise\",\n description:\n \"Ceci est le titre qui apparaîtra dans les résultats des moteurs de recherche et les partages sociaux. La longueur optimale est de 60 caractères.\",\n },\n description: {\n title: \"Meta description\",\n description:\n \"Ceci est la description qui apparaîtra dans les résultats des moteurs de recherche et les partages sociaux. La longueur optimale est de 150 à 350 caractères.\",\n },\n image: {\n title: \"Image méta\",\n description:\n \"Ceci est l'image qui apparaîtra dans les partages sur les réseaux sociaux. Les dimensions recommandées sont de 1200 pixels x 627 pixels (ratio 1.91/1).\",\n },\n },\n },\n members: {\n title: \"Membres\",\n members: {\n download: \"Télécharger le CSV\",\n invite: \"Inviter\",\n member: \"Membres\",\n invited: \"Invités\",\n interested: \"Intéressés\",\n payment: \"Paiements\",\n },\n interested: {\n interested: {\n button: \"Rechercher\",\n placeholder: \"Rechercher d'autres\",\n broadcast: \"Envoyer une diffusion\",\n noRecordFound: \"Aucun enregistrement trouvé\",\n },\n table: {\n firstname: \"Prénom\",\n email: \"Email\",\n date: \"Date\",\n },\n interestedrow: {\n removeFromList: \"Retirer de la liste\",\n },\n },\n invited: {\n invited: {\n button: \"Rechercher\",\n placeholder: \"Rechercher d'autres\",\n noRecordFound: \"Aucun enregistrement trouvé\",\n },\n table: {\n email: \"Email\",\n invitationlink: \"Lien d'invitation\",\n amount: \"Montant\",\n date: \"Date d'envoi\",\n },\n },\n invitedrow: {\n invitation: {\n resend: \"Renvoyer l'invitation\",\n cancel: \"Annuler l'invitation\",\n },\n },\n inviteEmail: {\n invite: {\n placeholder:\n \"Saisissez l'adresse e-mail ou mentionnez les personnes que vous souhaitez ajouter à cet espace. Les entrées peuvent être séparées par des virgules, des espaces ou des sauts de ligne.\",\n message: \"Ajoutez un message de bienvenue facultatif\",\n checkboxLabel:\n \"Envoyer un e-mail pour informer les personnes qu'elles ont été invitées\",\n alertMessage:\n \"Vous êtes actuellement sur un plan de base et ne pouvez pas envoyer d'invitations via Sutra. Lorsque vous cliquez sur Inviter, un lien d'invitation unique sera généré pour chaque adresse e-mail que vous ajoutez. Vous pourrez envoyer personnellement chaque personne avec ce lien.\",\n alertbutton: \"Mettre à niveau le compte\",\n button: \"Inviter des personnes\",\n },\n },\n inviteExisting: {\n invite: {\n copyMembers: \"Copier les membres depuis un autre espace\",\n copyMembersPlaceholder:\n \"Sélectionnez les espaces à partir desquels copier les membres\",\n addActiveMembers:\n \"Ajouter les membres actifs des espaces parents\",\n addActiveMembersPlaceholder:\n \"Sélectionnez les membres actifs à ajouter à cet espace\",\n addPendingMembers:\n \"Ajouter les membres en attente des espaces parents\",\n addPendingMembersPlaceholder:\n \"Sélectionnez les membres en attente à ajouter à cet espace\",\n checkboxLabel:\n \"Envoyer un e-mail pour informer les personnes qu'elles ont été invitées\",\n alert:\n \"Vous êtes actuellement sur un plan de base et ne pouvez pas envoyer d'invitations via Sutra. Lorsque vous cliquez sur Inviter, un lien d'invitation unique sera généré pour chaque adresse e-mail que vous ajoutez. Vous pourrez envoyer personnellement chaque personne avec ce lien.\",\n alertButton: \"Mettre à niveau le compte\",\n button: \"Inviter des personnes\",\n thisOption:\n \"Cette option n'est pas disponible pour cet espace\",\n },\n },\n inviteLink: {\n invite: {\n shareLinkText:\n \"Les gens peuvent s'inscrire directement à cet espace en utilisant le lien suivant. Vous pouvez partager ce lien où vous le souhaitez (e-mail, réseaux sociaux, etc).\",\n youCannotShare:\n \"Vous ne pouvez pas partager de lien vers un espace privé.\",\n },\n },\n invitePeople: {\n invite: {\n invitePeople: \"Inviter des personnes\",\n },\n },\n membersActivity: {\n members: {\n placeholder: \"Rechercher\",\n button: \"Rechercher\",\n emailButton: \"Email\",\n messageButton: \"Message\",\n noRecordFound: \"Aucun enregistrement trouvé\",\n },\n memberTable: {\n noRecordFound: \"Aucun enregistrement trouvé\",\n lastSeen: \"Dernière connexion\",\n lastPosted: \"Dernière publication\",\n date: \"Date d'inscription\",\n },\n },\n participationActivity: {\n participation: {\n searchPlaceholder: \"Rechercher\",\n searchButton: \"Rechercher\",\n pickDatePlaceholder: \"Sélectionner une période\",\n emailButton: \"Email\",\n messageButton: \"Message\",\n noRecordFound: \"Aucun enregistrement trouvé\",\n },\n memberTable: {\n member: \"Membre\",\n participation: \"Participation\",\n posts: \"Publications\",\n words: \"Mots\",\n },\n },\n participationActivityRow: {\n posts: \"publications\",\n },\n paymentRow: {\n payment: {\n refundPayment: \"Rembourser le paiement\",\n },\n },\n payments: {\n payment: {\n searchPlaceholder: \"Rechercher\",\n searchButton: \"Rechercher\",\n noRecordFound: \"Aucun enregistrement trouvé\",\n },\n paymentTable: {\n member: \"Membre\",\n amount: \"Montant\",\n date: \"Date\",\n status: \"Statut\",\n },\n },\n progressActivity: {\n progress: {\n searchPlaceholder: \"Rechercher\",\n searchButton: \"Rechercher\",\n emailButton: \"Email\",\n messageButton: \"Message\",\n noRecordFound: \"Aucun enregistrement trouvé\",\n progressTracking:\n \"Le suivi des progrès n'est disponible que dans les espaces qui ont des interactions.\",\n },\n progressTable: {\n member: \"Membre\",\n progress: \"Progrès\",\n },\n },\n registered: {\n registered: {\n searchPlaceholder: \"Rechercher\",\n searchButton: \"Rechercher\",\n email: \"Email\",\n message: \"Message\",\n noRecordFound: \"Aucun enregistrement trouvé\",\n pending: \"En attente\",\n manager: \"Gestionnaires\",\n all: \"Tous\",\n active: \"Actif\",\n },\n registeredTable: {\n member: \"Membre\",\n email: \"Email\",\n status: \"Statut\",\n role: \"Rôle\",\n roleApproveAll: \"Approuver tout\",\n },\n },\n registeredRow: {\n registered: {\n roleApprove: \"Approuver\",\n joined: \"Rejoint\",\n sendMessage: \"Envoyer un message\",\n stopCharging: \"Arrêter la facturation\",\n emailPreferences: \"Préférences d'email\",\n removeMember: \"Supprimer le membre\",\n },\n },\n },\n payment: {\n charging: {\n NumberOfTimes: {\n howManyTimes: \"Combien de fois ?\",\n },\n UntilDate: {\n pickDate: \"Choisir une date de fin de facturation\",\n },\n },\n fees: {\n description: {\n fees: \"FRAIS :\",\n sutraFee: \"FRAIS SUTRA +\",\n stripeProcessingFee: \"FRAIS DE TRAITEMENT STRIPE\",\n },\n },\n flexible: {\n flexible: {\n description:\n \"Pour offrir aux personnes des options de paiement flexibles telles qu'un modèle de paiement selon vos moyens ou plusieurs niveaux de paiement, vous pouvez créer une enquête de paiement que les personnes verront lorsqu'elles s'inscrivent à votre espace. Cliquez sur le bouton d'édition ci-dessous pour personnaliser l'enquête.\",\n },\n },\n once: {\n once: {\n description: \"Combien allez-vous facturer ?\",\n number: \"10\",\n },\n },\n recurring: {\n recurring: {\n description1: \"Combien allez-vous facturer ?\",\n description2: \"Sélectionnez une option de facturation\",\n },\n },\n },\n privacy: {\n open: {\n open: {\n description: \"Tout le monde peut accéder à cet espace\",\n },\n },\n paid: {\n paid: {\n stripeConnected: \"Stripe connecté à\",\n disconnectButton: \"Déconnecter\",\n description:\n \"Pour traiter les paiements pour cet espace, veuillez connecter votre compte Stripe en cliquant sur le bouton ci-dessous.\",\n connectButton: \"Connecter Stripe\",\n },\n },\n private: {\n private: {\n description:\n \"Cet espace est privé et les personnes doivent être invitées pour rejoindre\",\n },\n },\n },\n registration: {\n steps: {\n addFromSubSpace: {\n label: \"Sélectionnez un espace où ajouter le membre\",\n description:\n \"Dans certaines situations, les personnes peuvent rejoindre un sous-espace sans rejoindre l'espace parent. Parfois, vous souhaitez vous assurer qu'ils sont également ajoutés à un espace de niveau supérieur ou à un espace partagé. Cette option vous permet de le faire. Chaque fois que quelqu'un rejoint un sous-espace ici, il sera automatiquement ajouté à tous les espaces que vous sélectionnez ci-dessous.\",\n placeholder: \"Sélectionner des espaces\",\n saveButton: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n saveButton2: \"Enregistrer l'étape\",\n },\n addStructure: {\n label1: \"Sélectionnez une structure\",\n placeholder1: \"Sélectionnez une option\",\n label2: \"Envoyer en tant que\",\n placeholder2: \"Sélectionnez une option\",\n saveButton: \"Enregistrer l'étape\",\n },\n addToExistingSpace: {\n label: \"Sélectionnez un espace où ajouter le membre\",\n placeholder: \"Sélectionner des espaces\",\n saveButton1: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n saveButton2: \"Enregistrer l'étape\",\n },\n addToNewSpace: {\n placeholder: \"Nom du nouvel espace\",\n label: \"Créez un nom pour le nouvel espace\",\n saveButton1: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n saveButton2: \"Enregistrer l'étape\",\n },\n applyTemplate: {\n label: \"Sélectionnez un espace à copier\",\n description:\n \"Parfois, vous souhaitez créer un espace modèle et le reproduire chaque fois qu'un nouvel espace est créé. Vous pouvez créer un espace et le configurer exactement comme vous le souhaitez. Ensuite, tout le contenu et les sous-espaces seront copiés dans tous les espaces nouvellement créés ici.\",\n saveButton1: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n saveButton2: \"Enregistrer l'étape\",\n },\n editEmail: {\n placeholder1: \"Sujette \",\n label1: \"Envoyer en tant que\",\n placeholder2: \"Sélectionnez une option\",\n label2: \"Envoyer à\",\n placeholder3: \"Sélectionnez une option\",\n placeholder4: \"quelqu'un@special.com\",\n label3: \"Adresse e-mail\",\n saveButton: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n sendPreview: \"Send preview\",\n },\n editStructure: {\n deleteButton: \"Supprimer l'étape\",\n },\n editSurvey: {\n deleteButton: \"Supprimer l'étape\",\n },\n sendEmail: {\n label1: \"Sélectionnez un e-mail\",\n placeholder1: \"Sélectionnez une option\",\n label2: \"Envoyer en tant que\",\n placeholder2: \"Sélectionnez une option\",\n label3: \"Envoyer à\",\n placeholder3: \"Sélectionnez une option\",\n label4: \"quelqu'un@special.com\",\n placeholder4: \"Adresse e-mail\",\n saveButton: \"Enregistrer l'étape\",\n label5: \"Gestionnaires\",\n label6: \"Adresse e-mail personnalisée\",\n },\n setToPending: {\n title: \"Message de bienvenue\",\n description:\n \"C'est le contenu que les personnes verront juste après leur inscription à votre espace. C'est un bon endroit pour expliquer quand le programme sera lancé et à quoi s'attendre en attendant.\",\n saveButton1: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n saveButton2: \"Enregistrer l'étape\",\n },\n surveyPerson: {\n placeholder: \"Sélectionnez une option\",\n label: \"Sélectionnez un sondage\",\n saveButton1: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n saveButton2: \"Enregistrer l'étape\",\n },\n wait: {\n description1: \"Combien de jours ?\",\n description2: \"Attendre jusqu'à\",\n saveButton: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n saveButton2: \"Enregistrer l'étape\",\n label1: \"Sélectionnez une condition d'attente\",\n placeholder: \"Sélectionnez une option\",\n label2: \"Nombre de jours\",\n label3: \"Jusqu'à une date et heure spécifiques\",\n label4: \"Choisir une date\",\n },\n webhook: {\n label: \"URL du webhook\",\n saveButton: \"Enregistrer l'étape\",\n deleteButton: \"Supprimer l'étape\",\n },\n remove_from_space: {\n label: \"Select a space to remove member from\",\n placeholder: \"Select spaces\",\n saveButton: \"Save step\",\n deleteButton: \"Delete step\",\n saveButton2: \"Save step\",\n },\n },\n addStep: {\n addStep: {\n description: \"Ajouter étape\",\n label: \"Veuillez sélectionner une action pour cette étape\",\n placeholder: \"Sélectionnez une action\",\n },\n },\n registrationFlow: {\n registration: {\n description1:\n \"Cette fonctionnalité vous permet de séquencer des actions automatisées qui sont déclenchées lorsqu'une personne rejoint ou s'intéresse à cet espace. Ici, vous pouvez effectuer des actions telles que la planification d'e-mails et l'ajout automatique de personnes à des espaces sélectionnés lors de leur inscription.\",\n description2:\n \"Effectuer ces actions après que quelqu'un...\",\n placeholder1: \"Sélectionnez une condition de départ\",\n addButton: \"Ajouter une étape\",\n label1: \"Devient membre ou rejoint la liste des intéressés\",\n description3:\n \"Les étapes suivantes seront déclenchées lorsqu'une personne devient membre de cet espace ou rejoint la liste des intéressés en soumettant son nom et son adresse e-mail via un formulaire d'intérêt.\",\n label2: \"Devient membre de cet espace\",\n description4:\n \"Les étapes suivantes seront déclenchées lorsqu'une personne devient membre de cet espace.\",\n label3: \"S'intéresse à cet espace\",\n description5:\n \"Les étapes suivantes seront déclenchées lorsqu'une personne rejoint la liste des intéressés en soumettant son nom et son adresse e-mail via un formulaire d'intérêt.\",\n },\n },\n },\n structure: {\n add: {\n add: {\n title: \"Ajouter aux espaces\",\n description: \"Espaces\",\n placeholder1: \"Sélectionnez un espace\",\n label1: \"Envoyer en tant que\",\n placeholder2: \"Choisissez l'expéditeur\",\n placeholder3: \"Sélectionnez une date\",\n label2: \"Date d'envoi\",\n label3: \"Heure d'envoi\",\n saveButton: \"Enregistrer\",\n label4: \"Planifier ultérieurement\",\n },\n },\n createStructure: {\n title: {\n createStructure: \"Créer une structure\",\n },\n },\n structureItem: {\n item: {\n addToSpace: \"Ajouter à l'espace\",\n open: \"View responses\",\n edit: \"Modifier\",\n duplicate: \"Dupliquer\",\n delete: \"Supprimer\",\n },\n },\n },\n survey: {\n add: {\n add: {\n title: \"Ajouter aux espaces\",\n spaces: \"espaces\",\n placeholder1: \"Sélectionnez un espace\",\n label: \"Envoyer en tant que\",\n placeholder2: \"Choisissez l'expéditeur\",\n saveButton: \"Enregistrer\",\n },\n },\n answer: {\n answer: {\n addOption: \"Ajouter une option\",\n },\n },\n createSurvey: {\n description: \"Créer un sondage\",\n },\n createSurveyForm: {\n form: {\n title: \"Titre du sondage\",\n description:\n \"Les paiements flexibles vous permettent d'offrir plusieurs options de paiement pour votre programme. Si vous souhaitez permettre aux personnes de fixer leur propre prix, créez simplement une option de paiement sans définir le montant. Cette option apparaîtra avec un champ de saisie permettant à la personne de définir son propre montant. Par exemple, vous pouvez proposer un modèle de paiement selon vos moyens avec plusieurs niveaux suggérés et une option totalement libre. Si vous ajoutez un texte d'explication ci-dessous, ce texte apparaîtra juste au-dessus des options de paiement.\",\n optionalDescription: \"Description facultative du sondage\",\n addQuestionButton: \"Ajouter une question\",\n saveButton: \"Enregistrer\",\n },\n },\n individual: {\n individual: {\n placeholder: \"Sélectionnez une personne\",\n },\n },\n multipleItem: {\n multipleItem: {\n placeholder: \"Option\",\n },\n },\n paymentItem: {\n paymentItem: {\n placeholder: \"Option de paiement\",\n },\n },\n paymentSurveyItem: {\n item: {\n editButton: \"Modifier les options de paiement\",\n viewButton: \"Voir les réponses\",\n },\n },\n showSurvey: {\n survey: {\n title: \"Réponses au sondage\",\n },\n },\n singleItem: {\n item: {\n placeholder: \"Option\",\n },\n },\n surveyItem: {\n item: {\n addToSpace: \"Ajouter à l'espace\",\n open: \"View responses\",\n edit: \"Modifier\",\n take: \"Preview survey\",\n duplicate: \"Dupliquer\",\n download: \"Télécharger en CSV\",\n delete: \"Supprimer\",\n responses: \"Réponses\",\n },\n },\n },\n broadcast: {\n broadcast: {\n button: {\n broadcastButton: \"Nouvelle diffusion\",\n },\n },\n },\n broadcast: {\n title: \"Diffuser\",\n broadcastButton: \"Nouvelle diffusion\",\n membersTypes: {\n active: \"Membres actifs\",\n pending: \"Membres en attente\",\n interested: \"Membres intéressés\",\n },\n sentOn: \"Diffusion envoyée le\",\n onDestroy: {\n alertTitle: \"Es-tu sûr?\",\n alertMessage: \"Cette diffusion sera supprimée définitivement\",\n confirm: \"Supprimer la diffusion\",\n deny: \"Annuler\",\n },\n actions: {\n edit: \"Modifier\",\n duplicate: \"Dupliquer\",\n delete: \"Supprimer\",\n },\n statuses: {\n sent: \"Envoyée\",\n scheduled: \"Planifiée\",\n draft: \"Brouillon\",\n procesing: \"Processing\",\n },\n form: {\n composeBroadcast: \"Composer une diffusion\",\n contentErrMessage: \"Ajoutez du contenu\",\n targetErrMessage: \"Sélectionnez un destinataire\",\n type: {\n email: \"Envoyer un e-mail\",\n message: \"Message dans l'espace\",\n },\n title: {\n placeholder: \"Objet du message\",\n },\n brackets: {\n part1: \"Utilisez\",\n part2: \"et\",\n part3:\n \"pour remplir automatiquement les informations correspondantes\",\n },\n target: {\n placeholder: \"Choisir les destinataires\",\n label: \"Envoyer à\",\n },\n sendAs: {\n label: \"Envoyer en tant que\",\n placeholder: \"Choisir l'expéditeur\",\n },\n schedule: {\n label: \"Planifier pour plus tard\",\n },\n sendAtDate: {\n label: \"Date d'envoi\",\n placeholder: \"Sélectionner une date\",\n },\n sendAtTime: {\n label: \"Heure d'envoi\",\n placeholder: \"\",\n },\n scheduleBroadcast: \"Planifier la diffusion\",\n sendBroadcast: \"Envoyer la diffusion\",\n saveDraft: \"Enregistrer le brouillon\",\n sendPreview: \"Send preview\",\n },\n },\n surveys: {\n title: \"Sondages\",\n createSurvey: \"Créer un sondage\",\n },\n structures: {\n title: \"Structures\",\n createStructure: \"Créer une structure\",\n },\n sutraAdmin: {\n title: \"Administration Sutra\",\n },\n scheduled: {\n title: \"Planifié\",\n },\n archived: {\n title: \"Archivé\",\n },\n participation: {\n title: \"Participation\",\n label1: \"Présence\",\n description1:\n \"% des membres qui ont visité au cours des 7 derniers jours\",\n label2: \"Activité\",\n description2:\n \"% des membres qui ont publié au cours des 7 derniers jours\",\n label3: \"Publications\",\n description3:\n \"Total des publications dans tous les sous-espaces au cours des 7 derniers jours\",\n label4: \"Participation\",\n label5: \"Activité des membres\",\n label6: \"Progression\",\n },\n },\n sidebar: {\n iconSelect: {\n placeholder: \"Rechercher\",\n },\n membersNode: {\n member: \"Membres\",\n },\n nodeIcon: {\n reset: \"Réinitialiser\",\n },\n sidebarTutorial: {\n gettingStarted: \"Premiers pas\",\n },\n },\n alreadyMember: {\n member: {\n welcome: \"Bienvenue ! Vous êtes déjà membre de cet espace -\",\n clickHere: \"Cliquez ici pour accéder\",\n },\n },\n calender: {\n calender: {\n joinButton: \"Rejoindre l'appel\",\n addButton: \"Ajouter au calendrier\",\n joinEventButton: \"S'inscrire\",\n title: \"Détails de l'événement\",\n },\n },\n invitationBar: {\n button: {\n register: \"S'inscrire\",\n },\n },\n space: {\n sutraLoading: \"Sutra - Chargement en cours...\",\n },\n statusBar: {\n restoreButton: \"Restaurer\",\n },\n tagFilter: {\n resetButton: \"Réinitialiser\",\n },\n presentations: {\n discussion: {\n reflectionHeader: \"Réflexions\",\n backToPost: \"Retour au message\",\n pinnedMessageHeader: \"Message épinglé\",\n delete: {\n title: \"Êtes-vous sûr(e) ?\",\n message: \"Cette action est irréversible\",\n confirmButton: \"Oui, supprimer\",\n cancelButton: \"Annuler\",\n },\n },\n tag: {\n placeholder: \"Rechercher des tags ou en créer un nouveau\",\n placeholder2: \"Sélectionner un tag\",\n createAction: \"Créer\",\n },\n message: {\n reply: \"Réfléchir\",\n addTags: \"Ajouter des tags\",\n tag: \"Tag\",\n copyToClipboard: \"Copier dans le presse-papiers\",\n messageCopied: \"Message copié dans le presse-papiers\",\n pinMessageAction: \"Épingler le message\",\n editMessage: \"Modifier le message\",\n deleteMessage: \"Supprimer le message\",\n makePrivate: \"Rendre privé\",\n viewReplies1: \"Voir\",\n viewReplies2single: \"réflexion\",\n viewReplies2plural: \"réflexions\",\n privateMessage:\n \"Ce message est actuellement visible uniquement par vous et les responsables de cet espace. S'il est rendu public, il sera visible par les autres participants de cet espace.\",\n privateMessage2:\n \"Cette personne a choisi de ne pas partager sa réponse avec les autres participants.\",\n unreadMessagesText: \"Vous avez des messages non lus\",\n scrollDownButton: \"Faire défiler vers le bas\",\n newReflections: {\n part1: \"Vous avez\",\n part2: \"Réflexions non lues à travers\",\n part3: \"messages\",\n },\n viewNextButton: \"Voir le suivant\",\n pinMessage: {\n mainText: \"Message épinglé\",\n viewButton: \"Voir le message\",\n },\n },\n content: {\n commentInput: {\n toggleLabel1:\n \"Les commentaires sont désactivés pour les parcours interactifs\",\n toggleLabel2: \"Activer les commentaires pour ce message\",\n toggleLabel3:\n \"Activer les commentaires pour cet espace événementiel\",\n toggleLabel4:\n \"Activer les commentaires pour cet espace de contenu\",\n placeholder1:\n \"Les commentaires ne peuvent pas être publiés pendant que vous effectuez une modification.\",\n placeholder2: \"Écrire quelque chose...\",\n },\n },\n fallback: {\n title: \"Problème de connexion\",\n message:\n \"Il semble que vous soyez déconnecté(e) d'internet. Une fois que vous serez de nouveau en ligne, nous vous reconnecterons automatiquement.\",\n },\n events: {\n placeholder: \"Écrire quelque chose...\",\n upcomingButton: \"À venir\",\n pastButton: \"Passés\",\n addEvent: \"Ajouter un événement\",\n eventSettingsTooltip: \"Paramètres de l'événement\",\n newEventTitle: \"NOUVEL ÉVÉNEMENT\",\n },\n list: {\n placeholder: \"Écrire quelque chose...\",\n createButton: \"Créer un message\",\n listSettingsTooltip: \"Paramètres du forum\",\n duplicateFormTitle: \"DUPLIQUER L'ESPACE\",\n },\n settings: {\n versions: {\n content: \"Page de contenu\",\n posts: \"Publications\",\n discussions: \"Discussions\",\n link: \"Lien\",\n template: \"Modèle\",\n },\n versionsDescriptions: {\n content:\n \"Les nouveaux éléments s'afficheront comme une page de contenu avec toutes les fonctionnalités.\",\n discussion: \"Vide\",\n posts:\n \"Les nouveaux éléments s'afficheront comme une simple publication avec des fonctionnalités limitées.\",\n link: \"Cette option vous permet de soumettre un lien vers n'importe quel espace sur Sutra qui sera ensuite affiché comme un élément ici.\",\n template:\n \"Créez un modèle d'espace qui sera dupliqué à chaque fois qu'un nouvel élément est créé ici.\",\n },\n createNewTemplate: \"Créer un nouveau modèle\",\n editTemplate: \"Modifier le modèle\",\n title: \"PARAMÈTRES\",\n accordion1: {\n label: \"Affichage en tant que\",\n description:\n \"Afficher les publications sous forme de liste ou de grille\",\n listOption: \"Liste\",\n gridOption: \"Grille\",\n dateCreated: \"Date de création\",\n dateCreatedReversed: \"Inverser la date de création\",\n lastActive: \"Dernière activité\",\n lastEdited: \"Dernière modification\",\n alphabetic: \"Ordre alphabétique\",\n reverseAlphabetic: \"Alphabétique inversé\",\n },\n accordion2: {\n label: \"Options d'affichage\",\n description: \"\",\n switches: {\n onlyManagers:\n \"Seuls les gestionnaires peuvent créer une publication\",\n showAuthor: \"Afficher les informations de l'auteur\",\n showPreview: \"Afficher un aperçu du texte\",\n showComments: \"Afficher le nombre de commentaires\",\n showMembers: \"Afficher les avatars des membres\",\n showTimestamp:\n \"Afficher l'horodatage de création de la publication\",\n showThumbnail: \"Afficher une miniature\",\n autoThumbnail: \"Créer automatiquement une miniature\",\n },\n },\n accordion3: {\n label: \"Nouveau format de publication\",\n description:\n \"Sélectionnez le format des nouvelles publications dans cet espace\",\n templateName: {\n label: \"Nommez votre modèle\",\n placeholder: \"Nom du modèle\",\n },\n templateDirectOption: \"Sous-espace direct\",\n templateLinkedOption: \"Espace lié\",\n privacyDescription:\n \"Sélectionnez le niveau de confidentialité par défaut des nouvelles publications\",\n privacyOpenOption: \"Public\",\n privacyPrivateOption: \"Privé\",\n privacyAnyOption: \"Choix du créateur\",\n },\n accordion4: {\n label: \"Libellé du bouton\",\n createPost: {\n label: \"Créer une publication\",\n description:\n \"Spécifiez le texte qui s'affiche sur le bouton de nouvelle publication\",\n },\n },\n accordion5: {\n label: \"Tags\",\n },\n templateDescription:\n \"Les nouveaux espaces modèles peuvent être des sous-espaces directs de cet espace ou des espaces liés. Les espaces liés sont des espaces indépendants de premier niveau qui s'afficheront sur cette page. Le créateur de l'espace deviendra un gestionnaire complet de l'espace qu'il crée.\",\n },\n thumbnail: {\n title: \"AJOUTER UNE MINIATURE\",\n message: \"L'image miniature est en cours de téléchargement...\",\n },\n static: {\n broadcastExclude: {\n unsubscribe: {\n part1: \"Êtes-vous sûr de vouloir vous désabonner de\",\n part2:\n \"Vous ne recevrez plus d'e-mails de diffusion directe de la part des gestionnaires de cet espace\",\n button: \"Se désabonner\",\n },\n subscribe: {\n part1:\n \"Vous avez été désabonné et vous ne recevrez plus d'e-mails de diffusion de\",\n button: \"S'abonner\",\n },\n },\n invitation: {\n message: \"Vous avez été invité à cet espace\",\n button: \"Accepter l'invitation\",\n },\n pending: {\n message: \"Votre adhésion est en attente\",\n },\n private: {\n message: {\n part1: \"C'est un espace privé.\",\n part2: \"Si vous êtes membre, veuillez vous connecter.\",\n },\n button: \"Se connecter\",\n },\n processing: {\n message: \"Cet espace est encore en cours de traitement...\",\n },\n },\n gridPost: {\n onDelete: {\n alertTitle: \"Êtes-vous sûr ?\",\n alertMessage: \"Cet espace ne sera plus lié ici.\",\n alertMessage2: \"Cet espace ne sera plus lié ici.\",\n confirm: \"Oui\",\n deny: \"Non\",\n },\n actions: {\n pin: \"Épingler en tête\",\n unpin: \"Détacher\",\n addThumbnail: \"Ajouter une miniature\",\n removeThumbnail: \"Supprimer la miniature\",\n duplicate: \"Dupliquer\",\n unlink: \"Détacher\",\n delete: \"Supprimer\",\n },\n },\n listContent: {\n publishTootip: \"Sera publié à cette date\",\n privateTooltip: \"C'est un espace privé\",\n },\n },\n colors: {\n form: {\n colorTheme: \"Thème de couleur\",\n customize: \"Personnaliser la sélection de couleurs\",\n saveTheme: \"Enregistrer le thème\",\n resetColor: \"Réinitialiser la couleur\",\n pageLayout: \"Disposition de la page\",\n pageFormat: \"Format de la page\",\n },\n headerAndLogo: {\n addCover: \"Ajouter une couverture\",\n removeCover: \"Supprimer la couverture\",\n changeLogo: \"Changer le logo\",\n removeLogo: \"Supprimer le logo\",\n dimensions:\n \"Les dimensions recommandées pour les images de couverture sont de 1200 x 300 pixels\",\n dimensions2:\n \"Les dimensions recommandées pour les logos sont de 360 x 120 pixels\",\n },\n pageFormat: {\n description:\n \"Vous pouvez modifier la présentation du contenu dans cet espace en sélectionnant une option ci-dessous.\",\n contentLabel: \"Contenu\",\n discussionLabel: \"Discussion\",\n contentDescription:\n \"Un espace pour les modules d'apprentissage, le contenu général ou les ressources communautaires.\",\n discussionDescription:\n \"Un espace pour les discussions ou les annonces\",\n eventsLabel: \"Calendrier\",\n eventsDescription: \"Créer une liste d'événements\",\n listLabel: \"Forum\",\n listDescription:\n \"Créer un flux où les gens peuvent publier des sujets de discussion\",\n },\n pageLayout: {\n widePage: \"Largeur de page étendue\",\n hideSidebar: \"Masquer la barre latérale\",\n hideHeader: \"Masquer l'en-tête\",\n hideCoverImage: \"Masquer l'image de couverture\",\n hidePageTitle: \"Masquer le titre de la page\",\n hideBreadcrumbs: \"Masquer les fil d'Ariane\",\n },\n header_color: {\n label: \"Couleur de l'en-tête\",\n description: \"Description\",\n },\n header_link_color: {\n label: \"Logo d'en-tête et couleur du texte\",\n description: \"Description\",\n },\n primary_button_background_color: {\n label: \"Couleur de fond du bouton principal\",\n description: \"Description\",\n },\n primary_button_text_color: {\n label: \"Couleur du texte du bouton principal\",\n description: \"Description\",\n },\n secondary_button_background_color: {\n label: \"Couleur de fond du bouton secondaire\",\n description: \"Description\",\n },\n secondary_button_text_color: {\n label: \"Couleur du texte du bouton secondaire\",\n description: \"Description\",\n },\n background_color: {\n label: \"Couleur de fond\",\n description: \"Description\",\n },\n default_text_color: {\n label: \"Couleur du texte par défaut\",\n description: \"Description\",\n },\n sidebar_background_color: {\n label: \"Couleur de fond de la barre latérale\",\n description: \"Description\",\n },\n sidebar_text_color: {\n label: \"Couleur du texte de la barre latérale\",\n description: \"Description\",\n },\n default_link_color: {\n label: \"Couleur du lien par défaut\",\n description: \"Description\",\n },\n default_badge_color: {\n label: \"Couleur de badge de notification\",\n description: \"Description\",\n },\n default_badge_text_color: {\n label: \"Couleur du texte de badge de notification\",\n description: \"Description\",\n },\n registration_page_background_color: {\n label: \"Couleur de fond de la page d'inscription\",\n description: \"Description\",\n },\n registration_page_default_text_color: {\n label: \"Couleur du texte par défaut de la page d'inscription\",\n description: \"Description\",\n },\n },\n create: {\n invalidNameErrorMsg:\n \"Le nom de l'espace doit comporter entre 3 et 100 caractères\",\n invalidName2ErrorMsg:\n \"Le titre doit comporter entre 3 et 100 caractères\",\n },\n dummy: {\n magicLink: {\n alertTitle: \"Vous y êtes presque...\",\n alertMessage:\n \"Nous avons envoyé le lien magique à votre adresse e-mail. CECI EST UN TEST, AUCUN E-MAIL RÉEL N'A ÉTÉ ENVOYÉ.\",\n },\n },\n pending: {\n message: \"Votre adhésion est en attente\",\n },\n recover: {\n alertTitle: \"Vous y êtes presque...\",\n alertMessage:\n \"Nous venons de vous envoyer un e-mail avec des instructions pour récupérer votre mot de passe. CECI EST UN TEST, AUCUN E-MAIL RÉEL N'A ÉTÉ ENVOYÉ.\",\n },\n form: {\n calendarLinks: {\n text: \"Les informations ajoutées ci-dessous seront transmises au calendrier du membre lorsqu'il ajoutera l'événement.\",\n link: {\n label: \"URL de l'événement (lien Zoom, etc.)\",\n placeholder: \"Quel est le lien de votre appel vidéo\",\n },\n description: {\n label:\n \"Ajouter une description pour votre événement qui s'affichera dans les informations du calendrier\",\n placeholder: \"Description du calendrier\",\n },\n eventStartDateAndTime: \"Date et heure de début de l'événement\",\n date: {\n placeholder: \"Choisir une date\",\n },\n eventDateTime:\n \"Date et heure de fin de l'événement (optionnel)\",\n allowInterests:\n \"Permettre aux personnes de participer à l'événement sans s'inscrire sur Sutra\",\n automatedEmails: \"Configurer des e-mails automatisés\",\n save: \"Enregistrer les détails\",\n },\n duplicate: {\n prefix: \"Copie de\",\n intention: {\n label: \"Nom de l'espace\",\n placeholder: \"Comment s'appelle votre espace ?\",\n },\n copyMembers: {\n label: \"Copier les membres\",\n },\n copyManagers: {\n label: \"Copier les responsables\",\n },\n copyContent: {\n label: \"Copier le contenu\",\n },\n copyPosts: {\n label: \"Copy posts\",\n },\n copyBroadcasts: {\n label: \"Copier les diffusions\",\n },\n copyAutomation: {\n label: \"Copier les automatisations\",\n },\n copyRegPage: {\n label: \"Copier la page d'inscription\",\n },\n save: \"Dupliquer l'espace\",\n saveTemplate: \"Créer un modèle\"\n },\n form: {\n privacyDescription1:\n \"L'espace que vous créez sera accessible à tous dans\",\n rootPrivacyDescription1:\n \"L'espace que vous créez sera accessible à quiconque possède un lien vers celui-ci. Vous pouvez définir les options de paiement une fois que vous avez créé l'espace.\",\n privacyDescription2:\n \"L'espace que vous créez ne sera visible que par les personnes qui y sont ajoutées.\",\n rootPrivacyDescription2:\n \"L'espace que vous créez ne sera visible que par les personnes qui y sont invitées. Vous pouvez définir les options de paiement une fois que vous avez créé l'espace.\",\n placeholderDescription: \"Description\",\n versions: {\n content: {\n label: \"Contenu\",\n description:\n \"Créez un espace pour un module d'apprentissage, du contenu général ou des ressources communautaires.\",\n },\n discussion: {\n label: \"Discussion\",\n description: \"Créez un espace de discussion ou d'annonces.\",\n },\n event: {\n label: \"Événement\",\n description: \"Créez un événement unique.\",\n },\n events: {\n label: \"Calendrier\",\n description: \"Créez une liste de calendrier d'événements.\",\n },\n list: {\n label: \"Forum\",\n description:\n \"Créez un flux où les gens peuvent publier des sujets de discussion.\",\n },\n },\n segments: {\n space: {\n label: \"Espace\",\n description:\n \"Créez un espace pour votre cours ou votre communauté. Choisissez cette option si vous souhaitez créer une cohorte de formation, un cours à votre rythme, une communauté ou tout groupe qui se réunira sur une période donnée.\",\n },\n event: {\n label: \"Événement\",\n description:\n \"Créez une page d'événement simple. Choisissez cette option si vous souhaitez simplement organiser un événement unique que vous pouvez partager publiquement.\",\n },\n discussion: {\n label: \"Discussion\",\n description:\n \"Créez un espace de discussion simple pour votre groupe. Choisissez cette option si vous souhaitez simplement créer un espace de discussion ponctuel pour un groupe de personnes.\",\n },\n },\n intention: {\n label: \"Nom de l'espace\",\n placeholder: \"Comment s'appelle votre espace ?\",\n },\n content: {\n label: \"Nom de l'espace\",\n description: \"Écrivez quelque chose...\",\n placeholder: \"Écrivez quelque chose...\",\n },\n spaceFormat: {\n label: \"Format de l'espace\",\n placeholder: \"Choisissez une option\",\n },\n eventDescription:\n \"Les informations ajoutées ci-dessous seront transmises au calendrier du membre lorsqu'il ajoutera l'événement.\",\n hangoutLink: {\n label: \"URL de l'événement (lien Zoom, etc.)\",\n placeholder: \"Quel est le lien de votre appel vidéo\",\n },\n eventStartTime: \"Date et heure de début de l'événement\",\n date: {\n placeholder: \"Choisir une date\",\n },\n eventEndDate: \"Date et heure de fin de l'événement (optionnel)\",\n privacyLevelText: \"Niveau de confidentialité\",\n privacy: {\n open: \"Ouvert\",\n private: \"Privé\",\n },\n joinAsMember: {\n label: \"Rejoindre cet espace en tant que membre\",\n },\n publishDate: {\n label: \"Publier à la date\",\n },\n publishDateTime: \"Date et heure de publication\",\n create: \"Créer l'espace\",\n },\n interestedForm: {\n title: \"S'inscrire à cet événement\",\n createAlertTitle: \"Merci de vous être inscrit !\",\n createAlertButton: \"OK\",\n name: {\n label: \"Prénom\",\n placeholder: \"Indiquez votre prénom\",\n },\n email: {\n label: \"E-mail\",\n placeholder: \"Indiquez votre adresse e-mail\",\n },\n register: \"S'inscrire\",\n joinWithSutra: \"Rejoindre avec mon compte Sutra\",\n },\n linkForm: {\n linkErrMessage: \"Ce n'est pas un lien d'espace valide\",\n link: {\n label: \"\",\n placeholder: \"Lien vers l'espace\",\n errors: {\n space:\n \"L'espace que vous souhaitez partager est privé ou n'existe pas !\",\n event:\n \"L'espace que vous souhaitez partager est privé, n'est pas un événement ou n'existe pas !\",\n },\n },\n },\n listForm: {\n intention: {\n placeholder: \"Titre\",\n },\n },\n },\n header: {\n onLeave: {\n title: \"Êtes-vous sûr(e) ?\",\n message:\n \"Vous serez supprimé(e) en tant que membre de cet espace et devrez être réajouté(e) pour y avoir à nouveau accès.\",\n confirm: \"Oui, veuillez me supprimer\",\n deny: \"Non\",\n },\n onArchive: {\n title: \"Êtes-vous sûr(e) ?\",\n message:\n \"Cet espace sera archivé et les membres n'y auront plus accès.\",\n confirm: \"Oui\",\n deny: \"Non\",\n },\n onUnarchive: {\n title: \"Êtes-vous sûr(e) ?\",\n message:\n \"Cet espace sera désarchivé et les membres y auront à nouveau accès.\",\n confirm: \"Oui\",\n deny: \"Non\",\n },\n onDelete: {\n title: \"Êtes-vous sûr(e) ?\",\n message:\n \"Cet espace sera supprimé et les membres n'y auront plus accès.\",\n confirm: \"Oui\",\n deny: \"Non\",\n },\n onFix: {\n title: \"Êtes-vous sûr(e) ?\",\n message:\n \"Sutra va essayer de recréer cet espace de contenu à partir des données héritées.\",\n confirm: \"Oui, réparer\",\n deny: \"Non\",\n confirmationTitle: \"Information\",\n confirmationMessage: \"Espace réparé, rechargement en cours...\",\n confirmationError: \"Cet espace ne peut pas être réparé\",\n },\n buttons: {\n uncomplete: \"Marquer comme incomplet\",\n markComplete: \"Marquer comme complet\",\n edit: \"Modifier\",\n post: \"message\",\n page: \"page\",\n space: \"l'espace\",\n returnTo: \"Retour à\",\n editTitle: \"Modifier le titre\",\n viewPage: \"Voir la page\",\n editDescription: \"Modifier la description\",\n appearance: \"Apparence\",\n manage: \"Gérer\",\n members: \"Membres\",\n leave: \"Quitter l'espace\",\n delete: \"Supprimer l'espace\",\n deletePost: \"Supprimer\",\n duplicate: \"Dupliquer l'espace\",\n template: \"Créer un modèle\",\n archive: \"Archiver l'espace\",\n unarchive: \"Désarchiver l'espace\",\n fix: \"Réparer\",\n joinEvent: \"S'inscrire\",\n joinSpace: \"Rejoindre l'espace\",\n preview: \"Aperçu\",\n draft: \"Brouillon\",\n published: \"Publié\",\n publish: \"Publier\",\n returnToSettings: \"Retour aux paramètres\",\n returnToSpace: \"Retour à l'espace\",\n undo: \"Annuler\",\n openFullScreen: \"Ouvrir en plein écran\",\n copyToClipboard: \"Copier dans le presse-papiers\",\n copiedMessage: \"Lien de l'espace copié dans le presse-papiers\",\n versionHistory: \"Historique des versions\",\n brandingOptions: \"OPTIONS DE MARQUE\",\n },\n regPagePublishing:\n \"Votre page d'inscription est en cours de publication, veuillez patienter...\",\n spaceUpdating:\n \"Cet espace est en cours de mise à jour, veuillez patienter...\",\n },\n members: {\n sectionTitle: \"Membres\",\n manage: \"Gérer les membres\",\n invite: \"Inviter\",\n search: {\n button: \"Rechercher\",\n placeholder: \"Rechercher\",\n },\n emptyMessage: \"Aucun enregistrement trouvé\",\n messageButton: \"Message\",\n emailButton: \"Email\",\n copyClipboard: \"Copier dans le presse-papiers\",\n },\n payment: {\n onCheckIntent: {\n alertTitle: \"Erreur de paiement\",\n alertMessage:\n \"Votre session a expiré. Veuillez rafraîchir la page pour finaliser votre paiement.\",\n },\n onConfirmPayment: {\n alertTitle: \"Oops, quelque chose s'est mal passé !\",\n alertMessage: \"Quelque chose s'est mal passé !\",\n },\n completePayment: \"Finaliser le paiement\",\n join: \"Rejoindre l'espace\",\n },\n stripe: {\n pay: \"Payer\",\n },\n },\n survey: {\n form: {\n text: \"Vous avez déjà répondu à cette enquête.\",\n submitButton: \"Soumettre\",\n },\n question: {\n yourAnswer: \"Votre réponse\",\n },\n },\n tiptap: {\n blocks: {\n section1: \"Base\",\n text: \"Texte\",\n headline1: \"Titre 1\",\n headline2: \"Titre 2\",\n headline3: \"Titre 3\",\n divider: \"Séparateur\",\n infobox: \"Info-bulle\",\n section2: \"Espaces\",\n content: \"Espace de contenu\",\n discussion: \"Espace de discussion\",\n event: \"Espace d'événement\",\n events: \"Espace de calendrier\",\n list: \"Espace de forum\",\n showcase: \"Showcase Space\",\n section3: \"Liste\",\n section8: \"Special\",\n bulletList: \"Liste à puces\",\n orderedList: \"Liste ordonnée\",\n checklist: \"Liste de contrôle\",\n collapsableSection: \"Section pliable\",\n survey: \"Survey or quiz\",\n section4: \"Média\",\n image: \"Image\",\n embed: \"Code d'intégration\",\n video: \"Vidéo\",\n audio: \"Audio\",\n file: \"Fichier\",\n zoom: \"Zoom recording\",\n section5: \"Grilles\",\n grid1: \"1 colonne\",\n grid2: \"2 colonnes\",\n grid3: \"3 colonnes\",\n grid4: \"Colonne de gauche\",\n grid5: \"Colonne de droite\",\n grid6: \"4 columns\",\n section6: \"Boutons\",\n interestForm: \"Formulaire d'intérêt\",\n actionButton: \"Bouton d'action\",\n markComplete: \"Marquer comme complet\",\n section7: \"Interactif\",\n interactiveButton: \"Bouton interactif\",\n interactiveInput: \"Entrée interactive\",\n interactiveWait: \"Attente interactive\"\n },\n components: {\n \n sidebar: {\n alignment: {\n left: \"Gauche\",\n center: \"Centre\",\n right: \"Droite\",\n },\n backgroundColor: {\n text: \"Sélectionner la couleur de fond\",\n clearColor: \"Effacer la couleur\",\n },\n backgroundImage: {\n button: \"Sélectionner une image\",\n removeButton: \"Supprimer l'image\",\n label: \"Position\",\n placeholder: \"Choisissez une option\",\n leftTop: \"en haut à gauche\",\n leftCenter: \"au centre à gauche\",\n leftBottom: \"en bas à gauche\",\n rightTop: \"en haut à droite\",\n rightCenter: \"au centre à droite\",\n rightBottom: \"en bas à droite\",\n centerTop: \"en haut au centre\",\n centerCenter: \"centre centre\",\n centerBottom: \"en bas au centre\",\n label2: \"Répéter\",\n placeholder2: \"Choisissez une option\",\n noRepeat: \"Pas de répétition\",\n repeat: \"Répéter\",\n \"repeat-x\": \"Répéter horizontalement\",\n \"repeat-y\": \"Répéter verticalement\",\n space: \"Espace\",\n round: \"Arrondi\",\n },\n blockId: {\n placeholder: \"ID du bloc\",\n label: \"ID du bloc\",\n description:\n \"ID recommandés pour AI briefDescription, aboutWorkshop, whatYouWillLearn1, whatYouWillLearn2, whatYouWillLearn3, whoThisIsFor, aboutUs, quote\",\n },\n buttonAction: {\n label: \"Action après soumission\",\n description:\n \"Spécifiez ce qui se produit après que la personne a soumis ses informations via le formulaire sélectionné.\",\n placeholder: \"Choisissez une option\",\n label2: \"Lien vers\",\n placeholder2: \"Choisissez une option\",\n label3: \"Action du lien\",\n description3:\n \"Spécifiez si le lien sera ouvert dans l'onglet du navigateur actuel ou dans un nouvel onglet.\",\n placeholder3: \"Choisissez une option\",\n callBackComplete: \"Texte de l'action d'achèvement\",\n callbacklinkTo: \"Lien vers\",\n completeDescription:\n \"Ajoutez un court message de confirmation que les personnes verront après avoir soumis leurs informations.\",\n linkDescription:\n \"La personne sera redirigée vers ce lien après avoir cliqué sur le bouton.\",\n label4: \"Lien vers la rubrique espace\",\n description4: \"Spécifiez si le lien sera ouvert dans l'onglet actuel du navigateur ou dans un autre onglet ou si le lien renverra vers une section de cette page.\",\n selectSection: \"Sélectionner une rubrique\",\n description5: \"Cette option vous permet d'accéder à une section spécifique de cette page lorsque vous cliquez sur le lien.\",\n description6: \"Pour sélectionner la section, cliquez sur le bouton ci-dessous puis cliquez sur la section vers laquelle vous souhaitez créer un lien.\",\n label5: \"La rubrique est liée !\",\n label6: \"URL du lien\",\n description7: \"Spécifiez le lien URL vers lequel l'utilisateur sera redirigé\",\n label7: \"S'ouvre dans l'onglet actuel\",\n label8: \"Ouvre un autre onglet\",\n label9: \"Ne fais rien\",\n label10: \"Rediriger l'utilisateur vers\",\n label11: \"Choisir une option\",\n label12: \"Un autre espace\",\n label13: \"Lien personnalisé\",\n label14: \"Cliquez sur une section de la page\",\n },\n buttonBackgroundColor: {\n button: \"Effacer la couleur\",\n },\n buttonText: {\n placeholder: \"Texte du bouton\",\n label: \"Texte du bouton\",\n },\n fileName: {\n placeholder: \"Nom du fichier\",\n label: \"Nom du fichier\",\n },\n interactiveWaitTime: {\n label1: \"Choisissez une option\",\n label2: \"Attendre jusqu'à une date\",\n label3: \"Attendre un certain nombre de jours\",\n label4: \"Date pour afficher le contenu\",\n placeholder: \"Date pour afficher le contenu\",\n label5: \"1 jour\",\n label6: \"2 jours\",\n label7: \"3 jours\",\n label8: \"4 jours\",\n label9: \"5 jours\",\n label10: \"6 jours\",\n label11: \"1 semaine\",\n label12: \"2 semaines\",\n label13: \"1 mois\",\n },\n linkAction: {\n label: \"Action du lien\",\n description:\n \"Spécifiez si le lien s'ouvrira dans l'onglet actuel ou dans un nouvel onglet.\",\n placeholder: \"Choisissez une option\",\n label2: \"Ouvrir dans l'onglet actuel\",\n label3: \"Ouvrir dans un nouvel onglet\",\n },\n margin: {\n topMargin: \"Marge supérieure -\",\n text: \"Marge inférieure -\",\n bottom: \"Inférieure\",\n left: \"Gauche\",\n leftMargin: \"Marge gauche -\",\n right: \"Droite\",\n rightMargin: \"Marge droite\",\n },\n padding: {\n top: \"Supérieure\",\n topPadding: \"Rembourrage supérieur -\",\n bottom: \"Inférieure\",\n bottomPadding: \"Rembourrage inférieur -\",\n left: \"Gauche\",\n leftPadding: \"Rembourrage gauche\",\n right: \"Droite\",\n rightPadding: \"Rembourrage droit\",\n },\n radius: {\n square: \"Carré\",\n round: \"Ronde\",\n circle: \"Cercle\",\n },\n spaceAttrs: {\n addCover: \"Ajouter une couverture\",\n text: \"La dimension recommandée pour les images de couverture est de 1200 x 300 pixels\",\n addCover2: \"Ajouter une couverture\",\n text2:\n \"La dimension recommandée pour les images de couverture est de 1200 x 300 pixels\",\n removeCover: \"Supprimer la couverture\",\n },\n verticalAllignment: {\n top: \"Haut\",\n center: \"Centre\",\n bottom: \"Bas\",\n },\n width: {\n full: \"Pleine largeur\",\n size: \"3/4\",\n size2: \"1/2\",\n actual: \"Réelle\",\n },\n },\n blockMenuActions: {\n label1: \"Ajouter un bloc\",\n label2: \"Ajouter un emoji\",\n label3: \"Paramètres\",\n label4: \"Supprimer\",\n label5: \"Déplacer\",\n label6: \"Aller à l'espace ou double-cliquer sur le bloc\",\n label7: \"Remplacer\",\n label8: \"Alignement\",\n left: \"Gauche\",\n center: \"Centre\",\n right: \"Droite\",\n write: \"Écrire quelque chose...\",\n label9: \"Ajouter un bloc\",\n label10: \"Titre 1\",\n h1: \"H1\",\n label11: \"Titre 2\",\n h2: \"H2\",\n label12: \"Ajouter un espace\",\n label13: \"Ajouter une image\",\n label14: \"Ajouter une vidéo\",\n label15: \"Ajouter une grille\",\n label16: \"Ajouter un modèle\",\n label17: \"Ajouter une mise en page\",\n label18: \"Dupliquer\",\n },\n blocksMenu: {\n basicBlock: \"Blocs de base\",\n mediaBlock: \"Blocs multimédias\",\n contentBlock: \"Blocs de contenu\",\n },\n blocksMenuInline: {\n file: \"Fichier\",\n image: \"Image\",\n video: \"Vidéo\",\n label1: \"Ajouter un emoji\",\n label2: \"Ajouter une image\",\n label3: \"Afficher la barre de formatage\",\n },\n blocksMenuSimple: {\n label1: \"Ajouter\",\n file: \"Fichier\",\n image: \"Image\",\n video: \"Vidéo\",\n audio: \"Audio\",\n label2: \"Ajouter un emoji\",\n label3: \"Ajouter une image\",\n label4: \"Afficher la mise en forme\",\n cancelButton: \"Annuler\",\n },\n emptyMessage: {\n text: \"Ceci est un espace de contenu vide. Vous pouvez\",\n button1: \"modifier cette page\",\n text2: \"ou\",\n button2: \"utiliser un modèle\",\n text3: \"pour commencer\",\n text4: \"Un espace vide rempli de potentiel...\",\n },\n fixedBottomMenu: {\n label1:\n \"Ajouter des éléments tels que des titres, des images et des vidéos\",\n addBlock: \"Ajouter un bloc\",\n label2:\n \"Ajouter un espace de contenu, de discussion ou d'événement\",\n space: \"Espace\",\n label3:\n \"Ajouter une grille pour utiliser plusieurs colonnes pour le contenu\",\n grid: \"Grille\",\n label4: \"Ajouter une option de conception pré-créée\",\n layouts: \"Mises en page\",\n label5:\n \"Ajouter un modèle pour configurer automatiquement votre espace\",\n template: \"Modèles\",\n },\n formatMenu: {\n text: \"Texte\",\n smallText: \"Petit texte\",\n largeText: \"Grand texte\",\n heading1: \"Titre 1\",\n heading2: \"Titre 2\",\n heading3: \"Titre 3\",\n bulletedList: \"Liste à puces\",\n orderedList: \"Liste ordonnée\",\n text2: \"Texte\",\n label1: \"Mise en forme\",\n text3: \"Texte\",\n numberedList: \"Liste numérotée\",\n label2: \"Alignement\",\n left: \"Gauche\",\n center: \"Centre\",\n right: \"Droit\",\n label3: \"Action du lien\",\n description:\n \"Spécifiez si le lien sera ouvert dans l'onglet actuel du navigateur ou dans un nouvel onglet.\",\n placeholder: \"Choisissez\",\n label4: \"S'ouvre dans l'onglet actuel\",\n label5: \"S'ouvre dans un autre onglet\",\n label6: \"Format du lien\",\n description2:\n \"Spécifiez si le lien apparaîtra sous forme de texte ou de lien décoratif.\",\n placeholder2: \"Choisissez\",\n label7: \"Afficher comme texte\",\n label8: \"Afficher comme lien décoratif\",\n save: \"Enregistrer\",\n delete: \"Supprimer\",\n label9: \"Barré\",\n label10: \"Souligné\",\n label11: \"Bloc de code\",\n label12: \"Couleur du texte\",\n placeholder3: \"Valeur HEX\",\n unsetColor: \"Supprimer la couleur\",\n label13: \"Couleur de surlignage\",\n label14: \"Lien vers la rubrique espace\",\n description3: \"Spécifiez si le lien sera ouvert dans l'onglet actuel du navigateur ou dans un autre onglet ou si le lien renverra vers une section de cette page.\",\n selectSection: \"Sélectionner une rubrique\",\n description4: \"Cette option vous permet d'accéder à une section spécifique de cette page lorsque vous cliquez sur le lien.\",\n description5: \"Pour sélectionner la section, cliquez sur le bouton ci-dessous puis cliquez sur la section vers laquelle vous souhaitez créer un lien.\",\n label15: \"La rubrique est liée !\",\n label16: \"URL du lien\",\n description6: \"Spécifiez le lien URL vers lequel l'utilisateur sera redirigé\",\n },\n formatMenuSimple: {\n t: \"T\",\n h1: \"H1\",\n h2: \"H2\",\n h3: \"H3\",\n label1: \"Action du lien\",\n description1:\n \"Spécifiez si le lien sera ouvert dans l'onglet actuel du navigateur ou dans un nouvel onglet.\",\n placeholder1: \"Choisissez\",\n label2: \"S'ouvre dans l'onglet actuel\",\n label3: \"S'ouvre dans un autre onglet\",\n label4: \"Format du lien\",\n description2:\n \"Spécifiez si le lien apparaîtra sous forme de texte ou de lien décoratif.\",\n placeholder2: \"Choisissez\",\n label5: \"Afficher comme texte\",\n label6: \"Afficher comme lien décoratif\",\n save: \"Enregistrer\",\n delete: \"Supprimer\",\n label7: \"Mise en forme\",\n left: \"Gauche\",\n center: \"Centre\",\n right: \"Droite\",\n placeholder3: \"Valeur HEX\",\n placeholder4: \"Couleur HEX\",\n unsetColor: \"Supprimer la couleur\",\n },\n inlineMenu: {\n h1: \"H1\",\n h2: \"H2\",\n bulletList: \"Liste à puces\",\n checkList: \"Liste de contrôle\",\n circle: \"Cercle\",\n moreOption: \"Plus d'options\",\n },\n interactiveInput: {\n hideResponses: \"Masquer les autres réponses\",\n showResponses: \"Afficher les autres réponses\",\n hideResponses2: \"Masquer les réponses\",\n hidePrivateMessages: \"Masquer les messages privés\",\n showPrivateMessages: \"Afficher les messages privés\",\n showResponses2: \"Afficher les réponses\",\n loadMoreResponse: \"Charger plus de réponses\",\n placeholder: \"Écrire quelque chose...\",\n text: \"Voulez-vous que cette réponse soit visible pour les autres participants ?\",\n },\n newMedia: {\n add: \"Ajouter\",\n },\n regPageColor: {\n clearColor: \"Claire couleur\",\n },\n regPageColors: {\n text: \"Apparence de la page d'inscription\",\n applyAppearance: \"Appliquer l'apparence\",\n title1: \"Sélectionner la couleur de fond\",\n title2: \"Sélectionner la couleur du texte\",\n label1: \"Couleur de fond\",\n label2: \"Couleur du texte par défaut\",\n label3: \"Large largeur de page\",\n },\n resource: {\n areYouSure: \"Êtes-vous sûr(e) ?\",\n label1: \"Sera publié à cette date\",\n edit: \"Modifier\",\n addPage: \"Ajouter une page\",\n },\n sideBlocksMenuBak: {\n addBlock: \"Ajouter un bloc\",\n back: \"Retour\",\n },\n sideBlocksMenu: {\n text: \"Les mises en page sont des options de conception pré-créées que vous pouvez ajouter à votre espace.\",\n text2:\n \"Commencez avec une sélection de modèles de page complète personnalisables\",\n layout: \"Mises en page\",\n template: \"Modèles\",\n addBlock: \"AJOUTER UN BLOC\",\n block: \"Blocs\",\n },\n sideConfigurationsMenu: {\n title: \"PARAMÈTRES DU BLOC\",\n label1: \"Nom de l'espace et image de couverture\",\n label2: \"Attributs du fichier\",\n label3: \"Options de saisie interactive\",\n attrPlaceholder1: \"Écrire quelque chose...\",\n attrLabel: \"Placeholder\",\n attrLabel2:\n \"Permettre aux participants de voir toutes les réponses\",\n attrLabel3:\n \"Afficher les réponses avant que le participant ne réponde\",\n attrLabel4:\n \"Permettre au participant de choisir si sa réponse est visible par les autres\",\n attrLabel5: \"Autoriser plusieurs réponses par personne\",\n attrLabel6:\n \"Permettre au participant de passer cette indication\",\n label4: \"Options de saisie interactive\",\n label5: \"Rembourrage\",\n label6: \"BLOC\",\n label7: \"COLONNE\",\n label8: \"Marge\",\n label9: \"GRILLE\",\n label10: \"Alignement vertical\",\n label11: \"Options du bouton\",\n label12: \"Couleur de fond du bouton\",\n label13: \"Couleur du texte du bouton\",\n text: \"Coins du bouton\",\n label14: \"Fond\",\n label15: \"Couleur\",\n label16: \"Image\",\n label17: \"Réinitialiser\",\n resetBlock: \"Réinitialiser le bloc\",\n label18: \"Alignement\",\n label19: \"Rayon de bordure\",\n label20: \"Coins\",\n label21: \"Nom du bloc\",\n label22: \"Options de notification par e-mail\",\n label23: \"Envoyer un e-mail de notification\",\n attrLabel8: \"Inclure un message personnalisé\",\n attrLabel9: \"Inclure le contenu de la section suivante\",\n attrLabel10: \"Inclure le contenu complet\",\n attrLabel11: \"Aperçu court\",\n attrLabel12: \"Sujet\",\n attrLabel13: \"Message\",\n defaultWaitLabel: \"La section suivante a été publiée dans {{space_name}}\",\n defaultWaitMessage: \"Bonjour {{first_name}} - je voulais juste vous faire savoir que la prochaine section de {{space_name}} a été publiée. {{space_link_button}}\"\n },\n takeSurvey: {\n text: \"Ce sondage est vide\",\n },\n tiptapAi: {\n placeholder: \"Écrire une brève description\",\n label: \"Veuillez rédiger 2 ou 3 phrases décrivant votre offre.\",\n placeholder2: \"ex. coachs, consultants et thérapeutes\",\n label2: \"Pour qui cette offre est-elle destinée ?\",\n text: \"Bonjour, nous expérimentons une nouvelle fonctionnalité d'IA. Voulez-vous que Sutra génère automatiquement du contenu pour votre modèle en utilisant l'IA ?\",\n },\n uploader: {\n label1: \"Lien\",\n label2: \"Code\",\n placeholder: \"Coller le lien de l'image ou du fichier\",\n label3: \"Lien intégré\",\n placeholder2: \"Coller le code intégré -> \",\n label4: \"Code intégré\",\n saveEmbed: \"Enregistrer l'intégration\",\n placeholder3: \"Rechercher des images\",\n saveImage: \"Enregistrer l'image\",\n },\n viewPage: {\n text: \"Cette page est vide\",\n },\n },\n },\n users: {\n payment: {\n completePayment: \"Finaliser le paiement\",\n join: \"Rejoindre l'espace\",\n pay: \"Payer\",\n },\n stepper: {\n step1: \"Étape 1\",\n step1Description: \"Se connecter\",\n step2: \"Étape 2\",\n step2Description: \"Finaliser le paiement\",\n step3: \"Étape 3\",\n step3Description: \"Obtenir l'accès\",\n },\n start: {\n title: \"Bienvenue\",\n subtitle: \"Veuillez saisir votre adresse e-mail ci-dessous\",\n email: \"Email\",\n submit: \"Continuer\",\n invalidEmailErrorMsg: \"Adresse e-mail invalide\",\n },\n signIn: {\n title: \"Connectez-vous à votre compte\",\n subtitle: \"Vous n'avez pas de compte ?\",\n subtitleLink: \"S'inscrire\",\n email: \"Email\",\n password: \"Mot de passe\",\n submit: \"Se connecter\",\n magicLink: \"Obtenir un lien magique\",\n forgotPassword: \"Mot de passe oublié ?\",\n invalidEmailErrorMsg: \"Adresse e-mail invalide\",\n },\n signUp: {\n invalidEmailErrorMsg: \"Adresse e-mail invalide\",\n invalidPasswordErrorMsg:\n \"Le mot de passe doit comporter au moins 8 caractères\",\n invalidFirstNameErrorMsg:\n \"Le prénom doit comporter au moins 3 caractères\",\n title: \"Créer un nouveau compte\",\n subtitle: \"Vous avez déjà un compte ?\",\n subtitleLink: \"Se connecter\",\n firstName: \"Prénom\",\n lastName: \"Nom de famille\",\n username: \"Nom d'utilisateur\",\n email: \"Email\",\n password: \"Mot de passe\",\n emailNewsletterConfirmation:\n \"Inscrivez-vous à la newsletter de Sutra pour être informé(e) des webinaires gratuits sur les processus de groupe, l'enseignement transformationnel et les affaires relationnelles.\",\n submit: \"S'inscrire\",\n legalPrefix: \"En vous inscrivant à Sutra, vous acceptez nos\",\n terms: \"Conditions d'utilisation\",\n privacy: \"Politique de confidentialité\",\n },\n spaceReference: {\n total: \"Total aujourd'hui\",\n },\n planReference: {\n total: \"Total\",\n total_today: \"Total aujourd'hui\",\n due_in: \"Dû dans 14 jours\",\n paymentDetails: {\n annual: \"Abonnement annuel de\",\n month: \"Abonnement mensuel de\",\n },\n },\n resetPassword: {\n title: \"Réinitialisez votre mot de passe\",\n subtitle:\n \"Veuillez entrer un nouveau mot de passe pour votre compte Sutra ci-dessous.\",\n password: \"Mot de passe\",\n passwordConfirmation: \"Confirmation du mot de passe\",\n submit: \"Réinitialiser le mot de passe\",\n },\n recover: {\n title: \"Mot de passe oublié ?\",\n subtitle:\n \"Veuillez saisir votre adresse e-mail ci-dessous et nous vous enverrons des instructions pour réinitialiser votre mot de passe.\",\n email: \"Email\",\n submit: \"Envoyez-moi les instructions\",\n footer: \"Vous avez déjà un compte ?\",\n footerLink: \"S'identifier\",\n },\n magicLink: {\n invalidEmailErrorMsg: \"Adresse e-mail invalide\",\n title: \"Demander un lien magique\",\n subtitle:\n \"Veuillez saisir votre adresse e-mail ci-dessous et nous vous enverrons un lien qui vous connectera automatiquement.\",\n email: \"Email\",\n submit: \"Continuer\",\n footer: \"Se connecter avec un e-mail\",\n alertTitle: \"Vous y êtes presque...\",\n alertMessage:\n \"Nous avons envoyé le lien magique à votre adresse e-mail. CECI EST UN TEST, AUCUN E-MAIL RÉEL N'A ÉTÉ ENVOYÉ.\",\n },\n edit: {\n title: \"Veuillez compléter votre profil\",\n addProfileImage: \"Ajouter une image de profil\",\n removeProfileImage: \"Supprimer l'image de profil\",\n bioPlaceholder: \"Parlez un peu de vous...\",\n bio: \"Biographie\",\n submit: \"Enregistrer\",\n skip: \"Passer et le faire plus tard\",\n },\n magicSignin: {\n text: \"Connectez-vous...\",\n },\n profile: {\n button: \"Message\",\n button2: \"Modifier le profil\",\n title: \"Espaces\",\n },\n profileModal: {\n profile: \"Profil\",\n message: \"Message\",\n editProfile: \"Modifier le profil\",\n openProfile: \"Ouvrir le profil\",\n spaces: \"Espaces\",\n selectImage: \"Sélectionner une image\",\n },\n signOut: {\n loggedOUt: \"Déconnecté\",\n title: \"Vous êtes déconnecté\",\n message: \"À bientôt !\",\n },\n },\n errors: {\n basic: \"Oups, quelque chose s'est mal passé !\",\n },\n },\n },\n },\n });\n\nexport default i18n;\n","import React, { createContext } from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport { BrowserRouter } from \"react-router-dom\";\nimport { MantineProvider } from \"@mantine/core\";\nimport { createStore } from \"redux\";\nimport { Provider } from \"react-redux\";\nimport { PostHogProvider } from 'posthog-js/react'\n\nimport appStore from \"../store/app\";\nimport { initPrototypesFunctions } from \"../utils/Prototypes\";\nimport { sutraTheme } from \"../collections/sutraTheme\";\n\nimport api from \"../utils/AxiosInterceptor\";\n\nimport App from \"./App\";\nimport \"../i18n/i18n\";\nimport actionCable from \"actioncable\";\n\nimport \"./styles.css\";\n\nimport { getHost, getEnv } from \"../utils/Host\";\nimport { setCookie } from \"../utils/Cookies\";\n\nimport * as Sentry from \"@sentry/react\";\nimport { BrowserTracing } from \"@sentry/tracing\";\n\nSentry.init({\n dsn: \"https://caaaade4b7ce4b3ab930b30d4efd1b72@o337946.ingest.sentry.io/4504560035168256\",\n debug: true,\n ignoreErrors: [\n // Ignore Safari browser errors\n 'ResizeObserver loop limit exceeded',\n \"Cannot read properties of undefined (reading \\'nodeViewWrapper\\')\",\n \"UnhandledRejection\",\n \"Non-Error promise rejection captured with value: undefined\"\n ],\n integrations: [new BrowserTracing()],\n tracesSampleRate: 1,\n replaysSessionSampleRate: 0,\n replaysOnErrorSampleRate: 0,\n\n integrations: [new Sentry.Replay({block: [\"iframe\"]})],\n beforeSend(event, hint) {\n if (getEnv() == \"development\" || hint.originalException === \"Timeout\") return null;\n\n if (event.exception) {\n Sentry.showReportDialog({\n eventId: event.event_id,\n });\n }\n return event;\n },\n});\n\ninitPrototypesFunctions();\n\nconst CableApp = {};\nCableApp.cable = actionCable.createConsumer(getHost(\"ws\"));\nexport const ActionCableContext = createContext();\n\nif (!window.$api){\n window.$api = api\n}\n\nexport default function Index(props) {\n if (props.user) {\n const saveUser = {\n id: props.user.id,\n username: props.user.username,\n email: props.user.email,\n authentication_token: props.user.authentication_token,\n account_type: props.user.account_type,\n };\n setCookie(\"auth_user\", btoa(JSON.stringify(saveUser)), 365 * 10);\n window.$currentUserAuthToken = props.user.authentication_token;\n }\n\n for (let i = 0; i < props.cookies.length; i++) {\n const cookie = props.cookies[i];\n setCookie(cookie.name, cookie.value, 365 * 10, \"secure;\");\n }\n\n window.$RAILS_ENV = { ...props.env };\n\n const myTheme = sutraTheme;\n\n const store = createStore(appStore);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\n// Pure REACT (NO RAILS)\n// ReactDOM.render(\n// \n// \n// \n// \n// ,\n// document.getElementById('root')\n// );\n","export function initPrototypesFunctions(){\n Date.prototype.toLocaleDateStringAbs = function() {\n return `${this.getFullYear()}/${this.getMonth()+1}/${this.getDate()}`\n }\n}\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\nimport ReactOnRails from 'react-on-rails';\n// import 'jquery-ujs';\n// import { addLocaleData } from 'react-intl'; // DO we need locale support?\n// import MenuSidebar from '../bundles/MenuSidebar/components/MenuSidebar';\n// import RightSidebar from '../bundles/RightSidebar/components/RightSidebar';\n// import CircleTopNav from '../bundles/CircleTopNav/components/CircleTopNav';\n// import HeaderImage from '../bundles/CircleHeader/components/HeaderImage';\n// import RouterApp from '../bundles/startup/RouterApp';\n// import appStore from '../bundles/store/defaultStore';\n// import Logo from '../bundles/Header/components/Logo';\n// import Subheader from '../bundles/Subheader/components/Subheader';\n// import Breadcrumbs from '../bundles/Breadcrumbs/components/Breadcrumbs';\n// import EditorJS from '../bundles/EditorJS/components/Editor';\n// import Settings from '../bundles/EditorJS/components/Settings';\n// import Modal from '../bundles/Modal/components/Modal';\n// import Notifications from '../bundles/Header/components/Notifications';\nimport Index from '../bundles/v2/components/Index';\n\nReactOnRails.register({\n // MenuSidebar,\n // CircleTopNav,\n // RightSidebar,\n // HeaderImage,\n // RouterApp,\n // EditorJS,\n // Breadcrumbs,\n // Subheader,\n // Settings,\n // Logo,\n // Modal,\n // Notifications,\n Index\n});\n\n// ReactOnRails.registerStore({\n// appStore\n// });\n"],"names":["sutraTheme","primaryColor","primaryShade","colors","headings","sizes","h1","fontSize","h2","h3","h4","h5","h6","other","headerHeight","sideFrameWidth","sideFrameWidthSm","appShellPadding","spaceSidebarDefaultTextColor","breakpoints","xs","sm","md","lg","xl","xxl","tagColors","backgroundColor","DEFAULT_THEME","hoverColor","textColor","header_color","header_link_color","primary_button_background_color","primary_button_text_color","secondary_button_background_color","secondary_button_text_color","background_color","default_text_color","default_link_color","sidebar_background_color","sidebar_text_color","default_badge_color","default_badge_text_color","registration_page_background_color","registration_page_default_text_color","SET_SPACE","SET_SPACE2","SET_USER","SET_PERMISSIONS","SET_ALERT","SET_SIDEBAR_DRAGGING","SET_SIDEBAR_DRAGGED_OVER","SET_SCROLL","SET_TIPTAP","SET_TIPTAP_SIDEMENU","SET_MAIN_ACTIONS","SET_COUNTERS","SET_COLORS","SET_COLORS2","SET_FIXED_HEADER_STATUS","SET_TREE","SET_CHILDREN","SET_PIN_MESSAGE","SET_CALENDAR","SET_INTERACTIONS","SET_SETTINGS_TABS","SET_PATH","SET_PATHS","SET_SETTINGS","SET_JOURNEYS","SET_SURVEY","SET_COMPLETED","SET_SPACE_LOADING","SET_NEO4j_VERSION","SET_CONNECTIONS","SET_HOVER_SIDEBAR","SET_HIDDEN_SIDEBAR","SET_HIDDEN_HEADER","SET_HIDDEN_COVER","SET_HIDDEN_TITLE","SET_HIDDEN_BREADCRUMBS","SET_WIDE_WIDTH","SET_LIST_SPACE_TO_UPDATE","SET_NEW_MESSAGE","SET_FORCE_LAYOUT_UPDATE","SET_SELECTED_DISCUSSION_TAGS","SET_CREATE_AI_SPACE_MODAL_VISIBLE","setSpace","space","type","setSpace2","space2","setUser","user","window","$currentUserAuthToken","authentication_token","setAlert","alert","setTiptap","tiptap","setTiptapSidemenu","tiptap_sidemenu","$tiptapSidemenu","opened","setColors","defaultSpaceColors","setActions","mainActions","newActions","defaultMainActions","setFixedHeaderStatus","fixed_header_status","setTree","tree","setHoverSidebar","hover","setHiddenSidebar","hidden","setHiddenHeader","setHiddenCover","setHiddenTitle","setHiddenBreadcrumbs","setWideWidth","on","setListSpaceToUpdate","update","setNewMessage","newMessage","setForceLayoutUpdate","forceLayoutUpdate","setCreateAiSpaceModalVisible","isVisible","defaultSpace","id","name","slug","url_handle","defaultUser","username","permissions","authenticated","avatar","url","defaultNode","defaultAlert","title","message","color","defaultScroll","atBottom","top","scrollTop","defaultTiptap","editor","defaultTiptapSidemenu","editPage","editRegPage","invite","manage","defaultCounters","direct_messages_count","notifications_count","defaultColors","defaultEmpty","defaultChildrenA","defaultChildrenB","defaultFixedHeaderStatus","show","defaultTree","children","loading","defaultHidden","defaultListSpaceToUpdate","defaultNewMessage","defaultForceLayoutUpdate","defaultOn","defaultPermissions","defaultLoading","defaultCompleted","complete","defaultVersion","version","defaultConnections","connections","defaultTags","tags","defaultCreateAiSpace","combineReducers","state","action","sidebarDragging","node","sidebarDraggedOver","scroll","tiptapSidemenu","counters","colors2","sidebarChildrenA","sidebar_children_a","sidebarChildrenB","sidebar_children_b","fixedHeaderStatus","hoverSidebar","hiddenSidebar","hiddenHeader","hiddenCover","hiddenTitle","hiddenBreadcrumbs","listSpaceToUpdate","wideWidth","pinMessage","calendar","interactions","settingsTabs","path","paths","settings","journeys","survey","spaceLoading","completed","neo4jVersion","selectedDiscussionTags","createAiSpace","PENDING_REQUESTS","api","axios","interceptors","request","use","config","Promise","resolve","reject","interval","setInterval","clearInterval","response","Math","max","error","JSON","stringify","circleRegex","circleSettingsRegex","circleRegistrationRegex","circleListRegex","useSidebarStyles","location","useLocation","useState","spaceView","setSpaceView","settingsView","setSettingsView","registrationView","setRegistrationView","listView","setListView","useEffect","test","pathname","props","xmlns","x","y","viewBox","style","enableBackground","xmlSpace","className","d","Logo","useSelector","logoUrl","setLogoUrl","usingSutraLogo","setUsingSutraLogo","setPath","logo","$fetchedTopSlug","pod_type","to","is_vision_builder","src","alt","getDomain","hostname","indexOf","getRoot","getFullDomain","subdomain","getHocuspocusHost","getNeo4jHost","protocol","getEnv","setCookie","cname","cvalue","exdays","secure","http_only","Date","setTime","getTime","expires","toUTCString","document","cookie","getCookie","ca","decodeURIComponent","split","i","length","c","charAt","substring","Space","this","User","Error","onFetch","include","sucessCallback","errorCallback","signal","params","locale","$currentUserLanguage","auth_token","invitation_slug","top_slug","$currentTopSlug","then","res","data","e","onFetchSimpleShow","onFetchBasic","onFetchSimple","onFetchByScope","scope","paginator","onFetchManaged","exclude_slug","onFetchManagedDiscussions","onFetchByUser","onFetchDirectMessagesCount","onViewAllDirectMessages","onCreate","parent","parent_id","onUpdate","onUploadHeader","file","onUploadLogo","onUploadFile","onUploadThumbnail","progressCallback","formData","FormData","append","headers","onUploadProgress","progressEvent","percentage","round","loaded","total","onRemoveThumbnail","onRemoveHeader","onRemoveLogo","onSaveColors","onFetchThemes","onUpdateTree","onJoin","joining","onJoinWithCoupon","coupon_code","price","onLeave","onArchive","onUnarchive","onRestore","onDestroy","onHardDestroy","onPin","onDuplicate","full","onCopyTemplate","copy_template_into_slug","copy_resources","copy_sub_circles","is_reg_page","onFetchContent","onSidebarUnreadCount","onFetchDirectChildren","scopes","direct","onFetchDeepChildren","deep","onFetchChildren","onFetchManagedChildren","managed","onFetchSidebarChildren","onFetchLayouts","context","onFetchTemplates","from","onFetchModels","onGateway","bundles","localStorage","getItem","onAccess","urlParams","URLSearchParams","search","affiliate","affiliate_date","preview_ij","has","processing_payment","onFix","onLink","parentId","onUnlink","onCanBeLinked","onFetchLink","onPermissions","onNeo4j","onZoomData","zoom_user_id","onZoomDisconnect","onZoomCreateMeeting","_params","Completion","$api","get","post","completion_id","Hocuspocus","Payment","onLoad","documentName","event","onPublish","t","useTranslation","can_edit_shareable_link","plan","can_upload_cover","can_upload_logo","can_set_layout","can_set_theme","can_set_format","can_add_step_send_to_pending","can_add_step_send_email","can_add_add_to_existing_space","can_add_step_wait","can_add_step_webhook","can_add_step_survey_person","can_schedule_states","can_broadcast","can_survey","can_use_interest_form_block","can_set_flexible_payments","can_activate_completions","max_allowed_spaces","max_allowed_ij","max_allowed_managers_pro","max_allowed_managers_org","can_see_participation_tab","can_send_selective_broadcast","can_send_message_broadcast","can_schedule_broadcast","can_add_from_children","can_add_to_direct_open_children","can_send_message","can_create_registration_page","can_use_interactive_block","can_save_templates","can_duplicate_spaces","can_create_quizzes","can_auto_tag","can_use_zoom_recordings","can_create_coupon","can_create_bundles","personal","description","icon","size","professional","organization","useStyles","createStyles","theme","featureItem","alignItems","marginTop","PremiumModal","premiumMsg","premiumMessages","premiumFeat","premiumFeatures","i18n","classes","toUpperCase","slice","Modal","zIndex","spacing","sx","green","weight","onClose","setOpened","toLowerCase","getNewPlanName","mt","map","feature","noWrap","ml","lineHeight","explanation","Tooltip","disabled","$isTouchDevice","label","withArrow","wrapLines","width","features","onClick","onUpgrade","radius","component","Link","asUploadButton","variant","leftIcon","primaryButtonStyle","tinycolor","darken","toString","appearanceButtonRoot","gray","fontWeight","borderRadius","display","paddingLeft","appearanceButtonLeftIcon","justifyContent","appearanceButtonInner","HeaderAndLogo","dispatch","cx","useDispatch","canUploadCover","setCanUploadCover","canUploadLogo","setCanUploadLogo","isImgEditorHeaderShown","setIsImgEditorHeaderShown","isImgEditorLogoShown","setIsImgEditorLogoShown","htmlImageHeader","useRef","htmlImageLogo","fileInputHeader","fileInputLogo","openImgEditorHeader","closeImgEditorHeader","current","value","openImgEditorLogo","closeImgEditorLogo","isFileValid","selectedFile","target","Swal","onCoverUploadFinished","newSpace","header","onLogoUploadFinished","onOpenFileSelector","click","mb","ref","accept","onChange","files","createElement","reader","FileReader","addEventListener","result","readAsDataURL","Image","MantineProvider","SpaceModel","withCloseButton","source","onSave","editedImageObject","designState","imageBase64","Rotate","angle","componentType","Crop","ratio","ratioTitleKey","noPresets","autoResize","defaultSavedImageQuality","defaultSavedImageName","tabsIds","TABS","defaultTabId","defaultToolId","TOOLS","onBeforeSave","isIndexedDBAvailable","indexedDB","storeJSON","storeId","recordId","callback","open","onerror","console","onsuccess","db","objectStoreNames","contains","createObjectStore","tx","transaction","store","objectStore","stored_at","putRequest","put","oncomplete","close","err","onupgradeneeded","getJSON","getRequest","deleteJSON","SelectItem","image","others","PageFormat","format","setFormat","useNavigate","validatePremium","setValidatePremium","onChangeFormat","array","setTimeout","href","Select","placeholder","itemComponent","maxDropdownHeight","defaultValue","push","version_history","SpaceSetting","onUpdateUrlHandle","onRemoveMetaImage","PageLayout","hiddenLayoutElements","sidebar","setSidebar","setHeader","cover","setCover","setTitle","breadcrumbs","setBreadcrumbs","setWidth","$hiddenLayoutElements","hidden_layout_elements","space_width","isHidden","removeHiddenLayoutElements","onSaveWidth","auxSpace","$spaceWideWidth","reload","element","index","splice","SpaceSettingModel","pod_settings_attributes","can_manage","Switch","checked","currentTarget","item","borderBottom","control","paddingTop","paddingBottom","paddingRight","content","contentInner","Form","themes","setThemes","selectedTheme","setSelectedTheme","validatePremiumTheme","setValidatePremiumTheme","validatePremiumLayout","setValidatePremiumLayout","validatePremiumFormat","setValidatePremiumFormat","onSelectedTheme","form","useForm","initialValues","setFieldValue","secondary_background_color","sub_header_text_color","height","onSubmit","values","ScrollArea","Accordion","offsetIcon","iconPosition","multiple","classNames","padding","Grid","Object","keys","class","file_name","iconSize","border","styles","inputName","InputWrapper","ColorInput","getInputProps","newSpaceLoading","focusTrapRef","useFocusTrap","intention","copy_members","copy_managers","copy_structures","copy_surveys","copy_broadcasts","copy_journeys","copy_reg_page","validate","spaceName","spaceParams","spaceId","link","Broadcaster","receive","eventName","register","responseData","$broadcasterEvents","broadcast","elements","key","eventToTrigger","Event","dispatchEvent","send","unRegisterAll","removeEventListener","unRegisterElement","_element","secondaryButtonStyle","buttonCompleted","separatorRight","borderRight","isSpaceThemed","MainActions","navigate","mediumScreen","useMediaQuery","largeScreen","setEditPage","setEditRegPage","editButtonDisabled","setEditButtonDisabled","openedSettings","setOpenedSettings","openedMembers","setOpenedMembers","openedColors","setOpenedColors","openedMoreOptions","setOpenedMoreOptions","openedMoreOptions2","setOpenedMoreOptions2","openedDuplicate","setOpenedDuplicate","setCompleted","loadingModalOpened","setLoadingModalOpened","deletingModalOpened","setDeletingModalOpened","registered","setRegistered","onTriggerAction","$tiptapNeedSaving","status","leave","$spaceEditPage","onMembers","onReturnToSettings","onMarkAsCompleted","_completed","CompletionModel","getElementById","onOpenPreview","preview","onVersionControl","onTiptapUndo","commands","undo","showHeaderSeparator","auth","position","pr","mr","is_post","allow_completions","show_mark_complete_button_in_header","is_top_level","can_edit","o","is_member","is_pending_member","is_registration_survey_member","is_admin","Popover","placement","inner","root","show_members","parents_versions","html","showDenyButton","confirmButtonText","denyButtonText","confirmButtonColor","denyButtonColor","isConfirmed","isDenied","can_delete","red","redirect_to","pod_state","was_legacy","fixed","can_join","allow_interested_on_join","setItem","has_start_date","members","AvatarsGroup","limit","members_count","cursor","child","truncated","member","DefaultAvatar","Drawer","HocuspocusModel","closeOnClickOutside","closeOnEscape","flexFlow","pt","stripe","useStripe","useElements","preventDefault","onChangePayment","CardElement","options","base","fontFamily","fontSmoothing","invalid","iconColor","fullWidth","Stripe","frequency","payment_intent_id","$selectedCouponCode","bundle_id","$selectedBundleId","onCheckIntent","onCancelSubscription","user_id","onFetchKeys","onFetchPayments","by_user","onAttachPaymentMethod","pm_id","onConnect","onDisconnect","onDisconnect2","onRefund","payment_id","onApplyCode","currency","onTaxCollection","enabled","onUpdatePaymentIntent","PaymentMethod","stripePromise","setStripePromise","clientSecret","stripeOptions","setStripeOptions","setReturnUrl","paymentMethods","setPaymentMethods","StripeModel","loadStripe","publishable_key","client_secret","appearance","return_url","payment_methods","log","createPaymentMethod","card","getElement","paymentMethod","setOpenedPaymentMethod","pb","Elements","last4","History","accountPayments","setAccountPayments","StatusBadge","Badge","paid","unpaid","date","toLocaleString","DateTime","getSymbolFromCurrency","formatted_amount","invoice_pdf","colorScheme","dark","textAlign","prev_top_space","page","onFetchEvents","onFetchList","onFetchTree","TreeView","chart","setSelectedNode","onLoadTree","swatches","onNodeClick","setTreeViewSelectedNode","zoomToNode","setNodeValues","level","newTree","parent_of","SpaceNeo4jModel","CirclePack","setNewSpaceLoading","copy_posts","as_template","createTemplate","copy_registration_into_space","isCreateTemplateRegistration","Fees","fee","textDecoration","blue","pink","Once","setCurrency","defaultPaymentAmount","setDefaultPaymentAmount","disableActions","propsLoaded","lastSpaceId","timoutId","payment_settings","default_payment_frequency","default_payment_amount","updateAll","pod_payment_settings_attributes","clearTimeout","circle_payment","NativeSelect","newValue","new_currency","input","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderLeft","SectionHeader","spaceVersion","subtitleClass","Title","titleClass","rightSide","Answer","survey_id","question_id","answer","answer_id","onReorder","answers","onDestroyAll","dragHandle","fn","focusStyles","maxWidth","MultipleItem","quizMode","isCorrect","onIsCorrectChange","filter","is_correct","onContentChange","rightSection","ActionIcon","A","X","rightSectionWidth","SingleItem","PaymentItem","showDescription","setShowDescription","onDescriptionChange","marginRight","symbol","undefined","paymentAmount","onPaymentAmountChange","onFrequencyChange","Anchor","timerId","AnswerItem","setContent","setPaymentAmount","answerId","setAnswerId","setFrequency","setDescription","setIsCorrect","setDisabled","timeoutId","payment_amount","tmp_id","$tmpAnswersId","AnswerModel","surveyId","questionId","_content","_payment_amount","_is_checked","_frequency","_description","draggableId","provided","snapshot","draggableProps","innerRef","dragHandleProps","useListState","handlers","setType","setState","new","order","onUpdateAnswer","newAnswers","newAnswer","onDestroyAnswer","onDragEnd","destination","reorder","droppableId","direction","droppableProps","readOnly","sutrablue","answer_text","Question","onFetchById","question","questions","white","questionWrap","itemDragging","boxShadow","shadows","questionOptions","questionType","setQuestionType","answerKey","setAnswerKey","setQuestionId","setAnswers","QuestionModel","question_type","acceptPayments","answer_key","getQuestionOptions","aux","pop","onQuestionTypeChange","onUpdateLast","onPushNewAnswer","onAnswersUpdate","_answers","_questionType","newQuestion","isDragging","SegmentedControl","showKeys","Textarea","autosize","Extension","addOptions","types","addGlobalAttributes","attributes","uid","default","getLeaf","getNextInnerContent","view","selection","selectionContent","parentContent","innerContent","leaf","getSimpleStructure","convertToSimpleStructure","structure","nodes","newNodeStructure","attrs","getListOfNodes","list","isDocumentEmpty","doc","exludedFoundAux","textContent","isEmptySelection","$anchor","holder","nodeAt","isEmptyTextBlock","isTextSelection","onlyTextNodes","isNonTextBlock","isNodeInsideNode","getPos","nodeName","depth","descendants","pos","isTopNode","getTopParentNode","isMultilineSelection","closestInteraction","blocker","found","interactivePosition","isBlocking","nodesBetween","isInteractive","closestBlockingInteraction","showNextInteraction","_pos","newInteraction","positions","isText","tr","setNodeMarkup","incrementor","updateInteractionsBar","viewport","querySelector","getBoundingClientRect","scrollTo","$spaceUserInteractions","count","interactionCount","progress","body","checkInteractionAndHideIfNeeded","dom","blockingInteraction","checkInteractionAndHideIfNeededReact","updateInteractionsPositions","auxPos","intPos","setUniqId","nodeDOM","uuidv4","setAttribute","wideOrNarrow","suffix","add","rest","width1","width2","$registrationWideWidth","Paragraph","draggable","group","addCommands","addNewEmptyLine","selectTextblockEnd","chain","insertContentAt","setTextSelection","run","customEnter","focus","splitBlock","setParagraph","setNode","addNodeView","HTMLAttributes","classList","mergeAttributes","entries","forEach","a","querySelectorAll","isJumpTo","replace","contentDOM","Heading","addAttributes","levels","includes","setResizeable","gridCol","$","parents","inlineCol","resizable","aspectRatio","handles","minWidth","resize","ui","$auxPosResizeX","clientX","apply","start","css","left","stop","save","parentWidth","parentHeight","fixHeight","percentWidth","percentHeight","edgeHeight","posAtCoords","clientY","$auxPosResize","setNodeSelection","inside","setCustomResizeable","resizeableWidth","resizeableHeight","resizeableParentHeight","setLazyLoad","$loadedSources","isEditable","observer","IntersectionObserver","entry","isIntersecting","removeAttribute","unobserve","rootMargin","threshold","minHeight","observe","activeCheckers","Map","isVideoURLValid","fetch","method","ok","updateNodeAttributes","uploader","rect","centerX","centerY","theNode","trigger","space_slug","new_src","urlOutput","new_status","createUploadTag","bgColor","uploadTag","innerHTML","clearActiveChecker","checkUploadStatus","uploaderId","existingChecker","firstChild","removeChild","checkInterval","videoURL","set","camelCase","str","reduce","b","stylesToString","applyCamelCase","stylesStr","stylesKeys","join","stylesToCamelCase","fixStringToJSON","string","styleArray","styleObject","trim","selectable","allowGapCursor","inline","renderHTML","span","ctrlKey","metaKey","ignoreMutation","mutation","Node","controls","viewAs","thumbnail","zoom","meeting_number","meeting_password","parseHTML","tag","setVideo","insertContent","mainContent","imageCont","img","container","onload","video","maxHeight","fileToFetch","overlay","Hls","isSupported","hls_config","maxBufferLength","maxMaxBufferLength","liveSyncDurationCount","liveMaxLatencyDurationCount","debug","xhrSetup","xhr","setRequestHeader","hls","loadSource","attachMedia","Events","MANIFEST_PARSED","play","ERROR","fatal","ErrorTypes","NETWORK_ERROR","startLoad","MEDIA_ERROR","recoverMediaError","destroy","setAudio","audio","pointerEvents","right","bottom","appendChild","onclick","stopPropagation","onplay","videoId","setEmbed","image_url_ok","iframe","percWidth","parseFloat","iframeHeight","divider","resolvedPos","videoWrapper","prosemirrorInline","nodeResource","$resourceNodeWidth","overflow","referrerpolicy","FileNode","defining","extension","displayAs","pdfjsLibExists","pdfjsLib","$themeColors","embed","embedId","overflowY","overflowX","toolbar","filename","actions","downloadButton","printButton","marginLeft","clientWidth","getDocument","promise","pdf","numPages","currentPage","renderNextPage","getPage","getViewport","scale","scaledViewport","canvas","getContext","renderContext","canvasContext","render","pageContainer","download","print","anchor","fileImageIcon","setFile","ListItem","setFancyLink","grape","violet","indigo","cyan","teal","lime","yellow","orange","reverse","colorButton","button","isActive","toolbarWrap","menuWrap","menuButton","useSpace2","linkOpened","setLinkOpened","linkUrl","setLinkUrl","linkTarget","setLinkTarget","linkFormat","setLinkFormat","colorOpened","setColorOpened","colorHOpened","setColorHOpened","onTextColorChange","auxTextColor","setAuxTextColor","highlightColor","onHighlightColorChange","auxHighlightColor","setAuxHighlightColor","intervalId","linkOpenedAux","actualColor","getAttributes","actualHighlightColor","minimal","setColor","setHighlight","onChangeColor","callback2","time","toggleBold","toggleItalic","toggleStrike","toggleUnderline","align","gutter","exclude","isFlexibleOptions","setLink","enter","unsetLink","Menu","p","rightIcon","compact","TextIcon","toggleHeading","Heading1Icon","Heading2Icon","Heading3Icon","setTextAlign","toggleBulletList","toggleOrderedList","toggleCode","ColorPicker","colorPickerSwatches","swatchesPerRow","unsetColor","unsetHighlight","inline_embed","regex","embedUrl","vimeo","vimeo_manager","loom","youtube","paramsMap","end","time_continue","param","coub","vine","imgur","gfycat","ids","codepen","instagram","twitter","pinterest","facebook","aparat","sensemaker","MediaFile","space_id","onTranscribe","media_file","onUpdateVideoNode","video_id","FilePond","FilePondPluginImageResize","FilePondPluginImageTransform","UNSPLASH_ACCESS_KEY","unsplashSearchTimeout","Uploader","useMantineTheme","activeTab","setActiveTab","uploadType","setUploadType","embedType","setEmbedType","embedLink","setEmbedLink","embedCode","setEmbedCode","zoomData","setZoomData","zoomUserId","setZoomUserId","zoomMeetingId","setZoomMeetingId","unsplashImages","setUnsplashImages","canUseZoom","setCanUseZoom","selectedUnsplashImage","setSelectedUnsplashImage","filePond","imageInput","lastZoomUser","fetchUnsplashPhotos","initFilePond","connected","fetchZoomData","getAcceptedTypes","escapeFilename","createNode","extras","updateAttributes","commonAttributes","notMain","$currentSlug","setImage","unsplashUrl","urls","regular","addUnsplashAttribution","triggerUnsplashDownload","$tiptapLastSelectionRange","imageData","unsplashBaseUrl","userLink","links","text","first_name","last_name","marks","rel","searchTerm","client_id","query","per_page","results","photoId","getEmbedUrl","code","SERVICES","serviceConfig","shift","exec","result2","createEmbedMediaFile","originalUrl","mediaFile","original_url","upload_type","embed_id","MediaFileModel","handleFileSelect","createMediaFile","inputElement","imageResizeTargetWidth","imageResizeUpscale","imageTransformOutputQuality","server","process","fieldName","metadata","load","abort","uploadToEndpoint","fileName","imageId","encodeURIComponent","zoom_data","users","Tabs","tabsList","flexWrap","tabActive","borderBottomColor","tabLabel","active","onTabChange","Tab","searchable","meetings","clientId","redirectUri","baseUrl","blockUrl","baseName","$videoUploadKey","ext","lastIndexOf","getExtension","getEmbedLinkType","Input","I","SimpleGrid","cols","unsplashHeight","small","sendButtonActive","sendButtonNotActive","cancelButton","postImage","bottomIcon","marginBottom","getColors","openedMedia","setOpenedMedia","mediaType","setMediaType","openedEmojis","setOpenedEmojis","useCallback","previousUrl","prompt","extendMarkRange","openDelay","popover","wrapper","onEmojiSelect","emoji","setEmoji","canToggleFormatbar","toggleFormatbar","withSaveButton","saveButtonIcon","saveButtonText","CustomStyles","setCustomStyles","$tiptapSelectionRange","setPListStyles","insideList","serializer","serializeForClipboard","someProp","f","openStart","openEnd","childCount","defaultAttrs","DOMSerializer","schema","_detachedDoc","implementation","createHTMLDocument","wrap","serializeFragment","needsWrap","wrappers","nodeType","wrapMap","textBetween","thead","tbody","tfoot","caption","colgroup","col","td","th","fragment","createDocumentFragment","keep","rendered","next","eq","spec","spanning","markDOM","serializeMark","isInline","renderSpec","isLeaf","RangeError","serializeNodeInner","mark","toDOM","xmlNS","createTextNode","tagName","createElementNS","Array","isArray","setAttributeNS","parseFromClipboard","plainText","$context","inCode","Slice","Fragment","parsed","block","metas","elt","firstTag","n","readHTML","emptyElements","emptyElement","mediaElements","j","parentNode","insertBefore","parser","DOMParser","parseSlice","preserveWhitespace","closeTo","frag","isolating","closeFragment","closeIsolatingStart","contextNode","getAttribute","parse","hasRequiredAttrs","create","addContext","match","contentMatchAt","lastWrap","inLast","findWrapping","addToSibling","closeRight","wrapped","withWrappers","matchType","normalizeSiblings","replaceChild","lastChild","fill","fillBefore","copy","sibling","brokenClipboardAPI","navigator","userAgent","onDragStart","dataTransfer","selectTextblockStart","auxSelection","selectParentNode","auxNode","effectAllowed","setData","innerText","dragging","move","EventHandler","addProseMirrorPlugins","Plugin","PluginKey","handleDOMEvents","clipboardData","clearData","cut","dontDelete","$from","$to","positionsToDelete","sameParent","isBlock","startPos","endPos","nodeSize","changed","execCommand","posBefore","posBefore2","currentNode","nodeBefore","nodeBefore2","nodeToDelete","nodeToDeletePos","handleKeyDown","empty","handleKeyPress","handlePaste","getData","replaceSelection","setCustomSize","_class","every","ColumnStyles","setColumnStyles","EditorEventsSimple","onBeforeCreate","usedUuid","onSelectionUpdate","onTransaction","onFocus","onBlur","MentionPluginKey","Mention","renderLabel","suggestion","char","pluginKey","command","range","nodeAfter","startsWith","getSelection","collapseToEnd","allow","contentMatch","atom","renderText","addKeyboardShortcuts","Backspace","isMention","insertText","Suggestion","mentionStrings","forwardRef","selectedIndex","setSelectedIndex","selectItem","items","full_name","useImperativeHandle","onKeyDown","_default","term","per","include_parents","concat","popup","onStart","ReactRenderer","MentionList","clientRect","tippy","getReferenceClientRect","appendTo","showOnCreate","interactive","updateProps","setProps","hide","onExit","parseInt","panelWrap","isDark","lighten","contextGet","formatbar","setFormatbar","useEditor","editable","extensions","StarterKit","history","paragraph","heading","listItem","blockquote","UniqueID","Highlight","multicolor","EditorEvents","Underline","TextStyle","Color","VideoNode","AudioNode","EmbedNode","ListItemNode","ParagraphNode","HeadingNode","FancyLinkNode","CustomSize","CustomResizeable","TaskList","TaskItem","nested","Placeholder","showOnlyCurrent","openOnClick","ImageNode","TextAlign","Details","openClassName","DetailsSummary","DetailsContent","Emoji","emojis","gitHubEmojis","enableEmoticons","configure","mentionSuggestion","off","contextDb","json","cleanHtml","el","lastNonEmptyEl","currEl","lastElementChild","previousElementSibling","currEmptyEl","nextElementSibling","nextEl","remove","json_data","html_data","clearCallback","clearContent","withBorder","BlocksMenuInline","CreateSurveyMain","memo","setSurveyId","canCreateQuizzes","setCanCreateQuizzes","setLoading","setQuizMode","allowRetake","setAllowRetake","showScoreAndKey","setShowScoreAndKey","showRedirect","setShowRedirect","setChildren","searching2","setSearching2","searchTimeoutId","selectedSpace","dataLoaded","quiz_mode","allow_retake","after_submit_show_score_and_keys","redirect_to_space","redirect_to_space_obj","onUpdateForm","onUpdateFormFull","ctrl","AbortController","_spaces","onSend","TiptapInline","modals","isEmpty","clearable","onSearchChange","onSearchChildren","borderTop","Survey","onFetchPayment","onFetchUsers","onDownload","onAddToSpace","onTake","choices","onDownloadExcel","CreateSurvey","setCount","SurveyModel","onPushNewQuestion","onUpdateQuestion","onUpdateLastQuestion","onDestroyQuestion","newQuestions","onAdd","Skeleton","_form","extraButton","freeformResponse","TextBased","Summary","choice","graph_data","legend","Individual","setUsers","selectedUser","setSelectedUser","setChoices","getUsers","getChoices","groupQuestions","groups","exists","isQuestionCorrect","singleUser","ShowSurvey","surveyType","setSurveyType","setSurvey","SurveyItem","onSelect","justify","transition","option","strokeWidth","onEdit","all_choices_count","Manager","onFetchNeo4j","pod_manager_id","Add","managers","setManagers","spaces","setSpaces","searching","setSearching","spaces_ids","onFetchSpaces","onFetchManagers","ManagerModel","_managers","manager","onResetForm","MultiSelect","onSearchSpaces","questionStyle","answerWrap","answerStyle","radioStyle","borderColor","formStyle","setQuestion","setChoice","setPriceChoice","onAddChoice","isChosen","onChose","auxChoice","unChose","RadioGroup","orientation","radio","Radio","NumberInput","val","useLangUser","language","setLanguage","setLangUser","lang","abbreviateTimezone","timezone","isInDST","getTimeZone","setLocale","toFormat","isSameDay","startAt","endAt","startMonth","startDate","startYear","endMonth","endDate","endYear","simpleFormatDate","format2","timeFormat","timeZone","dateString","currentYear","getFullYear","spaceCalendar","format1","raw_start_date","has_end_date","raw_end_date","useActivityCounter","notificationTypes","itemsIds","itemsTypes","itemsSlugs","activityCount","setActivityCount","activity","is_seen","notification_type","item_slug","item_type","pod_messages","pod_slug","item_id","parents_slugs","some","getRef","publishOnDate","spaceListItem","backgroundPosition","backgroundSize","spaceListItemHasHeader","margin","titleHasHeader","textShadow","dateHasHeader","dateBlockWrap","dateBlockWrapHasHeader","dateBlockDate","dateBlockMonth","titleSm","dateSm","ListContent","isUnpublished","launch_on_date","launch_time","_width","useElementSize","avatarLimit","setAvatarLimit","showAvatars","setShowAvatars","updateSpace","propsTimeoutId","updating","auxId","fetchId","onFetchSpace","last_messages","last_message","abstract","onSpaceFetched","backgroundImage","lineClamp","formatDate","tagged_with","tagWrap","dateStyle","leftSection","timestamp","toISOString","formatDateTime","privacy_level","Like","pod_id","pod_message_id","reflection_reflection_id","onUsers","footerElements","LikeButton","useParams","liked","setLiked","hovered","setHovered","tooltip","setTooltip","likedR","usersLoaded","usersLoadedTimeoutId","transitionDuration","LikeModel","messageId","reflectionId","newCount","onLike","onMouseEnter","onMouseLeave","Message","render_as","update_last_seen","message_type","privacy","auto_tag","message_body","onMakePublic","onMakePrivate","onPinMessage","onUnread","onFetchAiSummary","onAiSummaryTrigger","onHighlightEvent","onGenerateContext","onSuggestedPrompt","onDummyPosts","email","onTriggerActions","onTriggerDispatcher","action_slug","onGetMemberActions","listFlatView","titleGroup","datePosted","buttonStyle","dateScheduled","unload","setPermissions","refSize","newComments","setNewComments","updateCount","smallScreen","useInView","triggerOnce","inView","onFetchNewComments","update_count","uniqueKeys","MessageModel","is_pinned","openProfile","getLink","onMenuOpenned","gallery_feature","showAuthor","listShowTimestamp","created_at","listShowPreviewText","dateSection","Set","isUnique","Boolean","listShowThumbnail","objectFit","listAllowLikes","is_liked","likes_count","listShowComments","comments_count","listShowMembers","noActions","canPin","isPost","is_linked","commentsCount","abstractWrap","titleAndAbstractWrap","avatarWrap","footerWrap","thumbnailImageStyle","Circle","canView","setCanView","circle_id","$modalSpaceOpened","$templatesModalIsOpened","onFetchSpaceFromAPI","spaceFound","$space2Children","onSpaceFetchedNeo4j","$spaceChildren","$selectedTemplateChildren","can_view","storedAt","updatedAtLocalDate","updated_at","setSpaceData","role","$currentRole","getRadius","dataUid","contentEditable","detail","GridPost","buttonBackgroundColor","buttonTextColor","buttonText","idName","forceUpdate","ReactNodeViewRenderer","surveyWrap","surveyTitle","surveyDescription","surveyButton","settingsButtonStyle","taking","pages","setStatus","menuOpened","setMenuOpened","blockTitle","spaceSlug","isMarkComplete","buttonBorderColor","actionCallback","actionCallbackValue","actionCallbackTarget","setCustomButtonAttr","attr","newAttrs","CircleNode","SurveyNode","CustomButton","taken","setTaken","errorMessage","setErrorMessage","choices_count","questionAlreadyAnswered","replaceQuestionChoice","addQuestionChoice","removeQuestionChoice","auxChoices","is_content_empty","TiptapReadonly","borderTopColor","onTaken","overlayOpacity","drawer","closeButton","Surveys","surveys","setSurveys","createSurveyOpened","setCreateSurveyOpened","showSurveyOpened","setShowSurveyOpened","selectedSurvey","setSelectedSurvey","showAddToSpaces","setShowAddToSpaces","validateOpened","setValidateOpened","onUpdateSurvey","onEditSurvey","onSelectedSurvey","onAddSurvey","Container","pl","Flexible","Continuously","opacity","flex","NumberOfTimes","setValue","numberOfTimes","decrement","onMouseDown","min","handlersRef","setNumberOfTimes","increment","UntilDate","untilDate","setUntilDate","itemTitle","itemDescription","switch","subOptionWrap","subOptionItem","FreeTrial","timeoutRef","freeTrial","setFreeTrial","debouncedSetFreeTrial","trial_period","defaultTrialPeriod","chargeOptions","Recurring","subscriptionType","setSubscriptionType","defaultPaymentFrequency","setDefaultPaymentFrequency","setDefaultTrialPeriod","defaultUpdated","subscription_type","until_date","number_of_times","Number","grow","Coupon","coupon","CouponsForm","expireDate","setExpireDate","expireTime","setExpireTime","discount_type","mergeDateAndTime","_date","_time","toLocaleDateStringAbs","toLocaleTimeString","expire_at","CouponModel","errors","trashStyle","Coupons","coupons","setCoupons","copiedToClipboard","setCopiedToClipboard","getDurationText","CopyToClipboard","onCopy","onCopyCode","formatted_value","Bundle","bundle","BundlesForm","setParentCircles","showInCheckout","setShowInCheckout","amount","space_bundle_pods_ids","can_accept_charges","show_in_checkout","setSettings","selectedParents","onSelectedParents","BundleModel","space_bundle_pods","auxSettings","Bundles","setBundle","setBundles","Text","TaxCollection","taxEnabled","setTaxEnabled","tax_collection","showSwalMessage","onLabel","offLabel","is_enabled","Extras","accordionState","AccordionLabel","underline","openTax","paymentOptions","Paid","paymentSelection","setPaymentSelection","paymentOptionsList","excluded","included","Alert","showDisconnect","stripe_user_id","onRefresh","Invitation","invitation","onResend","pod_invitation_id","InviteEmail","setLoaded","onUpdatePaymentFromProps","add_people","notify_members","payment_frequency","add_to_subspaces","showTitle","countsManagers","max_allowed_managers","InvitationModel","setRefresh","minRows","maxRows","is_paid","can_send_email_invites","$fetchedTopSpace","is_email_ready","InvitePeople","selectedSpaces","setSelectedSpaces","selectedActiveMembers","setSelectedActiveMembers","selectedPendingMembers","setSelectedPendingMembers","activeMembers","setActiveMembers","pendingMembers","setPendingMembers","allowCopySpaces","setAllowCopySpaces","allowCopyActiveMembers","setCopyAllowActiveMembers","allowCopyPendingMembers","setCopyAllowCopyPendingMembers","getOnlyMembers","getOnlySpaces","copy_members_from","active_members","pending_members","active_all","pending_all","onInvite","shareble_link","Member","encodeParams","flatMap","pad","num","padStart","getMonth","getDate","getHours","getMinutes","getSeconds","onFetchCounts","onFetchMembersToCopy","onFetchMembersBySlugs","slugs","user_ids","onFetchMembersProgress","includeSubspaces","date_range","include_subspaces","onDownloadProgressExcel","start_at","end_at","queryString","fullUrl","pod_member_id","onUpdateRole","onEmailFrequency","onApprove","onApproveAll","inviteSection","setInviteSection","all","pending","counts","setCounts","MemberModel","allowed","mixpanel","treeModalOpened","setTreeModalOpened","setCreateTemplate","openedPaymentMethod","validatePremium2","setValidatePremium2","openedPremium","setOpenedPremium","treeViewSelectedNode","inviteOpened","setInviteOpened","setIsCreateTemplateRegistration","trackMixpanel","$userIsSubscribed","replaceState","shouldUpdateTopTree","completions","onCreateTemplate","is_registration_template","can_moderate","onDuplicateSpace","$openVersionHistoryOnEditMode","is_manager","$userIsPending","modal","HeaderActions","NotificationModel","onFetchNotSeenCount","onMarkAsSeen","onMarkAllAsSeen","useNotificationsStyle","notificationsStyle","notificationItem","badge","sutrapink","Notifications","useDisclosure","RenderNotifications","notification","is_direct","$notificationRedirectionCount","main","allow_reflections","onClickNotification","subtitle","RenderInsides","px","py","shadow","Indicator","offset","toggle","indicator","LazyAvatar","loadingVariables","firstLoad","noMore","UnreadDot","DirectMessages","messages","setMessages","onScrollBottom","newMessages","getMessagedUserAvatar","RenderMessages","onClickMessage","getMessagedUserFullName","wordBreak","getLastMessageAuthor","getLastMessageText","RenderLoader","S3_BUCKET","STATUS","uploads","setUploads","compId","editorRef","uploadTimeRef","AWS","accessKeyId","$RAILS_ENV","S3_ACCESS_KEY","secretAccessKey","S3_SECRET_KEY","processUpload","updateMediaNode","markUploadAsUsed","handleBeforeUnload","loadCurrentUploads","cleanupOldUploads","$currentUploads","upload","returnValue","showAlert","timer","timerProgressBar","currentUploads","refreshUploadsUI","storedTimestamp","storedDate","findIndex","storeLastUploadTime","newUpload","createdAt","now","unshift","uploadToS3","s3","Bucket","region","httpOptions","timeout","fileParams","ACL","Body","Key","ContentType","partSize","queueSize","folderParams","putObject","folderErr","folderData","uploadTask","cancelUpload","lastProgress","uploadStartTime","startTime","evt","newProgress","elapsedTime","remainingTime","minutes","floor","seconds","estimatedTime","updateNode","Location","animate","striped","getStatusMessage","Search","onSearch","current_slug","actionHovered","actionBody","CustomAction","onTrigger","scrollIntoView","removeAllRanges","createRange","selectNodeContents","addRange","getEmojiCode","skins","UnstyledButton","tabIndex","onTrigger2","withPlaceholder","emojicon","iconType","iconValue","displayEmoji","highlight","parents_names","author","scopeName","setScopeName","scope2Name","setScope2Name","searchTimeout","lastQuery","SearchModel","$currentUsername","SpotlightProvider","searchIcon","searchPlaceholder","shortcut","nothingFoundMessage","onQueryChange","actionsWrapperComponent","actionComponent","closeOnActionTrigger","openSpotlight","userProfileWrap","userProfileInner","userProfileLink","userProfileUsername","userProfileLabel","UserMenu","openedDirectMessages","setOpenedDirectMessages","openedNotifications","setOpenedNotifications","openedUploads","setOpenedUploads","changeLanguage","itemIcon","itemLabel","UserButton","appHeaderInner","boxSizing","background","appHeaderLogoWrap","HeaderContent","showLogo","setShowLogo","DisplayBurger","appHeader","isAuthRoute","isProfile","Header","burgerVisible","setBurgerVisible","$sidebarIsOpen","authRoutes","visible","List","noLink","openInModal","publish","setPublish","setJoin","privacyDescription","setPrivacyDescription","rootPrivacyDescription","setRootPrivacyDescription","join_on_create","show_start_date","start_date","end_date","start_time","end_time","hangout_link","_startDate","_startTime","_endDate","_endTime","_launchDate","_launchTime","duplicateFrom","isRoot","minDate","noAdvance","spaceLink","scrollTimeoutIds","SpacesList","showSpaceFilter","setSpaceFilter","newSpaceOpened","setNewSpaceOpened","fetchSpaces","removeSubdomain","correctRoot","currentUrl","URL","correctRootUrl","host","newUrl","getScopedTitle","clearScrollTimeouts","spacesSelection","onScrollPositionChange","div","clientHeight","scrollHeight","scrollTimeoutId","viewportRef","Helmet","New","onSettings","onAuth","oauth_client_id","oauth_client_secret","oauth_state","oauth_redirect_uri","oauth_response_type","redirect_uri","write","onChangePassword","confirm","onUploadAvatar","onRemoveAvatar","onFetchSubs","onFetchStripeConnections","useAuthUser","userString","atob","$currentUserId","$currentName","$currentEmail","$currentAccountType","account_type","video_upload_key","$currentUserIsAdmin","$currentUserAvatar","getAuthUser","authUser","setAuthUser","saveUser","btoa","removeAuthUser","Profile","isImgEditorShown","setIsImgEditorShown","htmlImage","fileInput","bio","initFormData","onAvatarUploaded","closeImgEditor","openImgEditor","UserModel","UserSetting","user_settings","user_setting","Account","setConnections","current_password","password","password_confirmation","onDeleteAccountConfirmation","reset","goToSpace","PasswordInput","connection","pod","onDisconnectSpace","UserSettingModel","inputLabel","inputValidator","UserAffiliate","Payments","payments","payment","value_formatted","percent","revenue_formatted","pay_at","affiliates","setAffiliates","selectedAffiliate","setSelectedAffiliate","UserAffiliateModel","total_earned","onSubscriptionIntent","plan_id","payment_method_id","Affiliates","onFetchSettings","getAffiliateLink","bl","SutraStripeModel","useFrequencyOptions","excludeIndexes","allFrequencyOptions","frequencyOptions","_","Broadcast","simple","broadcast_id","onSendPreview","onInclude","onExclude","onIsExcluded","Item","setActive","onLeaveConfirmation","extraSmall","subscriptions","setSubscriptions","PaidSubscriptions","SubscriptionModel","filters","onUpdateFrequency","circleId","currentFrequency","setCurrentFrequency","setExcluded","broadcastExcluded","getCurrentFrequencyLabel","Searchbar","onKeyPressed","onSearchByTerm","onClearSearch","setFilters","setOnScrollBottom","newSubs","newFilters","current_frequency","broadcast_excluded","is_interactive","userEmail","Email","didMount","groupNotification","setGroupNotification","activityEmailFrequency","setActivityEmailFrequency","notifyMentionsChecked","setNotifyMentionsChecked","weeklyDigestChecked","setWeeklyDigestChecked","notifyLikesChecked","setNotifyLikesChecked","group_notifications","message_email_frequency","weekly_digest","notify_mentions","notify_likes","digestPreferences","Billing","onCancelConfirmation","newUser","onCancel","record","setRecord","newMeetingLoading","setNewMeetingLoading","zoomMeetings","setZoomMeetings","linkOption","setLinkOption","zoomLoaded","setZoomLoaded","zoomIntervalId","zoomIntervalCount","onFetchZoomData","getMeetingLink","meetingId","spaceViewAs","generate_thumbnail","onCreateZoom","topic","Intl","DateTimeFormat","resolvedOptions","meeting","offsetScrollbars","onPreSave","onConnectZoom","nothingFound","service","frameBorder","allowFullScreen","frameborder","allowfullscreen","webkitallowfullscreen","mozallowfullscreen","black","controlActive","linkText","linkTextActive","GettingStarted","videoOpened","setVideoOpened","gettingStartedOpened","setGettingStartedOpened","gettingStartedSection","setGettingStartedSection","advancedOpened","setAdvancedOpened","advancedSection","setAdvancedSection","templatesOpened","setTemplatesOpened","templatesSection","addTemplateIntervalId","addTemplateIntervalCounter","gettingStartedItems","advancedItems","templateItems","Template01","templateSlug","Template02","Template03","Template04","Template05","Template06","getElementsByTagName","onAddTemplate","$waitForTemplateResponse","tiptapCont","alignSelf","WelcomeVideo","GettingStartedGuide","AdvancedFeatures","Plan","onFetchbyId","planTitle","planDescription","planPriceWrap","planCurrency","planPrice","planFrequency","featureIntro","tableData","PlanOptions","plans","setPlans","PlanModel","getPlanLink","is_current_plan","getCurrentPlanIndexCheck","plansElement","Card","priceAnnually","priceMonthly","personalPlan","personalPlanFeatures","_plan","professionalPlan","professionalPlanFeatures","featuresInfo","Welcome","showPlans","setShowPlans","offsetTop","behavior","ScheduleDemo","prefill","firstName","lastName","Pricing","Start","setPlan","setTotal","addCoupon","setAddCoupon","couponCode","setCouponCode","onPriceChange","has_trial","ensure2Dec","toFixed","getFrequency","Paper","auxTotal","amount_off","percent_off","onPay","PaymentElement","trial","Auth","onMagicSignIn","magic_token","join_slug","gateway_slug","removeItem","onSignIn","onSignUp","userParams","onMagicLink","onRecoverPasswordInstructions","onResetPassword","reset_password_token","onAffiliateData","setAffiliate","AuthModel","returnUrl","setPrice","setTrial","mounted","confirmSetup","confirmParams","my","settingsNav","fontSizes","NavbarContent","setCurrent","settingsLinks","settings_tabs","is_private_one_level","Scheduling","showStartDate","setShowStartDate","setStartDate","setStartTime","setEndDate","endTime","setEndTime","showLaunchDate","setShowLaunchDate","launchDate","setLaunchDate","launchTime","setLaunchTime","showArchiveDate","setShowArchiveDate","archiveDate","setArchiveDate","archiveTime","setArchiveTime","showReadonlyDate","setShowReadonlyDate","readonlyDate","setReadonlyDate","readonlyTime","setReadonlyTime","archive_on_date","archive_time","readonly_on_date","readonly_time","Additional","resourceEditing","setResourceEditing","circleCreation","setCircleCreation","circleCreationTypes","setCircleCreationTypes","allowMemberCopy","setAllowMemberCopy","podType","setPodType","allowReflections","setAllowReflections","showMembers","setShowMembers","hideMemberEmails","setHideMemberEmails","newMemberNotifications","setNewMemberNotifications","parentCircles","podSize","setPodSize","podSizeValue","setPodSizeValue","sidebarDefaultOpened","setSidebarDefaultOpened","sidebarHideChildren","setSidebarHideChildren","allowCompletions","setAllowCompletions","showMarkCompleteButtonInHeader","setShowMarkCompleteButtonInHeader","redirectToSpace","setRedirectToSpace","canActivateCompletions","setCanActivateCompletions","originalParents","resource_editing","circle_creation","hide_member_emails","allow_member_copy","new_member_notifications","sidebar_default_opened","sidebar_hide_children","originalParentsSlugs","arraysAreEqual","parent_circles","arr1","arr2","LogProgress","setProgress","useItemProgressListener","useItemFinishListener","onUploadCallback","uploadResponse","CustomUploadButton","Seo","metaTitle","setMetaTitle","metaDescription","setMetaDescription","metaImage","setMetaImage","meta_title","meta_description","meta_image","providersData","scripts","setScripts","saveTimeout","third_party_scripts","onEditScript","newScripts","getPlaceholder","provider","onDeleteScript","script","onAllScriptsValid","Open","Private","Journey","journey_id","onFetchByTrigger","onFetchActions","journey","Step","step","step_id","steps","AddSimple","mode","object_type","object_id","EditEmail","setBroadcast","sendEmailTo","content_json","send_as","send_email_to","email_address","BroadcastModel","broadcast_params","step_params","_step_params","AddToExistingSpace","auxSpaces","AddToNewSpace","stepSlug","setStepSlug","AddFromSubSpace","Structure","structure_id","EditStructure","structureId","setStructureId","StructureModel","ApplyTemplate","SetToPending","pendingMessage","setPendingMessage","pending_message","block_until_approved","contentJson","EditSurvey","Webhook","webhook_id","webhook","webhookId","WebhookModel","Wait","waitDate","setWaitDate","waitTime","setWaitTime","wait","wait_until","waitUntil","_waitDate","_waitTime","EditStep","setAction","setName","closeSettings","StepModel","onSettingsChange","displayStepSettings","SendEmail","setOptions","broadcasts","AddStructure","structures","setStructures","_structures","SurveyPerson","_surveys","StepIcon","AddStep","firstSelection","setFirstSelection","canSetToPending","setCanSetToPending","canAddToExistingSpace","setCanAddToExistingSpace","canWait","setWait","canSurveyPerson","setCanSurveyPerson","canSendEmail","setCanSendEmail","canSendMessage","setCanSendMessage","canAddFromChildren","setCanAddFromChildren","canAddToDirectOpenChildren","setCanAddToDirectOpenChildren","canWebhook","setCanWebhook","lastOpenedState","JourneyModel","setTriggerEdit","displaySecondSelection","stepFooterPadding","stepFooterLeft","stepFooterRight","stepFooterAddStep","addStepHidden","visibility","addStepHover","bottomConnector","addStepButtonWrap","addStepButtonHover","RegistrationFlow","setJourney","setIsDragging","settingsOpened","setSettingsOpened","addStepOpened","setAddStepOpened","selectedStep","setSelectedStep","triggerEdit","stepPosition","setStepPosition","setTrigger","triggerOptions","AddStepBlock","outline","displayName","metricItem","flexDirection","transform","customLinkRight","customLinkLeft","accordionTitle","Main","paramsUrl","privacySelection","setPrivacySelection","blockUntilRegistered","setBlockUntilRegistered","setVisibility","setAccordionState","editLink","setEditLink","sharebleLink","setSharebleLink","interested","invitations","earnings","formatted_earnings","urlHandle","setUrlHandle","useLegacyRegistrationPage","setUseLegacyRegistrationPage","accordionLoaded","section","sections","auxState","block_until_registered","use_legacy_registration_page","itemsList","privacyOptions","registrationOptions","assign","_settings","shareable_link","stats","getStats","stat","goToMembers","initialItem","belongs_to_private_or_paid_circles","registrationSetting","getRegistrationMessage","has_legacy_registration_page","DirectMessage","onFetchOrCreate","statusColors","deleted","registration_survey","survey_payment","statusString","statusMessage","rolesData","RegisteredRow","setMember","setRole","onSelectedRole","onSetRole","nextRole","canAddNewManagers","isSelected","overflowWrap","wordWrap","newMember","joined","DirectMessageModel","hasSubscriptions","is_subscribed","email_frequency","loader","oldScope","Registered","useViewportSize","setMembers","setScope","setTerm","extraLargeScreen","selected","setSelected","newSelected","areAllSelected","hasSelections","valid","refresh","onKeyGeneral","which","onMemberUpdate","onSendBroadcast","verticalSpacing","highlightOnHover","indeterminate","onSelectAll","colspan","Pagination","InvitedRow","setInvitation","is_flexible","sent_at","Invited","setInvitations","onInvitationDestroy","newInvitations","onKeyPress","isPaid","refunded","failed","PaymentRow","setPayment","setPayments","PaymentModel","onPaymentUpdate","Interest","affiliate_sutra","affiliate_sutra_date","Premium","ComposeBroadcast","scheduled","setScheduled","sender","setSender","fixedUsers","send_on_date","send_date","send_time","broadcast_type","sendTo","sendToUsers","usersIds","broadcastType","isTopLevel","parentName","getSendToData","whiteSpace","InterestedRow","interest","setInterest","Interested","interests","setInterests","InterestModel","onInterestDestroy","newInterest","Members","pageSection","setPageSection","canSendSelective","setCanSendSelective","checkSearchParams","getTab","BroadcastItem","is_sent","is_scheduled","sent_on","send_count","send_to_text","is_draft","openedDetails","setOpenedDetails","setBroadcasts","selectedBroadcast","setSelectedBroadcast","onBroadcastUpdate","onBroadcastEdit","CreateStructure","ShowStructure","dangerouslySetInnerHTML","__html","wait_display","pod_structures","start_on","StructureItem","setStructure","Structures","createStructureOpened","setCreateStructureOpened","showStructureOpened","setShowStructureOpened","selectedStructure","setSelectedStructure","onUpdateStructure","onEditStructure","onSelectedStructure","onAddStructure","Admin","ListContent2","ChildrenList","addMargin","Scheduled","Archived","Sorter","orderBy","onSort","sortBy","by","as","ParticipationActivity","capToMinValue","showWords","words_count","max_words_count","posts_count","max_posts_count","setShowWords","setOrderBy","onSearchByDateRange","channelData","setChannelData","newData","auxMembers","sort","nameA","getSortKey","nameB","markComplete","MemberActivityRow","last_seen_at","last_posted_at","MemberActivity","ProgressActivity","has_progress","Participation","dates","canSeeTab","setCanSeeTab","participationChannel","cable","useContext","ActionCableContext","cableConnect","unsubscribe","channel","user_token","token","disconnected","received","ParticipationModel","presence","posts","RingProgress","roundCaps","thickness","MainContent","settingsWrap","settingSidebar","settingsMain","helpScouteLoaded","Beacon","Reflection","onFetchUnread","first","setShowFormatting","showFormatting","cancellable","saveTitle","customClass","Tag","global","useTagColors","menuControl","removeTag","manualUpdate","TagButton","mount","colorPicker","setColorPicker","tagId","setTagId","TagModel","filled","_color","ColorSwatch","onUpdateColor","setTags","selectValue","setSelectValue","selectedTags","setSelectedTags","tagsNames","onRemove","newSelectedTags","onUpdatedMessage","getIdForTagName","getColorForTagName","creatable","getCreateLabel","reflectionButton","badgeClass","messagePanel","messagePanelEditable","messagePanelNotActive","messageTagging","toolPanel","toolPanelTaggingNotActive","dateStamp","footerButtons","setEditable","setTag","likesCount","setLikesCount","reflections","setReflections","tagging","isLiked","onFetchReflections","ReflectionModel","onUpdated","onDestroyConfirmation","htmlId","messageCreatedAt","getYear","canLike","canReflect","onOpenReflections","canTag","setTagging","closeButtonLabel","canEdit","canDelete","isPinned","canSetPrivate","isPrivate","TiptapSimple","messageContent","onTagFilter","canSetOpen","isManager","unread","dividerStyle","Reflections","scrollToBottom","scrollToReflection","$scrollTo","messageActions","messageTitle","subject","messageUnseenCount","unseen_count","can_tag","can_like","reflection","useReflectCallback","HeaderImage","getSpace","getBreadcrumbs","collapsedBreadcrumbs","collapsed","breadcrumb","getCollapsed","breadcrumbWrap","breadcrumbLink","breadcrumbButton","breadcrumbButtonHover","topOffset","SystemBreadcrumbs","auxBreadcrumbs","linked_parents","breadcrumbsHidden","Breadcrumbs","separator","c_item","buttonColor","PinMessage","onViewPinnedMessage","HeaderTitle","carretPos","titleInput","$updateTitle","selectionStart","selectionEnd","onPaste","currentTitle","pastedTitle","placeCaretAtEnd","collapse","sel","createTextRange","textRange","moveToElementText","select","titleValue","getDirectMessageName","onInput","SpaceTag","onFetchTagged","onFetchParents","onFetchByName","onTag","tag_id","onUntag","menuControl2","setError","selectRef","rTags","blur","HeaderTags","parentTags","setParentTags","tagsTimeout","tagsTimeout2","onFetchParentsTags","onFetchTags","HeaderAuthor","list_show_author","list_show_timestamp","allowInterests","setAllowInterests","plain_description","drawerWrap","formStyleLabel","formStyleLink","openedFromUrl","centered","required","buttonColorSolid","ellipsisColor","appearanceButtonLeftIconGreen","Calendar","openGoing","setOpenGoging","setCalendar","React","isMember","raw_dates_ok","atcb_action","iCalFileName","newCalendar","StatusBar","statusName","getStatusString","TagFilter","InteractionsBar","setInteractions","DummyBar","RedirectBar","NewReflections","reflectionsCount","auxReflections","onOpenNext","showAux","spaceAux","FixedHeader","setShow","isMain","scrollViewComp","getElementsByClassName","scrollViewport","inverted","fixedHeight","skipHeight","pin_message","$skipHeight","components","eventDescription","full_link","queryParams","reflection_id","drawerHeader","spaceContainer","Discussion","currentLocation","openedReflections","setOpenedReflections","selectedMessage","setSelectedMessage","receiveData","setReceiveData","reflectionsTagging","setReflectionsTagging","reflectionsDrawerHeader","setReflectionsDrawerHeader","pileIntervalId","channelPile","messagesCopy","currentConnectedSlug","scrollToBottomAfter","connectionIntervalId","lastConnectionAttempt","paramsChangeTimeout","tagFetch","querySearchCount","onFetchMessages","markAsSeen","hideLayout","changes","onReceivedMessage","onDestroyedMessage","onPinnedMessage","searchForMessage","cableDisconnectIfNeeded","performCableConnection","markReflectionAsSeen","_tag","_pod_message_id","onFetchMessagesFromAPI","stored","lookForMessage","anyFetchedMessageChanged","fetched","objectA","objectB","find","obj","scrollToMessage","onRemovePileAction","showHeader","can_pin","can_reflect","read_only","gridActions","innerWrap","addButton","coords","deleteSelection","deleteNode","$head","insert","clickCallback","hoverInCallback","hoverOutCallback","dist","subcontent","hasCol0","hasClass","isSibling8Size","siblings","isSibling4Size","isGrid3","currentPosInParent","call","Resource","resource","Page","resourceId","colorsTheme","itemOpened","borderdTopLeftRadius","itemStyle","iconWrapper","linkHover","textTransform","badgeStyle","publish_on_date","publish_time","setResource","$reloadResourceId","ResourceModel","default_opened","PageModel","initialState","onViewPage","onEditPage","onDestroyPage","onAddPage","fields","field","ActionButton","isPreview","isGateway","shouldOpenDemo","hrefDemo","linkTo","Button","Interaction","view_id","getParentTagIdForTagName","allow_members_to_create_tags","parentTagId","onCloseTags","onCopyLink","hideUser","hideDate","hideActions","buttonsZIndex","inReflections","hideTags","mobileActions","button2","swiper","useSwiper","currentSlideActive","slideNext","highlightIndex","slidePrev","isLastIndex","slideTo","pod_version","canCreateTags","EngagementFunction","functions_type","onMigrate","button1","InteractiveInput","interacted","setInteracted","showAll","setShowAll","showMessages","setShowMessages","showPrivate","setShowPrivate","aiSummary","setAiSummary","activeTab2","setActiveTab2","canLoadMore","setCanLoadMore","saving","setSaving","dummyPostsEmail","setDummyPostsEmail","dummyPostsPrompt","setDummyPostsPrompt","triggerActionsEmail","setTriggerActionsEmail","askPrivacy","setAskPrivacy","fixTimeout","interaction","isSaving","showNextInteractionAux","swiperRef","currentHighlight","setCurrentHighlight","hasOthersResponses","setHasOthersResponses","hasUserResponses","setHasUserResponses","functions","setFunctions","oriFunctions","setOriFunctions","selectedFunction","setSelectedFunction","selectedAction","setSelectedAction","sort_by","setSortBy","space_id_arr","layout","createIJIfNeeded","interactiveInputShowAllManager","interactiveInputPreShowAll","interactive_slug","interactive_pop_up","onFetchFunctions","scrollToMe","isInteractedWith","swalColors","tmpShowPrivate","interactiveInputShowAll","isAdvancedEngagement","highlights","delay","draw","words","d3Select","selectAll","randomColor","rotate","onChangeTab","tabKey","pastelColors","random","$currentSpaceName","addToHighlights","exist","auxAiSummary","firstContextNode","nonInteractiveNode","beginningOfContextForInteraction","$contentScrollViewport","ctrl2","dummy_posts_prompt","new_sort_by","only_current_user","displayToTheUser","has_others_responses","has_user_responses","auxData","isActiveToTheUser","onContentUpdate","clear","interactiveAdvancedEngagement","onSaveInterationOnly","InteractionModel","onSaveInteration","logged_in","auto_joined","openMessages","msg","is_private","onMoveOn","onPromptResponseScroll","scrollBy","FunctionModel","onChangeSortBy","debouncedSave","autoTag","tabControl","onSwiper","slidesPerView","centeredSlides","navigation","prevEl","spaceBetween","modules","Navigation","can_set_open","can_set_private","wordcloud","maxValue","word","cloud","offsetWidth","font","spiral","tabsListWrapper","summary","showdown","makeHtml","apify","onTranscriptsTrigger","short_context","next_short_context","raw_text","interactiveInputPlaceholder","interactiveInputAllowSkip","interactiveInputAllowMultipost","interactiveInputWithPrivacyCheck","onSkip","onOpen","prevState","interactiveInputLabel","interactiveInputNotificationOnEachPost","showProgressBar","InteractiveButton","userPosition","InteractiveWait","formattedDate","interactiveWaitValue","checkInteraction","interactiveWaitType","interactiveWaitSendNotificationEmail","interactiveWaitNotificationIncludeCustomMessage","interactiveWaitNotificationCustomMessage","interactiveWaitNotificationCustomSubject","interactiveWaitNotificationIncludeContent","interactiveWaitNotificationIncludeContentValue","interactiveWaitStatus","interactiveWaitMessage","interactiveWaitShowTimeLeft","setHorizontalRule","posAfter","setSelection","TextSelection","defaultType","addInputRules","nodeInputRule","$reloadTagsFeed","_id","messageHasTags","messageTags","tag1","tagsFeedShowAll","tagsNumberOfPosts","tagsShowUser","tagsDate","tagsShowMessageActions","tagsShowMTagsOnEachMessage","TagsFeed","dataset","BulletList","OrderedList","onToggleFormat","updateSelection","parseOptions","removeDummyCursor","dummyCursor","View","onFetchRaw","raw","onFetchBackupById","backup_id","onFetchBackups","onRestoreBackup","onAiMagic","ai_params","VisionInput","isVCard","isList","VisionCircle","showVCard","setPage","$closingSideMenu","AspectRatio","setStep","$reloadSurveyId","onUseTemplate","$openTemplatesOnEditMode","ViewModel","TiptapNoHP","allowComments","spaceWidth","viewId","noPaddingBottom","init","$sectionParams","isSelection","origin","onUpdateLink","swalTitle","$tiptapSelectionCoords","coordsAtPos","$selectionUpdateForConfigurations","ListStyles","setListStyles","setCustomRadius","_radius","nestedRadius","setCustomNestedRadius","_nestedRadius","emptyEditorClass","emptyNodeClass","showOnlyWhenEditable","includeChildren","decorations","hasAnchor","decoration","Decoration","DecorationSet","blockId","setCustomBlockId","_blockId","primar_button_text_color","Comments","setAllowComments","$showBackButtonModal","$currentSpaceAllowComments","allow_comments","onSaveSettings","toggleAllowComments","saveButtonDisabled","list_allow_likes","EditorView","docView","updateStateInner","plugins","orderedList","bulletList","Incrementor","CustomBlockId","CustomNestedRadius","HorizontalRule","ResourceNode","FormNode","ButtonNode","InteractiveInputNode","InteractiveButtonNode","InteractiveWaitNode","TagsFeedNode","Grid4Node","Grid3Node","Grid2Node","Grid1Node","InfoBoxNode","ColumnNode","VisionInputNode","VisionCircleNode","Interactive","CustomRadius","Focus","isAIBuilder","Vision","visionChannel","vision_id","onAddContent","sidebarItem","templates","setTemplates","activeTemplateTab","setActiveTemplateTab","vision","setVision","newNode","setNewNode","aiPromptValue","setAIPromptValue","isGenerated","setIsGenerated","uploading","setUploading","selectedTemplate","existsContent","btnBgColor","btnTextColor","isComponent","showAiPrompt","onCreateVision","template","updated","prev","VisionModel","aiPrompt","redirect_url","onSaveTheme","ModalOrView","Box","columns","layouts","setLayouts","models","setModels","activeTemplate","setActiveTemplate","activeLayout","setActiveLayout","activeModels","setActiveModels","activeLayoutTab","activeModelsTab","setActiveModelsTab","templatesTags","selectedTemplateTags","setSelectedTemplateTags","selectedLayoutsTags","setSelectedLayoutsTags","selectedModelsTags","onFetchView","filterTemplates","filterLayouts","filterModals","activeElement","categories","blocks","$contentModels","object","onFetchViewData","topSlug","compressedData","bytes","Uint8Array","charCodeAt","decompressed","pako","decompressGzip","auxObject","onButtonName","sharesTags","sharesCategories","tagged","item1","item2","category","getTagsNames","model","onAddLayout","blockGridItem","blockGridItemLayout","blockGridItemTemplate","blockName","imageWrapper","iconWrap","segmentedRoot","segmentedControlActive","segmentedControlWrap","segmentedLabel","segmentedLabelActive","segmentedControlBlock","sideMenuOptionsArray","adminFeatureZoom","ZoomIcon","only_beta","nextPos","ImageIcon","VideoIcon","EmbedIcon","AudioIcon","FileIcon","MarkComplete","BundleButton","InfoBox","newStyles","Divider","ResourceTopicsIcon","SurveyIcon","ListBuilder","TagsIcon","ContentIcon","ForumIcon","DiscussionIcon","EventIcon","CalendarIcon","ShowcaseIcon","Grid1","Grid2","Grid3","Grid6","Grid4","Grid5","ParagraphIcon","Headline1Icon","Headline2Icon","Headline3Icon","BulletListIcon","OrderedListIcon","CheckListIcon","toggleTaskList","sideMenuOptions","setCategory","setSelectedOption","setBlocks","infoPopoverOpened","setInfoPopoverOpened","onSetBlocks","$contentTemplates","$contentLayouts","onCloseDrawer","newOptions","onBlockClicked","onOpenTemplates","optionIndex","blockIndex","trapFocus","buttonControl","withinGrid","buttonControlLabel","Padding","topDefault","bottomDefault","setTop","setBottom","setLeft","setRight","sTop","setSTop","sBottom","setSBottom","sLeft","setSLeft","sRight","setSRight","topOpened","setTopOpened","bottomOpened","setBottomOpened","leftOpened","setLeftOpened","rightOpened","setRightOpened","saveNodeData","_node","Slider","onChangeEnd","Margin","chipChecked","chipOutline3","chipOutline4","chipLabel","Alignment","Chips","Chip","Width","setSize","resizeable","auxSize","gap","Radius","setRadius","NestedRadius","VerticalAlignment","verticalAlign","setVerticalAlign","BackgroundColor","bgColorOpened","setBgColorOpened","hideAdvancedSliders","hideColorGuide","hideInputType","presets","BackgroundImage","bgImage","setBgImage","bgSize","setBgSize","bgPosition","setBgPosition","bgRepeat","setBgRepeat","image_url","ButtonColor","newColor","attrName","ButtonText","setText","newText","ButtonAction","setCallback","regPageAction","setRegPageAction","setTarget","setMarkComplete","markCompleteHeader","setMarkCompleteHeader","spacesList","setSpacesList","setIsSelection","newCallback","newTarget","edited","$showMarkCompleteButton","gatewayLink","getGatewayLink","onSetText","BundleAction","vals","_bundles","CustomUploadHeaderButton","$uploadMethodSidebutton","SpaceAttrs","setSpaceName","spaceAbstract","setSpaceAbstract","fetchTimeoutId","uploadMethod","setUploadMethod","onUpdateName","onUpdateAbstract","abstract_text","appearanceButton","InteractiveText","attrPlaceholder","attrLabel","setChecked","nodesToUpdate","setAttrsToAllByType","InteractiveTextArea","InteractiveRadio","radioData","FileName","newName","BlockId","setBlockId","newBlockId","setUrl","oldLinkAttrs","DisplayAs","setDisplayAs","newDisplayAs","auxVideoId","transformVimeoLink","LinkTitle","REGION","LinkImage","uploadFile","client","newClient","base64","base64Image","base64Data","binaryString","Blob","keyStart","AWS_CONFIG","key_start","fullName","tagsLoader","tagsAux","setId","tagsList","setTagsList","setTagsFeedShowAll","setTagsShowUser","setTagsDate","setTagsShowMessageActions","setTagsShowMTagsOnEachMessage","setTagsNumberOfPosts","String","mergeArraysUniqueByKey","array1","array2","merged","InteractiveTags","BlockTitle","Transcript","transcript","setTranscript","transcription","tabInner","loadingStyles","updateIntervalId","lastNodeSaved","bgType","setBgType","gridBgType","setGridBgType","columnBgType","setColumnBgType","setUpdate","grid","setGrid","column","setColumn","abstractNodesFromSelection","newClass","newRadius","newTextAlign","leafNode","isTextblock","actNode","cleanStylesColumn","cleanStylesForEdition","cleanStylesGrid","cleanStylesNode","_styles","cleanStyles","replaceAll","onResetNode","attrToReset","resetAttributes","withOverlay","tabList","translation","newType","getHumanNodeType","spaceType","setSpaceType","setSpaceViewAs","prevCircleNode","findPreviousCircle","currentPos","prevCircle","defaultOpened","setDefaultOpened","publish_date","_publishDate","_publishTime","clearIndexdb","resourceLink","pageParams","BundleSelection","CreateBundle","bundleId","$reloadBundleId","newLineButtonStyle","spaceNodeId","spaceNodeName","openBlocksSideMenu","excludedFound","onButtonDragStart","ghost","setDragImage","$tiptapAchorPos","$draggingNode","outsider","selection_type","AddLineBelowSelection","openDirectMedia","basicBlockOptions","isMultiple","$spaceIsPost","onDeleteNode","isResource","isASpace","prevChild","isListItem","isColumn","parentOffset","insertPos","after","onButtonDuplicate","isAMedia","reFocusDocument","onContextMenu","insertIj","setIsMultiple","setIsASpace","setIsResource","setIsAMedia","setIsInteractive","setExcludedFound","setIsEmpty","showInsides","setShowInsides","shown","force","lastText","scrollDiv","onscroll","onmousemove","setScrollEvents","setMouseMoveEvents","tiptapWrapper","focusElement","focused","shouldShow","listTypes","r","excludedNodes","auxIsEmpty","hasFocus","tippyOptions","duration","BlockMenuActions","isOnlyText","setIsOnlyText","setIsMouseDragging","setMouseEvents","unsetMouseEvents","auxCallback","getOldAttrs","head","BulletIcon","NumberedIcon","hex","unsetAllMarks","shouldShowMenu","isInsideNode","Backup","BackupsList","setBackups","BackupModel","RegPageColor","hidePresets","auxColors","registration_width","fire","moreButton","buttonItem","userSelect","buttonIcon","buttonWrap","menuPanel","backupsOpened","setBackupsOpened","colorsOpened","setColorsOpened","insertCircle","allowAi","setAllowAi","people","tiptapChannel","allow_ai","text2","onUpdateContent","onActionCallback","new_slug","CustomCollaboration","Collaboration","getXmlFragment","yUndoPluginInstance","yUndoPlugin","originalUndoPluginView","undoManager","yUndoPluginKey","restore","viewRet","hasUndoManSelf","trackedOrigins","observers","_observers","afterTransactionHandler","ySyncPlugin","backups","loadingB","setLoadingB","activeIndex","setActiveIndex","backupId","Timeline","T","bulletSize","lineWidth","backup","bullet","horizontalRule","disconnect","$openCreateSpaceOnEditMode","lastPos","insertAt","onFocusIfEditable","Loading","stroke","Content","forcedDisconnected","setForceDisconnect","setUnsaveChanges","unSyncCount","connectionInterval","tiptapKey","unMount","resetProvider","clearProvider","onStatusChange","unsyncedChanges","reconnector","isSynced","connect","yDocument","Y","HocuspocusProvider","factor","forceSyncInterval","Notification","userName","lastSlug","view_width","RegistationPage","handlesIntervalId","layoutUpdateForced","invitationSlug","onFetchInvitation","prosemirrorEditorDivs","textStyle","linkStyle","InvitationBar","isFull","invitation_has_different_price","is_full","TaxAndDiscount","tax_amount","discount_value","CouponButton","FlexibleList","formatted_price","selectedBundle","selectedFlexible","setSelectedFlexible","otherValue","setOtherValue","isChecked","amountTitle","checkbox","labelGroup","otherPrice","BundlesList","bundlesType","shouldShowPaymentBox","setSelectedBundle","discount","hasDescription","getBundlePaymentDetails","SpaceReference","setDiscountType","setDiscountValue","setBundlesType","setIsShowOnlyBundles","isStartPage","fetchSpace","locationBundleId","cookieBundleId","bundleID","_bundle","setShowNewsLetter","show_newsletter","setShowSpaceReference","setProviders","sso_providers","setStepper","bundlesFiltered","setSpaceReference","new_total","_price","_currency","_coupon","_amount","totalPrice","top_parent","dimmed","has_coupons","hideCoupon","notLoggedIn","with_invitation","intent","is_valid","confirmPayment","Stepper","breakpoint","intent_id","Edit","showStepper","open_invitations","space_count","Pending","Processing","onReset","Gateway","BroadcastExclude","setEmail","privacyControl","parent_slug","actionButtonText","regexSutraLink","regexSutraLink2","canLink","setCanLink","extractSlug","can_be_linked","linkOnly","visualType","setVisualType","authors","setAuthors","parentVersion","listChildVersion","setListChildVersion","listTemplateId","setListTemplateId","listActionText","setListActionText","listLinkAction","setListLinkAction","setListShowPreviewText","setListShowThumbnail","setListShowComments","setListShowMembers","setListShowTimestamp","listAutoThumbnail","setListAutoThumbnail","listPrivacyControl","setListPrivacyControl","newTemplateName","setNewTemplateName","listFilterBy","setListFilterBy","setListFlatView","listOpenInModal","setListOpenInModal","setListAllowLikes","setListChildrenCapabilities","creationTypes","visualTypeChanged","savingLoader","setSavingLoader","present_as","list_show_preview_text","list_show_thumbnail","list_show_comments_count","list_show_members","list_auto_thumbnail","list_privacy_control","list_filter_by","list_flat_view","list_open_in_modal","list_child_version","list_action_text","list_template_id","list_link_action","list_children_capabilities","onEditTemplate","apart","auxTemplates","filterButtonActive","filterButtonPassive","setFilter","filteredSpaces","setFilterSpaces","thumbnailOpened","setThumbnailOpened","loadingMore","setLoadingMore","spacesArray","contentEmpty","tagFiltering","tagTimeout","fetchSpacesIDB","openPost","tagsFilter","firstSpace","lastSpace","currentDate","raw_event_date","pastDate","months","year","month","monthName","itemYear","itemMonth","itemDayA","setMonth","oldData","onFinishedLoading","check","newDataFromApi","loadmore","is_empty","onSetSettingsOpened","checkIcon","firstChar","restOfString","formTitle","onListActionTextChanged","onListTemplateIdChanged","chipStyle","listTitleLineClamp","list_title_line_clamp","listAbstractLineClamp","list_abstract_line_clamp","pinned","unpinned","onNewPost","onOpenedDuplicate","emailCopiedToClipboard","setEmailCopiedToClipboard","memberItemClass","memberItemText","memberItemTextDimmed","onDirectMessage","showEmail","onClickEmailButton","linkButtonStyle","searchBar","memberItem","opennedInvite","setOpenedInvite","nomore","memberItemTextClass","spaceReference","showSpaceReference","SignIn","labelPosition","labelProps","SignUp","subscribe_to_sutra","MagicLink","Recover","setForm","onInputChange","getSkipLink","PaymentImage","refreshed","useSearchParams","searchParams","setSearchParams","lastColorTheme","onSlugChange","accessData","nosave","onSetSpaceData","$spacePath","setSettingsTabs","setPaths","setJourneys","auxTree","$forceTreeUpdate","treeData","$sidebarTree","is_open","force_admin","_reflection_id","_interactive_slug","ContentReadonly","moderatorLinks","listAutoTag","setListAutoTag","allowMembersToCreateTags","setAllowMembersToCreateTags","list_auto_tag","saveTimeoutId","Scripts","openPremiumModal","Registration","blockUntilRegistered2","setBlockUntilRegistered2","Top","Privacy","itemLast","Trigger","trigger_type","function_slug","trigger_params","trigger_id","getColor","groupOrder","RemoveFromSpace","sortedSpaces","functionSlug","_function","selection_description","getSelectionType","triggerId","functionsType","onUpdateTriggers","setOpenAddStep","openAddStep","editStepOpened","setEditStepOpened","stepId","newStep","TriggerModel","AddTrigger","setParams","getSelectTrigger","_selectedFunction","onSetParamsValue","ele","Engagement","triggers","setTriggers","fetchNew","auxAccordionState","triggerDescriptions","name_with_variable","$spaceIsMigrated","isAfterCreated","clearFieldError","isEmailReady","is_processing","sent_to_users","sortedBroadcasts","action_data","onOpenDiscussion","searchTimeoutId2","auxUsers","indexedDbFetched","infoSelectedSpaces","setInfoSelectedSpaces","selectedUsers","setSelectedUsers","setIncludeSubspaces","filterByUsers","setFilterByUsers","today","dateRange","setDateRange","is_organization","day","onSearchUsers","TopActions","parent_tags","hideAfter24h","diff","hours","setPreview","auxProgress","bar","hasOverflow","setHasOverflow","parentRef","skipNextTags","$selectedTags","selectedTag","checkOverflow","auxTags","setSelectedDiscussionTags","isOverflowing","m","tagIndexMap","newTagsList","indexA","orderTags","setAlpha","toRgbString","$headerIntervalActive","show_progress_bar","tagsLoaded","indexdbProvider","$indexDbReady","last_local_updated_at","last_updated_at","idb","disallowClose","setAtBottom","showScrollButton","setShowScrollButton","showAbsScrollButton","setAbsShowScrollButton","synced","refreshInterval","handleScroll","hash","checkElementAndScroll","$tiptapContentLastUpdatedAt","onHideScrollButton","ContentContainer","IndexeddbPersistence","addressCompleted","setAddressCompleted","paymentCompleted","setPaymentCompleted","processing","defaultAddressValues","defaultValues","address","debouncedOnChangeAddress","onAddressChanged","handleAddressChange","debouncedOnChangePayment","handlePaymentChange","AddressElement","phone","freeByCoupon","shippingAddress","setProcessing","setTaxAmount","setAmountTotal","not_logged","amount_total","isDifferentFrequency","free","Disabled","ConfirmId","ProcessingPayment","show_bundles","_hangout_link","setListTitleLineClamp","setListAbstractLineClamp","listAddCreatorAsRole","setListAddCreatorAsRole","canAutoTag","setCanAutoTag","list_add_creator_as_role","editOpened","setEditOpened","fetchChildren","noDateAuxSpaces","dateToUse","itemDayB","filterBy","_tags","SpaceNeoModel","_children","onThumbnailSave","onChangeFilter","newFilter","newTags","postIndex","new_data","Showcase","loadingCount","socket","io","subscribe","channelSlug","emit","SpaceChannel","access","updateChildren","onUpdateChildren","queue","fetchedSpace","fetchedChildren","execQueue","channelName","getChannelName","addToQueue","$connectedTo","isTopSpace","$lastTree","topLevelSlug","onFetchChildrenFromAPI","onSetTreeOrChildren","Access","setSpaceAccess","lastPage","setAccess","spaceAction","is_pending","is_migrated","$isNeo4j","is_neo4j","topSpace","mobile","extractPath","_space","_interactive_pop_up","planReference","setPlanReference","providers","setJoining","button_color","button_text_color","button_label","posthog","usePostHog","setIsMember","identify","showNewsLetter","rgba","grecaptcha","ready","execute","user_params","recaptcha_token","SignOut","ResetPassword","MagicSignIn","cookieSlug","userInfoWrap","userInfoMediumScreen","avatarWrapMediumScreen","avatarMediumScreen","userDetailsWrap","nameWrapMediumScreen","nameWrap","profileUser","setProfileUser","showAllSpaces","setShowAllSpaces","userId","authToken","connectedTo","lastProcessedTimestamp","grouperTimeoutId","onFetchUser","Sentry","hj","auxActivity","oldActivities","groupActivity","groupedActivity","performance","acc","raw_created_at","timeAgo","not_seen_count","not_seen","meta_data","item_name","top_parent_name","buildActivity","activityArray","usernamesArr","notificationId","actor_name","usernames","pluralizeJs","pluralize","noun","secondsPast","ConnectionsChannel","isAdmin","UserCtrl","cookiesParams","checkMagicToken","checkAuthentication","affiliateSpace","affiliateSutra","oauthClientId","oauthClientSecret","oauthState","oauthRedirectUri","oauthResponseType","isAbsSpaceRoute","isSpaceRoute","isAppRoute","isUserRoute","isProfileRoute","routeSplit","Connections","SystemAlert","dialog","setDialog","Dialog","themeIcon","Sidebar","newAIModalPromptOpened","setNewAIModalPromptOpened","newSpaceAIBuilderOpened","setNewSpaceAIBuilderOpened","setAIPrompt","spacesItems","validation","supportItems","is_basic","is_personal","is_pro","checkActiveLink","ThemeIcon","gradient","bool","settingsItemsCollection","settingsItems","setSettingsItems","auxItems","faIcons","nodeIconWrap","IconSelect","setIconType","setIconValue","icons","setIcons","filterIcons","mx","transitionProperty","transitionTimingFunction","onIconSelect","nodeIconWrapSettings","nodeIconWrapSettingsActive","NodeIcon","setEmojicon","saveEmojicon","activeId","navPosition","nodeItemInside","nodeLabel","nodeItemInsideLinked","nodeItemInsideActive","nodeItemInsideActiveSettingsView","nodeItemLink","nodeItemEnd","toggler","NodeLink","hasChildren","setHasChildren","getLinkPath","unreadCount","topNodeItemChildren","NodeContent","expanded","onTreeUpdate","findNodeInTreeBySlug","onUpdateTreeData","getDropPosition","dropTarget","tOffset","tOffsetX","tOffsetY","tWidth","tHeight","offsetHeight","upMaxLimitY","downMinLimitY","topNodeItem","nodeItem","NodeItem","setPos","broadcasterSet","fetchedOnOpen","intervalCounter","currentDndState","draggedOver","fetchEscapeCounter","onFetchSidebarChildrenTimeout","strOpenedNodes","openedNodes","nodeIndex","resetClasses","prop","addClass","moveNodeFromTo","prevNode","targetNode","afterNode","onDragOver","foundInTarget","dNode","$draggedOverNode","onDragLeave","onDrop","auxDraggingNode","auxDraggingNodeParent","circleNode","node_type","unread_messages","spaceNameWrap","SidebarTitle","spaceNameClose","SidebarTutorial","tutorial","onCloseTutorial","MembersNode","sidebarContainer","spaceTree","setChannel","interactiveTimeout","trimmedTree","currentTree","$findNodeInTreeBySlug","reRenderTree","_channel","_tree","updateWith","oldChildren","moving_slug","moving_nodes","parent_a","parent_b","openedOnProps","onFetchTopChildrenFromAPI","neo_data","NewSpaceNode","appSideFrame","appSideFrameHover","Navbar","scrollbarSize","buttonStyleOutline","inputLabelStyle","themeTextColor","ProfileModal","setUsername","edit","setEdit","inModal","ContentReadonlyModal","setColors2","currentPath","DirectDiscussion","onFetchContext","tiptap_short_content","appBody","appSideFrameHidden","appSideFooter","appMainFrame","appMainFrameSettingsView","appMainFrameInnerWrap","appSideFrameSm","isTouchDevice","maxTouchPoints","appShell","LanguageDetector","initReactI18next","fallbackLng","interpolation","escapeValue","resources","en","description1","description2","description3","description4","home","createButton","directMessages","gettingStarted","scheduleDemo","upgrade","promoBoxTitle","promoBoxItem1","promoBoxItem2","promoBoxItem3","promoBoxButton","yourSpaces","directMessagesTitle","invitationsTitle","topTitle","managedTitle","allTitle","archivedTitle","deletedTitle","pendingTitle","archived","tabTitle","learn","createFirst","app","planOption","frequencyDescription1","frequencyDescription2","currentPlan","billedMonthly","billedAnnually","stripeForm","due_in_trial","pay","setup","conversations","registration","automations","grids","tagfeed","groupprogram","zoomworkshop","mastermind","selfpacedcourse","communityspace","oneononecoaching","mainTitle","selectTemplate","advanceFeatures","welcome","watchVideo","createFirstSpace","gettingStartedGuide","checkOutTheGuide","startWithATemplate","learnAbout","learnmore","premium","try","pricing","yes","no","userButton","viewProfile","support","terms","logout","copyright","actionButton","directMessage","notifications","headerContent","registrationPage","nonManagersHidden","comment","allSpaces","withinTop","withinSpace","everything","titlesOnly","tagsOnly","discussion","events","used","finishing","editProfile","removeProfileImage","addProfileImage","about","bioPlaceholder","updateProfile","accountSettings","changePassword","currentPassword","newPassword","newPasswordConfirmation","updatePassword","advanced","deleteAccount","warning","deleteAccountWarning","closeYourAccount","invalidCurrentPasswordErrorMsg","invalidPasswordErrorMsg","invalidPasswordConfirmationErrorMsg","deleteAccountAlert","confirmButton","cancelSubscriptionAlert","stripeAccount","alertTitle","alertMessage","confirmTitle","confirmMessage","emailPreferences","emailDigestPreferences","emailDigestFrequency","emailDigestMessage","receiveWeeklyDigest","receiveAtMentions","receiveLikes","otherActions","searchBySpaceName","emptySubscriptions","leaveSpaceConfirmationTitle","leaveSpaceConfirmationHtml","leaveSpaceButtonText","leaveSpaceDenyButtonText","leaveSpace","unsubscribed","digestedLabel","digestedDescription","undigestedLabel","undigestedDescription","paid_subscriptions","noPayments","billing","statuses","currentPaymentMethod","noCurrentPaymentMethod","addNewPaymentMethod","updatePaymentMethod","updatePaymentMethodMayus","upgradePlan","changePlan","cancelSubscription","cancelConfirmationTitle","cancelConfirmationHtml","cancelConfirmButtonText","cancelDenyButtonText","billingHistory","tableDate","tableAmount","tableStatus","tableInvoice","planPrefix","planSuffix","updatePayment","success","mute","always","hour1","hour2","hour4","hour8","hour24","hour168","hour336","table","referralName","revenue","payAt","null","paymentsHistory","affiliateLink","copyMessage","stripeTitle","stripeConnected","stripeDisconnect","historyLabel","navbarContent","mainSettings","sutraAdmin","participation","headerActions","shareableLink","cancelLink","saveLink","editLinkButton","sutra_co","label1","privacySetting","title1","title2","title3","onButton","offButton","editButton","previewButton","label2","label3","label4","description5","label5","description6","label6","description7","label7","description8","label8","description9","label9","description10","label10","description11","description12","description13","description14","description15","description16","description17","label11","label12","label13","label14","label15","label16","additional","allowMembersEdit","membersWillAddContent","allowMembersCreatePosts","membersWillCreatePosts","allowMembersCreateEvents","membersWillCreateEvents","allowMembersCreateSubspaces","membersWillCreateSubspaces","membersCanCreate","allowMembersToCopy","hideMmemberEmails","redirectToSubspace","scheduling","startDateTime","endDateTime","launchDateTime","seo","invited","noRecordFound","firstname","interestedrow","removeFromList","invitationlink","invitedrow","resend","cancel","inviteEmail","checkboxLabel","alertbutton","inviteExisting","copyMembers","copyMembersPlaceholder","addActiveMembers","addActiveMembersPlaceholder","addPendingMembers","addPendingMembersPlaceholder","alertButton","thisOption","inviteLink","shareLinkText","youCannotShare","invitePeople","membersActivity","emailButton","messageButton","memberTable","lastSeen","lastPosted","participationActivity","searchButton","pickDatePlaceholder","participationActivityRow","paymentRow","refundPayment","paymentTable","progressActivity","progressTracking","progressTable","registeredTable","roleApproveAll","registeredRow","roleApprove","sendMessage","stopCharging","removeMember","charging","howManyTimes","pickDate","fees","sutraFee","stripeProcessingFee","flexible","once","number","recurring","disconnectButton","connectButton","private","addFromSubSpace","saveButton","deleteButton","saveButton2","addStructure","placeholder1","placeholder2","addToExistingSpace","saveButton1","addToNewSpace","applyTemplate","editEmail","placeholder3","placeholder4","sendPreview","editStructure","editSurvey","sendEmail","setToPending","surveyPerson","remove_from_space","addStep","registrationFlow","createStructure","structureItem","addToSpace","duplicate","delete","addOption","createSurvey","createSurveyForm","optionalDescription","addQuestionButton","individual","multipleItem","paymentItem","paymentSurveyItem","viewButton","showSurvey","singleItem","surveyItem","take","responses","broadcastButton","membersTypes","sentOn","deny","sent","draft","procesing","composeBroadcast","contentErrMessage","targetErrMessage","brackets","part1","part2","part3","sendAs","schedule","sendAtDate","sendAtTime","scheduleBroadcast","sendBroadcast","saveDraft","iconSelect","membersNode","nodeIcon","sidebarTutorial","alreadyMember","clickHere","calender","joinButton","joinEventButton","invitationBar","sutraLoading","statusBar","restoreButton","tagFilter","resetButton","presentations","reflectionHeader","backToPost","pinnedMessageHeader","createAction","expand","reply","addTags","copyToClipboard","messageCopied","pinMessageAction","editMessage","deleteMessage","makePrivate","viewReplies1","viewReplies2single","viewReplies2plural","privateMessage","privateMessage2","unreadMessagesText","scrollDownButton","newReflections","viewNextButton","mainText","commentInput","toggleLabel1","toggleLabel2","toggleLabel3","toggleLabel4","fallback","upcomingButton","pastButton","addEvent","eventSettingsTooltip","newEventTitle","listSettingsTooltip","duplicateFormTitle","showcase","versions","discussions","versionsDescriptions","createNewTemplate","editTemplate","accordion1","listOption","gridOption","dateCreated","dateCreatedReversed","lastActive","lastEdited","alphabetic","reverseAlphabetic","accordion2","switches","onlyManagers","showPreview","showComments","showTimestamp","showThumbnail","autoThumbnail","accordion3","templateName","templateDirectOption","templateLinkedOption","privacyOpenOption","privacyPrivateOption","privacyAnyOption","accordion4","createPost","accordion5","templateDescription","static","broadcastExclude","gridPost","onDelete","alertMessage2","pin","unpin","addThumbnail","removeThumbnail","unlink","listContent","publishTootip","privateTooltip","colorTheme","customize","saveTheme","resetColor","pageLayout","pageFormat","headerAndLogo","addCover","removeCover","changeLogo","removeLogo","dimensions","dimensions2","contentLabel","discussionLabel","contentDescription","discussionDescription","eventsLabel","eventsDescription","listLabel","listDescription","showcaseLabel","showcaseDescription","widePage","hideSidebar","hideHeader","hideCoverImage","hidePageTitle","hideBreadcrumbs","invalidNameErrorMsg","invalidName2ErrorMsg","dummy","magicLink","recover","calendarLinks","eventStartDateAndTime","eventDateTime","automatedEmails","prefix","copyManagers","copyContent","copyPosts","copyBroadcasts","copyAutomation","copyRegPage","saveTemplate","privacyDescription1","rootPrivacyDescription1","privacyDescription2","rootPrivacyDescription2","placeholderDescription","segments","spaceFormat","hangoutLink","eventStartTime","eventEndDate","privacyLevelText","joinAsMember","publishDate","publishDateTime","interestedForm","createAlertTitle","createAlertButton","joinWithSutra","linkForm","linkErrMessage","listForm","confirmationTitle","confirmationMessage","confirmationError","buttons","uncomplete","returnTo","editTitle","viewPage","editDescription","deletePost","archive","unarchive","fix","joinEvent","joinSpace","published","returnToSettings","returnToSpace","openFullScreen","copiedMessage","versionHistory","brandingOptions","regPagePublishing","spaceUpdating","sectionTitle","emptyMessage","copyClipboard","onConfirmPayment","completePayment","submitButton","yourAnswer","section1","headline1","headline2","headline3","infobox","section2","section3","section8","checklist","collapsableSection","section4","section5","grid1","grid2","grid3","grid4","grid5","grid6","section6","interestForm","bundleButton","section7","interactiveButton","interactiveInput","interactiveWait","nameToBlocks","circle","tagsFeed","alignment","center","clearColor","removeButton","leftTop","leftCenter","leftBottom","rightTop","rightCenter","rightBottom","centerTop","centerCenter","centerBottom","noRepeat","repeat","buttonAction","callBackComplete","callbacklinkTo","completeDescription","linkDescription","selectSection","interactiveWaitTime","linkAction","topMargin","leftMargin","rightMargin","topPadding","bottomPadding","leftPadding","rightPadding","square","spaceAttrs","addCover2","verticalAllignment","size2","actual","blockMenuActions","label17","label18","blocksMenu","basicBlock","mediaBlock","contentBlock","blocksMenuInline","blocksMenuSimple","text3","text4","fixedBottomMenu","addBlock","formatMenu","smallText","largeText","heading1","heading2","heading3","bulletedList","numberedList","formatMenuSimple","inlineMenu","checkList","moreOption","hideResponses","showResponses","hideResponses2","hidePrivateMessages","showPrivateMessages","showResponses2","loadMoreResponse","newMedia","regPageColor","regPageColors","applyAppearance","areYouSure","addPage","sideBlocksMenuBak","back","sideBlocksMenu","sideConfigurationsMenu","attrPlaceholder1","attrLabel2","attrLabel3","attrLabel4","attrLabel5","attrLabel6","attrLabel7","resetBlock","label19","label20","label21","label22","label23","attrLabel8","attrLabel9","attrLabel10","attrLabel11","attrLabel12","attrLabel13","defaultWaitLabel","defaultWaitMessage","takeSurvey","tiptapAi","saveEmbed","saveImage","stepper","step1","step1Description","step2","step2Description","step3","step3Description","submit","invalidEmailErrorMsg","signIn","subtitleLink","forgotPassword","signUp","invalidFirstNameErrorMsg","emailNewsletterConfirmation","legalPrefix","total_today","due_in","paymentDetails","annual","resetPassword","passwordConfirmation","footer","footerLink","skip","magicSignin","profile","profileModal","selectImage","signOut","loggedOUt","basic","es","callBacklinkTo","verticalAllignent","lael17","ru","frquencyOptions","de","it","fr","dsn","ignoreErrors","integrations","BrowserTracing","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","beforeSend","hint","originalException","exception","eventId","event_id","prototype","CableApp","actionCable","getHost","createContext","ReactOnRails","Index","cookies","env","myTheme","createStore","appStore","apiKey","api_host","withGlobalStyles","withNormalizeCSS","defaultProps","Provider"],"sourceRoot":""}