{"version":3,"sources":["services/core/eventLabelService.js","store/actions/core/eventLabel.action.js","components/EventLabel2/EventLabel2.js","services/meeting/meeting.service.js","store/reducers/alert.reducer.js","store/reducers/account/account.reducer.js","store/reducers/authentication.reducer.js","store/reducers/cms/cms.reducer.js","store/reducers/cms/template/template.reducer.js","constants/system/language/language.constants.js","store/reducers/event/eventLabel.reducer.js","store/reducers/root.reducer.js","store/reducers/user.reducer.js","store/reducers/system/language/language.reducer.js","store/reducers/event/event.reducer.js","store/reducers/system/systemLabel/systemLabels.reducer.js","store/reducers/global.reducer.js","store/reducers/question/question.reducer.js","store/configureStore.js","helpers/objectHelper.js","constants/event/event.constants.js","digitalArena/components/fallbacks/ConnectionStatus.js","interaction/constants/presenterType.constants.js","digitalArena/modules/ChatModule/emptyStates/no-result.svg","components/TinyMCE/InlineEditor.js","digitalArena/utils/ClientConnectionFallback.js","constants/alert.constants.js","cms/areas/template/helpers/templateHelper.js","helpers/arrayHelper.js","polyfill.js","system/BrowserAgent/ProvideBrowserOptions.js","cms/areas/template/containers/TemplateHeader/TemplateHeader.js","cms/areas/template/containers/TemplateFooter/TemplateFooter.js","cms/areas/template/components/MediaBackdrop/MediaBackdrop.js","cms/areas/template/containers/TemplateLayout/Wrappers/ContentWrapper/ContentWrapper.js","cms/areas/template/containers/TemplateLayout/Wrappers/HeaderWrapper/HeaderWrapper.js","cms/areas/template/containers/TemplateLayout/Wrappers/FooterWrapper/FooterWrapper.js","cms/areas/template/containers/TemplateLayout/TemplateWrapper.js","helpers/colorHelper.js","interaction/presenter/charts/RatingChart/RatingChart.js","interaction/presenter/Layout/PresenterLayout.js","components/SplashScreen/SplashScreen.js","interaction/moderator/Layout/components/ClientList.js","interaction/moderator/Layout/components/QuestionOverview/QuestionStats.js","interaction/moderator/Layout/components/QuestionOverview/MessageList.js","interaction/moderator/Layout/components/QuestionOverview/QuestionTabs.js","services/question/question.service.js","store/actions/question/question.action.js","components/ConfirmModal/ConfirmModal.js","interaction/moderator/Layout/components/QuestionOverview/EditQuestion.js","interaction/moderator/Layout/components/QuestionOverview/QuestionOverview.js","interaction/moderator/Layout/components/other/PopList.js","interaction/moderator/Layout/components/LayoutDialog.js","components/TinyMCE/PopEditorClassic.js","components/UrlMultiInput/UrlMultiInput.js","plugins/CodeMirror.js","interaction/moderator/Layout/components/Settings/MeetingLayoutSettings/ImportModules/ImportModules.js","interaction/moderator/Layout/components/Settings/MeetingLayoutSettings/MeetingLayoutSettings.js","interaction/moderator/Layout/components/HeaderBar.js","interaction/moderator/Layout/components/ActiveItems/Question/QuestionModal.js","interaction/moderator/Layout/components/ActiveItems/QuestionList.js","interaction/moderator/Layout/components/ActiveItems/Agenda/AgendaList.js","interaction/moderator/Layout/components/ActiveItems/Preset/PresetItems.js","interaction/moderator/Layout/components/Chat/ChatList/ChatList.js","meetingEditor/models/selectStyle.js","meetingEditor/layout/other/EventSelector.js","interaction/preset/components/EventLayoutList.js","interaction/preset/components/PresetList.js","interaction/preset/Preset.js","interaction/moderator/Layout/components/ActiveItems/MeetingLayouts/MeetingLayouts.js","interaction/moderator/Layout/components/ActiveItems/ActiveItemsTab.js","interaction/moderator/Layout/components/ActiveItems/ActiveItems.js","interaction/moderator/Layout/components/Settings/SettingsAside/SettingsAside.js","interaction/moderator/Layout/components/ClientOverview/ClientTabs.js","interaction/moderator/Layout/components/ClientOverview/ClientOverview.js","interaction/moderator/Layout/components/ActiveInfo.js","interaction/moderator/Layout/components/SpeakerOverview/SpeakerList.js","interaction/moderator/Layout/components/SpeakerOverview/SpeakerTabs.js","interaction/moderator/Layout/components/SpeakerOverview/SpeakerTimer.js","interaction/moderator/Layout/components/SpeakerOverview/SpeakerOverview.js","interaction/moderator/Layout/components/UI/Notifier.js","interaction/moderator/Layout/components/ActiveItems/Preset/PresetOverview.js","interaction/moderator/Layout/components/ActiveItems/Agenda/AgendaEditView.js","interaction/utils/ChatBox.js","interaction/moderator/Layout/components/Chat/ChatWindow/ChatWindow.js","interaction/moderator/Layout/ModeratorLayout.js","interaction/stage/components/QuestionAnswerView.js","interaction/stage/Layout/StageLayout.js","exhibitor/ExpoBooth/Chat/ExpoChat/ExpoChat.js","helpers/interaction.helper.js","exhibitor/ExpoBooth/Files/ExpoFileList.js","exhibitor/ExpoBooth/SideViewTabs/SideViewTabs.js","exhibitor/constants/videoCall.constants.js","exhibitor/shared/OnVideoCallModal.js","plugins/JitsiWrapper.js","exhibitor/ExpoBooth/VideoFrame/VideoFrame.js","exhibitor/ExpoBooth/Layout/ExpoBoothLayout.js","store/actions/global.action.js","RedirectUser.js","interaction/chatModerator/MessageList.js","interaction/chatModerator/Layout/ChatModeratorLayout.js","meetingEditor/layout/View/ModuleWrapper.js","meetingEditor/layout/Sidebar/Tabs/GeneralTabs.js","meetingEditor/layout/Sidebar/Tabs/ModuleTabs.js","meetingEditor/models/defaultMeetingModules.js","components/ColorPickerFacade/TemplateColors.js","components/ColorPickerFacade/ColorPickerFacade.js","components/EditorSlider/EditorSlider.js","cms/areas/template/models/interactionTemplateSettings.js","cms/areas/template/components/CollapsePanel.js","cms/areas/template/components/FontPicker.js","cms/areas/template/components/FontWeightPicker.js","cms/areas/template/components/SettingsList.js","meetingEditor/layout/Sidebar/modules/ModulePlaceholder.js","meetingEditor/layout/Sidebar/modules/ModuleList.js","meetingEditor/components/SourceEditorWindow.js","plugins/JirangoDatepicker.js","components/UrlMultiInput/LinkMultiInput.js","meetingEditor/components/MenuEditor.js","digitalArena/modules/Plaudit/PlauditIcons.js","meetingEditor/components/PlauditIconSelector.js","meetingEditor/components/ModuleSettings.js","meetingEditor/components/PositionAndSizeTools.js","meetingEditor/layout/other/TemplateSelector.js","meetingEditor/layout/other/LayoutSelector.js","meetingEditor/layout/Sidebar/EditorSidebar.js","meetingEditor/layout/other/HeaderPopover.js","meetingEditor/layout/other/LayoutGrid.js","meetingEditor/models/resolutions.js","meetingEditor/layout/other/AlertDialog.js","meetingEditor/layout/EditorWrapper.js","exhibitor2/Backoffice/components/SoundNotification.js","exhibitor2/Backoffice/components/Overview/VisitorHistoryList.js","exhibitor2/shared/VideoCallButton.js","exhibitor2/shared/LinkedInButton.js","components/GroupAvatars.js","exhibitor2/Backoffice/components/Overview/ActiveVisitorList.js","exhibitor2/Backoffice/components/Overview/VisitorLineChart.js","exhibitor2/Backoffice/components/Overview/Dashboard.js","exhibitor2/Backoffice/models/menuOptions.js","exhibitor2/Backoffice/components/Menu/MenuItem.js","exhibitor2/Backoffice/components/Menu/MenuDrawer.js","exhibitor2/Backoffice/components/Chat/ChatFrame.js","exhibitor2/Backoffice/components/Chat/ConversationList.js","exhibitor2/Backoffice/components/Chat/ChatView.js","exhibitor2/shared/IncommingCallDialog.js","exhibitor2/constants/videoCall.constants.js","exhibitor2/Backoffice/components/Video/VideoFrame.js","exhibitor2/Backoffice/components/Chat/NotificationSnackbar.js","exhibitor2/Backoffice/components/Settings/BoothSettings.js","exhibitor2/Backoffice/components/Settings/FileType.js","exhibitor2/Backoffice/components/Settings/AttachmentSettings.js","exhibitor2/Backoffice/components/ProfileImageUploader/ProfileImageUploader.js","exhibitor2/Backoffice/components/Settings/ProfileSettings.js","exhibitor2/Backoffice/components/Settings/Settings.js","exhibitor2/Backoffice/components/Layout.js","exhibitor2/Backoffice/Backoffice.js","vonageBackstage/Vonage/components/VonageBackstageModeratorTab.js","vonageBackstage/VonageBackstage.js","presentation/VideoWall/VonageVideoWall.js","interaction/channellist/components/CreateChannelDialog.js","interaction/channellist/ChannelList.js","presentation/Plaudit/PlauditPresenter.js","App.js","serviceWorker.js","system/BrowserAgent/BrowserDetector.js","index.js","helpers/history.js","helpers/chartHelper.js","constants/event/eventLabel.constants.js","helpers/browser.helper.js","helpers/viewPortHelper.js","helpers/fontHelper.js","constants/system/global.constans.js","helpers/cssHelper.js","system/SystemLabel/SystemLabel.js","services/system/systemLabel/systemLabel.service.js","helpers/requestHandler.js","store/actions/system/systemLabel/systemLabel.action.js","components/FileStorage/FileStorageWrapper.js","services/clickTrack.service.js","helpers/localStorageHelper.js","components/TinyMCE/sv_SE.js","components/TinyMCE/tinyconfig.js","services/cms/template/template.service.js","cms/areas/template/models/defaultTemplate.js","helpers/labelHelper.js","digitalArena/modules/ChatModule/components/shared/PersonInformationPopover.js","meetingEditor/helpers/meetingEditor.helper.js","digitalArena/modules/ChatModule/helpers/chat.helper.js","digitalArena/components/shared/Searchbar.js","digitalArena/modules/ClientListModule/clientList.helper.js","digitalArena/modules/ClientListModule/ClientListModule.js","digitalArena/modules/JitsiModule.js","digitalArena/components/fallbacks/ModuleErrorFallback.js","digitalArena/components/MeetingLayoutModule.js","digitalArena/constants/eventLabelGroups.contansts.js","digitalArena/components/MeetingLayout.js","components/NotAuthorized.js","constants/cms/template/template.constants.js","components/ReactEternalList/ReactEternalList.js","helpers/stringHelper.js","digitalArena/components/shared/FontBaseline.js","digitalArena/modules/ChatModule/components/ChatSearchbar.js","digitalArena/modules/Plaudit/PlauditTrack.js","digitalArena/modules/ChatModule/components/BackstageChatHeader.js","digitalArena/modules/ChatModule/components/ChatHeader.js","digitalArena/modules/ChatModule/components/ChatContainer.js","digitalArena/modules/ChatModule/ChatModule.js","plugins/DailyMotionPlayer.js","plugins/VimeoPlayer.js","plugins/YouTubePlayer.js","plugins/GenericPlayer.js","digitalArena/modules/Vonage/components/VonageHardwareSetup.js","interaction/constants/clientType.constants.js","digitalArena/modules/Vonage/components/VonageScreenshare.js","sentry.config.js","components/PictureDisplay.js","components/FileStorage/contstants/archive.contstants.js","digitalArena/modules/Vonage/components/ScreenshareOptionsPop.js","digitalArena/modules/Vonage/components/VonageControlpanel.js","digitalArena/modules/Vonage/components/VonageGridView.js","digitalArena/modules/Vonage/components/VonageSidebar.js","digitalArena/modules/Vonage/components/VonageFocusedView.js","digitalArena/modules/Vonage/components/VonageSpotlightView.js","digitalArena/modules/Vonage/VonageVideoClientModule.js","helpers/authHeader.js","helpers/handleresponse.js","store/actions/alert.action.js","interaction/presenter/other/WordCloud/WordCloud.js","interaction/presenter/charts/BarChart/BarChart.js","interaction/presenter/charts/PieChart/PieChart.js","interaction/presenter/other/TextFlow/TextFlow.js","interaction/presenter/charts/ColumnChart/ColumnChart.js","interaction/presenter/charts/DisparityChart/DisparityChart.js","constants/system/systemLabels/systemLabels.constants.js","routes.js","digitalArena/modules/ImageModule.js","helpers/UrlHelper.js","digitalArena/modules/ZoomModule/ZoomModule.js","digitalArena/modules/PresenterModule/PresenterModule.js","digitalArena/modules/ButtonModule.js","digitalArena/modules/BlockModule.js","digitalArena/modules/TextModule.js","digitalArena/modules/GroupGeneratorModule.js","digitalArena/modules/ChatModule/components/shared/TimeStamp.js","digitalArena/modules/IframeModule.js","digitalArena/modules/VideoModule.js","digitalArena/modules/HtmlModule.js","digitalArena/modules/Vonage/components/VonageSpeakerDialog.js","digitalArena/modules/CountdownModule/CountdownModule.js","digitalArena/modules/ImageMapModule.js","digitalArena/modules/SpeakerControl/SpeakerControl.js","digitalArena/modules/SpeakerCard.js","digitalArena/modules/SpeakerList.js/SpeakerList.js","digitalArena/modules/EventName.js","digitalArena/modules/ContentView/ContentView.js","meetingEditor/models/defaultModuleSettings.js","digitalArena/modules/VideoWallModule/VideoWallModule.js","digitalArena/modules/Plaudit/PlauditButtons.js","assets/audio/rush.mp3","assets/audio/ringing.mp3","assets/audio/chat.mp3","digitalArena/modules/PollModule/components/ButtonOptionQuestion.js","digitalArena/modules/PollModule/components/NoQuestionPlaceholder.js","digitalArena/modules/PollModule/components/TextQuestion.js","digitalArena/modules/PollModule/components/Question.js","digitalArena/modules/PollModule/components/AnswerSentAlert.js","digitalArena/modules/PollModule/components/PollModuleContainer.js","digitalArena/modules/PollModule/poll.helper.js","digitalArena/modules/PollModule/mockup/mockupQuestion.js","digitalArena/modules/PollModule/PollModule.js","digitalArena/modules/AgendaModule/components/SpeakerControls.js","helpers/tag.helper.js","digitalArena/modules/AgendaModule/components/AgendaItem.js","digitalArena/modules/AgendaModule/components/AgendaTextWrapper.js","digitalArena/modules/AgendaModule/components/Speaker.js","digitalArena/modules/AgendaModule/components/AgendaContainer.js","digitalArena/modules/AgendaModule/AgendaModule.js","digitalArena/modules/ChatModule/components/ChatBlock.js","digitalArena/modules/ChatModule/components/ChatEmojiPicker.js","digitalArena/modules/ChatModule/components/MessageInput.js","digitalArena/modules/ChatModule/components/MessageTools.js","digitalArena/modules/ChatModule/components/ChatFooter.js","digitalArena/modules/ChatModule/components/shared/NoResultState.js","digitalArena/modules/ChatModule/components/PeopleList.js","digitalArena/modules/ChatModule/components/ConversationList.js","digitalArena/modules/ChatModule/components/PersonDetails.js","digitalArena/modules/UserCardModule/components/ProfileImageUploader.js","digitalArena/modules/UserCardModule/components/UserDetailsEditDialog.js","digitalArena/modules/UserCardModule/UserCardModule.js","digitalArena/modules/ExhibitorModule/exhibitor.helper.js","digitalArena/modules/ExhibitorModule/ExhibitorModule.js","digitalArena/modules/BreakoutModule/breakout.helper.js","digitalArena/modules/BreakoutModule/BreakoutModule.js","digitalArena/modules/ConnectionsModule/ConnectionsModule.js","digitalArena/modules/ConnectionsModule/connections.helper.js","digitalArena/modules/ChatModule/components/VideoCallMessage.js","digitalArena/modules/ChatModule/components/MessageBubble.js","digitalArena/modules/ChatModule/components/NoMessagePlaceholder.js","digitalArena/modules/ChatModule/components/MessageList.js","components/FloatingChecklist/FloatingChecklist.js","components/LinkManager/LinkManager.js","store/actions/cms/cms.action.js","constants/question/question.constants.js","constants/user.constants.js","constants/cms/cms.constants.js","digitalArena/components/shared/OnlineBadge.js","digitalArena/modules/ChatModule/components/UnreadMessageSnackbar.js","digitalArena/modules/ChatModule/components/ScrollToBottomButton.js","helpers/time.helper.js","digitalArena/modules/ChatModule/components/ChatAvatar.js","store/actions/cms/template/template.action.js","components/JirangoSwitch/JirangoSwitch.js","assets/icons/firefox.svg","assets/icons/opera.svg","assets/icons/google_chrome.svg","assets/icons/unsplash_logo.svg","digitalArena/modules/ZoomModule/zoomLogo.svg","digitalArena/assets/bug.svg","constants/cms/sourceType.js","meetingEditor/layout/Sidebar/modules/zoomIcon.svg","digitalArena/helpers/module.helper.js","components/TinyMCE/ExhibitorEditor.js","components/FileStorage/components/FileStorageHeader.js","components/FileStorage/components/FileStorageList.js","components/FileStorage/components/FileStorageSearchbar.js","components/FileStorage/components/FileStorageGrid.js","components/FileStorage/components/UnsplashGallery.js","components/FileStorage/components/FileStorageProgressbar.js","components/FileStorage/FileStorage.js","helpers/securityHelper.js"],"names":["eventLabelService","getGroup","async","eventId","groupName","langCode","requestOptions","method","headers","authHeader","fetch","concat","then","handleResponse","group","create","name","languageCode","body","JSON","stringify","label","eventLabelAction","dispatch","type","eventLabelsConstants","CREATE_EVENTLABEL_REQUEST","request","alertActions","clear","CREATE_EVENTLABEL_SUCCESS","success","error","CREATE_EVENTLABEL_FAILURE","failure","GET_GROUP_EVENTLABEL_SUCCESS","labelSettings","creationList","init","store","toUpperCase","includes","push","renderText","n","g","getState","eventLabel","groups","Array","isArray","loading","find","value","EventLabel2","React","Component","constructor","arguments","getFromGroup","this","props","render","text","createElement","connect","state","meetingService","getUserIp","axios","get","_ref","data","catch","console","getLayouts","_ref5","err","getEventId","eventCode","res","status","id","eventName","parentEventId","response","message","toLowerCase","notAuthorized","connected","connecting","getModules","_ref2","map","r","m","settings","length","parse","checkForUpdates","defaultModuleSettings","moduleType","getActiveLayout","_ref4","getPermissions","_ref3","defaultState","show","title","account","undefined","action","userConstants","GET_ACCOUNT_DETAILS_REQUEST","GET_ACCOUNT_DETAILS_SUCCESS","user","GET_ACCOUNT_DETAILS_FAILURE","UPDATE_REQUEST","saved","UPDATE_SUCCESS","UPDATE_FAILURE","lsgetItem","initialState","loggedIn","editMode","containerToUpdate","containerAdded","fonts","showMergeAlert","mergeDescription","mergeSource","isSaving","inheritInfo","inheritageAffected","deselectionBlocked","selectedElement","selectedContainer","isSavable","history","loaded","currentVersion","isMenuModalOpen","templates","usedColors","previewDevice","templateConstants","DESKTOP","languageConstants","combineReducers","alert","alertConstants","SUCCESS","INFO","ERROR","WARNING","CLEAR","GETALL_REQUEST","GETALL_SUCCESS","items","users","GETALL_FAILURE","authentication","LOGIN_REQUEST","loggingIn","LOGIN_SUCCESS","LOGIN_FAILURE","LOGOUT","RESETPASSWORD_REQUEST","RESETPASSWORD_SUCCESS","RESETPASSWORD_FAILURE","SENDRESETPASSWORDTOKEN_REQUEST","SENDRESETPASSWORDTOKEN_SUCCESS","SENDRESETPASSWORDTOKEN_FAILURE","TOGGLE_ADMIN_SUCCESS","newUser","Object","assign","userToken","oid","lssetItem","SET_DEFAULT_EVENT_SUCCESS","template","UNDO_CHANGE","REDO_CHANGE","TOGGLE_PREVIEW_MODE","device","CREATE_TEMPLATE_REQUEST","CREATE_TEMPLATE_SUCCESS","CREATE_TEMPLATE_FAILURE","GET_DEFAULT_TEMPLATE_BY_EVENT_REQUEST","GET_DEFAULT_TEMPLATE_BY_EVENT_SUCCESS","timeStamp","Date","now","GET_DEFAULT_TEMPLATE_BY_EVENT_FAILURE","GET_TEMPLATE_REQUEST","GET_TEMPLATE_SUCCESS","deepClone","content","header","h","parentName","footer","templateHelper","getTemplatesColors","menu","newStyle","css","TOGGLE_MENU_MODAL","GET_TEMPLATE_FAILURE","GET_TEMPLATE_BY_EVENT_REQUEST","GET_TEMPLATE_BY_EVENT_SUCCESS","GET_TEMPLATE_BY_EVENT_FAILURE","DELETE_TEMPLATE_ELEMENT_SUCCESS","updatedTemplate","source","container","elementToRemove","el","contentId","element","sort","a","b","x","sortOrder","y","indexOfRemovedEl","indexOf","splice","index","DESELECT_SUCCESS","SELECT_TEMPLATE_ELEMENT","parentChild","parentId","Id","SOFT_UPDATE_TEMPLATE","newSelectedContainer","c","newSelectedElement","SET_TEMPLATE_FROM_FORM_REQUEST","setting","SET_TEMPLATE_FROM_FORM","UPDATE_TEMPLATE_REQUEST","UPDATE_TEMPLATE_SUCCESS","updated","UPDATE_TEMPLATE_FAILURE","language","codes","languageCodes","eventCodes","event","eventConstants","TOGGLE_EVENT_LANGUAGE","eventLanguage","code","GET_EVENT_LIST_REQUEST","GET_EVENT_LIST_SUCCESS","eventList","eventListTime","GET_EVENT_LIST_FAILURE","GET_EVENT_REQUEST","GET_EVENT_SUCCESS","GET_EVENT_FAILURE","GET_EVENT_SETTINGS_REQUEST","GET_EVENT_SETTINGS_SUCCESS","UPDATE_EVENT_SETTINGS_SUCCESS","eventSettings","GET_EVENT_SETTINGS_FAILURE","UPDATE_EVENT_REQUEST","UPDATE_EVENT_SUCCESS","showSaveAlert","UPDATE_EVENT_FAILURE","CREATE_EVENT_REQUEST","CREATE_EVENT_SUCCESS","CREATE_EVENT_FAILURE","systemLabels","systemLabelConstants","CREATE_SYSTEM_LABEL_REQUEST","GET_SYSTEM_LABEL_GROUP_REQUEST","CREATE_SYSTEM_LABEL_SUCCESS","GET_SYSTEM_LABEL_GROUP_SUCCESS","newGroups","CREATE_SYSTEM_LABEL_FAILURE","GET_SYSTEM_LABEL_GROUP_FAILURE","GET_ALL_SYSTEM_LABEL_GROUP_REQUEST","GET_ALL_SYSTEM_LABEL_GROUP_SUCCESS","key","hasOwnProperty","newKey","substr","GET_ALL_SYSTEM_LABEL_GROUP_FAILURE","UPDATE_RANGE_SYSTEM_LABEL_REQUEST","UPDATE_RANGE_SYSTEM_LABEL_SUCCESS","UPDATE_RANGE_SYSTEM_LABEL_FAILURE","globals","saveAreas","isSaved","loadingAreas","isLoading","headerHeight","breadcrumbHeight","showMenu","globalConstants","SET_HEADER_HEIGHT","SET_BREADCRUMB_HEIGHT","SET_SAVE_STATUS","globalIsSaved","area","SET_IS_LOADING","globalIsLoading","SHOW_MENU","cms","cmsConstants","LOAD_CLIENT_FONTS","REMOVE_CLIENT_FONT","newFonts","from","f","font","ALERT_NEW_MODIFICATIONS","isModified","mergeCallback","callback","BLOCK_DESELECT","isBlocked","GLOBAL_SAVING_LOADER","INHERITAGE_AFFECTED","isAffected","TOGGLE_INHERITAGE_INFO","on","ADD_CLIENT_FONT","SET_SOURCE_LOCATION","sourceLocation","sourceLoc","sourceEnviroment","env","SET_ENVIROMENT","enviroment","CONTAINER_TO_UPDATE","CONTAINER_UPDATED","CONTAINER_ADDED","question","questionConstants","GET_QUESTION_BY_EVENT_REQUEST","GET_QUESTION_BY_EVENT_SUCCESS","questions","GET_QUESTION_BY_EVENT_FAILURE","DELETE_QUESTIONS_REQUEST","DELETE_QUESTIONS_SUCCESS","filter","q","questionId","DELETE_QUESTIONS_FAILURE","UPDATE_QUESTIONS_REQUEST","UPDATE_QUESTIONS_SUCCESS","GET_QUESTIONS_BY_EVENT_FAILURE","UPDATE_QUESTION_REQUEST","UPDATE_QUESTION_SUCCESS","CREATE_QUESTION_REQUEST","CREATE_QUESTION_SUCCESS","CREATE_QUESTION_FAILURE","GET_GROUP_EVENTLABEL_REQUEST","GET_GROUP_EVENTLABEL_FAILURE","createStore","rootReducer","applyMiddleware","thunkMiddleware","setValueToNestedObject","path","valueToChange","endPath","getValueFromNestedObject","valueToGet","getValueFromNestedObjectByParam","params","array","level","isObject","RegExp","Error","checkForTemplateUpdates","target","targetObj","combineProps","objArr","spreadedObj","o","DELETE_EVENT_REQUEST","DELETE_EVENT_SUCCESS","DELETE_EVENT_FAILURE","ConnectionStatus","memo","hubConnection","start","disconnect","isConnected","setConnected","useState","forceShow","setForceShow","prevIsConnected","ref","useRef","useEffect","current","usePrevious","useMemo","setTimeout","Reconnected","Reconnecting","connectionState","Snackbar","anchorOrigin","vertical","horizontal","open","autoHideDuration","Alert","className","severity","SystemLabel","Spinner","style","width","height","marginLeft","color","presenterTypeConstants","WORDCLOUD","BARCHART","COLUMNCHART","PIECHART","TEXTFLOW","LINECHART","RADARCHART","POLARAREACHART","DOUGHNUTCHART","RATING_CHART","DISPARITYCHART","QUIZ","QUIZANSWER","SCOREBOARD","REMOVEDLIST","module","exports","ClientConnectionFallback","countdown","timeToShow","reconnect","setState","tryReconnect","renderMessage","componentDidMount","componentWillUnmount","clearTimeout","timer","clearInterval","counter","Loader","AlertDialogSlide","breakoutFull","lang","forceDisc","forceDisconnected","Transition","forwardRef","Slide","direction","SmallLoader","Dialog","fullWidth","maxWidth","TransitionComponent","keepMounted","aria-labelledby","aria-describedby","DialogTitle","Fragment","DevicesIcon","SignalCellularConnectedNoInternet0BarIcon","EventBusyIcon","DialogContent","DialogContentText","textAlign","DialogActions","Button","onClick","sourceObj","prop","v","handleElementUpdates","formatToResponsivePath","parent","getUnit","names","unit","split","parseInt","replace","getValueFromInput","e","parseColorToRgba","getValue","getValueWithoutUnit","assignResponsiveStyle","responsiveNames","devices","defaultStyle","defaultTemplate","responsive","mainStyle","colors","parseRgbaToHex","rgb","red","hexCode","green","blue","convertRgbStringToHex","toString","hex","substring","backgroundApplier","onChange","getInteractionStyles","interaction","exhibitor","obj","frame","subtitle","logo","background","borderRadius","padding","fontSize","fontWeight","fontFamily","connections","borderWidth","borderColor","borderStyle","backgroundColor","Number","arrayHelper","_len","args","_key","reduce","acc","val","getMaxVal","propName","Math","max","apply","getMinVal","min","arraysEqual","arr1","arr2","i","getMaxValue","param","findByParam","sortByParam","updatedArray","compareChanges","hasChanged","a1","a2","window","CustomEvent","bubbles","cancelable","detail","evt","document","createEvent","initCustomEvent","prototype","Event","test","navigator","userAgent","DragEvent","addEventListener","cx","cy","px","py","ox","oy","sx","sy","lx","ly","update","clientX","clientY","pageX","pageY","offsetX","offsetY","screenX","screenY","layerX","layerY","_ffix_cx","_ffix_cy","_ffix_px","_ffix_py","_ffix_ox","_ffix_oy","_ffix_sx","_ffix_sy","_ffix_lx","_ffix_ly","ProvideBrowserOptions","Container","Row","Col","href","cursor","location","src","Chrome","Opera","FireFox","TemplateHeader","super","isDropZoneDisabled","sourceTypes","TEMPLATE","disableDropZone","isDisabled","onSelect","templateActions","select","onDelete","remove","sortChildrens","innerWidth","marginRight","display","form","TemplateFooter","MediaBackdrop","blurEffect","generateYoutubeSource","url","setScale","small","medium","large","translate","setBackground","main","bg","backgroundPosition","backgroundRepeat","backgroundAttachment","overflowY","setHeight","enabled","children","Media","queries","matches","transform","data-youtube","frameBorder","allowFullScreen","allow","contentStyle","responsiveStyle","s","dvc","TABLET","SMARTPHONE","setStyle","headerStyle","footerStyle","TemplateWrapper","prevBodyBGg","cmsActions","getClientFonts","componentDidUpdate","prevProps","prevState","headerRef","clientHeight","youtubeUrl","videoBackgroundEnabled","dangerouslySetInnerHTML","__html","insertFonts","justifyContent","HeaderWrapper","ContentWrapper","footerRef","FooterWrapper","colorHelper","getCorrectTextColor","hRed","hexToR","hGreen","hexToG","hBlue","hexToB","linearGradient","colorBase","dir","hexToRgb","hexBase","alpha","hexToDec","result","exec","parseFloat","rgbToObject","rgbaToHex","colourNameToHex","colour","colours","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","trim","cutHex","charAt","j","carry","digits","reverse","join","str","rgba","inParts","toFixed","outParts","round","forEach","part","RatingChart","questionName","dataArr","sum","average","generateChartColor","chart","sliced","w","adjustContentHeight","innerHeight","fold","options","plotBorderWidth","plotShadow","plotBackgroundColor","legend","yAxis","tickInterval","allowDecimals","labels","xAxis","align","tooltip","pointFormat","plotOptions","series","dataLabels","formatter","inside","rotation","stacking","pointPadding","groupPadding","credits","fill","stroke","colorByPoint","showInLegend","HighchartsReact","highcharts","Highcharts","PresenterLayout","clientKey","answer","availableLanguages","clientResponses","presentParticipants","defaultLanguage","selectedLanguage","importedAttendees","sent","sending","fade","templateId","presenterSettings","displayTypeText","displayTypeOption","moderationMode","presentationOrder","showCount","showPercent","showNamesTextflow","Axios","connectToHub","onGetOrderList","list","setClientKey","localStorage","setItem","getClientKey","getItem","HubConnectionBuilder","withUrl","build","onError","onHandshake","onClientResponse","onDeployQuestionToPresenter","onUpdatedPresenterSettings","onNewPresentParticipant","onClearDisplay","onClearResponses","onClearQuestionAnswers","onclose","invoke","clientType","clientTypeConstants","INTERACTION_PRESENTER","userGuid","order","badgeNo","interactionPresenterTemplateId","aList","answers","_answer$split","convertOptionIdToText","optionId","isNaN","questionOption","questionOptionId","questionOptionLanguage","l","_this$state$selectedL","responses","answerText","existingResponse","answerId","_response$answer","_response$answer$spli","timeout","_answer$split2","uptResponses","renderDataVisualizer","_question$questionLan","_question$questionLan2","_question$questionLan3","_question$questionLan4","_question$questionLan5","_question$questionLan6","_question$questionLan7","_question$questionLan8","_question$questionLan9","_question$questionLan10","_question$questionLan11","_question$questionLan12","_question$questionLan13","_question$questionLan14","_question$questionLan15","_question$questionLan16","_question$questionLan17","_question$questionLan18","_question$questionLan19","_question$questionLan20","_question$questionLan21","categories","groupTemplate","qo","_qo$questionOptionLan","_qo$questionOptionLan2","_qo$questionOptionLan3","ql","WordCloud","questionLanguage","BarChart","weight","answerWeight","ColumnChart","DisparityChart","clientList","PieChart","TextFlow","showNames","clientName","fadeIn","renderContent","scrollTo","match","overflow","setEnviroment","INTERACTION","URLSearchParams","search","getKey","dismissConnectionLoss","setInterval","DragDropContext","SplashScreen","marginTop","useStyles","makeStyles","theme","grow","flexGrow","menuButton","spacing","breakpoints","up","position","searchIcon","pointerEvents","alignItems","inputRoot","inputInput","paddingLeft","transition","transitions","sectionDesktop","sectionMobile","online","offline","OnlineBadge","withStyles","badge","boxShadow","palette","paper","top","left","animation","border","opacity","Badge","OfflineBadge","ClientList","setFilter","changeKey","setChangeKey","classes","undreadMessages","chat","count","messages","seen","receiver","orderList","sideView","clientViewRef","listHeight","oList","ia","company","speakers","activeAgenda","margin","SearchIcon","InputBase","onInput","placeholder","root","input","inputProps","List","dense","ReactEternalList","updateRate","component","renderListItem","ListItem","ListItemAvatar","overlap","variant","Avatar","nameInitials","ListItemText","primary","secondary","ListItemSecondaryAction","SpeakerActions","allowChat","IconButton","edge","selectChat","Tooltip","badgeContent","ForumTwoToneIcon","compareParam","setSpeaker","activateSpeaker","allowSpeaker","attendeeSpeaker","agendaItemId","active","interactionSpeakerId","ClearIcon","RecordVoiceOverIcon","QuestionStats","selectedQuestion","sendResponse","questionPresentParticipants","textEditing","removeClientData","selectedOptions","orderListFiltered","personType","personTypes","totalAnswerCount","answered","notAnsweredButPresent","notAnswered","maxHeight","minHeight","ClientResponseCount","answerCount","cr","badgeNoList","answerPersons","MessageList","activeTab","setActiveTab","Card","sortNo","lineHeight","AccessTimeIcon","formatTime","inserted","ContentEditable","marginBottom","html","tagName","CheckIcon","VisibilityOffIcon","VisibilityIcon","sortResponses","overflowX","textTransform","typography","fontWeightRegular","pxToRem","Tab","disableRipple","indicator","Tabs","TabIndicatorProps","TabPanel","other","Typography","role","hidden","Box","p","a11yProps","QuestionTabs","setValue","handleChange","newValue","indicatorColor","textColor","showZero","attendees","questionService","getAllQuestionsByEvent","includeInherited","updateQuestion","updateRange","deleteQuestion","_","questionActions","UPDATE_QUESTION_FAILURE","createQuestion","qs","updateQuestions","UPDATE_QUESTIONS_FAILURE","ConfirmModal","onCancel","onAction","extraProps","showNameInput","onNameEdit","zIndex","onClose","FormGroup","Label","Input","textPresenterTypes","optionPresenterTypes","customStyles","control","provided","noOptionsMessage","outline","singleValue","option","isSelected","setQuestion","placeholderOption","newOption","modalOpen","toggleModal","currentPresenterTypes","saveRequest","saveQuestion","snackbarHandler","closeSaveRequest","deleteRequest","closeDeleteRequest","toggleQuestionInfo","onQuestionAdd","cQuestion","uQuestion","setSavable","personTypeOptions","labelHelper","getLabel","t","personTypeId","paddingRight","for","labelLangs","copiedLabel","onLabelChange","allowedAnswerCount","requiredMin","requiredMax","Select","styles","opt","questionid","presenterType","tag","InputGroup","InputGroupAddon","addonType","disabled","addOption","_question$questionOpt","_question$questionOpt2","questionOptionIds","newQuestionOptionId","uOptions","AddIcon","ReactDragList","dataSource","rowKey","rowClassName","handles","onUpdate","handleOrderChange","sortedOptions","ds","row","_o$questionOptionLang","_o$questionOptionLang2","DragIndicatorIcon","onOptionLabelChange","flatMap","qol","copiedOption","DeleteIcon","deleteOption","QuestionOverview","editView","showEditView","setSave","setDelete","activeQuestions","clearQuestionAnswers","isDeleteable","aq","CardContent","ErrorOutlineIcon","SaveIcon","CloseIcon","RestoreIcon","EditIcon","restore","EditQuestion","PopList","icon","tooltipText","anchorEl","setAnchorEl","Boolean","currentTarget","aria-label","Popover","handleClose","transformOrigin","appBar","flex","editor","setEditor","cycleEditor","setCycleEditor","archiveOpen","setArchiveOpen","linkHelperOpen","setLinkHelperOpen","sourceCode","inline","expo","classic","showLinkEditor","tBarCode","inlineSettings3","toolbar","Editor","onInit","userLang","content_style","setup","ui","registry","addButton","image","onEditorChange","handleKeyUp","globalFormat","slimFormat","getContent","FileStorageWrapper","fontEnabled","onUseSelected","Image","crossOrigin","insertContent","onFontUpload","toggle","isOpen","initialDisplay","archiveConstants","IMAGE","showLaunchBtn","setImage","noInfoText","onOpen","externalSourceOnly","cropSizes","rowStyle","colStyle","dark","vaultOpen","setOpen","autoComplete","handleInput","InputGroupText","PhotoLibraryOutlinedIcon","typeRequest","require","CodeMirror","Controlled","mode","lineNumbers","onBeforeChange","flexDirection","formControl","minWidth","formControlLabel","HeaderBar","asideOpen","setAsideOpen","setModal","FilterDramaIcon","ViewHeadlineIcon","BarChartIcon","PieChartIcon","TableChartIcon","updatePresenterSettings","updatedSettings","clientTemplateId","breakouts","AppBar","activeModulesChanged","Toolbar","sm","parentEvent","EventNoteIcon","_props$parentEvent","origin","tickCode","securityHelper","createGuid","BrokenImageIcon","SettingsIcon","ArrowDropDownIcon","JirangoSwitch","isChecked","AllInboxIcon","MeetingRoomIcon","link","ViewCompactIcon","MoreHorizIcon","responseType","blob","Blob","date","datestr","getFullYear","getMonth","getDate","getHours","getMinutes","fileName","fileSaver","saveAs","GetAppIcon","toLocaleString","HowToVote","RateReviewIcon","OpenInNewOutlinedIcon","MobileFriendlyIcon","RotateLeftIcon","arenaClosed","setArenaClosed","reset","clearEventData","defaultQuestion","ChatIcon","CheckBoxIcon","unlocked","setUnlocked","setChanged","questionDeployLoadingId","setQuestionDeployLoadingId","modifiedQuestions","setQuestions","activePresenterQuestion","sortQuestions","save","newQuestions","renderTypeIcon","SubjectIcon","searchFilter","getMaxSortOrder","renderQuestionList","deployQuestionToClients","deployQuestionToPresenter","questionTagList","questionItems","onUnlock","SortIcon","sortedQuestions","qLang","listStyle","qt","QuestionModal","AgendaList","agendaName","setAgendaName","modifiedAgenda","setAgenda","agenda","deleteIndex","setDeleteIndex","targetAgenda","setTargetAgenda","unSavedWarning","setUnsaved","sortAgenda","agendaItems","handleAgendaOnChange","addAgenda","defaultAgendaItem","selectAgenda","activateAgenda","mAgenda","deactivateSpeakers","handleWarning","selectedAgenda","showSpeakers","force","closedDateTime","EventAvailableIcon","stopPropagation","PlayArrowIcon","toggleVisibility","DragList","editAgenda","toggleDelete","sortedAgenda","formattedDate","magenda","deleteAgendaItem","deleteAgenda","dragClass","HistoryIcon","ScheduleIcon","borderBottom","iconButton","divider","ChatList","renderConversations","visible","meetingList","chats","currentChat","cl","INTERACTION_MEETING","filteredKeys","CustomizedInputBase","onFilter","targetProfile","GroupIcon","VerifiedUserIcon","previewText","lastChange","previewPreFix","getClasses","selectStyle","indicatorSeparator","selectorStyle","page","templateIsSavable","systemLabel","dialog","updateLayout","events","paddingBottom","CalendarTodayOutlinedIcon","classsName","selEvent","heading","flexBasis","flexShrink","secondaryHeading","EventLayoutList","activeEventLayouts","activateLayout","layouts","activeLayout","ae","evId","LayoutPop","_layouts$find2","activationProps","setActivationProps","selectedLayout","setSelectedLayout","_layouts$find","layoutId","meetingLayoutId","Paper","startIcon","PresetList","selectedEvent","setSelectedEvent","expanded","setExpanded","presets","setSelectedPresetId","addPreset","activatePreset","deletePreset","deletePresetItem","addPresetItem","savePresets","onEditPreset","Accordion","daPresetId","panel","isExpanded","AccordionSummary","expandIcon","ExpandMoreIcon","aria-controls","daPresetItems","AccordionDetails","borderTop","pp","_events$find","layoutName","targetEventId","daPresetItemId","selLayout","Preset","setPresets","setActiveEventLayouts","setEvents","setLayouts","changedPresets","setChangedPresets","changedPresetItems","setChangedPresetItems","newId","added","newPreset","modifiedPresets","deleted","edited","presetItems","api","presetId","modifiedChangePresets","changePresetIndex","deletedPreset","cp","presetItemId","parentPreset","deletedPresetItem","pi","newPresetItem","sortPresets","scroll","fullScreen","close","Grid","item","xs","MeetingLayouts","activateLayoutId","setActiveLayoutId","setLoading","setHasChanged","isPresetOpen","setPresetOpen","fetchLayouts","configureHubEvents","layout","changeLayoutStatus","onSort","sortedLayouts","put","ll","meetingModules","GroupWorkIcon","LayoutList","activeMobileLayout","returnable","LayoutListItem","drag","mobile","ii","PresenterIcon","CancelPresentationIcon","PresentToAllIcon","ActiveItemsTab","unreadMessageCount","unreadMessages","scrollButtons","TabScrollButtonProps","QuestionList","ActiveItems","backdrop","wrapper","ClientTabs","clientKeyList","ClientOverview","subLabel","sectionStyle","ActiveInfo","presenterList","moderatorList","activeSpeaker","speaker","channels","sortChannel","channel","setActiveInfoRef","paddingTop","PeopleIcon","PersonIcon","LiveTvIcon","SupervisedUserCircleIcon","renderPersonTypeConnectivity","personTypesList","pt","client","clientPTypes","cpt","typeName","elements","showSpeaker","searchW","searchIconW","inputInputW","SpeakerList","dialogOpen","setDialogOpen","sortSpeakers","speakerType","renderTimeBadge","time","canBeActivated","aId","renderSpeakerCard","addTimeStamp","allClients","ac","borderLeft","GavelIcon","removeSpeaker","parentInteractionSpeakerId","ss","gavelClient","lineClient","closedDatetime","filteredClients","handleClickOpen","renderClosedSpeakers","SimpleDialog","SpeakerListItems","selectedSpeakers","addSpeaker","setSpeakers","dividers","newSpeakers","SpeakerTabs","filteredSpeakers","agendaSpeakers","SpeakerOverview","MuiAlert","elevation","CustomSnackbar","toggleSnackbar","PresetOverview","selectedPreset","editedAgenda","setEditAgenda","restoreAgendaItem","deselectAgendaItem","onSave","newAgenda","PopEditorClassic","ChatBox","size","onLike","likes","fromYou","last","first","ThumbUpIcon","sender","thumbColor","parseMessage","ChatLink","linkStyle","failed","setFailed","textify","ChatWindow","_this","autoScrollLocked","hiddenMessages","initalScrollPos","onEnter","which","sendMessage","clearChat","handleScroll","chatIndex","refs","scrollIntoView","block","behavior","onScroll","manual","scrollRef","scrollTop","cc","updatedChat","setMessageSeen","scrollToBottom","renderTargetCard","connectionList","person","StatusBadge","createRef","interactionChatId","isTheSameMinute","senderFirstName","senderOrderId","senderLastName","senderCompanyName","ScrollToBottomButton","missedGroupMessages","SendIcon","ArrowDownwardIcon","NewLayout","presenters","clients","showClients","showAgendaInfo","buttonTimers","forceQuestion","tcpConnections","activePreset","snackbar","modules","conflictedModules","questionAgendaSplitView","eventLang","conflictedModuleWarning","deactivateAgendaSpeakersOnClose","onModuleImport","allModules","newPresets","cf","onArenaClosed","onGetChatMessages","onSendChatMessage","onReceiveMessage","onRandomButtonFullCheck","onActiveModulesChanged","onGetActiveConnections","onGetActiveQuestions","onSpeakersUpdate","onUpdatedClientSettings","onAgendaUpdate","onToggleQuestionInfo","onToggleQuestion","onLoadMeetingLayoutPresets","groupGeneratorModules","meetingModule","breakoutId","rooms","randomButtonFullCheck","onActivateQuestion","INTERACTION_MODERATOR","ug","pre","interactionPresetId","newPre","resolveModuleConflict","accept","presetItem","interactionPrestId","updateModulesList","getBreakouts","roomCount","roomMax","randomButtonFullCheckTimer","confirm","interactionFilterQuestionsByTags","interactionAllowModeratorChat","getAll","getPersonTypes","connectionTimer","orderListTimer","MEETING","getEventCode","getSpeakers","deleteModule","json","digitalMeetingItemId","deletedId","autoSave","updateMeetingLayout","activatePresetItem","saveMeetingLayoutPreset","updateMeetingLayoutPresets","newItems","deleteMeetingLayoutPreset","selectPreset","updatateModules","createModule","createComponent","onGetTcpConnections","activeTemplateId","onNewConnection","conn","newList","onNewDisconnection","connectionId","dConn","qList","questionIds","refreshQuestionList","quizSettings","newButtonTimers","bt","setAllowedAnswersCount","newQuestion","clearResponsesOnPresenter","agendItemId","setForceQuestion","checked","updateClientSettings","getAgenda","clientAnswer","handleResponseEditing","findIndex","qId","removeClientQuestionData","speakerId","duration","_this$state$speakers$","_this$state$speakers$2","renderClientView","_this$state$agenda","isActive","speakerActions","INTERACTION_CLIENT","closeView","activate","renderSideView","handlePresetOnChange","capturePreset","AgendaEditView","renderIncommingDataList","oId","resChat","previewPrefix","messageId","like","toggleAside","local","uptAgenda","ua","selectedChat","activeInfoRef","connectionsProps","splitView","toggleSplitView","meetingLayoutPresets","addModule","toggleClientView","wrapperStyle","listCol","messageCol","questionHeaderStyle","maxHeigth","QuetsionAnswerView","archivedList","answeredList","confirmDialog","toggleQuestion","setTarget","saveStatus","setStageStatus","_selectedQuestion$que","_selectedQuestion$que2","_selectedQuestion$que3","_selectedQuestion$que4","_q$questionLanguage$f","_q$questionLanguage","qActive","some","ChevronRightIcon","Divider","questionLanguag","stageStatus","startsWith","MessageBox","no","setStatus","CheckCircleOutlineIcon","ArchiveIcon","ConfirmDialog","getTypLabel","dayConverter","d","datesAreOnSameDay","second","getUTCDay","ReplayIcon","StageLayout","onStatusChanged","cL","INTERACTION_STAGE","changedAnswer","newResponseList","hostname","drawer","mixins","drawerPaper","ExpoChat","onChatSelect","exhibitorHosts","host","targetPerson","unseenMessage","hasNewInits","prevHasNewInits","ChatDivider","tab","anonymous","videoCallActive","videoCallTarget","closeVideoCall","videoRequest","nonAvailablePersons","enableChat","useTheme","isChrome","isUsingChrome","formattedExpoList","eh","ChatGrid","deselectChat","toKebabCase","scrollbar","seenCondition","onPressFunc","ChatAvatar","primaryColor","secondaryColor","PersonRoundedIcon","QuestionAnswerTwoToneIcon","button","ErrorTwoToneIcon","enableVideoMeeting","VideocamOffTwoToneIcon","VideocamTwoToneIcon","profileBio","setChatSize","linkedIn","LinkedInIcon","CloseTwoToneIcon","exhibitorHost","profile","TimeStamp","MessageBubble","namee","chatTemplate","interactionHelper","expoId","expoHost","ExpoFileList","files","links","exhibitorId","ListGroup","ListGroupItem","clickTrackLog","value2","LanguageOutlinedIcon","lastIndexOf","FontAwesomeIcon","faFileImage","faFilePdf","faFileWord","faFileExcel","faFilePowerpoint","faFileVideo","faFileAudio","renderFileIcon","ArrowForwardIcon","SideViewTabs2","notices","video","InsertDriveFileTwoToneIcon","LinkIcon","fileView","linkView","videoCallConstants","OnVideCallModal","deny","CallEndIcon","autoFocus","VideocamIcon","loader","JitsiWrapper","displayName","roomName","password","onCall","meetingEnded","videoOn","audioOn","setOnCallEndListener","JitsiMeetAPI","onHangup","addListener","executeCommand","JitsiMeeting","userInfo","interfaceConfigOverwrite","APP_NAME","DISABLE_JOIN_LEAVE_NOTIFICATIONS","DISABLE_PRESENCE_STATUS","DISPLAY_WELCOME_FOOTER","ENABLE_DIAL_OUT","HIDE_INVITE_MORE_HEADER","LANG_DETECTION","MOBILE_APP_PROMO","RECENT_LIST_ENABLED","SHOW_BRAND_WATERMARK","SHOW_CHROME_EXTENSION_BANNER","SHOW_JITSI_WATERMARK","SHOW_POWERED_BY","SHOW_PROMOTIONAL_CLOSE_PAGE","loadingComponent","configOverwrite","disableModeratorIndicator","disableReactions","disableReactionsModeration","disablePolls","startWithAudioMuted","hideEmailInSettings","enableCalendarIntegration","hideConferenceSubject","hideRecordingLabel","prejoinConfig","gravatar","welcomePage","securityUi","hideLobbyButton","disableLobbyPassword","participantsPane","hideModeratorSettingsTab","hideMoreActionsButton","hideMuteAllButton","breakoutRooms","hideAddRoomButton","hideAutoAssignButton","hideJoinRoomButton","whiteboard","localRecording","disable","notifyAllParticipants","filmstrip","disableResizable","disableStageFilmstrip","toolbarButtons","domain","onApiReady","getIFrameRef","iframeRef","MaxWidthDialog","fullSize","toggleSize","Draggable","axis","handle","defaultPosition","grid","bounds","DragIndicatorTwoToneIcon","VideoFrame","renderCallLoader","videoResponse","videoCallResponse","callId","PhoneDisabledIcon","PhoneIcon","meetingCode","rootGrid","shape","common","pathConstants","ExpoBoothLayout","subPath","exhibitorSettings","isCalling","VideoCallTimeout","incommingCallSoundOn","ringingSoundOn","showBackToEventButton","messageSoundOn","exhibitorName","onNavigate","onGetExhibitorSettings","videoCallTimeout","companyName","fullName","profileImage","expoTemplateId","interactionShowBackToEventButtonExpo","INTERACTION_EXHIBITOR_HOST","getChat","onHostUpdate","hosts","onGetNoneAvailableCallers","onGetChat","onReleased","onOccupied","onVideoResponse","onVideoClosed","onVideoRequest","onGetExhibitorHosts","onForceDisconnect","INTERACTION_EXHIBITOR_VISITOR","filterHostConnections","onInitChat","videoRequestOnTimeout","videoRequestResponse","callTimeout","directed","onMessageSeen","notReadMessage","stop","filteredList","saveQueued","NotAuthorized","FontInjector","CenteredGrid","Sound","rush","loop","playStatus","PLAYING","STOPPED","ringing","chatNotification","ChatBubbleIcon","setScroll","md","lg","ContentView","logoImage","infoText","startVid","startVideo","contentText","GenericPlayer","globalActions","setSaveStatus","setHeaderHeight","setBreadcrumbHeight","updateUserToken","RedirectUser","allowed","to","fetched","userId","redirectUrl","token","Redirect","ChatMessageList","stamp","messagesToShow","enableScroll","editId","toggleChat","chatMessages","pos","slice","onSaveEdit","onEditMessage","_chatMessages$find","_chatMessages$find$me","onRemoveMessage","ForumIcon","_this$state$selectedC","_this$props","_this$state$selectedC2","exposeMessages","setEdit","blockedClients","activeEdit","EditTextDialog","modifiedText","setModifedText","defaultValue","BlockIcon","ChatModeratorLayout","showDialog","onMessageEdit","messageIndex","onMessageRemoved","extra","Name","onInteractionExtraSet","interactionExtraHandler","onGetEventChats","onExposeHiddenMessages","INTERACTION_CHAT_MODERATOR","hide","exposeHiddenMessages","ModuleWrapper","selected","gridLines","preview","lockPosAndSize","fullscreenRef","gridBound","gridRef","getElementById","yInc","xInc","clientWidth","reCalcPositionToPixels","posX","posY","sz","reCalcSizeToPixels","Rnd","disableDragging","enableResizing","dragGrid","onDragStop","onResize","delta","offsetWidth","offsetHeight","renderModulePlaceholder","bound","updateModule","GeneralTabs","slim","Nav","tabs","NavItem","NavLink","AddToPhotosOutlinedIcon","ViewModuleOutlinedIcon","PaletteOutlinedIcon","ModuleTabs","SettingsOutlinedIcon","defaultMeetingModules","limit","permission","admin","isHex","colors2","firstLet","filtered","Set","filterColors","newColor","convertedColor","handleClick","createStyles","popover","blockDeselect","textOverflow","SketchPicker","disableAlpha","onChangeComplete","TemplateColors","SliderWithTooltip","createSliderWithTooltip","Slider","EditorSlider","units","activeUnit","unitChange","steps","attachUnit","responsiveSettings","extraParam","uList","u","textDecoration","step","HelpOutlineOutlinedIcon","colorIcon","FormatColorFillIcon","fontIcon","FontDownloadOutlinedIcon","frameIcon","FilterFramesOutlinedIcon","borderIcon","BorderOuterOutlinedIcon","logoIcon","BusinessCenterOutlinedIcon","titleIcon","TitleOutlinedIcon","subtitleIcon","TextFieldsOutlinedIcon","sendIcon","SendOutlinedIcon","headerIcon","BorderTopOutlinedIcon","footerIcon","BorderBottomOutlinedIcon","chatIcon","ChatBubbleOutlineOutlinedIcon","messageBoxIcon","ListAltOutlinedIcon","listIcon","SearchOutlinedIcon","FormatListBulletedOutlinedIcon","listItemIcon","ViewDayOutlinedIcon","nameIcon","PersonOutlineOutlinedIcon","avatarIcon","AccountCircleOutlinedIcon","breakoutButtonIcon","InputOutlinedIcon","searchbarIcon","textIcon","chartIcon","BarChartOutlinedIcon","buttonIcon","TouchAppOutlinedIcon","linkIcon","LinkOutlinedIcon","inputIcon","EditOutlinedIcon","scrollIcon","HeightOutlinedIcon","activeAgendaIcon","EventAvailableOutlinedIcon","defaultAgendaIcon","passedAgendaIcon","EventBusyOutlinedIcon","tableHeadIcon","TableChartOutlinedIcon","tableIcon","GridOnOutlinedIcon","userCardSettingsList","showIf","clientListSettingsList","pollTemplateSettingsList","EqualizerIcon","FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","separator","ArrowForwardIosIcon","breakoutSettingsList","RemoveIcon","DescriptionOutlinedIcon","UnfoldMoreIcon","clientFrameSettingsList","exhibitorTemplateSettings","agendaTemplateSettings","breakoutsTemplateSettings","userCardTemplateSettings","chatFrameTemplateSettings","clientListTemplateSettings","connectionsTemplateSettings","pollTemplateSettings","mainTemplateSettings","PanoramaOutlinedIcon","pathSpread","contentTemplateSettings","titleTemplateSettings","subtitleTemplateSettings","textTemplateSettings","inputTemplateSettings","linkTemplateSettings","tableHeadTemplateSettings","tableCellTemplateSettings","buttonTemplateSettings","scrollTemplateSettings","chartTemplateSettings","interactionTemplateSettings","templateSettings","CollapsePanel","FontPicker","isFocused","dowloadClientFonts","clientFonts","convertFont","loadClientFonts","dowloadGoogleFonts","family","toggleExtensions","sortBy","selectFont","categoryOnChange","category","selectedCategories","selectedCategory","getFont","currentFontFamily","toggleArchive","onClientFontUpload","adjustFontList","fontPickerRef","bind","categoryOptions","sortOptions","fontPicker","dropdownOpen","previewFont","categoriesOpen","sortByOpen","flexWrap","selectedOption","nonWrapped","PermMediaIcon","FONT","fontWeights","FontWeightPicker","currentFont","classNamePrefix","handleUpdate","softUpdate","attachedUnit","templateCopy","it","getSettings","gm","i2","SettingsListItem","onUnitChange","handleUnitChange","unparsedValue","ep","ColorPickerFacade","ButtonGroup","UrlMultiInput","ModulePlaceholder","customStyle","description","blocked","created","onAdd","getAvatarColor","getModuleIcon","DeleteOutlineOutlinedIcon","ModuleOptions","ImageOutlinedIcon","EventSeatOutlinedIcon","EventNoteOutlinedIcon","ViewCarouselOutlinedIcon","ZoomIcon","PollOutlinedIcon","TimerIcon","OndemandVideoOutlinedIcon","AssignmentIndOutlinedIcon","KeyboardBackspaceOutlinedIcon","WidgetsIcon","StorefrontOutlinedIcon","PermIdentityOutlinedIcon","RecordVoiceOverOutlinedIcon","ContactsOutlinedIcon","CodeOutlinedIcon","LiveTvOutlinedIcon","AccountBoxIcon","MoreHorizOutlinedIcon","ReplayOutlinedIcon","ModuleList","activeModules","view","moduleList","isAdmin","parsedUser","permissions","onDragEnter","dataTransfer","dropEffect","preventDefault","onDragOver","am","meetingModuleId","draggable","onDragStart","effectAllowed","onDragEnd","_e$nativeEvent$_ffix_","_e$nativeEvent$_ffix_2","nativeEvent","SourceEditorWindow","PureComponent","containerEl","externalWindow","sourceDoc","targetDoc","appendChild","styleSheets","styleSheet","cssRules","newStyleEl","cssRule","createTextNode","cssText","head","newLinkEl","rel","closeWindowPortal","ReactDOM","createPortal","SourceEditorBase","showWindowPortal","toggleWindowPortal","CodeIcon","MuiPickersUtilsProvider","utils","MomentUtils","KeyboardDateTimePicker","clearable","ampm","format","LinkManager","setLink","DEFAULT_OPTION","MenuEditor","setIsSavable","modifiedMenu","setModifiedMenu","showConfirmDialog","toggleConfirmDialog","editOption","newModifiedMenu","forced","handleMenuClick","handleMenuClose","PaperProps","btoa","PlaylistAddIcon","_layouts$find$name","Menu","MenuItem","RestoreFromTrashIcon","bigIconList","SMILEYS","ANIMALS","TRAVEL","ACTIVITIES","OBJECTS","SYMBOLS","FLAGS","closeButton","right","MuiDialogTitle","disableTypography","PlauditIconSelector","uploadedFiles","setUploadedFiles","deleteMode","setDeleteMode","toggleIcon","iconCategories","cat","call","selectedIcons","uploadedIcons","filenames","getUploadedIcons","storageSummary","file","EmojiEmotionsIcon","IconUploadButton","onUploaded","DeleteForeverIcon","newFiles","deleteIcon","inset","htmlFor","PublishIcon","reader","FileReader","readAsDataURL","onload","fileInfo","newFile","onUpload","JirangoDatepicker","minDate","LinkMultiInput","srcset","startDateTime","stylableModules","ModuleSettings","SettingsList","mainEventId","copyModule","settingsList","getModuleSettings","SwapHorizIcon","sl","subProps","subProp","value2Prop","newSettings","imageSettingsList","htmlSettingsList","videoSettings","zoomSettingsList","exhibitorSettingsList","speakerControlSettings","blockSettingsList","textSettingsList","jitsiSettings","buttonSettingsList","groupGeneratorSettingsList","chatSettingsList","agendaSettings","speakerCardSettings","countdownSettings","vongageSettingsList","imageSourceSettinglist","videoWallSettingsList","speakerListSettings","eventNameSettings","contentViewSettings","pollModuleSettings","presenterModule","plauditButtonSettings","plauditTrackSettings","genericSettings","PositionAndSizeTools","postionAndSizeOnChange","selectedModule","meetingModuleLayoutId","slp","TemplateSelectorGroup","_props$user","_props$user2","formGroupStyle","eid","AccountTreeIcon","updatedLayout","layoutTemplateOnChange","_window$location$host","OpenInNewIcon","selectLayout","ViewCompactOutlinedIcon","fullList","setView","onDeselect","onEdit","deleteLayoutModule","toggleView","EventSelector","LayoutSelector","TemplateSelector","renderView","HeaderPopover","gridList","LayoutGrid","createLayout","deleteLayout","deletedLayouts","toggleGrid","createDialog","toggleCreateDialog","copyNo","setCopyNo","popOpen","setPopOpen","editableLayout","setEditableLayout","in","unmountOnExit","GridListTile","cols","ListSubheader","GridList","cellHeight","isDeleted","dl","cardItemText","BuildOutlinedIcon","MoreVertOutlinedIcon","modifiedLayout","copyCount","FileCopyOutlinedIcon","GridListTileBar","EditDialog","CreateDialog","appear","enter","exit","copyFrom","setCopyFrom","copy","setCopy","setName","setMobile","InsertDriveFileOutlinedIcon","CopiableLayouts","copiableLayouts","selectedCopy","onCopy","inheritedLayouts","il","currentEventLayouts","isMainEvent","editedLayout","setEditedLayout","resolutions","AlertDialog","MeetingEditorLayout","selectedTemplate","changedLayoutModules","changedModules","changedLayouts","changedTemplates","versions","showLayoutGrid","versionIndex","previewOpt","previewLoading","previewProps","layoutBackup","saving","templateChanged","getRequirements","eventLayouts","layoutsLoaded","getAllEvents","handshakeObj","INTERACTION_EDITOR","beforeSave","dialogContext","affectActiveLayout","affectActiveTemplate","affectiveTemplateInheritage","publish","meetingChanges","layoutsOnEvent","comparisionValue","newSelectedLayout","oldId","_selectedLayout","_layouts$find3","templateCallback","newTemplate","templateUpdateCallback","diff","resolution","scale","addOrUpdate","identifier","er","prevLayout","undoChange","requestedVersion","moduleIndex","updateLayoutModule","moduleId","cLayout","addedLm","mId","mLId","toISOString","layoutModule","getDefaultPosAndSize","onPreview","mock","findPerfectRatio","copyLayout","copies","newModules","newLayoutId","newLayoutModuleId","newModuleId","newLayoutModules","newLayouts","updateBy","index2","moduleDoNotExist","newModule","newLayout","getLayoutModules","layoutMoudles","mm","moduleParent","affordableHeight","affordableWidth","comparisonWidth","comparisonHeight","ratioFound","onSelectModule","ms","parseModules","parsedModules","pm","copyOfSelectedModule","systemLabelActions","_layouts$find4","templateLoaded","layoutModules","groupedTemplate","gridClassName","FontBasline","asideEditorRef","EditorSidebar","clm","SaveOutlinedIcon","DesktopWindowsOutlinedIcon","GridOffIcon","GridOnIcon","_this$state$layouts$f","MeetingRoomOutlinedIcon","previewStyle","GridLines","zoom","SoundNotification","VisitorHistoryList","visited","exhibitorsHosts","historicalVisitors","lastVisit","VideoCallButton","tooltipTitle","notAvailable","na","isOnline","VideocamOffIcon","LinkedInButton","GroupAvatars","people","AvatarGroup","alt","ActiveVisitorList","peopleFilter","activeVisitors","_chat$find","_chat$find$messages","_chat$find$messages$f","isHost","initHostChats","connectedHosts","SyncAltIcon","VisitorLineChart","graphData","dateSpan","autoScaleYaxis","autoSelected","xaxis","axisBorder","axisTicks","yaxis","tickAmount","floating","showAlways","decimalsInFloat","cssClass","rotate","markers","gradient","shadeIntensity","inverseColors","opacityFrom","opacityTo","stops","strokeColor","strokeWidth","Chart","Dashboard","toggleFilter","borderRight","menuOptions","DashboardIcon","subOptions","StorefrontIcon","InsertDriveFileIcon","AccountCircleIcon","nested","activeStyle","activeIconStyle","collapseOpen","setCollapseOpen","navigate","handleDrawerOpen","onMenuItemClick","ListItemIcon","ExpandLess","ExpandMore","Collapse","disablePadding","easing","sharp","leavingScreen","appBarShift","enteringScreen","whiteSpace","drawerOpen","drawerClose","MenuDrawer","mobileMoreAnchorEl","setMobileMoreAnchorEl","isMobileMenuOpen","handleMobileMenuClose","renderMobileMenu","PopMenuItem","CssBaseline","clsx","MenuIcon","noWrap","aria-haspopup","MoreVertIcon","goToBooth","exportParticipantExcel","ContactSupportIcon","Drawer","handleDrawerClose","ChevronLeftIcon","ChatFrame","setText","lastMessageRef","textRef","prevLastMessage","typing","combinedProps","onTyping","showUserProfileImage","chatStyle","PersonDetails","ChatFooter","ConversationList","chatConnections","logList","activeConversations","exist","conversation","lastMessage","read","inAnotherRoom","called","uuidv4","PhoneMissedIcon","visitorsOnline","ChatSearchbar","ChatView","IncommingCallDialog","chrome","frameStyle","frameClassName","CallLoader","_orderList$find$name","_orderList$find","class","NotificationSnackbar","unreadTargets","targetList","bottom","fileUpload","switches","number","FileUploadItem","exhibitorSettingId","ImageIcon","TextEditorItem","ExhibitorEditor","SwitchItem","VideoItem","clickTrack","PlayCircleOutlineIcon","NumberItem","BoothSettings","renderIcon","oi","FileType","demo","demo2","progress","File","deleteList","LinearProgress","readOnly","FolderIcon","SettingsBackupRestoreIcon","Link","AttachmentSettings","Croppie","ProfileImageUploader","isCropping","imageLoaded","defaultImage","toBase64","Promise","resolve","reject","onerror","onImageUpload","errorMessage","setImageOnOrder","onCropped","setImageClassName","handleImageLoaded","onRestore","imgRef","onLoad","ProfileImageCropper","viewport","CropTwoToneIcon","attendee","reRender","cropper","destroy","boundary","showZoomer","enableOrientation","handleZoomOut","listNodes","getElementsByClassName","controlled","cZoom","setZoom","handlResult","handleSave","hideOverlay","onWheel","Rotate90DegreesCcwTwoToneIcon","SaveTwoToneIcon","ProfileSettings","bio","onImageSet","onBioSet","DEFAULT_BUTTON_STYLE","Settings","savePersonalSettings","exImage","exBio","temp","setTemp","setBio","personalSettings","setPersonalSettings","setPlaceholderId","setSortOrder","add","viewTitle","Layout","View","targetShortCut","ip","Backoffice","setCountdown","stateRef","callTimeoutRef","hubConnectionRef","graphDataTimerRef","connectionTimerRef","chatConnectionRef","visitorStatsTimerRef","orderListTimerRef","table","onSettingsSaved","onGetActivityLog","getUserInformation","ipAddress","logListCopy","_getSetting","_getSetting2","_getSetting$value","_getSetting3","getSetting","newState","off","prevCount","onGetVisitorStats","onGetActiveChatConnections","onGetExhibitorVisitorStats","onHostChatInteraction","requestedChat","chatSelected","saveSettings","addList","VonageBackstageModeratorTab","recordingBtnDisabled","setRecordingBtnDisabled","studioStreamBtnDisabled","setStudioStreamBtnDisabled","justifyItems","ScrollWrapper","FormLabel","isRecording","StopIcon","PlayCircleFilledIcon","toggleRecording","endIcon","ArrowDropUpIcon","screenshareLayout","MenuListProps","screenshareLayouts","changeScreenshareLayout","isStudioStream","toggleStudioStream","indicatorStyle","clientInitial","parentEventCode","initilized","onAir","setOnAir","onAirBtnDisabled","setOnAirButtonDisabled","viewBtnDisabled","setViewButtonDisabled","isSidebarOpen","setIsSidebarOpen","setIsRecording","setScreenshareLayout","recordingArchiveId","setRecordingArchiveId","showHwSetup","setShowHardwareSetup","hardwareSetup","setHardwareSetup","setIsStudioStream","isModerator","setIsModerator","stopRecording","startRecording","onRecordingStarted","archiveId","onRecordingStopped","eventConfiguration","onChangeVonageScreenshareLayoutBackstage","onVonageHandshake","INTERACTION_VONAGE_SPEAKER","askForPermissions","disableGroupChat","interactionAllowOneToOneChat","pathname","insertParam","orderId","connectionCount","conns","toggleOnAir","changeVonageScreenshareLayout","tabsClasses","disableControls","toggleHardwareSetup","hws","backstage","allowFullscreen","showNametags","lockAspectRatio","aspectRatio","String","fromCharCode","disableElevation","VonageVideoClientModule","desktop","ChatModule","ClientListModule","backstageConns","ro","ResizeObserver","entries","observer","abs","globalStreamList","VonageVideoWall","showSettings","setShowSettings","setShowNametags","setEventCode","setEventId","setEventName","setParentEventId","screenNo","setScreenNo","gridClass","setGridClass","maxVids","setMaxVids","session","setSession","setToken","setHubConnection","setConnecting","reconnectCounter","setReconnectCounter","templateList","setTemplateList","setOrderList","setTemplateId","streams","setStreams","linkToPage","setLinkToPage","onStreamDestroyedRef","kickPersonFromWallRef","onConnectionCloseRef","activeTemplateContent","setActiveTemplateContent","activeTemplate","activeVideoCount","getOrderListIntervalRef","getOrderListRef","preSetMaxCount","preSetName","preSetScreenNo","preSetTemplate","preSetNametags","onStreamDestroyed","onConnectionClose","kickPersonFromWall","getOrderList","onVonageVideoWallHandshake","onGetVideoWallSession","onStreamCreated","vids","calculateColumns","newLink","hc","INTERACTION_VONAGE_VIDEOWALL","apiKey","sessionId","OT","initSession","newStream","subscribe","stream","insertMode","showControls","streamName","subscriber","nametag","classList","nameText","innerText","addNametag","observe","sIndex","widgetId","formattedCss","TextField","FormControl","FormControlLabel","Switch","labelPlacement","containerid","selection","range","createTextRange","moveToElementText","getSelection","createRange","selectNode","removeAllRanges","addRange","selectText","CreateChannelDialog","newChannelName","setNewChannelName","InputLabel","required","ev","saveClick","setTickCode","setEventList","channelList","setChannelList","setConnectionList","setLanguageCode","setInit","connectionListTimerRef","channelListTimerRef","chList","ch","staticChannelListId","ec","ck","bno","onGetStaticChannelList","onDeleteChannel","INTERACTION_CHANNEL_LIST","openRoom","evCode","chName","encodeURIComponent","mainRoomChannel","deleteChannel","createStaticChannel","PlauditPresenter","setBackgroundColor","setChannel","INTERACTION_PLAUDIT_PRESENTER","PlauditTrack","DigitalArena","lazy","App","directToInadraHomePage","Router","Suspense","fallback","Route","exact","VonageBackstage","EditorWrapper","ExternalRedirect","ChannelList","ModeratorLayout","BrowserDetector","msieversion","browserUpdate","insecure","reminder","no_permanent_hide","Provider","BrowserRouter","serviceWorker","ready","registration","unregister","createBrowserHistory","basename","process","floor","random","keys","useSpaces","line","idx","nextIdx","appVersion","verOffset","nAgt","screenSize","screen","nameOffset","ix","nVer","browser","appName","version","majorVersion","cookieEnabled","cookie","os","clientStrings","cs","osVersion","downlink","connection","windowH","hMarginTop","hMarginBottom","cMarginTop","cMarginBottom","fMarginTop","fMarginBottom","cPadding","extractFontsFromJson","cssFonts","googleFonts","createGoogleImports","createFontFaces","baseFonts","flattenTemplate","flattenedObject","traverseAndFlatten","currentNode","flattenedKey","flatten","alreadyAdded","skipKeys","skipProps","keySubstitutions","sub","present","replaceKeyName","presentation","ks","convertPseudoClassesToCss","pclass","pseudoClass","converWebkitScroll","thumbBackgroundColor","thumbBorderRadius","trackBackgroundColor","thumbColorHover","styleString","propValue","asOption","asOption2","gName","setGroupName","creating","setCreating","isSaveable","setIsSaveable","isEditable","editLabel","setEditLabel","setLoaded","labelList","activeRoute","routes","comparePaths","labelGroup","currLabel","p1","p2","locRegex","pathRegex","ctrlKey","field","newLabel","onKeyPressed","keyCode","shiftKey","stopShit","systemLabelId","hint","cancel","onFocus","placement","PopoverHeader","PopoverBody","onKeyDown","InfoOutlinedIcon","nextProps","systemLabelService","getAllGroups","labelArray","labelName","groupLoading","GET_SYSTEM_LABEL_REQUEST","GET_SYSTEM_LABEL_SUCCESS","GET_SYSTEM_LABEL_FAILURE","CREATE_LAYOUT_LABEL_REQUEST","CREATE_LAYOUT_LABEL_SUCCESS","CREATE_LAYOUT_LABEL_FAILURE","UPDATE_SYSTEM_LABEL_REQUEST","UPDATE_SYSTEM_LABEL_SUCCESS","UPDATE_SYSTEM_LABEL_FAILURE","currentLoadingGroups","GET_LAYOUT_LABEL_GROUP_REQUEST","GET_LAYOUT_LABEL_GROUP_SUCCESS","GET_LAYOUT_LABEL_GROUP_FAILURE","uploadingInfo","selectedFile","unsplashFile","isUploading","storageUsage","isCompleted","useCropper","filterType","IMAGE_TYPES","download","fileType","eventMemoryUsage","onUploadCropped","img","Buffer","onDeleteFile","_selectedFile$isCropp","filePath","isCropped","indexToRemove","fontName","removeFont","onUnsplashDownload","urls","raw","queryStr","onSelectFile","FONT_TYPES","toggleParent","unsplash","filteredFiles","FileStorage","post","strUser","tinymce","addI18n","getLanguageCodeForTiny","auth","classicSettings3","plugins","language_url","imagetools_toolbar","imagetools_cors_hosts","imagetools_credentials_hosts","fullpage_default_doctype","fullpage_default_encoding","link_assume_external_targets","relative_urls","remove_script_host","convert_urls","menubar","paste_as_text","inlineSettings","fontsize_formats","theme_advanced_toolbar_location","theme_advanced_toolbar_align","theme_advanced_statusbar_location","block_formats","theme_advanced_resizing","templateService","templateDto","getAllByEvent","getDefaultByEvent","lastModified","backgroundSize","backgroundUrl","borderCollapse","tcell","spinner","thead","letterSpacing","readOnlyOpacity","textAreaMinHeight","badgePillColor","sendButtonColor","inputColor","inputBackground","titleSize","adminBackgroundColor","adminTextColor","sendButton","optionButton","agendaItem","default","passed","poll","iconColor","iconBackgroundColor","textInput","pagination","stepColor","questionTitle","buttonOption","defaultBorderColor","defaultTextColor","defaultBackgroundColor","checkedBorderColor","checkedTextColor","checkedBackgroundColor","boxOption","checkedColor","uncheckedColor","rowDivider","readMore","listItem","avatar","activeColor","activeBackground","searchBar","userCard","color1","color2","color3","color4","color5","textflowColor","textflowBgColor","tablet","smartphone","loadingLabels","getLabelValue","popoverContent","PersonInformationPopover","popoverOpen","setPopoverOpen","popoverAnchor","handlePopoverOpen","handlePopoverClose","aria-owns","onMouseEnter","onMouseLeave","disableRestoreFocus","PersonDetailsItem","PresenterModule","GroupGeneratorModule","ImageModule","HtmlModule","AgendaModule","RatioWrapper","ZoomModule","defaultVideoFrame","SpeakerCard","controls","preload","poster","controlsList","data-setup","CountdownModule","IframeModule","ConnectionsModule","ExhibitorModule","UserCardModule","BreakoutModule","BlockModule","TextModule","ButtonModule","PollModule","ImageMapModule","SpeakerControl","EventName","VideoWallModule","PlauditButtons","PlayCircleFilledWhiteOutlinedIcon","incrementX","incrementY","canvasRef","draw","ctx","canvas","moveTo","lineTo","strokeStyle","lineWidth","context","getContext","messagesStyle","backstageChatStyle","Searchbar","clientListStyle","searchbar","backstageListStyle","mockPeople","currentSpotlights","setCurrentSpotlights","onVonageGetSpotlights","spotlightList","onSpotlightClick","clientListTemplate","ClientListContainer","booked","bookedEventId","showSearchbar","showAvatar","showTitle","bookedBreakouts","spotlightChangeKey","personHasSpotlight","ClientListItem","HighlightIcon","JitsiLoader","JitsiModule","apiLoaded","setApiLoaded","meetingName","importJitisApi","JitsiMeetExternalAPI","getElementsByTagName","script","setAttribute","nodeName","rName","Jitsi","containerStyle","onAPILoad","config","languageDetection","ModuleErrorFallback","resetError","dialogOptions","BugSvg","SentryReact","MeetingLayoutModule","MeetingLayoutModuleWrapper","ClickthroughModules","useMediaQuery","json2mq","mobileLayout","entranceAnimation","animationDuration","ModuleType","elevateParentContainer","elevate","setSize","ratioStyle","setRationStyle","wrapperRef","removeEventListener","aspecRatio","ratio","defStyle","toHigh","toWide","customWidth","customHeight","VideoModule","eventLabelGroupsConstants","CHAT_LABEL_GROUP","CLIENTLIST_LABEL_GROUP","EXHIBITOR_LABEL_GROUP","BREAKOUT_LABEL_GROUP","AGENDA_LABEL_GROUP","VONAGE_LABEL_GROUP","SPEAKER_CONTROL_LABEL_GROUP","SPEAKER_CARD_LABEL_GROUP","MeetingLayout","noFontLoad","hasParent","ViewWrapper","ModuleHandler","isSmartphone","layoutStyle","moduleIsInLayout","moduleBlueprint","GETALL_TEMPLATE_REQUEST","GETALL_TEMPLATE_SUCCESS","GETALL_TEMPLATE_FAILURE","UNDO_TEMPLATE_CHANGE","REDO_TEMPLATE_CHANGE","listItemHeight","setListItemHeight","forceReRender","setForceReRender","renderList","setRenderList","containerRef","dummyElRef","containerTopRef","updateOnScrollRef","recursiveSplit","mid","getParent","updateNodeDimension","node","updateNodeVisibility","isVisible","isNodeVisible","updateRenderList","getChildren","toTitleCase","txt","escapeHTML","innerHTML","alignment","parentRef","loopIsRunning","setLoopIsRunning","setContent","loopRef","onSendReaction","IconBurst","animate","done","flush","requestAnimationFrame","timestamp","phase","radius","speed","distance","outer","inner","append","contains","removeChild","cos","BackstageChatHeader","undreadEventMessages","undreadBackstageMessages","UndreadMessagesDot","ChatHeader","ChatContainer","chatBlock","collapsible","hideFooter","hideHeader","allowModeratorChat","setChats","setCurrentChat","setAutoScrollLocked","setChatConnections","setHiddenMessages","setInitalScrollPos","setMissedGroupMessages","setMessagesToShow","setChatBlock","collapsed","setCollapsed","chatMessageRef","mountedRef","prevCurrenChat","onLikeMessage","onClearChatMessages","newChatConnections","_settings$requestedEv","requestedEventId","updateChatConnections","_settings$requestedEv2","targetChat","hm","ci","sentMessage","room","mgm","likeMessage","currentChatConversation","toBottom","isp","filteredChats","Fab","ChatBubbleRoundedIcon","DailyMotionPlayer","played","setPlayed","extractIdFromUrl","startString","tempString","Dailymotion","onPlay","uiTheme","VimeoPlayer","playedRef","Player","allowfullscreen","YouTubePlayer","opts","playerVars","autoplay","YouTube","videoId","downloadable","scrolling","getUserMedia","gumNamesToMessages","PermissionDeniedError","PermissionDismissedError","NotSupportedError","ConstraintNotSatisfiedError","OverconstrainedError","NoDevicesFoundError","HardwareUnavailableError","arry","each","iter","addClass","setPref","getPref","attributes","doc","subAttrs","setChildren","child","createDevicePickerController","changeHandler","destroyExistingPublisher","publisher","devicesById","_devicePicker","pickedDevice","selectTag","audioSource","videoSource","fitMode","audioLevelDisplayMode","deviceId","audioDisplayTag","audioDisplayParent","widgetTag","previewTag","pub","initPublisher","accessAllowed","movingAvg","audioLevel","logLevel","log","LN10","tagCount","parentNode","ceil","cleanup","disableSelector","addDevice","deviceLabel","setDeviceList","removeAttribute","parentElement","insertAdjacentElement","defaultDevice","attachEvent","onchange","mediaDevices","constraints","onStream","mozGetUserMedia","webkitGetUserMedia","OTPlugin","authenticateForDeviceLabels","getDevices","audio","kind","shouldGetDevices","protocol","MediaStreamTrack","getTracks","track","createOpentokHardwareSetupComponent","targetElement","_options","camera","microphone","camSelector","camPreview","micSelector","micPreview","videoWall","_hardwareSetup","defaultAudioDevice","defaultVideoDevice","insertBefore","nextSibling","getAttribute","childNodes","firstChild","controller","singleSpeaker","arrows","multiSpeakersTop","multiSpeakersBottom","noSpeakers","fullscreen","VonageScreenshare","speakerCount","setSpeakerCount","isFullscreen","setIsFullscreen","speakerIndex","setSpeakerIndex","currentlyShown","setCurrentlyShown","maxCountToShow","setMaxCountToShow","functionsRef","adjustCurrentlyShown","layoutMode","screensharePublisher","screenshareStream","containerDiv","hiddenDiv","subscribeToVideo","speakerStream","_screenshareStream$st","handleEsc","toggleFullscreen","scrollSpeakers","screenshareSpeakersRef","scrollLeft","getBoundingClientRect","childHeight","childWidth","toggleScreenshareView","onStreamConnected","onStreamDisconnected","subscriberToRemove","setNewPersonTalking","unshift","subToRemove","pop","prepend","setFunctionsRef","KeyboardArrowLeftIcon","KeyboardArrowRightIcon","setScreenshareSpeakersRef","setScreenshareScreenRef","setScreenshareHiddenRef","ignoreErrorsArray","ignoreUrlsArray","getUser","environment","LogRocket","Sentry","dsn","ignoreErrors","ignoreUrls","release","allowUrls","autoSessionTracking","beforeSend","logRocketSession","sessionURL","getSessionURL","scope","setExtra","configSentry","logException","ex","stacktrace","PictureDisplay","viewWidth","srcSet","sizes","UNSPLASH","GRID","OTHER","LIST","OTHER_TYPES","typoStyle","paperStyle","ScreenshareOptionsPop","typographyStyle","popoverStyles","ScreenShareIcon","SingleSpeaker","MultiSpeakerTop","MultiSpeakerBottom","NoSpeaker","DesktopWindowsIcon","VonageControlpanel","isMicOn","setIsMicOn","isCamOn","setIsCamOn","controlLock","setControlLock","isScreenshareEnabled","setIsScreenshareEnabled","bindPropertyChanges","changedProperty","hasAudio","hasVideo","stopPublisher","checkScreenSharingCapability","supported","showControlbar","capabilities","publishAudio","startPublisher","MicIcon","MicOffIcon","publishVideo","toggelDeviceSettings","isSharingMyScreen","stopScreenshare","DesktopAccessDisabledIcon","isSomeoneSharingScreen","startScreenshare","FullscreenExitIcon","FullscreenIcon","moderatorLock","VonageGridView","videoCount","setVideoCount","toggleGridView","hiddenSpeakers","_cs$stream","_s$stream","_cs$stream2","_props$publisher$stre","HiddenSpeakerlist","setGridViewHiddenRef","_h$stream2","_h$stream","VonageSidebar","streamSidebarOpen","setSidebarOpen","scrollSidebar","focusViewStreamsRef","KeyboardArrowUpIcon","KeyboardArrowDownIcon","setfocusViewStreamsRef","VonageFocusedView","setMyStreamRef","VonageSpotlightView","checkSpotlightLayoutStatus","toggleSpotlightView","vidCount","_subscriber$stream","setHiddenRef","_state$session","_spotlightViewFunctio4","showSpeakerDialog","setShowSpeakerDialog","showSpeakerDialogButton","setShowSpeakerDialogButton","showHardwareUnavailable","setShowHardwareUnavailable","gridViewFunctions","setGridViewFunctions","spotlightViewFunctions","setSpotlightViewFunctions","screenshareViewFunctions","setScreenshareViewFunctions","controlPanelFunctions","setControlPanelFunctions","hardwareSetupComplete","setHardwareSetupComplete","activeStream","streamIdToMute","focusedStream","mainViewEl","myStreamRef","showSettingsView","screenshareScreenRef","screenshareHiddenRef","spotlightViewHiddenRef","setShowHwSetup","showClickToJoin","setShowClickToJoin","hardwareSetupTimeout","setHardwareSetupTimeout","onPublisherDestroyedRef","onScreensharePublisherDestroyedRef","_spotlightViewFunctio","toggleLayoutMode","spot","_spotlightViewFunctio2","_spotlightViewFunctio3","onActivateSpeaker","onGetSessionAndToken","initHardwareSetup","onSessionConnected","videoType","newScreenshareStream","previousLayout","handleScreenshareStream","targetContainer","btn","span","svg","createElementNS","getAudioVolume","muteStream","addMuteButton","speakerDetection","setSubscriberStartTalking","setSubscriberStopTalking","setFocusedStream","checkIfMuted","_newStream$element","querySelector","muted","handleCameraStream","setAudioVolume","startTalking","stopTalking","activity","talking","disconnectedStream","newActiveStream","gridViewHiddenRef","toggleScreenshareLayout","ssLayout","screenShare","getMediaTrack","ideal","handleError","getVideoTracks","audioDeviceId","videoDeviceId","setVideoSource","setAudioSource","videoTrack","mirror","disableAudioProcessing","onPublisherDestroyed","livePublisher","backstagePublisher","sessionType","AudioContext","unsubscribe","unpublish","onScreensharePublisherDestroyed","liveSession","backstageSession","beforePageUnload","onChangeVonageScreenshareLayout","fs","FormData","set","sendBeacon","viewRef","resetMoverEvent","once","reload","_state$publisher$getA","_state$publisher$getV","_state$publisher$getV2","newAudioDeviceId","newVideoDeviceId","newVideoTrack","getAudioSource","getVideoSource","VonageSpeakerDialog","setStreamIdToMute","Authorization","ok","statusText","escapedText","info","warning","wordCloud","wordcloud","deriveFontSize","relativeWeight","autoFit","showPrecentage","distinctAnswers","_text$toLowerCase","recurrencies","originalText","words","arr","scalingFactor","minFontSize","orientations","colorI","totalCount","da","percentage","ret","len","point","pcnt","pie","drawData","showLabel","isModule","labelRef","column","importedAttendeesFiltered","GET_SYSTEM_LABEL_DATA_REQUEST","GET_SYSTEM_LABEL_DATA_SUCCESS","GET_SYSTEM_LABEL_DATA_FAILURE","GET_ALL_LABEL_GROUPS_REQUEST","GET_ALL_LABEL_GROUPS_SUCCESS","GET_ALL_LABEL_GROUPS_FAILURE","linkEnabled","imageStyle","objectFit","searchString","searchParams","resizeObserver","setResizeObserver","toggleScreenSize","browserAllowed","setBrowser","enableZoomScreenShare","meetingId","isFullscreenRef","sharingConfig","initZoom","ZoomMtg","leaveMeeting","addReact","setZoomJSLib","preLoadWasm","prepareJssdk","signature","leaveUrl","isSupportAV","videoHeader","disableInvite","isSupportChat","isSupportQA","isShowJoiningErrorDialog","videoDrag","showMeetingHeader","meetingNumber","userName","userEmail","passWord","zoomFrame","zmmtgRoot","screenLoaded","reactScript","addReactDom","reactDomScript","addRedux","redux","addReduxThunk","reduxThunk","addJquery","jqueryScript","addLodash","lodashScript","addZoom","zoomScript","sharingCanvas","zh","zw","mLeft","suspensionWindow","suspensionWindowOnUpdate","bFrame","suspensionWindows","videoBtn","videoHeight","cornerRight","cornerTop","videoCanvas","suspW","hardToFindDiv","resizeTarget","EditorPreview","ZoomLogo","activeQuestion","displayType","resizeGraph","FallbackChart","questionType","setCategories","openInNewWindow","displayText","useTemplateStyle","buttonStyle","formattedUrl","parsedText","isButtonDisabled","setIsButtonDisabled","clicked","setClicked","randomButtonFullCheckTimerRef","onGetFirstAvailableBreakout","DefaultVideoFrame","hideControl","autoPlay","htmlContent","setPublisher","onDismountRef","videoWallProps","onGetDialogSessionAndToken","onDismount","onKickPersonFromWall","_videoWallProps$wallN","wallName","newSession","onRemoteHangUp","hangUp","UnfoldLessIcon","updatePublisherDevices","PermCameraMicIcon","setTime","setClear","timerRef","datetime","numberSize","textSize","setSeconds","getSeconds","currentTime","secondsLeft","days","hours","minutes","seconds","timeBadgeStyle","textStyle","onMapClick","ImageMapComponent","ImageMap","SpeakerControls","hasRequestedTheFloor","isSpeakerActive","unassignRequest","requestTheFloor","allowPointOfOrder","allowRequestLineOfSpeaker","allowRequestTheFloor","buttonBackground","overwriteTemplateButtonStyle","_template$button4","_template$button","_template$button2","_template$button3","InsertCommentIcon","_speakers$find","setActiveSpeaker","floorIsGive","setFloorIsGiven","noneAllowedSpeakers","getAgendaFromOtherEvent","fetchSpeakers","fetchAgenda","ol","agendaId","hasRequested","isAllowedSpeaker","isAuthorizedSpeaker","DEFAULT_SPEAKER","ActiveSpeaker","_orderList$find2","_orderList$find3","imageBorderColor","imageSize","imageBorderWidth","containerBorderWidth","containerBorderColor","speakerLabel","borderBottomLeftRadius","borderTopLeftRadius","backgroundImage","secondaryTypographyProps","activeSpeakers","setActiveSpeakers","setActiveAgenda","setLayout","currentTemplate","setCurrentTemplate","layoutRef","moduleChangeKey","onGetActiveMeetingLayout","DASettings","checkBreakoutVistorMax","allowChatVideoCall","chatAdmin","chatAlias","collapsibleAgenda","MobileMenu","menuItems","mo","areEqual","toggleDrawer","anchor","SwipeableDrawer","HorizontalAlignLeftIcon","VerticalAlignBottomIcon","HorizontalAlignCenterIcon","VerticalAlignCenterIcon","HorizontalAlignRightIcon","VerticalAlignTopIcon","ImageAspectRatioOutlinedIcon","SettingsOverscanOutlinedIcon","ArrowUpwardIcon","ZoomOutMapIcon","OpacityIcon","Crop169Icon","CropLandscapeIcon","Crop54Icon","moduleSettings","breakout","iframe","jitsi","vonage","groupGenerator","speakerControl","imageMap","speakerCard","speakerList","contentView","presenter","carousel","showSlideNo","oneRow","colsPerRow","hideText","textLeft","showText","filterByGroup","showSubtitle","collapsibleDescription","showButtonIcon","divideTimeslot","showAlternativeName","hideSpeaker","hideSubtitle","hideTitle","showAllConnections","showSnackbar","allowProfileEdit","buttonText","balanceScreens","timesKicked","setTimesKicked","setVideoWallProps","videoWallFull","setVideoWallFull","onGetTokenForVideoWall","onVideoWallFull","handleDialogClose","exampleWrapper","radioGroup","speedDial","showDiscBtn","reConnect","spamBlock","setSpamBlock","columns","icons","fabColor","fabIconColor","buttonBackgroundColor","buttonBorderColor","iconList","isInteger","handleOpen","sendReaction","onBtnClick","gridAutoFlow","gridTemplateColumns","onMouseDown","SpeedDial","ariaLabel","FabProps","SpeedDialAction","tooltipOpen","tooltipPlacement","ButtonOptionQuestion","_questionLanguage$fin","selectOption","answerList","questionList","pollTemplate","checkedStyle","al","NoQuestionPlaceholder","EqualizerOutlinedIcon","TextQuestion","_questionLanguage$fin2","_questionLanguage$","onTextInput","nl","resize","Question","pageNo","AnswerSentAlert","PollModuleContainer","togglePage","valid","send","isValid","validateOptionQuestion","CardActions","pollStyle","mockupQuestions","interactionQuestionId","updatedUserId","quizAnswer","inherit","questionLanguageId","subInput","questionOptionLanguageId","onDeactivateQuestion","getAnsweredQuestions","answeredQuestions","getAnsweredCount","addAnsweredQuestion","removeAnsweredQuestion","clientQuestionList","pTypes","clientQuestion","sendTime","shouldNotRemove","sendOptions","answerTime","PollIcon","requestPointOfOrder","replaceTag","clientkey","AgendaItem","titleStyle","styleWrapper","showSpeakerControl","closed","exp","AccordionActions","AgendaTextWrapper","getAgendaStyle","Speaker","activeAgendaRow","ActiveSpeakerControls","isActiveSpeaker","AgendaContainer","agendaListRef","activeAgendaRef","noStyleWrap","bgColor","onDeactivateSpeaker","onAgendaClosed","agendaEventId","ChatBlock","ChatEmojiPicker","chosenEmoji","setChosenEmoji","MoodIcon","Picker","onEmojiClick","emojiObject","emoji","groupNames","smileys_people","animals_nature","food_drink","travel_places","activities","objects","symbols","flags","recently_used","MessageInput","maxLength","MessageTools","VideocamRoundedIcon","onEnterKeyPressed","_settings$hideMessage","hideMessages","NoResultState","PeopleListPopover","AddRoundedIcon","PeopleList","activePeople","nameA","nameB","inSameRoom","PersonListItem","hideOnlineBadge","ConversationListPopover","BadgeWrapper","QuestionAnswerIcon","badgeValue","conversations","ConversationListItem","conversationReceiver","conversationPreviewText","senderOfLastMessage","snackbarPosition","UndreadMessageSnackbar","TargetName","setSource","setIsCropping","setImageLoaded","fileInputRef","CropIcon","onDeleteImage","CloudUploadIcon","handleResult","RotateRightIcon","UserDetailsEditDialog","personDetails","setPersonDetails","imageUploaded","setImageUploaded","changeList","setChangeList","setSaved","allowedTitle","down","newChangeList","nc","deleteImage","delete","requestList","digitalArena","AssignmentIndIcon","Checkbox","imageData","useCallback","getStyle","exhibitorStyle","exhibitors","fetchExhibitors","filteredExhibitors","_arr1","_arr2","arrayCompare","flat","filterExhibitors","exhibitorTemplate","GridMap","Carousel","GridItem","externalLink","rows","cpr","colWidth","activeIndex","setActiveIndex","animating","setAnimating","next","expoNavigation","slides","tempArr","pc","slidesCount","startIndex","endIndex","CarouselItem","onExiting","onExited","im","nextIndex","previous","RSCarousel","CarouselIndicators","onClickHandler","newIndex","CarouselControl","directionText","breakoutStyle","setBreakouts","activeBreakouts","setActiveBreakouts","breakoutRef","fetchBreakouts","checkActiveBreakouts","timeRule","end","breakoutTemplate","BreakoutContainer","linkConverter","convertedLink","showButton","ab","filters","displayLang","eventDisplayLanguage","alternative","ExitToAppIcon","connectionsStyle","VideoCallMessage","rest","SenderNameInfo","NoMessagePlaceholder","ChatOutlinedIcon","MOCK_MESSAGES","receiverOrderId","receiverFirstName","receiverLastName","receiverCompanyName","receiverExhibitorId","senderExhibitorId","_getMessages","getMessages","scrollWrapperProps","equal","FloatingGenericList","onCheck","internalPaths","searchKey","currentLink","appendBadgeNo","showList","editLink","toggleAlt","getInternalPaths","pathsObj","paths","convertInternalLink","selectFromList","internalPath","toggleMailTo","selectedLink","ViewListIcon","FORM","PAGE","EMAIL","email","setSourceLocation","containerUpdated","getFonts","addFont","alertNewModifications","globalSavingLoader","toggleInheritageInfo","REGISTER_REQUEST","REGISTER_SUCCESS","REGISTER_FAILURE","SET_DEFAULT_EVENT_REQUEST","SET_DEFAULT_EVENT_FAILURE","TOGGLE_ADMIN_REQUEST","TOGGLE_ADMIN_FAILURE","EDIT_MODE_ON","EDIT_MODE_OFF","reason","MailOutlineIcon","isSameDay","d1","d2","date1","date2","getDay","dot","avatarStyle","newTemplates","getDefaultTemplateByEvent","deselect","togglePreviewMode","AntSwitch","switchBase","grey","thumb","getGlobal","global","TinyMCE","setTinymce","FileStorageHeader","isCopied","toggleCopied","inputFilter","DeleteOutlineIcon","AssignmentTurnedInIcon","AssignmentIcon","copyLink","clipboard","writeText","FileStorageList","unsplashLogo","FileStorageSearchbar","filterFiles","FileStorageGrid","FontPreview","MY_ACCESS_KEY","UnsplashGallery","setFiles","downloadUnsplash","results","instagram_username","actionIcon","GetAppOutlinedIcon","FilesStorageProgressbar","ColorLinearProgress","colorPrimary","barColorPrimary","getTime"],"mappings":"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KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QACA,OACA,YACA,UAGR,CACI,GAAM,EACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,OACA,YACA,QACA,KACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,MACA,UACA,OACA,UACA,QACA,MACA,aACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,QACA,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,MACA,OACA,SAGR,CACI,GAAM,GACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,WACA,UACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,iBACA,OACA,eACA,iBAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,eACA,OACA,WACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,OACA,aAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,UACA,cAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,OACA,SACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,WACA,QACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,gBAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,OACA,UACA,YAGR,CACI,GAAM,GACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,eACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,MACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,MACA,MACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,OACA,QACA,OACA,SACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UACA,QACA,SACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,MACA,UACA,OACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,aACA,UACA,OACA,WACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UACA,OACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,cAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,OACA,OACA,WACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,OACA,gBAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,OACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aACA,WAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aACA,UACA,QACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,OACA,aACA,UACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,aACA,UACA,WACA,UACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,aACA,UACA,SACA,WACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,OACA,aACA,UACA,UAGR,CACI,GAAM,GACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,aACA,QACA,OACA,UACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,aACA,UACA,QACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WACA,mBACA,OACA,aACA,UACA,UACA,QACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WACA,mBACA,OACA,aACA,UACA,UACA,QACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,OACA,UACA,MACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,QACA,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,MACA,OACA,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,MACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,MACA,OACA,QACA,OACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,SACA,QACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,MACA,OACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,KACA,YACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,MACA,OACA,MACA,SAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,YAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,YACA,UACA,SACA,KACA,MACA,aACA,QAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,YACA,UACA,OACA,SACA,KACA,MACA,eAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,YACA,UACA,SACA,KACA,MACA,aACA,UAGR,CACI,GAAM,GACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,SACA,QACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,OACA,aACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,MACA,OAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,eACA,MACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,UACA,YAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,aAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SACA,OAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,YACA,aACA,UACA,SACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SACA,cAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,SACA,UACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,UACA,OACA,KACA,MACA,cAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,MAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,cACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,eACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,QACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,eACA,OACA,QAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,MACA,UACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aACA,OACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,MACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,aACA,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,OACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,SACA,OACA,OACA,MACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,6CACR,SAAW,EACX,SAAY,CACR,OACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,6CACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,IACN,KAAQ,6CACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,kCACR,SAAW,EACX,SAAY,CACR,SACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,kCACR,SAAW,EACX,SAAY,CACR,SACA,QAGR,CACI,GAAM,IACN,KAAQ,kCACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,8BACR,SAAW,EACX,SAAY,CACR,MACA,SACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,8BACR,SAAW,EACX,SAAY,CACR,SACA,OACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,MACA,SACA,OACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,MACA,SACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,SACA,OACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,8BACR,SAAW,EACX,SAAY,CACR,MACA,SACA,QAGR,CACI,GAAM,IACN,KAAQ,8BACR,SAAW,EACX,SAAY,CACR,SACA,OACA,QAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,MACA,SACA,OACA,QAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,MACA,SACA,QAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,SACA,OACA,QAGR,CACI,GAAM,IACN,KAAQ,8BACR,SAAW,EACX,SAAY,CACR,MACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,8BACR,SAAW,EACX,SAAY,CACR,SACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,MACA,SACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,MACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,yCACR,SAAW,EACX,SAAY,CACR,SACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,iBACA,cACA,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,iBACA,cACA,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,iBACA,cACA,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,iBACA,cACA,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,iBACA,cACA,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,QACA,OACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,SACA,OACA,QACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,SACA,OACA,QACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SACA,OACA,QACA,QACA,MAEJ,MAAS,CACL,aACA,aACA,aACA,aACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,SACA,OACA,QACA,QACA,MAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,OACA,iBAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,OACA,SACA,OACA,QACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,IACA,WAEJ,MAAS,CACL,aACA,aACA,aACA,aACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,OACA,QAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,OACA,QACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,OACA,QACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,OACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,QAEJ,MAAS,CACL,aACA,aACA,aACA,aACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,MAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,OACA,OACA,QACA,YACA,MAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,OACA,OACA,OACA,QACA,eAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,OACA,SAEJ,MAAS,CACL,aACA,aACA,aACA,aACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,OACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,cAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,OACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,SAEJ,MAAS,CACL,aACA,aACA,aACA,aACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,cACA,UACA,OACA,SACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,MACA,SACA,UACA,OACA,SACA,OACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,OACA,YACA,UACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,YACA,WACA,OACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,YACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,IACN,KAAQ,mBACR,SAAW,EACX,SAAY,CACR,SACA,MACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,OACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,QACA,YACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,UACA,QACA,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,cACA,QACA,OACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,OACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SACA,QACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,SACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,aACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,UACA,UACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,UACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,gBACA,MACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,cACA,WACA,aACA,QAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MACA,QACA,OACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WACA,WACA,SACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,WACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,MACA,QACA,aAIZC,QAAS,CACL,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,KACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,YACA,UACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,SACA,cACA,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,WACA,WACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,MACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,QACA,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,SACA,OACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,OACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,QACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,QACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,QACA,eAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,WACA,QACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,QACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,gBACA,YACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,MACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cACA,UACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,MACA,SACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SACA,MACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,UACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,WACA,SACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,MACA,WACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,MACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,QACA,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,cACA,UACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,SACA,YACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,YACA,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,UACA,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WACA,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,SACA,QACA,MACA,WACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,QACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,SACA,MACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,QACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,QACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,QACA,QACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,OACA,UACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,QACA,QACA,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,WACA,UACA,QACA,MACA,OACA,SACA,YAIZC,OAAQ,CACJ,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,SACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,QACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,YACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,SAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,iBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,WACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,aACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,WAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,YACA,SACA,QACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,SACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SACA,WACA,YACA,WAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,SACA,aAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,WACA,MACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,MACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,OACA,UACA,YACA,MACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,MACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MACA,aACA,UACA,aAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,gBACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,iBACA,gBACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,iBACA,UACA,gBACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,gBACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,gBACA,OACA,aACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QACA,SACA,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,gBACA,SACA,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,aACA,UACA,QACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,UACA,QACA,OACA,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,aACA,QACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UACA,aACA,QACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,UACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,UACA,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,MACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,MACA,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,eACA,KACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,WACA,MACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,WACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,MACA,QACA,SACA,YACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,iBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,OACA,SAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SACA,WACA,MACA,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,OACA,YAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,YACA,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,WACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,aACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,WACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,MACA,UACA,UACA,UACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,SAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,OACA,UAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,cAGR,CACI,GAAM,IACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,KACA,QACA,QACA,eACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,QACA,KACA,QACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,eACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,OACA,KACA,QACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,eACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,OACA,KACA,QACA,SACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,eACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,OACA,KACA,QACA,SACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,OACA,iBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,OACA,iBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,eACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,eACA,UAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,QACA,iBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,QACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,OACA,iBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,IACA,OACA,QACA,OACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,KACA,QACA,QACA,eACA,QAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,QACA,KACA,QACA,MACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,KACA,QACA,QACA,SACA,iBAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,QACA,KACA,QACA,SACA,WAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,QACA,SACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QACA,YAGR,CACI,GAAM,IACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,OACA,QACA,MACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,OACA,OACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,QACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,UACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UACA,WACA,QACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,UACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,OACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,QACA,UACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,WACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,OACA,WACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,OACA,OACA,WACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,MACA,WACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,WACA,cACA,YACA,UACA,QAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,YACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,OACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,OACA,aAIZC,WAAY,CACR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,gBACA,YACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,YACA,gBACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,gBACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,gBACA,YACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,gBACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UACA,cACA,kBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,gBACA,QACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,cACA,WACA,kBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,cACA,gBACA,WACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,cACA,WACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,OACA,gBACA,WACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,cACA,gBACA,OACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,cACA,QACA,gBACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,WACA,gBACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,cACA,gBACA,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cACA,WACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,gBACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YACA,gBACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,SACA,OACA,WACA,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,OACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,MACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,OACA,SACA,iBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SACA,OACA,UACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,eACA,YACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QAEJ,MAAS,CACL,aACA,aACA,aACA,aACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YACA,OACA,WAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YACA,OACA,UACA,YAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,cAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SACA,YACA,SAEJ,MAAS,CACL,cACA,cACA,cACA,cACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,WACA,OACA,gBACA,MACA,OACA,MACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,gBACA,OACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,WACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,gBACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,UACA,WACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,OACA,QACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,gBACA,OACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,gBACA,SACA,OACA,WACA,aAIZC,QAAS,CACL,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,SACA,UACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,gBACA,OACA,OACA,UACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,cACA,mBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,gBACA,OACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,OACA,KACA,MACA,aACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,QACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,aACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,UACA,MACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,gBACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,aACA,QACA,MACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,SACA,aACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,aACA,WACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,aACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,gBACA,aACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,gBACA,SACA,QACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,OACA,gBACA,SACA,QACA,UACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,QACA,WACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,KACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,SACA,WACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,gBACA,WACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,KACA,WACA,OACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,KACA,WACA,OACA,MACA,gBACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,SACA,gBACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,gBACA,OACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,gBACA,OACA,QACA,YACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UACA,gBACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,aACA,KACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,gBACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,gBACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,MACA,QACA,kBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,aACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,aACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,gBACA,OACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,WACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,aACA,QACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,UACA,QACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,YACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,YACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,OACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,SACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,WACA,QACA,OACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,WACA,SACA,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,WACA,OACA,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,WACA,QACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,OACA,SACA,MACA,QACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,WACA,QACA,SACA,SACA,QACA,OACA,QACA,SACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,WACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,SACA,QACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,SACA,QACA,WACA,WACA,SACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,gBACA,OACA,SACA,QACA,WACA,SACA,OACA,WACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,gBACA,SACA,OACA,SACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,gBACA,QACA,SACA,OACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,gBACA,UACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,gBACA,OACA,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,gBACA,OACA,UACA,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,OACA,UACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,UACA,OACA,UACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,UACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,WACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,gBACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,aACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,SACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,OACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,kBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,MACA,MACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,MACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,OACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,UACA,SACA,WACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,QACA,MACA,cACA,OACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,MACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,YACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,UACA,QACA,SACA,OACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WACA,SACA,OACA,OACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,UACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,aACA,UACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WACA,aAIZC,QAAS,CACL,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,YACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,MACA,WACA,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,KACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,WACA,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,WACA,WACA,QACA,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,eACA,SACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,WACA,aACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,YACA,KACA,MACA,aACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,KACA,MACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,OACA,YACA,KACA,MACA,aACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,KACA,MACA,aACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,SACA,KACA,MACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,KACA,MACA,UACA,aACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,KACA,MACA,aACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,gBACA,YACA,SACA,KACA,MACA,QACA,aACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,kBACA,WACA,YACA,KACA,MACA,aACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,gBAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,WACA,YACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,YACA,gBACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,WACA,YACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,YACA,gBACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,WACA,YACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,YACA,gBACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,WACA,YACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,YACA,gBACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,gBACA,QACA,mBACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,OACA,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MACA,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,KACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,MACA,SACA,WACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,SACA,WACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,MACA,SACA,OACA,QAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,SACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,cACA,cACA,UACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,iBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,UACA,QACA,WACA,OACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,SACA,OACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,MAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,MACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,iBACA,WACA,MAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,OACA,iBACA,WACA,MAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,cACA,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,cACA,cACA,OACA,cACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,cACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,WACA,cACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,cACA,OACA,WACA,gBAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,cACA,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,cACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,KACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,MACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,KACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,SACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,UACA,QACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,WACA,WACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,cACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,WACA,SACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,OACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,YACA,UACA,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,YACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,OACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,SACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,aACA,aACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,QACA,OACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,OACA,UACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,iBACA,iBACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,QAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,SACA,OACA,QAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,QACA,SACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,MACA,SACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,SACA,SACA,gBACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aACA,MACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,eAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,MACA,OACA,gBACA,SACA,QACA,SACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,gBACA,SACA,OACA,QACA,YACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,gBACA,SACA,MACA,QACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,SACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,OACA,UACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,QACA,UACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QACA,UACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,MACA,WACA,QACA,QACA,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,IACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,IACA,gBAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,KACA,aAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,MAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,MAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,OAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,iBACA,kBACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,UACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,UACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,UACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,YACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,QACA,UACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,YACA,UAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,YACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,YACA,WACA,WAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,cAGR,CACI,GAAM,KACN,KAAQ,OACR,SAAW,EACX,SAAY,CACR,SACA,cAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,SACA,YACA,QAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SACA,eAIZC,MAAO,CACH,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,YACA,YACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,WACA,cACA,QACA,UACA,OACA,aAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,QACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,YACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,OACA,MACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,cACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,aACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,YACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,YACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,aACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,aACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,eACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,aACA,gBACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,aACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,YACA,YACA,OACA,cACA,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,OACA,SACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,iBACA,+BACA,MACA,OACA,WACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,2BACA,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,cACA,QACA,iBACA,oBACA,OACA,WACA,0BAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,cACA,iBACA,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,aACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,aACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,OACA,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,UACA,aACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,YACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,iBACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,eACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,qBACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,OACA,mBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,iBACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,YACA,OACA,SACA,QACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,UACA,WACA,UACA,OACA,gBACA,UACA,mBACA,WACA,KACA,aACA,SACA,iBACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,oBACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UACA,SACA,QACA,gBACA,mBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,QACA,SACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SACA,OACA,eACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,WACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,QACA,QACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,kBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,OACA,QACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,UACA,QACA,qBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,MACA,kBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,MACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,MACA,qBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,iBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,iBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,QACA,cACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WACA,cACA,WACA,mBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,cACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,qBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,SACA,OACA,SACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,YACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,eAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aACA,OACA,gBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,iBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,UAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,SACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,QACA,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,aAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,WAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,OACA,SACA,iBACA,SACA,gBACA,KACA,QAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,OACA,oBACA,SACA,kBAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EAC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","file":"static/js/main.b79cc706.chunk.js","sourcesContent":["import { handleResponse } from \"../../helpers/handleresponse\";\r\nimport { authHeader } from \"../../helpers/authHeader\";\r\n\r\nexport const eventLabelService = {\r\n getGroup,\r\n create\r\n\r\n}\r\n\r\nasync function create(eventId, name, groupName, languageCode) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify({ eventId, name, groupName, languageCode: languageCode })\r\n };\r\n\r\n return fetch(`./api/eventLabel`, requestOptions)\r\n .then(handleResponse)\r\n .then(label => {\r\n return label;\r\n });\r\n}\r\nasync function getGroup(eventId, groupName, langCode) {\r\n if(eventId && groupName && langCode){\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n return fetch(`./api/eventLabel/getgroup/${eventId}?groupName=${groupName}&languageCode=${langCode}`, requestOptions)\r\n .then(handleResponse)\r\n .then(group => {\r\n return group;\r\n });\r\n }\r\n}\r\n\r\n","import { eventConstants } from \"../../../constants/event/event.constants\";\r\nimport { alertActions } from \"../alert.action\";\r\nimport { eventLabelsConstants } from \"../../../constants/event/eventLabel.constants\";\r\nimport { eventLabelService } from \"../../../services/core/eventLabelService\";\r\n\r\nexport const eventLabelAction = {\r\n create,\r\n getGroup\r\n};\r\n\r\nfunction create(eventId, name, groupName, languageCode) {\r\n return dispatch => {\r\n dispatch(request(groupName));\r\n dispatch(alertActions.clear());\r\n eventLabelService.create(eventId, name, groupName, languageCode).then(\r\n label => {\r\n dispatch(success(label, groupName));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request(groupName) {\r\n return { type: eventLabelsConstants.CREATE_EVENTLABEL_REQUEST, groupName };\r\n }\r\n function success(label, groupName) {\r\n return { type: eventLabelsConstants.CREATE_EVENTLABEL_SUCCESS, label, groupName };\r\n }\r\n function failure(error) {\r\n return { type: eventLabelsConstants.CREATE_EVENTLABEL_FAILURE, error };\r\n }\r\n}\r\nfunction getGroup(eventId, groupName, languageCode) {\r\n return dispatch => {\r\n dispatch(request({groupName}));\r\n dispatch(alertActions.clear());\r\n eventLabelService.getGroup(eventId, groupName, languageCode).then(\r\n group => {\r\n dispatch(success(group, groupName));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request(groupName) {\r\n return { type: eventLabelsConstants.CREATE_EVENTLABEL_REQUEST , groupName};\r\n }\r\n function success(group, groupName) {\r\n return { type: eventLabelsConstants.GET_GROUP_EVENTLABEL_SUCCESS, group, groupName };\r\n }\r\n function failure(error) {\r\n return { type: eventLabelsConstants.GET_GROUP_EVENTLABEL_SUCCESS, error };\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { eventLabelAction } from '../../store/actions/core/eventLabel.action';\r\nimport { store } from '../../store/configureStore'\r\n\r\n//state\r\n\r\nlet labelSettings = {\r\n eventId: null,\r\n langCode: null\r\n}\r\nconst creationList = {};\r\n\r\nexport function init(eventId, groupName, langCode) {\r\n labelSettings.eventId = eventId;\r\n labelSettings.langCode = langCode;\r\n\r\n store.dispatch(eventLabelAction.getGroup(eventId, groupName.toUpperCase(), langCode))\r\n}\r\n\r\nfunction create(name, groupName) {\r\n if (!creationList[groupName] || !creationList[groupName].includes(name)) {\r\n if (!creationList[groupName]) {\r\n creationList[groupName] = [];\r\n }\r\n creationList[groupName].push(name);\r\n }\r\n const { langCode, eventId } = labelSettings;\r\n store.dispatch(eventLabelAction.create(eventId, name, groupName.toUpperCase(), langCode))\r\n}\r\n\r\nexport function renderText(name, groupName) {\r\n if (!name || !groupName) return;\r\n let n = name.toUpperCase();\r\n let g = groupName.toUpperCase();\r\n const groups = store.getState().eventLabel.groups;\r\n let group = groups[g];\r\n\r\n if (!group) {\r\n return `*${name}*`;\r\n }\r\n else if (!Array.isArray(group) && group.loading) {\r\n return `*${name}*`;\r\n }\r\n else if (!group.find(g => g.name == n)) {\r\n create(name, groupName);\r\n return `*${name}*`;\r\n }\r\n else {\r\n return group.find(g => g.name == n).value;\r\n }\r\n}\r\n\r\nclass EventLabel2 extends React.Component {\r\n getFromGroup = () => {\r\n const { groups, name, groupName } = this.props;\r\n if (!name || !groupName) return;\r\n let n = name.toUpperCase();\r\n let g = groupName.toUpperCase();\r\n let group = groups[g];\r\n\r\n if (!group) {\r\n return `*${name}*`;\r\n }\r\n else if (!Array.isArray(group) && group.loading) {\r\n return `*${name}*`;\r\n }\r\n else if (!group.find(g => g.name == n)) {\r\n create(name, groupName);\r\n return `*${name}*`;\r\n }\r\n else {\r\n return group.find(g => g.name == n).value;\r\n }\r\n }\r\n render() {\r\n let text = this.getFromGroup();\r\n return {text}\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n groups: state.eventLabel.groups,\r\n loading: state.eventLabel.loading,\r\n error: state.eventLabel.error\r\n\r\n };\r\n}\r\nexport default connect(mapStateToProps)(EventLabel2);","import { handleResponse } from \"../../helpers/handleresponse\";\r\nimport { authHeader } from \"../../helpers/authHeader\";\r\nimport axios from \"axios\";\r\nimport { checkForUpdates } from \"../../meetingEditor/helpers/meetingEditor.helper\";\r\nimport { defaultModuleSettings } from \"../../meetingEditor/models/defaultModuleSettings\";\r\n\r\nexport const meetingService = {\r\n getUserIp,\r\n getLayouts,\r\n getEventId,\r\n getModules,\r\n getActiveLayout,\r\n getPermissions,\r\n};\r\n\r\nasync function getUserIp() {\r\n return axios\r\n .get(\"./api/meeting/getUserIp\")\r\n .then(({ data }) => {\r\n return data;\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n return \"\";\r\n });\r\n}\r\nasync function getModules(eventId) {\r\n return axios\r\n .get(`./api/meeting/modules/${eventId}`)\r\n .then(({ data }) => {\r\n return data.map((r) => {\r\n let m = r;\r\n if (r.settings.length > 0 && r.settings != \" \") {\r\n m.settings = JSON.parse(m.settings);\r\n m.settings = checkForUpdates(m.settings, defaultModuleSettings(m.moduleType));\r\n }\r\n return m;\r\n });\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n}\r\nasync function getPermissions(eventId) {\r\n return axios\r\n .get(`./api/meeting/permissions/${eventId}`)\r\n .then(({ data }) => {\r\n return data\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n}\r\nasync function getActiveLayout(eventId) {\r\n return axios\r\n .get(`./api/meeting/activelayout/${eventId}`)\r\n .then(({ data }) => {\r\n return data;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n}\r\nasync function getLayouts(eventId) {\r\n return axios\r\n .get(`./api/meeting/layouts/${eventId}`)\r\n .then(({ data }) => {\r\n return data;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n}\r\n\r\nasync function getEventId(eventCode) {\r\n return axios\r\n .get(`./api/event/getId/${eventCode}`)\r\n .then((res) => {\r\n if ((res.status = 200)) {\r\n return { eventId: res.data.id, eventName: res.data.name, parentEventId: res.data.parentEventId };\r\n }\r\n })\r\n .catch((err) => {\r\n if (!err.response || (err.response && err.response.data.message.toLowerCase() === \"noevent\")) {\r\n return {\r\n notAuthorized: true,\r\n connected: false,\r\n connecting: false,\r\n };\r\n }\r\n console.error(err);\r\n });\r\n}\r\n","import { alertConstants } from \"../../constants/alert.constants\";\r\n\r\nconst defaultState = {\r\n show: false,\r\n title: '',\r\n type: '',\r\n message: ''\r\n}\r\n\r\nexport function alert(state = defaultState, action) {\r\n switch (action.type) {\r\n case alertConstants.SUCCESS:\r\n return {\r\n type: alertConstants.SUCCESS,\r\n title: action.title,\r\n message: action.message,\r\n show: true\r\n };\r\n case alertConstants.INFO:\r\n return {\r\n type: alertConstants.INFO,\r\n title: action.title,\r\n message: action.message,\r\n show: true\r\n };\r\n case alertConstants.ERROR:\r\n return {\r\n type: alertConstants.ERROR,\r\n title: action.title,\r\n message: action.message,\r\n show: true\r\n };\r\n case alertConstants.WARNING:\r\n return {\r\n type: alertConstants.WARNING,\r\n title: action.title,\r\n message: action.message,\r\n show: true\r\n };\r\n case alertConstants.CLEAR:\r\n return defaultState\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { userConstants } from \"../../../constants/user.constants\";\r\n\r\nexport function account(state = {}, action) {\r\n switch (action.type) {\r\n case userConstants.GET_ACCOUNT_DETAILS_REQUEST:\r\n return {\r\n loading: true\r\n };\r\n case userConstants.GET_ACCOUNT_DETAILS_SUCCESS:\r\n return {...state,\r\n loading:false, \r\n user: action.user\r\n };\r\n case userConstants.GET_ACCOUNT_DETAILS_FAILURE:\r\n return {\r\n ...state,\r\n loading:false, \r\n error: action.error\r\n };\r\n case userConstants.UPDATE_REQUEST:\r\n return {...state,\r\n loading: true,\r\n saved:false,\r\n user: action.user\r\n };\r\n case userConstants.UPDATE_SUCCESS:\r\n return {...state,\r\n loading: false,\r\n saved:true,\r\n };\r\n case userConstants.UPDATE_FAILURE:\r\n return {...state,\r\n loading: false,\r\n saved:false,\r\n error: action.error\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n}\r\n","import { userConstants } from \"../../constants/user.constants\";\r\nimport { lssetItem, lsgetItem } from \"../../helpers/localStorageHelper\";\r\n\r\nlet user = lsgetItem('user');/* JSON.parse(localStorage.getItem(\"user\")); */\r\nconst initialState = user ? { loggedIn: true, user } : {};\r\n\r\nexport function authentication(state = initialState, action) {\r\n switch (action.type) {\r\n case userConstants.LOGIN_REQUEST:\r\n return {\r\n loggingIn: true,\r\n user: action.user\r\n };\r\n case userConstants.LOGIN_SUCCESS:\r\n return {\r\n loggedIn: true,\r\n user: action.user\r\n };\r\n case userConstants.LOGIN_FAILURE:\r\n return {\r\n error: action.error\r\n };\r\n case userConstants.LOGOUT:\r\n return {};\r\n case userConstants.RESETPASSWORD_REQUEST:\r\n return { ...state };\r\n case userConstants.RESETPASSWORD_SUCCESS:\r\n return { ...state };\r\n case userConstants.RESETPASSWORD_FAILURE:\r\n return { ...state, user: action.user };\r\n case userConstants.SENDRESETPASSWORDTOKEN_REQUEST:\r\n return { ...state };\r\n case userConstants.SENDRESETPASSWORDTOKEN_SUCCESS:\r\n return { ...state };\r\n case userConstants.SENDRESETPASSWORDTOKEN_FAILURE:\r\n return { ...state, error: action.error };\r\n case userConstants.TOGGLE_ADMIN_SUCCESS:\r\n return { ...state, loggedIn: true, user: action.user };\r\n case userConstants.UPDATE_SUCCESS:\r\n let user = lsgetItem(\"user\");\r\n\r\n let newUser = Object.assign({}, user, action.userToken);\r\n newUser.oid = user.oid;\r\n lssetItem(newUser, 'user');\r\n /* localStorage.setItem(\"user\", JSON.stringify(newUser)); */\r\n return { ...state, user: newUser };\r\n\r\n case userConstants.SET_DEFAULT_EVENT_SUCCESS:\r\n return { ...state, user: lsgetItem('user') };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { cmsConstants } from \"../../../constants/cms/cms.constants\";\r\n\r\nconst initialState = {\r\n editMode: true,\r\n containerToUpdate: null,\r\n containerAdded: null,\r\n fonts: [],\r\n showMergeAlert: false,\r\n mergeDescription: [],\r\n mergeSource: '',\r\n isSaving: false,\r\n inheritInfo: false,\r\n inheritageAffected: false,\r\n deselectionBlocked: false\r\n};\r\n\r\nexport function cms(state = initialState, action) {\r\n switch (action.type) {\r\n case cmsConstants.LOAD_CLIENT_FONTS:\r\n return {\r\n ...state,\r\n fonts: action.fonts\r\n };\r\n case cmsConstants.REMOVE_CLIENT_FONT:\r\n const newFonts = Array.from(state.fonts);\r\n const index = state.fonts.indexOf(newFonts.find(f => { return f.name === action.font.name }));\r\n newFonts.splice(index, 1);\r\n return {\r\n ...state,\r\n fonts: newFonts\r\n };\r\n case cmsConstants.ALERT_NEW_MODIFICATIONS:\r\n\r\n return {\r\n ...state,\r\n mergeSource: !action.isModified ? [] : [...state.mergeSource, action.source],\r\n showMergeAlert: action.isModified,\r\n mergeCallback: action.isModified ? action.callback : null\r\n }\r\n case cmsConstants.BLOCK_DESELECT:\r\n return {\r\n ...state,\r\n deselectionBlocked: action.isBlocked\r\n };\r\n case cmsConstants.GLOBAL_SAVING_LOADER:\r\n return {\r\n ...state,\r\n isSaving: action.isLoading\r\n };\r\n case cmsConstants.INHERITAGE_AFFECTED:\r\n return {\r\n ...state,\r\n inheritageAffected: action.isAffected\r\n };\r\n case cmsConstants.TOGGLE_INHERITAGE_INFO:\r\n return {\r\n ...state,\r\n inheritInfo: action.on\r\n };\r\n case cmsConstants.ADD_CLIENT_FONT:\r\n return {\r\n ...state,\r\n fonts: [...state.fonts, action.font]\r\n };\r\n case cmsConstants.SET_SOURCE_LOCATION:\r\n return {\r\n ...state,\r\n sourceLocation: action.sourceLoc,\r\n sourceEnviroment: action.env\r\n };\r\n case cmsConstants.SET_ENVIROMENT:\r\n return {\r\n ...state,\r\n enviroment: action.env,\r\n editMode: action.editMode,\r\n eventId: action.eventId\r\n };\r\n case cmsConstants.CONTAINER_TO_UPDATE:\r\n return {\r\n ...state,\r\n containerToUpdate: action.container\r\n };\r\n case cmsConstants.CONTAINER_UPDATED:\r\n return {\r\n ...state,\r\n containerToUpdate: null\r\n };\r\n case cmsConstants.CONTAINER_ADDED:\r\n return {\r\n ...state,\r\n containerAdded: action.container\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { templateConstants } from \"../../../../constants/cms/template/template.constants\";\r\nimport { arrayHelper } from \"../../../../helpers/arrayHelper\";\r\nimport { deepClone } from \"../../../../helpers/objectHelper\";\r\nimport { templateHelper } from \"../../../../cms/areas/template/helpers/templateHelper\";\r\n\r\nconst initialState = {\r\n selectedElement: null,\r\n selectedContainer: null,\r\n isSavable: false,\r\n history: [],\r\n loaded: false,\r\n currentVersion: {},\r\n isMenuModalOpen: false,\r\n /* template: undefined, */\r\n templates: [],\r\n usedColors: [],\r\n previewDevice: templateConstants.DESKTOP\r\n};\r\n\r\nexport function template(state = initialState, action) {\r\n switch (action.type) {\r\n case templateConstants.UNDO_CHANGE:\r\n /* const indexOfCurV = state.history.find((v, i) => {\r\n return v.timeStamp === state.currentVersion.timeStamp\r\n })\r\n const indexOfPrevV = state.history.indexOf(indexOfCurV, - 1) */\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case templateConstants.REDO_CHANGE:\r\n return {\r\n ...state,\r\n templates: [...state.templates, action.template],\r\n loading: false\r\n };\r\n case templateConstants.TOGGLE_PREVIEW_MODE:\r\n return {\r\n ...state,\r\n previewDevice: action.device\r\n };\r\n case templateConstants.CREATE_TEMPLATE_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case templateConstants.CREATE_TEMPLATE_SUCCESS:\r\n return {\r\n ...state,\r\n templates: [...state.templates, action.template],\r\n loading: false\r\n };\r\n case templateConstants.CREATE_TEMPLATE_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n\r\n case templateConstants.GET_DEFAULT_TEMPLATE_BY_EVENT_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case templateConstants.GET_DEFAULT_TEMPLATE_BY_EVENT_SUCCESS:\r\n return {\r\n ...state,\r\n template: action.template,\r\n loaded: true,\r\n isSavable: false,\r\n currentVersion: { ...action.template, timeStamp: Date.now() },\r\n loading: false\r\n };\r\n case templateConstants.GET_DEFAULT_TEMPLATE_BY_EVENT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n case templateConstants.GET_TEMPLATE_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case templateConstants.GET_TEMPLATE_SUCCESS:\r\n const template = deepClone(action.template);\r\n template.content.header.content.map(h => {\r\n h.parentName = \"HEADER\";\r\n });\r\n template.content.footer.content.map(h => {\r\n h.parentName = \"FOOTER\";\r\n });\r\n const usedColors = templateHelper.getTemplatesColors(template)\r\n return {\r\n ...state,\r\n menu: action.menu,\r\n isSavable: false,\r\n template: template,\r\n newStyle: action.template.css,\r\n usedColors,\r\n /* currentVersion: action.template, */\r\n loading: false\r\n };\r\n case templateConstants.TOGGLE_MENU_MODAL:\r\n return {\r\n ...state,\r\n isMenuModalOpen: !state.isMenuModalOpen\r\n };\r\n case templateConstants.GET_TEMPLATE_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n case templateConstants.GET_TEMPLATE_BY_EVENT_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case templateConstants.GET_TEMPLATE_BY_EVENT_SUCCESS:\r\n return {\r\n ...state,\r\n isSavable: false,\r\n templates: action.templates,\r\n currentVersion: { ...action.template, timeStamp: Date.now() },\r\n loading: false\r\n };\r\n case templateConstants.GET_TEMPLATE_BY_EVENT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n case templateConstants.DELETE_TEMPLATE_ELEMENT_SUCCESS:\r\n const updatedTemplate = deepClone(state.template);\r\n let source = null;\r\n let container = null;\r\n let elementToRemove = null;\r\n\r\n if (action.source === undefined || !action.source) {\r\n if (\r\n state.template.content.header.content.find(el => {\r\n return el.contentId === action.element.contentId;\r\n })\r\n ) {\r\n container = \"HEADER\";\r\n elementToRemove = state.template.content.header.content.find(el => {\r\n return el.contentId === action.element.contentId;\r\n });\r\n source = [\r\n ...state.template.content.header.content.sort((a, b) => {\r\n let x = a.sortOrder;\r\n let y = b.sortOrder;\r\n return y < x ? 1 : y > x ? -1 : 0;\r\n })\r\n ];\r\n }\r\n if (\r\n state.template.content.footer.content.find(el => {\r\n return el.contentId === action.element.contentId;\r\n })\r\n ) {\r\n container = \"FOOTER\";\r\n elementToRemove = state.template.content.footer.content.find(el => {\r\n return el.contentId === action.element.contentId;\r\n });\r\n source = [\r\n ...state.template.content.footer.content.sort((a, b) => {\r\n let x = a.sortOrder;\r\n let y = b.sortOrder;\r\n return y < x ? 1 : y > x ? -1 : 0;\r\n })\r\n ];\r\n }\r\n }\r\n if (action.source === \"HEADER\") {\r\n container = \"HEADER\";\r\n elementToRemove = action.element;\r\n source = [\r\n ...state.template.content.header.content.sort((a, b) => {\r\n let x = a.sortOrder;\r\n let y = b.sortOrder;\r\n return y < x ? 1 : y > x ? -1 : 0;\r\n })\r\n ];\r\n }\r\n if (action.source === \"FOOTER\") {\r\n container = \"FOOTER\";\r\n elementToRemove = action.element;\r\n source = [\r\n ...state.template.content.footer.content.sort((a, b) => {\r\n let x = a.sortOrder;\r\n let y = b.sortOrder;\r\n return y < x ? 1 : y > x ? -1 : 0;\r\n })\r\n ];\r\n }\r\n\r\n var indexOfRemovedEl = source.indexOf(elementToRemove);\r\n if (indexOfRemovedEl > -1) {\r\n source.splice(indexOfRemovedEl, 1);\r\n for (let index = indexOfRemovedEl; index < source.length; index++) {\r\n source[index].sortOrder = index + 1;\r\n }\r\n }\r\n\r\n if (container === \"HEADER\") {\r\n updatedTemplate.content.header.content = source;\r\n return {\r\n ...state,\r\n template: updatedTemplate,\r\n selectedElement: null,\r\n isSavable: true\r\n };\r\n }\r\n if (container === \"FOOTER\") {\r\n updatedTemplate.content.footer.content = source;\r\n return {\r\n ...state,\r\n template: updatedTemplate,\r\n selectedElement: null,\r\n isSavable: true\r\n };\r\n }\r\n case templateConstants.DESELECT_SUCCESS:\r\n return {\r\n ...state,\r\n selectedElement: null,\r\n selectedContainer: null\r\n };\r\n case templateConstants.SELECT_TEMPLATE_ELEMENT:\r\n source = action.element.parentName === \"HEADER\" ? \"header\" : \"footer\";\r\n \r\n\r\n \r\n const parentChild = state.template.content[source].content.find(el => {\r\n return el.id === action.element.parentId;\r\n });\r\n\r\n if (parentChild && state.selectedContainer) {\r\n if (parentChild.parentId === state.selectedContainer.id) {\r\n return {\r\n ...state,\r\n selectedElement: action.element\r\n };\r\n }\r\n } else {\r\n return {\r\n ...state,\r\n selectedElement: action.element,\r\n selectedContainer:\r\n state.selectedContainer &&\r\n action.element.parentId !== state.selectedContainer.Id\r\n ? null\r\n : state.selectedContainer\r\n };\r\n }\r\n\r\n \r\n return {\r\n ...state,\r\n selectedElement: action.element,\r\n selectedContainer:\r\n state.selectedContainer &&\r\n action.element.parentId !== state.selectedContainer.Id\r\n ? null\r\n : state.selectedContainer\r\n };\r\n case templateConstants.SOFT_UPDATE_TEMPLATE:\r\n let newSelectedContainer = null;\r\n if (state.selectedContainer) {\r\n let source =\r\n state.selectedContainer.parentName === \"HEADER\" ? \"header\" : \"footer\";\r\n newSelectedContainer = deepClone(\r\n action.template.content[source].content.find(c => {\r\n return c.contentId === state.selectedContainer.contentId;\r\n })\r\n );\r\n }\r\n let newSelectedElement = null;\r\n if (state.selectedElement) {\r\n let source =\r\n state.selectedElement.parentName === \"HEADER\" ? \"header\" : \"footer\";\r\n newSelectedElement = deepClone(\r\n action.template.content[source].content.find(c => {\r\n return c.contentId === state.selectedElement.contentId;\r\n })\r\n );\r\n }\r\n return {\r\n ...state,\r\n template: action.template,\r\n history: [\r\n ...state.history,\r\n { ...action.template, timeStamp: Date.now() }\r\n ],\r\n isSavable: true,\r\n selectedElement: newSelectedElement,\r\n selectedContainer: newSelectedContainer,\r\n loading: true\r\n };\r\n case templateConstants.SET_TEMPLATE_FROM_FORM_REQUEST:\r\n return {\r\n ...state,\r\n setting: true,\r\n template: action.template\r\n };\r\n case templateConstants.SET_TEMPLATE_FROM_FORM:\r\n return {\r\n ...state,\r\n setting: false,\r\n template: action.template\r\n };\r\n case templateConstants.UPDATE_TEMPLATE_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case templateConstants.UPDATE_TEMPLATE_SUCCESS:\r\n return {\r\n ...state,\r\n template: action.template,\r\n newStyle: action.template.css,\r\n updated: action.template.updated,\r\n isSavable: false\r\n };\r\n case templateConstants.UPDATE_TEMPLATE_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const languageConstants = {\r\n GETALL_CODES_REQUEST: 'GETALL_CODES_REQUEST',\r\n GETALL_CODES_SUCCESS: 'GETALL_CODES_SUCCESS',\r\n GETALL_CODES_FAILURE: 'GETALL_CODES_FAILURE',\r\n\r\n GETALL_CODES_BY_EVENT_REQUEST: 'GETALL_CODES_BY_EVENT_REQUEST',\r\n GETALL_CODES_BY_EVENT_SUCCESS: 'GETALL_CODES_BY_EVENT_SUCCESS',\r\n GETALL_CODES_BY_EVENT_FAILURE: 'GETALL_CODES_BY_EVENT_FAILURE',\r\n\r\n\r\n //and so on\r\n};","import { eventLabelsConstants } from \"../../../constants/event/eventLabel.constants\";\r\n\r\nconst defaultState = {\r\n groups: {},\r\n error: false,\r\n loading: false\r\n};\r\n\r\n\r\nexport function eventLabel(state = defaultState, action) {\r\n switch (action.type) {\r\n case eventLabelsConstants.GET_GROUP_EVENTLABEL_REQUEST:\r\n var groups = Object.assign({}, state.groups);\r\n groups[action.groupName] = {};\r\n groups[action.groupName].loading = true;\r\n return {\r\n ...state,\r\n groups,\r\n loading: true\r\n };\r\n case eventLabelsConstants.GET_GROUP_EVENTLABEL_SUCCESS:\r\n var groups = Object.assign({}, state.groups);\r\n groups[action.groupName] = action.group;\r\n return {\r\n ...state,\r\n groups,\r\n loading: false\r\n };\r\n case eventLabelsConstants.GET_GROUP_EVENTLABEL_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: true\r\n };\r\n case eventLabelsConstants.CREATE_EVENTLABEL_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case eventLabelsConstants.CREATE_EVENTLABEL_SUCCESS:\r\n const groupName = action.label.groupName;\r\n var groups = Object.assign({}, state.groups);\r\n groups[action.groupName].push(action.label)\r\n return {\r\n ...state,\r\n groups,\r\n loading: false\r\n };\r\n case eventLabelsConstants.CREATE_EVENTLABEL_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: true\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { combineReducers } from 'redux';\r\n\r\nimport { alert } from './alert.reducer';\r\nimport { user } from './user.reducer';\r\nimport { account } from './account/account.reducer';\r\nimport { authentication } from './authentication.reducer';\r\nimport { cms } from './cms/cms.reducer';\r\nimport { template } from './cms/template/template.reducer';\r\nimport { language } from './system/language/language.reducer';\r\nimport { event } from './event/event.reducer';\r\nimport { systemLabels } from './system/systemLabel/systemLabels.reducer';\r\nimport { globals } from './global.reducer';\r\nimport { question } from './question/question.reducer';\r\nimport { eventLabel } from './event/eventLabel.reducer';\r\n\r\n\r\nexport default combineReducers({\r\n alert,\r\n user,\r\n account,\r\n authentication,\r\n template,\r\n language,\r\n event,\r\n systemLabels,\r\n globals,\r\n account,\r\n cms,\r\n question,\r\n eventLabel\r\n})\r\n","import { userConstants } from \"../../constants/user.constants\";\r\n\r\nexport function user(state = {}, action) {\r\n switch (action.type) {\r\n case userConstants.GETALL_REQUEST:\r\n return {\r\n loading: true\r\n };\r\n case userConstants.GETALL_SUCCESS:\r\n return {\r\n loading: false,\r\n items: action.users\r\n };\r\n case userConstants.GETALL_FAILURE:\r\n return {\r\n loading: false,\r\n error: action.error\r\n };\r\n case userConstants.UPDATE_REQUEST:\r\n return {...state,\r\n loading: true,\r\n saved:false,\r\n user: action.user\r\n };\r\n case userConstants.UPDATE_SUCCESS:\r\n return {...state,\r\n loading: false,\r\n message: action.message\r\n };\r\n case userConstants.UPDATE_FAILURE:\r\n return {...state,\r\n loading: false,\r\n saved:false,\r\n error: action.error\r\n };\r\n \r\n default:\r\n return state;\r\n }\r\n}\r\n","import { languageConstants } from \"../../../../constants/system/language/language.constants\";\r\n\r\nexport function language(state = {}, action) {\r\n switch (action.type) {\r\n case languageConstants.GETALL_CODES_REQUEST:\r\n return {\r\n loading: true\r\n };\r\n case languageConstants.GETALL_CODES_SUCCESS:\r\n return {\r\n loading: false,\r\n codes: action.languageCodes\r\n };\r\n case languageConstants.GETALL_CODES_FAILURE:\r\n return {\r\n error: action.error\r\n };\r\n case languageConstants.GETALL_CODES_BY_EVENT_REQUEST:\r\n return {\r\n loading: true\r\n };\r\n case languageConstants.GETALL_CODES_BY_EVENT_SUCCESS:\r\n return {\r\n loading: false,\r\n eventCodes: action.languageCodes\r\n };\r\n case languageConstants.GETALL_CODES_BY_EVENT_FAILURE:\r\n return {\r\n error: action.error\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { eventConstants } from \"../../../constants/event/event.constants\";\r\n\r\n/* const defaultState = {\r\n selectedEvent: 3,\r\n eventLanguage: \"swe\"\r\n};\r\n */\r\nexport function event(state = {}, action) {\r\n switch (action.type) {\r\n case eventConstants.TOGGLE_EVENT_LANGUAGE:\r\n return {\r\n ...state,\r\n eventLanguage: action.code\r\n };\r\n case eventConstants.GET_EVENT_LIST_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case eventConstants.GET_EVENT_LIST_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n eventList: action.eventList,\r\n eventListTime: Date.now()\r\n };\r\n case eventConstants.GET_EVENT_LIST_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n\r\n case eventConstants.GET_EVENT_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case eventConstants.GET_EVENT_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n event: action.event\r\n };\r\n case eventConstants.GET_EVENT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n case eventConstants.GET_EVENT_SETTINGS_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case eventConstants.GET_EVENT_SETTINGS_SUCCESS:\r\n case eventConstants.UPDATE_EVENT_SETTINGS_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n eventSettings: action.eventSettings\r\n };\r\n case eventConstants.GET_EVENT_SETTINGS_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n\r\n case eventConstants.UPDATE_EVENT_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case eventConstants.UPDATE_EVENT_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n showSaveAlert: true,\r\n event: action.event\r\n };\r\n case eventConstants.UPDATE_EVENT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n\r\n case eventConstants.CREATE_EVENT_REQUEST:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case eventConstants.CREATE_EVENT_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n showSaveAlert: true,\r\n event: action.event\r\n };\r\n case eventConstants.CREATE_EVENT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n error: action.error\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { systemLabelConstants } from \"../../../../constants/system/systemLabels/systemLabels.constants\";\r\n\r\nexport function systemLabels(state = {}, action) {\r\n switch (action.type) {\r\n case systemLabelConstants.CREATE_SYSTEM_LABEL_REQUEST:\r\n case systemLabelConstants.GET_SYSTEM_LABEL_GROUP_REQUEST:\r\n return { ...state, loading: true };\r\n case systemLabelConstants.CREATE_SYSTEM_LABEL_SUCCESS:\r\n case systemLabelConstants.GET_SYSTEM_LABEL_GROUP_SUCCESS:\r\n let newGroups = state.groups ? { ...state.groups } : {};\r\n newGroups[action.groupName] = action.group;\r\n return {\r\n ...state,\r\n loading: false,\r\n groups: newGroups\r\n };\r\n \r\n case systemLabelConstants.CREATE_SYSTEM_LABEL_FAILURE:\r\n case systemLabelConstants.GET_SYSTEM_LABEL_GROUP_FAILURE:\r\n return { ...state, error: action.error };\r\n\r\n case systemLabelConstants.GET_ALL_SYSTEM_LABEL_GROUP_REQUEST:\r\n return { ...state, loading: true };\r\n case systemLabelConstants.GET_ALL_SYSTEM_LABEL_GROUP_SUCCESS:\r\n let groups = {};\r\n for (const key in action.groups) {\r\n if (action.groups.hasOwnProperty(key)) {\r\n var newKey = key[0].toUpperCase() + key.substr(1, key.length - 1);\r\n groups[newKey] = action.groups[key];\r\n }\r\n }\r\n return { ...state, loading: false, groups: groups };\r\n case systemLabelConstants.GET_ALL_SYSTEM_LABEL_GROUP_FAILURE:\r\n return { ...state, loading: false, error: action.error };\r\n\r\n case systemLabelConstants.UPDATE_RANGE_SYSTEM_LABEL_REQUEST:\r\n return { ...state, loading: true };\r\n case systemLabelConstants.UPDATE_RANGE_SYSTEM_LABEL_SUCCESS:\r\n return { ...state, loading: false, saved: true };\r\n case systemLabelConstants.UPDATE_RANGE_SYSTEM_LABEL_FAILURE:\r\n return { ...state, loading: false, error: action.error };\r\n\r\n default:\r\n return state;\r\n }\r\n}","import { globalConstants } from \"../../constants/system/global.constans\";\r\n\r\nexport function globals(\r\n state = {saveAreas:{}, isSaved: true, loadingAreas: {}, isLoading:false, headerHeight: 0, breadcrumbHeight: 0, showMenu:true },\r\n action\r\n) {\r\n switch (action.type) {\r\n case globalConstants.SET_HEADER_HEIGHT:\r\n return { ...state, headerHeight: action.headerHeight };\r\n case globalConstants.SET_BREADCRUMB_HEIGHT:\r\n return { ...state, breadcrumbHeight: action.breadcrumbHeight };\r\n case globalConstants.SET_SAVE_STATUS:\r\n const{saveAreas} = state;\r\n let globalIsSaved = true;\r\n if(action.area)\r\n {\r\n saveAreas[action.area] = action.isSaved;\r\n for (const area in saveAreas) {\r\n if (saveAreas.hasOwnProperty(area)) {\r\n if(!saveAreas[area]){\r\n globalIsSaved= false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n \r\n else if(action.isSaved === true){\r\n for (const area in saveAreas) {\r\n if (saveAreas.hasOwnProperty(area)) {\r\n saveAreas[area] = true;\r\n }\r\n }\r\n globalIsSaved = action.isSaved;\r\n }\r\n else{\r\n saveAreas[\"unspecified\"] = action.isSaved;\r\n for (const area in saveAreas) {\r\n if (saveAreas.hasOwnProperty(area)) {\r\n if(!saveAreas[area]){\r\n globalIsSaved= false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return { ...state, isSaved: globalIsSaved, saveAreas };\r\n\r\n case globalConstants.SET_IS_LOADING:\r\n const{loadingAreas} = state;\r\n let globalIsLoading = false;\r\n if(action.area)\r\n {\r\n loadingAreas[action.area] = action.isLoading;\r\n for (const area in loadingAreas) {\r\n if (loadingAreas.hasOwnProperty(area)) {\r\n if(loadingAreas[area] == true){\r\n globalIsLoading= true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n else if(action.isLoading === false){\r\n for (const area in loadingAreas) {\r\n if (loadingAreas.hasOwnProperty(area)) {\r\n loadingAreas[area] = false;\r\n }\r\n }\r\n globalIsLoading = action.isLoading;\r\n }\r\n else{\r\n loadingAreas[\"unspecified\"] = action.isLoading;\r\n for (const area in loadingAreas) {\r\n if (loadingAreas.hasOwnProperty(area)) {\r\n if(loadingAreas[area] == true){\r\n globalIsLoading= true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return { ...state, isLoading: globalIsLoading, loadingAreas };\r\n\r\n case globalConstants.SHOW_MENU:\r\n return {...state, showMenu:action.show};\r\n \r\n default:\r\n return state;\r\n }\r\n}\r\n","import { questionConstants } from \"../../../constants/question/question.constants\";\r\nimport { deepClone } from \"../../../helpers/objectHelper\";\r\n\r\nexport function question(state = {}, action) {\r\n switch (action.type) {\r\n case questionConstants.GET_QUESTION_BY_EVENT_REQUEST:\r\n return { ...state, loading: true };\r\n case questionConstants.GET_QUESTION_BY_EVENT_SUCCESS:\r\n return { ...state, loading: false, questions: action.questions };\r\n case questionConstants.GET_QUESTION_BY_EVENT_FAILURE:\r\n return { ...state, loading: false, error: action.error };\r\n case questionConstants.DELETE_QUESTIONS_REQUEST:\r\n return { ...state, loading: true };\r\n case questionConstants.DELETE_QUESTIONS_SUCCESS:\r\n return { ...state, loading: false, questions: state.questions.filter(q => q.questionId !== action.questionId) };\r\n case questionConstants.DELETE_QUESTIONS_FAILURE:\r\n return { ...state, loading: false, error: action.error };\r\n case questionConstants.UPDATE_QUESTIONS_REQUEST:\r\n return { ...state, loading: true };\r\n case questionConstants.UPDATE_QUESTIONS_SUCCESS:\r\n return { ...state, loading: false, questions: action.questions };\r\n case questionConstants.GET_QUESTIONS_BY_EVENT_FAILURE:\r\n return { ...state, loading: false, error: action.error };\r\n case questionConstants.UPDATE_QUESTION_REQUEST:\r\n return { ...state, loading: true };\r\n case questionConstants.UPDATE_QUESTION_SUCCESS:\r\n let questions = state.questions.map(q => {\r\n if (q.questionId === action.question.questionId) {\r\n return deepClone(action.question);\r\n }\r\n else {\r\n return deepClone(q);\r\n }\r\n });\r\n\r\n return { ...state, loading: false, questions };\r\n case questionConstants.GET_QUESTION_BY_EVENT_FAILURE:\r\n return { ...state, loading: false, error: action.error };\r\n case questionConstants.CREATE_QUESTION_REQUEST:\r\n return { ...state, loading: true };\r\n case questionConstants.CREATE_QUESTION_SUCCESS:\r\n return { ...state, loading: false, questions: [...state.questions, action.question] };\r\n case questionConstants.CREATE_QUESTION_FAILURE:\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\n/* import { createLogger } from 'redux.l'; */\r\nimport rootReducer from './reducers/root.reducer';\r\n\r\n/* const loggerMiddleware = createLogger(); */\r\n\r\nexport const store = createStore(\r\n /* window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(), */\r\n rootReducer,\r\n applyMiddleware(\r\n thunkMiddleware,\r\n /* loggerMiddleware */\r\n )\r\n);","export function setValueToNestedObject(path, value, source, level = 0) {\r\n if (Array.isArray(source)) {\r\n return;\r\n }\r\n var valueToChange = source;\r\n for (let index = 0; index < path.length - 1; index++) {\r\n valueToChange = valueToChange[path[index]];\r\n }\r\n\r\n const endPath = path[path.length - 1];\r\n if (valueToChange && valueToChange[endPath] != undefined) {\r\n valueToChange[endPath] = value;\r\n }\r\n\r\n /* for (let index = 0; index < path.length; index++) {\r\n if (source.hasOwnProperty(path[index])) {\r\n if (path[index] === path[path.length - 1] && level === path.length - 1) {\r\n source[path[index]] = value;\r\n } else {\r\n level++;\r\n source[path[index]] = setValueToNestedObject(\r\n path,\r\n value,\r\n source[path[index]],\r\n level\r\n );\r\n }\r\n }\r\n } */\r\n return source;\r\n}\r\nexport function getValueFromNestedObject(path, source, value, level = 0) {\r\n if (Array.isArray(source)) {\r\n return;\r\n }\r\n var valueToGet = source;\r\n for (let index = 0; index < path.length - 1; index++) {\r\n valueToGet = valueToGet[path[index]];\r\n }\r\n if (valueToGet && valueToGet[path[path.length - 1]]) {\r\n return valueToGet[path[path.length - 1]];\r\n }\r\n return \"\";\r\n}\r\n/* export function deepClone(source) {\r\n if (Array.isArray(source)) {\r\n return Array.from(source);\r\n }\r\n\r\n let target = Object.assign({}, source);\r\n for (const key in source) {\r\n if (\r\n source.hasOwnProperty(key) &&\r\n source[key] &&\r\n typeof source[key] === \"object\" &&\r\n source[key] !== RegExp &&\r\n !(source[key] instanceof Date) &&\r\n !(source[key] instanceof Error) &&\r\n key !== 'editor'\r\n ) {\r\n target[key] = deepClone(source[key]);\r\n }\r\n }\r\n return target;\r\n} */\r\nexport function getValueFromNestedObjectByParam(\r\n params,\r\n source,\r\n array,\r\n level = 0\r\n) {\r\n if (Array.isArray(source)) {\r\n return;\r\n }\r\n for (const key in source) {\r\n if (isObject(source, key) && !Array.isArray(source[key])) {\r\n if (params.includes(key)) {\r\n array.push(source[key]);\r\n } else {\r\n getValueFromNestedObjectByParam(params, source[key], array, level);\r\n }\r\n } else {\r\n if (params.includes(key)) {\r\n array.push(source[key]);\r\n }\r\n }\r\n }\r\n return array;\r\n}\r\n\r\nexport function checkForUpdatesOneLevel(target, source) {\r\n const sourceObj = Object.assign({}, source);\r\n let targetObj = Object.assign({}, target);\r\n\r\n //* Loops two levels of an object*/\r\n\r\n for (const prop in sourceObj) {\r\n if (!targetObj.hasOwnProperty(`${prop}`)) {\r\n if (sourceObj[prop] !== typeof \"object\") {\r\n targetObj[prop] = sourceObj[prop];\r\n }\r\n\r\n if (targetObj.hasOwnProperty(`${prop}`)) {\r\n }\r\n }\r\n }\r\n return targetObj;\r\n}\r\n\r\n/* \r\nexport function checkForUpdates(target, source) {\r\n const sourceObj = Object.assign({}, source);\r\n let targetObj = Object.assign({}, target)\r\n\r\n\r\n for (const prop in sourceObj) {\r\n if (!targetObj.hasOwnProperty(`${prop}`)) {\r\n targetObj[prop] = { ...sourceObj[prop] };\r\n if (targetObj.hasOwnProperty(`${prop}`)) {\r\n }\r\n }\r\n else {\r\n for (const v in sourceObj[prop]) {\r\n\r\n if (!targetObj[prop].hasOwnProperty(v)) {\r\n targetObj[prop][v] = sourceObj[prop][v];\r\n for (const k in sourceObj[prop][v]) {\r\n targetObj[prop][v][k] = sourceObj[prop][v][k];\r\n }\r\n \r\n }\r\n }\r\n }\r\n }\r\n for (const prop in targetObj) {\r\n if (!sourceObj.hasOwnProperty(`${prop}`)) {\r\n targetObj[prop] = undefined;\r\n\r\n }\r\n else {\r\n for (const v in sourceObj[prop]) {\r\n\r\n if (!sourceObj[prop].hasOwnProperty(v)) {\r\n targetObj[prop][v] = undefined;\r\n }\r\n }\r\n }\r\n }\r\n return targetObj;\r\n} */\r\n\r\nfunction isObject(source, key) {\r\n return (\r\n source.hasOwnProperty(key) &&\r\n typeof source[key] === \"object\" &&\r\n source[key] !== RegExp &&\r\n !(source[key] instanceof Date) &&\r\n !(source[key] instanceof Error)\r\n );\r\n}\r\n\r\nexport function checkForFormUpdates(target, source) {\r\n if (Array.isArray(source)) {\r\n return Array.from(target);\r\n }\r\n const targetObj = Object.assign({}, target);\r\n for (const key in source) {\r\n if (isObject(source, key)) {\r\n if (!targetObj.hasOwnProperty(key)) {\r\n targetObj[key] = deepClone(source[key]);\r\n } else {\r\n targetObj[key] = checkForFormUpdates(targetObj[key], source[key]);\r\n }\r\n } else {\r\n if (!targetObj.hasOwnProperty(key)) {\r\n targetObj[key] = source[key];\r\n }\r\n }\r\n }\r\n return targetObj;\r\n}\r\n\r\nexport function checkForTemplateUpdates(target, source) {\r\n if (Array.isArray(source)) {\r\n /* if(target.length < 1) return Array.from(source);\r\n else return Array.from(target); */\r\n return;\r\n }\r\n const targetObj = Object.assign({}, target);\r\n for (const key in source) {\r\n if (isObject(source, key) && !Array.isArray(source[key])) {\r\n if (!targetObj.hasOwnProperty(key)) {\r\n targetObj[key] = deepClone(source[key]);\r\n } else {\r\n targetObj[key] = checkForTemplateUpdates(targetObj[key], source[key]);\r\n }\r\n } else {\r\n if (!targetObj.hasOwnProperty(key)) {\r\n targetObj[key] = \"unset\";\r\n }\r\n }\r\n }\r\n return targetObj;\r\n}\r\nexport function deepClone(source) {\r\n if (Array.isArray(source)) {\r\n return Array.from(source);\r\n }\r\n\r\n let target = Object.assign({}, source);\r\n for (const key in source) {\r\n if (\r\n source.hasOwnProperty(key) &&\r\n source[key] &&\r\n typeof source[key] === \"object\" &&\r\n source[key] !== RegExp &&\r\n !(source[key] instanceof Date) &&\r\n !(source[key] instanceof Error) &&\r\n key !== \"editor\"\r\n ) {\r\n target[key] = deepClone(source[key]);\r\n }\r\n }\r\n return target;\r\n}\r\n\r\nexport function toCamelCase(input) {\r\n return input[0].toLowerCase() + input.substr(1, input.length);\r\n}\r\n\r\nexport const combineProps = (objArr) => {\r\n let spreadedObj = {};\r\n objArr.map((o) => {\r\n spreadedObj = { ...spreadedObj, ...o };\r\n });\r\n return spreadedObj;\r\n};\r\n","export const eventConstants = {\r\n TOGGLE_EVENT_LANGUAGE: 'TOGGLE_EVENT_LANGUAGE',\r\n\r\n GET_EVENT_LIST_REQUEST: 'GET_EVENT_LIST_REQUEST',\r\n GET_EVENT_LIST_SUCCESS: 'GET_EVENT_LIST_SUCCESS',\r\n GET_EVENT_LIST_FAILURE: 'GET_EVENT_LIST_FAILURE',\r\n \r\n GET_EVENT_REQUEST: 'GET_EVENT_REQUEST',\r\n GET_EVENT_SUCCESS: 'GET_EVENT_SUCCESS',\r\n GET_EVENT_FAILURE: 'GET_EVENT_FAILURE',\r\n\r\n GET_EVENT_SETTINGS_REQUEST: 'GET_EVENT_SETTINGS_REQUEST',\r\n GET_EVENT_SETTINGS_SUCCESS: 'GET_EVENT_SETTINGS_SUCCESS',\r\n GET_EVENT_SETTINGS_FAILURE: 'GET_EVENT_SETTINGS_FAILURE',\r\n\r\n UPDATE_EVENT_REQUEST: 'UPDATE_EVENT_REQUEST',\r\n UPDATE_EVENT_SUCCESS: 'UPDATE_EVENT_SUCCESS',\r\n UPDATE_EVENT_SETTINGS_SUCCESS: 'UPDATE_EVENT_SETTINGS_SUCCESS',\r\n UPDATE_EVENT_FAILURE: 'UPDATE_EVENT_FAILURE',\r\n\r\n CREATE_EVENT_REQUEST: 'CREATE_EVENT_REQUEST',\r\n CREATE_EVENT_SUCCESS: 'CREATE_EVENT_SUCCESS',\r\n CREATE_EVENT_FAILURE: 'CREATE_EVENT_FAILURE',\r\n\r\n DELETE_EVENT_REQUEST: 'DELETE_EVENT_REQUEST',\r\n DELETE_EVENT_SUCCESS: 'DELETE_EVENT_SUCCESS',\r\n DELETE_EVENT_FAILURE: 'DELETE_EVENT_FAILURE',\r\n};","import React, { useMemo, useState, useRef, useEffect, memo } from \"react\";\r\nimport { Snackbar } from \"@material-ui/core\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport { Spinner } from \"reactstrap\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nexport const ConnectionStatus = memo(({ hubConnection, connected, connecting, start, disconnect }) => {\r\n const [isConnected, setConnected] = useState(connected);\r\n const [forceShow, setForceShow] = useState(false);\r\n const prevIsConnected = usePrevious(isConnected);\r\n\r\n useEffect(() => {\r\n setConnected(connected);\r\n }, [connected]);\r\n\r\n const setAlert = () => {\r\n if (!connected) return ;\r\n if (prevIsConnected == false && connected) {\r\n setForceShow(true);\r\n setTimeout(() => setForceShow(false), 3000);\r\n return ;\r\n }\r\n };\r\n\r\n const alert = useMemo(() => {\r\n return setAlert();\r\n }, [connected]);\r\n\r\n if (!hubConnection) return null;\r\n const show = !connected || forceShow || (hubConnection.connectionState == 0 && !connecting);\r\n\r\n return (\r\n
\r\n \r\n {alert}\r\n \r\n
\r\n );\r\n});\r\n\r\nconst NoConnection = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Reconnecting = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Reconnected = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","export const presenterTypeConstants = {\r\n WORDCLOUD: 'WORDCLOUD',\r\n BARCHART: 'BARCHART',\r\n COLUMNCHART: 'COLUMNCHART',\r\n PIECHART: 'PIECHART',\r\n TEXTFLOW: 'TEXTFLOW',\r\n LINECHART: 'LINECHART',\r\n RADARCHART: 'RADARCHART',\r\n POLARAREACHART: 'POLARAREACHART',\r\n DOUGHNUTCHART: 'DOUGHNUTCHART',\r\n RATING_CHART: 'RATING_CHART',\r\n DISPARITYCHART: 'DISPARITYCHART',\r\n\r\n QUIZ: 'QUIZ',\r\n QUIZANSWER: 'QUIZANSWER',\r\n SCOREBOARD: 'SCOREBOARD',\r\n REMOVEDLIST: 'REMOVEDLIST'\r\n\r\n}\r\n\r\n\r\n","module.exports = __webpack_public_path__ + \"static/media/no-result.6c7e4585.svg\";","import React, { useEffect, useState, useRef } from \"react\";\r\nimport { inlineSettings } from \"./tinyconfig\";\r\nimport { Editor } from \"@tinymce/tinymce-react\";\r\nimport LinkManager from \"../LinkManager/LinkManager\";\r\nimport { archiveConstants } from \"../FileStorage/contstants/archive.contstants\";\r\nimport FileStorageWrapper from \"../FileStorage/FileStorageWrapper\";\r\nimport { TinyMCE } from \"tinymce\";\r\nconst getGlobal = function () { return (typeof window !== 'undefined' ? window : global); };\r\nconst setTinymce = function () {\r\n var global = getGlobal();\r\n if(global && !global.tinymce)\r\n global.tinymce = TinyMCE;\r\n};\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nexport const InlineEditor = (props) => {\r\n const [editor, setEditor] = useState({});\r\n const [cycleEditor, setCycleEditor] = useState(false);\r\n const [archiveOpen, setArchiveOpen] = useState(false);\r\n const [linkHelperOpen, setLinkHelperOpen] = useState(false);\r\n const [text, setText] = useState(\"\");\r\n const [focus, setFocus] = useState(false);\r\n const prevText = usePrevious(props.value);\r\n setTinymce();\r\n useEffect(() => {\r\n if (cycleEditor) setCycleEditor(false);\r\n }, [cycleEditor]);\r\n\r\n useEffect(() => {\r\n if (props.value != prevText) {\r\n setText(props.value);\r\n }\r\n }, [props.value]);\r\n\r\n const onInit = (editor) => setEditor(editor);\r\n const handleKeyUp = (e) => {\r\n if (!focus) return;\r\n\r\n const { value, globalFormat, onChange, path, slimFormat } = props;\r\n var content = editor.getContent();\r\n if (content !== value) {\r\n if (globalFormat === true) {\r\n onChange(null, content, path);\r\n } else if (slimFormat === true) {\r\n onChange(content, path);\r\n } else {\r\n onChange(content);\r\n }\r\n }\r\n setText(content);\r\n };\r\n const formatImage = () => {\r\n const content = editor.getContent();\r\n props.onChange(content);\r\n };\r\n const onArchiveUseSelect = (url) => {\r\n var image = new Image();\r\n image.crossOrigin = \"anonymous\"; /* THIS WILL MAKE THE IMAGE CROSS-ORIGIN */\r\n image.src = url;\r\n let content = editor.insertContent(`\"_blank\" `);\r\n content = editor.getContent();\r\n props.onChange(content);\r\n };\r\n const onLinkSelect = (url) => {\r\n let content = editor.insertContent(` `);\r\n content = editor.getContent();\r\n };\r\n const { value, onChange } = props;\r\n return (\r\n <>\r\n

'}\r\n onFocusIn={() => {\r\n setFocus(true);\r\n }}\r\n onFocusOut={() => {\r\n setFocus(false);\r\n }}\r\n onInit={(event, editor) => onInit(editor)}\r\n init={{\r\n ...inlineSettings,\r\n /* content_style: style, */\r\n width: \"100%\",\r\n height: \"100%\",\r\n setup: (editor) => {\r\n editor.ui.registry.addButton(\"archive\", {\r\n icon: \"image\",\r\n image: \"image\",\r\n onAction: () => setArchiveOpen(!archiveOpen),\r\n });\r\n editor.ui.registry.addButton(\"linkHelper\", {\r\n icon: \"link\",\r\n image: \"link\",\r\n onAction: () => setLinkHelperOpen(!linkHelperOpen),\r\n });\r\n },\r\n }}\r\n onEditorChange={(e) => handleKeyUp(e)}\r\n /* onEditorChange={(e) => handleKeyUp(e)} */\r\n />\r\n\r\n {archiveOpen ? (\r\n null}\r\n toggle={() => setArchiveOpen(!archiveOpen)}\r\n isOpen={true}\r\n initialDisplay={archiveConstants.IMAGE}\r\n showLaunchBtn={false}\r\n />\r\n ) : null}\r\n {linkHelperOpen ? : null}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport SignalCellularConnectedNoInternet0BarIcon from \"@material-ui/icons/SignalCellularConnectedNoInternet0Bar\";\r\nimport SettingsEthernetIcon from \"@material-ui/icons/SettingsEthernet\";\r\nimport { Spinner } from \"reactstrap\";\r\nimport DevicesIcon from \"@material-ui/icons/Devices\";\r\nimport EventBusyIcon from \"@material-ui/icons/EventBusy\";\r\nimport \"./LoaderStyle.css\";\r\n\r\nexport class ClientConnectionFallback extends React.Component {\r\n state = {\r\n countdown: 0,\r\n timeToShow: 0,\r\n };\r\n componentDidMount() {}\r\n componentWillUnmount() {\r\n clearTimeout(this.timer);\r\n clearInterval(this.counter);\r\n }\r\n reconnect = () => {\r\n this.setState({ countdown: Date.now() + 30000 });\r\n this.props.tryReconnect();\r\n };\r\n\r\n renderMessage = () => {\r\n return ;\r\n };\r\n render() {\r\n if (this.props.connecting) return ;\r\n return ;\r\n }\r\n}\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\nexport function Loader() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\nexport function SmallLoader() {\r\n return
;\r\n}\r\nexport default function AlertDialogSlide({ reconnect, connecting, forceDisc, breakoutFull, lang }) {\r\n return (\r\n
\r\n \r\n {forceDisc ? (\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n ) : null}\r\n {!forceDisc && !connecting && !breakoutFull ? (\r\n \r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n \r\n {\" \"}\r\n \r\n ) : null}\r\n {breakoutFull && !connecting && !forceDisc ? (\r\n \r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n ) : null}\r\n\r\n \r\n {!connecting && !forceDisc && !breakoutFull ? (\r\n \r\n \r\n \r\n ) : null}\r\n {breakoutFull && !connecting && !forceDisc ? (\r\n \r\n \r\n \r\n ) : null}\r\n {forceDisc ? (\r\n \r\n \r\n \r\n ) : null}\r\n {connecting && !forceDisc ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n
\r\n {!connecting && !breakoutFull ? (\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n );\r\n}\r\n","export const alertConstants = {\r\n SUCCESS: 'ALERT_SUCCESS',\r\n ERROR: 'ALERT_ERROR',\r\n INFO: 'ALERT_INFO',\r\n CLEAR: 'ALERT_CLEAR',\r\n WARNING: 'ALERT_WARNING'\r\n};","import { defaultTemplate } from \"../models/defaultTemplate\";\r\nimport {\r\n getValueFromNestedObject,\r\n getValueFromNestedObjectByParam,\r\n} from \"../../../../helpers/objectHelper\";\r\n\r\nexport const templateHelper = {\r\n checkForUpdates,\r\n handleElementUpdates,\r\n formatToResponsivePath,\r\n getUnit,\r\n getValueFromInput,\r\n getValue,\r\n getValueWithoutUnit,\r\n assignResponsiveStyle,\r\n parseColorToRgba,\r\n getTemplatesColors,\r\n parseRgbaToHex,\r\n convertRgbStringToHex,\r\n backgroundApplier,\r\n getInteractionStyles,\r\n};\r\n\r\nfunction getInteractionStyles(path, template) {\r\n if (!template) return {};\r\n if (path == \"exhibitors\") {\r\n if (template.interaction.exhibitor) {\r\n const obj = template.interaction.exhibitor;\r\n\r\n if (obj) {\r\n const container = obj.frame;\r\n const title = obj.title;\r\n const subtitle = obj.subtitle;\r\n const logo = obj.logo;\r\n\r\n /* \r\n primaryColor: primaryColor != 'unset' ? primaryColor : '#5a60e3', */\r\n\r\n return {\r\n frame: {\r\n background:\r\n container && container.background != \"unset\"\r\n ? container.background\r\n : \"rgba(31, 30, 30, 0.4)\",\r\n borderRadius:\r\n container && container.borderRadius != \"unset\"\r\n ? container.borderRadius\r\n : \"4px\",\r\n padding:\r\n container && container.padding != \"unset\"\r\n ? container.padding\r\n : \"0px\",\r\n },\r\n title: {\r\n color: title && title.color != \"unset\" ? title.color : \"#fff\",\r\n fontSize:\r\n title && title.fontSize != \"unset\"\r\n ? title.fontSize\r\n : template.subtitle.fontSize,\r\n fontWeight:\r\n title && title.fontWeight != \"unset\"\r\n ? title.fontWeight\r\n : template.subtitle.fontWeight,\r\n fontFamily:\r\n title && title.fontFamily != \"unset\"\r\n ? title.fontFamily\r\n : template.subtitle.fontFamily,\r\n },\r\n logo: {\r\n background:\r\n logo && logo.background != \"unset\" ? logo.background : \"#fff\",\r\n },\r\n subtitle: {\r\n color:\r\n subtitle && subtitle.color != \"unset\" ? subtitle.color : \"#fff\",\r\n fontSize:\r\n subtitle && subtitle.fontSize != \"unset\"\r\n ? subtitle.fontSize\r\n : template.text.fontSize,\r\n fontWeight:\r\n subtitle && subtitle.fontWeight != \"unset\"\r\n ? subtitle.fontWeight\r\n : template.text.fontWeight,\r\n fontFamily:\r\n subtitle && subtitle.fontFamily != \"unset\"\r\n ? subtitle.fontFamily\r\n : template.text.fontFamily,\r\n },\r\n };\r\n } else {\r\n return {\r\n frame: {\r\n background: \"rgba(31, 30, 30, 0.4)\",\r\n borderRadius: \"4px\",\r\n padding: \"0px\",\r\n },\r\n logo: { background: \"#fff\" },\r\n title: template.subtitle,\r\n subtitle: template.text,\r\n };\r\n }\r\n } else {\r\n return {\r\n frame: {\r\n background: \"rgba(31, 30, 30, 0.4)\",\r\n borderRadius: \"4px\",\r\n padding: \"0px\",\r\n },\r\n logo: { background: \"#fff\" },\r\n title: template.subtitle,\r\n subtitle: template.text,\r\n };\r\n }\r\n }\r\n if (path == \"connections\") {\r\n if (template.interaction.connections) {\r\n return {\r\n content: {\r\n background: template.interaction.connections.background,\r\n borderRadius: template.interaction.connections.borderRadius,\r\n borderWidth: template.interaction.connections.borderWidth,\r\n borderColor: template.interaction.connections.borderColor,\r\n borderStyle:\r\n template.interaction.connections.borderWidth != \"unset\"\r\n ? \"solid\"\r\n : undefined,\r\n },\r\n text: {\r\n fontSize: template.interaction.connections.fontSize,\r\n fontWeight: template.interaction.connections.fontWeight,\r\n fontFamily:\r\n template.interaction.connections.fontFamily + \" !important\",\r\n color: template.interaction.connections.color,\r\n },\r\n };\r\n } else {\r\n return {\r\n content: {\r\n background: template.content\r\n ? template.content.backgroundColor\r\n : \"#fff\",\r\n },\r\n text: {\r\n ...template.label,\r\n },\r\n };\r\n }\r\n }\r\n return {};\r\n}\r\n\r\nfunction parseColorToRgba(color) {\r\n const { r, g, b, a } = color.rgb;\r\n return `rgba(${r},${g},${b},${a})`;\r\n}\r\n\r\nfunction parseRgbaToHex(color) {\r\n const { r, g, b, a } = color.rgb;\r\n var red = hexCode(r);\r\n var green = hexCode(g);\r\n var blue = hexCode(b);\r\n\r\n return \"#\" + red + green + blue;\r\n}\r\n\r\nfunction convertRgbStringToHex(rgb, param = null) {\r\n if (rgb == \"white\") return \"#ffffff\";\r\n if (rgb == \"black\") return \"#000000\";\r\n\r\n if (!rgb.toString().includes(\"rgb\")) return rgb;\r\n var a = rgb.split(\"(\")[1].split(\")\")[0];\r\n a = a.split(\",\");\r\n let hex = \"#\";\r\n for (let index = 0; index < a.length; index++) {\r\n let x = parseInt(a[index]).toString(16); //Convert to a base16 string\r\n hex += x.length == 1 ? \"0\" + x : x;\r\n }\r\n if (hex.length > 7) hex = hex.substring(0, 7);\r\n return hex;\r\n}\r\n\r\nfunction hexCode(rgb) {\r\n var hex = Number(rgb).toString(16);\r\n if (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n}\r\nfunction getValueFromInput(e, color) {\r\n if (e === null) return \"unset\";\r\n\r\n if (parseInt(e) || (typeof e === \"string\" && e.length > 0)) return e;\r\n else if (color) return parseColorToRgba(color);\r\n else if (e.target && e.target.value) return e.target.value;\r\n}\r\n\r\nfunction assignResponsiveStyle(source) {\r\n const responsiveNames = [\"content\", \"header\", \"footer\", \"menu\"];\r\n const devices = [\"tablet\", \"smartphone\"];\r\n const newStyle = Object.assign({}, source);\r\n for (let x = 0; x < responsiveNames.length; x++) {\r\n for (let y = 0; y < devices.length; y++) {\r\n const defaultStyle =\r\n defaultTemplate.responsive[devices[y]][responsiveNames[x]];\r\n const mainStyle = defaultTemplate[responsiveNames[x]];\r\n for (const key in newStyle.responsive[devices[y]][responsiveNames[x]]) {\r\n if (\r\n defaultStyle[key] !== \"unset\" &&\r\n newStyle.responsive[devices[y]][responsiveNames[x]][key] === \"unset\"\r\n ) {\r\n newStyle.responsive[devices[y]][responsiveNames[x]][key] =\r\n defaultStyle[key];\r\n } else if (\r\n defaultStyle[key] === \"unset\" &&\r\n newStyle.responsive[devices[y]][responsiveNames[x]][key] === \"unset\"\r\n ) {\r\n newStyle.responsive[devices[y]][responsiveNames[x]][key] =\r\n mainStyle[key];\r\n }\r\n }\r\n }\r\n }\r\n return newStyle;\r\n}\r\n\r\nfunction getTemplatesColors(template) {\r\n const colors = [];\r\n getValueFromNestedObjectByParam(\r\n [\"color\", \"backgroundColor\"],\r\n template.content,\r\n colors\r\n );\r\n return colors;\r\n}\r\n\r\nfunction getUnit(template, names) {\r\n let value = undefined;\r\n let unit = \"\";\r\n if (!Array.isArray(names)) names = names.split(\".\");\r\n if (names.includes(\"boxShadow\")) return unit;\r\n value = getValueFromNestedObject(names, template.content, value);\r\n if (value !== undefined) {\r\n if (value === \"unset\") unit = \"px\";\r\n else if (parseInt(value)) unit = value.replace(/[0-9/^d.-]/g, \"\");\r\n else unit = \"px\";\r\n }\r\n return unit;\r\n}\r\n\r\nfunction backgroundApplier(value, path, onChange) {\r\n onChange(value, path);\r\n}\r\n\r\nfunction getValue(template, names) {\r\n let value = \"\";\r\n if (!Array.isArray(names)) names = names.split(\".\");\r\n value = getValueFromNestedObject(names, template.content, value);\r\n return value;\r\n}\r\nfunction getValueWithoutUnit(template, names) {\r\n let value = 0;\r\n if (!Array.isArray(names)) names = names.split(\".\");\r\n value = getValueFromNestedObject(names, template.content, value);\r\n try {\r\n if (value.includes(\"rgb\") || value.includes(\"#\") || value.includes(\"white\"))\r\n return value;\r\n else if (value === \"unset\") value = 0;\r\n if (value === \"unset\") value = 0;\r\n else value = value.replace(/[^0-9\\d.-]/g, \"\");\r\n value = parseInt(value);\r\n } catch (error) {}\r\n return value;\r\n}\r\n\r\nfunction formatToResponsivePath(parent, prop, device) {\r\n if (device === \"desktop\") return `${parent}.${prop}`;\r\n return `responsive.${device}.${parent}.${prop}`;\r\n}\r\n\r\n/*DEPRECATED*/\r\nfunction checkForUpdates(target, source) {\r\n const sourceObj = Object.assign({}, source);\r\n let targetObj = Object.assign({}, target);\r\n\r\n //* Loops two levels of an object*/\r\n for (const prop in sourceObj) {\r\n if (!targetObj.hasOwnProperty(`${prop}`)) {\r\n targetObj[prop] = { ...sourceObj[prop] };\r\n if (targetObj.hasOwnProperty(`${prop}`)) {\r\n }\r\n } else {\r\n for (const v in sourceObj[prop]) {\r\n if (!targetObj[prop].hasOwnProperty(v)) {\r\n targetObj[prop][v] = sourceObj[prop][v];\r\n if (targetObj[prop].hasOwnProperty(`${v}`)) {\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction handleElementUpdates(element, template) {\r\n //Move this code to reducer\r\n if (element.parentName === \"HEADER\") {\r\n let el = template.content.header.content.find((f) => {\r\n return f.contentId === element.contentId;\r\n });\r\n var indexOfRemovedEl = template.content.header.content.indexOf(el);\r\n if (indexOfRemovedEl > -1) {\r\n template.content.header.content.splice(indexOfRemovedEl, 1);\r\n template.content.header.content.push(element);\r\n }\r\n }\r\n if (element.parentName === \"FOOTER\") {\r\n let el = template.content.footer.content.find((f) => {\r\n return f.contentId === element.contentId;\r\n });\r\n var indexOfRemovedEl = template.content.footer.content.indexOf(el);\r\n if (indexOfRemovedEl > -1) {\r\n template.content.footer.content.splice(indexOfRemovedEl, 1);\r\n template.content.footer.content.push(element);\r\n }\r\n }\r\n return template;\r\n}\r\n","export const arrayHelper = {\r\n concat,\r\n getMaxVal,\r\n getMinVal,\r\n arraysEqual,\r\n getMaxValue,\r\n findByParam,\r\n sortByParam,\r\n compareChanges,\r\n};\r\n\r\nfunction concat(...args) {\r\n return args.reduce((acc, val) => [...acc, ...val]);\r\n}\r\n\r\nfunction getMaxVal(propName, array) {\r\n return Math.max.apply(\r\n Math,\r\n array.map((o) => {\r\n return o[propName];\r\n })\r\n );\r\n}\r\n\r\nfunction getMaxValue(array, param) {\r\n return array.length > 0\r\n ? Math.max.apply(\r\n Math,\r\n array.map((o) => {\r\n return o[param];\r\n })\r\n ) + 1\r\n : 1;\r\n}\r\n\r\nfunction sortByParam(array, param) {\r\n if (array === null) {\r\n return [];\r\n }\r\n if (array.length < 1) {\r\n return [];\r\n }\r\n const updatedArray = Array.from(array);\r\n updatedArray.sort((a, b) => {\r\n let x = a[param];\r\n let y = b[param];\r\n return y < x ? 1 : y > x ? -1 : 0;\r\n });\r\n return updatedArray;\r\n}\r\n\r\n/* Array.prototype.firstOrDefault = function (array, element) {\r\n array.forEach(this.push, this);\r\n array.find()\r\n} */\r\n\r\nfunction findByParam(array, param, value) {\r\n var element = array.find((el) => {\r\n return el[param] === value;\r\n });\r\n if (!element) {\r\n return null;\r\n }\r\n return Object.assign({}, element);\r\n}\r\n\r\nfunction getMinVal(propName, array) {\r\n Math.min.apply(\r\n Math,\r\n array.map((o) => {\r\n return o[propName];\r\n })\r\n );\r\n}\r\n\r\nfunction arraysEqual(arr1, arr2) {\r\n if (arr1.length !== arr2.length) return false;\r\n for (var i = arr1.length; i--; ) {\r\n if (arr1[i] !== arr2[i]) return false;\r\n }\r\n\r\n return true;\r\n}\r\nfunction compareChanges(arr1, arr2, param, sorter = () => null, mapper = () => null) {\r\n let hasChanged = false;\r\n\r\n if (arr1.length != arr2.length) {\r\n return true;\r\n }\r\n\r\n let a1 = arr1\r\n .map((a1) => {\r\n return a1[param];\r\n })\r\n .sort();\r\n let a2 = arr2\r\n .map((a2) => {\r\n return a2[param];\r\n })\r\n .sort();\r\n\r\n if (a1.length == a2.length) {\r\n for (let index = 0; index < a1.length && hasChanged == false; index++) {\r\n if (a1[index] !== a2[index]) {\r\n hasChanged = true;\r\n break;\r\n }\r\n }\r\n }\r\n return hasChanged;\r\n}\r\n","/*\r\n* required polyfills\r\n*/\r\n\r\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\r\n// import 'core-js/es6/symbol'\r\n// import 'core-js/es6/object'\r\n// import 'core-js/es6/function'\r\n// import 'core-js/es6/parse-int'\r\n// import 'core-js/es6/parse-float'\r\n// import 'core-js/es6/number'\r\n// import 'core-js/es6/math'\r\n// import 'core-js/es6/string'\r\n// import 'core-js/es6/date'\r\nimport 'core-js/es6/array'\r\n// import 'core-js/es6/regexp'\r\nimport 'core-js/es6/map'\r\n// import 'core-js/es6/weak-map'\r\nimport 'core-js/es6/set'\r\nimport 'core-js/es7/object'\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/es6/reflect'\r\n\r\n/** Evergreen browsers require these. **/\r\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\r\n// import 'core-js/es7/reflect'\r\n\r\n// CustomEvent() constructor functionality in IE9, IE10, IE11\r\n(function () {\r\n if ( typeof window.CustomEvent === \"function\" ) return false\r\n\r\n function CustomEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined }\r\n var evt = document.createEvent( 'CustomEvent' )\r\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail )\r\n return evt\r\n }\r\n\r\n CustomEvent.prototype = window.Event.prototype\r\n\r\n window.CustomEvent = CustomEvent\r\n})()\r\nif(/Firefox\\/\\d+[\\d\\.]*/.test(navigator.userAgent)\r\n\t\t&& typeof window.DragEvent === 'function'\r\n\t\t&& typeof window.addEventListener === 'function') (function(){\r\n\t// patch for Firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=505521\r\n\tvar cx, cy, px, py, ox, oy, sx, sy, lx, ly;\r\n\tfunction update(e) {\r\n\t\tcx = e.clientX; cy = e.clientY;\r\n\t\tpx = e.pageX; py = e.pageY;\r\n\t\tox = e.offsetX; oy = e.offsetY;\r\n\t\tsx = e.screenX; sy = e.screenY;\r\n\t\tlx = e.layerX; ly = e.layerY;\r\n\t}\r\n\tfunction assign(e) {\r\n\t\te._ffix_cx = cx; e._ffix_cy = cy;\r\n\t\te._ffix_px = px; e._ffix_py = py;\r\n\t\te._ffix_ox = ox; e._ffix_oy = oy;\r\n\t\te._ffix_sx = sx; e._ffix_sy = sy;\r\n\t\te._ffix_lx = lx; e._ffix_ly = ly;\r\n\t}\r\n\twindow.addEventListener('mousemove', update, true);\r\n\twindow.addEventListener('dragover', update, true);\r\n\t// bug #505521 identifies these three listeners as problematic:\r\n\t// (although tests show 'dragstart' seems to work now, keep to be compatible)\r\n\twindow.addEventListener('dragstart', assign, true);\r\n\twindow.addEventListener('drag', assign, true);\r\n\twindow.addEventListener('dragend', assign, true);\r\n\r\n\t// var me = Object.getOwnPropertyDescriptors(window.MouseEvent.prototype),\r\n\t// \tue = Object.getOwnPropertyDescriptors(window.UIEvent.prototype);\r\n\t// function getter(prop,repl) {\r\n\t// \treturn function() {return me[prop] && me[prop].get.call(this) || Number(this[repl]) || 0};\r\n\t// }\r\n\t// function layerGetter(prop,repl) {\r\n\t// \treturn function() {return this.type === 'dragover' && ue[prop] ? ue[prop].get.call(this) : (Number(this[repl]) || 0)};\r\n\t// }\r\n\t// Object.defineProperties(window.DragEvent.prototype,{\r\n\t// \tclientX: {get: getter('clientX', '_ffix_cx')},\r\n\t// \tclientY: {get: getter('clientY', '_ffix_cy')},\r\n\t// \tpageX: {get: getter('pageX', '_ffix_px')},\r\n\t// \tpageY: {get: getter('pageY', '_ffix_py')},\r\n\t// \toffsetX: {get: getter('offsetX', '_ffix_ox')},\r\n\t// \toffsetY: {get: getter('offsetY', '_ffix_oy')},\r\n\t// \tscreenX: {get: getter('screenX', '_ffix_sx')},\r\n\t// \tscreenY: {get: getter('screenY', '_ffix_sy')},\r\n\t// \tx: {get: getter('x', '_ffix_cx')},\r\n\t// \ty: {get: getter('y', '_ffix_cy')},\r\n\t// \tlayerX: {get: layerGetter('layerX', '_ffix_lx')},\r\n\t// \tlayerY: {get: layerGetter('layerY', '_ffix_ly')}\r\n\t// });\r\n})();","import React from 'react';\r\nimport { Row, Col, Container, Button } from 'reactstrap';\r\nimport FireFox from '../../assets/icons/firefox.svg';\r\nimport Opera from '../../assets/icons/opera.svg';\r\nimport Chrome from '../../assets/icons/google_chrome.svg';\r\n\r\n\r\n//If using internet exploret provide new browser options\r\n\r\nexport const ProvideBrowserOptions = () => {\r\n\r\n return (\r\n \r\n \r\n \r\n

Jirango does not support Internet explorer!

\r\n \r\n
\r\n \r\n \r\n

The page you are looking for is not supported in the browser you are currently using, Internet Explorer.\r\n\r\nInternet Explorer has security issues and is no longer supported my Microsoft.\r\n\r\n\r\n\r\nIf you came here from a link in an email, read this article to change the way links are opened in Outlook.\r\n\r\n\r\n\r\n\r\n\r\n

\r\n\r\n
\r\n Read more\r\n\r\n

\r\n

\r\n The following browsers are supported – click one of the options below to download and install.

\r\n \r\n \r\n
\r\n \r\n window.location.replace(\"https://www.google.com/intl/sv/chrome/\")\r\n }>\r\n

\r\n \r\n\r\n Google Chrome\r\n \r\n \r\n window.location.replace(\"https://www.opera.com\")\r\n }>\r\n

\r\n \r\n Opera\r\n \r\n \r\n window.location.replace(\"https://www.mozilla.org/sv-SE/firefox/new/\")\r\n }>\r\n

\r\n FireFox\r\n \r\n
\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { templateActions } from \"../../../../../store/actions/cms/template/template.action\";\r\nimport { sourceTypes } from \"../../../../../constants/cms/sourceType\";\r\n\r\nclass TemplateHeader extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { isDropZoneDisabled: false };\r\n }\r\n componentDidMount() {\r\n if (this.props.cms.enviroment !== sourceTypes.TEMPLATE) {\r\n this.disableDropZone(true);\r\n }\r\n }\r\n disableDropZone(isDisabled) {\r\n this.setState({ isDropZoneDisabled: isDisabled });\r\n }\r\n onSelect(el) {\r\n const { dispatch, cms } = this.props;\r\n if (!cms.editMode && cms.enviroment !== sourceTypes.TEMPLATE) {\r\n return;\r\n }\r\n dispatch(templateActions.select(el));\r\n }\r\n onDelete(el) {\r\n const { dispatch } = this.props;\r\n dispatch(templateActions.remove(el, \"HEADER\"));\r\n }\r\n\r\n sortChildrens() {\r\n const { template } = this.props.template;\r\n const dataSource =\r\n template && template.content\r\n ? Array.from(\r\n template.content.header.content\r\n .sort((a, b) => {\r\n let x = a.sortOrder;\r\n let y = b.sortOrder;\r\n return y < x ? 1 : y > x ? -1 : 0;\r\n })\r\n .filter((el) => el.parentId === null)\r\n )\r\n : [];\r\n\r\n return dataSource;\r\n }\r\n render() {\r\n const { template } = this.props.template;\r\n const { selectedContainer, selectedElement } = this.props.template;\r\n const { editMode, enviroment } = this.props.cms;\r\n\r\n if (template === undefined) return null;\r\n if (!editMode && enviroment !== sourceTypes.TEMPLATE) {\r\n return (\r\n
\r\n {this.sortChildrens().map((el, index) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {/* {renderElement(el.type, el, this.disableDropZone)} */}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n }\r\n }\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n alert: state.alert,\r\n template: state.template,\r\n cms: state.cms,\r\n form: state.form,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(TemplateHeader);\r\n","import React from \"react\";\r\nimport { Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport { Col, Row } from \"reactstrap\";\r\n/* import { renderElement } from \"../../../../helpers/renderElement\"; */\r\nimport { connect } from \"react-redux\";\r\nimport { templateActions } from \"../../../../../store/actions/cms/template/template.action\";\r\nimport { sourceTypes } from \"../../../../../constants/cms/sourceType\";\r\nimport \"../styles/TemplateContent.css\";\r\n\r\nclass TemplateFooter extends React.Component {\r\n state = {\r\n isDropZoneDisabled: false,\r\n };\r\n componentDidMount() {\r\n if (this.props.cms.enviroment !== sourceTypes.TEMPLATE) {\r\n this.disableDropZone(true);\r\n }\r\n }\r\n disableDropZone = (isDisabled) => {\r\n this.setState({ isDropZoneDisabled: isDisabled });\r\n };\r\n onSelect = (el) => {\r\n const { dispatch, cms } = this.props;\r\n if (!cms.editMode) {\r\n return;\r\n }\r\n dispatch(templateActions.select(el));\r\n };\r\n\r\n onDelete = (el) => {\r\n const { dispatch } = this.props;\r\n dispatch(templateActions.remove(el, \"FOOTER\"));\r\n };\r\n sortChildrens = () => {\r\n const { template } = this.props.template;\r\n\r\n const dataSource =\r\n template && template.content\r\n ? Array.from(\r\n template.content.footer.content\r\n .sort((a, b) => {\r\n let x = a.sortOrder;\r\n let y = b.sortOrder;\r\n return y < x ? 1 : y > x ? -1 : 0;\r\n })\r\n .filter((el) => el.parentId === null)\r\n )\r\n : [];\r\n\r\n return dataSource;\r\n };\r\n render() {\r\n const { template, selectedContainer, selectedElement } = this.props.template;\r\n const { editMode, enviroment } = this.props.cms;\r\n\r\n if (template === undefined) return null;\r\n if (!editMode && enviroment !== sourceTypes.TEMPLATE) {\r\n return (\r\n
\r\n {this.sortChildrens().map((el, index) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {/* {renderElement(el.type, el, this.disableDropZone)} */}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n alert: state.alert,\r\n template: state.template,\r\n cms: state.cms,\r\n form: state.form,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(TemplateFooter);\r\n","import React from \"react\";\r\nimport \"./MediaBackdrop.css\";\r\nimport Media from \"react-media\";\r\nexport class MediaBackdrop extends React.Component {\r\n state = {\r\n blurEffect: \"blur\"\r\n };\r\n componentDidMount() {\r\n setTimeout(() => this.setState({ blurEffect: \"unblur\" }), 3000);\r\n }\r\n generateYoutubeSource = () => {\r\n const { url } = this.props;\r\n if (!url.includes(\"https://www.youtube.com/watch?v=\")) return \"\";\r\n let id = url.substring(url.indexOf(\"v=\") + 2, url.length);\r\n return id;\r\n /* return `https://www.youtube.com/embed/${id}?controls=0&autoplay=1&mute=1&origin=https%3A%2F%2Fwww.jqueryscript.net&loop=1&rel=0&ecver=2&showinfo=0&modestbranding=1&enablejsapi=1&widgetid=1`; */\r\n };\r\n setScale = ({ small, medium, large }) => {\r\n let translate = \"translateX(-58%) translateY(-50%) \";\r\n if (small) translate += \"scale(4)\";\r\n else if (medium) translate += \"scale(2.5)\";\r\n else translate += \"scale(1.5)\";\r\n return translate;\r\n };\r\n setBackground = () => {\r\n const { main, device } = this.props;\r\n const bg = {};\r\n\r\n bg.backgroundSize = \"cover\";\r\n bg.backgroundPosition = main.backgroundPosition;\r\n bg.backgroundRepeat = \"no-repeat\";\r\n bg.background = main.background;\r\n /* document.body.style.background */\r\n bg.backgroundAttachment = \"fixed\";\r\n //bg.height = '100vh';\r\n bg.height =\r\n this.props.editMode && (device === \"desktop\" || device === undefined) || (!this.props.editMode)\r\n ? \"100vh\"\r\n : \"100%\";\r\n bg.overflowY = this.props.editMode ? \"auto\" : \"unset\";\r\n return bg;\r\n /* return {\r\n ...main,\r\n backgroundSize: \"cover\",\r\n backgroundAttachment: \"fixed\",\r\n backgroundPosition: main.backgroundPosition,\r\n backgroundRepeat: \"no-repeat\"\r\n }; */\r\n };\r\n setHeight = () => {\r\n const { device, enabled } = this.props;\r\n if (this.props.editMode && (device === \"desktop\" || device === undefined) || (!this.props.editMode)) {\r\n return '100vh';\r\n } else if (this.props.editMode && device !== \"desktop\" && device !== undefined && enabled == true) {\r\n\r\n return '100%'\r\n } /* || ((device === \"desktop\" || device !== undefined) && enabled == true)\r\n ? \"100vh\"\r\n : \"100%\" */\r\n }\r\n render() {\r\n const { url, children, enabled, device, main } = this.props;\r\n const { blurEffect } = this.state;\r\n return (\r\n
\r\n \r\n {enabled === true && url !== \"unset\" && url !== \"\" ? (\r\n
\r\n \r\n {matches => (\r\n \r\n )}\r\n \r\n
\r\n ) : null}\r\n \r\n
{children}
\r\n
\r\n\r\n \r\n );\r\n }\r\n}\r\n","import Media from \"react-media\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Container } from \"reactstrap\";\r\nimport \"./ContentWrapper.css\";\r\nimport { templateConstants } from \"../../../../../../../constants/cms/template/template.constants\";\r\nimport TransitionWrapper from \"../TransitionWrapper/TransitionWrapper\";\r\n\r\nconst ContentWrapper = ({\r\n children,\r\n device,\r\n editMode,\r\n contentStyle,\r\n responsiveStyle,\r\n backgroundColor = null,\r\n style = null,\r\n height = null\r\n}) => {\r\n if (!contentStyle) return null;\r\n const setStyle = matches => {\r\n if (!editMode) {\r\n if (matches.large) return contentStyle;\r\n else {\r\n let dvc = \"\";\r\n if (matches.medium) dvc = templateConstants.TABLET;\r\n else if (matches.small) dvc = templateConstants.SMARTPHONE;\r\n if (responsiveStyle[dvc] === undefined) return contentStyle\r\n const s = { ...contentStyle, ...responsiveStyle[dvc].content };\r\n return s;\r\n }\r\n } else {\r\n if (device === templateConstants.DESKTOP) return contentStyle;\r\n const s = { ...contentStyle, ...responsiveStyle[device].content };\r\n\r\n return s;\r\n }\r\n };\r\n return (\r\n \r\n {matches => {\r\n const s = style || setStyle(matches)\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n\r\n }}\r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n device: state.template.previewDevice,\r\n editMode: state.cms.editMode,\r\n contentStyle: state.template.template.content.content,\r\n responsiveStyle: state.template.template.content.responsive\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ContentWrapper);\r\n","import Media from \"react-media\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Container } from \"reactstrap\";\r\nimport \"./HeaderWrapper.css\";\r\nimport { templateConstants } from \"../../../../../../../constants/cms/template/template.constants\";\r\n\r\nconst HeaderWrapper = ({\r\n children,\r\n device,\r\n editMode,\r\n headerStyle,\r\n responsiveStyle\r\n}) => {\r\n if (!headerStyle) return null;\r\n const setStyle = matches => {\r\n if (!editMode) {\r\n if (matches.large) return headerStyle;\r\n else {\r\n let dvc = \"\";\r\n if (matches.medium) dvc = templateConstants.TABLET;\r\n else if (matches.small) dvc = templateConstants.SMARTPHONE;\r\n if (responsiveStyle[dvc] === undefined) return headerStyle;\r\n const style = { ...headerStyle, ...responsiveStyle[dvc].header };\r\n return style;\r\n }\r\n } else {\r\n if (device === templateConstants.DESKTOP) return headerStyle;\r\n const style = { ...headerStyle, ...responsiveStyle[device].header };\r\n return style;\r\n }\r\n };\r\n return (\r\n \r\n {matches => (\r\n
\r\n {children}\r\n
\r\n )}\r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n device: state.template.previewDevice,\r\n editMode: state.cms.editMode,\r\n headerStyle: state.template.template.content.header,\r\n responsiveStyle: state.template.template.content.responsive\r\n };\r\n}\r\nexport default connect(mapStateToProps)(HeaderWrapper);\r\n","import Media from \"react-media\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Container } from \"reactstrap\";\r\nimport \"./FooterWrapper.css\";\r\nimport { templateConstants } from \"../../../../../../../constants/cms/template/template.constants\";\r\n\r\nconst FooterWrapper = ({\r\n children,\r\n device,\r\n editMode,\r\n footerStyle,\r\n responsiveStyle\r\n}) => {\r\n if (!footerStyle) return null;\r\n const setStyle = matches => {\r\n if (!editMode) {\r\n if (matches.large) return footerStyle;\r\n else {\r\n let dvc = \"\";\r\n if (matches.medium) dvc = templateConstants.TABLET;\r\n else if (matches.small) dvc = templateConstants.SMARTPHONE;\r\n if (responsiveStyle[dvc] === undefined) return footerStyle;\r\n const style = { ...footerStyle, ...responsiveStyle[dvc].footer };\r\n return style;\r\n }\r\n } else {\r\n if (device === templateConstants.DESKTOP) return footerStyle;\r\n const style = { ...footerStyle, ...responsiveStyle[device].footer };\r\n return style;\r\n }\r\n };\r\n return (\r\n \r\n {matches => (\r\n
\r\n {children}\r\n
\r\n )}\r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n device: state.template.previewDevice,\r\n editMode: state.cms.editMode,\r\n footerStyle: state.template.template.content.footer,\r\n responsiveStyle: state.template.template.content.responsive\r\n };\r\n}\r\nexport default connect(mapStateToProps)(FooterWrapper);\r\n","import React, { Suspense } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport TemplateHeader from \"../TemplateHeader/TemplateHeader\";\r\nimport TemplateFooter from \"../TemplateFooter/TemplateFooter\";\r\nimport { insertFonts } from \"../../../../../helpers/fontHelper\";\r\nimport { cmsActions } from \"../../../../../store/actions/cms/cms.action\";\r\nimport { MediaBackdrop } from \"../../components/MediaBackdrop/MediaBackdrop\";\r\nimport \"../styles/TemplateContent.css\";\r\nimport ContentWrapper from \"./Wrappers/ContentWrapper/ContentWrapper\";\r\nimport HeaderWrapper from \"./Wrappers/HeaderWrapper/HeaderWrapper\";\r\nimport FooterWrapper from \"./Wrappers/FooterWrapper/FooterWrapper\";\r\n\r\nclass TemplateWrapper extends React.Component {\r\n state = { prevBodyBGg: \"\", headerHeight: null };\r\n componentDidMount() {\r\n if (\r\n this.props.template !== undefined\r\n ) {\r\n const { template, cms } = this.props;\r\n this.props.dispatch(cmsActions.getClientFonts(template.eventId));\r\n }\r\n\r\n }\r\n componentDidUpdate(prevProps, prevState) {\r\n\r\n if (\r\n this.props.template !== undefined &&\r\n prevProps.template !== this.props.template\r\n ) {\r\n /* this.setBackground(); */\r\n const { template, cms } = this.props;\r\n this.props.dispatch(cmsActions.getClientFonts(template.eventId));\r\n }\r\n if (this.headerRef !== undefined && this.state.headerRef === null) {\r\n this.setState({ headerHeight: this.headerRef.clientHeight });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n render() {\r\n const { template, cms, previewDevice } = this.props;\r\n const { editMode, fonts } = cms;\r\n if (template === undefined) return null;\r\n return (\r\n
\r\n \r\n\r\n {fonts !== undefined && (\r\n \r\n )}\r\n \r\n
(this.headerRef = r)} id='temp-header'>\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n {this.props.children}\r\n
\r\n \r\n
(this.footerRef = r)}>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n template: state.template.template,\r\n previewDevice: state.template.previewDevice,\r\n selectedContainer: state.template.selectedContainer,\r\n selectedElement: state.template.selectedElement,\r\n cms: state.cms,\r\n isMenuModalOpen: state.template.isMenuModalOpen\r\n };\r\n}\r\nexport default connect(mapStateToProps)(TemplateWrapper);\r\n","export const colorHelper = {\r\n getCorrectTextColor,\r\n linearGradient,\r\n hexToRgb,\r\n rgbToObject,\r\n rgbaToHex,\r\n colourNameToHex,\r\n trim,\r\n};\r\n\r\nfunction getCorrectTextColor(hex) {\r\n /*\r\n From this W3C document: http://www.webmasterworld.com/r.cgi?f=88&d=9769&url=http://www.w3.org/TR/AERT#color-contrast\r\n \r\n Color brightness is determined by the following formula: \r\n ((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000\r\n\r\nI know this could be more compact, but I think this is easier to read/explain.\r\n \r\n */\r\n\r\n const threshold = 130; /* about half of 256. Lower threshold equals more dark text on dark background */\r\n\r\n //testa - lägg till hexToA\r\n let hRed = hexToR(hex);\r\n let hGreen = hexToG(hex);\r\n let hBlue = hexToB(hex);\r\n\r\n const cBrightness = (hRed * 299 + hGreen * 587 + hBlue * 114) / 1000;\r\n if (cBrightness > threshold) {\r\n return \"#000000\";\r\n } else {\r\n return \"#ffffff\";\r\n }\r\n}\r\n\r\nfunction hexToR(h) {\r\n return parseInt(cutHex(h).substring(0, 2), 16);\r\n}\r\nfunction hexToG(h) {\r\n return parseInt(cutHex(h).substring(2, 4), 16);\r\n}\r\nfunction hexToB(h) {\r\n return parseInt(cutHex(h).substring(4, 6), 16);\r\n}\r\nfunction cutHex(h) {\r\n return h.charAt(0) == \"#\" ? h.substring(1, 7) : h;\r\n}\r\n\r\nfunction hexToDec(s) {\r\n var i,\r\n j,\r\n digits = [0],\r\n carry;\r\n for (i = 0; i < s.length; i += 1) {\r\n carry = parseInt(s.charAt(i), 16);\r\n for (j = 0; j < digits.length; j += 1) {\r\n digits[j] = digits[j] * 16 + carry;\r\n carry = (digits[j] / 10) | 0;\r\n digits[j] %= 10;\r\n }\r\n while (carry > 0) {\r\n digits.push(carry % 10);\r\n carry = (carry / 10) | 0;\r\n }\r\n }\r\n return digits.reverse().join(\"\");\r\n}\r\n\r\n// TODO - Fixa alpha kanalen, som blir 100 varje gång.\r\nexport function hexToRgb(hex) {\r\n let hexBase = hex;\r\n let alpha = 1;\r\n if (hex.length > 7) {\r\n hexBase = hex.substring(0, 7);\r\n alpha = hex.substring(7, 9);\r\n } else if (hex.length < 8) {\r\n alpha = \"ff\";\r\n }\r\n alpha = hexToDec(alpha);\r\n if (hex.length < 6) {\r\n for (let index = hex.length - 1; index < 6; index++) {\r\n hexBase += hexBase[1];\r\n }\r\n }\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hexBase);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16), // parseInt(parseFloat(result[3],16)*parseFloat(alpha)/255 )\r\n a: parseFloat(alpha) / 255, //parseInt(1)\r\n }\r\n : null;\r\n}\r\n\r\nexport function trim(str) {\r\n return str.replace(/^\\s+|\\s+$/gm, \"\");\r\n}\r\n\r\nexport function rgbaToHex(rgba) {\r\n var inParts = rgba.substring(rgba.indexOf(\"(\")).split(\",\"),\r\n r = parseInt(trim(inParts[0].substring(1)), 10),\r\n g = parseInt(trim(inParts[1]), 10),\r\n b = parseInt(trim(inParts[2]), 10),\r\n a = parseFloat(trim(inParts[3].substring(0, inParts[3].length - 1))).toFixed(2);\r\n var outParts = [\r\n r.toString(16),\r\n g.toString(16),\r\n b.toString(16),\r\n Math.round(a * 255)\r\n .toString(16)\r\n .substring(0, 2),\r\n ];\r\n\r\n // Pad single-digit output values\r\n outParts.forEach(function (part, i) {\r\n if (part.length === 1) {\r\n outParts[i] = \"0\" + part;\r\n }\r\n });\r\n\r\n return \"#\" + outParts.join(\"\");\r\n}\r\n\r\nexport function rgbToObject(color) {\r\n const result = color.replace(/[^\\d,]/g, \"\").split(\",\");\r\n return {\r\n r: result[0],\r\n g: result[1],\r\n b: result[2],\r\n a: result[3] !== undefined ? parseInt(result[3], 16) : 1,\r\n };\r\n return result\r\n ? {\r\n r: parseInt(result[0], 16),\r\n g: parseInt(result[1], 16),\r\n b: parseInt(result[2], 16),\r\n a: result[3] !== undefined ? parseInt(result[3], 16) : parseInt(1),\r\n }\r\n : null;\r\n}\r\n\r\nfunction colourNameToHex(colour) {\r\n var colours = {\r\n aliceblue: \"#f0f8ff\",\r\n antiquewhite: \"#faebd7\",\r\n aqua: \"#00ffff\",\r\n aquamarine: \"#7fffd4\",\r\n azure: \"#f0ffff\",\r\n beige: \"#f5f5dc\",\r\n bisque: \"#ffe4c4\",\r\n black: \"#000000\",\r\n blanchedalmond: \"#ffebcd\",\r\n blue: \"#0000ff\",\r\n blueviolet: \"#8a2be2\",\r\n brown: \"#a52a2a\",\r\n burlywood: \"#deb887\",\r\n cadetblue: \"#5f9ea0\",\r\n chartreuse: \"#7fff00\",\r\n chocolate: \"#d2691e\",\r\n coral: \"#ff7f50\",\r\n cornflowerblue: \"#6495ed\",\r\n cornsilk: \"#fff8dc\",\r\n crimson: \"#dc143c\",\r\n cyan: \"#00ffff\",\r\n darkblue: \"#00008b\",\r\n darkcyan: \"#008b8b\",\r\n darkgoldenrod: \"#b8860b\",\r\n darkgray: \"#a9a9a9\",\r\n darkgreen: \"#006400\",\r\n darkkhaki: \"#bdb76b\",\r\n darkmagenta: \"#8b008b\",\r\n darkolivegreen: \"#556b2f\",\r\n darkorange: \"#ff8c00\",\r\n darkorchid: \"#9932cc\",\r\n darkred: \"#8b0000\",\r\n darksalmon: \"#e9967a\",\r\n darkseagreen: \"#8fbc8f\",\r\n darkslateblue: \"#483d8b\",\r\n darkslategray: \"#2f4f4f\",\r\n darkturquoise: \"#00ced1\",\r\n darkviolet: \"#9400d3\",\r\n deeppink: \"#ff1493\",\r\n deepskyblue: \"#00bfff\",\r\n dimgray: \"#696969\",\r\n dodgerblue: \"#1e90ff\",\r\n firebrick: \"#b22222\",\r\n floralwhite: \"#fffaf0\",\r\n forestgreen: \"#228b22\",\r\n fuchsia: \"#ff00ff\",\r\n gainsboro: \"#dcdcdc\",\r\n ghostwhite: \"#f8f8ff\",\r\n gold: \"#ffd700\",\r\n goldenrod: \"#daa520\",\r\n gray: \"#808080\",\r\n green: \"#008000\",\r\n greenyellow: \"#adff2f\",\r\n honeydew: \"#f0fff0\",\r\n hotpink: \"#ff69b4\",\r\n \"indianred \": \"#cd5c5c\",\r\n indigo: \"#4b0082\",\r\n ivory: \"#fffff0\",\r\n khaki: \"#f0e68c\",\r\n lavender: \"#e6e6fa\",\r\n lavenderblush: \"#fff0f5\",\r\n lawngreen: \"#7cfc00\",\r\n lemonchiffon: \"#fffacd\",\r\n lightblue: \"#add8e6\",\r\n lightcoral: \"#f08080\",\r\n lightcyan: \"#e0ffff\",\r\n lightgoldenrodyellow: \"#fafad2\",\r\n lightgrey: \"#d3d3d3\",\r\n lightgreen: \"#90ee90\",\r\n lightpink: \"#ffb6c1\",\r\n lightsalmon: \"#ffa07a\",\r\n lightseagreen: \"#20b2aa\",\r\n lightskyblue: \"#87cefa\",\r\n lightslategray: \"#778899\",\r\n lightsteelblue: \"#b0c4de\",\r\n lightyellow: \"#ffffe0\",\r\n lime: \"#00ff00\",\r\n limegreen: \"#32cd32\",\r\n linen: \"#faf0e6\",\r\n magenta: \"#ff00ff\",\r\n maroon: \"#800000\",\r\n mediumaquamarine: \"#66cdaa\",\r\n mediumblue: \"#0000cd\",\r\n mediumorchid: \"#ba55d3\",\r\n mediumpurple: \"#9370d8\",\r\n mediumseagreen: \"#3cb371\",\r\n mediumslateblue: \"#7b68ee\",\r\n mediumspringgreen: \"#00fa9a\",\r\n mediumturquoise: \"#48d1cc\",\r\n mediumvioletred: \"#c71585\",\r\n midnightblue: \"#191970\",\r\n mintcream: \"#f5fffa\",\r\n mistyrose: \"#ffe4e1\",\r\n moccasin: \"#ffe4b5\",\r\n navajowhite: \"#ffdead\",\r\n navy: \"#000080\",\r\n oldlace: \"#fdf5e6\",\r\n olive: \"#808000\",\r\n olivedrab: \"#6b8e23\",\r\n orange: \"#ffa500\",\r\n orangered: \"#ff4500\",\r\n orchid: \"#da70d6\",\r\n palegoldenrod: \"#eee8aa\",\r\n palegreen: \"#98fb98\",\r\n paleturquoise: \"#afeeee\",\r\n palevioletred: \"#d87093\",\r\n papayawhip: \"#ffefd5\",\r\n peachpuff: \"#ffdab9\",\r\n peru: \"#cd853f\",\r\n pink: \"#ffc0cb\",\r\n plum: \"#dda0dd\",\r\n powderblue: \"#b0e0e6\",\r\n purple: \"#800080\",\r\n rebeccapurple: \"#663399\",\r\n red: \"#ff0000\",\r\n rosybrown: \"#bc8f8f\",\r\n royalblue: \"#4169e1\",\r\n saddlebrown: \"#8b4513\",\r\n salmon: \"#fa8072\",\r\n sandybrown: \"#f4a460\",\r\n seagreen: \"#2e8b57\",\r\n seashell: \"#fff5ee\",\r\n sienna: \"#a0522d\",\r\n silver: \"#c0c0c0\",\r\n skyblue: \"#87ceeb\",\r\n slateblue: \"#6a5acd\",\r\n slategray: \"#708090\",\r\n snow: \"#fffafa\",\r\n springgreen: \"#00ff7f\",\r\n steelblue: \"#4682b4\",\r\n tan: \"#d2b48c\",\r\n teal: \"#008080\",\r\n thistle: \"#d8bfd8\",\r\n tomato: \"#ff6347\",\r\n turquoise: \"#40e0d0\",\r\n violet: \"#ee82ee\",\r\n wheat: \"#f5deb3\",\r\n white: \"#ffffff\",\r\n whitesmoke: \"#f5f5f5\",\r\n yellow: \"#ffff00\",\r\n yellowgreen: \"#9acd32\",\r\n };\r\n\r\n if (typeof colours[colour.toLowerCase()] != \"undefined\") {\r\n return colours[colour.toLowerCase()];\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction linearGradient(colorBase, dir) {\r\n let r = hexToR(colorBase);\r\n let g = hexToG(colorBase);\r\n let b = hexToB(colorBase);\r\n\r\n const background = `linear-gradient(to ${dir}, rgb(${r}, ${g}, ${b}), rgba(${r}, ${g}, ${b}, 0))`;\r\n return background;\r\n}\r\n","import React from \"react\";\r\n\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { generateChartColor, fold } from \"../../../../helpers/chartHelper\";\r\nimport { adjustContentHeight } from \"../../../../helpers/viewPortHelper\";\r\nimport { DateRange } from \"@material-ui/icons\";\r\nimport { colorHelper } from \"../../../../helpers/colorHelper\";\r\nimport './RatingChart.css'\r\n\r\nexport const RatingChart = ({ data, questionName, template }) => {\r\n let dataArr = [];\r\n let sum = 0;\r\n data.map((a) => sum += parseInt(a))\r\n let average = Math.round((sum / data.length) * 10) / 10;\r\n dataArr.push({\r\n name: average,\r\n y: average,\r\n /* percentage: `${(count / data.length) * 100}`, */\r\n color: generateChartColor(template.chart.colors),\r\n sliced: true\r\n });\r\n\r\n\r\n let w = window.innerWidth * (parseInt(template.content.maxWidth) / 100);\r\n let h = adjustContentHeight(\r\n window.innerHeight,\r\n template.content,\r\n template.header,\r\n template.footer\r\n );\r\n questionName =\r\n questionName.length > 50\r\n ? fold(questionName, 50, true).join(\"
\")\r\n : questionName;\r\n\r\n const options = {\r\n chart: {\r\n backgroundColor: \"transparent\",\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n plotBackgroundColor: \"transparent\",\r\n type: \"column\",\r\n height: h,\r\n width: w,\r\n style: {\r\n padding: 10\r\n }\r\n },\r\n title: {\r\n text: questionName,\r\n style: { ...template.title, textAlign: \"center\" }\r\n },\r\n legend: {\r\n enabled: false,\r\n title: {\r\n text: null\r\n }\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: 10,\r\n tickInterval: 1,\r\n /* categories: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], */\r\n allowDecimals: false,\r\n title: {\r\n text: null\r\n },\r\n labels: {\r\n style: {\r\n fontSize: template.label.fontSize,\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color\r\n }\r\n }\r\n },\r\n xAxis: {\r\n /* categories: [average], */\r\n allowDecimals: true,\r\n title: {\r\n text: null\r\n },\r\n labels: {\r\n enabled: false,\r\n align: 'center',\r\n /* y: -15, */\r\n style: {\r\n fontSize: template.label.fontSize,\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color\r\n\r\n }\r\n }\r\n /* labels:{\r\n enabled: false\r\n } */\r\n },\r\n tooltip: {\r\n pointFormat: \"{point.name}
{point.percentage:.1f} %\"\r\n },\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n /* enabled: true, */\r\n color: colorHelper.getCorrectTextColor(generateChartColor(template.chart.colors)),\r\n style: {\r\n fontWeight: 'bolder'\r\n },\r\n formatter: function () { return this.y },\r\n inside: true,\r\n rotation: 0\r\n },\r\n stacking: \"normal\",\r\n pointPadding: 0.1,\r\n groupPadding: 0\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n series: [\r\n {\r\n dataLabels: {\r\n enabled: true,\r\n inside: true,\r\n style: {\r\n fontWeight: 'bolder', fontSize: template.title.fontSize,\r\n fontFamily: template.title.fontFamily,\r\n color: colorHelper.getCorrectTextColor(generateChartColor(template.chart.colors)) + '!important',\r\n fill: colorHelper.getCorrectTextColor(generateChartColor(template.chart.colors)) + ' !important',\r\n stroke: colorHelper.getCorrectTextColor(generateChartColor(template.chart.colors)) + ' !important'\r\n }\r\n },\r\n colorByPoint: true,\r\n data: dataArr /* .sort((a, b) => { return a.y - b.y }) */,\r\n showInLegend: false\r\n }\r\n ]\r\n };\r\n\r\n return (\r\n \r\n {/*
this.chartHeader}> \r\n

{questionName}

\r\n
\r\n
*/}\r\n
\r\n \r\n
\r\n {/* \r\n \r\n {dataArr.map((entry, index) => )}\r\n \r\n \r\n */}\r\n
\r\n );\r\n};\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport TemplateWrapper from \"../../../cms/areas/template/containers/TemplateLayout/TemplateWrapper\";\r\nimport { clientTypeConstants } from \"../../constants/clientType.constants\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { templateActions } from \"../../../store/actions/cms/template/template.action\";\r\nimport { DragDropContext } from \"react-beautiful-dnd\";\r\nimport { cmsActions } from \"../../../store/actions/cms/cms.action\";\r\nimport { sourceTypes } from \"../../../constants/cms/sourceType\";\r\nimport { WordCloud } from \"../other/WordCloud/WordCloud\";\r\nimport { BarChart } from \"../charts/BarChart/BarChart\";\r\nimport { RatingChart } from \"../charts/RatingChart/RatingChart\";\r\nimport { presenterTypeConstants } from \"../../constants/presenterType.constants\";\r\nimport { PieChart } from \"../charts/PieChart/PieChart\";\r\nimport { TextFlow } from \"../other/TextFlow/TextFlow\";\r\nimport { ColumnChart } from \"../charts/ColumnChart/ColumnChart\";\r\nimport { adjustContentHeight } from \"../../../helpers/viewPortHelper\";\r\nimport { DisparityChart } from \"../charts/DisparityChart/DisparityChart\";\r\nimport Axios from \"axios\";\r\nimport { getKey } from \"../../../helpers/UrlHelper\";\r\n\r\nclass PresenterLayout extends Component {\r\n state = {\r\n hubConnection: null,\r\n clientKey: \"\",\r\n answer: null,\r\n question: null,\r\n availableLanguages: null,\r\n clientResponses: [],\r\n presentParticipants: [],\r\n defaultLanguage: \"swe\",\r\n selectedLanguage: null,\r\n importedAttendees: [],\r\n error: null,\r\n sent: false,\r\n sending: false,\r\n connected: false,\r\n fade: false,\r\n eventId: -1,\r\n templateId: 0,\r\n countdown: 0,\r\n connecting: false,\r\n presenterSettings: {\r\n displayTypeText: \"TEXTFLOW\",\r\n displayTypeOption: \"BARCHART\",\r\n moderationMode: false,\r\n presentationOrder: \"SORTORDER\",\r\n showCount: true,\r\n showPercent: false,\r\n showNamesTextflow: false,\r\n },\r\n };\r\n componentDidMount() {\r\n window.scrollTo(0, 0);\r\n const eventId = this.props.match.params.id;\r\n document.body.style.overflow = \"hidden\";\r\n\r\n if (isNaN(eventId)) {\r\n this.getEventId(eventId);\r\n } else {\r\n this.setState({ eventId }, () => this.connectToHub());\r\n }\r\n this.props.dispatch(cmsActions.setEnviroment(sourceTypes.INTERACTION, false));\r\n const params = new URLSearchParams(window.location.search);\r\n const lang = params.get(getKey(\"lang\", params));\r\n if (lang) {\r\n this.setState({ selectedLanguage: lang });\r\n }\r\n }\r\n componentDidUpdate(prevProps, prevState) {\r\n const { connecting, dismissConnectionLoss, forceDisc, connected } = this.state;\r\n\r\n if (connected == false && prevState.connected == true && connecting == false) {\r\n this.tryReconnect();\r\n this.counter = setInterval(() => this.setState({ countdown: this.state.countdown + 1 }), 1000);\r\n } else if (this.state.countdown >= 60 && !connected && prevState.connected == false) {\r\n this.setState({ countdown: 0, connecting: false });\r\n this.tryReconnect();\r\n } else if (connected == true && prevState.connected == false && !this.state.connecting && this.hubConnection && this.hubConnection.connectionState == 1) {\r\n if (this.counter) clearInterval(this.counter);\r\n this.setState({ countdown: 0 });\r\n }\r\n }\r\n getEventId = (eventCode) => {\r\n Axios.get(`./api/event/getId/${eventCode}`)\r\n .then((res) => {\r\n this.setState({ eventId: res.data.id }, () => this.connectToHub());\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n onGetOrderList = (list) => {\r\n this.setState({ importedAttendees: list });\r\n };\r\n setClientKey = (key) => {\r\n localStorage.setItem(\"CLIENT_KEY\", key);\r\n };\r\n getClientKey = () => {\r\n return localStorage.getItem(\"CLIENT_KEY\") || null;\r\n };\r\n connectToHub = () => {\r\n const { eventId } = this.state;\r\n const { user } = this.props;\r\n try {\r\n if (!this.hubConnection) {\r\n this.hubConnection = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n }\r\n } catch (error) {\r\n this.onError(error);\r\n }\r\n this.setState({ connecting: true });\r\n let clientKey = this.getClientKey();\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n this.hubConnection.on(\"onHandshake\", this.onHandshake);\r\n this.hubConnection.on(\"onClientResponse\", this.onClientResponse);\r\n this.hubConnection.on(\"onDeployQuestionToPresenter\", this.onDeployQuestionToPresenter);\r\n this.hubConnection.on(\"onUpdatedPresenterSettings\", this.onUpdatedPresenterSettings);\r\n this.hubConnection.on(\"onNewPresentParticipant\", this.onNewPresentParticipant);\r\n this.hubConnection.on(\"onGetOrderList\", this.onGetOrderList);\r\n this.hubConnection.on(\"onClearDisplay\", this.onClearDisplay);\r\n this.hubConnection.on(\"onClearResponses\", this.onClearResponses);\r\n this.hubConnection.on(\"onClearQuestionAnswers\", this.onClearQuestionAnswers);\r\n this.hubConnection.onclose(() => {\r\n this.setState({ connected: false });\r\n });\r\n this.hubConnection\r\n .invoke(\"handshake\", {\r\n eventId,\r\n clientType: clientTypeConstants.INTERACTION_PRESENTER,\r\n clientKey,\r\n userGuid: user ? user.userGuid : null,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n })\r\n .catch((error) => {\r\n this.onError(error);\r\n });\r\n };\r\n onNewPresentParticipant = (order) => {\r\n const { presentParticipants } = this.state;\r\n if (!presentParticipants.find((x) => x.badgeNo == order.badgeNo)) {\r\n presentParticipants.push(order);\r\n this.setState({ presentParticipants });\r\n }\r\n };\r\n onClearResponses = () => {\r\n this.setState({ clientResponses: [] });\r\n };\r\n\r\n onUpdatedPresenterSettings = (settings) => {\r\n this.setState({ presenterSettings: settings });\r\n };\r\n\r\n onHandshake = (response) => {\r\n if (response.success) {\r\n this.hubConnection.invoke(\"getOrderList\", this.state.eventId).catch((err) => {\r\n this.onError(err);\r\n });\r\n if (response.interactionPresenterTemplateId) this.props.dispatch(templateActions.get(response.interactionPresenterTemplateId));\r\n this.setState({\r\n connected: true,\r\n connecting: false,\r\n templateId: response.interactionPresenterTemplateId,\r\n });\r\n } else {\r\n this.onError(response.message);\r\n }\r\n };\r\n tryReconnect = () => {\r\n if (!this.state.connected && !this.state.connecting) {\r\n this.connectToHub();\r\n }\r\n };\r\n\r\n onDeployQuestionToPresenter = (response) => {\r\n let aList = response.answers;\r\n\r\n if (this.state.presenterSettings.displayTypeText === presenterTypeConstants.WORDCLOUD) {\r\n aList = aList.filter(({ answer }) => answer?.split(\" \")?.length === 1);\r\n }\r\n this.setState({\r\n question: response.question,\r\n clientResponses: aList,\r\n presentParticipants: response.presentParticipants || [],\r\n });\r\n };\r\n onClearDisplay = () => {\r\n this.setState({\r\n question: null,\r\n clientResponses: [],\r\n });\r\n };\r\n onError = (error) => {\r\n this.setState({ error });\r\n };\r\n convertOptionIdToText = (id) => {\r\n let optionId = parseInt(id);\r\n if (isNaN(optionId)) return id;\r\n const { question, defaultLanguage } = this.state;\r\n let text = id;\r\n\r\n try {\r\n text = question.questionOption.find((o) => o.questionOptionId === optionId).questionOptionLanguage.find((l) => l.languageCode === (this.state.selectedLanguage ?? this.state.defaultLanguage)).label;\r\n } catch (error) {}\r\n return text;\r\n };\r\n onClientResponse = (response) => {\r\n let responses = Array.from(\r\n this.state.clientResponses.map((a) => {\r\n if (a.type === \"Option\") {\r\n a.answerText = this.convertOptionIdToText(a.answer);\r\n }\r\n return a;\r\n })\r\n );\r\n const existingResponse = responses.find((r) => {\r\n return r.answerId === response.answerId;\r\n });\r\n if (existingResponse && response.status === 3) {\r\n responses.splice(responses.indexOf(existingResponse), 1);\r\n }\r\n if (response.type === \"Option\") {\r\n response.answerText = this.convertOptionIdToText(response.answer);\r\n }\r\n if (!existingResponse) {\r\n responses.push(response);\r\n }\r\n if (response && this.state.question && response.questionId === this.state.question.questionId) {\r\n if (this.state.presenterSettings.displayTypeText === presenterTypeConstants.WORDCLOUD && response.type.toUpperCase() === \"TEXT\") {\r\n if (response.answer?.split(\" \")?.length > 1) return;\r\n const timeout = setTimeout(() => {\r\n this.setState({ clientResponses: responses.filter(({ answer }) => answer?.split(\" \")?.length === 1) });\r\n clearTimeout(timeout);\r\n }, 1500);\r\n } else {\r\n this.setState({ clientResponses: responses });\r\n }\r\n }\r\n };\r\n onClearQuestionAnswers = (res) => {\r\n if (res) {\r\n let uptResponses = Array.from(this.state.clientResponses);\r\n uptResponses = uptResponses.filter((r) => r.questionId !== res);\r\n this.setState({ clientResponses: uptResponses });\r\n }\r\n };\r\n renderDataVisualizer = () => {\r\n const { clientResponses, question, presenterSettings } = this.state;\r\n\r\n // const { template } = this.props;\r\n const { presentationOrder, showPercent, showCount, showNamesTextflow } = presenterSettings;\r\n let categories = [];\r\n const template = this.groupTemplate();\r\n try {\r\n categories = question.questionOption.map((qo) => {\r\n return qo.questionOptionLanguage.find((ql) => ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || qo.questionOptionLanguage?.[0]?.label;\r\n });\r\n } catch (error) {}\r\n\r\n const presenterType = presenterSettings[\"displayType\" + question.type];\r\n switch (presenterType) {\r\n case presenterTypeConstants.WORDCLOUD:\r\n return (\r\n {\r\n return a.answer;\r\n })}\r\n questionName={question.questionLanguage.find((ql) => ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || question.questionLanguage?.[0]?.label}\r\n template={template}\r\n />\r\n );\r\n case presenterTypeConstants.BARCHART:\r\n return (\r\n {\r\n let answer = this.convertOptionIdToText(a.answer);\r\n return { answer, weight: a.answerWeight };\r\n })}\r\n questionName={question.questionLanguage.find((ql) => ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || question.questionLanguage?.[0]?.label}\r\n categories={categories}\r\n showPercent={showPercent}\r\n showCount={showCount}\r\n presentationOrder={presentationOrder}\r\n template={template}\r\n />\r\n );\r\n case presenterTypeConstants.COLUMNCHART:\r\n return (\r\n {\r\n let answer = this.convertOptionIdToText(a.answer);\r\n return { answer, weight: a.answerWeight };\r\n })}\r\n categories={categories}\r\n showPercent={showPercent}\r\n showCount={showCount}\r\n presentationOrder={presentationOrder}\r\n questionName={question.questionLanguage.find((ql) => ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || question.questionLanguage?.[0]?.label}\r\n template={template}\r\n />\r\n );\r\n case presenterTypeConstants.RATING_CHART:\r\n return (\r\n {\r\n let answer = this.convertOptionIdToText(a.answer);\r\n return answer;\r\n })}\r\n questionName={question.questionLanguage.find((ql) => ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || question.questionLanguage?.[0]?.label}\r\n template={template}\r\n />\r\n );\r\n case presenterTypeConstants.DISPARITYCHART:\r\n return (\r\n ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || question.questionLanguage?.[0]?.label}\r\n importedAttendees={this.state.importedAttendees}\r\n template={template}\r\n />\r\n );\r\n case presenterTypeConstants.PIECHART:\r\n return (\r\n {\r\n let answer = this.convertOptionIdToText(a.answer);\r\n return { answer, weight: a.answerWeight };\r\n })}\r\n questionName={question.questionLanguage.find((ql) => ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || question.questionLanguage?.[0]?.label}\r\n categories={categories}\r\n showPercent={showPercent}\r\n showCount={showCount}\r\n presentationOrder={presentationOrder}\r\n template={template}\r\n />\r\n );\r\n case presenterTypeConstants.TEXTFLOW:\r\n return (\r\n {\r\n return { answer: a.answer, name: a.clientName };\r\n })}\r\n questionName={question.questionLanguage.find((ql) => ql.languageCode === this.state.selectedLanguage || ql.languageCode === this.state.defaultLanguage)?.label || question.questionLanguage?.[0]?.label}\r\n template={template}\r\n />\r\n );\r\n default:\r\n return null;\r\n }\r\n };\r\n groupTemplate = () => {\r\n const { template } = this.props;\r\n if (template === undefined) return null;\r\n return template.content;\r\n };\r\n fadeIn = () => {\r\n this.setState({ fadeIn: !this.state.fadeIn });\r\n };\r\n renderContent = () => {\r\n const { question } = this.state;\r\n if (!question) return null;\r\n return this.renderDataVisualizer();\r\n };\r\n render() {\r\n const { connected } = this.state;\r\n const { template } = this.props;\r\n const style = this.groupTemplate();\r\n if (template === undefined) return null;\r\n if (!style) return null;\r\n let h = adjustContentHeight(window.innerHeight, style.content, style.header, style.footer);\r\n return (\r\n \r\n \r\n {this.renderContent()}\r\n \r\n \r\n );\r\n }\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template,\r\n user: state.authentication.user,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(PresenterLayout);\r\n","import React from 'react';\r\nimport { Spinner } from 'reactstrap'\r\nimport './SplashScreen.css';\r\nexport const SplashScreen = (props) => {\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}","import React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport List from \"@material-ui/core/List\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Badge from \"@material-ui/core/Badge\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport { ListItemSecondaryAction, Tooltip, IconButton } from \"@material-ui/core\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport ForumTwoToneIcon from \"@material-ui/icons/ForumTwoTone\";\r\nimport ReactEternalList from \"../../../../components/ReactEternalList/ReactEternalList\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n backgroundColor: \"#3a3b3c\",\r\n borderRadius: 5,\r\n marginRight: theme.spacing(2),\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"calc(100% - 10px)\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: 0,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"calc(100% - 10px)\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n color: \"#FFFFFF99\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n color: \"#FFFFFF99\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"100%\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n online: {\r\n background: \"#44b700\",\r\n },\r\n offline: {\r\n background: \"orangered\",\r\n },\r\n}));\r\nfunction usePrevious(value) {\r\n // The ref object is a generic container whose current property is mutable ...\r\n // ... and can hold any value, similar to an instance property on a class\r\n const ref = useRef();\r\n // Store current value in ref\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]); // Only re-run if value changes\r\n // Return previous value (happens before update in useEffect above)\r\n return ref.current;\r\n}\r\nconst OnlineBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n \"&::after\": {\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: \"50%\",\r\n animation: \"$ripple 1.2s infinite ease-in-out\",\r\n border: \"1px solid currentColor\",\r\n content: '\"\"',\r\n },\r\n },\r\n \"@keyframes ripple\": {\r\n \"0%\": {\r\n transform: \"scale(.8)\",\r\n opacity: 1,\r\n },\r\n \"100%\": {\r\n transform: \"scale(2.4)\",\r\n opacity: 0,\r\n },\r\n },\r\n}))(Badge);\r\n\r\nconst OfflineBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: \"orangered\",\r\n color: \"orangered\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n \"&::after\": {\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: \"50%\",\r\n animation: \"$ripple 1.2s infinite ease-in-out\",\r\n border: \"1px solid currentColor\",\r\n content: '\"\"',\r\n },\r\n },\r\n}))(Badge);\r\n\r\nexport default function ClientList(props) {\r\n const [filter, setFilter] = React.useState(\"\");\r\n const [changeKey, setChangeKey] = React.useState(\"\");\r\n\r\n const prevProps = usePrevious(props);\r\n\r\n const searchFilter = (e) => {\r\n setFilter(e.target.value);\r\n };\r\n const classes = useStyles();\r\n const undreadMessages = (key) => {\r\n const { chat } = props;\r\n if (!Array.isArray(chat)) return 0;\r\n let count = 0;\r\n chat.map((c) => {\r\n if (c.target == key) {\r\n count += c.messages.filter((m) => m.seen == false && m.receiver == \"MODERATOR\").length;\r\n }\r\n });\r\n return count;\r\n };\r\n\r\n const renderListItem = (a, i) => {\r\n return (\r\n \r\n \r\n {props.online ? (\r\n \r\n {`${a.nameInitials}`}\r\n \r\n ) : (\r\n \r\n {`${a.nameInitials}`}\r\n \r\n )}\r\n \r\n \r\n \r\n {props.online? \r\n \r\n :null}\r\n {props.allowChat ? (\r\n props.selectChat(a.badgeNo)}>\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n );\r\n };\r\n const { orderList, sideView = false, online, clientViewRef, clientList } = props;\r\n let listHeight = 500;\r\n if (clientViewRef) listHeight = clientViewRef.clientHeight;\r\n\r\n const oList = useMemo(() => {\r\n return online\r\n ? orderList\r\n .filter((o) => clientList.find((c) => c.clientKey == o.badgeNo))\r\n .filter((ia) => (filter ? ia.name.toLowerCase().includes(filter.toLowerCase()) || (ia.company && ia.company.toLowerCase().includes(filter.toLowerCase())) : true))\r\n : clientList.length == 0\r\n ? orderList\r\n : orderList\r\n .filter((o) => clientList.find((c) => c.clientKey != o.badgeNo))\r\n .filter((ia) => (filter ? ia.name.toLowerCase().includes(filter.toLowerCase()) || (ia.company && ia.company.toLowerCase().includes(filter.toLowerCase())) : true));\r\n }, [orderList, clientList, filter, props.speakers]);\r\n\r\n useEffect(() => {\r\n if (prevProps && props.speakers != prevProps.speakers) {\r\n setChangeKey(+new Date());\r\n }\r\n if (prevProps && props.activeAgenda != prevProps.activeAgenda) {\r\n setChangeKey(+new Date());\r\n }\r\n }, [props.speakers, props.activeAgenda]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst SpeakerActions = ({ badgeNo, speakers, activeAgenda, setSpeaker, activateSpeaker, parentId, allowSpeaker }) => {\r\n if (!allowSpeaker && !activeAgenda) return null;\r\n const attendeeSpeaker = speakers?.find((s) => s.badgeNo == badgeNo && s.agendaItemId == activeAgenda?.agendaItemId);\r\n\r\n if (attendeeSpeaker && attendeeSpeaker.active == true) {\r\n return (\r\n activateSpeaker(badgeNo, attendeeSpeaker.interactionSpeakerId)}>\r\n }>\r\n \r\n \r\n \r\n );\r\n } else if (attendeeSpeaker && attendeeSpeaker.active == false) {\r\n return (\r\n activateSpeaker(badgeNo, attendeeSpeaker.interactionSpeakerId)}>\r\n }>\r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n setSpeaker(activeAgenda.agendaItemId, 2, badgeNo, parentId, true)}>\r\n }>\r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport QuestionTabs from './QuestionTabs';\r\nimport { Col } from 'reactstrap';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport SystemLabel from '../../../../../system/SystemLabel/SystemLabel';\r\n\r\n\r\n\r\nexport default function QuestionStats(props) {\r\n useEffect(() => {\r\n\r\n return () => null;\r\n }, [props.clientResponses]);\r\n\r\n const { clientResponses, selectedQuestion, sendResponse, orderList,questionPresentParticipants,\r\n clear, textEditing, questionName, active, removeClientData, eventId, user, clientList, selectedOptions } = props;\r\n let orderListFiltered = Array.from(orderList);\r\n\r\n if (selectedQuestion.personType && selectedQuestion.personType > 0) {\r\n orderListFiltered = orderListFiltered.filter(a => {\r\n return !a.personTypes.includes(selectedQuestion.personType);\r\n })\r\n }\r\n let totalAnswerCount = 0\r\n for (const a of clientResponses) {\r\n totalAnswerCount += 1 * a.answerWeight;\r\n } \r\n const answered = orderListFiltered.filter(a => {\r\n return props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n }).length\r\n const notAnsweredButPresent = questionPresentParticipants.filter(a => {\r\n return !props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n }).length\r\n const notAnswered = orderListFiltered.filter(a => {\r\n return !props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n }).length\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {answered}\r\n \r\n \r\n \r\n {questionPresentParticipants.length > 0 ? Math.round((answered / questionPresentParticipants.length) * 100) + '%' : ''}\r\n \r\n \r\n {clientList.length > 0 ? Math.round((answered / orderListFiltered.length) * 100) + '%' : ''}\r\n \r\n
\r\n {/*
\r\n \r\n \r\n \r\n \r\n {notAnsweredButPresent}\r\n \r\n \r\n \r\n {clientList.length > 0 ? (Math.round((notAnsweredButPresent / questionPresentParticipants.length) * 100)) + '%' : ''}\r\n \r\n
*/}\r\n
\r\n \r\n \r\n \r\n \r\n {notAnswered}\r\n \r\n \r\n \r\n {questionPresentParticipants.length > 0 ? Math.round((notAnsweredButPresent / questionPresentParticipants.length) * 100) + '%' : ''}\r\n \r\n \r\n {clientList.length > 0 ? (Math.round((notAnswered / orderListFiltered.length) * 100)) + '%' : ''}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {selectedQuestion.questionOption.map((qo, i) => {\r\n\r\n return
\r\n \r\n {qo.questionOptionLanguage.find(\r\n ql => ql.languageCode == props.lang\r\n ).label}\r\n \r\n \r\n
\r\n })}\r\n
\r\n\r\n
\r\n );\r\n}\r\n\r\nfunction ClientResponseCount({ clientResponses, questionOption, orderList, totalAnswerCount, questionPresentParticipants = [] }) {\r\n\r\n var answerCount = 0\r\n for (const a of clientResponses.filter(cr => cr.answer == questionOption.questionOptionId.toString())) {\r\n answerCount += 1 * a.answerWeight;\r\n } \r\n // const responses = clientResponses.filter(cr => cr.answer == questionOption.questionOptionId.toString()).length;\r\n var badgeNoList = [];\r\n orderList.map(ia => {\r\n badgeNoList.push(ia.badgeNo);\r\n })\r\n const answerPersons = [];\r\n clientResponses.filter(cr => cr.answer == questionOption.questionOptionId.toString() && badgeNoList.includes(cr.clientKey)).map(cr => {\r\n if (!answerPersons.includes(cr.clientKey)) {\r\n answerPersons.push(cr.clientKey);\r\n }\r\n });\r\n return \r\n \r\n {answerCount}\r\n \r\n \r\n {totalAnswerCount > 0 ? Math.round(answerCount / totalAnswerCount * 100) + '%' : \"\"}\r\n \r\n \r\n {answerPersons.length > 0 && questionPresentParticipants.length > 0 ? Math.round(answerPersons.length / questionPresentParticipants.length * 100) + '%' : '0%'}\r\n \r\n \r\n {answerPersons.length > 0 && orderList.length > 0 ? Math.round(answerPersons.length / orderList.length * 100) + '%' : '0%'}\r\n \r\n \r\n}","import React, { useState } from \"react\";\r\nimport { fade, makeStyles } from \"@material-ui/core/styles\";\r\nimport List from \"@material-ui/core/List\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport ContentEditable from \"react-contenteditable\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\nimport { formatTime } from \"../../../../../helpers/time.helper\";\r\nimport AccessTimeIcon from \"@material-ui/icons/AccessTime\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n backgroundColor: \"#3a3b3c\",\r\n borderRadius: 5,\r\n marginRight: theme.spacing(2),\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: 0,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n color: \"#FFFFFF99\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n color: \"#FFFFFF99\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"20ch\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n}));\r\n\r\nexport default function MessageList(props) {\r\n const [activeTab, setActiveTab] = useState(\"1\");\r\n const [filter, setFilter] = useState(\"\");\r\n const {\r\n status,\r\n clientResponses,\r\n sendResponse,\r\n clear,\r\n textEditing,\r\n questionName,\r\n active,\r\n removeClientData,\r\n eventId,\r\n } = props;\r\n\r\n const searchFilter = (e) => {\r\n setFilter(e.target.value);\r\n };\r\n const sortResponses = () => {\r\n let res = [];\r\n clientResponses.map((cr, i) => {\r\n res.push({ ...cr, sortNo: i + 1 });\r\n });\r\n return res;\r\n };\r\n const renderMessage = (q, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {q.sortNo}\r\n \r\n \r\n
\r\n
\r\n \r\n {q.clientName}{\" \"}\r\n \r\n \r\n {formatTime(q.inserted)}\r\n
\r\n
\r\n \r\n {\r\n textEditing(e.target.value, q.answerId);\r\n sendResponse({ ...q, answer: e.target.value });\r\n }}\r\n tagName=\"p\"\r\n />\r\n \r\n \r\n {status == 1 ? (\r\n sendResponse({ ...q, status: 2 })}\r\n >\r\n \r\n \r\n ) : (\r\n \r\n sendResponse({ ...q, status: q.status === 2 ? 3 : 2 })\r\n }\r\n >\r\n {q.status === 2 ? : }\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const classes = useStyles();\r\n const responses = sortResponses();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {status === 1 ? (\r\n \r\n {responses\r\n .filter((q) => {\r\n return (\r\n q.status < 2 &&\r\n q.answer !== null &&\r\n q.answer.toLowerCase().includes(filter.toLowerCase())\r\n );\r\n })\r\n .map((q, i) => {\r\n return renderMessage(q, i);\r\n })}\r\n \r\n ) : null}\r\n {status === 2 ? (\r\n \r\n {responses\r\n .filter((q) => {\r\n return (\r\n q.status > 1 &&\r\n q.answer !== null &&\r\n q.answer.toLowerCase().includes(filter.toLowerCase())\r\n );\r\n })\r\n .map((q, i) => {\r\n return renderMessage(q, i);\r\n // return (\r\n // \r\n // \r\n // \r\n // \r\n // {q.sortNo}\r\n // \r\n // \r\n\r\n //
\r\n //
\r\n // \r\n // {\" \"}\r\n // {q.clientName}{\" \"}\r\n //
\r\n //
\r\n // {\r\n // textEditing(e.target.value, q.answerId);\r\n // sendResponse({ ...q, answer: e.target.value });\r\n // }}\r\n // tagName=\"p\"\r\n // />\r\n // \r\n // \r\n // {formatTime(q.inserted)}\r\n //
\r\n // \r\n // \r\n // \r\n // sendResponse({ ...q, status: q.status === 2 ? 3 : 2 })\r\n // }\r\n // >\r\n // {q.status === 2 ? (\r\n // \r\n // ) : (\r\n // \r\n // )}\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // );\r\n })}\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport ClientList from '../ClientList';\r\nimport QuestionStats from './QuestionStats';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport MessageList from './MessageList';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport SystemLabel from '../../../../../system/SystemLabel/SystemLabel';\r\n\r\n\r\nconst StyledTab = withStyles((theme) => ({\r\n root: {\r\n textTransform: 'none',\r\n color: '#222',\r\n fontWeight: theme.typography.fontWeightRegular,\r\n fontSize: theme.typography.pxToRem(15),\r\n marginRight: theme.spacing(1),\r\n '&:focus': {\r\n opacity: 1,\r\n },\r\n },\r\n}))((props) => );\r\nconst StyledTabs = withStyles({\r\n indicator: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n backgroundColor: 'transparent',\r\n '& > div': {\r\n maxWidth: 40,\r\n width: '100%',\r\n backgroundColor: '#635ee7',\r\n },\r\n },\r\n})((props) => }} />);\r\n\r\nexport function TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n : (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {\r\n orderList.length > 0 ? (\r\n \r\n \r\n {\r\n return props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n })}\r\n clientList={props.clientList} />\r\n \r\n \r\n {\r\n return !props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n })}\r\n clientList={props.clientList} />\r\n \r\n \r\n ) : null\r\n }\r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\n","/* import config from 'c'; */\r\nimport { handleResponse } from \"../../helpers/handleresponse\";\r\nimport { authHeader } from \"../../helpers/authHeader\";\r\n\r\nexport const questionService = {\r\n getAllQuestionsByEvent,\r\n updateQuestion,\r\n create,\r\n updateRange,\r\n deleteQuestion\r\n};\r\n\r\nasync function getAllQuestionsByEvent(eventId, includeInherited = false) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n return fetch(`./api/question/${eventId}/?includeInherited=${includeInherited}`, requestOptions)\r\n .then(handleResponse)\r\n .then(questions => {\r\n return questions;\r\n });\r\n}\r\nasync function updateQuestion(question) {\r\n const requestOptions = {\r\n method: \"PUT\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(question),\r\n };\r\n return fetch(`./api/question`, requestOptions)\r\n .then(handleResponse)\r\n .then(q => {\r\n return q;\r\n });\r\n\r\n}\r\nasync function deleteQuestion(questionId) {\r\n const requestOptions = {\r\n method: \"DELETE\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n return fetch(`./api/question/delete/${questionId}`, requestOptions)\r\n .then(handleResponse)\r\n .then(_ => {\r\n return questionId;\r\n });\r\n\r\n}\r\nasync function updateRange(q) {\r\n const requestOptions = {\r\n method: \"PUT\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(q),\r\n };\r\n fetch(`./api/question/updaterange`, requestOptions)\r\n .then(handleResponse)\r\n .then(q => {\r\n return q;\r\n });\r\n};\r\n\r\nasync function create(question) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(question),\r\n };\r\n return fetch(`./api/question`, requestOptions)\r\n .then(handleResponse)\r\n .then(q => {\r\n return q;\r\n });\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","\r\nimport { questionService } from \"../../../services/question/question.service\";\r\nimport { questionConstants } from \"../../../constants/question/question.constants\";\r\nimport { alertActions } from \"../alert.action\";\r\n\r\nexport const questionActions = {\r\n getAllQuestionsByEvent,\r\n updateQuestion,\r\n createQuestion,\r\n updateQuestions,\r\n deleteQuestion\r\n};\r\n\r\n\r\n\r\nfunction getAllQuestionsByEvent(eventId, includeInherited = false) {\r\n return dispatch => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n questionService.getAllQuestionsByEvent(eventId, includeInherited).then(\r\n questions => {\r\n dispatch(success(questions));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: questionConstants.GET_QUESTION_BY_EVENT_REQUEST };\r\n }\r\n function success(questions) {\r\n return { type: questionConstants.GET_QUESTION_BY_EVENT_SUCCESS, questions };\r\n }\r\n function failure(error) {\r\n return { type: questionConstants.GET_QUESTION_BY_EVENT_FAILURE, error };\r\n }\r\n}\r\n/**\r\n * \r\n * @param {Question} question \r\n * @returns same question object sent in, after sending it to server for saving\r\n */\r\nfunction updateQuestion(question) {\r\n return dispatch => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n questionService.updateQuestion(question).then(\r\n _ => {\r\n dispatch(success(question));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: questionConstants.UPDATE_QUESTION_REQUEST };\r\n }\r\n function success(question) {\r\n return { type: questionConstants.UPDATE_QUESTION_SUCCESS, question };\r\n }\r\n function failure(error) {\r\n return { type: questionConstants.UPDATE_QUESTION_FAILURE, error };\r\n }\r\n\r\n}\r\nfunction updateQuestions(q) {\r\n return dispatch => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n questionService.updateRange(q).then(\r\n questions => {\r\n dispatch(success(q));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: questionConstants.UPDATE_QUESTIONS_REQUEST };\r\n }\r\n function success(questions) {\r\n return { type: questionConstants.UPDATE_QUESTIONS_SUCCESS, questions };\r\n }\r\n function failure(error) {\r\n return { type: questionConstants.UPDATE_QUESTIONS_FAILURE, error };\r\n }\r\n\r\n}\r\nfunction deleteQuestion(questionId) {\r\n return dispatch => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n questionService.deleteQuestion(questionId).then(\r\n questionId => {\r\n dispatch(success(questionId));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: questionConstants.DELETE_QUESTIONS_REQUEST };\r\n }\r\n function success(questionId) {\r\n return { type: questionConstants.DELETE_QUESTIONS_SUCCESS, questionId };\r\n }\r\n function failure(error) {\r\n return { type: questionConstants.DELETE_QUESTIONS_FAILURE, error };\r\n }\r\n\r\n}\r\n\r\nfunction createQuestion(qs) {\r\n return dispatch => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n questionService.create(qs).then(\r\n question => {\r\n dispatch(success(question));\r\n },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: questionConstants.CREATE_QUESTION_REQUEST };\r\n }\r\n function success(question) {\r\n return { type: questionConstants.CREATE_QUESTION_SUCCESS, question };\r\n }\r\n function failure(error) {\r\n return { type: questionConstants.CREATE_QUESTION_FAILURE, error };\r\n }\r\n\r\n}\r\n","import React from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport { Input, Label } from \"reactstrap\";\r\nimport { FormGroup } from \"@material-ui/core\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function ConfirmModal({ text, header, onCancel, onAction, open, extraProps = null, showNameInput = false, onNameEdit }) {\r\n return (\r\n
\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n {showNameInput ? (\r\n
\r\n
\r\n \r\n \r\n onNameEdit(e.target.value)} />\r\n \r\n
\r\n ) : null}\r\n {/* */}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport { /* Button, */ Form, Button as bsButton, FormGroup, Label, Input, FormText, Col, Row, InputGroup, InputGroupAddon, InputGroupButtonDropdown } from \"reactstrap\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport CheckBoxIcon from \"@material-ui/icons/CheckBox\";\r\nimport ChatIcon from \"@material-ui/icons/Chat\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport AddBoxIcon from \"@material-ui/icons/AddBox\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ReactDragList from \"react-drag-list\";\r\nimport DragIndicatorIcon from \"@material-ui/icons/DragIndicator\";\r\nimport SystemLabel from \"../../../../../system/SystemLabel/SystemLabel\";\r\n\r\nimport \"./QuestionStyle.css\";\r\nimport { deepClone } from \"../../../../../helpers/objectHelper\";\r\nimport { questionActions } from \"../../../../../store/actions/question/question.action\";\r\nimport ConfirmModal from \"../../../../../components/ConfirmModal/ConfirmModal\";\r\nimport Select from \"react-select\";\r\nimport { labelHelper } from \"../../../../../helpers/labelHelper\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst textPresenterTypes = [\r\n { value: \"NONE\", label: },\r\n { value: \"WORDCLOUD\", label: },\r\n { value: \"TEXTFLOW\", label: },\r\n];\r\nconst optionPresenterTypes = [\r\n { value: \"NONE\", label: },\r\n { value: \"BARCHART\", label: },\r\n { value: \"COLUMNCHART\", label: },\r\n { value: \"PIECHART\", label: },\r\n { value: \"DISPARITYCHART\", label: },\r\n // { value: \"LINECHART\", label: },\r\n];\r\n\r\nconst customStyles = {\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"rgb(58, 59, 60)\",\r\n color: \"#ffffffde\",\r\n border: \"0px\",\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#ffffffde\",\r\n maxWidth: \"100%\",\r\n border: 0,\r\n [\"&:focus\"]: {\r\n outline: 0,\r\n border: 0,\r\n },\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#ffffffde\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#1d1d1d\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"rgb(47, 47, 47)\",\r\n color: \"#ffffffde\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n};\r\n\r\nfunction EditQuestion(props) {\r\n const [question, setQuestion] = React.useState(null);\r\n const [placeholderOption, newOption] = React.useState(\"\");\r\n const [modalOpen, toggleModal] = React.useState(false);\r\n const currentPresenterTypes = useMemo(() => {\r\n if (question && question.type == \"Text\") return textPresenterTypes;\r\n else if (question && question.type == \"Option\") return optionPresenterTypes;\r\n else return [];\r\n }, [question]);\r\n\r\n useEffect(() => {\r\n if (!question || props.selectedQuestion.questionId !== question.questionId) {\r\n setQuestion(deepClone(props.selectedQuestion));\r\n }\r\n if (props.saveRequest) {\r\n saveQuestion();\r\n props.snackbarHandler(\"QuestionUpdated\");\r\n props.closeSaveRequest(true);\r\n } else if (props.deleteRequest) {\r\n deleteQuestion();\r\n props.snackbarHandler(\"QuestionDeleted\");\r\n props.closeDeleteRequest(true);\r\n\r\n props.toggleQuestionInfo(null);\r\n }\r\n return () => null;\r\n });\r\n\r\n /* useEffect(() => {\r\n if(props.selectedQuestion.questionId != question.questionId) setQuestion(props.selectedQuestion)\r\n }, [props.selectedQuestion]) */\r\n\r\n const { open, language, user, onQuestionAdd } = props;\r\n const handleClose = () => {\r\n toggleModal(false);\r\n };\r\n const sortOptions = (options) => {\r\n if (options.length === 0) return [];\r\n options.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n return options;\r\n };\r\n\r\n const saveQuestion = () => {\r\n const { dispatch } = props;\r\n const cQuestion = deepClone(question);\r\n dispatch(questionActions.updateQuestion(cQuestion));\r\n };\r\n const deleteQuestion = () => {\r\n const { dispatch } = props;\r\n dispatch(questionActions.deleteQuestion(question.questionId));\r\n };\r\n const addOption = () => {\r\n const name = placeholderOption;\r\n const sortOrder = question.questionOption.length > 0 ? question.questionOption.length + 1 : 1;\r\n\r\n const questionOptionIds = question?.questionOption?.filter((qo) => qo.questionOptionId < 0)?.map((qo) => qo.questionOptionId);\r\n const newQuestionOptionId = questionOptionIds?.length ? Math.min(...questionOptionIds) - 1 : -1;\r\n\r\n const option = {\r\n questionId: question.questionId,\r\n questionOptionLanguage: [\r\n {\r\n label: name,\r\n languageCode: props.lang,\r\n },\r\n ],\r\n questionOptionId: newQuestionOptionId,\r\n sortOrder,\r\n };\r\n newOption(\"\");\r\n\r\n const uOptions = Array.from(question.questionOption);\r\n uOptions.push(option);\r\n handleChange(uOptions, \"questionOption\");\r\n };\r\n\r\n const onOptionLabelChange = (id, value) => {\r\n const uQuestion = Object.assign({}, question);\r\n const options = Array.from(uQuestion.questionOption);\r\n const optionsLangs = options?.flatMap((ql) => ql.questionOptionLanguage.map((qol) => qol.languageCode));\r\n\r\n if (!optionsLangs.includes(props.lang)) {\r\n const copiedOption = options[0];\r\n copiedOption.languageCode = props.lang;\r\n copiedOption.label = value;\r\n options.push(copiedOption);\r\n } else {\r\n options.map((ql) => {\r\n if (ql.questionOptionId === id) {\r\n ql.questionOptionLanguage.map((qol) => {\r\n if (qol.languageCode === props.lang) {\r\n qol.label = value;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n uQuestion.questionOption = options;\r\n setQuestion(uQuestion);\r\n props.setSavable(true);\r\n };\r\n\r\n const onLabelChange = (value, isOption = false) => {\r\n const uQuestion = deepClone(question);\r\n const labels = Array.from(uQuestion.questionLanguage);\r\n\r\n const labelLangs = labels.map((ql) => ql.languageCode);\r\n\r\n if (!labelLangs.includes(props.lang)) {\r\n const copiedLabel = labels[0];\r\n copiedLabel.languageCode = props.lang;\r\n copiedLabel.label = value;\r\n labels.push(copiedLabel);\r\n } else {\r\n labels.map((ql) => {\r\n if (ql.languageCode === props.lang) {\r\n ql.label = value;\r\n }\r\n });\r\n }\r\n\r\n uQuestion.questionLanguage = labels;\r\n setQuestion(uQuestion);\r\n props.setSavable(true);\r\n };\r\n\r\n const handleOrderChange = (event, dataSource) => {\r\n const sortedOptions = dataSource.map((ds, i) => {\r\n let el = Object.assign({}, ds);\r\n el.sortOrder = i;\r\n return el;\r\n });\r\n handleChange(sortedOptions, \"questionOption\");\r\n };\r\n\r\n const handleChange = (value, path) => {\r\n const uQuestion = Object.assign({}, question);\r\n uQuestion[path] = value;\r\n setQuestion(uQuestion);\r\n props.setSavable(true);\r\n };\r\n const deleteOption = (index) => {\r\n const uOptions = Array.from(question.questionOption);\r\n uOptions.splice(index, 1);\r\n handleChange(uOptions, \"questionOption\");\r\n toggleModal(false);\r\n };\r\n\r\n const { personTypes } = props;\r\n\r\n const personTypeOptions = [];\r\n personTypeOptions.push({\r\n value: null,\r\n label: labelHelper.getLabel(\"PersonTypeNone\"),\r\n });\r\n\r\n if (personTypes) {\r\n personTypes.map((t) => {\r\n personTypeOptions.push({ value: t.personTypeId, label: t.name });\r\n });\r\n }\r\n\r\n if (!question) return null;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n ql.languageCode === props.lang) ? question.questionLanguage.find((ql) => ql.languageCode === props.lang).label : \"\"}\r\n onChange={(e) => onLabelChange(e.target.value)}\r\n id=\"questionName\"\r\n />\r\n \r\n \r\n \r\n\r\n {question.type === \"Text\" ? (\r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, \"allowedAnswerCount\")}\r\n type=\"number\"\r\n value={question.allowedAnswerCount || \"\"}\r\n />\r\n \r\n \r\n \r\n ) : null}\r\n {question.type === \"Option\" ? (\r\n \r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, \"allowedAnswerCount\")}\r\n type=\"number\"\r\n value={question.allowedAnswerCount || \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, \"requiredMin\")}\r\n type=\"number\"\r\n value={question.requiredMin || \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, \"requiredMax\")}\r\n type=\"number\"\r\n value={question.requiredMax || \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n el.value == (question.presenterType || \"NONE\"))}\r\n onChange={(opt) => handleChange(opt.value, \"presenterType\")}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, \"tag\")}\r\n value={question.tag || \"\"}\r\n />\r\n \r\n

\r\n \r\n {\" \"}\r\n \r\n \r\n

\r\n \r\n
\r\n\r\n {question.type === \"Option\" ? (\r\n \r\n \r\n \r\n newOption(e.target.value)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {question.type === \"Option\" ? (\r\n \r\n handleOrderChange(event, dataSource)}\r\n row={(o, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onOptionLabelChange(o.questionOptionId, e.target.value)}\r\n value={o.questionOptionLanguage !== undefined ? o.questionOptionLanguage?.find((ql) => ql.languageCode === props.lang)?.label || \"\" : \"\"}\r\n />\r\n \r\n \r\n \r\n toggleModal(true)}>\r\n \r\n \r\n \r\n \r\n \r\n deleteOption(index)} onCancel={() => toggleModal(!modalOpen)} header={\"AreYouSure\"} open={modalOpen} text={\"DoWantToDeleteOption\"} />\r\n \r\n );\r\n }}\r\n />\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(EditQuestion);\r\n","import React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport QuestionTabs from './QuestionTabs';\r\nimport { Col } from 'reactstrap';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport SystemLabel from '../../../../../system/SystemLabel/SystemLabel';\r\nimport { IconButton, Tooltip } from '@material-ui/core';\r\nimport EditQuestion from './EditQuestion';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport DeleteIcon from '@material-ui/icons/Delete'\r\nimport RestoreIcon from '@material-ui/icons/Restore';\r\nimport ConfirmModal from '../../../../../components/ConfirmModal/ConfirmModal';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nconst savableStyle = {\r\n backgroundColor: '#05bf052e',\r\n color: '#0abd0a'\r\n};\r\n\r\nexport default function QuestionOverview(props) {\r\n const [editView, showEditView] = React.useState(false);\r\n const [isSavable, setSavable] = React.useState(false);\r\n const [saveRequest, setSave] = React.useState(false);\r\n const [deleteRequest, setDelete] = React.useState(false);\r\n const [open, toggleModal] = React.useState(false)\r\n\r\n const { clientResponses, sendResponse, clear, textEditing, questionName, active, activeQuestions, removeClientData, eventId, clearQuestionAnswers, selectedQuestion } = props;\r\n const savable = (status) => {\r\n setSavable(status)\r\n }\r\n const restore = () => {\r\n toggleModal(false)\r\n clearQuestionAnswers(props.selectedQuestion.questionId)\r\n }\r\n const isDeleteable = (activeQuestions.find(aq => aq == props.selectedQuestion.questionId) === undefined);\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n {active ? questionName : }\r\n {selectedQuestion.eventId != eventId ? \r\n
\r\n {\" \"} \r\n
\r\n
: null}\r\n
\r\n \r\n \r\n {editView && selectedQuestion.eventId == eventId ? \r\n setDelete(true)}\r\n edge=\"end\">\r\n \r\n \r\n\r\n setSave(true)} edge=\"end\">\r\n \r\n \r\n showEditView(!editView)} edge=\"end\">\r\n \r\n \r\n :\r\n \r\n }>\r\n toggleModal(true)}\r\n edge=\"end\">\r\n \r\n \r\n \r\n showEditView(!editView)} edge=\"end\">\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
\r\n {open ? (\r\n toggleModal(false)}\r\n onAction={restore} />\r\n ) : null}\r\n\r\n {editView ? setSave(false)} closeDeleteRequest={() => setDelete(false)} setSavable={savable} {...props} /> : }\r\n
\r\n
\r\n\r\n\r\n );\r\n}","import React from \"react\";\r\nimport {\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Row,\r\n Col,\r\n NavLink\r\n} from \"reactstrap\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport MoreHorizIcon from \"@material-ui/icons/MoreHoriz\";\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport NoteAddIcon from '@material-ui/icons/NoteAdd';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport LastPageIcon from '@material-ui/icons/LastPage';\r\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\r\nimport { IconButton, Tooltip } from \"@material-ui/core\";\r\nimport SystemLabel from \"../../../../../system/SystemLabel/SystemLabel\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n background: 'transparent',\r\n },\r\n}));\r\n\r\nexport const PopList = ({ icon, children, tooltipText }) => {\r\n const classes = useStyles();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popover\" : undefined;\r\n return (\r\n \r\n }>\r\n\r\n\r\n \r\n {icon}\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n\r\n\r\n );\r\n};\r\n\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport List from '@material-ui/core/List';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: 'relative',\r\n\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n}));\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function LayoutDialog(props) {\r\n const classes = useStyles();\r\n\r\n\r\n const handleClose = () => {\r\n props.toggle(false);\r\n };\r\n const { children } = props;\r\n return (\r\n
\r\n
\r\n \r\n {/* */}\r\n \r\n {props.moduleConflict || null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n\r\n
\r\n {/* */}\r\n
\r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { inlineSettings3 } from \"../../components/TinyMCE/tinyconfig\";\r\nimport { Editor } from \"@tinymce/tinymce-react\";\r\nimport FileStorageWrapper from \"../FileStorage/FileStorageWrapper\";\r\nimport { archiveConstants } from \"../FileStorage/contstants/archive.contstants\";\r\n\r\nconst PopEditorClassic = (props) => {\r\n const [editor, setEditor] = useState({});\r\n const [cycleEditor, setCycleEditor] = useState(false);\r\n const [archiveOpen, setArchiveOpen] = useState(false);\r\n const [linkHelperOpen, setLinkHelperOpen] = useState(false);\r\n // setTinymce();\r\n useEffect(() => {\r\n if (cycleEditor) setCycleEditor(false);\r\n }, [cycleEditor]);\r\n\r\n const onInit = (editor) => setEditor(editor);\r\n const handleKeyUp = () => {\r\n const { value, globalFormat, onChange, path, slimFormat } = props;\r\n var content = editor.getContent();\r\n if (content !== value) {\r\n if (globalFormat === true) {\r\n onChange(null, content, path);\r\n } else if (slimFormat === true) {\r\n onChange(content, path);\r\n } else {\r\n onChange(content);\r\n }\r\n }\r\n };\r\n const formatImage = () => {\r\n const content = editor.getContent();\r\n props.onChange(content);\r\n };\r\n const onArchiveUseSelect = (url) => {\r\n var image = new Image();\r\n image.crossOrigin = \"anonymous\"; /* THIS WILL MAKE THE IMAGE CROSS-ORIGIN */\r\n image.src = url;\r\n let content = editor.insertContent(`\"_blank\" `);\r\n content = editor.getContent();\r\n props.onChange(content);\r\n };\r\n const onLinkSelect = (url) => {\r\n let content = editor.insertContent(` `);\r\n content = editor.getContent();\r\n };\r\n const { style, value, sourceCode = true, onChange, user, inline = true, expo = false, height, classic = false, showLinkEditor = true } = props;\r\n let tBarCode = inlineSettings3.toolbar;\r\n if (sourceCode) tBarCode = \"code |\" + tBarCode;\r\n if (showLinkEditor) tBarCode = tBarCode + \"| linkHelper\";\r\n return (\r\n <>\r\n onInit(editor, user && user.userLang)}\r\n disabled={false}\r\n init={{\r\n ...inlineSettings3,\r\n toolbar: tBarCode,\r\n content_style: style,\r\n width: \"100%\",\r\n height: \"100%\",\r\n setup: !expo\r\n ? (editor) => {\r\n editor.ui.registry.addButton(\"archive\", {\r\n icon: \"image\",\r\n image: \"image\",\r\n onAction: () => setArchiveOpen(!archiveOpen),\r\n });\r\n }\r\n : null,\r\n }}\r\n onEditorChange={(e) => handleKeyUp()}\r\n />\r\n\r\n {archiveOpen ? (\r\n null}\r\n toggle={() => setArchiveOpen(!archiveOpen)}\r\n isOpen={true}\r\n initialDisplay={archiveConstants.IMAGE}\r\n showLaunchBtn={false}\r\n />\r\n ) : null}\r\n {/* {linkHelperOpen ? : null} */}\r\n \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.authentication.user,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(PopEditorClassic);\r\n","import React, { useState } from \"react\";\r\nimport { Row, Col, InputGroup, Input, InputGroupAddon, InputGroupText } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport { Tooltip } from \"@material-ui/core\";\r\nimport FileStorageWrapper from \"../FileStorage/FileStorageWrapper\";\r\nimport PhotoLibraryOutlinedIcon from \"@material-ui/icons/PhotoLibraryOutlined\";\r\nimport \"./UrlMultiInput.css\";\r\n\r\nconst UrlMultiInput = ({\r\n url,\r\n onChange,\r\n setImage,\r\n noInfoText = false,\r\n path,\r\n onOpen = null,\r\n externalSourceOnly = false,\r\n margin = true,\r\n cropSizes = null,\r\n rowStyle = {},\r\n colStyle = {},\r\n dark = false,\r\n}) => {\r\n const [vaultOpen, setOpen] = useState(false);\r\n const toggle = () => {\r\n setOpen(!vaultOpen);\r\n if (onOpen && typeof onOpen == \"function\") onOpen(!vaultOpen);\r\n };\r\n const handlePaste = () => {\r\n navigator.clipboard.readText().then((text) => {\r\n if (text.includes(\"https://\") || text.includes(\"data:image/\")) {\r\n if (path) {\r\n onChange(null, text, path);\r\n } else {\r\n onChange(text);\r\n }\r\n }\r\n });\r\n };\r\n const handleInput = (e) => {\r\n let text = e.target.value;\r\n if (path) {\r\n onChange(null, text, path);\r\n } else {\r\n onChange(text);\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n }>\r\n handleInput(e)} value={url} />\r\n \r\n {externalSourceOnly === false ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n {!noInfoText ? (\r\n

\r\n \r\n

\r\n ) : null}\r\n \r\n {vaultOpen ? : null}\r\n
\r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n cms: state.cms,\r\n eventId: state.cms.eventId,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(UrlMultiInput);\r\n","import React from \"react\";\r\n\r\nimport { Controlled } from \"react-codemirror2\";\r\nimport \"codemirror/lib/codemirror.css\";\r\nimport \"codemirror/theme/material.css\";\r\nrequire(\"codemirror/mode/xml/xml\");\r\nrequire(\"codemirror/mode/css/css\");\r\n/* require('codemirror/mode/javascript/javascript'); */\r\n\r\nexport const CodeMirror = ({ onChange, value }) => {\r\n return (\r\n {\r\n onChange(value);\r\n }}\r\n onChange={(editor, value) => {}}\r\n />\r\n );\r\n};\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from 'react-select';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CommentIcon from '@material-ui/icons/Comment';\r\nimport { Grid } from '@material-ui/core';\r\nimport { FormGroup, Label, Spinner } from 'reactstrap';\r\nimport SystemLabel from '../../../../../../../system/SystemLabel/SystemLabel';\r\nimport VisibilityOffOutlinedIcon from '@material-ui/icons/VisibilityOffOutlined';\r\nimport VisibilityOutlinedIcon from '@material-ui/icons/VisibilityOutlined';\r\nimport { VisibilityOffOutlined } from '@material-ui/icons';\r\nimport JirangoSwitch from '../../../../../../../components/JirangoSwitch/JirangoSwitch';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport CheckBoxOutlinedIcon from '@material-ui/icons/CheckBoxOutlined';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport PageviewIcon from '@material-ui/icons/Pageview';\r\nimport Popover from '@material-ui/core/Popover';\r\nconst useStyles = makeStyles((theme) => ({\r\n form: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n margin: 'auto',\r\n width: 'fit-content',\r\n },\r\n formControl: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst customStyles = {\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"#3d3d3d\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"100%\"\r\n }),\r\n container: (provided, state) => ({\r\n ...provided,\r\n\r\n width: '100%'\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\"\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\"\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\"\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#3d3d3d\",\r\n maxWidth: \"100%\",\r\n zIndex: 100\r\n }),\r\n separatorIndicator: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"transparent\",\r\n\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#3d3d3d\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\"\r\n }\r\n }),\r\n placeholder: provided => ({\r\n ...provided,\r\n color: \"#eee\"\r\n })\r\n};\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default class ImportModules extends React.Component {\r\n constructor(props){\r\n super(props)\r\n this.state = {\r\n modules: [],\r\n groups: [],\r\n events: [],\r\n presets: [],\r\n selectedEvent: null,\r\n selectedPreset: null,\r\n currentPresets: [],\r\n copyAllFromEvent: false,\r\n copyModules: [],\r\n destination: null,\r\n destinationItem: null,\r\n saving: false\r\n }\r\n\r\n }\r\n componentDidMount() {\r\n const { hubConnection } = this.props;\r\n if (hubConnection) {\r\n const { eventId } = this.props;\r\n hubConnection.on('onGetAllModulesForEvent', this.getModuleGroups)\r\n hubConnection.invoke('getAllModulesForEvent', eventId)\r\n }\r\n }\r\n getModuleGroups (res){\r\n const { groups, currentPresets } = res;\r\n let events = groups.map(g => {\r\n return { value: g.eventId, label: `${g.eventId} - ${g.eventName}` }\r\n });\r\n let cPresets = currentPresets.map(c => {\r\n return { value: c.presetId, label: c.presetName }\r\n })\r\n cPresets = [{ label: , value: this.props.eventId }, ...cPresets]\r\n this.setState({\r\n events, groups, currentPresets: cPresets, destination: cPresets.length == 1 ? {\r\n path: 'EVENT',\r\n id: this.props.eventId\r\n } : null\r\n })\r\n\r\n\r\n }\r\n onEventSelected (value){\r\n if (!value) return;\r\n const { currentPresets } = this.state;\r\n const event = this.state.groups.find(g => g.eventId == value)\r\n let modules = event.modules || []\r\n let presets = event.presets.map((p, i) => {\r\n return { label: p.presetName, value: p.presetId }\r\n });\r\n\r\n presets = [\r\n { label: , value: event.eventId },\r\n ...presets]\r\n this.setState({ selectedEvent: { label: event.eventName, value: value }, modules: [], copyModules: [], destination: currentPresets.length == 1 ? this.state.destination : null, selectedPreset: null, presets, copyAllFromEvent: false });\r\n }\r\n onPresetSelected (selectedPreset) {\r\n this.setState({ selectedPreset })\r\n const { groups, selectedEvent } = this.state;\r\n\r\n var ev = groups.find(g => g.presets.find(p => p.presetId == selectedPreset.value));\r\n let modules = [];\r\n if (ev) {\r\n\r\n modules = ev.presets.find(p => p.presetId == selectedPreset.value).modules;\r\n\r\n }\r\n else {\r\n if (selectedEvent.value == selectedPreset.value) {\r\n modules = groups.find(g => g.eventId == selectedPreset.value).modules;\r\n }\r\n }\r\n this.setState({ modules, copyModules: modules })\r\n\r\n }\r\n onDestinationPresetSelected (destination) {\r\n let d = {\r\n path: 'PRESET',\r\n id: destination.value\r\n };\r\n let des = null\r\n if (destination.value == this.props.eventId) {\r\n d.path = 'EVENT';\r\n des = { label: , value: this.props.eventId }\r\n } else {\r\n let p = this.state.currentPresets.find(c => c.value == destination.value);\r\n if (p) des = p;\r\n }\r\n this.setState({ destination: d, destinationItem: des })\r\n\r\n }\r\n handleClose () {\r\n this.props.toggleDialog(false);\r\n };\r\n onImportModules() {this.setState({ saving: false })}\r\n handleSave () {\r\n const { hubConnection } = this.props;\r\n if (hubConnection) {\r\n const { eventId } = this.props;\r\n let isSaving = false;\r\n if (this.state.copyAllFromEvent && this.state.selectedEvent) {\r\n hubConnection.invoke('importModules', eventId, this.state.selectedEvent.value, (this.props.user ? this.props.user.userGuid : null), null, null, null)\r\n isSaving = true;\r\n }\r\n else if (this.state.selectedEvent && this.state.selectedPreset && this.state.destination) {\r\n hubConnection.invoke('importModules', eventId, this.state.selectedEvent.value, (this.props.user ? this.props.user.userGuid : null), this.state.selectedPreset.value, this.state.destination.id, this.state.copyModules.map(x => { return x.digitalMeetingItemId }))\r\n isSaving = true;\r\n\r\n }\r\n this.setState({\r\n selectedEvent: null,\r\n selectedPreset: null,\r\n copyAllFromEvent: false,\r\n copyModules: [],\r\n modules: [],\r\n destination: null,\r\n destinationItem: null,\r\n saving: false\r\n })\r\n }\r\n\r\n }\r\n checkModule(module) {\r\n let m = Array.from(this.state.copyModules);\r\n const add = !m.find(x => x.digitalMeetingItemId == module.digitalMeetingItemId)\r\n if (add) m.push(module)\r\n else {\r\n m = m.filter(x => x.digitalMeetingItemId != module.digitalMeetingItemId)\r\n }\r\n this.setState({ copyModules: m })\r\n }\r\n setAllChecked (all) {this.setState({ copyModules: all ? this.state.modules : [] })}\r\n render() {\r\n const { hubConnection, toggleDialog, isOpen } = this.props;\r\n const { currentPresets, selectedEvent, selectedPreset, modules, events, presets } = this.state;\r\n let isSavavle = false;\r\n if (this.state.copyAllFromEvent) {\r\n isSavavle = true;\r\n }\r\n else if (this.state.copyModules.length > 0 && this.state.destination) {\r\n isSavavle = true;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.onEventSelected(selectedOption.value)\r\n }\r\n />\r\n \r\n {selectedEvent && presets.length > 0 ?
\r\n \r\n
: null}\r\n
\r\n\r\n \r\n
\r\n {selectedEvent && presets.length > 0 ? \r\n \r\n \r\n this.onDestinationPresetSelected(selectedOption)\r\n }\r\n />\r\n : null}\r\n \r\n\r\n \r\n \r\n {modules.length > 0 ? \r\n \r\n \r\n \r\n

\r\n {modules.length > 0 ? : \r\n }\r\n\r\n
\r\n
\r\n
: null}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nfunction CheckboxList({ modules = [], copyAll = false, copyModules = [], setAllChecked = () => null, checkModule = () => null }) {\r\n return (\r\n
\r\n setAllChecked((modules.length != copyModules.length))}>\r\n \r\n }\r\n checkedIcon={}\r\n checked={(modules.length == copyModules.length)}\r\n tabIndex={-1}\r\n disableRipple\r\n\r\n />\r\n \r\n } />\r\n \r\n
\r\n \r\n {modules.map((m, i) => {\r\n const labelId = `checkbox-list-label-${i}`;\r\n\r\n return (\r\n checkModule(m)}>\r\n \r\n }\r\n checkedIcon={}\r\n checked={copyModules.find(d => d.digitalMeetingItemId == m.digitalMeetingItemId)}\r\n tabIndex={-1}\r\n disableRipple\r\n inputProps={{ 'aria-labelledby': i }}\r\n />\r\n \r\n \r\n {m.displayName || ''}{\" (\"}{\")\"}\r\n \r\n } />\r\n \r\n );\r\n })}\r\n \r\n
\r\n\r\n );\r\n}\r\n\r\n\r\n/* import { makeStyles } from '@material-ui/core/styles'; */\r\n\r\n/* const useStyles = makeStyles((theme) => ({\r\n popover: {\r\n pointerEvents: 'none',\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n})); */\r\n\r\nfunction PreviewPop(props) {\r\n /* const classes = useStyles(); */\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handlePopoverOpen = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handlePopoverClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.children}\r\n \r\n
\r\n );\r\n}\r\n\r\n","import React from \"react\";\r\nimport { Row, Col, FormGroup, Input, Label } from \"reactstrap\";\r\n\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport SystemLabel from \"../../../../../../system/SystemLabel/SystemLabel\";\r\n\r\nimport JirangoSwitch from \"../../../../../../components/JirangoSwitch/JirangoSwitch\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport Select from \"react-select\";\r\nimport \"./MeetingsLayoutSettings.css\";\r\n// import { digitalMeetingModules } from \"../../../../../../digitalmeeting/modules\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport PopEditorClassic from \"../../../../../../components/TinyMCE/PopEditorClassic\";\r\nimport UrlMultiInput from \"../../../../../../components/UrlMultiInput/UrlMultiInput\";\r\nimport {\r\n Dialog,\r\n Tooltip,\r\n DialogContent,\r\n DialogTitle,\r\n Table,\r\n Paper,\r\n DialogContentText,\r\n DialogActions,\r\n} from \"@material-ui/core\";\r\nimport { CodeMirror } from \"../../../../../../plugins/CodeMirror\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport CodeIcon from \"@material-ui/icons/Code\";\r\n\r\nimport KeyboardBackspaceIcon from \"@material-ui/icons/KeyboardBackspace\";\r\nimport KeyboardIcon from \"@material-ui/icons/Keyboard\";\r\nimport PublishIcon from \"@material-ui/icons/Publish\";\r\nimport ImportExportIcon from \"@material-ui/icons/ImportExport\";\r\nimport ImportModules from \"./ImportModules/ImportModules\";\r\n\r\nconst value2 = [\r\n \"ZoomFrame\",\r\n \"Exhibitors\",\r\n \"TimeoutContent\",\r\n \"BreakoutRandomizer\",\r\n \"Iframe\",\r\n];\r\nconst value = [\r\n \"CompanyLogo\",\r\n \"Html\",\r\n \"Carousel\",\r\n \"Iframe\",\r\n \"Video\",\r\n \"ZoomFrame\",\r\n \"Image\",\r\n \"Exhibitors\",\r\n \"JitsiFrame\",\r\n \"BreakoutRandomizer\",\r\n \"TimeoutContent\",\r\n];\r\nconst value3 = [\"BreakoutRandomizer\"];\r\n\r\nconst customStyles = {\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"#3d3d3d\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"100%\",\r\n }),\r\n container: (provided, state) => ({\r\n ...provided,\r\n\r\n width: \"100%\",\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\",\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#3d3d3d\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n separatorIndicator: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"transparent\",\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#3d3d3d\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n};\r\nexport default class MeetingLayoutSettings extends React.Component {\r\n state = {\r\n loading: false,\r\n hasChanged: false,\r\n expanded: false,\r\n anchorEl: null,\r\n selList: [],\r\n editId: null,\r\n deleteId: null,\r\n open: false,\r\n editorType: \"Text\",\r\n selectedLayoutPreset: null,\r\n showAddPresetDialog: false,\r\n newPresetName: \"\",\r\n openImport: false,\r\n };\r\n\r\n componentDidMount() {\r\n this.generateModuleList();\r\n }\r\n componentDidUpdate(prevProps) {\r\n if (\r\n this.props.modules !== undefined &&\r\n prevProps.modules !== this.props.modules\r\n ) {\r\n this.generateModuleList();\r\n }\r\n }\r\n toggleModal = () => {\r\n this.setState({ open: !this.state.open });\r\n };\r\n handleChange = (value, path, index) => {\r\n const newModules = Array.from(this.props.modules);\r\n newModules[index][path] = value;\r\n this.props.updateModulesList(newModules);\r\n this.setState({\r\n hasChanged: true,\r\n });\r\n };\r\n handleImage = (url, index) => {\r\n const newModules = Array.from(this.props.modules);\r\n newModules[index].value = url;\r\n this.props.updateModulesList(newModules);\r\n this.setState({\r\n hasChanged: true,\r\n });\r\n };\r\n updateModules = () => {\r\n this.props.updateMeetingLayout();\r\n this.setState({\r\n hasChanged: false,\r\n loading: false,\r\n });\r\n };\r\n setComponent = (value) => {\r\n if (!value) return;\r\n this.setState({ createComponent: value });\r\n };\r\n selectLayoutPreset = (value) => {\r\n if (!value) return;\r\n this.setState({ selectedLayoutPreset: value, hasChanged: true });\r\n let p = this.props.meetingLayoutPresets.find((e) => e.name === value);\r\n if (p) {\r\n this.props.updateModulesList(p.content);\r\n this.props.selectPreset(p.interactionPresetId);\r\n }\r\n };\r\n deleteModule = (id) => {\r\n if (this.state.deleteId) {\r\n this.props.deleteModule(this.state.deleteId);\r\n this.setState({ open: false, deleteId: null });\r\n }\r\n };\r\n createModule = () => {\r\n const { createComponent } = this.state;\r\n if (!createComponent) return;\r\n this.props.addModule(createComponent);\r\n };\r\n createLayoutPreset = () => {\r\n this.props.saveMeetingLayoutPreset(this.state.newPresetName);\r\n this.selectLayoutPreset(this.state.newPresetName);\r\n this.setNewPresetName(\"\");\r\n this.setState({ showAddPresetDialog: false });\r\n };\r\n saveMeetingLayoutPreset = () => {\r\n this.props.saveMeetingLayoutPreset(this.state.selectedLayoutPreset);\r\n };\r\n generateModuleList = () => {\r\n const comps = []//digitalMeetingModules;\r\n const { modules } = this.props;\r\n const selItems = [];\r\n comps.map((c) => {\r\n if (c.limit > 0 && !modules.find((m) => m.name === c.name)) {\r\n selItems.push({ label: c.name, value: c.name });\r\n } else if (c.limit === 0) {\r\n selItems.push({ label: c.name, value: c.name });\r\n }\r\n });\r\n this.setState({ selList: selItems });\r\n };\r\n setNewPresetName = (value) => {\r\n this.setState({ newPresetName: value });\r\n };\r\n headerRow = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n handleExpandClick = () => {\r\n this.setState({\r\n expanded: !this.state.expanded,\r\n });\r\n this.props.onExpand(!this.state.expanded);\r\n };\r\n getBreakoutName = (val) => {\r\n if (val && this.props.breakouts && this.props.breakouts.length > 0) {\r\n let br = this.props.breakouts.find((b) => b.eventId == val);\r\n return br ? br.name : \"\";\r\n } else return \"\";\r\n };\r\n render() {\r\n const { loading, hasChanged, expanded, anchorEl } = this.state;\r\n const { modules, meetingLayoutPresets } = this.props;\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popover\" : undefined;\r\n const selectStyles = {\r\n container: (styles) => ({\r\n ...styles,\r\n minWidth: \"calc(100% - 96px)\",\r\n width: \"100%\",\r\n margin: \"10px\",\r\n }),\r\n };\r\n const layoutPresetOptions = meetingLayoutPresets\r\n ? meetingLayoutPresets.map((e) => {\r\n return { label: e.name, value: e.name };\r\n })\r\n : [];\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n a.sortOrder - b.sortOrder\r\n )}\r\n styles={customStyles}\r\n value={\r\n this.state.selectedLayoutPreset\r\n ? {\r\n label: this.state.selectedLayoutPreset,\r\n value: this.state.selectedLayoutPreset,\r\n }\r\n : null\r\n }\r\n onChange={(selectedOption) =>\r\n this.selectLayoutPreset(selectedOption.value)\r\n }\r\n />\r\n }>\r\n this.setState({ showAddPresetDialog: true })}\r\n >\r\n \r\n \r\n \r\n {/* }> */}\r\n \r\n \r\n \r\n {/* */}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n this.setComponent(selectedOption.value)\r\n }\r\n />\r\n {/* } > */}\r\n this.createModule()}\r\n >\r\n \r\n \r\n {/* */}\r\n }>\r\n \r\n \r\n {/* {hasChanged ?
\r\n \r\n
: null} */}\r\n \r\n \r\n
\r\n
\r\n }>\r\n this.setState({ openImport: true })}\r\n >\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.headerRow()}\r\n \r\n {Array.isArray(modules) && modules.length > 0\r\n ? modules.map((m, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(\r\n e.target.value,\r\n \"displayName\",\r\n i\r\n )\r\n }\r\n type=\"text\"\r\n value={m.displayName || \"\"}\r\n />\r\n \r\n \r\n \r\n this.handleChange(e.target.value, \"height\", i)\r\n }\r\n min={1}\r\n max={100}\r\n type=\"number\"\r\n value={m.height || \"\"}\r\n />\r\n \r\n \r\n \r\n this.handleChange(e.target.value, \"width\", i)\r\n }\r\n min={1}\r\n max={100}\r\n type=\"number\"\r\n value={m.width || \"\"}\r\n />\r\n \r\n \r\n \r\n this.handleChange(e.target.value, \"x\", i)\r\n }\r\n type=\"number\"\r\n value={m.x || \"\"}\r\n />\r\n \r\n \r\n \r\n this.handleChange(e.target.value, \"y\", i)\r\n }\r\n type=\"number\"\r\n value={m.y || \"\"}\r\n />\r\n \r\n \r\n \r\n this.handleChange(e.target.value, \"z\", i)\r\n }\r\n type=\"number\"\r\n value={m.z || \"\"}\r\n />\r\n \r\n \r\n {(value.includes(m.name) ||\r\n value2.includes(m.name)) &&\r\n m.name !== \"Html\" ? (\r\n \r\n \r\n {m.name == \"Image\" ? (\r\n \r\n {m.value ? (\r\n \r\n {/*
*/}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n\r\n \r\n this.handleImage(url, i)\r\n }\r\n setImage={(url) =>\r\n this.handleImage(url, i)\r\n }\r\n margin={false}\r\n noInfoText={true}\r\n dark={true}\r\n colStyle={{ padding: 0, margin: 0 }}\r\n rowStyle={{ margin: \"0px\" }}\r\n url={m.value}\r\n />\r\n
\r\n ) : m.name == \"BreakoutRandomizer\" ? (\r\n \r\n \r\n \r\n \r\n {\r\n return {\r\n label: b.name,\r\n value: b.eventId,\r\n };\r\n })}\r\n styles={customStyles}\r\n value={\r\n m.value && this.props.breakouts\r\n ? {\r\n label: this.getBreakoutName(\r\n m.value\r\n ),\r\n value: m.value,\r\n }\r\n : null\r\n }\r\n onChange={(selectedOption) =>\r\n this.handleChange(\r\n selectedOption.value,\r\n \"value\",\r\n i\r\n )\r\n }\r\n />\r\n \r\n ) : value.includes(m.name) ? (\r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(\r\n e.target.value,\r\n \"value\",\r\n i\r\n )\r\n }\r\n type={\r\n m.name == \"TimeoutContent\"\r\n ? \"datetime-local\"\r\n : \"text\"\r\n }\r\n value={\r\n m.value\r\n ? m.name == \"timeoutContent\"\r\n ? new Date(m.value)\r\n .toLocaleString()\r\n .replace(\" \", \"T\")\r\n : m.value\r\n : \"\"\r\n }\r\n />\r\n \r\n ) : null}\r\n {/* {m.name == 'TimeoutContent' && value2.includes(m.name) ?\r\n
\r\n }>\r\n this.setState({ editId: i, editorType: 'Text' })} >\r\n \r\n \r\n \r\n }>\r\n this.setState({ editId: i, editorType: 'Code' })} >\r\n \r\n \r\n \r\n
\r\n : null} */}\r\n {m.name !== \"Html\" &&\r\n value2.includes(m.name) ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(\r\n e.target.value,\r\n \"value2\",\r\n i\r\n )\r\n }\r\n type={\r\n m.name == \"BreakoutRandomizer\"\r\n ? \"number\"\r\n : \"text\"\r\n }\r\n value={m.value2 || \"\"}\r\n />\r\n \r\n \r\n ) : null}\r\n {m.name !== \"Html\" &&\r\n value3.includes(m.name) ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(\r\n e.target.value,\r\n \"value3\",\r\n i\r\n )\r\n }\r\n type={\r\n m.name == \"BreakoutRandomizer\"\r\n ? \"number\"\r\n : \"text\"\r\n }\r\n value={m.value3 || \"\"}\r\n />\r\n \r\n \r\n ) : null}\r\n {m.name === \"ZoomFrame\" ? (\r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(\r\n !m.active,\r\n \"active\",\r\n i\r\n )\r\n }\r\n isChecked={m.active === true}\r\n />\r\n \r\n ) : null}\r\n
\r\n
\r\n ) : m.name == \"Html\" ? (\r\n
\r\n }\r\n >\r\n \r\n this.setState({\r\n editId: i,\r\n editorType: \"Text\",\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n this.setState({\r\n editId: i,\r\n editorType: \"Code\",\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n
\r\n ) : null}\r\n \r\n\r\n \r\n \r\n this.handleChange(!m.visible, \"visible\", i)\r\n }\r\n isChecked={m.visible === true}\r\n />\r\n \r\n \r\n \r\n this.setState({\r\n deleteId: m.digitalMeetingItemId,\r\n open: true,\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n
\r\n );\r\n })\r\n : null}\r\n \r\n
\r\n \r\n\r\n {/* \r\n\r\n \r\n */}\r\n{/* \r\n this.deleteModule()}\r\n onCancel={() => this.toggleModal(!this.state.open)}\r\n header={\"AreYouSure\"}\r\n open={this.state.open}\r\n text={\"DoWantToDeleteModule\"}\r\n /> */}\r\n\r\n {this.state.editId != null ? (\r\n this.setState({ editId: null })}\r\n value={this.props.modules[this.state.editId].value}\r\n name={this.props.modules[this.state.editId].displayName}\r\n index={this.state.editId}\r\n editorType={this.state.editorType}\r\n onChange={this.handleChange}\r\n />\r\n ) : null}\r\n {this.state.openImport ? (\r\n \r\n this.setState({ openImport: !this.state.openImport })\r\n }\r\n isOpen={true}\r\n {...this.props}\r\n />\r\n ) : null}\r\n null}\r\n TransitionComponent={Transition}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.setNewPresetName(e.target.value)}\r\n type=\"text\"\r\n value={this.state.newPresetName}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n this.setState({\r\n showAddPresetDialog: false,\r\n newPresetName: \"\",\r\n })\r\n }\r\n >\r\n Avbryt\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n paper: {\r\n background: \"#303030\",\r\n },\r\n}));\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\nfunction FullScreenDialog(props) {\r\n const classes = useStyles();\r\n const handleClose = () => {\r\n props.onClose();\r\n };\r\n const onEdit = (value) => {\r\n props.onChange(value, \"value\", props.index);\r\n };\r\n /* return (\r\n \r\n ) */\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n\r\n \r\n {props.editorType == \"Text\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {props.editorType == \"Text\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n );\r\n}\r\n\r\n/* const Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n}); */\r\n\r\nexport function SettingsPopper(props) {\r\n const [open, setOpen] = React.useState(false);\r\n const classes = useStyles();\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n null}\r\n aria-labelledby=\"alert-dialog-slide-title\"\r\n aria-describedby=\"alert-dialog-slide-description\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport axios from \"axios\";\r\nimport fileSaver from \"file-saver\";\r\nimport { Tooltip } from \"@material-ui/core\";\r\nimport RotateLeftIcon from \"@material-ui/icons/RotateLeft\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport ConfirmModal from \"../../../../components/ConfirmModal/ConfirmModal\";\r\nimport { HowToVote } from \"@material-ui/icons\";\r\nimport MoodIcon from \"@material-ui/icons/Mood\";\r\nimport EventNoteIcon from \"@material-ui/icons/EventNote\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport { PopList } from \"./other/PopList\";\r\nimport MobileFriendlyIcon from \"@material-ui/icons/MobileFriendly\";\r\nimport MeetingRoomIcon from \"@material-ui/icons/MeetingRoom\";\r\nimport AllInboxIcon from \"@material-ui/icons/AllInbox\";\r\nimport { securityHelper } from \"../../../../helpers/securityHelper\";\r\nimport ViewCompactIcon from \"@material-ui/icons/ViewCompact\";\r\nimport LayoutDialog from \"./LayoutDialog\";\r\nimport MeetingLayoutSettings from \"./Settings/MeetingLayoutSettings/MeetingLayoutSettings\";\r\nimport MoreHorizIcon from \"@material-ui/icons/MoreHoriz\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport RateReviewIcon from \"@material-ui/icons/RateReview\";\r\nimport JirangoSwitch from \"../../../../components/JirangoSwitch/JirangoSwitch\";\r\nimport OpenInNewOutlinedIcon from \"@material-ui/icons/OpenInNewOutlined\";\r\nimport EventBusyIcon from \"@material-ui/icons/EventBusy\";\r\nimport FilterDramaIcon from \"@material-ui/icons/FilterDrama\";\r\nimport ViewHeadlineIcon from \"@material-ui/icons/ViewHeadline\";\r\nimport BarChartIcon from \"@material-ui/icons/BarChart\";\r\nimport PieChartIcon from \"@material-ui/icons/PieChart\";\r\nimport TableChartIcon from \"@material-ui/icons/TableChart\";\r\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport BrokenImageIcon from '@material-ui/icons/BrokenImage';\r\n\r\nconst customStyles = {\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"#535562\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"100%\",\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\",\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n background: \"transparent\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#3d3d3d\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#535562\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n};\r\n\r\nexport default function HeaderBar(props) {\r\n const [asideOpen, setAsideOpen] = useState(false);\r\n const [modalOpen, setModal] = useState(false);\r\n const { eventId, presenterSettings } = props;\r\n\r\n const exportParticipantExcel = () => {\r\n axios\r\n .get(`./api/InteractionReport/participant/${eventId}`, {\r\n responseType: \"arraybuffer\",\r\n })\r\n .then((response) => {\r\n var blob = new Blob([response.data], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n });\r\n var date = new Date();\r\n var datestr = `${date.getFullYear()}-${date.getMonth() + 1 < 10 ? \"0\" : \"\"}${date.getMonth() + 1}-${date.getDate() < 10 ? \"0\" : \"\"}${date.getDate()}_${date.getHours() < 10 ? \"0\" : \"\"\r\n }${date.getHours()}${date.getMinutes() < 10 ? \"0\" : \"\"}${date.getMinutes()}`;\r\n\r\n var fileName = `${props.eventName}_Deltagarstatistik_${datestr}.xlsx`;\r\n fileSaver.saveAs(blob, fileName);\r\n });\r\n };\r\n const exportActiveParticipantExcel = () => {\r\n axios\r\n .get(`./api/InteractionReport/activeparticipant/${eventId}`, {\r\n responseType: \"arraybuffer\",\r\n })\r\n .then((response) => {\r\n var blob = new Blob([response.data], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n });\r\n fileSaver.saveAs(blob, \"active_\" + new Date().toLocaleString() + \".xlsx\");\r\n });\r\n };\r\n const reset = () => {\r\n props.clearEventData();\r\n toggleModal();\r\n };\r\n const toggleModal = () => {\r\n setModal(!modalOpen);\r\n };\r\n \r\n const textPresenterTypes = [\r\n // { value: \"NONE\", label: },\r\n { value: \"WORDCLOUD\", label: , icon: },\r\n { value: \"TEXTFLOW\", label: , icon: },\r\n ];\r\n const optionPresenterTypes = [\r\n // { value: \"NONE\", label: },\r\n { value: \"BARCHART\", label: , icon: },\r\n { value: \"COLUMNCHART\", label: , icon: },\r\n { value: \"PIECHART\", label: , icon: },\r\n { value: \"DISPARITYCHART\", label: , icon: },\r\n // { value: \"LINECHART\", label: , icon: },\r\n ];\r\n\r\n const updatePresenterSettings = (target, value) => {\r\n const updatedSettings = { ...presenterSettings };\r\n updatedSettings[target] = value;\r\n props.updatePresenterSettings(updatedSettings);\r\n };\r\n\r\n const { templates, eventCode, clientTemplateId, breakouts, hubConnection } = props;\r\n return (\r\n props.toggleAside(false)} */\r\n >\r\n \r\n \r\n {props.parentEvent && props.parentEvent.eventId != props.eventId ? (\r\n \r\n {props.parentEvent.name}\r\n \r\n ) : null}\r\n\r\n \r\n {props.parentEvent && props.parentEvent.eventId != props.eventId ? (\r\n \r\n ) : null}\r\n {\" \"}\r\n {props.eventName}\r\n \r\n \r\n {/* \r\n */}\r\n \r\n {props.activeModulesChanged ? (\r\n
\r\n \r\n {\" \"} \r\n
\r\n ) : null}\r\n \r\n window.open(\r\n `${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/channels/${props.parentEvent?.code || eventCode}?clientkey=${props.tickCode}${securityHelper.createGuid()}`,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n {\" \"}\r\n \r\n \r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/presenter/${eventCode}?lang=${props.lang}`, \"_blank\")}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n \r\n {\" \"}\r\n
\r\n }\r\n >\r\n
\r\n \r\n \r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/${b.link}`, \"_blank\")}\r\n >\r\n \r\n
\r\n \r\n \r\n
\r\n {textPresenterTypes.map((b, i) => {\r\n return (\r\n \r\n \r\n \r\n
updatePresenterSettings(\"displayTypeText\", b.value)}>\r\n {b.icon} {b.label} {b.value == presenterSettings.displayTypeText ? : null}\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n })}\r\n \r\n \r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/${b.link}`, \"_blank\")}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n {optionPresenterTypes.map((b, i) => {\r\n return (\r\n \r\n \r\n \r\n
updatePresenterSettings(\"displayTypeOption\", b.value)} style={{ marginLeft: 10 }}>\r\n {b.icon} {b.label} {b.value == presenterSettings.displayTypeOption ? : null}\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n })}\r\n \r\n \r\n
\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n updatePresenterSettings(\"presentationOrder\", presenterSettings.presentationOrder == \"SORTORDER\" ? \"VOTES\" : \"SORTORDER\")}\r\n isChecked={props.presentationOrder == \"VOTES\"}\r\n />\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* */}\r\n {/* Grafer - Visa procent */}\r\n \r\n \r\n \r\n updatePresenterSettings(\"showPercent\", !presenterSettings.showPercent)} isChecked={presenterSettings.showPercent} />\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* */}\r\n {/* Grafer - Visa antal */}\r\n \r\n \r\n \r\n updatePresenterSettings(\"showCount\", !presenterSettings.showCount)} isChecked={presenterSettings.showCount} />\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n updatePresenterSettings(\"moderationMode\", !presenterSettings.moderationMode)} isChecked={presenterSettings.moderationMode} />\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n updatePresenterSettings(\"showNamesTextflow\", !presenterSettings.showNamesTextflow)} isChecked={presenterSettings.showNamesTextflow} />\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n |\r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/session/stage/${eventCode}?lang=${props.lang}`, \"_blank\")}\r\n >\r\n \r\n \r\n \r\n \r\n window.open(\r\n `${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/digitalarena/${eventCode}?clientkey=${props.tickCode}${securityHelper.createGuid()}`,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n {\" \"}\r\n \r\n \r\n |\r\n {breakouts.length > 0 ? (\r\n }>\r\n
\r\n {breakouts\r\n .sort((a, b) => {\r\n return a.start - b.start;\r\n })\r\n .map((b, i) => {\r\n return (\r\n \r\n \r\n \r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/${b.link}`, \"_blank\")}\r\n >\r\n {b.name}\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n })}\r\n \r\n
\r\n ) : null}\r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/editor/${eventCode}`, \"_blank\")}\r\n edge=\"start\"\r\n color=\"inherit\"\r\n aria-label=\"reset\"\r\n style={{ margin: \"0px\", position: \"relative\" }}\r\n >\r\n }>\r\n \r\n \r\n \r\n |\r\n\r\n }>\r\n
\r\n \r\n \r\n
exportParticipantExcel()}>\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
exportActiveParticipantExcel()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/session/chatmoderator/${eventCode}?code=${props.code}`, \"_blank\")\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n window.open(\r\n `${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/digitalarena/mobile/${eventCode}?clientkey=${props.tickCode}${+new Date()}`,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
toggleModal()}>\r\n {\" \"}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.arenaClosed}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { /* Button, */ Form, Button as bsButton, FormGroup, Label, Input, FormText, Col, Row, InputGroup,\r\n InputGroupAddon,\r\n InputGroupButtonDropdown,\r\n} from 'reactstrap';\r\nimport Card from '@material-ui/core/Card';\r\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport ChatIcon from '@material-ui/icons/Chat';\r\nimport './QuestionModal.css';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\r\nimport AddBoxIcon from '@material-ui/icons/AddBox';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SystemLabel from '../../../../../../system/SystemLabel/SystemLabel';\r\nimport { questionActions } from '../../../../../../store/actions/question/question.action';\r\nimport ReactDragList from \"react-drag-list\";\r\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst defaultQuestion = {\r\n type: \"Text\",\r\n requiredMin: 0,\r\n requiredMax: 0,\r\n eventId: null,\r\n allowedAnswerCount: 1,\r\n label: '',\r\n languageCode: 'swe',\r\n options: []\r\n}\r\n\r\n\r\nfunction QuestionModal(props) {\r\n const [question, setQuestion] = React.useState(Object.assign({}, defaultQuestion))\r\n const [placeholderOption, newOption] = React.useState('');\r\n\r\n const { open, toggleModal, lang, user, onQuestionAdd } = props;\r\n const handleClose = () => {\r\n /* setQuestion(Object.assign({}, defaultQuestion)); */\r\n toggleModal(false);\r\n };\r\n const sortOptions = (options) => {\r\n if (options.length === 0) return [];\r\n options.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n return options;\r\n }\r\n\r\n const createQuestion = () => {\r\n const cQuestion = Object.assign({}, question);\r\n if (cQuestion.type === 'Text') {\r\n cQuestion.options = [];\r\n }\r\n else {\r\n cQuestion.options.map(o => {\r\n delete o.id;\r\n })\r\n }\r\n cQuestion.sortOrder = props.sortOrder;\r\n cQuestion.languageCode = lang;\r\n cQuestion.eventId = props.eventId;\r\n const { dispatch } = props;\r\n dispatch(questionActions.createQuestion(cQuestion));\r\n setQuestion(Object.assign({}, defaultQuestion));\r\n toggleModal(false);\r\n }\r\n const onOptionLabelChange = (index, value) => {\r\n const uQuestion = Object.assign({}, question);\r\n const options = Array.from(uQuestion.options)\r\n options[index].text = value;\r\n uQuestion.options = options;\r\n setQuestion(uQuestion);\r\n }\r\n const addOption = () => {\r\n const name = placeholderOption;\r\n const { user } = props;\r\n const sortOrder = question.options.length > 0 ? question.options.length + 1 : 1;\r\n\r\n const option = {\r\n id: sortOrder,\r\n text: name,\r\n languageCode: lang,\r\n sortOrder\r\n };\r\n newOption('');\r\n\r\n const uOptions = Array.from(question.options);\r\n uOptions.push(option);\r\n handleChange(uOptions, 'options')\r\n\r\n }\r\n const handleOrderChange = (event, dataSource) => {\r\n const sortedOptions = dataSource.map((ds, i) => {\r\n let el = Object.assign({}, ds);\r\n el.sortOrder = i;\r\n return el;\r\n });\r\n /* const uOptions = Array.from(question.options);\r\n uQuestion.options = sortedOptions */\r\n handleChange(sortedOptions, 'options')\r\n };\r\n\r\n const handleChange = (value, path) => {\r\n const uQuestion = Object.assign({}, question);\r\n uQuestion[path] = value;\r\n setQuestion(uQuestion);\r\n }\r\n const deleteOption = (index) => {\r\n const uOptions = Array.from(question.options);\r\n uOptions.splice(index, 1);\r\n handleChange(uOptions, 'options')\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, 'label')} id=\"questionName\" />\r\n \r\n \r\n \r\n handleChange(e.target.value, 'allowedAnswerCount')} type=\"number\" value={question.allowedAnswerCount} />\r\n \r\n \r\n \r\n \r\n \r\n
handleChange('Text', 'type')} className={\"checkbox-btn\" + `${question.type === 'Text' ? ' curr' : ''}`} >\r\n \r\n
\r\n
\r\n \r\n \r\n
handleChange('Option', 'type')} className={\"checkbox-btn\" + `${question.type === 'Option' ? ' curr' : ''}`} >\r\n < CheckBoxIcon />\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {question.type === 'Option' ? \r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, 'requiredMin')} type=\"number\" value={question.requiredMin} />\r\n \r\n \r\n \r\n \r\n \r\n handleChange(e.target.value, 'requiredMax')} type=\"number\" value={question.requiredMax} />\r\n \r\n \r\n \r\n : null}\r\n {question.type === 'Option' ? \r\n\r\n \r\n \r\n newOption(e.target.value)} />\r\n \r\n \r\n \r\n : null}\r\n {question.type === 'Option' ? \r\n \r\n handleOrderChange(event, dataSource)\r\n }\r\n row={(o, index) => {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onOptionLabelChange(index, e.target.value)}\r\n value={o.text || ''}\r\n />\r\n \r\n \r\n \r\n deleteOption(index)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n }}\r\n />\r\n : null}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(QuestionModal);\r\n","import React, { useEffect } from \"react\";\r\nimport ReactDragList from \"react-drag-list\";\r\nimport { connect } from \"react-redux\";\r\nimport QuestionModal from \"./Question/QuestionModal\";\r\nimport { questionActions } from \"../../../../../store/actions/question/question.action\";\r\nimport SystemLabel from \"../../../../../system/SystemLabel/SystemLabel\";\r\nimport { Tooltip, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, Avatar, makeStyles, InputBase, IconButton } from \"@material-ui/core\";\r\n\r\nimport MeetingRoomIcon from \"@material-ui/icons/MeetingRoom\";\r\nimport BarChartIcon from \"@material-ui/icons/BarChart\";\r\nimport SubjectIcon from \"@material-ui/icons/Subject\";\r\nimport CheckBoxIcon from \"@material-ui/icons/CheckBox\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport SortIcon from \"@material-ui/icons/Sort\";\r\nimport { SmallLoader } from \"../../../../../digitalArena/utils/ClientConnectionFallback\";\r\nimport { useState } from \"react\";\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n backgroundColor: \"#3a3b3c\",\r\n borderRadius: 5,\r\n marginRight: theme.spacing(2),\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: 0,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n color: \"#FFFFFF99\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n color: \"#FFFFFF99\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"20ch\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n online: {\r\n background: \"#44b700\",\r\n },\r\n offline: {\r\n background: \"orangered\",\r\n },\r\n}));\r\n\r\nexport function QuestionList(props) {\r\n const [filter, setFilter] = useState(\"\");\r\n const [modalOpen, toggleModal] = useState(false);\r\n const [unlocked, setUnlocked] = useState(false);\r\n const [hasChanged, setChanged] = useState(false);\r\n const [questionDeployLoadingId, setQuestionDeployLoadingId] = useState(null);\r\n const [modifiedQuestions, setQuestions] = React.useState(props.questions ? Array.from(props.questions) : null);\r\n\r\n useEffect(() => {\r\n if (questionDeployLoadingId == props.activePresenterQuestion) setQuestionDeployLoadingId(null);\r\n }, [props.activePresenterQuestion]);\r\n const sortQuestions = (questions) => {\r\n if (!questions || questions.length === 0) return [];\r\n questions.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n return questions;\r\n };\r\n const onUnlock = (val) => {\r\n if (val === true) setQuestions(props.questions);\r\n\r\n setUnlocked(val);\r\n };\r\n const save = () => {\r\n const newQuestions = Array.from(modifiedQuestions);\r\n newQuestions.map((q, i) => {\r\n q.sortOrder = i;\r\n });\r\n\r\n props.dispatch(questionActions.updateQuestions(newQuestions));\r\n props.updateQuestions(newQuestions);\r\n setChanged(false);\r\n };\r\n const handleOrderChange = (event, dataSource) => {\r\n const sortedQuestions = dataSource.map((ds, i) => {\r\n let el = Object.assign({}, ds);\r\n el.sortOrder = i;\r\n return el;\r\n });\r\n setQuestions(sortedQuestions);\r\n setChanged(true);\r\n };\r\n const classes = useStyles();\r\n const renderTypeIcon = (type) => {\r\n switch (type) {\r\n case \"Text\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"Option\":\r\n return (\r\n \r\n \r\n \r\n );\r\n default:\r\n break;\r\n }\r\n };\r\n const searchFilter = (e) => {\r\n setFilter(e.target.value);\r\n };\r\n\r\n const addQuestion = () => {\r\n toggleModal(!modalOpen);\r\n };\r\n const getMaxSortOrder = () => {\r\n let max = 0;\r\n if (props.questions.length > 0) {\r\n max =\r\n Math.max.apply(\r\n null,\r\n props.questions.map((q) => {\r\n return q.sortOrder;\r\n })\r\n ) + 1;\r\n }\r\n return max;\r\n };\r\n\r\n const renderQuestionList = () => {\r\n const { questions, user, activeQuestions, activePresenterQuestion, deployQuestionToClients, deployQuestionToPresenter, toggleQuestionInfo, selectedQuestion, questionTagList = [] } = props;\r\n if (questions === undefined) return null;\r\n if (!modifiedQuestions) setQuestions(questions);\r\n const questionItems = unlocked ? sortQuestions(modifiedQuestions) : sortQuestions(questions);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {!unlocked ? (\r\n addQuestion()} edge=\"start\" style={{ padding: \"0px 10px\", color: \"#ffffff99\" }}>\r\n \r\n \r\n ) : null}\r\n onUnlock(!unlocked)}\r\n edge=\"start\"\r\n style={{\r\n padding: \"0px 10px\",\r\n color: unlocked ? \"#fff\" : \"#ffffff99\",\r\n }}\r\n >\r\n \r\n \r\n {unlocked ? (\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n \r\n {!unlocked ? (\r\n questionItems\r\n .filter(\r\n (ia) =>\r\n !ia.tag ||\r\n (ia.tag &&\r\n !questionTagList.find((qt) => (ia.tag.includes(\":\") ? ia.tag.split(\":\").includes(qt) : qt == ia.tag)) &&\r\n ia.questionLanguage !== undefined &&\r\n ia.questionLanguage\r\n .find((l) => l.languageCode === props.lang)\r\n .label.toString()\r\n .toLowerCase()\r\n .includes(filter.toLowerCase()))\r\n )\r\n .map((q, i) => {\r\n let qLang = q.questionLanguage.find((ql) => ql.languageCode == props.lang);\r\n return (\r\n toggleQuestionInfo(selectedQuestion && selectedQuestion.questionId === q.questionId ? null : q)}\r\n >\r\n {renderTypeIcon(q.type)}\r\n \r\n \r\n aq == q.questionId) !== undefined ? \"#fff\" : \"#ffffff99\",\r\n backgroundColor: activeQuestions.find((aq) => aq == q.questionId) !== undefined ? \"#20a8d8e0\" : undefined,\r\n }}\r\n onClick={() => deployQuestionToClients(q.questionId)}\r\n >\r\n }>\r\n \r\n \r\n \r\n }>\r\n \r\n {\r\n setQuestionDeployLoadingId(q.questionId);\r\n deployQuestionToPresenter(q.questionId);\r\n }}\r\n edge=\"end\"\r\n >\r\n {questionDeployLoadingId === q.questionId ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n /* */\r\n );\r\n })\r\n ) : (\r\n \r\n ia.questionLanguage !== undefined &&\r\n ia.questionLanguage\r\n .find((l) => l.languageCode === props.lang)\r\n .label.toString()\r\n .toLowerCase()\r\n .includes(filter.toLowerCase())\r\n )}\r\n rowKey={\"questionId\"}\r\n className=\"simple-drag\"\r\n rowClassName=\"simple-drag-row\"\r\n handles={true}\r\n onUpdate={(event, dataSource) => handleOrderChange(event, dataSource)}\r\n row={(q, index) => {\r\n let qLang = q.questionLanguage.find((ql) => ql.languageCode == props.lang);\r\n return (\r\n \r\n toggleQuestionInfo(selectedQuestion && selectedQuestion.questionId === q.questionId ? null : q)}\r\n >\r\n {renderTypeIcon(q.type)}\r\n\r\n \r\n \r\n aq == q.questionId) !== undefined ? \"#fff\" : \"#ffffff99\",\r\n backgroundColor: activeQuestions.find((aq) => aq == q.questionId) !== undefined ? \"#20a8d8e0\" : undefined,\r\n }}\r\n onClick={() => deployQuestionToClients(q.questionId)}\r\n >\r\n }>\r\n \r\n \r\n \r\n\r\n deployQuestionToPresenter(q.questionId)}\r\n edge=\"end\"\r\n >\r\n : }>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n {modalOpen ? : null}\r\n \r\n );\r\n };\r\n return
{renderQuestionList()}
;\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(QuestionList);\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport List from \"@material-ui/core/List\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ReactDragList from \"react-drag-list\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport ConfirmModal from \"../../../../../../components/ConfirmModal/ConfirmModal\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport PlayArrowIcon from \"@material-ui/icons/PlayArrow\";\r\nimport HistoryIcon from \"@material-ui/icons/History\";\r\nimport ScheduleIcon from \"@material-ui/icons/Schedule\";\r\nimport { Tooltip, Typography, Button } from \"@material-ui/core\";\r\nimport SystemLabel from \"../../../../../../system/SystemLabel/SystemLabel\";\r\nimport PopEditorClassic from \"../../../../../../components/TinyMCE/PopEditorClassic\";\r\nimport SortIcon from \"@material-ui/icons/Sort\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport \"./AgendaStyle.css\";\r\nimport EventNoteIcon from \"@material-ui/icons/EventNote\";\r\nimport EventAvailableIcon from \"@material-ui/icons/EventAvailable\";\r\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\r\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n backgroundColor: \"#3a3b3c\",\r\n borderRadius: 5,\r\n marginRight: theme.spacing(2),\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: 0,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n color: \"#FFFFFF99\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n color: \"#FFFFFF99\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"20ch\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n online: {\r\n background: \"#44b700\",\r\n },\r\n offline: {\r\n background: \"orangered\",\r\n },\r\n}));\r\n\r\nexport default function AgendaList(props) {\r\n const [filter, setFilter] = React.useState(\"\");\r\n const [agendaName, setAgendaName] = React.useState(\"\");\r\n const [open, toggleModal] = React.useState(false);\r\n const [unlocked, setUnlocked] = React.useState(false);\r\n const [hasChanged, setChanged] = React.useState(false);\r\n const [modifiedAgenda, setAgenda] = React.useState(props.agenda);\r\n const [deleteIndex, setDeleteIndex] = React.useState(null);\r\n const [targetAgenda, setTargetAgenda] = React.useState(null);\r\n const [unSavedWarning, setUnsaved] = React.useState(false);\r\n const sortAgenda = (agendaItems) => {\r\n if (!agendaItems || agendaItems === \"\" || (agendaItems && agendaItems.length === 0)) return [];\r\n let res = [];\r\n agendaItems.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n agendaItems.map((a, i) => {\r\n a.sortOrder = i;\r\n });\r\n return agendaItems;\r\n };\r\n function onUnlock(val, force = false) {\r\n if (force) {\r\n setUnsaved(false);\r\n } else if (hasChanged && val === false) {\r\n setUnsaved(true);\r\n return;\r\n }\r\n var agenda = unlocked ? sortAgenda(modifiedAgenda) : sortAgenda(props.agenda);\r\n setAgenda(agenda);\r\n setUnlocked(val);\r\n }\r\n const toggleDelete = (val, index) => {\r\n if (val === true && deleteIndex !== null) {\r\n setDeleteIndex(null);\r\n }\r\n setDeleteIndex(index);\r\n toggleModal(val);\r\n };\r\n const searchFilter = (e) => {\r\n setFilter(e.target.value);\r\n };\r\n const handleOrderChange = (event, dataSource) => {\r\n const sortedAgenda = dataSource.map((ds, i) => {\r\n let el = Object.assign({}, ds);\r\n el.sortOrder = i;\r\n return el;\r\n });\r\n setAgenda(sortedAgenda);\r\n setChanged(true);\r\n };\r\n\r\n const defaultAgendaItem = (sortOrder, eventId) => {\r\n return {\r\n agendaItemId: agenda && agenda.length > 0 ? agenda.length * -1 : -1,\r\n sortOrder,\r\n name: \"Agenda \" + sortOrder,\r\n active: false,\r\n text: \"*Text*\",\r\n eventId,\r\n };\r\n };\r\n const save = () => {\r\n setUnsaved(false);\r\n const agenda = Array.from(props.agenda);\r\n setChanged(false);\r\n if (!unlocked) props.handleAgendaOnChange(agenda);\r\n else props.handleAgendaOnChange(modifiedAgenda);\r\n };\r\n const addAgenda = () => {\r\n /* const agenda = Array.from(props.agenda); */\r\n\r\n props.agenda.push(defaultAgendaItem(agenda ? agenda.length + 1 : 0, props.eventId));\r\n /* setAgenda(agenda) */\r\n /* setChanged(true) */\r\n props.selectAgenda(agenda[agenda.length - 1]);\r\n /* props.handleAgendaOnChange(agenda); */\r\n };\r\n function deleteAgenda() {\r\n if (deleteIndex === null) return;\r\n if (deleteIndex < 0) {\r\n let magenda = sortAgenda(Array.from(modifiedAgenda));\r\n magenda = magenda.filter((a) => a.agendaItemId !== deleteIndex);\r\n magenda.map((m, i) => {\r\n m.sortOrder = i;\r\n });\r\n setAgenda(magenda);\r\n setChanged(false);\r\n } else {\r\n let magenda = sortAgenda(Array.from(modifiedAgenda));\r\n magenda = magenda.filter((a) => a.agendaItemId !== deleteIndex);\r\n magenda.map((m, i) => {\r\n m.sortOrder = i;\r\n });\r\n setAgenda(magenda);\r\n props.deleteAgendaItem(deleteIndex);\r\n }\r\n setDeleteIndex(null);\r\n if (open) toggleModal(false);\r\n }\r\n const editAgenda = (e, index) => {\r\n let agenda = sortAgenda(Array.from(modifiedAgenda));\r\n /* let name = e.value.replace('.', '.\\n') */\r\n agenda[index].name = e;\r\n setAgenda(agenda);\r\n setChanged(true);\r\n /* props.handleAgendaOnChange(agenda); */\r\n };\r\n\r\n const toggleVisibility = (value, index) => {\r\n let agenda = sortAgenda(Array.from(props.agenda));\r\n if (agenda[index] !== undefined) agenda[index].hidden = value;\r\n\r\n props.handleAgendaOnChange(agenda);\r\n };\r\n const activateAgenda = (value, index) => {\r\n let agenda = sortAgenda(Array.from(props.agenda));\r\n if (unlocked) {\r\n let mAgenda = Array.from(modifiedAgenda);\r\n if (agenda[index] !== undefined) mAgenda[index].active = value;\r\n setAgenda(mAgenda);\r\n }\r\n agenda.map((a) => {\r\n a.active = false;\r\n });\r\n if (agenda[index] !== undefined) agenda[index].active = value;\r\n\r\n props.handleAgendaOnChange(agenda);\r\n if (value === false) {\r\n props.deactivateSpeakers(agenda[index].agendaItemId);\r\n }\r\n };\r\n const formatTime = (date) => {\r\n if (!date) return null;\r\n let formattedDate = new Date(date);\r\n let h = formattedDate.getHours();\r\n let m = formattedDate.getMinutes();\r\n if (m < 10) m = \"0\" + m;\r\n if (h < 10) h = \"0\" + h;\r\n return h + \":\" + m;\r\n };\r\n const selectAgenda = (a) => {\r\n if (props.selectedAgenda && props.selectedAgenda.agendaItemId < 0 && props.selectedAgenda.agendaItemId != a.agendaItemId) {\r\n setUnsaved(true);\r\n setTargetAgenda(a);\r\n } else {\r\n props.selectAgenda(a);\r\n }\r\n };\r\n const handleWarning = (s = false) => {\r\n if (!s && targetAgenda && targetAgenda.agendaItemId != props.selectedAgenda.agendaItemId) {\r\n props.selectAgenda(targetAgenda);\r\n props.handleAgendaOnChange(\r\n props.agenda.filter((a) => a.agendaItemId !== selectedAgenda.agendaItemId),\r\n true\r\n );\r\n setTargetAgenda(null);\r\n } else {\r\n props.selectAgenda(targetAgenda);\r\n save();\r\n setTargetAgenda(null);\r\n }\r\n setUnsaved(false);\r\n };\r\n const classes = useStyles();\r\n const { agenda, speakers, showSpeakers, selectedAgenda } = props;\r\n const agendaItems = unlocked ? sortAgenda(modifiedAgenda) : sortAgenda(props.agenda);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {!unlocked ? (\r\n a.agendaItemId < 0)} onClick={() => addAgenda()} edge=\"start\" style={{ padding: \"0px 10px\", color: \"#ffffff99\" }}>\r\n \r\n \r\n ) : null}\r\n onUnlock(!unlocked)} edge=\"start\" style={{ padding: \"0px 10px\", color: \"#ffffff99\" }}>\r\n \r\n \r\n {unlocked ? (\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n \r\n {!unlocked\r\n ? agendaItems\r\n .filter((ia) => ia.name.toLowerCase().includes(filter.toLowerCase()) && ia.name !== \"JX_REMOVE\" /* && ia.agendaItemId > 0 */)\r\n .map((a, index) => {\r\n return (\r\n \r\n selectAgenda(a)}\r\n style={{\r\n margin: 0,\r\n padding: 5,\r\n background: a.active ? \"rgb(32 168 216 / 27%)\" : selectedAgenda && selectedAgenda.agendaItemId === a.agendaItemId ? \"#2f2f2f\" : undefined,\r\n }}\r\n >\r\n \r\n \r\n {a.active ? : }\r\n \r\n \r\n \r\n \r\n
\r\n ) : null\r\n } */\r\n style={{ /* maxWidth: '65%', */ color: \"#fff\", opacity: a.closedDateTime ? 0.65 : 1 }}\r\n primary={a ? a.name : \"NoLabel\"}\r\n />\r\n {props.allowSpeaker === true ? (\r\n }>\r\n showSpeakers(a.agendaItemId)}>\r\n {\" \"}\r\n\r\n \r\n {speakers ? speakers.filter((s) => s.agendaItemId === a.agendaItemId && s.closedDateTime == null).length : 0}\r\n \r\n\r\n \r\n \r\n ) : null}\r\n }>\r\n {\r\n e.stopPropagation();\r\n activateAgenda(!a.active, index);\r\n }}\r\n style={{\r\n padding: \"3px\",\r\n cursor: \"pointer\",\r\n color: a.active ? \"#ffff\" : \"#ffffffde\",\r\n background: a.active ? \"#20a8d8e0\" : undefined,\r\n }}\r\n >\r\n \r\n \r\n \r\n\r\n : }>\r\n {\r\n toggleVisibility(!a.hidden, index);\r\n }}\r\n style={{\r\n padding: \"3px\",\r\n cursor: \"pointer\",\r\n color: !a.hidden ? \"#ffff\" : \"#ffffffde\",\r\n }}\r\n >\r\n {a.hidden ? : }\r\n \r\n \r\n \r\n \r\n );\r\n })\r\n : null}\r\n\r\n {unlocked ? (\r\n a.active === true) : null}\r\n editAgenda={editAgenda}\r\n toggleDelete={toggleDelete}\r\n filter={filter}\r\n handleOrderChange={handleOrderChange}\r\n formatTime={formatTime}\r\n showSpeakers={showSpeakers}\r\n />\r\n ) : null}\r\n \r\n deleteAgenda()} onCancel={() => toggleModal(!open)} header={\"AreYouSure\"} open={open} text={\"DoWantToDeleteAgenda\"} />\r\n handleWarning(true)} onCancel={() => handleWarning(false)} header={\"UnsavedChanges\"} open={unSavedWarning} text={\"DoYouWannaSave\"} />\r\n \r\n );\r\n}\r\n\r\nfunction DragList({ activateAgenda, modifiedAgenda, filter, handleOrderChange, formatTime, showSpeakers, speakers, editAgenda, toggleDelete, activeAgenda }) {\r\n const onEdit = (e, index) => {\r\n editAgenda(e, index);\r\n };\r\n return (\r\n
\r\n ia.name.toLowerCase().includes(filter.toLowerCase()) && ia.name !== \"JX_REMOVE\")}\r\n rowKey={\"agendaItemId\"}\r\n className=\"simple-drag\"\r\n rowClassName=\"simple-drag-row\"\r\n dragClass=\"agenda-drag\"\r\n handles={true}\r\n onUpdate={(event, dataSource) => handleOrderChange(event, dataSource)}\r\n row={(a, index) => {\r\n return (\r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n {a.name}\r\n
\r\n\r\n null}>\r\n \r\n {\r\n \r\n {formatTime(a.closedDateTime)}\r\n \r\n }\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n >\r\n {a.closedDateTime ? : }\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n activateAgenda(!a.active, index);\r\n }}\r\n style={{\r\n padding: \"3px\",\r\n cursor: \"pointer\",\r\n color: a.active ? \"#ffff\" : \"#ffffffde\",\r\n background: activeAgenda && a.agendaItemId === activeAgenda.agendaItemId ? \"#20a8d8e0\" : undefined,\r\n }}\r\n >\r\n \r\n \r\n {/* toggleDelete(true, a.agendaItemId)} style={{ cursor: 'pointer', color: '#ffffff99' }}>\r\n \r\n */}\r\n \r\n \r\n );\r\n }}\r\n />\r\n \r\n );\r\n}\r\n\r\nfunction AgendaEditor({ template, text, onChange, onclose }) {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event) => {\r\n onclose();\r\n };\r\n const onSave = () => { };\r\n const onEdit = (e) => { };\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popper\" : undefined;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n handleClick(null)}>\r\n \r\n \r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n {/* */}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { fade, makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport Card from '@material-ui/core/Card';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ReactDragList from \"react-drag-list\";\r\nimport ConfirmModal from '../../../../../../components/ConfirmModal/ConfirmModal';\r\nimport LockOpenIcon from '@material-ui/icons/LockOpen';\r\nimport LockIcon from '@material-ui/icons/Lock';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport PlayArrowIcon from '@material-ui/icons/PlayArrow';\r\nimport { Tooltip, Typography, Button, ListItemAvatar, AccordionSummary,Accordion,AccordionDetails } from '@material-ui/core';\r\nimport SystemLabel from '../../../../../../system/SystemLabel/SystemLabel';\r\nimport { Input, Row, Col } from 'reactstrap';\r\nimport PagesIcon from '@material-ui/icons/Pages';\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport ViewModuleIcon from '@material-ui/icons/ViewModule';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport EventAvailableIcon from '@material-ui/icons/EventAvailable';\r\nimport LiveTvIcon from '@material-ui/icons/LiveTv';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: 'none',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'block',\r\n },\r\n },\r\n search: {\r\n position: 'relative',\r\n backgroundColor: '#3a3b3c',\r\n borderRadius: 5,\r\n marginRight: theme.spacing(2),\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n marginLeft: 0,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: '100%',\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: '100%',\r\n color: '#FFFFFF99',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create('width'),\r\n width: '100%',\r\n color: '#FFFFFF99',\r\n [theme.breakpoints.up('md')]: {\r\n width: '20ch',\r\n },\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n online: {\r\n background: '#44b700'\r\n },\r\n offline: {\r\n background: 'orangered'\r\n },\r\n}));\r\n\r\n\r\n\r\nexport default function PresetItems(props) {\r\n const [filter, setFilter] = React.useState('');\r\n const [presetName, setPresetName] = React.useState('');\r\n const [open, toggleModal] = React.useState(false);\r\n const [unlocked, setUnlocked] = React.useState(false);\r\n const [hasChanged, setChanged] = React.useState(false);\r\n const [modifiedItems, setItems] = React.useState(props.presetItems)\r\n const [deleteIndex, setDeleteIndex] = React.useState(null);\r\n\r\n const [unSavedWarning, setUnsaved] = React.useState(false);\r\n const sortItems = (presetItems) => {\r\n if (!presetItems || presetItems === \"\" || (presetItems && presetItems.length === 0)) return [];\r\n let res = [];\r\n presetItems.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n presetItems.map((a, i) => {\r\n a.sortOrder = i;\r\n })\r\n return presetItems;\r\n }\r\n function onUnlock(val, force = false) {\r\n if (force) {\r\n setUnsaved(false)\r\n }\r\n else if (hasChanged && val === false) {\r\n setUnsaved(true)\r\n return;\r\n }\r\n var presetItems = unlocked ? sortItems(modifiedItems) : sortItems(props.presetItems);\r\n setItems(presetItems);\r\n setUnlocked(val);\r\n }\r\n const toggleDelete = (val, index) => {\r\n if (val === true && deleteIndex !== null) {\r\n setDeleteIndex(null);\r\n }\r\n setDeleteIndex(index);\r\n toggleModal(val)\r\n }\r\n\r\n const handleOrderChange = (event, dataSource) => {\r\n const sortedItems = dataSource.map((ds, i) => {\r\n let el = Object.assign({}, ds);\r\n el.sortOrder = i;\r\n return el;\r\n });\r\n setItems(sortedItems)\r\n setChanged(true)\r\n };\r\n\r\n const defaultPresetItem = (sortOrder, eventId) => {\r\n return {\r\n interactionPresetId: sortOrder ? sortOrder * -1 : -1,\r\n sortOrder,\r\n name: 'Preset ' + sortOrder,\r\n active: false,\r\n content: {\r\n questions: [],\r\n modules: [],\r\n presenter: null,\r\n agenda: null\r\n\r\n },\r\n inserted: null,\r\n updated: null,\r\n eventId: props.eventId\r\n }\r\n };\r\n\r\n const addPreset = () => {\r\n const presetItems = Array.from(modifiedItems);\r\n presetItems.push(defaultPresetItem(presetItems ? presetItems.length + 1 : 0, props.eventId))\r\n setItems(presetItems)\r\n setChanged(true)\r\n }\r\n function deletePreset() {\r\n if (deleteIndex === null) return;\r\n if (deleteIndex < 0) {\r\n let mitems = sortItems(Array.from(modifiedItems));\r\n mitems = mitems.filter(a => a.interactionPresetId !== deleteIndex);\r\n mitems.map((m, i) => {\r\n m.sortOrder = i;\r\n })\r\n setItems(mitems)\r\n setChanged(false)\r\n } else {\r\n let mitems = sortItems(Array.from(modifiedItems));\r\n mitems = mitems.filter(a => a.interactionPresetId !== deleteIndex);\r\n mitems.map((m, i) => {\r\n m.sortOrder = i;\r\n })\r\n setItems(mitems)\r\n props.deletePresetItem(deleteIndex);\r\n }\r\n setDeleteIndex(null)\r\n if (open) toggleModal(false)\r\n }\r\n const editPreset = (e, index) => {\r\n let presets = sortItems(Array.from(modifiedItems));\r\n presets[index].name = e;\r\n setItems(presets)\r\n setChanged(true)\r\n }\r\n const activatePreset = (preset) => {\r\n this.props.activatePreset(preset)\r\n }\r\n const capturePreset = (id) => {\r\n this.props.capturePreset(id);\r\n }\r\n const save = () => {\r\n setUnsaved(false);\r\n const presetItems = Array.from(modifiedItems);\r\n setChanged(false)\r\n props.handlePresetOnChange(presetItems);\r\n }\r\n\r\n const classes = useStyles();\r\n const { presetItems } = props;\r\n const presetItemsList = unlocked ? sortItems(modifiedItems) : sortItems(presetItems)\r\n return (\r\n
\r\n
\r\n onUnlock(!unlocked)}\r\n edge=\"start\" style={{ padding: '0px 10px', color: '#ffffff99' }}>\r\n {unlocked ? : }\r\n \r\n {unlocked ? \r\n \r\n : null}\r\n
\r\n \r\n {!unlocked ?\r\n presetItemsList.map((a, index) => {\r\n return props.selectPreset(a.interactionPresetId)} className=\"dark-card\" style={{ padding: '0px 5px', margin: '5px 0px', border: a.active ? \"3px solid #20a8d8e0\" : '3px solid transparent' }}>\r\n \r\n \r\n props.activatePresetItem(a.interactionPresetId)}>\r\n \r\n \r\n \r\n \r\n })\r\n : null}\r\n {unlocked ?\r\n null}\r\n modifiedItems={presetItemsList}\r\n selectPreset={props.selectPreset}\r\n editPreset={editPreset}\r\n toggleDelete={toggleDelete}\r\n handleOrderChange={handleOrderChange}\r\n />\r\n : null}\r\n \r\n deletePreset()}\r\n onCancel={() => toggleModal(!open)}\r\n header={'AreYouSure'}\r\n open={open}\r\n text={'DoWantToDeletePreset'} />\r\n save()}\r\n onCancel={() => onUnlock(!unlocked, true)}\r\n header={'UnsavedChanges'}\r\n open={unSavedWarning}\r\n text={'DoYouWannaSave'} />\r\n
\r\n );\r\n}\r\n\r\nconst renderPresetContent = (content) => {\r\n const contentInfo = \r\n {presetCollapse({ icon: , label: \"ActiveQuestions\" }, content.questions, 'questions')}\r\n {presetCollapse({ icon: , label: \"ActiveModules\" }, content.modules, 'modules')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {content.agenda ? {content.agenda.sortOrder + 1} : }\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {content.presenter ? content.presenter.name : }\r\n \r\n \r\n \r\n \r\n return contentInfo;\r\n}\r\n\r\n\r\nfunction presetCollapse(summery, details, type) {\r\n return \r\n }\r\n disabled={(details.length === 0)}\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n className=\"dark-card\"\r\n style={{\r\n display: 'inline-flex',\r\n padding: '0px',\r\n width: '100%'\r\n }}\r\n >\r\n \r\n \r\n {summery.icon}\r\n \r\n \r\n \r\n \r\n \r\n {type === 'modules' ? details.filter(d => d.visible === true).length : details.length}\r\n \r\n \r\n\r\n \r\n \r\n {details.map((d, i) => {\r\n return type === 'modules' ? (\r\n \r\n \r\n\r\n \r\n \r\n {d.label || d.name}\r\n \r\n \r\n {d.visible ? : null}\r\n \r\n \r\n ) :\r\n (\r\n \r\n \r\n \r\n {i + 1}\r\n \r\n \r\n \r\n {d.label || d.name}\r\n \r\n \r\n\r\n \r\n \r\n )\r\n })}\r\n\r\n \r\n \r\n}\r\n\r\nfunction DragList({ activatePreset, modifiedItems, handleOrderChange, editPreset, toggleDelete, selectPreset }) {\r\n const onEdit = (e, index) => {\r\n editPreset(e, index)\r\n }\r\n return
\r\n \r\n handleOrderChange(event, dataSource)\r\n }\r\n\r\n row={(a, index) => {\r\n return selectPreset(a.interactionPresetId)} className=\"dark-card\" style={{ padding: '0px', margin: '5px 0px', border: a.active ? \"3px solid #20a8d8e0\" : '3px solid transparent' }}>\r\n \r\n \r\n \r\n \r\n onEdit(e.target.value, index)} />\r\n toggleDelete(true, a.interactionPresetId)} style={{ cursor: 'pointer', color: '#ffffff99' }}>\r\n \r\n \r\n \r\n \r\n }} />\r\n\r\n
\r\n\r\n}\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport { Typography, IconButton, ListItem, ListItemAvatar, ListItemText, Divider, AppBar, Card } from '@material-ui/core';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport ZoomInIcon from '@material-ui/icons/ZoomIn';\r\nimport ZoomOutIcon from '@material-ui/icons/ZoomOut';\r\nimport List from '@material-ui/core/List';\r\nimport ThumbUpIcon from '@material-ui/icons/ThumbUp';\r\n\r\nimport ThumbUpAltOutlinedIcon from '@material-ui/icons/ThumbUpAltOutlined';\r\nimport { fade, makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport DirectionsIcon from '@material-ui/icons/Directions';\r\nimport { VisibilityRounded } from '@material-ui/icons';\r\n\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport AddRoundedIcon from '@material-ui/icons/AddRounded';\r\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\r\nimport VerifiedUserIcon from '@material-ui/icons/VerifiedUser';\r\nimport { formatTime, isTheSameMinute } from '../../../../../../helpers/time.helper';\r\nimport { clientTypeConstants } from '../../../../../constants/clientType.constants';\r\nimport SystemLabel from '../../../../../../system/SystemLabel/SystemLabel';\r\n\r\nconst OnlineBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: '#44b700',\r\n color: '#44b700',\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n '&::after': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n animation: '$ripple 1.2s infinite ease-in-out',\r\n border: '1px solid currentColor',\r\n content: '\"\"',\r\n },\r\n },\r\n '@keyframes ripple': {\r\n '0%': {\r\n transform: 'scale(.8)',\r\n opacity: 1,\r\n },\r\n '100%': {\r\n transform: 'scale(2.4)',\r\n opacity: 0,\r\n },\r\n },\r\n}))(Badge);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: 'none',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'block',\r\n },\r\n },\r\n search: {\r\n position: 'relative',\r\n backgroundColor: '#3a3b3c',\r\n borderRadius: 5,\r\n marginRight: theme.spacing(2),\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n marginLeft: 0,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: '100%',\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: '100%',\r\n color: '#FFFFFF99',\r\n position: 'absolute',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n inputRoot: {\r\n color: 'inherit',\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create('width'),\r\n width: '100%',\r\n color: '#FFFFFF99',\r\n [theme.breakpoints.up('md')]: {\r\n width: '20ch',\r\n },\r\n },\r\n root: {\r\n padding: '2px 4px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n borderBottom: '1px solid gainsboro'\r\n },\r\n input: {\r\n marginLeft: theme.spacing(1),\r\n flex: 1,\r\n },\r\n iconButton: {\r\n padding: 10,\r\n },\r\n divider: {\r\n height: 28,\r\n margin: 4,\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n online: {\r\n background: '#44b700'\r\n },\r\n offline: {\r\n background: 'orangered'\r\n },\r\n}));\r\n\r\n\r\n\r\nexport default class ChatList extends React.Component {\r\n state = {\r\n filter: ''\r\n }\r\n renderConversations = () => {\r\n const { template, visible, eventId } = this.props;\r\n const { filter } = this.state;\r\n const { meetingList, orderList, chats, currentChat } = this.props;\r\n let clientList = meetingList.filter(cl => cl.type == clientTypeConstants.INTERACTION_MEETING)\r\n let filteredKeys = orderList.map(a => { return a.badgeNo });\r\n if (filter) {\r\n filteredKeys = orderList.filter((ia) => ia.name.toString().toLowerCase().includes(filter.toLowerCase())).map((a, i) => { return a.badgeNo });\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n {chats/* .filter(c => filteredKeys.includes(c.target)) */.map((c, i) => {\r\n\r\n let targetProfile = orderList.find(o => o.badgeNo == c.target);\r\n\r\n return \r\n this.props.selectChat(c.target)}>\r\n {!c.seen /* && props.currentChat && c.target != props.currentChat.target.badgeNo */ ?\r\n
\r\n\r\n : null}\r\n \r\n {clientList.find(cl => cl.clientKey == c.target) ? (\r\n \r\n \r\n \r\n ) : (\r\n c.target == `ALL` ?\r\n \r\n \r\n : (\r\n c.target == `MODERATOR` ?\r\n \r\n \r\n \r\n : < Avatar className=\"chat-avatar\" />\r\n )\r\n\r\n )}\r\n \r\n \r\n {c.target != `ALL` && c.target != 'MODERATOR' ? (!targetProfile ? : targetProfile.name) : (c.target != 'MODERATOR' ? : )}\r\n }\r\n secondary={\r\n \r\n {c.previewText == 'INIT' ?\r\n \r\n : (c.lastChange ?\r\n \r\n {c.previewPreFix && c.target != 'MODERATOR' ? : : null}{\" \"}\r\n {c.previewText.substring(0, 20)} • {formatTime(c.lastChange)}\r\n \r\n : null)}\r\n \r\n }\r\n />\r\n \r\n \r\n })}\r\n \r\n
\r\n )\r\n }\r\n onFilter = (filter) => {\r\n this.setState({ filter })\r\n }\r\n getClasses = () => {\r\n useStyles();\r\n }\r\n render() {\r\n return this.renderConversations();\r\n }\r\n}\r\n\r\nfunction StatusBadge({ name, online = false }) {\r\n const classes = useStyles();\r\n return online ? (\r\n \r\n \r\n {/* {name} */}\r\n \r\n \r\n ) : (\r\n \r\n {/* {name} */}\r\n \r\n )\r\n}\r\nfunction CustomizedInputBase({ onInput }) {\r\n const classes = useStyles();\r\n return (\r\n
\r\n
\r\n \r\n
\r\n onInput(e.target.value)}\r\n classes={{\r\n root: classes.inputRoot,\r\n input: classes.inputInput,\r\n }}\r\n inputProps={{ 'aria-label': 'search' }}\r\n />\r\n
\r\n )\r\n}\r\n\r\n","export const selectStyle = {\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"#50525d\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"100%\",\r\n width: 'auto',\r\n }),\r\n container: (provided, state) => ({\r\n ...provided,\r\n maxWidth: \"100%\",\r\n width: \"100%\",\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\",\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n background: \"transparent\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#373842\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#3d3d3d\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n};\r\n","import React from \"react\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from \"react-select\";\r\nimport { connect } from \"react-redux\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { selectStyle } from \"../../models/selectStyle\";\r\nimport { templateActions } from \"../../../store/actions/cms/template/template.action\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n Slide,\r\n Tooltip,\r\n} from \"@material-ui/core\";\r\nimport { deepClone } from \"../../../helpers/objectHelper\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport CalendarTodayOutlinedIcon from \"@material-ui/icons/CalendarTodayOutlined\";\r\nimport { history } from \"../../../helpers/history\";\r\n\r\nconst EventSelector = (props) => {\r\n const {\r\n template,\r\n templates,\r\n dialog,\r\n dispatch,\r\n templateIsSavable,\r\n updateLayout,\r\n } = props;\r\n\r\n \r\n const { eventName, eventId, events, icon = true } = props;\r\n return (\r\n <>\r\n \r\n {icon ? (\r\n }>\r\n \r\n \r\n ) : null}\r\n {\r\n return { value: t.eventId, label: t.name };\r\n })\r\n : []\r\n }\r\n value={{ value: eventId, label: eventName }}\r\n onChange={(opt) => {\r\n const selEvent = events.find((e) => e.eventId == opt.value);\r\n if (selEvent) {\r\n history.push(`/editor/${selEvent.code}`);\r\n }\r\n }}\r\n styles={{\r\n ...selectorStyle,\r\n }}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport const selectorStyle = {\r\n container: (provided, state) => ({\r\n ...provided,\r\n width: \"100%\",\r\n }),\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"#50525d\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"100%\",\r\n width: \"100%\",\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\",\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n background: \"transparent\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#373842\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#3d3d3d\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n alert: state.alert,\r\n page: state.page,\r\n template: state.template.template,\r\n language: state.language,\r\n templateIsSavable: state.template.isSavable,\r\n templates: state.template ? state.template.templates : undefined,\r\n systemLabel: state.systemLabel,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(EventSelector);\r\n","import { FormGroup, List, Popover } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport Popper from \"@material-ui/core/Popper\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Fade from \"@material-ui/core/Fade\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Select from \"react-select\";\r\nimport { selectorStyle } from \"../../../meetingEditor/layout/other/EventSelector\";\r\nimport PlayArrowIcon from \"@material-ui/icons/PlayArrow\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"33.33%\",\r\n flexShrink: 0,\r\n },\r\n paper: {\r\n overflow: \"visible\",\r\n background: \"transparent\",\r\n },\r\n secondaryHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n color: theme.palette.text.secondary,\r\n },\r\n}));\r\n\r\nexport const EventLayoutList = (props) => {\r\n const classes = useStyles();\r\n\r\n const { activeEventLayouts, activateLayout, events, layouts } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {events.map((a, i) => {\r\n let activeLayout = activeEventLayouts.find((ae) => ae.eventId == a.eventId);\r\n let evId = a.eventId;\r\n return (\r\n \r\n \r\n {a.name}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst LayoutPop = ({ layouts, activeLayout, activateLayout, eventId }) => {\r\n const classes = useStyles();\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [activationProps, setActivationProps] = useState(null);\r\n const [selectedLayout, setSelectedLayout] = useState(null);\r\n const handleClick = (event) => {\r\n setAnchorEl(null);\r\n setSelectedLayout(null);\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popover\" : undefined;\r\n return (\r\n <>\r\n {\r\n handleClick(e);\r\n setSelectedLayout(activeLayout ? { value: activeLayout.layoutId, label: layouts.find((l) => l.meetingLayoutId == activeLayout.layoutId)?.name } : null);\r\n }}\r\n >\r\n {activeLayout ? layouts.find((l) => l.meetingLayoutId == activeLayout.layoutId)?.name : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n return { value: t.meetingLayoutId, label: t.name };\r\n })\r\n : []\r\n }\r\n value={selectedLayout}\r\n onChange={(opt) => {\r\n setActivationProps({ layoutId: opt.value, eventId });\r\n setSelectedLayout(opt);\r\n }}\r\n styles={selectorStyle}\r\n />\r\n
\r\n }\r\n className=\"primary-dark-btn\"\r\n disabled={!activationProps}\r\n onClick={() => {\r\n activateLayout(activationProps.eventId, activationProps.layoutId);\r\n setActivationProps(null);\r\n setSelectedLayout(null);\r\n setAnchorEl(null);\r\n }}\r\n >\r\n \r\n \r\n {\r\n setActivationProps(null);\r\n setSelectedLayout(null);\r\n setAnchorEl(null);\r\n }}\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n","import { Button, IconButton, List } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Select from \"react-select\";\r\nimport { selectorStyle } from \"../../../meetingEditor/layout/other/EventSelector\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport ArrowRightAltIcon from \"@material-ui/icons/ArrowRightAlt\";\r\nimport BuildIcon from \"@material-ui/icons/Build\";\r\nimport ContentEditable from \"react-contenteditable\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport PlayArrowIcon from \"@material-ui/icons/PlayArrow\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"33.33%\",\r\n flexShrink: 0,\r\n },\r\n typography: {\r\n marginBottom: \"0.5rem\",\r\n },\r\n secondaryHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n color: theme.palette.text.secondary,\r\n },\r\n}));\r\n\r\nexport const PresetList = (props) => {\r\n const [selectedEvent, setSelectedEvent] = useState(null);\r\n const [selectedLayout, setSelectedLayout] = useState(null);\r\n const [expanded, setExpanded] = React.useState(false);\r\n\r\n const handleChange = (panel) => (event, isExpanded) => {\r\n setExpanded(isExpanded ? panel : false);\r\n };\r\n const classes = useStyles();\r\n const { layouts, events, presets, isSavable, setSelectedPresetId, addPreset, activatePreset, deletePreset, deletePresetItem, addPresetItem, savePresets, onEditPreset } = props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {presets.map((p, i) => {\r\n return (\r\n \r\n } aria-controls={`panel${p.daPresetId}bh-content`} id={`panel${p.daPresetId}bh-header`}>\r\n
\r\n {expanded === \"panel\" + p.daPresetId ? (\r\n
\r\n \r\n e.stopPropagation()}\r\n /* style={element.style.styleProps} */\r\n /* innerRef={this.contentEditable} */\r\n style={{ background: \"#50525d\" }}\r\n html={p.name}\r\n className={classes.heading + \" primary-text ce-p\"}\r\n onChange={(e) => onEditPreset(p.daPresetId, e.target.value)}\r\n tagName=\"p\"\r\n />\r\n
\r\n ) : (\r\n {p.name}\r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {p.daPresetItems\r\n ? p.daPresetItems.map((pp, i) => {\r\n const layoutName = layouts.find((l) => l.meetingLayoutId == pp.meetingLayoutId)?.name;\r\n const eventName = events.find((l) => l.eventId == pp.targetEventId)?.name;\r\n return (\r\n \r\n \r\n
\r\n {eventName}\r\n
\r\n \r\n \r\n
\r\n {layoutName}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n })\r\n : null}\r\n
\r\n\r\n \r\n \r\n {\r\n return { value: t.eventId, label: t.name };\r\n })\r\n : []\r\n }\r\n value={selectedEvent}\r\n onChange={(opt) => {\r\n const selEvent = events.find((e) => e.eventId == opt.value);\r\n setSelectedEvent({ value: selEvent.eventId, label: selEvent.name });\r\n }}\r\n styles={selectorStyle}\r\n />\r\n \r\n \r\n {\r\n return { value: t.meetingLayoutId, label: t.name };\r\n })\r\n : []\r\n }\r\n value={selectedLayout}\r\n onChange={(opt) => {\r\n const selLayout = layouts.find((e) => e.meetingLayoutId == opt.value);\r\n setSelectedLayout({ value: selLayout.meetingLayoutId, label: selLayout.name });\r\n }}\r\n styles={selectorStyle}\r\n />\r\n \r\n \r\n }\r\n className=\"secondary-dark-btn\"\r\n disabled={!selectedEvent && !selectedLayout}\r\n onClick={() => addPresetItem(selectedEvent.value, selectedLayout.value, p.daPresetId)}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n};\r\n","import { AppBar, Button, Dialog, Grid, IconButton, makeStyles, Toolbar, Typography } from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { deepClone } from \"../../helpers/objectHelper\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Select from \"react-select\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport { EventLayoutList } from \"./components/EventLayoutList\";\r\nimport { PresetList } from \"./components/PresetList\";\r\nimport Axios from \"axios\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n paper: {\r\n overflow: \"hidden\",\r\n },\r\n}));\r\n\r\nexport const Preset = (props) => {\r\n const [presets, setPresets] = useState([]);\r\n const [activeEventLayouts, setActiveEventLayouts] = useState([]);\r\n const [events, setEvents] = useState([]);\r\n const [layouts, setLayouts] = useState([]);\r\n const [changedPresets, setChangedPresets] = useState([]);\r\n const [changedPresetItems, setChangedPresetItems] = useState([]);\r\n const [isSavable, setSavable] = useState(false);\r\n const classes = useStyles();\r\n const { hubConnection, eventId, connected } = props;\r\n\r\n useEffect(() => {\r\n init();\r\n }, []);\r\n\r\n const init = () => {\r\n if (hubConnection && connected) {\r\n hubConnection.on(\"onGetPresets\", (res) => {\r\n setPresets(res);\r\n });\r\n hubConnection.on(\"onGetActiveEventLayouts\", (res) => {\r\n setActiveEventLayouts(res);\r\n });\r\n hubConnection.on(\"onPresetActivated\", (res) => {\r\n setActiveEventLayouts(res);\r\n });\r\n hubConnection.on(\"onGetEvents\", (res) => {\r\n setEvents(res);\r\n });\r\n \r\n hubConnection.invoke(\"getPresets\", eventId);\r\n hubConnection.invoke(\"getActiveLayouts\", eventId);\r\n hubConnection.invoke(\"getEvents\", eventId);\r\n Axios.get(`./api/meeting/layouts/${eventId}`).then(({ data }) => {\r\n setLayouts(data);\r\n });\r\n }\r\n };\r\n\r\n const onEditPreset = (presetId, name) => {\r\n const index = presets.indexOf(presets.find((p) => p.daPresetId == presetId));\r\n\r\n if (index < 0) return;\r\n\r\n const modifiedPresets = deepClone(presets);\r\n modifiedPresets[index].name = name;\r\n\r\n setPresets(modifiedPresets);\r\n\r\n modifiedPresets[index].edited = true;\r\n\r\n const modifiedChangePresets = deepClone(changedPresets);\r\n const changePresetIndex = modifiedChangePresets.indexOf(modifiedChangePresets.find((c) => c.daPresetId == presetId));\r\n\r\n if (changePresetIndex > -1) {\r\n modifiedChangePresets[changePresetIndex].name = name;\r\n } else {\r\n setChangedPresets([...modifiedChangePresets, modifiedPresets[index]]);\r\n }\r\n setSavable(true);\r\n };\r\n const sortPresets = () => {};\r\n\r\n const addPreset = () => {\r\n const newId = changedPresets.filter((p) => p.added == true).length;\r\n const newPreset = {\r\n daPresetId: newId == 0 ? -1 : newId + 1 * -1,\r\n name: \"\",\r\n inserted: new Date(),\r\n eventId: 0,\r\n sortOrder: 0,\r\n daPresetItems: [],\r\n added: true,\r\n };\r\n\r\n const modifiedPresets = deepClone(presets);\r\n\r\n modifiedPresets.push(newPreset);\r\n\r\n setPresets(modifiedPresets);\r\n setChangedPresets([...changedPresets, newPreset]);\r\n setSavable(true);\r\n };\r\n\r\n const deletePreset = (presetId) => {\r\n const deletedPreset = presets.find((p) => p.daPresetId == presetId);\r\n if (!deletedPreset) return;\r\n\r\n deletedPreset.deleted = true;\r\n let modifiedPresets = deepClone(presets);\r\n modifiedPresets = modifiedPresets.filter((m) => m.daPresetId != presetId);\r\n\r\n setChangedPresets([...changedPresets.filter((cp) => cp.daPresetId != presetId), deletedPreset]);\r\n setPresets(modifiedPresets);\r\n setSavable(true);\r\n };\r\n\r\n const deletePresetItem = (presetItemId) => {\r\n const parentPreset = presets.find((p) => p.daPresetItems.find((pp) => pp.daPresetItemId == presetItemId));\r\n if (!parentPreset) return;\r\n\r\n let deletedPresetItem = parentPreset.daPresetItems.find((p) => p.daPresetItemId == presetItemId);\r\n\r\n if (!deletedPresetItem) return;\r\n\r\n deletedPresetItem.deleted = true;\r\n\r\n setChangedPresetItems([...changedPresetItems.filter((cp) => cp.daPresetItemId != presetItemId), deletedPresetItem]);\r\n\r\n const modifiedPresets = deepClone(presets);\r\n const index = presets.indexOf(presets.find((p) => p.daPresetId == deletedPresetItem.daPresetId));\r\n\r\n if (index < 0) return;\r\n\r\n modifiedPresets[index].daPresetItems = modifiedPresets[index].daPresetItems.filter((pi) => pi.daPresetItemId != presetItemId);\r\n setPresets(modifiedPresets);\r\n setSavable(true);\r\n };\r\n const addPresetItem = (eventId, layoutId, presetId) => {\r\n const index = presets.indexOf(presets.find((p) => p.daPresetId == presetId));\r\n if (index < 0) return;\r\n\r\n const modifiedPresets = deepClone(presets);\r\n const newId = changedPresetItems.filter((p) => p.added == true).length;\r\n const newPresetItem = {\r\n daPresetItemId: newId == 0 ? -1 : newId + 1 * -1,\r\n targetEventId: eventId,\r\n meetingLayoutId: layoutId,\r\n daPresetId: presetId,\r\n added: true,\r\n };\r\n\r\n modifiedPresets[index].daPresetItems.push(newPresetItem);\r\n\r\n setPresets(modifiedPresets);\r\n setChangedPresetItems([...changedPresetItems, newPresetItem]);\r\n setSavable(true);\r\n };\r\n\r\n const activatePreset = (presetId) => {\r\n if (hubConnection && connected && presetId) {\r\n hubConnection.invoke(\"activatePreset\", presetId);\r\n } else {\r\n alert(\"NO CONNECTION - RELOAD PAGE\");\r\n }\r\n };\r\n\r\n const savePresets = () => {\r\n if (hubConnection && connected) {\r\n changedPresets.map((cl) => {\r\n if (cl.added && cl.deleted) {\r\n } else if (cl.added) {\r\n cl.status = \"added\";\r\n } else if (cl.deleted) {\r\n cl.status = \"deleted\";\r\n } else {\r\n cl.status = \"updated\";\r\n }\r\n delete cl.edited;\r\n delete cl.deleted;\r\n delete cl.added;\r\n });\r\n\r\n changedPresetItems.map((cl) => {\r\n if (cl.added && cl.deleted) {\r\n } else if (cl.added) {\r\n cl.status = \"added\";\r\n } else if (cl.deleted) {\r\n cl.status = \"deleted\";\r\n } else {\r\n cl.status = \"updated\";\r\n }\r\n delete cl.edited;\r\n delete cl.deleted;\r\n delete cl.added;\r\n });\r\n hubConnection.invoke(\"addOrUpdatePresets\", eventId, { presets: changedPresets, presetItems: changedPresetItems });\r\n setSavable(false);\r\n } else {\r\n alert(\"NO CONNECTION - RELOAD PAGE\");\r\n }\r\n };\r\n\r\n const activateLayout = (eventId, layoutId) => {\r\n if (hubConnection && connected && eventId && layoutId) {\r\n hubConnection.invoke(\"activateLayout\", eventId, layoutId);\r\n } else {\r\n alert(\"NO CONNECTION - RELOAD PAGE\");\r\n }\r\n };\r\n\r\n const addOrInsertPreset = () => {};\r\n\r\n const api = {\r\n ...props,\r\n activateLayout,\r\n activeEventLayouts,\r\n presets,\r\n savePresets,\r\n activatePreset,\r\n addPreset,\r\n events,\r\n layouts,\r\n isSavable,\r\n onEditPreset,\r\n deletePreset,\r\n deletePresetItem,\r\n addPresetItem,\r\n sortPresets,\r\n };\r\n return (\r\n null} TransitionComponent={Transition}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n","import React, { useEffect, useState } from \"react\";\r\nimport PresentToAllIcon from \"@material-ui/icons/PresentToAll\";\r\nimport CancelPresentationIcon from \"@material-ui/icons/CancelPresentation\";\r\nimport axios from \"axios\";\r\nimport ReactDragList from \"react-drag-list\";\r\nimport { Avatar, IconButton, InputBase, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, makeStyles, Tooltip } from \"@material-ui/core\";\r\nimport { combineProps, deepClone } from \"../../../../../../helpers/objectHelper\";\r\nimport { meetingService } from \"../../../../../../services/meeting/meeting.service\";\r\nimport ViewCompactIcon from \"@material-ui/icons/ViewCompact\";\r\nimport { Label, Spinner } from \"reactstrap\";\r\nimport SystemLabel from \"../../../../../../system/SystemLabel/SystemLabel\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport SortIcon from \"@material-ui/icons/Sort\";\r\nimport { Preset } from \"../../../../../preset/Preset\";\r\nimport GroupWorkIcon from \"@material-ui/icons/GroupWork\";\r\nimport MobileFriendlyIcon from \"@material-ui/icons/MobileFriendly\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n backgroundColor: \"#3a3b3c\",\r\n borderRadius: 5,\r\n marginRight: theme.spacing(2),\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: 0,\r\n marginLeft: 10,\r\n marginRight: 10,\r\n width: \"100%\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n color: \"#FFFFFF99\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n color: \"#FFFFFF99\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"20ch\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n online: {\r\n background: \"#44b700\",\r\n },\r\n offline: {\r\n background: \"orangered\",\r\n },\r\n}));\r\n\r\nexport function MeetingLayouts(props) {\r\n const [layouts, setLayouts] = useState([]);\r\n const [activateLayoutId, setActiveLayoutId] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [unlocked, onUnlock] = useState(false);\r\n const [hasChanged, setHasChanged] = useState(false);\r\n const [isPresetOpen, setPresetOpen] = useState(false);\r\n const [filter, setFilter] = React.useState(\"\");\r\n const classes = useStyles();\r\n\r\n const searchFilter = (e) => {\r\n setFilter(e.target.value);\r\n };\r\n const { hubConnection, eventId, connected } = props;\r\n useEffect(() => {}, []);\r\n\r\n useEffect(() => {\r\n if (eventId && hubConnection && connected) {\r\n fetchLayouts();\r\n configureHubEvents();\r\n }\r\n }, [eventId, hubConnection, connected]);\r\n\r\n const configureHubEvents = () => {\r\n hubConnection.on(\"onGetActiveMeetingLayout\", (layout) => {\r\n if (layout) {\r\n setActiveLayoutId(layout.meetingLayoutId);\r\n } else {\r\n setActiveLayoutId(null);\r\n }\r\n });\r\n hubConnection.invoke(\"getActiveMeetingLayout\", eventId);\r\n };\r\n const changeLayoutStatus = (meetingLayoutId) => {\r\n if (!hubConnection || hubConnection.connectionState != 1) return;\r\n hubConnection.invoke(\"changeLayoutStatus\", eventId, meetingLayoutId);\r\n };\r\n\r\n const onLayoutUpdate = (layouts) => {\r\n setLayouts(layouts);\r\n };\r\n const onSort = (event, dataSource) => {\r\n const sortedLayouts = dataSource.map((ds, i) => {\r\n let el = Object.assign({}, ds);\r\n el.sortOrder = i;\r\n return el;\r\n });\r\n setLayouts(sortedLayouts);\r\n setHasChanged(true);\r\n };\r\n const fetchLayouts = () => {\r\n meetingService.getLayouts(eventId).then((layouts) => {\r\n setLayouts(layouts);\r\n setLoading(false);\r\n });\r\n };\r\n const save = () => {\r\n axios\r\n .put(\r\n `./api/meeting/updatelayouts/`,\r\n layouts\r\n .filter((l) => l.eventId == eventId)\r\n .map((l) => {\r\n let ll = deepClone(l);\r\n ll.meetingModules = null;\r\n return ll;\r\n })\r\n )\r\n .then(({ data }) => {\r\n setLayouts(data);\r\n });\r\n };\r\n const api = {\r\n /* activateLayout, */\r\n changeLayoutStatus,\r\n layouts,\r\n filter,\r\n onSort,\r\n unlocked,\r\n activateLayoutId,\r\n ...props,\r\n };\r\n if (loading) return ;\r\n return (\r\n
\r\n {isPresetOpen ? setPresetOpen(false)} /> : null}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n onUnlock(!unlocked)}\r\n edge=\"start\"\r\n style={{\r\n padding: \"0px 10px\",\r\n color: unlocked ? \"#fff\" : \"#ffffff99\",\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n {unlocked ? (\r\n \r\n \r\n \r\n ) : null}\r\n setPresetOpen(true)}\r\n edge=\"start\"\r\n style={{\r\n padding: \"0px 10px\",\r\n color: !hasChanged ? \"rgba(255, 255, 255, 0.28)\" : \"#fff\",\r\n }}\r\n >\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nconst LayoutList = (props) => {\r\n const { layouts, activateLayoutId, activeMobileLayout, eventId, events, unlocked, eventName, filter, onSort } = props;\r\n if (layouts.length == 0) return null;\r\n if (unlocked) {\r\n return (\r\n \r\n {\r\n let returnable = l.eventId == eventId;\r\n if (filter) {\r\n returnable = l.name.toLowerCase().includes(filter.toLowerCase()) && l.eventId == eventId;\r\n }\r\n return returnable;\r\n })}\r\n rowKey={\"meetingLayoutId\"}\r\n className=\"simple-drag\"\r\n rowClassName=\"simple-drag-row\"\r\n handles={true}\r\n onUpdate={(event, dataSource) => onSort(event, dataSource)}\r\n row={(q, index) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }}\r\n />\r\n \r\n );\r\n }\r\n return (\r\n \r\n {layouts.find((l) => l.mobile) ? (\r\n \r\n ) : null}\r\n {layouts\r\n .filter((l) => {\r\n let returnable = l.eventId == eventId;\r\n if (filter) {\r\n returnable = l.name.toLowerCase().includes(filter.toLowerCase()) && l.eventId == eventId;\r\n }\r\n if (l.mobile) return false;\r\n return returnable;\r\n })\r\n .map((l, ii) => {\r\n let active = l.meetingLayoutId == activateLayoutId;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n {layouts.find((l) => l.mobile) ? (\r\n <>\r\n \r\n {layouts\r\n .filter((l) => {\r\n let returnable = l.eventId == eventId;\r\n if (filter) {\r\n returnable = l.name.toLowerCase().includes(filter.toLowerCase()) && l.eventId == eventId;\r\n }\r\n if (!l.mobile) return false;\r\n return returnable;\r\n })\r\n .map((l, ii) => {\r\n let active = l.meetingLayoutId == activeMobileLayout?.meetingLayoutId;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })}\r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\n\r\nconst PresenterIcon = ({ active }) => (active == true ? : );\r\n\r\nconst LayoutListItem = (props) => {\r\n const { active, name, mobile, changeLayoutStatus, meetingLayoutId, drag = false } = props;\r\n return (\r\n \r\n \r\n {mobile ? : }\r\n \r\n \r\n {!drag ? (\r\n \r\n changeLayoutStatus(meetingLayoutId)} className=\"primary-text\">\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\n\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport QuestionList from \"./QuestionList\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport AgendaList from \"./Agenda/AgendaList\";\r\nimport { Col } from \"reactstrap\";\r\nimport SystemLabel from \"../../../../../system/SystemLabel/SystemLabel\";\r\nimport PresetItems from \"./Preset/PresetItems\";\r\nimport ChatList from \"../Chat/ChatList/ChatList\";\r\nimport ForumTwoToneIcon from \"@material-ui/icons/ForumTwoTone\";\r\nimport { Badge } from \"@material-ui/core\";\r\nimport { MeetingLayouts } from \"../ActiveItems/MeetingLayouts/MeetingLayouts\";\r\nimport NewReleasesIcon from \"@material-ui/icons/NewReleases\";\r\n\r\nexport function TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport { Col } from 'reactstrap';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport ActiveItemsTab from './ActiveItemsTab';\r\nexport default function ActiveItems(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport MeetingLayoutSettings from '../MeetingLayoutSettings/MeetingLayoutSettings';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport InteractionPages from '../InteractionPages/InteractionPages';\r\nimport Breakouts from '../Breakouts/Breakouts';\r\nimport './SettingsAside.css'\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n backdrop: {\r\n zIndex: 500,\r\n color: '#fff',\r\n marginTop: 56\r\n },\r\n}));\r\nexport default function SettingsAside(props) {\r\n const [meetingLayoutExpanded, expand] = React.useState(false)\r\n const classes = useStyles();\r\n const toggleExpand = (value) => {\r\n expand(value)\r\n }\r\n if (props.eventId < 0) return null;\r\n return (\r\n
\r\n props.toggleAside(false)} open={props.open}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n );\r\n}","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport SystemLabel from '../../../../../system/SystemLabel/SystemLabel';\r\nimport ClientList from '../ClientList';\r\nexport function TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n
${url} `;\r\n });\r\n };\r\n /* const url = urlify(); */\r\n const content = textify();\r\n return (\r\n
\r\n
\r\n\r\n\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Container, Row, Col, Input } from \"reactstrap\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardActions from \"@material-ui/core/CardActions\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport {\r\n Typography,\r\n IconButton,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n Divider,\r\n AppBar,\r\n} from \"@material-ui/core\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport ZoomInIcon from \"@material-ui/icons/ZoomIn\";\r\nimport ZoomOutIcon from \"@material-ui/icons/ZoomOut\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ThumbUpIcon from \"@material-ui/icons/ThumbUp\";\r\nimport ThumbUpAltOutlinedIcon from \"@material-ui/icons/ThumbUpAltOutlined\";\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport ForumIcon from \"@material-ui/icons/Forum\";\r\nimport { fade, makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Badge from \"@material-ui/core/Badge\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport DirectionsIcon from \"@material-ui/icons/Directions\";\r\nimport { VisibilityRounded } from \"@material-ui/icons\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport GroupIcon from \"@material-ui/icons/Group\";\r\nimport AddRoundedIcon from \"@material-ui/icons/AddRounded\";\r\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\r\nimport VerifiedUserIcon from \"@material-ui/icons/VerifiedUser\";\r\nimport ForumTwoToneIcon from \"@material-ui/icons/ForumTwoTone\";\r\nimport { ChatBox } from \"../../../../../utils/ChatBox\";\r\nimport { isTheSameMinute } from \"../../../../../../helpers/time.helper\";\r\nimport SystemLabel from \"../../../../../../system/SystemLabel/SystemLabel\";\r\nimport { labelHelper } from \"../../../../../../helpers/labelHelper\";\r\n\r\nconst OnlineBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n \"&::after\": {\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: \"50%\",\r\n animation: \"$ripple 1.2s infinite ease-in-out\",\r\n border: \"1px solid currentColor\",\r\n content: '\"\"',\r\n },\r\n },\r\n \"@keyframes ripple\": {\r\n \"0%\": {\r\n transform: \"scale(.8)\",\r\n opacity: 1,\r\n },\r\n \"100%\": {\r\n transform: \"scale(2.4)\",\r\n opacity: 0,\r\n },\r\n },\r\n}))(Badge);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n root: {\r\n padding: \"2px 4px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n borderBottom: \"1px solid gainsboro\",\r\n },\r\n input: {\r\n marginLeft: theme.spacing(1),\r\n flex: 1,\r\n },\r\n iconButton: {\r\n padding: 10,\r\n },\r\n divider: {\r\n height: 28,\r\n margin: 4,\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n online: {\r\n background: \"#44b700\",\r\n },\r\n offline: {\r\n background: \"orangered\",\r\n },\r\n}));\r\nexport default class ChatWindow extends React.Component {\r\n state = {\r\n text: \"\",\r\n autoScrollLocked: false,\r\n hiddenMessages: 0,\r\n initalScrollPos: null,\r\n };\r\n componentDidMount() {\r\n this.scrollRef = React.createRef();\r\n document.addEventListener(\"keyup\", this.onEnter);\r\n this.handleScroll();\r\n }\r\n\r\n onEnter = (e) => {\r\n var e = e || window.event; // for IE to cover IEs window event-object\r\n if (e.which == 13 && this.state.text) {\r\n this.sendMessage();\r\n }\r\n };\r\n clearChat = () => {\r\n this.setState({ messages: [] });\r\n };\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.props.scroll && !prevProps.scroll) {\r\n if (!this.state.autoScrollLocked) {\r\n this.handleScroll();\r\n }\r\n }\r\n if (this.props.currentChat != prevProps.currentChat) {\r\n if (!this.state.autoScrollLocked) {\r\n this.handleScroll();\r\n }\r\n }\r\n }\r\n\r\n handleScroll = (id) => {\r\n const { currentChat, chats } = this.props;\r\n if (currentChat && currentChat.target) {\r\n let chatIndex = chats.indexOf(\r\n chats.find((c) => c.target == currentChat.target)\r\n );\r\n if (chatIndex > -1) {\r\n let index = chats[chatIndex].messages.length - 1;\r\n if (index > -1 && this.refs[index] !== undefined) {\r\n try {\r\n this.refs[index].scrollIntoView({\r\n block: \"end\",\r\n behavior: \"smooth\",\r\n });\r\n\r\n this.setState({ loaded: false, autoScrollLocked: false });\r\n\r\n /* setTimeout(() => {\r\n \r\n let initalScrollPos = this.scrollRef.current.scrollTop;\r\n this.setState({ initalScrollPos })\r\n }, 1500) */\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n sendMessage = () => {\r\n const { text } = this.state;\r\n const { currentChat } = this.props;\r\n let target = currentChat.target;\r\n let room = `ALL`;\r\n\r\n if (currentChat && currentChat.target == `ALL`) target = null;\r\n\r\n let isValid = text && text.length <= 500;\r\n\r\n if (isValid) {\r\n this.props.sendMessage(text);\r\n this.setState({ text: \"\" });\r\n }\r\n };\r\n onScroll = (manual = false) => {\r\n if (manual && this.scrollRef && this.scrollRef.current) {\r\n const { initalScrollPos, hiddenMessages, autoScrollLocked } = this.props;\r\n const scrollTop = this.scrollRef.current.scrollTop;\r\n if (initalScrollPos >= 150 && scrollTop <= initalScrollPos - 150) {\r\n this.setState({ autoScrollLocked: true });\r\n }\r\n\r\n if (\r\n initalScrollPos + hiddenMessages * 82 <= scrollTop &&\r\n autoScrollLocked\r\n ) {\r\n const { chats, currentChat } = this.state;\r\n let cc = chats.find((c) => c.target == currentChat.target);\r\n const updatedChat = chats;\r\n if (cc && !cc.seen) {\r\n let index = updatedChat.indexOf(cc);\r\n if (index > -1) updatedChat[index].seen = true;\r\n cc.seen = true;\r\n if (cc.target != \"ALL\") {\r\n this.setMessageSeen(cc.target);\r\n }\r\n }\r\n this.setState({ autoScrollLocked: false, hiddenMessages: 0 });\r\n }\r\n }\r\n };\r\n scrollToBottom = () => {\r\n const { chats, currentChat } = this.props;\r\n let cc = chats.find((c) => c.target == currentChat.target);\r\n if (cc && !cc.seen) {\r\n const updatedChat = chats;\r\n let index = updatedChat.indexOf(cc);\r\n if (index > -1) updatedChat[index].seen = true;\r\n cc.seen = true;\r\n this.setState({ chats: updatedChat, currentChat: cc });\r\n if (cc.target != \"ALL\") {\r\n this.setMessageSeen(cc.target);\r\n }\r\n }\r\n this.setState({ autoScrollLocked: false, hiddenMessages: 0 });\r\n this.handleScroll();\r\n };\r\n renderTargetCard = () => {\r\n const { currentChat, orderList } = this.props;\r\n const { connectionList } = this.props;\r\n const { target } = currentChat;\r\n const { eventId } = this.props;\r\n const person = orderList.find((o) => o.badgeNo == target);\r\n if (!person && target == `ALL`) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n secondary={\r\n \r\n {connectionList.length} {\" \"} \r\n \r\n }\r\n />\r\n \r\n );\r\n }\r\n if (!person && target == `MODERATOR`) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n secondary={\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n }\r\n if (!person)\r\n return (\r\n \r\n \r\n c.clientKey == target) || false\r\n } /* name={person.initials} */\r\n />\r\n \r\n \r\n \r\n {\"_\"}\r\n {target ? target.substring(0, 8) : \"\"}\r\n \r\n }\r\n />\r\n \r\n );\r\n return (\r\n \r\n \r\n c.clientKey == target) || false\r\n } /* name={person.initials} */\r\n />\r\n \r\n \r\n {person.name}\r\n \r\n }\r\n secondary={\r\n {person.company}\r\n }\r\n />\r\n \r\n );\r\n };\r\n render() {\r\n const { extraProps } = this.props;\r\n const { currentChat, chats } = this.props;\r\n const { clientKey, template, connectionList, orderList } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentChat ? this.renderTargetCard() : null}\r\n \r\n \r\n \r\n \r\n {currentChat ? (\r\n \r\n this.onScroll(true)}\r\n >\r\n {currentChat.target &&\r\n chats.find((c) => c.target == currentChat.target)\r\n ? chats\r\n .find((c) => c.target == currentChat.target)\r\n .messages.map((m, i) => {\r\n return (\r\n
\r\n null}\r\n fromYou={m.sender == \"MODERATOR\"}\r\n />\r\n
\r\n );\r\n })\r\n : null}\r\n
\r\n\r\n \r\n {this.state.autoScrollLocked ? (\r\n 0 &&\r\n this.state.currentChat == \"ALL\")\r\n }\r\n currentChat={this.state.currentChat}\r\n scrollToBottom={this.scrollToBottom}\r\n />\r\n ) : null}\r\n
\r\n this.setState({ text: e.target.value })}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n this.props.sendMessage(\"THUMB_UP\")}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nfunction ScrollToBottomButton({\r\n unreadMessages = 0,\r\n scrollToBottom = () => null,\r\n show,\r\n}) {\r\n return (\r\n
\r\n
\r\n \r\n 0 ? 1 : 0,\r\n }}\r\n >\r\n {unreadMessages} {\" \"}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nfunction StatusBadge({ name, online = false }) {\r\n const classes = useStyles();\r\n return online ? (\r\n \r\n {/* {name} */}\r\n \r\n ) : (\r\n {/* {name} */}\r\n );\r\n}\r\n","import React from \"react\";\r\nimport QuestionOverview from \"./components/QuestionOverview/QuestionOverview\";\r\nimport { connect } from \"react-redux\";\r\nimport { questionActions } from \"../../../store/actions/question/question.action\";\r\nimport { clientTypeConstants } from \"../../constants/clientType.constants\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { deepClone } from \"../../../helpers/objectHelper\";\r\nimport { templateActions } from \"../../../store/actions/cms/template/template.action\";\r\nimport HeaderBar from \"./components/HeaderBar\";\r\nimport ActiveItems from \"./components/ActiveItems/ActiveItems\";\r\nimport SettingsAside from \"./components/Settings/SettingsAside/SettingsAside\";\r\nimport Axios from \"axios\";\r\nimport ClientOverview from \"./components/ClientOverview/ClientOverview\";\r\nimport { ActiveInfo } from \"./components/ActiveInfo\";\r\nimport { handleResponse } from \"../../../helpers/handleresponse\";\r\nimport SpeakerOverview from \"./components/SpeakerOverview/SpeakerOverview\";\r\nimport CustomSnackbar from \"./components/UI/Notifier\";\r\n\r\nimport PresetOverview from \"./components/ActiveItems/Preset/PresetOverview\";\r\nimport AgendaEditView from \"./components/ActiveItems/Agenda/AgendaEditView\";\r\nimport ChatWindow from \"./components/Chat/ChatWindow/ChatWindow\";\r\nimport \"./ModeratorLayout.css\";\r\nimport { ModulesConflictModal } from \"./components/ModuleConflictModal\";\r\nimport { ClientConnectionFallback, Loader } from \"../../../digitalArena/utils/ClientConnectionFallback\";\r\nimport { ConnectionStatus } from \"../../../digitalArena/components/fallbacks/ConnectionStatus\";\r\nimport { sourceTypes } from \"../../../constants/cms/sourceType\";\r\nimport { cmsActions } from \"../../../store/actions/cms/cms.action\";\r\nimport AgendaList from \"./components/ActiveItems/Agenda/AgendaList\";\r\nimport { Card, CardContent } from \"@material-ui/core\";\r\n\r\nclass NewLayout extends React.Component {\r\n state = {\r\n hubConnection: null,\r\n connected: false,\r\n presenters: [1, 2, 3],\r\n clients: 0,\r\n showClients: true,\r\n agenda: [],\r\n speakers: [],\r\n eventId: -1,\r\n arenaClosed: false,\r\n showSpeaker: null,\r\n asideOpen: false,\r\n connectionList: [],\r\n orderList: [],\r\n allowSpeaker: false,\r\n activeQuestions: [],\r\n activePresenterQuestion: 0,\r\n clientResponses: [],\r\n questionPresentParticipants: [],\r\n showAgendaInfo: null,\r\n selectedAgenda: null,\r\n clientTemplateId: 0,\r\n defaultLanguage: \"swe\",\r\n timer: 1,\r\n buttonTimers: [],\r\n activeAgenda: null,\r\n presenterSettings: {\r\n displayTypeText: \"TEXTFLOW\",\r\n displayTypeOption: \"BARCHART\",\r\n moderationMode: false,\r\n presentationOrder: \"SORTORDER\",\r\n showCount: true,\r\n showPercent: false,\r\n },\r\n // moderationMode: false,\r\n // presentationOrder: \"SORTORDER\",\r\n forceQuestion: false,\r\n selectedQuestion: null,\r\n tcpConnections: null,\r\n activePreset: null,\r\n allowChat: true,\r\n snackbar: {\r\n show: false,\r\n message: \"\",\r\n status: null,\r\n },\r\n scroll: false,\r\n breakouts: [],\r\n tickCode: null,\r\n eventCode: null,\r\n connecting: false,\r\n personTypes: [],\r\n init: false,\r\n activeMobileLayout: null,\r\n modules: [],\r\n currentChat: null,\r\n chats: [],\r\n eventName: \"\",\r\n questionTagList: [],\r\n activeModulesChanged: false,\r\n parentEvent: null,\r\n selectedPreset: null,\r\n conflictedModules: [],\r\n questionAgendaSplitView: false,\r\n eventLang: null,\r\n code: \"\",\r\n presetItems: [],\r\n\r\n conflictedModuleWarning: false,\r\n };\r\n deactivateAgendaSpeakersOnClose = (agendaItemId) => {\r\n this.hubConnection.invoke(\"deactivateSpeakersOnAgendaClosed\", this.state.eventId, agendaItemId).catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n\r\n onModuleImport = ({ allModules, newPresets }) => {\r\n const cf = newPresets.map((p) => {\r\n p.content = JSON.parse(p.content);\r\n return p;\r\n });\r\n this.setState({\r\n modules: this.state.modules.concat(allModules),\r\n presetItems: cf,\r\n });\r\n };\r\n tryReconnect = () => {\r\n if (!this.state.connected && !this.state.connecting) {\r\n this.connectToHub();\r\n }\r\n };\r\n getModules = (eventId) => {\r\n Axios.get(`./api/meeting/${eventId}`)\r\n .then((res) => {\r\n if (res.data.length > 0) {\r\n this.setState({\r\n modules: res.data,\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n let eventId = this.props.match.params.id;\r\n document.body.style.background = \"black\";\r\n\r\n if (isNaN(eventId)) {\r\n this.setState({ connecting: true, eventCode: eventId });\r\n this.getEventId(eventId);\r\n } else {\r\n this.setState({ connecting: true, eventId: eventId });\r\n this.getEventCode(eventId);\r\n dispatch(questionActions.getAllQuestionsByEvent(eventId, false));\r\n dispatch(templateActions.getAll(eventId, true));\r\n }\r\n\r\n this.getAgenda(eventId);\r\n this.getSpeakers(eventId);\r\n this.getModules(eventId);\r\n this.activeInfoRef = React.createRef();\r\n this.clientViewRef = React.createRef();\r\n this.randomButtonFullCheckTimer = React.createRef();\r\n\r\n this.randomButtonFullCheckTimer = {};\r\n }\r\n componentDidUpdate(prevProps, prevState) {\r\n const { connecting, connected } = this.state;\r\n\r\n if (connected == false && prevState.connected == true && connecting == false) {\r\n this.tryReconnect();\r\n this.counter = setInterval(() => this.setState({ countdown: this.state.countdown + 1 }), 1000);\r\n } else if (this.state.countdown >= 60 && !connected && prevState.connected == false) {\r\n this.setState({ countdown: 0, connecting: false });\r\n this.tryReconnect();\r\n } else if (connected == true && prevState.connected == false && !this.state.connecting && this.hubConnection && this.hubConnection.connectionState == 1) {\r\n if (this.counter) clearInterval(this.counter);\r\n this.setState({ countdown: 0 });\r\n }\r\n }\r\n connectToHub = () => {\r\n if (!this.hubConnection) {\r\n try {\r\n this.hubConnection = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n } catch (error) {}\r\n }\r\n let clientKey = this.getClientKey();\r\n const { eventId } = this.state;\r\n const { user } = this.props;\r\n\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n this.hubConnection.on(\"onHandshake\", this.onHandshake);\r\n this.hubConnection.on(\"onModuleImport\", this.onModuleImport);\r\n this.hubConnection.on(\"onArenaClosed\", this.onArenaClosed);\r\n this.hubConnection.on(\"onGetChatMessage\", this.onGetChatMessages);\r\n this.hubConnection.on(\"onSendChatMessage\", this.onSendChatMessage);\r\n this.hubConnection.on(\"onChatMessageReceived\", this.onReceiveMessage);\r\n this.hubConnection.on(\"onLikeMessage\", this.onLike);\r\n this.hubConnection.on(\"onRandomButtonFullCheck\", this.onRandomButtonFullCheck);\r\n this.hubConnection.on(\"onActiveModulesChanged\", this.onActiveModulesChanged);\r\n this.hubConnection.on(\"onGetActiveConnections\", this.onGetActiveConnections);\r\n this.hubConnection.on(\"onGetActiveQuestions\", this.onGetActiveQuestions);\r\n this.hubConnection.on(\"onClearEventData\", () => this.setState({ clientResponses: [], speakers: [] }));\r\n this.hubConnection.on(\"onAgendaClosed\", (res) => this.setState({ speakers: res }));\r\n this.hubConnection.on(\"onSpeakersUpdate\", this.onSpeakersUpdate);\r\n this.hubConnection.on(\"onUpdatedClientSettings\", this.onUpdatedClientSettings);\r\n this.hubConnection.on(\"onAgendaUpdate\", this.onAgendaUpdate);\r\n this.hubConnection.on(\"onUpdatedPresenterSettings\", this.onUpdatedPresenterSettings);\r\n this.hubConnection.on(\"onClientResponse\", this.onClientResponse);\r\n this.hubConnection.on(\"onToggleQuestionInfo\", this.onToggleQuestionInfo);\r\n this.hubConnection.on(\"onNewPresentParticipant\", this.onNewPresentParticipant);\r\n this.hubConnection.on(\"onToggleQuestion\", this.onToggleQuestion);\r\n this.hubConnection.on(\"onLoadMeetingLayoutPresets\", this.onLoadMeetingLayoutPresets);\r\n\r\n this.hubConnection.on(\"onDeployQuestionToPresenter\", this.onDeployQuestionToPresenter);\r\n this.hubConnection.on(\"onClearQuestionAnswers\", this.onClearQuestionAnswers);\r\n this.hubConnection.on(\"onGetActiveMeetingLayout\", (layout) => {\r\n const groupGeneratorModules = layout && layout.meetingModules.filter((l) => l.meetingModule && l.meetingModule.moduleType == \"GroupGenerator\");\r\n if (groupGeneratorModules && groupGeneratorModules.length > 0) {\r\n groupGeneratorModules.map((g) => {\r\n const settings = JSON.parse(g.meetingModule.settings);\r\n const { breakoutId, rooms, max } = settings;\r\n if (!breakoutId) return;\r\n this.randomButtonFullCheck(breakoutId, rooms, max);\r\n });\r\n }\r\n });\r\n this.hubConnection.on(\"onGetActiveMobileMeetingLayout\", (layout) => {\r\n const groupGeneratorModules = layout && layout.meetingModules.filter((l) => l.meetingModule && l.meetingModule.moduleType == \"GroupGenerator\");\r\n if (groupGeneratorModules && groupGeneratorModules.length > 0) {\r\n groupGeneratorModules.map((g) => {\r\n const settings = JSON.parse(g.meetingModule.settings);\r\n const { breakoutId, rooms, max } = settings;\r\n if (!breakoutId) return;\r\n this.randomButtonFullCheck(breakoutId, rooms, max);\r\n });\r\n }\r\n if (layout && layout.mobile) {\r\n this.setState({ activeMobileLayout: layout });\r\n }\r\n });\r\n this.hubConnection.on(\"onGetOrderList\", this.onGetOrderList);\r\n this.hubConnection.on(\"onActivateQuestion\", this.onActivateQuestion);\r\n /* this.hubConnection.on(\"onGetTcpConnections\", this.onGetTcpConnections); */\r\n this.hubConnection.onclose(() => {\r\n this.setState({ connected: false });\r\n });\r\n\r\n this.hubConnection\r\n .invoke(\"handshake\", {\r\n eventId: parseInt(eventId),\r\n clientType: clientTypeConstants.INTERACTION_MODERATOR,\r\n clientKey,\r\n userGuid: user.userGuid,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n this.hubConnection.invoke(\"getChatMessages\", eventId, \"MODERATOR\", null, false);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n restoreAgendaItem = (agendaItemId) => this.hubConnection.invoke(\"restoreAgendaItem\", agendaItemId);\r\n onLoadMeetingLayoutPresets = (presets, presetId, ug = null) => {\r\n const userGuid = this.props.user.userGuid;\r\n if (presetId == -1000 && this.state.presetItems.length > 0) {\r\n const presetItems = this.state.presetItems.map((pi) => {\r\n const pre = presets.find((p) => p.interactionPresetId == pi.interactionPresetId);\r\n if (pre) {\r\n const newPre = { ...pre };\r\n newPre.name = pre.name;\r\n newPre.sortOrder = pre.sortOrder;\r\n newPre.updated = pre.updated;\r\n return newPre;\r\n }\r\n return pre;\r\n });\r\n this.setState({ presetItems });\r\n } else if (presetId > 0 && this.state.selectedPreset && this.state.selectedPreset == presetId && userGuid != ug) {\r\n this.setState({\r\n conflictedModules: presets.find((p) => p.interactionPresetId == presetId),\r\n conflictedModuleWarning: true,\r\n });\r\n } else {\r\n const cf = presets.map((p) => {\r\n p.content = JSON.parse(p.content);\r\n return p;\r\n });\r\n this.setState({ presetItems: cf });\r\n }\r\n };\r\n onActiveModulesChanged = (ug = null) => {\r\n const userGuid = this.props.user.userGuid;\r\n if (userGuid != ug) {\r\n this.setState({ activeModulesChanged: true });\r\n }\r\n };\r\n\r\n resolveModuleConflict = (accept = false, presetId = 0) => {\r\n const presetItem = this.state.presetItems.find((p) => p.interactionPresetId == this.state.conflictedModules.interactionPresetId);\r\n if (presetItem) {\r\n presetItem.content = JSON.parse(this.state.conflictedModules.content);\r\n const presetItems = Array.from(this.state.presetItems);\r\n presetItems.map((p) => {\r\n if (p.interactionPresetId == presetItem.interactionPrestId) {\r\n p = presetItem;\r\n }\r\n });\r\n if (accept) {\r\n this.setState(\r\n {\r\n presetItems,\r\n selectedPreset: presetItem,\r\n conflictedModuleWarning: false,\r\n },\r\n () => this.updateModulesList(presetItem.content)\r\n );\r\n } else {\r\n this.setState({\r\n presetItems,\r\n selectedPreset: null,\r\n conflictedModuleWarning: false,\r\n });\r\n }\r\n }\r\n };\r\n getBreakouts = () => {\r\n const { eventId } = this.state;\r\n Axios.get(`./api/meeting/breakouts/${eventId}`).then((res) => {\r\n if (res.data && res.data.length > 0) {\r\n this.setState({\r\n breakouts: res.data.filter((r) => r.eventId != eventId),\r\n });\r\n }\r\n });\r\n };\r\n\r\n onRandomButtonFullCheck = ({ code, breakoutId, roomCount, roomMax }) => {\r\n if (code == \"OPEN\") {\r\n if (this.randomButtonFullCheckTimer && this.randomButtonFullCheckTimer[breakoutId]) clearInterval(this.randomButtonFullCheckTimer[breakoutId]);\r\n /* this.randomButtonFullCheckTimer[breakoutId] = null; */\r\n /* this.randomButtonFullCheck(breakoutId, roomCount, roomMax); */\r\n } else {\r\n if (!this.randomButtonFullCheckTimer || !this.randomButtonFullCheckTimer[breakoutId]) {\r\n this.randomButtonFullCheckTimer[breakoutId] = setInterval(() => this.randomButtonFullCheck(breakoutId, roomCount, roomMax), 10000);\r\n }\r\n }\r\n };\r\n randomButtonFullCheck = (breakoutId, rooms, max) => {\r\n if (!breakoutId || !this.state.connected || this.hubConnection.connectionState != 1) return;\r\n this.hubConnection.invoke(\"getBreakoutChannel\", this.state.eventId, parseInt(breakoutId), parseInt(rooms), parseInt(max), \"\", true);\r\n };\r\n onArenaClosed = (status) => {\r\n this.setState({ arenaClosed: status });\r\n };\r\n setArenaClosed = () => {\r\n if (this.state.arenaClosed == false) {\r\n if (window.confirm(\"Closing the arena will disconnect all active participants. Are you sure? \")) {\r\n this.setState({ arenaClosed: !this.state.arenaClosed });\r\n this.hubConnection.invoke(\"ToggleArenaClosed\", this.state.eventId);\r\n }\r\n } else {\r\n this.setState({ arenaClosed: !this.state.arenaClosed });\r\n this.hubConnection.invoke(\"ToggleArenaClosed\", this.state.eventId);\r\n }\r\n };\r\n onHandshake = (response) => {\r\n if (response.success) {\r\n this.setClientKey(response.clientKey);\r\n let questionTagList = response.interactionFilterQuestionsByTags ? response.interactionFilterQuestionsByTags.split(\":\") : [];\r\n this.setState({\r\n connected: true,\r\n code: response.code,\r\n tickCode: response.tickCode,\r\n questionTagList,\r\n eventLang: response.lang,\r\n defaultLanguage: response.lang,\r\n allowSpeaker: response.allowSpeaker,\r\n allowChat: response.interactionAllowModeratorChat,\r\n connecting: false,\r\n init: true,\r\n parentEvent: response.parentEvent,\r\n });\r\n if (response.parentEvent) {\r\n this.props.dispatch(templateActions.getAll(response.parentEvent.eventId, true));\r\n this.props.dispatch(questionActions.getAllQuestionsByEvent(this.state.eventId, false));\r\n this.getPersonTypes(response.parentEvent.eventId);\r\n this.hubConnection.invoke(\"getOrderList\", response.parentEvent.eventId).catch((err) => {\r\n this.onError(err);\r\n });\r\n } else {\r\n this.hubConnection.invoke(\"getOrderList\", this.state.eventId).catch((err) => {\r\n this.onError(err);\r\n });\r\n this.getPersonTypes(this.state.eventId);\r\n }\r\n this.getBreakouts();\r\n /* this.randomButtonFullCheck(); */\r\n this.hubConnection.invoke(\"getActiveConnections\", this.state.eventId, null, null).catch((err) => {\r\n this.onError(err);\r\n });\r\n this.hubConnection.invoke(\"getArenaClosedStatus\", this.state.eventId).catch((err) => {\r\n this.onError(err);\r\n });\r\n /* this.hubConnection.invoke(\"getClientSettings\", this.state.eventId).catch((err) => {\r\n this.onError(err);\r\n }); */\r\n\r\n this.hubConnection.invoke(\"getActiveMeetingLayout\", this.state.eventId);\r\n this.hubConnection.invoke(\"getActiveMobileMeetingLayout\", this.state.eventId);\r\n if (!this.connectionTimer) {\r\n this.connectionTimer = setInterval(() => {\r\n this.hubConnection.invoke(\"getActiveConnections\", this.state.eventId, null, null).catch((err) => {\r\n this.onError(err);\r\n });\r\n }, 5000);\r\n }\r\n if (!this.orderListTimer) {\r\n if (response.parentEvent) {\r\n this.orderListTimer = setInterval(() => {\r\n this.hubConnection.invoke(\"getOrderList\", response.parentEvent.eventId).catch((err) => {\r\n this.onError(err);\r\n });\r\n }, 60000);\r\n } else {\r\n this.orderListTimer = setInterval(() => {\r\n this.hubConnection.invoke(\"getOrderList\", this.state.eventId).catch((err) => {\r\n this.onError(err);\r\n });\r\n }, 60000);\r\n }\r\n }\r\n } else {\r\n console.error(response.message);\r\n }\r\n };\r\n getEventId = (eventCode) => {\r\n const { dispatch } = this.props;\r\n Axios.get(`./api/event/getId/${eventCode}`)\r\n .then((res) => {\r\n const { id, parentEventId, name } = res.data;\r\n dispatch(questionActions.getAllQuestionsByEvent(res.data.id));\r\n dispatch(templateActions.getAll(res.data.id, true));\r\n\r\n dispatch(cmsActions.setEnviroment(sourceTypes.MEETING, true, parentEventId || id));\r\n this.setState({ eventId: res.data.id, eventName: res.data.name, eventLang: res.data.languageCode }, () => this.connectToHub());\r\n document.title = \"Moderator - \" + res.data.name;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n getEventCode = (eventId) => {\r\n const { dispatch } = this.props;\r\n Axios.get(`./api/event/getCode/${eventId}`)\r\n .then((res) => {\r\n const { id, parentEventId, name } = res.data;\r\n dispatch(cmsActions.setEnviroment(sourceTypes.MEETING, true, parentEventId || eventId));\r\n this.setState({ eventCode: res.data.code, eventName: res.data.name }, () => this.connectToHub());\r\n document.title = \"Moderator - \" + res.data.name;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n getPersonTypes = (eventId) => {\r\n Axios.get(`./api/event/persontypes/${eventId}`)\r\n .then((res) => {\r\n this.setState({ personTypes: res.data });\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n getSpeakers = (eventId) => {\r\n Axios.get(`./api/meeting/speakers/${eventId}`)\r\n .then((res) => {\r\n this.setState({ speakers: res.data || [] });\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n onGetOrderList = (list) => {\r\n this.setState({ orderList: list });\r\n };\r\n setClientKey = (key) => {\r\n localStorage.setItem(\"CLIENT_KEY_\" + this.state.eventId, key);\r\n };\r\n getClientKey = () => {\r\n return localStorage.getItem(\"CLIENT_KEY_\" + this.state.eventId) || null;\r\n };\r\n\r\n deleteModule = (id) => {\r\n if (!id) return;\r\n const requestOptions = {\r\n method: \"DELETE\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n };\r\n\r\n return fetch(`./api/meeting/deletemodule/${id}`, requestOptions)\r\n .then((res) => res.json())\r\n .then((data) => {\r\n const modules = Array.from(this.state.modules.filter((m) => m.digitalMeetingItemId !== data.deletedId));\r\n this.setState({ modules });\r\n this.hubConnection.invoke(\"updateMeetingLayout\", modules, this.state.eventId).catch((err) => {\r\n this.onError(err);\r\n });\r\n });\r\n };\r\n updateModulesList = (modules, autoSave, presetId) => {\r\n this.setState({ modules }, () => {\r\n if (autoSave) {\r\n this.updateMeetingLayout(presetId);\r\n }\r\n });\r\n };\r\n updateMeetingLayout = (presetId) => {\r\n const requestOptions = {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(this.state.modules),\r\n };\r\n\r\n return fetch(`./api/meeting/`, requestOptions)\r\n .then((res) => res.json())\r\n .then((data) => {\r\n this.setState({\r\n modules: data,\r\n });\r\n this.hubConnection.invoke(\"updateMeetingLayout\", this.state.modules, this.state.eventId, presetId || 0, this.props.user.userGuid).catch((err) => {\r\n this.onError(err);\r\n });\r\n });\r\n };\r\n\r\n activatePresetItem = (id) => {\r\n const { presetItems } = this.state;\r\n const presetItem = presetItems.find((p) => p.interactionPresetId === id);\r\n if (!presetItem || presetItem.active === true) return;\r\n if (presetItem.content && Array.isArray(presetItem.content)) {\r\n this.updateModulesList(presetItem.content, true, presetItem.interactionPresetId);\r\n }\r\n };\r\n saveMeetingLayoutPreset = (name) => {\r\n const { user } = this.props;\r\n this.hubConnection.invoke(\"saveMeetingLayoutPreset\", this.state.eventId, name, JSON.stringify(this.state.modules), user.userGuid).catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n updateMeetingLayoutPresets = (items) => {\r\n const newItems = Array.from(\r\n items.map((n) => {\r\n let item = deepClone(n);\r\n item.content = \"\"; //empty the content to reduce the amount of data sent to server, since this call is only for changing name and/or sortOrder\r\n return item;\r\n })\r\n );\r\n const { user } = this.props;\r\n this.hubConnection.invoke(\"updateMeetingLayoutPresets\", this.state.eventId, newItems, user.userGuid).catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n deleteMeetingLayoutPreset = (id) => {\r\n const { user } = this.props;\r\n this.hubConnection.invoke(\"deleteMeetingLayoutPreset\", id, user.userGuid).catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n selectPreset = (id) => {\r\n if (this.state.selectedPreset == id) {\r\n this.setState({ selectedPreset: null });\r\n } else {\r\n this.setState({\r\n selectedPreset: id,\r\n selectedQuestion: null,\r\n showAgendaInfo: null,\r\n currentChat: null,\r\n });\r\n }\r\n };\r\n\r\n updatateModules = (modules) => {\r\n const { user } = this.props;\r\n this.hubConnection.invoke(\"updateMeetingLayout\", modules, this.state.eventId, this.state.selectedPreset, user.userGuid).catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n createModule = (createComponent) => {\r\n if (!createComponent) return;\r\n\r\n const { eventId } = this.state;\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n };\r\n\r\n return fetch(`./api/meeting/createmodule/${eventId}?moduleName=${createComponent}`, requestOptions)\r\n .then((res) => res.json())\r\n .then((data) => {\r\n const modules = Array.from(this.state.modules);\r\n modules.push(data);\r\n this.setState({ modules });\r\n });\r\n };\r\n showSpeaker = (id) => this.setState({ showSpeaker: id, showClients: true });\r\n\r\n onClearQuestionAnswers = (res) => {\r\n if (res) {\r\n let uptResponses = Array.from(this.state.clientResponses);\r\n uptResponses = uptResponses.filter((r) => r.questionId !== res);\r\n this.setState({ clientResponses: uptResponses });\r\n this.snackbarHandler(\"AnswersHasBeenDeletedOnQuestion\", \"success\");\r\n }\r\n };\r\n onAgendaUpdate = (res) => this.setState({ agenda: res });\r\n onSpeakersUpdate = (res) => this.setState({ speakers: res });\r\n\r\n onGetTcpConnections = (response) => {\r\n this.setState({ tcpConnections: response });\r\n };\r\n\r\n onUpdatedClientSettings = (settings) => {\r\n this.setState({\r\n clientTemplateId: settings.activeTemplateId,\r\n });\r\n };\r\n onUpdatedPresenterSettings = (settings) => {\r\n this.setState({ presenterSettings: settings });\r\n };\r\n onNewConnection = (conn) => {\r\n const { connectionList } = this.state;\r\n let newList = Array.from(connectionList);\r\n newList.push(conn);\r\n this.setState({ connectionList: newList });\r\n };\r\n onNewDisconnection = (connectionId) => {\r\n const { connectionList } = this.state;\r\n let newList = Array.from(connectionList);\r\n let dConn = newList.find((el) => el.connectionId == connectionId);\r\n if (dConn) {\r\n newList.splice(newList.indexOf(dConn), 1);\r\n this.setState({ connectionList: newList });\r\n }\r\n };\r\n\r\n onGetActiveConnections = (list) => {\r\n this.setState({ connectionList: list });\r\n };\r\n\r\n convertOptionIdToText = (id, questionId) => {\r\n let optionId = parseInt(id);\r\n if (isNaN(optionId)) return \"\";\r\n const { defaultLanguage } = this.state;\r\n const { questions } = this.props;\r\n const question = questions.find((q) => {\r\n return q.questionId === questionId;\r\n });\r\n let text = id;\r\n if (question) {\r\n try {\r\n text = question.questionOption.find((o) => o.questionOptionId === optionId).questionOptionLanguage.find((l) => l.languageCode === defaultLanguage).label;\r\n } catch (error) {}\r\n }\r\n return text;\r\n };\r\n\r\n onClientResponse = (response) => {\r\n const responses = Array.from(this.state.clientResponses);\r\n const existingResponse = responses.find((r) => {\r\n return r.answerId === response.answerId;\r\n });\r\n if (existingResponse) {\r\n let indexOf = responses.indexOf(responses.find((r) => r.answerId === response.answerId));\r\n if (indexOf > -1) {\r\n responses[indexOf].status = response.status;\r\n }\r\n } else if (response.type === \"Option\") {\r\n response.answerText = this.convertOptionIdToText(response.answer, response.questionId);\r\n }\r\n if (!existingResponse) {\r\n responses.push(response);\r\n }\r\n this.setState({ clientResponses: responses });\r\n };\r\n onError = (error) => this.setState({ error });\r\n\r\n onGetActiveQuestions = (qList) => {\r\n if (qList.length > 0) {\r\n let questionIds = qList.map((ql) => {\r\n return ql.question.questionId;\r\n });\r\n this.setState({ activeQuestions: questionIds });\r\n }\r\n };\r\n onToggleQuestion = (response) => {\r\n let newList = Array.from(this.state.activeQuestions);\r\n if (response.active) {\r\n newList.push(response.questionId);\r\n } else {\r\n newList = newList.filter((q) => q !== response.questionId);\r\n }\r\n this.setState({ activeQuestions: newList });\r\n };\r\n refreshQuestionList = () => {\r\n this.props.dispatch(questionActions.getAllQuestionsByEvent(this.state.eventId));\r\n };\r\n onDeployQuestionToPresenter = (response) => {\r\n if (response.active) {\r\n this.setState({ activePresenterQuestion: response.questionId });\r\n } else {\r\n this.setState({ activePresenterQuestion: 0 });\r\n }\r\n };\r\n deployQuestionToClients = (questionId) => {\r\n const { buttonTimers, quizSettings, activeQuestions } = this.state;\r\n let newButtonTimers = Array.from(buttonTimers);\r\n var timer = newButtonTimers.find((el) => el.questionId == questionId);\r\n if (timer) {\r\n newButtonTimers = buttonTimers.filter((bt) => bt.questionId != questionId);\r\n }\r\n\r\n this.setState({ buttonTimers: newButtonTimers });\r\n this.hubConnection.invoke(\"toggleQuestion\", questionId, parseInt(this.state.eventId), this.state.forceQuestion, \"INTERACTION_CLIENT\").catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n setAllowedAnswersCount = (questionId, value) => {\r\n let question = this.props.questions.find((q) => q.questionId == questionId);\r\n if (value < 1) {\r\n value = null;\r\n }\r\n if (question) {\r\n let newQuestion = deepClone(question);\r\n newQuestion.allowedAnswerCount = value;\r\n this.props.dispatch(questionActions.updateQuestion(newQuestion));\r\n }\r\n };\r\n onNewPresentParticipant = (order) => {\r\n const { questionPresentParticipants, selectedQuestion, activePresenterQuestion } = this.state;\r\n if (selectedQuestion && selectedQuestion.questionId == activePresenterQuestion) {\r\n if (!questionPresentParticipants.find((x) => x.badgeNo == order.badgeNo)) {\r\n questionPresentParticipants.push(order);\r\n this.setState({ questionPresentParticipants });\r\n }\r\n }\r\n };\r\n toggleQuestionInfo = (question) => {\r\n this.setState({ showClients: false });\r\n if (!question) {\r\n this.setState({\r\n selectedQuestion: null,\r\n clientResponses: [],\r\n });\r\n } else {\r\n this.setState({\r\n selectedQuestion: question,\r\n selectedPreset: null,\r\n selectedAgenda: null,\r\n showAgendaInfo: null,\r\n currentChat: null,\r\n });\r\n this.hubConnection.invoke(\"toggleQuestionInfo\", question.questionId, question.eventId, question.type, true);\r\n }\r\n };\r\n onToggleQuestionInfo = (response) => {\r\n this.setState({ clientResponses: response.clientResponses, questionPresentParticipants: response.presentParticipants || [] });\r\n };\r\n deployQuestionToPresenter = (questionId) => {\r\n this.hubConnection.invoke(\"toggleQuestion\", questionId, parseInt(this.state.eventId), this.state.forceQuestion, \"INTERACTION_PRESENTER\").catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n clearResponsesOnPresenter = () => {\r\n const clientResponses = Array.from(\r\n this.state.clientResponses.map((cr) => {\r\n if (cr.status === 2) {\r\n cr.status = 3;\r\n }\r\n return cr;\r\n })\r\n );\r\n this.setState({ clientResponses });\r\n this.hubConnection.invoke(\"ClearResponses\", this.state.eventId);\r\n };\r\n showSpeakers = (agendItemId) => {\r\n if (this.state.showAgendaInfo === agendItemId) {\r\n this.setState({ showAgendaInfo: null });\r\n } else {\r\n this.setState({\r\n showAgendaInfo: agendItemId,\r\n showClients: true,\r\n selectedQuestion: null,\r\n selectedAgenda: null,\r\n selectedPreset: null,\r\n currentChat: null,\r\n });\r\n }\r\n };\r\n updatePresenterSettings = (updatedSettings) => {\r\n const { eventId } = this.state;\r\n this.setState({ presenterSettings: updatedSettings });\r\n this.hubConnection.invoke(\"updatePresenterSettings\", eventId, updatedSettings).catch((err) => {\r\n this.onError(err);\r\n });\r\n };\r\n setForceQuestion = (e) => this.setState({ forceQuestion: e.target.checked });\r\n\r\n updateClientSettings = (template) => {\r\n this.hubConnection.invoke(\"updateClientSettings\", this.state.eventId);\r\n };\r\n clearEventData = () => {\r\n this.hubConnection.invoke(\"clearEventData\", this.state.eventId);\r\n this.snackbarHandler(\"EventDataCleared\", \"success\");\r\n };\r\n\r\n getAgenda = (eventId) => {\r\n Axios.get(\"./api/meeting/agenda/\" + eventId)\r\n .then((res) => {\r\n if (!Array.isArray(res.data)) return;\r\n this.setState({ agenda: res.data });\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n sendResponse = (clientAnswer) => {\r\n this.hubConnection.invoke(\"moderateClientResponse\", clientAnswer);\r\n };\r\n handleResponseEditing = (value, answerId) => {\r\n const clientResponses = Array.from(this.state.clientResponses);\r\n let indexOf = clientResponses.findIndex((c) => {\r\n return c.answerId === answerId;\r\n });\r\n if (indexOf > -1) clientResponses[indexOf].answer = value;\r\n this.setState({ clientResponses });\r\n };\r\n clearQuestionAnswers = (qId) => {\r\n this.hubConnection.invoke(\"clearQuestionAnswers\", this.state.eventId, qId);\r\n };\r\n removeClientQuestionData = () => {\r\n this.hubConnection.invoke(\"removeClientQuestionData\", this.state.eventId);\r\n };\r\n activateSpeaker = (id, speakerId, duration = null) => {\r\n let agendaItemId = this.state.showAgendaInfo || this.state.agenda.find((a) => a.active === true).agendaItemId;\r\n if (!agendaItemId || !this.state.connected) return;\r\n\r\n this.hubConnection.invoke(\"activateSpeaker\", this.state.eventId, agendaItemId, id, duration, speakerId).then((_) => {\r\n if (this.state.speakers.find((s) => s.speakerId === speakerId)?.active == true) this.snackbarHandler(\"SpeakerActivated\", \"info\");\r\n if (this.state.speakers.find((s) => s.speakerId === speakerId)?.active == false) this.snackbarHandler(\"SpeakerDeactivated\", \"info\");\r\n });\r\n };\r\n renderClientView = () => {\r\n const { user } = this.props;\r\n const { clientResponses, eventId, selectedQuestion, orderList, speakers } = this.state;\r\n let questionName = \"\";\r\n let isActive = this.state.selectedQuestion !== null;\r\n if (isActive) {\r\n let qs = selectedQuestion.questionLanguage.find((ql) => ql.languageCode == (user.userLang || this.state.eventLang || \"swe\"));\r\n questionName = qs ? qs.label : \"\";\r\n }\r\n let label = \"Clients\";\r\n let speakerActions = false;\r\n let filteredSpeakers = speakers;\r\n let closeView = null;\r\n let parentId = null;\r\n let subLabel = \"\";\r\n return (\r\n cl.type == clientTypeConstants.INTERACTION_CLIENT || cl.type == clientTypeConstants.INTERACTION_MEETING)}\r\n subLabel={subLabel}\r\n allowSpeaker={this.state.allowSpeaker}\r\n clientResponses={clientResponses}\r\n allowChat={this.state.allowChat}\r\n setSpeaker={this.setSpeaker}\r\n parentId={parentId}\r\n selectChat={this.selectChat}\r\n selectedQuestion={selectedQuestion}\r\n activeAgenda={this.state.agenda?.find((a) => a.active === true)}\r\n textEditing={this.handleResponseEditing}\r\n chat={this.state.chats}\r\n activateSpeaker={this.activateSpeaker}\r\n questionName={questionName}\r\n // activeSpeaker={this.state.speakers && this.state.speakers.find((a) => a.active === true)}\r\n speakers={this.state.speakers}\r\n removeSpeaker={this.removeSpeaker}\r\n orderList={orderList}\r\n active={isActive}\r\n user={user}\r\n eventCode={this.state.eventCode || this.state.eventId}\r\n closeView={closeView}\r\n sideView={true}\r\n eventId={eventId}\r\n />\r\n );\r\n };\r\n setSpeaker = (agendaItemId, speakerType, clientKey, parentId = null, activate = false) => {\r\n const { eventId } = this.state;\r\n this.hubConnection\r\n .invoke(\"setSpeaker\", {\r\n eventId,\r\n agendaItemId,\r\n clientKey,\r\n parentId,\r\n speakerType: speakerType,\r\n activate,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n removeSpeaker = (agendaItemId, clientKey, parentId = null) => {\r\n const { eventId } = this.state;\r\n this.hubConnection\r\n .invoke(\"removeSpeaker\", {\r\n eventId,\r\n agendaItemId,\r\n clientKey,\r\n parentId,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n renderSideView = () => {\r\n const { user } = this.props;\r\n const { clientResponses, eventId, selectedQuestion, activeQuestions, orderList, speakers, agenda, selectedAgenda } = this.state;\r\n let questionName = \"\";\r\n let isActive = this.state.selectedQuestion !== null;\r\n if (isActive) {\r\n let qs = selectedQuestion.questionLanguage.find((ql) => ql.languageCode == (this.state.eventLang || user.userLang || \"swe\"));\r\n questionName = qs ? qs.label : \"\";\r\n }\r\n\r\n if (this.state.questionAgendaSplitView && !selectedQuestion && !selectedAgenda) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (this.state.showClients === true) {\r\n let label = \"Clients\";\r\n let speakerActions = false;\r\n let filteredSpeakers = speakers;\r\n let closeView = null;\r\n let parentId = null;\r\n let subLabel = \"\";\r\n if (this.state.showAgendaInfo) {\r\n return (\r\n a.agendaItemId == this.state.showAgendaInfo)}\r\n clientList={this.state.connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_MEETING)}\r\n subLabel={subLabel}\r\n clientResponses={clientResponses}\r\n activateSpeaker={this.activateSpeaker}\r\n parentId={parentId}\r\n setSpeaker={this.setSpeaker}\r\n removeSpeaker={this.removeSpeaker}\r\n selectedQuestion={selectedQuestion}\r\n textEditing={this.handleResponseEditing}\r\n questionName={questionName}\r\n orderList={orderList}\r\n active={isActive}\r\n activeAgenda={agenda.find((a) => a.active === true)}\r\n user={user}\r\n deactivateSpeakers={this.deactivateAgendaSpeakersOnClose}\r\n closeView={closeView}\r\n eventId={eventId}\r\n />\r\n );\r\n }\r\n }\r\n\r\n if (selectedQuestion !== null) {\r\n return (\r\n cl.type == clientTypeConstants.INTERACTION_CLIENT || cl.type == clientTypeConstants.INTERACTION_MEETING)}\r\n clientResponses={selectedQuestion ? clientResponses.filter((cr) => cr.questionId === selectedQuestion.questionId) : []}\r\n questionPresentParticipants={this.state.questionPresentParticipants}\r\n toggleQuestionInfo={this.toggleQuestionInfo}\r\n refreshQuestionList={this.refreshQuestionList}\r\n selectedQuestion={selectedQuestion}\r\n textEditing={this.handleResponseEditing}\r\n questionName={questionName}\r\n lang={this.state.eventLang || user.userLang || \"swe\"}\r\n orderList={orderList}\r\n toggleSnackbar={this.toggleSnackbar}\r\n snackbarHandler={this.snackbarHandler}\r\n personTypes={this.state.personTypes}\r\n active={isActive}\r\n user={user}\r\n eventId={eventId}\r\n />\r\n );\r\n }\r\n if (selectedAgenda != null) {\r\n return (\r\n cl.type == clientTypeConstants.INTERACTION_CLIENT || cl.type == clientTypeConstants.INTERACTION_MEETING)}\r\n clientResponses={selectedQuestion ? clientResponses.filter((cr) => cr.questionId === selectedQuestion.questionId) : []}\r\n toggleQuestionInfo={this.toggleQuestionInfo}\r\n orderList={orderList}\r\n toggleSnackbar={this.toggleSnackbar}\r\n snackbarHandler={this.snackbarHandler}\r\n deselectAgendaItem={() => this.setState({ selectedAgenda: null })}\r\n personTypes={this.state.personTypes}\r\n active={isActive}\r\n user={user}\r\n restoreAgendaItem={this.restoreAgendaItem}\r\n agenda={this.state.agenda}\r\n handleAgendaOnChange={this.handleAgendaOnChange}\r\n selectedAgenda={this.state.selectedAgenda}\r\n eventId={eventId}\r\n />\r\n );\r\n }\r\n if (this.state.currentChat != null && this.state.allowChat) {\r\n return (\r\n cl.type == clientTypeConstants.INTERACTION_MEETING)}\r\n chats={this.state.chats}\r\n orderList={this.state.orderList}\r\n currentChat={this.state.currentChat}\r\n eventId={this.state.eventId}\r\n sendMessage={this.sendMessage}\r\n scroll={this.state.scroll}\r\n />\r\n );\r\n }\r\n if (this.state.selectedPreset !== null) {\r\n return (\r\n p.interactionPresetId == this.state.selectedPreset)}\r\n removeClientData={this.removeClientQuestionData}\r\n activeQuestions={activeQuestions}\r\n clear={this.clearResponsesOnPresenter}\r\n clearQuestionAnswers={this.clearQuestionAnswers}\r\n sendResponse={this.sendResponse}\r\n clientList={this.state.connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_CLIENT || cl.type == clientTypeConstants.INTERACTION_MEETING)}\r\n clientResponses={selectedQuestion ? clientResponses.filter((cr) => cr.questionId === selectedQuestion.questionId) : []}\r\n toggleQuestionInfo={this.toggleQuestionInfo}\r\n refreshQuestionList={this.refreshQuestionList}\r\n selectedQuestion={selectedQuestion}\r\n textEditing={this.handleResponseEditing}\r\n questionName={questionName}\r\n orderList={orderList}\r\n toggleSnackbar={this.toggleSnackbar}\r\n snackbarHandler={this.snackbarHandler}\r\n personTypes={this.state.personTypes}\r\n active={isActive}\r\n user={user}\r\n eventId={eventId}\r\n />\r\n );\r\n }\r\n };\r\n renderIncommingDataList = () => {\r\n // const { user } = this.props;\r\n const { clientResponses } = this.state;\r\n // let questionName = \"\";\r\n // let isActive = this.state.selectedQuestion !== null;\r\n // if (isActive) {\r\n // questionName = this.state.selectedQuestion.questionLanguage.find(\r\n // (ql) => ql.languageCode == (user.userLang || \"swe\")\r\n // ).label;\r\n // }\r\n clientResponses.map((r) => {\r\n if (r.type === \"Option\") {\r\n let oId = parseInt(r.answer);\r\n r.answer = this.convertOptionIdToText(oId, r.questionId).toString();\r\n }\r\n return r;\r\n });\r\n };\r\n\r\n onReceiveMessage = (res) => {\r\n const chats = Array.from(this.state.chats);\r\n const resChat = chats.find((c) => c.target == res.sender);\r\n const currentChat = deepClone(this.state.currentChat);\r\n if (resChat) {\r\n let index = chats.indexOf(resChat);\r\n if (index > -1) {\r\n if (currentChat && currentChat.target == chats[index].target) {\r\n chats[index].seen = true;\r\n res.seen = true;\r\n this.setMessageSeen(res.target);\r\n }\r\n chats[index].messages.push(res);\r\n chats[index].previewText = res.message;\r\n chats[index].previewPrefix = res.sender == \"MODERATOR\" ? \"You\" : res.senderFirstName + \" \" + res.senderLastName;\r\n chats[index].lastChange = res.inserted;\r\n if (currentChat && currentChat.target != chats[index].target) {\r\n chats[index].seen = false;\r\n }\r\n }\r\n } else {\r\n chats.push({\r\n lastChange: res.inserted,\r\n messages: [res],\r\n previewText: res.message,\r\n previewPreFix: res.senderFirstName + \" \" + res.senderLastName,\r\n target: res.sender,\r\n seen: false,\r\n });\r\n }\r\n\r\n this.setState({ chats, /* currentChat, */ scroll: true });\r\n setTimeout(() => this.setState({ scroll: false }), 1000);\r\n };\r\n onSendChatMessage = (res) => {\r\n const chats = Array.from(this.state.chats);\r\n const resChat = chats.find((c) => c.target == res.receiver);\r\n const currentChat = deepClone(this.state.currentChat);\r\n if (resChat) {\r\n let index = chats.indexOf(resChat);\r\n if (index > -1) chats[index].messages.push(res);\r\n\r\n if (currentChat && resChat.target == currentChat.target) {\r\n currentChat.previewText = res.message;\r\n currentChat.previewPrefix = res.sender == \"MODERATOR\" ? \"You\" : res.senderFirstName + \" \" + res.senderLastName;\r\n currentChat.lastChange = res.inserted;\r\n currentChat.messages.push(res);\r\n }\r\n resChat.previewText = res.message;\r\n resChat.previewPrefix = res.sender == \"MODERATOR\" ? \"You\" : res.senderFirstName + \" \" + res.senderLastName;\r\n resChat.lastChange = res.inserted;\r\n } else {\r\n chats.push({\r\n lastChange: res.inserted,\r\n messages: [res],\r\n previewText: res.message,\r\n previewPreFix: \"\",\r\n target: res.receiver,\r\n seen: false,\r\n });\r\n if (currentChat && currentChat.target == res.receiver) {\r\n currentChat.messages.push(res);\r\n }\r\n }\r\n\r\n this.setState({ chats, currentChat, scroll: true });\r\n setTimeout(() => this.setState({ scroll: false }), 1000);\r\n };\r\n onGetChatMessages = (res) => {\r\n if (res) {\r\n this.setState({ chats: res, loaded: true });\r\n }\r\n };\r\n sendMessage = (text) => {\r\n const { currentChat } = this.state;\r\n const { eventId } = this.state;\r\n let target = currentChat.target;\r\n let room = `Event:${eventId}`;\r\n if (currentChat && currentChat.target == `ALL`) target = null;\r\n\r\n let isValid = text && text.length <= 500;\r\n\r\n if (isValid) {\r\n this.hubConnection.invoke(\"sendChatMessage\", eventId, \"MODERATOR\", target, text, null, \"\", false, false);\r\n }\r\n };\r\n setMessageSeen = (target) => {\r\n const { eventId } = this.state;\r\n this.hubConnection.invoke(\"setMessageSeen\", eventId, \"MODERATOR\", target, null);\r\n };\r\n onLike = (messageId) => {\r\n const currentChat = deepClone(this.state.currentChat);\r\n if (!currentChat) return;\r\n\r\n currentChat.messages.map((m) => {\r\n if (m.interactionChatId == messageId) {\r\n if (m.likes == null) m.likes = 0;\r\n m.likes += 1;\r\n }\r\n });\r\n this.setState({ currentChat });\r\n };\r\n like = (messageId) => {\r\n const { hubConnection, eventId } = this.props.extraProps;\r\n\r\n if (hubConnection) {\r\n hubConnection.invoke(\"like\", messageId, eventId);\r\n }\r\n };\r\n selectChat = (target) => {\r\n const { chats, autoScrollLocked } = this.state;\r\n let currentChat = chats.find((c) => c.target == target);\r\n let missedGroupMessages = this.state.missedGroupMessages;\r\n if (!currentChat)\r\n currentChat = {\r\n lastChange: \"\",\r\n messages: [],\r\n previewText: \"\",\r\n previewPreFix: \"\",\r\n target: target,\r\n seen: true,\r\n };\r\n const updatedChat = chats;\r\n if (currentChat && !currentChat.seen) {\r\n let chatIndex = chats.indexOf(chats.find((c) => c.target == currentChat.target));\r\n if (chatIndex > -1) {\r\n chats[chatIndex].messages.map((m) => {\r\n m.seen = true;\r\n });\r\n }\r\n\r\n let index = updatedChat.indexOf(currentChat);\r\n if (index > -1) {\r\n updatedChat[index].seen = true;\r\n updatedChat[index].messages.map((m) => {\r\n m.seen = true;\r\n });\r\n }\r\n currentChat.seen = true;\r\n if (currentChat.target != \"ALL\") {\r\n this.setMessageSeen(currentChat.target);\r\n }\r\n if (updatedChat[index]) {\r\n }\r\n }\r\n\r\n if (target == \"ALL\") {\r\n missedGroupMessages = 0;\r\n }\r\n this.setState({\r\n currentChat,\r\n selectedQuestion: null,\r\n selectedAgenda: null,\r\n selectedPreset: null,\r\n showAgendaInfo: null,\r\n autoScrollLocked: false,\r\n hiddenMessages: 0,\r\n chats: updatedChat,\r\n missedGroupMessages,\r\n });\r\n };\r\n toggleAside = (open) => this.setState({ asideOpen: open });\r\n showClients = () => this.setState({ showClients: true });\r\n activateAgenda = (agenda) => this.setState({ activeAgenda: agenda });\r\n toggleSnackbar = (val) => this.setState({ snackbar: { message: \"\", show: val } });\r\n updateQuestions = (q) => this.snackbarHandler(\"QuestionListUpdated\", \"success\");\r\n\r\n handleAgendaOnChange = (agenda, local = false) => {\r\n if (local) {\r\n this.setState({ agenda });\r\n } else {\r\n const requestOptions = {\r\n method: \"PUT\",\r\n headers: /* authHeader( */ {\r\n \"Content-Type\": \"application/json\",\r\n } /* ) */,\r\n body: JSON.stringify(agenda),\r\n };\r\n\r\n return fetch(`./api/meeting/agenda`, requestOptions)\r\n .then(handleResponse)\r\n .then((a) => {\r\n this.setState({ agenda: a });\r\n this.snackbarHandler(\"AgendaUpdated\");\r\n this.hubConnection.invoke(\"updateAgenda\", this.state.eventId, a).catch((err) => {\r\n console.error(err);\r\n });\r\n });\r\n }\r\n };\r\n deleteAgendaItem = (id) => {\r\n const requestOptions = {\r\n method: \"DELETE\",\r\n headers: /* authHeader( */ { \"Content-Type\": \"application/json\" } /* ) */,\r\n };\r\n\r\n return fetch(`./api/meeting/agenda/delete/${id}`, requestOptions)\r\n .then(handleResponse)\r\n .then((res) => {\r\n let uptAgenda = Array.from(this.state.agenda);\r\n uptAgenda = uptAgenda.filter((ua) => ua.agendaItemId !== res.id);\r\n this.setState({ agenda: uptAgenda });\r\n this.snackbarHandler(\"AgendaUpdated\");\r\n this.hubConnection.invoke(\"updateAgenda\", this.state.eventId, uptAgenda).catch((err) => {\r\n console.error(err);\r\n });\r\n });\r\n };\r\n selectAgenda = (selectedAgenda) =>\r\n this.setState({\r\n selectedAgenda,\r\n selectedChat: null,\r\n selectedQuestion: null,\r\n selectedPreset: null,\r\n });\r\n snackbarHandler = (message, status = \"success\") => {\r\n this.setState({ snackbar: { message, show: true, status } });\r\n setTimeout(() => this.setState({ snackbar: { message: \"\", show: false } }), 3000);\r\n };\r\n\r\n render() {\r\n const { questions, user, templates } = this.props;\r\n const { activeQuestions, activePresenterQuestion, selectedQuestion, clientTemplateId, forceQuestion, connectionList, eventId } = this.state;\r\n let presenterList = connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_PRESENTER);\r\n let clientList = connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_CLIENT);\r\n let moderatorList = connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_MODERATOR);\r\n let meetingList = connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_MEETING);\r\n\r\n if (!this.state.init) return ;\r\n const connectionsProps = { hubConnection: this.hubConnection, ...this.state };\r\n return (\r\n \r\n this.setState({ questionAgendaSplitView: !this.state.questionAgendaSplitView })}\r\n setArenaClosed={this.setArenaClosed}\r\n code={this.state.code}\r\n tickCode={this.state.tickCode}\r\n updateMeetingLayout={this.updateMeetingLayout}\r\n updateModulesList={this.updateModulesList}\r\n saveMeetingLayoutPreset={this.saveMeetingLayoutPreset}\r\n meetingLayoutPresets={this.state.presetItems}\r\n deleteModule={this.deleteModule}\r\n addModule={this.createModule}\r\n selectPreset={this.selectPreset}\r\n user={user}\r\n modules={this.state.modules}\r\n lang={this.state.eventLang || user.userLang || \"swe\"}\r\n presenterSettings={this.state.presenterSettings}\r\n eventName={this.state.eventName}\r\n clearEventData={this.clearEventData}\r\n setForceQuestion={this.setForceQuestion}\r\n parentEvent={this.state.parentEvent}\r\n hubConnection={this.hubConnection}\r\n eventCode={this.state.eventCode}\r\n breakouts={this.state.breakouts}\r\n updatePresenterSettings={this.updatePresenterSettings}\r\n />\r\n \r\n
\r\n a.active === true)}\r\n setActiveInfoRef={(r) => (this.activeInfoRef = r)}\r\n attendees={this.state.orderList}\r\n toggleClientView={this.showClients}\r\n />\r\n (this.clientViewRef = r)}\r\n style={{\r\n width: \"100%\",\r\n height: `calc(100% - ${this.activeInfoRef ? this.activeInfoRef.clientHeight : 0}px)`,\r\n }}\r\n >\r\n {this.renderClientView()}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
{this.renderSideView()}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n questions: state.question.questions,\r\n templates: state.template ? state.template.templates : undefined,\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(NewLayout);\r\n","import React from \"react\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport SubjectIcon from \"@material-ui/icons/Subject\";\r\nimport CheckBoxIcon from \"@material-ui/icons/CheckBox\";\r\nimport { Avatar, Button, IconButton, Typography } from \"@material-ui/core\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport ArchiveIcon from \"@material-ui/icons/Archive\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\n\r\nconst wrapperStyle = {\r\n width: \"100%\",\r\n height: \"100vh\",\r\n display: \"inline-flex\",\r\n};\r\nconst listCol = {\r\n width: \"20%\",\r\n height: \"100%\",\r\n backgroundColor: \"#222\",\r\n zIndex: 1,\r\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0), 0 2px 4px rgba(0, 0, 0, 0), 0 4px 8px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 20px 20px rgba(0, 0, 0, 0.3) !important\",\r\n};\r\nconst messageCol = {\r\n width: \"80%\",\r\n height: \"100%\",\r\n paddingLeft: \"20px\",\r\n backgroundColor: \"#1d1d1d\",\r\n};\r\nconst questionHeaderStyle = {\r\n padding: \"20px\",\r\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0), 0 2px 4px rgba(0, 0, 0, 0), 0 4px 8px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 20px 20px rgba(0, 0, 0, 0.3) !important\",\r\n /* borderBottom: '1px solid gainsboro' */\r\n};\r\nconst listStyle = {\r\n maxHeigth: \"100%\",\r\n overflowY: \"auto\",\r\n maxHeight: \"calc(100vh - 73px)\",\r\n minHeight: \"calc(100vh - 73px)\",\r\n};\r\n\r\nexport default class QuetsionAnswerView extends React.Component {\r\n state = {\r\n selectedQuestion: null,\r\n target: null,\r\n archivedList: [],\r\n answeredList: [],\r\n confirmDialog: false,\r\n };\r\n renderTypeIcon = (type, active) => {\r\n switch (type) {\r\n case \"Text\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"Option\":\r\n return (\r\n \r\n \r\n \r\n );\r\n default:\r\n break;\r\n }\r\n };\r\n toggleQuestion = (q) => {\r\n const { selectedQuestion } = this.state;\r\n if (selectedQuestion && q.questionId === selectedQuestion.questionId) {\r\n this.setState({ selectedQuestion: null });\r\n } else {\r\n this.setState({ selectedQuestion: q });\r\n this.props.toggleQuestionInfo(q);\r\n }\r\n };\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.props.responses.length > prevProps.responses.length) {\r\n this.handleScroll();\r\n }\r\n }\r\n componentDidMount() {\r\n this.handleScroll();\r\n }\r\n setTarget = (id, type, pre) => {\r\n this.setState({ target: { id, type }, confirmDialog: true });\r\n };\r\n\r\n saveStatus = () => {\r\n if (this.state.target) {\r\n const { responses, questions } = this.props;\r\n const { id, type } = this.state.target;\r\n if (id && type) {\r\n this.props.setStageStatus(id, type);\r\n }\r\n }\r\n this.setState({ confirmDialog: false });\r\n\r\n //\r\n };\r\n\r\n handleScroll = (id) => {\r\n const { responses } = this.props;\r\n if (responses.length > 0) {\r\n let index = responses.length - 1;\r\n if (index > -1 && this.refs[index] !== undefined) {\r\n try {\r\n this.refs[index].scrollIntoView({ block: \"end\", behavior: \"smooth\" });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const { responses, questions, lang, eventName, activeQuestions, connectionList } = this.props;\r\n const { selectedQuestion } = this.state;\r\n /* const resx = responses;\r\n resx.contat(this.state.customlist) */\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {\" \"}\r\n - {eventName}\r\n \r\n \r\n {\" \"}\r\n {connectionList.length}\r\n \r\n
\r\n \r\n {questions && questions.length > 0\r\n ? questions\r\n .filter((q) => q.type == \"Text\" && (!q.tag || (q.tag && !q.tag.includes(\"hideinstage\"))))\r\n .map((q, i) => {\r\n let qLang = q.questionLanguage.find((ql) => ql.languageCode == lang) ?? q.questionLanguage?.[0];\r\n let qActive = activeQuestions.some((aq) => aq === q.questionId);\r\n return (\r\n \r\n this.toggleQuestion(q)}\r\n style={{\r\n listStyle: \"none\",\r\n display: \"flex\",\r\n }}\r\n ref={i}\r\n key={i}\r\n >\r\n {}\r\n {this.renderTypeIcon(q.type, qActive)}\r\n \r\n \r\n this.toggleQuestion(q)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n \r\n {selectedQuestion ? (\r\n selectedQuestion.questionLanguage.find((ql) => ql.languageCode == lang)?.label ?? selectedQuestion.questionLanguag?.[0]?.label\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n
\r\n {selectedQuestion && responses && responses.length > 0\r\n ? responses\r\n .filter((r) => r.questionId == selectedQuestion.questionId && /* ( */ (r.stageStatus == null || r.stageStatus == 1 || r.stageStatus == 0))\r\n .map((m, i) => {\r\n const name =\r\n m.clientKey && m.clientKey.startsWith(\"sneakyspy\") ? (\r\n \r\n \r\n {\" - \"}\r\n \r\n ) : m.clientName.startsWith(\"Guest_\") ? (\r\n \r\n \r\n {\" - \"}\r\n \r\n ) : (\r\n \r\n {m.clientName}\r\n {\" - \"}\r\n \r\n );\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n : null}\r\n {selectedQuestion && responses && responses.length > 0 && responses.filter((r) => r.questionId == selectedQuestion.questionId && r.stageStatus == 2).length > 0 ? (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n \r\n
\r\n
\r\n ) : null}\r\n {selectedQuestion && responses && responses.length > 0\r\n ? responses\r\n .filter((r) => r.questionId == selectedQuestion.questionId && r.stageStatus == 2)\r\n .map((m, i) => {\r\n const name =\r\n m.clientKey && m.clientKey.startsWith(\"sneakyspy\") ? (\r\n \r\n \r\n {\" - \"}\r\n \r\n ) : m.clientName.startsWith(\"Guest_\") ? (\r\n \r\n \r\n {\" - \"}\r\n \r\n ) : (\r\n \r\n {m.clientName}\r\n {\" - \"}\r\n \r\n );\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n : null}\r\n {selectedQuestion && responses && responses.filter((r) => r.questionId == selectedQuestion.questionId && r.stageStatus == 3).length > 0 ? (\r\n
\r\n
\r\n
\r\n {\" \"}\r\n \r\n
\r\n
\r\n ) : null}\r\n {selectedQuestion && responses && responses.length > 0\r\n ? responses\r\n .filter((r) => r.questionId == selectedQuestion.questionId && r.stageStatus == 3)\r\n .map((m, i) => {\r\n const name =\r\n m.clientKey && m.clientKey.startsWith(\"sneakyspy\") ? (\r\n \r\n \r\n {\" - \"}\r\n \r\n ) : m.clientName.startsWith(\"Guest_\") ? (\r\n \r\n \r\n {\" - \"}\r\n \r\n ) : (\r\n \r\n {m.clientName}\r\n {\" - \"}\r\n \r\n );\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n : null}\r\n
\r\n
\r\n {this.state.confirmDialog && this.state.target ? this.setState({ confirmDialog: false })} onAction={this.saveStatus} lang={this.props.lang} type={this.state.target.type} /> : null}\r\n
\r\n );\r\n }\r\n}\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nfunction ConfirmDialog(props) {\r\n const getTypLabel = (type) => {\r\n switch (type) {\r\n case 1:\r\n return \"Restore\";\r\n case 2:\r\n return \"SetAnwered\";\r\n case 3:\r\n return \"Archive\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n const { onCancel, onAction, type } = props;\r\n\r\n return (\r\n
\r\n null} aria-labelledby=\"alert-dialog-slide-title\" aria-describedby=\"alert-dialog-slide-description\">\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nfunction MessageBox({ message, timeStamp, name, no, status, setStatus, id, lang }) {\r\n const formatTime = (date) => {\r\n if (datesAreOnSameDay(new Date(date), new Date())) {\r\n let formattedDate = new Date(date);\r\n let h = formattedDate.getHours();\r\n let m = formattedDate.getMinutes();\r\n if (m < 10) m = \"0\" + m;\r\n if (h < 10) h = \"0\" + h;\r\n return h + \":\" + m;\r\n } else {\r\n let formattedDate = new Date(date);\r\n let d = formattedDate.getUTCDay().toString().substr(0, 3);\r\n let h = formattedDate.getHours();\r\n let m = formattedDate.getMinutes();\r\n if (m < 10) m = \"0\" + m;\r\n if (h < 10) h = \"0\" + h;\r\n return (\r\n \r\n {dayConverter(d)} {h + \":\" + m}\r\n \r\n );\r\n }\r\n };\r\n const dayConverter = (d, h, m) => {\r\n switch (d) {\r\n case \"1\":\r\n return ;\r\n case \"2\":\r\n return ;\r\n case \"3\":\r\n return ;\r\n case \"4\":\r\n return ;\r\n case \"5\":\r\n return ;\r\n case \"6\":\r\n return ;\r\n case \"7\":\r\n return ;\r\n default:\r\n return \"\";\r\n }\r\n };\r\n const datesAreOnSameDay = (first, second) => first.getFullYear() === second.getFullYear() && first.getMonth() === second.getMonth() && first.getDate() === second.getDate();\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n #{no}{\" \"}\r\n {\" \"}\r\n {name} {formatTime(timeStamp)}\r\n
\r\n \r\n
\r\n \r\n \r\n
{message}
\r\n \r\n \r\n
\r\n {status != 2 || status == 1 || status == 0 || !status ? (\r\n
setStatus(id, 2, status)} className=\"stage-tools\">\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n {(status == 2 || status == 1 || !status) && status != 3 ? (\r\n
setStatus(id, 3, status)} className=\"stage-tools\">\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n {status == 2 || status == 3 ? (\r\n
setStatus(id, 1, status)} className=\"stage-tools\">\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button, Container, Row, Col, Input, Spinner, Fade } from \"reactstrap\";\r\nimport { clientTypeConstants } from \"../../constants/clientType.constants\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { cmsActions } from \"../../../store/actions/cms/cms.action\";\r\nimport { sourceTypes } from \"../../../constants/cms/sourceType\";\r\nimport Axios from \"axios\";\r\nimport \"../style/StageStyle.css\";\r\nimport { questionActions } from \"../../../store/actions/question/question.action\";\r\nimport QuetsionAnswerView from \"../components/QuestionAnswerView\";\r\nimport { getKey } from \"../../../helpers/UrlHelper\";\r\nimport { ConnectionStatus } from \"../../../digitalArena/components/fallbacks/ConnectionStatus\";\r\nimport { Loader } from \"../../../digitalArena/utils/ClientConnectionFallback\";\r\n\r\nclass StageLayout extends Component {\r\n state = {\r\n hubConnection: null,\r\n clientKey: \"\",\r\n eventName: \"xx\",\r\n answer: null,\r\n question: null,\r\n availableLanguages: null,\r\n clientResponses: [],\r\n defaultLanguage: \"swe\",\r\n selectedLanguage: null,\r\n connecting: true,\r\n connected: false,\r\n eventId: -1,\r\n templateId: 0,\r\n countdown: 0,\r\n responses: [],\r\n init: false,\r\n activeQuestions: [],\r\n connectionList: [],\r\n };\r\n componentDidMount() {\r\n window.scrollTo(0, 0);\r\n const eventId = this.props.match.params.id;\r\n document.body.style.overflow = \"hidden\";\r\n if (isNaN(eventId)) {\r\n this.getEventId(eventId);\r\n } else {\r\n this.props.dispatch(questionActions.getAllQuestionsByEvent(eventId));\r\n this.setState({ eventId }, () => this.connectToHub());\r\n }\r\n const params = new URLSearchParams(this.props.location.search);\r\n const lang = params.get(getKey(\"lang\", params));\r\n if (lang) this.setState({ defaultLanguage: lang });\r\n // this.props.dispatch(templateActions.getDefaultTemplateByEvent(eventId));\r\n this.props.dispatch(cmsActions.setEnviroment(sourceTypes.INTERACTION, false));\r\n }\r\n componentDidUpdate(prevProps, prevState) {\r\n const { connecting, dismissConnectionLoss, forceDisc, connected } = this.state;\r\n\r\n if (connected == false && prevState.connected == true && connecting == false) {\r\n this.tryReconnect();\r\n this.counter = setInterval(() => this.setState({ countdown: this.state.countdown + 1 }), 1000);\r\n } else if (this.state.countdown >= 60 && !connected && prevState.connected == false) {\r\n this.setState({ countdown: 0, connecting: false });\r\n this.tryReconnect();\r\n } else if ((connected == true || (this.hubConnection && this.hubConnection.connectionState == 1)) && prevState.connected == false && !this.state.connecting && this.hubConnection && this.hubConnection.connectionState == 1) {\r\n if (this.counter) clearInterval(this.counter);\r\n this.setState({ countdown: 0 });\r\n }\r\n }\r\n getEventId = (eventCode) => {\r\n Axios.get(`./api/event/getId/${eventCode}`)\r\n .then((res) => {\r\n this.setState({ eventId: res.data.id, eventName: res.data.name }, () => this.connectToHub());\r\n this.props.dispatch(questionActions.getAllQuestionsByEvent(res.data.id));\r\n document.title = \"Stage - \" + res.data.name;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n tryReconnect = () => {\r\n if (!this.state.connected && !this.state.connecting) {\r\n this.setState({ connecting: true }, this.connectToHub());\r\n }\r\n };\r\n setClientKey = (key) => {\r\n localStorage.setItem(\"CLIENT_KEY\", key);\r\n };\r\n getClientKey = () => {\r\n return localStorage.getItem(\"CLIENT_KEY\") || null;\r\n };\r\n onGetActiveQuestions = (qList) => {\r\n if (qList.length > 0) {\r\n let questionIds = qList.map((ql) => {\r\n return ql.question.questionId;\r\n });\r\n this.setState({ activeQuestions: questionIds });\r\n }\r\n };\r\n connectToHub = () => {\r\n const { eventId } = this.state;\r\n const { user } = this.props;\r\n try {\r\n if (!this.hubConnection) {\r\n this.hubConnection = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n }\r\n } catch (error) {}\r\n let clientKey = this.getClientKey();\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n this.hubConnection.on(\"onHandshake\", this.onHandshake);\r\n this.hubConnection.on(\"onClientResponse\", this.onClientResponse);\r\n\r\n this.hubConnection.on(\"onClearEventData\", () => this.setState({ clientResponses: [], speakers: [] }));\r\n this.hubConnection.on(\"onToggleQuestionInfo\", this.onToggleQuestionInfo);\r\n this.hubConnection.on(\"onToggleQuestion\", this.onToggleQuestion);\r\n this.hubConnection.on(\"onGetActiveQuestions\", this.onGetActiveQuestions);\r\n this.hubConnection.on(\"onStatusChanged\", this.onStatusChanged);\r\n this.hubConnection.on(\"onClearQuestionAnswers\", this.onClearQuestionAnswers);\r\n this.hubConnection.on(\"onNewConnection\", this.onNewConnection);\r\n this.hubConnection.on(\"onNewDisconnection\", this.onNewDisconnection);\r\n this.hubConnection.on(\"onClearResponses\", this.onClearResponses);\r\n this.hubConnection.onclose(this.onClose);\r\n\r\n this.hubConnection.on(\"onGetActiveConnections\", (connectionList) => {\r\n let cL = connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_MEETING);\r\n this.setState({ connectionList: cL });\r\n });\r\n this.hubConnection.invoke(\"getActiveConnections\", eventId, null, null);\r\n this.hubConnection\r\n .invoke(\"handshake\", {\r\n eventId,\r\n clientType: clientTypeConstants.INTERACTION_STAGE,\r\n clientKey,\r\n userGuid: user ? user.userGuid : null,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n })\r\n .catch((error) => {});\r\n };\r\n onStatusChanged = (id, type) => {\r\n let changedAnswer = this.state.clientResponses.find((r) => r.answerId == id);\r\n if (changedAnswer) {\r\n const newResponseList = Array.from(this.state.clientResponses);\r\n let index = this.state.clientResponses.indexOf(changedAnswer);\r\n if (index > -1) {\r\n newResponseList[index].stageStatus = type;\r\n this.setState({ clientResponses: newResponseList });\r\n }\r\n }\r\n };\r\n onNewConnection = (conn) => {\r\n if (conn.type == \"INTERACTION_MEETING\") {\r\n let cL = this.state.connectionList.filter((c) => !(c.clientKey == conn.clientKey && c.type == conn.type));\r\n cL.push(conn);\r\n this.setState({ connectionList: cL });\r\n }\r\n };\r\n onNewDisconnection = (connectionId) => {\r\n if (this.state.connectionList.find((c) => c.connectionId == connectionId)) {\r\n let cL = this.state.connectionList.filter((c) => c.connectionId != connectionId);\r\n this.setState({ connectionList: cL });\r\n }\r\n };\r\n onClearQuestionAnswers = (res) => {\r\n if (res) {\r\n let uptResponses = Array.from(this.state.clientResponses);\r\n uptResponses = uptResponses.filter((r) => r.questionId !== res);\r\n this.setState({ clientResponses: uptResponses });\r\n }\r\n };\r\n onClose = () => {\r\n this.setState({ connected: false });\r\n if (!window.location.hostname.includes(\"localhost\")) {\r\n this.connectToHub();\r\n }\r\n };\r\n onClearResponses = () => {\r\n this.setState({ clientResponses: [] });\r\n };\r\n\r\n onHandshake = (response) => {\r\n if (response.success) {\r\n this.setState({ connected: true, connecting:false, init: true });\r\n } else {\r\n }\r\n };\r\n\r\n convertOptionIdToText = (id) => {\r\n let optionId = parseInt(id);\r\n if (isNaN(optionId)) return id;\r\n const { question, defaultLanguage } = this.state;\r\n let text = id;\r\n try {\r\n text = question.questionOption.find((o) => o.questionOptionId === optionId).questionOptionLanguage.find((l) => l.languageCode === defaultLanguage).label;\r\n } catch (error) {}\r\n return text;\r\n };\r\n\r\n setStageStatus = (id, type) => {\r\n this.hubConnection.invoke(\"setStageStatus\", id, type, this.state.eventId).catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n onClientResponse = (response) => {\r\n const responses = Array.from(this.state.clientResponses);\r\n const existingResponse = responses.find((r) => {\r\n return r.answerId === response.answerId;\r\n });\r\n if (existingResponse) {\r\n let indexOf = responses.indexOf(responses.find((r) => r.answerId === response.answerId));\r\n if (indexOf > -1) {\r\n responses[indexOf].status = response.status;\r\n }\r\n } else if (response.type === \"Option\") {\r\n response.answerText = this.convertOptionIdToText(response.answer, response.questionId);\r\n }\r\n if (!existingResponse) {\r\n responses.push(response);\r\n }\r\n this.setState({ clientResponses: responses });\r\n };\r\n\r\n toggleQuestionInfo = (question) => {\r\n this.hubConnection.invoke(\"toggleQuestionInfo\", question.questionId, question.eventId, question.type, false);\r\n };\r\n onToggleQuestionInfo = (response) => {\r\n this.setState({ clientResponses: response.clientResponses });\r\n };\r\n onToggleQuestion = (response) => {\r\n let newList = Array.from(this.state.activeQuestions);\r\n if (response.active) {\r\n newList.push(response.questionId);\r\n } else {\r\n newList = newList.filter((q) => q !== response.questionId);\r\n }\r\n this.setState({ activeQuestions: newList });\r\n };\r\n groupTemplate = () => {\r\n const { template } = this.props;\r\n if (template === undefined) return null;\r\n return template.content;\r\n };\r\n\r\n render() {\r\n const { connected, init, activeQuestions, clientResponses } = this.state;\r\n const { template, questions } = this.props;\r\n const style = this.groupTemplate();\r\n const connectionsProps = { hubConnection: this.hubConnection, ...this.state };\r\n if(!init) return \r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template,\r\n questions: state.question.questions,\r\n user: state.authentication.user,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(StageLayout);\r\n","import React from \"react\";\r\nimport { makeStyles, useTheme, withStyles } from \"@material-ui/core/styles\";\r\nimport { Typography, IconButton, Avatar, ListItemAvatar, ListItemText, AppBar, ListItem, Badge, ListItemSecondaryAction, Button } from \"@material-ui/core\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport ThumbUpIcon from \"@material-ui/icons/ThumbUp\";\r\nimport { isTheSameMinute } from \"../../../../helpers/time.helper\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport QuestionAnswerTwoToneIcon from \"@material-ui/icons/QuestionAnswerTwoTone\";\r\nimport EventLabel2, { renderText } from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport CloseTwoToneIcon from \"@material-ui/icons/CloseTwoTone\";\r\nimport VideocamTwoToneIcon from \"@material-ui/icons/VideocamTwoTone\";\r\nimport VideocamOffTwoToneIcon from \"@material-ui/icons/VideocamOffTwoTone\";\r\nimport { isUsingChrome } from \"../../../../helpers/browser.helper\";\r\nimport ErrorTwoToneIcon from \"@material-ui/icons/ErrorTwoTone\";\r\nimport { toKebabCase } from \"../../../../helpers/cssHelper\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { ChatAvatar } from \"../../../../digitalArena/modules/ChatModule/components/ChatAvatar\";\r\nimport { TimeStamp } from \"../../../../digitalArena/modules/ChatModule/components/shared/TimeStamp\";\r\nimport { MessageBubble } from \"../../../../digitalArena/modules/ChatModule/components/MessageBubble\";\r\nconst drawerWidth = 240;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n height: \"100%\",\r\n },\r\n drawer: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n appBar: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n marginLeft: drawerWidth,\r\n },\r\n },\r\n title: {\r\n /* margin: theme.spacing(4, 0, 2), */\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n // necessary for content to be below app bar\r\n toolbar: theme.mixins.toolbar,\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n /* padding: theme.spacing(3), */\r\n },\r\n}));\r\nconst OnlineBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n \"&::after\": {\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: \"50%\",\r\n animation: \"$ripple 1.2s infinite ease-in-out\",\r\n border: \"1px solid currentColor\",\r\n content: '\"\"',\r\n },\r\n },\r\n \"@keyframes ripple\": {\r\n \"0%\": {\r\n transform: \"scale(.8)\",\r\n opacity: 1,\r\n },\r\n \"100%\": {\r\n transform: \"scale(2.4)\",\r\n opacity: 0,\r\n },\r\n },\r\n}))(Badge);\r\n\r\nconst AwayBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: \"#ffc107\",\r\n color: \"#ffc107\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n },\r\n}))(Badge);\r\n\r\nexport default class ExpoChat extends React.Component {\r\n state = {\r\n currentChat: null,\r\n };\r\n componentDidUpdate(prevProps) {\r\n if (this.props.chat && this.props.targetPerson && this.state.currentChat == null) {\r\n const host = this.props.exhibitorHosts.find((o) => o.badgeNo == this.props.targetPerson);\r\n if (!host) return;\r\n this.setState({\r\n currentChat: { ...this.state.currentChat, target: host },\r\n });\r\n }\r\n if (this.props.chat && prevProps.chat !== this.props.chat && this.state.currentChat != null) {\r\n const currentChat = this.props.chat.find((c) => c.target == this.state.currentChat.target.badgeNo);\r\n //refresh he chatmessages on update\r\n if (currentChat) {\r\n this.onChatSelect(currentChat);\r\n }\r\n\r\n //If the current chat has gotten a new message set seen = true\r\n if (currentChat && this.state.currentChat && currentChat.target == this.state.currentChat.target.badgeNo) {\r\n let unseenMessage = this.props.chat.find((c) => c.messages.find((m) => m.seen == false) && c.target == this.state.currentChat.target.badgeNo);\r\n if (unseenMessage) this.props.setMessageSeen(unseenMessage);\r\n }\r\n //if you init a chat set it to the currentchat\r\n const hasNewInits = this.props.chat.find((c) => c.messages.find((m) => m.message === \"INIT\" && m.sender == this.props.clientKey));\r\n const prevHasNewInits = prevProps.chat.find((c) => c.messages.find((m) => m.message === \"INIT\" && m.sender == this.props.clientKey));\r\n if (hasNewInits && !prevHasNewInits) {\r\n this.onChatSelect(hasNewInits);\r\n }\r\n }\r\n if (\r\n this.props.selectedChat &&\r\n this.props.selectedChat != prevProps.selectedChat &&\r\n (!this.state.currentChat || (this.state.currentChat && this.state.currentChat.target != this.props.selectedChat))\r\n ) {\r\n this.onChatSelect(this.props.selectedChat);\r\n }\r\n }\r\n onChatSelect = (target, seen = true) => {\r\n if (target == \"DESELECT\") {\r\n this.props.selectChat(null);\r\n return this.setState({ currentChat: null });\r\n }\r\n const { exhibitorHosts, clientName, chat } = this.props;\r\n let currentChat = chat.find((c) => c.target == target);\r\n let missedGroupMessages = this.state.missedGroupMessages;\r\n if (!currentChat)\r\n currentChat = {\r\n lastChange: \"\",\r\n messages: [],\r\n previewText: \"\",\r\n previewPreFix: \"\",\r\n target: target,\r\n seen: true,\r\n };\r\n if (seen == false) {\r\n this.props.setMessageSeen(currentChat);\r\n }\r\n\r\n const host = exhibitorHosts.find((o) => o.badgeNo == target);\r\n if (!host) return;\r\n this.props.selectChat(host);\r\n this.setState({ currentChat: { ...this.state.currentChat, target: host } });\r\n };\r\n\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nfunction ChatDivider(props) {\r\n const { window, tab, exhibitorHosts, chat, anonymous, connectionList, clientKey, videoCallActive, videoCallTarget, closeVideoCall, videoRequest, nonAvailablePersons, enableChat, template, lang } =\r\n props;\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n let isChrome = isUsingChrome();\r\n\r\n let formattedExpoList = exhibitorHosts.filter((eh) => connectionList.find((c) => c.clientKey == eh.badgeNo));\r\n formattedExpoList = [...formattedExpoList, ...exhibitorHosts.filter((eh) => !formattedExpoList.find((c) => c.badgeNo == eh.badgeNo))];\r\n\r\n const formatPeopleList = () =>\r\n formattedExpoList.map((eh, i) => {\r\n /* if (exhibitorHosts.find(e => e.badgeNo == clientKey)) return; */\r\n\r\n const c = chat.find((c) => c.target == eh.badgeNo);\r\n let seenCondition = (c && !c.seen && c.messages[c.messages.length - 1].sender != clientKey) || (c && (!c.seen || c.messages.find((m) => m.seen == false && m.sender != clientKey)));\r\n let onPressFunc = () => props.onChatSelect(eh.badgeNo, !seenCondition);\r\n /* if (videoCallTarget) return eh.badgeNo == videoCallTarget).name} displayName={props.clientName} {...props} /> */\r\n if (exhibitorHosts.find((e) => e.badgeNo == clientKey)) {\r\n onPressFunc = () => null;\r\n }\r\n return (\r\n \r\n {/* onPressFunc()} style={{ backgroundColor: props.currentChat && eh.badgeNo == props.currentChat.target.badgeNo ? '#edf4ff' : undefined }} alignItems=\"flex-start\" > */}\r\n \r\n {seenCondition ? (\r\n
onPressFunc()} style={{ marginTop: \"3px\" }}>\r\n
\r\n
\r\n ) : null}\r\n \r\n \r\n {eh.name}\r\n \r\n \r\n {!exhibitorHosts.find((e) => e.badgeNo == clientKey) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n aria-label=\"add\"\r\n >\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {eh.name}\r\n \r\n }\r\n secondary={\r\n \r\n {connectionList.find((cl) => cl.clientKey == eh.badgeNo) ? : }\r\n \r\n }\r\n />\r\n\r\n {!exhibitorHosts.find((e) => e.badgeNo == clientKey) ? (\r\n
\r\n {enableChat && anonymous != true ? (\r\n onPressFunc()}\r\n disabled={exhibitorHosts.find((e) => e.badgeNo == clientKey)}\r\n startIcon={}\r\n style={{\r\n border: \"1px solid gainsboro\",\r\n color: \"#585858\",\r\n padding: \"7px 16px\",\r\n fontFamily: template ? template.button.fontFamily : undefined,\r\n textTransform: \"capitalize\",\r\n marginRight: 5,\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n \r\n \r\n ) : null}\r\n {!isChrome ? (\r\n }>\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n {props.enableVideoMeeting && anonymous != true ? (\r\n cl.clientKey == eh.badgeNo) || exhibitorHosts.find((e) => e.badgeNo == clientKey)}\r\n onClick={() => videoRequest(eh.badgeNo)}\r\n startIcon={nonAvailablePersons.includes(eh.badgeNo) && connectionList.find((cl) => cl.clientKey == eh.badgeNo) ? : null}\r\n style={{\r\n border: \"1px solid \" + (nonAvailablePersons.includes(eh.badgeNo) ? \"ff0000d6\" : \"gainsboro\"),\r\n color: nonAvailablePersons.includes(eh.badgeNo) ? \"#ff0000d6\" : \"#585858\",\r\n padding: \"7px 16px\",\r\n cursor: \"pointer\",\r\n textTransform: \"capitalize\",\r\n marginRight: 5,\r\n }}\r\n >\r\n {!connectionList.find((cl) => cl.clientKey == eh.badgeNo) ? : null}\r\n {!nonAvailablePersons.includes(eh.badgeNo) && connectionList.find((cl) => cl.clientKey == eh.badgeNo) ? : null}\r\n {nonAvailablePersons.includes(eh.badgeNo) ? : null}\r\n \r\n ) : null}\r\n
\r\n ) : null}\r\n
\r\n
\r\n {eh.profileBio ? (\r\n \r\n {eh.profileBio}\r\n \r\n ) : null}\r\n \r\n );\r\n });\r\n return (\r\n
\r\n {props.currentChat ? (\r\n
\r\n {\" \"}\r\n props.onChatSelect(\"DESELECT\")}\r\n clientKey={props.clientKey}\r\n exhibitorHosts={props.exhibitorHosts}\r\n currentChat={props.currentChat}\r\n sendMessage={props.sendMessage}\r\n connectionList={props.connectionList}\r\n like={props.like}\r\n {...props}\r\n />\r\n
\r\n ) : (\r\n
\r\n {\" \"}\r\n \r\n \r\n
{\" \"}\r\n \r\n
\r\n {formatPeopleList()}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\nclass ChatGrid extends React.Component {\r\n state = {\r\n messages: [],\r\n text: \"\",\r\n size: 1,\r\n loaded: false,\r\n };\r\n componentDidMount() {\r\n document.addEventListener(\"keyup\", this.onEnter);\r\n this.handleScroll();\r\n }\r\n onEnter = (e) => {\r\n var e = e || window.event; // for IE to cover IEs window event-object\r\n if (e.which == 13 && this.state.text) {\r\n this.sendMessage();\r\n }\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (this.props.scroll && !prevProps.scroll) {\r\n this.handleScroll();\r\n }\r\n if (this.props.currentChat != prevProps.currentChat) {\r\n this.handleScroll();\r\n }\r\n }\r\n setChatSize = (size) => {\r\n localStorage.setItem(\"CHAT_SIZE\", size);\r\n this.setState({ size });\r\n };\r\n\r\n handleScroll = (id) => {\r\n const { currentChat, chat } = this.props;\r\n if (currentChat && currentChat.target) {\r\n let chatIndex = chat.indexOf(chat.find((c) => c.target == currentChat.target.badgeNo));\r\n if (chatIndex > -1) {\r\n let index = chat[chatIndex].messages.length - 1;\r\n if (index > -1 && this.refs[index] !== undefined) {\r\n try {\r\n this.refs[index].scrollIntoView({\r\n block: \"end\",\r\n behavior: \"smooth\",\r\n });\r\n this.setState({ loaded: false });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n sendMessage = () => {\r\n const { currentChat, connectionList } = this.props;\r\n const { text } = this.state;\r\n const { target } = currentChat;\r\n this.props.sendMessage(target, text);\r\n this.setState({ text: \"\" });\r\n };\r\n\r\n renderTargetCard = () => {\r\n const { currentChat, connectionList, template } = this.props;\r\n const { target } = currentChat;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {target.name}\r\n \r\n }\r\n secondary={\r\n \r\n {connectionList.find((cl) => cl.clientKey == target.badgeNo) ? : }\r\n \r\n }\r\n />\r\n \r\n {target.linkedIn ? (\r\n window.open(target.linkedIn, \"_blank\")}>\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n const { currentChat, exhibitorHost, chat, like = () => null, template, lang, connectionList, clientKey, profile } = this.props;\r\n if (!currentChat) return null;\r\n return (\r\n
\r\n \r\n {this.renderTargetCard()}\r\n \r\n \r\n \r\n {currentChat.target && chat.find((c) => c.target == currentChat.target.badgeNo)\r\n ? chat\r\n .find((c) => c.target == currentChat.target.badgeNo)\r\n .messages.map((m, i) => {\r\n if (m.message == \"INIT\") return null;\r\n const cc = chat.find((c) => c.target == currentChat.target.badgeNo).messages;\r\n return (\r\n \r\n {i != 0 && !isTheSameMinute(m.inserted, chat.find((c) => c.target == currentChat.target.badgeNo).messages[i - 1].inserted) ? (\r\n \r\n ) : null}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n like(id, currentChat.target.badgeNo),\r\n\r\n chatTemplate: {\r\n messages: {\r\n fontSize: \"15px\",\r\n fontWeight: \"initial\",\r\n lineHeight: \"auto\",\r\n fontFamily: \"Open Sans\",\r\n color: \"initial\",\r\n receiver: {\r\n backgroundColor: \"#e4e6eb\",\r\n color: \"#050505\",\r\n },\r\n sender: {\r\n backgroundColor: \"#5a60e3\",\r\n color: \"#fff\",\r\n },\r\n },\r\n },\r\n fromYou: m.sender == clientKey,\r\n },\r\n ])}\r\n />\r\n
\r\n \r\n );\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n this.setState({ text: e.target.value })} />\r\n
\r\n
\r\n \r\n }>\r\n \r\n \r\n \r\n {\r\n this.setState({ text: \"THUMB_UP\" }, () => this.sendMessage());\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","export const interactionHelper = {\r\n getClientKey,\r\n setClientKey,\r\n};\r\n\r\nfunction setClientKey(id, key, expoId = null, expoHost = false) {\r\n if (expoId)\r\n localStorage.setItem(`EXPO${expoHost ? \"_HOST\" : \"\"}_KEY_${expoId}`, key);\r\n else {\r\n localStorage.setItem(`CLIENT_KEY_${id}`, key);\r\n }\r\n}\r\n\r\nfunction getClientKey(id, expoId = null, expoHost = false) {\r\n if (expoId)\r\n return (\r\n localStorage.getItem(`EXPO${expoHost ? \"_HOST\" : \"\"}_KEY_${expoId}`) ||\r\n null\r\n );\r\n return localStorage.getItem(`CLIENT_KEY_${id}`) || null;\r\n}","import React from \"react\";\r\nimport { List, ListItem, IconButton } from \"@material-ui/core\";\r\nimport { ListGroup, ListGroupItem, Col, Row } from \"reactstrap\";\r\nimport ArrowForwardIcon from \"@material-ui/icons/ArrowForward\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFileExcel, faFileImage, faFileWord, faFilePdf, faFilePowerpoint, faFileVideo, faFileAudio } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { toKebabCase } from \"../../../helpers/cssHelper\";\r\nimport LanguageOutlinedIcon from \"@material-ui/icons/LanguageOutlined\";\r\nimport { clickTrackLog } from \"../../../services/clickTrack.service\";\r\n\r\nexport default class ExpoFileList extends React.Component {\r\n render() {\r\n const renderFileIcon = (value) => {\r\n let type = value.substring(value.lastIndexOf(\".\") + 1, value.length);\r\n switch (type) {\r\n case \"jpg\":\r\n case \"jif\":\r\n case \"png\":\r\n case \"svg\":\r\n return (\r\n \r\n );\r\n case \"pdf\":\r\n return (\r\n \r\n );\r\n case \"doc\":\r\n case \"docx\":\r\n return (\r\n \r\n );\r\n case \"xls\":\r\n case \"xlsx\":\r\n return (\r\n \r\n );\r\n case \"ppt\":\r\n case \"pptx\":\r\n return (\r\n \r\n );\r\n case \"mp4\":\r\n case \"mpg\":\r\n case \"mpeg\":\r\n case \"avi\":\r\n case \"mov\":\r\n case \"mkv\":\r\n return (\r\n \r\n );\r\n case \"mp3\":\r\n case \"wav\":\r\n return (\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const { files = [], links = false, template = undefined, clientKey, eventId, exhibitorId } = this.props;\r\n return (\r\n
\r\n \r\n\r\n \r\n {files\r\n .sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n .map((f, i) => {\r\n return (\r\n \r\n clickTrackLog(eventId, exhibitorId, clientKey, f.name, f.value2, \"Exhibitor\", () => {\r\n if (f.value2 && typeof f.value2 === \"string\") {\r\n let link = f.value2;\r\n if (!link.toLowerCase().startsWith(\"http\")) {\r\n link = \"https://\" + link;\r\n }\r\n window.open(link, \"_blank\");\r\n }\r\n })\r\n }\r\n >\r\n \r\n {!links ? (\r\n {renderFileIcon(f.value2)}\r\n ) : (\r\n \r\n {\" \"}\r\n \r\n )}\r\n \r\n {f.value}\r\n
\r\n {links ? (\r\n {f.value2}\r\n ) : (\r\n {f.value2.substring(f.value2.lastIndexOf(\".\") + 1, f.value2.length)}\r\n )}\r\n \r\n \r\n \r\n clickTrackLog(eventId, exhibitorId, clientKey, f.name, f.value2, \"Exhibitor\", () => {\r\n if (f.value2 && typeof f.value2 === \"string\") {\r\n let link = f.value2;\r\n if (!link.toLowerCase().startsWith(\"http\")) {\r\n link = \"https://\" + link;\r\n }\r\n window.open(link, \"_blank\");\r\n }\r\n })\r\n }\r\n style={{ border: \"1px solid gainsboro\" }}\r\n >\r\n {f.name == \"Link\" ? : }\r\n \r\n \r\n
\r\n \r\n );\r\n })}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport EventLabel2 from \"../../../components/EventLabel2/EventLabel2\";\r\nimport LinkIcon from \"@material-ui/icons/Link\";\r\nimport InsertDriveFileTwoToneIcon from \"@material-ui/icons/InsertDriveFileTwoTone\";\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nTabPanel.propTypes = {\r\n children: PropTypes.node,\r\n index: PropTypes.any.isRequired,\r\n value: PropTypes.any.isRequired,\r\n};\r\n\r\nfunction a11yProps(index) {\r\n return {\r\n id: `full-width-tab-${index}`,\r\n \"aria-controls\": `full-width-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#fff\",\r\n width: \"100%\",\r\n borderRadius: \"4px\",\r\n },\r\n}));\r\n\r\nexport default function SideViewTabs(props) {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [value, setValue] = React.useState(0);\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n } {...a11yProps(0)} />\r\n \r\n \r\n \r\n {props.chatView}\r\n \r\n
\r\n );\r\n}\r\n\r\nexport function SideViewTabs2(props) {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [value, setValue] = React.useState(0);\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n\r\n const {\r\n notices = {\r\n video: false,\r\n chat: false,\r\n },\r\n template,\r\n } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n
\r\n }\r\n {...a11yProps(1)}\r\n />\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n }\r\n {...a11yProps(2)}\r\n />\r\n \r\n \r\n \r\n {props.fileView}\r\n \r\n \r\n {props.linkView}\r\n \r\n \r\n );\r\n}\r\n","export const videoCallConstants = {\r\n CALL_DENIED: 'CALL_DENIED',\r\n TARGET_HANGUP: 'TARGET_HANGUP',\r\n SELF_HANGUP: 'SELF_HANGUP'\r\n}","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport SystemLabel from '../../system/SystemLabel/SystemLabel';\r\nimport VideocamIcon from '@material-ui/icons/Videocam';\r\nimport CallEndIcon from '@material-ui/icons/CallEnd';\r\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\r\nimport { Avatar } from '@material-ui/core';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport './Animation.css'\r\nimport { isUsingChrome } from '../../helpers/browser.helper';\r\n\r\n\r\n\r\nexport default function OnVideCallModal({ target = null, deny = () => null, accept = () => null, lang = null }) {\r\n let isChrome = isUsingChrome();\r\n return (\r\n
\r\n null}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {target ? target.name : '(?)'}\r\n
\r\n
\r\n
\r\n {!isChrome ?\r\n
\r\n
\r\n
\r\n : null}\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n {isChrome ? : null}\r\n \r\n \r\n
\r\n );\r\n}","import React from \"react\";\r\nimport { JitsiMeeting } from \"@jitsi/react-sdk\";\r\nimport { Spinner } from \"reactstrap\";\r\nconst wrapperStyle = (w) => {\r\n return {\r\n position: \"relative\",\r\n width: w,\r\n background: \"rgb(71, 71, 71)\",\r\n height: \"100%\",\r\n };\r\n};\r\n\r\nconst loader = () => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport class JitsiWrapper extends React.Component {\r\n state = {\r\n displayName: \"\",\r\n roomName: \"\",\r\n password: \"\",\r\n onCall: false,\r\n meetingEnded: false,\r\n videoOn: true,\r\n audioOn: true,\r\n };\r\n componentDidMount() {\r\n const { displayName, roomName } = this.props;\r\n this.setState({ displayName, roomName, onCall: true, meetingEnded: false });\r\n }\r\n\r\n setOnCallEndListener = (JitsiMeetAPI) => {\r\n const { onHangup = () => null } = this.props;\r\n JitsiMeetAPI.addListener(\"videoConferenceLeft\", () => { onHangup(); })\r\n window.addEventListener(\"beforeunload\", () => {\r\n JitsiMeetAPI.executeCommand(\"hangup\");\r\n this.setState({ meetingEnded: true });\r\n });\r\n };\r\n render() {\r\n const {\r\n onCall,\r\n meetingEnded,\r\n videoOn,\r\n audioOn,\r\n roomName,\r\n displayName,\r\n password,\r\n } = this.state;\r\n const { height } = this.props;\r\n return onCall && !meetingEnded ? (\r\n
\r\n this.setOnCallEndListener(JitsiMeetAPI)}\r\n getIFrameRef = { (iframeRef) => { iframeRef.style.height = '100%'; } }\r\n />\r\n
\r\n ) : null;\r\n }\r\n}","import React from 'react';\r\nimport { JitsiWrapper } from '../../../plugins/JitsiWrapper';\r\nimport { videoCallConstants } from '../../constants/videoCall.constants';\r\nimport PhoneIcon from '@material-ui/icons/Phone';\r\nimport './CallStyle.css'\r\nimport SystemLabel from '../../../system/SystemLabel/SystemLabel';\r\nimport PhoneDisabledIcon from '@material-ui/icons/PhoneDisabled';\r\nimport CallEndIcon from '@material-ui/icons/CallEnd';\r\nimport { Button } from '@material-ui/core';\r\nimport Draggable from 'react-draggable';\r\nimport DragIndicatorTwoToneIcon from '@material-ui/icons/DragIndicatorTwoTone';\r\nfunction MaxWidthDialog(props) {\r\n const [fullSize, toggleSize] = React.useState(true)\r\n\r\n return (\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nconst callingIconText = () => {\r\n\r\n}\r\n\r\nexport default class VideoFrame extends React.Component {\r\n renderCallLoader = (targetPerson) => {\r\n const { videoCallActive, videoCallTarget, videoResponse, clientKey, videoCallResponse, closeVideoCall, callId, lang } = this.props;\r\n if (videoCallResponse == videoCallConstants.CALL_DENIED) {\r\n return (\r\n

\r\n
\r\n \r\n
\r\n
\r\n
{targetPerson} {\" \"}
\r\n

\r\n )\r\n }\r\n if (videoCallResponse == videoCallConstants.SELF_HANGUP) {\r\n return (\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n )\r\n }\r\n if (videoCallResponse == videoCallConstants.TARGET_HANGUP) {\r\n return (\r\n

\r\n
\r\n \r\n
\r\n
\r\n
{targetPerson} {\" \"}
\r\n

\r\n )\r\n }\r\n return (\r\n

\r\n
\r\n \r\n
\r\n
\r\n

{\" \"}{targetPerson}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n }\r\n render() {\r\n const { videoCallActive, videoCallTarget, videoResponse, clientKey, clientName, closeVideoCall, targetPerson = '' , meetingCode = ''} = this.props;\r\n if (!videoCallTarget) return null;\r\n return (\r\n \r\n {videoCallActive ? (\r\n closeVideoCall(videoCallTarget)} />\r\n ) :
{this.renderCallLoader(targetPerson)}
}\r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\n","import React from \"react\";\r\nimport { makeStyles, alpha } from \"@material-ui/core/styles\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { connect } from \"react-redux\";\r\nimport { getKey } from \"../../../helpers/UrlHelper\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport NotAuthorized from \"../../../components/NotAuthorized\";\r\nimport { clientTypeConstants } from \"../../../interaction/constants/clientType.constants\";\r\nimport ExpoChat from \"../Chat/ExpoChat/ExpoChat\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { interactionHelper } from \"../../../helpers/interaction.helper\";\r\nimport ExpoFileList from \"../Files/ExpoFileList\";\r\nimport { SideViewTabs2 } from \"../SideViewTabs/SideViewTabs\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { templateActions } from \"../../../store/actions/cms/template/template.action\";\r\nimport { store } from \"../../../store/configureStore\";\r\nimport { videoCallConstants } from \"../../constants/videoCall.constants\";\r\nimport { cmsActions } from \"../../../store/actions/cms/cms.action\";\r\nimport { insertFonts } from \"../../../helpers/fontHelper\";\r\nimport { toKebabCase } from \"../../../helpers/cssHelper\";\r\nimport OnVideCallModal from \"../../shared/OnVideoCallModal\";\r\nimport VideoFrame from \"../VideoFrame/VideoFrame\";\r\nimport Sound from \"react-sound\";\r\nimport rush from \"../../../assets/audio/rush.mp3\";\r\nimport ringing from \"../../../assets/audio/ringing.mp3\";\r\nimport chatNotification from \"../../../assets/audio/chat.mp3\";\r\nimport { ListItem, ListItemAvatar, ListItemText, Avatar, ListItemSecondaryAction, IconButton } from \"@material-ui/core\";\r\nimport { formatTime } from \"../../../helpers/time.helper\";\r\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport \"url-search-params-polyfill\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport { GenericPlayer } from \"../../../plugins/GenericPlayer\";\r\nimport { ClientConnectionFallback, Loader } from \"../../../digitalArena/utils/ClientConnectionFallback\";\r\nimport { ConnectionStatus } from \"../../../digitalArena/components/fallbacks/ConnectionStatus\";\r\nimport { FontInjector } from \"../../../digitalArena/components/MeetingLayout\";\r\n\r\nconst drawerWidth = 240;\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n width: \"100%\",\r\n },\r\n rootGrid: {\r\n flexGrow: 1,\r\n height: \"100vh\",\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n height: \"100%\",\r\n textAlign: \"center\",\r\n color: theme.palette.text.secondary,\r\n },\r\n drawer: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n appBar: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n /* width: `calc(100% - ${drawerWidth}px)`,\r\n marginLeft: drawerWidth, */\r\n zIndex: 1900,\r\n },\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n // necessary for content to be below app bar\r\n toolbar: theme.mixins.toolbar,\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: 0,\r\n },\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: alpha(theme.palette.common.white, 0.15),\r\n \"&:hover\": {\r\n backgroundColor: alpha(theme.palette.common.white, 0.25),\r\n },\r\n marginRight: theme.spacing(2),\r\n marginLeft: 0,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: theme.spacing(3),\r\n width: \"auto\",\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: \"20ch\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n}));\r\n\r\nconst pathConstants = {\r\n ACTIVITY: \"ACTIVITY\",\r\n COMMUNICATION: \"COMMUNICATION\",\r\n};\r\nconst subPathConstants = {\r\n VIDEO: \"VIDEO\",\r\n CHAT: \"CHAT\",\r\n};\r\n\r\nclass ExpoBoothLayout extends React.Component {\r\n state = {\r\n path: pathConstants.ACTIVITY,\r\n subPath: null,\r\n active: true,\r\n exhibitorId: null,\r\n eventId: null,\r\n connecting: false,\r\n exhibitorHosts: [],\r\n connectionList: [],\r\n exhibitorSettings: [],\r\n chat: [],\r\n anonymous: false,\r\n notAuthorized: false,\r\n forceDisc: false,\r\n init: false,\r\n clientName: \"\",\r\n eventCode: \"\",\r\n lang: \"\",\r\n profile: {},\r\n scroll: false,\r\n videoCallResponse: null,\r\n videoCallActive: false,\r\n videoCallTarget: null,\r\n nonAvailablePersons: [],\r\n callId: null,\r\n isCalling: null,\r\n VideoCallTimeout: 15,\r\n enableVideoMeeting: false,\r\n incommingCallSoundOn: false,\r\n ringingSoundOn: false,\r\n showBackToEventButton: false,\r\n meetingCode: null,\r\n messageSoundOn: false,\r\n enableChat: true,\r\n exhibitorName: \"\",\r\n snackbar: null,\r\n };\r\n componentDidMount() {\r\n let exhibitorId = this.props.match.params.id;\r\n const params = new URLSearchParams(this.props.location.search);\r\n const clientKey = params.get(getKey(\"clientkey\", params));\r\n const lang = params.get(getKey(\"lang\", params));\r\n if (lang) this.setState({ lang });\r\n document.body.style.overflow = \"hidden\";\r\n exhibitorId = parseInt(exhibitorId, 36);\r\n if (clientKey) {\r\n this.setClientKey(exhibitorId, clientKey);\r\n }\r\n this.callTimeout = {};\r\n this.setState({ connecting: true, exhibitorId });\r\n this.connectToHub(exhibitorId);\r\n }\r\n componentDidUpdate(prevProps, prevState) {\r\n const { connecting, dismissConnectionLoss, forceDisc, connected } = this.state;\r\n\r\n if (connected == false && prevState.connected == true && connecting == false) {\r\n this.tryReconnect();\r\n this.counter = setInterval(() => this.setState({ countdown: this.state.countdown + 1 }), 1000);\r\n } else if (this.state.countdown >= 60 && !connected && prevState.connected == false) {\r\n this.setState({ countdown: 0, connecting: false });\r\n this.tryReconnect();\r\n } else if (connected == true && prevState.connected == false && !this.state.connecting && this.hubConnection && this.hubConnection.connectionState == 1) {\r\n if (this.counter) clearInterval(this.counter);\r\n if (this.state.saveQueued) {\r\n }\r\n this.setState({ countdown: 0 });\r\n }\r\n }\r\n onNavigate = (path, subPath = null) => this.setState({ path, subPath });\r\n setClientKey = (id, key) => interactionHelper.setClientKey(null, key, id);\r\n getClientKey = (id) => interactionHelper.getClientKey(null, id);\r\n onGetExhibitorSettings = (exhibitorSettings) =>\r\n this.setState({\r\n exhibitorSettings,\r\n enableChat: exhibitorSettings.find((s) => s.name == \"EnableChat\").value2 == \"True\" ? true : false,\r\n enableVideoMeeting: exhibitorSettings.find((s) => s.name == \"EnableVideoMeeting\").value2 == \"True\" ? true : false,\r\n videoCallTimeout: exhibitorSettings.find((s) => s.name == \"VideoCallTimeout\") ? exhibitorSettings.find((s) => s.name == \"VideoCallTimeout\").value2 : 15,\r\n });\r\n\r\n onHandshake = (response) => {\r\n if (response.success) {\r\n this.setClientKey(this.state.exhibitorId, response.clientKey);\r\n this.setState({\r\n connected: true,\r\n connecting: false,\r\n profile: {\r\n companyName: response.companyName,\r\n fullName: response.clientName,\r\n profileImage: response.profileImage,\r\n },\r\n init: true,\r\n exhibitorName: response.exhibitorName,\r\n companyName: response.companyName,\r\n clientName: response.clientName,\r\n eventId: response.eventId,\r\n anonymous: response.anonymous,\r\n templateId: response.expoTemplateId,\r\n eventCode: response.eventCode,\r\n lang: this.state.lang || response.lang,\r\n showBackToEventButton: response.interactionShowBackToEventButtonExpo,\r\n });\r\n this.props.dispatch(cmsActions.getClientFonts(response.eventId));\r\n //get lang from handshake by event def\r\n init(response.eventId, \"Exhibitor.Booth\", this.state.lang || response.lang);\r\n\r\n if (response.expoTemplateId > 0) {\r\n store.dispatch(templateActions.get(response.expoTemplateId));\r\n }\r\n this.hubConnection.invoke(\"getActiveConnections\", this.state.eventId, this.state.exhibitorId, [clientTypeConstants.INTERACTION_EXHIBITOR_HOST]).catch((err) => { });\r\n this.hubConnection.invoke(\"getExhibitorSettings\", this.state.exhibitorId).catch((err) => { });\r\n this.getChat();\r\n\r\n this.hubConnection.invoke(\"getNoneAvailableCallers\", this.state.exhibitorId).catch((err) => { });\r\n this.hubConnection.invoke(\"getExhibitorHosts\", this.state.eventId, this.state.exhibitorId).catch((err) => { });\r\n\r\n if (!this.connectionTimer) {\r\n this.connectionTimer = setInterval(() => {\r\n this.hubConnection.invoke(\"getActiveConnections\", this.state.eventId, this.state.exhibitorId, [clientTypeConstants.INTERACTION_EXHIBITOR_HOST]).catch((err) => { });\r\n }, 15000);\r\n }\r\n if (!this.orderListTimer) {\r\n this.orderListTimer = setInterval(() => {\r\n this.hubConnection.invoke(\"getExhibitorHosts\", this.state.eventId, this.state.exhibitorId).catch((err) => { });\r\n }, 60000);\r\n }\r\n } else {\r\n console.error(response.message);\r\n }\r\n };\r\n onLike = (messageId) => {\r\n const { chat } = this.state;\r\n chat.map((c) => {\r\n c.messages.map((m) => {\r\n if (m.interactionChatId == messageId) {\r\n if (m.likes == null) m.likes = 0;\r\n m.likes += 1;\r\n }\r\n });\r\n });\r\n this.setState({ chat });\r\n };\r\n like = (messageId, target) => {\r\n this.hubConnection.invoke(\"like\", messageId, target, this.state.exhibitorId);\r\n };\r\n onHostUpdate = ({ badgeNo, name, value }) => {\r\n const hosts = Array.from(this.state.exhibitorHosts);\r\n const host = hosts.find((h) => h.badgeNo == badgeNo);\r\n\r\n if (host) {\r\n var index = hosts.indexOf(host);\r\n if (index > -1) {\r\n if (name == \"ProfileImage\") hosts[index].profileImage = value;\r\n if (name == \"ProfileBio\") hosts[index].profileBio = value;\r\n this.setState({ exhibitorHosts: hosts });\r\n }\r\n }\r\n };\r\n onGetNoneAvailableCallers = (nonAvailablePersons) => {\r\n this.setState({ nonAvailablePersons });\r\n };\r\n connectToHub = (exhibitorId) => {\r\n try {\r\n if (!this.hubConnection) {\r\n this.hubConnection = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n }\r\n } catch (error) { }\r\n let clientKey = this.getClientKey(exhibitorId);\r\n\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n this.hubConnection.on(\"onExpoHandshake\", this.onHandshake);\r\n this.hubConnection.on(\"onNewConnection\", this.onNewConnection);\r\n this.hubConnection.on(\"onNewDisconnection\", this.onNewDisconnection);\r\n //optimize this instead of getting the whole chat\r\n /* this.hubConnection.on(\"onChatMessageReceived\", this.getChat); */\r\n /* this.hubConnection.on(\"onMessageSent\", this.getChat); */\r\n\r\n this.hubConnection.on(\"onGetChatMessage\", this.onGetChat);\r\n this.hubConnection.on(\"onHostUpdate\", this.onHostUpdate);\r\n this.hubConnection.on(\"onInitChat\", this.getChat);\r\n this.hubConnection.on(\"onLikeMessage\", this.onLike);\r\n this.hubConnection.on(\"onMessageSeen\", this.getChat);\r\n this.hubConnection.on(\"onChatMessageReceived\", this.onReceiveMessage);\r\n this.hubConnection.on(\"onSendChatMessage\", this.onSendChatMessage);\r\n this.hubConnection.on(\"onReleased\", this.onReleased);\r\n this.hubConnection.on(\"onOccupied\", this.onOccupied);\r\n this.hubConnection.on(\"onVideoResponse\", this.onVideoResponse);\r\n this.hubConnection.on(\"onVideoClosed\", this.onVideoClosed);\r\n this.hubConnection.on(\"onVideoRequest\", this.onVideoRequest);\r\n\r\n this.hubConnection.on(\"onGetExhibitorSettings\", this.onGetExhibitorSettings);\r\n this.hubConnection.on(\"onGetNoneAvailableCallers\", this.onGetNoneAvailableCallers);\r\n\r\n this.hubConnection.on(\"onGetActiveConnections\", this.onGetActiveConnections);\r\n this.hubConnection.on(\"onGetActiveConnections\", this.onGetActiveConnections);\r\n this.hubConnection.on(\"onGetExhibitorHosts\", this.onGetExhibitorHosts);\r\n this.hubConnection.on(\"onForceDisconnect\", this.onForceDisconnect);\r\n this.hubConnection.onclose(() => {\r\n this.setState({ connected: false });\r\n });\r\n\r\n this.hubConnection\r\n .invoke(\"expoHandshake\", {\r\n exhibitorId: parseInt(exhibitorId),\r\n eventId: 0,\r\n clientType: clientTypeConstants.INTERACTION_EXHIBITOR_VISITOR,\r\n clientKey,\r\n userGuid: null,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n })\r\n .catch((error) => { });\r\n };\r\n\r\n onGetExhibitorHosts = (exhibitorHosts) => this.setState({ exhibitorHosts }, () => this.filterHostConnections());\r\n onInitChat = () => this.getChat();\r\n onGetChat = (chat) => (chat ? this.setState({ chat }) : null);\r\n\r\n onVideoClosed = () => {\r\n const { videoCallActive } = this.state;\r\n if (videoCallActive) {\r\n this.setState({\r\n videoCallActive: false,\r\n callId: null,\r\n videoCallResponse: videoCallConstants.TARGET_HANGUP,\r\n ringingSoundOn: false,\r\n });\r\n setTimeout(() => this.setState({ videoCallTarget: null }), 2000);\r\n }\r\n };\r\n videoRequestOnTimeout = (target, callId) => {\r\n const { videoCallActive } = this.state;\r\n const clientKey = this.getClientKey(this.state.exhibitorId);\r\n if (videoCallActive == false && target != clientKey && this.state.isCalling) {\r\n this.videoRequestResponse(false, target, callId);\r\n }\r\n };\r\n onVideoRequest = ({ target, meetingCode, callId }) => {\r\n const clientKey = this.getClientKey(this.state.exhibitorId);\r\n if (!this.state.isCalling && target != clientKey) {\r\n this.setState({\r\n isCalling: target,\r\n callId: callId,\r\n incommingCallSoundOn: true,\r\n });\r\n this.callTimeout[target] = setTimeout(() => this.videoRequestOnTimeout(target, callId), parseInt(this.state.VideoCallTimeout) * 1000);\r\n } else {\r\n this.setState({ callId });\r\n }\r\n this.setState({ meetingCode });\r\n };\r\n videoRequestResponse = (answer = true, target, callId, directed = false) => {\r\n const { exhibitorId } = this.state;\r\n clearTimeout(this.callTimeout[target]);\r\n this.setState({\r\n isCalling: null,\r\n incommingCallSoundOn: false,\r\n ringingSoundOn: false,\r\n });\r\n const clientKey = this.getClientKey(exhibitorId);\r\n if (answer == true) this.setState({ videoCallActive: true, videoCallTarget: target, callId });\r\n if (directed) {\r\n this.hubConnection.invoke(\"selfHangup\", target, clientKey, parseInt(exhibitorId), callId);\r\n } else {\r\n this.hubConnection.invoke(\"videoRequestResponse\", target, clientKey, parseInt(exhibitorId), answer, callId);\r\n }\r\n };\r\n onReleased = (res) => {\r\n let nonAvailablePersons = Array.from(this.state.nonAvailablePersons);\r\n nonAvailablePersons = nonAvailablePersons.filter((h) => h != res);\r\n this.setState({ nonAvailablePersons });\r\n };\r\n onOccupied = (res) => {\r\n const nonAvailablePersons = Array.from(this.state.nonAvailablePersons);\r\n nonAvailablePersons.push(res);\r\n this.setState({ nonAvailablePersons });\r\n };\r\n\r\n closeVideoCall = (target) => {\r\n this.setState({\r\n videoCallActive: false,\r\n videoCallResponse: videoCallConstants.SELF_HANGUP,\r\n ringingSoundOn: false,\r\n });\r\n setTimeout(() => this.setState({ videoCallTarget: null }), 2000);\r\n\r\n const { exhibitorId, callId } = this.state;\r\n let clientKey = this.getClientKey(exhibitorId);\r\n this.hubConnection.invoke(\"videoCallClosed\", target, clientKey, parseInt(exhibitorId), callId).catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n onVideoResponse = ({ target, response, callId }) => {\r\n if (response && response != \"SELF_HANGUP\") {\r\n window.addEventListener(\"onclose\", () => {\r\n if (this.state.videoCallActive) {\r\n this.closeVideoCall(this.state.videoCallTarget);\r\n }\r\n if (this.state.isCalling) {\r\n this.videoRequestResponse(false, this.state.isCalling, this.state.callId);\r\n }\r\n });\r\n window.addEventListener(\"unload\", () => {\r\n if (this.state.videoCallActive) {\r\n this.closeVideoCall(this.state.videoCallTarget);\r\n }\r\n if (this.state.isCalling) {\r\n this.videoRequestResponse(false, this.state.isCalling, this.state.callId);\r\n }\r\n });\r\n this.setState({\r\n videoCallActive: true,\r\n videoCallTarget: target,\r\n callId,\r\n ringingSoundOn: false,\r\n incommingCallSoundOn: false,\r\n });\r\n } else {\r\n let clientKey = this.getClientKey(this.state.exhibitorId);\r\n let res = videoCallConstants.CALL_DENIED;\r\n if (response == \"SELF_HANGUP\") {\r\n res = videoCallConstants.SELF_HANGUP;\r\n }\r\n if (this.state.isCalling != target) {\r\n this.setState({ videoCallResponse: res, ringingSoundOn: false });\r\n setTimeout(() => this.setState({ videoCallTarget: null }), 2000);\r\n } else {\r\n this.setState({\r\n videoCallResponse: null,\r\n videoCallTarget: null,\r\n isCalling: false,\r\n ringingSoundOn: false,\r\n incommingCallSoundOn: false,\r\n });\r\n }\r\n }\r\n };\r\n videoRequest = (target) => {\r\n const { exhibitorId } = this.state;\r\n this.setState({\r\n videoCallTarget: target,\r\n videoCallResponse: null,\r\n ringingSoundOn: true,\r\n });\r\n let clientKey = this.getClientKey(exhibitorId);\r\n this.hubConnection.invoke(\"videoRequest\", target, clientKey, parseInt(exhibitorId)).catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n tryReconnect = () => {\r\n if (!this.state.connected && !this.state.connecting) {\r\n this.setState({ connecting: true }, this.connectToHub(this.state.exhibitorId));\r\n }\r\n };\r\n onNewConnection = (conn) => {\r\n const { connectionList } = this.state;\r\n let newList = Array.from(connectionList);\r\n newList.push(conn);\r\n this.setState({ connectionList: newList });\r\n };\r\n onNewDisconnection = (connectionId) => {\r\n const { connectionList } = this.state;\r\n let newList = Array.from(connectionList);\r\n let dConn = newList.find((el) => el.connectionId == connectionId);\r\n if (dConn) {\r\n newList.splice(newList.indexOf(dConn), 1);\r\n this.setState({ connectionList: newList });\r\n }\r\n };\r\n onGetActiveConnections = (list) => {\r\n this.setState({ connectionList: list });\r\n };\r\n onMessageSeen = (target) => {\r\n const chat = this.state.chat;\r\n chat.map((c) => {\r\n if (c.target == target) {\r\n c.messages.map((m) => {\r\n c.seen = true;\r\n m.seen = true;\r\n });\r\n }\r\n });\r\n this.setState({ chat });\r\n };\r\n setMessageSeen = (c) => {\r\n let clientKey = this.getClientKey(this.state.exhibitorId);\r\n const notReadMessage = c.messages.find((c) => c.seen == false && c.receiver == clientKey);\r\n if (notReadMessage) {\r\n this.hubConnection.invoke(\"setMessageSeen\", notReadMessage.receiver, notReadMessage.sender, this.state.exhibitorId).catch((err) => { });\r\n }\r\n };\r\n onForceDisconnect = (res) => {\r\n if (res === \"NOT_AUTHORIZED\") {\r\n this.setState({ notAuthorized: true, connected: false });\r\n this.hubConnection.stop();\r\n } else {\r\n this.hubConnection.stop();\r\n this.setState({ forceDisc: true, connected: false });\r\n }\r\n };\r\n\r\n getChat = () => {\r\n this.hubConnection.invoke(\"getChatMessages\", this.state.eventId, this.getClientKey(this.state.exhibitorId), `Expo:${this.state.exhibitorId}`, false);\r\n };\r\n onReceiveMessage = (res) => {\r\n const chat = Array.from(this.state.chat);\r\n const resChat = chat.find((c) => c.target == res.sender);\r\n if (resChat) {\r\n let index = chat.indexOf(resChat);\r\n if (index > -1) {\r\n chat[index].messages.push(res);\r\n chat[index].previewText = res.message;\r\n chat[index].previewPreFix = res.senderFirstName + \" \" + res.senderLastName;\r\n chat[index].lastChange = res.inserted;\r\n }\r\n } else {\r\n chat.push({\r\n lastChange: res.inserted,\r\n messages: [res],\r\n previewText: res.message,\r\n previewPreFix: res.senderFirstName + \" \" + res.senderLastName,\r\n target: res.sender,\r\n seen: false,\r\n });\r\n }\r\n const { selectedChat } = this.state;\r\n if (!selectedChat || (selectedChat && selectedChat != res.sender)) {\r\n this.setState({\r\n snackbar: {\r\n lastChange: res.inserted,\r\n previewText: res.message,\r\n previewPreFix: \"\",\r\n target: res.sender,\r\n },\r\n messageSoundOn: true,\r\n });\r\n setTimeout(() => this.setState({ messageSoundOn: false }), 2000);\r\n }\r\n this.setState({ chat, scroll: true });\r\n setTimeout(() => this.setState({ scroll: false }), 1000);\r\n\r\n /* setTimeout(() => this.setState({ update: false }), 1000) */\r\n };\r\n onSendChatMessage = (res) => {\r\n const chat = Array.from(this.state.chat);\r\n const resChat = chat.find((c) => c.target == res.receiver);\r\n if (resChat) {\r\n let index = chat.indexOf(resChat);\r\n if (index > -1) chat[index].messages.push(res);\r\n /* \r\n resChat.previewText = res.message;\r\n resChat.previewPrefix = res.sender == 'MODERATOR' ? 'You' : res.senderFirstName + ' ' + res.senderLastName;\r\n resChat.lastChange = res.inserted; */\r\n } else {\r\n chat.push({\r\n lastChange: res.inserted,\r\n messages: [res],\r\n previewText: res.message,\r\n previewPreFix: \"\",\r\n target: res.receiver,\r\n seen: false,\r\n });\r\n }\r\n\r\n this.setState({ chat, scroll: true });\r\n setTimeout(() => this.setState({ scroll: false }), 1000);\r\n };\r\n filterHostConnections = () => {\r\n const { exhibitorHosts, connectionList } = this.state;\r\n const filteredList = connectionList.filter((c) => {\r\n return exhibitorHosts.find((eh) => eh.badgeNo == c.clientKey);\r\n });\r\n this.setState({ connectionList: filteredList });\r\n };\r\n sendMessage = (t, message) => {\r\n const { exhibitorId, eventId } = this.state;\r\n let clientKey = this.getClientKey(exhibitorId);\r\n this.hubConnection.invoke(\"sendChatMessage\", eventId, clientKey, t.badgeNo, message, `Expo:${exhibitorId}`, '', false, false);\r\n };\r\n selectedChat = (target) => {\r\n const { snackbar } = this.state;\r\n if (!target) {\r\n this.setState({ selectedChat: null });\r\n return;\r\n }\r\n if (snackbar && snackbar.target == target.badgeNo) {\r\n this.setState({ snackbar: null, selectedChat: target.badgeNo });\r\n } else {\r\n this.setState({ selectedChat: target.badgeNo });\r\n }\r\n };\r\n render() {\r\n const { exhibitorHosts, connected, enableChat, chat, connecting, connectionList, notAuthorized, videoCallTarget, exhibitorId, companyName, clientName, eventId, eventCode, videoCallActive } =\r\n this.state;\r\n const { template } = this.props;\r\n const { fonts } = this.props.cms;\r\n if (notAuthorized === true) return ;\r\n let clientKey = this.getClientKey(this.state.exhibitorId);\r\n const connectionsProps = { hubConnection: this.hubConnection, ...this.state };\r\n\r\n if (this.state.forceDisc && !connected) return ;\r\n if (!this.state.init) return ;\r\n return (\r\n
\r\n {template && template.template ? : null}\r\n \r\n {fonts !== undefined && (\r\n \r\n )}\r\n {this.state.isCalling && connected ? (\r\n eh.badgeNo == this.state.isCalling)}\r\n deny={() => this.videoRequestResponse(false, this.state.isCalling, this.state.callId)}\r\n accept={() => this.videoRequestResponse(true, this.state.isCalling, this.state.callId)}\r\n />\r\n ) : null}\r\n {videoCallTarget && connected ? (\r\n eh.badgeNo == videoCallTarget).name}\r\n displayName={clientName}\r\n exhibitorHosts={exhibitorHosts}\r\n chat={chat}\r\n clientKey={clientKey}\r\n template={template}\r\n callId={this.state.callId}\r\n like={this.like}\r\n eventCode={eventCode}\r\n eventId={eventId}\r\n lang={this.state.lang}\r\n clientName={this.state.clientName}\r\n nonAvailablePersons={this.state.nonAvailablePersons}\r\n videoRequest={this.videoRequest}\r\n closeVideoCall={this.closeVideoCall}\r\n videoCallActive={this.state.videoCallActive}\r\n scroll={this.state.scroll}\r\n videoCallResponse={this.state.videoCallResponse}\r\n videoCallTarget={this.state.videoCallTarget}\r\n settings={this.state.exhibitorSettings}\r\n connectionList={connectionList}\r\n sendMessage={this.sendMessage}\r\n meetingCode={this.state.meetingCode}\r\n videoResponse={this.videoRequestResponse}\r\n setMessageSeen={this.setMessageSeen}\r\n />\r\n ) : null}\r\n this.selectedChat(target)}\r\n setMessageSeen={this.setMessageSeen}\r\n />\r\n {this.state.incommingCallSoundOn ? : null}\r\n {this.state.ringingSoundOn ? : null}\r\n {/* {this.state.messageSoundOn ? */} {/* : null} */}\r\n {this.state.snackbar ? (\r\n \r\n this.selectedChat({\r\n ...this.state.snackbar,\r\n badgeNo: this.state.snackbar.target,\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.exhibitorHosts.find((e) => e.badgeNo == this.state.snackbar.target) ? this.state.exhibitorHosts.find((e) => e.badgeNo == this.state.snackbar.target).name : null}\r\n \r\n }\r\n secondary={\r\n
\r\n {this.state.snackbar.previewText.substring(0, 20)} • {formatTime(this.state.snackbar.lastChange)}\r\n
\r\n }\r\n />\r\n \r\n this.setState({ snackbar: null })}>\r\n \r\n \r\n \r\n
\r\n
\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template,\r\n cms: state.cms,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ExpoBoothLayout);\r\n\r\nfunction CenteredGrid({\r\n exhibitorHosts,\r\n template,\r\n setMessageSeen,\r\n clientKey,\r\n scroll,\r\n chat,\r\n anonymous,\r\n sendMessage,\r\n settings = [],\r\n clientName,\r\n connectionList,\r\n like = () => null,\r\n closeVideoCall = () => null,\r\n videoRequest = () => null,\r\n nonAvailablePersons = [],\r\n videoCallTarget = null,\r\n videoCallResponse = null,\r\n videoCallActive = false,\r\n eventCode = null,\r\n eventId = null,\r\n exhibitorName,\r\n exhibitorId,\r\n enableChat = true,\r\n videoResponse = () => null,\r\n callId = null,\r\n profile = {},\r\n setScroll = () => null,\r\n lang = null,\r\n selectedChat = null,\r\n selectChat = () => null,\r\n showBackToEventButton = false,\r\n enableVideoMeeting = false,\r\n}) {\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*
\r\n \r\n
*/}\r\n \r\n
\r\n \r\n \r\n s.name == \"File\")}\r\n />\r\n \r\n }\r\n linkView={\r\n \r\n s.name == \"Link\")}\r\n />\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction ContentView({ settings = [], template = undefined, eventId, exhibitorId, eventCode = null, clientKey = null, showBackToEventButton = false, exhibitorName }) {\r\n const classes = useStyles();\r\n\r\n const infoText = () => {\r\n let infoText = settings.find((s) => s.name == \"Infotext\");\r\n return infoText ? infoText.value2 : \"\";\r\n };\r\n const logoImage = () => {\r\n let infoText = settings.find((s) => s.name == \"LogoImage\");\r\n return infoText ? infoText.value : \"\";\r\n };\r\n const startVideo = () => {\r\n let startVideo = settings.find((s) => s.name == \"StartVideo\");\r\n return startVideo ? startVideo.value2 : \"\";\r\n };\r\n let startVid = /* embedLink( */ startVideo(); /* ) */\r\n let contentText = infoText();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {showBackToEventButton ? (\r\n {\r\n window.location.href = `./digitalarena/${eventCode}/?clientKey=${clientKey}`;\r\n }}\r\n style={\r\n template && template.content\r\n ? {\r\n ...template.content.button,\r\n marginLeft: \"1.66%\",\r\n padding: \"3px 12px\",\r\n width: \"auto\",\r\n fontSize: 16,\r\n }\r\n : {\r\n marginLeft: \"1.66%\",\r\n padding: \"3px 12px\",\r\n width: \"auto\",\r\n }\r\n }\r\n >\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n {eventCode == \"b9e695e8\" ? (\r\n \r\n Partner till Byggforum\r\n \r\n ) : null}\r\n \r\n \r\n {logoImage() ? (\r\n
\r\n \r\n
\r\n ) : (\r\n

{exhibitorName}

\r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {startVid ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n","import { globalConstants } from \"../../constants/system/global.constans\";\r\nimport { userConstants } from \"../../constants/user.constants\";\r\n\r\n\r\nexport const globalActions = {\r\n setSaveStatus,\r\n setHeaderHeight,\r\n setBreadcrumbHeight,\r\n setLoading,\r\n showMenu,\r\n updateUserToken,\r\n};\r\n\r\nfunction setSaveStatus(isSaved, area){\r\n return { type: globalConstants.SET_SAVE_STATUS, isSaved, area };\r\n }\r\n\r\n function setHeaderHeight(headerHeight){\r\n return {type:globalConstants.SET_HEADER_HEIGHT, headerHeight}\r\n }\r\n function setBreadcrumbHeight(breadcrumbHeight){\r\n return {type:globalConstants.SET_BREADCRUMB_HEIGHT, breadcrumbHeight}\r\n }\r\n function setLoading(isLoading, area){\r\n return { type: globalConstants.SET_IS_LOADING, isLoading, area };\r\n }\r\n function showMenu(show){\r\n return {type:globalConstants.SHOW_MENU, show}\r\n }\r\n function updateUserToken(){\r\n \r\n let user = localStorage.getItem(\"user\");\r\n if(user){\r\n return { type: userConstants.LOGIN_SUCCESS, user:JSON.parse(user) };\r\n }\r\n }","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Spinner } from \"reactstrap\";\r\nimport { globalActions } from \"./store/actions/global.action\";\r\nimport { lssetItem } from \"./helpers/localStorageHelper\";\r\nimport { getKey } from \"./helpers/UrlHelper\";\r\nimport { SplashScreen } from \"./components/SplashScreen/SplashScreen\";\r\nimport 'url-search-params-polyfill';\r\n\r\n\r\nclass RedirectUser extends React.Component {\r\n state = {\r\n allowed: false,\r\n to: \"\",\r\n fetched: false\r\n };\r\n componentDidMount() {\r\n const { search } = this.props.location;\r\n const params = new URLSearchParams(search);\r\n const userGuid = params.get(getKey('token1', params));\r\n const userId = params.get(getKey('token2', params));\r\n const redirectUrl = params.get(getKey('redirectUrl', params));\r\n\r\n if (userGuid && redirectUrl) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ userGuid, userId, redirectUrl })\r\n };\r\n\r\n fetch(`./api/authentication/token`, requestOptions)\r\n .then(res => res.json())\r\n .then(token => {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n /* localStorage.setItem(\"user\", JSON.stringify(token)); */\r\n lssetItem(token, \"user\");\r\n this.props.dispatch(globalActions.showMenu(false));\r\n this.props.dispatch(globalActions.updateUserToken());\r\n this.setState({ to: redirectUrl, allowed: true, fetched: true });\r\n })\r\n .catch(err => {\r\n //navigate back or something\r\n });\r\n }\r\n }\r\n render() {\r\n const { allowed, fetched, to } = this.state;\r\n if (!fetched) {\r\n return ;\r\n }\r\n if (fetched && allowed) {\r\n return ;\r\n }\r\n }\r\n}\r\n\r\nexport default connect()(RedirectUser);\r\n","import React, { useState } from \"react\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\n\r\nimport { Avatar, Button, IconButton, Typography } from \"@material-ui/core\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport { Row, Col, Input } from \"reactstrap\";\r\nimport ArchiveIcon from \"@material-ui/icons/Archive\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\n/* import ConfirmModal from '../../../cms/components/ConfirmModal/ConfirmModal'; */\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport BlockIcon from \"@material-ui/icons/Block\";\r\nimport RestoreIcon from \"@material-ui/icons/Restore\";\r\nimport ForumIcon from \"@material-ui/icons/Forum\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\n\r\nconst wrapperStyle = {\r\n width: \"100%\",\r\n height: \"100vh\",\r\n display: \"inline-flex\",\r\n};\r\nconst listCol = {\r\n width: \"20%\",\r\n height: \"100%\",\r\n backgroundColor: \"#222\",\r\n zIndex: 1,\r\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0), 0 2px 4px rgba(0, 0, 0, 0), 0 4px 8px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 20px 20px rgba(0, 0, 0, 0.3) !important\",\r\n};\r\nconst messageCol = {\r\n width: \"80%\",\r\n height: \"100%\",\r\n paddingLeft: \"20px\",\r\n backgroundColor: \"#1d1d1d\",\r\n};\r\nconst questionHeaderStyle = {\r\n padding: \"20px\",\r\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0), 0 2px 4px rgba(0, 0, 0, 0), 0 4px 8px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 20px 20px rgba(0, 0, 0, 0.3) !important\",\r\n /* borderBottom: '1px solid gainsboro' */\r\n};\r\nconst listStyle = {\r\n maxHeigth: \"100%\",\r\n overflowY: \"auto\",\r\n maxHeight: \"calc(100vh - 73px)\",\r\n minHeight: \"calc(100vh - 73px)\",\r\n};\r\n\r\nexport default class ChatMessageList extends React.Component {\r\n state = {\r\n selectedChat: null,\r\n confirmDialog: false,\r\n stamp: [],\r\n messagesToShow: 30,\r\n enableScroll: false,\r\n editId: null,\r\n };\r\n\r\n toggleChat = (c) => {\r\n const { selectedChat } = this.state;\r\n if (selectedChat && c.eventId === selectedChat.eventId) {\r\n this.setState({ selectedChat: null });\r\n } else {\r\n this.setState({ selectedChat: c });\r\n }\r\n };\r\n componentDidUpdate(prevProps, prevState) {\r\n const { chatMessages } = this.props;\r\n if ((!prevState.selectedChat && this.state.selectedChat) || (prevState.selectedChat && this.state.selectedChat && prevState.selectedChat.eventId != this.state.selectedChat.eventId)) {\r\n this.handleScroll();\r\n }\r\n if (this.props.scroll && !prevProps.scroll) {\r\n this.handleScroll();\r\n this.setState({ messagesToShow: this.state.messagesToShow + 1 });\r\n }\r\n }\r\n componentDidMount() {\r\n this.handleScroll();\r\n this.scrollRef = React.createRef();\r\n }\r\n\r\n onScroll = (manual = false) => {\r\n if (this.state.enableScroll) {\r\n const { chatMessages } = this.props;\r\n const { initalScrollPos, messagesToShow } = this.state;\r\n const scrollTop = this.scrollRef.current.scrollTop;\r\n if (scrollTop < 3 && this.state.selectedChat) {\r\n const resChat = chatMessages.find((c) => c.eventId == this.state.selectedChat.eventId);\r\n if (resChat) {\r\n let index = chatMessages.indexOf(resChat);\r\n if (index > -1) {\r\n let maxMessages = chatMessages[index].messages.length;\r\n if (messagesToShow < maxMessages + 20) {\r\n this.setState({ messagesToShow: messagesToShow + 1 });\r\n this.scrollRef.current.scrollTop = 6;\r\n }\r\n }\r\n }\r\n }\r\n if (scrollTop > 15) {\r\n if (messagesToShow > 30) {\r\n this.setState({ messagesToShow: messagesToShow - 1 });\r\n this.scrollRef.current.scrollTop = 14;\r\n }\r\n }\r\n }\r\n };\r\n\r\n handleScroll = (id) => {\r\n if (this.state.selectedChat) {\r\n const { chatMessages } = this.props;\r\n const { messagesToShow } = this.state;\r\n const index = chatMessages.indexOf(this.state.selectedChat);\r\n if (index > -1 && chatMessages[index].messages.length > 0) {\r\n let pos = chatMessages[index].messages.slice(messagesToShow * -1).length - 1;\r\n if (pos > 0 && this.refs[index] !== undefined) {\r\n try {\r\n this.refs[pos].scrollIntoView({ block: \"end\", behavior: \"smooth\" });\r\n setTimeout(() => this.setState({ enableScroll: true }), 1500);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n onSaveEdit = (text) => {\r\n this.props.onEditMessage(this.state.editId, text);\r\n this.setState({ editId: null });\r\n };\r\n\r\n render() {\r\n const { responses, questions, chatMessages, lang, onRemoveMessage, block = () => null } = this.props;\r\n const { selectedChat } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {\" \"}\r\n \r\n \r\n
\r\n \r\n {chatMessages.length > 0\r\n ? chatMessages.map((q, i) => {\r\n return (\r\n \r\n this.toggleChat(q)}\r\n style={{\r\n listStyle: \"none\",\r\n display: \"flex\",\r\n cursor: \"pointer\",\r\n backgroundColor: this.state.selectedChat && this.state.selectedChat.eventId == q.eventId ? \"#2098c2\" : undefined,\r\n }}\r\n key={i}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n this.toggleChat(q)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n \r\n {selectedChat ? selectedChat.eventName : }\r\n \r\n {this.state.selectedChat && chatMessages.find((c) => c.eventId == this.state.selectedChat?.eventId)?.messages?.some((m) => m.hidden === true) && (\r\n \r\n )}\r\n
\r\n
this.onScroll(true)}>\r\n {this.state.selectedChat\r\n ? chatMessages.find((c) => c.eventId == this.state.selectedChat.eventId) &&\r\n chatMessages\r\n .find((c) => c.eventId == this.state.selectedChat.eventId)\r\n .messages.slice(this.state.messagesToShow * -1)\r\n .map((m, i) => {\r\n return (\r\n
\r\n \r\n \r\n {\" - \"}\r\n \r\n ) : (\r\n \r\n \r\n {\" - \"}\r\n \r\n )\r\n }\r\n toggleVisibility={onRemoveMessage}\r\n block={(clientKey, b) => block(clientKey, b, m.eventId)}\r\n setEdit={(editId) => this.setState({ editId })}\r\n isBlocked={chatMessages.find((c) => c.eventId == selectedChat.eventId).blockedClients.includes(m.sender)}\r\n deleted={m.message.includes(\"JX_ADMIN_REMOVED\")}\r\n activeEdit={this.state.editId == m.interactionChatId}\r\n id={m.interactionChatId}\r\n />\r\n
\r\n );\r\n })\r\n : null}\r\n
\r\n
\r\n {this.state.editId ? (\r\n this.onSaveEdit(text)}\r\n message={chatMessages.find((c) => c.eventId == this.state.selectedChat.eventId).messages.find((m) => m.interactionChatId == this.state.editId).message}\r\n onCancel={() => this.setState({ editId: null })}\r\n {...this.props}\r\n />\r\n ) : null}\r\n {this.state.confirmDialog && this.state.target ? this.setState({ confirmDialog: false })} onAction={this.saveStatus} lang={this.props.lang} type={this.state.target.type} /> : null}\r\n
\r\n );\r\n }\r\n}\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst EditTextDialog = ({ onCancel, onSave, lang, message }) => {\r\n const [modifiedText, setModifedText] = useState(message);\r\n return (\r\n null} aria-labelledby=\"alert-dialog-slide-title\" aria-describedby=\"alert-dialog-slide-description\">\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n setModifedText(e.target.value)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction ConfirmDialog(props) {\r\n const getTypLabel = (type) => {\r\n switch (type) {\r\n case 1:\r\n return \"Restore\";\r\n case 2:\r\n return \"SetAnwered\";\r\n case 3:\r\n return \"Archive\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n const { onCancel, onAction, type } = props;\r\n\r\n return (\r\n
\r\n null} aria-labelledby=\"alert-dialog-slide-title\" aria-describedby=\"alert-dialog-slide-description\">\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nfunction MessageBox({ message, timeStamp, name, no, setEdit, activeEdit, toggleVisibility, clientKey, isBlocked, deleted, id, lang, block = () => null }) {\r\n /* const [editId, setEditId] = useState(null); */\r\n const formatTime = (date) => {\r\n if (datesAreOnSameDay(new Date(date), new Date())) {\r\n let formattedDate = new Date(date);\r\n let h = formattedDate.getHours();\r\n let m = formattedDate.getMinutes();\r\n if (m < 10) m = \"0\" + m;\r\n if (h < 10) h = \"0\" + h;\r\n return h + \":\" + m;\r\n } else {\r\n let formattedDate = new Date(date);\r\n let d = formattedDate.getUTCDay().toString().substr(0, 3);\r\n let h = formattedDate.getHours();\r\n let m = formattedDate.getMinutes();\r\n if (m < 10) m = \"0\" + m;\r\n if (h < 10) h = \"0\" + h;\r\n return (\r\n \r\n {dayConverter(d)} {h + \":\" + m}\r\n \r\n );\r\n }\r\n };\r\n const dayConverter = (d, h, m) => {\r\n switch (d) {\r\n case \"1\":\r\n return ;\r\n case \"2\":\r\n return ;\r\n case \"3\":\r\n return ;\r\n case \"4\":\r\n return ;\r\n case \"5\":\r\n return ;\r\n case \"6\":\r\n return ;\r\n case \"7\":\r\n return ;\r\n default:\r\n return \"\";\r\n }\r\n };\r\n const datesAreOnSameDay = (first, second) => first.getFullYear() === second.getFullYear() && first.getMonth() === second.getMonth() && first.getDate() === second.getDate();\r\n return (\r\n
\r\n \r\n \r\n
\r\n {isBlocked ? : null}\r\n \r\n {\" \"}\r\n {\" \"}\r\n {name} {formatTime(timeStamp)}\r\n
\r\n \r\n
\r\n \r\n \r\n {deleted ? : null}\r\n
{message.includes(\"JX_ADMIN_REMOVED:\") ? message.replace(\"JX_ADMIN_REMOVED:\", \"\") : message}
\r\n \r\n \r\n
\r\n
setEdit(!activeEdit ? id : null)} className=\"stage-tools\">\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
toggleVisibility(id, !deleted)} className=\"stage-tools\">\r\n
{!deleted ? : }
\r\n
\r\n {!deleted ? : null}\r\n {deleted ? : null}\r\n
\r\n
\r\n {/* {deleted ? (\r\n
toggleVisibility(id, false)} className=\"stage-tools\">\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null} */}\r\n {!isBlocked ? (\r\n
block(clientKey, true)} className=\"stage-tools\">\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n
block(clientKey, false)} className=\"stage-tools\">\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button, Container, Row, Col, Input, Spinner, Fade } from \"reactstrap\";\r\nimport { clientTypeConstants } from \"../../constants/clientType.constants\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { cmsActions } from \"../../../store/actions/cms/cms.action\";\r\nimport { sourceTypes } from \"../../../constants/cms/sourceType\";\r\nimport Axios from \"axios\";\r\nimport \"../../stage/style/StageStyle.css\";\r\nimport { questionActions } from \"../../../store/actions/question/question.action\";\r\nimport { getKey } from \"../../../helpers/UrlHelper\";\r\nimport ChatMessageList from \"../MessageList\";\r\n\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { ConnectionStatus } from \"../../../digitalArena/components/fallbacks/ConnectionStatus\";\r\n\r\nclass ChatModeratorLayout extends Component {\r\n state = {\r\n hubConnection: null,\r\n clientKey: \"\",\r\n clientResponses: [],\r\n defaultLanguage: \"swe\",\r\n connected: false,\r\n eventId: -1,\r\n code: \"\",\r\n showDialog: false,\r\n chatMessages: [],\r\n scroll: false,\r\n forceDisc: false,\r\n };\r\n componentDidMount() {\r\n window.scrollTo(0, 0);\r\n const eventId = this.props.match.params.id;\r\n document.body.style.overflow = \"hidden\";\r\n if (isNaN(eventId)) {\r\n this.getEventId(eventId);\r\n } else {\r\n this.props.dispatch(questionActions.getAllQuestionsByEvent(eventId));\r\n this.setState({ eventId }, () => this.connectToHub());\r\n }\r\n const params = new URLSearchParams(this.props.location.search);\r\n const lang = params.get(getKey(\"lang\", params));\r\n const code = params.get(getKey(\"code\", params));\r\n if (lang) this.setState({ defaultLanguage: lang });\r\n if (code) this.setState({ code });\r\n // this.props.dispatch(templateActions.getDefaultTemplateByEvent(eventId));\r\n this.props.dispatch(cmsActions.setEnviroment(sourceTypes.INTERACTION, false));\r\n }\r\n componentDidUpdate(prevProps, prevState) {\r\n const { connecting, dismissConnectionLoss, forceDisc, connected } = this.state;\r\n\r\n if (connected == false && prevState.connected == true && connecting == false) {\r\n this.tryReconnect();\r\n this.counter = setInterval(() => this.setState({ countdown: this.state.countdown + 1 }), 1000);\r\n } else if (this.state.countdown >= 60 && !connected && prevState.connected == false) {\r\n this.setState({ countdown: 0, connecting: false });\r\n this.tryReconnect();\r\n } else if (connected == true && prevState.connected == false && !this.state.connecting && this.hubConnection && this.hubConnection.connectionState == 1) {\r\n if (this.counter) clearInterval(this.counter);\r\n\r\n this.setState({ countdown: 0 });\r\n }\r\n }\r\n tryReconnect = () => {\r\n if (!this.state.connected && !this.state.connecting) {\r\n this.connectToHub();\r\n }\r\n };\r\n onMessageEdit = (res) => {\r\n const { chatMessages } = this.state;\r\n const resChat = chatMessages.find((c) => c.messages.find((m) => m.interactionChatId == res.id));\r\n if (resChat) {\r\n let index = chatMessages.indexOf(resChat);\r\n let messageIndex = resChat.messages.indexOf(resChat.messages.find((r) => r.interactionChatId == res.id));\r\n if (index > -1 && messageIndex > -1) {\r\n chatMessages[index].messages[messageIndex].message = res.message;\r\n this.setState({ chatMessages });\r\n }\r\n }\r\n };\r\n onMessageRemoved = (res) => {\r\n const { chatMessages } = this.state;\r\n const resChat = chatMessages.find((c) => c.messages.find((m) => m.interactionChatId == res.id));\r\n if (resChat) {\r\n let index = chatMessages.indexOf(resChat);\r\n let messageIndex = resChat.messages.indexOf(resChat.messages.find((r) => r.interactionChatId == res.id));\r\n if (index > -1 && messageIndex > -1) {\r\n chatMessages[index].messages[messageIndex].message = res.message;\r\n this.setState({ chatMessages });\r\n }\r\n }\r\n };\r\n getEventId = (eventCode) => {\r\n Axios.get(`./api/event/getId/${eventCode}`)\r\n .then((res) => {\r\n this.setState({ eventId: res.data.id }, () => this.connectToHub());\r\n this.props.dispatch(questionActions.getAllQuestionsByEvent(res.data.id));\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n setClientKey = (key) => {\r\n localStorage.setItem(\"CLIENT_KEY\", key);\r\n };\r\n getClientKey = () => {\r\n return localStorage.getItem(\"CLIENT_KEY\") || null;\r\n };\r\n onGetActiveQuestions = (qList) => {\r\n if (qList.length > 0) {\r\n let questionIds = qList.map((ql) => {\r\n return ql.question.questionId;\r\n });\r\n this.setState({ activeQuestions: questionIds });\r\n }\r\n };\r\n block = (clientKey, block, eventId) => {\r\n let extra = {};\r\n\r\n extra.clientKey = clientKey;\r\n extra.Name = \"ChatBlock\";\r\n extra.eventId = eventId;\r\n extra.value = block ? \"True\" : \"False\";\r\n\r\n this.hubConnection.invoke(\"setInteractionExtra\", extra);\r\n };\r\n\r\n onInteractionExtraSet = (extra) => {\r\n if (typeof extra == \"object\") {\r\n this.interactionExtraHandler(extra);\r\n } else if (Array.isArray(extra)) {\r\n extra.map((e) => {\r\n this.interactionExtraHandler(e);\r\n });\r\n }\r\n };\r\n interactionExtraHandler = (extra) => {\r\n if (extra.name == \"ChatBlock\") {\r\n const { chatMessages } = this.state;\r\n const resChat = chatMessages.find((c) => c.eventId == extra.eventId);\r\n if (resChat) {\r\n let index = chatMessages.indexOf(resChat);\r\n if (index > -1) {\r\n if (extra.value == \"True\") {\r\n chatMessages[index].blockedClients.push(extra.clientKey);\r\n }\r\n if (extra.value == \"False\") {\r\n chatMessages[index].blockedClients = chatMessages[index].blockedClients.filter((x) => x != extra.clientKey);\r\n }\r\n this.setState({ chatMessages });\r\n }\r\n }\r\n }\r\n };\r\n onSendChatMessage = (message) => {\r\n const { chatMessages } = this.state;\r\n const resChat = chatMessages.find((c) => c.eventId == message.eventId);\r\n if (resChat) {\r\n let index = chatMessages.indexOf(resChat);\r\n if (index > -1) {\r\n chatMessages[index].messages.push(message);\r\n this.setState({ chatMessages, scroll: true });\r\n setTimeout(() => this.setState({ scroll: false }), 1500);\r\n }\r\n }\r\n };\r\n connectToHub = () => {\r\n const { eventId } = this.state;\r\n const { user } = this.props;\r\n try {\r\n if (!this.hubConnection) {\r\n this.hubConnection = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n }\r\n } catch (error) {}\r\n let clientKey = this.getClientKey();\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n this.hubConnection.on(\"onHandshake\", this.onHandshake);\r\n\r\n this.hubConnection.on(\"onClearEventData\", () => this.setState({ chats: [] }));\r\n\r\n this.hubConnection.on(\"onMessageRemoved\", this.onMessageRemoved);\r\n this.hubConnection.on(\"onMessageEdit\", this.onMessageEdit);\r\n this.hubConnection.on(\"onGetEventChats\", this.onGetEventChats);\r\n this.hubConnection.on(\"onSendChatMessage\", this.onSendChatMessage);\r\n this.hubConnection.on(\"onInteractionExtraSet\", this.onInteractionExtraSet);\r\n this.hubConnection.on(\"onExposeHiddenMessages\", this.onExposeHiddenMessages);\r\n this.hubConnection.on(\"onClearQuestionAnswers\", this.onClearQuestionAnswers);\r\n this.hubConnection.on(\"onClearResponses\", this.onClearResponses);\r\n this.hubConnection.onclose(this.onClose);\r\n this.hubConnection\r\n .invoke(\"handshake\", {\r\n eventId,\r\n clientType: clientTypeConstants.INTERACTION_CHAT_MODERATOR,\r\n clientKey,\r\n code: this.state.code,\r\n userGuid: user ? user.userGuid : null,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n })\r\n .catch((error) => {});\r\n };\r\n\r\n onExposeHiddenMessages = () => {\r\n const c = this.state.chatMessages;\r\n\r\n c.map((c) => {\r\n return c.messages.map((m) => {\r\n if (m.receiver === \"ALL\") {\r\n m.hidden = false;\r\n }\r\n });\r\n });\r\n\r\n this.setState({ chatMessages: c });\r\n };\r\n\r\n onGetEventChats = (chatMessages) => this.setState({ chatMessages });\r\n onRemoveMessage = (id, hide) => this.hubConnection.invoke(\"removeChatMessage\", id, hide);\r\n onEditMessage = (id, message) => this.hubConnection.invoke(\"editChatMessage\", id, message);\r\n onClose = () => {\r\n this.setState({ connected: false });\r\n if (!window.location.hostname.includes(\"localhost\")) {\r\n this.connectToHub();\r\n }\r\n };\r\n\r\n onForceDisconnect = (res) => {\r\n if (res === \"CODE_NOT_VALID\") {\r\n this.setState({ connected: false, forceDisc: true });\r\n this.hubConnection.stop();\r\n }\r\n };\r\n onHandshake = (response) => {\r\n if (response.success) {\r\n this.hubConnection.invoke(\"getEventChats\", this.state.eventId).catch((err) => {\r\n console.error(err);\r\n });\r\n this.setState({ connected: true, lang: response.lang });\r\n } else {\r\n this.setState({ showDialog: true });\r\n }\r\n };\r\n\r\n exposeHiddenMessages = (eventId) => {\r\n this.hubConnection.invoke(\"exposeHiddenMessages\", eventId);\r\n };\r\n\r\n render() {\r\n const { chatMessages, connected, forceDisc } = this.state;\r\n if (!connected && forceDisc) return ;\r\n const connectionsProps = { hubConnection: this.hubConnection, ...this.state };\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.authentication.user,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ChatModeratorLayout);\r\n\r\nfunction NotAuthorized(props) {\r\n return (\r\n
\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n","import React, { useRef } from \"react\";\r\nimport { Rnd } from \"react-rnd\";\r\nimport { renderModulePlaceholder } from \"../../helpers/meetingEditor.helper\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\n\r\nconst ModuleWrapper = (props) => {\r\n const { name, position, size, onChange, module, selected, eventName, onSelect, template, deleted, gridLines, extra, preview, settings } = props;\r\n const { x, y, zIndex } = position;\r\n const { lockPosAndSize, show } = settings;\r\n const fullscreenRef = useRef();\r\n const gridBound = props.gridRef || document.getElementById(\"GridView\");\r\n\r\n const onResize = (e, direction, ref, delta, position) => {\r\n let w, h;\r\n\r\n w = ((ref.offsetWidth / (gridBound.clientWidth + 2)) * 100).toString().substr(0, 8);\r\n\r\n h = ((ref.offsetHeight / (gridBound.clientHeight + 2)) * 100).toString().substr(0, 8);\r\n\r\n let yMargin = 0;\r\n let xMargin = 0;\r\n\r\n let y = (((position.y + yMargin) /* + 2 */ / gridBound.clientHeight) /* + 2 */ * 100).toString().substr(0, 8);\r\n let x = (((position.x + xMargin) /* + 2 */ / gridBound.clientWidth) /* + 2 */ * 100).toString().substr(0, 8);\r\n\r\n if (y == undefined || !y || y < 0) y = 0;\r\n\r\n onChange({\r\n ...module,\r\n posX: x + \"%\",\r\n posY: y + \"%\",\r\n width: w + \"%\",\r\n height: h + \"%\",\r\n });\r\n };\r\n const onDragStop = (e, d) => {\r\n let y = ((d.y / gridBound.clientHeight) * 100).toString().substr(0, 4);\r\n let x = ((d.x / gridBound.clientWidth) * 100).toString().substr(0, 4);\r\n\r\n if (y == undefined || !y || y < 0) y = 0;\r\n\r\n onChange({\r\n ...module,\r\n posX: x + \"%\",\r\n posY: y + \"%\",\r\n });\r\n };\r\n const reCalcSizeToPixels = (size) => {\r\n let h, w;\r\n h = (parseFloat(size.height) / 100) * gridBound.clientHeight;\r\n w = (parseFloat(size.width) / 100) * gridBound.clientWidth;\r\n return { height: h, width: w };\r\n };\r\n const reCalcPositionToPixels = () => {\r\n let posX, posY;\r\n posX = (parseFloat(x) / 100) * gridBound.clientWidth;\r\n posY = (parseFloat(y) / 100) * gridBound.clientHeight;\r\n\r\n return { x: posX, y: posY };\r\n };\r\n const yInc = gridBound.clientHeight * 0.01;\r\n const xInc = gridBound.clientWidth * 0.01;\r\n const pos = reCalcPositionToPixels();\r\n const sz = reCalcSizeToPixels(size);\r\n if (deleted) return null;\r\n\r\n return (\r\n onDragStop(e, d)}\r\n onResize={(e, direction, ref, delta, position) => {\r\n if (!selected || preview) return;\r\n onResize(e, direction, ref, delta, position);\r\n }}\r\n >\r\n {!selected ? (\r\n
\r\n ) : (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n
\r\n {deleted ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n {renderModulePlaceholder(\r\n name,\r\n template,\r\n {\r\n ...extra,\r\n width: size.width,\r\n height: size.height,\r\n bound: gridBound,\r\n eventName,\r\n layout: props.layout,\r\n fullscreenRef: fullscreenRef\r\n },\r\n settings,\r\n (settings) => props.updateModule({ ...module, settings })\r\n )}\r\n {/* */}\r\n
\r\n \r\n );\r\n};\r\nexport default ModuleWrapper;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport PhoneIcon from '@material-ui/icons/Phone';\r\nimport FavoriteIcon from '@material-ui/icons/Favorite';\r\nimport PersonPinIcon from '@material-ui/icons/PersonPin';\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport ShoppingBasket from '@material-ui/icons/ShoppingBasket';\r\nimport ThumbDown from '@material-ui/icons/ThumbDown';\r\nimport ThumbUp from '@material-ui/icons/ThumbUp';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport AddToPhotosOutlinedIcon from '@material-ui/icons/AddToPhotosOutlined';\r\nimport ViewModuleOutlinedIcon from '@material-ui/icons/ViewModuleOutlined';\r\nimport PaletteOutlinedIcon from '@material-ui/icons/PaletteOutlined';\r\nimport { Nav, NavItem, NavLink } from \"reactstrap\";\r\nimport SystemLabel from '../../../../system/SystemLabel/SystemLabel';\r\n\r\n\r\n\r\n\r\nexport const GeneralTabs = ({ toggle, activeTab, slim }) => {\r\n return (\r\n \r\n \r\n toggle('Modules')}\r\n className={\"nav-tab\" + (activeTab == 'Modules' ? ' selected-tab' : '')}\r\n style={{\r\n padding: \"7px\",\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n\r\n }}\r\n >\r\n \r\n {!slim ? \r\n \r\n : null}\r\n \r\n \r\n \r\n toggle('MyModules')}\r\n className={\"nav-tab\" + (activeTab == 'MyModules' ? ' selected-tab' : '')}\r\n style={{\r\n padding: \"7px\",\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n\r\n }}\r\n >\r\n \r\n {!slim ? \r\n \r\n : null}\r\n \r\n \r\n \r\n toggle('Template')}\r\n style={{\r\n padding: \"7px\",\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n\r\n }}\r\n\r\n >\r\n \r\n {!slim ? \r\n \r\n : null}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport PhoneIcon from '@material-ui/icons/Phone';\r\nimport FavoriteIcon from '@material-ui/icons/Favorite';\r\nimport PersonPinIcon from '@material-ui/icons/PersonPin';\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport ShoppingBasket from '@material-ui/icons/ShoppingBasket';\r\nimport ThumbDown from '@material-ui/icons/ThumbDown';\r\nimport ThumbUp from '@material-ui/icons/ThumbUp';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport AddToPhotosOutlinedIcon from '@material-ui/icons/AddToPhotosOutlined';\r\nimport ViewModuleOutlinedIcon from '@material-ui/icons/ViewModuleOutlined';\r\nimport PaletteOutlinedIcon from '@material-ui/icons/PaletteOutlined';\r\nimport SettingsOutlinedIcon from '@material-ui/icons/SettingsOutlined';\r\nimport { Nav, NavItem, NavLink } from \"reactstrap\";\r\nimport SystemLabel from '../../../../system/SystemLabel/SystemLabel';\r\n\r\nimport TuneOutlinedIcon from '@material-ui/icons/TuneOutlined';\r\n\r\n\r\nexport const ModuleTabs = ({ toggle, activeTab }) => {\r\n return (\r\n \r\n \r\n toggle('ContentSettings')}\r\n className={\"nav-tab\" + (activeTab == 'ContentSettings' ? ' selected-tab' : '')}\r\n style={{\r\n padding: \"7px\",\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n height: \"55px\",\r\n\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n toggle('StyleSettings')}\r\n className={\"nav-tab\" + (activeTab == 'StyleSettings' ? ' selected-tab' : '')}\r\n style={{\r\n padding: \"7px\",\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n height: \"55px\",\r\n\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n toggle('AdvancedSettings')}\r\n style={{\r\n padding: \"7px\",\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n height: \"55px\",\r\n\r\n }}\r\n\r\n >\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n );\r\n};\r\n","export const defaultMeetingModules = [\r\n { name: \"ZoomFrame\", limit: 1 },\r\n { name: \"JitsiFrame\", limit: 0 },\r\n { name: \"VonageVideoClientModule\", limit: 1, permission: \"Vonage\", admin: false },\r\n { name: \"Iframe\", limit: 0 },\r\n { name: \"Video\", limit: 0 },\r\n\r\n { name: \"CountdownModule\", limit: 0 },\r\n { name: \"Html\", limit: 0 },\r\n { name: \"TextModule\", limit: 0 },\r\n { name: \"BlockModule\", limit: 0 },\r\n { name: \"ButtonModule\", limit: 0 },\r\n { name: \"Image\", limit: 0 },\r\n { name: \"Connections\", limit: 0 },\r\n { name: \"UserCard\", limit: 1 },\r\n { name: \"ClientList\", limit: 1 },\r\n { name: \"PollModule\", limit: 0 },\r\n { name: \"Chat\", limit: 1 },\r\n { name: \"GroupGenerator\", limit: 1 },\r\n { name: \"SpeakerControl\", limit: 1 },\r\n { name: \"Breakouts\", limit: 1 },\r\n { name: \"Exhibitors\", limit: 0 },\r\n { name: \"Agenda\", limit: 1 },\r\n { name: \"Presenter\", limit: 1 },\r\n { name: \"ImageMap\", limit: 1 },\r\n { name: \"VideoWallModule\", limit: 1 },\r\n { name: \"SpeakerCard\", limit: 1 },\r\n { name: \"SpeakerList\", limit: 1 },\r\n { name: \"EventName\", limit: 1 },\r\n { name: \"ContentView\", limit: 1 },\r\n { name: \"PlauditButtons\", limit: 1 },\r\n { name: \"PlauditTrack\", limit: 1 },\r\n];\r\n","import React, { useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button, Form, FormGroup, Label, Input, FormText } from \"reactstrap\";\r\nimport { colorHelper } from \"../../helpers/colorHelper\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport { rgbaToHex } from \"../../helpers/colorHelper\";\r\n\r\nimport \"./ColorPickerStyles.css\";\r\n\r\n//Log\r\n// Alla färger körs in som #\r\n// filtrar bort unset och inherit\r\n// TODO - sortera färgerna\r\n\r\nconst TemplateColors = ({ usedColors, onClick, path, className }) => {\r\n const handleClick = (color) => {\r\n let newColor = color;\r\n if (!color.includes(\"#\") && !color.includes(\"rgb\") && !color.includes(\"rgba\")) {\r\n newColor = colorHelper.colourNameToHex(color);\r\n if (!newColor) return;\r\n }\r\n //TODO - Fixa bug. Läs bug.\r\n //BUG - convertedColor = null. (Type Error: cannot read properties of null(reading 'r'))\r\n // newColor funkar #hexkod\r\n // Testa att göra om ternary till if, inkl rgb2Hex ?\r\n let convertedColor = isHex(newColor) ? colorHelper.hexToRgb(newColor) : colorHelper.rgbToObject(newColor);\r\n onClick({ hex: \"\", rgb: convertedColor }, null, path);\r\n };\r\n const isHex = (color) => {\r\n if (color.toString().includes(\"#\")) return true;\r\n\r\n return false;\r\n };\r\n\r\n const filterColors = (colors) => {\r\n let colors2 = [];\r\n //loopa igenom colors. sätt index 0 i en var/firstLet. Om..\r\n colors.forEach((e) => {\r\n let firstLet = e.substring(0, 1);\r\n if (colorHelper.colourNameToHex(e) != false) {\r\n colors2.push(colorHelper.colourNameToHex(e));\r\n } else if (firstLet === \"#\") {\r\n } else if (firstLet === \"r\") {\r\n colors2.push(rgbaToHex(e));\r\n }\r\n //mapa igenom färgerna i templete colors och kolla om varje item börjar med #, om inte, lägg till # i början av string.\r\n colors2.map((color) => {\r\n if (!color.startsWith(\"#\")) {\r\n color = \"#\" + color;\r\n }\r\n });\r\n });\r\n //filtrera bort strings 'unset' och 'inherit' för att få bort dom tomma rutorna i color picker template colors.\r\n let filtered = colors2.filter((color) => !color.includes(\"unset\", \"inherit\"));\r\n return Array.from(new Set([...filtered]));\r\n };\r\n const colors = filterColors(usedColors);\r\n return (\r\n \r\n \r\n \r\n
\r\n {colors.map((c, i) => {\r\n return (\r\n
\r\n \r\n
handleClick(c)} style={{ backgroundColor: c }} className=\"color-box\">
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n usedColors: state.template.usedColors,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(TemplateColors);\r\n","import React, { useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { SketchPicker, Color } from \"react-color\";\r\nimport { Button, Row, Col } from \"reactstrap\";\r\nimport { colorHelper } from \"../../helpers/colorHelper\";\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport { cmsActions } from \"../../store/actions/cms/cms.action\";\r\nimport TemplateColors from \"./TemplateColors\";\r\nimport { makeStyles, createStyles } from \"@material-ui/core/styles\";\r\nconst useStyles = makeStyles((theme) =>\r\n createStyles({\r\n popover: {\r\n pointerEvents: \"none\",\r\n },\r\n paper: {\r\n backgroundColor: \"transparent\",\r\n },\r\n })\r\n);\r\n//\r\nconst ColorPickerFacade = (props) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n props.dispatch(cmsActions.blockDeselect(true));\r\n //load all colors from template\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n setTimeout(() => props.dispatch(cmsActions.blockDeselect(false)), 2000);\r\n };\r\n const classes = useStyles();\r\n const { color, onChange, path, dark = false } = props;\r\n const open = Boolean(anchorEl);\r\n const id = open ? `${path.replace(\".\", \"-\")}` : undefined;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onChange(color, e, path)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n usedColors: state.template.usedColors,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ColorPickerFacade);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"rc-slider/assets/index.css\";\r\nimport { Input, Row, Col, Label } from \"reactstrap\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport Slider, { createSliderWithTooltip } from \"rc-slider\";\r\nimport \"./EditorSlider.css\";\r\nconst SliderWithTooltip = createSliderWithTooltip(Slider);\r\n\r\nconst def = {\r\n label: \"Margin\",\r\n value: 22,\r\n defaultValue: 0,\r\n units: [\"px\", \"em\", \"rem\"],\r\n activeUnit: \"rem\",\r\n onChange: () => null,\r\n path: \"\",\r\n};\r\n\r\n/* function usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n} */\r\n\r\nexport const EditorSlider = (props) => {\r\n const { label, value, defaultValue, units, activeUnit, onChange, path, unitChange, steps, max, min, attachUnit = false, responsiveSettings, dark = false, extraParam = null } = props;\r\n\r\n let uList = units && units.length > 0 ? [...units, \"vw\"] : units;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n {uList\r\n .sort((a, b) => {\r\n return a > b;\r\n })\r\n .map((u, i) => {\r\n return (\r\n unitChange(u, path)}\r\n key={i}\r\n >\r\n {u}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n {\r\n onChange(null, attachUnit ? e + activeUnit : e, path, attachUnit ? activeUnit : null);\r\n }}\r\n />\r\n \r\n \r\n = min ? value : null}\r\n onChange={(e) => {\r\n onChange(null, attachUnit ? e.target.value + activeUnit : e.target.value /* + (activeUnit || lastUnit) */, path, attachUnit ? activeUnit : null);\r\n }}\r\n //defaultValue={defaultValue}\r\n />\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default EditorSlider;\r\n","import React from \"react\";\r\n\r\nimport FormatColorFillIcon from \"@material-ui/icons/FormatColorFill\";\r\nimport FontDownloadOutlinedIcon from \"@material-ui/icons/FontDownloadOutlined\";\r\nimport FilterFramesOutlinedIcon from \"@material-ui/icons/FilterFramesOutlined\";\r\nimport BorderOuterOutlinedIcon from \"@material-ui/icons/BorderOuterOutlined\";\r\nimport BusinessCenterOutlinedIcon from \"@material-ui/icons/BusinessCenterOutlined\";\r\nimport TitleOutlinedIcon from \"@material-ui/icons/TitleOutlined\";\r\nimport TextFieldsOutlinedIcon from \"@material-ui/icons/TextFieldsOutlined\";\r\nimport SendOutlinedIcon from \"@material-ui/icons/SendOutlined\";\r\nimport BorderBottomOutlinedIcon from \"@material-ui/icons/BorderBottomOutlined\";\r\nimport BorderTopOutlinedIcon from \"@material-ui/icons/BorderTopOutlined\";\r\nimport ChatBubbleOutlineOutlinedIcon from \"@material-ui/icons/ChatBubbleOutlineOutlined\";\r\nimport ListAltOutlinedIcon from \"@material-ui/icons/ListAltOutlined\";\r\nimport AccountCircleOutlinedIcon from \"@material-ui/icons/AccountCircleOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@material-ui/icons/PersonOutlineOutlined\";\r\nimport FormatListBulletedOutlinedIcon from \"@material-ui/icons/FormatListBulletedOutlined\";\r\nimport ViewDayOutlinedIcon from \"@material-ui/icons/ViewDayOutlined\";\r\nimport SearchOutlinedIcon from \"@material-ui/icons/SearchOutlined\";\r\nimport CalendarTodayOutlinedIcon from \"@material-ui/icons/CalendarTodayOutlined\";\r\nimport EventAvailableOutlinedIcon from \"@material-ui/icons/EventAvailableOutlined\";\r\nimport EventBusyOutlinedIcon from \"@material-ui/icons/EventBusyOutlined\";\r\nimport InputOutlinedIcon from \"@material-ui/icons/InputOutlined\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport HelpOutlineOutlinedIcon from \"@material-ui/icons/HelpOutlineOutlined\";\r\nimport PanoramaOutlinedIcon from \"@material-ui/icons/PanoramaOutlined\";\r\nimport { templateHelper } from \"../helpers/templateHelper\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport SubjectIcon from \"@material-ui/icons/Subject\";\r\nimport BarChartOutlinedIcon from \"@material-ui/icons/BarChartOutlined\";\r\nimport TouchAppOutlinedIcon from \"@material-ui/icons/TouchAppOutlined\";\r\nimport LinkOutlinedIcon from \"@material-ui/icons/LinkOutlined\";\r\nimport KeyboardArrowUpOutlinedIcon from \"@material-ui/icons/KeyboardArrowUpOutlined\";\r\nimport KeyboardArrowDownOutlinedIcon from \"@material-ui/icons/KeyboardArrowDownOutlined\";\r\nimport EditOutlinedIcon from \"@material-ui/icons/EditOutlined\";\r\nimport HeightOutlinedIcon from \"@material-ui/icons/HeightOutlined\";\r\nimport FormatAlignLeftIcon from \"@material-ui/icons/FormatAlignLeft\";\r\nimport FormatAlignCenterIcon from \"@material-ui/icons/FormatAlignCenter\";\r\nimport FormatAlignRightIcon from \"@material-ui/icons/FormatAlignRight\";\r\nimport CheckBoxIcon from \"@material-ui/icons/CheckBox\";\r\nimport EqualizerIcon from \"@material-ui/icons/Equalizer\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport ArrowForwardIosIcon from \"@material-ui/icons/ArrowForwardIos\";\r\nimport UnfoldMoreIcon from \"@material-ui/icons/UnfoldMore\";\r\nimport DescriptionOutlinedIcon from \"@material-ui/icons/DescriptionOutlined\";\r\nimport RemoveIcon from \"@material-ui/icons/Remove\";\r\nimport TableChartOutlinedIcon from \"@material-ui/icons/TableChartOutlined\";\r\nimport GridOnOutlinedIcon from \"@material-ui/icons/GridOnOutlined\";\r\n//#region icons\r\n\r\nconst helpIcon = ;\r\nconst colorIcon = ;\r\nconst fontIcon = ;\r\nconst frameIcon = ;\r\nconst borderIcon = ;\r\nconst logoIcon = ;\r\nconst titleIcon = ;\r\nconst subtitleIcon = ;\r\nconst sendIcon = ;\r\nconst headerIcon = ;\r\nconst footerIcon = ;\r\nconst chatIcon = ;\r\nconst messageBoxIcon = ;\r\nconst searchIcon = ;\r\nconst listIcon = ;\r\nconst listItemIcon = ;\r\nconst nameIcon = ;\r\nconst avatarIcon = ;\r\nconst breakoutButtonIcon = ;\r\nconst searchbarIcon = ;\r\nconst textIcon = ;\r\nconst chartIcon = ;\r\nconst buttonIcon = ;\r\nconst linkIcon = ;\r\nconst inputIcon = ;\r\n\r\nconst scrollIcon = ;\r\n\r\nconst activeAgendaIcon = ;\r\nconst defaultAgendaIcon = ;\r\nconst passedAgendaIcon = ;\r\nconst tableHeadIcon = ;\r\nconst tableIcon = ;\r\n//#region interactionSettingsList\r\n\r\nconst userCardSettingsList = [\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.userCard.frame\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.userCard.frame\",\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.userCard.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.userCard.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Avatar\",\r\n icon: avatarIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.userCard.avatar\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.userCard.avatar\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.userCard.avatar\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Name\",\r\n icon: nameIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.userCard.name\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.userCard.name\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.userCard.name\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.userCard.name\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Company\",\r\n icon: logoIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.userCard.company\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.userCard.company\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.userCard.company\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.userCard.company\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\nconst clientListSettingsList = [\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.frame\",\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 100,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 100,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n\r\n {\r\n group: \"Header\",\r\n icon: headerIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.header\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.header\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.clientList.header\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.clientList.header\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.header\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Avatar\",\r\n icon: avatarIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.avatar\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.avatar\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.avatar\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"SearchBar\",\r\n icon: searchbarIcon,\r\n items: [\r\n {\r\n name: \"iconColor\",\r\n label: \"IconColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.searchBar\",\r\n },\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.searchBar\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.searchBar\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.searchBar\",\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.searchBar\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.searchBar\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.searchBar\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"width\",\r\n label: \"Width\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.searchBar\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"List\",\r\n icon: listIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.list\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"ListItem\",\r\n icon: listItemIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem\",\r\n },\r\n {\r\n name: \"width\",\r\n label: \"Width\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\"],\r\n max: 100,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"margin\",\r\n label: \"Margin\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem\",\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Name\",\r\n icon: nameIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem.name\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem.name\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem.name\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.listItem.name\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Company\",\r\n icon: logoIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem.company\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem.company\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.clientList.listItem.company\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.clientList.listItem.company\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst pollTemplateSettingsList = [\r\n {\r\n group: \"Placeholder\",\r\n icon: ,\r\n items: [\r\n {\r\n name: \"iconColor\",\r\n label: \"IconColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.placeholder\",\r\n },\r\n {\r\n name: \"iconBackgroundColor\",\r\n label: \"IconBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.placeholder\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.placeholder\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.placeholder\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.placeholder\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"Background\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.frame\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.frame\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"TextInput\",\r\n icon: inputIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"Background\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.textInput\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.textInput\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.textInput\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.textInput\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.textInput\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.textInput\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.textInput\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.textInput\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"SendButton\",\r\n icon: ,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"Background\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.sendButton\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.sendButton\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.sendButton\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.sendButton\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.sendButton\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.sendButton\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.sendButton\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.sendButton\",\r\n },\r\n ],\r\n },\r\n\r\n {\r\n group: \"BoxOption\",\r\n icon: ,\r\n items: [\r\n {\r\n name: \"checkedColor\",\r\n label: \"CheckedColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.boxOption\",\r\n },\r\n {\r\n name: \"uncheckedColor\",\r\n label: \"UncheckedColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.boxOption\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"QuestionTitle\",\r\n icon: titleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.questionTitle\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.questionTitle\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.questionTitle\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.questionTitle\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"rem\", \"vh\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"textAlign\",\r\n label: \"TextAlignment\",\r\n type: \"BUTTON_GROUP_SMALL\",\r\n showIf: null,\r\n path: \"interaction.poll.questionTitle\",\r\n extra: [\r\n { name: \"left\", label: \"Left\", icon: },\r\n { name: \"center\", label: \"Center\", icon: },\r\n { name: \"right\", label: \"Right\", icon: },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n group: \"ButtonOption\",\r\n icon: buttonIcon,\r\n items: [\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.buttonOption\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.buttonOption\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"rem\", \"vh\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n separator: true,\r\n },\r\n {\r\n name: \"margin\",\r\n label: \"Margin\",\r\n type: \"SLIDER\",\r\n path: \"interaction.poll.buttonOption\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"px\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n separator: true,\r\n },\r\n {\r\n name: \"defaultBackgroundColor\",\r\n label: \"DefaultBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n },\r\n {\r\n name: \"defaultBorderColor\",\r\n label: \"DefaultBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n },\r\n {\r\n name: \"defaultTextColor\",\r\n label: \"DefaultTextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n separator: true,\r\n },\r\n {\r\n name: \"checkedBackgroundColor\",\r\n label: \"CheckedBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n },\r\n {\r\n name: \"checkedBorderColor\",\r\n label: \"CheckedBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n },\r\n {\r\n name: \"checkedTextColor\",\r\n label: \"CheckedTextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.buttonOption\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Pagination\",\r\n icon: ,\r\n items: [\r\n {\r\n name: \"stepColor\",\r\n label: \"ArrowColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.pagination\",\r\n },\r\n {\r\n name: \"textColor\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.poll.pagination\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.poll.pagination\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst breakoutSettingsList = [\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.frame\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.frame\",\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Title\",\r\n icon: titleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.title\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.title\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.title\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.title\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"RowDivider\",\r\n icon: ,\r\n items: [\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.rowDivider\",\r\n },\r\n {\r\n name: \"height\",\r\n label: \"Height\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.rowDivider\",\r\n extra: {\r\n defaultValue: 1,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 30,\r\n min: 1,\r\n min: 1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Subtitle\",\r\n icon: subtitleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.subtitle\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.subtitle\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.subtitle\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.subtitle\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Description\",\r\n icon: ,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.description\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.description\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.description\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.description\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"ReadMore\",\r\n icon: ,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.readMore\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.readMore\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.readMore\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.readMore\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n },\r\n },\r\n /* {\r\n name: \"marginTop\",\r\n label: \"MarginTop\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.readMore\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\",],\r\n max: 50,\r\n min: 0,\r\n },\r\n }, */\r\n ],\r\n },\r\n /* {\r\n group: \"List\",\r\n icon: listIcon,\r\n items: [\r\n \r\n {\r\n name: \"width\",\r\n label: \"Width\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.list\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n }, */\r\n {\r\n group: \"ListItem\",\r\n icon: listItemIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem\",\r\n },\r\n /* {\r\n name: \"marginLeft\",\r\n label: \"MarginLeft\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", 'vh', 'rem'],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"marginRight\",\r\n label: \"MarginRight\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n }, */\r\n /* {\r\n name: \"width\",\r\n label: \"Width\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 100,\r\n min: 0,\r\n },\r\n }, */\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.listItem\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"ListItemButton\",\r\n icon: breakoutButtonIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"IconColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.button\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"ListItemText\",\r\n icon: subtitleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.text\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.text\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.text\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.breakouts.listItem.text\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"vh\", \"rem\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"ListItemAvatar\",\r\n icon: avatarIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"Color\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.avatar\",\r\n },\r\n {\r\n name: \"background\",\r\n label: \"Background\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.avatar\",\r\n separator: true,\r\n },\r\n {\r\n name: \"activeColor\",\r\n label: \"ActiveColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.avatar\",\r\n },\r\n {\r\n name: \"activeBackground\",\r\n label: \"ActiveBackground\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.breakouts.listItem.avatar\",\r\n },\r\n ],\r\n },\r\n];\r\nconst agendaSettingsList = [\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.content\",\r\n },\r\n /* {\r\n name: \"background\",\r\n label: \"BackgroundImage\",\r\n type: \"MULTI_INPUT\",\r\n showIf: null,\r\n path: \"interaction.agenda.content\",\r\n }, */\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.content\",\r\n },\r\n {\r\n name: \"padding\",\r\n label: \"Padding\",\r\n type: \"SLIDER\",\r\n path: \"interaction.agenda.content\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.agenda.content\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.agenda.content\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Title\",\r\n icon: titleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.title\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n steps: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.title\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.title\",\r\n },\r\n {\r\n name: \"marginLeft\",\r\n label: \"MarginLeft\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n steps: 0.1,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Subtitle\",\r\n icon: subtitleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.subtitle\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.subtitle\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n steps: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.subtitle\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.subtitle\",\r\n },\r\n {\r\n name: \"marginLeft\",\r\n label: \"MarginLeft\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.subtitle\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n steps: 0.1,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n\r\n {\r\n group: \"AgendaRow\",\r\n icon: listItemIcon,\r\n items: [\r\n {\r\n name: \"padding\",\r\n label: \"Padding\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.agendaItem\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.agendaItem\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.agendaItem\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"DefaultRow\",\r\n icon: defaultAgendaIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.item\",\r\n },\r\n\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.item\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.title\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"TitleFontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"TitleFontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.title\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.title\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"DescriptionTitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.text\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"DescriptionFontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.text\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"DescriptionFontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.text\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"DescriptionFontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.default.text\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"ActiveRow\",\r\n icon: activeAgendaIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.item\",\r\n },\r\n\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.item\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.title\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"TitleFontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"TitleFontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.title\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.title\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"DescriptionTitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.text\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"DescriptionFontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.text\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"DescriptionFontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.text\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"DescriptionFontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.active.text\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"PassedRow\",\r\n icon: passedAgendaIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.item\",\r\n },\r\n\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.item\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.title\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"TitleFontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"TitleFontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.title\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.title\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"DescriptionTitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.text\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"DescriptionFontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.text\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"DescriptionFontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.text\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"DescriptionFontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.agenda.passed.text\",\r\n },\r\n ],\r\n },\r\n];\r\nconst chatSettingsList = [\r\n {\r\n group: \"Colors\",\r\n icon: colorIcon,\r\n items: [\r\n {\r\n name: \"primaryColor\",\r\n label: \"PrimaryColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat\",\r\n },\r\n {\r\n name: \"secondaryColor\",\r\n label: \"SecondaryColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat\",\r\n },\r\n {\r\n name: \"badgePillColor\",\r\n label: \"BadgePillColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat\",\r\n },\r\n {\r\n name: \"sendButtonColor\",\r\n label: \"SendButtonColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.container\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.chat.container\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.chat.container\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Header\",\r\n icon: headerIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"Background\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.header\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.header\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.header\",\r\n },\r\n\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.chat.header\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"rem\", \"vh\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.chat.header\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.chat.header\",\r\n },\r\n ],\r\n },\r\n\r\n {\r\n group: \"MessageFrame\",\r\n icon: messageBoxIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"Background\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.content\",\r\n },\r\n {\r\n name: \"background\",\r\n label: \"BackgroundImage\",\r\n type: \"MULTI_INPUT\",\r\n showIf: null,\r\n path: \"interaction.chat.content\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"MessageBubble\",\r\n icon: chatIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"SenderNameColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.messages\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.chat.messages\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"rem\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"titleSize\",\r\n label: \"MessageTitleSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.chat.messages\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\", \"rem\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.chat.messages\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.chat.messages\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"SenderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.messages.sender\",\r\n },\r\n {\r\n name: \"adminTextColor\",\r\n label: \"AdminBubbleTextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.messages\",\r\n },\r\n {\r\n name: \"adminBackgroundColor\",\r\n label: \"AdminBubbleBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.messages\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"ReceiverColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.messages.receiver\",\r\n },\r\n\r\n {\r\n name: \"backgroundColor\",\r\n label: \"SenderBubbleBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.messages.sender\",\r\n },\r\n {\r\n name: \"backgroundColor\",\r\n label: \"ReceiverBubbleBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.messages.receiver\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Footer\",\r\n icon: footerIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"Background\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.footer\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.footer\",\r\n },\r\n {\r\n name: \"inputColor\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.chat.footer\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.chat.footer\",\r\n },\r\n ],\r\n },\r\n];\r\nconst clientFrameSettingsList = [\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.client.frame\",\r\n },\r\n {\r\n name: \"minWidth\",\r\n label: \"minWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.client.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"maxWidth\",\r\n label: \"maxWidth\",\r\n type: \"SLIDER\",\r\n path: \"interaction.client.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.client.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Title\",\r\n icon: titleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.client.frame\",\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.client.frame\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.client.frame\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.client.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n\r\n {\r\n group: \"SendButton\",\r\n icon: sendIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.client.sendButton\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.client.sendButton\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n path: \"interaction.client.sendButton\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.client.sendButton\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.client.sendButton\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n path: \"interaction.client.sendButton\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\nconst exhibitorSettingsList = [\r\n {\r\n group: \"Frame\",\r\n icon: frameIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.frame\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"padding\",\r\n label: \"Padding\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.frame\",\r\n extra: {\r\n defaultValue: 4,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Logo\",\r\n icon: logoIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"LogoCardBackground\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.logo\",\r\n },\r\n {\r\n name: \"width\",\r\n label: \"Width\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.logo\",\r\n extra: {\r\n defaultValue: 350,\r\n units: [\"%\", \"px\"],\r\n max: 500,\r\n min: 1,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.logo\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"px\"],\r\n max: 50,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Title\",\r\n icon: titleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.title\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.title\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.title\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Subtitle\",\r\n icon: subtitleIcon,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.subtitle\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.subtitle\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.subtitle\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.exhibitor.subtitle\",\r\n },\r\n ],\r\n },\r\n];\r\nconst connectionSettingsList = [\r\n {\r\n group: \"Colors\",\r\n icon: colorIcon,\r\n items: [\r\n {\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Border\",\r\n icon: borderIcon,\r\n items: [\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n extra: {\r\n defaultValue: 1,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n extra: {\r\n defaultValue: 1,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n },\r\n ],\r\n },\r\n {\r\n group: \"Fonts\",\r\n icon: fontIcon,\r\n items: [\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"interaction.connections\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\n//#endregion\r\n\r\n//#region interactionSettings\r\nconst exhibitorTemplateSettings = {\r\n name: \"Exhibitors\",\r\n settings: exhibitorSettingsList,\r\n};\r\nconst agendaTemplateSettings = {\r\n name: \"Agenda\",\r\n settings: agendaSettingsList,\r\n};\r\nconst breakoutsTemplateSettings = {\r\n name: \"Breakouts\",\r\n settings: breakoutSettingsList,\r\n};\r\nconst userCardTemplateSettings = {\r\n name: \"UserCard\",\r\n settings: userCardSettingsList,\r\n};\r\nconst clientFrameTemplateSettings = {\r\n name: \"ClientFrame\",\r\n settings: clientFrameSettingsList,\r\n};\r\nconst chatFrameTemplateSettings = {\r\n name: \"Chat\",\r\n settings: chatSettingsList,\r\n};\r\nconst speakerSignTemplateSettings = {\r\n name: \"SpeakerSign\",\r\n settings: [],\r\n};\r\nconst clientListTemplateSettings = {\r\n name: \"ClientList\",\r\n settings: clientListSettingsList,\r\n};\r\nconst connectionsTemplateSettings = {\r\n name: \"Connections\",\r\n settings: connectionSettingsList,\r\n};\r\nconst breakoutRandomizerTemplateSettings = {\r\n name: \"ClientList\",\r\n settings: breakoutSettingsList,\r\n};\r\nconst pollTemplateSettings = {\r\n name: \"PollModule\",\r\n settings: pollTemplateSettingsList,\r\n};\r\n//#endregion\r\n\r\n//#region templatesettings\r\n\r\nconst mainTemplateSettingsList = [\r\n {\r\n group: \"Main\",\r\n icon: ,\r\n open: true,\r\n items: [\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n pathSpread: [\"main.background\", \"main.backgroundColor\"],\r\n path: \"main\",\r\n },\r\n {\r\n name: \"backgroundUrl\",\r\n label: \"BackgroundImage\",\r\n type: \"MULTI_INPUT\",\r\n showIf: null,\r\n pathSpread: [\"main.background\", \"main.backgroundUrl\"],\r\n path: \"main\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst contentTemplateSettingsList = [\r\n {\r\n group: \"Content\",\r\n icon: frameIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"content\",\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"content\",\r\n extra: {\r\n defaultValue: 1,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 50,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderCoor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"content\",\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"content\",\r\n extra: {\r\n defaultValue: 1,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst titleTemplateSettingsList = [\r\n {\r\n group: \"Title\",\r\n icon: titleIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"title\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"letterSpacing\",\r\n label: \"LetterSpacing\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"title\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"title\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"title\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst subtitleTemplateSettingsList = [\r\n {\r\n group: \"Subtitle\",\r\n icon: subtitleIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TitleColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"subtitle\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"subtitle\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"letterSpacing\",\r\n label: \"LetterSpacing\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"subtitle\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"subtitle\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"subtitle\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst textTemplateSettingsList = [\r\n {\r\n group: \"Text\",\r\n icon: textIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"text\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"text\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"letterSpacing\",\r\n label: \"LetterSpacing\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"text\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"text\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"text\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst inputTemplateSettingsList = [\r\n {\r\n group: \"Input\",\r\n icon: inputIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"input\",\r\n },\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"input\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"input\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"input\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"input\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"input\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"px\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"input\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"input\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst linkTemplateSettingsList = [\r\n {\r\n group: \"Link\",\r\n icon: linkIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"input\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"input\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"letterSpacing\",\r\n label: \"LetterSpacing\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"input\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"input\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"input\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"HoverTextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"a.&:hover\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"HoverBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"a.&:hover\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst buttonTemplateSettingsList = [\r\n {\r\n group: \"Button\",\r\n icon: buttonIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"button\",\r\n },\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"button\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"button\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n\r\n {\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"button\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n /* {\r\n name: \"padding\",\r\n label: \"HorizontalPadding\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n pathSpread: [\"button.paddingLeft\", \"button.paddingRight\"],\r\n path: \"button\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0,\r\n steps: 0.1,\r\n },\r\n },\r\n {\r\n name: \"padding\",\r\n label: \"VerticalPadding\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n pathSpread: [\"paddingTop\", \".paddingBottom\"],\r\n path: \"button\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0,\r\n steps: 0.1,\r\n },\r\n }, */\r\n {\r\n name: \"letterSpacing\",\r\n label: \"LetterSpacing\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"button\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n steps: 0.1,\r\n min: 0,\r\n },\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"button\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"button\",\r\n separator: true,\r\n },\r\n {\r\n name: \"color\",\r\n label: \"HoverTextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"button.&:hover\",\r\n },\r\n {\r\n name: \"backgroundColor\",\r\n label: \"HoverBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"button.&:hover\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst scrollTemplateSettingsList = [\r\n {\r\n group: \"Scroll\",\r\n icon: scrollIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"trackBackgroundColor\",\r\n label: \"TrackBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"scrollbar\",\r\n },\r\n {\r\n name: \"thumbBackgroundColor\",\r\n label: \"ThumbBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"scrollbar\",\r\n },\r\n {\r\n name: \"thumbColorHover\",\r\n label: \"ThumbColorHover\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"scrollbar\",\r\n },\r\n {\r\n name: \"thumbBorderRadius\",\r\n label: \"ThumbBorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"scrollbar\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"width\",\r\n label: \"Width\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"scrollbar\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 50,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst tableHeadTemplateSettingsList = [\r\n {\r\n group: \"TableHead\",\r\n icon: tableHeadIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"thead\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"thead\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"thead\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"thead\",\r\n separator: true,\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"thead\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"thead\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"thead\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"px\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"padding\",\r\n label: \"Padding\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"thead\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"px\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst tableCellTemplateSettingsList = [\r\n {\r\n group: \"TableCell\",\r\n icon: tableIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"tcell\",\r\n },\r\n {\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"tcell\",\r\n },\r\n {\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"tcell\",\r\n },\r\n {\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n path: \"tcell\",\r\n separator: true,\r\n },\r\n {\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n path: \"tcell\",\r\n },\r\n {\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"tcell\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"rem\", \"px\", \"vh\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"tcell\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"px\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"padding\",\r\n label: \"Padding\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"tcell\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"px\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst chartTemplateSettingsList = [\r\n {\r\n group: \"Chart\",\r\n icon: chartIcon,\r\n open: false,\r\n items: [\r\n {\r\n name: \"maxWidth\",\r\n label: \"PresenterMaxWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n path: \"content\",\r\n extra: {\r\n defaultValue: 15,\r\n units: [\"%\", \"px\"],\r\n max: 100,\r\n min: 0.1,\r\n min: 0.1,\r\n },\r\n },\r\n {\r\n name: \"color1\",\r\n label: \"Color1\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"chart.colors\",\r\n },\r\n {\r\n name: \"color2\",\r\n label: \"Color2\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"chart.colors\",\r\n },\r\n {\r\n name: \"color3\",\r\n label: \"Color3\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"chart.colors\",\r\n },\r\n {\r\n name: \"color4\",\r\n label: \"Color4\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"chart.colors\",\r\n },\r\n {\r\n name: \"color5\",\r\n label: \"Color5\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"chart.colors\",\r\n },\r\n {\r\n name: \"textflowColor\",\r\n label: \"TextFlowColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"chart\",\r\n },\r\n {\r\n name: \"textflowBgColor\",\r\n label: \"TextFlowBgColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n path: \"chart\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\n//#endregion\r\n\r\nconst mainTemplateSettings = {\r\n name: \"Main\",\r\n settings: mainTemplateSettingsList,\r\n};\r\n\r\nconst contentTemplateSettings = {\r\n name: \"Content\",\r\n settings: contentTemplateSettingsList,\r\n};\r\n\r\nconst titleTemplateSettings = {\r\n name: \"Title\",\r\n settings: titleTemplateSettingsList,\r\n};\r\nconst subtitleTemplateSettings = {\r\n name: \"Subtitle\",\r\n settings: subtitleTemplateSettingsList,\r\n};\r\nconst textTemplateSettings = {\r\n name: \"Text\",\r\n settings: textTemplateSettingsList,\r\n};\r\nconst inputTemplateSettings = {\r\n name: \"Input\",\r\n settings: inputTemplateSettingsList,\r\n};\r\nconst linkTemplateSettings = {\r\n name: \"Link\",\r\n settings: linkTemplateSettingsList,\r\n};\r\n\r\nconst tableHeadTemplateSettings = {\r\n name: \"TableHead\",\r\n settings: tableHeadTemplateSettingsList,\r\n};\r\n\r\nconst tableCellTemplateSettings = {\r\n name: \"TableCell\",\r\n settings: tableCellTemplateSettingsList,\r\n};\r\n\r\nconst buttonTemplateSettings = {\r\n name: \"Button\",\r\n settings: buttonTemplateSettingsList,\r\n};\r\nconst scrollTemplateSettings = {\r\n name: \"Scroll\",\r\n settings: scrollTemplateSettingsList,\r\n};\r\nconst chartTemplateSettings = {\r\n name: \"Chart\",\r\n settings: chartTemplateSettingsList,\r\n};\r\n\r\nexport const interactionTemplateSettings = [\r\n { ...connectionsTemplateSettings },\r\n { ...exhibitorTemplateSettings },\r\n { ...clientFrameSettingsList },\r\n { ...chatFrameTemplateSettings },\r\n { ...agendaTemplateSettings },\r\n { ...breakoutsTemplateSettings },\r\n { ...clientListTemplateSettings },\r\n { ...linkTemplateSettings },\r\n { ...userCardTemplateSettings },\r\n { ...pollTemplateSettings },\r\n { ...tableHeadTemplateSettings },\r\n { ...tableCellTemplateSettings },\r\n { ...chartTemplateSettings },\r\n];\r\n\r\nexport const templateSettings = [\r\n { ...mainTemplateSettings },\r\n { ...contentTemplateSettings },\r\n { ...titleTemplateSettings },\r\n { ...subtitleTemplateSettings },\r\n { ...textTemplateSettings },\r\n { ...inputTemplateSettings },\r\n { ...linkTemplateSettings },\r\n { ...buttonTemplateSettings },\r\n { ...scrollTemplateSettings },\r\n { ...tableHeadTemplateSettings },\r\n { ...tableCellTemplateSettings },\r\n { ...chartTemplateSettings },\r\n];\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { faBullseye } from \"@fortawesome/free-solid-svg-icons\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n fontWeight: theme.typography.fontWeightRegular,\r\n },\r\n}));\r\n\r\nexport default function CollapsePanel({ name, icon, children, dark = false, open = false }) {\r\n const classes = useStyles();\r\n const [expanded, setExpanded] = React.useState(open);\r\n return (\r\n
\r\n setExpanded(!expanded)}>\r\n }\r\n aria-controls=\"panel1a-content\"\r\n className=\"dark-l3\"\r\n style={{ maxHeight: 55, minHeight: 55 }}\r\n id=\"panel1a-header\"\r\n >\r\n {icon}\r\n
\r\n {\" \"} \r\n
\r\n \r\n \r\n {children}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Select from \"react-select\";\r\nimport { InputGroupAddon, InputGroup, InputGroupText, Row, Col, Label } from \"reactstrap\";\r\n\r\nimport { connect } from \"react-redux\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport { authHeader } from \"../../../../helpers/authHeader\";\r\nimport { cmsActions } from \"../../../../store/actions/cms/cms.action\";\r\nimport { arrayHelper } from \"../../../../helpers/arrayHelper\";\r\nimport FileStorageWrapper from \"../../../../components/FileStorage/FileStorageWrapper\";\r\nimport PermMediaIcon from \"@material-ui/icons/PermMedia\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { archiveConstants } from \"../../../../components/FileStorage/contstants/archive.contstants\";\r\n\r\nconst API_KEY = \"AIzaSyB6aQW4uFg8OuFMHaxBmqDPCvzBGe5vuTg\";\r\nconst customStyles = {\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"#50525d\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"calc(100% - 48px)%\",\r\n width: 233,\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\",\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n background: \"transparent\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#373842\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#3d3d3d\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n};\r\nconst rowStyle = {\r\n display: \"inline-flex\",\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n margin: \"0px\",\r\n};\r\nconst colourStyles = {\r\n option: (styles, { data, isDisabled, isFocused, isSelected }) => {\r\n return {\r\n fontFamily: data.value,\r\n };\r\n },\r\n};\r\n\r\nclass FontPicker extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.fontPickerRef = React.createRef();\r\n this.toggle = this.toggle.bind(this);\r\n this.state = {\r\n categoryOptions: [\"All\", \"sans-serif\", \"serif\", \"display\", \"handwriting\", \"monospace\"],\r\n selectedCategory: \"All\",\r\n clientFonts: [],\r\n fonts: [],\r\n sortOptions: [\"alpha\", \"date\", \"popularity\", \"style\", \"trending\"],\r\n sortBy: \"alpha\",\r\n fontPicker: null,\r\n dropdownOpen: false,\r\n previewFont: \"\",\r\n categoriesOpen: false,\r\n sortByOpen: false,\r\n archiveOpen: false,\r\n };\r\n }\r\n setStyle = (styles, { data, isDisabled, isFocused, isSelected }) => {\r\n return {\r\n option: {\r\n fontFamily: data.value,\r\n fontWeight: \"400\",\r\n fontSize: \"0.875rem\",\r\n paddingLeft: \"1.5px\",\r\n },\r\n };\r\n };\r\n toggle() {\r\n this.setState({\r\n dropdownOpen: !this.state.dropdownOpen,\r\n });\r\n }\r\n componentDidMount() {\r\n this.dowloadClientFonts();\r\n this.dowloadGoogleFonts();\r\n }\r\n componentDidUpdate(prevProps) {\r\n if (this.props.cms.fonts !== undefined && prevProps.cms.fonts !== this.props.cms.fonts) {\r\n this.props.cms.fonts.map((cf) => {\r\n if (\r\n !this.state.fonts.find((t) => {\r\n return t === cf.name;\r\n })\r\n ) {\r\n this.setState({ fonts: [cf.name, ...this.state.fonts] });\r\n }\r\n });\r\n }\r\n }\r\n dowloadClientFonts = (update = false) => {\r\n const fonts = [];\r\n const clientFonts = [];\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n fetch(`./api/files/?format=font&eventId=${this.props.eventId}`, requestOptions)\r\n .then((res) => res.json())\r\n .then((data) => {\r\n if (data && data.files) {\r\n data.files.map((f) => {\r\n fonts.push(this.convertFont(f.name));\r\n clientFonts.push({ name: this.convertFont(f.name), url: f.url });\r\n });\r\n }\r\n this.props.dispatch(cmsActions.loadClientFonts(clientFonts));\r\n this.setState({\r\n fonts: arrayHelper.concat(this.state.fonts, fonts),\r\n clientFonts: clientFonts,\r\n });\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n convertFont = (f) => {\r\n return f\r\n .substring(f.lastIndexOf(\"/\") + 1, f.lastIndexOf(\".\") + 1)\r\n .toString()\r\n .replace(\")\", \"\")\r\n .replace(\"(\", \"\")\r\n .replace(\".\", \"\")\r\n .replace(\"1\", \"\")\r\n .replace(\"\", \"\");\r\n };\r\n dowloadGoogleFonts = () => {\r\n const fonts = [...this.state.fonts];\r\n fetch(`https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity&key=${API_KEY}`)\r\n .then((res) => res.json())\r\n .then((data) => {\r\n data.items.splice(0, 200).map((f) => {\r\n fonts.push(f.family);\r\n });\r\n let cFonts = [\"Arial\", \"Helvetica\", \"Times New Roman\", \"Times\", \"Courier New\", \"Courier\", \"Verdana\", \"Georgia\", \"Comic Sans MS\", \"Trebuchet MS\", \"Arial Black\", \"Impact\"];\r\n let f = [...cFonts, ...fonts];\r\n const n = arrayHelper.concat(this.state.fonts, fonts).sort(function (a, b) {\r\n if (a.family < b.family) {\r\n return -1;\r\n }\r\n if (a.family > b.family) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.setState({ fonts: f });\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n toggleExtensions = (type) => {\r\n this.setState({ [type]: !this.state[type] });\r\n };\r\n sortBy = (sortBy) => {\r\n this.setState({ sortBy }, () => {\r\n this.dowloadGoogleFonts();\r\n });\r\n };\r\n selectFont = (font) => {\r\n this.props.onChange(null, font, this.props.path);\r\n this.setState({ archiveOpen: false });\r\n };\r\n\r\n categoryOnChange = (category) => {\r\n this.setState({ selectedCategories: category });\r\n };\r\n filter = () => {\r\n const { selectedCategory, fonts } = this.state;\r\n\r\n if (selectedCategory === \"All\") {\r\n return fonts;\r\n }\r\n return fonts\r\n .filter((f) => {\r\n return f.category === selectedCategory && f;\r\n })\r\n .sort();\r\n };\r\n getFont = () => {\r\n const { currentFontFamily } = this.props;\r\n const { fonts } = this.state;\r\n\r\n let font = fonts.find((f) => {\r\n return f === currentFontFamily;\r\n });\r\n\r\n if (font !== undefined && font) {\r\n return { value: font, label: font };\r\n }\r\n return { value: \"\", label: \"Font missing\" };\r\n };\r\n toggleArchive = () => {\r\n this.setState({ archiveOpen: !this.state.archiveOpen });\r\n };\r\n onClientFontUpload = (font, url) => {\r\n this.props.dispatch(cmsActions.loadClientFonts([...this.state.clientFonts, { name: font, url: url }]));\r\n };\r\n\r\n adjustFontList = () => {\r\n const adjustedList = [...new Set(Array.from(this.state.fonts))]; /* .sort(\r\n (a, b) => a > b\r\n ); */\r\n return adjustedList;\r\n };\r\n\r\n render() {\r\n const { fontWeight } = this.props;\r\n /* const { fonts } = this.state; */\r\n const fonts = this.adjustFontList();\r\n const selectStyles = {\r\n option: (styles, { data }) => {\r\n return {\r\n ...styles,\r\n fontSize: \"12px\",\r\n fontFamily: data.value,\r\n padding: \"0 10px\",\r\n fontWeight,\r\n };\r\n },\r\n container: (styles) => ({\r\n ...styles,\r\n minWidth: \"100%\",\r\n }),\r\n singleValue: (styles, { data }) => {\r\n return {\r\n ...styles,\r\n fontSize: \"12px\",\r\n fontFamily: data.value,\r\n fontWeight,\r\n };\r\n },\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n return { value: t, label: t };\r\n })\r\n }\r\n value={this.getFont()}\r\n onChange={(selectedOption) => this.selectFont(selectedOption.value)}\r\n styles={customStyles}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {this.state.archiveOpen ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n cms: state.cms,\r\n eventId: state.cms.eventId,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(FontPicker);\r\n","import React from \"react\";\r\nimport Select from \"react-select\";\r\nimport {\r\n Row,\r\n Col,\r\n Label\r\n} from \"reactstrap\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\n\r\n\r\nconst fontWeights = [\r\n { value: \"lighter\", label: },\r\n { value: \"normal\", label: },\r\n { value: \"bold\", label: },\r\n { value: \"bolder\", label: }\r\n];\r\n\r\nexport const FontWeightPicker = ({ weight, onChange, currentFont, path }) => {\r\n const customStyles = {\r\n control: (provided, state) => ({\r\n ...provided,\r\n \r\n backgroundColor: \"#50525d\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"calc(100% - 48px)%\",\r\n width: 272,\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\",\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n background: \"transparent\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#373842\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#3d3d3d\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onChange(null, selectedOption.value, path)\r\n }\r\n styles={customStyles}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n","import { ButtonGroup, FormGroup, Input, Tooltip } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Col, Label, Row } from \"reactstrap\";\r\nimport ColorPickerFacade from \"../../../../components/ColorPickerFacade/ColorPickerFacade\";\r\nimport JirangoSwitch from \"../../../../components/JirangoSwitch/JirangoSwitch\";\r\nimport {\r\n deepClone,\r\n getValueFromNestedObject,\r\n setValueToNestedObject,\r\n} from \"../../../../helpers/objectHelper\";\r\nimport { templateActions } from \"../../../../store/actions/cms/template/template.action\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport EditorSlider from \"../../../../components/EditorSlider/EditorSlider\";\r\nimport UrlMultiInput from \"../../../../components/UrlMultiInput/UrlMultiInput\";\r\nimport { templateHelper } from \"../helpers/templateHelper\";\r\nimport {\r\n interactionTemplateSettings,\r\n templateSettings,\r\n} from \"../models/interactionTemplateSettings\";\r\nimport CollapsePanel from \"./CollapsePanel\";\r\nimport FontPicker from \"./FontPicker\";\r\nimport { FontWeightPicker } from \"./FontWeightPicker\";\r\nconst SettingsList = (props) => {\r\n \r\n const handleUpdate = (template) => {\r\n const { dispatch } = props;\r\n dispatch(templateActions.softUpdate(template));\r\n };\r\n\r\n const handleChange = (v, path, attachedUnit) => {\r\n const { template } = props;\r\n if (Array.isArray(path)) {\r\n let templateCopy = deepClone(template);\r\n path.map((p) => {\r\n const names = p.split(\".\");\r\n\r\n let value = v;\r\n\r\n if (\r\n isNaN(value) &&\r\n (value.includes(\"http\") || value.includes(\"base\")) &&\r\n p.includes(\"background\") &&\r\n !p.includes(\"backgroundUrl\")\r\n )\r\n value = `url(${value}) 50% 50% / cover no-repeat fixed`;\r\n\r\n let unit = templateHelper.getUnit(templateCopy, names);\r\n if (!isNaN(value) && unit.length < 4) {\r\n value += attachedUnit || unit;\r\n }\r\n templateCopy.content = setValueToNestedObject(\r\n names,\r\n value,\r\n templateCopy.content\r\n );\r\n });\r\n handleUpdate(templateCopy);\r\n } else {\r\n const names = path.split(\".\");\r\n let templateCopy = deepClone(template);\r\n let value = v;\r\n let unit = templateHelper.getUnit(templateCopy, names);\r\n if (!isNaN(value) && unit.length < 4) {\r\n value += attachedUnit || unit;\r\n }\r\n templateCopy.content = deepClone(\r\n setValueToNestedObject(names, value, templateCopy.content)\r\n );\r\n handleUpdate(templateCopy);\r\n }\r\n };\r\n\r\n const handleUnitChange = (u, path) => {\r\n const { template } = props;\r\n\r\n const names = path.split(\".\");\r\n let unit = u;\r\n let templateCopy = deepClone(template);\r\n const value = templateHelper.getValueWithoutUnit(templateCopy, names);\r\n if (unit === \"auto\") unit = \"auto\";\r\n templateCopy.content = setValueToNestedObject(\r\n names,\r\n value + unit,\r\n templateCopy.content\r\n );\r\n handleUpdate(templateCopy);\r\n };\r\n\r\n const getSettings = (type) => {\r\n return !type\r\n ? templateSettings\r\n : interactionTemplateSettings.filter((it) => it.name == type);\r\n };\r\n\r\n const { template, type, directed = false, templateIsSavable } = props;\r\n if (template === undefined) return null;\r\n const groups = getSettings(type);\r\n if (!groups) return null;\r\n return (\r\n \r\n {groups.map((gm) => {\r\n return gm.settings.map((g, i) => {\r\n return (\r\n \r\n \r\n {!g.alert ? (\r\n \r\n {g.items.map((s, i2) => {\r\n let v = templateHelper.getValue(\r\n template,\r\n `${s.path}.${s.name}`.split(\".\")\r\n );\r\n return (\r\n \r\n
\r\n \r\n handleUnitChange(u, `${s.path}.${s.name}`)\r\n }\r\n onChange={(value, extra = null) => {\r\n handleChange(\r\n value,\r\n s.pathSpread || `${s.path}.${s.name}`,\r\n extra\r\n );\r\n }}\r\n />\r\n
\r\n {s.separator ?
: null}\r\n
\r\n );\r\n })}\r\n
\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n );\r\n });\r\n })}\r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template,\r\n templateIsSavable: state.template.isSavable,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(SettingsList);\r\n\r\nexport const SettingsListItem = ({\r\n type,\r\n label,\r\n path,\r\n value,\r\n onChange,\r\n onUnitChange,\r\n extra = null,\r\n}) => {\r\n switch (type.toString().toUpperCase()) {\r\n case \"SLIDER\":\r\n return (\r\n onChange(parseFloat(v), ep)}\r\n units={extra.units ? extra.units : []}\r\n activeUnit={\r\n value != undefined && value != \"unset\" && value\r\n ? value.toString().replace(/[0-9/^d.-]/g, \"\")\r\n : \"\"\r\n }\r\n attachUnit={extra.units ? true : false}\r\n steps={extra.steps}\r\n max={extra.max}\r\n min={extra.min}\r\n path={\"\"}\r\n dark={true}\r\n label={label}\r\n />\r\n );\r\n case \"FONTFAMILY_SELECT\":\r\n return (\r\n onChange(font)}\r\n path=\"\"\r\n currentFontFamily={value}\r\n />\r\n /* \r\n */\r\n );\r\n case \"FONTWEIGHT_SELECT\":\r\n return (\r\n onChange(w)}\r\n path=\"\"\r\n weight={value}\r\n />\r\n /* \r\n */\r\n );\r\n case \"COLOR_PICKER\":\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n onChange(templateHelper.parseColorToRgba(color))\r\n }\r\n path=\"\"\r\n />\r\n \r\n \r\n );\r\n case \"SWITCH\":\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n onChange(!value)}\r\n isChecked={value}\r\n />\r\n \r\n \r\n );\r\n case \"BUTTON_GROUP\":\r\n return (\r\n \r\n \r\n
\r\n {extra.map((e, i) => {\r\n return (\r\n onChange(e.name)}\r\n >\r\n {e.icon}\r\n \r\n \r\n \r\n
\r\n );\r\n })}\r\n \r\n
\r\n );\r\n case \"BUTTON_GROUP_SMALL\":\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {extra.map((e, i) => {\r\n return (\r\n onChange(e.name)}\r\n >\r\n {e.icon}\r\n
\r\n );\r\n })}\r\n \r\n
\r\n \r\n );\r\n case \"DATE\":\r\n return (\r\n \r\n \r\n onChange(e.target.value)}\r\n />\r\n \r\n );\r\n case \"TEXT\":\r\n return (\r\n \r\n \r\n onChange(e.target.value)}\r\n />\r\n \r\n );\r\n case \"MULTI_INPUT\":\r\n return (\r\n \r\n {value.includes(\"http\") ? (\r\n
\r\n onChange(value)}\r\n />\r\n
\r\n ) : null}\r\n \r\n onChange(url)}\r\n setImage={(url) => onChange(url)}\r\n margin={false}\r\n noInfoText={true}\r\n dark={true}\r\n colStyle={{ padding: 0, margin: 0 }}\r\n rowStyle={{ margin: \"0px\" }}\r\n url={value && value.includes(\"http\") ? value : \"\"}\r\n />\r\n
\r\n );\r\n /* case \"MULTI_INPUT\":\r\n return (\r\n \r\n \r\n onChange(url)}\r\n setImage={(url) => onChange(url)}\r\n margin={false}\r\n noInfoText={true}\r\n dark={true}\r\n colStyle={{ padding: 0, margin: 0 }}\r\n rowStyle={{ margin: \"0px\" }}\r\n url={value}\r\n />\r\n \r\n ); */\r\n /* case \"VIDEO_INPUT\":\r\n return (\r\n \r\n \r\n \r\n this.handleChange(null, e, \"main.youtubeUrl\")}\r\n value={value}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n
\r\n ); */\r\n case \"NUMBER\":\r\n return (\r\n \r\n \r\n onChange(e.target.value)}\r\n />\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n};\r\n","import React from \"react\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport ViewStreamOutlinedIcon from \"@material-ui/icons/ViewStreamOutlined\";\r\nimport OndemandVideoOutlinedIcon from \"@material-ui/icons/OndemandVideoOutlined\";\r\nimport EventIcon from \"@material-ui/icons/Event\";\r\nimport ImageOutlinedIcon from \"@material-ui/icons/ImageOutlined\";\r\nimport EventNoteOutlinedIcon from \"@material-ui/icons/EventNoteOutlined\";\r\nimport EventSeatOutlinedIcon from \"@material-ui/icons/EventSeatOutlined\";\r\nimport ViewCarouselOutlinedIcon from \"@material-ui/icons/ViewCarouselOutlined\";\r\nimport AssignmentIndOutlinedIcon from \"@material-ui/icons/AssignmentIndOutlined\";\r\nimport ContactsOutlinedIcon from \"@material-ui/icons/ContactsOutlined\";\r\nimport HelpOutlineOutlinedIcon from \"@material-ui/icons/HelpOutlineOutlined\";\r\nimport CodeOutlinedIcon from \"@material-ui/icons/CodeOutlined\";\r\nimport RecordVoiceOverOutlinedIcon from \"@material-ui/icons/RecordVoiceOverOutlined\";\r\nimport PermIdentityOutlinedIcon from \"@material-ui/icons/PermIdentityOutlined\";\r\nimport StorefrontOutlinedIcon from \"@material-ui/icons/StorefrontOutlined\";\r\nimport ChatBubbleOutlineOutlinedIcon from \"@material-ui/icons/ChatBubbleOutlineOutlined\";\r\nimport KeyboardBackspaceOutlinedIcon from \"@material-ui/icons/KeyboardBackspaceOutlined\";\r\nimport PollOutlinedIcon from \"@material-ui/icons/PollOutlined\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport DeleteOutlineOutlinedIcon from \"@material-ui/icons/DeleteOutlineOutlined\";\r\nimport ReplayOutlinedIcon from \"@material-ui/icons/ReplayOutlined\";\r\nimport SubjectIcon from \"@material-ui/icons/Subject\";\r\nimport WidgetsIcon from \"@material-ui/icons/Widgets\";\r\nimport PieChartIcon from \"@material-ui/icons/PieChart\";\r\nimport GroupIcon from \"@material-ui/icons/Group\";\r\nimport TimerIcon from \"@material-ui/icons/Timer\";\r\nimport { Avatar, IconButton, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport MoreHorizOutlinedIcon from \"@material-ui/icons/MoreHorizOutlined\";\r\nimport ZoomIcon from \"./zoomIcon.svg\";\r\nimport SettingsOutlinedIcon from \"@material-ui/icons/SettingsOutlined\";\r\nimport LiveTvOutlinedIcon from \"@material-ui/icons/LiveTvOutlined\";\r\nimport SettingsList from \"../../../../cms/areas/template/components/SettingsList\";\r\nimport { Button, Col, Row } from \"reactstrap\";\r\nimport { PopList } from \"../../../../interaction/moderator/Layout/components/other/PopList\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport AccountBoxIcon from '@material-ui/icons/AccountBox';\r\n\r\n\r\nexport const ModulePlaceholder = (props) => {\r\n const { type, displayName = \"\", customStyle = null, description, blocked = false, module = null, created = false, onSelect = () => null, onAdd = () => null, tab } = props;\r\n return (\r\n \r\n \r\n {getModuleIcon(type)}\r\n \r\n
\r\n
{displayName ? displayName : }
\r\n
{displayName ? : \"\"}
\r\n {/* {description ?
{description}
: null} */}\r\n
\r\n\r\n {module && module.deleted ? : null}\r\n {tab == \"MyModules\" ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nconst getModuleIcon = (component) => {\r\n switch (component) {\r\n case \"Image\":\r\n return ;\r\n case \"Breakouts\":\r\n return ;\r\n case \"Agenda\":\r\n return ;\r\n case \"Carousel\":\r\n return ;\r\n case \"SpeakerControl\":\r\n return ;\r\n case \"ZoomFrame\":\r\n return ;\r\n case \"ClientFrame\":\r\n return ;\r\n case \"JitsiFrame\":\r\n return ;\r\n case \"CountdownModule\":\r\n return ;\r\n case \"Video\":\r\n return ;\r\n case \"UserCard\":\r\n return ;\r\n case \"ButtonModule\":\r\n return ;\r\n case \"TextModule\":\r\n return ;\r\n case \"BlockModule\":\r\n return ;\r\n case \"Chat\":\r\n return ;\r\n case \"Exhibitors\":\r\n return ;\r\n case \"Connections\":\r\n return ;\r\n case \"SpeakerSign\":\r\n return ;\r\n case \"GroupGenerator\":\r\n return ;\r\n case \"ClientList\":\r\n return ;\r\n case \"Html\":\r\n return ;\r\n case \"Iframe\":\r\n return ;\r\n case \"SpeakerCard\":\r\n return ;\r\n case \"Presenter\":\r\n return ;\r\n case \"VonageVideoClientModule\":\r\n return ;\r\n default:\r\n return ;\r\n }\r\n};\r\nconst getAvatarColor = (component) => {\r\n switch (component) {\r\n case \"Image\":\r\n return \"rgb(129 50 170)\";\r\n case \"CountdownModule\":\r\n return \"rgb(129 50 170)\";\r\n case \"Breakouts\":\r\n return \"rgb(191 73 55)\";\r\n case \"Agenda\":\r\n return \"rgb(170 148 45)\";\r\n case \"SpeakerControl\":\r\n return \"rgb(170 148 45)\";\r\n case \"Presenter\":\r\n return \"rgb(170 148 45)\";\r\n case \"Carousel\":\r\n return \"rgb(129 50 170)\";\r\n case \"ZoomFrame\":\r\n return \"\";\r\n case \"PollModule\":\r\n return \"rgb(191 73 55)\";\r\n case \"JitsiFrame\":\r\n return \"#205081\";\r\n case \"Video\":\r\n return \"rgb(92 141 226)\";\r\n case \"UserCard\":\r\n return \"rgb(191 73 55)\";\r\n case \"ButtonModule\":\r\n return \"rgb(129 50 170)\";\r\n case \"BlockModule\":\r\n return \"rgb(129 50 170)\";\r\n case \"TextModule\":\r\n return \"rgb(129 50 170)\";\r\n case \"Chat\":\r\n return \"rgb(41 158 103)\";\r\n case \"Exhibitors\":\r\n return \"rgb(41 158 103)\";\r\n case \"Connections\":\r\n return \"rgb(191 73 55)\";\r\n case \"SpeakerSign\":\r\n return \"rgb(41 158 103)\";\r\n case \"GroupGeneratorModule\":\r\n return \"rgb(191 73 55)\";\r\n case \"ClientList\":\r\n return \"rgb(191 73 55)\";\r\n case \"Html\":\r\n return \"rgb(129 50 170)\";\r\n case \"Iframe\":\r\n return \"rgb(92 141 226)\";\r\n case \"VonageVideoClientModule\":\r\n return \"#fff\";\r\n default:\r\n return \"#5a5c6c\";\r\n }\r\n};\r\n\r\n/* Video = rgb(92 141 226)\r\nDeltagare = rgb(191 73 55)\r\nBild = rgb(129 50 170)\r\nChatt = rgb(41 158 103)\r\nagenda = rgb(170 148 45) */\r\n\r\nconst ModuleOptions = (props) => {\r\n const { blocked, created, onSelect, onAdd, module, deleteModule } = props;\r\n let deleted = module.deleted;\r\n return (\r\n }>\r\n
\r\n {!blocked ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n ) : null}\r\n\r\n {created ? (\r\n \r\n \r\n onSelect(module)}\r\n >\r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {created ? (\r\n \r\n
\r\n \r\n \r\n
deleteModule(module)}>\r\n {deleted ? : }\r\n {deleted ? : }\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n \r\n
\r\n );\r\n};\r\n","import { List } from \"@material-ui/core\";\r\nimport React, { useMemo } from \"react\";\r\nimport { defaultMeetingModules } from \"../../../models/defaultMeetingModules\";\r\nimport { ModulePlaceholder } from \"./ModulePlaceholder\";\r\n\r\nconst isAdmin = () => {\r\n const user = localStorage.getItem(\"user\");\r\n if (user) {\r\n const parsedUser = JSON.parse(user);\r\n if (parsedUser.admin && parsedUser.admin == true) return true;\r\n\r\n return false;\r\n }\r\n return false;\r\n};\r\n\r\nexport const ModuleList = (props) => {\r\n const { modules = [], activeModules = [], view, addModule = () => null } = props;\r\n const moduleList = useMemo(() => {\r\n if (view == \"MyModules\") {\r\n return modules;\r\n }\r\n const au = isAdmin();\r\n if (au) return defaultMeetingModules;\r\n else\r\n return defaultMeetingModules.filter((d) => {\r\n return !d.admin && (typeof d.permission == \"undefined\" || props.permissions.some((y) => y == d.permission));\r\n });\r\n }, [view, props.permissions]);\r\n return (\r\n {\r\n e.dataTransfer.dropEffect = \"move\";\r\n e.preventDefault();\r\n }}\r\n onDragOver={(e) => {\r\n e.dataTransfer.dropEffect = \"move\";\r\n e.preventDefault();\r\n }}\r\n style={{ display: \"flex\", flexWrap: \"wrap\" }}\r\n >\r\n {moduleList.map((m, i) => {\r\n let blocked = false;\r\n if (activeModules.find((am) => am.meetingModuleId == m.meetingModuleId)) blocked = true;\r\n return (\r\n {\r\n e.dataTransfer.effectAllowed = \"copyMove\";\r\n }}\r\n onDragEnd={(e) => {\r\n let clientX = e.nativeEvent._ffix_cx ?? e.clientX;\r\n let clientY = e.nativeEvent._ffix_cy ?? e.clientY;\r\n let y = ((clientY - 55) / (window.innerHeight - 55)) * 100;\r\n let x = ((clientX - (320 + 296 / 2)) / (window.innerWidth - 320)) * 100;\r\n if (e.pageX == 0 && e.pageY == 0 && e.clientX == 0 && e.clientY == 0) {\r\n x = 0;\r\n y = 0;\r\n }\r\n if (x > -2 && y > -2) {\r\n addModule(m.name || m.moduleType, m.meetingModuleId || -1000, {\r\n x,\r\n y,\r\n });\r\n }\r\n }}\r\n >\r\n \r\n addModule(m.name || m.moduleType, m.meetingModuleId || -1000, {\r\n x: 0,\r\n y: 0,\r\n })\r\n }\r\n type={m.name || m.moduleType}\r\n blocked={blocked}\r\n module={m}\r\n created={m.meetingModuleId}\r\n displayName={m.displayName}\r\n {...props}\r\n />\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import { IconButton } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CodeMirror } from \"../../plugins/CodeMirror\";\r\nimport CodeIcon from \"@material-ui/icons/Code\";\r\nimport { Col, Label, Row } from \"reactstrap\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\n\r\n\r\nfunction copyStyles(sourceDoc, targetDoc) {\r\n Array.from(sourceDoc.styleSheets).forEach((styleSheet) => {\r\n if (styleSheet.cssRules) {\r\n // true for inline styles\r\n const newStyleEl = targetDoc.createElement(\"style\");\r\n\r\n Array.from(styleSheet.cssRules).forEach((cssRule) => {\r\n newStyleEl.appendChild(targetDoc.createTextNode(cssRule.cssText));\r\n });\r\n\r\n targetDoc.head.appendChild(newStyleEl);\r\n } else if (styleSheet.href) {\r\n // true for stylesheets loaded from a URL\r\n const newLinkEl = targetDoc.createElement(\"link\");\r\n\r\n newLinkEl.rel = \"stylesheet\";\r\n newLinkEl.href = styleSheet.href;\r\n targetDoc.head.appendChild(newLinkEl);\r\n }\r\n });\r\n}\r\n\r\nclass SourceEditorWindow extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.containerEl = null;\r\n this.externalWindow = null;\r\n }\r\n\r\n componentDidMount() {\r\n // Create a new window, a div, and append it to the window\r\n // The div **MUST** be created by the window it is to be\r\n // appended to or it will fail in Edge with a \"Permission Denied\"\r\n // or similar error.\r\n // See: https://github.com/rmariuzzo/react-new-window/issues/12#issuecomment-386992550\r\n this.externalWindow = window.open(\r\n \"\",\r\n \"\",\r\n \"width=600,height=400,left=200,top=200,location=no\"\r\n );\r\n this.containerEl = this.externalWindow.document.createElement(\"div\");\r\n this.externalWindow.document.body.appendChild(this.containerEl);\r\n\r\n this.externalWindow.document.title = \"A React portal window\";\r\n copyStyles(document, this.externalWindow.document);\r\n\r\n // update the state in the parent component if the user closes the\r\n // new window\r\n this.externalWindow.addEventListener(\"beforeunload\", () => {\r\n this.props.closeWindowPortal();\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n // This will fire when this.state.showWindowPortal in the parent component becomes false\r\n // So we tidy up by just closing the window\r\n this.externalWindow.close();\r\n }\r\n\r\n render() {\r\n // The first render occurs before componentDidMount (where we open\r\n // the new window), so our container may be null, in this case\r\n // render nothing.\r\n if (!this.containerEl) {\r\n return null;\r\n }\r\n\r\n // Append props.children to the container
in the new window\r\n return ReactDOM.createPortal(this.props.children, this.containerEl);\r\n }\r\n}\r\n\r\nexport default class SourceEditorBase extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n counter: 0,\r\n showWindowPortal: false,\r\n };\r\n\r\n this.toggleWindowPortal = this.toggleWindowPortal.bind(this);\r\n this.closeWindowPortal = this.closeWindowPortal.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"beforeunload\", () => {\r\n this.closeWindowPortal();\r\n });\r\n\r\n window.setInterval(() => {\r\n this.setState((state) => ({\r\n counter: state.counter + 1,\r\n }));\r\n }, 1000);\r\n }\r\n\r\n toggleWindowPortal() {\r\n this.setState((state) => ({\r\n ...state,\r\n showWindowPortal: !state.showWindowPortal,\r\n }));\r\n }\r\n\r\n closeWindowPortal() {\r\n this.setState({ showWindowPortal: false });\r\n }\r\n\r\n render() {\r\n const { onChange, value , label} = this.props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.showWindowPortal\r\n ? React.createElement(\r\n SourceEditorWindow,\r\n { closeWindowPortal: this.closeWindowPortal },\r\n \r\n )\r\n : null}\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n DateTimePicker,\r\n KeyboardDateTimePicker,\r\n MuiPickersUtilsProvider,\r\n} from \"@material-ui/pickers\";\r\nimport MomentUtils from \"@date-io/moment\";\r\nimport SystemLabel from \"../system/SystemLabel/SystemLabel\";\r\n\r\nconst JirangoDatePicker = ({\r\n value,\r\n dispatch,\r\n handleChange,\r\n path,\r\n dark = false,\r\n}) => {\r\n return (\r\n \r\n dispatch(cmsActions.blockDeselect(true))}\r\n onClose={() => cmsActions.blockDeselect(false)} */\r\n onChange={(e) => handleChange(e)}\r\n value={value ? new Date(value) : null}\r\n onError={(err) => console.error(err)}\r\n format=\"yyyy/MM/dd hh:mm:ss\"\r\n /* cancelLabel={}\r\n clearLabel={} */\r\n />\r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {};\r\n}\r\nexport default connect(mapStateToProps)(JirangoDatePicker);\r\n","import React, { useState } from \"react\";\r\nimport { Row, Col, InputGroup, Input, InputGroupAddon, InputGroupText } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport { Tooltip } from \"@material-ui/core\";\r\nimport FileStorageWrapper from \"../FileStorage/FileStorageWrapper\";\r\nimport PhotoLibraryOutlinedIcon from \"@material-ui/icons/PhotoLibraryOutlined\";\r\nimport LinkIcon from \"@material-ui/icons/Link\";\r\nimport \"./UrlMultiInput.css\";\r\nimport LinkManager from \"../LinkManager/LinkManager\";\r\n\r\nconst LinkMultiInput = ({\r\n url,\r\n onChange,\r\n setImage,\r\n noInfoText = false,\r\n path,\r\n onOpen = null,\r\n externalSourceOnly = false,\r\n margin = true,\r\n eventId,\r\n cropSizes = null,\r\n rowStyle = {},\r\n colStyle = {},\r\n dark = false,\r\n}) => {\r\n const [vaultOpen, setOpen] = useState(false);\r\n const toggle = () => {\r\n setOpen(!vaultOpen);\r\n /* if (onOpen && typeof onOpen == \"function\") onOpen(!vaultOpen); */\r\n };\r\n const handlePaste = () => {\r\n navigator.clipboard.readText().then((text) => {\r\n if (text.includes(\"https://\") || text.includes(\"data:image/\")) {\r\n if (path) {\r\n onChange(null, text, path);\r\n } else {\r\n onChange(text);\r\n }\r\n }\r\n });\r\n };\r\n const handleInput = (e) => {\r\n let text = e.target ? e.target.value : e;\r\n if (path) {\r\n onChange(null, text, path);\r\n } else {\r\n onChange(text);\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n }>\r\n handleInput(e)} value={url} />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {vaultOpen ? : null}\r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n cms: state.cms,\r\n eventId: state.cms.eventId,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(LinkMultiInput);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport ReactDragList from \"react-drag-list\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport { Grid, IconButton, Menu, MenuItem } from \"@material-ui/core\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport { meetingService } from \"../../services/meeting/meeting.service\";\r\nimport { Label } from \"reactstrap\";\r\nimport PlaylistAddIcon from \"@material-ui/icons/PlaylistAdd\";\r\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport RestoreFromTrashIcon from \"@material-ui/icons/RestoreFromTrash\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\n\r\nconst DEFAULT_OPTION = {\r\n id: null,\r\n sortOrder: 0,\r\n layoutId: -1,\r\n label: \"Option\",\r\n url: \"\",\r\n};\r\n\r\nexport const MenuEditor = (props) => {\r\n const { menu, onChange, eventId } = props;\r\n\r\n const [isSavable, setIsSavable] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n const [layouts, setLayouts] = useState([]);\r\n const [modifiedMenu, setModifiedMenu] = useState([]);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [showConfirmDialog, toggleConfirmDialog] = useState(false);\r\n\r\n useEffect(() => {\r\n fetchLayouts();\r\n setModifiedMenu(menu);\r\n }, []);\r\n\r\n const addOption = () => {\r\n const newModifiedMenu = Array.from(modifiedMenu);\r\n const newOption = Object.assign({}, DEFAULT_OPTION);\r\n\r\n newOption.id = btoa(+new Date());\r\n newOption.sortOrder = modifiedMenu.length + 1;\r\n\r\n newModifiedMenu.push(newOption);\r\n setModifiedMenu(newModifiedMenu);\r\n setIsSavable(true);\r\n };\r\n\r\n const fetchLayouts = () => {\r\n meetingService.getLayouts(eventId).then((res) => {\r\n setLayouts(res);\r\n });\r\n };\r\n\r\n const deleteOption = (id) => {\r\n const newModifiedMenu = Array.from(modifiedMenu);\r\n const index = newModifiedMenu.indexOf(modifiedMenu.find((m) => m.id == id));\r\n if (index > -1) newModifiedMenu[index].deleted = true;\r\n setModifiedMenu(newModifiedMenu);\r\n setIsSavable(true);\r\n };\r\n\r\n const editOption = (option) => {\r\n const newModifiedMenu = Array.from(modifiedMenu);\r\n const index = newModifiedMenu.indexOf(modifiedMenu.find((m) => m.id == option.id));\r\n if (index > -1) newModifiedMenu[index] = option;\r\n setModifiedMenu(newModifiedMenu);\r\n setIsSavable(true);\r\n };\r\n\r\n const handleOrderChange = (event, dataSource) => {\r\n const sortedOptions = dataSource.map((ds, i) => {\r\n let el = Object.assign({}, ds);\r\n el.sortOrder = i;\r\n return el;\r\n });\r\n setModifiedMenu(sortedOptions);\r\n setIsSavable(true);\r\n };\r\n\r\n const save = () => {\r\n onChange(modifiedMenu.filter((m) => m.deleted != true));\r\n handleClose(true);\r\n if (showConfirmDialog == true) toggleConfirmDialog(false);\r\n };\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = (forced = false) => {\r\n if (isSavable && !forced) {\r\n return toggleConfirmDialog(true);\r\n }\r\n setOpen(false);\r\n };\r\n\r\n const handleMenuClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <>\r\n {showConfirmDialog ? handleClose(true)} toggleConfirmDialog={() => toggleConfirmDialog(!showConfirmDialog)} /> : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n handleOrderChange(event, dataSource)}\r\n row={(a, index) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n {\r\n editOption({ ...a, label: e.target.value });\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {layouts.find((l) => l.meetingLayoutId == a.layoutId)?.name ?? \"-\"}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n {layouts.map((l) => {\r\n return (\r\n {\r\n editOption({ ...a, layoutId: l.meetingLayoutId });\r\n handleMenuClose();\r\n }}\r\n >\r\n {l.name}\r\n \r\n );\r\n })}\r\n \r\n deleteOption(a.id)}>{a.deleted ? : }\r\n
\r\n );\r\n }}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst ConfirmDialog = ({ save, toggle, toggleConfirmDialog }) => {\r\n return (\r\n
\r\n null} aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","export const bigIconList = {\r\n SMILEYS: [\r\n {\r\n \"no\": 1,\r\n \"code\": \"1F600\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"grin\"\r\n ]\r\n },\r\n {\r\n \"no\": 2,\r\n \"code\": \"1F601\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eye\",\r\n \"face\",\r\n \"grin\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 3,\r\n \"code\": \"1F602\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"joy\",\r\n \"laugh\",\r\n \"tear\"\r\n ]\r\n },\r\n {\r\n \"no\": 4,\r\n \"code\": \"1F923\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"face\",\r\n \"floor\",\r\n \"laugh\",\r\n \"lol\",\r\n \"rofl\",\r\n \"rolling\"\r\n ]\r\n },\r\n {\r\n \"no\": 5,\r\n \"code\": \"1F603\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"mouth\",\r\n \"open\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 6,\r\n \"code\": \"1F604\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eye\",\r\n \"face\",\r\n \"mouth\",\r\n \"open\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 7,\r\n \"code\": \"1F605\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"face\",\r\n \"open\",\r\n \"smile\",\r\n \"sweat\"\r\n ]\r\n },\r\n {\r\n \"no\": 8,\r\n \"code\": \"1F606\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"laugh\",\r\n \"mouth\",\r\n \"open\",\r\n \"satisfied\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 9,\r\n \"code\": \"1F609\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"wink\"\r\n ]\r\n },\r\n {\r\n \"no\": 10,\r\n \"code\": \"1F60A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blush\",\r\n \"eye\",\r\n \"face\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 11,\r\n \"code\": \"1F60B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"delicious\",\r\n \"face\",\r\n \"savouring\",\r\n \"smile\",\r\n \"um\",\r\n \"yum\"\r\n ]\r\n },\r\n {\r\n \"no\": 12,\r\n \"code\": \"1F60E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bright\",\r\n \"cool\",\r\n \"eye\",\r\n \"eyewear\",\r\n \"face\",\r\n \"glasses\",\r\n \"smile\",\r\n \"sun\",\r\n \"sunglasses\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 13,\r\n \"code\": \"1F60D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eye\",\r\n \"face\",\r\n \"heart\",\r\n \"love\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 14,\r\n \"code\": \"1F618\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"heart\",\r\n \"kiss\"\r\n ]\r\n },\r\n {\r\n \"no\": 15,\r\n \"code\": \"1F617\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"kiss\"\r\n ]\r\n },\r\n {\r\n \"no\": 16,\r\n \"code\": \"1F619\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eye\",\r\n \"face\",\r\n \"kiss\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 17,\r\n \"code\": \"1F61A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"closed\",\r\n \"eye\",\r\n \"face\",\r\n \"kiss\"\r\n ]\r\n },\r\n {\r\n \"no\": 18,\r\n \"code\": \"263A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"outlined\",\r\n \"relaxed\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 19,\r\n \"code\": \"1F642\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 20,\r\n \"code\": \"1F917\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"hug\",\r\n \"hugging\"\r\n ]\r\n },\r\n {\r\n \"no\": 21,\r\n \"code\": \"1F914\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"thinking\"\r\n ]\r\n },\r\n {\r\n \"no\": 22,\r\n \"code\": \"1F610\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"deadpan\",\r\n \"face\",\r\n \"neutral\"\r\n ]\r\n },\r\n {\r\n \"no\": 23,\r\n \"code\": \"1F611\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"expressionless\",\r\n \"face\",\r\n \"inexpressive\",\r\n \"unexpressive\"\r\n ]\r\n },\r\n {\r\n \"no\": 24,\r\n \"code\": \"1F636\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"mouth\",\r\n \"quiet\",\r\n \"silent\"\r\n ]\r\n },\r\n {\r\n \"no\": 25,\r\n \"code\": \"1F644\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eyes\",\r\n \"face\",\r\n \"rolling\"\r\n ]\r\n },\r\n {\r\n \"no\": 26,\r\n \"code\": \"1F60F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"smirk\"\r\n ]\r\n },\r\n {\r\n \"no\": 27,\r\n \"code\": \"1F623\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"persevere\"\r\n ]\r\n },\r\n {\r\n \"no\": 28,\r\n \"code\": \"1F625\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"disappointed\",\r\n \"face\",\r\n \"relieved\",\r\n \"whew\"\r\n ]\r\n },\r\n {\r\n \"no\": 29,\r\n \"code\": \"1F62E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"mouth\",\r\n \"open\",\r\n \"sympathy\"\r\n ]\r\n },\r\n {\r\n \"no\": 30,\r\n \"code\": \"1F910\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"mouth\",\r\n \"zipper\"\r\n ]\r\n },\r\n {\r\n \"no\": 31,\r\n \"code\": \"1F62F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"hushed\",\r\n \"stunned\",\r\n \"surprised\"\r\n ]\r\n },\r\n {\r\n \"no\": 32,\r\n \"code\": \"1F62A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"sleep\"\r\n ]\r\n },\r\n {\r\n \"no\": 33,\r\n \"code\": \"1F62B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"tired\"\r\n ]\r\n },\r\n {\r\n \"no\": 34,\r\n \"code\": \"1F634\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"sleep\",\r\n \"zzz\"\r\n ]\r\n },\r\n {\r\n \"no\": 35,\r\n \"code\": \"1F60C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"relieved\"\r\n ]\r\n },\r\n {\r\n \"no\": 36,\r\n \"code\": \"1F913\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"geek\",\r\n \"nerd\"\r\n ]\r\n },\r\n {\r\n \"no\": 37,\r\n \"code\": \"1F61B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"tongue\"\r\n ]\r\n },\r\n {\r\n \"no\": 38,\r\n \"code\": \"1F61C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eye\",\r\n \"face\",\r\n \"joke\",\r\n \"tongue\",\r\n \"wink\"\r\n ]\r\n },\r\n {\r\n \"no\": 39,\r\n \"code\": \"1F61D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eye\",\r\n \"face\",\r\n \"horrible\",\r\n \"taste\",\r\n \"tongue\"\r\n ]\r\n },\r\n {\r\n \"no\": 40,\r\n \"code\": \"1F924\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"drooling\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 41,\r\n \"code\": \"1F612\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"unamused\",\r\n \"unhappy\"\r\n ]\r\n },\r\n {\r\n \"no\": 42,\r\n \"code\": \"1F613\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"face\",\r\n \"sweat\"\r\n ]\r\n },\r\n {\r\n \"no\": 43,\r\n \"code\": \"1F614\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dejected\",\r\n \"face\",\r\n \"pensive\"\r\n ]\r\n },\r\n {\r\n \"no\": 44,\r\n \"code\": \"1F615\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"confused\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 45,\r\n \"code\": \"1F643\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"upside-down\"\r\n ]\r\n },\r\n {\r\n \"no\": 46,\r\n \"code\": \"1F911\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"money\",\r\n \"mouth\"\r\n ]\r\n },\r\n {\r\n \"no\": 47,\r\n \"code\": \"1F632\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"astonished\",\r\n \"face\",\r\n \"shocked\",\r\n \"totally\"\r\n ]\r\n },\r\n {\r\n \"no\": 48,\r\n \"code\": \"2639\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"frown\"\r\n ]\r\n },\r\n {\r\n \"no\": 49,\r\n \"code\": \"1F641\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"frown\"\r\n ]\r\n },\r\n {\r\n \"no\": 50,\r\n \"code\": \"1F616\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"confounded\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 51,\r\n \"code\": \"1F61E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"disappointed\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 52,\r\n \"code\": \"1F61F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"worried\"\r\n ]\r\n },\r\n {\r\n \"no\": 53,\r\n \"code\": \"1F624\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"triumph\",\r\n \"won\"\r\n ]\r\n },\r\n {\r\n \"no\": 54,\r\n \"code\": \"1F622\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cry\",\r\n \"face\",\r\n \"sad\",\r\n \"tear\"\r\n ]\r\n },\r\n {\r\n \"no\": 55,\r\n \"code\": \"1F62D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cry\",\r\n \"face\",\r\n \"sad\",\r\n \"sob\",\r\n \"tear\"\r\n ]\r\n },\r\n {\r\n \"no\": 56,\r\n \"code\": \"1F626\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"frown\",\r\n \"mouth\",\r\n \"open\"\r\n ]\r\n },\r\n {\r\n \"no\": 57,\r\n \"code\": \"1F627\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"anguished\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 58,\r\n \"code\": \"1F628\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"fear\",\r\n \"fearful\",\r\n \"scared\"\r\n ]\r\n },\r\n {\r\n \"no\": 59,\r\n \"code\": \"1F629\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"tired\",\r\n \"weary\"\r\n ]\r\n },\r\n {\r\n \"no\": 60,\r\n \"code\": \"1F62C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"grimace\"\r\n ]\r\n },\r\n {\r\n \"no\": 61,\r\n \"code\": \"1F630\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blue\",\r\n \"cold\",\r\n \"face\",\r\n \"mouth\",\r\n \"open\",\r\n \"rushed\",\r\n \"sweat\"\r\n ]\r\n },\r\n {\r\n \"no\": 62,\r\n \"code\": \"1F631\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"fear\",\r\n \"fearful\",\r\n \"munch\",\r\n \"scared\",\r\n \"scream\"\r\n ]\r\n },\r\n {\r\n \"no\": 63,\r\n \"code\": \"1F633\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dazed\",\r\n \"face\",\r\n \"flushed\"\r\n ]\r\n },\r\n {\r\n \"no\": 64,\r\n \"code\": \"1F635\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dizzy\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 65,\r\n \"code\": \"1F621\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"angry\",\r\n \"face\",\r\n \"mad\",\r\n \"pouting\",\r\n \"rage\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 66,\r\n \"code\": \"1F620\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"angry\",\r\n \"face\",\r\n \"mad\"\r\n ]\r\n },\r\n {\r\n \"no\": 67,\r\n \"code\": \"1F607\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"angel\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"halo\",\r\n \"innocent\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 68,\r\n \"code\": \"1F920\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"cowboy\",\r\n \"cowgirl\",\r\n \"face\",\r\n \"hat\"\r\n ]\r\n },\r\n {\r\n \"no\": 69,\r\n \"code\": \"1F921\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"clown\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 70,\r\n \"code\": \"1F925\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"face\",\r\n \"lie\",\r\n \"pinocchio\"\r\n ]\r\n },\r\n {\r\n \"no\": 71,\r\n \"code\": \"1F637\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"doctor\",\r\n \"face\",\r\n \"mask\",\r\n \"medicine\",\r\n \"sick\"\r\n ]\r\n },\r\n {\r\n \"no\": 72,\r\n \"code\": \"1F912\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"ill\",\r\n \"sick\",\r\n \"thermometer\"\r\n ]\r\n },\r\n {\r\n \"no\": 73,\r\n \"code\": \"1F915\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bandage\",\r\n \"face\",\r\n \"hurt\",\r\n \"injury\"\r\n ]\r\n },\r\n {\r\n \"no\": 74,\r\n \"code\": \"1F922\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"face\",\r\n \"nauseated\",\r\n \"vomit\"\r\n ]\r\n },\r\n {\r\n \"no\": 75,\r\n \"code\": \"1F927\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"face\",\r\n \"gesundheit\",\r\n \"sneeze\"\r\n ]\r\n },\r\n {\r\n \"no\": 76,\r\n \"code\": \"1F608\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"horns\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 77,\r\n \"code\": \"1F47F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"demon\",\r\n \"devil\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"imp\"\r\n ]\r\n },\r\n {\r\n \"no\": 78,\r\n \"code\": \"1F479\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"creature\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"japanese\",\r\n \"monster\",\r\n \"ogre\"\r\n ]\r\n },\r\n {\r\n \"no\": 79,\r\n \"code\": \"1F47A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"creature\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"goblin\",\r\n \"japanese\",\r\n \"monster\"\r\n ]\r\n },\r\n {\r\n \"no\": 80,\r\n \"code\": \"1F480\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"death\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"monster\",\r\n \"skull\"\r\n ]\r\n },\r\n {\r\n \"no\": 81,\r\n \"code\": \"2620\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"crossbones\",\r\n \"death\",\r\n \"face\",\r\n \"monster\",\r\n \"skull\"\r\n ]\r\n },\r\n {\r\n \"no\": 82,\r\n \"code\": \"1F47B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"creature\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"ghost\",\r\n \"monster\"\r\n ]\r\n },\r\n {\r\n \"no\": 83,\r\n \"code\": \"1F47D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"alien\",\r\n \"creature\",\r\n \"extraterrestrial\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"monster\",\r\n \"space\",\r\n \"ufo\"\r\n ]\r\n },\r\n {\r\n \"no\": 84,\r\n \"code\": \"1F47E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"alien\",\r\n \"creature\",\r\n \"extraterrestrial\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"monster\",\r\n \"space\",\r\n \"ufo\"\r\n ]\r\n },\r\n {\r\n \"no\": 85,\r\n \"code\": \"1F916\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"monster\",\r\n \"robot\"\r\n ]\r\n },\r\n {\r\n \"no\": 86,\r\n \"code\": \"1F4A9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comic\",\r\n \"dung\",\r\n \"face\",\r\n \"monster\",\r\n \"poo\",\r\n \"poop\"\r\n ]\r\n },\r\n {\r\n \"no\": 87,\r\n \"code\": \"1F63A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"face\",\r\n \"mouth\",\r\n \"open\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 88,\r\n \"code\": \"1F638\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"eye\",\r\n \"face\",\r\n \"grin\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 89,\r\n \"code\": \"1F639\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"face\",\r\n \"joy\",\r\n \"tear\"\r\n ]\r\n },\r\n {\r\n \"no\": 90,\r\n \"code\": \"1F63B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"eye\",\r\n \"face\",\r\n \"heart\",\r\n \"love\",\r\n \"smile\"\r\n ]\r\n },\r\n {\r\n \"no\": 91,\r\n \"code\": \"1F63C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"face\",\r\n \"ironic\",\r\n \"smile\",\r\n \"wry\"\r\n ]\r\n },\r\n {\r\n \"no\": 92,\r\n \"code\": \"1F63D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"eye\",\r\n \"face\",\r\n \"kiss\"\r\n ]\r\n },\r\n {\r\n \"no\": 93,\r\n \"code\": \"1F640\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"face\",\r\n \"oh\",\r\n \"surprised\",\r\n \"weary\"\r\n ]\r\n },\r\n {\r\n \"no\": 94,\r\n \"code\": \"1F63F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"cry\",\r\n \"face\",\r\n \"sad\",\r\n \"tear\"\r\n ]\r\n },\r\n {\r\n \"no\": 95,\r\n \"code\": \"1F63E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"face\",\r\n \"pouting\"\r\n ]\r\n },\r\n {\r\n \"no\": 96,\r\n \"code\": \"1F648\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"evil\",\r\n \"face\",\r\n \"forbidden\",\r\n \"gesture\",\r\n \"monkey\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\",\r\n \"see\"\r\n ]\r\n },\r\n {\r\n \"no\": 97,\r\n \"code\": \"1F649\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"evil\",\r\n \"face\",\r\n \"forbidden\",\r\n \"gesture\",\r\n \"hear\",\r\n \"monkey\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\"\r\n ]\r\n },\r\n {\r\n \"no\": 98,\r\n \"code\": \"1F64A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"evil\",\r\n \"face\",\r\n \"forbidden\",\r\n \"gesture\",\r\n \"monkey\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\",\r\n \"speak\"\r\n ]\r\n },\r\n {\r\n \"no\": 99,\r\n \"code\": \"1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\"\r\n ],\r\n \"types\": [\r\n \"1F466-1F3FF\",\r\n \"1F466-1F3FE\",\r\n \"1F466-1F3FD\",\r\n \"1F466-1F3FC\",\r\n \"1F466-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 105,\r\n \"code\": \"1F467\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"girl\",\r\n \"maiden\",\r\n \"virgin\",\r\n \"virgo\",\r\n \"zodiac\"\r\n ],\r\n \"types\": [\r\n \"1F467-1F3FF\",\r\n \"1F467-1F3FE\",\r\n \"1F467-1F3FD\",\r\n \"1F467-1F3FC\",\r\n \"1F467-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 111,\r\n \"code\": \"1F468\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"man\"\r\n ],\r\n \"types\": [\r\n \"1F468-1F3FF\",\r\n \"1F468-1F3FE\",\r\n \"1F468-1F3FD\",\r\n \"1F468-1F3FC\",\r\n \"1F468-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 117,\r\n \"code\": \"1F469\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"woman\"\r\n ],\r\n \"types\": [\r\n \"1F469-1F3FF\",\r\n \"1F469-1F3FE\",\r\n \"1F469-1F3FD\",\r\n \"1F469-1F3FC\",\r\n \"1F469-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 123,\r\n \"code\": \"1F474\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"man\",\r\n \"old\"\r\n ],\r\n \"types\": [\r\n \"1F474-1F3FF\",\r\n \"1F474-1F3FE\",\r\n \"1F474-1F3FD\",\r\n \"1F474-1F3FC\",\r\n \"1F474-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 129,\r\n \"code\": \"1F475\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"old\",\r\n \"woman\"\r\n ],\r\n \"types\": [\r\n \"1F475-1F3FF\",\r\n \"1F475-1F3FE\",\r\n \"1F475-1F3FD\",\r\n \"1F475-1F3FC\",\r\n \"1F475-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 135,\r\n \"code\": \"1F476\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baby\"\r\n ],\r\n \"types\": [\r\n \"1F476-1F3FF\",\r\n \"1F476-1F3FE\",\r\n \"1F476-1F3FD\",\r\n \"1F476-1F3FC\",\r\n \"1F476-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 141,\r\n \"code\": \"1F47C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"angel\",\r\n \"baby\",\r\n \"face\",\r\n \"fairy tale\",\r\n \"fantasy\"\r\n ],\r\n \"types\": [\r\n \"1F47C-1F3FF\",\r\n \"1F47C-1F3FE\",\r\n \"1F47C-1F3FD\",\r\n \"1F47C-1F3FC\",\r\n \"1F47C-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 147,\r\n \"code\": \"1F471\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blond\"\r\n ],\r\n \"types\": [\r\n \"1F471-1F3FF\",\r\n \"1F471-1F3FE\",\r\n \"1F471-1F3FD\",\r\n \"1F471-1F3FC\",\r\n \"1F471-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 153,\r\n \"code\": \"1F46E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cop\",\r\n \"officer\",\r\n \"police\"\r\n ],\r\n \"types\": [\r\n \"1F46E-1F3FF\",\r\n \"1F46E-1F3FE\",\r\n \"1F46E-1F3FD\",\r\n \"1F46E-1F3FC\",\r\n \"1F46E-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 159,\r\n \"code\": \"1F472\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gua pi mao\",\r\n \"hat\",\r\n \"man\"\r\n ],\r\n \"types\": [\r\n \"1F472-1F3FF\",\r\n \"1F472-1F3FE\",\r\n \"1F472-1F3FD\",\r\n \"1F472-1F3FC\",\r\n \"1F472-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 165,\r\n \"code\": \"1F473\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"man\",\r\n \"turban\"\r\n ],\r\n \"types\": [\r\n \"1F473-1F3FF\",\r\n \"1F473-1F3FE\",\r\n \"1F473-1F3FD\",\r\n \"1F473-1F3FC\",\r\n \"1F473-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 171,\r\n \"code\": \"1F477\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"construction\",\r\n \"hat\",\r\n \"worker\"\r\n ],\r\n \"types\": [\r\n \"1F477-1F3FF\",\r\n \"1F477-1F3FE\",\r\n \"1F477-1F3FD\",\r\n \"1F477-1F3FC\",\r\n \"1F477-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 177,\r\n \"code\": \"1F478\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"princess\"\r\n ],\r\n \"types\": [\r\n \"1F478-1F3FF\",\r\n \"1F478-1F3FE\",\r\n \"1F478-1F3FD\",\r\n \"1F478-1F3FC\",\r\n \"1F478-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 183,\r\n \"code\": \"1F934\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"prince\"\r\n ],\r\n \"types\": [\r\n \"1F934-1F3FF\",\r\n \"1F934-1F3FE\",\r\n \"1F934-1F3FD\",\r\n \"1F934-1F3FC\",\r\n \"1F934-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 189,\r\n \"code\": \"1F482\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"guard\",\r\n \"guardsman\"\r\n ],\r\n \"types\": [\r\n \"1F482-1F3FF\",\r\n \"1F482-1F3FE\",\r\n \"1F482-1F3FD\",\r\n \"1F482-1F3FC\",\r\n \"1F482-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 195,\r\n \"code\": \"1F575\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"detective\",\r\n \"sleuth\",\r\n \"spy\"\r\n ],\r\n \"types\": [\r\n \"1F575-1F3FF\",\r\n \"1F575-1F3FE\",\r\n \"1F575-1F3FD\",\r\n \"1F575-1F3FC\",\r\n \"1F575-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 201,\r\n \"code\": \"1F385\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"christmas\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"father\",\r\n \"santa\"\r\n ],\r\n \"types\": [\r\n \"1F385-1F3FF\",\r\n \"1F385-1F3FE\",\r\n \"1F385-1F3FD\",\r\n \"1F385-1F3FC\",\r\n \"1F385-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 207,\r\n \"code\": \"1F936\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"christmas\",\r\n \"mother\",\r\n \"mrs. claus\"\r\n ],\r\n \"types\": [\r\n \"1F936-1F3FF\",\r\n \"1F936-1F3FE\",\r\n \"1F936-1F3FD\",\r\n \"1F936-1F3FC\",\r\n \"1F936-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 213,\r\n \"code\": \"1F470\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bride\",\r\n \"veil\",\r\n \"wedding\"\r\n ],\r\n \"types\": [\r\n \"1F470-1F3FF\",\r\n \"1F470-1F3FE\",\r\n \"1F470-1F3FD\",\r\n \"1F470-1F3FC\",\r\n \"1F470-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 219,\r\n \"code\": \"1F935\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"groom\",\r\n \"man\",\r\n \"tuxedo\"\r\n ],\r\n \"types\": [\r\n \"1F935-1F3FF\",\r\n \"1F935-1F3FE\",\r\n \"1F935-1F3FD\",\r\n \"1F935-1F3FC\",\r\n \"1F935-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 225,\r\n \"code\": \"1F486\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"massage\",\r\n \"salon\"\r\n ],\r\n \"types\": [\r\n \"1F486-1F3FF\",\r\n \"1F486-1F3FE\",\r\n \"1F486-1F3FD\",\r\n \"1F486-1F3FC\",\r\n \"1F486-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 231,\r\n \"code\": \"1F487\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"barber\",\r\n \"beauty\",\r\n \"haircut\",\r\n \"parlor\"\r\n ],\r\n \"types\": [\r\n \"1F487-1F3FF\",\r\n \"1F487-1F3FE\",\r\n \"1F487-1F3FD\",\r\n \"1F487-1F3FC\",\r\n \"1F487-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 237,\r\n \"code\": \"1F64D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"frown\",\r\n \"gesture\"\r\n ],\r\n \"types\": [\r\n \"1F64D-1F3FF\",\r\n \"1F64D-1F3FE\",\r\n \"1F64D-1F3FD\",\r\n \"1F64D-1F3FC\",\r\n \"1F64D-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 243,\r\n \"code\": \"1F64E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gesture\",\r\n \"pouting\"\r\n ],\r\n \"types\": [\r\n \"1F64E-1F3FF\",\r\n \"1F64E-1F3FE\",\r\n \"1F64E-1F3FD\",\r\n \"1F64E-1F3FC\",\r\n \"1F64E-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 249,\r\n \"code\": \"1F645\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"forbidden\",\r\n \"gesture\",\r\n \"hand\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\"\r\n ],\r\n \"types\": [\r\n \"1F645-1F3FF\",\r\n \"1F645-1F3FE\",\r\n \"1F645-1F3FD\",\r\n \"1F645-1F3FC\",\r\n \"1F645-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 255,\r\n \"code\": \"1F646\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gesture\",\r\n \"hand\",\r\n \"ok\"\r\n ],\r\n \"types\": [\r\n \"1F646-1F3FF\",\r\n \"1F646-1F3FE\",\r\n \"1F646-1F3FD\",\r\n \"1F646-1F3FC\",\r\n \"1F646-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 261,\r\n \"code\": \"1F481\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hand\",\r\n \"help\",\r\n \"information\",\r\n \"sassy\"\r\n ],\r\n \"types\": [\r\n \"1F481-1F3FF\",\r\n \"1F481-1F3FE\",\r\n \"1F481-1F3FD\",\r\n \"1F481-1F3FC\",\r\n \"1F481-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 267,\r\n \"code\": \"1F937\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"doubt\",\r\n \"ignorance\",\r\n \"indifference\",\r\n \"shrug\"\r\n ],\r\n \"types\": [\r\n \"1F937-1F3FF\",\r\n \"1F937-1F3FE\",\r\n \"1F937-1F3FD\",\r\n \"1F937-1F3FC\",\r\n \"1F937-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 273,\r\n \"code\": \"1F64B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gesture\",\r\n \"hand\",\r\n \"happy\",\r\n \"raised\"\r\n ],\r\n \"types\": [\r\n \"1F64B-1F3FF\",\r\n \"1F64B-1F3FE\",\r\n \"1F64B-1F3FD\",\r\n \"1F64B-1F3FC\",\r\n \"1F64B-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 279,\r\n \"code\": \"1F926\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"disbelief\",\r\n \"exasperation\",\r\n \"face\",\r\n \"palm\"\r\n ],\r\n \"types\": [\r\n \"1F926-1F3FF\",\r\n \"1F926-1F3FE\",\r\n \"1F926-1F3FD\",\r\n \"1F926-1F3FC\",\r\n \"1F926-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 285,\r\n \"code\": \"1F647\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"apology\",\r\n \"bow\",\r\n \"gesture\",\r\n \"sorry\"\r\n ],\r\n \"types\": [\r\n \"1F647-1F3FF\",\r\n \"1F647-1F3FE\",\r\n \"1F647-1F3FD\",\r\n \"1F647-1F3FC\",\r\n \"1F647-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 291,\r\n \"code\": \"1F6B6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hike\",\r\n \"pedestrian\",\r\n \"walk\",\r\n \"walking\"\r\n ],\r\n \"types\": [\r\n \"1F6B6-1F3FF\",\r\n \"1F6B6-1F3FE\",\r\n \"1F6B6-1F3FD\",\r\n \"1F6B6-1F3FC\",\r\n \"1F6B6-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 297,\r\n \"code\": \"1F3C3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"marathon\",\r\n \"runner\",\r\n \"running\"\r\n ],\r\n \"types\": [\r\n \"1F3C3-1F3FF\",\r\n \"1F3C3-1F3FE\",\r\n \"1F3C3-1F3FD\",\r\n \"1F3C3-1F3FC\",\r\n \"1F3C3-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 303,\r\n \"code\": \"1F483\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dancer\"\r\n ],\r\n \"types\": [\r\n \"1F483-1F3FF\",\r\n \"1F483-1F3FE\",\r\n \"1F483-1F3FD\",\r\n \"1F483-1F3FC\",\r\n \"1F483-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 309,\r\n \"code\": \"1F57A\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"dance\",\r\n \"man\"\r\n ],\r\n \"types\": [\r\n \"1F57A-1F3FF\",\r\n \"1F57A-1F3FE\",\r\n \"1F57A-1F3FD\",\r\n \"1F57A-1F3FC\",\r\n \"1F57A-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 315,\r\n \"code\": \"1F930\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"pregnant\",\r\n \"woman\"\r\n ],\r\n \"types\": [\r\n \"1F930-1F3FF\",\r\n \"1F930-1F3FE\",\r\n \"1F930-1F3FD\",\r\n \"1F930-1F3FC\",\r\n \"1F930-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 321,\r\n \"code\": \"1F46F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bunny\",\r\n \"dancer\",\r\n \"ear\",\r\n \"girl\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 322,\r\n \"code\": \"1F574\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"business\",\r\n \"man\",\r\n \"suit\"\r\n ]\r\n },\r\n {\r\n \"no\": 323,\r\n \"code\": \"1F5E3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"head\",\r\n \"silhouette\",\r\n \"speak\",\r\n \"speaking\"\r\n ]\r\n },\r\n {\r\n \"no\": 324,\r\n \"code\": \"1F464\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bust\",\r\n \"silhouette\"\r\n ]\r\n },\r\n {\r\n \"no\": 325,\r\n \"code\": \"1F465\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bust\",\r\n \"silhouette\"\r\n ]\r\n },\r\n {\r\n \"no\": 326,\r\n \"code\": \"1F46B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"hand\",\r\n \"hold\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 327,\r\n \"code\": \"1F46C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"gemini\",\r\n \"hand\",\r\n \"hold\",\r\n \"man\",\r\n \"twins\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 328,\r\n \"code\": \"1F46D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"hand\",\r\n \"hold\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 329,\r\n \"code\": \"1F48F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"kiss\",\r\n \"romance\"\r\n ]\r\n },\r\n {\r\n \"no\": 330,\r\n \"code\": \"1F469-200D-2764-FE0F-200D-1F48B-200D-1F468\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"kiss\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 331,\r\n \"code\": \"1F468-200D-2764-FE0F-200D-1F48B-200D-1F468\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"kiss\",\r\n \"man\"\r\n ]\r\n },\r\n {\r\n \"no\": 332,\r\n \"code\": \"1F469-200D-2764-FE0F-200D-1F48B-200D-1F469\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"kiss\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 333,\r\n \"code\": \"1F491\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"heart\",\r\n \"love\",\r\n \"romance\"\r\n ]\r\n },\r\n {\r\n \"no\": 334,\r\n \"code\": \"1F469-200D-2764-FE0F-200D-1F468\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 335,\r\n \"code\": \"1F468-200D-2764-FE0F-200D-1F468\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"man\"\r\n ]\r\n },\r\n {\r\n \"no\": 336,\r\n \"code\": \"1F469-200D-2764-FE0F-200D-1F469\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couple\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 337,\r\n \"code\": \"1F46A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"child\",\r\n \"family\",\r\n \"father\",\r\n \"mother\"\r\n ]\r\n },\r\n {\r\n \"no\": 338,\r\n \"code\": \"1F468-200D-1F469-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 339,\r\n \"code\": \"1F468-200D-1F469-200D-1F467\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"family\",\r\n \"girl\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 340,\r\n \"code\": \"1F468-200D-1F469-200D-1F467-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"girl\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 341,\r\n \"code\": \"1F468-200D-1F469-200D-1F466-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 342,\r\n \"code\": \"1F468-200D-1F469-200D-1F467-200D-1F467\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"family\",\r\n \"girl\",\r\n \"man\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 343,\r\n \"code\": \"1F468-200D-1F468-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"man\"\r\n ]\r\n },\r\n {\r\n \"no\": 344,\r\n \"code\": \"1F468-200D-1F468-200D-1F467\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"family\",\r\n \"girl\",\r\n \"man\"\r\n ]\r\n },\r\n {\r\n \"no\": 345,\r\n \"code\": \"1F468-200D-1F468-200D-1F467-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"girl\",\r\n \"man\"\r\n ]\r\n },\r\n {\r\n \"no\": 346,\r\n \"code\": \"1F468-200D-1F468-200D-1F466-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"man\"\r\n ]\r\n },\r\n {\r\n \"no\": 347,\r\n \"code\": \"1F468-200D-1F468-200D-1F467-200D-1F467\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"family\",\r\n \"girl\",\r\n \"man\"\r\n ]\r\n },\r\n {\r\n \"no\": 348,\r\n \"code\": \"1F469-200D-1F469-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 349,\r\n \"code\": \"1F469-200D-1F469-200D-1F467\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"family\",\r\n \"girl\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 350,\r\n \"code\": \"1F469-200D-1F469-200D-1F467-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"girl\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 351,\r\n \"code\": \"1F469-200D-1F469-200D-1F466-200D-1F466\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boy\",\r\n \"family\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 352,\r\n \"code\": \"1F469-200D-1F469-200D-1F467-200D-1F467\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"family\",\r\n \"girl\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 353,\r\n \"code\": \"1F3FB\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"emoji modifier\",\r\n \"fitzpatrick\",\r\n \"skin\",\r\n \"tone\"\r\n ]\r\n },\r\n {\r\n \"no\": 354,\r\n \"code\": \"1F3FC\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"emoji modifier\",\r\n \"fitzpatrick\",\r\n \"skin\",\r\n \"tone\"\r\n ]\r\n },\r\n {\r\n \"no\": 355,\r\n \"code\": \"1F3FD\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"emoji modifier\",\r\n \"fitzpatrick\",\r\n \"skin\",\r\n \"tone\"\r\n ]\r\n },\r\n {\r\n \"no\": 356,\r\n \"code\": \"1F3FE\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"emoji modifier\",\r\n \"fitzpatrick\",\r\n \"skin\",\r\n \"tone\"\r\n ]\r\n },\r\n {\r\n \"no\": 357,\r\n \"code\": \"1F3FF\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"emoji modifier\",\r\n \"fitzpatrick\",\r\n \"skin\",\r\n \"tone\"\r\n ]\r\n },\r\n {\r\n \"no\": 358,\r\n \"code\": \"1F4AA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"biceps\",\r\n \"body\",\r\n \"comic\",\r\n \"flex\",\r\n \"muscle\"\r\n ],\r\n \"types\": [\r\n \"1F4AA-1F3FF\",\r\n \"1F4AA-1F3FE\",\r\n \"1F4AA-1F3FD\",\r\n \"1F4AA-1F3FC\",\r\n \"1F4AA-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 364,\r\n \"code\": \"1F933\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"camera\",\r\n \"phone\",\r\n \"selfie\"\r\n ],\r\n \"types\": [\r\n \"1F933-1F3FF\",\r\n \"1F933-1F3FE\",\r\n \"1F933-1F3FD\",\r\n \"1F933-1F3FC\",\r\n \"1F933-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 370,\r\n \"code\": \"1F448\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"backhand\",\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"index\",\r\n \"point\"\r\n ],\r\n \"types\": [\r\n \"1F448-1F3FF\",\r\n \"1F448-1F3FE\",\r\n \"1F448-1F3FD\",\r\n \"1F448-1F3FC\",\r\n \"1F448-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 376,\r\n \"code\": \"1F449\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"backhand\",\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"index\",\r\n \"point\"\r\n ],\r\n \"types\": [\r\n \"1F449-1F3FF\",\r\n \"1F449-1F3FE\",\r\n \"1F449-1F3FD\",\r\n \"1F449-1F3FC\",\r\n \"1F449-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 382,\r\n \"code\": \"261D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"index\",\r\n \"point\",\r\n \"up\"\r\n ],\r\n \"types\": [\r\n \"261D-1F3FF\",\r\n \"261D-1F3FE\",\r\n \"261D-1F3FD\",\r\n \"261D-1F3FC\",\r\n \"261D-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 388,\r\n \"code\": \"1F446\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"backhand\",\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"index\",\r\n \"point\",\r\n \"up\"\r\n ],\r\n \"types\": [\r\n \"1F446-1F3FF\",\r\n \"1F446-1F3FE\",\r\n \"1F446-1F3FD\",\r\n \"1F446-1F3FC\",\r\n \"1F446-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 394,\r\n \"code\": \"1F595\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"middle finger\"\r\n ],\r\n \"types\": [\r\n \"1F595-1F3FF\",\r\n \"1F595-1F3FE\",\r\n \"1F595-1F3FD\",\r\n \"1F595-1F3FC\",\r\n \"1F595-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 400,\r\n \"code\": \"1F447\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"backhand\",\r\n \"body\",\r\n \"down\",\r\n \"finger\",\r\n \"hand\",\r\n \"index\",\r\n \"point\"\r\n ],\r\n \"types\": [\r\n \"1F447-1F3FF\",\r\n \"1F447-1F3FE\",\r\n \"1F447-1F3FD\",\r\n \"1F447-1F3FC\",\r\n \"1F447-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 406,\r\n \"code\": \"270C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"hand\",\r\n \"v\",\r\n \"victory\"\r\n ],\r\n \"types\": [\r\n \"270C-1F3FF\",\r\n \"270C-1F3FE\",\r\n \"270C-1F3FD\",\r\n \"270C-1F3FC\",\r\n \"270C-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 412,\r\n \"code\": \"1F91E\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"cross\",\r\n \"finger\",\r\n \"hand\",\r\n \"luck\"\r\n ],\r\n \"types\": [\r\n \"1F91E-1F3FF\",\r\n \"1F91E-1F3FE\",\r\n \"1F91E-1F3FD\",\r\n \"1F91E-1F3FC\",\r\n \"1F91E-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 418,\r\n \"code\": \"1F596\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"spock\",\r\n \"vulcan\"\r\n ],\r\n \"types\": [\r\n \"1F596-1F3FF\",\r\n \"1F596-1F3FE\",\r\n \"1F596-1F3FD\",\r\n \"1F596-1F3FC\",\r\n \"1F596-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 424,\r\n \"code\": \"1F918\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"horns\",\r\n \"rock-on\"\r\n ],\r\n \"types\": [\r\n \"1F918-1F3FF\",\r\n \"1F918-1F3FE\",\r\n \"1F918-1F3FD\",\r\n \"1F918-1F3FC\",\r\n \"1F918-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 430,\r\n \"code\": \"1F919\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"call\",\r\n \"hand\"\r\n ],\r\n \"types\": [\r\n \"1F919-1F3FF\",\r\n \"1F919-1F3FE\",\r\n \"1F919-1F3FD\",\r\n \"1F919-1F3FC\",\r\n \"1F919-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 436,\r\n \"code\": \"1F590\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"finger\",\r\n \"hand\",\r\n \"splayed\"\r\n ],\r\n \"types\": [\r\n \"1F590-1F3FF\",\r\n \"1F590-1F3FE\",\r\n \"1F590-1F3FD\",\r\n \"1F590-1F3FC\",\r\n \"1F590-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 442,\r\n \"code\": \"270B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"hand\"\r\n ],\r\n \"types\": [\r\n \"270B-1F3FF\",\r\n \"270B-1F3FE\",\r\n \"270B-1F3FD\",\r\n \"270B-1F3FC\",\r\n \"270B-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 448,\r\n \"code\": \"1F44C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"hand\",\r\n \"ok\"\r\n ],\r\n \"types\": [\r\n \"1F44C-1F3FF\",\r\n \"1F44C-1F3FE\",\r\n \"1F44C-1F3FD\",\r\n \"1F44C-1F3FC\",\r\n \"1F44C-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 454,\r\n \"code\": \"1F44D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"+1\",\r\n \"body\",\r\n \"hand\",\r\n \"thumb\",\r\n \"thumbs up\",\r\n \"up\"\r\n ],\r\n \"types\": [\r\n \"1F44D-1F3FF\",\r\n \"1F44D-1F3FE\",\r\n \"1F44D-1F3FD\",\r\n \"1F44D-1F3FC\",\r\n \"1F44D-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 460,\r\n \"code\": \"1F44E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"-1\",\r\n \"body\",\r\n \"down\",\r\n \"hand\",\r\n \"thumb\",\r\n \"thumbs down\"\r\n ],\r\n \"types\": [\r\n \"1F44E-1F3FF\",\r\n \"1F44E-1F3FE\",\r\n \"1F44E-1F3FD\",\r\n \"1F44E-1F3FC\",\r\n \"1F44E-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 466,\r\n \"code\": \"270A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"clenched\",\r\n \"fist\",\r\n \"hand\",\r\n \"punch\"\r\n ],\r\n \"types\": [\r\n \"270A-1F3FF\",\r\n \"270A-1F3FE\",\r\n \"270A-1F3FD\",\r\n \"270A-1F3FC\",\r\n \"270A-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 472,\r\n \"code\": \"1F44A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"clenched\",\r\n \"fist\",\r\n \"hand\",\r\n \"punch\"\r\n ],\r\n \"types\": [\r\n \"1F44A-1F3FF\",\r\n \"1F44A-1F3FE\",\r\n \"1F44A-1F3FD\",\r\n \"1F44A-1F3FC\",\r\n \"1F44A-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 478,\r\n \"code\": \"1F91B\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"fist\",\r\n \"leftwards\"\r\n ],\r\n \"types\": [\r\n \"1F91B-1F3FF\",\r\n \"1F91B-1F3FE\",\r\n \"1F91B-1F3FD\",\r\n \"1F91B-1F3FC\",\r\n \"1F91B-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 484,\r\n \"code\": \"1F91C\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"fist\",\r\n \"rightwards\"\r\n ],\r\n \"types\": [\r\n \"1F91C-1F3FF\",\r\n \"1F91C-1F3FE\",\r\n \"1F91C-1F3FD\",\r\n \"1F91C-1F3FC\",\r\n \"1F91C-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 490,\r\n \"code\": \"1F91A\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"backhand\",\r\n \"raised\"\r\n ],\r\n \"types\": [\r\n \"1F91A-1F3FF\",\r\n \"1F91A-1F3FE\",\r\n \"1F91A-1F3FD\",\r\n \"1F91A-1F3FC\",\r\n \"1F91A-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 496,\r\n \"code\": \"1F44B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"hand\",\r\n \"wave\",\r\n \"waving\"\r\n ],\r\n \"types\": [\r\n \"1F44B-1F3FF\",\r\n \"1F44B-1F3FE\",\r\n \"1F44B-1F3FD\",\r\n \"1F44B-1F3FC\",\r\n \"1F44B-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 502,\r\n \"code\": \"1F44F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"clap\",\r\n \"hand\"\r\n ],\r\n \"types\": [\r\n \"1F44F-1F3FF\",\r\n \"1F44F-1F3FE\",\r\n \"1F44F-1F3FD\",\r\n \"1F44F-1F3FC\",\r\n \"1F44F-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 508,\r\n \"code\": \"270D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"hand\",\r\n \"write\"\r\n ],\r\n \"types\": [\r\n \"270D-1F3FF\",\r\n \"270D-1F3FE\",\r\n \"270D-1F3FD\",\r\n \"270D-1F3FC\",\r\n \"270D-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 514,\r\n \"code\": \"1F450\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"hand\",\r\n \"open\"\r\n ],\r\n \"types\": [\r\n \"1F450-1F3FF\",\r\n \"1F450-1F3FE\",\r\n \"1F450-1F3FD\",\r\n \"1F450-1F3FC\",\r\n \"1F450-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 520,\r\n \"code\": \"1F64C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"celebration\",\r\n \"gesture\",\r\n \"hand\",\r\n \"hooray\",\r\n \"raised\"\r\n ],\r\n \"types\": [\r\n \"1F64C-1F3FF\",\r\n \"1F64C-1F3FE\",\r\n \"1F64C-1F3FD\",\r\n \"1F64C-1F3FC\",\r\n \"1F64C-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 526,\r\n \"code\": \"1F64F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ask\",\r\n \"body\",\r\n \"bow\",\r\n \"folded\",\r\n \"gesture\",\r\n \"hand\",\r\n \"please\",\r\n \"pray\",\r\n \"thanks\"\r\n ],\r\n \"types\": [\r\n \"1F64F-1F3FF\",\r\n \"1F64F-1F3FE\",\r\n \"1F64F-1F3FD\",\r\n \"1F64F-1F3FC\",\r\n \"1F64F-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 532,\r\n \"code\": \"1F91D\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"agreement\",\r\n \"hand\",\r\n \"handshake\",\r\n \"meeting\",\r\n \"shake\"\r\n ],\r\n \"types\": [\r\n \"1F91D-1F3FF\",\r\n \"1F91D-1F3FE\",\r\n \"1F91D-1F3FD\",\r\n \"1F91D-1F3FC\",\r\n \"1F91D-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 538,\r\n \"code\": \"1F485\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"care\",\r\n \"cosmetics\",\r\n \"manicure\",\r\n \"nail\",\r\n \"polish\"\r\n ],\r\n \"types\": [\r\n \"1F485-1F3FF\",\r\n \"1F485-1F3FE\",\r\n \"1F485-1F3FD\",\r\n \"1F485-1F3FC\",\r\n \"1F485-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 544,\r\n \"code\": \"1F442\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"ear\"\r\n ],\r\n \"types\": [\r\n \"1F442-1F3FF\",\r\n \"1F442-1F3FE\",\r\n \"1F442-1F3FD\",\r\n \"1F442-1F3FC\",\r\n \"1F442-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 550,\r\n \"code\": \"1F443\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"nose\"\r\n ],\r\n \"types\": [\r\n \"1F443-1F3FF\",\r\n \"1F443-1F3FE\",\r\n \"1F443-1F3FD\",\r\n \"1F443-1F3FC\",\r\n \"1F443-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 556,\r\n \"code\": \"1F463\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"clothing\",\r\n \"footprint\",\r\n \"print\"\r\n ]\r\n },\r\n {\r\n \"no\": 557,\r\n \"code\": \"1F440\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"eye\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 558,\r\n \"code\": \"1F441\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"eye\"\r\n ]\r\n },\r\n {\r\n \"no\": 559,\r\n \"code\": \"1F441-200D-1F5E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bubble\",\r\n \"eye\",\r\n \"speech\",\r\n \"witness\"\r\n ]\r\n },\r\n {\r\n \"no\": 560,\r\n \"code\": \"1F445\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"tongue\"\r\n ]\r\n },\r\n {\r\n \"no\": 561,\r\n \"code\": \"1F444\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"body\",\r\n \"lips\",\r\n \"mouth\"\r\n ]\r\n },\r\n {\r\n \"no\": 562,\r\n \"code\": \"1F48B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\",\r\n \"kiss\",\r\n \"lips\",\r\n \"mark\",\r\n \"romance\"\r\n ]\r\n },\r\n {\r\n \"no\": 563,\r\n \"code\": \"1F498\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"cupid\",\r\n \"heart\",\r\n \"romance\"\r\n ]\r\n },\r\n {\r\n \"no\": 564,\r\n \"code\": \"2764\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\"\r\n ]\r\n },\r\n {\r\n \"no\": 565,\r\n \"code\": \"1F493\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beating\",\r\n \"heart\",\r\n \"heartbeat\",\r\n \"pulsating\"\r\n ]\r\n },\r\n {\r\n \"no\": 566,\r\n \"code\": \"1F494\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"break\",\r\n \"broken\",\r\n \"heart\"\r\n ]\r\n },\r\n {\r\n \"no\": 567,\r\n \"code\": \"1F495\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\",\r\n \"love\"\r\n ]\r\n },\r\n {\r\n \"no\": 568,\r\n \"code\": \"1F496\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"excited\",\r\n \"heart\",\r\n \"sparkle\"\r\n ]\r\n },\r\n {\r\n \"no\": 569,\r\n \"code\": \"1F497\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"excited\",\r\n \"growing\",\r\n \"heart\",\r\n \"heartpulse\",\r\n \"nervous\"\r\n ]\r\n },\r\n {\r\n \"no\": 570,\r\n \"code\": \"1F499\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blue\",\r\n \"heart\"\r\n ]\r\n },\r\n {\r\n \"no\": 571,\r\n \"code\": \"1F49A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"green\",\r\n \"heart\"\r\n ]\r\n },\r\n {\r\n \"no\": 572,\r\n \"code\": \"1F49B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\",\r\n \"yellow\"\r\n ]\r\n },\r\n {\r\n \"no\": 573,\r\n \"code\": \"1F49C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\",\r\n \"purple\"\r\n ]\r\n },\r\n {\r\n \"no\": 574,\r\n \"code\": \"1F5A4\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"black\",\r\n \"evil\",\r\n \"heart\",\r\n \"wicked\"\r\n ]\r\n },\r\n {\r\n \"no\": 575,\r\n \"code\": \"1F49D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\",\r\n \"ribbon\",\r\n \"valentine\"\r\n ]\r\n },\r\n {\r\n \"no\": 576,\r\n \"code\": \"1F49E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\",\r\n \"revolving\"\r\n ]\r\n },\r\n {\r\n \"no\": 577,\r\n \"code\": \"1F49F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\"\r\n ]\r\n },\r\n {\r\n \"no\": 578,\r\n \"code\": \"2763\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"exclamation\",\r\n \"heart\",\r\n \"mark\",\r\n \"punctuation\"\r\n ]\r\n },\r\n {\r\n \"no\": 579,\r\n \"code\": \"1F48C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"heart\",\r\n \"letter\",\r\n \"love\",\r\n \"mail\",\r\n \"romance\"\r\n ]\r\n },\r\n {\r\n \"no\": 580,\r\n \"code\": \"1F4A4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comic\",\r\n \"sleep\",\r\n \"zzz\"\r\n ]\r\n },\r\n {\r\n \"no\": 581,\r\n \"code\": \"1F4A2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"angry\",\r\n \"comic\",\r\n \"mad\"\r\n ]\r\n },\r\n {\r\n \"no\": 582,\r\n \"code\": \"1F4A3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bomb\",\r\n \"comic\"\r\n ]\r\n },\r\n {\r\n \"no\": 583,\r\n \"code\": \"1F4A5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boom\",\r\n \"collision\",\r\n \"comic\"\r\n ]\r\n },\r\n {\r\n \"no\": 584,\r\n \"code\": \"1F4A6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comic\",\r\n \"splashing\",\r\n \"sweat\"\r\n ]\r\n },\r\n {\r\n \"no\": 585,\r\n \"code\": \"1F4A8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comic\",\r\n \"dash\",\r\n \"running\"\r\n ]\r\n },\r\n {\r\n \"no\": 586,\r\n \"code\": \"1F4AB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comic\",\r\n \"dizzy\",\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 587,\r\n \"code\": \"1F4AC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"balloon\",\r\n \"bubble\",\r\n \"comic\",\r\n \"dialog\",\r\n \"speech\"\r\n ]\r\n },\r\n {\r\n \"no\": 588,\r\n \"code\": \"1F5E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dialog\",\r\n \"speech\"\r\n ]\r\n },\r\n {\r\n \"no\": 589,\r\n \"code\": \"1F5EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"angry\",\r\n \"balloon\",\r\n \"bubble\",\r\n \"mad\"\r\n ]\r\n },\r\n {\r\n \"no\": 590,\r\n \"code\": \"1F4AD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"balloon\",\r\n \"bubble\",\r\n \"comic\",\r\n \"thought\"\r\n ]\r\n },\r\n {\r\n \"no\": 591,\r\n \"code\": \"1F573\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hole\"\r\n ]\r\n },\r\n {\r\n \"no\": 592,\r\n \"code\": \"1F453\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"eye\",\r\n \"eyeglasses\",\r\n \"eyewear\",\r\n \"glasses\"\r\n ]\r\n },\r\n {\r\n \"no\": 593,\r\n \"code\": \"1F576\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dark\",\r\n \"eye\",\r\n \"eyewear\",\r\n \"glasses\",\r\n \"sunglasses\"\r\n ]\r\n },\r\n {\r\n \"no\": 594,\r\n \"code\": \"1F454\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"necktie\"\r\n ]\r\n },\r\n {\r\n \"no\": 595,\r\n \"code\": \"1F455\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"shirt\",\r\n \"tshirt\"\r\n ]\r\n },\r\n {\r\n \"no\": 596,\r\n \"code\": \"1F456\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"jeans\",\r\n \"pants\",\r\n \"trousers\"\r\n ]\r\n },\r\n {\r\n \"no\": 597,\r\n \"code\": \"1F457\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"dress\"\r\n ]\r\n },\r\n {\r\n \"no\": 598,\r\n \"code\": \"1F458\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"kimono\"\r\n ]\r\n },\r\n {\r\n \"no\": 599,\r\n \"code\": \"1F459\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bikini\",\r\n \"clothing\",\r\n \"swim\"\r\n ]\r\n },\r\n {\r\n \"no\": 600,\r\n \"code\": \"1F45A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 601,\r\n \"code\": \"1F45B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"coin\",\r\n \"purse\"\r\n ]\r\n },\r\n {\r\n \"no\": 602,\r\n \"code\": \"1F45C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bag\",\r\n \"clothing\",\r\n \"handbag\"\r\n ]\r\n },\r\n {\r\n \"no\": 603,\r\n \"code\": \"1F45D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bag\",\r\n \"clothing\",\r\n \"pouch\"\r\n ]\r\n },\r\n {\r\n \"no\": 604,\r\n \"code\": \"1F6CD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bag\",\r\n \"hotel\",\r\n \"shopping\"\r\n ]\r\n },\r\n {\r\n \"no\": 605,\r\n \"code\": \"1F392\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"bag\",\r\n \"satchel\",\r\n \"school\"\r\n ]\r\n },\r\n {\r\n \"no\": 606,\r\n \"code\": \"1F45E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"man\",\r\n \"shoe\"\r\n ]\r\n },\r\n {\r\n \"no\": 607,\r\n \"code\": \"1F45F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"athletic\",\r\n \"clothing\",\r\n \"shoe\",\r\n \"sneaker\"\r\n ]\r\n },\r\n {\r\n \"no\": 608,\r\n \"code\": \"1F460\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"heel\",\r\n \"shoe\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 609,\r\n \"code\": \"1F461\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"sandal\",\r\n \"shoe\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 610,\r\n \"code\": \"1F462\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boot\",\r\n \"clothing\",\r\n \"shoe\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 611,\r\n \"code\": \"1F451\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"crown\",\r\n \"king\",\r\n \"queen\"\r\n ]\r\n },\r\n {\r\n \"no\": 612,\r\n \"code\": \"1F452\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"hat\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 613,\r\n \"code\": \"1F3A9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"clothing\",\r\n \"entertainment\",\r\n \"hat\",\r\n \"top\",\r\n \"tophat\"\r\n ]\r\n },\r\n {\r\n \"no\": 614,\r\n \"code\": \"1F393\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"cap\",\r\n \"celebration\",\r\n \"clothing\",\r\n \"graduation\",\r\n \"hat\"\r\n ]\r\n },\r\n {\r\n \"no\": 615,\r\n \"code\": \"26D1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"aid\",\r\n \"cross\",\r\n \"face\",\r\n \"hat\",\r\n \"helmet\"\r\n ]\r\n },\r\n {\r\n \"no\": 616,\r\n \"code\": \"1F4FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beads\",\r\n \"clothing\",\r\n \"necklace\",\r\n \"prayer\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 617,\r\n \"code\": \"1F484\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cosmetics\",\r\n \"lipstick\",\r\n \"makeup\"\r\n ]\r\n },\r\n {\r\n \"no\": 618,\r\n \"code\": \"1F48D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"diamond\",\r\n \"ring\",\r\n \"romance\"\r\n ]\r\n },\r\n {\r\n \"no\": 619,\r\n \"code\": \"1F48E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"diamond\",\r\n \"gem\",\r\n \"jewel\",\r\n \"romance\"\r\n ]\r\n }\r\n ],\r\n ANIMALS: [\r\n {\r\n \"no\": 620,\r\n \"code\": \"1F435\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"monkey\"\r\n ]\r\n },\r\n {\r\n \"no\": 621,\r\n \"code\": \"1F412\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"monkey\"\r\n ]\r\n },\r\n {\r\n \"no\": 622,\r\n \"code\": \"1F98D\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"gorilla\"\r\n ]\r\n },\r\n {\r\n \"no\": 623,\r\n \"code\": \"1F436\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dog\",\r\n \"face\",\r\n \"pet\"\r\n ]\r\n },\r\n {\r\n \"no\": 624,\r\n \"code\": \"1F415\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dog\",\r\n \"pet\"\r\n ]\r\n },\r\n {\r\n \"no\": 625,\r\n \"code\": \"1F429\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dog\",\r\n \"poodle\"\r\n ]\r\n },\r\n {\r\n \"no\": 626,\r\n \"code\": \"1F43A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"wolf\"\r\n ]\r\n },\r\n {\r\n \"no\": 627,\r\n \"code\": \"1F98A\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"face\",\r\n \"fox\"\r\n ]\r\n },\r\n {\r\n \"no\": 628,\r\n \"code\": \"1F431\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"face\",\r\n \"pet\"\r\n ]\r\n },\r\n {\r\n \"no\": 629,\r\n \"code\": \"1F408\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cat\",\r\n \"pet\"\r\n ]\r\n },\r\n {\r\n \"no\": 630,\r\n \"code\": \"1F981\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"leo\",\r\n \"lion\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 631,\r\n \"code\": \"1F42F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"tiger\"\r\n ]\r\n },\r\n {\r\n \"no\": 632,\r\n \"code\": \"1F405\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"tiger\"\r\n ]\r\n },\r\n {\r\n \"no\": 633,\r\n \"code\": \"1F406\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"leopard\"\r\n ]\r\n },\r\n {\r\n \"no\": 634,\r\n \"code\": \"1F434\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"horse\"\r\n ]\r\n },\r\n {\r\n \"no\": 635,\r\n \"code\": \"1F40E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"horse\",\r\n \"racehorse\",\r\n \"racing\"\r\n ]\r\n },\r\n {\r\n \"no\": 636,\r\n \"code\": \"1F98C\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"deer\"\r\n ]\r\n },\r\n {\r\n \"no\": 637,\r\n \"code\": \"1F984\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"unicorn\"\r\n ]\r\n },\r\n {\r\n \"no\": 638,\r\n \"code\": \"1F42E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cow\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 639,\r\n \"code\": \"1F402\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bull\",\r\n \"ox\",\r\n \"taurus\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 640,\r\n \"code\": \"1F403\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"buffalo\",\r\n \"water\"\r\n ]\r\n },\r\n {\r\n \"no\": 641,\r\n \"code\": \"1F404\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cow\"\r\n ]\r\n },\r\n {\r\n \"no\": 642,\r\n \"code\": \"1F437\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"pig\"\r\n ]\r\n },\r\n {\r\n \"no\": 643,\r\n \"code\": \"1F416\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"pig\",\r\n \"sow\"\r\n ]\r\n },\r\n {\r\n \"no\": 644,\r\n \"code\": \"1F417\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boar\",\r\n \"pig\"\r\n ]\r\n },\r\n {\r\n \"no\": 645,\r\n \"code\": \"1F43D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"nose\",\r\n \"pig\"\r\n ]\r\n },\r\n {\r\n \"no\": 646,\r\n \"code\": \"1F40F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"aries\",\r\n \"ram\",\r\n \"sheep\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 647,\r\n \"code\": \"1F411\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ewe\",\r\n \"sheep\"\r\n ]\r\n },\r\n {\r\n \"no\": 648,\r\n \"code\": \"1F410\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"capricorn\",\r\n \"goat\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 649,\r\n \"code\": \"1F42A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"camel\",\r\n \"dromedary\",\r\n \"hump\"\r\n ]\r\n },\r\n {\r\n \"no\": 650,\r\n \"code\": \"1F42B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bactrian\",\r\n \"camel\",\r\n \"hump\"\r\n ]\r\n },\r\n {\r\n \"no\": 651,\r\n \"code\": \"1F418\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"elephant\"\r\n ]\r\n },\r\n {\r\n \"no\": 652,\r\n \"code\": \"1F98F\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"rhinoceros\"\r\n ]\r\n },\r\n {\r\n \"no\": 653,\r\n \"code\": \"1F42D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"mouse\"\r\n ]\r\n },\r\n {\r\n \"no\": 654,\r\n \"code\": \"1F401\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mouse\"\r\n ]\r\n },\r\n {\r\n \"no\": 655,\r\n \"code\": \"1F400\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"rat\"\r\n ]\r\n },\r\n {\r\n \"no\": 656,\r\n \"code\": \"1F439\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"hamster\",\r\n \"pet\"\r\n ]\r\n },\r\n {\r\n \"no\": 657,\r\n \"code\": \"1F430\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bunny\",\r\n \"face\",\r\n \"pet\",\r\n \"rabbit\"\r\n ]\r\n },\r\n {\r\n \"no\": 658,\r\n \"code\": \"1F407\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bunny\",\r\n \"pet\",\r\n \"rabbit\"\r\n ]\r\n },\r\n {\r\n \"no\": 659,\r\n \"code\": \"1F43F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chipmunk\"\r\n ]\r\n },\r\n {\r\n \"no\": 660,\r\n \"code\": \"1F987\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"bat\",\r\n \"vampire\"\r\n ]\r\n },\r\n {\r\n \"no\": 661,\r\n \"code\": \"1F43B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bear\",\r\n \"face\"\r\n ]\r\n },\r\n {\r\n \"no\": 662,\r\n \"code\": \"1F428\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bear\",\r\n \"koala\"\r\n ]\r\n },\r\n {\r\n \"no\": 663,\r\n \"code\": \"1F43C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"panda\"\r\n ]\r\n },\r\n {\r\n \"no\": 664,\r\n \"code\": \"1F43E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"feet\",\r\n \"paw\",\r\n \"print\"\r\n ]\r\n },\r\n {\r\n \"no\": 665,\r\n \"code\": \"1F983\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"turkey\"\r\n ]\r\n },\r\n {\r\n \"no\": 666,\r\n \"code\": \"1F414\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chicken\"\r\n ]\r\n },\r\n {\r\n \"no\": 667,\r\n \"code\": \"1F413\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"rooster\"\r\n ]\r\n },\r\n {\r\n \"no\": 668,\r\n \"code\": \"1F423\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baby\",\r\n \"chick\",\r\n \"hatching\"\r\n ]\r\n },\r\n {\r\n \"no\": 669,\r\n \"code\": \"1F424\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baby\",\r\n \"chick\"\r\n ]\r\n },\r\n {\r\n \"no\": 670,\r\n \"code\": \"1F425\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baby\",\r\n \"chick\"\r\n ]\r\n },\r\n {\r\n \"no\": 671,\r\n \"code\": \"1F426\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bird\"\r\n ]\r\n },\r\n {\r\n \"no\": 672,\r\n \"code\": \"1F427\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"penguin\"\r\n ]\r\n },\r\n {\r\n \"no\": 673,\r\n \"code\": \"1F54A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bird\",\r\n \"dove\",\r\n \"fly\",\r\n \"peace\"\r\n ]\r\n },\r\n {\r\n \"no\": 674,\r\n \"code\": \"1F985\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"bird\",\r\n \"eagle\"\r\n ]\r\n },\r\n {\r\n \"no\": 675,\r\n \"code\": \"1F986\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"bird\",\r\n \"duck\"\r\n ]\r\n },\r\n {\r\n \"no\": 676,\r\n \"code\": \"1F989\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"bird\",\r\n \"owl\",\r\n \"wise\"\r\n ]\r\n },\r\n {\r\n \"no\": 677,\r\n \"code\": \"1F438\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"frog\"\r\n ]\r\n },\r\n {\r\n \"no\": 678,\r\n \"code\": \"1F40A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"crocodile\"\r\n ]\r\n },\r\n {\r\n \"no\": 679,\r\n \"code\": \"1F422\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"turtle\"\r\n ]\r\n },\r\n {\r\n \"no\": 680,\r\n \"code\": \"1F98E\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"lizard\",\r\n \"reptile\"\r\n ]\r\n },\r\n {\r\n \"no\": 681,\r\n \"code\": \"1F40D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bearer\",\r\n \"ophiuchus\",\r\n \"serpent\",\r\n \"snake\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 682,\r\n \"code\": \"1F432\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dragon\",\r\n \"face\",\r\n \"fairy tale\"\r\n ]\r\n },\r\n {\r\n \"no\": 683,\r\n \"code\": \"1F409\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dragon\",\r\n \"fairy tale\"\r\n ]\r\n },\r\n {\r\n \"no\": 684,\r\n \"code\": \"1F433\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"spouting\",\r\n \"whale\"\r\n ]\r\n },\r\n {\r\n \"no\": 685,\r\n \"code\": \"1F40B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"whale\"\r\n ]\r\n },\r\n {\r\n \"no\": 686,\r\n \"code\": \"1F42C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dolphin\",\r\n \"flipper\"\r\n ]\r\n },\r\n {\r\n \"no\": 687,\r\n \"code\": \"1F41F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fish\",\r\n \"pisces\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 688,\r\n \"code\": \"1F420\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fish\",\r\n \"tropical\"\r\n ]\r\n },\r\n {\r\n \"no\": 689,\r\n \"code\": \"1F421\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blowfish\",\r\n \"fish\"\r\n ]\r\n },\r\n {\r\n \"no\": 690,\r\n \"code\": \"1F988\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"fish\",\r\n \"shark\"\r\n ]\r\n },\r\n {\r\n \"no\": 691,\r\n \"code\": \"1F419\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"octopus\"\r\n ]\r\n },\r\n {\r\n \"no\": 692,\r\n \"code\": \"1F41A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"shell\",\r\n \"spiral\"\r\n ]\r\n },\r\n {\r\n \"no\": 693,\r\n \"code\": \"1F980\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cancer\",\r\n \"crab\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 694,\r\n \"code\": \"1F990\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"shellfish\",\r\n \"shrimp\",\r\n \"small\"\r\n ]\r\n },\r\n {\r\n \"no\": 695,\r\n \"code\": \"1F991\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"molusc\",\r\n \"squid\"\r\n ]\r\n },\r\n {\r\n \"no\": 696,\r\n \"code\": \"1F98B\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"butterfly\",\r\n \"insect\",\r\n \"pretty\"\r\n ]\r\n },\r\n {\r\n \"no\": 697,\r\n \"code\": \"1F40C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"snail\"\r\n ]\r\n },\r\n {\r\n \"no\": 698,\r\n \"code\": \"1F41B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bug\",\r\n \"insect\"\r\n ]\r\n },\r\n {\r\n \"no\": 699,\r\n \"code\": \"1F41C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ant\",\r\n \"insect\"\r\n ]\r\n },\r\n {\r\n \"no\": 700,\r\n \"code\": \"1F41D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bee\",\r\n \"honeybee\",\r\n \"insect\"\r\n ]\r\n },\r\n {\r\n \"no\": 701,\r\n \"code\": \"1F41E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beetle\",\r\n \"insect\",\r\n \"lady beetle\",\r\n \"ladybird\",\r\n \"ladybug\"\r\n ]\r\n },\r\n {\r\n \"no\": 702,\r\n \"code\": \"1F577\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"insect\",\r\n \"spider\"\r\n ]\r\n },\r\n {\r\n \"no\": 703,\r\n \"code\": \"1F578\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"spider\",\r\n \"web\"\r\n ]\r\n },\r\n {\r\n \"no\": 704,\r\n \"code\": \"1F982\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"scorpio\",\r\n \"scorpion\",\r\n \"scorpius\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 705,\r\n \"code\": \"1F490\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bouquet\",\r\n \"flower\",\r\n \"plant\",\r\n \"romance\"\r\n ]\r\n },\r\n {\r\n \"no\": 706,\r\n \"code\": \"1F338\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blossom\",\r\n \"cherry\",\r\n \"flower\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 707,\r\n \"code\": \"1F4AE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flower\"\r\n ]\r\n },\r\n {\r\n \"no\": 708,\r\n \"code\": \"1F3F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"plant\",\r\n \"rosette\"\r\n ]\r\n },\r\n {\r\n \"no\": 709,\r\n \"code\": \"1F339\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flower\",\r\n \"plant\",\r\n \"rose\"\r\n ]\r\n },\r\n {\r\n \"no\": 710,\r\n \"code\": \"1F940\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"flower\",\r\n \"wilted\"\r\n ]\r\n },\r\n {\r\n \"no\": 711,\r\n \"code\": \"1F33A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flower\",\r\n \"hibiscus\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 712,\r\n \"code\": \"1F33B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flower\",\r\n \"plant\",\r\n \"sun\",\r\n \"sunflower\"\r\n ]\r\n },\r\n {\r\n \"no\": 713,\r\n \"code\": \"1F33C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blossom\",\r\n \"flower\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 714,\r\n \"code\": \"1F337\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flower\",\r\n \"plant\",\r\n \"tulip\"\r\n ]\r\n },\r\n {\r\n \"no\": 715,\r\n \"code\": \"1F331\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"plant\",\r\n \"seedling\",\r\n \"young\"\r\n ]\r\n },\r\n {\r\n \"no\": 716,\r\n \"code\": \"1F332\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"evergreen\",\r\n \"plant\",\r\n \"tree\"\r\n ]\r\n },\r\n {\r\n \"no\": 717,\r\n \"code\": \"1F333\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"deciduous\",\r\n \"plant\",\r\n \"shedding\",\r\n \"tree\"\r\n ]\r\n },\r\n {\r\n \"no\": 718,\r\n \"code\": \"1F334\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"palm\",\r\n \"plant\",\r\n \"tree\"\r\n ]\r\n },\r\n {\r\n \"no\": 719,\r\n \"code\": \"1F335\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cactus\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 720,\r\n \"code\": \"1F33E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ear\",\r\n \"plant\",\r\n \"rice\"\r\n ]\r\n },\r\n {\r\n \"no\": 721,\r\n \"code\": \"1F33F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"herb\",\r\n \"leaf\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 722,\r\n \"code\": \"2618\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"plant\",\r\n \"shamrock\"\r\n ]\r\n },\r\n {\r\n \"no\": 723,\r\n \"code\": \"1F340\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"4\",\r\n \"clover\",\r\n \"four\",\r\n \"leaf\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 724,\r\n \"code\": \"1F341\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"falling\",\r\n \"leaf\",\r\n \"maple\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 725,\r\n \"code\": \"1F342\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"falling\",\r\n \"leaf\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 726,\r\n \"code\": \"1F343\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blow\",\r\n \"flutter\",\r\n \"leaf\",\r\n \"plant\",\r\n \"wind\"\r\n ]\r\n },\r\n {\r\n \"no\": 727,\r\n \"code\": \"1F347\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"grape\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 728,\r\n \"code\": \"1F348\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"melon\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 729,\r\n \"code\": \"1F349\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"plant\",\r\n \"watermelon\"\r\n ]\r\n },\r\n {\r\n \"no\": 730,\r\n \"code\": \"1F34A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"orange\",\r\n \"plant\",\r\n \"tangerine\"\r\n ]\r\n },\r\n {\r\n \"no\": 731,\r\n \"code\": \"1F34B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"citrus\",\r\n \"fruit\",\r\n \"lemon\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 732,\r\n \"code\": \"1F34C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"banana\",\r\n \"fruit\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 733,\r\n \"code\": \"1F34D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"pineapple\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 734,\r\n \"code\": \"1F34E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"apple\",\r\n \"fruit\",\r\n \"plant\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 735,\r\n \"code\": \"1F34F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"apple\",\r\n \"fruit\",\r\n \"green\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 736,\r\n \"code\": \"1F350\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"pear\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 737,\r\n \"code\": \"1F351\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"peach\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 738,\r\n \"code\": \"1F352\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cherry\",\r\n \"fruit\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 739,\r\n \"code\": \"1F353\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"berry\",\r\n \"fruit\",\r\n \"plant\",\r\n \"strawberry\"\r\n ]\r\n },\r\n {\r\n \"no\": 740,\r\n \"code\": \"1F345\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"plant\",\r\n \"tomato\",\r\n \"vegetable\"\r\n ]\r\n },\r\n {\r\n \"no\": 741,\r\n \"code\": \"1F95D\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"fruit\",\r\n \"kiwi\"\r\n ]\r\n },\r\n {\r\n \"no\": 742,\r\n \"code\": \"1F951\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"avocado\",\r\n \"fruit\"\r\n ]\r\n },\r\n {\r\n \"no\": 743,\r\n \"code\": \"1F346\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"aubergine\",\r\n \"eggplant\",\r\n \"plant\",\r\n \"vegetable\"\r\n ]\r\n },\r\n {\r\n \"no\": 744,\r\n \"code\": \"1F954\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"potato\",\r\n \"vegetable\"\r\n ]\r\n },\r\n {\r\n \"no\": 745,\r\n \"code\": \"1F955\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"carrot\",\r\n \"vegetable\"\r\n ]\r\n },\r\n {\r\n \"no\": 746,\r\n \"code\": \"1F33D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"corn\",\r\n \"ear\",\r\n \"maize\",\r\n \"maze\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 747,\r\n \"code\": \"1F336\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hot\",\r\n \"pepper\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 748,\r\n \"code\": \"1F952\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"cucumber\",\r\n \"pickle\",\r\n \"vegetable\"\r\n ]\r\n },\r\n {\r\n \"no\": 749,\r\n \"code\": \"1F344\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mushroom\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 750,\r\n \"code\": \"1F95C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"nut\",\r\n \"peanut\",\r\n \"vegetable\"\r\n ]\r\n },\r\n {\r\n \"no\": 751,\r\n \"code\": \"1F330\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chestnut\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 752,\r\n \"code\": \"1F35E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bread\",\r\n \"loaf\"\r\n ]\r\n },\r\n {\r\n \"no\": 753,\r\n \"code\": \"1F950\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"bread\",\r\n \"crescent roll\",\r\n \"croissant\",\r\n \"french\"\r\n ]\r\n },\r\n {\r\n \"no\": 754,\r\n \"code\": \"1F956\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"baguette\",\r\n \"bread\",\r\n \"french\"\r\n ]\r\n },\r\n {\r\n \"no\": 755,\r\n \"code\": \"1F95E\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"crêpe\",\r\n \"hotcake\",\r\n \"pancake\"\r\n ]\r\n },\r\n {\r\n \"no\": 756,\r\n \"code\": \"1F9C0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cheese\"\r\n ]\r\n },\r\n {\r\n \"no\": 757,\r\n \"code\": \"1F356\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bone\",\r\n \"meat\"\r\n ]\r\n },\r\n {\r\n \"no\": 758,\r\n \"code\": \"1F357\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bone\",\r\n \"chicken\",\r\n \"leg\",\r\n \"poultry\"\r\n ]\r\n },\r\n {\r\n \"no\": 759,\r\n \"code\": \"1F953\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"bacon\",\r\n \"meat\"\r\n ]\r\n },\r\n {\r\n \"no\": 760,\r\n \"code\": \"1F354\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"burger\",\r\n \"hamburger\"\r\n ]\r\n },\r\n {\r\n \"no\": 761,\r\n \"code\": \"1F35F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"french\",\r\n \"fries\"\r\n ]\r\n },\r\n {\r\n \"no\": 762,\r\n \"code\": \"1F355\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cheese\",\r\n \"pizza\",\r\n \"slice\"\r\n ]\r\n },\r\n {\r\n \"no\": 763,\r\n \"code\": \"1F32D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"frankfurter\",\r\n \"hot dog\",\r\n \"hotdog\",\r\n \"sausage\"\r\n ]\r\n },\r\n {\r\n \"no\": 764,\r\n \"code\": \"1F32E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mexican\",\r\n \"taco\"\r\n ]\r\n },\r\n {\r\n \"no\": 765,\r\n \"code\": \"1F32F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"burrito\",\r\n \"mexican\"\r\n ]\r\n },\r\n {\r\n \"no\": 766,\r\n \"code\": \"1F959\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"falafel\",\r\n \"flatbread\",\r\n \"gyro\",\r\n \"kebab\",\r\n \"stuffed\"\r\n ]\r\n },\r\n {\r\n \"no\": 767,\r\n \"code\": \"1F95A\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"egg\"\r\n ]\r\n },\r\n {\r\n \"no\": 768,\r\n \"code\": \"1F373\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cooking\",\r\n \"egg\",\r\n \"frying\",\r\n \"pan\"\r\n ]\r\n },\r\n {\r\n \"no\": 769,\r\n \"code\": \"1F958\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"casserole\",\r\n \"paella\",\r\n \"pan\",\r\n \"shallow\"\r\n ]\r\n },\r\n {\r\n \"no\": 770,\r\n \"code\": \"1F372\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"pot\",\r\n \"stew\"\r\n ]\r\n },\r\n {\r\n \"no\": 771,\r\n \"code\": \"1F957\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"green\",\r\n \"salad\"\r\n ]\r\n },\r\n {\r\n \"no\": 772,\r\n \"code\": \"1F37F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"popcorn\"\r\n ]\r\n },\r\n {\r\n \"no\": 773,\r\n \"code\": \"1F371\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bento\",\r\n \"box\"\r\n ]\r\n },\r\n {\r\n \"no\": 774,\r\n \"code\": \"1F358\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cracker\",\r\n \"rice\"\r\n ]\r\n },\r\n {\r\n \"no\": 775,\r\n \"code\": \"1F359\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"japanese\",\r\n \"rice\"\r\n ]\r\n },\r\n {\r\n \"no\": 776,\r\n \"code\": \"1F35A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cooked\",\r\n \"rice\"\r\n ]\r\n },\r\n {\r\n \"no\": 777,\r\n \"code\": \"1F35B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"curry\",\r\n \"rice\"\r\n ]\r\n },\r\n {\r\n \"no\": 778,\r\n \"code\": \"1F35C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bowl\",\r\n \"noodle\",\r\n \"ramen\",\r\n \"steaming\"\r\n ]\r\n },\r\n {\r\n \"no\": 779,\r\n \"code\": \"1F35D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"pasta\",\r\n \"spaghetti\"\r\n ]\r\n },\r\n {\r\n \"no\": 780,\r\n \"code\": \"1F360\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"potato\",\r\n \"roasted\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 781,\r\n \"code\": \"1F362\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"kebab\",\r\n \"oden\",\r\n \"seafood\",\r\n \"skewer\",\r\n \"stick\"\r\n ]\r\n },\r\n {\r\n \"no\": 782,\r\n \"code\": \"1F363\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"sushi\"\r\n ]\r\n },\r\n {\r\n \"no\": 783,\r\n \"code\": \"1F364\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fried\",\r\n \"prawn\",\r\n \"shrimp\",\r\n \"tempura\"\r\n ]\r\n },\r\n {\r\n \"no\": 784,\r\n \"code\": \"1F365\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cake\",\r\n \"fish\",\r\n \"pastry\",\r\n \"swirl\"\r\n ]\r\n },\r\n {\r\n \"no\": 785,\r\n \"code\": \"1F361\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dango\",\r\n \"dessert\",\r\n \"japanese\",\r\n \"skewer\",\r\n \"stick\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 786,\r\n \"code\": \"1F366\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cream\",\r\n \"dessert\",\r\n \"ice\",\r\n \"icecream\",\r\n \"soft\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 787,\r\n \"code\": \"1F367\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dessert\",\r\n \"ice\",\r\n \"shaved\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 788,\r\n \"code\": \"1F368\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cream\",\r\n \"dessert\",\r\n \"ice\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 789,\r\n \"code\": \"1F369\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dessert\",\r\n \"donut\",\r\n \"doughnut\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 790,\r\n \"code\": \"1F36A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cookie\",\r\n \"dessert\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 791,\r\n \"code\": \"1F382\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"birthday\",\r\n \"cake\",\r\n \"celebration\",\r\n \"dessert\",\r\n \"pastry\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 792,\r\n \"code\": \"1F370\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cake\",\r\n \"dessert\",\r\n \"pastry\",\r\n \"shortcake\",\r\n \"slice\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 793,\r\n \"code\": \"1F36B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"chocolate\",\r\n \"dessert\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 794,\r\n \"code\": \"1F36C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"candy\",\r\n \"dessert\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 795,\r\n \"code\": \"1F36D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"candy\",\r\n \"dessert\",\r\n \"lollipop\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 796,\r\n \"code\": \"1F36E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"custard\",\r\n \"dessert\",\r\n \"pudding\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 797,\r\n \"code\": \"1F36F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"honey\",\r\n \"honeypot\",\r\n \"pot\",\r\n \"sweet\"\r\n ]\r\n },\r\n {\r\n \"no\": 798,\r\n \"code\": \"1F37C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baby\",\r\n \"bottle\",\r\n \"drink\",\r\n \"milk\"\r\n ]\r\n },\r\n {\r\n \"no\": 799,\r\n \"code\": \"1F95B\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"drink\",\r\n \"glass\",\r\n \"milk\"\r\n ]\r\n },\r\n {\r\n \"no\": 800,\r\n \"code\": \"2615\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beverage\",\r\n \"coffee\",\r\n \"drink\",\r\n \"hot\",\r\n \"steaming\",\r\n \"tea\"\r\n ]\r\n },\r\n {\r\n \"no\": 801,\r\n \"code\": \"1F375\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beverage\",\r\n \"cup\",\r\n \"drink\",\r\n \"tea\",\r\n \"teacup\"\r\n ]\r\n },\r\n {\r\n \"no\": 802,\r\n \"code\": \"1F376\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"beverage\",\r\n \"bottle\",\r\n \"cup\",\r\n \"drink\",\r\n \"sake\"\r\n ]\r\n },\r\n {\r\n \"no\": 803,\r\n \"code\": \"1F37E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"bottle\",\r\n \"cork\",\r\n \"drink\",\r\n \"popping\"\r\n ]\r\n },\r\n {\r\n \"no\": 804,\r\n \"code\": \"1F377\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"beverage\",\r\n \"drink\",\r\n \"glass\",\r\n \"wine\"\r\n ]\r\n },\r\n {\r\n \"no\": 805,\r\n \"code\": \"1F378\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"cocktail\",\r\n \"drink\",\r\n \"glass\"\r\n ]\r\n },\r\n {\r\n \"no\": 806,\r\n \"code\": \"1F379\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"drink\",\r\n \"tropical\"\r\n ]\r\n },\r\n {\r\n \"no\": 807,\r\n \"code\": \"1F37A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"beer\",\r\n \"drink\",\r\n \"mug\"\r\n ]\r\n },\r\n {\r\n \"no\": 808,\r\n \"code\": \"1F37B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"beer\",\r\n \"clink\",\r\n \"drink\",\r\n \"mug\"\r\n ]\r\n },\r\n {\r\n \"no\": 809,\r\n \"code\": \"1F942\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"celebrate\",\r\n \"clink\",\r\n \"drink\",\r\n \"glass\"\r\n ]\r\n },\r\n {\r\n \"no\": 810,\r\n \"code\": \"1F943\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"glass\",\r\n \"liquor\",\r\n \"shot\",\r\n \"tumbler\",\r\n \"whisky\"\r\n ]\r\n },\r\n {\r\n \"no\": 811,\r\n \"code\": \"1F37D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cooking\",\r\n \"fork\",\r\n \"knife\",\r\n \"plate\"\r\n ]\r\n },\r\n {\r\n \"no\": 812,\r\n \"code\": \"1F374\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cooking\",\r\n \"fork\",\r\n \"knife\"\r\n ]\r\n },\r\n {\r\n \"no\": 813,\r\n \"code\": \"1F944\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"spoon\",\r\n \"tableware\"\r\n ]\r\n },\r\n {\r\n \"no\": 814,\r\n \"code\": \"1F52A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cooking\",\r\n \"hocho\",\r\n \"knife\",\r\n \"tool\",\r\n \"weapon\"\r\n ]\r\n },\r\n {\r\n \"no\": 815,\r\n \"code\": \"1F3FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"amphora\",\r\n \"aquarius\",\r\n \"cooking\",\r\n \"drink\",\r\n \"jug\",\r\n \"tool\",\r\n \"weapon\",\r\n \"zodiac\"\r\n ]\r\n }\r\n ],\r\n TRAVEL: [\r\n {\r\n \"no\": 816,\r\n \"code\": \"1F30D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"africa\",\r\n \"earth\",\r\n \"europe\",\r\n \"globe\",\r\n \"world\"\r\n ]\r\n },\r\n {\r\n \"no\": 817,\r\n \"code\": \"1F30E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"americas\",\r\n \"earth\",\r\n \"globe\",\r\n \"world\"\r\n ]\r\n },\r\n {\r\n \"no\": 818,\r\n \"code\": \"1F30F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"asia\",\r\n \"australia\",\r\n \"earth\",\r\n \"globe\",\r\n \"world\"\r\n ]\r\n },\r\n {\r\n \"no\": 819,\r\n \"code\": \"1F310\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"earth\",\r\n \"globe\",\r\n \"meridians\",\r\n \"world\"\r\n ]\r\n },\r\n {\r\n \"no\": 820,\r\n \"code\": \"1F5FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"map\",\r\n \"world\"\r\n ]\r\n },\r\n {\r\n \"no\": 821,\r\n \"code\": \"1F5FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japan\",\r\n \"map\"\r\n ]\r\n },\r\n {\r\n \"no\": 822,\r\n \"code\": \"1F3D4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"mountain\",\r\n \"snow\"\r\n ]\r\n },\r\n {\r\n \"no\": 823,\r\n \"code\": \"26F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mountain\"\r\n ]\r\n },\r\n {\r\n \"no\": 824,\r\n \"code\": \"1F30B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eruption\",\r\n \"mountain\",\r\n \"volcano\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 825,\r\n \"code\": \"1F5FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fuji\",\r\n \"mountain\"\r\n ]\r\n },\r\n {\r\n \"no\": 826,\r\n \"code\": \"1F3D5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"camping\"\r\n ]\r\n },\r\n {\r\n \"no\": 827,\r\n \"code\": \"1F3D6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beach\",\r\n \"umbrella\"\r\n ]\r\n },\r\n {\r\n \"no\": 828,\r\n \"code\": \"1F3DC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"desert\"\r\n ]\r\n },\r\n {\r\n \"no\": 829,\r\n \"code\": \"1F3DD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"desert\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 830,\r\n \"code\": \"1F3DE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"national park\",\r\n \"park\"\r\n ]\r\n },\r\n {\r\n \"no\": 831,\r\n \"code\": \"1F3DF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"stadium\"\r\n ]\r\n },\r\n {\r\n \"no\": 832,\r\n \"code\": \"1F3DB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"classical\"\r\n ]\r\n },\r\n {\r\n \"no\": 833,\r\n \"code\": \"1F3D7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"construction\"\r\n ]\r\n },\r\n {\r\n \"no\": 834,\r\n \"code\": \"1F3D8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"house\"\r\n ]\r\n },\r\n {\r\n \"no\": 835,\r\n \"code\": \"1F3D9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"city\"\r\n ]\r\n },\r\n {\r\n \"no\": 836,\r\n \"code\": \"1F3DA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"derelict\",\r\n \"house\"\r\n ]\r\n },\r\n {\r\n \"no\": 837,\r\n \"code\": \"1F3E0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"home\",\r\n \"house\"\r\n ]\r\n },\r\n {\r\n \"no\": 838,\r\n \"code\": \"1F3E1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"garden\",\r\n \"home\",\r\n \"house\"\r\n ]\r\n },\r\n {\r\n \"no\": 839,\r\n \"code\": \"1F3E2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\"\r\n ]\r\n },\r\n {\r\n \"no\": 840,\r\n \"code\": \"1F3E3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"japanese\",\r\n \"post\"\r\n ]\r\n },\r\n {\r\n \"no\": 841,\r\n \"code\": \"1F3E4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"european\",\r\n \"post\"\r\n ]\r\n },\r\n {\r\n \"no\": 842,\r\n \"code\": \"1F3E5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"doctor\",\r\n \"hospital\",\r\n \"medicine\"\r\n ]\r\n },\r\n {\r\n \"no\": 843,\r\n \"code\": \"1F3E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"building\"\r\n ]\r\n },\r\n {\r\n \"no\": 844,\r\n \"code\": \"1F3E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"hotel\"\r\n ]\r\n },\r\n {\r\n \"no\": 845,\r\n \"code\": \"1F3E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"hotel\",\r\n \"love\"\r\n ]\r\n },\r\n {\r\n \"no\": 846,\r\n \"code\": \"1F3EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"convenience\",\r\n \"store\"\r\n ]\r\n },\r\n {\r\n \"no\": 847,\r\n \"code\": \"1F3EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"school\"\r\n ]\r\n },\r\n {\r\n \"no\": 848,\r\n \"code\": \"1F3EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"department\",\r\n \"store\"\r\n ]\r\n },\r\n {\r\n \"no\": 849,\r\n \"code\": \"1F3ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"factory\"\r\n ]\r\n },\r\n {\r\n \"no\": 850,\r\n \"code\": \"1F3EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"castle\",\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 851,\r\n \"code\": \"1F3F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"castle\",\r\n \"european\"\r\n ]\r\n },\r\n {\r\n \"no\": 852,\r\n \"code\": \"1F492\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"chapel\",\r\n \"romance\",\r\n \"wedding\"\r\n ]\r\n },\r\n {\r\n \"no\": 853,\r\n \"code\": \"1F5FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"tokyo\",\r\n \"tower\"\r\n ]\r\n },\r\n {\r\n \"no\": 854,\r\n \"code\": \"1F5FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"liberty\",\r\n \"statue\"\r\n ]\r\n },\r\n {\r\n \"no\": 855,\r\n \"code\": \"26EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"christian\",\r\n \"church\",\r\n \"cross\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 856,\r\n \"code\": \"1F54C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"islam\",\r\n \"mosque\",\r\n \"muslim\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 857,\r\n \"code\": \"1F54D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"jew\",\r\n \"jewish\",\r\n \"religion\",\r\n \"synagogue\",\r\n \"temple\"\r\n ]\r\n },\r\n {\r\n \"no\": 858,\r\n \"code\": \"26E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"religion\",\r\n \"shinto\",\r\n \"shrine\"\r\n ]\r\n },\r\n {\r\n \"no\": 859,\r\n \"code\": \"1F54B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"islam\",\r\n \"kaaba\",\r\n \"muslim\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 860,\r\n \"code\": \"26F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fountain\"\r\n ]\r\n },\r\n {\r\n \"no\": 861,\r\n \"code\": \"26FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"camping\",\r\n \"tent\"\r\n ]\r\n },\r\n {\r\n \"no\": 862,\r\n \"code\": \"1F301\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fog\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 863,\r\n \"code\": \"1F303\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"night\",\r\n \"star\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 864,\r\n \"code\": \"1F304\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"morning\",\r\n \"mountain\",\r\n \"sun\",\r\n \"sunrise\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 865,\r\n \"code\": \"1F305\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"morning\",\r\n \"sun\",\r\n \"sunrise\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 866,\r\n \"code\": \"1F306\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"city\",\r\n \"dusk\",\r\n \"evening\",\r\n \"landscape\",\r\n \"sun\",\r\n \"sunset\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 867,\r\n \"code\": \"1F307\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"building\",\r\n \"dusk\",\r\n \"sun\",\r\n \"sunset\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 868,\r\n \"code\": \"1F309\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bridge\",\r\n \"night\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 869,\r\n \"code\": \"2668\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hot\",\r\n \"hotsprings\",\r\n \"springs\",\r\n \"steaming\"\r\n ]\r\n },\r\n {\r\n \"no\": 870,\r\n \"code\": \"1F30C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"milky way\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 871,\r\n \"code\": \"1F3A0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"carousel\",\r\n \"entertainment\",\r\n \"horse\"\r\n ]\r\n },\r\n {\r\n \"no\": 872,\r\n \"code\": \"1F3A1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"amusement park\",\r\n \"entertainment\",\r\n \"ferris\",\r\n \"wheel\"\r\n ]\r\n },\r\n {\r\n \"no\": 873,\r\n \"code\": \"1F3A2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"amusement park\",\r\n \"coaster\",\r\n \"entertainment\",\r\n \"roller\"\r\n ]\r\n },\r\n {\r\n \"no\": 874,\r\n \"code\": \"1F488\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"barber\",\r\n \"haircut\",\r\n \"pole\"\r\n ]\r\n },\r\n {\r\n \"no\": 875,\r\n \"code\": \"1F3AA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"circus\",\r\n \"entertainment\",\r\n \"tent\"\r\n ]\r\n },\r\n {\r\n \"no\": 876,\r\n \"code\": \"1F3AD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"art\",\r\n \"entertainment\",\r\n \"mask\",\r\n \"performing\",\r\n \"theater\",\r\n \"theatre\"\r\n ]\r\n },\r\n {\r\n \"no\": 877,\r\n \"code\": \"1F5BC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"art\",\r\n \"frame\",\r\n \"museum\",\r\n \"painting\",\r\n \"picture\"\r\n ]\r\n },\r\n {\r\n \"no\": 878,\r\n \"code\": \"1F3A8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"art\",\r\n \"entertainment\",\r\n \"museum\",\r\n \"painting\",\r\n \"palette\"\r\n ]\r\n },\r\n {\r\n \"no\": 879,\r\n \"code\": \"1F3B0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"game\",\r\n \"slot\"\r\n ]\r\n },\r\n {\r\n \"no\": 880,\r\n \"code\": \"1F682\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"engine\",\r\n \"locomotive\",\r\n \"railway\",\r\n \"steam\",\r\n \"train\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 881,\r\n \"code\": \"1F683\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"car\",\r\n \"electric\",\r\n \"railway\",\r\n \"train\",\r\n \"tram\",\r\n \"trolleybus\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 882,\r\n \"code\": \"1F684\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"railway\",\r\n \"shinkansen\",\r\n \"speed\",\r\n \"train\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 883,\r\n \"code\": \"1F685\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bullet\",\r\n \"railway\",\r\n \"shinkansen\",\r\n \"speed\",\r\n \"train\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 884,\r\n \"code\": \"1F686\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"railway\",\r\n \"train\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 885,\r\n \"code\": \"1F687\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"metro\",\r\n \"subway\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 886,\r\n \"code\": \"1F688\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"railway\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 887,\r\n \"code\": \"1F689\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"railway\",\r\n \"station\",\r\n \"train\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 888,\r\n \"code\": \"1F68A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"tram\",\r\n \"trolleybus\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 889,\r\n \"code\": \"1F69D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"monorail\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 890,\r\n \"code\": \"1F69E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"car\",\r\n \"mountain\",\r\n \"railway\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 891,\r\n \"code\": \"1F68B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"car\",\r\n \"tram\",\r\n \"trolleybus\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 892,\r\n \"code\": \"1F68C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bus\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 893,\r\n \"code\": \"1F68D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bus\",\r\n \"oncoming\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 894,\r\n \"code\": \"1F68E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bus\",\r\n \"tram\",\r\n \"trolley\",\r\n \"trolleybus\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 895,\r\n \"code\": \"1F68F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bus\",\r\n \"busstop\",\r\n \"stop\"\r\n ]\r\n },\r\n {\r\n \"no\": 896,\r\n \"code\": \"1F690\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bus\",\r\n \"minibus\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 897,\r\n \"code\": \"1F691\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ambulance\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 898,\r\n \"code\": \"1F692\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"engine\",\r\n \"fire\",\r\n \"truck\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 899,\r\n \"code\": \"1F693\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"car\",\r\n \"patrol\",\r\n \"police\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 900,\r\n \"code\": \"1F694\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"car\",\r\n \"oncoming\",\r\n \"police\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 901,\r\n \"code\": \"1F695\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"taxi\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 902,\r\n \"code\": \"1F696\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"oncoming\",\r\n \"taxi\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 903,\r\n \"code\": \"1F697\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"automobile\",\r\n \"car\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 904,\r\n \"code\": \"1F698\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"automobile\",\r\n \"car\",\r\n \"oncoming\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 905,\r\n \"code\": \"1F699\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"recreational\",\r\n \"rv\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 906,\r\n \"code\": \"1F69A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"delivery\",\r\n \"truck\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 907,\r\n \"code\": \"1F69B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"lorry\",\r\n \"semi\",\r\n \"truck\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 908,\r\n \"code\": \"1F69C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"tractor\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 909,\r\n \"code\": \"1F6B2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bicycle\",\r\n \"bike\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 910,\r\n \"code\": \"26FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fuel\",\r\n \"fuelpump\",\r\n \"gas\",\r\n \"pump\",\r\n \"station\"\r\n ]\r\n },\r\n {\r\n \"no\": 911,\r\n \"code\": \"1F6E3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"highway\",\r\n \"motorway\",\r\n \"road\"\r\n ]\r\n },\r\n {\r\n \"no\": 912,\r\n \"code\": \"1F6E4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"railway\",\r\n \"train\"\r\n ]\r\n },\r\n {\r\n \"no\": 913,\r\n \"code\": \"1F6A8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beacon\",\r\n \"car\",\r\n \"light\",\r\n \"police\",\r\n \"revolving\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 914,\r\n \"code\": \"1F6A5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"light\",\r\n \"signal\",\r\n \"traffic\"\r\n ]\r\n },\r\n {\r\n \"no\": 915,\r\n \"code\": \"1F6A6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"light\",\r\n \"signal\",\r\n \"traffic\"\r\n ]\r\n },\r\n {\r\n \"no\": 916,\r\n \"code\": \"1F6A7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"barrier\",\r\n \"construction\"\r\n ]\r\n },\r\n {\r\n \"no\": 917,\r\n \"code\": \"1F6D1\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"octagonal\",\r\n \"stop\"\r\n ]\r\n },\r\n {\r\n \"no\": 918,\r\n \"code\": \"1F6F4\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"kick\",\r\n \"scooter\"\r\n ]\r\n },\r\n {\r\n \"no\": 919,\r\n \"code\": \"1F6F5\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"motor\",\r\n \"scooter\"\r\n ]\r\n },\r\n {\r\n \"no\": 920,\r\n \"code\": \"2693\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"anchor\",\r\n \"ship\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 921,\r\n \"code\": \"26F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boat\",\r\n \"resort\",\r\n \"sailboat\",\r\n \"sea\",\r\n \"vehicle\",\r\n \"yacht\"\r\n ]\r\n },\r\n {\r\n \"no\": 922,\r\n \"code\": \"1F6A3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boat\",\r\n \"rowboat\",\r\n \"vehicle\"\r\n ],\r\n \"types\": [\r\n \"1F6A3-1F3FF\",\r\n \"1F6A3-1F3FE\",\r\n \"1F6A3-1F3FD\",\r\n \"1F6A3-1F3FC\",\r\n \"1F6A3-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 928,\r\n \"code\": \"1F6F6\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"boat\",\r\n \"canoe\"\r\n ]\r\n },\r\n {\r\n \"no\": 929,\r\n \"code\": \"1F6A4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boat\",\r\n \"speedboat\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 930,\r\n \"code\": \"1F6F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"passenger\",\r\n \"ship\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 931,\r\n \"code\": \"26F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boat\",\r\n \"ferry\"\r\n ]\r\n },\r\n {\r\n \"no\": 932,\r\n \"code\": \"1F6E5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"boat\",\r\n \"motorboat\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 933,\r\n \"code\": \"1F6A2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ship\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 934,\r\n \"code\": \"2708\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"airplane\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 935,\r\n \"code\": \"1F6E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"airplane\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 936,\r\n \"code\": \"1F6EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"airplane\",\r\n \"check-in\",\r\n \"departure\",\r\n \"departures\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 937,\r\n \"code\": \"1F6EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"airplane\",\r\n \"arrivals\",\r\n \"arriving\",\r\n \"landing\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 938,\r\n \"code\": \"1F4BA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chair\",\r\n \"seat\"\r\n ]\r\n },\r\n {\r\n \"no\": 939,\r\n \"code\": \"1F681\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"helicopter\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 940,\r\n \"code\": \"1F69F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"railway\",\r\n \"suspension\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 941,\r\n \"code\": \"1F6A0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cable\",\r\n \"gondola\",\r\n \"mountain\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 942,\r\n \"code\": \"1F6A1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"aerial\",\r\n \"cable\",\r\n \"car\",\r\n \"gondola\",\r\n \"ropeway\",\r\n \"tramway\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 943,\r\n \"code\": \"1F680\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"rocket\",\r\n \"space\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 944,\r\n \"code\": \"1F6F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"satellite\",\r\n \"space\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 945,\r\n \"code\": \"1F6CE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bell\",\r\n \"bellhop\",\r\n \"hotel\"\r\n ]\r\n },\r\n {\r\n \"no\": 946,\r\n \"code\": \"1F6AA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"door\"\r\n ]\r\n },\r\n {\r\n \"no\": 947,\r\n \"code\": \"1F6CC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hotel\",\r\n \"sleep\"\r\n ]\r\n },\r\n {\r\n \"no\": 948,\r\n \"code\": \"1F6CF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bed\",\r\n \"hotel\",\r\n \"sleep\"\r\n ]\r\n },\r\n {\r\n \"no\": 949,\r\n \"code\": \"1F6CB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"couch\",\r\n \"hotel\",\r\n \"lamp\"\r\n ]\r\n },\r\n {\r\n \"no\": 950,\r\n \"code\": \"1F6BD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"toilet\"\r\n ]\r\n },\r\n {\r\n \"no\": 951,\r\n \"code\": \"1F6BF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"shower\",\r\n \"water\"\r\n ]\r\n },\r\n {\r\n \"no\": 952,\r\n \"code\": \"1F6C0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bath\",\r\n \"bathtub\"\r\n ],\r\n \"types\": [\r\n \"1F6C0-1F3FF\",\r\n \"1F6C0-1F3FE\",\r\n \"1F6C0-1F3FD\",\r\n \"1F6C0-1F3FC\",\r\n \"1F6C0-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 958,\r\n \"code\": \"1F6C1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bath\",\r\n \"bathtub\"\r\n ]\r\n },\r\n {\r\n \"no\": 959,\r\n \"code\": \"231B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hourglass\",\r\n \"sand\",\r\n \"timer\"\r\n ]\r\n },\r\n {\r\n \"no\": 960,\r\n \"code\": \"23F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hourglass\",\r\n \"sand\",\r\n \"timer\"\r\n ]\r\n },\r\n {\r\n \"no\": 961,\r\n \"code\": \"231A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clock\",\r\n \"watch\"\r\n ]\r\n },\r\n {\r\n \"no\": 962,\r\n \"code\": \"23F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"alarm\",\r\n \"clock\"\r\n ]\r\n },\r\n {\r\n \"no\": 963,\r\n \"code\": \"23F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clock\",\r\n \"stopwatch\"\r\n ]\r\n },\r\n {\r\n \"no\": 964,\r\n \"code\": \"23F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clock\",\r\n \"timer\"\r\n ]\r\n },\r\n {\r\n \"no\": 965,\r\n \"code\": \"1F570\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clock\"\r\n ]\r\n },\r\n {\r\n \"no\": 966,\r\n \"code\": \"1F55B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"12\",\r\n \"12:00\",\r\n \"clock\",\r\n \"o’clock\",\r\n \"twelve\"\r\n ]\r\n },\r\n {\r\n \"no\": 967,\r\n \"code\": \"1F567\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"12\",\r\n \"12:30\",\r\n \"30\",\r\n \"clock\",\r\n \"thirty\",\r\n \"twelve\"\r\n ]\r\n },\r\n {\r\n \"no\": 968,\r\n \"code\": \"1F550\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"1\",\r\n \"1:00\",\r\n \"clock\",\r\n \"o’clock\",\r\n \"one\"\r\n ]\r\n },\r\n {\r\n \"no\": 969,\r\n \"code\": \"1F55C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"1\",\r\n \"1:30\",\r\n \"30\",\r\n \"clock\",\r\n \"one\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 970,\r\n \"code\": \"1F551\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"2\",\r\n \"2:00\",\r\n \"clock\",\r\n \"o’clock\",\r\n \"two\"\r\n ]\r\n },\r\n {\r\n \"no\": 971,\r\n \"code\": \"1F55D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"2\",\r\n \"2:30\",\r\n \"30\",\r\n \"clock\",\r\n \"thirty\",\r\n \"two\"\r\n ]\r\n },\r\n {\r\n \"no\": 972,\r\n \"code\": \"1F552\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"3\",\r\n \"3:00\",\r\n \"clock\",\r\n \"o’clock\",\r\n \"three\"\r\n ]\r\n },\r\n {\r\n \"no\": 973,\r\n \"code\": \"1F55E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"3\",\r\n \"3:30\",\r\n \"30\",\r\n \"clock\",\r\n \"thirty\",\r\n \"three\"\r\n ]\r\n },\r\n {\r\n \"no\": 974,\r\n \"code\": \"1F553\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"4\",\r\n \"4:00\",\r\n \"clock\",\r\n \"four\",\r\n \"o’clock\"\r\n ]\r\n },\r\n {\r\n \"no\": 975,\r\n \"code\": \"1F55F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"30\",\r\n \"4\",\r\n \"4:30\",\r\n \"clock\",\r\n \"four\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 976,\r\n \"code\": \"1F554\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"5\",\r\n \"5:00\",\r\n \"clock\",\r\n \"five\",\r\n \"o’clock\"\r\n ]\r\n },\r\n {\r\n \"no\": 977,\r\n \"code\": \"1F560\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"30\",\r\n \"5\",\r\n \"5:30\",\r\n \"clock\",\r\n \"five\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 978,\r\n \"code\": \"1F555\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"6\",\r\n \"6:00\",\r\n \"clock\",\r\n \"o’clock\",\r\n \"six\"\r\n ]\r\n },\r\n {\r\n \"no\": 979,\r\n \"code\": \"1F561\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"30\",\r\n \"6\",\r\n \"6:30\",\r\n \"clock\",\r\n \"six\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 980,\r\n \"code\": \"1F556\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"7\",\r\n \"7:00\",\r\n \"clock\",\r\n \"o’clock\",\r\n \"seven\"\r\n ]\r\n },\r\n {\r\n \"no\": 981,\r\n \"code\": \"1F562\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"30\",\r\n \"7\",\r\n \"7:30\",\r\n \"clock\",\r\n \"seven\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 982,\r\n \"code\": \"1F557\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"8\",\r\n \"8:00\",\r\n \"clock\",\r\n \"eight\",\r\n \"o’clock\"\r\n ]\r\n },\r\n {\r\n \"no\": 983,\r\n \"code\": \"1F563\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"30\",\r\n \"8\",\r\n \"8:30\",\r\n \"clock\",\r\n \"eight\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 984,\r\n \"code\": \"1F558\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"9\",\r\n \"9:00\",\r\n \"clock\",\r\n \"nine\",\r\n \"o’clock\"\r\n ]\r\n },\r\n {\r\n \"no\": 985,\r\n \"code\": \"1F564\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"30\",\r\n \"9\",\r\n \"9:30\",\r\n \"clock\",\r\n \"nine\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 986,\r\n \"code\": \"1F559\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"10\",\r\n \"10:00\",\r\n \"clock\",\r\n \"o’clock\",\r\n \"ten\"\r\n ]\r\n },\r\n {\r\n \"no\": 987,\r\n \"code\": \"1F565\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"10\",\r\n \"10:30\",\r\n \"30\",\r\n \"clock\",\r\n \"ten\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 988,\r\n \"code\": \"1F55A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"00\",\r\n \"11\",\r\n \"11:00\",\r\n \"clock\",\r\n \"eleven\",\r\n \"o’clock\"\r\n ]\r\n },\r\n {\r\n \"no\": 989,\r\n \"code\": \"1F566\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"11\",\r\n \"11:30\",\r\n \"30\",\r\n \"clock\",\r\n \"eleven\",\r\n \"thirty\"\r\n ]\r\n },\r\n {\r\n \"no\": 990,\r\n \"code\": \"1F311\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dark\",\r\n \"moon\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 991,\r\n \"code\": \"1F312\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"crescent\",\r\n \"moon\",\r\n \"space\",\r\n \"waxing\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 992,\r\n \"code\": \"1F313\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"moon\",\r\n \"quarter\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 993,\r\n \"code\": \"1F314\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gibbous\",\r\n \"moon\",\r\n \"space\",\r\n \"waxing\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 994,\r\n \"code\": \"1F315\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"full\",\r\n \"moon\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 995,\r\n \"code\": \"1F316\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gibbous\",\r\n \"moon\",\r\n \"space\",\r\n \"waning\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 996,\r\n \"code\": \"1F317\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"moon\",\r\n \"quarter\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 997,\r\n \"code\": \"1F318\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"crescent\",\r\n \"moon\",\r\n \"space\",\r\n \"waning\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 998,\r\n \"code\": \"1F319\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"crescent\",\r\n \"moon\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 999,\r\n \"code\": \"1F31A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"moon\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1000,\r\n \"code\": \"1F31B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"moon\",\r\n \"quarter\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1001,\r\n \"code\": \"1F31C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"moon\",\r\n \"quarter\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1002,\r\n \"code\": \"1F321\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"thermometer\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1003,\r\n \"code\": \"2600\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bright\",\r\n \"rays\",\r\n \"space\",\r\n \"sun\",\r\n \"sunny\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1004,\r\n \"code\": \"1F31D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bright\",\r\n \"face\",\r\n \"full\",\r\n \"moon\",\r\n \"space\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1005,\r\n \"code\": \"1F31E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bright\",\r\n \"face\",\r\n \"space\",\r\n \"sun\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1006,\r\n \"code\": \"2B50\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 1007,\r\n \"code\": \"1F31F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"glittery\",\r\n \"glow\",\r\n \"shining\",\r\n \"sparkle\",\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 1008,\r\n \"code\": \"1F320\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"falling\",\r\n \"shooting\",\r\n \"space\",\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 1009,\r\n \"code\": \"2601\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1010,\r\n \"code\": \"26C5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"sun\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1011,\r\n \"code\": \"26C8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"rain\",\r\n \"thunder\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1012,\r\n \"code\": \"1F324\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"sun\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1013,\r\n \"code\": \"1F325\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"sun\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1014,\r\n \"code\": \"1F326\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"rain\",\r\n \"sun\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1015,\r\n \"code\": \"1F327\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"rain\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1016,\r\n \"code\": \"1F328\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"cold\",\r\n \"snow\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1017,\r\n \"code\": \"1F329\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"lightning\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1018,\r\n \"code\": \"1F32A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"tornado\",\r\n \"weather\",\r\n \"whirlwind\"\r\n ]\r\n },\r\n {\r\n \"no\": 1019,\r\n \"code\": \"1F32B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cloud\",\r\n \"fog\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1020,\r\n \"code\": \"1F32C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blow\",\r\n \"cloud\",\r\n \"face\",\r\n \"weather\",\r\n \"wind\"\r\n ]\r\n },\r\n {\r\n \"no\": 1021,\r\n \"code\": \"1F300\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cyclone\",\r\n \"dizzy\",\r\n \"twister\",\r\n \"typhoon\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1022,\r\n \"code\": \"1F308\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"rain\",\r\n \"rainbow\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1023,\r\n \"code\": \"1F302\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"rain\",\r\n \"umbrella\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1024,\r\n \"code\": \"2602\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"rain\",\r\n \"umbrella\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1025,\r\n \"code\": \"2614\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clothing\",\r\n \"drop\",\r\n \"rain\",\r\n \"umbrella\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1026,\r\n \"code\": \"26F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"rain\",\r\n \"sun\",\r\n \"umbrella\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1027,\r\n \"code\": \"26A1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"danger\",\r\n \"electric\",\r\n \"electricity\",\r\n \"lightning\",\r\n \"voltage\",\r\n \"zap\"\r\n ]\r\n },\r\n {\r\n \"no\": 1028,\r\n \"code\": \"2744\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"snow\",\r\n \"snowflake\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1029,\r\n \"code\": \"2603\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"snow\",\r\n \"snowman\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1030,\r\n \"code\": \"26C4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"snow\",\r\n \"snowman\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1031,\r\n \"code\": \"2604\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comet\",\r\n \"space\"\r\n ]\r\n },\r\n {\r\n \"no\": 1032,\r\n \"code\": \"1F525\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fire\",\r\n \"flame\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1033,\r\n \"code\": \"1F4A7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cold\",\r\n \"comic\",\r\n \"drop\",\r\n \"sweat\",\r\n \"weather\"\r\n ]\r\n },\r\n {\r\n \"no\": 1034,\r\n \"code\": \"1F30A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ocean\",\r\n \"water\",\r\n \"wave\",\r\n \"weather\"\r\n ]\r\n }\r\n ],\r\n ACTIVITIES: [\r\n {\r\n \"no\": 1035,\r\n \"code\": \"1F383\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"entertainment\",\r\n \"halloween\",\r\n \"jack\",\r\n \"lantern\"\r\n ]\r\n },\r\n {\r\n \"no\": 1036,\r\n \"code\": \"1F384\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"christmas\",\r\n \"entertainment\",\r\n \"tree\"\r\n ]\r\n },\r\n {\r\n \"no\": 1037,\r\n \"code\": \"1F386\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"entertainment\",\r\n \"fireworks\"\r\n ]\r\n },\r\n {\r\n \"no\": 1038,\r\n \"code\": \"1F387\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"entertainment\",\r\n \"fireworks\",\r\n \"sparkle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1039,\r\n \"code\": \"2728\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entertainment\",\r\n \"sparkle\",\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 1040,\r\n \"code\": \"1F388\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"balloon\",\r\n \"celebration\",\r\n \"entertainment\"\r\n ]\r\n },\r\n {\r\n \"no\": 1041,\r\n \"code\": \"1F389\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"entertainment\",\r\n \"party\",\r\n \"popper\",\r\n \"tada\"\r\n ]\r\n },\r\n {\r\n \"no\": 1042,\r\n \"code\": \"1F38A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"ball\",\r\n \"celebration\",\r\n \"confetti\",\r\n \"entertainment\"\r\n ]\r\n },\r\n {\r\n \"no\": 1043,\r\n \"code\": \"1F38B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"banner\",\r\n \"celebration\",\r\n \"entertainment\",\r\n \"japanese\",\r\n \"tree\"\r\n ]\r\n },\r\n {\r\n \"no\": 1044,\r\n \"code\": \"1F38D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"bamboo\",\r\n \"celebration\",\r\n \"japanese\",\r\n \"pine\",\r\n \"plant\"\r\n ]\r\n },\r\n {\r\n \"no\": 1045,\r\n \"code\": \"1F38E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"doll\",\r\n \"entertainment\",\r\n \"festival\",\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1046,\r\n \"code\": \"1F38F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"carp\",\r\n \"celebration\",\r\n \"entertainment\",\r\n \"flag\",\r\n \"streamer\"\r\n ]\r\n },\r\n {\r\n \"no\": 1047,\r\n \"code\": \"1F390\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"bell\",\r\n \"celebration\",\r\n \"chime\",\r\n \"entertainment\",\r\n \"wind\"\r\n ]\r\n },\r\n {\r\n \"no\": 1048,\r\n \"code\": \"1F391\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"ceremony\",\r\n \"entertainment\",\r\n \"moon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1049,\r\n \"code\": \"1F380\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"celebration\",\r\n \"ribbon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1050,\r\n \"code\": \"1F381\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"box\",\r\n \"celebration\",\r\n \"entertainment\",\r\n \"gift\",\r\n \"present\",\r\n \"wrapped\"\r\n ]\r\n },\r\n {\r\n \"no\": 1051,\r\n \"code\": \"1F397\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"celebration\",\r\n \"reminder\",\r\n \"ribbon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1052,\r\n \"code\": \"1F39F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"admission\",\r\n \"entertainment\",\r\n \"ticket\"\r\n ]\r\n },\r\n {\r\n \"no\": 1053,\r\n \"code\": \"1F3AB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"admission\",\r\n \"entertainment\",\r\n \"ticket\"\r\n ]\r\n },\r\n {\r\n \"no\": 1054,\r\n \"code\": \"1F396\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"celebration\",\r\n \"medal\",\r\n \"military\"\r\n ]\r\n },\r\n {\r\n \"no\": 1055,\r\n \"code\": \"1F3C6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"prize\",\r\n \"trophy\"\r\n ]\r\n },\r\n {\r\n \"no\": 1056,\r\n \"code\": \"1F3C5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"medal\"\r\n ]\r\n },\r\n {\r\n \"no\": 1057,\r\n \"code\": \"1F947\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"first\",\r\n \"gold\",\r\n \"medal\"\r\n ]\r\n },\r\n {\r\n \"no\": 1058,\r\n \"code\": \"1F948\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"medal\",\r\n \"second\",\r\n \"silver\"\r\n ]\r\n },\r\n {\r\n \"no\": 1059,\r\n \"code\": \"1F949\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"bronze\",\r\n \"medal\",\r\n \"third\"\r\n ]\r\n },\r\n {\r\n \"no\": 1060,\r\n \"code\": \"26BD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"soccer\"\r\n ]\r\n },\r\n {\r\n \"no\": 1061,\r\n \"code\": \"26BE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"baseball\"\r\n ]\r\n },\r\n {\r\n \"no\": 1062,\r\n \"code\": \"1F3C0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"basketball\",\r\n \"hoop\"\r\n ]\r\n },\r\n {\r\n \"no\": 1063,\r\n \"code\": \"1F3D0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"game\",\r\n \"volleyball\"\r\n ]\r\n },\r\n {\r\n \"no\": 1064,\r\n \"code\": \"1F3C8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"american\",\r\n \"ball\",\r\n \"football\"\r\n ]\r\n },\r\n {\r\n \"no\": 1065,\r\n \"code\": \"1F3C9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"football\",\r\n \"rugby\"\r\n ]\r\n },\r\n {\r\n \"no\": 1066,\r\n \"code\": \"1F3BE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"racquet\",\r\n \"tennis\"\r\n ]\r\n },\r\n {\r\n \"no\": 1067,\r\n \"code\": \"1F3B1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"8\",\r\n \"8 ball\",\r\n \"ball\",\r\n \"billiard\",\r\n \"eight\",\r\n \"game\"\r\n ]\r\n },\r\n {\r\n \"no\": 1068,\r\n \"code\": \"1F3B3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"bowling\",\r\n \"game\"\r\n ]\r\n },\r\n {\r\n \"no\": 1069,\r\n \"code\": \"1F3CF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"bat\",\r\n \"cricket\",\r\n \"game\"\r\n ]\r\n },\r\n {\r\n \"no\": 1070,\r\n \"code\": \"1F3D1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"field\",\r\n \"game\",\r\n \"hockey\",\r\n \"stick\"\r\n ]\r\n },\r\n {\r\n \"no\": 1071,\r\n \"code\": \"1F3D2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"game\",\r\n \"hockey\",\r\n \"ice\",\r\n \"puck\",\r\n \"stick\"\r\n ]\r\n },\r\n {\r\n \"no\": 1072,\r\n \"code\": \"1F3D3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"bat\",\r\n \"game\",\r\n \"paddle\",\r\n \"table tennis\"\r\n ]\r\n },\r\n {\r\n \"no\": 1073,\r\n \"code\": \"1F3F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"badminton\",\r\n \"birdie\",\r\n \"game\",\r\n \"racquet\",\r\n \"shuttlecock\"\r\n ]\r\n },\r\n {\r\n \"no\": 1074,\r\n \"code\": \"1F94A\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"boxing\",\r\n \"glove\"\r\n ]\r\n },\r\n {\r\n \"no\": 1075,\r\n \"code\": \"1F94B\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"judo\",\r\n \"karate\",\r\n \"martial arts\",\r\n \"taekwondo\",\r\n \"uniform\"\r\n ]\r\n },\r\n {\r\n \"no\": 1076,\r\n \"code\": \"26F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"golf\",\r\n \"hole\"\r\n ]\r\n },\r\n {\r\n \"no\": 1077,\r\n \"code\": \"1F3CC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"golf\"\r\n ]\r\n },\r\n {\r\n \"no\": 1078,\r\n \"code\": \"26F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ice\",\r\n \"skate\"\r\n ]\r\n },\r\n {\r\n \"no\": 1079,\r\n \"code\": \"1F3A3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entertainment\",\r\n \"fish\",\r\n \"pole\"\r\n ]\r\n },\r\n {\r\n \"no\": 1080,\r\n \"code\": \"1F3BD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"running\",\r\n \"sash\",\r\n \"shirt\"\r\n ]\r\n },\r\n {\r\n \"no\": 1081,\r\n \"code\": \"1F3BF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ski\",\r\n \"snow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1082,\r\n \"code\": \"26F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ski\",\r\n \"snow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1083,\r\n \"code\": \"1F3C2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ski\",\r\n \"snow\",\r\n \"snowboard\"\r\n ]\r\n },\r\n {\r\n \"no\": 1084,\r\n \"code\": \"1F3C4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"surfer\",\r\n \"surfing\"\r\n ],\r\n \"types\": [\r\n \"1F3C4-1F3FF\",\r\n \"1F3C4-1F3FE\",\r\n \"1F3C4-1F3FD\",\r\n \"1F3C4-1F3FC\",\r\n \"1F3C4-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1090,\r\n \"code\": \"1F3C7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"horse\",\r\n \"jockey\",\r\n \"racehorse\",\r\n \"racing\"\r\n ]\r\n },\r\n {\r\n \"no\": 1091,\r\n \"code\": \"1F3CA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"swim\",\r\n \"swimmer\"\r\n ],\r\n \"types\": [\r\n \"1F3CA-1F3FF\",\r\n \"1F3CA-1F3FE\",\r\n \"1F3CA-1F3FD\",\r\n \"1F3CA-1F3FC\",\r\n \"1F3CA-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1097,\r\n \"code\": \"26F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\"\r\n ],\r\n \"types\": [\r\n \"26F9-1F3FF\",\r\n \"26F9-1F3FE\",\r\n \"26F9-1F3FD\",\r\n \"26F9-1F3FC\",\r\n \"26F9-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1103,\r\n \"code\": \"1F3CB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"lifter\",\r\n \"weight\"\r\n ],\r\n \"types\": [\r\n \"1F3CB-1F3FF\",\r\n \"1F3CB-1F3FE\",\r\n \"1F3CB-1F3FD\",\r\n \"1F3CB-1F3FC\",\r\n \"1F3CB-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1109,\r\n \"code\": \"1F6B4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bicycle\",\r\n \"bicyclist\",\r\n \"bike\",\r\n \"cyclist\"\r\n ],\r\n \"types\": [\r\n \"1F6B4-1F3FF\",\r\n \"1F6B4-1F3FE\",\r\n \"1F6B4-1F3FD\",\r\n \"1F6B4-1F3FC\",\r\n \"1F6B4-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1115,\r\n \"code\": \"1F6B5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bicycle\",\r\n \"bicyclist\",\r\n \"bike\",\r\n \"cyclist\",\r\n \"mountain\"\r\n ],\r\n \"types\": [\r\n \"1F6B5-1F3FF\",\r\n \"1F6B5-1F3FE\",\r\n \"1F6B5-1F3FD\",\r\n \"1F6B5-1F3FC\",\r\n \"1F6B5-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1121,\r\n \"code\": \"1F3CE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"car\",\r\n \"racing\"\r\n ]\r\n },\r\n {\r\n \"no\": 1122,\r\n \"code\": \"1F3CD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"motorcycle\",\r\n \"racing\"\r\n ]\r\n },\r\n {\r\n \"no\": 1123,\r\n \"code\": \"1F938\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"cartwheel\",\r\n \"gymnastics\"\r\n ],\r\n \"types\": [\r\n \"1F938-1F3FF\",\r\n \"1F938-1F3FE\",\r\n \"1F938-1F3FD\",\r\n \"1F938-1F3FC\",\r\n \"1F938-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1129,\r\n \"code\": \"1F93C\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"wrestle\",\r\n \"wrestler\"\r\n ],\r\n \"types\": [\r\n \"1F93C-1F3FF\",\r\n \"1F93C-1F3FE\",\r\n \"1F93C-1F3FD\",\r\n \"1F93C-1F3FC\",\r\n \"1F93C-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1135,\r\n \"code\": \"1F93D\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"polo\",\r\n \"water\"\r\n ],\r\n \"types\": [\r\n \"1F93D-1F3FF\",\r\n \"1F93D-1F3FE\",\r\n \"1F93D-1F3FD\",\r\n \"1F93D-1F3FC\",\r\n \"1F93D-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1141,\r\n \"code\": \"1F93E\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"ball\",\r\n \"handball\"\r\n ],\r\n \"types\": [\r\n \"1F93E-1F3FF\",\r\n \"1F93E-1F3FE\",\r\n \"1F93E-1F3FD\",\r\n \"1F93E-1F3FC\",\r\n \"1F93E-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1147,\r\n \"code\": \"1F93A\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"fencer\",\r\n \"fencing\",\r\n \"sword\"\r\n ]\r\n },\r\n {\r\n \"no\": 1148,\r\n \"code\": \"1F945\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"goal\",\r\n \"net\"\r\n ]\r\n },\r\n {\r\n \"no\": 1149,\r\n \"code\": \"1F939\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"balance\",\r\n \"juggle\",\r\n \"multitask\",\r\n \"skill\"\r\n ],\r\n \"types\": [\r\n \"1F939-1F3FF\",\r\n \"1F939-1F3FE\",\r\n \"1F939-1F3FD\",\r\n \"1F939-1F3FC\",\r\n \"1F939-1F3FB\"\r\n ]\r\n },\r\n {\r\n \"no\": 1155,\r\n \"code\": \"1F3AF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"bull\",\r\n \"bullseye\",\r\n \"dart\",\r\n \"entertainment\",\r\n \"eye\",\r\n \"game\",\r\n \"hit\",\r\n \"target\"\r\n ]\r\n },\r\n {\r\n \"no\": 1156,\r\n \"code\": \"1F3AE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"controller\",\r\n \"entertainment\",\r\n \"game\",\r\n \"video game\"\r\n ]\r\n },\r\n {\r\n \"no\": 1157,\r\n \"code\": \"1F579\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entertainment\",\r\n \"game\",\r\n \"joystick\",\r\n \"video game\"\r\n ]\r\n },\r\n {\r\n \"no\": 1158,\r\n \"code\": \"1F3B2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dice\",\r\n \"die\",\r\n \"entertainment\",\r\n \"game\"\r\n ]\r\n },\r\n {\r\n \"no\": 1159,\r\n \"code\": \"2660\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"card\",\r\n \"game\",\r\n \"spade\",\r\n \"suit\"\r\n ]\r\n },\r\n {\r\n \"no\": 1160,\r\n \"code\": \"2665\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"card\",\r\n \"game\",\r\n \"heart\",\r\n \"hearts\",\r\n \"suit\"\r\n ]\r\n },\r\n {\r\n \"no\": 1161,\r\n \"code\": \"2666\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"card\",\r\n \"diamond\",\r\n \"diamonds\",\r\n \"game\",\r\n \"suit\"\r\n ]\r\n },\r\n {\r\n \"no\": 1162,\r\n \"code\": \"2663\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"card\",\r\n \"club\",\r\n \"clubs\",\r\n \"game\",\r\n \"suit\"\r\n ]\r\n },\r\n {\r\n \"no\": 1163,\r\n \"code\": \"1F0CF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"card\",\r\n \"entertainment\",\r\n \"game\",\r\n \"joker\",\r\n \"playing\"\r\n ]\r\n },\r\n {\r\n \"no\": 1164,\r\n \"code\": \"1F004\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"game\",\r\n \"mahjong\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 1165,\r\n \"code\": \"1F3B4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"card\",\r\n \"entertainment\",\r\n \"flower\",\r\n \"game\",\r\n \"japanese\",\r\n \"playing\"\r\n ]\r\n }\r\n ],\r\n OBJECTS: [\r\n {\r\n \"no\": 1166,\r\n \"code\": \"1F507\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mute\",\r\n \"quiet\",\r\n \"silent\",\r\n \"speaker\",\r\n \"volume\"\r\n ]\r\n },\r\n {\r\n \"no\": 1167,\r\n \"code\": \"1F508\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"speaker\",\r\n \"volume\"\r\n ]\r\n },\r\n {\r\n \"no\": 1168,\r\n \"code\": \"1F509\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"low\",\r\n \"speaker\",\r\n \"volume\",\r\n \"wave\"\r\n ]\r\n },\r\n {\r\n \"no\": 1169,\r\n \"code\": \"1F50A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"3\",\r\n \"entertainment\",\r\n \"high\",\r\n \"loud\",\r\n \"speaker\",\r\n \"three\",\r\n \"volume\"\r\n ]\r\n },\r\n {\r\n \"no\": 1170,\r\n \"code\": \"1F4E2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"loud\",\r\n \"loudspeaker\",\r\n \"public address\"\r\n ]\r\n },\r\n {\r\n \"no\": 1171,\r\n \"code\": \"1F4E3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cheering\",\r\n \"communication\",\r\n \"megaphone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1172,\r\n \"code\": \"1F4EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"entertainment\",\r\n \"horn\",\r\n \"post\",\r\n \"postal\"\r\n ]\r\n },\r\n {\r\n \"no\": 1173,\r\n \"code\": \"1F514\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bell\"\r\n ]\r\n },\r\n {\r\n \"no\": 1174,\r\n \"code\": \"1F515\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bell\",\r\n \"forbidden\",\r\n \"mute\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\",\r\n \"quiet\",\r\n \"silent\"\r\n ]\r\n },\r\n {\r\n \"no\": 1175,\r\n \"code\": \"1F3BC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"music\",\r\n \"score\"\r\n ]\r\n },\r\n {\r\n \"no\": 1176,\r\n \"code\": \"1F3B5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"music\",\r\n \"note\"\r\n ]\r\n },\r\n {\r\n \"no\": 1177,\r\n \"code\": \"1F3B6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"music\",\r\n \"note\",\r\n \"notes\"\r\n ]\r\n },\r\n {\r\n \"no\": 1178,\r\n \"code\": \"1F399\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mic\",\r\n \"microphone\",\r\n \"music\",\r\n \"studio\"\r\n ]\r\n },\r\n {\r\n \"no\": 1179,\r\n \"code\": \"1F39A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"level\",\r\n \"music\",\r\n \"slider\"\r\n ]\r\n },\r\n {\r\n \"no\": 1180,\r\n \"code\": \"1F39B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"control\",\r\n \"knobs\",\r\n \"music\"\r\n ]\r\n },\r\n {\r\n \"no\": 1181,\r\n \"code\": \"1F3A4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"karaoke\",\r\n \"mic\",\r\n \"microphone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1182,\r\n \"code\": \"1F3A7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"earbud\",\r\n \"entertainment\",\r\n \"headphone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1183,\r\n \"code\": \"1F4FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entertainment\",\r\n \"radio\",\r\n \"video\"\r\n ]\r\n },\r\n {\r\n \"no\": 1184,\r\n \"code\": \"1F3B7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"instrument\",\r\n \"music\",\r\n \"sax\",\r\n \"saxophone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1185,\r\n \"code\": \"1F3B8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"guitar\",\r\n \"instrument\",\r\n \"music\"\r\n ]\r\n },\r\n {\r\n \"no\": 1186,\r\n \"code\": \"1F3B9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"instrument\",\r\n \"keyboard\",\r\n \"music\",\r\n \"piano\"\r\n ]\r\n },\r\n {\r\n \"no\": 1187,\r\n \"code\": \"1F3BA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"instrument\",\r\n \"music\",\r\n \"trumpet\"\r\n ]\r\n },\r\n {\r\n \"no\": 1188,\r\n \"code\": \"1F3BB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"entertainment\",\r\n \"instrument\",\r\n \"music\",\r\n \"violin\"\r\n ]\r\n },\r\n {\r\n \"no\": 1189,\r\n \"code\": \"1F941\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"drum\",\r\n \"drumsticks\",\r\n \"music\"\r\n ]\r\n },\r\n {\r\n \"no\": 1190,\r\n \"code\": \"1F4F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cell\",\r\n \"communication\",\r\n \"mobile\",\r\n \"phone\",\r\n \"telephone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1191,\r\n \"code\": \"1F4F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"call\",\r\n \"cell\",\r\n \"communication\",\r\n \"mobile\",\r\n \"phone\",\r\n \"receive\",\r\n \"telephone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1192,\r\n \"code\": \"260E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"phone\",\r\n \"telephone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1193,\r\n \"code\": \"1F4DE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"phone\",\r\n \"receiver\",\r\n \"telephone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1194,\r\n \"code\": \"1F4DF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"pager\"\r\n ]\r\n },\r\n {\r\n \"no\": 1195,\r\n \"code\": \"1F4E0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"fax\"\r\n ]\r\n },\r\n {\r\n \"no\": 1196,\r\n \"code\": \"1F50B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"battery\"\r\n ]\r\n },\r\n {\r\n \"no\": 1197,\r\n \"code\": \"1F50C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"electric\",\r\n \"electricity\",\r\n \"plug\"\r\n ]\r\n },\r\n {\r\n \"no\": 1198,\r\n \"code\": \"1F4BB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"computer\",\r\n \"pc\",\r\n \"personal\"\r\n ]\r\n },\r\n {\r\n \"no\": 1199,\r\n \"code\": \"1F5A5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"computer\",\r\n \"desktop\"\r\n ]\r\n },\r\n {\r\n \"no\": 1200,\r\n \"code\": \"1F5A8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"computer\",\r\n \"printer\"\r\n ]\r\n },\r\n {\r\n \"no\": 1201,\r\n \"code\": \"2328\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"computer\",\r\n \"keyboard\"\r\n ]\r\n },\r\n {\r\n \"no\": 1202,\r\n \"code\": \"1F5B1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"3\",\r\n \"button\",\r\n \"computer\",\r\n \"mouse\",\r\n \"three\"\r\n ]\r\n },\r\n {\r\n \"no\": 1203,\r\n \"code\": \"1F5B2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"computer\",\r\n \"trackball\"\r\n ]\r\n },\r\n {\r\n \"no\": 1204,\r\n \"code\": \"1F4BD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"computer\",\r\n \"disk\",\r\n \"entertainment\",\r\n \"minidisk\",\r\n \"optical\"\r\n ]\r\n },\r\n {\r\n \"no\": 1205,\r\n \"code\": \"1F4BE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"computer\",\r\n \"disk\",\r\n \"floppy\"\r\n ]\r\n },\r\n {\r\n \"no\": 1206,\r\n \"code\": \"1F4BF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blu-ray\",\r\n \"cd\",\r\n \"computer\",\r\n \"disk\",\r\n \"dvd\",\r\n \"optical\"\r\n ]\r\n },\r\n {\r\n \"no\": 1207,\r\n \"code\": \"1F4C0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blu-ray\",\r\n \"cd\",\r\n \"computer\",\r\n \"disk\",\r\n \"dvd\",\r\n \"entertainment\",\r\n \"optical\"\r\n ]\r\n },\r\n {\r\n \"no\": 1208,\r\n \"code\": \"1F3A5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"camera\",\r\n \"cinema\",\r\n \"entertainment\",\r\n \"movie\"\r\n ]\r\n },\r\n {\r\n \"no\": 1209,\r\n \"code\": \"1F39E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cinema\",\r\n \"entertainment\",\r\n \"film\",\r\n \"frames\",\r\n \"movie\"\r\n ]\r\n },\r\n {\r\n \"no\": 1210,\r\n \"code\": \"1F4FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cinema\",\r\n \"entertainment\",\r\n \"film\",\r\n \"movie\",\r\n \"projector\",\r\n \"video\"\r\n ]\r\n },\r\n {\r\n \"no\": 1211,\r\n \"code\": \"1F3AC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"clapper\",\r\n \"entertainment\",\r\n \"movie\"\r\n ]\r\n },\r\n {\r\n \"no\": 1212,\r\n \"code\": \"1F4FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entertainment\",\r\n \"television\",\r\n \"tv\",\r\n \"video\"\r\n ]\r\n },\r\n {\r\n \"no\": 1213,\r\n \"code\": \"1F4F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"camera\",\r\n \"entertainment\",\r\n \"video\"\r\n ]\r\n },\r\n {\r\n \"no\": 1214,\r\n \"code\": \"1F4F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"camera\",\r\n \"flash\",\r\n \"video\"\r\n ]\r\n },\r\n {\r\n \"no\": 1215,\r\n \"code\": \"1F4F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"camera\",\r\n \"entertainment\",\r\n \"video\"\r\n ]\r\n },\r\n {\r\n \"no\": 1216,\r\n \"code\": \"1F4FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entertainment\",\r\n \"tape\",\r\n \"vhs\",\r\n \"video\",\r\n \"videocassette\"\r\n ]\r\n },\r\n {\r\n \"no\": 1217,\r\n \"code\": \"1F50D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"glass\",\r\n \"magnifying\",\r\n \"search\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1218,\r\n \"code\": \"1F50E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"glass\",\r\n \"magnifying\",\r\n \"search\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1219,\r\n \"code\": \"1F52C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"microscope\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1220,\r\n \"code\": \"1F52D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"telescope\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1221,\r\n \"code\": \"1F4E1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"antenna\",\r\n \"communication\",\r\n \"dish\",\r\n \"satellite\"\r\n ]\r\n },\r\n {\r\n \"no\": 1222,\r\n \"code\": \"1F56F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"candle\",\r\n \"light\"\r\n ]\r\n },\r\n {\r\n \"no\": 1223,\r\n \"code\": \"1F4A1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bulb\",\r\n \"comic\",\r\n \"electric\",\r\n \"idea\",\r\n \"light\"\r\n ]\r\n },\r\n {\r\n \"no\": 1224,\r\n \"code\": \"1F526\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"electric\",\r\n \"flashlight\",\r\n \"light\",\r\n \"tool\",\r\n \"torch\"\r\n ]\r\n },\r\n {\r\n \"no\": 1225,\r\n \"code\": \"1F3EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"japanese\",\r\n \"lantern\",\r\n \"light\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 1226,\r\n \"code\": \"1F4D4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"book\",\r\n \"cover\",\r\n \"decorated\",\r\n \"notebook\"\r\n ]\r\n },\r\n {\r\n \"no\": 1227,\r\n \"code\": \"1F4D5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"book\",\r\n \"closed\"\r\n ]\r\n },\r\n {\r\n \"no\": 1228,\r\n \"code\": \"1F4D6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"book\",\r\n \"open\"\r\n ]\r\n },\r\n {\r\n \"no\": 1229,\r\n \"code\": \"1F4D7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"book\",\r\n \"green\"\r\n ]\r\n },\r\n {\r\n \"no\": 1230,\r\n \"code\": \"1F4D8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blue\",\r\n \"book\"\r\n ]\r\n },\r\n {\r\n \"no\": 1231,\r\n \"code\": \"1F4D9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"book\",\r\n \"orange\"\r\n ]\r\n },\r\n {\r\n \"no\": 1232,\r\n \"code\": \"1F4DA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"book\",\r\n \"books\"\r\n ]\r\n },\r\n {\r\n \"no\": 1233,\r\n \"code\": \"1F4D3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"notebook\"\r\n ]\r\n },\r\n {\r\n \"no\": 1234,\r\n \"code\": \"1F4D2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ledger\",\r\n \"notebook\"\r\n ]\r\n },\r\n {\r\n \"no\": 1235,\r\n \"code\": \"1F4C3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"curl\",\r\n \"document\",\r\n \"page\"\r\n ]\r\n },\r\n {\r\n \"no\": 1236,\r\n \"code\": \"1F4DC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"paper\",\r\n \"scroll\"\r\n ]\r\n },\r\n {\r\n \"no\": 1237,\r\n \"code\": \"1F4C4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"document\",\r\n \"page\"\r\n ]\r\n },\r\n {\r\n \"no\": 1238,\r\n \"code\": \"1F4F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"news\",\r\n \"newspaper\",\r\n \"paper\"\r\n ]\r\n },\r\n {\r\n \"no\": 1239,\r\n \"code\": \"1F5DE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"news\",\r\n \"newspaper\",\r\n \"paper\",\r\n \"rolled\"\r\n ]\r\n },\r\n {\r\n \"no\": 1240,\r\n \"code\": \"1F4D1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bookmark\",\r\n \"mark\",\r\n \"marker\",\r\n \"tabs\"\r\n ]\r\n },\r\n {\r\n \"no\": 1241,\r\n \"code\": \"1F516\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bookmark\",\r\n \"mark\"\r\n ]\r\n },\r\n {\r\n \"no\": 1242,\r\n \"code\": \"1F3F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"label\"\r\n ]\r\n },\r\n {\r\n \"no\": 1243,\r\n \"code\": \"1F4B0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bag\",\r\n \"dollar\",\r\n \"money\",\r\n \"moneybag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1244,\r\n \"code\": \"1F4B4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"banknote\",\r\n \"bill\",\r\n \"currency\",\r\n \"money\",\r\n \"note\",\r\n \"yen\"\r\n ]\r\n },\r\n {\r\n \"no\": 1245,\r\n \"code\": \"1F4B5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"banknote\",\r\n \"bill\",\r\n \"currency\",\r\n \"dollar\",\r\n \"money\",\r\n \"note\"\r\n ]\r\n },\r\n {\r\n \"no\": 1246,\r\n \"code\": \"1F4B6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"banknote\",\r\n \"bill\",\r\n \"currency\",\r\n \"euro\",\r\n \"money\",\r\n \"note\"\r\n ]\r\n },\r\n {\r\n \"no\": 1247,\r\n \"code\": \"1F4B7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"banknote\",\r\n \"bill\",\r\n \"currency\",\r\n \"money\",\r\n \"note\",\r\n \"pound\"\r\n ]\r\n },\r\n {\r\n \"no\": 1248,\r\n \"code\": \"1F4B8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"banknote\",\r\n \"bill\",\r\n \"dollar\",\r\n \"fly\",\r\n \"money\",\r\n \"note\",\r\n \"wings\"\r\n ]\r\n },\r\n {\r\n \"no\": 1249,\r\n \"code\": \"1F4B3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"card\",\r\n \"credit\",\r\n \"money\"\r\n ]\r\n },\r\n {\r\n \"no\": 1250,\r\n \"code\": \"1F4B9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"chart\",\r\n \"currency\",\r\n \"graph\",\r\n \"growth\",\r\n \"market\",\r\n \"money\",\r\n \"rise\",\r\n \"trend\",\r\n \"upward\",\r\n \"yen\"\r\n ]\r\n },\r\n {\r\n \"no\": 1251,\r\n \"code\": \"1F4B1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bank\",\r\n \"currency\",\r\n \"exchange\",\r\n \"money\"\r\n ]\r\n },\r\n {\r\n \"no\": 1252,\r\n \"code\": \"1F4B2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"currency\",\r\n \"dollar\",\r\n \"money\"\r\n ]\r\n },\r\n {\r\n \"no\": 1253,\r\n \"code\": \"2709\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"e-mail\",\r\n \"email\",\r\n \"envelope\"\r\n ]\r\n },\r\n {\r\n \"no\": 1254,\r\n \"code\": \"1F4E7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"e-mail\",\r\n \"email\",\r\n \"letter\",\r\n \"mail\"\r\n ]\r\n },\r\n {\r\n \"no\": 1255,\r\n \"code\": \"1F4E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"e-mail\",\r\n \"email\",\r\n \"envelope\",\r\n \"incoming\",\r\n \"letter\",\r\n \"mail\",\r\n \"receive\"\r\n ]\r\n },\r\n {\r\n \"no\": 1256,\r\n \"code\": \"1F4E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"communication\",\r\n \"down\",\r\n \"e-mail\",\r\n \"email\",\r\n \"envelope\",\r\n \"letter\",\r\n \"mail\",\r\n \"outgoing\",\r\n \"sent\"\r\n ]\r\n },\r\n {\r\n \"no\": 1257,\r\n \"code\": \"1F4E4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"box\",\r\n \"communication\",\r\n \"letter\",\r\n \"mail\",\r\n \"outbox\",\r\n \"sent\",\r\n \"tray\"\r\n ]\r\n },\r\n {\r\n \"no\": 1258,\r\n \"code\": \"1F4E5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"box\",\r\n \"communication\",\r\n \"inbox\",\r\n \"letter\",\r\n \"mail\",\r\n \"receive\",\r\n \"tray\"\r\n ]\r\n },\r\n {\r\n \"no\": 1259,\r\n \"code\": \"1F4E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"box\",\r\n \"communication\",\r\n \"package\",\r\n \"parcel\"\r\n ]\r\n },\r\n {\r\n \"no\": 1260,\r\n \"code\": \"1F4EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"closed\",\r\n \"communication\",\r\n \"flag\",\r\n \"mail\",\r\n \"mailbox\",\r\n \"postbox\"\r\n ]\r\n },\r\n {\r\n \"no\": 1261,\r\n \"code\": \"1F4EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"closed\",\r\n \"communication\",\r\n \"flag\",\r\n \"lowered\",\r\n \"mail\",\r\n \"mailbox\",\r\n \"postbox\"\r\n ]\r\n },\r\n {\r\n \"no\": 1262,\r\n \"code\": \"1F4EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"flag\",\r\n \"mail\",\r\n \"mailbox\",\r\n \"open\",\r\n \"postbox\"\r\n ]\r\n },\r\n {\r\n \"no\": 1263,\r\n \"code\": \"1F4ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"flag\",\r\n \"lowered\",\r\n \"mail\",\r\n \"mailbox\",\r\n \"open\",\r\n \"postbox\"\r\n ]\r\n },\r\n {\r\n \"no\": 1264,\r\n \"code\": \"1F4EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"mail\",\r\n \"mailbox\",\r\n \"postbox\"\r\n ]\r\n },\r\n {\r\n \"no\": 1265,\r\n \"code\": \"1F5F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ballot\",\r\n \"box\"\r\n ]\r\n },\r\n {\r\n \"no\": 1266,\r\n \"code\": \"270F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"pencil\"\r\n ]\r\n },\r\n {\r\n \"no\": 1267,\r\n \"code\": \"2712\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"nib\",\r\n \"pen\"\r\n ]\r\n },\r\n {\r\n \"no\": 1268,\r\n \"code\": \"1F58B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"fountain\",\r\n \"pen\"\r\n ]\r\n },\r\n {\r\n \"no\": 1269,\r\n \"code\": \"1F58A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ballpoint\",\r\n \"communication\",\r\n \"pen\"\r\n ]\r\n },\r\n {\r\n \"no\": 1270,\r\n \"code\": \"1F58C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"paintbrush\",\r\n \"painting\"\r\n ]\r\n },\r\n {\r\n \"no\": 1271,\r\n \"code\": \"1F58D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"crayon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1272,\r\n \"code\": \"1F4DD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"memo\",\r\n \"pencil\"\r\n ]\r\n },\r\n {\r\n \"no\": 1273,\r\n \"code\": \"1F4BC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"briefcase\"\r\n ]\r\n },\r\n {\r\n \"no\": 1274,\r\n \"code\": \"1F4C1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"file\",\r\n \"folder\"\r\n ]\r\n },\r\n {\r\n \"no\": 1275,\r\n \"code\": \"1F4C2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"file\",\r\n \"folder\",\r\n \"open\"\r\n ]\r\n },\r\n {\r\n \"no\": 1276,\r\n \"code\": \"1F5C2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"card\",\r\n \"dividers\",\r\n \"index\"\r\n ]\r\n },\r\n {\r\n \"no\": 1277,\r\n \"code\": \"1F4C5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"calendar\",\r\n \"date\"\r\n ]\r\n },\r\n {\r\n \"no\": 1278,\r\n \"code\": \"1F4C6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"calendar\"\r\n ]\r\n },\r\n {\r\n \"no\": 1279,\r\n \"code\": \"1F5D2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"note\",\r\n \"pad\",\r\n \"spiral\"\r\n ]\r\n },\r\n {\r\n \"no\": 1280,\r\n \"code\": \"1F5D3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"calendar\",\r\n \"pad\",\r\n \"spiral\"\r\n ]\r\n },\r\n {\r\n \"no\": 1281,\r\n \"code\": \"1F4C7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"card\",\r\n \"index\",\r\n \"rolodex\"\r\n ]\r\n },\r\n {\r\n \"no\": 1282,\r\n \"code\": \"1F4C8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chart\",\r\n \"graph\",\r\n \"growth\",\r\n \"trend\",\r\n \"upward\"\r\n ]\r\n },\r\n {\r\n \"no\": 1283,\r\n \"code\": \"1F4C9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chart\",\r\n \"down\",\r\n \"graph\",\r\n \"trend\"\r\n ]\r\n },\r\n {\r\n \"no\": 1284,\r\n \"code\": \"1F4CA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"chart\",\r\n \"graph\"\r\n ]\r\n },\r\n {\r\n \"no\": 1285,\r\n \"code\": \"1F4CB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clipboard\"\r\n ]\r\n },\r\n {\r\n \"no\": 1286,\r\n \"code\": \"1F4CC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"pin\",\r\n \"pushpin\"\r\n ]\r\n },\r\n {\r\n \"no\": 1287,\r\n \"code\": \"1F4CD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"pin\",\r\n \"pushpin\"\r\n ]\r\n },\r\n {\r\n \"no\": 1288,\r\n \"code\": \"1F4CE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"paperclip\"\r\n ]\r\n },\r\n {\r\n \"no\": 1289,\r\n \"code\": \"1F587\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"communication\",\r\n \"link\",\r\n \"paperclip\"\r\n ]\r\n },\r\n {\r\n \"no\": 1290,\r\n \"code\": \"1F4CF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ruler\",\r\n \"straight edge\"\r\n ]\r\n },\r\n {\r\n \"no\": 1291,\r\n \"code\": \"1F4D0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ruler\",\r\n \"set\",\r\n \"triangle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1292,\r\n \"code\": \"2702\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"scissors\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1293,\r\n \"code\": \"1F5C3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"box\",\r\n \"card\",\r\n \"file\"\r\n ]\r\n },\r\n {\r\n \"no\": 1294,\r\n \"code\": \"1F5C4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cabinet\",\r\n \"file\"\r\n ]\r\n },\r\n {\r\n \"no\": 1295,\r\n \"code\": \"1F5D1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"wastebasket\"\r\n ]\r\n },\r\n {\r\n \"no\": 1296,\r\n \"code\": \"1F512\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"closed\",\r\n \"lock\"\r\n ]\r\n },\r\n {\r\n \"no\": 1297,\r\n \"code\": \"1F513\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"lock\",\r\n \"open\",\r\n \"unlock\"\r\n ]\r\n },\r\n {\r\n \"no\": 1298,\r\n \"code\": \"1F50F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ink\",\r\n \"lock\",\r\n \"nib\",\r\n \"pen\",\r\n \"privacy\"\r\n ]\r\n },\r\n {\r\n \"no\": 1299,\r\n \"code\": \"1F510\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"closed\",\r\n \"key\",\r\n \"lock\",\r\n \"secure\"\r\n ]\r\n },\r\n {\r\n \"no\": 1300,\r\n \"code\": \"1F511\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"key\",\r\n \"lock\",\r\n \"password\"\r\n ]\r\n },\r\n {\r\n \"no\": 1301,\r\n \"code\": \"1F5DD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clue\",\r\n \"key\",\r\n \"lock\",\r\n \"old\"\r\n ]\r\n },\r\n {\r\n \"no\": 1302,\r\n \"code\": \"1F528\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hammer\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1303,\r\n \"code\": \"26CF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mining\",\r\n \"pick\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1304,\r\n \"code\": \"2692\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hammer\",\r\n \"pick\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1305,\r\n \"code\": \"1F6E0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hammer\",\r\n \"tool\",\r\n \"wrench\"\r\n ]\r\n },\r\n {\r\n \"no\": 1306,\r\n \"code\": \"1F5E1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dagger\",\r\n \"knife\",\r\n \"weapon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1307,\r\n \"code\": \"2694\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"crossed\",\r\n \"swords\",\r\n \"weapon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1308,\r\n \"code\": \"1F52B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gun\",\r\n \"handgun\",\r\n \"pistol\",\r\n \"revolver\",\r\n \"tool\",\r\n \"weapon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1309,\r\n \"code\": \"1F3F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"archer\",\r\n \"arrow\",\r\n \"bow\",\r\n \"sagittarius\",\r\n \"tool\",\r\n \"weapon\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1310,\r\n \"code\": \"1F6E1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"shield\",\r\n \"weapon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1311,\r\n \"code\": \"1F527\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"tool\",\r\n \"wrench\"\r\n ]\r\n },\r\n {\r\n \"no\": 1312,\r\n \"code\": \"1F529\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bolt\",\r\n \"nut\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1313,\r\n \"code\": \"2699\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gear\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1314,\r\n \"code\": \"1F5DC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"compression\",\r\n \"tool\",\r\n \"vice\"\r\n ]\r\n },\r\n {\r\n \"no\": 1315,\r\n \"code\": \"2697\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"alembic\",\r\n \"chemistry\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1316,\r\n \"code\": \"2696\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"balance\",\r\n \"justice\",\r\n \"libra\",\r\n \"scales\",\r\n \"tool\",\r\n \"weight\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1317,\r\n \"code\": \"1F517\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"link\"\r\n ]\r\n },\r\n {\r\n \"no\": 1318,\r\n \"code\": \"26D3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chain\"\r\n ]\r\n },\r\n {\r\n \"no\": 1319,\r\n \"code\": \"1F489\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"doctor\",\r\n \"medicine\",\r\n \"needle\",\r\n \"shot\",\r\n \"sick\",\r\n \"syringe\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1320,\r\n \"code\": \"1F48A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"doctor\",\r\n \"medicine\",\r\n \"pill\",\r\n \"sick\"\r\n ]\r\n },\r\n {\r\n \"no\": 1321,\r\n \"code\": \"1F6AC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"smoking\"\r\n ]\r\n },\r\n {\r\n \"no\": 1322,\r\n \"code\": \"26B0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"coffin\",\r\n \"death\"\r\n ]\r\n },\r\n {\r\n \"no\": 1323,\r\n \"code\": \"26B1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"death\",\r\n \"funeral\",\r\n \"urn\"\r\n ]\r\n },\r\n {\r\n \"no\": 1324,\r\n \"code\": \"1F5FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"face\",\r\n \"moyai\",\r\n \"statue\"\r\n ]\r\n },\r\n {\r\n \"no\": 1325,\r\n \"code\": \"1F6E2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"drum\",\r\n \"oil\"\r\n ]\r\n },\r\n {\r\n \"no\": 1326,\r\n \"code\": \"1F52E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ball\",\r\n \"crystal\",\r\n \"fairy tale\",\r\n \"fantasy\",\r\n \"fortune\",\r\n \"tool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1327,\r\n \"code\": \"1F6D2\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"cart\",\r\n \"shopping\",\r\n \"trolley\"\r\n ]\r\n }\r\n ],\r\n SYMBOLS: [\r\n {\r\n \"no\": 1328,\r\n \"code\": \"1F3E7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"atm\",\r\n \"automated\",\r\n \"bank\",\r\n \"teller\"\r\n ]\r\n },\r\n {\r\n \"no\": 1329,\r\n \"code\": \"1F6AE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"litter\",\r\n \"litterbox\"\r\n ]\r\n },\r\n {\r\n \"no\": 1330,\r\n \"code\": \"1F6B0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"drink\",\r\n \"potable\",\r\n \"water\"\r\n ]\r\n },\r\n {\r\n \"no\": 1331,\r\n \"code\": \"267F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"access\",\r\n \"wheelchair\"\r\n ]\r\n },\r\n {\r\n \"no\": 1332,\r\n \"code\": \"1F6B9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"lavatory\",\r\n \"man\",\r\n \"restroom\",\r\n \"wc\"\r\n ]\r\n },\r\n {\r\n \"no\": 1333,\r\n \"code\": \"1F6BA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"lavatory\",\r\n \"restroom\",\r\n \"wc\",\r\n \"woman\"\r\n ]\r\n },\r\n {\r\n \"no\": 1334,\r\n \"code\": \"1F6BB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"lavatory\",\r\n \"restroom\",\r\n \"wc\"\r\n ]\r\n },\r\n {\r\n \"no\": 1335,\r\n \"code\": \"1F6BC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baby\",\r\n \"changing\"\r\n ]\r\n },\r\n {\r\n \"no\": 1336,\r\n \"code\": \"1F6BE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"closet\",\r\n \"lavatory\",\r\n \"restroom\",\r\n \"water\",\r\n \"wc\"\r\n ]\r\n },\r\n {\r\n \"no\": 1337,\r\n \"code\": \"1F6C2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"control\",\r\n \"passport\"\r\n ]\r\n },\r\n {\r\n \"no\": 1338,\r\n \"code\": \"1F6C3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"customs\"\r\n ]\r\n },\r\n {\r\n \"no\": 1339,\r\n \"code\": \"1F6C4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baggage\",\r\n \"claim\"\r\n ]\r\n },\r\n {\r\n \"no\": 1340,\r\n \"code\": \"1F6C5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"baggage\",\r\n \"left luggage\",\r\n \"locker\",\r\n \"luggage\"\r\n ]\r\n },\r\n {\r\n \"no\": 1341,\r\n \"code\": \"26A0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"warning\"\r\n ]\r\n },\r\n {\r\n \"no\": 1342,\r\n \"code\": \"1F6B8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"child\",\r\n \"crossing\",\r\n \"pedestrian\",\r\n \"traffic\"\r\n ]\r\n },\r\n {\r\n \"no\": 1343,\r\n \"code\": \"26D4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entry\",\r\n \"forbidden\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\",\r\n \"traffic\"\r\n ]\r\n },\r\n {\r\n \"no\": 1344,\r\n \"code\": \"1F6AB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"entry\",\r\n \"forbidden\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\"\r\n ]\r\n },\r\n {\r\n \"no\": 1345,\r\n \"code\": \"1F6B3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bicycle\",\r\n \"bike\",\r\n \"forbidden\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\",\r\n \"vehicle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1346,\r\n \"code\": \"1F6AD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"forbidden\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\",\r\n \"smoking\"\r\n ]\r\n },\r\n {\r\n \"no\": 1347,\r\n \"code\": \"1F6AF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"forbidden\",\r\n \"litter\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\"\r\n ]\r\n },\r\n {\r\n \"no\": 1348,\r\n \"code\": \"1F6B1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"drink\",\r\n \"forbidden\",\r\n \"no\",\r\n \"not\",\r\n \"potable\",\r\n \"prohibited\",\r\n \"water\"\r\n ]\r\n },\r\n {\r\n \"no\": 1349,\r\n \"code\": \"1F6B7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"forbidden\",\r\n \"no\",\r\n \"not\",\r\n \"pedestrian\",\r\n \"prohibited\"\r\n ]\r\n },\r\n {\r\n \"no\": 1350,\r\n \"code\": \"1F4F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cell\",\r\n \"communication\",\r\n \"forbidden\",\r\n \"mobile\",\r\n \"no\",\r\n \"not\",\r\n \"phone\",\r\n \"prohibited\",\r\n \"telephone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1351,\r\n \"code\": \"1F51E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"18\",\r\n \"age restriction\",\r\n \"eighteen\",\r\n \"forbidden\",\r\n \"no\",\r\n \"not\",\r\n \"prohibited\",\r\n \"underage\"\r\n ]\r\n },\r\n {\r\n \"no\": 1352,\r\n \"code\": \"2622\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"radioactive\"\r\n ]\r\n },\r\n {\r\n \"no\": 1353,\r\n \"code\": \"2623\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"biohazard\"\r\n ]\r\n },\r\n {\r\n \"no\": 1354,\r\n \"code\": \"2B06\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"cardinal\",\r\n \"direction\",\r\n \"north\"\r\n ]\r\n },\r\n {\r\n \"no\": 1355,\r\n \"code\": \"2197\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"direction\",\r\n \"intercardinal\",\r\n \"northeast\"\r\n ]\r\n },\r\n {\r\n \"no\": 1356,\r\n \"code\": \"27A1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"cardinal\",\r\n \"direction\",\r\n \"east\"\r\n ]\r\n },\r\n {\r\n \"no\": 1357,\r\n \"code\": \"2198\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"direction\",\r\n \"intercardinal\",\r\n \"southeast\"\r\n ]\r\n },\r\n {\r\n \"no\": 1358,\r\n \"code\": \"2B07\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"cardinal\",\r\n \"direction\",\r\n \"down\",\r\n \"south\"\r\n ]\r\n },\r\n {\r\n \"no\": 1359,\r\n \"code\": \"2199\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"direction\",\r\n \"intercardinal\",\r\n \"southwest\"\r\n ]\r\n },\r\n {\r\n \"no\": 1360,\r\n \"code\": \"2B05\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"cardinal\",\r\n \"direction\",\r\n \"west\"\r\n ]\r\n },\r\n {\r\n \"no\": 1361,\r\n \"code\": \"2196\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"direction\",\r\n \"intercardinal\",\r\n \"northwest\"\r\n ]\r\n },\r\n {\r\n \"no\": 1362,\r\n \"code\": \"2195\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1363,\r\n \"code\": \"2194\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1364,\r\n \"code\": \"21A9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1365,\r\n \"code\": \"21AA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1366,\r\n \"code\": \"2934\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1367,\r\n \"code\": \"2935\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"down\"\r\n ]\r\n },\r\n {\r\n \"no\": 1368,\r\n \"code\": \"1F503\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"clockwise\",\r\n \"reload\"\r\n ]\r\n },\r\n {\r\n \"no\": 1369,\r\n \"code\": \"1F504\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"anticlockwise\",\r\n \"arrow\",\r\n \"counterclockwise\",\r\n \"withershins\"\r\n ]\r\n },\r\n {\r\n \"no\": 1370,\r\n \"code\": \"1F519\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"back\"\r\n ]\r\n },\r\n {\r\n \"no\": 1371,\r\n \"code\": \"1F51A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"end\"\r\n ]\r\n },\r\n {\r\n \"no\": 1372,\r\n \"code\": \"1F51B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"mark\",\r\n \"on\"\r\n ]\r\n },\r\n {\r\n \"no\": 1373,\r\n \"code\": \"1F51C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"soon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1374,\r\n \"code\": \"1F51D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"top\",\r\n \"up\"\r\n ]\r\n },\r\n {\r\n \"no\": 1375,\r\n \"code\": \"1F6D0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"religion\",\r\n \"worship\"\r\n ]\r\n },\r\n {\r\n \"no\": 1376,\r\n \"code\": \"269B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"atheist\",\r\n \"atom\"\r\n ]\r\n },\r\n {\r\n \"no\": 1377,\r\n \"code\": \"1F549\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"hindu\",\r\n \"om\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 1378,\r\n \"code\": \"2721\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"david\",\r\n \"jew\",\r\n \"jewish\",\r\n \"religion\",\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 1379,\r\n \"code\": \"2638\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"buddhist\",\r\n \"dharma\",\r\n \"religion\",\r\n \"wheel\"\r\n ]\r\n },\r\n {\r\n \"no\": 1380,\r\n \"code\": \"262F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"religion\",\r\n \"tao\",\r\n \"taoist\",\r\n \"yang\",\r\n \"yin\"\r\n ]\r\n },\r\n {\r\n \"no\": 1381,\r\n \"code\": \"271D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"christian\",\r\n \"cross\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 1382,\r\n \"code\": \"2626\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"christian\",\r\n \"cross\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 1383,\r\n \"code\": \"262A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"islam\",\r\n \"muslim\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 1384,\r\n \"code\": \"262E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"peace\"\r\n ]\r\n },\r\n {\r\n \"no\": 1385,\r\n \"code\": \"1F54E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"candelabrum\",\r\n \"candlestick\",\r\n \"menorah\",\r\n \"religion\"\r\n ]\r\n },\r\n {\r\n \"no\": 1386,\r\n \"code\": \"1F52F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fortune\",\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 1387,\r\n \"code\": \"267B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"recycle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1388,\r\n \"code\": \"1F4DB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"badge\",\r\n \"name\"\r\n ]\r\n },\r\n {\r\n \"no\": 1389,\r\n \"code\": \"269C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fleur-de-lis\"\r\n ]\r\n },\r\n {\r\n \"no\": 1390,\r\n \"code\": \"1F530\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"beginner\",\r\n \"chevron\",\r\n \"green\",\r\n \"japanese\",\r\n \"leaf\",\r\n \"tool\",\r\n \"yellow\"\r\n ]\r\n },\r\n {\r\n \"no\": 1391,\r\n \"code\": \"1F531\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"anchor\",\r\n \"emblem\",\r\n \"ship\",\r\n \"tool\",\r\n \"trident\"\r\n ]\r\n },\r\n {\r\n \"no\": 1392,\r\n \"code\": \"2B55\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"circle\",\r\n \"o\"\r\n ]\r\n },\r\n {\r\n \"no\": 1393,\r\n \"code\": \"2705\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"check\",\r\n \"mark\"\r\n ]\r\n },\r\n {\r\n \"no\": 1394,\r\n \"code\": \"2611\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ballot\",\r\n \"box\",\r\n \"check\"\r\n ]\r\n },\r\n {\r\n \"no\": 1395,\r\n \"code\": \"2714\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"check\",\r\n \"mark\"\r\n ]\r\n },\r\n {\r\n \"no\": 1396,\r\n \"code\": \"2716\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cancel\",\r\n \"multiplication\",\r\n \"multiply\",\r\n \"x\"\r\n ]\r\n },\r\n {\r\n \"no\": 1397,\r\n \"code\": \"274C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cancel\",\r\n \"mark\",\r\n \"multiplication\",\r\n \"multiply\",\r\n \"x\"\r\n ]\r\n },\r\n {\r\n \"no\": 1398,\r\n \"code\": \"274E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mark\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1399,\r\n \"code\": \"2795\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"math\",\r\n \"plus\"\r\n ]\r\n },\r\n {\r\n \"no\": 1400,\r\n \"code\": \"2796\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"math\",\r\n \"minus\"\r\n ]\r\n },\r\n {\r\n \"no\": 1401,\r\n \"code\": \"2797\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"division\",\r\n \"math\"\r\n ]\r\n },\r\n {\r\n \"no\": 1402,\r\n \"code\": \"27B0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"curl\",\r\n \"loop\"\r\n ]\r\n },\r\n {\r\n \"no\": 1403,\r\n \"code\": \"27BF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"curl\",\r\n \"double\",\r\n \"loop\"\r\n ]\r\n },\r\n {\r\n \"no\": 1404,\r\n \"code\": \"303D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mark\",\r\n \"part\"\r\n ]\r\n },\r\n {\r\n \"no\": 1405,\r\n \"code\": \"2733\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"asterisk\"\r\n ]\r\n },\r\n {\r\n \"no\": 1406,\r\n \"code\": \"2734\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"star\"\r\n ]\r\n },\r\n {\r\n \"no\": 1407,\r\n \"code\": \"2747\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"sparkle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1408,\r\n \"code\": \"203C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bangbang\",\r\n \"exclamation\",\r\n \"mark\",\r\n \"punctuation\"\r\n ]\r\n },\r\n {\r\n \"no\": 1409,\r\n \"code\": \"2049\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"exclamation\",\r\n \"interrobang\",\r\n \"mark\",\r\n \"punctuation\",\r\n \"question\"\r\n ]\r\n },\r\n {\r\n \"no\": 1410,\r\n \"code\": \"2753\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mark\",\r\n \"punctuation\",\r\n \"question\"\r\n ]\r\n },\r\n {\r\n \"no\": 1411,\r\n \"code\": \"2754\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mark\",\r\n \"outlined\",\r\n \"punctuation\",\r\n \"question\"\r\n ]\r\n },\r\n {\r\n \"no\": 1412,\r\n \"code\": \"2755\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"exclamation\",\r\n \"mark\",\r\n \"outlined\",\r\n \"punctuation\"\r\n ]\r\n },\r\n {\r\n \"no\": 1413,\r\n \"code\": \"2757\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"exclamation\",\r\n \"mark\",\r\n \"punctuation\"\r\n ]\r\n },\r\n {\r\n \"no\": 1414,\r\n \"code\": \"3030\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dash\",\r\n \"punctuation\",\r\n \"wavy\"\r\n ]\r\n },\r\n {\r\n \"no\": 1417,\r\n \"code\": \"2122\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mark\",\r\n \"tm\",\r\n \"trademark\"\r\n ]\r\n },\r\n {\r\n \"no\": 1418,\r\n \"code\": \"2648\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"aries\",\r\n \"ram\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1419,\r\n \"code\": \"2649\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bull\",\r\n \"ox\",\r\n \"taurus\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1420,\r\n \"code\": \"264A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"gemini\",\r\n \"twins\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1421,\r\n \"code\": \"264B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cancer\",\r\n \"crab\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1422,\r\n \"code\": \"264C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"leo\",\r\n \"lion\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1423,\r\n \"code\": \"264D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"maiden\",\r\n \"virgin\",\r\n \"virgo\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1424,\r\n \"code\": \"264E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"balance\",\r\n \"justice\",\r\n \"libra\",\r\n \"scales\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1425,\r\n \"code\": \"264F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"scorpio\",\r\n \"scorpion\",\r\n \"scorpius\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1426,\r\n \"code\": \"2650\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"archer\",\r\n \"sagittarius\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1427,\r\n \"code\": \"2651\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"capricorn\",\r\n \"goat\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1428,\r\n \"code\": \"2652\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"aquarius\",\r\n \"bearer\",\r\n \"water\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1429,\r\n \"code\": \"2653\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fish\",\r\n \"pisces\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1430,\r\n \"code\": \"26CE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bearer\",\r\n \"ophiuchus\",\r\n \"serpent\",\r\n \"snake\",\r\n \"zodiac\"\r\n ]\r\n },\r\n {\r\n \"no\": 1431,\r\n \"code\": \"1F500\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"crossed\"\r\n ]\r\n },\r\n {\r\n \"no\": 1432,\r\n \"code\": \"1F501\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"clockwise\",\r\n \"repeat\"\r\n ]\r\n },\r\n {\r\n \"no\": 1433,\r\n \"code\": \"1F502\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"clockwise\",\r\n \"once\"\r\n ]\r\n },\r\n {\r\n \"no\": 1434,\r\n \"code\": \"25B6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"play\",\r\n \"right\",\r\n \"triangle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1435,\r\n \"code\": \"23E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"double\",\r\n \"fast\",\r\n \"forward\"\r\n ]\r\n },\r\n {\r\n \"no\": 1436,\r\n \"code\": \"23ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"next scene\",\r\n \"next track\",\r\n \"triangle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1437,\r\n \"code\": \"23EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"pause\",\r\n \"play\",\r\n \"right\",\r\n \"triangle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1438,\r\n \"code\": \"25C0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"left\",\r\n \"reverse\",\r\n \"triangle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1439,\r\n \"code\": \"23EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"double\",\r\n \"rewind\"\r\n ]\r\n },\r\n {\r\n \"no\": 1440,\r\n \"code\": \"23EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"previous scene\",\r\n \"previous track\",\r\n \"triangle\"\r\n ]\r\n },\r\n {\r\n \"no\": 1441,\r\n \"code\": \"1F53C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"button\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 1442,\r\n \"code\": \"23EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"double\"\r\n ]\r\n },\r\n {\r\n \"no\": 1443,\r\n \"code\": \"1F53D\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"button\",\r\n \"down\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 1444,\r\n \"code\": \"23EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"arrow\",\r\n \"double\",\r\n \"down\"\r\n ]\r\n },\r\n {\r\n \"no\": 1445,\r\n \"code\": \"23F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bar\",\r\n \"double\",\r\n \"pause\",\r\n \"vertical\"\r\n ]\r\n },\r\n {\r\n \"no\": 1446,\r\n \"code\": \"23F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"square\",\r\n \"stop\"\r\n ]\r\n },\r\n {\r\n \"no\": 1447,\r\n \"code\": \"23FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"circle\",\r\n \"record\"\r\n ]\r\n },\r\n {\r\n \"no\": 1448,\r\n \"code\": \"23CF\",\r\n \"flagged\": true,\r\n \"keywords\": [\r\n \"eject\"\r\n ]\r\n },\r\n {\r\n \"no\": 1449,\r\n \"code\": \"1F3A6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"camera\",\r\n \"cinema\",\r\n \"entertainment\",\r\n \"film\",\r\n \"movie\"\r\n ]\r\n },\r\n {\r\n \"no\": 1450,\r\n \"code\": \"1F505\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"brightness\",\r\n \"dim\",\r\n \"low\"\r\n ]\r\n },\r\n {\r\n \"no\": 1451,\r\n \"code\": \"1F506\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bright\",\r\n \"brightness\"\r\n ]\r\n },\r\n {\r\n \"no\": 1452,\r\n \"code\": \"1F4F6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"antenna\",\r\n \"bar\",\r\n \"cell\",\r\n \"communication\",\r\n \"mobile\",\r\n \"phone\",\r\n \"signal\",\r\n \"telephone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1453,\r\n \"code\": \"1F4F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cell\",\r\n \"communication\",\r\n \"mobile\",\r\n \"mode\",\r\n \"phone\",\r\n \"telephone\",\r\n \"vibration\"\r\n ]\r\n },\r\n {\r\n \"no\": 1454,\r\n \"code\": \"1F4F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cell\",\r\n \"communication\",\r\n \"mobile\",\r\n \"off\",\r\n \"phone\",\r\n \"telephone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1467,\r\n \"code\": \"1F51F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"10\",\r\n \"keycap\",\r\n \"ten\"\r\n ]\r\n },\r\n {\r\n \"no\": 1468,\r\n \"code\": \"1F4AF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"100\",\r\n \"full\",\r\n \"hundred\",\r\n \"score\"\r\n ]\r\n },\r\n {\r\n \"no\": 1469,\r\n \"code\": \"1F520\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"input\",\r\n \"latin\",\r\n \"letters\",\r\n \"uppercase\"\r\n ]\r\n },\r\n {\r\n \"no\": 1470,\r\n \"code\": \"1F521\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"abcd\",\r\n \"input\",\r\n \"latin\",\r\n \"letters\",\r\n \"lowercase\"\r\n ]\r\n },\r\n {\r\n \"no\": 1471,\r\n \"code\": \"1F522\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"1234\",\r\n \"input\",\r\n \"numbers\"\r\n ]\r\n },\r\n {\r\n \"no\": 1472,\r\n \"code\": \"1F523\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"input\"\r\n ]\r\n },\r\n {\r\n \"no\": 1473,\r\n \"code\": \"1F524\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"abc\",\r\n \"alphabet\",\r\n \"input\",\r\n \"latin\",\r\n \"letters\"\r\n ]\r\n },\r\n {\r\n \"no\": 1474,\r\n \"code\": \"1F170\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"a\",\r\n \"blood\"\r\n ]\r\n },\r\n {\r\n \"no\": 1475,\r\n \"code\": \"1F18E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ab\",\r\n \"blood\"\r\n ]\r\n },\r\n {\r\n \"no\": 1476,\r\n \"code\": \"1F171\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"b\",\r\n \"blood\"\r\n ]\r\n },\r\n {\r\n \"no\": 1477,\r\n \"code\": \"1F191\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cl\"\r\n ]\r\n },\r\n {\r\n \"no\": 1478,\r\n \"code\": \"1F192\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cool\"\r\n ]\r\n },\r\n {\r\n \"no\": 1479,\r\n \"code\": \"1F193\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"free\"\r\n ]\r\n },\r\n {\r\n \"no\": 1480,\r\n \"code\": \"2139\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"i\",\r\n \"information\"\r\n ]\r\n },\r\n {\r\n \"no\": 1481,\r\n \"code\": \"1F194\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"id\",\r\n \"identity\"\r\n ]\r\n },\r\n {\r\n \"no\": 1482,\r\n \"code\": \"24C2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"circle\",\r\n \"m\"\r\n ]\r\n },\r\n {\r\n \"no\": 1483,\r\n \"code\": \"1F195\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"new\"\r\n ]\r\n },\r\n {\r\n \"no\": 1484,\r\n \"code\": \"1F196\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ng\"\r\n ]\r\n },\r\n {\r\n \"no\": 1485,\r\n \"code\": \"1F17E\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blood\",\r\n \"o\"\r\n ]\r\n },\r\n {\r\n \"no\": 1486,\r\n \"code\": \"1F197\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ok\"\r\n ]\r\n },\r\n {\r\n \"no\": 1487,\r\n \"code\": \"1F17F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"parking\"\r\n ]\r\n },\r\n {\r\n \"no\": 1488,\r\n \"code\": \"1F198\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"help\",\r\n \"sos\"\r\n ]\r\n },\r\n {\r\n \"no\": 1489,\r\n \"code\": \"1F199\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"mark\",\r\n \"up\"\r\n ]\r\n },\r\n {\r\n \"no\": 1490,\r\n \"code\": \"1F19A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"versus\",\r\n \"vs\"\r\n ]\r\n },\r\n {\r\n \"no\": 1491,\r\n \"code\": \"1F201\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1492,\r\n \"code\": \"1F202\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1493,\r\n \"code\": \"1F237\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1494,\r\n \"code\": \"1F236\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1495,\r\n \"code\": \"1F22F\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1496,\r\n \"code\": \"1F250\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1497,\r\n \"code\": \"1F239\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1498,\r\n \"code\": \"1F21A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1499,\r\n \"code\": \"1F232\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1500,\r\n \"code\": \"1F251\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1501,\r\n \"code\": \"1F238\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1502,\r\n \"code\": \"1F234\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1503,\r\n \"code\": \"1F233\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1504,\r\n \"code\": \"3297\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\",\r\n \"congratulation\",\r\n \"congratulations\",\r\n \"ideograph\"\r\n ]\r\n },\r\n {\r\n \"no\": 1505,\r\n \"code\": \"3299\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\",\r\n \"ideograph\",\r\n \"secret\"\r\n ]\r\n },\r\n {\r\n \"no\": 1506,\r\n \"code\": \"1F23A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1507,\r\n \"code\": \"1F235\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chinese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1508,\r\n \"code\": \"25AA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1509,\r\n \"code\": \"25AB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1510,\r\n \"code\": \"25FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1511,\r\n \"code\": \"25FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1512,\r\n \"code\": \"25FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1513,\r\n \"code\": \"25FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1514,\r\n \"code\": \"2B1B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1515,\r\n \"code\": \"2B1C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1516,\r\n \"code\": \"1F536\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"diamond\",\r\n \"geometric\",\r\n \"orange\"\r\n ]\r\n },\r\n {\r\n \"no\": 1517,\r\n \"code\": \"1F537\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blue\",\r\n \"diamond\",\r\n \"geometric\"\r\n ]\r\n },\r\n {\r\n \"no\": 1518,\r\n \"code\": \"1F538\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"diamond\",\r\n \"geometric\",\r\n \"orange\"\r\n ]\r\n },\r\n {\r\n \"no\": 1519,\r\n \"code\": \"1F539\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blue\",\r\n \"diamond\",\r\n \"geometric\"\r\n ]\r\n },\r\n {\r\n \"no\": 1520,\r\n \"code\": \"1F53A\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"geometric\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 1521,\r\n \"code\": \"1F53B\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"down\",\r\n \"geometric\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 1522,\r\n \"code\": \"1F4A0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comic\",\r\n \"diamond\",\r\n \"geometric\",\r\n \"inside\"\r\n ]\r\n },\r\n {\r\n \"no\": 1523,\r\n \"code\": \"1F518\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"button\",\r\n \"geometric\",\r\n \"radio\"\r\n ]\r\n },\r\n {\r\n \"no\": 1524,\r\n \"code\": \"1F532\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"button\",\r\n \"geometric\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1525,\r\n \"code\": \"1F533\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"button\",\r\n \"geometric\",\r\n \"outlined\",\r\n \"square\"\r\n ]\r\n },\r\n {\r\n \"no\": 1526,\r\n \"code\": \"26AA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"circle\",\r\n \"geometric\"\r\n ]\r\n },\r\n {\r\n \"no\": 1527,\r\n \"code\": \"26AB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"circle\",\r\n \"geometric\"\r\n ]\r\n },\r\n {\r\n \"no\": 1528,\r\n \"code\": \"1F534\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"circle\",\r\n \"geometric\",\r\n \"red\"\r\n ]\r\n },\r\n {\r\n \"no\": 1529,\r\n \"code\": \"1F535\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"blue\",\r\n \"circle\",\r\n \"geometric\"\r\n ]\r\n }\r\n ],\r\n FLAGS: [\r\n {\r\n \"no\": 1530,\r\n \"code\": \"1F3C1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"checkered\",\r\n \"chequered\",\r\n \"flag\",\r\n \"racing\"\r\n ]\r\n },\r\n {\r\n \"no\": 1531,\r\n \"code\": \"1F6A9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"post\"\r\n ]\r\n },\r\n {\r\n \"no\": 1532,\r\n \"code\": \"1F38C\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"activity\",\r\n \"celebration\",\r\n \"cross\",\r\n \"crossed\",\r\n \"flag\",\r\n \"japanese\"\r\n ]\r\n },\r\n {\r\n \"no\": 1533,\r\n \"code\": \"1F3F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"waving\"\r\n ]\r\n },\r\n {\r\n \"no\": 1534,\r\n \"code\": \"1F3F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"waving\"\r\n ]\r\n },\r\n {\r\n \"no\": 1535,\r\n \"code\": \"1F1E6-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ascension\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1536,\r\n \"code\": \"1F1E6-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"andorra\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1537,\r\n \"code\": \"1F1E6-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"emirates\",\r\n \"flag\",\r\n \"uae\",\r\n \"united\"\r\n ]\r\n },\r\n {\r\n \"no\": 1538,\r\n \"code\": \"1F1E6-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"afghanistan\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1539,\r\n \"code\": \"1F1E6-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"antigua\",\r\n \"barbuda\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1540,\r\n \"code\": \"1F1E6-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"anguilla\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1541,\r\n \"code\": \"1F1E6-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"albania\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1542,\r\n \"code\": \"1F1E6-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"armenia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1543,\r\n \"code\": \"1F1E6-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"angola\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1544,\r\n \"code\": \"1F1E6-1F1F6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"antarctica\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1545,\r\n \"code\": \"1F1E6-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"argentina\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1546,\r\n \"code\": \"1F1E6-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"american\",\r\n \"flag\",\r\n \"samoa\"\r\n ]\r\n },\r\n {\r\n \"no\": 1547,\r\n \"code\": \"1F1E6-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"austria\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1548,\r\n \"code\": \"1F1E6-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"australia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1549,\r\n \"code\": \"1F1E6-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"aruba\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1550,\r\n \"code\": \"1F1E6-1F1FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"åland\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1551,\r\n \"code\": \"1F1E6-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"azerbaijan\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1552,\r\n \"code\": \"1F1E7-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bosnia\",\r\n \"flag\",\r\n \"herzegovina\"\r\n ]\r\n },\r\n {\r\n \"no\": 1553,\r\n \"code\": \"1F1E7-1F1E7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"barbados\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1554,\r\n \"code\": \"1F1E7-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bangladesh\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1555,\r\n \"code\": \"1F1E7-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"belgium\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1556,\r\n \"code\": \"1F1E7-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"burkina faso\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1557,\r\n \"code\": \"1F1E7-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bulgaria\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1558,\r\n \"code\": \"1F1E7-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bahrain\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1559,\r\n \"code\": \"1F1E7-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"burundi\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1560,\r\n \"code\": \"1F1E7-1F1EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"benin\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1561,\r\n \"code\": \"1F1E7-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"barthelemy\",\r\n \"barthélemy\",\r\n \"flag\",\r\n \"saint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1562,\r\n \"code\": \"1F1E7-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bermuda\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1563,\r\n \"code\": \"1F1E7-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"brunei\",\r\n \"darussalam\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1564,\r\n \"code\": \"1F1E7-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bolivia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1565,\r\n \"code\": \"1F1E7-1F1F6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bonaire\",\r\n \"caribbean\",\r\n \"eustatius\",\r\n \"flag\",\r\n \"netherlands\",\r\n \"saba\",\r\n \"sint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1566,\r\n \"code\": \"1F1E7-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"brazil\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1567,\r\n \"code\": \"1F1E7-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bahamas\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1568,\r\n \"code\": \"1F1E7-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bhutan\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1569,\r\n \"code\": \"1F1E7-1F1FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bouvet\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1570,\r\n \"code\": \"1F1E7-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"botswana\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1571,\r\n \"code\": \"1F1E7-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"belarus\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1572,\r\n \"code\": \"1F1E7-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"belize\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1573,\r\n \"code\": \"1F1E8-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"canada\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1574,\r\n \"code\": \"1F1E8-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cocos\",\r\n \"flag\",\r\n \"island\",\r\n \"keeling\"\r\n ]\r\n },\r\n {\r\n \"no\": 1575,\r\n \"code\": \"1F1E8-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"congo\",\r\n \"congo-kinshasa\",\r\n \"democratic republic of congo\",\r\n \"drc\",\r\n \"flag\",\r\n \"kinshasa\",\r\n \"republic\"\r\n ]\r\n },\r\n {\r\n \"no\": 1576,\r\n \"code\": \"1F1E8-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"central african republic\",\r\n \"flag\",\r\n \"republic\"\r\n ]\r\n },\r\n {\r\n \"no\": 1577,\r\n \"code\": \"1F1E8-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"brazzaville\",\r\n \"congo\",\r\n \"congo republic\",\r\n \"congo-brazzaville\",\r\n \"flag\",\r\n \"republic\",\r\n \"republic of the congo\"\r\n ]\r\n },\r\n {\r\n \"no\": 1578,\r\n \"code\": \"1F1E8-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"switzerland\"\r\n ]\r\n },\r\n {\r\n \"no\": 1579,\r\n \"code\": \"1F1E8-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cote ivoire\",\r\n \"côte ivoire\",\r\n \"flag\",\r\n \"ivory coast\"\r\n ]\r\n },\r\n {\r\n \"no\": 1580,\r\n \"code\": \"1F1E8-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cook\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1581,\r\n \"code\": \"1F1E8-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chile\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1582,\r\n \"code\": \"1F1E8-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cameroon\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1583,\r\n \"code\": \"1F1E8-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"china\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1584,\r\n \"code\": \"1F1E8-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"colombia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1585,\r\n \"code\": \"1F1E8-1F1F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"clipperton\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1586,\r\n \"code\": \"1F1E8-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"costa rica\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1587,\r\n \"code\": \"1F1E8-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cuba\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1588,\r\n \"code\": \"1F1E8-1F1FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cabo\",\r\n \"cape\",\r\n \"flag\",\r\n \"verde\"\r\n ]\r\n },\r\n {\r\n \"no\": 1589,\r\n \"code\": \"1F1E8-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"antilles\",\r\n \"curacao\",\r\n \"curaçao\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1590,\r\n \"code\": \"1F1E8-1F1FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"christmas\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1591,\r\n \"code\": \"1F1E8-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cyprus\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1592,\r\n \"code\": \"1F1E8-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"czech republic\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1593,\r\n \"code\": \"1F1E9-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"germany\"\r\n ]\r\n },\r\n {\r\n \"no\": 1594,\r\n \"code\": \"1F1E9-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"diego garcia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1595,\r\n \"code\": \"1F1E9-1F1EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"djibouti\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1596,\r\n \"code\": \"1F1E9-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"denmark\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1597,\r\n \"code\": \"1F1E9-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dominica\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1598,\r\n \"code\": \"1F1E9-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"dominican republic\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1599,\r\n \"code\": \"1F1E9-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"algeria\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1600,\r\n \"code\": \"1F1EA-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ceuta\",\r\n \"flag\",\r\n \"melilla\"\r\n ]\r\n },\r\n {\r\n \"no\": 1601,\r\n \"code\": \"1F1EA-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ecuador\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1602,\r\n \"code\": \"1F1EA-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"estonia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1603,\r\n \"code\": \"1F1EA-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"egypt\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1604,\r\n \"code\": \"1F1EA-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"sahara\",\r\n \"west\",\r\n \"western sahara\"\r\n ]\r\n },\r\n {\r\n \"no\": 1605,\r\n \"code\": \"1F1EA-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"eritrea\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1606,\r\n \"code\": \"1F1EA-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"spain\"\r\n ]\r\n },\r\n {\r\n \"no\": 1607,\r\n \"code\": \"1F1EA-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"ethiopia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1608,\r\n \"code\": \"1F1EA-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"european union\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1609,\r\n \"code\": \"1F1EB-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"finland\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1610,\r\n \"code\": \"1F1EB-1F1EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"fiji\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1611,\r\n \"code\": \"1F1EB-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"falkland\",\r\n \"falklands\",\r\n \"flag\",\r\n \"island\",\r\n \"islas\",\r\n \"malvinas\"\r\n ]\r\n },\r\n {\r\n \"no\": 1612,\r\n \"code\": \"1F1EB-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"micronesia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1613,\r\n \"code\": \"1F1EB-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"faroe\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1614,\r\n \"code\": \"1F1EB-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"france\"\r\n ]\r\n },\r\n {\r\n \"no\": 1615,\r\n \"code\": \"1F1EC-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"gabon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1616,\r\n \"code\": \"1F1EC-1F1E7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"britain\",\r\n \"british\",\r\n \"cornwall\",\r\n \"england\",\r\n \"flag\",\r\n \"great britain\",\r\n \"ireland\",\r\n \"northern ireland\",\r\n \"scotland\",\r\n \"uk\",\r\n \"union jack\",\r\n \"united\",\r\n \"united kingdom\",\r\n \"wales\"\r\n ]\r\n },\r\n {\r\n \"no\": 1617,\r\n \"code\": \"1F1EC-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"grenada\"\r\n ]\r\n },\r\n {\r\n \"no\": 1618,\r\n \"code\": \"1F1EC-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"georgia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1619,\r\n \"code\": \"1F1EC-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"french\",\r\n \"guiana\"\r\n ]\r\n },\r\n {\r\n \"no\": 1620,\r\n \"code\": \"1F1EC-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"guernsey\"\r\n ]\r\n },\r\n {\r\n \"no\": 1621,\r\n \"code\": \"1F1EC-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"ghana\"\r\n ]\r\n },\r\n {\r\n \"no\": 1622,\r\n \"code\": \"1F1EC-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"gibraltar\"\r\n ]\r\n },\r\n {\r\n \"no\": 1623,\r\n \"code\": \"1F1EC-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"greenland\"\r\n ]\r\n },\r\n {\r\n \"no\": 1624,\r\n \"code\": \"1F1EC-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"gambia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1625,\r\n \"code\": \"1F1EC-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"guinea\"\r\n ]\r\n },\r\n {\r\n \"no\": 1626,\r\n \"code\": \"1F1EC-1F1F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"guadeloupe\"\r\n ]\r\n },\r\n {\r\n \"no\": 1627,\r\n \"code\": \"1F1EC-1F1F6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"equatorial guinea\",\r\n \"flag\",\r\n \"guinea\"\r\n ]\r\n },\r\n {\r\n \"no\": 1628,\r\n \"code\": \"1F1EC-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"greece\"\r\n ]\r\n },\r\n {\r\n \"no\": 1629,\r\n \"code\": \"1F1EC-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"georgia\",\r\n \"island\",\r\n \"south\",\r\n \"south georgia\",\r\n \"south sandwich\"\r\n ]\r\n },\r\n {\r\n \"no\": 1630,\r\n \"code\": \"1F1EC-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"guatemala\"\r\n ]\r\n },\r\n {\r\n \"no\": 1631,\r\n \"code\": \"1F1EC-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"guam\"\r\n ]\r\n },\r\n {\r\n \"no\": 1632,\r\n \"code\": \"1F1EC-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"bissau\",\r\n \"flag\",\r\n \"guinea\"\r\n ]\r\n },\r\n {\r\n \"no\": 1633,\r\n \"code\": \"1F1EC-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"guyana\"\r\n ]\r\n },\r\n {\r\n \"no\": 1634,\r\n \"code\": \"1F1ED-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"china\",\r\n \"flag\",\r\n \"hong kong\"\r\n ]\r\n },\r\n {\r\n \"no\": 1635,\r\n \"code\": \"1F1ED-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"heard\",\r\n \"island\",\r\n \"mcdonald\"\r\n ]\r\n },\r\n {\r\n \"no\": 1636,\r\n \"code\": \"1F1ED-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"honduras\"\r\n ]\r\n },\r\n {\r\n \"no\": 1637,\r\n \"code\": \"1F1ED-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"croatia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1638,\r\n \"code\": \"1F1ED-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"haiti\"\r\n ]\r\n },\r\n {\r\n \"no\": 1639,\r\n \"code\": \"1F1ED-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"hungary\"\r\n ]\r\n },\r\n {\r\n \"no\": 1640,\r\n \"code\": \"1F1EE-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"canary\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1641,\r\n \"code\": \"1F1EE-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"indonesia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1642,\r\n \"code\": \"1F1EE-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"ireland\"\r\n ]\r\n },\r\n {\r\n \"no\": 1643,\r\n \"code\": \"1F1EE-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"israel\"\r\n ]\r\n },\r\n {\r\n \"no\": 1644,\r\n \"code\": \"1F1EE-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"isle of man\"\r\n ]\r\n },\r\n {\r\n \"no\": 1645,\r\n \"code\": \"1F1EE-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"india\"\r\n ]\r\n },\r\n {\r\n \"no\": 1646,\r\n \"code\": \"1F1EE-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"british\",\r\n \"chagos\",\r\n \"flag\",\r\n \"indian ocean\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1647,\r\n \"code\": \"1F1EE-1F1F6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"iraq\"\r\n ]\r\n },\r\n {\r\n \"no\": 1648,\r\n \"code\": \"1F1EE-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"iran\"\r\n ]\r\n },\r\n {\r\n \"no\": 1649,\r\n \"code\": \"1F1EE-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"iceland\"\r\n ]\r\n },\r\n {\r\n \"no\": 1650,\r\n \"code\": \"1F1EE-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"italy\"\r\n ]\r\n },\r\n {\r\n \"no\": 1651,\r\n \"code\": \"1F1EF-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"jersey\"\r\n ]\r\n },\r\n {\r\n \"no\": 1652,\r\n \"code\": \"1F1EF-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"jamaica\"\r\n ]\r\n },\r\n {\r\n \"no\": 1653,\r\n \"code\": \"1F1EF-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"jordan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1654,\r\n \"code\": \"1F1EF-1F1F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"japan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1655,\r\n \"code\": \"1F1F0-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"kenya\"\r\n ]\r\n },\r\n {\r\n \"no\": 1656,\r\n \"code\": \"1F1F0-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"kyrgyzstan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1657,\r\n \"code\": \"1F1F0-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cambodia\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1658,\r\n \"code\": \"1F1F0-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"kiribati\"\r\n ]\r\n },\r\n {\r\n \"no\": 1659,\r\n \"code\": \"1F1F0-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"comoros\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1660,\r\n \"code\": \"1F1F0-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"kitts\",\r\n \"nevis\",\r\n \"saint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1661,\r\n \"code\": \"1F1F0-1F1F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"korea\",\r\n \"north\",\r\n \"north korea\"\r\n ]\r\n },\r\n {\r\n \"no\": 1662,\r\n \"code\": \"1F1F0-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"korea\",\r\n \"south\",\r\n \"south korea\"\r\n ]\r\n },\r\n {\r\n \"no\": 1663,\r\n \"code\": \"1F1F0-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"kuwait\"\r\n ]\r\n },\r\n {\r\n \"no\": 1664,\r\n \"code\": \"1F1F0-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"cayman\",\r\n \"flag\",\r\n \"island\"\r\n ]\r\n },\r\n {\r\n \"no\": 1665,\r\n \"code\": \"1F1F0-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"kazakhstan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1666,\r\n \"code\": \"1F1F1-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"laos\"\r\n ]\r\n },\r\n {\r\n \"no\": 1667,\r\n \"code\": \"1F1F1-1F1E7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"lebanon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1668,\r\n \"code\": \"1F1F1-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"lucia\",\r\n \"saint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1669,\r\n \"code\": \"1F1F1-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"liechtenstein\"\r\n ]\r\n },\r\n {\r\n \"no\": 1670,\r\n \"code\": \"1F1F1-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"sri lanka\"\r\n ]\r\n },\r\n {\r\n \"no\": 1671,\r\n \"code\": \"1F1F1-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"liberia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1672,\r\n \"code\": \"1F1F1-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"lesotho\"\r\n ]\r\n },\r\n {\r\n \"no\": 1673,\r\n \"code\": \"1F1F1-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"lithuania\"\r\n ]\r\n },\r\n {\r\n \"no\": 1674,\r\n \"code\": \"1F1F1-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"luxembourg\"\r\n ]\r\n },\r\n {\r\n \"no\": 1675,\r\n \"code\": \"1F1F1-1F1FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"latvia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1676,\r\n \"code\": \"1F1F1-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"libya\"\r\n ]\r\n },\r\n {\r\n \"no\": 1677,\r\n \"code\": \"1F1F2-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"morocco\"\r\n ]\r\n },\r\n {\r\n \"no\": 1678,\r\n \"code\": \"1F1F2-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"monaco\"\r\n ]\r\n },\r\n {\r\n \"no\": 1679,\r\n \"code\": \"1F1F2-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"moldova\"\r\n ]\r\n },\r\n {\r\n \"no\": 1680,\r\n \"code\": \"1F1F2-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"montenegro\"\r\n ]\r\n },\r\n {\r\n \"no\": 1681,\r\n \"code\": \"1F1F2-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"french\",\r\n \"martin\",\r\n \"saint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1682,\r\n \"code\": \"1F1F2-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"madagascar\"\r\n ]\r\n },\r\n {\r\n \"no\": 1683,\r\n \"code\": \"1F1F2-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"island\",\r\n \"marshall\"\r\n ]\r\n },\r\n {\r\n \"no\": 1684,\r\n \"code\": \"1F1F2-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"macedonia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1685,\r\n \"code\": \"1F1F2-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"mali\"\r\n ]\r\n },\r\n {\r\n \"no\": 1686,\r\n \"code\": \"1F1F2-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"burma\",\r\n \"flag\",\r\n \"myanmar\"\r\n ]\r\n },\r\n {\r\n \"no\": 1687,\r\n \"code\": \"1F1F2-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"mongolia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1688,\r\n \"code\": \"1F1F2-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"china\",\r\n \"flag\",\r\n \"macao\",\r\n \"macau\"\r\n ]\r\n },\r\n {\r\n \"no\": 1689,\r\n \"code\": \"1F1F2-1F1F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"island\",\r\n \"mariana\",\r\n \"north\",\r\n \"northern mariana\"\r\n ]\r\n },\r\n {\r\n \"no\": 1690,\r\n \"code\": \"1F1F2-1F1F6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"martinique\"\r\n ]\r\n },\r\n {\r\n \"no\": 1691,\r\n \"code\": \"1F1F2-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"mauritania\"\r\n ]\r\n },\r\n {\r\n \"no\": 1692,\r\n \"code\": \"1F1F2-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"montserrat\"\r\n ]\r\n },\r\n {\r\n \"no\": 1693,\r\n \"code\": \"1F1F2-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"malta\"\r\n ]\r\n },\r\n {\r\n \"no\": 1694,\r\n \"code\": \"1F1F2-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"mauritius\"\r\n ]\r\n },\r\n {\r\n \"no\": 1695,\r\n \"code\": \"1F1F2-1F1FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"maldives\"\r\n ]\r\n },\r\n {\r\n \"no\": 1696,\r\n \"code\": \"1F1F2-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"malawi\"\r\n ]\r\n },\r\n {\r\n \"no\": 1697,\r\n \"code\": \"1F1F2-1F1FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"mexico\"\r\n ]\r\n },\r\n {\r\n \"no\": 1698,\r\n \"code\": \"1F1F2-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"malaysia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1699,\r\n \"code\": \"1F1F2-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"mozambique\"\r\n ]\r\n },\r\n {\r\n \"no\": 1700,\r\n \"code\": \"1F1F3-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"namibia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1701,\r\n \"code\": \"1F1F3-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"new\",\r\n \"new caledonia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1702,\r\n \"code\": \"1F1F3-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"niger\"\r\n ]\r\n },\r\n {\r\n \"no\": 1703,\r\n \"code\": \"1F1F3-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"island\",\r\n \"norfolk\"\r\n ]\r\n },\r\n {\r\n \"no\": 1704,\r\n \"code\": \"1F1F3-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"nigeria\"\r\n ]\r\n },\r\n {\r\n \"no\": 1705,\r\n \"code\": \"1F1F3-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"nicaragua\"\r\n ]\r\n },\r\n {\r\n \"no\": 1706,\r\n \"code\": \"1F1F3-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"netherlands\"\r\n ]\r\n },\r\n {\r\n \"no\": 1707,\r\n \"code\": \"1F1F3-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"norway\"\r\n ]\r\n },\r\n {\r\n \"no\": 1708,\r\n \"code\": \"1F1F3-1F1F5\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"nepal\"\r\n ]\r\n },\r\n {\r\n \"no\": 1709,\r\n \"code\": \"1F1F3-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"nauru\"\r\n ]\r\n },\r\n {\r\n \"no\": 1710,\r\n \"code\": \"1F1F3-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"niue\"\r\n ]\r\n },\r\n {\r\n \"no\": 1711,\r\n \"code\": \"1F1F3-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"new\",\r\n \"new zealand\"\r\n ]\r\n },\r\n {\r\n \"no\": 1712,\r\n \"code\": \"1F1F4-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"oman\"\r\n ]\r\n },\r\n {\r\n \"no\": 1713,\r\n \"code\": \"1F1F5-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"panama\"\r\n ]\r\n },\r\n {\r\n \"no\": 1714,\r\n \"code\": \"1F1F5-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"peru\"\r\n ]\r\n },\r\n {\r\n \"no\": 1715,\r\n \"code\": \"1F1F5-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"french\",\r\n \"polynesia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1716,\r\n \"code\": \"1F1F5-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"guinea\",\r\n \"new\",\r\n \"papua new guinea\"\r\n ]\r\n },\r\n {\r\n \"no\": 1717,\r\n \"code\": \"1F1F5-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"philippines\"\r\n ]\r\n },\r\n {\r\n \"no\": 1718,\r\n \"code\": \"1F1F5-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"pakistan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1719,\r\n \"code\": \"1F1F5-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"poland\"\r\n ]\r\n },\r\n {\r\n \"no\": 1720,\r\n \"code\": \"1F1F5-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"miquelon\",\r\n \"pierre\",\r\n \"saint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1721,\r\n \"code\": \"1F1F5-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"island\",\r\n \"pitcairn\"\r\n ]\r\n },\r\n {\r\n \"no\": 1722,\r\n \"code\": \"1F1F5-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"puerto rico\"\r\n ]\r\n },\r\n {\r\n \"no\": 1723,\r\n \"code\": \"1F1F5-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"palestine\"\r\n ]\r\n },\r\n {\r\n \"no\": 1724,\r\n \"code\": \"1F1F5-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"portugal\"\r\n ]\r\n },\r\n {\r\n \"no\": 1725,\r\n \"code\": \"1F1F5-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"palau\"\r\n ]\r\n },\r\n {\r\n \"no\": 1726,\r\n \"code\": \"1F1F5-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"paraguay\"\r\n ]\r\n },\r\n {\r\n \"no\": 1727,\r\n \"code\": \"1F1F6-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"qatar\"\r\n ]\r\n },\r\n {\r\n \"no\": 1728,\r\n \"code\": \"1F1F7-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"reunion\",\r\n \"réunion\"\r\n ]\r\n },\r\n {\r\n \"no\": 1729,\r\n \"code\": \"1F1F7-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"romania\"\r\n ]\r\n },\r\n {\r\n \"no\": 1730,\r\n \"code\": \"1F1F7-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"serbia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1731,\r\n \"code\": \"1F1F7-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"russia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1732,\r\n \"code\": \"1F1F7-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"rwanda\"\r\n ]\r\n },\r\n {\r\n \"no\": 1733,\r\n \"code\": \"1F1F8-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"saudi arabia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1734,\r\n \"code\": \"1F1F8-1F1E7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"island\",\r\n \"solomon\"\r\n ]\r\n },\r\n {\r\n \"no\": 1735,\r\n \"code\": \"1F1F8-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"seychelles\"\r\n ]\r\n },\r\n {\r\n \"no\": 1736,\r\n \"code\": \"1F1F8-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"sudan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1737,\r\n \"code\": \"1F1F8-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"sweden\"\r\n ]\r\n },\r\n {\r\n \"no\": 1738,\r\n \"code\": \"1F1F8-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"singapore\"\r\n ]\r\n },\r\n {\r\n \"no\": 1739,\r\n \"code\": \"1F1F8-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"helena\",\r\n \"saint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1740,\r\n \"code\": \"1F1F8-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"slovenia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1741,\r\n \"code\": \"1F1F8-1F1EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"jan mayen\",\r\n \"svalbard\"\r\n ]\r\n },\r\n {\r\n \"no\": 1742,\r\n \"code\": \"1F1F8-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"slovakia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1743,\r\n \"code\": \"1F1F8-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"sierra leone\"\r\n ]\r\n },\r\n {\r\n \"no\": 1744,\r\n \"code\": \"1F1F8-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"san marino\"\r\n ]\r\n },\r\n {\r\n \"no\": 1745,\r\n \"code\": \"1F1F8-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"senegal\"\r\n ]\r\n },\r\n {\r\n \"no\": 1746,\r\n \"code\": \"1F1F8-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"somalia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1747,\r\n \"code\": \"1F1F8-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"suriname\"\r\n ]\r\n },\r\n {\r\n \"no\": 1748,\r\n \"code\": \"1F1F8-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"south\",\r\n \"south sudan\",\r\n \"sudan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1749,\r\n \"code\": \"1F1F8-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"principe\",\r\n \"príncipe\",\r\n \"sao tome\",\r\n \"são tomé\"\r\n ]\r\n },\r\n {\r\n \"no\": 1750,\r\n \"code\": \"1F1F8-1F1FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"el salvador\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1751,\r\n \"code\": \"1F1F8-1F1FD\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"maarten\",\r\n \"sint\"\r\n ]\r\n },\r\n {\r\n \"no\": 1752,\r\n \"code\": \"1F1F8-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"syria\"\r\n ]\r\n },\r\n {\r\n \"no\": 1753,\r\n \"code\": \"1F1F8-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"swaziland\"\r\n ]\r\n },\r\n {\r\n \"no\": 1754,\r\n \"code\": \"1F1F9-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tristan da cunha\"\r\n ]\r\n },\r\n {\r\n \"no\": 1755,\r\n \"code\": \"1F1F9-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"caicos\",\r\n \"flag\",\r\n \"island\",\r\n \"turks\"\r\n ]\r\n },\r\n {\r\n \"no\": 1756,\r\n \"code\": \"1F1F9-1F1E9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"chad\",\r\n \"flag\"\r\n ]\r\n },\r\n {\r\n \"no\": 1757,\r\n \"code\": \"1F1F9-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"antarctic\",\r\n \"flag\",\r\n \"french\"\r\n ]\r\n },\r\n {\r\n \"no\": 1758,\r\n \"code\": \"1F1F9-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"togo\"\r\n ]\r\n },\r\n {\r\n \"no\": 1759,\r\n \"code\": \"1F1F9-1F1ED\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"thailand\"\r\n ]\r\n },\r\n {\r\n \"no\": 1760,\r\n \"code\": \"1F1F9-1F1EF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tajikistan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1761,\r\n \"code\": \"1F1F9-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tokelau\"\r\n ]\r\n },\r\n {\r\n \"no\": 1762,\r\n \"code\": \"1F1F9-1F1F1\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"east\",\r\n \"east timor\",\r\n \"flag\",\r\n \"timor-leste\"\r\n ]\r\n },\r\n {\r\n \"no\": 1763,\r\n \"code\": \"1F1F9-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"turkmenistan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1764,\r\n \"code\": \"1F1F9-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tunisia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1765,\r\n \"code\": \"1F1F9-1F1F4\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tonga\"\r\n ]\r\n },\r\n {\r\n \"no\": 1766,\r\n \"code\": \"1F1F9-1F1F7\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"turkey\"\r\n ]\r\n },\r\n {\r\n \"no\": 1767,\r\n \"code\": \"1F1F9-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tobago\",\r\n \"trinidad\"\r\n ]\r\n },\r\n {\r\n \"no\": 1768,\r\n \"code\": \"1F1F9-1F1FB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tuvalu\"\r\n ]\r\n },\r\n {\r\n \"no\": 1769,\r\n \"code\": \"1F1F9-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"china\",\r\n \"flag\",\r\n \"taiwan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1770,\r\n \"code\": \"1F1F9-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"tanzania\"\r\n ]\r\n },\r\n {\r\n \"no\": 1771,\r\n \"code\": \"1F1FA-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"ukraine\"\r\n ]\r\n },\r\n {\r\n \"no\": 1772,\r\n \"code\": \"1F1FA-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"uganda\"\r\n ]\r\n },\r\n {\r\n \"no\": 1773,\r\n \"code\": \"1F1FA-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"america\",\r\n \"flag\",\r\n \"island\",\r\n \"minor outlying\",\r\n \"united\",\r\n \"united states\",\r\n \"us\",\r\n \"usa\"\r\n ]\r\n },\r\n {\r\n \"no\": 1774,\r\n \"code\": \"1F1FA-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"america\",\r\n \"flag\",\r\n \"stars and stripes\",\r\n \"united\",\r\n \"united states\"\r\n ]\r\n },\r\n {\r\n \"no\": 1775,\r\n \"code\": \"1F1FA-1F1FE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"uruguay\"\r\n ]\r\n },\r\n {\r\n \"no\": 1776,\r\n \"code\": \"1F1FA-1F1FF\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"uzbekistan\"\r\n ]\r\n },\r\n {\r\n \"no\": 1777,\r\n \"code\": \"1F1FB-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"vatican\"\r\n ]\r\n },\r\n {\r\n \"no\": 1778,\r\n \"code\": \"1F1FB-1F1E8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"grenadines\",\r\n \"saint\",\r\n \"vincent\"\r\n ]\r\n },\r\n {\r\n \"no\": 1779,\r\n \"code\": \"1F1FB-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"venezuela\"\r\n ]\r\n },\r\n {\r\n \"no\": 1780,\r\n \"code\": \"1F1FB-1F1EC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"british\",\r\n \"flag\",\r\n \"island\",\r\n \"virgin\"\r\n ]\r\n },\r\n {\r\n \"no\": 1781,\r\n \"code\": \"1F1FB-1F1EE\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"america\",\r\n \"american\",\r\n \"flag\",\r\n \"island\",\r\n \"united\",\r\n \"united states\",\r\n \"us\",\r\n \"usa\",\r\n \"virgin\"\r\n ]\r\n },\r\n {\r\n \"no\": 1782,\r\n \"code\": \"1F1FB-1F1F3\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"viet nam\",\r\n \"vietnam\"\r\n ]\r\n },\r\n {\r\n \"no\": 1783,\r\n \"code\": \"1F1FB-1F1FA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"vanuatu\"\r\n ]\r\n },\r\n {\r\n \"no\": 1784,\r\n \"code\": \"1F1FC-1F1EB\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"futuna\",\r\n \"wallis\"\r\n ]\r\n },\r\n {\r\n \"no\": 1785,\r\n \"code\": \"1F1FC-1F1F8\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"samoa\"\r\n ]\r\n },\r\n {\r\n \"no\": 1786,\r\n \"code\": \"1F1FD-1F1F0\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"kosovo\"\r\n ]\r\n },\r\n {\r\n \"no\": 1787,\r\n \"code\": \"1F1FE-1F1EA\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"yemen\"\r\n ]\r\n },\r\n {\r\n \"no\": 1788,\r\n \"code\": \"1F1FE-1F1F9\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"mayotte\"\r\n ]\r\n },\r\n {\r\n \"no\": 1789,\r\n \"code\": \"1F1FF-1F1E6\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"south\",\r\n \"south africa\"\r\n ]\r\n },\r\n {\r\n \"no\": 1790,\r\n \"code\": \"1F1FF-1F1F2\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"zambia\"\r\n ]\r\n },\r\n {\r\n \"no\": 1791,\r\n \"code\": \"1F1FF-1F1FC\",\r\n \"flagged\": false,\r\n \"keywords\": [\r\n \"flag\",\r\n \"zimbabwe\"\r\n ]\r\n }\r\n ]\r\n}","import React, { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { bigIconList } from \"../../digitalArena/modules/Plaudit/PlauditIcons\";\r\nimport EmojiEmotionsIcon from \"@material-ui/icons/EmojiEmotions\";\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Col, Label, Row } from \"reactstrap\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport { Accordion, AccordionDetails, AccordionSummary, Dialog, DialogContent, IconButton, withStyles, Typography } from \"@material-ui/core\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\"\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport PublishIcon from '@material-ui/icons/Publish';\r\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\r\nimport { authHeader } from \"../../helpers/authHeader\";\r\nimport { handleResponse } from \"../../helpers/handleresponse\";\r\nconst styles = (theme) => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\",\r\n },\r\n});\r\nconst DialogTitle = withStyles(styles)((props) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nexport const PlauditIconSelector = memo(({ eventId, value = \"\", onChange, label }) => {\r\n const [open, setOpen] = useState(false);\r\n const [uploadedFiles, setUploadedFiles] = useState({});\r\n const [deleteMode, setDeleteMode] = useState(false);\r\n const toggleIcon = (icon) => {\r\n if (value.includes(icon)) {\r\n onChange(value.replace(icon + \";\", \"\"));\r\n }\r\n else {\r\n onChange(value + icon + \";\")\r\n }\r\n }\r\n const iconCategories = useMemo(() => {\r\n const categories = [];\r\n for (const cat in bigIconList) {\r\n if (Object.hasOwnProperty.call(bigIconList, cat)) {\r\n categories.push(cat);\r\n }\r\n }\r\n return categories;\r\n }, [bigIconList])\r\n const selectedIcons = useMemo(() => {\r\n return value.split(\";\").filter(x => x !== \"\");\r\n }, [value])\r\n const uploadedIcons = useMemo(() => {\r\n const filenames = [];\r\n for (const key in uploadedFiles) {\r\n if (Object.hasOwnProperty.call(uploadedFiles, key)) {\r\n filenames.push(key);\r\n }\r\n }\r\n return filenames;\r\n }, [uploadedFiles])\r\n useEffect(() => {\r\n getUploadedIcons();\r\n }, [])\r\n\r\n const getUploadedIcons = () => {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({}),\r\n };\r\n fetch(\r\n `./api/files/icons/${eventId}`,\r\n requestOptions\r\n ).then((response) =>\r\n response.text().then((text) => {\r\n try {\r\n const storageSummary = JSON.parse(text);\r\n var files = {};\r\n for (const file of storageSummary.files) {\r\n files[file.name] = file.url;\r\n }\r\n setUploadedFiles(files);\r\n } catch (error) {\r\n console.error(\"DOWNLOAD_ERROR\", error);\r\n }\r\n })\r\n );\r\n };\r\n const onUploadedFile = (file) => {\r\n setUploadedFiles({ ...uploadedFiles, ...file })\r\n }\r\n const deleteIcon = (icon) => {\r\n if (uploadedFiles[icon]) {\r\n if (window.confirm(`Är du säker att du vill radera ${icon}? Detta kan ej ångras.`)) {\r\n fetch(\r\n `./api/files/icon/${eventId}/${icon}`,\r\n {\r\n method: \"DELETE\",\r\n headers: authHeader({}),\r\n }\r\n ).then((response) => {\r\n const newFiles = { ...uploadedFiles };\r\n delete newFiles[icon];\r\n if (value.includes(icon)) {\r\n onChange(value.replace(icon + \";\", \"\"));\r\n }\r\n setUploadedFiles(newFiles);\r\n });\r\n }\r\n }\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n setOpen(!open)}>\r\n \r\n \r\n \r\n \r\n {open ?\r\n setOpen(false)}\r\n maxWidth={\"md\"}\r\n fullWidth={true}\r\n >\r\n setOpen(false)}>\r\n \r\n \r\n \r\n\r\n 0}>\r\n \r\n \r\n
\r\n {selectedIcons.map((icon) => {\r\n return \r\n })}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n {uploadedIcons.map((icon) => {\r\n return \r\n })}\r\n
\r\n
\r\n
\r\n {iconCategories.map((category, i) => {\r\n return \r\n }> \r\n \r\n
\r\n {bigIconList[category].map((icon) => {\r\n return \r\n })}\r\n
\r\n
\r\n
\r\n })}\r\n \r\n
\r\n \r\n : null}\r\n
\r\n );\r\n});\r\n\r\n\r\nconst IconUploadButton = ({ eventId, onUploaded }) => {\r\n const onUpload = (e) => {\r\n const file = e.target.files[0];\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n if (reader.result) {\r\n const fileInfo = {\r\n name: file.name,\r\n size: file.size,\r\n type: file.type,\r\n file: reader.result,\r\n };\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(fileInfo),\r\n };\r\n fetch(\r\n `./api/files/icons/${eventId}`,\r\n requestOptions\r\n )\r\n .then(handleResponse)\r\n .then((file) => {\r\n let newFile = {}\r\n newFile[file.name] = file.url\r\n onUploaded(newFile);\r\n })\r\n .catch((err) => {\r\n console.error(err.message);\r\n });\r\n }\r\n };\r\n };\r\n\r\n\r\n return <>\r\n \r\n onUpload(e)} />\r\n \r\n}","import React from \"react\";\r\nimport { Button, ButtonGroup, FormGroup } from \"@material-ui/core\";\r\nimport { Col, Input, InputGroupText, Label, Row } from \"reactstrap\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport SwapHorizIcon from \"@material-ui/icons/SwapHoriz\";\r\nimport {\r\n imageSettingsList,\r\n htmlSettingsList,\r\n videoSettings,\r\n exhibitorSettingsList,\r\n zoomSettingsList,\r\n breakoutSettingsList,\r\n blockSettingsList,\r\n buttonSettingsList,\r\n textSettingsList,\r\n jitsiSettings,\r\n groupGeneratorSettingsList,\r\n genericSettings,\r\n userCardSettingsList,\r\n chatSettingsList,\r\n vongageSettingsList,\r\n agendaSettings,\r\n countdownSettings,\r\n imageSourceSettinglist,\r\n videoWallSettingsList,\r\n speakerControlSettings,\r\n speakerCardSettings,\r\n speakerListSettings,\r\n eventNameSettings,\r\n contentViewSettings,\r\n pollModuleSettings,\r\n clientListSettingsList,\r\n presenterModule,\r\n plauditButtonSettings,\r\n plauditTrackSettings\r\n} from \"../models/defaultModuleSettings\";\r\nimport UrlMultiInput from \"../../components/UrlMultiInput/UrlMultiInput\";\r\nimport EditorSlider from \"../../components/EditorSlider/EditorSlider\";\r\nimport ColorPickerFacade from \"../../components/ColorPickerFacade/ColorPickerFacade\";\r\nimport { templateHelper } from \"../../cms/areas/template/helpers/templateHelper\";\r\nimport SourceEditorBase from \"./SourceEditorWindow\";\r\nimport JirangoSwitch from \"../../components/JirangoSwitch/JirangoSwitch\";\r\nimport SettingsList from \"../../cms/areas/template/components/SettingsList\";\r\nimport FontPicker from \"../../cms/areas/template/components/FontPicker\";\r\nimport { FontWeightPicker } from \"../../cms/areas/template/components/FontWeightPicker\";\r\nimport Select from \"react-select\";\r\nimport { selectorStyle } from \"../layout/other/EventSelector\";\r\nimport JirangoDatepicker from \"../../plugins/JirangoDatepicker\";\r\nimport { ModulePlaceholder } from \"../layout/Sidebar/modules/ModulePlaceholder\";\r\nimport LinkMultiInput from \"../../components/UrlMultiInput/LinkMultiInput\";\r\nimport { MenuEditor } from \"./MenuEditor\";\r\nimport { PlauditIconSelector } from \"./PlauditIconSelector\";\r\n\r\nconst getUnit = (v) => {\r\n let unit = \"px\";\r\n try {\r\n unit = v.replace(v.replace(/[^0-9\\d.-]/g, \"\"), \"\");\r\n } catch (error) { }\r\n\r\n return unit;\r\n};\r\n\r\nexport const SettingsListItem = ({ type, label, value, onChange, events, eventId, extra = null }) => {\r\n\r\n switch (type.toString().toUpperCase()) {\r\n case \"SLIDER\":\r\n return (\r\n {\r\n if (extra.onUnitChange) {\r\n let v = extra.onUnitChange(u, value);\r\n onChange(v);\r\n }\r\n }}\r\n onChange={(s, v, p, ep) => onChange(v)}\r\n units={extra.units ? extra.units : []}\r\n activeUnit={value ? getUnit(value) : extra.activeUnit ? extra.activeUnit : null}\r\n attachUnit={extra.units ? true : false}\r\n steps={extra.steps}\r\n max={extra.max}\r\n min={extra.min}\r\n path={\"\"}\r\n dark={true}\r\n label={label}\r\n />\r\n );\r\n case \"ICON_SELECT\":\r\n return \r\n case \"SOURCE_EDITOR\":\r\n return ;\r\n case \"COLOR_PICKER\":\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n onChange(templateHelper.parseColorToRgba(color))} path=\"\" />\r\n \r\n \r\n );\r\n case \"SWITCH\":\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n onChange(!value)} isChecked={Boolean(value)} />\r\n \r\n \r\n );\r\n case \"ANIMATION_GROUP\":\r\n return (\r\n \r\n \r\n
\r\n {extra.map((e, i) => {\r\n return (\r\n
onChange(e.name)}>\r\n {e.icon}\r\n \r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n case \"DATE_PICKER\":\r\n return (\r\n \r\n \r\n onChange(+new Date(value))} dark={true} minDate={new Date()} value={value} />\r\n \r\n );\r\n case \"BUTTON_GROUP\":\r\n return (\r\n \r\n \r\n
\r\n {extra.map((e, i) => {\r\n return (\r\n
onChange(e.name)}>\r\n {e.icon}\r\n \r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n case \"BUTTON_GROUP_SMALL\":\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {extra.map((e, i) => {\r\n return (\r\n
onChange(e.name)}>\r\n {e.icon}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n case \"DATE\":\r\n return (\r\n \r\n \r\n onChange(e.target.value)} />\r\n \r\n );\r\n case \"TEXTAREA\":\r\n return (\r\n \r\n \r\n onChange(e.target.value)} />\r\n \r\n );\r\n case \"TEXT\":\r\n return (\r\n \r\n \r\n onChange(e.target.value)} />\r\n \r\n );\r\n case \"LINK_INPUT\":\r\n return (\r\n \r\n \r\n onChange(url)} margin={false} dark={true} eventId={eventId} colStyle={{ padding: 0, margin: 0 }} rowStyle={{ margin: \"0px\" }} url={value} />\r\n \r\n );\r\n case \"MENU_EDITOR\":\r\n return onChange(menu)} />;\r\n case \"MULTI_INPUT\":\r\n return (\r\n \r\n \r\n onChange(url, srcset, \"srcset\")}\r\n setImage={(url, srcset) => onChange(url, srcset, \"srcset\")}\r\n margin={false}\r\n noInfoText={true}\r\n dark={true}\r\n colStyle={{ padding: 0, margin: 0 }}\r\n rowStyle={{ margin: \"0px\" }}\r\n url={value}\r\n />\r\n \r\n );\r\n case \"FONTFAMILY_SELECT\":\r\n return onChange(font)} path=\"\" nonWrapped={true} currentFontFamily={value} />;\r\n case \"FONTWEIGHT_SELECT\":\r\n return onChange(w)} path=\"\" weight={value} />;\r\n case \"NUMBER\":\r\n return (\r\n \r\n \r\n onChange(e.target.value)} />\r\n \r\n );\r\n case \"EVENT_SELECT\":\r\n return (\r\n \r\n \r\n e.eventId != eventId)\r\n .sort((a, b) => {\r\n return +new Date(a.startDateTime) - +new Date(b.startDateTime);\r\n })\r\n .map((t) => {\r\n return { value: t.eventId, label: t.name };\r\n }),\r\n ]\r\n : []\r\n }\r\n value={{\r\n value: value,\r\n label: events.find((e) => e.eventId == value)?.name,\r\n }}\r\n onChange={(opt) => onChange(opt.value)}\r\n styles={{\r\n ...selectorStyle,\r\n }}\r\n />\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nconst stylableModules = [\"TextModule\", \"BlockModule\", \"ButtonModule\", \"CountdownModule\", \"VonageVideoClientModule\", \"SpeakerControl\", \"SpeakerCard\", \"EventName\", \"ContentView\", \"VideoWallModule\", \"PlauditButtons\", \"PlauditTrack\"];\r\n\r\nexport const ModuleSettings = (props) => {\r\n const { tab, settings, onChange, type, children } = props;\r\n\r\n if (tab == \"ContentSettings\" || tab == \"AdvancedSettings\" || (tab == \"StyleSettings\" && stylableModules.includes(type))) return ;\r\n else if (tab == \"StyleSettings\") return ;\r\n return null;\r\n};\r\n\r\nconst handleChange = (settings, value, path) => {\r\n if (path == \"useTemplateStyle\" && settings.settings) {\r\n settings.settings[path] = value;\r\n }\r\n if (typeof value == {}) return Object.assign({}, { ...settings, ...value });\r\n return Object.assign({}, { ...settings, [path]: value });\r\n};\r\n\r\nconst Tab = (props) => {\r\n const { onChange, tab, type, module, children, events, eventId, mainEventId, copyModule } = props;\r\n const settingsList = getModuleSettings(type);\r\n let settings = props.settings;\r\n\r\n return (\r\n
\r\n }\r\n customStyle={{ display: \"flex\", flexDirection: \"row\", alignItems: \"center\", textAlign: \"left\", justifyContent: \"left\", background: \"transparent\", cursor: \"default\" }}\r\n />\r\n }\r\n onClick={() => copyModule()}\r\n >\r\n \r\n \r\n {tab == \"ContentSettings\" ? children : null}\r\n {settingsList\r\n ? settingsList\r\n .filter((sl) => sl.tab == tab)\r\n .map((s, i) => {\r\n if (!s.showIf || (s.showIf && settings[s.showIf.name] == s.showIf.value)) {\r\n return (\r\n \r\n
\r\n {\r\n\r\n if (s.prop == \"settings\") {\r\n let newSettings = handleChange(settings, value, s.name);\r\n\r\n if (value2Prop) {\r\n newSettings[value2Prop] = value2;\r\n }\r\n\r\n onChange({\r\n ...module,\r\n settings: newSettings,\r\n })\r\n\r\n }\r\n else {\r\n onChange(handleChange(module, value, s.name));\r\n }\r\n\r\n }}\r\n />\r\n {s.separator ?
: null}\r\n
\r\n
\r\n );\r\n }\r\n })\r\n : null}\r\n
\r\n );\r\n};\r\n\r\nconst getModuleSettings = (key) => {\r\n switch (key) {\r\n case \"Image\":\r\n return imageSettingsList;\r\n case \"Html\":\r\n return htmlSettingsList;\r\n case \"Iframe\":\r\n return videoSettings;\r\n case \"Video\":\r\n return videoSettings;\r\n case \"ZoomFrame\":\r\n return zoomSettingsList;\r\n case \"Exhibitors\":\r\n return exhibitorSettingsList;\r\n case \"Breakouts\":\r\n return breakoutSettingsList;\r\n case \"SpeakerControl\":\r\n return speakerControlSettings;\r\n case \"BlockModule\":\r\n return blockSettingsList;\r\n case \"TextModule\":\r\n return textSettingsList;\r\n case \"JitsiFrame\":\r\n return jitsiSettings;\r\n case \"ButtonModule\":\r\n return buttonSettingsList;\r\n case \"GroupGenerator\":\r\n return groupGeneratorSettingsList;\r\n case \"UserCard\":\r\n return userCardSettingsList;\r\n case \"Chat\":\r\n return chatSettingsList;\r\n case \"Agenda\":\r\n return agendaSettings;\r\n case \"SpeakerCard\":\r\n return speakerCardSettings;\r\n case \"CountdownModule\":\r\n return countdownSettings;\r\n case \"VonageVideoClientModule\":\r\n return vongageSettingsList;\r\n case \"ImageMap\":\r\n return imageSourceSettinglist;\r\n case \"VideoWallModule\":\r\n return videoWallSettingsList;\r\n case \"SpeakerList\":\r\n return speakerListSettings;\r\n case \"EventName\":\r\n return eventNameSettings;\r\n case \"ContentView\":\r\n return contentViewSettings;\r\n case \"PollModule\":\r\n return pollModuleSettings;\r\n case \"ClientList\":\r\n return clientListSettingsList;\r\n case \"Presenter\":\r\n return presenterModule;\r\n case \"PlauditButtons\":\r\n return plauditButtonSettings;\r\n case \"PlauditTrack\":\r\n return plauditTrackSettings;\r\n default:\r\n return genericSettings;\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { ButtonGroup, Label } from \"reactstrap\";\r\nimport EditorSlider from \"../../components/EditorSlider/EditorSlider\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\n\r\nconst settingsList = [\"width\", \"height\", \"posY\", \"posX\"];\r\n\r\nexport const PositionAndSizeTools = (props) => {\r\n const { postionAndSizeOnChange, selectedModule } = props;\r\n const { posY, posX, zIndex, width, height } = selectedModule;\r\n const { meetingModuleLayoutId } = selectedModule;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((e, i) => {\r\n return (\r\n
postionAndSizeOnChange(\"zIndex\", e, meetingModuleLayoutId)}>\r\n {e}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n {settingsList.map((slp, i) => {\r\n return (\r\n \r\n null}\r\n onChange={(s, v, p, ep) => {\r\n postionAndSizeOnChange(slp, v + \"%\", meetingModuleLayoutId);\r\n }}\r\n units={[]}\r\n activeUnit={null}\r\n attachUnit={false}\r\n steps={0.1}\r\n max={100 /* -\r\n (slp == \"posX\" || slp == \"posY\"\r\n ? parseInt(slp == \"posX\" ? width : height)\r\n : 0) */}\r\n min={0}\r\n path={\"\"}\r\n dark={true}\r\n label={slp.charAt(0).toUpperCase() + slp.substr(1).toLowerCase()}\r\n />\r\n \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from \"react-select\";\r\nimport { connect } from \"react-redux\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { selectStyle } from \"../../models/selectStyle\";\r\nimport { templateActions } from \"../../../store/actions/cms/template/template.action\";\r\nimport { Dialog, DialogContent, DialogTitle, IconButton, Slide } from \"@material-ui/core\";\r\nimport { deepClone } from \"../../../helpers/objectHelper\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport AccountTreeIcon from \"@material-ui/icons/AccountTree\";\r\nimport OpenInNewIcon from \"@material-ui/icons/OpenInNew\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst TemplateSelector = (props) => {\r\n const { dialog } = props;\r\n if (dialog) {\r\n return (\r\n null}>\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return ;\r\n};\r\n\r\nconst TemplateSelectorGroup = (props) => {\r\n const { template, templates, dialog, dispatch, templateIsSavable, updateLayout, mainEventId } = props;\r\n let formGroupStyle = dialog\r\n ? {\r\n background: \"transparent\",\r\n position: \"fixed\",\r\n }\r\n : {\r\n padding: \"10px 10px 15px\",\r\n background: \"#3f414c9e\",\r\n marginTop: 10,\r\n };\r\n\r\n const layoutTemplateOnChange = (templateId) => {\r\n const { dispatch, layouts } = props;\r\n const selectedLayout = layouts.find((l) => l.meetingLayoutId == props.selectedLayout.value);\r\n if (selectedLayout) {\r\n const updatedLayout = deepClone(selectedLayout);\r\n updatedLayout.templateId = templateId;\r\n updateLayout(updatedLayout);\r\n }\r\n dispatch(templateActions.get(templateId));\r\n };\r\n\r\n const lang = props?.user?.userLang;\r\n const eventId = props?.user?.eid;\r\n\r\n return (\r\n \r\n \r\n
\r\n {\r\n return {\r\n value: t.templateId,\r\n label: (\r\n
\r\n {t.eventId != mainEventId ? : null} {t.name}\r\n
\r\n ),\r\n };\r\n })\r\n : []\r\n }\r\n value={template ? { value: template.templateId, label: template.name } : null}\r\n onChange={(opt) => {\r\n layoutTemplateOnChange(opt.value);\r\n }}\r\n styles={{\r\n ...selectStyle,\r\n }}\r\n />\r\n {\r\n window.open(\r\n window.location.host?.includes(\"localhost\") ? `https://localhost:44331/Template/List?eventId=${eventId}&languageCode=${lang}` : `https://jirango.com/Template/List?eventId=${eventId}&languageCode=${lang}`,\r\n \"_blank\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n
\r\n\r\n {templateIsSavable ? (\r\n \r\n {\" \"}\r\n \r\n \r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n alert: state.alert,\r\n page: state.page,\r\n template: state.template.template,\r\n language: state.language,\r\n templateIsSavable: state.template.isSavable,\r\n templates: state.template ? state.template.templates : undefined,\r\n systemLabel: state.systemLabel,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(TemplateSelector);\r\n","import React from \"react\";\r\nimport { FormGroup, Label } from \"reactstrap\";\r\nimport Select from \"react-select\";\r\nimport { connect } from \"react-redux\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { selectStyle } from \"../../models/selectStyle\";\r\nimport { templateActions } from \"../../../store/actions/cms/template/template.action\";\r\nimport { Dialog, DialogContent, DialogTitle, Slide } from \"@material-ui/core\";\r\nimport { deepClone } from \"../../../helpers/objectHelper\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport CalendarTodayOutlinedIcon from \"@material-ui/icons/CalendarTodayOutlined\";\r\nimport { history } from \"../../../helpers/history\";\r\nimport ViewCompactOutlinedIcon from \"@material-ui/icons/ViewCompactOutlined\";\r\nconst LayoutSelector = (props) => {\r\n const { layouts, selectLayout, selectedLayout, eventId } = props;\r\n return (\r\n
\r\n \r\n \r\n l.eventId == eventId).map((t) => {\r\n return { value: t.meetingLayoutId, label: t.name };\r\n })\r\n : []\r\n }\r\n value={selectedLayout}\r\n onChange={(opt) => {\r\n selectLayout(opt.value, opt.label);\r\n }}\r\n styles={{\r\n ...selectorStyle,\r\n }}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const selectorStyle = {\r\n container: (provided, state) => ({\r\n ...provided,\r\n width: \"100%\",\r\n }),\r\n control: (provided, state) => ({\r\n ...provided,\r\n\r\n backgroundColor: \"#50525d\",\r\n color: \"#eee\",\r\n border: \"0px\",\r\n maxWidth: \"100%\",\r\n width: \"100%\",\r\n }),\r\n noOptionsMessage: (provided, state) => ({\r\n ...provided,\r\n color: \"green\",\r\n maxWidth: \"100%\",\r\n }),\r\n input: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n maxWidth: \"100%\",\r\n }),\r\n singleValue: (provided, state) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n indicatorSeparator: (provided, state) => ({\r\n ...provided,\r\n background: \"transparent\",\r\n }),\r\n menu: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#373842\",\r\n maxWidth: \"100%\",\r\n zIndex: 100,\r\n }),\r\n option: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: state.isSelected ? \"#20a8d8\" : \"#3d3d3d\",\r\n color: \"#eee\",\r\n [\"&:hover\"]: {\r\n backgroundColor: \"#5a5959ba\",\r\n },\r\n }),\r\n placeholder: (provided) => ({\r\n ...provided,\r\n color: \"#eee\",\r\n }),\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n alert: state.alert,\r\n page: state.page,\r\n template: state.template.template,\r\n language: state.language,\r\n templateIsSavable: state.template.isSavable,\r\n templates: state.template ? state.template.templates : undefined,\r\n systemLabel: state.systemLabel,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(LayoutSelector);\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { connect } from \"react-redux\";\r\nimport { AppBar, Toolbar } from \"@material-ui/core\";\r\nimport { GeneralTabs } from \"./Tabs/GeneralTabs\";\r\nimport { ModuleTabs } from \"./Tabs/ModuleTabs\";\r\nimport { ModuleList } from \"./modules/ModuleList\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\n/* import TemplateSettings from '../../templateSettings/TemplateSettings'; */\r\nimport DeleteOutlineOutlinedIcon from \"@material-ui/icons/DeleteOutlineOutlined\";\r\nimport ReplayOutlinedIcon from \"@material-ui/icons/ReplayOutlined\";\r\nimport { ModuleSettings } from \"../../components/ModuleSettings\";\r\nimport SettingsList from \"../../../cms/areas/template/components/SettingsList\";\r\nimport { PositionAndSizeTools } from \"../../components/PositionAndSizeTools\";\r\nimport TemplateSelector from \"../other/TemplateSelector\";\r\nimport EventSelector from \"../other/EventSelector\";\r\nimport ViewCompactOutlinedIcon from \"@material-ui/icons/ViewCompactOutlined\";\r\nimport CalendarTodayOutlinedIcon from \"@material-ui/icons/CalendarTodayOutlined\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport LayoutSelector from \"../other/LayoutSelector\";\r\nconst useStyles = makeStyles({\r\n list: {\r\n width: 250,\r\n },\r\n fullList: {\r\n width: \"auto\",\r\n },\r\n});\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nfunction EditorSidebar(props) {\r\n const [view, setView] = React.useState(\"\");\r\n const classes = useStyles();\r\n const {\r\n selectedModule,\r\n onDeselect,\r\n deleted,\r\n deleteModule,\r\n onEdit,\r\n deleteLayoutModule,\r\n eventName,\r\n layoutName,\r\n } = props;\r\n const prevProps = usePrevious(props);\r\n useEffect(() => {\r\n if (selectedModule && !prevProps.selectedModule) setView(\"ContentSettings\");\r\n if (!selectedModule && !view) setView(\"Modules\");\r\n if (!view) setView(\"Modules\");\r\n }, [selectedModule]);\r\n const renderView = (key) => {\r\n switch (key) {\r\n case \"Modules\":\r\n return ;\r\n case \"MyModules\":\r\n return ;\r\n case \"ContentSettings\":\r\n if (!selectedModule) return null;\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"StyleSettings\":\r\n if (!selectedModule) return null;\r\n return (\r\n \r\n );\r\n case \"AdvancedSettings\":\r\n return null;\r\n case \"Template\":\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n default:\r\n return null;\r\n }\r\n };\r\n const toggleView = (view) => {\r\n if (\r\n selectedModule &&\r\n (view == \"Modules\" || view == \"MyModules\" || view == \"Template\")\r\n ) {\r\n onDeselect();\r\n }\r\n setView(view);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {selectedModule ? (\r\n \r\n ) : null}\r\n {renderView(view)}\r\n\r\n {selectedModule && selectedModule.meetingLayoutId ? (\r\n
\r\n deleteLayoutModule(selectedModule)}\r\n startIcon={\r\n deleted ? : \r\n }\r\n className={\"editor-full-btn remove\"}\r\n style={{ backgroundColor: deleted ? \"#535562\" : undefined }}\r\n >\r\n {deleted ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n ) : null}\r\n
\r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template,\r\n templates: state.template ? state.template.templates : undefined,\r\n templateIsSavable: state.template.isSavable,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(EditorSidebar);\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport MoreHorizIcon from \"@material-ui/icons/MoreHoriz\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport NoteAddIcon from \"@material-ui/icons/NoteAdd\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport LastPageIcon from \"@material-ui/icons/LastPage\";\r\nimport FirstPageIcon from \"@material-ui/icons/FirstPage\";\r\nimport { IconButton, Tooltip } from \"@material-ui/core\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n background: \"transparent\",\r\n borderRadius: 10,\r\n },\r\n}));\r\n\r\nexport const HeaderPopover = ({ icon, children, tooltipText }) => {\r\n const classes = useStyles();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popover\" : undefined;\r\n return (\r\n \r\n \r\n }>{icon}\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport GridList from \"@material-ui/core/GridList\";\r\nimport GridListTile from \"@material-ui/core/GridListTile\";\r\nimport GridListTileBar from \"@material-ui/core/GridListTileBar\";\r\nimport ListSubheader from \"@material-ui/core/ListSubheader\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ViewCompactOutlinedIcon from \"@material-ui/icons/ViewCompactOutlined\";\r\nimport DeleteOutlineOutlinedIcon from \"@material-ui/icons/DeleteOutlineOutlined\";\r\nimport FileCopyOutlinedIcon from \"@material-ui/icons/FileCopyOutlined\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\nimport EditOutlinedIcon from \"@material-ui/icons/EditOutlined\";\r\nimport BuildOutlinedIcon from \"@material-ui/icons/BuildOutlined\";\r\nimport SlideshowIcon from \"@material-ui/icons/Slideshow\";\r\nimport MoreVertOutlinedIcon from \"@material-ui/icons/MoreVertOutlined\";\r\nimport AccountTreeIcon from \"@material-ui/icons/AccountTree\";\r\nimport DoneIcon from \"@material-ui/icons/Done\";\r\nimport { Badge, Button, Dialog, DialogActions, DialogContent, DialogTitle, FormGroup, Popover, Slide, Tooltip, Typography } from \"@material-ui/core\";\r\nimport { Col, Input, Label, Row } from \"reactstrap\";\r\nimport { HeaderPopover } from \"./HeaderPopover\";\r\nimport InsertDriveFileOutlinedIcon from \"@material-ui/icons/InsertDriveFileOutlined\";\r\nimport RoomOutlinedIcon from \"@material-ui/icons/RoomOutlined\";\r\nimport JirangoSwitch from \"../../../components/JirangoSwitch/JirangoSwitch\";\r\nimport MobileFriendlyIcon from \"@material-ui/icons/MobileFriendly\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"space-around\",\r\n overflow: \"hidden\",\r\n backgroundColor: \"transparent\",\r\n },\r\n gridList: {\r\n height: \"calc(100%)\",\r\n width: \"100%\",\r\n padding: 20,\r\n },\r\n popover: {\r\n pointerEvents: \"none\",\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n icon: {\r\n color: \"rgba(255, 255, 255, 0.54)\",\r\n \"&:hover\": {\r\n color: \"#fff\",\r\n },\r\n },\r\n}));\r\n\r\nexport default function LayoutGrid(props) {\r\n const {\r\n layouts = [],\r\n createLayout = () => null,\r\n deleteLayout = () => null,\r\n deletedLayouts = [],\r\n selectedLayout = null,\r\n onEdit = () => null,\r\n show = false,\r\n toggleGrid = () => null,\r\n selectLayout = () => null,\r\n eventName,\r\n events,\r\n eventId,\r\n activeLayout,\r\n } = props;\r\n const classes = useStyles();\r\n const [createDialog, toggleCreateDialog] = React.useState(false);\r\n const [confirmDialog, toggleConfirmDialog] = React.useState(false);\r\n const [copyNo, setCopyNo] = React.useState({});\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [popOpen, setPopOpen] = React.useState({});\r\n const [editableLayout, setEditableLayout] = React.useState(null);\r\n const handlePopoverOpen = (id) => {\r\n setPopOpen({ [id]: true });\r\n };\r\n const handlePopoverClose = (id) => {\r\n setPopOpen({ [id]: false });\r\n };\r\n const open = Boolean(anchorEl);\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
toggleCreateDialog(true)}>\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {layouts\r\n .filter((l) => l.eventId == eventId)\r\n .map((l, i) => {\r\n let isDeleted = deletedLayouts.find((dl) => dl.meetingLayoutId == l.meetingLayoutId);\r\n let event = events.find((e) => e.eventId == l.eventId);\r\n return (\r\n selectLayout(l.meetingLayoutId, l.name)}\r\n key={i}\r\n style={{\r\n width: \"calc(25% - 10px)\",\r\n height: 250,\r\n flexBasis: \" calc(25% - 10px)\",\r\n margin: \"10px 0px\",\r\n cursor: \"pointer\",\r\n marginRight: 10,\r\n }}\r\n >\r\n
\r\n {activeLayout && activeLayout.meetingLayoutId == l.meetingLayoutId ? cardItemText(\"Active\") : null}\r\n\r\n {isDeleted ? cardItemText(\"Deleted\") : null}\r\n\r\n {l.eventId != eventId && event ? (\r\n
\r\n {event.name}\r\n {l.eventId}\r\n
\r\n ) : null}\r\n
\r\n
\r\n {\r\n e.stopPropagation();\r\n selectLayout(l.meetingLayoutId, l.name);\r\n toggleGrid();\r\n }}\r\n aria-label={`delete layout ${l.name}`}\r\n className={classes.icon}\r\n >\r\n }>\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n {\r\n /* e.stopPropagation(); */\r\n setEditableLayout(l);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {\r\n const modifiedLayout = l;\r\n modifiedLayout.mobile = !l.mobile;\r\n onEdit(modifiedLayout);\r\n }}\r\n isChecked={l.mobile}\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n /* e.stopPropagation(); */\r\n let copyCount = copyNo[l.meetingLayoutId] || 1;\r\n setCopyNo({\r\n ...copyNo,\r\n [l.meetingLayoutId]: 1,\r\n });\r\n createLayout(l.name, l, copyCount);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n {\r\n /* e.stopPropagation(); */\r\n deleteLayout(l);\r\n }}\r\n >\r\n \r\n \r\n {deletedLayouts.find((dl) => dl.meetingLayoutId == l.meetingLayoutId) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {deletedLayouts.find((dl) => dl.meetingLayoutId == l.meetingLayoutId) ? : }\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {l.mobile ? : }\r\n {l.name}} />\r\n \r\n );\r\n })}\r\n \r\n {editableLayout ? setEditableLayout(null)} {...props} /> : null}\r\n {createDialog ? toggleCreateDialog(!createDialog)} /> : null}\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nconst IsPresented = () => {\r\n return (\r\n }>\r\n \r\n \r\n );\r\n};\r\n\r\nconst cardItemText = (type) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return (\r\n \r\n );\r\n});\r\n\r\nconst CreateDialog = ({ toggle, create, layouts, eventId }) => {\r\n const [copyFrom, setCopyFrom] = React.useState(null);\r\n const [copy, setCopy] = React.useState(false);\r\n const [name, setName] = React.useState(\"\");\r\n const [mobile, setMobile] = React.useState(false);\r\n return (\r\n \r\n \r\n \r\n \r\n setName(e.target.value)} />\r\n \r\n \r\n
\r\n {\r\n setCopy(false);\r\n setCopyFrom(null);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
setCopy(true)} style={{ borderRadius: 10 }}>\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n setMobile(!mobile)} isChecked={mobile} />\r\n \r\n \r\n
\r\n {copy ? : null}\r\n
\r\n \r\n \r\n {\r\n create(name, copyFrom, 1, mobile);\r\n setCopyFrom(null);\r\n toggle();\r\n }}\r\n style={{ color: \"#eee\" }}\r\n >\r\n OK\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst CopiableLayouts = ({ copiableLayouts, onCopy, mainEventId, selectedCopy, eventId, mobile }) => {\r\n const inheritedLayouts = copiableLayouts.filter((il) => il.eventId != (mainEventId || eventId));\r\n const currentEventLayouts = copiableLayouts.filter((il) => il.eventId == eventId);\r\n const mainEventLayouts = copiableLayouts.filter((il) => il.eventId != eventId);\r\n const isMainEvent = mainEventId == undefined;\r\n return (\r\n \r\n {/* \r\n */}\r\n {currentEventLayouts.length > 0 ? (\r\n
\r\n \r\n \r\n
\r\n {copiableLayouts\r\n .filter((l) => l.eventId == eventId)\r\n .map((cl, i) => {\r\n return (\r\n
onCopy(cl)} style={{ position: \"relative\" }} className={\"layout-list\" + (selectedCopy && selectedCopy.meetingLayoutId == cl.meetingLayoutId ? \" sel\" : \"\")}>\r\n {/* {selectedCopy &&\r\n selectedCopy.meetingLayoutId == cl.meetingLayoutId ? (\r\n \r\n ) : null} */}\r\n {cl.name}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n ) : null}\r\n {!isMainEvent ? (\r\n
\r\n \r\n \r\n
\r\n {copiableLayouts\r\n .filter((l) => l.eventId == mainEventId && l.mobile == mobile)\r\n .map((cl, i) => {\r\n return (\r\n
onCopy(cl)} style={{ position: \"relative\" }} className={\"layout-list\" + (selectedCopy && selectedCopy.meetingLayoutId == cl.meetingLayoutId ? \" sel\" : \"\")}>\r\n {cl.name}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n ) : null}\r\n {inheritedLayouts.length > 0 ? (\r\n
\r\n \r\n \r\n
\r\n {inheritedLayouts.map((cl, i) => {\r\n return (\r\n
onCopy(cl)} style={{ position: \"relative\" }} className={\"layout-list\" + (selectedCopy && selectedCopy.meetingLayoutId == cl.meetingLayoutId ? \" sel\" : \"\")}>\r\n {/* {selectedCopy &&\r\n selectedCopy.meetingLayoutId == cl.meetingLayoutId ? (\r\n \r\n ) : null} */}\r\n {cl.name}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n ) : null}\r\n
\r\n );\r\n};\r\n\r\nconst EditDialog = ({ layout, toggle, save }) => {\r\n const [editedLayout, setEditedLayout] = React.useState(null);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n setEditedLayout({ ...layout, name: e.target.value })} />\r\n \r\n \r\n \r\n \r\n {\r\n save(editedLayout);\r\n toggle();\r\n }}\r\n style={{ color: \"#eee\" }}\r\n >\r\n OK\r\n \r\n \r\n \r\n );\r\n};\r\n","/* 1366x768\t16:9\t19.1%\t14'' Notebook / 15.6'' Laptop / 18.5'' monitor\r\n1920x1080\t16:9\t9.4%\t21.5'' monitor / 23'' monitor / 1080p TV\r\n1280x800\t8:5\t8.5%\t14'' Notebook */\r\n/* 320x568\t9:16\t6.4%\t4'' iPhone 5\r\n1440x900\t8:5\t5.7%\t19'' monitor\r\n1280x1024\t5:4\t5.5%\t19'' monitor\r\n320x480\t2:3\t5.2%\t3.5'' iPhone\r\n1600x900\t16:9\t4.6%\t20'' monitor\r\n768x1024\t3:4\t4.5%\t9.7'' iPad\r\n1024x768\t4:3\t3.9%\t15'' monitor\r\n1680x1050\t8:5\t2.8%\t22'' monitor\r\n360x640\t9:16\t2.3%\t \r\n1920x1200\t8:5\t1.7%\t24'' monitor\r\n720x1280\t9:16\t1.6%\t4.8'' Galaxy S\r\n480x800\t3:5\t1.1%\t \r\n1360x768\t16:9\t0.9%\t \r\n1280x720\t16:9\t0.9%\t720p TV */\r\n\r\nexport const resolutions = [\r\n { label: \"1920x1080\", value: 1920 * 1080, type: \"DESKTOP\" },\r\n { label: \"1366x768\", value: 1366 * 768, type: \"DESKTOP\" },\r\n { label: \"1280x720\", value: 1280 * 720, type: \"DESKTOP\" },\r\n { label: \"1440x900\", value: 1440 * 900, type: \"DESKTOP\" },\r\n { label: \"1536x864\", value: 1536 * 864, type: \"DESKTOP\" },\r\n { label: \"768x1024\", value: 768 * 1024, type: \"TABLET\" },\r\n { label: \"320x568\", value: 329 * 568, type: \"SMARTPHONE\" },\r\n];\r\n","import React from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function AlertDialog(props) {\r\n const { text, title, onCancel, onAction, children } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n
\r\n );\r\n}\r\n","import Axios from \"axios\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { sourceTypes } from \"../../constants/cms/sourceType\";\r\nimport { cmsActions } from \"../../store/actions/cms/cms.action\";\r\nimport { systemLabelActions } from \"../../store/actions/system/systemLabel/systemLabel.action\";\r\nimport ModuleWrapper from \"./View/ModuleWrapper\";\r\nimport { AppBar, IconButton, Toolbar, Tooltip } from \"@material-ui/core\";\r\nimport EditorSidebar from \"./Sidebar/EditorSidebar\";\r\nimport { templateActions } from \"../../store/actions/cms/template/template.action\";\r\nimport { getDefaultPosAndSize, GridLines } from \"../helpers/meetingEditor.helper\";\r\nimport LayoutGrid from \"./other/LayoutGrid\";\r\nimport ViewCompactOutlinedIcon from \"@material-ui/icons/ViewCompactOutlined\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport { Col, Row, Spinner } from \"reactstrap\";\r\nimport GridOnIcon from \"@material-ui/icons/GridOn\";\r\nimport GridOffIcon from \"@material-ui/icons/GridOff\";\r\nimport { HubConnectionBuilder, NullLogger } from \"@aspnet/signalr\";\r\nimport { deepClone } from \"../../helpers/objectHelper\";\r\nimport { defaultModuleSettings } from \"../models/defaultModuleSettings\";\r\nimport { resolutions } from \"../models/resolutions\";\r\nimport { meetingService } from \"../../services/meeting/meeting.service\";\r\nimport AlertDialog from \"./other/AlertDialog\";\r\nimport { clientTypeConstants } from \"../../interaction/constants/clientType.constants\";\r\nimport SaveOutlinedIcon from \"@material-ui/icons/SaveOutlined\";\r\nimport { HeaderPopover } from \"./other/HeaderPopover\";\r\nimport MeetingRoomOutlinedIcon from \"@material-ui/icons/MeetingRoomOutlined\";\r\nimport { securityHelper } from \"../../helpers/securityHelper\";\r\nimport DesktopWindowsOutlinedIcon from \"@material-ui/icons/DesktopWindowsOutlined\";\r\nimport EventSelector from \"./other/EventSelector\";\r\nimport { FontInjector } from \"../../digitalArena/components/MeetingLayout\";\r\nimport \"../style/EditorStyle.css\";\r\nimport { ConnectionStatus } from \"../../digitalArena/components/fallbacks/ConnectionStatus\";\r\nimport { FontBasline } from \"../../digitalArena/components/shared/FontBaseline\";\r\n\r\nclass MeetingEditorLayout extends React.Component {\r\n state = {\r\n modules: [],\r\n layouts: [],\r\n permissions: [],\r\n eventId: null,\r\n selectedLayout: null,\r\n selectedTemplate: null,\r\n changedLayoutModules: [],\r\n connected: false,\r\n changedModules: [],\r\n changedLayouts: [],\r\n changedTemplates: [],\r\n activeTemplateId: null,\r\n eventCode: \"\",\r\n versions: [],\r\n isSavable: false,\r\n mainEventId: null,\r\n showLayoutGrid: true,\r\n versionIndex: 0,\r\n lang: \"swe\",\r\n events: [],\r\n preview: false,\r\n previewOpt: null,\r\n previewLoading: false,\r\n previewProps: null,\r\n layoutBackup: [],\r\n gridLines: false,\r\n saving: false,\r\n activeLayout: null,\r\n templateChanged: false,\r\n saved: false,\r\n dialog: null,\r\n selectedModule: null,\r\n saveQueued: false,\r\n connecting: false,\r\n countdown: 0,\r\n tickCode:null\r\n };\r\n\r\n componentDidMount() {\r\n const { dispatch, user, match } = this.props;\r\n if (user) {\r\n this.init();\r\n const userLang = user.userLang === undefined ? user.token.userLang : user.userLang;\r\n if (user && userLang) {\r\n dispatch(systemLabelActions.getGroup(user.userLang, \"Interaction.Editor\"));\r\n }\r\n }\r\n }\r\n init = () => {\r\n const { dispatch, user, match } = this.props;\r\n const eventId = match.params.id;\r\n\r\n if (isNaN(eventId)) {\r\n this.setState({ eventCode: eventId });\r\n this.getEventId(eventId);\r\n } else {\r\n this.setState({ eventId: eventId });\r\n this.getEventCode(eventId);\r\n /* dispatch(templateActions.getAll(eventId, true)); */\r\n this.setState({ eventId: parseInt(eventId) });\r\n this.getRequirements(eventId);\r\n }\r\n };\r\n componentDidUpdate(prevProps, prevState) {\r\n const { template, dispatch, location } = this.props;\r\n const { activeTemplateId, connected, eventId, activeLayout } = this.state;\r\n const { match } = this.props;\r\n const { connecting, dismissConnectionLoss, forceDisc } = this.state;\r\n //If the event is changed re-init the editors configs\r\n if (location !== prevProps.location) {\r\n this.init();\r\n }\r\n\r\n if (\r\n template &&\r\n prevProps.template &&\r\n template.templateId == activeTemplateId &&\r\n template.updated != prevProps.template.updated &&\r\n connected &&\r\n this.hubConnection &&\r\n this.hubConnection.connectionState == 1\r\n ) {\r\n /* this.hubConnection.invoke(\"updateTemplate\", eventId, activeTemplateId); */\r\n }\r\n\r\n //If you edit a inherited template that is set on the selectedlayout\r\n // change the templateId on the layout and reload the templates fetch\r\n const { selectedLayout, layouts, mainEventId } = this.state;\r\n if (template && prevProps.template && template.templateId != prevProps.template.templateId && selectedLayout) {\r\n const layout = layouts.find((l) => l.meetingLayoutId == selectedLayout.value);\r\n if (layout && layout.templateId != template.templateId && layout.templateId == prevProps.template.templateId && prevProps.template.eventId != mainEventId) {\r\n dispatch(templateActions.getAll(mainEventId, true));\r\n this.layoutTemplateOnChange(template.templateId);\r\n }\r\n }\r\n\r\n if (connected == false && prevState.connected == true && connecting == false) {\r\n this.tryReconnect();\r\n this.counter = setInterval(() => this.setState({ countdown: this.state.countdown + 1 }), 1000);\r\n } else if (this.state.countdown >= 60 && !connected && prevState.connected == false) {\r\n this.setState({ countdown: 0, connecting: false });\r\n this.tryReconnect();\r\n } else if (connected == true && prevState.connected == false && !this.state.connecting && this.hubConnection && this.hubConnection.connectionState == 1) {\r\n if (this.counter) clearInterval(this.counter);\r\n if (this.state.saveQueued) {\r\n }\r\n this.setState({ countdown: 0 });\r\n }\r\n }\r\n getRequirements = (eventId) => {\r\n const { dispatch } = this.props;\r\n\r\n this.setState({ eventId: parseInt(eventId) });\r\n meetingService.getModules(eventId).then((modules) => {\r\n this.setState({ modules });\r\n });\r\n meetingService.getPermissions(eventId).then((permissions) => {\r\n this.setState({ permissions });\r\n });\r\n meetingService.getLayouts(eventId).then((layouts) => {\r\n const eventLayouts = Array.from(layouts.filter((l) => l.eventId == eventId));\r\n this.setState({\r\n showLayoutGrid: eventLayouts.length == 0,\r\n layoutsLoaded: true,\r\n layouts,\r\n selectedLayout:\r\n eventLayouts.length > 0\r\n ? {\r\n value: eventLayouts[0].meetingLayoutId,\r\n label: eventLayouts[0].name,\r\n }\r\n : null,\r\n });\r\n if (layouts.length > 0 && layouts.find((l) => l.eventId == eventId)?.templateId) {\r\n dispatch(templateActions.get(layouts.find((l) => l.eventId == eventId)?.templateId));\r\n }\r\n });\r\n };\r\n getAllEvents = (eventId) => {\r\n Axios.get(`./api/event/getall/${eventId}`)\r\n .then(({ data }) => {\r\n this.setState({\r\n events: data,\r\n });\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n getEventId = (eventCode) => {\r\n const { dispatch } = this.props;\r\n Axios.get(`./api/event/getId/${eventCode}`)\r\n .then(({ data }) => {\r\n const { id, parentEventId, name } = data;\r\n const eventId = id;\r\n this.setState({\r\n eventId: parseInt(eventId),\r\n eventName: name,\r\n parentEventId: parentEventId,\r\n mainEventId: parentEventId || eventId,\r\n });\r\n document.title = \"Editor - \" + name;\r\n dispatch(templateActions.getAll(parentEventId || eventId, true));\r\n dispatch(cmsActions.getClientFonts(parentEventId || eventId));\r\n dispatch(cmsActions.setEnviroment(sourceTypes.MEETING, true, parentEventId || eventId));\r\n this.getAllEvents(eventId);\r\n this.getRequirements(eventId);\r\n this.connectToHub(parseInt(eventId));\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n getEventCode = (eventId) => {\r\n const { dispatch } = this.props;\r\n Axios.get(`./api/event/getCode/${eventId}`)\r\n .then((res) => {\r\n this.connectToHub(eventId);\r\n this.setState({\r\n eventCode: res.data.code,\r\n eventName: res.data.name,\r\n parentEventId: res.data.parentEventId,\r\n mainEventId: res.data.parentEventId || res.data.id,\r\n });\r\n\r\n dispatch(cmsActions.setEnviroment(sourceTypes.MEETING, true, res.data.parentEventId || eventId));\r\n dispatch(cmsActions.getClientFonts(res.data.parentEventId || eventId));\r\n this.getAllEvents(eventId);\r\n dispatch(templateActions.getAll(res.data.parentEventId || eventId, true));\r\n document.title = \"Editor - \" + res.data.name;\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n connectToHub = () => {\r\n const { dispatch } = this.props;\r\n\r\n if (this.state.connecting) return;\r\n\r\n if (!this.hubConnection) {\r\n this.hubConnection = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n }\r\n if (this.hubConnection.connectionState == 1) return;\r\n\r\n this.setState({ connecting: true });\r\n\r\n this.hubConnection.start().then(() => {\r\n this.hubConnection.on(\"onGetActiveMeetingLayout\", (layout) => {\r\n if (!layout) return;\r\n //if (layout && layout.templateId) dispatch(templateActions.get(layout.templateId));\r\n this.setState({\r\n activeLayout: layout,\r\n });\r\n });\r\n this.hubConnection.on(\"onHandshake\", this.onHandshake);\r\n\r\n this.hubConnection.invoke(\"getActiveMeetingLayout\", this.state.eventId);\r\n\r\n const handshakeObj = {\r\n eventId: this.state.eventId,\r\n clientType: clientTypeConstants.INTERACTION_EDITOR,\r\n clientKey: null,\r\n userGuid: null,\r\n userInfo: null,\r\n };\r\n\r\n this.hubConnection.onclose(() => {\r\n this.setState({ connected: false });\r\n });\r\n\r\n this.hubConnection.invoke(\"handshake\", handshakeObj);\r\n });\r\n };\r\n tryReconnect = () => {\r\n if (!this.state.connecting && !this.state.connected) {\r\n this.setState({ loading: true }, this.connectToHub);\r\n }\r\n };\r\n\r\n onHandshake = (response) => {\r\n const { success, lang, tickCode } = response;\r\n if (success) {\r\n this.setState({\r\n connected: true,\r\n connecting: false,\r\n lang,\r\n tickCode\r\n });\r\n /* this.hubConnection.invoke(\"getActiveTemplateId\", this.state.eventId); */\r\n }\r\n };\r\n beforeSave = () => {\r\n const { eventId, activeLayout, changedLayoutModules, saving, activeTemplateId, mainEventId, connected, connecting } = this.state;\r\n\r\n const { templateIsSavable, template } = this.props;\r\n\r\n if (saving) return;\r\n\r\n if (connecting && !connected) {\r\n const dialogContext = {\r\n title: \"ConnectionLossWarning\",\r\n text: \"ConnectionLossWarningInfo\",\r\n onCancel: () => this.setState({ dialog: null }),\r\n onAction: () => this.onSave(true),\r\n };\r\n this.setState({ dialog: dialogContext });\r\n return;\r\n }\r\n\r\n let text = \"SavingChangesToActiveLayout\";\r\n let affectActiveLayout = false;\r\n let affectActiveTemplate = false;\r\n let affectiveTemplateInheritage = false;\r\n if (activeLayout) {\r\n const hasChanged = changedLayoutModules.find((cl) => cl.meetingLayoutId == activeLayout.meetingLayoutId);\r\n if (hasChanged) affectActiveLayout = true;\r\n }\r\n\r\n if (templateIsSavable && ((template && template.templateId == activeTemplateId) || (activeLayout && activeLayout.templateId == template.templateId))) {\r\n affectActiveTemplate = true;\r\n }\r\n\r\n if (templateIsSavable && template && template.eventId != mainEventId) {\r\n affectiveTemplateInheritage = true;\r\n }\r\n\r\n if (affectActiveLayout || affectActiveTemplate || templateIsSavable) {\r\n if (affectActiveLayout && affectActiveTemplate) {\r\n text = \"SavingChangesToActiveLayoutAndTemplate\";\r\n } else if (affectActiveLayout) {\r\n text = \"SavingChangesToActiveLayout\";\r\n } else if (affectActiveTemplate) {\r\n text = \"SavingChangesToActiveTemplate\";\r\n }\r\n\r\n if (affectiveTemplateInheritage && !affectActiveLayout) {\r\n text = \"TemplateInheritageInfo\";\r\n } else if (affectiveTemplateInheritage) {\r\n text += \"TemplateInheritageInfo\";\r\n }\r\n\r\n const dialogContext = {\r\n title: \"SaveWarning\",\r\n text,\r\n onCancel: () => this.setState({ dialog: null }),\r\n onAction: () => this.onSave(true),\r\n };\r\n\r\n this.setState({ dialog: dialogContext });\r\n\r\n return;\r\n }\r\n\r\n this.onSave();\r\n };\r\n onSave = (publish = false) => {\r\n const { activeTemplateId, connected, eventId, activeLayout, modules } = this.state;\r\n const { template, dispatch, templateIsSavable } = this.props;\r\n this.setState({ saving: true, dialog: null });\r\n const changedLayoutModules = Array.from(\r\n this.state.changedLayoutModules.filter((cl) => {\r\n if (cl.added && cl.deleted) {\r\n } else return cl;\r\n })\r\n );\r\n let changedModules = Array.from(this.state.changedModules);\r\n changedModules = changedModules\r\n .filter((c) => {\r\n if (c.added && c.deleted) {\r\n } else return c;\r\n })\r\n .map((c) => {\r\n const cl = deepClone(c);\r\n cl.settings = JSON.stringify(cl.settings);\r\n return cl;\r\n });\r\n\r\n const changedLayouts = Array.from(\r\n this.state.changedLayouts.filter((cl) => {\r\n if (cl.added && cl.deleted) {\r\n } else return cl;\r\n })\r\n );\r\n\r\n changedLayoutModules.map((cl) => {\r\n if (cl.added && cl.deleted) {\r\n } else if (cl.added) {\r\n cl.status = \"added\";\r\n } else if (cl.deleted) {\r\n cl.status = \"deleted\";\r\n } else {\r\n cl.status = \"updated\";\r\n }\r\n delete cl.edited;\r\n delete cl.deleted;\r\n delete cl.added;\r\n /* cl.meetingModule = null;\r\n cl.setting = null; */\r\n });\r\n changedModules.map((cl) => {\r\n if (cl.added && cl.deleted) {\r\n } else if (cl.added) {\r\n cl.status = \"added\";\r\n } else if (cl.deleted) {\r\n cl.status = \"deleted\";\r\n } else {\r\n cl.status = \"updated\";\r\n }\r\n\r\n delete cl.edited;\r\n delete cl.deleted;\r\n delete cl.added;\r\n });\r\n changedLayouts.map((cl) => {\r\n if (cl.added && cl.deleted) {\r\n } else if (cl.added) {\r\n cl.status = \"added\";\r\n } else if (cl.deleted) {\r\n cl.status = \"deleted\";\r\n } else {\r\n cl.status = \"updated\";\r\n }\r\n delete cl.edited;\r\n delete cl.deleted;\r\n delete cl.added;\r\n });\r\n let meetingChanges = changedLayoutModules.length > 0 || changedLayouts.length > 0 || changedModules.length > 0;\r\n if (meetingChanges) {\r\n Axios.put(`./api/meeting/save/`, {\r\n changedModules,\r\n changedLayoutModules,\r\n changedLayouts,\r\n eventId: parseInt(this.state.eventId),\r\n })\r\n .then(({ data }) => {\r\n const { layouts } = data;\r\n //If selected layout was created (select the same one with a new id)\r\n const layoutsOnEvent = layouts.filter((l) => l.eventId == eventId);\r\n let selectedLayout = this.state.selectedLayout;\r\n if ((selectedLayout && selectedLayout.value < 0) || selectedLayout.value == -0) {\r\n let comparisionValue = selectedLayout.value == -0 ? 0 : selectedLayout.value;\r\n\r\n let newSelectedLayout = layoutsOnEvent.find((l) => l.oldId == comparisionValue);\r\n if (layouts.length == layoutsOnEvent.filter((l) => l.oldId == 0).length && comparisionValue == 0) {\r\n comparisionValue = layoutsOnEvent[layouts.length - 1].meetingLayoutId;\r\n newSelectedLayout = layoutsOnEvent.find((l) => l.meetingLayoutId == comparisionValue);\r\n }\r\n\r\n if (newSelectedLayout) {\r\n selectedLayout = {\r\n value: newSelectedLayout.meetingLayoutId,\r\n label: newSelectedLayout.name,\r\n };\r\n } else {\r\n selectedLayout = null;\r\n }\r\n }\r\n\r\n if (selectedLayout && !layouts.find((l) => l.meetingLayoutId == selectedLayout.value)) {\r\n selectedLayout = null;\r\n }\r\n\r\n if (this.hubConnection && this.hubConnection.connectionState == 1 && this.state.connected && changedModules.length > 0) {\r\n this.hubConnection.invoke(\"meetingModulesUpdate\", eventId, data.modules);\r\n }\r\n if (this.hubConnection && this.hubConnection.connectionState == 1 && this.state.connected && activeLayout && publish) {\r\n this.hubConnection.invoke(\"activeLayoutUpdate\", eventId, activeLayout.meetingLayoutId, activeLayout.mobile ? 9 : 0);\r\n }\r\n\r\n if (this.hubConnection && this.hubConnection.connectionState == 1 && this.state.connected && activeLayout /* && publish */) {\r\n this.hubConnection.invoke(\"activeLayoutUpdate\", eventId, selectedLayout?.value, layouts.find((l) => l.meetingLayoutId == selectedLayout.value)?.mobile ? 9 : 0);\r\n }\r\n\r\n const modules = Array.from(\r\n data.modules.map((r) => {\r\n let m = r;\r\n if (r.settings.length > 0 && r.settings != \" \") {\r\n m.settings = JSON.parse(m.settings);\r\n }\r\n return m;\r\n })\r\n );\r\n\r\n this.setState({\r\n layouts,\r\n modules,\r\n isSavable: false,\r\n selectedLayout,\r\n saving: false,\r\n changedLayoutModules: [],\r\n changedModules: [],\r\n changedLayouts: [],\r\n changedTemplates: [],\r\n selectedModule: null,\r\n });\r\n })\r\n .catch(() => {\r\n this.setState({ saving: false, isSavable: false, dialog: null });\r\n });\r\n }\r\n\r\n if (templateIsSavable) {\r\n const templateCallback = () => {\r\n if (this.state.templateChanged || (templateIsSavable && this.state.activeLayout && this.state.activeLayout.templateId == template.templateId)) {\r\n /* this.hubConnection.invoke(\"updateTemplate\", this.state.eventId, template.templateId); */\r\n }\r\n };\r\n const newTemplate = deepClone(template);\r\n newTemplate.eventId = parseInt(this.state.mainEventId);\r\n dispatch(templateActions.update(newTemplate, templateCallback));\r\n }\r\n\r\n if (!meetingChanges) {\r\n this.setState({ saving: false });\r\n }\r\n };\r\n\r\n templateUpdateCallback = () => {};\r\n\r\n setScale = () => {\r\n const adjustedResolution = (window.innerHeight - 55) * 1.77 * (window.innerHeight - 55);\r\n\r\n const actualResolution = window.innerWidth * window.innerHeight;\r\n\r\n let diff = adjustedResolution / actualResolution;\r\n this.setState({\r\n resolution: {\r\n value: window.innerWidth * window.innerHeight,\r\n label: `${window.innerWidth}x${window.innerHeight}`,\r\n },\r\n scale: diff,\r\n });\r\n };\r\n addOrUpdate = (item, path, identifier, callback = null) => {\r\n const list = Array.from(this.state[path]);\r\n if (Array.isArray(item)) {\r\n item.map((i) => {\r\n if (\r\n list.some((er) => {\r\n return er[identifier] === i[identifier];\r\n })\r\n ) {\r\n list.map((er) => {\r\n if (er[identifier] === i[identifier]) {\r\n if (er.deleted === true && i.deleted === true) i.deleted = false;\r\n er = Object.assign(er, i);\r\n }\r\n });\r\n } else {\r\n list.push(i);\r\n }\r\n });\r\n } else {\r\n if (\r\n list.some((er) => {\r\n return er[identifier] === item[identifier];\r\n })\r\n ) {\r\n list.map((er) => {\r\n if (er[identifier] === item[identifier]) {\r\n if (er.deleted === true && item.deleted === true) item.deleted = false;\r\n er = Object.assign(er, item);\r\n }\r\n });\r\n } else {\r\n list.push(item);\r\n }\r\n }\r\n\r\n this.setState({ [path]: list, isSavable: true }, () => {\r\n if (callback && typeof callback == \"function\") {\r\n setTimeout(() => callback(), 1000);\r\n }\r\n });\r\n };\r\n updateLayout = (layout, callback = null) => {\r\n const layouts = Array.from(this.state.layouts);\r\n const prevLayout = layouts.find((l) => l.meetingLayoutId == layout.meetingLayoutId);\r\n let index = 0;\r\n if (!prevLayout) return;\r\n index = layouts.indexOf(prevLayout);\r\n if (index == -1) return;\r\n layouts[index] = layout;\r\n this.addOrUpdate(layouts[index], \"changedLayouts\", \"meetingLayoutId\", callback);\r\n this.setState({\r\n layouts,\r\n isSavable: true,\r\n templateChanged: prevLayout.templateId != layout.templateId,\r\n });\r\n };\r\n undoChange = () => {\r\n const backup = Array.from(this.state.layouts);\r\n const { versionIndex, versions } = this.state;\r\n if (versionIndex <= versions.length - 1) return;\r\n const requestedVersion = this.state.versions[versionIndex - 1];\r\n this.setState({ layouts: requestedVersion });\r\n };\r\n updateModule = (module) => {\r\n const { selectedModule } = this.state;\r\n if (!selectedModule) return;\r\n const modules = Array.from(this.state.modules);\r\n let moduleIndex = modules.indexOf(modules.find((m) => m.meetingModuleId == module.meetingModuleId));\r\n const { settings, displayName } = module;\r\n if (moduleIndex > -1) {\r\n modules[moduleIndex] = { ...modules[moduleIndex], settings, displayName };\r\n }\r\n this.addOrUpdate({ ...modules[moduleIndex], settings, displayName, edited: true }, \"changedModules\", \"meetingModuleId\");\r\n this.setState({ modules, isSavable: true, selectedModule: module });\r\n };\r\n updateLayoutModule = (module) => {\r\n const id = module.meetingModuleLayoutId;\r\n const { selectedLayout, layouts, changedLayoutModules, changedLayouts } = this.state;\r\n if (!selectedLayout) return;\r\n let selectedModule = deepClone(this.state.selectedModule);\r\n const versions = Array.from(this.state.versions);\r\n versions.push(layouts);\r\n\r\n let index = layouts.indexOf(layouts.find((l) => l.meetingLayoutId == selectedLayout.value));\r\n if (index > -1) {\r\n this.addOrUpdate({ ...layouts[index], edited: true }, \"changedLayouts\", \"meetingLayoutId\");\r\n this.addOrUpdate({ ...module, edited: true }, \"changedLayoutModules\", \"meetingModuleLayoutId\");\r\n let moduleIndex = layouts[index].meetingModules.indexOf(layouts[index].meetingModules.find((m) => m.meetingModuleLayoutId == module.meetingModuleLayoutId));\r\n if (moduleIndex > -1) {\r\n layouts[index].meetingModules[moduleIndex] = module;\r\n selectedModule = {\r\n ...selectedModule,\r\n ...layouts[index].meetingModules[moduleIndex],\r\n };\r\n }\r\n }\r\n this.setState({\r\n layouts,\r\n selectedModule,\r\n versions,\r\n isSavable: true,\r\n versionIndex: versions.length - 1,\r\n });\r\n };\r\n addModule = (type, moduleId = null, position = null) => {\r\n const { eventId, selectedLayout, layouts, modules, changedModules, changedLayoutModules } = this.state;\r\n let layoutId = selectedLayout ? selectedLayout.value : -1000;\r\n let cLayout = layouts.find((l) => l.meetingLayoutId == layoutId);\r\n let added = changedModules.filter((c) => c.added == true).length;\r\n let addedLm = changedLayoutModules.filter((c) => c.added == true).length;\r\n let module = modules.find((m) => m.meetingModuleId == moduleId);\r\n let mId = moduleId > 0 ? moduleId : added * -1;\r\n let mLId = addedLm * -1;\r\n let meetingModule = {\r\n moduleType: type,\r\n eventId,\r\n meetingModuleId: mId,\r\n displayName: \"\",\r\n inserted: new Date().toISOString(),\r\n settings: module ? module.settings : defaultModuleSettings(type),\r\n };\r\n let layoutModule = {\r\n ...getDefaultPosAndSize(type, position),\r\n sortOrder: cLayout ? (cLayout.meetingModules.length > 0 ? cLayout.meetingModules.length - 1 : 0) : 0,\r\n meetingLayoutId: layoutId,\r\n meetingModuleId: mId,\r\n meetingModuleLayoutId: mLId,\r\n };\r\n\r\n if (!modules.find((m) => m.meetingModuleId == meetingModule.meetingModuleId)) {\r\n modules.push(meetingModule);\r\n this.addOrUpdate({ ...meetingModule, added: true }, \"changedModules\", \"meetingModuleId\");\r\n }\r\n if (layoutId != -1000) {\r\n let index = layouts.indexOf(layouts.find((l) => l.meetingLayoutId == layoutModule.meetingLayoutId));\r\n if (index > -1) {\r\n this.addOrUpdate({ ...layouts[index], edited: true }, \"changedLayouts\", \"meetingLayoutId\");\r\n this.addOrUpdate({ ...layoutModule, added: true }, \"changedLayoutModules\", \"meetingModuleLayoutId\");\r\n layouts[index].meetingModules.push(layoutModule);\r\n }\r\n }\r\n this.setState({\r\n layouts,\r\n isSavable: true,\r\n selectedModule: {\r\n ...layoutModule,\r\n settings: meetingModule.settings,\r\n moduleType: type,\r\n },\r\n });\r\n };\r\n onPreview = (label, value) => {\r\n const mock = this.state.selectedLayout;\r\n if (typeof label != \"string\" && value == null) {\r\n this.setState(\r\n {\r\n previewProps: null,\r\n preview: false,\r\n previewOpt: null,\r\n selectLayout: null,\r\n previewLoading: true,\r\n },\r\n () => {\r\n setTimeout(\r\n () =>\r\n this.setState({\r\n selectLayout: mock,\r\n }),\r\n 500\r\n );\r\n }\r\n );\r\n setTimeout(\r\n () =>\r\n this.setState({\r\n previewLoading: false,\r\n }),\r\n 1000\r\n );\r\n return;\r\n }\r\n const w = label.split(\"x\")[0];\r\n const h = label.split(\"x\")[1];\r\n const props = this.findPerfectRatio(w, h);\r\n\r\n this.setState(\r\n {\r\n selectedModule: null,\r\n preview: true,\r\n previewLoading: true,\r\n previewOpt: { label, value },\r\n previewProps: props,\r\n selectLayout: null,\r\n },\r\n () => {\r\n setTimeout(\r\n () =>\r\n this.setState({\r\n selectLayout: mock,\r\n }),\r\n 500\r\n );\r\n }\r\n );\r\n setTimeout(\r\n () =>\r\n this.setState({\r\n previewLoading: false,\r\n }),\r\n 1000\r\n );\r\n };\r\n copyLayout = (c, copies = 1, name = null) => {\r\n const { changedLayouts, changedLayoutModules, changedModules, modules, eventId } = this.state;\r\n\r\n const layouts = Array.from(this.state.layouts);\r\n const newModules = Array.from(this.state.modules);\r\n let newLayoutId = changedLayouts.filter((c) => c.added == true).length;\r\n let newLayoutModuleId = changedLayoutModules.filter((c) => c.added == true).length;\r\n\r\n let newModuleId = changedModules.filter((c) => c.added == true).length;\r\n let newLayoutModules = [];\r\n let newLayouts = [];\r\n\r\n for (let index = 0; index < copies; index++) {\r\n let copy = {\r\n ...deepClone(c),\r\n added: true,\r\n eventId: this.state.eventId,\r\n updated: null,\r\n inserted: new Date().toISOString(),\r\n oldId: 0,\r\n updateBy: null,\r\n };\r\n\r\n copy.meetingLayoutId = newLayoutId * -1;\r\n copy.name = name || c.name + ` (kopia ${newLayoutId})`;\r\n copy.meetingModules = [];\r\n\r\n for (let index2 = 0; index2 < c.meetingModules.length; index2++) {\r\n let meetingModule = deepClone(c.meetingModules[index2]);\r\n\r\n const moduleDoNotExist = !modules.find((m) => m.meetingModuleId == meetingModule.meetingModuleId);\r\n\r\n meetingModule = {\r\n ...meetingModule,\r\n meetingModuleId: moduleDoNotExist ? newModuleId * -1 : meetingModule.meetingModuleId,\r\n meetingLayoutId: newLayoutId * -1,\r\n meetingModuleLayoutId: newLayoutModuleId * -1,\r\n inserted: new Date().toISOString(),\r\n updated: null,\r\n added: true,\r\n };\r\n copy.meetingModules.push(meetingModule);\r\n newLayoutModules.push(meetingModule);\r\n newLayoutModuleId += 1;\r\n\r\n //If the module do not exist on the event (press. copying an inherited layout)\r\n if (moduleDoNotExist) {\r\n const newModule = {\r\n ...meetingModule.meetingModule,\r\n eventId: this.state.eventId,\r\n meetingModuleId: newModuleId * -1,\r\n inserted: new Date().toISOString(),\r\n settings: JSON.parse(meetingModule.meetingModule.settings),\r\n added: true,\r\n };\r\n newModules.push(newModule);\r\n\r\n //modify the layout module accordingly to the spec. from newly created module copy\r\n meetingModule.meetingModule.eventId = eventId;\r\n meetingModule.meetingModule.meetingModuleId = newModuleId;\r\n\r\n newModuleId += 1;\r\n }\r\n }\r\n\r\n layouts.push(copy);\r\n newLayouts.push(copy);\r\n newLayoutId += 1;\r\n }\r\n\r\n this.addOrUpdate(newModules, \"changedModules\", \"meetingModuleId\");\r\n this.addOrUpdate(newLayoutModules, \"changedLayoutModules\", \"meetingModuleLayoutId\");\r\n this.addOrUpdate(newLayouts, \"changedLayouts\", \"meetingLayoutId\");\r\n\r\n this.setState({ layouts, isSavable: true, modules: newModules });\r\n };\r\n createLayout = (name, copy = null, copies = 1, mobile = false) => {\r\n const { template, templates } = this.props;\r\n const { changedLayouts, changedLayoutModules } = this.state;\r\n const newId = changedLayouts.filter((c) => c.added == true).length;\r\n const layouts = Array.from(this.state.layouts);\r\n let addedLm = changedLayoutModules.filter((c) => c.added == true).length;\r\n\r\n let newLayout = {\r\n name,\r\n updated: null,\r\n inserted: new Date().toISOString(),\r\n oldId: 0,\r\n meetingLayoutId: newId * -1,\r\n templateId: template ? template.templateId : templates[0].templateId,\r\n meetingModules: [],\r\n eventId: this.state.eventId,\r\n added: true,\r\n mobile,\r\n updateBy: null,\r\n };\r\n\r\n if (copy) {\r\n this.copyLayout(copy, copies, name);\r\n return;\r\n }\r\n layouts.push(newLayout);\r\n this.setState({ layouts, isSavable: true });\r\n this.addOrUpdate(newLayout, \"changedLayouts\", \"meetingLayoutId\");\r\n };\r\n deleteLayoutModule = (layoutModule) => {\r\n const { selectedLayout, layouts, changedLayoutModules, changedLayouts } = this.state;\r\n if (!selectedLayout) return;\r\n\r\n const versions = Array.from(this.state.versions);\r\n versions.push(layouts);\r\n\r\n this.addOrUpdate({ ...layoutModule, deleted: true }, \"changedLayoutModules\", \"meetingModuleLayoutId\");\r\n this.setState({\r\n versions,\r\n isSavable: true,\r\n versionIndex: versions.length - 1,\r\n });\r\n };\r\n deleteModule = (module) => {\r\n const modules = Array.from(this.state.modules);\r\n const index = modules.indexOf(modules.find((m) => m.meetingModuleId == module.meetingModuleId));\r\n if (index > -1) modules[index].deleted = modules[index].deleted ? false : true;\r\n\r\n this.addOrUpdate({ ...module, deleted: true }, \"changedModules\", \"meetingModuleId\");\r\n this.setState({ modules });\r\n };\r\n deleteLayout = (layout) => this.addOrUpdate({ ...layout, deleted: true }, \"changedLayouts\", \"meetingLayoutId\");\r\n getLayoutModules = () => {\r\n const { layouts, selectedLayout, modules } = this.state;\r\n if (selectedLayout && modules && modules.length > 0) {\r\n const id = selectedLayout.value;\r\n const layoutMoudles = layouts.find((l) => l.meetingLayoutId == id);\r\n if (layoutMoudles) {\r\n return layoutMoudles.meetingModules.map((mm) => {\r\n let moduleParent = modules.find((m) => m.meetingModuleId == mm.meetingModuleId);\r\n if (moduleParent) {\r\n const { moduleType, settings, displayName } = moduleParent;\r\n\r\n return { ...mm, moduleType, settings, displayName };\r\n }\r\n });\r\n }\r\n }\r\n return [];\r\n };\r\n groupTemplate = () => {\r\n const { template } = this.props;\r\n if (template) {\r\n return template.content;\r\n }\r\n return null;\r\n };\r\n findPerfectRatio = (w, h) => {\r\n const affordableHeight = window.innerHeight - 55;\r\n const affordableWidth = window.innerWidth - 320;\r\n let comparisonWidth = w;\r\n let comparisonHeight = h;\r\n let ratioFound = false;\r\n while (!ratioFound) {\r\n if (affordableHeight < comparisonHeight || affordableWidth < comparisonWidth) {\r\n comparisonHeight -= 1;\r\n comparisonWidth -= 1;\r\n }\r\n\r\n if (affordableHeight >= comparisonHeight && affordableWidth >= comparisonWidth) {\r\n ratioFound = true;\r\n }\r\n }\r\n const newRatio = (comparisonWidth * comparisonHeight) / (affordableWidth * affordableHeight);\r\n return {\r\n transform: newRatio,\r\n scale: (affordableWidth * affordableHeight) / (parseInt(w) * parseInt(h)),\r\n width: w + \"px\",\r\n height: h + \"px\",\r\n };\r\n };\r\n postionAndSizeOnChange = (path, v, meetingModuleLayoutId) => {\r\n const { layouts, selectedLayout } = this.state;\r\n\r\n let selectedModule = deepClone(this.state.selectedModule);\r\n let value = v;\r\n\r\n let index = layouts.indexOf(layouts.find((l) => l.meetingLayoutId == selectedLayout.value));\r\n if (index > -1) {\r\n let moduleIndex = layouts[index].meetingModules.indexOf(layouts[index].meetingModules.find((m) => m.meetingModuleLayoutId == meetingModuleLayoutId));\r\n if (moduleIndex > -1) {\r\n layouts[index].meetingModules[moduleIndex][path] = value;\r\n this.updateLayoutModule(layouts[index].meetingModules[moduleIndex]);\r\n selectedModule = { ...selectedModule, [path]: value };\r\n this.setState({ selectedModule });\r\n }\r\n }\r\n };\r\n onSelectModule = (mm) => {\r\n const { layouts, selectedLayout, changedLayoutModules } = this.state;\r\n let layoutModule = {};\r\n let index = layouts.indexOf(layouts.find((l) => l.meetingLayoutId == selectedLayout.value));\r\n if (index > -1) {\r\n let moduleIndex = layouts[index].meetingModules.indexOf(layouts[index].meetingModules.find((m) => m.meetingModuleId == mm.meetingModuleId));\r\n if (moduleIndex > -1) {\r\n layoutModule = layouts[index].meetingModules[moduleIndex];\r\n }\r\n }\r\n this.setState({\r\n selectedModule: {\r\n ...mm,\r\n ...layoutModule,\r\n deleted: layoutModule.meetingModuleLayoutId ? changedLayoutModules.find((cl) => cl.meetingModuleLayoutId == layoutModule.meetingModuleLayoutId && cl.deleted == true) : false,\r\n moduleType: this.state.modules.find((ms) => ms.meetingModuleId == mm.meetingModuleId).moduleType,\r\n },\r\n });\r\n };\r\n selectLayout = (id, name) => {\r\n const { layouts } = this.state;\r\n const sl = layouts.find((l) => l.meetingLayoutId == id);\r\n if (sl && sl.templateId) {\r\n this.props.dispatch(templateActions.get(sl.templateId));\r\n }\r\n this.setState({ selectedLayout: { value: id, label: name } });\r\n };\r\n layoutTemplateOnChange = (templateId) => {\r\n const { layouts } = this.state;\r\n const { dispatch } = this.props;\r\n const selectedLayout = layouts.find((l) => l.meetingLayoutId == this.state.selectedLayout.value);\r\n if (selectedLayout) {\r\n const updatedLayout = deepClone(selectedLayout);\r\n updatedLayout.templateId = templateId;\r\n this.updateLayout(updatedLayout, this.onSave());\r\n }\r\n dispatch(templateActions.get(templateId));\r\n };\r\n parseModules = () => {\r\n const parsedModules = Array.from(this.state.modules);\r\n parsedModules.map((m) => {\r\n const pm = deepClone(m);\r\n if (typeof pm.settings == \"string\") {\r\n pm.settings = JSON.parse(pm.settings);\r\n }\r\n return pm;\r\n });\r\n return parsedModules;\r\n };\r\n copyModule = () => {\r\n const { eventId, selectedLayout, selectedModule, layouts, modules, changedModules, changedLayoutModules } = this.state;\r\n\r\n const copyOfSelectedModule = deepClone(selectedModule);\r\n const { posY, posX, width, height, zIndex, sortOrder, settings, displayName, moduleId, moduleType, meetingModuleId, meetingModuleLayoutId, meetingLayoutId } = copyOfSelectedModule;\r\n\r\n let layoutId = selectedLayout ? selectedLayout.value : -1000;\r\n let added = changedModules.filter((c) => c.added == true).length;\r\n let addedLm = changedLayoutModules.filter((c) => c.added == true).length;\r\n let mId = added * -1;\r\n let mLId = addedLm * -1;\r\n\r\n let meetingModule = {\r\n moduleType,\r\n eventId,\r\n meetingModuleId: mId,\r\n displayName: (displayName || \"\") + \" (copy)\",\r\n inserted: new Date().toISOString(),\r\n settings: settings,\r\n };\r\n let layoutModule = {\r\n posX,\r\n posY,\r\n width,\r\n height,\r\n zIndex,\r\n sortOrder: sortOrder,\r\n meetingLayoutId: layoutId,\r\n meetingModuleId: mId,\r\n meetingModuleLayoutId: mLId,\r\n };\r\n\r\n if (!modules.find((m) => m.meetingModuleId == meetingModule.meetingModuleId)) {\r\n modules.push(meetingModule);\r\n this.addOrUpdate({ ...meetingModule, added: true }, \"changedModules\", \"meetingModuleId\");\r\n }\r\n if (layoutId != -1000) {\r\n let index = layouts.indexOf(layouts.find((l) => l.meetingLayoutId == layoutModule.meetingLayoutId));\r\n if (index > -1) {\r\n this.addOrUpdate({ ...layouts[index], edited: true }, \"changedLayouts\", \"meetingLayoutId\");\r\n this.addOrUpdate(\r\n [\r\n { ...layoutModule, added: true },\r\n { ...layoutModule, meetingModuleId, meetingModuleLayoutId, deleted: true },\r\n ],\r\n \"changedLayoutModules\",\r\n \"meetingModuleLayoutId\"\r\n );\r\n layouts[index].meetingModules.push(layoutModule);\r\n layouts[index].meetingModules = layouts[index].meetingModules.filter((m) => m.meetingModuleLayoutId != copyOfSelectedModule.meetingModuleLayoutId);\r\n }\r\n }\r\n this.setState({\r\n layouts,\r\n isSavable: true,\r\n selectedModule: {\r\n ...copyOfSelectedModule,\r\n displayName: meetingModule.displayName,\r\n meetingLayoutId: layoutId,\r\n meetingModuleId: mId,\r\n meetingModuleLayoutId: mLId,\r\n },\r\n });\r\n };\r\n render() {\r\n const { templateIsSavable, templateLoaded, template, fonts } = this.props;\r\n\r\n const {\r\n modules,\r\n permissions,\r\n layouts,\r\n selectedLayout,\r\n isSavable,\r\n selectedModule,\r\n changedLayouts,\r\n changedLayoutModules,\r\n showLayoutGrid,\r\n preview,\r\n previewProps,\r\n eventName,\r\n eventId,\r\n eventCode,\r\n previewLoading,\r\n mainEventId,\r\n previewOpt,\r\n layoutsLoaded,\r\n gridLines,\r\n activeTemplateId,\r\n activeLayout,\r\n events,\r\n } = this.state;\r\n\r\n const layoutModules = this.getLayoutModules();\r\n const groupedTemplate = this.groupTemplate();\r\n const parsedModules = this.parseModules();\r\n\r\n let gridClassName = showLayoutGrid ? \"hidden \" : \"show \";\r\n gridClassName += preview ? \"no-size-reg center-view\" : \"grid-view\";\r\n\r\n const connectionsProps = { hubConnection: this.hubConnection, ...this.state };\r\n return (\r\n
\r\n \r\n
\r\n {\r\n return m.settings;\r\n })}\r\n />\r\n {this.state.dialog ? : null}\r\n \r\n
(this.asideEditorRef = r)}>\r\n this.setState({ selectedModule: null })}\r\n selectedModule={selectedModule}\r\n onSelect={this.onSelectModule}\r\n postionAndSizeOnChange={this.postionAndSizeOnChange}\r\n eventName={this.state.eventName}\r\n layoutName={selectedLayout ? selectedLayout.label : \"\"}\r\n onEdit={this.updateModule}\r\n events={events}\r\n copyModule={this.copyModule}\r\n eventName={eventName}\r\n eventId={eventId}\r\n mainEventId={mainEventId}\r\n selectLayout={(id, name) => this.selectLayout(id, name)}\r\n deleted={selectedModule ? changedLayoutModules.find((clm) => clm.meetingModuleLayoutId == selectedModule.meetingModuleLayoutId && clm.deleted == true) : false}\r\n layouts={layouts}\r\n updateLayout={this.updateLayout}\r\n selectedLayout={selectedLayout}\r\n deleteModule={this.deleteModule}\r\n deleteLayoutModule={this.deleteLayoutModule}\r\n addModule={this.addModule}\r\n activeModules={layoutModules}\r\n />\r\n
\r\n
\r\n {/* Flytta appbar till egen fil.. */}\r\n \r\n \r\n
\r\n \r\n
\r\n }>\r\n \r\n {[\r\n { label: , value: null },\r\n {\r\n value: window.innerWidth * window.innerHeight,\r\n label: `${window.innerWidth}x${window.innerHeight}`,\r\n },\r\n ...resolutions,\r\n ].map((b, i) => {\r\n return (\r\n \r\n \r\n \r\n this.onPreview(b.label, b.value)}\r\n >\r\n {b.label}\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n })}\r\n
\r\n \r\n
\r\n\r\n l.eventId == eventId).length == 0}\r\n style={{\r\n marginLeft: -5,\r\n color: \"rgba(255, 255, 255, 0.54)\",\r\n \"&:hover\": {\r\n color: \"#fff\",\r\n },\r\n }}\r\n onClick={() => {\r\n /* if (layouts.length == 0) return; */\r\n this.setState({\r\n showLayoutGrid: !this.state.showLayoutGrid,\r\n });\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n this.setState({ gridLines: !gridLines })}\r\n >\r\n : }>{gridLines ? : }\r\n \r\n \r\n \r\n window.open(\r\n `${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/digitalarena/${\r\n this.state.selectedLayout && this.state.layouts.find((l) => l.meetingLayoutId == this.state.selectedLayout.value)?.mobile == true ? \"mobile/\" : \"\"\r\n }${eventCode}?clientkey=${this.state.tickCode}${securityHelper.createGuid()}`,\r\n \"_blank\"\r\n )\r\n }\r\n >\r\n }>\r\n \r\n \r\n \r\n
{showLayoutGrid ? : null}
\r\n \r\n \r\n \r\n this.selectLayout(id, name)}\r\n toggleGrid={() => this.setState({ showLayoutGrid: !showLayoutGrid })}\r\n onEdit={this.updateLayout}\r\n deleteLayout={this.deleteLayout}\r\n deletedLayouts={changedLayouts.filter((cl) => cl.deleted == true)}\r\n createLayout={this.createLayout}\r\n activeLayout={this.state.activeLayout}\r\n />\r\n \r\n \r\n {previewLoading && !showLayoutGrid ? (\r\n \r\n ) : null}\r\n\r\n l.meetingLayoutId == selectedLayout.value)?.mobile ? \"GridViewMobile\" : \"GridView\"}\r\n className={showLayoutGrid ? \"hidden\" : \"show\"}\r\n onDragEnter={(e) => {\r\n e.dataTransfer.dropEffect = \"copy\";\r\n e.preventDefault();\r\n }}\r\n onDragOver={(e) => {\r\n e.dataTransfer.dropEffect = \"copy\";\r\n e.preventDefault();\r\n }}\r\n className={gridClassName}\r\n ref={(ref) => (this.gridRef = ref)}\r\n style={\r\n groupedTemplate\r\n ? {\r\n ...groupedTemplate.main,\r\n ...previewStyle(previewProps),\r\n opacity: previewLoading ? 0 : 1,\r\n }\r\n : {\r\n ...previewStyle(previewProps),\r\n }\r\n }\r\n >\r\n {gridLines && this.gridRef ? : null}\r\n\r\n {layoutModules.length > 0 && groupedTemplate\r\n ? layoutModules.map((m, i) => {\r\n if (m) {\r\n return (\r\n \r\n {\r\n if (this.state.previewOpt) return;\r\n this.setState({\r\n selectedModule: {\r\n ...m,\r\n moduleType: this.state.modules.find((ms) => ms.meetingModuleId == m.meetingModuleId).moduleType,\r\n },\r\n });\r\n }}\r\n settings={parsedModules.find((ms) => ms.meetingModuleId == m.meetingModuleId).settings}\r\n deleted={changedLayoutModules.find((clm) => clm.meetingModuleLayoutId == m.meetingModuleLayoutId && clm.deleted == true)}\r\n selected={selectedModule ? m.meetingModuleLayoutId == selectedModule.meetingModuleLayoutId : false}\r\n position={{\r\n zIndex: m.zIndex,\r\n x: m.posX,\r\n y: m.posY,\r\n }}\r\n size={{ height: m.height, width: m.width }}\r\n layout={this.state.selectedLayout}\r\n template={groupedTemplate}\r\n />\r\n \r\n );\r\n }\r\n })\r\n : null}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst previewStyle = (props) => {\r\n if (!props) return {};\r\n const { scale, width, height, transform } = props;\r\n return {\r\n zoom: scale < 1 ? (scale > 0.8 ? 0.8 : scale) : 0.8,\r\n width: width,\r\n height: height,\r\n transform: `translate(-50%, -50%) ${scale < 0.5 ? `scale(${1 - transform + 1})` : \"\"}`,\r\n };\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const { user } = state.authentication;\r\n return {\r\n user,\r\n alert: state.alert,\r\n page: state.page,\r\n fonts: state.cms.fonts,\r\n template: state.template.template,\r\n language: state.language,\r\n templateIsSavable: state.template.isSavable,\r\n templates: state.template ? state.template.templates : undefined,\r\n systemLabel: state.systemLabel,\r\n templateLoaded: state.template.loader,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(MeetingEditorLayout);\r\n","import React from \"react\";\r\nimport Sound from \"react-sound\";\r\nimport rush from \"../../../assets/audio/rush.mp3\";\r\nimport ringing from \"../../../assets/audio/ringing.mp3\";\r\nimport chatNotification from \"../../../assets/audio/chat.mp3\";\r\n\r\nexport const SoundNotification = (props) => {\r\n const { incommingCallSoundOn, ringingSoundOn, messageSoundOn } = props;\r\n return (\r\n <>\r\n \r\n\r\n {ringingSoundOn ? (\r\n \r\n ) : null}\r\n \r\n \r\n );\r\n};\r\n","import { Button, Divider, IconButton, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, ListSubheader } from \"@material-ui/core\";\r\nimport React, { useMemo } from \"react\";\r\nimport { ChatAvatar } from \"../../../../digitalArena/modules/ChatModule/components/ChatAvatar\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { formatTime } from \"../../../../helpers/time.helper\";\r\n\r\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\r\nimport VideocamIcon from \"@material-ui/icons/Videocam\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport VerifiedUserIcon from \"@material-ui/icons/VerifiedUser\";\r\n\r\nexport const VisitorHistoryList = (props) => {\r\n const { orderList, visited, connectionList, exhibitorsHosts, clientKey } = props;\r\n const historicalVisitors = useMemo(() => {\r\n return visited.filter((v) => {\r\n const order = orderList.find((o) => o.badgeNo == v.badgeNo);\r\n if (order && order.anonymous != true) return { ...order, ...v };\r\n });\r\n }, [visited]);\r\n\r\n return (\r\n \r\n {historicalVisitors\r\n .filter((v) => v.badgeNo != clientKey)\r\n .map((v, i) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n {v.fullName}\r\n \r\n {formatTime(new Date(v.lastVisit))}\r\n \r\n }\r\n secondary={v.companyName}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { IconButton, Tooltip } from \"@material-ui/core\";\r\nimport VideocamIcon from \"@material-ui/icons/Videocam\";\r\nimport VideocamOffIcon from \"@material-ui/icons/VideocamOff\";\r\n\r\nexport const VideoCallButton = ({ nonAvailablePersons, videoRequest, badgeNo, connectionList, videoCallActive, tooltipTitle }) => {\r\n const notAvailable = nonAvailablePersons.find((na) => na == badgeNo);\r\n const isOnline = connectionList.find((c) => c.clientKey == badgeNo);\r\n return (\r\n videoRequest(badgeNo)}>\r\n {notAvailable || !isOnline ? : }\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { IconButton, Tooltip } from \"@material-ui/core\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\n\r\nexport const LinkedInButton = ({ linkedIn, tooltipTitle }) => {\r\n if (!linkedIn) return null;\r\n return (\r\n window.open(linkedIn, \"_blank\")}>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport AvatarGroup from \"@material-ui/lab/AvatarGroup\";\r\nimport { Tooltip } from \"@material-ui/core\";\r\nimport SystemLabel from \"../system/SystemLabel/SystemLabel\";\r\n\r\nexport default function GroupAvatars({ people, target }) {\r\n return (\r\n <>\r\n \r\n \r\n {target}


\r\n {people.map((p) => {\r\n return (\r\n <>\r\n ⭐ {p.name}\r\n
\r\n \r\n );\r\n })}\r\n \r\n }\r\n >\r\n \r\n {people.map((p) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { Button, Divider, IconButton, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, Tooltip } from \"@material-ui/core\";\r\nimport React, { useMemo } from \"react\";\r\nimport { ChatAvatar } from \"../../../../digitalArena/modules/ChatModule/components/ChatAvatar\";\r\nimport { combineProps, deepClone } from \"../../../../helpers/objectHelper\";\r\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\r\nimport VideocamIcon from \"@material-ui/icons/Videocam\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport VerifiedUserIcon from \"@material-ui/icons/VerifiedUser\";\r\nimport { VideoCallButton } from \"../../../shared/VideoCallButton\";\r\nimport { LinkedInButton } from \"../../../shared/LinkedInButton\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport SyncAltIcon from \"@material-ui/icons/SyncAlt\";\r\nimport GroupAvatars from \"../../../../components/GroupAvatars\";\r\n\r\nexport const ActiveVisitorList = (props) => {\r\n const { orderList, connectionList = [], exhibitorsHosts = [], peopleFilter, selectChat, exhibitorId, videoRequest, nonAvailablePersons = [], chat } = props;\r\n\r\n const activeVisitors = useMemo(() => {\r\n return orderList.filter((o) => {\r\n if (o.anonymous == true) return false;\r\n return connectionList.find((v) => v.clientKey == o.badgeNo);\r\n });\r\n }, [connectionList, exhibitorsHosts, props.nonAvailablePersons, chat]);\r\n\r\n return (\r\n \r\n {activeVisitors\r\n .filter((a) => {\r\n if (peopleFilter == \"ATTENDEES\" && (a.exhibitorId == null || a.exhibitorId != exhibitorId)) {\r\n return true;\r\n }\r\n if (peopleFilter == \"EXHIBITORS\" && a.exhibitorId == exhibitorId) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .map((v, i) => {\r\n const isHost = orderList.find((e) => e.badgeNo == v.badgeNo && e.exhibitorId == exhibitorId);\r\n const initHostChats = chat\r\n .find((c) => c.target == \"EXPO\")\r\n ?.messages?.filter((f) => f.receiver == v.badgeNo)\r\n ?.map((m) => {\r\n return m.sender;\r\n });\r\n const connectedHosts = initHostChats ? orderList.filter((o) => initHostChats.includes(o.badgeNo)) : [];\r\n\r\n return (\r\n \r\n \r\n \r\n <>\r\n {isHost ? : null}\r\n \r\n \r\n \r\n \r\n {connectedHosts.length > 0 ? (\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n ) : null}\r\n \r\n } {...v} />\r\n\r\n selectChat(v.badgeNo)}>\r\n }>\r\n \r\n \r\n \r\n\r\n } {...combineProps([props, { badgeNo: v.badgeNo }])} />\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport Chart from \"react-apexcharts\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nexport const VisitorLineChart = (props) => {\r\n const { graphData } = props;\r\n const data = graphData.map((g) => {\r\n return g.count;\r\n });\r\n const categories = graphData.map((g) => {\r\n return g.dateSpan;\r\n });\r\n\r\n const maxVal = () => {\r\n if (Math.max.apply(null, data) <= 10) return 10;\r\n else if (Math.max.apply(null, data) <= 20) return 20;\r\n else if (Math.max.apply(null, data) <= 50) return 50;\r\n else if (Math.max.apply(null, data) <= 100) return 100;\r\n else if (Math.max.apply(null, data) <= 250) return 250;\r\n else return 10;\r\n };\r\n const max = maxVal();\r\n const settings = {\r\n options: {\r\n chart: {\r\n id: \"apexchart-example\",\r\n zoom: {\r\n type: \"x\",\r\n enabled: true,\r\n autoScaleYaxis: true,\r\n },\r\n toolbar: {\r\n autoSelected: \"zoom\",\r\n },\r\n },\r\n grid: {\r\n show: false,\r\n },\r\n xaxis: {\r\n axisBorder: {\r\n show: false,\r\n },\r\n axisTicks: {\r\n show: false,\r\n },\r\n categories,\r\n },\r\n yaxis: {\r\n axisBorder: {\r\n show: false,\r\n },\r\n tickAmount: max / (max >= 100 ? 20 : 10),\r\n min: 0,\r\n max,\r\n floating: false,\r\n showAlways: false,\r\n decimalsInFloat: undefined,\r\n labels: {\r\n show: true,\r\n align: \"right\",\r\n minWidth: 0,\r\n maxWidth: 160,\r\n style: {\r\n colors: [],\r\n fontSize: \"12px\",\r\n fontFamily: \"Helvetica, Arial, sans-serif\",\r\n fontWeight: 400,\r\n cssClass: \"apexcharts-yaxis-label\",\r\n },\r\n offsetX: 0,\r\n offsetY: 0,\r\n rotate: 0,\r\n formatter: (value) => {\r\n return value;\r\n },\r\n },\r\n },\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n markers: {\r\n size: 0,\r\n },\r\n fill: {\r\n type: \"gradient\",\r\n gradient: {\r\n shadeIntensity: 1,\r\n inverseColors: false,\r\n opacityFrom: 0.7,\r\n opacityTo: 0.1,\r\n stops: [20, 100, 100, 100],\r\n },\r\n },\r\n colors: [\"#3f51b5\"],\r\n markers: {\r\n size: 5,\r\n colors: [\"#fff\"],\r\n strokeColor: \"#3f51b5\",\r\n strokeWidth: 3,\r\n },\r\n },\r\n\r\n series: [\r\n {\r\n name: \"\",\r\n data,\r\n },\r\n ],\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport { Card, CardContent, Typography } from \"@material-ui/core\";\r\nimport { VisitorHistoryList } from \"./VisitorHistoryList\";\r\nimport { ActiveVisitorList } from \"./ActiveVisitorList\";\r\nimport { VisitorLineChart } from \"./VisitorLineChart\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n boxShadow: \"none\",\r\n height: \"100%\",\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n textAlign: \"center\",\r\n color: theme.palette.text.secondary,\r\n },\r\n title: {\r\n fontSize: 14,\r\n padding: \"10px 15px\",\r\n },\r\n grid: {\r\n padding: theme.spacing(3),\r\n },\r\n}));\r\n\r\nexport default function Dashboard(props) {\r\n const classes = useStyles();\r\n const { peopleFilter, toggleFilter } = props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\r\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\nimport StorefrontIcon from \"@material-ui/icons/Storefront\";\r\nimport InsertDriveFileIcon from \"@material-ui/icons/InsertDriveFile\";\r\n\r\nexport const menuOptions = [\r\n { name: \"Dashboard\", path: \"DASHBOARD\", icon: },\r\n { name: \"Chat\", path: \"CHAT\", icon: },\r\n {\r\n name: \"Settings\",\r\n icon: ,\r\n subOptions: [\r\n { name: \"Booth\", path: \"SETTINGS.BOOTH\", icon: },\r\n { name: \"AttachedFiles\", path: \"SETTINGS.ATTACHMENTS\", icon: },\r\n {\r\n name: \"MyProfile\",\r\n path: \"SETTINGS.PROFILE\",\r\n icon: ,\r\n },\r\n ],\r\n },\r\n];\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport ListSubheader from \"@material-ui/core/ListSubheader\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Collapse from \"@material-ui/core/Collapse\";\r\nimport InboxIcon from \"@material-ui/icons/MoveToInbox\";\r\nimport DraftsIcon from \"@material-ui/icons/Drafts\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport ExpandLess from \"@material-ui/icons/ExpandLess\";\r\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\r\nimport StarBorder from \"@material-ui/icons/StarBorder\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n maxWidth: 360,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n nested: {\r\n paddingLeft: theme.spacing(4),\r\n },\r\n}));\r\n\r\nconst activeStyle = {\r\n color: \"rgb(71 112 218)\",\r\n backgroundColor: \"rgb(83 131 255 / 16%)\",\r\n};\r\n\r\nconst activeIconStyle = {\r\n color: \"rgb(71 112 218)\",\r\n};\r\n\r\nexport default function MenuItem(props) {\r\n const classes = useStyles();\r\n const [collapseOpen, setCollapseOpen] = React.useState(false);\r\n\r\n const {\r\n name,\r\n icon,\r\n subOptions,\r\n navigate,\r\n path,\r\n page,\r\n open,\r\n handleDrawerOpen,\r\n } = props;\r\n\r\n const onMenuItemClick = (path) => {\r\n if (!open) handleDrawerOpen();\r\n navigate(path);\r\n };\r\n\r\n const handleClick = () => {\r\n if (!open) handleDrawerOpen();\r\n setCollapseOpen(!collapseOpen);\r\n };\r\n\r\n if (subOptions && Array.from(subOptions)) {\r\n return (\r\n <>\r\n \r\n {icon}\r\n }\r\n />\r\n {(!open ? false : collapseOpen) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n {subOptions.map((c, i) => {\r\n return (\r\n onMenuItemClick(c.path)}\r\n className={classes.nested}\r\n >\r\n \r\n {c.icon}\r\n \r\n \r\n }\r\n />\r\n
\r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n onMenuItemClick(path)}\r\n >\r\n \r\n {icon}\r\n \r\n }\r\n />\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport Axios from \"axios\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport List from \"@material-ui/core/List\";\r\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\nimport MoreIcon from \"@material-ui/icons/More\";\r\nimport { menuOptions } from \"../../models/menuOptions\";\r\nimport MenuItem from \"./MenuItem\";\r\nimport fileSaver from \"file-saver\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport PopMenuItem from \"@material-ui/core/MenuItem\";\r\nimport StorefrontIcon from \"@material-ui/icons/Storefront\";\r\nimport EqualizerIcon from \"@material-ui/icons/Equalizer\";\r\nimport ContactSupportIcon from \"@material-ui/icons/ContactSupport\";\r\nimport MoreVertIcon from \"@material-ui/icons/MoreVert\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { Avatar, ListItem, ListItemAvatar, ListItemText, Tooltip } from \"@material-ui/core\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flexGrow: 1,\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n transition: theme.transitions.create([\"width\", \"margin\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n appBarShift: {\r\n marginLeft: drawerWidth,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create([\"width\", \"margin\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n menuButton: {\r\n marginRight: 36,\r\n },\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n hide: {\r\n display: \"none\",\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n whiteSpace: \"nowrap\",\r\n },\r\n title: {\r\n flexGrow: 1,\r\n },\r\n drawerOpen: {\r\n width: drawerWidth,\r\n transition: theme.transitions.create(\"width\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n height: \"100vh\",\r\n position: \"fixed\",\r\n zIndex: 1,\r\n [theme.breakpoints.up(\"sm\")]: {\r\n position: \"static\",\r\n },\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n drawerClose: {\r\n transition: theme.transitions.create(\"width\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n overflowX: \"hidden\",\r\n width: 0,\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: 57,\r\n },\r\n },\r\n toolbar: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n marginTop: 64,\r\n height: \"calc(100vh - 64px)\",\r\n overflow: \"hidden\",\r\n },\r\n}));\r\n\r\nexport const MenuDrawer = (props) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [open, setOpen] = React.useState(true);\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null);\r\n\r\n const isMenuOpen = Boolean(anchorEl);\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n const { children, exhibitorName, clientName, profileImage, navigate } = props;\r\n\r\n const handleProfileMenuOpen = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n handleMobileMenuClose();\r\n };\r\n\r\n const handleMobileMenuOpen = (event) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleDrawerOpen = () => {\r\n setOpen(true);\r\n };\r\n const goToBooth = () => {\r\n const { clientKey, exhibitorId, lang } = props;\r\n window.open(\r\n window.location.href.includes(\"localhost\")\r\n ? `/booth/${exhibitorId.toString(36)}?clientkey=${clientKey}&lang=${lang}`\r\n : `/interaction/booth/${exhibitorId.toString(36)}?clientkey=${clientKey}&lang=${lang}`,\r\n \"_blank\"\r\n );\r\n };\r\n const goToMainRoom = () => {\r\n const { clientKey, eventCode, lang } = props;\r\n window.open(window.location.href.includes(\"localhost\") ? `/digitalmeeting/${eventCode}?clientkey=${clientKey}` : `/interaction/digitalmeeting/${eventCode}?clientkey=${clientKey}`, \"_blank\");\r\n };\r\n const exportParticipantExcel = () => {\r\n Axios.get(`./api/InteractionReport/exhibitor/${props.exhibitorId}`, {\r\n responseType: \"arraybuffer\",\r\n }).then((response) => {\r\n var blob = new Blob([response.data], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n });\r\n var date = new Date();\r\n var datestr = `${date.getFullYear()}-${date.getMonth() < 10 ? \"0\" : \"\"}${date.getMonth()}-${date.getDate() < 10 ? \"0\" : \"\"}${date.getDate()}_${\r\n date.getHours() < 10 ? \"0\" : \"\"\r\n }${date.getHours()}${date.getMinutes() < 10 ? \"0\" : \"\"}${date.getMinutes()}`;\r\n\r\n var fileName = `${exhibitorName}_Besökare_${datestr}.xlsx`;\r\n fileSaver.saveAs(blob, fileName);\r\n });\r\n };\r\n\r\n const handleDrawerClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const mobileMenuId = \"primary-search-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n \r\n Profile\r\n My account\r\n My account\r\n \r\n );\r\n\r\n const { page } = props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {exhibitorName}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n window.open(\"https://inadra.se/support\")}>\r\n }>\r\n \r\n \r\n \r\n\r\n \r\n \r\n navigate(\"SETTINGS.PROFILE\")} style={{ padding: 0 }}>\r\n {profileImage ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {renderMobileMenu}\r\n \r\n
\r\n {theme.direction === \"rtl\" ? : }\r\n
\r\n \r\n \r\n {menuOptions.map((option, index) => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n
{children}
\r\n
\r\n );\r\n};\r\n","import React, { useEffect, useState, useRef, useMemo } from \"react\";\r\nimport { AppBar } from \"@material-ui/core\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { ChatFooter } from \"../../../../digitalArena/modules/ChatModule/components/ChatFooter\";\r\nimport { PersonDetails } from \"../../../../digitalArena/modules/ChatModule/components/PersonDetails\";\r\nimport { chatStyle } from \"../../../../digitalArena/modules/ChatModule/helpers/chat.helper\";\r\nimport { MessageList } from \"../../../../digitalArena/modules/ChatModule/components/MessageList\";\r\nimport { init } from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nexport const ChatFrame = (props) => {\r\n const [text, setText] = useState(\"\");\r\n const { selectChat, selectedChat, chat, eventId, lang } = props;\r\n const lastMessageRef = useRef();\r\n const scrollRef = useRef();\r\n const textRef = useRef(\"\");\r\n const prevLastMessage = usePrevious(lastMessageRef.current);\r\n textRef.current = text;\r\n\r\n useEffect(() => {\r\n init(eventId, \"DIGITALMEETING.CHAT\", lang);\r\n return () => {\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (lastMessageRef.current && !prevLastMessage && chat.length != 0 && scrollRef.current) {\r\n setTimeout(() => handleScroll(), 1500);\r\n } else if (lastMessageRef.current != prevLastMessage && chat.length != 0 && scrollRef.current) {\r\n handleScroll();\r\n }\r\n }, [lastMessageRef.current]);\r\n\r\n const handleScroll = () => {\r\n try {\r\n lastMessageRef.current.scrollIntoView({\r\n block: \"end\",\r\n behavior: \"smooth\",\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n const typing = (text) => {\r\n setText(text);\r\n };\r\n\r\n const combinedProps = useMemo(() => {\r\n return {\r\n ...combineProps([\r\n props,\r\n {\r\n text,\r\n exhibitor: true,\r\n chats: chat,\r\n onTyping: typing,\r\n lastMessageRef,\r\n settings: {\r\n showUserProfileImage: true,\r\n },\r\n messagesToShow: 30,\r\n onScroll: () => null,\r\n scrollRef,\r\n deselectChat: () => selectChat(null),\r\n chatTemplate: chatStyle(),\r\n currentChat: selectedChat,\r\n },\r\n ]),\r\n };\r\n }, [props, text, selectedChat, chat]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n selectChat(null),\r\n chatTemplate: chatStyle(),\r\n currentChat: selectedChat,\r\n },\r\n ])}\r\n />\r\n
\r\n );\r\n};\r\n","import { Button, Divider, IconButton, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, Tooltip, Typography } from \"@material-ui/core\";\r\nimport React, { useMemo, useState } from \"react\";\r\nimport { ChatAvatar } from \"../../../../digitalArena/modules/ChatModule/components/ChatAvatar\";\r\nimport { combineProps, deepClone } from \"../../../../helpers/objectHelper\";\r\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\r\nimport VideocamIcon from \"@material-ui/icons/Videocam\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport VerifiedUserIcon from \"@material-ui/icons/VerifiedUser\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { formatTime, datesAreOnSameDay } from \"../../../../helpers/time.helper\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport { VideoCallButton } from \"../../../shared/VideoCallButton\";\r\nimport { LinkedInButton } from \"../../../shared/LinkedInButton\";\r\nimport { ChatSearchbar } from \"../../../../digitalArena/modules/ChatModule/components/ChatSearchbar\";\r\nimport { uuidv4 } from \"../../../../helpers/securityHelper\";\r\nimport MeetingRoomIcon from \"@material-ui/icons/MeetingRoom\";\r\nimport PhoneMissedIcon from \"@material-ui/icons/PhoneMissed\";\r\n\r\nexport const ConversationList = (props) => {\r\n const [filter, setFilter] = useState(\"\");\r\n\r\n const { orderList = [], exhibitorId, connectionList = [], exhibitorsHosts = [], chatConnections = [], clientKey, logList = [], chat, selectChat, nonAvailablePersons, videoRequest } = props;\r\n\r\n const messagesRead = (seen, sender, messages) => {\r\n return (!seen && sender != clientKey) || !seen || messages.find((m) => m.seen == false && m.sender != clientKey);\r\n };\r\n\r\n const activeConversations = orderList\r\n .filter((o) => {\r\n const exist = o.badgeNo != clientKey && chat.find((c) => c.target == o.badgeNo);\r\n\r\n if (!filter && exist) return true;\r\n if (o.name.toLowerCase().includes(filter.toLowerCase()) && exist) {\r\n return true;\r\n }\r\n\r\n if (o.company && o.company.toLowerCase().includes(filter.toLowerCase()) && exist) {\r\n return true;\r\n }\r\n\r\n if (o.title && o.title.toLowerCase().includes(filter.toLowerCase()) && exist) {\r\n return true;\r\n }\r\n })\r\n .map((v, i) => {\r\n const isHost = orderList.find((e) => e.badgeNo == v.badgeNo && e.exhibitorId == exhibitorId);\r\n const conversation = chat.find((c) => c.target == v.badgeNo);\r\n\r\n const lastMessage = conversation.messages[conversation.messages.length - 1].message;\r\n const lastSender = conversation.messages[conversation.messages.length - 1].sender;\r\n const lastSenderName = lastSender == clientKey ? : \"\";\r\n\r\n const undreadMessages = conversation.messages.filter((c) => c.receiver == clientKey && c.seen == false).length;\r\n\r\n const read = undreadMessages == 0;\r\n const online = connectionList.find((c) => c.clientKey == v.badgeNo);\r\n const inAnotherRoom = chatConnections.find((cc) => cc.clientKey == v.badgeNo);\r\n const called = logList.find((l) => l.value == v.badgeNo);\r\n return (\r\n
\r\n \r\n \r\n <>\r\n {isHost ? : null}\r\n \r\n \r\n \r\n\r\n \r\n {v.name}\r\n {!read ?
{undreadMessages}
: null}\r\n
\r\n }\r\n secondary={\r\n \r\n {lastMessage?.substring(0, 20)} • {formatTime(conversation.lastChange)}
\r\n {called && datesAreOnSameDay(new Date(called.inserted), new Date()) ? (\r\n <>\r\n \r\n \r\n •{` ${formatTime(called.inserted, null, \"\")}`}\r\n \r\n
\r\n \r\n ) : null}\r\n {!online && inAnotherRoom ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n }\r\n />\r\n \r\n } {...v} />\r\n selectChat(v.badgeNo)}>\r\n }>\r\n \r\n \r\n \r\n } {...combineProps([props, { badgeNo: v.badgeNo }])} />\r\n \r\n \r\n \r\n \r\n );\r\n });\r\n\r\n const visitorsOnline = orderList\r\n .filter((o) => {\r\n const online = o.badgeNo != clientKey && connectionList.find((c) => c.clientKey == o.badgeNo) && !chat.find((c) => c.target == o.badgeNo);\r\n\r\n if (o.name.toLowerCase().includes(filter.toLowerCase()) && connectionList.find((c) => c.clientKey == o.badgeNo) && online) {\r\n return true;\r\n }\r\n\r\n if (o.company && o.company.toLowerCase().includes(filter.toLowerCase()) && connectionList.find((c) => c.clientKey == o.badgeNo) && online) {\r\n return true;\r\n }\r\n\r\n if (o.title && o.title.toLowerCase().includes(filter.toLowerCase()) && connectionList.find((c) => c.clientKey == o.badgeNo) && online) {\r\n return true;\r\n }\r\n })\r\n .map((v, i) => {\r\n const isHost = orderList.find((e) => e.badgeNo == v.badgeNo && e.exhibitorId == exhibitorId);\r\n\r\n return (\r\n
\r\n \r\n \r\n {isHost ? : null}\r\n \r\n \r\n {v.name}} secondary={v.company} />\r\n \r\n } {...v} />\r\n selectChat(v.badgeNo)}>\r\n }>\r\n \r\n \r\n \r\n } {...combineProps([props, { badgeNo: v.badgeNo }])} />\r\n \r\n \r\n \r\n
\r\n );\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n {/* \r\n \r\n */}\r\n {activeConversations}\r\n {/* \r\n \r\n */}\r\n {visitorsOnline}\r\n \r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { ChatFrame } from \"./ChatFrame\";\r\nimport { ConversationList } from \"./ConversationList\";\r\n\r\nexport const ChatView = (props) => {\r\n const { selectedChat } = props;\r\n return (\r\n
\r\n \r\n {selectedChat ? : null}\r\n
\r\n );\r\n};\r\n\r\nconst DesktopView = () => {};\r\n\r\nconst MobileView = () => {};\r\n","import React from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport VideocamIcon from \"@material-ui/icons/Videocam\";\r\nimport CallEndIcon from \"@material-ui/icons/CallEnd\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\nimport { Avatar } from \"@material-ui/core\";\r\nimport PersonIcon from \"@material-ui/icons/Person\";\r\nimport \"./Animation.css\";\r\nimport { isUsingChrome } from \"../../helpers/browser.helper\";\r\n\r\nexport default function IncommingCallDialog(props) {\r\n const { target = null, deny = () => null, accept = () => null, lang = null, chrome } = props;\r\n\r\n return (\r\n
\r\n null} aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\">\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{target ? target.name : \"(?)\"}
\r\n
\r\n \r\n
\r\n
\r\n {!chrome ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n\r\n \r\n \r\n {chrome ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","export const videoCallConstants = {\r\n CALL_DENIED: 'CALL_DENIED',\r\n TARGET_HANGUP: 'TARGET_HANGUP',\r\n SELF_HANGUP: 'SELF_HANGUP'\r\n}","import React from \"react\";\r\nimport { videoCallConstants } from \"../../../constants/videoCall.constants\";\r\nimport PhoneDisabledIcon from \"@material-ui/icons/PhoneDisabled\";\r\nimport CallEndIcon from \"@material-ui/icons/CallEnd\";\r\nimport PhoneIcon from \"@material-ui/icons/Phone\";\r\nimport { Button } from \"@material-ui/core\";\r\nimport { JitsiWrapper, JitsiWrapper2 } from \"../../../../plugins/JitsiWrapper\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\n\r\nexport const VideoFrame = (props) => {\r\n const {\r\n connected,\r\n selectedChat,\r\n videoCallActive,\r\n videoCallTarget,\r\n clientKey,\r\n displayName,\r\n closeVideoCall,\r\n targetPerson = \"\",\r\n page,\r\n meetingCode = \"\",\r\n } = props;\r\n\r\n const frameStyle = page != \"CHAT\" ? { opacity: 0, zIndex: 1 } : undefined;\r\n const frameClassName =\r\n page == \"CHAT\"\r\n ? selectedChat\r\n ? \"expo-admin-video-view-50\"\r\n : \"expo-admin-video-view-100\"\r\n : \"expo-admin-video-view-flex\";\r\n\r\n const height = page != \"CHAT\" ? \"39vh\" : \"calc(100vh - 64px )\";\r\n\r\n if (videoCallTarget && connected) {\r\n return (\r\n
\r\n {videoCallActive ? (\r\n closeVideoCall(videoCallTarget)}\r\n />\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst CallLoader = (props) => {\r\n const {\r\n videoCallActive,\r\n orderList,\r\n videoCallResponse,\r\n videoCallTarget,\r\n videoRequestResponse,\r\n callId,\r\n lang\r\n } = props;\r\n const targetPerson = orderList.find((o) => o.badgeNo == videoCallTarget)\r\n ? orderList.find((o) => o.badgeNo == videoCallTarget)?.name ?? \" - \"\r\n : null;\r\n\r\n if (videoCallResponse == videoCallConstants.CALL_DENIED) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {\" \"}\r\n {targetPerson}{\" \"}\r\n \r\n

\r\n
\r\n );\r\n }\r\n if (videoCallResponse == videoCallConstants.SELF_HANGUP) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {\" \"}\r\n \r\n

\r\n
\r\n );\r\n }\r\n if (videoCallResponse == videoCallConstants.TARGET_HANGUP) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {\" \"}\r\n {targetPerson}{\" \"}\r\n \r\n

\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {\" \"}\r\n {\" \"}\r\n {targetPerson}\r\n

\r\n
\r\n
\r\n
\r\n \r\n videoRequestResponse(false, videoCallTarget, callId, true)\r\n }\r\n color=\"primary\"\r\n >\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React, { useMemo } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport Fade from \"@material-ui/core/Fade\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport Grow from \"@material-ui/core/Grow\";\r\nimport {\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n} from \"@material-ui/core\";\r\nimport { ChatAvatar } from \"../../../../digitalArena/modules/ChatModule/components/ChatAvatar\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { formatTime } from \"../../../../helpers/time.helper\";\r\nimport { LinkedInButton } from \"../../../shared/LinkedInButton\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\n\r\nfunction SlideTransition(props) {\r\n return ;\r\n}\r\n\r\nexport default function NotificationSnackbar(props) {\r\n const {\r\n chat,\r\n page,\r\n clientKey,\r\n orderList,\r\n connectionList,\r\n selectChat,\r\n } = props;\r\n\r\n const unreadTargets = useMemo(() => {\r\n if (page == \"CHAT\") return;\r\n const targetList = [];\r\n chat.map((c) => {\r\n const undreadMessages = c.messages.filter(\r\n (c) => c.receiver == clientKey && c.seen == false\r\n ).length;\r\n\r\n\r\n if (undreadMessages > 0) {\r\n const target = orderList.find((o) => o.badgeNo == c.target);\r\n\r\n const lastMessage = c.messages[c.messages.length - 1].message;\r\n\r\n targetList.push({\r\n target,\r\n undreadMessages,\r\n lastChange: formatTime(c.lastChange),\r\n lastMessage: `${lastMessage?.substring(0, 20)} • `,\r\n });\r\n }\r\n });\r\n return targetList;\r\n }, [page, chat]);\r\n\r\n\r\n return unreadTargets\r\n ? unreadTargets.map((u, i) => {\r\n if (!u.target) return null;\r\n return (\r\n \r\n \r\n \r\n {/* {isHost ? : null} */}\r\n \r\n \r\n\r\n \r\n \r\n {u.target.name}\r\n \r\n
\r\n {u.undreadMessages}\r\n
\r\n \r\n }\r\n secondary={\r\n \r\n {u.lastMessage}\r\n {u.lastChange}\r\n \r\n }\r\n />\r\n \r\n \r\n {/* */}\r\n {/* selectChat(v.badgeNo)}>\r\n \r\n */}\r\n \r\n
\r\n \r\n );\r\n })\r\n : null;\r\n}\r\n","/* import React from \"react\";\r\n\r\nexport const BoothSettings = (props) => {};\r\n\r\nconst CategorySection = () => {\r\n return
;\r\n};\r\n\r\nconst CategoryHeader = () => {\r\n return
;\r\n};\r\n\r\nconst CategoryBody = () => {\r\n return
;\r\n}; */\r\n\r\nimport { Button, Divider, FormGroup, List } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { Label, Input, Row, Col } from \"reactstrap\";\r\nimport ImageIcon from \"@material-ui/icons/Image\";\r\n\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport PlayCircleOutlineIcon from \"@material-ui/icons/PlayCircleOutline\";\r\nimport { embedLink } from \"../../../../helpers/embed.helper\";\r\nimport { faYoutube, faDailymotion, faVimeoSquare } from \"@fortawesome/free-brands-svg-icons\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { GenericPlayer } from \"../../../../plugins/GenericPlayer\";\r\nimport ExhibitorEditor from \"../../../../components/TinyMCE/ExhibitorEditor\";\r\nimport PopEditorClassic from \"../../../../components/TinyMCE/PopEditorClassic\";\r\nimport JirangoSwitch from \"../../../../components/JirangoSwitch/JirangoSwitch\";\r\n\r\nconst filteredSettings = [\"File\", \"Link\"];\r\nconst fileUpload = [\"LogoImage\"];\r\nconst switches = [\"EnableVideoMeeting\", \"EnableChat\"];\r\nconst video = [\"StartVideo\"];\r\nconst number = [\"VideoCallTimeout\"];\r\nconst editor = [\"Infotext\"];\r\n\r\nconst categories = [\r\n { name: \"Content\", options: [\"LogoImage\", \"Infotext\", \"StartVideo\"] },\r\n {\r\n name: \"Chat\",\r\n options: [\"EnableChat\", \"EnableVideoMeeting\", \"VideoCallTimeout\"],\r\n },\r\n];\r\n\r\nconst FileUploadItem = (props) => {\r\n const { onUpload, exhibitorSettingId, value, name } = props;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n onUpload(e, exhibitorSettingId, name)} />\r\n
\r\n \r\n );\r\n};\r\n\r\nconst TextEditorItem = (props) => {\r\n const { value2, exhibitorSettingId, setSavable, onEdit } = props;\r\n return (\r\n /*
*/\r\n {\r\n onEdit(exhibitorSettingId, \"value2\", e);\r\n setSavable(true);\r\n }}\r\n expo={true}\r\n showLinkEditor={false}\r\n sourceCode={false}\r\n slimFormat={true}\r\n path={\"value2\"}\r\n style={{\r\n height: \"500px\",\r\n }}\r\n />\r\n /*
*/\r\n );\r\n};\r\n\r\nconst SwitchItem = (props) => {\r\n const { name, setSavable, exhibitorSettingId, value2, onEdit } = props;\r\n return (\r\n
\r\n {\r\n onEdit(exhibitorSettingId, \"value2\", value2 == \"True\" ? \"False\" : \"True\");\r\n setSavable(true);\r\n }}\r\n isChecked={value2 == \"True\" ? true : false}\r\n />\r\n
\r\n );\r\n};\r\n\r\nconst VideoItem = (props) => {\r\n const { exhibitorSettingId, value2, onEdit, setSavable, name } = props;\r\n return (\r\n
\r\n \r\n {!value2 ? : }\r\n
\r\n {\r\n onEdit(exhibitorSettingId, \"value2\", e.target.value);\r\n setSavable(true);\r\n }}\r\n value={value2}\r\n />\r\n {/*

\r\n {\" \"}\r\n

\r\n
\r\n \r\n \r\n \r\n
*/}\r\n \r\n );\r\n};\r\n\r\nconst NumberItem = (props) => {\r\n const { exhibitorSettingId, value2, onEdit, setSavable, name } = props;\r\n return (\r\n
\r\n {\r\n onEdit(exhibitorSettingId, \"value2\", e.target.value);\r\n setSavable(true);\r\n }}\r\n value={value2}\r\n />\r\n {/*

\r\n {\" \"}\r\n

*/}\r\n
\r\n );\r\n};\r\n\r\nexport function BoothSettings(props) {\r\n const { renderIcon, settings, isSavable } = props;\r\n return (\r\n
\r\n \r\n {categories.map((c, i) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {c.options.map((o, oi) => {\r\n const setting = settings.find((s) => s.name == o);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n {\" \"}\r\n \r\n \r\n\r\n {oi != c.options.length - 1 ? : null}\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n })}\r\n {/* {settings\r\n .sort((a, b) => {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n .filter((s) => !filteredSettings.includes(s.name))\r\n .map((s, i) => {\r\n const { name } = s;\r\n const ps = { ...s, ...props };\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n })} */}\r\n \r\n
\r\n );\r\n}\r\n\r\nconst ListItem = (props) => {\r\n const { name } = props;\r\n if (fileUpload.includes(name)) {\r\n return ;\r\n }\r\n if (video.includes(name)) {\r\n return ;\r\n }\r\n if (number.includes(name)) {\r\n return ;\r\n }\r\n if (switches.includes(name)) {\r\n return ;\r\n }\r\n if (editor.includes(name)) {\r\n return ;\r\n }\r\n return null;\r\n};\r\n","import React from \"react\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faFileExcel,\r\n faFileImage,\r\n faFileWord,\r\n faFilePdf,\r\n faFilePowerpoint,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nexport const FileType = ({ value }) => {\r\n let type = value.substring(value.lastIndexOf(\".\") + 1, value.length);\r\n switch (type) {\r\n case \"jpg\":\r\n return (\r\n \r\n );\r\n case \"jif\":\r\n return (\r\n \r\n );\r\n case \"png\":\r\n return (\r\n \r\n );\r\n case \"svg\":\r\n return (\r\n \r\n );\r\n case \"pdf\":\r\n return (\r\n \r\n );\r\n case \"doc\":\r\n return (\r\n \r\n );\r\n case \"docx\":\r\n return (\r\n \r\n );\r\n case \"xls\":\r\n return (\r\n \r\n );\r\n case \"xlsx\":\r\n return (\r\n \r\n );\r\n case \"ppt\":\r\n return (\r\n \r\n );\r\n case \"pptx\":\r\n return (\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n};\r\n","import { LinearProgress, List, makeStyles } from \"@material-ui/core\";\r\nimport React, { Fragment } from \"react\";\r\nimport LinkIcon from \"@material-ui/icons/Link\";\r\nimport InsertDriveFileIcon from \"@material-ui/icons/InsertDriveFile\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { Input, Label, Row, Col } from \"reactstrap\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport SettingsBackupRestoreIcon from \"@material-ui/icons/SettingsBackupRestore\";\r\nimport { FileType } from \"./FileType\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n maxWidth: \"100%\",\r\n },\r\n demo: {\r\n backgroundColor: theme.palette.background.paper,\r\n minHeight: \"calc(100vh - 179px)\",\r\n maxHeight: \"calc(100vh - 179px)\",\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\",\r\n },\r\n demo2: {\r\n backgroundColor: theme.palette.background.paper,\r\n overflowY: \"auto\",\r\n maxHeight: \"calc(100vh - 179px)\",\r\n minHeight: \"calc(50vh - 156px)\",\r\n },\r\n title: {\r\n margin: theme.spacing(4, 0, 2),\r\n },\r\n progress: {\r\n position: \"absolute\",\r\n width: \"87%\",\r\n \"& > * + *\": {\r\n marginTop: theme.spacing(2),\r\n },\r\n },\r\n}));\r\n\r\nconst File = (props) => {\r\n const classes = useStyles();\r\n const { settings, onEdit, onDelete, setSavable, onUpload, name, value, exhibitorSettingId, deleteList, value2, isLoading, target } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n onEdit(exhibitorSettingId, \"value\", e.target.value);\r\n setSavable(true);\r\n }}\r\n value={value}\r\n />\r\n \r\n \r\n {target && target == exhibitorSettingId && isLoading ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n {\r\n onEdit(exhibitorSettingId, \"value2\", e.target.value);\r\n setSavable(true);\r\n }}\r\n value={value2}\r\n />\r\n \r\n \r\n onUpload(e, exhibitorSettingId, name)} />\r\n \r\n {\" \"}\r\n {\r\n onDelete(exhibitorSettingId);\r\n setSavable(true);\r\n }}\r\n >\r\n {deleteList.find((d) => d.exhibitorSettingId == exhibitorSettingId) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Link = (props) => {\r\n const classes = useStyles();\r\n const { settings, onEdit, onDelete, setSavable, onUpload, name, exhibitorSettingId, deleteList, value2, value, isLoading, target } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n onEdit(exhibitorSettingId, \"value\", e.target.value);\r\n setSavable(true);\r\n }}\r\n value={value}\r\n />\r\n \r\n \r\n {target && target == exhibitorSettingId && isLoading ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n {\r\n onEdit(exhibitorSettingId, \"value2\", e.target.value);\r\n setSavable(true);\r\n }}\r\n value={value2}\r\n />\r\n \r\n \r\n onUpload(e, exhibitorSettingId, name)}\r\n />\r\n\r\n {name != \"Link\" ? (\r\n \r\n ) : null}\r\n {\" \"}\r\n {\r\n onDelete(exhibitorSettingId);\r\n setSavable(true);\r\n }}\r\n >\r\n {deleteList.find((d) => d.exhibitorSettingId == exhibitorSettingId) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const AttachmentSettings = (props) => {\r\n const { settings, onEdit, setSavable } = props;\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n
\r\n {settings.filter((s) => s.name == \"Link\").length > 0 ? (\r\n settings\r\n .filter((s) => s.name == \"Link\")\r\n .sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n .map((s, i) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n
\r\n {settings.filter((s) => s.name == \"File\").length > 0 ? (\r\n settings\r\n .filter((s) => s.name == \"File\")\r\n .sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n .map((s, i) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"croppie/croppie.css\";\r\nimport { connect } from \"react-redux\";\r\nimport Rotate90DegreesCcwTwoToneIcon from \"@material-ui/icons/Rotate90DegreesCcwTwoTone\";\r\nimport { IconButton, LinearProgress } from \"@material-ui/core\";\r\nimport SaveTwoToneIcon from \"@material-ui/icons/SaveTwoTone\";\r\nimport CropTwoToneIcon from \"@material-ui/icons/CropTwoTone\";\r\nimport \"./ProfileImageUploader.css\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport { securityHelper } from \"../../../../helpers/securityHelper\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\n\r\nconst Croppie = require(\"croppie\");\r\n\r\nclass ProfileImageUploader extends React.Component {\r\n state = {\r\n source: \"\",\r\n isCropping: false,\r\n imageLoaded: false,\r\n defaultImage: \"https://www.xovi.com/wp-content/plugins/all-in-one-seo-pack/images/default-user-image.png\",\r\n };\r\n\r\n componentDidMount() {\r\n const { source, dispatch, cms } = this.props;\r\n\r\n this.setState({ source: source || this.state.defaultImage });\r\n }\r\n\r\n toBase64 = (file) =>\r\n new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = (error) => reject(error);\r\n });\r\n onImageUpload = async (e) => {\r\n const { cms, dispatch, element } = this.props;\r\n\r\n const file = e.target.files[0];\r\n\r\n const result = await this.toBase64(file).catch((e) => Error(e));\r\n if (result instanceof Error) {\r\n console.error(\"Error: \", result.message);\r\n this.setState({ errorMessage: result.message });\r\n return;\r\n }\r\n\r\n this.setState({ isCropping: true, source: result });\r\n };\r\n setImageOnOrder = (source) => {\r\n this.setState({ source });\r\n this.props.setImage(source);\r\n //props.load\r\n };\r\n onCropped = (source) => {\r\n const { cms, dispatch, element } = this.props;\r\n this.setState({ isCropping: false });\r\n this.setImageOnOrder(source);\r\n };\r\n setImageClassName = (type) => {\r\n switch (type) {\r\n case \"SQUARE\":\r\n return \"square--landscape\";\r\n case \"CIRCLE\":\r\n return \"circular--landscape\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n handleImageLoaded = () => this.setState({ imageLoaded: true });\r\n\r\n render() {\r\n const { source, isCropping } = this.state;\r\n const { cms, template, onRestore = null } = this.props;\r\n\r\n return (\r\n
\r\n {!this.state.isCropping && (\r\n
\r\n (this.imgRef = r)} onLoad={this.handleImageLoaded} src={source} className={`image-content ${this.state.imageLoaded ? \"unblur\" : \"blur\"}`} alt=\"image\" />\r\n
\r\n )}\r\n\r\n
\r\n {isCropping ? (\r\n \r\n ) : null}\r\n {!isCropping ? (\r\n \r\n ) : null}\r\n {!isCropping ? (\r\n \r\n ) : null}\r\n {!isCropping && onRestore ? (\r\n \r\n ) : null}\r\n
\r\n\r\n this.onImageUpload(e)} />\r\n
\r\n );\r\n }\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n form: state.form,\r\n template: state.template.template,\r\n cms: state.cms,\r\n attendee: state.attendee,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ProfileImageUploader);\r\n\r\nclass ProfileImageCropper extends React.Component {\r\n state = {\r\n zoom: 0,\r\n isLoading: false,\r\n };\r\n componentDidMount() {\r\n this.init();\r\n }\r\n init = (reRender = false) => {\r\n const { size, shape, parentId, viewport, backgroundColor } = this.props;\r\n\r\n if (this.cropper) {\r\n this.cropper.destroy();\r\n }\r\n if (size !== null || reRender) {\r\n this.cropper = new Croppie(document.getElementById(\"croppie-img-\" + parentId), {\r\n viewport: { ...viewport, type: shape.toLowerCase() },\r\n boundary: viewport,\r\n showZoomer: true,\r\n type: \"base64\",\r\n enableOrientation: true,\r\n });\r\n\r\n this.handleZoomOut(0);\r\n let listNodes = document.getElementsByClassName(\"cr-vp-square\");\r\n\r\n if (listNodes[0]) {\r\n listNodes[0].style.boxShadow = `0px 0px 2000px 2000px ${backgroundColor}`;\r\n }\r\n listNodes = document.getElementsByClassName(\"cr-vp-circle\");\r\n if (listNodes[0]) {\r\n listNodes[0].style.boxShadow = `0px 0px 2000px 2000px ${backgroundColor}`;\r\n }\r\n }\r\n };\r\n componentDidUpdate(prevProps) {\r\n const { hideOverlay, size, source, isCropping } = this.props;\r\n\r\n if (hideOverlay !== undefined && prevProps.hideOverlay !== hideOverlay && hideOverlay == false) {\r\n this.init(true);\r\n }\r\n /* if ((prevProps.size !== size && size !== undefined && size !== null && !this.size) || prevProps.source !== source) {\r\n this.init();\r\n } */\r\n if (source !== undefined && prevProps.source !== source) {\r\n this.init();\r\n }\r\n if (isCropping !== isCropping) {\r\n this.init();\r\n }\r\n }\r\n\r\n handleZoomOut = (scale, controlled = false) => {\r\n if (this.cropper !== undefined) {\r\n const cZoom = this.cropper.get().zoom;\r\n if (!controlled && scale === 0) {\r\n this.setState({ zoom: scale }, () => {\r\n this.cropper.setZoom(scale);\r\n });\r\n return;\r\n }\r\n if (controlled === true && scale !== undefined) {\r\n this.setState({ zoom: scale }, () => {\r\n this.cropper.setZoom(scale);\r\n });\r\n return;\r\n }\r\n if (cZoom !== this.state.zoom) {\r\n if (cZoom === 50) {\r\n this.cropper.setZoom(0);\r\n this.setState({ zoom: 0 });\r\n return;\r\n }\r\n this.setState({ zoom: cZoom });\r\n }\r\n }\r\n };\r\n handlResult = () => {\r\n const { size } = this.props;\r\n this.setState({ isLoading: true });\r\n this.cropper.result({ type: \"base64\", size }).then((res) => this.handleSave(res));\r\n };\r\n handleSave = (res) => {\r\n const { onCropped } = this.props;\r\n onCropped(res);\r\n };\r\n rotate = () => {\r\n this.cropper.rotate(90);\r\n };\r\n render() {\r\n const { shape, size, parentId, viewport, hideOverlay, source } = this.props;\r\n return (\r\n \r\n
\r\n {this.state.isLoading ? : null}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import { Grid } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { FormGroup, Input, Label, Row, Col } from \"reactstrap\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport ProfileImageUploader from \"../ProfileImageUploader/ProfileImageUploader\";\r\n\r\nexport const ProfileSettings = (props) => {\r\n const { bio, image, onImageSet, onBioSet } = props;\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n onBioSet(e.target.value)} />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { BoothSettings } from \"./BoothSettings\";\r\nimport { authHeader } from \"../../../../helpers/authHeader\";\r\nimport { handleResponse } from \"../../../../helpers/handleresponse\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport { Button, Divider } from \"@material-ui/core\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport { AttachmentSettings } from \"./AttachmentSettings\";\r\nimport { ProfileSettings } from \"./ProfileSettings\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { Col, Row } from \"reactstrap\";\r\n\r\nconst DEFAULT_BUTTON_STYLE = {\r\n marginRight: 10,\r\n boxShadow: \"none\",\r\n background: \"#eee\",\r\n};\r\n\r\nexport function Settings(props) {\r\n const {\r\n exhibitorId,\r\n deleteList = [],\r\n settings = [],\r\n savePersonalSettings = () => null,\r\n onDelete = () => null,\r\n onEdit = () => null,\r\n onAdd = () => null,\r\n onSave = () => null,\r\n lang = null,\r\n page,\r\n exImage = \"\",\r\n exBio = \"\",\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [temp, setTemp] = React.useState(null);\r\n const [isSavable, setSavable] = React.useState(false);\r\n const [isLoading, setLoading] = React.useState(false);\r\n const [image, setImage] = React.useState(exImage);\r\n const [bio, setBio] = React.useState(exBio);\r\n const [personalSettings, setPersonalSettings] = React.useState({});\r\n const [target, setTarget] = React.useState(null);\r\n const toggleModal = () => setOpen(!open);\r\n\r\n const setPlaceholderId = () => settings.length * -1;\r\n const setSortOrder = (type) => {\r\n if (!settings.find((s) => s.name == type)) return 1;\r\n return settings.filter((s) => s.name == type).length + 1;\r\n };\r\n\r\n const add = (type) =>\r\n onAdd({\r\n exhibitorSettingId: setPlaceholderId(),\r\n name: type,\r\n value: \"\",\r\n value2: \"\",\r\n updated: new Date(),\r\n inserted: new Date(),\r\n sortOrder: setSortOrder(type),\r\n exhibitorId,\r\n });\r\n const onImageSet = (source) => {\r\n setSavable(true);\r\n setImage(source);\r\n };\r\n const onBioSet = (text) => {\r\n setSavable(true);\r\n setBio(text);\r\n };\r\n const onUpload = (e, index, type) => {\r\n const file = e.target.files[0];\r\n let reader = new FileReader();\r\n setTarget(index);\r\n setLoading(true);\r\n\r\n reader.onload = (e) => {\r\n if (e.target.result) {\r\n const fileInfo = {\r\n name: file.name,\r\n size: file.size,\r\n type: file.type,\r\n file: reader.result,\r\n exhibitor: \"Exhibitor/\" + exhibitorId,\r\n };\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(fileInfo),\r\n };\r\n fetch(`./api/files/`, requestOptions)\r\n .then(handleResponse)\r\n .then((file) => {\r\n let path = type == \"LogoImage\" ? \"value\" : \"value2\";\r\n onEdit(index, path, file.url);\r\n setTarget(null);\r\n setLoading(false);\r\n })\r\n .catch((err) => {\r\n console.error(err.message);\r\n });\r\n }\r\n };\r\n if (file /* && type == \"LogoImage\" && file.type.match(\"image.*\") */) {\r\n reader.readAsDataURL(file);\r\n }\r\n setSavable(true);\r\n };\r\n\r\n const api = {\r\n ...props,\r\n open,\r\n temp,\r\n isSavable,\r\n isLoading,\r\n image,\r\n bio,\r\n personalSettings,\r\n target,\r\n toggleModal,\r\n onImageSet,\r\n onUpload,\r\n setSavable,\r\n onBioSet,\r\n add,\r\n setSortOrder,\r\n setPlaceholderId,\r\n };\r\n\r\n const view = () => {\r\n switch (page) {\r\n case \"SETTINGS.BOOTH\":\r\n return ;\r\n case \"SETTINGS.PROFILE\":\r\n return ;\r\n case \"SETTINGS.ATTACHMENTS\":\r\n return ;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const viewTitle = () => {\r\n switch (page) {\r\n case \"SETTINGS.BOOTH\":\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n case \"SETTINGS.PROFILE\":\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n case \"SETTINGS.ATTACHMENTS\":\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n {viewTitle()}\r\n \r\n {page == \"SETTINGS.ATTACHMENTS\" ? (\r\n <>\r\n {\r\n add(\"File\");\r\n setSavable(true);\r\n }}\r\n startIcon={}\r\n color={\"default\"}\r\n style={DEFAULT_BUTTON_STYLE}\r\n >\r\n \r\n \r\n {\r\n add(\"Link\");\r\n setSavable(true);\r\n }}\r\n startIcon={}\r\n color={\"default\"}\r\n style={DEFAULT_BUTTON_STYLE}\r\n >\r\n \r\n \r\n \r\n ) : null}\r\n {\r\n setSavable(false);\r\n savePersonalSettings(bio, image);\r\n props.onSave();\r\n }}\r\n startIcon={}\r\n color={\"primary\"}\r\n variant=\"contained\"\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {view()}\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Dashboard from \"./Overview/Dashboard\";\r\nimport { MenuDrawer } from \"./Menu/MenuDrawer\";\r\nimport { ChatView } from \"./Chat/ChatView\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport IncommingCallDialog from \"../../shared/IncommingCallDialog\";\r\nimport { VideoFrame } from \"../components/Video/VideoFrame\";\r\nimport NotificationSnackbar from \"./Chat/NotificationSnackbar\";\r\nimport { Settings } from \"./Settings/Settings\";\r\nimport { ConnectionStatus } from \"../../../digitalArena/components/fallbacks/ConnectionStatus\";\r\n\r\nexport const Layout = (props) => {\r\n const { isCalling, callId, connected, children, orderList, videoRequestResponse } = props;\r\n return (\r\n
\r\n \r\n {isCalling && connected ? (\r\n eh.badgeNo == isCalling),\r\n deny: () => {\r\n videoRequestResponse(false, isCalling, callId);\r\n },\r\n accept: () => videoRequestResponse(true, isCalling, callId),\r\n },\r\n ])}\r\n />\r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\nconst View =(props) => {\r\n const { page } = props;\r\n switch (page) {\r\n case \"DASHBOARD\":\r\n return ;\r\n case \"CHAT\":\r\n return ;\r\n case \"SETTINGS.BOOTH\":\r\n case \"SETTINGS.PROFILE\":\r\n case \"SETTINGS.ATTACHMENTS\":\r\n return ;\r\n default:\r\n return null;\r\n }\r\n}","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { SoundNotification } from \"./components/SoundNotification\";\r\nimport { Layout } from \"./components/Layout\";\r\nimport NotAuthorized from \"../../components/NotAuthorized\";\r\nimport { getKey } from \"../../helpers/UrlHelper\";\r\nimport { clientTypeConstants } from \"../../interaction/constants/clientType.constants\";\r\nimport { init } from \"../../components/EventLabel2/EventLabel2\";\r\n/* import { videoCallConstants } from \"../../constants/videoCall.constants\"; */\r\nimport { getUserInformation, isUsingChrome } from \"../../helpers/browser.helper\";\r\nimport { meetingService } from \"../../services/meeting/meeting.service\";\r\nimport { videoCallConstants } from \"../constants/videoCall.constants\";\r\nimport { deepClone } from \"../../helpers/objectHelper\";\r\nimport { ClientConnectionFallback } from \"../../digitalArena/utils/ClientConnectionFallback\";\r\nimport { ConnectionStatus } from \"../../digitalArena/components/fallbacks/ConnectionStatus\";\r\nimport { arrayHelper } from \"../../helpers/arrayHelper\";\r\n\r\nconst defaultState = {\r\n page: \"DASHBOARD\",\r\n clientKey: null,\r\n subPath: null,\r\n active: true,\r\n eventCode: null,\r\n exhibitorId: null,\r\n connecting: true,\r\n orderList: [],\r\n connectionList: [],\r\n notAuthorized: false,\r\n forceDisc: false,\r\n clientName: \"\",\r\n exhibitorSettings: [],\r\n chat: [],\r\n exhibitorName: \"\",\r\n logList: [],\r\n targetPerson: null,\r\n lang: \"swe\",\r\n scroll: false,\r\n visited: [],\r\n deleteList: [],\r\n nonAvailablePersons: [],\r\n videoCallTarget: null,\r\n videoCallActive: false,\r\n videoCallResponse: null,\r\n callId: null,\r\n enableVideoMeeting: false,\r\n isCalling: null,\r\n selectedChat: null,\r\n VideoCallTimeout: 15,\r\n incommingCallSoundOn: false,\r\n ringingSoundOn: false,\r\n enableChat: true,\r\n targetShortCut: null,\r\n chatConnections: [],\r\n meetingCode: null,\r\n messageSoundOn: false,\r\n exhibitorsHosts: [],\r\n profileBio: \"\",\r\n graphData: [],\r\n peopleFilter: \"ATTENDEES\",\r\n ip: \"\",\r\n profileImage: \"\",\r\n chrome: false,\r\n};\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nvar counter = null;\r\n\r\nexport const Backoffice = (props) => {\r\n const [state, setState] = useState({ ...defaultState });\r\n const [countdown, setCountdown] = useState(0);\r\n\r\n const stateRef = useRef();\r\n\r\n const callTimeoutRef = useRef({});\r\n const hubConnectionRef = useRef();\r\n\r\n const graphDataTimerRef = useRef();\r\n const connectionTimerRef = useRef();\r\n const chatConnectionRef = useRef();\r\n const visitorStatsTimerRef = useRef();\r\n\r\n const orderListTimerRef = useRef();\r\n\r\n const prevState = usePrevious(state);\r\n\r\n stateRef.current = state;\r\n\r\n useEffect(() => {\r\n const { ip, exhibitorId } = stateRef.current;\r\n if (ip && exhibitorId) {\r\n connectToHub();\r\n }\r\n }, [state.exhibitorId, state.ip]);\r\n\r\n useEffect(() => {\r\n const { location, match } = props;\r\n\r\n const chrome = isUsingChrome();\r\n\r\n meetingService.getUserIp().then((ip) => {\r\n setState({ ...stateRef.current, ip });\r\n });\r\n\r\n let exhibitorId = parseInt(match.params.id, 36);\r\n\r\n const params = new URLSearchParams(location.search);\r\n const clientKey = params.get(getKey(\"clientkey\", params));\r\n const lang = params.get(getKey(\"lang\", params));\r\n\r\n document.body.style.overflow = \"hidden\";\r\n\r\n setState({\r\n ...stateRef.current,\r\n clientKey,\r\n lang,\r\n exhibitorId,\r\n chrome,\r\n });\r\n return () => {\r\n if (counter) {\r\n clearInterval(counter);\r\n }\r\n hubConnectionRef.current.off(\"onSendChatMessage\", onSendChatMessage);\r\n hubConnectionRef.current.off(\"onChatMessageReceived\", onReceiveMessage);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const { connected, connecting, dismissConnectionLoss, forceDisc } = stateRef.current;\r\n if (connected == false && !forceDisc && prevState.connected == true && connecting == false) {\r\n tryReconnect();\r\n counter = setInterval(() => {\r\n setCountdown((prevCount) => prevCount + 1);\r\n }, 1000);\r\n } else if (countdown >= 60 && !connected && !forceDisc && prevState.connected == false) {\r\n setCountdown(0);\r\n setState({ ...stateRef.current, connecting: false });\r\n tryReconnect();\r\n } else if (connected == true && prevState.connected == false && !connecting && hubConnectionRef.current && hubConnectionRef.current.connectionState == 1) {\r\n if (counter) clearInterval(counter);\r\n setCountdown(0);\r\n }\r\n }, [state.connected, state.connecting, state.forceDisc, countdown]);\r\n\r\n useEffect(() => {\r\n if (hubConnectionRef.current) {\r\n hubConnectionRef.current.on(\"onGetActiveConnections\", onGetActiveConnections);\r\n hubConnectionRef.current.on(\"onGetVisitorStats\", onGetVisitorStats);\r\n hubConnectionRef.current.on(\"onGetActiveChatConnections\", onGetActiveChatConnections);\r\n hubConnectionRef.current.on(\"onGetExhibitorVisitorStats\", onGetExhibitorVisitorStats);\r\n hubConnectionRef.current.on(\"onGetOrderList\", onGetOrderList);\r\n hubConnectionRef.current.on(\"onHostChatInteraction\", onHostChatInteraction);\r\n }\r\n\r\n return () => {\r\n if (hubConnectionRef.current) {\r\n hubConnectionRef.current.off(\"onGetActiveConnections\", onGetActiveConnections);\r\n hubConnectionRef.current.off(\"onGetVisitorStats\", onGetVisitorStats);\r\n hubConnectionRef.current.off(\"onGetActiveChatConnections\", onGetActiveChatConnections);\r\n hubConnectionRef.current.off(\"onGetExhibitorVisitorStats\", onGetExhibitorVisitorStats);\r\n hubConnectionRef.current.off(\"onGetOrderList\", onGetOrderList);\r\n hubConnectionRef.current.off(\"onHostChatInteraction\", onHostChatInteraction);\r\n }\r\n };\r\n });\r\n\r\n function tryReconnect() {\r\n const { connecting, connected } = stateRef.current;\r\n if (!connecting && !connected) {\r\n setState({ ...stateRef.current, loading: true, connecting: true });\r\n connectToHub();\r\n }\r\n }\r\n\r\n\r\n\r\n function connectToHub() {\r\n const { clientKey, exhibitorId, ip } = stateRef.current;\r\n setState({ ...stateRef.current, forceDisc: false });\r\n\r\n if (!hubConnectionRef.current) hubConnectionRef.current = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n\r\n hubConnectionRef.current\r\n .start()\r\n .then(() => {\r\n hubConnectionRef.current.on(\"onExpoHandshake\", onHandshake);\r\n\r\n hubConnectionRef.current.on(\"onGetChatMessage\", (chat) => {\r\n console.table(chat);\r\n setState({ ...stateRef.current, chat });\r\n });\r\n\r\n hubConnectionRef.current.on(\"onChatMessageReceived\", onReceiveMessage);\r\n hubConnectionRef.current.on(\"onSendChatMessage\", onSendChatMessage);\r\n hubConnectionRef.current.on(\"onLikeMessage\", onLike);\r\n hubConnectionRef.current.on(\"onInitChat\", getChat);\r\n\r\n\r\n\r\n hubConnectionRef.current.on(\"onVideoRequest\", onVideoRequest);\r\n hubConnectionRef.current.on(\"onReleased\", onReleased);\r\n hubConnectionRef.current.on(\"onOccupied\", onOccupied);\r\n hubConnectionRef.current.on(\"onVideoClosed\", onVideoClosed);\r\n hubConnectionRef.current.on(\"onVideoResponse\", onVideoResponse);\r\n hubConnectionRef.current.on(\"onGetNoneAvailableCallers\", (nonAvailablePersons) => {\r\n setState({ ...stateRef.current, nonAvailablePersons });\r\n });\r\n /* hubConnectionRef.current.on(\"onGetVisitorStats\", onGetVisitorStats); */\r\n\r\n hubConnectionRef.current.on(\"onGetExhibitorSettings\", onGetExhibitorSettings);\r\n /* hubConnectionRef.current.on(\"onGetActiveConnections\", onGetActiveConnections); */\r\n\r\n hubConnectionRef.current.on(\"onSettingsSaved\", onSettingsSaved);\r\n hubConnectionRef.current.on(\"onMessageSeen\", onMessageSeen);\r\n hubConnectionRef.current.on(\"onHostUpdate\", onHostUpdate);\r\n hubConnectionRef.current.on(\"onGetActivityLog\", onGetActivityLog);\r\n hubConnectionRef.current.on(\"onForceDisconnect\", onForceDisconnect);\r\n\r\n hubConnectionRef.current.on(\"onGetExhibitorHosts\", (exhibitorsHosts) => {\r\n setState({ ...stateRef.current, exhibitorsHosts });\r\n });\r\n\r\n hubConnectionRef.current.onclose(() => {\r\n setState({ ...stateRef.current, connected: false });\r\n });\r\n\r\n let userInfo = { ...getUserInformation(), ipAddress: ip };\r\n const handshakeObj = {\r\n exhibitorId,\r\n eventId: 0,\r\n clientType: clientTypeConstants.INTERACTION_EXHIBITOR_HOST,\r\n clientKey,\r\n userGuid: null,\r\n userInfo,\r\n };\r\n\r\n hubConnectionRef.current.invoke(\"expoHandshake\", handshakeObj).catch((err) => {\r\n console.error(err);\r\n });\r\n })\r\n .catch((error) => console.error(error));\r\n }\r\n\r\n function onHandshake(response) {\r\n const { success, companyName, clientName, clientKey, exhibitorName, eventId, eventCode, profileImage, profileBio, lang } = response;\r\n\r\n const { exhibitorId } = stateRef.current;\r\n\r\n if (response.success) {\r\n setState({\r\n ...stateRef.current,\r\n ...response,\r\n connected: true,\r\n connecting: false,\r\n lang: stateRef.current.lang || lang,\r\n });\r\n\r\n init(eventId, \"Exhibitor.Admin\", stateRef.current.lang || lang);\r\n\r\n hubConnectionRef.current\r\n .invoke(\"getActiveConnections\", eventId, exhibitorId, [clientTypeConstants.INTERACTION_EXHIBITOR_HOST, clientTypeConstants.INTERACTION_EXHIBITOR_VISITOR])\r\n .catch((err) => console.error(err));\r\n\r\n hubConnectionRef.current.invoke(\"getOrderList\", eventId).catch((err) => console.error(err));\r\n\r\n getChat();\r\n\r\n hubConnectionRef.current.invoke(\"getExhibitorSettings\", exhibitorId).catch((err) => console.error(err));\r\n\r\n hubConnectionRef.current.invoke(\"getActiveChatConnections\", eventId).catch((err) => console.error(err));\r\n\r\n hubConnectionRef.current.invoke(\"getVisitorStats\", eventId, exhibitorId).catch((err) => console.error(err));\r\n\r\n hubConnectionRef.current.invoke(\"getActivityLog\", exhibitorId, clientKey).catch((err) => console.error(err));\r\n\r\n hubConnectionRef.current.invoke(\"getExibitorVisitorStats\", exhibitorId);\r\n\r\n hubConnectionRef.current.invoke(\"getNoneAvailableCallers\", exhibitorId).catch((err) => { });\r\n if (!connectionTimerRef.current) {\r\n connectionTimerRef.current = setInterval(() => {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n hubConnectionRef.current\r\n .invoke(\"getActiveConnections\", eventId, exhibitorId, [clientTypeConstants.INTERACTION_EXHIBITOR_HOST, clientTypeConstants.INTERACTION_EXHIBITOR_VISITOR])\r\n .catch((err) => console.error(err));\r\n }, 5000);\r\n }\r\n if (!graphDataTimerRef.current) {\r\n graphDataTimerRef.current = setInterval(() => {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n hubConnectionRef.current.invoke(\"getVisitorStats\", eventId, exhibitorId).catch((err) => console.error(err));\r\n }, 5000);\r\n }\r\n if (!visitorStatsTimerRef.current) {\r\n visitorStatsTimerRef.current = setInterval(() => {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n hubConnectionRef.current.invoke(\"getExibitorVisitorStats\", exhibitorId).catch((err) => console.error(err));\r\n }, 15000);\r\n }\r\n if (!orderListTimerRef.current) {\r\n orderListTimerRef.current = setInterval(() => {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n hubConnectionRef.current.invoke(\"getOrderList\", eventId).catch((err) => console.error(err));\r\n }, 60000);\r\n }\r\n if (!chatConnectionRef.current) {\r\n chatConnectionRef.current = setInterval(() => {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n hubConnectionRef.current.invoke(\"getActiveChatConnections\", eventId).catch((err) => console.error(err));\r\n }, 30000);\r\n }\r\n } else {\r\n console.error(response.message);\r\n }\r\n }\r\n\r\n function onGetActivityLog(logList) {\r\n if (!Array.isArray(logList)) {\r\n let logListCopy = Array.from(stateRef.current.logList);\r\n logListCopy = [logList].concat(logList);\r\n setState({ ...stateRef.current, logListCopy });\r\n } else setState({ ...stateRef.current, logList });\r\n }\r\n\r\n function navigate(page, selectedChat = null) {\r\n setState({\r\n ...stateRef.current,\r\n page,\r\n /* targetConversation, */\r\n selectedChat: selectedChat || stateRef.current.selectedChat,\r\n });\r\n }\r\n\r\n function onGetExhibitorSettings(exhibitorSettings) {\r\n const enableChat = getSetting(\"EnableChat\")?.value2 == \"True\" ? true : false;\r\n\r\n const enableVideoMeeting = getSetting(\"EnableVideoMeeting\")?.value2 == \"True\" ? true : false;\r\n const videoCallTimeout = getSetting(\"VideoCallTimeout\")?.value2 ?? 15;\r\n\r\n setState({\r\n ...stateRef.current,\r\n exhibitorSettings,\r\n enableChat,\r\n enableVideoMeeting,\r\n videoCallTimeout,\r\n });\r\n }\r\n\r\n function videoRequestOnTimeout(target, callId) {\r\n const { videoCallActive, clientKey, exhibitorId, isCalling } = stateRef.current;\r\n\r\n if (videoCallActive == false && target != clientKey && isCalling) {\r\n videoRequestResponse(false, target, callId);\r\n }\r\n }\r\n\r\n function onVideoRequest({ target, meetingCode, callId }) {\r\n const { videoCallActive, clientKey, exhibitorId, isCalling, videoCallTimeout } = stateRef.current;\r\n if (!isCalling && target != clientKey) {\r\n setState({\r\n ...stateRef.current,\r\n isCalling: target,\r\n callId: callId,\r\n incommingCallSoundOn: true,\r\n });\r\n\r\n callTimeoutRef.current[target] = setTimeout(() => videoRequestOnTimeout(target, callId), (parseInt(videoCallTimeout) || 15) * 1000);\r\n } else {\r\n setState({ ...stateRef.current, callId });\r\n }\r\n setState({ ...stateRef.current, meetingCode });\r\n }\r\n\r\n function onVideoClosed() {\r\n const { videoCallActive } = stateRef.current;\r\n if (videoCallActive) {\r\n setState({\r\n ...stateRef.current,\r\n videoCallActive: false,\r\n videoCallResponse: videoCallConstants.TARGET_HANGUP,\r\n callId: null,\r\n });\r\n setTimeout(() => setState({ ...stateRef.current, videoCallTarget: null }), 2000);\r\n }\r\n }\r\n\r\n function closeVideoCall(target) {\r\n const { callId, exhibitorId, clientKey } = stateRef.current;\r\n setState({\r\n ...stateRef.current,\r\n videoCallActive: false,\r\n videoCallResponse: videoCallConstants.SELF_HANGUP,\r\n ringingSoundOn: false,\r\n });\r\n\r\n setTimeout(() => setState({ ...stateRef.current, videoCallTarget: null }), 2000);\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n hubConnectionRef.current.invoke(\"videoCallClosed\", clientKey, target, exhibitorId, callId).catch((err) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n function onVideoResponse({ target, response, meetingCode, callId }) {\r\n const { isCalling, videoCallActive, videoCallTarget, clientKey } = stateRef.current;\r\n\r\n if (response && response != \"SELF_HANGUP\") {\r\n window.addEventListener(\"onclose\", () => {\r\n if (stateRef.current.videoCallActive) {\r\n closeVideoCall(stateRef.current.videoCallTarget);\r\n }\r\n if (isCalling) {\r\n videoRequestResponse(false, isCalling, callId);\r\n }\r\n });\r\n window.addEventListener(\"beforeunload\", () => {\r\n if (videoCallActive) {\r\n closeVideoCall(videoCallTarget);\r\n }\r\n if (isCalling) {\r\n videoRequestResponse(false, isCalling, callId);\r\n }\r\n });\r\n\r\n setState({\r\n ...stateRef.current,\r\n videoCallActive: true,\r\n videoCallTarget: target,\r\n callId,\r\n ringingSoundOn: false,\r\n incommingCallSoundOn: false,\r\n });\r\n } else {\r\n let res = videoCallConstants.CALL_DENIED;\r\n\r\n if (response == \"SELF_HANGUP\") {\r\n res = videoCallConstants.SELF_HANGUP;\r\n }\r\n\r\n if (isCalling != target) {\r\n setState({\r\n ...stateRef.current,\r\n videoCallResponse: res,\r\n ringingSoundOn: false,\r\n });\r\n setTimeout(() => setState({ ...stateRef.current, videoCallTarget: null }), 2000);\r\n } else {\r\n setState({\r\n ...stateRef.current,\r\n videoCallResponse: null,\r\n videoCallTarget: null,\r\n isCalling: false,\r\n ringingSoundOn: false,\r\n incommingCallSoundOn: false,\r\n });\r\n }\r\n }\r\n }\r\n\r\n function videoRequestResponse(answer = true, target, callId, directed = false) {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n\r\n const { exhibitorId, clientKey, page } = stateRef.current;\r\n clearTimeout(callTimeoutRef.current[target]);\r\n\r\n const newState = deepClone(stateRef.current);\r\n\r\n newState.isCalling = null;\r\n newState.incommingCallSoundOn = false;\r\n newState.ringingSoundOn = false;\r\n\r\n if (answer == true) {\r\n newState.videoCallActive = true;\r\n newState.videoCallTarget = target;\r\n newState.callId = callId;\r\n newState.page = \"CHAT\";\r\n newState.selectedChat = null;\r\n }\r\n\r\n if (directed) {\r\n hubConnectionRef.current.invoke(\"selfHangup\", target, clientKey, parseInt(exhibitorId), callId);\r\n } else {\r\n hubConnectionRef.current.invoke(\"videoRequestResponse\", target, clientKey, parseInt(exhibitorId), answer, callId);\r\n }\r\n\r\n setState(newState);\r\n }\r\n\r\n function onReleased(res) {\r\n let nonAvailablePersons = Array.from(stateRef.current.nonAvailablePersons);\r\n nonAvailablePersons = nonAvailablePersons.filter((h) => h != res);\r\n setState({ ...stateRef.current, nonAvailablePersons });\r\n }\r\n\r\n function onOccupied(res) {\r\n const nonAvailablePersons = Array.from(stateRef.current.nonAvailablePersons);\r\n nonAvailablePersons.push(res);\r\n setState({ ...stateRef.current, nonAvailablePersons });\r\n }\r\n\r\n function videoRequest(target) {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n const { exhibitorId, clientKey } = stateRef.current;\r\n\r\n hubConnectionRef.current.invoke(\"videoRequest\", target, clientKey, parseInt(exhibitorId)).catch((err) => {\r\n console.error(err);\r\n });\r\n\r\n setState({\r\n ...stateRef.current,\r\n page: \"CHAT\",\r\n videoCallTarget: target,\r\n videoCallResponse: null,\r\n ringingSoundOn: true,\r\n });\r\n }\r\n const selectChat = (target) => {\r\n const chat = stateRef.current.chat.find((c) => c.target == target);\r\n if (chat) {\r\n setMessageSeen(chat);\r\n }\r\n setState({ ...stateRef.current, selectedChat: target, page: \"CHAT\" });\r\n };\r\n\r\n function onMessageSeen(target) {\r\n const chat = Array.from(stateRef.current.chat);\r\n chat.map((c) => {\r\n if (c.target == target) {\r\n c.messages.map((m) => {\r\n c.seen = true;\r\n m.seen = true;\r\n });\r\n }\r\n });\r\n setState({ ...stateRef.current, chat });\r\n }\r\n function getSetting(name) {\r\n const { exhibitorSettings } = stateRef.current;\r\n const setting = exhibitorSettings?.find((s) => s.name == name);\r\n return setting;\r\n }\r\n\r\n function setMessageSeen(chat) {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n const { clientKey, eventId } = stateRef.current;\r\n const notReadMessage = chat.messages.find((c) => c.seen == false && c.receiver == clientKey);\r\n if (notReadMessage) {\r\n hubConnectionRef.current.invoke(\"setMessageSeen\", eventId, notReadMessage.receiver, notReadMessage.sender, null).catch((err) => { });\r\n }\r\n }\r\n\r\n function onHostChatInteraction(res) {\r\n const { message, senderLastName, senderFirstName, inserted, sender } = res;\r\n const chat = Array.from(stateRef.current.chat);\r\n const requestedChat = chat.find((c) => c.target == \"EXPO\");\r\n\r\n if (requestedChat) {\r\n let index = chat.indexOf(requestedChat);\r\n\r\n if (index > -1) {\r\n if (chat[index].messages.find((c) => c.interactionChatId == res.interactionChatId)) return;\r\n chat[index].messages.push(res);\r\n chat[index].previewText = message;\r\n chat[index].previewPreFix = res.senderFirstName + \" \" + senderLastName;\r\n chat[index].lastChange = inserted;\r\n }\r\n }\r\n\r\n setState({ ...stateRef.current, chat });\r\n }\r\n\r\n function onReceiveMessage(res) {\r\n const { chatSelected } = stateRef.current;\r\n const { message, senderLastName, senderFirstName, inserted, sender } = res;\r\n const chat = Array.from(stateRef.current.chat);\r\n const requestedChat = chat.find((c) => c.target == sender);\r\n\r\n if (requestedChat) {\r\n let index = chat.indexOf(requestedChat);\r\n\r\n if (index > -1) {\r\n if (chat[index].messages.find((c) => c.interactionChatId == res.interactionChatId)) return;\r\n chat[index].messages.push(res);\r\n chat[index].previewText = message;\r\n chat[index].previewPreFix = res.senderFirstName + \" \" + senderLastName;\r\n chat[index].lastChange = inserted;\r\n }\r\n } else {\r\n chat.push({\r\n lastChange: inserted,\r\n messages: [res],\r\n previewText: message,\r\n previewPreFix: senderFirstName + \" \" + senderLastName,\r\n target: sender,\r\n seen: false,\r\n });\r\n }\r\n if ((chatSelected && chatSelected.badgeNo != res.sender) || !chatSelected) {\r\n setState({ ...stateRef.current, messageSoundOn: true });\r\n setTimeout(() => setState({ ...stateRef.current, messageSoundOn: false }), 2000);\r\n }\r\n setState({ ...stateRef.current, chat, scroll: true });\r\n }\r\n\r\n function onSendChatMessage(res) {\r\n const { chatSelected, clientKey, chat } = stateRef.current;\r\n const { message, senderLastName, senderFirstName, inserted, sender, receiver } = res;\r\n const requestedChat = chat.find((c) => c.target == receiver);\r\n\r\n if (requestedChat) {\r\n let index = chat.indexOf(requestedChat);\r\n\r\n if (index > -1) {\r\n if (chat[index].messages.find((c) => c.interactionChatId == res.interactionChatId)) return;\r\n chat[index].messages.push(res);\r\n }\r\n\r\n chat[index].previewText = message;\r\n chat[index].previewPreFix = res.sender == clientKey ? \"You\" : senderFirstName + \" \" + senderLastName;\r\n chat[index].lastChange = inserted;\r\n } else {\r\n chat.push({\r\n lastChange: inserted,\r\n messages: [res],\r\n previewText: message,\r\n previewPreFix: \"\",\r\n target: receiver,\r\n seen: false,\r\n });\r\n }\r\n setState({ ...stateRef.current, chat, scroll: true });\r\n }\r\n\r\n function getChat() {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n const { clientKey, exhibitorId, eventId } = stateRef.current;\r\n hubConnectionRef.current.invoke(\"getChatMessages\", eventId, clientKey, `Expo:${exhibitorId}`, false);\r\n }\r\n function onLike(messageId) {\r\n const { chat } = stateRef.current;\r\n\r\n chat.map((c) => {\r\n c.messages.map((m) => {\r\n if (m.interactionChatId == messageId) {\r\n if (m.likes == null) m.likes = 0;\r\n m.likes += 1;\r\n }\r\n });\r\n });\r\n\r\n setState({ ...stateRef.current, chat });\r\n }\r\n\r\n function like(messageId) {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n const { exhibitorId, selectedChat } = stateRef.current;\r\n hubConnectionRef.current.invoke(\"like\", messageId, selectedChat, exhibitorId);\r\n }\r\n\r\n function savePersonalSettings(bio, image) {\r\n const { exhibitorId, clientKey } = stateRef.current;\r\n\r\n //Rewrite this!!!!!\r\n\r\n if (image) {\r\n hubConnectionRef.current.invoke(\"savePersonalSettings\", exhibitorId, clientKey, \"ProfileImage\", image);\r\n }\r\n\r\n if (bio) {\r\n hubConnectionRef.current.invoke(\"savePersonalSettings\", exhibitorId, clientKey, \"ProfileBio\", bio);\r\n }\r\n }\r\n\r\n function onHostUpdate({ badgeNo, name, value }) {\r\n const { clientKey } = stateRef.current;\r\n if (badgeNo == clientKey) {\r\n if (name == \"ProfileImage\") setState({ ...stateRef.current, profileImage: value });\r\n else if (name == \"ProfileBio\") setState({ ...stateRef.current, profileBio: value });\r\n }\r\n }\r\n\r\n function onForceDisconnect(res) {\r\n if (res === \"NOT_AUTHORIZED\") {\r\n setState({ ...stateRef.current, notAuthorized: true, connected: false });\r\n hubConnectionRef.current.stop();\r\n } else {\r\n hubConnectionRef.current.stop();\r\n setState({ ...stateRef.current, forceDisc: true, connected: false });\r\n }\r\n }\r\n\r\n function onGetVisitorStats(list) {\r\n if (arrayHelper.compareChanges(stateRef.current.graphData, list, \"count\")) {\r\n setState({ ...stateRef.current, graphData: list });\r\n }\r\n }\r\n\r\n function onGetActiveConnections(list) {\r\n const { clientKey } = stateRef.current;\r\n if (\r\n arrayHelper.compareChanges(\r\n stateRef.current.connectionList.filter((c) => c.clientKey != clientKey),\r\n list.filter((c) => c.clientKey != clientKey),\r\n \"clientKey\"\r\n )\r\n ) {\r\n const cl = Array.from(list);\r\n setState({\r\n ...stateRef.current,\r\n connectionList: cl.filter((c) => c.clientKey != clientKey),\r\n });\r\n }\r\n }\r\n function onGetActiveChatConnections(list) {\r\n const { clientKey } = stateRef.current;\r\n if (\r\n arrayHelper.compareChanges(\r\n stateRef.current.chatConnections.filter((c) => c.clientKey != clientKey),\r\n list.filter((c) => c.clientKey != clientKey),\r\n \"clientKey\"\r\n )\r\n ) {\r\n const cl = Array.from(list);\r\n setState({\r\n ...stateRef.current,\r\n chatConnections: cl.filter((c) => c.clientKey != clientKey),\r\n });\r\n }\r\n }\r\n\r\n function onGetExhibitorVisitorStats(list) {\r\n const { clientKey } = stateRef.current;\r\n\r\n if (\r\n arrayHelper.compareChanges(\r\n stateRef.current.visited.filter((c) => c.badgeNo != clientKey),\r\n list.filter((c) => c.badgeNo != clientKey),\r\n \"lastVisit\"\r\n )\r\n ) {\r\n const cl = Array.from(list);\r\n\r\n setState({\r\n ...stateRef.current,\r\n visited: cl.filter((c) => c.badgeNo != clientKey),\r\n });\r\n }\r\n }\r\n\r\n function onGetOrderList(list) {\r\n const { clientKey } = stateRef.current;\r\n\r\n if (\r\n arrayHelper.compareChanges(\r\n stateRef.current.orderList.filter((c) => c.badgeNo != clientKey),\r\n list.filter((c) => c.badgeNo != clientKey),\r\n \"badgeNo\"\r\n )\r\n ) {\r\n const cl = Array.from(list);\r\n setState({\r\n ...stateRef.current,\r\n orderList: cl.filter((c) => c.badgeNo != clientKey),\r\n });\r\n }\r\n }\r\n\r\n function deleteSettings(id) {\r\n const exhibitorSettings = Array.from(stateRef.current.exhibitorSettings);\r\n const setting = exhibitorSettings.find((e) => e.exhibitorSettingId == id);\r\n if (!setting) return;\r\n const index = exhibitorSettings.indexOf(setting);\r\n if (index == -1 || !exhibitorSettings[index]) return;\r\n let deleteList = Array.from(stateRef.current.deleteList);\r\n if (deleteList.find((d) => d.exhibitorSettingId == id)) {\r\n deleteList = deleteList.filter((d) => {\r\n return d.exhibitorSettingId != id;\r\n });\r\n } else {\r\n deleteList.push(setting);\r\n }\r\n setState({ ...stateRef.current, deleteList });\r\n }\r\n function editSettings(id, path, value) {\r\n const exhibitorSettings = Array.from(stateRef.current.exhibitorSettings);\r\n const setting = exhibitorSettings.find((e) => e.exhibitorSettingId == id);\r\n if (!setting) return;\r\n const index = exhibitorSettings.indexOf(setting);\r\n if (index == -1) return;\r\n exhibitorSettings[index][path] = value;\r\n setState({ ...stateRef.current, exhibitorSettings });\r\n }\r\n\r\n function onSettingsSaved(exhibitorSettings) {\r\n setState({ ...stateRef.current, exhibitorSettings });\r\n }\r\n\r\n const saveSettings = () => {\r\n if (!stateRef.current.connected || !hubConnectionRef.current || hubConnectionRef.current.connectionState != 1) return;\r\n const { exhibitorSettings, deleteList = null, exhibitorId, eventId } = stateRef.current;\r\n\r\n const addList = exhibitorSettings.filter((e) => e.exhibitorSettingId < 0) || [];\r\n const settings = exhibitorSettings.filter((e) => e.exhibitorSettingId > 0 && !deleteList.find((d) => d.exhibitorSettingId == e.exhibitorSettingId)) || [];\r\n\r\n try {\r\n hubConnectionRef.current.invoke(\"editExpoSettings\", exhibitorId, settings, addList, deleteList);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n function goToBooth() {\r\n const { clientKey, exhibitorId, lang } = stateRef.current;\r\n window.open(\r\n window.location.href.includes(\"localhost\")\r\n ? `/booth/${exhibitorId.toString(36)}?clientkey=${clientKey}&lang=${lang}`\r\n : `/interaction/booth/${exhibitorId.toString(36)}?clientkey=${clientKey}&lang=${lang}`,\r\n \"_blank\"\r\n );\r\n }\r\n function goToMainRoom() {\r\n const { clientKey, exhibitorId, lang, eventCode } = stateRef.current;\r\n window.open(window.location.href.includes(\"localhost\") ? `/digitalmeeting/${eventCode}?clientkey=${clientKey}` : `/interaction/digitalmeeting/${eventCode}?clientkey=${clientKey}`, \"_blank\");\r\n }\r\n\r\n function addSetting(s) {\r\n const exhibitorSettings = Array.from(stateRef.current.exhibitorSettings);\r\n exhibitorSettings.push(s);\r\n setState({ ...stateRef.current, exhibitorSettings });\r\n }\r\n const {\r\n connected,\r\n notAuthorized,\r\n forceDisc,\r\n clientName,\r\n orderList,\r\n } = state;\r\n\r\n const api = {\r\n ...state,\r\n ...props,\r\n exBio: state.profileBio,\r\n exImage: state.profileImage,\r\n settings: state.exhibitorSettings,\r\n displayName: clientName,\r\n videoRequestResponse,\r\n setMessageSeen,\r\n navigate,\r\n tryReconnect,\r\n selectChat,\r\n toggleFilter: () => setState({ ...stateRef.current, peopleFilter: stateRef.current.peopleFilter == \"EXHIBITORS\" ? \"ATTENDEES\" : \"EXHIBITORS\" }),\r\n closeVideoCall,\r\n hubConnection: hubConnectionRef.current,\r\n savePersonalSettings,\r\n onEdit: editSettings,\r\n onSave: saveSettings,\r\n exBio: state.profileBio,\r\n exImage: state.profileImage,\r\n onDelete: deleteSettings,\r\n onAdd: addSetting,\r\n like,\r\n videoRequest,\r\n };\r\n\r\n //I have no idea where this prop is set. So until I found it, this line stands\r\n delete api.message;\r\n if (notAuthorized === true) return ;\r\n if (forceDisc && !connected) return ;\r\n if (orderList.length == 0) return null;\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import { FormGroup, FormControlLabel, Switch, Button, List, ListItem, ListItemText, FormLabel, Divider, MenuItem } from \"@material-ui/core\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { ScrollWrapper } from \"../../../digitalArena/helpers/module.helper\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { screenshareLayouts } from \"../../../digitalArena/modules/Vonage/components/VonageScreenshare\";\r\nimport StopIcon from \"@material-ui/icons/Stop\";\r\nimport PlayCircleFilledIcon from \"@material-ui/icons/PlayCircleFilled\";\r\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport { toTitleCase } from \"../../../helpers/stringHelper\";\r\n\r\nexport default function VonageBackstageModeratorTab(props) {\r\n const [recordingBtnDisabled, setRecordingBtnDisabled] = useState(false);\r\n const [studioStreamBtnDisabled, setStudioStreamBtnDisabled] = useState(false);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n function onRecordingBtnPress() {\r\n props.toggleRecording();\r\n setRecordingBtnDisabled(true);\r\n setTimeout(() => {\r\n setRecordingBtnDisabled(false);\r\n }, 2000);\r\n }\r\n function toggleStudioStream() {\r\n props.toggleStudioStream();\r\n setStudioStreamBtnDisabled(true);\r\n setTimeout(() => {\r\n setStudioStreamBtnDisabled(false);\r\n }, 2000);\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : }\r\n // className={\"go-on-air-btn\"}\r\n style={{\r\n background: recordingBtnDisabled ? \"#eee\" : props.isRecording ? \"#d63a3a\" : \"rgb(22 88 197)\",\r\n color: \"#fff\",\r\n fontSize: \".8rem\",\r\n padding: \"6px 14px\",\r\n justifyContent: \"center\",\r\n }}\r\n disabled={recordingBtnDisabled}\r\n onClick={onRecordingBtnPress}\r\n >\r\n {props.isRecording ? : null}\r\n {!props.isRecording ? : null}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n : }\r\n aria-controls=\"simple-menu\"\r\n aria-haspopup=\"true\"\r\n onClick={handleClick}\r\n >\r\n {props.screenshareLayout}\r\n \r\n \r\n {screenshareLayouts.map((t) => {\r\n return (\r\n {\r\n handleClose();\r\n props.changeScreenshareLayout(t);\r\n }}\r\n >\r\n {t}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n : }\r\n // className={\"go-on-air-btn\"}\r\n style={{\r\n background: studioStreamBtnDisabled ? \"#eee\" : props.isStudioStream ? \"#d63a3a\" : \"rgb(22 88 197)\",\r\n color: \"#fff\",\r\n fontSize: \".8rem\",\r\n padding: \"6px 14px\",\r\n\r\n justifyContent: \"center\",\r\n }}\r\n disabled={studioStreamBtnDisabled}\r\n onClick={toggleStudioStream}\r\n >\r\n {props.isStudioStream ? : null}\r\n {!props.isStudioStream ? : null}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import \"./VonageBackstageStyle.css\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { AppBar, Button, ButtonGroup, IconButton, Tabs, Tab, Tooltip, makeStyles } from \"@material-ui/core\";\r\nimport AllInboxIcon from \"@material-ui/icons/AllInbox\";\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport { getUserInformation } from \"../helpers/browser.helper\";\r\nimport { connect } from \"react-redux\";\r\nimport { getKey } from \"../helpers/UrlHelper\";\r\nimport { clientTypeConstants } from \"../interaction/constants/clientType.constants\";\r\nimport { meetingService } from \"../services/meeting/meeting.service\";\r\nimport { ConnectionStatus } from \"../digitalArena/components/fallbacks/ConnectionStatus\";\r\nimport { ClientConnectionFallback, Loader } from \"../digitalArena/utils/ClientConnectionFallback\";\r\nimport NotAuthorized from \"../components/NotAuthorized\";\r\nimport VonageVideoClientModule from \"../digitalArena/modules/Vonage/VonageVideoClientModule\";\r\nimport StopIcon from \"@material-ui/icons/Stop\";\r\nimport PlayCircleFilledIcon from \"@material-ui/icons/PlayCircleFilled\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport SystemLabel from \"../system/SystemLabel/SystemLabel\";\r\nimport Media from \"react-media\";\r\nimport { combineProps } from \"../helpers/objectHelper\";\r\nimport ChatModule from \"../digitalArena/modules/ChatModule/ChatModule\";\r\nimport ClientListModule from \"../digitalArena/modules/ClientListModule/ClientListModule\";\r\nimport VonageBackstageModeratorTab from \"./Vonage/components/VonageBackstageModeratorTab\";\r\n// import VonageBackstageClientModule from \"./Vonage/VonageBackstageClientModule\";\r\n\r\nconst indicatorStyle = makeStyles((theme) => ({\r\n indicator: {\r\n backgroundColor: \"rgb(22 88 197)\",\r\n },\r\n}));\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n // indicator: {\r\n // backgroundColor: \"rgb(41, 121, 255)\",\r\n // },\r\n root: {\r\n opacity: 1,\r\n },\r\n}));\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n \"aria-controls\": `simple-tabpanel-${index}`,\r\n };\r\n}\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nvar windowUpdateInterval = null;\r\nvar counter = null;\r\n\r\nconst defaultState = {\r\n loading: true,\r\n clientKey: \"\",\r\n error: null,\r\n connected: false,\r\n eventId: null,\r\n eventCode: null,\r\n connecting: true,\r\n forceDisc: false,\r\n clientName: \"\",\r\n clientInitial: \"\",\r\n notAuthorized: false,\r\n companyName: \"\",\r\n countdown: 0,\r\n parentEventCode: null,\r\n lang: \"\",\r\n personTypes: [],\r\n orderList: [],\r\n connectionList: [],\r\n userInfo: null,\r\n hubConnection: null,\r\n ip: \"\",\r\n initilized: false,\r\n};\r\n\r\nfunction VonageBackstage(props) {\r\n var [state, setState] = useState({ ...defaultState });\r\n const [countdown, setCountdown] = useState(0);\r\n const [onAir, setOnAir] = useState(false);\r\n const [view, setView] = useState(\"BACKSTAGE\");\r\n const [onAirBtnDisabled, setOnAirButtonDisabled] = useState(false);\r\n const [viewBtnDisabled, setViewButtonDisabled] = useState(false);\r\n const [isSidebarOpen, setIsSidebarOpen] = useState(false);\r\n const [activeTab, setActiveTab] = useState(0);\r\n const [isRecording, setIsRecording] = useState(false);\r\n const [screenshareLayout, setScreenshareLayout] = useState(\"singleSpeaker\");\r\n const [recordingArchiveId, setRecordingArchiveId] = useState(null);\r\n const [showHwSetup, setShowHardwareSetup] = useState(false);\r\n const [hardwareSetup, setHardwareSetup] = useState(null);\r\n const [isStudioStream, setIsStudioStream] = useState(false);\r\n const [isModerator, setIsModerator] = useState(true);\r\n const { dispatch, match, location, template, templateLoaded } = props;\r\n const prevState = usePrevious(state);\r\n const stateRef = useRef();\r\n const connectionTimerRef = useRef();\r\n const { clientName } = props;\r\n stateRef.current = state;\r\n useEffect(() => {\r\n // if (!window.location.href.includes(\"localhost\")) {\r\n meetingService.getUserIp().then((ip) => {\r\n setState({ ...state, ip });\r\n });\r\n if (localStorage.getItem(\"vbss\") && localStorage.getItem(\"vbss\") === \"true\") {\r\n setIsStudioStream(true);\r\n }\r\n // } else {\r\n // setState({ ...state, ip: \"LOCALHOST\" });\r\n // }\r\n\r\n return () => {\r\n if (windowUpdateInterval) {\r\n clearInterval(windowUpdateInterval);\r\n clearInterval(counter);\r\n }\r\n };\r\n }, []);\r\n useEffect(() => {\r\n localStorage.setItem(\"vbss\", isStudioStream);\r\n }, [isStudioStream]);\r\n useEffect(() => {\r\n if (state.ip) {\r\n eventConfiguration();\r\n }\r\n }, [state.ip]);\r\n useEffect(() => {\r\n if (state.ip && state.eventId) {\r\n connectToHub();\r\n }\r\n }, [state.eventId]);\r\n useEffect(() => {\r\n const { hubConnection } = stateRef.current;\r\n if (hubConnection) {\r\n hubConnection.on(\"onArchiveRecordingStarted\", onRecordingStarted);\r\n hubConnection.on(\"onArchiveRecordingStopped\", onRecordingStopped);\r\n hubConnection.on(\"onChangeVonageScreenshareLayout\", onChangeVonageScreenshareLayoutBackstage);\r\n hubConnection.on(\"onVonageHandshake\", onVonageHandshake);\r\n hubConnection.on(\"onGetActiveConnections\", onGetActiveConnections);\r\n hubConnection.on(\"onGetOrderList\", onGetOrderList);\r\n hubConnection.on(\"onForceDisconnect\", onForceDisconnect);\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onArchiveRecordingStarted\", onRecordingStarted);\r\n hubConnection.off(\"onArchiveRecordingStopped\", onRecordingStopped);\r\n hubConnection.off(\"onChangeVonageScreenshareLayout\", onChangeVonageScreenshareLayoutBackstage);\r\n hubConnection.off(\"onVonageHandshake\", onVonageHandshake);\r\n hubConnection.off(\"onGetActiveConnections\", onGetActiveConnections);\r\n hubConnection.off(\"onGetOrderList\", onGetOrderList);\r\n hubConnection.off(\"onForceDisconnect\", onForceDisconnect);\r\n }\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n const { connected, connecting, dismissConnectionLoss, forceDisc, hubConnection } = stateRef.current;\r\n\r\n if (connected == false && !forceDisc && prevState && prevState.connected == true && connecting == false) {\r\n tryReconnect();\r\n counter = setInterval(() => {\r\n setCountdown((prevCount) => prevCount + 1);\r\n }, 1000);\r\n } else if (countdown >= 60 && !connected && !forceDisc && prevState && prevState.connected == false) {\r\n setCountdown(0);\r\n setState({ ...stateRef.current, connecting: false });\r\n tryReconnect();\r\n } else if (connected == true && prevState && prevState.connected == false && !connecting && hubConnection && hubConnection.connectionState == 1) {\r\n if (counter) clearInterval(counter);\r\n setCountdown(0);\r\n }\r\n }, [state.connected, state.connecting, state.forceDisc, countdown, state.dismissConnectionLoss]);\r\n\r\n function insertParam(clientKey, lang, channel) {\r\n props.history.push({\r\n pathname: location.pathname,\r\n search:\r\n \"?\" +\r\n new URLSearchParams({\r\n clientKey: clientKey,\r\n lang,\r\n }).toString() +\r\n (channel ? \"&\" + new URLSearchParams({ channel }).toString() : \"\"),\r\n });\r\n }\r\n\r\n function tryReconnect() {\r\n const { connecting, connected } = stateRef.current;\r\n if (!connecting && !connected) {\r\n setState({ ...stateRef.current, loading: true, connecting: true });\r\n connectToHub();\r\n }\r\n }\r\n function toggleStudioStream() {\r\n setIsStudioStream(!isStudioStream);\r\n }\r\n function toggleRecording() {\r\n if (isRecording) {\r\n stopRecording();\r\n } else {\r\n startRecording();\r\n }\r\n }\r\n function startRecording() {\r\n const { hubConnection, eventId, channel } = stateRef.current;\r\n hubConnection.invoke(\"startArchiveRecording\", eventId, channel);\r\n setIsRecording(true);\r\n }\r\n function onRecordingStarted(eventId, channel, archiveId) {\r\n if (eventId == stateRef.current.eventId && channel == stateRef.current.channel && archiveId) {\r\n setRecordingArchiveId(archiveId);\r\n setIsRecording(true);\r\n }\r\n }\r\n function stopRecording() {\r\n const { hubConnection, eventId, channel } = stateRef.current;\r\n if (isRecording && recordingArchiveId) {\r\n hubConnection.invoke(\"stopArchiveRecording\", recordingArchiveId, eventId, channel);\r\n setIsRecording(false);\r\n }\r\n }\r\n function onRecordingStopped(archiveId) {\r\n if (recordingArchiveId == archiveId) {\r\n setRecordingArchiveId(null);\r\n setIsRecording(false);\r\n }\r\n }\r\n function eventConfiguration() {\r\n let eventId = match.params.id;\r\n const params = new URLSearchParams(location.search);\r\n const clientKey = params.get(getKey(\"clientkey\", params));\r\n const lang = params.get(getKey(\"lang\", params));\r\n const channel = params.get(getKey(\"channel\", params));\r\n const newState = { ...state };\r\n\r\n if (lang) newState.lang = lang;\r\n if (clientKey) newState.clientKey = clientKey;\r\n newState.channel = channel || null;\r\n if (isNaN(eventId)) {\r\n newState.eventCode = eventId;\r\n setState(newState);\r\n meetingService.getEventId(eventId).then((res) => {\r\n setState({ ...stateRef.current, ...res });\r\n });\r\n } else {\r\n newState.eventId = parseInt(eventId);\r\n setState(newState);\r\n }\r\n }\r\n const onForceDisconnect = (status) => {\r\n const { hubConnection } = stateRef.current;\r\n const newState = {\r\n ...stateRef.current,\r\n connected: false,\r\n connecting: false,\r\n };\r\n if (status === \"NOT_AUTHORIZED\") newState.notAuthorized = true;\r\n else newState.forceDisc = true;\r\n setState(newState);\r\n hubConnection.stop();\r\n };\r\n function onGetActiveConnections(connectionList) {\r\n setState({ ...stateRef.current, connectionList });\r\n }\r\n function onGetOrderList(orderList) {\r\n setState({ ...stateRef.current, orderList });\r\n }\r\n const connectToHub = () => {\r\n const { eventId, eventCode, clientKey, ip, channel } = stateRef.current;\r\n setState({ ...stateRef.current, forceDisc: false });\r\n let hubConnection = stateRef.current.hubConnection;\r\n if (!hubConnection) hubConnection = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n hubConnection\r\n .start()\r\n .then(() => {\r\n hubConnection.onclose(() => {\r\n setState({ ...stateRef.current, connected: false });\r\n });\r\n let userInfo = { ...getUserInformation(), ipAddress: ip };\r\n setState({ ...stateRef.current, userInfo });\r\n const handshakeObj = {\r\n eventId: parseInt(eventId),\r\n clientType: clientTypeConstants.INTERACTION_VONAGE_SPEAKER,\r\n clientKey,\r\n channel: channel ? channel + \"_BACKSTAGE\" : \"_BACKSTAGE\",\r\n userGuid: null,\r\n userInfo,\r\n };\r\n hubConnection.invoke(\"vonageHandshake\", handshakeObj);\r\n hubConnection.invoke(\"getActiveChatConnections\", eventId).catch((err) => {});\r\n hubConnection.invoke(\"getActiveConnections\", eventId, null, [clientTypeConstants.INTERACTION_VONAGE_SPEAKER, clientTypeConstants.INTERACTION_MEETING]);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n });\r\n setState({ ...stateRef.current, hubConnection });\r\n };\r\n\r\n function onVonageHandshake(response) {\r\n const { hubConnection, eventId, channel } = stateRef.current;\r\n document.title = response.eventName || \"\";\r\n const { success, askForPermissions, disableGroupChat, interactionAllowOneToOneChat, clientKey } = response;\r\n if (!success) {\r\n setState({\r\n ...stateRef.current,\r\n connected: false,\r\n init: true,\r\n loading: false,\r\n });\r\n return;\r\n }\r\n const lang = state.lang || response.lang || \"swe\";\r\n hubConnection.invoke(\"getOrderList\", eventId);\r\n //Lägg in clientkey i url om den inte finns\r\n //lang\r\n insertParam(clientKey, lang, channel);\r\n setState({\r\n ...stateRef.current,\r\n connecting: false,\r\n connected: true,\r\n init: true,\r\n orderId: response.orderId,\r\n clientKey,\r\n loading: false,\r\n lang,\r\n initilized: true,\r\n eventName: response.eventName,\r\n eventCode: response.eventCode,\r\n clientKey: response.clientKey,\r\n clientName: response.clientName,\r\n personTypes: response.personTypes,\r\n clientInitial: response.clientInitial,\r\n parentEventCode: response.parentEventCode,\r\n companyName: response.companyName,\r\n linkedIn: response.linkedIn,\r\n title: response.title,\r\n profileImage: response.profileImage,\r\n disableGroupChat: response.disableGroupChat,\r\n interactionAllowOneToOneChat: response.interactionAllowOneToOneChat,\r\n });\r\n\r\n if (!connectionTimerRef.current) {\r\n connectionTimerRef.current = setInterval(() => {\r\n if (!stateRef.current.connected || !hubConnection || hubConnection.connectionState != 1) return;\r\n hubConnection.invoke(\"getActiveConnections\", eventId, null, [clientTypeConstants.INTERACTION_VONAGE_SPEAKER, clientTypeConstants.INTERACTION_MEETING]).catch((err) => console.error(err));\r\n }, 5000);\r\n }\r\n }\r\n function connectionCount(filter) {\r\n const conns = stateRef.current.connectionList.filter((c) => c.type == filter).length;\r\n if (conns > 0) return
{conns > 999 ? `${conns}+` : conns}
;\r\n return null;\r\n }\r\n function toggleView(v, toggleOnAir) {\r\n setView(v);\r\n if (toggleOnAir) {\r\n setOnAir(!onAir);\r\n }\r\n setViewButtonDisabled(true);\r\n setOnAirButtonDisabled(true);\r\n setTimeout(() => {\r\n setViewButtonDisabled(false);\r\n setOnAirButtonDisabled(false);\r\n }, 3000);\r\n }\r\n function changeVonageScreenshareLayout(newLayout) {\r\n const { eventId, channel } = stateRef.current;\r\n stateRef.current.hubConnection.invoke(\"changeVonageScreenshareLayout\", eventId, channel, newLayout);\r\n setScreenshareLayout(newLayout);\r\n }\r\n const onChangeVonageScreenshareLayoutBackstage = (newLayout) => {\r\n setScreenshareLayout(newLayout);\r\n };\r\n\r\n const classes = useStyles();\r\n const tabsClasses = indicatorStyle();\r\n const { forceDisc, notAuthorized, connected, connecting, initilized } = state;\r\n const settings = {\r\n backgroundColor: \"transparent\",\r\n backstage: true,\r\n allowFullscreen: false,\r\n showNametags: \"HOVER\",\r\n lockAspectRatio: true,\r\n aspectRatio: \"16:9\",\r\n };\r\n const api = {\r\n ...props,\r\n ...state,\r\n disableControls: onAirBtnDisabled || viewBtnDisabled || showHwSetup,\r\n channel: stateRef.current.channel ? stateRef.current.channel : undefined,\r\n view,\r\n onAir,\r\n isStudioStream,\r\n tryReconnect,\r\n toggleHardwareSetup: (s) => setShowHardwareSetup(s),\r\n setHardwareSetup: (hws) => setHardwareSetup(hws),\r\n hardwareSetup,\r\n settings: settings,\r\n };\r\n\r\n if (connecting && !initilized) return ;\r\n if (notAuthorized == true) return ;\r\n if (forceDisc && !connected) return ;\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {stateRef.current.eventName} {stateRef.current.channel ? String.fromCharCode(8226) + \" \" + stateRef.current.channel : null}\r\n \r\n \r\n : }\r\n className={\"go-on-air-btn\"}\r\n style={{\r\n background: onAirBtnDisabled || showHwSetup ? \"#eee\" : onAir ? \"#d63a3a\" : \"rgb(22 88 197)\",\r\n color: \"#fff\",\r\n fontSize: \".8rem\",\r\n padding: \"6px 14px\",\r\n }}\r\n disabled={onAirBtnDisabled || showHwSetup}\r\n onClick={onAir ? () => toggleView(\"BACKSTAGE\", true) : () => toggleView(\"LIVE\", true)}\r\n >\r\n {onAir ? : null}\r\n {!onAir ? : null}\r\n \r\n \r\n \r\n toggleView(\"LIVE\")}\r\n disabled={viewBtnDisabled || showHwSetup || view === \"LIVE\"}\r\n variant={view == \"LIVE\" ? \"contained\" : \"\"}\r\n size=\"small\"\r\n style={{ color: \"#fff\", border: 0, backgroundColor: view == \"LIVE\" ? \"rgb(22 88 197)\" : \"transparent\", borderRadius: view == \"LIVE\" ? 25 : undefined }}\r\n >\r\n \r\n \r\n toggleView(\"BACKSTAGE\")}\r\n variant={view == \"BACKSTAGE\" ? \"contained\" : \"\"}\r\n size=\"small\"\r\n style={{\r\n color: \"#fff\",\r\n border: 0,\r\n opacity: onAir ? 0.6 : 1,\r\n backgroundColor: view == \"BACKSTAGE\" ? \"rgb(22 88 197)\" : \"transparent\",\r\n borderRadius: view == \"BACKSTAGE\" ? 25 : undefined,\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {isRecording ?
: null}\r\n {isRecording ? : null}\r\n \r\n \r\n \r\n window.open(`${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/session/stage/${stateRef.current.eventCode}?lang=${stateRef.current.lang}`, \"_blank\")\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {stateRef.current.clientName || \"Gäst\"}\r\n \r\n\r\n setIsSidebarOpen(!isSidebarOpen)}>\r\n \r\n \r\n \r\n \r\n \r\n {view == \"LIVE\" ? : null}\r\n {view == \"BACKSTAGE\" ? : null}\r\n
\r\n \r\n {(matches) => (\r\n <>\r\n {matches.desktop || (!matches.desktop && isSidebarOpen) ? (\r\n
\r\n \r\n setActiveTab(val)} aria-label=\"tabs\">\r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n {...a11yProps(0)}\r\n style={{ minWidth: \"25%\", maxWidth: \"25%\", flexGrow: 1 }}\r\n />\r\n }>\r\n \r\n {connectionCount(clientTypeConstants.INTERACTION_VONAGE_SPEAKER)}\r\n \r\n \r\n }\r\n {...a11yProps(1)}\r\n style={{ minWidth: \"25%\", maxWidth: \"25%\", flexGrow: 1 }}\r\n />\r\n }>\r\n \r\n {connectionCount(clientTypeConstants.INTERACTION_MEETING)}\r\n \r\n \r\n }\r\n {...a11yProps(2)}\r\n style={{ minWidth: \"25%\", maxWidth: \"25%\", flexGrow: 1 }}\r\n />\r\n {isModerator ? (\r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n {...a11yProps(3)}\r\n style={{ minWidth: \"25%\", maxWidth: \"25%\", flexGrow: 1 }}\r\n />\r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {activeTab == 1 ? : null}\r\n \r\n \r\n {activeTab == 2 ? : null}\r\n \r\n {isModerator ? (\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n ) : null}\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\nfunction mapStateToProps(state) {\r\n return {};\r\n}\r\nexport default connect(mapStateToProps)(VonageBackstage);\r\n","import { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { IconButton, Dialog, DialogTitle, DialogContent, DialogActions, Button, TextField, MenuItem, Select, FormControl, FormGroup, FormControlLabel, Switch, InputLabel } from \"@material-ui/core\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { getKey } from \"../../helpers/UrlHelper\";\r\nimport { meetingService } from \"../../services/meeting/meeting.service\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport OT from \"@opentok/client\";\r\nimport { ResizeObserver } from \"@juggle/resize-observer\";\r\nimport { clientTypeConstants } from \"../../interaction/constants/clientType.constants\";\r\nimport \"./VideoWallStyle.css\";\r\nimport axios from \"axios\";\r\nconst ro = new ResizeObserver((entries, observer) => {\r\n entries.forEach((e, index) => {\r\n if (Math.abs(e.target.clientHeight - (e.target.clientWidth * 0.5625).toFixed(0)) > 3) {\r\n e.target.style.opacity = 1;\r\n let toHigh = (e.target.clientHeight / e.target.clientWidth).toFixed(2) > 0.5625;\r\n if (toHigh) {\r\n e.target.style.width = \"100%\";\r\n e.target.style.height = (e.target.clientWidth * 0.5625).toFixed(0) + \"px\";\r\n } else {\r\n e.target.style.width = (e.target.clientHeight * 1.777777777777778).toFixed(0) + \"px\";\r\n e.target.style.height = \"100%\";\r\n }\r\n }\r\n });\r\n});\r\nconst globalStreamList = [];\r\n\r\nexport default function VonageVideoWall(props) {\r\n const [showSettings, setShowSettings] = useState(true);\r\n const [showNametags, setShowNametags] = useState(false);\r\n const [eventCode, setEventCode] = useState(null);\r\n const [eventId, setEventId] = useState(null);\r\n const [eventName, setEventName] = useState(null);\r\n const [parentEventId, setParentEventId] = useState(null);\r\n const [name, setName] = useState(null);\r\n const [screenNo, setScreenNo] = useState(null);\r\n const [gridClass, setGridClass] = useState(\"one-row\");\r\n const [maxVids, setMaxVids] = useState(4);\r\n const [session, setSession] = useState(null);\r\n const [token, setToken] = useState(null);\r\n const [hubConnection, setHubConnection] = useState(null);\r\n const [connecting, setConnecting] = useState(false);\r\n const [connected, setConnected] = useState(false);\r\n const [countdown, setCountdown] = useState(null)\r\n const [reconnectCounter, setReconnectCounter] = useState(null);\r\n const [templateList, setTemplateList] = useState([]);\r\n const [orderList, setOrderList] = useState([]);\r\n const [templateId, setTemplateId] = useState(-1);\r\n const [streams, setStreams] = useState([]);\r\n const [linkToPage, setLinkToPage] = useState(\"\");\r\n const onStreamDestroyedRef = useRef();\r\n const kickPersonFromWallRef = useRef();\r\n const onConnectionCloseRef = useRef();\r\n const [activeTemplateContent, setActiveTemplateContent] = useState(null);\r\n const activeTemplate = templateList.find(t => t.templateId === templateId);\r\n const activeVideoCount = streams.length;\r\n const getOrderListIntervalRef = useRef();\r\n const getOrderListRef = useRef();\r\n\r\n useEffect(() => {\r\n const { location, match } = props;\r\n let eventCode = match.params.id;\r\n const params = new URLSearchParams(location.search);\r\n const preSetMaxCount = params.get(getKey(\"max\", params));\r\n const preSetName = params.get(getKey(\"name\", params));\r\n const preSetScreenNo = params.get(getKey(\"screenNo\", params));\r\n const preSetTemplate = params.get(getKey(\"template\", params));\r\n const preSetNametags = params.get(getKey(\"showNametags\", params));\r\n setEventCode(eventCode);\r\n\r\n if (preSetName) {\r\n setName(preSetName.toLowerCase());\r\n }\r\n else {\r\n alert(\"Name missing\");\r\n }\r\n if (preSetScreenNo && !isNaN(preSetScreenNo)) {\r\n setScreenNo(preSetScreenNo || 1);\r\n }\r\n if (preSetNametags && preSetNametags.toLowerCase() == \"true\") {\r\n setShowNametags(true);\r\n }\r\n if (preSetTemplate && !isNaN(preSetTemplate)) {\r\n setTemplateId(parseInt(preSetTemplate));\r\n }\r\n if (preSetMaxCount && !isNaN(preSetMaxCount)) {\r\n setMaxVids(parseInt(preSetMaxCount));\r\n }\r\n meetingService.getEventId(eventCode).then(({ eventId, eventName, parentEventId }) => {\r\n setEventId(eventId);\r\n setEventName(eventName);\r\n setParentEventId(parentEventId);\r\n axios.get(`./api/template/event/${eventId}?includeInherited=true`).then(({ data }) => {\r\n setTemplateList(data);\r\n })\r\n });\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n onStreamDestroyedRef.current = onStreamDestroyed;\r\n onConnectionCloseRef.current = onConnectionClose;\r\n kickPersonFromWallRef.current = kickPersonFromWall;\r\n getOrderListRef.current = getOrderList;\r\n if (hubConnection) {\r\n hubConnection.on(\"onVonageVideoWallHandshake\", onVonageVideoWallHandshake);\r\n hubConnection.on(\"onGetVideoWallSession\", onGetVideoWallSession);\r\n hubConnection.on(\"onGetOrderList\", onGetOrderList);\r\n }\r\n if (session) {\r\n session.on(\"streamCreated\", onStreamCreated);\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onVonageVideoWallHandshake\", onVonageVideoWallHandshake);\r\n hubConnection.off(\"onGetVideoWallSession\", onGetVideoWallSession);\r\n hubConnection.off(\"onGetOrderList\", onGetOrderList);\r\n }\r\n if (session) {\r\n session.off(\"streamCreated\", onStreamCreated);\r\n }\r\n }\r\n });\r\n useEffect(() => {\r\n if (activeTemplate && activeTemplate.content)\r\n setActiveTemplateContent(JSON.parse(activeTemplate.content))\r\n else setActiveTemplateContent(null);\r\n }, [activeTemplate]);\r\n useEffect(() => {\r\n calculateColumns();\r\n }, [activeVideoCount]);\r\n\r\n useEffect(() => {\r\n var newLink = `https://${window.location.host}${window.location.host.includes(\"localhost\") ? \"\" : \"/interaction\"}/videowall/${eventCode}?name=${name}&screenno=${screenNo}&max=${maxVids}${templateId > 0 ? `&template=${templateId}` : ''}${showNametags ? `&showNametags=true` : ''}`;\r\n setLinkToPage(newLink)\r\n }, [templateId, showNametags, name, maxVids, screenNo])\r\n useEffect(() => {\r\n if (showNametags && hubConnection) {\r\n\r\n }\r\n }, [showNametags]);\r\n\r\n useEffect(() => {\r\n if (connected == false && connecting == false && hubConnection?.connectionState === 0) {\r\n tryReconnect();\r\n var counter = setInterval(() => {\r\n setCountdown((prevCount) => prevCount + 1);\r\n }, 1000);\r\n if (reconnectCounter) clearInterval(reconnectCounter);\r\n setReconnectCounter(counter);\r\n } else if (countdown >= 60 && !connected && hubConnection) {\r\n setCountdown(0);\r\n setConnecting(false);\r\n tryReconnect();\r\n } else if (connected == true && !connecting && hubConnection && hubConnection.connectionState == 1) {\r\n if (reconnectCounter) clearInterval(reconnectCounter);\r\n setCountdown(0);\r\n setReconnectCounter(null);\r\n }\r\n }, [connected, connecting, countdown]);\r\n function tryReconnect() {\r\n if (!connecting && !connected && hubConnection) {\r\n connectToHub();\r\n }\r\n }\r\n const connectToHub = () => {\r\n let hc = hubConnection;\r\n if (!hc) hc = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n setConnecting(true);\r\n hc\r\n .start()\r\n .then(() => {\r\n hc.onclose(() => onConnectionCloseRef.current());\r\n const handshakeObj = {\r\n eventId: eventId,\r\n clientType: clientTypeConstants.INTERACTION_VONAGE_VIDEOWALL,\r\n clientKey: null,\r\n channel: `${name}_${screenNo}`,\r\n exhibitorId: null,\r\n code: null,\r\n userGuid: null,\r\n userInfo: null,\r\n };\r\n hc.invoke(\"vonageVideoWallHandshake\", handshakeObj);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n });\r\n setHubConnection(hc);\r\n };\r\n const onConnectionClose = () => {\r\n setConnected(false);\r\n }\r\n function onVonageVideoWallHandshake(response) {\r\n const { success } = response;\r\n document.title = response.eventName || \"\";\r\n if (!success) {\r\n setConnected(false);\r\n return;\r\n }\r\n setConnecting(false);\r\n setConnected(true);\r\n hubConnection.invoke(\"getVideoWallSession\", eventId, name, screenNo, maxVids);\r\n hubConnection.invoke(\"getOrderList\", eventId);\r\n getOrderListIntervalRef.current = setInterval(getOrderListRef.current(), 15000);\r\n }\r\n function getOrderList() {\r\n if (showNametags && hubConnection) {\r\n hubConnection.invoke(\"getOrderList\", eventId);\r\n }\r\n }\r\n function onGetOrderList(list) {\r\n setOrderList(list);\r\n }\r\n function onGetVideoWallSession(apiKey, sessionId, token) {\r\n var session = OT.initSession(apiKey, sessionId);\r\n setSession(session);\r\n session.connect(token, (error) => {\r\n if (error) console.error(error);\r\n });\r\n setToken(token);\r\n }\r\n function calculateColumns() {\r\n const vids = activeVideoCount;\r\n if (vids <= 1) {\r\n setGridClass(\"one-row-single\");\r\n } else if (vids == 2) {\r\n setGridClass(\"one-row\");\r\n } else if (vids > 2 && vids < 5) {\r\n setGridClass(\"two-row\");\r\n } else if (vids >= 5 && vids < 10) {\r\n setGridClass(\"three-row\");\r\n } else if (vids >= 10 && vids < 13) {\r\n setGridClass(\"three-row wide\");\r\n } else if (vids >= 13 && vids < 17) {\r\n setGridClass(\"four-row\");\r\n } else if (vids >= 17 && vids < 21) {\r\n setGridClass(\"four-row wide\");\r\n } else if (vids >= 21 && vids < 26) {\r\n setGridClass(\"five-row\");\r\n } else if (vids >= 26 && vids < 31) {\r\n setGridClass(\"five-row wide\");\r\n } else if (vids >= 31 && vids < 37) {\r\n setGridClass(\"six-row\");\r\n } else if (vids >= 37 && vids < 43) {\r\n setGridClass(\"six-row wide\");\r\n }else if (vids >= 43 && vids < 50) {\r\n setGridClass(\"seven-row\");\r\n }\r\n else {\r\n setGridClass(\"seven-row wide\");\r\n }\r\n }\r\n function onStreamCreated(event) {\r\n var targetContainer = \"vonage-grid-container\";\r\n var targetOptions = {\r\n insertMode: \"append\",\r\n width: \"0%\",\r\n height: \"0%\",\r\n showControls: false,\r\n };\r\n let newStream = session.subscribe(event.stream, targetContainer, targetOptions); //här\r\n const streamName = newStream.stream.name;\r\n newStream.on(\"destroyed\", (event) => { onStreamDestroyedRef.current(event, streamName); });\r\n addNametag(newStream);\r\n // speakerDetection(newStream, setSubscriberStartTalking, setSubscriberStopTalking);\r\n // newStream.element.addEventListener(\"click\", (t) => setFocusedStream(t.currentTarget));\r\n ro.observe(newStream.element);\r\n newStream.element.addEventListener(\"click\", () => kickPersonFromWallRef.current(streamName));\r\n globalStreamList.push(newStream);\r\n setStreams([...globalStreamList]);\r\n hubConnection.invoke(\"videoWallPersonConnected\", eventId, name, screenNo, newStream.stream.name);\r\n\r\n }\r\n function kickPersonFromWall(clientKey) {\r\n if (hubConnection && hubConnection.connectionState == 1) {\r\n hubConnection.invoke(\"kickPersonFromWall\", eventId, name, clientKey);\r\n }\r\n }\r\n function onStreamDestroyed(event, clientKey) {\r\n var sIndex = globalStreamList.indexOf(globalStreamList.find((s) => s.widgetId === event.target.widgetId));\r\n if (sIndex != -1) {\r\n globalStreamList.splice(sIndex, 1);\r\n hubConnection.invoke(\"videoWallPersonDisconnected\", eventId, name, screenNo, clientKey);\r\n setStreams([...globalStreamList]);\r\n }\r\n }\r\n function addNametag(subscriber) {\r\n\r\n var nametag = document.createElement(\"div\");\r\n nametag.style.position = \"absolute\";\r\n nametag.style.top = \"2%\";\r\n nametag.style.right = \"0px\";\r\n nametag.style.left = \"0px\";\r\n nametag.style.color = \"white\";\r\n nametag.style.textAlign = \"center\";\r\n nametag.classList.add(\"person-nametag\");\r\n var order = orderList.find((x) => x.badgeNo == subscriber.stream.name);\r\n let streamName = order ? order.name : \"Guest\";\r\n if (order && order.company) {\r\n streamName += \", \" + order.company;\r\n }\r\n var nameText = document.createElement(\"span\");\r\n nameText.innerText = streamName;\r\n nameText.style.padding = \"4px 10px\";\r\n nameText.style.borderRadius = \"5px\";\r\n nameText.style.backgroundColor = \"#17171794\";\r\n nametag.appendChild(nameText);\r\n subscriber.element.appendChild(nametag);\r\n }\r\n function saveSettings() {\r\n if (!hubConnection) {\r\n connectToHub();\r\n }\r\n else {\r\n hubConnection.invoke(\"UpdateVideoWallSettings\", eventId, name, session.id, screenNo, maxVids);\r\n }\r\n setShowSettings(false)\r\n }\r\n function selectText(containerid) {\r\n if (document.selection) { // IE\r\n var range = document.body.createTextRange();\r\n range.moveToElementText(document.getElementById(containerid));\r\n range.select();\r\n } else if (window.getSelection) {\r\n var range = document.createRange();\r\n range.selectNode(document.getElementById(containerid));\r\n window.getSelection().removeAllRanges();\r\n window.getSelection().addRange(range);\r\n }\r\n }\r\n return (\r\n
\r\n
\r\n {activeTemplate && activeTemplate.formattedCss ?\r\n \r\n : null}\r\n\r\n setShowSettings(true)} style={{ position: \"absolute\", top: \"1%\", right: \"1%\" }}>\r\n \r\n \r\n saveSettings()} aria-labelledby=\"form-dialog-title\">\r\n Inställningar - {eventName}\r\n \r\n {\r\n setName(e.target.value || '');\r\n }}\r\n />\r\n {\r\n if (!isNaN(e.target.value)) {\r\n setScreenNo(parseInt(e.target.value));\r\n }\r\n }}\r\n />\r\n {\r\n if (!isNaN(e.target.value)) {\r\n setMaxVids(parseInt(e.target.value));\r\n }\r\n }}\r\n />\r\n\r\n setTemplateId(event.target.value)}\r\n >\r\n None\r\n {templateList.map(t => {\r\n return {t.name}\r\n })}\r\n \r\n \r\n \r\n setShowNametags(!showNametags)} color=\"primary\" />}\r\n label=\"Visa namnskyltar\"\r\n labelPlacement=\"start\"\r\n\r\n />\r\n \r\n \r\n\r\n

selectText(\"linkfield\")}>{linkToPage}

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Button, MenuItem, DialogTitle, DialogContent, DialogActions, Dialog, TextField, InputLabel } from '@material-ui/core';\r\nimport SystemLabel from '../../../system/SystemLabel/SystemLabel';\r\n\r\nexport default function CreateChannelDialog({ parentEventId, eventList, handleClose, save }) {\r\n const [selectedEvent, setSelectedEvent] = useState(parentEventId);\r\n const [newChannelName, setNewChannelName] = useState(\"\");\r\n const saveClick = () => {\r\n if (selectedEvent && newChannelName) {\r\n save(selectedEvent, newChannelName);\r\n }\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n setSelectedEvent(e.target.value)}\r\n >\r\n {eventList.map((ev) => {\r\n return {ev.name}\r\n })}\r\n \r\n \r\n setNewChannelName(e.target.value)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { clientTypeConstants } from \"../constants/clientType.constants\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport Axios from \"axios\";\r\nimport { getKey } from \"../../helpers/UrlHelper\";\r\nimport { ConnectionStatus } from \"../../digitalArena/components/fallbacks/ConnectionStatus\";\r\nimport { Loader } from \"../../digitalArena/utils/ClientConnectionFallback\";\r\nimport { Button, List, ListItem, ListItemText, ListItemIcon, Divider, IconButton, ListItemSecondaryAction, Tooltip } from \"@material-ui/core\";\r\nimport MeetingRoomIcon from '@material-ui/icons/MeetingRoom';\r\nimport BrokenImageIcon from '@material-ui/icons/BrokenImage';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport CreateChannelDialog from \"./components/CreateChannelDialog\";\r\nimport SystemLabel from '../../system/SystemLabel/SystemLabel';\r\n// import { cmsActions } from \"../../store/actions/cms/cms.action\";\r\nconst wrapperStyle = {\r\n width: \"100%\",\r\n height: \"100vh\",\r\n display: \"inline-flex\",\r\n backgroundColor: \"#1d1d1d\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n};\r\nconst listCol = {\r\n width: \"100%\",\r\n maxWidth: \"1000px\",\r\n minWidth: \"300px\",\r\n height: \"100%\",\r\n backgroundColor: \"#222\",\r\n zIndex: 1,\r\n boxShadow: \"0 1px 2px rgba(0, 0, 0, 0), 0 2px 4px rgba(0, 0, 0, 0), 0 4px 8px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 4px 4px rgba(0, 0, 0, 0), 0 20px 20px rgba(0, 0, 0, 0.3) !important\",\r\n};\r\nconst listStyle = {\r\n maxHeigth: \"100%\",\r\n overflowY: \"auto\",\r\n maxHeight: \"calc(100vh - 73px)\",\r\n minHeight: \"calc(100vh - 73px)\",\r\n};\r\nconst ChannelList = ({ match, user, ...props }) => {\r\n const [clientKey, setClientKey] = useState(null);\r\n const [tickCode, setTickCode] = useState(null);\r\n const [hubConnection, setHubConnection] = useState(null);\r\n const [connecting, setConnecting] = useState(false);\r\n const [connected, setConnected] = useState(false);\r\n const [eventId, setEventId] = useState(null);\r\n const [eventName, setEventName] = useState(null);\r\n const [eventCode, setEventCode] = useState(null);\r\n const [eventList, setEventList] = useState([]);\r\n const [channelList, setChannelList] = useState([]);\r\n const [connectionList, setConnectionList] = useState([]);\r\n const [languageCode, setLanguageCode] = useState(\"swe\");\r\n const [init, setInit] = useState(false);\r\n const [dialogOpen, setDialogOpen] = useState(false);\r\n const connectionListTimerRef = useRef();\r\n const channelListTimerRef = useRef();\r\n const channels = useMemo(() => {\r\n var chList = [];\r\n channelList.map((cl) => {\r\n if (cl.channel) {\r\n var ch = chList.find(c => c.channel === cl.channel);\r\n if (!ch) {\r\n chList.push({ staticChannelListId: cl.staticChannelListId, eventId: cl.eventId, channel: cl.channel, count: 0 });\r\n }\r\n else {\r\n ch.count += 1;\r\n }\r\n }\r\n });\r\n connectionList.map((cl) => {\r\n var ch = chList.find(c => c.channel === cl.channel);\r\n if (!ch) {\r\n chList.push({ eventId: cl.eventId, channel: cl.channel, count: 1 });\r\n }\r\n else {\r\n ch.count += 1;\r\n }\r\n\r\n })\r\n return chList;\r\n }, [channelList, connectionList])\r\n useEffect(() => {\r\n const ec = match.params.id;\r\n setEventCode(ec);\r\n getEventId(ec);\r\n const params = new URLSearchParams(props.location.search);\r\n const lang = params.get(getKey(\"lang\", params));\r\n const ck = params.get(getKey(\"clientKey\", params));\r\n const bno = params.get(getKey(\"badgeNo\", params));\r\n if (ck) setClientKey(ck);\r\n else if (bno) setClientKey(bno);\r\n if (lang) setLanguageCode(lang);\r\n // this.props.dispatch(templateActions.getDefaultTemplateByEvent(eventId));\r\n // props.dispatch(cmsActions.setEnviroment(sourceTypes.INTERACTION, false));\r\n \r\n }, [])\r\n\r\n useEffect(() => {\r\n if (hubConnection) {\r\n hubConnection.on(\"onHandshake\", onHandshake);\r\n hubConnection.on(\"onGetActiveChatConnections\", onGetActiveChatConnections);\r\n hubConnection.on(\"onGetStaticChannelList\", onGetStaticChannelList);\r\n hubConnection.on(\"onDeleteStaticChannel\", onDeleteChannel);\r\n hubConnection.onclose(onClose);\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onHandshake\", onHandshake);\r\n hubConnection.off(\"onGetActiveChatConnections\", onGetActiveChatConnections);\r\n hubConnection.off(\"onGetStaticChannelList\", onGetStaticChannelList);\r\n hubConnection.off(\"onDeleteStaticChannel\", onDeleteChannel);\r\n }\r\n }\r\n })\r\n useEffect(() => {\r\n if (eventId > 0 && !connected && !connecting) {\r\n connectToHub();\r\n }\r\n }, [eventId])\r\n useEffect(() => {\r\n if (connected && !connectionListTimerRef.current)\r\n connectionListTimerRef.current = setInterval(() => { hubConnection.invoke(\"getActiveChatConnections\", eventId); }, 5000);\r\n else if (!connected && connectionListTimerRef.current) {\r\n clearInterval(connectionListTimerRef.current)\r\n connectionListTimerRef.current = null;\r\n }\r\n if (connected && !channelListTimerRef.current)\r\n channelListTimerRef.current = setInterval(() => { hubConnection.invoke(\"getStaticChannelList\", eventId); }, 30000);\r\n else if (!connected && channelListTimerRef.current) {\r\n clearInterval(channelListTimerRef.current)\r\n channelListTimerRef.current = null;\r\n }\r\n }, [connected])\r\n\r\n const getEventId = (eventCode) => {\r\n Axios.get(`./api/event/getId/${eventCode}`)\r\n .then((res) => {\r\n setEventId(res.data.id);\r\n setEventName(res.data.name);\r\n if (languageCode == \"swe\")\r\n document.title = \"Kanaler - \" + res.data.name;\r\n else\r\n document.title = \"Channels - \" + res.data.name;\r\n Axios.get(`./api/event/getall/${res.data.id}`).then((res) => {\r\n setEventList(res.data);\r\n })\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const connectToHub = () => {\r\n var hc = hubConnection;\r\n try {\r\n if (!hc) {\r\n hc = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n }\r\n } catch (error) { }\r\n setConnecting(true)\r\n setHubConnection(hc);\r\n hc.start()\r\n .then(() => {\r\n hc.invoke(\"handshake\", {\r\n eventId,\r\n clientType: clientTypeConstants.INTERACTION_CHANNEL_LIST,\r\n clientKey,\r\n userGuid: user ? user.userGuid : null,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n hc.invoke(\"getActiveChatConnections\", eventId);\r\n hc.invoke(\"getStaticChannelList\", eventId);\r\n })\r\n .catch((error) => { });\r\n\r\n };\r\n const onClose = () => {\r\n setConnected(false);\r\n }\r\n const onHandshake = (response) => {\r\n if (response.success) {\r\n setConnected(true);\r\n setConnecting(false);\r\n setInit(true);\r\n setTickCode(response.tickCode)\r\n }\r\n };\r\n const onGetActiveChatConnections = (connectionList) => {\r\n let cL = connectionList.filter((cl) => cl.type === clientTypeConstants.INTERACTION_MEETING);\r\n setConnectionList(cL);\r\n\r\n };\r\n const onGetStaticChannelList = (chList) => {\r\n setChannelList(chList);\r\n }\r\n const openRoom = (evCode, chName) => {\r\n window.open(\r\n `${window.location.origin}${!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"}/digitalarena/${evCode}?clientkey=${clientKey}&lang=${languageCode}${chName ? `&channel=${encodeURIComponent(chName)}` : ''}`,\r\n \"_blank\"\r\n )\r\n }\r\n const createStaticChannel = (evId, chName) => {\r\n if (hubConnection) {\r\n hubConnection.invoke(\"createStaticChannel\", evId, chName);\r\n setDialogOpen(false);\r\n }\r\n }\r\n const deleteChannel = (ch) => {\r\n if (hubConnection) {\r\n hubConnection.invoke(\"deleteStaticChannel\", eventId, ch.staticChannelListId)\r\n }\r\n }\r\n const onDeleteChannel = (staticChannelListId) => {\r\n if (channelList.find(x => x.staticChannelListId === staticChannelListId)) {\r\n setChannelList([...channelList.filter(x => x.staticChannelListId !== staticChannelListId)])\r\n }\r\n }\r\n if (!init) return \r\n return \r\n \r\n
\r\n
\r\n

{eventName}

\r\n {clientKey.startsWith(\"sneakyspy\") || clientKey.startsWith(tickCode) ?\r\n
\r\n \r\n
\r\n : null}\r\n \r\n {eventList.map((ev, i) => {\r\n const mainRoomChannel = channels.find((ch) => ch.eventId == ev.eventId && !ch.channel);\r\n return (\r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n }>\r\n openRoom(ev.code, null)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {channels.filter(ch => ch.eventId === ev.eventId && ch.channel).map((ch, i) => {\r\n return \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {ch.staticChannelListId ?\r\n }>\r\n deleteChannel(ch)}>\r\n \r\n \r\n \r\n : null}\r\n }>\r\n openRoom(ev.code, ch.channel)}>\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n })}\r\n )\r\n })}\r\n \r\n
\r\n
\r\n {dialogOpen ?\r\n setDialogOpen(false)} save={createStaticChannel} eventList={eventList} parentEventId={eventId} />\r\n : null}\r\n
\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.authentication.user,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ChannelList);\r\n\r\n\r\n{/*
\r\n
\r\n \r\n {\" \"}\r\n - {eventName}\r\n \r\n \r\n {\" \"}\r\n {connectionList.length}\r\n \r\n
\r\n \r\n {questions && questions.length > 0\r\n ? questions\r\n .filter((q) => q.type == \"Text\" && (!q.tag || (q.tag && !q.tag.includes(\"hideinstage\"))))\r\n .map((q, i) => {\r\n let qLang = q.questionLanguage.find((ql) => ql.languageCode == lang);\r\n let qActive = activeQuestions.some((aq) => aq === q.questionId);\r\n return (\r\n \r\n this.toggleQuestion(q)}\r\n style={{\r\n listStyle: \"none\",\r\n display: \"flex\",\r\n }}\r\n ref={i}\r\n key={i}\r\n >\r\n { }\r\n {this.renderTypeIcon(q.type, qActive)}\r\n \r\n \r\n this.toggleQuestion(q)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })\r\n : null}\r\n \r\n
*/}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { HubConnectionBuilder } from \"@aspnet/signalr\";\r\nimport { IconButton, Dialog, DialogTitle, DialogContent, DialogActions, Button, TextField, MenuItem, Select, FormControl, FormGroup, FormControlLabel, Switch, InputLabel } from \"@material-ui/core\";\r\nimport { getKey } from \"../../helpers/UrlHelper\";\r\nimport PlauditTrack from \"../../digitalArena/modules/Plaudit/PlauditTrack\";\r\nimport { clientTypeConstants } from \"../../interaction/constants/clientType.constants\";\r\nimport { meetingService } from \"../../services/meeting/meeting.service\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nexport default function PlauditPresenter(props) {\r\n const [showSettings, setShowSettings] = useState(true);\r\n const [eventCode, setEventCode] = useState(null);\r\n const [backgroundColor, setBackgroundColor] = useState(\"#00ff00\");\r\n const [eventId, setEventId] = useState(null);\r\n const [channel, setChannel] = useState(null);\r\n const [eventName, setEventName] = useState(null);\r\n const [parentEventId, setParentEventId] = useState(null);\r\n const [name, setName] = useState(null);\r\n const [hubConnection, setHubConnection] = useState(null);\r\n const [connecting, setConnecting] = useState(false);\r\n const [connected, setConnected] = useState(false);\r\n const [countdown, setCountdown] = useState(null)\r\n const [reconnectCounter, setReconnectCounter] = useState(null);\r\n const onConnectionCloseRef = useRef();\r\n useEffect(() => {\r\n const { location, match } = props;\r\n let eventCode = match.params.id;\r\n const params = new URLSearchParams(location.search);\r\n setEventCode(eventCode);\r\n const channel = params.get(getKey(\"channel\", params));\r\n if (channel) {\r\n setChannel(channel)\r\n }\r\n meetingService.getEventId(eventCode).then(({ eventId, eventName, parentEventId }) => {\r\n setEventId(eventId);\r\n setEventName(eventName);\r\n setParentEventId(parentEventId);\r\n // axios.get(`./api/template/event/${eventId}?includeInherited=true`).then(({ data }) => {\r\n // setTemplateList(data);\r\n // })\r\n });\r\n }, []);\r\n useEffect(() => {\r\n onConnectionCloseRef.current = onConnectionClose;\r\n if (hubConnection) {\r\n hubConnection.on(\"onHandshake\", onHandshake);\r\n }\r\n\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onHandshake\", onHandshake);\r\n }\r\n }\r\n });\r\n const onHandshake = (response) => {\r\n const { success } = response;\r\n if (!success) {\r\n setConnected(false);\r\n return;\r\n }\r\n setConnecting(false);\r\n setConnected(true);\r\n }\r\n useEffect(() => {\r\n if (connected == false && connecting == false && hubConnection?.connectionState === 0) {\r\n tryReconnect();\r\n var counter = setInterval(() => {\r\n setCountdown((prevCount) => prevCount + 1);\r\n }, 1000);\r\n if (reconnectCounter) clearInterval(reconnectCounter);\r\n setReconnectCounter(counter);\r\n } else if (countdown >= 60 && !connected && hubConnection) {\r\n setCountdown(0);\r\n setConnecting(false);\r\n tryReconnect();\r\n } else if (connected == true && !connecting && hubConnection && hubConnection.connectionState == 1) {\r\n if (reconnectCounter) clearInterval(reconnectCounter);\r\n setCountdown(0);\r\n setReconnectCounter(null);\r\n }\r\n }, [connected, connecting, countdown]);\r\n function tryReconnect() {\r\n if (!connecting && !connected && hubConnection) {\r\n connectToHub();\r\n }\r\n }\r\n const connectToHub = () => {\r\n let hc = hubConnection;\r\n if (!hc) hc = new HubConnectionBuilder().withUrl(\"./ihub\").build();\r\n setConnecting(true);\r\n hc\r\n .start()\r\n .then(() => {\r\n hc.onclose(() => onConnectionCloseRef.current());\r\n const handshakeObj = {\r\n eventId: eventId,\r\n clientType: clientTypeConstants.INTERACTION_PLAUDIT_PRESENTER,\r\n clientKey: null,\r\n channel: channel ? channel : null,\r\n exhibitorId: null,\r\n code: null,\r\n userGuid: null,\r\n userInfo: null,\r\n };\r\n hc.invoke(\"handshake\", handshakeObj);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n });\r\n setHubConnection(hc);\r\n };\r\n const onConnectionClose = () => {\r\n setConnected(false);\r\n }\r\n function saveSettings() {\r\n if (!hubConnection) {\r\n connectToHub();\r\n }\r\n // else {\r\n // hubConnection.invoke(\"UpdateVideoWallSettings\", eventId, name, session.id, screenNo, maxVids);\r\n // }\r\n setShowSettings(false)\r\n }\r\n return
\r\n setShowSettings(true)} style={{ position: \"absolute\", top: \"1%\", right: \"1%\" }}>\r\n \r\n \r\n saveSettings()} aria-labelledby=\"form-dialog-title\">\r\n Inställningar - {eventName}\r\n \r\n {\r\n setBackgroundColor(e.target.value || '');\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n {hubConnection && hubConnection.connectionState == 1 ?\r\n \r\n : null}\r\n
\r\n}","import React, { Component } from \"react\";\r\nimport { Router, Route, Switch } from \"react-router-dom\";\r\nimport { history } from \"./helpers/history\";\r\nimport { connect } from \"react-redux\";\r\nimport { ProvideBrowserOptions } from \"./system/BrowserAgent/ProvideBrowserOptions\";\r\nimport PresenterLayout from \"./interaction/presenter/Layout/PresenterLayout\";\r\nimport { SplashScreen } from \"./components/SplashScreen/SplashScreen\";\r\nimport ModeratorLayout from \"./interaction/moderator/Layout/ModeratorLayout\";\r\nimport StageLayout from \"./interaction/stage/Layout/StageLayout\";\r\nimport ExpoBoothLayout from \"./exhibitor/ExpoBooth/Layout/ExpoBoothLayout\";\r\nimport RedirectUser from \"./RedirectUser\";\r\nimport ChatModeratorLayout from \"./interaction/chatModerator/Layout/ChatModeratorLayout\";\r\nimport EditorWrapper from \"./meetingEditor/layout/EditorWrapper\";\r\nimport { Backoffice } from \"./exhibitor2/Backoffice/Backoffice\";\r\nimport VonageBackstage from \"./vonageBackstage/VonageBackstage\";\r\nimport VonageVideoWall from \"./presentation/VideoWall/VonageVideoWall\";\r\nimport ChannelList from \"./interaction/channellist/ChannelList\";\r\nimport PlauditPresenter from \"./presentation/Plaudit/PlauditPresenter\";\r\n\r\nimport \"./App.scss\";\r\n\r\nconst DigitalArena = React.lazy(() => import(\"./digitalArena/DigitalArena\"));\r\n\r\nconst loading = () =>
Loading...
;\r\n\r\nclass App extends Component {\r\n directToInadraHomePage = () => {\r\n window.location.replace(\"https://web.jirango.com\");\r\n };\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.globals.isLoading ? : null}\r\n \r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n

404

} />\r\n } />\r\n

500

} />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n (localStorage.getItem(\"user\") ? : )}\r\n />\r\n (localStorage.getItem(\"user\") ? null : )} />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nconst ExternalRedirect = (props) => {\r\n const { link } = props;\r\n return (\r\n {\r\n window.location.replace(props.link);\r\n return null;\r\n }}\r\n />\r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n globals: state.globals,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(App);\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\r\n );\r\n });\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n\r\n // Execute callback\r\n if (config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport { history } from '../../helpers/history';\r\n\r\nexport class BrowserDetector extends React.Component {\r\n componentDidMount() {\r\n this.msieversion();\r\n }\r\n msieversion = () => {\r\n\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n\r\n if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\\:11\\./)) // If Internet Explorer, return version number\r\n {\r\n // /* if(!window.location.includes('localhost')){ */\r\n if (window.location.href !== \"https://jirango.com/cms/provide-browser-options\") {\r\n window.location.href = \"https://jirango.com/cms/provide-browser-options\";\r\n }\r\n /* if (window.location.href !== \"https://localhost:44374/provide-browser-options\") {\r\n window.location.href = \"https://localhost:44374/provide-browser-options\";\r\n } */\r\n // /* } */\r\n /* history.push('/provide-browser-options') */\r\n\r\n }\r\n\r\n }\r\n render() {\r\n return null;\r\n }\r\n}","import browserUpdate from 'browser-update';\r\nimport \"react-app-polyfill/ie9\"; // For IE 9-11 support\r\nimport \"react-app-polyfill/ie11\"; // For IE 11 support\r\nimport \"./polyfill\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { Provider } from \"react-redux\";\r\nimport { store } from \"./store/configureStore\";\r\nimport { BrowserDetector } from './system/BrowserAgent/BrowserDetector';\r\nimport './sentry.config';\r\n\r\n\r\n\r\n\r\nbrowserUpdate({ required: { e: 18, f: -3, o: -3, s: -1, c: -3 }, insecure: true, api: 2019.08, reminder: 0, test: false, no_permanent_hide: false })\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import { createBrowserHistory } from 'history';\r\n\r\nexport const history = createBrowserHistory({\r\n basename: process.env.PUBLIC_URL\r\n});\r\n","\r\nfunction getRandomInt(max) {\r\n return Math.floor(Math.random() * Math.floor(max));\r\n}\r\n\r\nexport function generateChartColor(colors) {\r\n let no = getRandomInt(4);\r\n let colorName = Object.keys(colors)[no];\r\n let color = colors[colorName];\r\n return color;\r\n\r\n}\r\n\r\nexport function fold(s, n, useSpaces, a) {\r\n a = a || [];\r\n if (s.length <= n) {\r\n a.push(s);\r\n return a;\r\n }\r\n var line = s.substring(0, n);\r\n if (! useSpaces) { // insert newlines anywhere\r\n a.push(line);\r\n return fold(s.substring(n), n, useSpaces, a);\r\n }\r\n else { // attempt to insert newlines after whitespace\r\n var lastSpaceRgx = /\\s(?!.*\\s)/;\r\n var idx = line.search(lastSpaceRgx);\r\n var nextIdx = n;\r\n if (idx > 0) {\r\n line = line.substring(0, idx);\r\n nextIdx = idx;\r\n }\r\n a.push(line);\r\n return fold(s.substring(nextIdx), n, useSpaces, a);\r\n }\r\n}\r\n\r\n// Regex version of fold function.\r\n\r\nfunction foldRgx(s, n) {\r\n var rgx = new RegExp('.{0,' + n + '}', 'g');\r\n return s.match(rgx);\r\n}","export const eventLabelsConstants = {\r\n \r\n\r\n\r\n CREATE_EVENTLABEL_REQUEST: 'CREATE_EVENTLABEL_REQUEST',\r\n CREATE_EVENTLABEL_SUCCESS: 'CREATE_EVENTLABEL_SUCCESS',\r\n CREATE_EVENTLABEL_FAILURE: 'CREATE_EVENTLABEL_FAILURE',\r\n\r\n GET_GROUP_EVENTLABEL_REQUEST: 'GET_GROUP_EVENTLABEL_REQUEST',\r\n GET_GROUP_EVENTLABEL_SUCCESS: 'GET_GROUP_EVENTLABEL_SUCCESS',\r\n GET_GROUP_EVENTLABEL_FAILURE: 'GET_GROUP_EVENTLABEL_FAILURE',\r\n};","export const isUsingChrome = () => {\r\n var nVer = navigator.appVersion;\r\n var nAgt = navigator.userAgent;\r\n var nameOffset, verOffset, ix;\r\n let isUsingChrome = false;\r\n\r\n if ((verOffset = nAgt.indexOf(\"Opera\")) != -1) {\r\n isUsingChrome = false;\r\n }\r\n // Opera Next\r\n if ((verOffset = nAgt.indexOf(\"OPR\")) != -1) {\r\n isUsingChrome = false;\r\n }\r\n // Legacy Edge\r\n else if ((verOffset = nAgt.indexOf(\"Edge\")) != -1) {\r\n isUsingChrome = false;\r\n }\r\n // Edge (Chromium)\r\n else if ((verOffset = nAgt.indexOf(\"Edg\")) != -1) {\r\n if (parseInt(parseInt(\"\" + nAgt.substring(verOffset + 4), 10) < 86)) {\r\n isUsingChrome = false;\r\n } else {\r\n isUsingChrome = true;\r\n }\r\n }\r\n // MSIE\r\n else if ((verOffset = nAgt.indexOf(\"MSIE\")) != -1) {\r\n isUsingChrome = false;\r\n }\r\n // Chrome\r\n else if ((verOffset = nAgt.indexOf(\"Chrome\")) != -1) {\r\n isUsingChrome = true;\r\n }\r\n // Safari\r\n else if ((verOffset = nAgt.indexOf(\"Safari\")) != -1) {\r\n isUsingChrome = false;\r\n }\r\n // Firefox\r\n else if ((verOffset = nAgt.indexOf(\"Firefox\")) != -1) {\r\n isUsingChrome = true;\r\n }\r\n // MSIE 11+\r\n else if (nAgt.indexOf(\"Trident/\") != -1) {\r\n isUsingChrome = false;\r\n }\r\n\r\n return isUsingChrome;\r\n};\r\n\r\nexport const isUsingSafari = () => {\r\n var ua = navigator.userAgent.toLowerCase();\r\n if (ua.indexOf(\"safari\") != -1) {\r\n if (ua.indexOf(\"chrome\") > -1) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n};\r\n\r\n//You have to update your browswer\r\nexport const getUserInformation = () => {\r\n var unknown = \"-\";\r\n\r\n // screen\r\n\r\n var screenSize = \"\";\r\n\r\n let h = window.screen.height;\r\n let w = window.screen.width;\r\n if (h && w) screenSize = `${w}x${h}`;\r\n\r\n // browser\r\n var nVer = navigator.appVersion;\r\n var nAgt = navigator.userAgent;\r\n var browser = navigator.appName;\r\n var version = \"\" + parseFloat(navigator.appVersion);\r\n var majorVersion = parseInt(navigator.appVersion, 10);\r\n var nameOffset, verOffset, ix;\r\n\r\n // Opera\r\n if ((verOffset = nAgt.indexOf(\"Opera\")) != -1) {\r\n browser = \"Opera\";\r\n version = nAgt.substring(verOffset + 6);\r\n if ((verOffset = nAgt.indexOf(\"Version\")) != -1) {\r\n version = nAgt.substring(verOffset + 8);\r\n }\r\n }\r\n // Opera Next\r\n if ((verOffset = nAgt.indexOf(\"OPR\")) != -1) {\r\n browser = \"Opera\";\r\n version = nAgt.substring(verOffset + 4);\r\n }\r\n // Legacy Edge\r\n else if ((verOffset = nAgt.indexOf(\"Edge\")) != -1) {\r\n browser = \"Microsoft Legacy Edge\";\r\n version = nAgt.substring(verOffset + 5);\r\n }\r\n // Edge (Chromium)\r\n else if ((verOffset = nAgt.indexOf(\"Edg\")) != -1) {\r\n browser = \"Microsoft Edge\";\r\n version = nAgt.substring(verOffset + 4);\r\n }\r\n // MSIE\r\n else if ((verOffset = nAgt.indexOf(\"MSIE\")) != -1) {\r\n browser = \"Microsoft Internet Explorer\";\r\n version = nAgt.substring(verOffset + 5);\r\n }\r\n // Chrome\r\n else if ((verOffset = nAgt.indexOf(\"Chrome\")) != -1) {\r\n browser = \"Chrome\";\r\n version = nAgt.substring(verOffset + 7);\r\n }\r\n // Safari\r\n else if ((verOffset = nAgt.indexOf(\"Safari\")) != -1) {\r\n browser = \"Safari\";\r\n version = nAgt.substring(verOffset + 7);\r\n if ((verOffset = nAgt.indexOf(\"Version\")) != -1) {\r\n version = nAgt.substring(verOffset + 8);\r\n }\r\n }\r\n // Firefox\r\n else if ((verOffset = nAgt.indexOf(\"Firefox\")) != -1) {\r\n browser = \"Firefox\";\r\n version = nAgt.substring(verOffset + 8);\r\n }\r\n // MSIE 11+\r\n else if (nAgt.indexOf(\"Trident/\") != -1) {\r\n browser = \"Microsoft Internet Explorer\";\r\n version = nAgt.substring(nAgt.indexOf(\"rv:\") + 3);\r\n }\r\n // Other browsers\r\n else if ((nameOffset = nAgt.lastIndexOf(\" \") + 1) < (verOffset = nAgt.lastIndexOf(\"/\"))) {\r\n browser = nAgt.substring(nameOffset, verOffset);\r\n version = nAgt.substring(verOffset + 1);\r\n if (browser.toLowerCase() == browser.toUpperCase()) {\r\n browser = navigator.appName;\r\n }\r\n }\r\n // trim the version string\r\n if ((ix = version.indexOf(\";\")) != -1) version = version.substring(0, ix);\r\n if ((ix = version.indexOf(\" \")) != -1) version = version.substring(0, ix);\r\n if ((ix = version.indexOf(\")\")) != -1) version = version.substring(0, ix);\r\n\r\n majorVersion = parseInt(\"\" + version, 10);\r\n if (isNaN(majorVersion)) {\r\n version = \"\" + parseFloat(navigator.appVersion);\r\n majorVersion = parseInt(navigator.appVersion, 10);\r\n }\r\n\r\n // mobile version\r\n var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);\r\n\r\n // cookie\r\n var cookieEnabled = navigator.cookieEnabled ? true : false;\r\n\r\n if (typeof navigator.cookieEnabled == \"undefined\" && !cookieEnabled) {\r\n document.cookie = \"testcookie\";\r\n cookieEnabled = document.cookie.indexOf(\"testcookie\") != -1 ? true : false;\r\n }\r\n\r\n // system\r\n var os = unknown;\r\n var clientStrings = [\r\n { s: \"Windows 10\", r: /(Windows 10.0|Windows NT 10.0)/ },\r\n { s: \"Windows 8.1\", r: /(Windows 8.1|Windows NT 6.3)/ },\r\n { s: \"Windows 8\", r: /(Windows 8|Windows NT 6.2)/ },\r\n { s: \"Windows 7\", r: /(Windows 7|Windows NT 6.1)/ },\r\n { s: \"Windows Vista\", r: /Windows NT 6.0/ },\r\n { s: \"Windows Server 2003\", r: /Windows NT 5.2/ },\r\n { s: \"Windows XP\", r: /(Windows NT 5.1|Windows XP)/ },\r\n { s: \"Windows 2000\", r: /(Windows NT 5.0|Windows 2000)/ },\r\n { s: \"Windows ME\", r: /(Win 9x 4.90|Windows ME)/ },\r\n { s: \"Windows 98\", r: /(Windows 98|Win98)/ },\r\n { s: \"Windows 95\", r: /(Windows 95|Win95|Windows_95)/ },\r\n { s: \"Windows NT 4.0\", r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ },\r\n { s: \"Windows CE\", r: /Windows CE/ },\r\n { s: \"Windows 3.11\", r: /Win16/ },\r\n { s: \"Android\", r: /Android/ },\r\n { s: \"Open BSD\", r: /OpenBSD/ },\r\n { s: \"Sun OS\", r: /SunOS/ },\r\n { s: \"Chrome OS\", r: /CrOS/ },\r\n { s: \"Linux\", r: /(Linux|X11(?!.*CrOS))/ },\r\n { s: \"iOS\", r: /(iPhone|iPad|iPod)/ },\r\n { s: \"Mac OS X\", r: /Mac OS X/ },\r\n { s: \"Mac OS\", r: /(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },\r\n { s: \"QNX\", r: /QNX/ },\r\n { s: \"UNIX\", r: /UNIX/ },\r\n { s: \"BeOS\", r: /BeOS/ },\r\n { s: \"OS/2\", r: /OS\\/2/ },\r\n {\r\n s: \"Search Bot\",\r\n r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/,\r\n },\r\n ];\r\n for (var id in clientStrings) {\r\n var cs = clientStrings[id];\r\n if (cs.r.test(nAgt)) {\r\n os = cs.s;\r\n break;\r\n }\r\n }\r\n\r\n var osVersion = unknown;\r\n\r\n if (/Windows/.test(os)) {\r\n osVersion = /Windows (.*)/.exec(os)[1];\r\n os = \"Windows\";\r\n }\r\n\r\n switch (os) {\r\n case \"Mac OS\":\r\n case \"Mac OS X\":\r\n case \"Android\":\r\n osVersion = /(?:Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh) ([\\.\\_\\d]+)/.exec(nAgt)[1];\r\n break;\r\n\r\n case \"iOS\":\r\n osVersion = /OS (\\d+)_(\\d+)_?(\\d+)?/.exec(nVer);\r\n osVersion = osVersion[1] + \".\" + osVersion[2] + \".\" + (osVersion[3] | 0);\r\n break;\r\n }\r\n let downlink = null;\r\n if (navigator.connection) {\r\n downlink = navigator.connection.downlink;\r\n }\r\n\r\n return {\r\n browser,\r\n version,\r\n majorVersion,\r\n os,\r\n osVersion,\r\n screenSize,\r\n downlink,\r\n };\r\n};\r\n","export const adjustContentHeight = (windowH, content, header, footer) => {\r\n let h =\r\n windowH -\r\n (header.height !== \"auto\" ? parseInt(header.height) : 0) -\r\n (footer.height !== \"auto\" ? parseInt(footer.height) : 0);\r\n //margins\r\n let hMarginTop = header.marginTop.includes(\"%\")\r\n ? windowH * (parseInt(header.marginTop) / 100)\r\n : parseInt(header.marginTop);\r\n let hMarginBottom = header.marginBottom.includes(\"%\")\r\n ? windowH * (parseInt(header.marginBottom) / 100)\r\n : parseInt(header.marginBottom);\r\n h =\r\n h -\r\n (isNaN(hMarginTop) ? 0 : hMarginTop) -\r\n (isNaN(hMarginBottom) ? 0 : hMarginBottom);\r\n\r\n let cMarginTop = content.marginTop.includes(\"%\")\r\n ? windowH * (parseInt(content.marginTop) / 100)\r\n : parseInt(content.marginTop);\r\n let cMarginBottom = content.marginBottom.includes(\"%\")\r\n ? windowH * (parseInt(content.marginBottom) / 100)\r\n : parseInt(content.marginBottom);\r\n h =\r\n h -\r\n (isNaN(cMarginTop) ? 0 : cMarginTop) -\r\n (isNaN(cMarginBottom) ? 0 : cMarginBottom);\r\n\r\n let fMarginTop = footer.marginTop.includes(\"%\")\r\n ? windowH * (parseInt(footer.marginTop) / 100)\r\n : parseInt(footer.marginTop);\r\n let fMarginBottom = footer.marginBottom.includes(\"%\")\r\n ? windowH * (parseInt(footer.marginBottom) / 100)\r\n : parseInt(footer.marginBottom);\r\n h =\r\n h -\r\n (isNaN(fMarginTop) ? 0 : fMarginTop) -\r\n (isNaN(fMarginBottom) ? 0 : fMarginBottom);\r\n\r\n let cPadding = content.padding.includes(\"%\")\r\n ? windowH * (parseInt(content.padding) / 100)\r\n : parseInt(content.padding);\r\n h = h - (isNaN(cPadding) ? 0 : cPadding * 2);\r\n\r\n return h;\r\n};\r\n\r\n","import { store } from \"../store/configureStore\";\r\nimport { arrayHelper } from \"./arrayHelper\";\r\n\r\nconst API_KEY = \"AIzaSyB6aQW4uFg8OuFMHaxBmqDPCvzBGe5vuTg\";\r\n\r\nconst createGoogleImports = (fonts) => {\r\n let str = \"\";\r\n fonts.map((f) => {\r\n if (f.includes(\" \")) {\r\n f = f.replace(\" \", \"+\");\r\n }\r\n str += `@import url('https://fonts.googleapis.com/css?family=${f}&display=swap');`;\r\n });\r\n return str;\r\n};\r\n\r\nexport const extractFontsFromJson = (obj) => {\r\n let cssFonts = \"\";\r\n let googleFonts = [];\r\n let clientFonts = [];\r\n for (const prop in obj) {\r\n for (const v in obj[prop]) {\r\n for (const c in obj[prop][v]) {\r\n if (c === \"fontFamily\") {\r\n if (\r\n store.getState().cms.fonts.length > 0 &&\r\n store.getState().cms.fonts.find((f) => {\r\n return f.name === obj[prop][v][c];\r\n })\r\n ) {\r\n const font = store.getState().cms.fonts.find((f) => {\r\n return f.name === obj[prop][v][c];\r\n });\r\n if (font) {\r\n clientFonts.push(font);\r\n }\r\n } else {\r\n googleFonts.push(obj[prop][v][c]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n /* fonts = [...new Set(fonts)]; */\r\n cssFonts = googleFonts.length > 0 ? cssFonts + createGoogleImports(googleFonts) : cssFonts;\r\n cssFonts = clientFonts.length > 0 ? cssFonts + createFontFaces(clientFonts) : cssFonts;\r\n return cssFonts;\r\n};\r\n\r\nconst createFontFaces = (fonts) => {\r\n let str = \"\";\r\n fonts.map((cf) => {\r\n str += `@font-face{ font-family: ${cf.name}; src: url('${cf.url}'); }`;\r\n });\r\n return str;\r\n};\r\n\r\nconst baseFonts = [\"Arial\", \"Helvetica\", \"Times New Roman\", \"Times\", \"Courier New\", \"Courier\", \"Verdana\", \"Georgia\", \"Comic Sans MS\", \"Trebuchet MS\", \"Arial Black\", \"Impact\"];\r\n\r\nexport const insertFonts = (clientFonts, template) => {\r\n let cssFonts = \"\";\r\n if (template) {\r\n const flattenTemplate = flatten(template);\r\n const alreadyAdded = []\r\n for (const key in flattenTemplate) {\r\n if (key && key.includes(\"fontFamily\") && !baseFonts.includes(flattenTemplate[key]) && flattenTemplate[key] != \"unset\" && flattenTemplate[key] != \"inherit\") {\r\n let font = flattenTemplate[key];\r\n if(!alreadyAdded.includes(font)){\r\n alreadyAdded.push(font)\r\n cssFonts += ` @import url(\"https://fonts.googleapis.com/css2?family=${font.replace(/\\s/g, \"+\").replace(\"-\", \"+\")}&display=swap\");`;\r\n }\r\n }\r\n }\r\n }\r\n if (clientFonts) {\r\n cssFonts += createFontFaces(clientFonts);\r\n }\r\n return cssFonts;\r\n};\r\n\r\nfunction traverseAndFlatten(currentNode, target, flattenedKey) {\r\n for (var key in currentNode) {\r\n if (currentNode.hasOwnProperty(key)) {\r\n var newKey;\r\n if (flattenedKey === undefined) {\r\n newKey = key;\r\n } else {\r\n newKey = flattenedKey + \".\" + key;\r\n }\r\n\r\n var value = currentNode[key];\r\n if (typeof value === \"object\") {\r\n traverseAndFlatten(value, target, newKey);\r\n } else {\r\n target[newKey] = value;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction flatten(obj) {\r\n var flattenedObject = {};\r\n traverseAndFlatten(obj, flattenedObject);\r\n return flattenedObject;\r\n}\r\n\r\nexport const insertGoogleFonts = (props) => {\r\n const { template } = props;\r\n const fonts = template.match(/font-family:(.*?)}/g);\r\n const clientFonts = store.getState().cms.fonts;\r\n\r\n let str = \"\";\r\n const googleFonts = [];\r\n fonts.map((f, i) => {\r\n let s = f.substring(0, f.indexOf(\";\") + 1);\r\n let q = f.substring(0, f.indexOf(\"}\") + 1);\r\n\r\n let s1 = s.substring(0, s.indexOf(\";\"));\r\n let q1 = q.substring(0, q.indexOf(\"}\"));\r\n\r\n if (!q1.includes(\";\") && q1 !== \"\" && !q1.includes(\"inherit\")) {\r\n let font = q1.substring(\"font-family:\".length, q1.length + 1);\r\n if (\r\n clientFonts !== undefined &&\r\n !clientFonts.find((f) => {\r\n return f.name === font;\r\n })\r\n ) {\r\n if (font.includes(\" \")) {\r\n font = font.replace(\" \", \"+\");\r\n }\r\n let importStr = `@import url('https://fonts.googleapis.com/css?family=${font}:300,400,700,800&display=swap');`;\r\n googleFonts.push(importStr);\r\n } else {\r\n if (font.includes(\" \")) {\r\n font = font.replace(\" \", \"+\");\r\n }\r\n let importStr = `@import url('https://fonts.googleapis.com/css?family=${font}:300,400,700,800&display=swap');`;\r\n googleFonts.push(importStr);\r\n }\r\n }\r\n if (!s1.includes(\";\") && s1 !== \"\" && !s1.includes(\"inherit\")) {\r\n let font = s1.substring(\"font-family:\".length, s1.length + 1);\r\n if (\r\n clientFonts !== undefined &&\r\n !clientFonts.find((f) => {\r\n return f.name === font;\r\n })\r\n ) {\r\n if (font.includes(\" \")) {\r\n font = font.replace(\" \", \"+\");\r\n }\r\n let importStr = `@import url('https://fonts.googleapis.com/css?family=${font}:300,400,700,800&display=swap');`;\r\n googleFonts.push(importStr);\r\n } else {\r\n if (font.includes(\" \")) {\r\n font = font.replace(\" \", \"+\");\r\n }\r\n let importStr = `@import url('https://fonts.googleapis.com/css?family=${font}:300,400,700,800&display=swap');`;\r\n googleFonts.push(importStr);\r\n }\r\n }\r\n });\r\n\r\n let unique = [...new Set(googleFonts)];\r\n unique.map((gf) => {\r\n str += gf + \"\\n\";\r\n });\r\n clientFonts !== undefined &&\r\n clientFonts.map((cf) => {\r\n str += `@font-face{ font-family: ${cf.name}; src: url('${cf.url}')}`;\r\n });\r\n\r\n return str;\r\n};\r\n","export const globalConstants = {\r\n SET_SAVE_STATUS:'SET_SAVE_STATUS',\r\n SET_HEADER_HEIGHT:'SET_HEADER_HEIGHT',\r\n SET_BREADCRUMB_HEIGHT:'SET_BREADCRUMB_HEIGHT',\r\n SET_IS_LOADING:'SET_IS_LOADING',\r\n SHOW_MENU:'SHOW_MENU',\r\n}","const skipKeys = [\r\n 'interaction',\r\n 'spinner'\r\n\r\n]\r\nconst skipProps = [\r\n 'innerWidth',\r\n 'backgroundUrl',\r\n 'content'\r\n]\r\n\r\nconst keySubstitutions = [\r\n {\r\n name: 'menu', sub: [\r\n { value: '.styleWrapper .menu', present: true, },\r\n { value: '.menu', present: false }\r\n ]\r\n },\r\n {\r\n name: 'footer', sub: [\r\n { value: '.styleWrapper footer', present: true, },\r\n { value: 'footer', present: false }\r\n ]\r\n },\r\n {\r\n name: 'main', sub: [\r\n { value: '.styleWrapper body, #body', present: true, },\r\n { value: 'body, #body', present: false }\r\n ]\r\n },\r\n {\r\n name: 'content', sub: [\r\n { value: '.styleWrapper main', present: true },\r\n { value: 'main', present: false }\r\n ]\r\n },\r\n {\r\n name: 'text', sub: [\r\n { value: '.styleWrapper p', present: true },\r\n { value: 'p', present: false }\r\n ]\r\n },\r\n {\r\n name: 'title', sub: [\r\n { value: '.styleWrapper h1', present: true },\r\n { value: 'h1', present: false }\r\n ]\r\n },\r\n {\r\n name: 'a', sub: [\r\n { value: '.styleWrapper a', present: true },\r\n { value: 'a', present: false }\r\n ]\r\n },\r\n {\r\n name: 'button', sub: [\r\n { value: '.styleWrapper button', present: true },\r\n { value: 'button', present: false }\r\n ]\r\n },\r\n {\r\n name: 'header', sub: [\r\n { value: '.styleWrapper header', present: true },\r\n { value: 'header', present: false }\r\n ]\r\n },\r\n {\r\n name: 'footer', sub: [\r\n { value: '.styleWrapper footer', present: true },\r\n { value: 'footer', present: false }\r\n ]\r\n },\r\n {\r\n name: 'subtitle', sub: [\r\n { value: '.styleWrapper h2', present: true },\r\n { value: 'h2', present: false }\r\n ]\r\n },\r\n {\r\n name: 'tcell', sub: [\r\n { value: '.styleWrapper td', present: true },\r\n { value: 'td', present: false }\r\n ]\r\n },\r\n {\r\n name: 'thead', sub: [\r\n { value: '.styleWrapper th', present: true },\r\n { value: 'th', present: false }\r\n ]\r\n },\r\n {\r\n name: 'table', sub: [\r\n { value: '.styleWrapper table', present: true },\r\n { value: 'table', present: false }\r\n ]\r\n },\r\n {\r\n name: 'label', sub: [\r\n { value: '.styleWrapper label', present: true },\r\n { value: 'label', present: false }\r\n ]\r\n },\r\n]\r\n\r\nconst replaceKeyName = (key, presentation) => {\r\n let obj = keySubstitutions.find(ks => ks.name === key)\r\n if (!obj) return '';\r\n let val = obj.sub.find(s => s.present === presentation).value;\r\n return val;\r\n}\r\n\r\nconst convertPseudoClassesToCss = (pclass, action, style) => {\r\n const pseudoClass = action.replace('&', pclass);\r\n style = toKebabCase({ [pseudoClass]: { ...style } });\r\n return style;\r\n}\r\nconst converWebkitScroll = (scrollbar) => {\r\n const {\r\n thumbBackgroundColor,\r\n thumbBorderRadius,\r\n trackBackgroundColor,\r\n thumbColorHover, width } = scrollbar\r\n return `.jir-scroll::-webkit-scrollbar {\r\n width: ${width !== 'unset' ? width : '10px'} !important;\r\n \r\n }\r\n .jir-scroll::-webkit-scrollbar-track {\r\n background: ${trackBackgroundColor !== 'unset' ? trackBackgroundColor : 'transparent'} !important;\r\n }\r\n .jir-scroll::-webkit-scrollbar-thumb {\r\n background-color: ${thumbBackgroundColor !== 'unset' ? thumbBackgroundColor : '#aaaaaa'} !important;\r\n border-radius: ${thumbBorderRadius !== 'unset' ? thumbBorderRadius : '5px'} !important;\r\n \r\n }\r\n .jir-scroll::-webkit-scrollbar-thumb:hover {\r\n background-color: ${thumbColorHover !== 'unset' ? thumbColorHover : '#777777'} !important;\r\n }`\r\n\r\n}\r\n\r\nexport const toKebabCase = (style, presentation = false, scroll = false) => {\r\n const targetObj = Object.assign({}, style);\r\n let styleString = ''\r\n if(!scroll){\r\n for (const key in targetObj) {\r\n if (!Array.isArray(targetObj[key]) && !skipKeys.includes(key)) {\r\n let source = `${replaceKeyName(key, presentation)}{`;\r\n Object.entries(targetObj[key]).reduce((styleString, [propName, propValue]) => {\r\n if (propName.includes('&:')) {\r\n styleString += convertPseudoClassesToCss(key, propName, propValue)\r\n }\r\n else if (!skipProps.includes(propName)) {\r\n propName = propName.replace(/([A-Z])/g, matches => `-${matches[0].toLowerCase()}`);\r\n source += `${propName}:${propName === 'font-family' ? `'${propValue}'` : propValue};`\r\n }\r\n }, '')\r\n source += '}'\r\n styleString += source;\r\n }\r\n }\r\n }\r\n \r\n if (targetObj['scrollbar'] !== undefined) {\r\n styleString += converWebkitScroll(targetObj['scrollbar']);\r\n }\r\n if(scroll){\r\n styleString += converWebkitScroll(targetObj);\r\n }\r\n return styleString;\r\n}\r\n","import React, { memo, useEffect, useMemo, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Row, Col, Label, Popover, PopoverBody, PopoverHeader, Input, Button } from \"reactstrap\";\r\nimport { systemLabelActions } from \"../../store/actions/system/systemLabel/systemLabel.action\";\r\nimport \"./SystemLabel.css\";\r\nimport routes from \"../../routes\";\r\nimport { history } from \"../../helpers/history\";\r\nimport { getKey } from \"../../helpers/UrlHelper\";\r\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\r\nimport { Tooltip } from \"@material-ui/core\";\r\nfunction systemLabelIsEqual(prevProps, nextProps) {\r\n if (prevProps.systemLabels === nextProps.systemLabels && prevProps.systemLabels.loading == prevProps.systemLabels.loading && prevProps.systemLabels.groups === nextProps.systemLabels.groups && prevProps.name === nextProps.name)\r\n return true;\r\n else return false;\r\n}\r\nconst SystemLabel = memo(({ dispatch, groupName, name, user, systemLabels, asOption, asOption2 }) => {\r\n const { groups } = systemLabels;\r\n const [gName, setGroupName] = useState(null);\r\n const [creating, setCreating] = useState(false);\r\n const [isSaveable, setIsSaveable] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n const [languageCode, setLanguageCode] = useState(\"swe\");\r\n const isEditable = user && user.admin;\r\n const [editLabel, setEditLabel] = useState(null);\r\n const { location } = history;\r\n const [loaded, setLoaded] = useState(false);\r\n \r\n const labelList = useMemo(() => {\r\n if (groups && groups[gName]) return groups[gName];\r\n else return null;\r\n }, [groups, groups?.[gName]]);\r\n useEffect(() => {\r\n let langCode = null;\r\n if (location && location.search) {\r\n const params = new URLSearchParams(location.search);\r\n langCode = params.get(getKey(\"languageCode\", params));\r\n if (!langCode) langCode = params.get(getKey(\"lang\", params));\r\n if(langCode && langCode.length > 3){\r\n langCode = langCode.substr(0, 3);\r\n }\r\n }\r\n if (!langCode && user) langCode = user.userLang;\r\n if (!langCode) langCode = \"swe\";\r\n if (langCode !== languageCode) setLanguageCode(langCode);\r\n\r\n if (groupName) setGroupName(groupName);\r\n else {\r\n let activeRoute = routes.find((r) => {\r\n return comparePaths(location.pathname, r.path);\r\n });\r\n setGroupName(activeRoute.labelGroup);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!loaded && gName && languageCode && !systemLabels.loading && !groups && !groups?.[gName]) {\r\n dispatch(systemLabelActions.getGroup(languageCode, gName));\r\n setLoaded(true);\r\n }\r\n else if(!loaded && gName && languageCode && groups?.[gName]){\r\n setLoaded(true);\r\n }\r\n }, [gName, languageCode, groups]);\r\n\r\n const label = useMemo(() => {\r\n let currLabel = null;\r\n if (!labelList) return null;\r\n currLabel = labelList.find((l) => {\r\n return l.name === name && l.languageCode === (languageCode ? languageCode : (user && user.userLang) || \"swe\");\r\n });\r\n if (currLabel) {\r\n if (creating) {\r\n setCreating(false);\r\n }\r\n return currLabel;\r\n } else {\r\n if (!creating) {\r\n dispatch(systemLabelActions.create(name, languageCode, gName));\r\n setCreating(true);\r\n }\r\n return null;\r\n }\r\n }, [labelList, name]);\r\n\r\n const comparePaths = (p1, p2) => {\r\n //Special case, change this later on\r\n if (p1.includes(\"/register/\") && p2.includes(\"/register/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/survey/\") && p2.includes(\"/survey/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/digitalarena/\") && p2.includes(\"/digitalarena/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/backstage/\") && p2.includes(\"/backstage/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/editor/\") && p2.includes(\"/editor/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/digitalmeeting/\") && p2.includes(\"/digitalmeeting/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/session/moderator/\") && p2.includes(\"/session/moderator/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/session/client/\") && p2.includes(\"/session/client/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/presenter/\") && p2.includes(\"/presenter/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/session/stage/\") && p2.includes(\"/session/stage/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/session/chatmoderator/\") && p2.includes(\"/session/chatmoderator/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/exhibitor/\") && p2.includes(\"/exhibitor/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/exhibitor2/\") && p2.includes(\"/exhibitor2/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/booth/\") && p2.includes(\"/booth/\")) {\r\n return true;\r\n }\r\n if (p1.includes(\"/channels/\") && p2.includes(\"/channels/\")) {\r\n return true;\r\n }\r\n const locRegex = /\\/\\d+.*/g;\r\n const pathRegex = /\\/:id/g;\r\n p1 = p1.replace(locRegex, \"\").replace(pathRegex, \"\").toLowerCase();\r\n p2 = p2.replace(locRegex, \"\").replace(pathRegex, \"\").toLowerCase();\r\n return p1 === p2;\r\n };\r\n const toggle = (e) => {\r\n if (isEditable && e.ctrlKey === true) {\r\n e.stopPropagation();\r\n if (!open) setEditLabel({ ...label });\r\n setOpen(!open);\r\n }\r\n };\r\n const handleChange = (field, e) => {\r\n let newLabel = { ...editLabel };\r\n newLabel[field] = e.target.value;\r\n setEditLabel(newLabel);\r\n if (!isSaveable) {\r\n setIsSaveable(true);\r\n }\r\n };\r\n const onKeyPressed = (e) => {\r\n if (e.keyCode == 13 && e.shiftKey === false) {\r\n e.preventDefault();\r\n save();\r\n }\r\n };\r\n const stopShit = (e) => {\r\n if (open) {\r\n e.stopPropagation();\r\n }\r\n };\r\n const save = () => {\r\n const { systemLabelId, languageCode, value, hint } = editLabel;\r\n\r\n if (open && isSaveable) {\r\n dispatch(systemLabelActions.update(systemLabelId, value, hint, languageCode, groupName));\r\n }\r\n setOpen(false);\r\n setIsSaveable(false);\r\n label.value = value;\r\n label.hint = hint;\r\n setEditLabel(null);\r\n };\r\n const cancel = () => {\r\n setOpen(false);\r\n setIsSaveable(false);\r\n setEditLabel(null);\r\n };\r\n const onFocus = (e) => {\r\n e.target.select();\r\n };\r\n\r\n if (asOption && label) {\r\n return (\r\n \r\n );\r\n } else if (asOption2 && label) {\r\n return { value: asOption2, label: label.value };\r\n } else {\r\n return (\r\n \r\n {label && (\r\n \r\n {label.value}\r\n {isEditable && open && editLabel ? (\r\n \r\n {label.name + ` (${label.languageCode})[${gName}]`}\r\n \r\n \r\n \r\n \r\n handleChange(\"value\", e)}\r\n onKeyDown={onKeyPressed}\r\n />\r\n \r\n \r\n \r\n handleChange(\"hint\", e)}\r\n onKeyDown={onKeyPressed}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ) : null}\r\n {label.hint && label.hint.length > 0 ? (\r\n \r\n  \r\n {label.hint}
}>\r\n \r\n \r\n {/* */}\r\n {/* \r\n \r\n */}\r\n
\r\n ) : null}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}, systemLabelIsEqual);\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.authentication.user,\r\n systemLabels: state.systemLabels,\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(SystemLabel);\r\n","\r\nimport { authHeader } from \"../../../helpers/authHeader\";\r\nimport { handleResponse } from \"../../../helpers/handleresponse\";\r\n\r\nexport const systemLabelService = {\r\n get,\r\n getGroup,\r\n getAllGroups,\r\n update,\r\n updateRange,\r\n create,\r\n};\r\n\r\nasync function get(name, languageCode, groupName) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n\r\n return fetch(`./api/systemLabel/?languageCode=${languageCode}&groupName=${groupName}&name=${name}`, requestOptions)\r\n .then(handleResponse)\r\n .then(label => {\r\n return label;\r\n });\r\n}\r\nasync function create(name, languageCode, groupName) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body:JSON.stringify({labelName:name, languageCode, groupName})\r\n };\r\n\r\n return fetch(`./api/systemLabel/`, requestOptions)\r\n .then(handleResponse)\r\n .then(labelGroup => {\r\n return labelGroup;\r\n });\r\n}\r\nasync function update(id, value,hint, languageCode, groupName) {\r\n const requestOptions = {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({value, groupName,hint, id, languageCode} )\r\n };\r\n\r\n return fetch(`./api/systemLabel/`, requestOptions)\r\n .then(handleResponse);\r\n}\r\nasync function updateRange(labelArray) {\r\n const requestOptions = {\r\n method: \"PUT\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify(labelArray)\r\n };\r\n\r\n return fetch(`./api/systemLabel/range/`, requestOptions)\r\n .then(handleResponse);\r\n}\r\n\r\nasync function getGroup(languageCode, groupName) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n\r\n return fetch(`./api/systemLabel/group/?languageCode=${languageCode}&groupName=${groupName}`, requestOptions)\r\n .then(handleResponse)\r\n .then(group => {\r\n return group;\r\n });\r\n}\r\n\r\nasync function getAllGroups() {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n\r\n return fetch(`./api/systemLabel/all/`, requestOptions)\r\n .then(handleResponse)\r\n .then(groups => {\r\n return groups;\r\n });\r\n}\r\n\r\n","export const requestHandler = {\r\n setRequestTimer \r\n};\r\n\r\n\r\nconst setRequestTimer = (time, action) => {\r\n setTimeout(() => action(), time)\r\n}","import { alertActions } from \"../../alert.action\";\r\nimport { systemLabelConstants } from \"../../../../constants/system/systemLabels/systemLabels.constants\";\r\nimport { systemLabelService } from \"../../../../services/system/systemLabel/systemLabel.service\";\r\nimport { requestHandler } from \"../../../../helpers/requestHandler\";\r\n\r\nexport const systemLabelActions = {\r\n getAllGroups,\r\n getGroup,\r\n get,\r\n create,\r\n update,\r\n updateRange,\r\n};\r\n\r\nconst currentLoadingGroups = {};\r\nvar groupLoading = false;\r\nfunction getAllGroups() {\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n if (!groupLoading) {\r\n groupLoading = true;\r\n systemLabelService.getAllGroups().then(\r\n (groups) => {\r\n dispatch(success(groups));\r\n groupLoading = false;\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n }\r\n };\r\n\r\n function request() {\r\n return { type: systemLabelConstants.GET_ALL_SYSTEM_LABEL_GROUP_REQUEST };\r\n }\r\n function success(groups) {\r\n return {\r\n type: systemLabelConstants.GET_ALL_SYSTEM_LABEL_GROUP_SUCCESS,\r\n groups,\r\n };\r\n }\r\n function failure(error) {\r\n return {\r\n type: systemLabelConstants.GET_ALL_SYSTEM_LABEL_GROUP_FAILURE,\r\n error,\r\n };\r\n }\r\n}\r\n\r\nfunction getGroup(languageCode, groupName) {\r\n return (dispatch) => {\r\n if (groupName && !currentLoadingGroups[groupName]) {\r\n currentLoadingGroups[groupName] = true;\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n systemLabelService.getGroup(languageCode, groupName).then(\r\n (group) => {\r\n dispatch(success(group, groupName));\r\n currentLoadingGroups[groupName] = false;\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n currentLoadingGroups[groupName] = false;\r\n }\r\n );\r\n }\r\n };\r\n\r\n function request() {\r\n if (groupName === \"Core.Layout\") return { type: systemLabelConstants.GET_LAYOUT_LABEL_GROUP_REQUEST };\r\n else return { type: systemLabelConstants.GET_SYSTEM_LABEL_GROUP_REQUEST };\r\n }\r\n function success(group, groupName) {\r\n if (groupName === \"Core.Layout\")\r\n return {\r\n type: systemLabelConstants.GET_LAYOUT_LABEL_GROUP_SUCCESS,\r\n group,\r\n groupName,\r\n };\r\n else\r\n return {\r\n type: systemLabelConstants.GET_SYSTEM_LABEL_GROUP_SUCCESS,\r\n group,\r\n groupName,\r\n };\r\n }\r\n function failure(error) {\r\n if (groupName === \"Core.Layout\")\r\n return {\r\n type: systemLabelConstants.GET_LAYOUT_LABEL_GROUP_FAILURE,\r\n error,\r\n };\r\n else\r\n return {\r\n type: systemLabelConstants.GET_SYSTEM_LABEL_GROUP_FAILURE,\r\n error,\r\n };\r\n }\r\n}\r\n\r\nfunction get(name, languageCode, groupName) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n systemLabelService.get(name, languageCode, groupName).then(\r\n (label) => {\r\n dispatch(success(label));\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: systemLabelConstants.GET_SYSTEM_LABEL_REQUEST };\r\n }\r\n function success(label) {\r\n return { type: systemLabelConstants.GET_SYSTEM_LABEL_SUCCESS, label };\r\n }\r\n function failure(error) {\r\n return { type: systemLabelConstants.GET_SYSTEM_LABEL_FAILURE, error };\r\n }\r\n}\r\n\r\nfunction create(name, languageCode, groupName) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n systemLabelService.create(name, languageCode, groupName).then(\r\n (labelGroup) => {\r\n dispatch(success(labelGroup, groupName));\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n if (groupName === \"Core.Layout\") return { type: systemLabelConstants.CREATE_LAYOUT_LABEL_REQUEST };\r\n else return { type: systemLabelConstants.CREATE_SYSTEM_LABEL_REQUEST };\r\n }\r\n function success(labelGroup, groupName) {\r\n if (groupName === \"Core.Layout\")\r\n return {\r\n type: systemLabelConstants.CREATE_LAYOUT_LABEL_SUCCESS,\r\n group: labelGroup,\r\n groupName,\r\n };\r\n else\r\n return {\r\n type: systemLabelConstants.CREATE_SYSTEM_LABEL_SUCCESS,\r\n group: labelGroup,\r\n groupName,\r\n };\r\n }\r\n function failure(error) {\r\n if (groupName === \"Core.Layout\") return { type: systemLabelConstants.CREATE_LAYOUT_LABEL_FAILURE, error };\r\n else return { type: systemLabelConstants.CREATE_SYSTEM_LABEL_FAILURE, error };\r\n }\r\n}\r\n\r\nfunction update(id, value, hint, languageCode, groupName) {\r\n /* requestHandler.setRequestTimer(() => { */\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n\r\n systemLabelService.update(id, value, hint, languageCode, groupName).then(\r\n (_) => {\r\n dispatch(success(true));\r\n dispatch(getGroup(languageCode, groupName));\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n /* }, 5000); */\r\n\r\n function request() {\r\n return { type: systemLabelConstants.UPDATE_SYSTEM_LABEL_REQUEST };\r\n }\r\n function success(status) {\r\n return { type: systemLabelConstants.UPDATE_SYSTEM_LABEL_SUCCESS, status };\r\n }\r\n function failure(error) {\r\n return { type: systemLabelConstants.UPDATE_SYSTEM_LABEL_FAILURE, error };\r\n }\r\n}\r\n\r\nfunction updateRange(labelArray) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n\r\n systemLabelService.updateRange(labelArray).then(\r\n (_) => {\r\n dispatch(success(true));\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: systemLabelConstants.UPDATE_RANGE_SYSTEM_LABEL_REQUEST };\r\n }\r\n function success(status) {\r\n return {\r\n type: systemLabelConstants.UPDATE_RANGE_SYSTEM_LABEL_SUCCESS,\r\n status,\r\n };\r\n }\r\n function failure(error) {\r\n return {\r\n type: systemLabelConstants.UPDATE_RANGE_SYSTEM_LABEL_FAILURE,\r\n error,\r\n };\r\n }\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { archiveConstants } from \"./contstants/archive.contstants\";\r\nimport { authHeader } from \"../../helpers/authHeader\";\r\nimport { handleResponse } from \"../../helpers/handleresponse\";\r\nimport { securityHelper } from \"../../helpers/securityHelper\";\r\nimport { cmsActions } from \"../../store/actions/cms/cms.action\";\r\nimport FileStorage from \"./FileStorage\";\r\n\r\nconst defaultState = {\r\n files: [],\r\n isOpen: false,\r\n filtered: null,\r\n uploadingInfo: null,\r\n selectedFile: null,\r\n unsplashFile: null,\r\n isUploading: false,\r\n storageUsage: 0,\r\n isCompleted: false,\r\n showLaunchBtn: true,\r\n fontEnabled: false,\r\n display: archiveConstants.IMAGE,\r\n useCropper: false,\r\n filterType: archiveConstants.IMAGE_TYPES,\r\n};\r\n\r\nfunction FileStorageWrapper(props) {\r\n const [state, setState] = useState(defaultState);\r\n const stateRef = useRef();\r\n stateRef.current = state;\r\n const {\r\n fontEnabled,\r\n onUseSelected,\r\n showLaunchBtn,\r\n isOpen,\r\n toggle,\r\n dispatch,\r\n cms,\r\n eventId,\r\n initialDisplay\r\n } = props;\r\n\r\n useEffect(() => {\r\n download();\r\n const newState = {\r\n ...stateRef.current,\r\n isOpen,\r\n showLaunchBtn,\r\n fontEnabled,\r\n display: initialDisplay ? initialDisplay : archiveConstants.IMAGE,\r\n filterType: initialDisplay ? archiveConstants[initialDisplay + \"_TYPES\"] : archiveConstants.IMAGE_TYPES,\r\n };\r\n setState(newState);\r\n }, []);\r\n const onSelect = (file, unsplash = false) =>\r\n setState({\r\n ...stateRef.current,\r\n selectedFile: !unsplash ? file : null,\r\n unsplashFile: unsplash ? file : null,\r\n });\r\n const filter = (str) => {\r\n if (!str) setState({ ...stateRef.current, filtered: [] });\r\n const { files } = stateRef.current;\r\n const filteredFiles = [\r\n ...files.filter((f, i) => {\r\n return f.name.includes(str);\r\n }),\r\n ];\r\n setState({\r\n ...stateRef.current,\r\n filtered: filteredFiles,\r\n });\r\n };\r\n\r\n const download = (fileType, all = false) => {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({}),\r\n };\r\n fetch(\r\n `./api/files/` + window.location.search + `?eventId=${eventId}`,\r\n requestOptions\r\n ).then((response) =>\r\n response.text().then((text) => {\r\n try {\r\n const storageSummary = JSON.parse(text);\r\n storageSummary.files &&\r\n storageSummary.files.map((f, i) => {\r\n return Object.assign(\r\n {},\r\n { ...f, key: securityHelper.createGuid() }\r\n );\r\n });\r\n if (storageSummary !== null && storageSummary !== undefined) {\r\n setState({\r\n ...stateRef.current,\r\n files: storageSummary.files,\r\n storageUsage: storageSummary.eventMemoryUsage,\r\n });\r\n }\r\n } catch (error) {\r\n console.error(\"DOWNLOAD_ERROR\", error);\r\n }\r\n })\r\n );\r\n };\r\n const toggleParent = () => {\r\n setState({ ...stateRef.current, isOpen: false });\r\n if (toggle && typeof toggle === \"function\") toggle();\r\n };\r\n const navigate = (display, filterType) =>\r\n setState({\r\n ...stateRef.current,\r\n display,\r\n filterType,\r\n unsplashFile: null,\r\n selectedFile: null,\r\n });\r\n\r\n const onSelectFile = () => {\r\n const { selectedFile } = stateRef.current;\r\n if (!selectedFile) return;\r\n if (onUseSelected && typeof onUseSelected === \"function\") {\r\n if (selectedFile.type.includes(\"font/\")) {\r\n let fontName = selectedFile.name.substring(\r\n selectedFile.name.lastIndexOf(\"/\") + 1,\r\n selectedFile.name.indexOf(\".\")\r\n );\r\n onUseSelected(fontName);\r\n return;\r\n }\r\n onUseSelected(selectedFile.url, selectedFile.srcset);\r\n toggle();\r\n }\r\n };\r\n\r\n const onUnsplashDownload = (unsplashFile) => {\r\n const fileInfo = {\r\n name: \"unsplash_image_\" + securityHelper.createGuid(),\r\n size: 0,\r\n type: \"image/jpeg\",\r\n file: unsplashFile.urls.raw,\r\n };\r\n\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n setState({\r\n ...stateRef.current,\r\n uploadingInfo: fileInfo,\r\n isUploading: true,\r\n display: archiveConstants.IMAGE,\r\n filterType: archiveConstants.IMAGE_TYPES,\r\n });\r\n\r\n let queryStr = \"\";\r\n if (window.location.search) {\r\n queryStr =\r\n window.location.search +\r\n `&eventId=` +\r\n eventId +\r\n \"&url=\" +\r\n encodeURIComponent(unsplashFile.urls.raw);\r\n } else {\r\n queryStr =\r\n \"?url=\" +\r\n encodeURIComponent(unsplashFile.urls.raw) +\r\n `&eventId=` +\r\n eventId;\r\n }\r\n\r\n const { storageUsage, files } = stateRef.current;\r\n\r\n fetch(`./api/files/unsplash` + queryStr, requestOptions)\r\n .then(handleResponse)\r\n .then((file) => {\r\n setState({\r\n ...stateRef.current,\r\n isCompleted: true,\r\n unsplashFile: null,\r\n selectedFile: { ...file },\r\n isUploading: false,\r\n display: archiveConstants.IMAGE,\r\n filterType: archiveConstants.IMAGE_TYPES,\r\n uploadingInfo: null,\r\n storageUsage: storageUsage + file.size,\r\n files: file ? [Object.assign({}, { ...file }), ...files] : [...files],\r\n });\r\n })\r\n .catch((err) => {\r\n console.error(err.message);\r\n });\r\n };\r\n\r\n const onDeleteFile = () => {\r\n const { selectedFile } = stateRef.current;\r\n let filePath = selectedFile.name;\r\n filePath = filePath.substring(filePath.lastIndexOf(\"/\") + 1);\r\n let isCropped = selectedFile.isCropped ?? false;\r\n\r\n const requestOptions = {\r\n method: \"DELETE\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n\r\n fetch(`./api/files/${filePath}/?isCropped=${isCropped}` + window.location.search, requestOptions)\r\n .then(handleResponse)\r\n .then((_) => {\r\n const files = Array.from(stateRef.current.files);\r\n const indexToRemove = files.indexOf(\r\n files.find((f) => {\r\n return f.id === selectedFile.id;\r\n })\r\n );\r\n files.splice(indexToRemove, 1);\r\n if (selectedFile.type.includes(\"font/\")) {\r\n let fontName = selectedFile.name.substring(\r\n selectedFile.name.lastIndexOf(\"/\") + 1,\r\n selectedFile.name.indexOf(\".\")\r\n );\r\n dispatch(cmsActions.removeFont(fontName));\r\n }\r\n setState({ ...stateRef.current, selectedFile: null, files });\r\n })\r\n .catch((err) => {\r\n console.error(err.message);\r\n });\r\n };\r\n\r\n const onUploadCropped = (img) => {\r\n const { storageUsage, files } = stateRef.current;\r\n let size = new Buffer(img, \"base64\").length / 1000;\r\n const uploadingInfo = {\r\n name: \"_cropped_\" + securityHelper.createGuid(),\r\n size: size,\r\n type: \"image/jpeg\",\r\n file: img,\r\n };\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(uploadingInfo),\r\n };\r\n setState({ ...stateRef.current, uploadingInfo, isUploading: true });\r\n\r\n fetch(`./api/files/` + window.location.search, requestOptions)\r\n .then(handleResponse)\r\n .then((file) => {\r\n this.setState(\r\n {\r\n storageUsage: storageUsage + file.size,\r\n selectedFile: Object.assign({}, { ...file }),\r\n files: file ? [...files, Object.assign({}, { ...file })] : {},\r\n },\r\n () => {\r\n setTimeout(() => {\r\n setState({\r\n isUploading: false,\r\n uploadingInfo: null,\r\n useCropper: false,\r\n });\r\n }, 2500);\r\n }\r\n );\r\n })\r\n .catch((err) => {\r\n console.error(err.message);\r\n });\r\n };\r\n const onUpload = (e) => {\r\n const file = e.target.files[0];\r\n let reader = new FileReader();\r\n const { files, selectedFile, storageUsage, fontEnabled } = stateRef.current;\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n if (reader.result) {\r\n const fileInfo = {\r\n name: file.name,\r\n size: file.size,\r\n type: file.type,\r\n file: reader.result,\r\n };\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(fileInfo),\r\n };\r\n setState({ ...stateRef.current, uploadingInfo: fileInfo, isUploading: true });\r\n fetch(\r\n `./api/files/?`/* + window.location.search + */ + `eventId=${eventId}`,\r\n requestOptions\r\n )\r\n .then(handleResponse)\r\n .then((file) => {\r\n setState({\r\n ...stateRef.current,\r\n storageUsage: storageUsage + file.size,\r\n selectedFile: Object.assign({}, { ...file }),\r\n isUploading: false,\r\n uploadingInfo: null,\r\n files: file\r\n ? [Object.assign({}, { ...file }), ...files]\r\n : [...files],\r\n });\r\n if (file.type.includes(\"font/\")) {\r\n if (fontEnabled) {\r\n let fontName = file.name.substring(\r\n file.name.lastIndexOf(\"/\") + 1,\r\n file.name.indexOf(\".\")\r\n );\r\n\r\n props.onFontUpload(fontName, file.url);\r\n }\r\n navigate(archiveConstants.FONT, archiveConstants.FONT_TYPES);\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err.message);\r\n });\r\n }\r\n };\r\n };\r\n const toggleTheme = () =>\r\n setState({ ...stateRef.current, theme: stateRef.current.theme == \"DARK\" ? \"LIGHT\" : \"DARK\" });\r\n\r\n const functions = {\r\n download,\r\n onUploadCropped,\r\n onDeleteFile,\r\n onUnsplashDownload,\r\n onSelectFile,\r\n navigate,\r\n onUpload,\r\n toggleParent,\r\n onSelect,\r\n filter,\r\n };\r\n const api = { ...functions, ...stateRef.current };\r\n return ;\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n cms: state.cms,\r\n eventId: state.cms.eventId,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(FileStorageWrapper);\r\n","import Axios from \"axios\";\r\n\r\nexport const clickTrackLog = (\r\n eventId,\r\n exhibitorId,\r\n clientKey,\r\n name,\r\n value,\r\n area,\r\n callback = () => null\r\n) => {\r\n callback();\r\n\r\n if (!eventId || !clientKey || !name || !value || !area) return;\r\n\r\n Axios.post(`./api/link/clicktrack/`, {\r\n eventId,\r\n exhibitorId,\r\n clientKey,\r\n value,\r\n name,\r\n area,\r\n }).catch((err) => console.error(\"COULD NOT LOG CLICK\"));\r\n};\r\n","export function lsgetItem(param) {\r\n let user = localStorage.getItem(param) ? JSON.parse(localStorage.getItem(param)) : null;\r\n/* if(!encodedUser) return null;\r\n let user = JSON.parse(atob(encodedUser)); */\r\n return user;\r\n}\r\n\r\nexport function lssetItem(user,param) {\r\n let strUser = JSON.stringify(user);\r\n/* let encodedUser = btoa(strUser); */\r\n localStorage.setItem(param, strUser);\r\n}","import tinymce from 'tinymce/tinymce';\r\ntinymce.addI18n('sv_SE',{\r\n\"Redo\": \"G\\u00f6r om\",\r\n\"Undo\": \"\\u00c5ngra\",\r\n\"Cut\": \"Klipp ut\",\r\n\"Copy\": \"Kopiera\",\r\n\"Paste\": \"Klistra in\",\r\n\"Select all\": \"Markera allt\",\r\n\"New document\": \"Nytt dokument\",\r\n\"Ok\": \"Ok\",\r\n\"Cancel\": \"Avbryt\",\r\n\"Visual aids\": \"Visuella hj\\u00e4lpmedel\",\r\n\"Bold\": \"Fet\",\r\n\"Italic\": \"Kursiv\",\r\n\"Underline\": \"Understruken\",\r\n\"Strikethrough\": \"Genomstruken\",\r\n\"Superscript\": \"Upph\\u00f6jd\",\r\n\"Subscript\": \"Neds\\u00e4nkt\",\r\n\"Clear formatting\": \"Rensa formatering\",\r\n\"Align left\": \"V\\u00e4nsterjustera\",\r\n\"Align center\": \"Centrera\",\r\n\"Align right\": \"H\\u00f6gerjustera\",\r\n\"Justify\": \"Verifiera\",\r\n\"Bullet list\": \"Punktlista\",\r\n\"Numbered list\": \"Nummerlista\",\r\n\"Decrease indent\": \"Minska indrag\",\r\n\"Increase indent\": \"\\u00d6ka indrag\",\r\n\"Close\": \"St\\u00e4ng\",\r\n\"Formats\": \"Format\",\r\n\"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\\/C\\/V keyboard shortcuts instead.\": \"Din webbl\\u00e4sare st\\u00f6djer inte direkt \\u00e5tkomst till klippboken. Anv\\u00e4nd kortkommandona Ctrl\\u00a0+\\u00a0X\\/C\\/V i st\\u00e4llet.\",\r\n\"Headers\": \"Rubriker\",\r\n\"Header 1\": \"Rubrik 1\",\r\n\"Header 2\": \"Rubrik 2\",\r\n\"Header 3\": \"Rubrik 3\",\r\n\"Header 4\": \"Rubrik 4\",\r\n\"Header 5\": \"Rubrik 5\",\r\n\"Header 6\": \"Rubrik 6\",\r\n\"Headings\": \"Rubriker\",\r\n\"Heading 1\": \"Rubrik 1\",\r\n\"Heading 2\": \"Rubrik 2\",\r\n\"Heading 3\": \"Rubrik 3\",\r\n\"Heading 4\": \"Rubrik 4\",\r\n\"Heading 5\": \"Rubrik 5\",\r\n\"Heading 6\": \"Rubrik 6\",\r\n\"Preformatted\": \"F\\u00f6rformaterad\",\r\n\"Div\": \"Div\",\r\n\"Pre\": \"Pre\",\r\n\"Code\": \"Kod\",\r\n\"Paragraph\": \"Avsnitt\",\r\n\"Blockquote\": \"Blockquote\",\r\n\"Inline\": \"Inline\",\r\n\"Blocks\": \"Block\",\r\n\"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.\": \"Klistra in \\u00e4r nu i textl\\u00e4ge. Inneh\\u00e5ll kommer att konverteras till text tills du sl\\u00e5r av detta l\\u00e4ge.\",\r\n\"Fonts\": \"Typsnitt\",\r\n\"Font Sizes\": \"Teckenstorlek\",\r\n\"Class\": \"Klass\",\r\n\"Browse for an image\": \"Bl\\u00e4ddra efter en bild\",\r\n\"OR\": \"ELLER\",\r\n\"Drop an image here\": \"Sl\\u00e4pp en bild h\\u00e4r\",\r\n\"Upload\": \"Ladda upp\",\r\n\"Block\": \"Block\",\r\n\"Align\": \"Justera\",\r\n\"Default\": \"Original\",\r\n\"Circle\": \"Cirkel\",\r\n\"Disc\": \"Disk\",\r\n\"Square\": \"Fyrkant\",\r\n\"Lower Alpha\": \"Gemener\",\r\n\"Lower Greek\": \"Grekiska gemener\",\r\n\"Lower Roman\": \"Romerska gemener\",\r\n\"Upper Alpha\": \"Versaler\",\r\n\"Upper Roman\": \"Romerska versaler\",\r\n\"Anchor...\": \"Ankare...\",\r\n\"Name\": \"Namn\",\r\n\"Id\": \"Id\",\r\n\"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.\": \"Id skall b\\u00f6rja med en bokstav och f\\u00f6ljande tecken ska vara bokst\\u00e4ver, nummer, punkter, understr\\u00e4ck eller kolon.\",\r\n\"You have unsaved changes are you sure you want to navigate away?\": \"Du har f\\u00f6r\\u00e4ndringar som du inte har sparat. \\u00c4r du s\\u00e4ker p\\u00e5 att du vill navigera vidare?\",\r\n\"Restore last draft\": \"\\u00c5terst\\u00e4ll senaste utkast\",\r\n\"Special characters...\": \"Specialtecken...\",\r\n\"Source code\": \"K\\u00e4llkod\",\r\n\"Insert\\/Edit code sample\": \"Infoga\\/Redigera k\\u00e5d exempel\",\r\n\"Language\": \"Spr\\u00e5k\",\r\n\"Code sample...\": \"Kodexempel...\",\r\n\"Color Picker\": \"F\\u00e4rgv\\u00e4ljare\",\r\n\"R\": \"R\",\r\n\"G\": \"G\",\r\n\"B\": \"B\",\r\n\"Left to right\": \"V\\u00e4nster till h\\u00f6ger\",\r\n\"Right to left\": \"H\\u00f6ger till v\\u00e4nster\",\r\n\"Emoticons...\": \"Emoticons...\",\r\n\"Metadata and Document Properties\": \"Metadata och dokumentegenskaper\",\r\n\"Title\": \"Titel\",\r\n\"Keywords\": \"Nyckelord\",\r\n\"Description\": \"Beskrivning\",\r\n\"Robots\": \"Robotar\",\r\n\"Author\": \"F\\u00f6rfattare\",\r\n\"Encoding\": \"Encoding\",\r\n\"Fullscreen\": \"Fullsk\\u00e4rm\",\r\n\"Action\": \"H\\u00e4ndelse\",\r\n\"Shortcut\": \"Kortkommando\",\r\n\"Help\": \"Hj\\u00e4lp\",\r\n\"Address\": \"Adress\",\r\n\"Focus to menubar\": \"Fokusera p\\u00e5 menyrad\",\r\n\"Focus to toolbar\": \"Fokusera p\\u00e5 verktygsrad\",\r\n\"Focus to element path\": \"Fokusera p\\u00e5 elements\\u00f6kv\\u00e4gsrad\",\r\n\"Focus to contextual toolbar\": \"Fokusera p\\u00e5 den kontextuella verktygsraden\",\r\n\"Insert link (if link plugin activated)\": \"Infoga l\\u00e4nk (om link-pluginet \\u00e4r aktiverat)\",\r\n\"Save (if save plugin activated)\": \"Spara (om save-pluginet \\u00e4r aktiverat)\",\r\n\"Find (if searchreplace plugin activated)\": \"S\\u00f6k (om searchreplace-pluginet \\u00e4r aktiverat)\",\r\n\"Plugins installed ({0}):\": \"Installerade plugins ({0}):\",\r\n\"Premium plugins:\": \"Premiumplugins:\",\r\n\"Learn more...\": \"L\\u00e4s mer...\",\r\n\"You are using {0}\": \"Du anv\\u00e4nder {0}\",\r\n\"Plugins\": \"Plugins\",\r\n\"Handy Shortcuts\": \"Kortkommandon\",\r\n\"Horizontal line\": \"Horisontell linje\",\r\n\"Insert\\/edit image\": \"Infoga\\/redigera bild\",\r\n\"Image description\": \"Bildbeskrivning\",\r\n\"Source\": \"K\\u00e4lla\",\r\n\"Dimensions\": \"Dimensioner\",\r\n\"Constrain proportions\": \"Begr\\u00e4nsa proportioner\",\r\n\"General\": \"Generella\",\r\n\"Advanced\": \"Avancerat\",\r\n\"Style\": \"Stil\",\r\n\"Vertical space\": \"Vertikaltutrymme\",\r\n\"Horizontal space\": \"Horisontellt utrymme\",\r\n\"Border\": \"Ram\",\r\n\"Insert image\": \"Infoga bild\",\r\n\"Image...\": \"Bild...\",\r\n\"Image list\": \"Bildlista\",\r\n\"Rotate counterclockwise\": \"Rotera moturs\",\r\n\"Rotate clockwise\": \"Rotera medurs\",\r\n\"Flip vertically\": \"Spegelv\\u00e4nd vertikalt\",\r\n\"Flip horizontally\": \"Spegelv\\u00e4nd horisontellt\",\r\n\"Edit image\": \"Redigera bild\",\r\n\"Image options\": \"Bild inst\\u00e4llningar\",\r\n\"Zoom in\": \"Zooma in\",\r\n\"Zoom out\": \"Zooma ut\",\r\n\"Crop\": \"Besk\\u00e4r\",\r\n\"Resize\": \"Skala om\",\r\n\"Orientation\": \"Orientera\",\r\n\"Brightness\": \"Ljusstyrka\",\r\n\"Sharpen\": \"Sk\\u00e4rpa\",\r\n\"Contrast\": \"Kontrast\",\r\n\"Color levels\": \"F\\u00e4rgniv\\u00e5er\",\r\n\"Gamma\": \"Gamma\",\r\n\"Invert\": \"Invertera\",\r\n\"Apply\": \"Applicera\",\r\n\"Back\": \"Tillbaka\",\r\n\"Insert date\\/time\": \"Infoga datum\\/tid\",\r\n\"Date\\/time\": \"Datum\\/tid\",\r\n\"Insert\\/Edit Link\": \"Infoga\\/redigera l\\u00e4nk\",\r\n\"Insert\\/edit link\": \"Infoga\\/redigera l\\u00e4nk\",\r\n\"Text to display\": \"Text att visa\",\r\n\"Url\": \"Url\",\r\n\"Open link in...\": \"\\u00d6ppna l\\u00e4nk i...\",\r\n\"Current window\": \"Nuvarande f\\u00f6nster\",\r\n\"None\": \"Ingen\",\r\n\"New window\": \"Nytt f\\u00f6nster\",\r\n\"Remove link\": \"Ta bort l\\u00e4nk\",\r\n\"Anchors\": \"Bokm\\u00e4rken\",\r\n\"Link...\": \"L\\u00e4nk...\",\r\n\"Paste or type a link\": \"Klistra in eller skriv en l\\u00e4nk\",\r\n\"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?\": \"Urlen du angav verkar vara en epost adress. Vill du l\\u00e4gga till ett mailto: prefix?\",\r\n\"The URL you entered seems to be an external link. Do you want to add the required http:\\/\\/ prefix?\": \"Urlen du angav verkar vara en extern l\\u00e4nk. Vill du l\\u00e4gga till http:\\/\\/ prefixet?\",\r\n\"Link list\": \"L\\u00e4nklista\",\r\n\"Insert video\": \"Infoga video\",\r\n\"Insert\\/edit video\": \"Infoga\\/redigera video\",\r\n\"Insert\\/edit media\": \"Infoga\\/redigera media\",\r\n\"Alternative source\": \"Alternativ k\\u00e4lla\",\r\n\"Alternative source URL\": \"Alternativ k\\u00e4llwebbadress\",\r\n\"Media poster (Image URL)\": \"Mediaposter (bildwebbadress)\",\r\n\"Paste your embed code below:\": \"Klistra in din inb\\u00e4ddningskod nedan:\",\r\n\"Embed\": \"Inb\\u00e4ddning\",\r\n\"Media...\": \"Media...\",\r\n\"Nonbreaking space\": \"Avbrottsfritt mellanrum\",\r\n\"Page break\": \"Sidbrytning\",\r\n\"Paste as text\": \"Klistra in som text\",\r\n\"Preview\": \"F\\u00f6rhandsgranska\",\r\n\"Print...\": \"Skriv ut...\",\r\n\"Save\": \"Spara\",\r\n\"Find\": \"S\\u00f6k\",\r\n\"Replace with\": \"Ers\\u00e4tt med\",\r\n\"Replace\": \"Ers\\u00e4tt\",\r\n\"Replace all\": \"Ers\\u00e4tt alla\",\r\n\"Previous\": \"F\\u00f6reg\\u00e5ende\",\r\n\"Next\": \"N\\u00e4sta\",\r\n\"Find and replace...\": \"S\\u00f6k och ers\\u00e4tt...\",\r\n\"Could not find the specified string.\": \"Kunde inte hitta den specifierade st\\u00e4ngen.\",\r\n\"Match case\": \"Matcha gemener\\/versaler\",\r\n\"Find whole words only\": \"Hitta endast hela ord\",\r\n\"Spell check\": \"Stavningskontroll\",\r\n\"Ignore\": \"Ignorera\",\r\n\"Ignore all\": \"Ignorera alla\",\r\n\"Finish\": \"Avsluta\",\r\n\"Add to Dictionary\": \"L\\u00e4gg till i ordlista\",\r\n\"Insert table\": \"Infoga tabell\",\r\n\"Table properties\": \"Tabellegenskaper\",\r\n\"Delete table\": \"Radera tabell\",\r\n\"Cell\": \"Cell\",\r\n\"Row\": \"Rad\",\r\n\"Column\": \"Kolumn\",\r\n\"Cell properties\": \"Cellegenskaper\",\r\n\"Merge cells\": \"Sammanfoga celler\",\r\n\"Split cell\": \"Bryt is\\u00e4r celler\",\r\n\"Insert row before\": \"Infoga rad f\\u00f6re\",\r\n\"Insert row after\": \"Infoga rad efter\",\r\n\"Delete row\": \"Radera rad\",\r\n\"Row properties\": \"Radegenskaper\",\r\n\"Cut row\": \"Klipp ut rad\",\r\n\"Copy row\": \"Kopiera rad\",\r\n\"Paste row before\": \"Klista in rad f\\u00f6re\",\r\n\"Paste row after\": \"Klistra in rad efter\",\r\n\"Insert column before\": \"Infoga kolumn f\\u00f6re\",\r\n\"Insert column after\": \"Infoga kolumn efter\",\r\n\"Delete column\": \"Radera kolumn\",\r\n\"Cols\": \"Kolumner\",\r\n\"Rows\": \"Rader\",\r\n\"Width\": \"Bredd\",\r\n\"Height\": \"H\\u00f6jd\",\r\n\"Cell spacing\": \"Cellmellanrum\",\r\n\"Cell padding\": \"Cellpaddning\",\r\n\"Show caption\": \"Visa bildtext\",\r\n\"Left\": \"V\\u00e4nster\",\r\n\"Center\": \"Centrum\",\r\n\"Right\": \"H\\u00f6ger\",\r\n\"Cell type\": \"Celltyp\",\r\n\"Scope\": \"Omf\\u00e5ng\",\r\n\"Alignment\": \"Justering\",\r\n\"H Align\": \"H-justering\",\r\n\"V Align\": \"V-justering\",\r\n\"Top\": \"Toppen\",\r\n\"Middle\": \"Mitten\",\r\n\"Bottom\": \"Botten\",\r\n\"Header cell\": \"Huvudcell\",\r\n\"Row group\": \"Radgrupp\",\r\n\"Column group\": \"Kolumngrupp\",\r\n\"Row type\": \"Radtyp\",\r\n\"Header\": \"Huvud\",\r\n\"Body\": \"Kropp\",\r\n\"Footer\": \"Fot\",\r\n\"Border color\": \"Ramf\\u00e4rg\",\r\n\"Insert template...\": \"Infoga mall...\",\r\n\"Templates\": \"Mallar\",\r\n\"Template\": \"Mall\",\r\n\"Text color\": \"Textf\\u00e4rg\",\r\n\"Background color\": \"Bakgrundsf\\u00e4rg\",\r\n\"Custom...\": \"Anpassad...\",\r\n\"Custom color\": \"Anpassad f\\u00e4rg\",\r\n\"No color\": \"Ingen f\\u00e4rg\",\r\n\"Remove color\": \"Ta bort f\\u00e4rg\",\r\n\"Table of Contents\": \"Inneh\\u00e5llsf\\u00f6rteckning\",\r\n\"Show blocks\": \"Visa block\",\r\n\"Show invisible characters\": \"Visa onsynliga tecken\",\r\n\"Word count\": \"Ordantal\",\r\n\"Words: {0}\": \"Ord: {0}\",\r\n\"{0} words\": \"{0} ord\",\r\n\"File\": \"Fil\",\r\n\"Edit\": \"Redigera\",\r\n\"Insert\": \"Infoga\",\r\n\"View\": \"Visa\",\r\n\"Format\": \"Format\",\r\n\"Table\": \"Tabell\",\r\n\"Tools\": \"Verktyg\",\r\n\"Powered by {0}\": \"Powered by {0}\",\r\n\"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help\": \"Textredigerare. Tryck ALT-F9 f\\u00f6r menyn. Tryck ALT-F10 f\\u00f6r verktygsrader. Tryck ALT-0 f\\u00f6r hj\\u00e4lp.\",\r\n\"Image title\": \"Bildtitel\",\r\n\"Border width\": \"Kantlinjebredd\",\r\n\"Border style\": \"Kantlinjestil\",\r\n\"Error\": \"Fel\",\r\n\"Warn\": \"Varning\",\r\n\"Valid\": \"Giltig\",\r\n\"To open the popup, press Shift+Enter\": \"Tryck p\\u00e5 Shift\\u00a0+\\u00a0Enter f\\u00f6r att \\u00f6ppna popup-f\\u00f6nstret\",\r\n\"Rich Text Area. Press ALT-0 for help.\": \"Omr\\u00e5de med formaterad text. Tryck p\\u00e5 ALT-0 f\\u00f6r hj\\u00e4lp.\",\r\n\"System Font\": \"Systemtypsnitt\",\r\n\"Failed to upload image: {0}\": \"Kunde inte ladda upp bild: {0}\",\r\n\"Failed to load plugin: {0} from url {1}\": \"Kunde inte l\\u00e4sa in insticksprogram: {0} fr\\u00e5n webbadress {1}\",\r\n\"Failed to load plugin url: {0}\": \"Kunde inte l\\u00e4sa in webbadress f\\u00f6r insticksprogram: {0}\",\r\n\"Failed to initialize plugin: {0}\": \"Kunde inte initiera insticksprogram: {0}\",\r\n\"example\": \"exempel\",\r\n\"Search\": \"S\\u00f6k\",\r\n\"All\": \"Alla\",\r\n\"Currency\": \"Valuta\",\r\n\"Text\": \"Text\",\r\n\"Quotations\": \"Citattecken\",\r\n\"Mathematical\": \"Matematiskt\",\r\n\"Extended Latin\": \"Ut\\u00f6kad latin\",\r\n\"Symbols\": \"Symboler\",\r\n\"Arrows\": \"Pilar\",\r\n\"User Defined\": \"Anv\\u00e4ndardefinierade\",\r\n\"dollar sign\": \"dollartecken\",\r\n\"currency sign\": \"valutatecken\",\r\n\"euro-currency sign\": \"eurotecken\",\r\n\"colon sign\": \"kolon\",\r\n\"cruzeiro sign\": \"cruzeirotecken\",\r\n\"french franc sign\": \"franctecken\",\r\n\"lira sign\": \"liratecken\",\r\n\"mill sign\": \"milltecken\",\r\n\"naira sign\": \"nairatecken\",\r\n\"peseta sign\": \"pesetastecken\",\r\n\"rupee sign\": \"rupeetecken\",\r\n\"won sign\": \"wontecken\",\r\n\"new sheqel sign\": \"schekeltecken\",\r\n\"dong sign\": \"dongtecken\",\r\n\"kip sign\": \"kiptecken\",\r\n\"tugrik sign\": \"tugriktecken\",\r\n\"drachma sign\": \"drachmertecken\",\r\n\"german penny symbol\": \"tecken f\\u00f6r tysk penny\",\r\n\"peso sign\": \"pesotecken\",\r\n\"guarani sign\": \"guaranitecken\",\r\n\"austral sign\": \"australtecken\",\r\n\"hryvnia sign\": \"hryvniatecken\",\r\n\"cedi sign\": \"ceditecken\",\r\n\"livre tournois sign\": \"tecken f\\u00f6r livre tournois\",\r\n\"spesmilo sign\": \"spesmilotecken\",\r\n\"tenge sign\": \"tengetecken\",\r\n\"indian rupee sign\": \"tecken f\\u00f6r indisk rupee\",\r\n\"turkish lira sign\": \"tecken f\\u00f6r turkisk lira\",\r\n\"nordic mark sign\": \"tecken f\\u00f6r nordisk mark\",\r\n\"manat sign\": \"manattecken\",\r\n\"ruble sign\": \"rubeltecken\",\r\n\"yen character\": \"yentecken\",\r\n\"yuan character\": \"yuantecken\",\r\n\"yuan character, in hong kong and taiwan\": \"yuantecken i Hongkong och Taiwan\",\r\n\"yen\\/yuan character variant one\": \"yen-\\/yuantecken variant ett\",\r\n\"Loading emoticons...\": \"L\\u00e4ser in emoticons...\",\r\n\"Could not load emoticons\": \"Kunde inte l\\u00e4sa in emoticons\",\r\n\"People\": \"M\\u00e4nniskor\",\r\n\"Animals and Nature\": \"Djur och natur\",\r\n\"Food and Drink\": \"Mat och dryck\",\r\n\"Activity\": \"Aktivitet\",\r\n\"Travel and Places\": \"Resa och platser\",\r\n\"Objects\": \"F\\u00f6rem\\u00e5l\",\r\n\"Flags\": \"Flaggor\",\r\n\"Characters\": \"Tecken\",\r\n\"Characters (no spaces)\": \"Tecken (inga mellanrum)\",\r\n\"Error: Form submit field collision.\": \"Fel: Kollision f\\u00e4lt f\\u00f6r s\\u00e4ndning av formul\\u00e4r.\",\r\n\"Error: No form element found.\": \"Fel: Inget formul\\u00e4relement hittades.\",\r\n\"Update\": \"Uppdatera\",\r\n\"Color swatch\": \"F\\u00e4rgpalett\",\r\n\"Turquoise\": \"Turkos\",\r\n\"Green\": \"Gr\\u00f6n\",\r\n\"Blue\": \"Bl\\u00e5\",\r\n\"Purple\": \"Lila\",\r\n\"Navy Blue\": \"M\\u00f6rkbl\\u00e5\",\r\n\"Dark Turquoise\": \"M\\u00f6rkturkos\",\r\n\"Dark Green\": \"M\\u00f6rkgr\\u00f6n\",\r\n\"Medium Blue\": \"Mellanbl\\u00e5\",\r\n\"Medium Purple\": \"Mellanlila\",\r\n\"Midnight Blue\": \"Midnattsbl\\u00e5\",\r\n\"Yellow\": \"Gul\",\r\n\"Orange\": \"Orange\",\r\n\"Red\": \"R\\u00f6d\",\r\n\"Light Gray\": \"Ljusgr\\u00e5\",\r\n\"Gray\": \"Gr\\u00e5\",\r\n\"Dark Yellow\": \"M\\u00f6rkgul\",\r\n\"Dark Orange\": \"M\\u00f6rkorange\",\r\n\"Dark Red\": \"M\\u00f6rkr\\u00f6d\",\r\n\"Medium Gray\": \"Mellangr\\u00e5\",\r\n\"Dark Gray\": \"M\\u00f6rkgr\\u00e5\",\r\n\"Black\": \"Svart\",\r\n\"White\": \"Vit\",\r\n\"Switch to or from fullscreen mode\": \"V\\u00e4xla till eller fr\\u00e5n fullsk\\u00e4rmsl\\u00e4ge\",\r\n\"Open help dialog\": \"\\u00d6ppna hj\\u00e4lpdialogrutan\",\r\n\"history\": \"historik\",\r\n\"styles\": \"stilar\",\r\n\"formatting\": \"formatering\",\r\n\"alignment\": \"justering\",\r\n\"indentation\": \"indragning\",\r\n\"permanent pen\": \"permanent penna\",\r\n\"comments\": \"kommentarer\",\r\n\"Anchor\": \"Ankare\",\r\n\"Special character\": \"Specialtecken\",\r\n\"Code sample\": \"K\\u00e5dexempel\",\r\n\"Color\": \"F\\u00e4rg\",\r\n\"Emoticons\": \"Emoticons\",\r\n\"Document properties\": \"Dokumentegenskaper\",\r\n\"Image\": \"Bild\",\r\n\"Insert link\": \"Infoga l\\u00e4nk\",\r\n\"Target\": \"M\\u00e5l\",\r\n\"Link\": \"L\\u00e4nk\",\r\n\"Poster\": \"Affish\",\r\n\"Media\": \"Media\",\r\n\"Print\": \"Skriv ut\",\r\n\"Prev\": \"F\\u00f6reg\\u00e5ende\",\r\n\"Find and replace\": \"S\\u00f6k och ers\\u00e4tt\",\r\n\"Whole words\": \"Hela ord\",\r\n\"Spellcheck\": \"R\\u00e4ttstava\",\r\n\"Caption\": \"Rubrik\",\r\n\"Insert template\": \"Infoga mall\"\r\n});","import tinymce from 'tinymce/tinymce.js';\r\nimport 'tinymce/icons/default/icons.js';\r\nimport 'tinymce/themes/silver/theme.js';\r\nimport 'tinymce/skins/ui/oxide/content.css'\r\nimport 'tinymce/skins/ui/oxide/skin.css'\r\nimport 'tinymce/plugins/code/plugin.js';\r\nimport 'tinymce/plugins/image/plugin.js';\r\nimport 'tinymce/plugins/link/plugin.js';\r\nimport 'tinymce/plugins/table/plugin.js'\r\nimport 'tinymce/plugins/anchor/plugin.js'\r\nimport 'tinymce/plugins/autolink/plugin.js'\r\nimport 'tinymce/plugins/fullpage/plugin.js'\r\nimport 'tinymce/plugins/fullscreen/plugin.js'\r\nimport 'tinymce/plugins/help/plugin.js'\r\nimport 'tinymce/plugins/hr/plugin.js'\r\nimport 'tinymce/plugins/insertdatetime/plugin.js'\r\nimport 'tinymce/plugins/lists/plugin.js'\r\nimport 'tinymce/plugins/nonbreaking/plugin.js'\r\nimport 'tinymce/plugins/paste/plugin.js'\r\nimport 'tinymce/plugins/preview/plugin.js'\r\nimport 'tinymce/plugins/searchreplace/plugin.js'\r\nimport 'tinymce/plugins/wordcount/plugin.js'\r\nimport 'tinymce/plugins/imagetools/plugin.js'\r\n\r\nimport './sv_SE.js';\r\nimport { store } from \"../../store/configureStore\";\r\nexport default tinymce;\r\nfunction getLanguageCodeForTiny() {\r\n let state = store.getState();\r\n let auth = state.authentication;\r\n if (auth) {\r\n let user = auth.user;\r\n if (user) {\r\n let userLang = user.userLang;\r\n {\r\n if (userLang === \"swe\") {\r\n return \"sv_SE\";\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nexport const classicSettings = {\r\n plugins: \"link image code table anchor autolink fullpage fullscreen help hr insertdatetime lists nonbreaking paste preview searchreplace wordcount image imagetools\",\r\n toolbar:\r\n \"code | undo redo | bold italic | forecolor backcolor | alignleft aligncenter alignright | table tabledelete | tableprops tablerowprops tablecellprops | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol\"\r\n + \" | anchor | fullpage | fullscreen | help | hr | image | insertdatetime | numlist bullist | nonbreaking | paste | preview | searchreplace | archive\",\r\n language: getLanguageCodeForTiny(),\r\n language_url: \"../../components/TinyMCE/sv_SE.js\",\r\n height: \"70vh\",\r\n content_style: undefined,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: false,\r\n convert_urls: false,\r\n}\r\nexport const classicSettings2 = {\r\n plugins: \"link image code table anchor autolink help hr insertdatetime lists nonbreaking paste preview searchreplace wordcount image imagetools\",\r\n toolbar:\r\n \"code | undo redo | bold italic | forecolor backcolor | alignleft aligncenter alignright | table tabledelete | tableprops tablerowprops tablecellprops | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol\"\r\n + \" | anchor | fullpage | fullscreen | help | hr | image | insertdatetime | numlist bullist | nonbreaking | paste | preview | searchreplace | archive\",\r\n language: getLanguageCodeForTiny(),\r\n language_url: \"../../components/TinyMCE/sv_SE.js\",\r\n height: \"70vh\",\r\n content_style: undefined,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: false,\r\n convert_urls: false,\r\n}\r\nexport const classicSettings3 = {\r\n plugins: \"link image code table anchor autolink help hr insertdatetime lists nonbreaking paste preview searchreplace wordcount imagetools\",\r\n toolbar:\r\n \"code | undo redo | bold italic | forecolor backcolor | alignleft aligncenter alignright | table tabledelete | tableprops tablerowprops tablecellprops | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol\"\r\n + \" | anchor | fullpage | fullscreen | help | hr | insertdatetime | numlist bullist | nonbreaking | paste | preview | searchreplace | archive | linkHelper\",\r\n language: getLanguageCodeForTiny(),\r\n language_url: \"../../components/TinyMCE/sv_SE.js\",\r\n height: \"70vh\",\r\n content_style: undefined,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: false,\r\n convert_urls: false,\r\n}\r\nexport const expoSettings = {\r\n plugins: \"link image code table anchor autolink help hr insertdatetime lists nonbreaking paste preview searchreplace wordcount imagetools\",\r\n toolbar:\r\n \"code | undo redo | bold italic | forecolor backcolor | alignleft aligncenter alignright | table tabledelete | tableprops tablerowprops tablecellprops | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol\"\r\n + \" | anchor | fullpage | fullscreen | help | hr | insertdatetime | numlist bullist | nonbreaking | paste | preview | searchreplace | image | link \",\r\n language: getLanguageCodeForTiny(),\r\n language_url: \"./sv_SE.js\",\r\n height: \"70vh\",\r\n content_style: undefined,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: false,\r\n convert_urls: false,\r\n}\r\nexport const inlineSettings2 = {\r\n menubar: false,\r\n plugins: \"link code table paste lists nonbreaking preview \",\r\n paste_as_text: true,\r\n toolbar:\r\n \" undo redo | styleselect bold italic underline | forecolor backcolor | link | alignleft aligncenter alignright | table tabledelete pastetext | hr | numlist bullist | preview \",\r\n language: getLanguageCodeForTiny(),\r\n language_url: \"../../components/TinyMCE/sv_SE.js\",\r\n height: '300px',\r\n content_style: undefined,\r\n inline: true,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: true,\r\n convert_urls: false,\r\n}\r\nexport const inlineSettings3 = {\r\n menubar: false,\r\n plugins: \"link code table paste lists nonbreaking preview \",\r\n paste_as_text: true,\r\n toolbar:\r\n \" undo redo | styleselect bold italic underline | forecolor backcolor | link | alignleft aligncenter alignright | table tabledelete pastetext | hr | numlist bullist | preview | archive | linkhelper\",\r\n language: getLanguageCodeForTiny(),\r\n language_url: \"../../components/TinyMCE/sv_SE.js\",\r\n height: '300px',\r\n content_style: undefined,\r\n inline: true,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: true,\r\n convert_urls: false,\r\n}\r\n\r\nexport const inlineSettings = {\r\n menubar: false,\r\n plugins: \"link code table paste media hr image imagetools\",\r\n paste_as_text: true,\r\n toolbar:\r\n \"code | undo redo | styleselect bold italic underline | forecolor backcolor | sizeselect | fontsizeselect | fontsize | link | alignleft aligncenter alignright | hr | table tabledelete pastetext\"\r\n + \" | archive | linkhelper\",\r\n language: getLanguageCodeForTiny(),\r\n fontsize_formats: \"8pt 10pt 12pt 14pt 18pt 24pt 36pt\",\r\n language_url: \"../../components/TinyMCE/sv_SE.js\",\r\n content_style: undefined,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n theme_advanced_toolbar_location: \"bottom\",\r\n theme_advanced_toolbar_align: \"bottom\",\r\n theme_advanced_statusbar_location: \"bottom\",\r\n block_formats: 'Headline=h1;Paragraph=p;',\r\n theme_advanced_resizing: true,\r\n theme_advanced_toolbar_location: \"bottom\",\r\n inline: true,\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n /* width: 'auto', */\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: true,\r\n convert_urls: false,\r\n}\r\n\r\nexport const tabSettings = {\r\n menubar: false,\r\n plugins: \"link code table anchor autolink fullscreen format hr insertdatetime lists nonbreaking paste preview visualblocks searchreplace wordcount media image imagetools\",\r\n toolbar:\r\n \"styleselect bold italic underline | link | numlist bullist | hr | forecolor backcolor \"\r\n + \" | archive\",\r\n language: getLanguageCodeForTiny(),\r\n language_url: \"../../components/TinyMCE/sv_SE.js\",\r\n content_style: undefined,\r\n imagetools_toolbar: 'editimage imageoptions | alignleft aligncenter alignright',\r\n imagetools_cors_hosts: ['jirango.blob.core.windows.net'],\r\n imagetools_credentials_hosts: ['jirango.blob.core.windows.net'],\r\n theme_advanced_toolbar_location: \"bottom\",\r\n theme_advanced_toolbar_align: \"bottom\",\r\n theme_advanced_statusbar_location: \"bottom\",\r\n block_formats: 'Headline=h1;Paragraph=p;',\r\n theme_advanced_resizing: true,\r\n theme_advanced_toolbar_location: \"bottom\",\r\n inline: false,\r\n fullpage_default_doctype: \"\",\r\n fullpage_default_encoding: \"UTF-8\",\r\n /* width: 'auto', */\r\n link_assume_external_targets: 'https',\r\n relative_urls: false,\r\n remove_script_host: true,\r\n convert_urls: false,\r\n}\r\n","import { authHeader } from \"../../../helpers/authHeader\";\r\nimport { handleResponse } from \"../../../helpers/handleresponse\";\r\n\r\nexport const templateService = {\r\n get,\r\n update,\r\n create,\r\n getAllByEvent,\r\n getDefaultByEvent,\r\n checkForUpdates,\r\n};\r\n\r\n\r\nasync function create(templateDto) {\r\n const requestOptions = {\r\n method: \"POST\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(templateDto)\r\n\r\n };\r\n\r\n return fetch(`./api/template/`, requestOptions)\r\n .then(handleResponse)\r\n .then(template => {\r\n return template;\r\n });\r\n}\r\n\r\nasync function get(templateId) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({})\r\n };\r\n\r\n return fetch(`./api/template/${templateId}`, requestOptions)\r\n .then(handleResponse)\r\n .then(template => {\r\n return template;\r\n });\r\n}\r\n\r\nasync function checkForUpdates(templateId, lastModified) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n\r\n };\r\n\r\n return fetch(`./api/template/checkforupdates/${templateId}?lastModified=${lastModified}`, requestOptions)\r\n .then(handleResponse)\r\n .then(isModified => {\r\n return isModified;\r\n });\r\n}\r\n\r\n\r\nasync function getDefaultByEvent(eventId) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({})\r\n };\r\n\r\n return fetch(`./api/template/eventdefault/${eventId}`, requestOptions)\r\n .then(handleResponse)\r\n .then(template => {\r\n return template;\r\n });\r\n}\r\n\r\n\r\n\r\nasync function getAllByEvent(eventId, includeInherited) {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({})\r\n };\r\n\r\n return fetch(`./api/template/event/${eventId}?includeInherited=${includeInherited}`, requestOptions)\r\n .then(handleResponse)\r\n .then(template => {\r\n return template;\r\n });\r\n}\r\n\r\nasync function update(template) {\r\n const requestOptions = {\r\n method: \"PUT\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n body: JSON.stringify(template)\r\n };\r\n return fetch(`./api/template/`, requestOptions)\r\n .then(handleResponse);\r\n}\r\n\r\n","export const defaultTemplate = {\r\n main: {\r\n background: \"#eee\",\r\n backgroundSize: \"cover\",\r\n backgroundUrl: \"\",\r\n backgroundAttachment: \"fixed\",\r\n backgroundPosition: \"50% 50%\",\r\n backgroundRepeat: \"no-repeat\",\r\n videoBackgroundEnabled: false,\r\n youtubeUrl: \"\",\r\n backgroundColor: \"#fff\",\r\n },\r\n content: {\r\n backgroundColor: \"#ffffff\",\r\n maxWidth: \"50%\",\r\n marginTop: \"0px\",\r\n marginBottom: \"0px\",\r\n borderRadius: \"0px\",\r\n boxShadow: \"none\",\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n padding: \"0px\",\r\n minHeight: \"unset\",\r\n },\r\n table: {\r\n borderCollapse: \"collapse\",\r\n border: \"0px\",\r\n },\r\n tcell: {\r\n padding: \"8px\",\r\n borderStyle: \"solid\",\r\n borderWidth: \"1px\",\r\n borderColor: \"#dddddd\",\r\n fontFamily: \"Open Sans\",\r\n fontSize: \"15px\",\r\n backgroundColor: \"#fff\",\r\n color: \"#222\",\r\n fontWeight: \"normal\",\r\n },\r\n spinner: {\r\n color: \"#17a2b8\",\r\n },\r\n thead: {\r\n padding: \"8px\",\r\n borderStyle: \"solid\",\r\n borderWidth: \"1px\",\r\n borderColor: \"#dddddd\",\r\n fontFamily: \"Open Sans\",\r\n fontSize: \"15px\",\r\n backgroundColor: \"#fff\",\r\n color: \"#222\",\r\n fontWeight: \"normal\",\r\n },\r\n text: {\r\n color: \"#170c53\",\r\n fontFamily: \"Open Sans\",\r\n fontWeight: \"normal\",\r\n letterSpacing: \"0px\",\r\n fontSize: \"16px\",\r\n },\r\n title: {\r\n color: \"#535e58\",\r\n fontFamily: \"Open Sans\",\r\n fontSize: \"20px\",\r\n fontWeight: \"bold\",\r\n letterSpacing: \"1px\",\r\n },\r\n a: {\r\n color: \"blue\",\r\n textDecoration: \"none\",\r\n fontFamily: \"Open Sans\",\r\n letterSpacing: \"unset\",\r\n fontWeight: \"unset\",\r\n fontSize: \"unset\",\r\n \"&:hover\": {\r\n color: \"lightblue\",\r\n textDecoration: \"none\",\r\n },\r\n },\r\n button: {\r\n height: \"auto\",\r\n minHeight: \"30px\",\r\n width: \"100%\",\r\n borderRadius: \"0px\",\r\n color: \"white\",\r\n fontSize: \"20px\",\r\n padding: \"5px 20px\",\r\n /* paddingLeft: \"unset\",\r\n paddingRight: \"unset\", */\r\n fontWeight: \"unset\",\r\n letterSpacing: \"unset\",\r\n backgroundColor: \"#FF8282\",\r\n borderColor: \"transparent\",\r\n \"&:hover\": {\r\n color: \"white\",\r\n backgroundColor: \"pink\",\r\n },\r\n boxShadow: \"none\",\r\n fontFamily: \"Open Sans\",\r\n textTransform: \"unset\",\r\n },\r\n header: {\r\n backgroundColor: \"#222\",\r\n marginTop: \"0px\",\r\n marginBottom: \"0px\",\r\n content: [],\r\n height: \"auto\",\r\n background: \"#222\",\r\n width: \"100%\",\r\n innerWidth: \"50%\",\r\n overflow: \"hidden\",\r\n boxShadow: \"none\",\r\n backgroundUrl: \"\",\r\n padding: \"unset\",\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n },\r\n footer: {\r\n backgroundColor: \"#222\",\r\n marginTop: \"0px\",\r\n marginBottom: \"0px\",\r\n content: [],\r\n height: \"auto\",\r\n background: \"#222\",\r\n width: \"100%\",\r\n overflow: \"visible\",\r\n backgroundUrl: \"\",\r\n innerWidth: \"50%\",\r\n boxShadow: \"none\",\r\n padding: \"unset\",\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n },\r\n label: {\r\n color: \"#535e58\",\r\n fontFamily: \"Open Sans\",\r\n fontSize: \"16px\",\r\n fontWeight: \"unset\",\r\n letterSpacing: \"1px\",\r\n },\r\n menu: {\r\n backgroundColor: \"unset\",\r\n fontFamily: \"Open Sans\",\r\n fontSize: \"20px\",\r\n fontWeight: \"normal\",\r\n color: \"unset\",\r\n textDecoration: \"none\",\r\n justifyContent: \"left\",\r\n display: \"none\",\r\n position: \"unset\",\r\n padding: \"unset\",\r\n innerWidth: \"50%\",\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n minHeight: \"50px\",\r\n width: \"100%\",\r\n height: \"auto\",\r\n \"&:active\": {\r\n color: \"unset\",\r\n backgroundColor: \"unset\",\r\n },\r\n },\r\n input: {\r\n readOnlyOpacity: 0.8,\r\n fontSize: \"17px\",\r\n fontWeight: \"normal\",\r\n color: \"#686673\",\r\n backgroundColor: \"#ffffff\",\r\n borderColor: \"#c0bcc2\",\r\n margin: \"0px\",\r\n borderRadius: \"10px\",\r\n width: \"150px\",\r\n boxShadow: \"none\",\r\n textAreaMinHeight: \"200px\",\r\n fontFamily: \"Open Sans\",\r\n },\r\n subtitle: {\r\n color: \"#7ed321\",\r\n fontSize: \"15px\",\r\n fontFamily: \"Open Sans\",\r\n letterSpacing: \"0px\",\r\n fontWeight: \"unset\",\r\n },\r\n interaction: {\r\n exhibitor: {\r\n frame: {\r\n background: \"unset\",\r\n borderRadius: \"unset\",\r\n padding: \"unset\",\r\n },\r\n logo: {\r\n background: \"unset\",\r\n borderRadius: \"unset\",\r\n width: \"unset\",\r\n },\r\n title: {\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n subtitle: {\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n chat: {\r\n primaryColor: \"unset\",\r\n badgePillColor: \"unset\",\r\n secondaryColor: \"unset\",\r\n sendButtonColor: \"unset\",\r\n container: {\r\n borderColor: \"unset\",\r\n borderRadius: \"unset\",\r\n borderWidth: \"unset\",\r\n },\r\n header: {\r\n background: \"unset\",\r\n borderColor: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n fontSize: \"unset\",\r\n },\r\n footer: {\r\n background: \"unset\",\r\n borderColor: \"unset\",\r\n inputColor: \"unset\",\r\n inputBackground: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n content: {\r\n background: \"unset\",\r\n },\r\n messages: {\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n lineHeight: \"unset\",\r\n titleSize: 'unset',\r\n fontFamily: \"unset\",\r\n adminBackgroundColor: 'unset',\r\n adminTextColor: 'unset',\r\n color: \"unset\",\r\n receiver: {\r\n backgroundColor: \"unset\",\r\n color: \"unset\",\r\n },\r\n sender: {\r\n backgroundColor: \"unset\",\r\n color: \"unset\",\r\n },\r\n },\r\n },\r\n client: {\r\n sendButton: {\r\n height: \"auto\",\r\n width: \"auto\",\r\n borderRadius: \"0px\",\r\n color: \"white\",\r\n fontSize: \"20px\",\r\n backgroundColor: \"#FF8282\",\r\n /* background: 'linear-gradient(to right, #dddddd2b, #b1b1b170)', */\r\n boxShadow: \"none\",\r\n fontFamily: \"Open Sans\",\r\n },\r\n optionButton: {\r\n height: \"unset\",\r\n },\r\n question: {\r\n minWidth: \"unset\",\r\n maxWidth: \"unset\",\r\n },\r\n frame: {\r\n backgroundColor: \"unset\",\r\n borderRadius: \"unset\",\r\n borderColor: \"unset\",\r\n fontFamily: \"unset\",\r\n fontWeight: \"unset\",\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n },\r\n },\r\n agenda: {\r\n content: {\r\n padding: \"unset\",\r\n background: \"unset\",\r\n backgroundColor: \"unset\",\r\n borderColor: \"unset\",\r\n backgroundUrl: \"unset\",\r\n margin: \"unset\",\r\n borderWidth: \"unset\",\r\n borderRadius: \"unset\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n color: \"unset\",\r\n marginLeft: \"unset\",\r\n },\r\n subtitle: {\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n color: \"unset\",\r\n marginLeft: \"unset\",\r\n },\r\n agendaItem: {\r\n borderWidth: \"unset\",\r\n padding: \"unset\",\r\n borderRadius: \"unset\",\r\n marginTop: \"unset\",\r\n },\r\n default: {\r\n item: {\r\n borderColor: \"unset\",\r\n background: \"unset\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n text: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n active: {\r\n item: {\r\n borderColor: \"unset\",\r\n background: \"unset\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n text: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n passed: {\r\n item: {\r\n borderColor: \"unset\",\r\n background: \"unset\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n text: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n row: {\r\n default: {\r\n frame: {\r\n borderColor: \"unset\",\r\n borderWidth: \"unset\",\r\n background: \"unset\",\r\n backgroundColor: \"unset\",\r\n padding: \"unset\",\r\n borderRadius: \"unset\",\r\n /* margin: 'unset', */\r\n marginTop: \"unset\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n text: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n active: {\r\n frame: {\r\n borderColor: \"unset\",\r\n borderWidth: \"unset\",\r\n backgroundColor: \"unset\",\r\n padding: \"unset\",\r\n borderRadius: \"unset\",\r\n /* margin: 'unset', */\r\n marginTop: \"unset\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n text: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n passed: {\r\n frame: {\r\n borderColor: \"unset\",\r\n borderWidth: \"unset\",\r\n backgroundColor: \"unset\",\r\n padding: \"unset\",\r\n borderRadius: \"unset\",\r\n /* margin: 'unset', */\r\n marginTop: \"unset\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n text: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n },\r\n },\r\n poll: {\r\n placeholder: {\r\n iconColor: \"unset\",\r\n iconBackgroundColor: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n frame: {\r\n borderColor: \"unset\",\r\n borderWidth: \"unset\",\r\n background: \"unset\",\r\n borderRadius: \"unset\",\r\n boxShadow: \"none\",\r\n },\r\n textInput: {\r\n background: \"unset\",\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n borderColor: \"unset\",\r\n borderWidth: \"unset\",\r\n borderRadius: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n sendButton: {\r\n color: \"unset\",\r\n background: \"unset\",\r\n borderColor: \"unset\",\r\n fontWeight: \"unset\",\r\n fontSize: 'unset',\r\n borderWidth: \"unset\",\r\n borderRadius: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n pagination: {\r\n stepColor: \"unset\",\r\n fontFamily: \"unset\",\r\n textColor: \"unset\",\r\n },\r\n questionTitle: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n textAlign: \"unset\",\r\n },\r\n buttonOption: {\r\n defaultBorderColor: \"unset\",\r\n defaultTextColor: \"unset\",\r\n defaultBackgroundColor: \"unset\",\r\n checkedBorderColor: \"unset\",\r\n checkedTextColor: \"unset\",\r\n checkedBackgroundColor: \"unset\",\r\n borderRadius: \"unset\",\r\n borderWidth: \"unset\",\r\n fontFamily: \"unset\",\r\n fontWeight: \"unset\",\r\n fontSize: 'unset',\r\n margin: 'unset'\r\n },\r\n boxOption: {\r\n checkedColor: \"unset\",\r\n uncheckedColor: \"unset\",\r\n },\r\n },\r\n breakouts: {\r\n frame: {\r\n borderColor: \"unset\",\r\n borderWidth: \"unset\",\r\n background: \"unset\",\r\n borderRadius: \"unset\",\r\n boxShadow: \"none\",\r\n },\r\n title: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n subtitle: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n rowDivider: {\r\n height: 'unset',\r\n backgroundColor: 'unset'\r\n },\r\n description: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n readMore: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n /* marginTop: 'unset' */\r\n },\r\n list: {\r\n /* marginLeft: 'unset',\r\n marginRight: 'unset', */\r\n width: \"unset\",\r\n },\r\n listItem: {\r\n background: \"unset\",\r\n /* marginLeft: 'unset',\r\n marginRight: 'unset', */\r\n borderRadius: \"unset\",\r\n boxShadow: \"none\",\r\n borderWidth: \"unset\",\r\n borderColor: \"unset\",\r\n width: \"unset\",\r\n button: {\r\n color: \"unset\",\r\n background: \"unset\",\r\n /* fontSize: 'unset', */\r\n },\r\n text: {\r\n fontSize: \"unset\",\r\n color: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n avatar: {\r\n color: \"unset\",\r\n background: \"unset\",\r\n activeColor: \"unset\",\r\n activeBackground: \"unset\",\r\n },\r\n },\r\n },\r\n clientList: {\r\n frame: {\r\n borderColor: \"unset\",\r\n borderWidth: \"unset\",\r\n boxShadow: \"none\",\r\n borderRadius: \"unset\",\r\n },\r\n avatar: {\r\n background: \"unset\",\r\n color: \"unset\",\r\n borderRadius: \"unset\",\r\n },\r\n header: {\r\n background: \"unset\",\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n searchBar: {\r\n iconColor: \"unset\",\r\n background: \"unset\",\r\n borderWidth: \"unset\",\r\n borderRadius: \"unset\",\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n width: \"unset\",\r\n borderColor: \"unset\",\r\n },\r\n list: {\r\n background: \"unset\",\r\n },\r\n listItem: {\r\n background: \"unset\",\r\n borderRadius: \"unset\",\r\n borderWidth: \"unset\",\r\n borderColor: \"unset\",\r\n width: \"unset\",\r\n boxShadow: \"none\",\r\n margin: \"unset\",\r\n name: {\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n company: {\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n },\r\n userCard: {\r\n avatar: {\r\n background: \"unset\",\r\n color: \"unset\",\r\n borderRadius: \"unset\",\r\n },\r\n frame: {\r\n background: \"unset\",\r\n borderRadius: \"unset\",\r\n borderWidth: \"unset\",\r\n borderColor: \"unset\",\r\n },\r\n name: {\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n company: {\r\n color: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n },\r\n },\r\n connections: {\r\n background: \"unset\",\r\n backgroundColor: \"unset\",\r\n backgroundUrl: \"unset\",\r\n borderRadius: \"unset\",\r\n fontSize: \"unset\",\r\n fontWeight: \"unset\",\r\n fontFamily: \"unset\",\r\n borderWidth: \"unset\",\r\n borderColor: \"unset\",\r\n color: \"unset\",\r\n },\r\n },\r\n chart: {\r\n colors: {\r\n color1: \"blue\",\r\n color2: \"red\",\r\n color3: \"orange\",\r\n color4: \"green\",\r\n color5: \"yellow\",\r\n },\r\n textflowColor: \"black\",\r\n textflowBgColor: \"lightgray\",\r\n },\r\n scrollbar: {\r\n thumbBackgroundColor: \"unset\",\r\n thumbBorderRadius: \"unset\",\r\n trackBackgroundColor: \"unset\",\r\n thumbColorHover: \"unset\",\r\n width: \"unset\",\r\n },\r\n\r\n responsive: {\r\n tablet: {\r\n content: {\r\n maxWidth: \"100%\",\r\n minHeight: \"100%\",\r\n marginTop: \"unset\",\r\n marginBottom: \"unset\",\r\n borderRadius: \"unset\",\r\n boxShadow: \"unset\",\r\n marginLeft: \"unset\",\r\n marginRight: \"unset\",\r\n padding: \"unset\",\r\n },\r\n menu: {\r\n display: \"unset\",\r\n padding: \"unset\",\r\n innerWidth: \"unset\",\r\n minHeight: \"unset\",\r\n width: \"100%\",\r\n position: \"fixed\",\r\n },\r\n footer: {\r\n height: \"unset\",\r\n width: \"100%\",\r\n padding: \"unset\",\r\n },\r\n header: {\r\n height: \"unset\",\r\n width: \"100%\",\r\n padding: \"unset\",\r\n innerWidth: \"unset\",\r\n },\r\n },\r\n smartphone: {\r\n content: {\r\n maxWidth: \"100%\",\r\n marginTop: \"unset\",\r\n minHeight: \"100%\",\r\n marginBottom: \"unset\",\r\n borderRadius: \"unset\",\r\n boxShadow: \"unset\",\r\n marginLeft: \"unset\",\r\n marginRight: \"unset\",\r\n padding: \"15px\",\r\n },\r\n menu: {\r\n display: \"unset\",\r\n position: \"unset\",\r\n padding: \"unset\",\r\n innerWidth: \"unset\",\r\n minHeight: \"unset\",\r\n width: \"100%\",\r\n },\r\n footer: {\r\n height: \"unset\",\r\n width: \"100%\",\r\n padding: \"unset\",\r\n innerWidth: \"50%\",\r\n },\r\n header: {\r\n height: \"unset\",\r\n width: \"100%\",\r\n padding: \"unset\",\r\n innerWidth: \"unset\",\r\n },\r\n },\r\n },\r\n};\r\n","import { store } from \"../store/configureStore\";\r\nimport { systemLabelActions } from \"../store/actions/system/systemLabel/systemLabel.action\";\r\nimport routes from \"../routes\";\r\nimport {history} from \"./history\";\r\n\r\nexport const labelHelper = new (function() {\r\n this.loadingLabels = [];\r\n this.getLabelValue = name => {\r\n const { location } = history;\r\n let activeRoute = routes.find(r => {\r\n return this.comparePaths(location.pathname, r.path);\r\n });\r\n const groupName = activeRoute.labelGroup;\r\n const { systemLabels, authentication } = store.getState();\r\n const { groups } = systemLabels;\r\n const { user } = authentication;\r\n let group = null;\r\n let label = null;\r\n if (groups !== undefined) {\r\n group = groups[groupName];\r\n } else if(systemLabels.loading === false) {\r\n store.dispatch(systemLabelActions.getAllGroups())\r\n }\r\n if (group) {\r\n label = group.find(l => {\r\n return l.name === name && l.languageCode === user.userLang;\r\n });\r\n if (!label && !this.loadingLabels.some(ll => {\r\n return ll === name;\r\n })) {\r\n\r\n store.dispatch(\r\n systemLabelActions.create(name, user.userLang, groupName)\r\n );\r\n this.loadingLabels.push(name);\r\n } else if (label) {\r\n this.loadingLabels = this.loadingLabels.filter(ll => {\r\n return ll !== name;\r\n });\r\n if (label.hint) {\r\n return `${label.value} `;\r\n } else {\r\n return label.value;\r\n }\r\n }\r\n else{\r\n return `*${name}*`;\r\n }\r\n } else if (!this.loadingLabels.some(ll => {\r\n return ll === name;\r\n })) {\r\n this.loadingLabels.push(name);\r\n store.dispatch(systemLabelActions.create(name, user.userLang, groupName));\r\n }\r\n };\r\n this.comparePaths = (p1, p2) => {\r\n\r\n if (p1.includes('/register/') && p2.includes('/register/')) {\r\n return true;\r\n }\r\n if (p1.includes('/survey/') && p2.includes('/survey/')) {\r\n return true;\r\n }\r\n if (p1.includes('/editor/') && p2.includes('/editor/')) {\r\n return true;\r\n }\r\n if (p1.includes('/digitalmeeting/') && p2.includes('/digitalmeeting/')) {\r\n return true;\r\n }\r\n if (p1.includes('/session/moderator/') && p2.includes('/session/moderator/')) {\r\n return true;\r\n }\r\n if (p1.includes('/session/client/') && p2.includes('/session/client/')) {\r\n return true;\r\n }\r\n if (p1.includes('/presenter/') && p2.includes('/presenter/')) {\r\n return true;\r\n }\r\n if (p1.includes('/session/stage/') && p2.includes('/session/stage/')) {\r\n return true;\r\n }\r\n if (p1.includes('/session/chatmoderator/') && p2.includes('/session/chatmoderator/')) {\r\n return true;\r\n }\r\n if (p1.includes('/exhibitor/') && p2.includes('/exhibitor/')) {\r\n return true;\r\n }\r\n if (p1.includes('/booth/') && p2.includes('/booth/')) {\r\n return true;\r\n }\r\n const locRegex = /\\/\\d+.*/gi;\r\n const pathRegex = /\\/:id/gi;\r\n p1 = p1.replace(locRegex, \"\").replace(pathRegex, \"\").toLowerCase();\r\n p2 = p2.replace(locRegex, \"\").replace(pathRegex, \"\").toLowerCase();\r\n return p1 === p2;\r\n };\r\n\r\n return {\r\n getLabel: this.getLabelValue\r\n };\r\n})();\r\n","import { Avatar, Badge, Button, Divider, IconButton, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, Popover, Tooltip, Typography } from \"@material-ui/core\";\r\nimport React, { useState, useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport EventLabel2 from \"../../../../../components/EventLabel2/EventLabel2\";\r\nimport { combineProps } from \"../../../../../helpers/objectHelper\";\r\nimport { ChatAvatar } from \"../ChatAvatar\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport AssignmentIndIcon from \"@material-ui/icons/AssignmentInd\";\r\nimport BusinessCenterIcon from \"@material-ui/icons/BusinessCenter\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport ChatBubbleIcon from \"@material-ui/icons/ChatBubble\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n popover: {\r\n pointerEvents: \"none\",\r\n },\r\n popoverContent: {\r\n pointerEvents: \"auto\",\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport function PersonInformationPopover(props) {\r\n const classes = useStyles();\r\n\r\n const [popoverOpen, setPopoverOpen] = useState(false);\r\n const popoverAnchor = useRef(null);\r\n\r\n const { children, target, orderList = [], preview, show = true, attendee = null } = props;\r\n\r\n const handlePopoverOpen = (event) => {\r\n setPopoverOpen(true);\r\n };\r\n const handlePopoverClose = (event) => {\r\n setPopoverOpen(false);\r\n };\r\n let person = null;\r\n if (!attendee) person = orderList.find((o) => o.badgeNo == target);\r\n else person = attendee;\r\n if (!person || preview || !show) return children;\r\n\r\n return (\r\n
\r\n
\r\n {children}\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst PersonDetailsItem = (props) => {\r\n const { person, target, chatTemplate, selectChat, template } = props;\r\n const { primaryColor, secondaryColor } = chatTemplate;\r\n const titleStyle = {\r\n fontSize: \"1.1rem\",\r\n color: \"#222\",\r\n };\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n {person.nameInitials}\r\n \r\n
\r\n
\r\n
{person.name}
\r\n {person.title ?
{person.title}
: null}\r\n {person.company ? (\r\n
\r\n {person.company}\r\n
\r\n ) : null}\r\n
\r\n \r\n {/* \r\n \r\n {person.name}}\r\n secondary={}\r\n />\r\n */}\r\n
\r\n selectChat(target || person.badgeNo)}\r\n style={{\r\n color: secondaryColor,\r\n backgroundColor: primaryColor,\r\n padding: \"6px 12px\",\r\n width: !person.linkedIn ? \"100%\" : `calc(100% - 36.5px)`,\r\n margin: 5,\r\n }}\r\n startIcon={}\r\n >\r\n \r\n \r\n\r\n {person.linkedIn ? (\r\n window.open(person.linkedIn, \"_blank\")}\r\n variant=\"contained\"\r\n color=\"default\"\r\n style={{\r\n backgroundColor: \"#eee\",\r\n padding: \"6px 12px\",\r\n margin: 5,\r\n boxShadow: \"none\",\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(PersonInformationPopover);\r\n","import React, { useRef, useEffect } from \"react\";\r\nimport PlayCircleFilledWhiteOutlinedIcon from \"@material-ui/icons/PlayCircleFilledWhiteOutlined\";\r\nimport { toKebabCase } from \"../../helpers/cssHelper\";\r\nimport PollModule from \"../../digitalArena/modules/PollModule/PollModule\";\r\nimport { combineProps, deepClone } from \"../../helpers/objectHelper\";\r\nimport ExhibitorModule from \"../../digitalArena/modules/ExhibitorModule/ExhibitorModule\";\r\nimport { ImageModule } from \"../../digitalArena/modules/ImageModule\";\r\nimport BreakoutModule from \"../../digitalArena/modules/BreakoutModule/BreakoutModule\";\r\nimport ConnectionsModule from \"../../digitalArena/modules/ConnectionsModule/ConnectionsModule\";\r\nimport ClientListModule from \"../../digitalArena/modules/ClientListModule/ClientListModule\";\r\nimport ZoomModule from \"../../digitalArena/modules/ZoomModule/ZoomModule\";\r\nimport AgendaModule from \"../../digitalArena/modules/AgendaModule/AgendaModule\";\r\nimport PresenterModule from \"../../digitalArena/modules/PresenterModule/PresenterModule\";\r\nimport ButtonModule from \"../../digitalArena/modules/ButtonModule\";\r\nimport { BlockModule } from \"../../digitalArena/modules/BlockModule\";\r\nimport TextModule from \"../../digitalArena/modules/TextModule\";\r\nimport GroupGeneratorModule from \"../../digitalArena/modules/GroupGeneratorModule\";\r\nimport ChatModule from \"../../digitalArena/modules/ChatModule/ChatModule\";\r\nimport { IframeModule } from \"../../digitalArena/modules/IframeModule\";\r\nimport { RatioWrapper } from \"../../digitalArena/components/MeetingLayoutModule\";\r\nimport CountdownModule from \"../../digitalArena/modules/CountdownModule/CountdownModule\";\r\nimport { ImageMapModule } from \"../../digitalArena/modules/ImageMapModule\";\r\nimport UserCardModule from \"../../digitalArena/modules/UserCardModule/UserCardModule\";\r\nimport { HtmlModule } from \"../../digitalArena/modules/HtmlModule\";\r\nimport SpeakerControl from \"../../digitalArena/modules/SpeakerControl/SpeakerControl\";\r\nimport SpeakerCard from \"../../digitalArena/modules/SpeakerCard\";\r\nimport { SpeakerList } from \"../../digitalArena/modules/SpeakerList.js/SpeakerList\";\r\nimport { EventName } from \"../../digitalArena/modules/EventName\";\r\nimport { ContentView } from \"../../digitalArena/modules/ContentView/ContentView\";\r\nimport { VideoWallModule } from \"../../digitalArena/modules/VideoWallModule/VideoWallModule\";\r\nimport PlauditButtons from \"../../digitalArena/modules/Plaudit/PlauditButtons\";\r\nimport PlauditTrack from \"../../digitalArena/modules/Plaudit/PlauditTrack\";\r\n\r\nexport function getDefaultPosAndSize(type, pos) {\r\n switch (type) {\r\n case \"Html\":\r\n return {\r\n height: \"25%\",\r\n width: \"25%\",\r\n posX: pos ? pos.x.toString().substr(0, 8) : \"25%\",\r\n posY: pos ? pos.y.toString().substr(0, 8) : \"25%\",\r\n zIndex: 1,\r\n };\r\n case \"TextModule\":\r\n return {\r\n height: \"25%\",\r\n width: \"25%\",\r\n posX: pos ? pos.x.toString().substr(0, 8) : \"25%\",\r\n posY: pos ? pos.y.toString().substr(0, 8) : \"25%\",\r\n zIndex: 2,\r\n };\r\n case \"ButtonModule\":\r\n return {\r\n height: \"3.5%\",\r\n width: \"6%\",\r\n posX: pos ? pos.x.toString().substr(0, 8) : \"25%\",\r\n posY: pos ? pos.y.toString().substr(0, 8) : \"25%\",\r\n zIndex: 2,\r\n };\r\n case \"Chat\":\r\n return {\r\n height: \"50%\",\r\n width: \"25%\",\r\n posX: pos ? pos.x.toString().substr(0, 8) : \"25%\",\r\n posY: pos ? pos.y.toString().substr(0, 8) : \"25%\",\r\n zIndex: 2,\r\n };\r\n case \"Connections\":\r\n case \"UserCard\":\r\n return {\r\n height: \"10%\",\r\n width: \"20%\",\r\n posX: pos ? pos.x.toString().substr(0, 8) : \"25%\",\r\n posY: pos ? pos.y.toString().substr(0, 8) : \"25%\",\r\n zIndex: 2,\r\n };\r\n\r\n default:\r\n return {\r\n height: \"25%\",\r\n width: \"25%\",\r\n posX: pos ? pos.x.toString().substr(0, 8) : \"25\",\r\n posY: pos ? pos.y.toString().substr(0, 8) : \"25\",\r\n zIndex: 1,\r\n };\r\n }\r\n}\r\nconst aspecRatio = (w, h, ratio, bound) => {\r\n const defStyle = { height: \"100%\", width: \"100%\" };\r\n switch (ratio) {\r\n case \"16:9\":\r\n return {\r\n ...defStyle,\r\n /* paddingTop: \"56.2%\", */ maxHeight: bound.clientWidth * (parseInt(w) / 100) * 0.562,\r\n };\r\n case \"16:10\":\r\n return {\r\n ...defStyle,\r\n maxHeight: bound.clientWidth * (parseInt(w) / 100) * 0.625,\r\n };\r\n case \"4:3\":\r\n return {\r\n ...defStyle,\r\n maxHeight: bound.clientWidth * (parseInt(w) / 100) * 0.75,\r\n };\r\n default:\r\n return defStyle;\r\n }\r\n};\r\n\r\nconst props = (extra, settings) => {\r\n return { ...extra, ...settings };\r\n};\r\n/* const RatioWrapper = ({\r\n children,\r\n height,\r\n width,\r\n aspectRatio,\r\n lockAspectRatio,\r\n bound,\r\n}) => {\r\n if (!lockAspectRatio) return children;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}; */\r\nexport function renderModulePlaceholder(type, template, extra, settings, updateModule) {\r\n switch (type) {\r\n case \"Chat\":\r\n return ;\r\n case \"Presenter\":\r\n return ;\r\n case \"GroupGenerator\":\r\n return ;\r\n case \"Image\":\r\n return ;\r\n case \"Html\":\r\n return ;\r\n\r\n case \"Agenda\":\r\n return ;\r\n case \"ZoomFrame\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"ContentView\":\r\n return ;\r\n case \"JitsiFrame\":\r\n return {defaultVideoFrame()};\r\n case \"SpeakerCard\":\r\n return ;\r\n case \"Video\":\r\n return (\r\n \r\n {settings.url ? (\r\n \r\n \r\n \r\n ) : (\r\n defaultVideoFrame()\r\n )}\r\n \r\n );\r\n case \"CountdownModule\":\r\n return ;\r\n case \"Iframe\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"Connections\":\r\n return ;\r\n case \"SpeakerList\":\r\n return ;\r\n case \"Exhibitors\":\r\n return ;\r\n case \"UserCard\":\r\n return ;\r\n case \"ClientList\":\r\n return ;\r\n case \"Breakouts\":\r\n return ;\r\n case \"BlockModule\":\r\n return ;\r\n case \"TextModule\":\r\n return ;\r\n case \"ButtonModule\":\r\n return ;\r\n case \"PollModule\":\r\n return ;\r\n case \"VonageVideoClientModule\":\r\n return defaultVideoFrame();\r\n case \"ImageMap\":\r\n return ;\r\n case \"SpeakerControl\":\r\n return ;\r\n case \"EventName\":\r\n return ;\r\n case \"VideoWallModule\":\r\n return ;\r\n\r\n case \"PlauditButtons\":\r\n return \r\n case \"PlauditTrack\":\r\n return \r\n default:\r\n return
;\r\n }\r\n}\r\n\r\nconst defaultVideoFrame = () => (\r\n \r\n \r\n
\r\n);\r\n\r\nexport function checkForUpdates(target, source) {\r\n if (Array.isArray(source)) {\r\n return;\r\n }\r\n const targetObj = Object.assign({}, target);\r\n for (const key in source) {\r\n if (!targetObj.hasOwnProperty(key)) {\r\n targetObj[key] = source[key];\r\n }\r\n }\r\n return targetObj;\r\n}\r\n\r\nexport const GridLines = (props) => {\r\n const { grid } = props;\r\n /* const bounds = document.getElementById('#GridView') */\r\n let width = grid.clientWidth;\r\n let height = grid.clientHeight;\r\n let incrementX = width / 100;\r\n let incrementY = height / 100;\r\n\r\n const canvasRef = useRef(null);\r\n const draw = (ctx) => {\r\n ctx.canvas.width = width;\r\n ctx.canvas.height = height;\r\n\r\n for (let x = 0; x <= 100; x += 1) {\r\n ctx.moveTo(x * incrementX, 0);\r\n ctx.lineTo(x * incrementX, height);\r\n }\r\n ctx.strokeStyle = \"#1f87ad25\";\r\n ctx.lineWidth = 1;\r\n ctx.stroke();\r\n for (let y = 0; y <= 100; y += 1) {\r\n ctx.moveTo(0, y * incrementY);\r\n ctx.lineTo(width, y * incrementY);\r\n }\r\n ctx.strokeStyle = \"#1f87ad25\";\r\n ctx.lineWidth = 2;\r\n ctx.stroke();\r\n };\r\n useEffect(() => {\r\n const canvas = canvasRef.current;\r\n const context = canvas.getContext(\"2d\");\r\n\r\n //Our draw come here\r\n draw(context);\r\n }, [draw]);\r\n\r\n return ;\r\n};\r\n","export const chatHelper = {\r\n chatStyle,\r\n};\r\n\r\nexport const chatStyle = (template) => {\r\n if (template) {\r\n const obj = template.interaction.chat;\r\n if (obj) {\r\n const primaryColor = obj.primaryColor;\r\n const secondaryColor = obj.secondaryColor;\r\n const badgePillColor = obj.badgePillColor;\r\n const sendButtonColor = obj.sendButtonColor;\r\n const container = obj.container;\r\n const content = obj.content;\r\n const messagesStyle = obj.messages;\r\n const header = obj.header;\r\n const footer = obj.footer;\r\n\r\n return {\r\n primaryColor: primaryColor != \"unset\" ? primaryColor : \"#5a60e3\",\r\n badgePillColor: badgePillColor != \"unset\" ? badgePillColor : \"#f50057\",\r\n secondaryColor: secondaryColor != \"unset\" ? secondaryColor : \"#fff\",\r\n sendButtonColor: sendButtonColor != \"unset\" ? sendButtonColor : \"inital\",\r\n container: {\r\n borderWidth: container.borderWidth != \"unset\" ? container.borderWidth : \"1px\",\r\n borderColor: container.borderColor != \"unset\" ? container.borderColor : template.content.borderColor,\r\n borderRadius: container.borderRadius != \"unset\" ? container.borderRadius : template.content.borderRadius,\r\n borderStyle: \"solid\",\r\n },\r\n header: {\r\n background: header.background != \"unset\" ? header.background : \"#fff\",\r\n borderColor: header.borderColor != \"unset\" ? header.borderColor : \"gainsboro\",\r\n fontWeight: header.fontWeight != \"unset\" ? header.fontWeight : \"initial\",\r\n fontFamily: header.fontFamily != \"unset\" ? header.fontFamily : \"Open Sans\",\r\n color: header.color != \"unset\" ? header.color : \"#222\",\r\n fontSize: header.fontSize != \"unset\" ? header.fontSize : \"1.8vh\",\r\n },\r\n footer: {\r\n background: footer.background != \"unset\" ? footer.background : \"#fff\",\r\n borderColor: footer.borderColor != \"unset\" ? footer.borderColor : \"gainsboro\",\r\n inputColor: footer.inputColor != \"unset\" ? footer.inputColor : \"initial\",\r\n inputBackground: footer.inputBackground != \"unset\" ? footer.inputBackground : \"#fff\",\r\n fontFamily: footer.fontFamily != \"unset\" ? footer.fontFamily : \"Open Sans\",\r\n },\r\n content: {\r\n background: content.background != \"unset\" ? content.background : \"#fff\",\r\n },\r\n messages: {\r\n fontSize: messagesStyle.fontSize != \"unset\" ? messagesStyle.fontSize : \"15px\",\r\n lineHeight: messagesStyle.lineHeight != \"unset\" ? messagesStyle.lineHeight : \"auto\",\r\n fontWeight: messagesStyle.fontWeight != \"unset\" ? messagesStyle.fontWeight : \"normal\",\r\n fontFamily: messagesStyle.fontFamily != \"unset\" ? messagesStyle.fontFamily : \"Open Sans\",\r\n color: messagesStyle.color != \"unset\" ? messagesStyle.color : \"#222\",\r\n titleSize: messagesStyle.titleSize != \"unset\" ? messagesStyle.titleSize : \"15px\",\r\n adminBackgroundColor: messagesStyle.adminBackgroundColor != \"unset\" ? messagesStyle.adminBackgroundColor : \"inital\",\r\n adminTextColor: messagesStyle.adminTextColor != \"unset\" ? messagesStyle.adminTextColor : \"inital\",\r\n receiver: {\r\n backgroundColor: messagesStyle.receiver.backgroundColor != \"unset\" ? messagesStyle.receiver.backgroundColor : \"inital\",\r\n color: messagesStyle.receiver.color != \"unset\" ? messagesStyle.receiver.color : \"inital\",\r\n },\r\n sender: {\r\n backgroundColor: messagesStyle.sender.backgroundColor != \"unset\" ? messagesStyle.sender.backgroundColor : \"inital\",\r\n color: messagesStyle.sender.color != \"unset\" ? messagesStyle.sender.color : \"inital\",\r\n },\r\n },\r\n };\r\n }\r\n } else {\r\n return {\r\n primaryColor: \"#5a60e3\",\r\n badgePillColor: \"#f50057\",\r\n secondaryColor: \"#fff\",\r\n sendButtonColor: \"inital\",\r\n container: {\r\n borderWidth: \"1px\",\r\n borderColor: \"transparent\",\r\n borderRadius: 0,\r\n },\r\n header: {\r\n background: \"#fff\",\r\n borderColor: \"gainsboro\",\r\n fontWeight: \"bold\",\r\n fontFamily: \"Open Sans\",\r\n color: \"#222\",\r\n fontSize: \"1rem\",\r\n },\r\n footer: {\r\n background: \"#fff\",\r\n borderColor: \"gainsboro\",\r\n inputColor: \"initial\",\r\n inputBackground: \"initial\",\r\n fontFamily: \"Open Sans\",\r\n },\r\n content: {\r\n background: \"#fff\",\r\n },\r\n messages: {\r\n fontSize: \"15px\",\r\n fontWeight: \"initial\",\r\n lineHeight: \"auto\",\r\n fontFamily: \"Open Sans\",\r\n color: \"#222\",\r\n receiver: {\r\n backgroundColor: \"#e4e6eb\",\r\n color: \"#050505\",\r\n },\r\n sender: {\r\n backgroundColor: \"#5a60e3\",\r\n color: \"#fff\",\r\n },\r\n },\r\n };\r\n }\r\n};\r\n\r\nexport const backstageChatStyle = {\r\n primaryColor: \"rgb(22 88 197)\",\r\n badgePillColor: \"rgb(22 88 197)\",\r\n secondaryColor: \"#fff\",\r\n sendButtonColor: \"rgb(22 88 197)\",\r\n container: {\r\n borderWidth: \"1px\",\r\n borderColor: \"transparent\",\r\n borderRadius: 0,\r\n },\r\n header: {\r\n background: \"#fff\",\r\n borderColor: \"gainsboro\",\r\n fontWeight: \"bold\",\r\n fontFamily: \"Open Sans\",\r\n color: \"#222\",\r\n fontSize: \"1rem\",\r\n },\r\n footer: {\r\n background: \"#333333\",\r\n borderColor: \"transparent\",\r\n inputColor: \"#eee\",\r\n inputBackground: \"#4b4b4b\",\r\n fontFamily: \"Open Sans\",\r\n },\r\n content: {\r\n background: \"#333333\",\r\n },\r\n messages: {\r\n fontSize: \"15px\",\r\n fontWeight: \"initial\",\r\n lineHeight: \"auto\",\r\n fontFamily: \"Open Sans\",\r\n color: \"#eee\",\r\n receiver: {\r\n backgroundColor: \"#4b4b4b\",\r\n color: \"#fff\",\r\n },\r\n sender: {\r\n backgroundColor: \"rgb(22 88 197)\",\r\n color: \"#fff\",\r\n },\r\n },\r\n};\r\n","import React from \"react\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\n\r\nexport function Searchbar(props) {\r\n const { filter, style } = props;\r\n const {\r\n iconColor,\r\n background,\r\n borderWidth,\r\n borderRadius,\r\n color,\r\n fontSize,\r\n fontWeight,\r\n fontFamily,\r\n width,\r\n borderColor,\r\n } = style;\r\n return (\r\n \r\n
\r\n \r\n
\r\n filter(e.target.value)}\r\n />\r\n \r\n );\r\n}\r\n","export const clientListStyle = (template) => {\r\n if (template && template.interaction.clientList) {\r\n const obj = template.interaction.clientList;\r\n const frame = obj.frame;\r\n const avatar = obj.avatar;\r\n const header = obj.header;\r\n const searchbar = obj.searchBar;\r\n const list = obj.list;\r\n const listItem = obj.listItem;\r\n const name = obj.listItem.name;\r\n const company = obj.listItem.company;\r\n return {\r\n frame: {\r\n /* background: header.background != \"unset\" ? header.background : \"#fff\", */\r\n borderColor: frame.borderColor != \"unset\" ? frame.borderColor : \"unset\",\r\n borderWidth: frame.borderWidth != \"unset\" ? frame.borderWidth : \"0px\",\r\n borderRadius: frame.borderRadius != \"unset\" ? frame.borderRadius : \"0px\",\r\n boxShadow: \"none\",\r\n borderStyle: \"solid\",\r\n },\r\n avatar: {\r\n background: avatar.background != \"unset\" ? avatar.background : \"#red\",\r\n color: avatar.color != \"unset\" ? avatar.color : \"#fff\",\r\n borderRadius: avatar.borderRadius != \"unset\" ? avatar.borderRadius : \"50%\",\r\n },\r\n header: {\r\n background: header.background != \"unset\" ? header.background : \"#fff\",\r\n fontSize: header.fontSize != \"unset\" ? header.fontSize : \"18px\",\r\n color: header.color != \"unset\" ? header.color : \"#222\",\r\n fontWeight: header.fontWeight != \"unset\" ? header.fontWeight : \"normal\",\r\n fontFamily: header.fontFamily != \"unset\" ? header.fontFamily : \"Open Sans\",\r\n },\r\n list: {\r\n background: list.background != \"unset\" ? list.background : \"#fff\",\r\n },\r\n searchbar: {\r\n iconColor: searchbar.iconColor != \"unset\" ? searchbar.iconColor : \"#222\",\r\n background: searchbar.background != \"unset\" ? searchbar.background : \"#fff\",\r\n borderRadius: searchbar.borderRadius != \"unset\" ? searchbar.borderRadius : \"0px\",\r\n fontSize: searchbar.fontSize != \"unset\" ? searchbar.fontSize : \"18px\",\r\n color: searchbar.color != \"unset\" ? searchbar.color : \"#222\",\r\n fontWeight: searchbar.fontWeight != \"unset\" ? searchbar.fontWeight : \"normal\",\r\n fontFamily: searchbar.fontFamily != \"unset\" ? searchbar.fontFamily : \"Open Sans\",\r\n boxShadow: \"none\",\r\n margin: searchbar.margin != \"unset\" ? searchbar.margin : \"0px\",\r\n borderWidth: searchbar.borderWidth != \"unset\" ? searchbar.borderWidth : \"0px\",\r\n borderColor: searchbar.borderColor != \"unset\" ? searchbar.borderColor : \"unset\",\r\n width: searchbar.width != \"unset\" ? searchbar.width : \"100%\",\r\n border: 0,\r\n borderBottom: `${searchbar.borderWidth} solid ${searchbar.borderColor}`,\r\n borderTop: `${searchbar.borderWidth} solid ${searchbar.borderColor}`,\r\n },\r\n listItem: {\r\n background: listItem.background != \"unset\" ? listItem.background : \"#fff\",\r\n borderRadius: listItem.borderRadius != \"unset\" ? listItem.borderRadius : \"0px\",\r\n boxShadow: \"none\",\r\n borderWidth: listItem.borderWidth != \"unset\" ? listItem.borderWidth : \"0px\",\r\n borderColor: listItem.borderColor != \"unset\" ? listItem.borderColor : \"unset\",\r\n width: listItem.width != \"unset\" ? listItem.width : \"100%\",\r\n border: 0,\r\n margin: listItem.margin != \"unset\" ? listItem.margin : \"0px auto\",\r\n borderBottom: `${listItem.borderWidth} solid ${listItem.borderColor}`,\r\n /* width: listItem.width != \"unset\" ? listItem.width : \"100%\", */\r\n name: {\r\n fontSize: name.fontSize != \"unset\" ? name.fontSize : \"15px\",\r\n color: name.color != \"unset\" ? name.color : \"#222\",\r\n fontWeight: name.fontWeight != \"unset\" ? name.fontWeight : \"normal\",\r\n fontFamily: name.fontFamily != \"unset\" ? name.fontFamily : \"Open Sans\",\r\n },\r\n company: {\r\n fontSize: company.fontSize != \"unset\" ? company.fontSize : \"15px\",\r\n color: company.color != \"unset\" ? company.color : \"#222\",\r\n fontWeight: company.fontWeight != \"unset\" ? company.fontWeight : \"normal\",\r\n fontFamily: company.fontFamily != \"unset\" ? company.fontFamily : \"Open Sans\",\r\n },\r\n },\r\n };\r\n } else {\r\n //Fix\r\n }\r\n};\r\n\r\nexport const backstageListStyle = {\r\n frame: {\r\n background: \"#333333\",\r\n borderColor: \"unset\",\r\n borderWidth: \"0px\",\r\n borderRadius: \"0px\",\r\n boxShadow: \"none\",\r\n borderStyle: \"solid\",\r\n },\r\n avatar: {\r\n background: \"rgb(105 105 105)\",\r\n color: \"#fff\",\r\n borderRadius: \"50%\",\r\n },\r\n header: {\r\n background: \"#333333\",\r\n fontSize: \"1.1rem\",\r\n color: \"#eee\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Open Sans\",\r\n },\r\n list: {\r\n background: \"#333333\",\r\n },\r\n searchbar: {\r\n iconColor: \"#eee\",\r\n background: \"#4b4b4b\",\r\n borderRadius: \"25px\",\r\n fontSize: \"1rem\",\r\n color: \"#eee\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Open Sans\",\r\n boxShadow: \"none\",\r\n margin: \"0px\",\r\n borderWidth: \"0px\",\r\n borderColor: \"unset\",\r\n width: \"95%\",\r\n border: 0,\r\n borderBottom: 0,\r\n borderTop: 0,\r\n },\r\n listItem: {\r\n background: \"#333333\",\r\n borderRadius: \"0px\",\r\n boxShadow: \"none\",\r\n borderWidth: \"0px\",\r\n borderColor: \"unset\",\r\n width: \"100%\",\r\n border: 0,\r\n margin: \"0px auto\",\r\n borderBottom: 0,\r\n name: {\r\n fontSize: \"1rem\",\r\n color: \"#fff\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Open Sans\",\r\n },\r\n company: {\r\n fontSize: \"1rem\",\r\n color: \"#eee\",\r\n fontWeight: \"normal\",\r\n fontFamily: \"Open Sans\",\r\n },\r\n },\r\n};\r\n","import { Avatar, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, Button, IconButton } from \"@material-ui/core\";\r\nimport React, { useState, useEffect, useMemo, memo } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport { clientTypeConstants } from \"../../../interaction/constants/clientType.constants\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { OnlineBadge } from \"../../components/shared/OnlineBadge\";\r\nimport { Searchbar } from \"../../components/shared/Searchbar\";\r\nimport { ScrollWrapper } from \"../../helpers/module.helper\";\r\nimport { backstageListStyle, clientListStyle } from \"./clientList.helper\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport { PersonInformationPopover } from \"../ChatModule/components/shared/PersonInformationPopover\";\r\nimport HighlightIcon from \"@material-ui/icons/Highlight\";\r\nimport ReactEternalList from \"../../../components/ReactEternalList/ReactEternalList\";\r\nconst mockPeople = [\r\n {\r\n name: \"Clark Kent\",\r\n nameInitials: \"CK\",\r\n badgeNo: \"A\",\r\n company: \"Daily Planet\",\r\n },\r\n {\r\n name: \"Bruce Wayne\",\r\n nameInitials: \"BW\",\r\n badgeNo: \"B\",\r\n company: \"Wayne Enterprises\",\r\n },\r\n {\r\n name: \"Diana Prince\",\r\n nameInitials: \"DP\",\r\n badgeNo: \"C\",\r\n company: \"Justice League\",\r\n },\r\n];\r\nconst ClientListModule = memo(({ hubConnection, orderList = [], connectionList = [], backstage = false, channel, backstageConns = false, lang, template, eventId, preview, settings }) => {\r\n const [filter, setFilter] = useState(\"\");\r\n // const { orderList, connectionList, lang, template, eventId, preview } = props;\r\n const [currentSpotlights, setCurrentSpotlights] = useState([]);\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.ClientList\", lang);\r\n if (hubConnection && !preview) {\r\n hubConnection.invoke(\"vonageGetSpotlights\", eventId, channel || null);\r\n }\r\n }, []);\r\n useEffect(() => {\r\n if (hubConnection && !preview) {\r\n hubConnection.on(\"onVonageGetSpotlights\", onVonageGetSpotlights);\r\n }\r\n return () => {\r\n if (hubConnection && !preview) {\r\n hubConnection.off(\"onVonageGetSpotlights\", onVonageGetSpotlights);\r\n }\r\n };\r\n });\r\n function onSpotlightClick(badgeNo, add) {\r\n if (hubConnection && add) {\r\n hubConnection.invoke(\"vonageAddToSpotlight\", eventId, channel, badgeNo);\r\n currentSpotlights.push(badgeNo);\r\n setCurrentSpotlights([...currentSpotlights]);\r\n } else if (hubConnection && !add) {\r\n hubConnection.invoke(\"vonageRemoveFromSpotlight\", eventId, channel, badgeNo);\r\n setCurrentSpotlights(currentSpotlights.filter((x) => x == badgeNo));\r\n }\r\n }\r\n function onVonageGetSpotlights(spotlightList) {\r\n setCurrentSpotlights(spotlightList);\r\n }\r\n const api = {\r\n setFilter,\r\n hubConnection,\r\n filter,\r\n preview,\r\n connectionList,\r\n channel,\r\n template,\r\n backstage,\r\n backstageConns,\r\n orderList,\r\n currentSpotlights,\r\n onSpotlightClick,\r\n settings,\r\n eventId,\r\n clientListTemplate: backstage ? backstageListStyle : clientListStyle(template),\r\n };\r\n\r\n return ;\r\n});\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ClientListModule);\r\n\r\nconst ClientListContainer = memo(\r\n ({ currentSpotlights, onSpotlightClick, connectionList, channel, template, backstage, backstageConns, filter, setFilter, clientListTemplate, orderList, preview, settings = {}, eventId }) => {\r\n const { header, avatar, frame, list, listItem, searchbar } = clientListTemplate;\r\n const { name, company } = listItem;\r\n const { borderTop, borderBottom } = searchbar;\r\n const { display = \"connected\", booked = \"off\", bookedEventId = 0, showSearchbar = true, showAvatar = true, showTitle = true } = settings;\r\n const clientList = useMemo(() => {\r\n if (preview) return mockPeople;\r\n return connectionList.filter(\r\n (cl) =>\r\n cl.type == (backstageConns ? clientTypeConstants.INTERACTION_VONAGE_SPEAKER : clientTypeConstants.INTERACTION_MEETING) &&\r\n (backstageConns ? cl.channel == (channel ? channel + \"_BACKSTAGE\" : \"_BACKSTAGE\") : cl.channel == channel)\r\n );\r\n }, [channel, connectionList]);\r\n\r\n const people = useMemo(() => {\r\n if (preview) return mockPeople;\r\n if (display === \"all\") {\r\n return orderList\r\n .filter((ia) => {\r\n if (ia.anonymous == true) return false;\r\n if (ia.orderId == 1 || ia.orderId == 2) return false\r\n if (booked === \"current\") return ia.bookedBreakouts.indexOf(eventId) > -1;\r\n else if (booked === \"breakout\") return ia.bookedBreakouts.indexOf(bookedEventId) > -1;\r\n else return true;\r\n })\r\n .filter((ia) => {\r\n if (ia.name.toLowerCase().includes(filter.toLowerCase())) return true;\r\n if (ia.company && ia.company.toLowerCase().includes(filter.toLowerCase())) return true;\r\n })\r\n .sort(function (a, b) {\r\n if (a.name < b.name) return -1;\r\n if (a.name > b.name) return 1;\r\n return 0;\r\n });\r\n }\r\n return orderList\r\n .filter((ia) => {\r\n if (ia.anonymous == true) {\r\n return false;\r\n }\r\n\r\n if (ia.name.toLowerCase().includes(filter.toLowerCase()) && clientList.find((c) => c.clientKey == ia.badgeNo)) {\r\n return true;\r\n }\r\n\r\n if (ia.company && ia.company.toLowerCase().includes(filter.toLowerCase()) && clientList.find((c) => c.clientKey == ia.badgeNo)) {\r\n return true;\r\n }\r\n })\r\n .sort(function (a, b) {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }, [filter, orderList, clientList, listItem, currentSpotlights, settings]);\r\n const spotlightChangeKey = useMemo(() => {\r\n return Date.now();\r\n }, [currentSpotlights, settings]);\r\n return (\r\n \r\n {!backstage && showTitle ? (\r\n \r\n \r\n \r\n ) : (\r\n
\r\n )}\r\n {showSearchbar ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n\r\n \r\n \r\n {\r\n const personHasSpotlight = currentSpotlights && currentSpotlights.length > 0 && currentSpotlights.includes(p.badgeNo);\r\n return { ...{ attendee: p, clientListTemplate, preview, personHasSpotlight, backstage, onSpotlightClick, showAvatar } };\r\n })}\r\n preview={preview}\r\n changeKey={spotlightChangeKey}\r\n clientListTemplate={clientListTemplate}\r\n updateRate={100}\r\n component={ClientListItem}\r\n compareParam={\"badgeNo\"}\r\n />\r\n \r\n \r\n
\r\n );\r\n }\r\n);\r\n\r\nconst ClientListItem = ({ attendee, clientListTemplate, preview, onSpotlightClick, personHasSpotlight, backstage, showAvatar }) => {\r\n const { avatar, listItem, searchbar } = clientListTemplate;\r\n const { company, name } = listItem;\r\n return (\r\n \r\n {showAvatar ? \r\n \r\n \r\n \r\n : null}\r\n \r\n {attendee ? attendee.company : null}\r\n \r\n }\r\n primary={\r\n } className=\"ellipsis\" style={{ ...name }}>\r\n {attendee ? attendee.name : }\r\n \r\n }\r\n />\r\n {!preview && attendee.linkedIn ? (\r\n \r\n window.open(attendee.linkedIn, \"_blank\")}\r\n variant=\"contained\"\r\n color=\"default\"\r\n style={{\r\n backgroundColor: \"#eee\",\r\n padding: \"6px 12px\",\r\n margin: 5,\r\n boxShadow: \"none\",\r\n }}\r\n >\r\n \r\n \r\n \r\n ) : null}\r\n {!preview && backstage ? (\r\n \r\n onSpotlightClick(attendee.badgeNo, !personHasSpotlight)}\r\n style={{\r\n backgroundColor: personHasSpotlight ? \"#20a8d8e0\" : undefined,\r\n color: personHasSpotlight ? \"#fff\" : \"#ffffff99\",\r\n padding: \"8px\",\r\n\r\n margin: 5,\r\n // boxShadow: \"none\",\r\n }}\r\n edge=\"end\"\r\n >\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Jitsi from \"react-jitsi\";\r\nimport { Spinner } from \"reactstrap\";\r\n\r\nconst JitsiLoader = () => ;\r\n\r\nexport function JitsiModule(props) {\r\n const [apiLoaded, setApiLoaded] = useState(false);\r\n const { settings, clientName, channel, eventCode } = props;\r\n const { meetingName, password } = settings;\r\n\r\n useEffect(() => {\r\n importJitisApi();\r\n }, []);\r\n const setOnCallEndListener = (JitsiMeetAPI) => {\r\n JitsiMeetAPI.executeCommand(\"subject\", \" \");\r\n }\r\n const importJitisApi = () => {\r\n if (!window.JitsiMeetExternalAPI) {\r\n const head = document.getElementsByTagName(\"head\")[0];\r\n const script = document.createElement(\"script\");\r\n script.setAttribute(\"type\", \"text/javascript\");\r\n script.setAttribute(\"src\", \"https://meet.jit.si/external_api.js\");\r\n\r\n head.addEventListener(\r\n \"load\",\r\n (event) => {\r\n if (event.target.nodeName === \"SCRIPT\") {\r\n setApiLoaded(true);\r\n }\r\n },\r\n true\r\n );\r\n head.appendChild(script);\r\n }\r\n };\r\n if (!apiLoaded) return null;\r\n let rName = meetingName + eventCode + (channel ? channel : \"\");\r\n return (\r\n \r\n setOnCallEndListener(JitsiMeetAPI)}\r\n config={{ languageDetection: true }}\r\n domain={\"meet.jirango.com\"}\r\n />\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport * as SentryReact from \"@sentry/react\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { labelHelper } from \"../../../helpers/labelHelper\";\r\nimport BugSvg from \"../../assets/bug.svg\";\r\n\r\nexport const ModuleErrorFallback = ({\r\n error,\r\n resetError,\r\n eventId,\r\n clientName,\r\n lang,\r\n}) => {\r\n const dialogOptions = {\r\n lang: \"sv-SE\",\r\n user: {\r\n name: clientName,\r\n },\r\n };\r\n return (\r\n
\r\n
\r\n \r\n

\r\n \r\n

\r\n \r\n resetError()}\r\n >\r\n \r\n \r\n {/* \r\n chrome.windows.create({\r\n url: window.location.href,\r\n incognito: true,\r\n })()\r\n }\r\n >\r\n \r\n */}\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport AgendaModule from \"../modules/AgendaModule/AgendaModule\";\r\nimport BreakoutModule from \"../modules/BreakoutModule/BreakoutModule\";\r\nimport ChatModule from \"../modules/ChatModule/ChatModule\";\r\nimport ClientListModule from \"../modules/ClientListModule/ClientListModule\";\r\nimport ConnectionsModule from \"../modules/ConnectionsModule/ConnectionsModule\";\r\nimport ExhibitorModule from \"../modules/ExhibitorModule/ExhibitorModule\";\r\nimport { HtmlModule } from \"../modules/HtmlModule\";\r\nimport { IframeModule } from \"../modules/IframeModule\";\r\nimport { ImageModule } from \"../modules/ImageModule\";\r\nimport { JitsiModule } from \"../modules/JitsiModule\";\r\nimport PollModule from \"../modules/PollModule/PollModule\";\r\nimport PresenterModule from \"../modules/PresenterModule/PresenterModule\";\r\nimport UserCardModule from \"../modules/UserCardModule/UserCardModule\";\r\nimport { useMediaQuery } from \"@material-ui/core\";\r\nimport json2mq from \"json2mq\";\r\nimport { VideoModule } from \"../modules/VideoModule\";\r\nimport TextModule from \"../modules/TextModule\";\r\nimport { ModuleErrorFallback } from \"./fallbacks/ModuleErrorFallback\";\r\nimport * as SentryReact from \"@sentry/react\";\r\nimport { combineProps } from \"../../helpers/objectHelper\";\r\nimport ZoomModule from \"../modules/ZoomModule/ZoomModule\";\r\nimport { BlockModule } from \"../modules/BlockModule\";\r\nimport ButtonModule from \"../modules/ButtonModule\";\r\nimport GroupGeneratorModule from \"../modules/GroupGeneratorModule\";\r\nimport VonageVideoClientModule from \"../modules/Vonage/VonageVideoClientModule\";\r\nimport CountdownModule from \"../modules/CountdownModule/CountdownModule\";\r\nimport { ImageMapModule } from \"../modules/ImageMapModule\";\r\nimport SpeakerControl from \"../modules/SpeakerControl/SpeakerControl\";\r\nimport SpeakerCard from \"../modules/SpeakerCard\";\r\nimport { SpeakerList } from \"../modules/SpeakerList.js/SpeakerList\";\r\nimport { EventName } from \"../modules/EventName\";\r\nimport { ContentView } from \"../modules/ContentView/ContentView\";\r\nimport { VideoWallModule } from \"../modules/VideoWallModule/VideoWallModule\";\r\nimport PlauditButtons from \"../modules/Plaudit/PlauditButtons\";\r\nimport PlauditTrack from \"../modules/Plaudit/PlauditTrack\";\r\n\r\nexport function MeetingLayoutModule(props) {\r\n const fullscreenRef = useRef();\r\n\r\n return ;\r\n}\r\nconst ClickthroughModules = [\"PlauditTrack\"];\r\nconst MeetingLayoutModuleWrapper = (props) => {\r\n const isSmartphone = useMediaQuery(\r\n json2mq({\r\n maxWidth: 600,\r\n })\r\n );\r\n const { width, height, posY, posX, zIndex, children, fullscreenRef, mobileLayout, mobile } = props;\r\n const { entranceAnimation, animationDuration, show } = props.settings;\r\n\r\n const elevateParentContainer = (elevate) => {\r\n fullscreenRef.current.style.transition = \"0.5s\";\r\n fullscreenRef.current.style.zIndex = elevate ? 100 : zIndex;\r\n fullscreenRef.current.style.height = elevate ? \"calc(100vh - 50px)\" : height;\r\n fullscreenRef.current.style.width = elevate ? \"100%\" : width;\r\n fullscreenRef.current.style.top = elevate ? \"50px\" : posY;\r\n fullscreenRef.current.style.left = elevate ? \"0px\" : posX;\r\n };\r\n\r\n if (show == false) return null;\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const RatioWrapper = ({ children, height, width, settings, fullWidth, style = {}, preview = false }) => {\r\n const [size, setSize] = useState(null);\r\n const [ratioStyle, setRationStyle] = useState({});\r\n const wrapperRef = useRef(null);\r\n\r\n const { aspectRatio, lockAspectRatio, bound } = settings;\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", onResize);\r\n onResize();\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", onResize);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n onResize();\r\n }, [width, height, wrapperRef.current]);\r\n\r\n const onResize = () => {\r\n if (lockAspectRatio) {\r\n setRationStyle(\r\n aspecRatio(\r\n width,\r\n height,\r\n aspectRatio,\r\n {\r\n height: window.innerHeight * (parseFloat(height) / 100),\r\n width: window.innerWidth * (parseFloat(width) / 100),\r\n },\r\n fullWidth\r\n )\r\n );\r\n }\r\n };\r\n\r\n if (!lockAspectRatio) return children;\r\n return (\r\n
(wrapperRef.current = r)}>\r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n};\r\nconst aspecRatio = (w, h, ratio, bound, fullWidth = false, callback = () => null) => {\r\n const defStyle = { height: \"100%\", width: \"100%\" };\r\n\r\n let toHigh = false;\r\n let toWide = false;\r\n let customWidth = w;\r\n let customHeight = h;\r\n if (!bound) return defStyle;\r\n switch (ratio) {\r\n case \"16:9\":\r\n toWide = (bound.height / bound.width).toFixed(4) < 0.5625;\r\n toHigh = (bound.height / bound.width).toFixed(4) > 0.5625;\r\n if (toHigh) {\r\n customWidth = \"100%\";\r\n customHeight = \"auto\"; //bound.width * 0.5625;\r\n }\r\n if (toWide) {\r\n customWidth = \"auto\"; // bound.height * 1.7777778;\r\n customHeight = \"100%\";\r\n }\r\n return {\r\n ...defStyle,\r\n height: customHeight,\r\n margin: \"auto\",\r\n aspectRatio: \"16/9\",\r\n width: customWidth,\r\n };\r\n case \"16:10\":\r\n toWide = (bound.height / bound.width).toFixed(3) < 0.625;\r\n toHigh = (bound.height / bound.width).toFixed(3) > 0.625;\r\n if (toHigh) {\r\n customWidth = \"100%\";\r\n customHeight = bound.width * 0.625;\r\n }\r\n if (toWide) {\r\n customWidth = fullWidth ? \"100%\" : bound.height * 1.6;\r\n customHeight = \"100%\";\r\n }\r\n\r\n return {\r\n ...defStyle,\r\n height: customHeight,\r\n margin: \"auto\",\r\n aspectRatio: \"16/10\",\r\n width: customWidth,\r\n };\r\n case \"4:3\":\r\n toWide = (bound.height / bound.width).toFixed(2) < 0.75;\r\n toHigh = (bound.height / bound.width).toFixed(2) > 0.75;\r\n if (toHigh) {\r\n customWidth = \"100%\";\r\n customHeight = bound.width * 0.75;\r\n }\r\n if (toWide) {\r\n customWidth = bound.height * 1.33333333333333;\r\n customHeight = \"100%\";\r\n }\r\n\r\n return {\r\n ...defStyle,\r\n height: customHeight,\r\n margin: \"auto\",\r\n aspectRatio: \"4/3\",\r\n width: customWidth,\r\n };\r\n default:\r\n return defStyle;\r\n }\r\n};\r\n\r\nfunction ModuleType(props) {\r\n const { moduleType } = props;\r\n switch (moduleType) {\r\n case \"Image\":\r\n return ;\r\n case \"Chat\":\r\n return ;\r\n case \"Iframe\":\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n case \"Html\":\r\n return ;\r\n case \"BlockModule\":\r\n return ;\r\n case \"TextModule\":\r\n return ;\r\n case \"EventName\":\r\n return ;\r\n case \"ButtonModule\":\r\n return ;\r\n case \"Exhibitors\":\r\n return ;\r\n case \"Breakouts\":\r\n return ;\r\n case \"CountdownModule\":\r\n return ;\r\n case \"Video\":\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n case \"PlauditButtons\":\r\n return ;\r\n case \"PlauditTrack\":\r\n return ;\r\n case \"Agenda\":\r\n return ;\r\n case \"GroupGenerator\":\r\n return ;\r\n case \"JitsiFrame\":\r\n return ;\r\n case \"Zoom\":\r\n return null;\r\n case \"Connections\":\r\n return ;\r\n case \"ClientList\":\r\n return ;\r\n case \"PollModule\":\r\n return ;\r\n case \"UserCard\":\r\n return ;\r\n case \"Presenter\":\r\n return ;\r\n case \"ZoomFrame\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"ImageMap\":\r\n return ;\r\n case \"SpeakerControl\":\r\n return ;\r\n case \"SpeakerCard\":\r\n return ;\r\n case \"SpeakerList\":\r\n return ;\r\n case \"ContentView\":\r\n return ;\r\n case \"VonageVideoClientModule\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"VideoWallModule\":\r\n return ;\r\n default:\r\n return null;\r\n }\r\n}\r\n","export const eventLabelGroupsConstants = {\r\n CHAT_LABEL_GROUP: \"DigitalMeeting.Chat\",\r\n CLIENTLIST_LABEL_GROUP: \"DigitalMeeting.ClientList\",\r\n EXHIBITOR_LABEL_GROUP: \"DigitalMeeting.Exhibitor\",\r\n BREAKOUT_LABEL_GROUP: \"DigitalMeeting.Breakout\",\r\n AGENDA_LABEL_GROUP: \"DigitalMeeting.Agenda\",\r\n VONAGE_LABEL_GROUP: \"DigitalMeeting.Vonage\",\r\n SPEAKER_CONTROL_LABEL_GROUP: \"DigitalMeeting.SpeakerControl\",\r\n SPEAKER_CARD_LABEL_GROUP: \"DigitalMeeting.SpeakerCard\",\r\n};\r\n","import React from \"react\";\r\nimport { insertFonts } from \"../../helpers/fontHelper\";\r\nimport { MeetingLayoutModule } from \"./MeetingLayoutModule\";\r\nimport { combineProps } from \"../../helpers/objectHelper\";\r\nimport { useMediaQuery } from \"@material-ui/core\";\r\nimport json2mq from \"json2mq\";\r\nimport { FontBasline } from \"./shared/FontBaseline\";\r\nimport { isUsingSafari } from \"../../helpers/browser.helper\";\r\n\r\nexport function MeetingLayout(props) {\r\n const { fonts, template, modules, noFontLoad, hasParent, mobile } = props;\r\n const { main } = template;\r\n return (\r\n \r\n {props.children}\r\n \r\n \r\n );\r\n}\r\n\r\nexport function FontInjector(props) {\r\n const { fonts, noFontLoad } = props;\r\n if (!fonts || noFontLoad) return null;\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction ViewWrapper(props) {\r\n //Mobile support (check if scroll)\r\n const isSmartphone = useMediaQuery(\r\n json2mq({\r\n maxWidth: 1280,\r\n })\r\n );\r\n const { children, style, noFontLoad, hasParent, mobile } = props;\r\n let height = hasParent ? (isSmartphone ? \"calc(100% - 50px)\" : \"calc(100% - 50px)\") : mobile && isSmartphone ? window.innerHeight : \"100vh\";\r\n\r\n /* if (isUsingSafari() && hasParent && isSmartphone) {\r\n height = \"calc(100% - 100px)\";\r\n }\r\n */\r\n const layoutStyle = isSmartphone\r\n ? {\r\n ...style,\r\n width: \"100%\",\r\n height,\r\n position: \"relative\",\r\n overflow: mobile || hasParent ? \"auto\" : hasParent ? \"hidden\" : \"hidden auto\",\r\n\r\n /* minHeight: mobile ? \"100vh\" : undefined, */\r\n }\r\n : {\r\n ...style,\r\n width: \"100%\",\r\n height,\r\n position: \"relative\",\r\n overflow: mobile || hasParent ? \"auto hidden\" : \"hidden\",\r\n };\r\n\r\n return (\r\n
\r\n {noFontLoad != true ? : null}\r\n {children}\r\n
\r\n );\r\n}\r\n\r\n// function DesktopViewWrapper(props) {\r\n// const { children, style } = props;\r\n// return (\r\n// \r\n// {children}\r\n// \r\n// );\r\n// }\r\n\r\n// function SmartphoneViewWrapper(props) {\r\n// const { children, style } = props;\r\n// return (\r\n// \r\n// {children}\r\n// \r\n// );\r\n// }\r\n\r\nfunction ModuleHandler(props) {\r\n //Mobile support (sort by sortorder)\r\n const { layout, modules, moduleIsInLayout, moduleBlueprint } = props;\r\n if (!Array.isArray(modules)) return null;\r\n return modules\r\n .filter(moduleIsInLayout)\r\n .sort((a, b) => {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n .map((m, i) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n });\r\n}\r\n","import React from \"react\";\r\nimport SystemLabel from \"../system/SystemLabel/SystemLabel\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nexport default function NotAuthorized(props) {\r\n return (\r\n
\r\n \r\n {\" \"}\r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n","export const templateConstants = {\r\n GET_DEFAULT_TEMPLATE_BY_EVENT_REQUEST: \"GET_DEFAULT_TEMPLATE_BY_EVENT_REQUEST\",\r\n GET_DEFAULT_TEMPLATE_BY_EVENT_SUCCESS: \"GET_DEFAULT_TEMPLATE_BY_EVENT_SUCCESS\",\r\n GET_DEFAULT_TEMPLATE_BY_EVENT_FAILURE: \"GET_DEFAULT_TEMPLATE_BY_EVENT_FAILURE\",\r\n\r\n GET_TEMPLATE_BY_EVENT_REQUEST: \"GET_TEMPLATE_BY_EVENT_REQUEST\",\r\n GET_TEMPLATE_BY_EVENT_SUCCESS: \"GET_TEMPLATE_BY_EVENT_SUCCESS\",\r\n GET_TEMPLATE_BY_EVENT_FAILURE: \"GET_TEMPLATE_BY_EVENT_FAILURE\",\r\n\r\n\r\n GET_TEMPLATE_REQUEST: \"GET_TEMPLATE_REQUEST\",\r\n GET_TEMPLATE_SUCCESS: \"GET_TEMPLATE_SUCCESS\",\r\n GET_TEMPLATE_FAILURE: \"GET_TEMPLATET_FAILURE\",\r\n\r\n CREATE_TEMPLATE_SUCCESS: \"CREATE_TEMPLATE_SUCCESS\",\r\n CREATE_TEMPLATE_REQUEST: \"CREATE_TEMPLATE_REQUEST\",\r\n CREATE_TEMPLATE_FAILURE: \"CREATE_TEMPLATE_FAILURE\",\r\n\r\n TOGGLE_MENU_MODAL: \"TOGGLE_MENU_MODAL\",\r\n\r\n DESKTOP: 'desktop',\r\n SMARTPHONE: 'smartphone',\r\n TABLET: 'tablet',\r\n\r\n GETALL_TEMPLATE_REQUEST: \"GETALL_TEMPLATE_REQUEST\",\r\n GETALL_TEMPLATE_SUCCESS: \"GETALL_TEMPLATE_SUCCESS\",\r\n GETALL_TEMPLATE_FAILURE: \"GETALL_TEMPLATE_FAILURE\",\r\n\r\n UPDATE_TEMPLATE_REQUEST: \"UPDATE_TEMPLATE_REQUEST\",\r\n UPDATE_TEMPLATE_SUCCESS: \"UPDATE_TEMPLATE_SUCCESS\",\r\n UPDATE_TEMPLATE_FAILURE: \"UPDATE_TEMPLATE_FAILURE\",\r\n\r\nTOGGLE_PREVIEW_MODE: 'TOGGLE_PREVIEW_MODE',\r\n DESELECT_SUCCESS: 'DESELECT_SUCCESS',\r\n SOFT_UPDATE_TEMPLATE: \"SOFT_UPDATE_TEMPLATE\",\r\n UNDO_TEMPLATE_CHANGE: \"UNDO_TEMPLATE_CHANGE\",\r\n REDO_TEMPLATE_CHANGE: \"REDO_TEMPLATE_CHANGE\",\r\n SELECT_TEMPLATE_ELEMENT: \"SELECT_TEMPLATE_ELEMENT\",\r\n DELETE_TEMPLATE_ELEMENT_SUCCESS: \" DELETE_TEMPLATE_ELEMENT_SUCCESS\",\r\n\r\n SET_TEMPLATE_FROM_FORM: 'SET_TEMPLATE_FROM_FORM',\r\n SET_TEMPLATE_FROM_FORM_REQUEST: 'SET_TEMPLATE_FROM_FORM_REQUEST'\r\n /* COPY_SUCCESS: 'COPY_SUCCESS' */\r\n //and so on\r\n};\r\n","import React, { Component, memo, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport \"./styles.css\";\r\nimport { arrayHelper } from \"../../helpers/arrayHelper\";\r\n\r\nfunction isEqual(prevProps, nextProps) {\r\n if (nextProps.preview == true) {\r\n return false;\r\n }\r\n if(nextProps && prevProps && nextProps.changeKey != prevProps.changeKey){\r\n return false;\r\n }\r\n if (nextProps && prevProps && nextProps.list && prevProps.list) {\r\n if (nextProps.list.length === prevProps.list.length) {\r\n if (nextProps.compareParam) {\r\n let hasChanged = arrayHelper.compareChanges(nextProps.list, prevProps.list, nextProps.compareParam);\r\n return !hasChanged;\r\n }\r\n }\r\n }\r\n //default to not equal\r\n return false;\r\n}\r\nconst ReactEternalList = memo(({ list, onUpdate, preview, clientListTemplate, component, updateRate }) => {\r\n const [listItemHeight, setListItemHeight] = useState(80);\r\n const [forceReRender, setForceReRender] = useState(true);\r\n const [renderList, setRenderList] = useState({});\r\n const containerRef = useRef();\r\n const dummyElRef = useRef();\r\n const containerTopRef = useRef();\r\n const updateOnScrollRef = useRef();\r\n const recursiveSplit = (data) => {\r\n if (data.length / 2 > 10) {\r\n let mid = Math.floor(data.length / 2, 10);\r\n let node = {\r\n parent: true,\r\n getParent: () => data,\r\n data: [recursiveSplit(data.slice(0, mid)), recursiveSplit(data.slice(mid, data.length + 1))],\r\n };\r\n return node;\r\n }\r\n return {\r\n parent: false,\r\n data,\r\n };\r\n };\r\n const updateNodeDimension = (node) => {\r\n if (node.parent) {\r\n node.height = 0;\r\n let temp;\r\n for (let idx = 0; idx < node.data.length; idx++) {\r\n temp = updateNodeDimension(node.data[idx]);\r\n node.height += temp.height;\r\n }\r\n node.top = node.data[0] ? node.data[0].top : 0;\r\n node.bottom = node.top + node.height;\r\n } else {\r\n node.height = (node.data || []).length * listItemHeight;\r\n node.top = containerTopRef.current;\r\n node.bottom = node.top + node.height;\r\n containerTopRef.current = containerTopRef.current + node.height;\r\n }\r\n return node;\r\n };\r\n const updateNodeVisibility = (node) => {\r\n let isVisible = isNodeVisible(node);\r\n node.visible = isVisible;\r\n if (node.visible && node.parent) {\r\n for (let idx = 0; idx < node.data.length; idx++) {\r\n updateNodeVisibility(node.data[idx]);\r\n }\r\n }\r\n };\r\n const isNodeVisible = (node) => {\r\n if (!containerRef.current) return false;\r\n return (\r\n node.top <= containerRef.current.scrollTop + parseInt(containerRef.current.clientHeight, 10) * 1.5 &&\r\n node.bottom - parseInt(containerRef.current.clientHeight, 10) * -0.5 >= containerRef.current.scrollTop\r\n );\r\n };\r\n useEffect(() => {\r\n if (preview) {\r\n updateRenderList();\r\n }\r\n }, [clientListTemplate]);\r\n useEffect(() => {\r\n updateRenderList();\r\n }, []);\r\n useEffect(() => {\r\n updateRenderList();\r\n }, [list, listItemHeight]);\r\n\r\n const updateRenderList = () => {\r\n let newList = recursiveSplit(list);\r\n containerTopRef.current = 0;\r\n updateNodeDimension(newList);\r\n updateNodeVisibility(newList);\r\n setRenderList(newList);\r\n };\r\n\r\n useEffect(() => {\r\n if (dummyElRef.current && dummyElRef.current.clientHeight !== listItemHeight) {\r\n setListItemHeight(dummyElRef.current.clientHeight);\r\n }\r\n }, [dummyElRef.current]);\r\n\r\n const handleScroll = (e) => {\r\n if (!updateOnScrollRef.current)\r\n updateOnScrollRef.current = setTimeout(() => {\r\n updateOnScrollRef.current = null;\r\n updateNodeVisibility(renderList);\r\n setForceReRender(!forceReRender);\r\n }, 100);\r\n };\r\n\r\n const getChildren = (node) => {\r\n if (node.parent) {\r\n return (node.data || []).map((item, index) => {\r\n return (\r\n
\r\n {item.visible ? getChildren(item) : \"\"}\r\n
\r\n );\r\n });\r\n } else {\r\n return (node.data || []).map((item, index) => {\r\n return component(item, index);\r\n });\r\n }\r\n };\r\n return (\r\n
\r\n {list && list.length > 0 ? (\r\n \r\n
\r\n {list && list.length > 0 ? (\r\n
\r\n {component(list[0])}\r\n
\r\n ) : null}\r\n
\r\n
{getChildren(renderList)}
\r\n
\r\n ) : null}\r\n
\r\n );\r\n}, isEqual);\r\nexport default ReactEternalList;\r\n","export function toTitleCase(str) {\r\n return str.replace(\r\n /\\w\\S*/g,\r\n function(txt) {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1);\r\n }\r\n );\r\n }\r\n\r\n export function escapeHTML(str){\r\n var p = document.createElement(\"p\");\r\n p.appendChild(document.createTextNode(str));\r\n return p.innerHTML;\r\n}","import React from \"react\";\r\nimport { insertFonts } from \"../../../helpers/fontHelper\";\r\n\r\nexport const FontBasline = ({ fonts, template, modules }) => {\r\n return fonts || template || modules ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : null;\r\n};\r\n","import React from \"react\";\r\nimport SearchIcon from '@material-ui/icons/Search'\r\n\r\n\r\nexport function ChatSearchbar(props) {\r\n const { filter } = props;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n filter(e.target.value)} />\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\r\nimport \"./PlauditTrackStyles.css\"\r\n\r\nexport default function PlauditTrack({ hubConnection, eventId, settings, preview }) {\r\n const { alignment = \"right\", backgroundColor = \"#0000\" } = settings;\r\n const parentRef = useRef();\r\n const [loopIsRunning, setLoopIsRunning] = useState(false);\r\n const [content, setContent] = useState([]);\r\n const loopRef = useRef(null);\r\n const [uploadedFiles, setUploadedFiles] = useState({});\r\n useEffect(() => {\r\n getUploadedIcons()\r\n return () => {\r\n if (loopRef.current) {\r\n clearInterval(loopRef.current)\r\n }\r\n }\r\n }, [])\r\n useEffect(() => {\r\n if (!preview) {\r\n if (hubConnection) {\r\n hubConnection.on(\"onSendReaction\", onSendReaction);\r\n }\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onSendReaction\", onSendReaction);\r\n }\r\n }\r\n })\r\n const onSendReaction = (name) => {\r\n content.push(new IconBurst(parentRef.current, uploadedFiles[name] ? uploadedFiles[name] : `https://cdn.jsdelivr.net/npm/twemoji@latest/2/svg/${name.toLowerCase()}.svg`));\r\n if (!loopIsRunning) {\r\n setLoopIsRunning(true);\r\n animate();\r\n }\r\n }\r\n const animate = () => {\r\n let i = 0;\r\n for (i = 0; i < content.length; ++i) {\r\n if (content[i].done) {\r\n content[i].flush();\r\n content.splice(i, 1);\r\n }\r\n }\r\n // animate\r\n for (i = 0; i < content.length; ++i) {\r\n content[i].update();\r\n content[i].draw();\r\n }\r\n if (content.length > 0) {\r\n requestAnimationFrame(animate);\r\n }\r\n else {\r\n setLoopIsRunning(false);\r\n }\r\n }\r\n const getUploadedIcons = () => {\r\n const requestOptions = {\r\n method: \"GET\",\r\n };\r\n fetch(\r\n `./api/files/icons/${eventId}`,\r\n requestOptions\r\n ).then((response) =>\r\n response.text().then((text) => {\r\n try {\r\n const storageSummary = JSON.parse(text);\r\n var files = {};\r\n for (const file of storageSummary.files) {\r\n files[file.name] = file.url;\r\n }\r\n setUploadedFiles(files);\r\n } catch (error) {\r\n console.error(\"DOWNLOAD_ERROR\", error);\r\n }\r\n })\r\n );\r\n };\r\n return
\r\n}\r\n\r\n\r\nclass IconBurst {\r\n constructor(parent, src) {\r\n this.timestamp = Date.now();\r\n this.parent = parent;\r\n this.x = 0;\r\n this.y = 0;\r\n this.color = Math.floor(Math.random() * 360);\r\n this.phase = Math.random() * 360;\r\n this.radius = Math.random() * 1;\r\n this.speed = 4;\r\n this.scale = 0.4 + Math.random() * 0.8;\r\n this.grow = 0.01;\r\n this.alpha = 1;\r\n this.done = false;\r\n this.distance = this.parent.clientHeight * -1;\r\n this.outer = document.createElement(\"div\");\r\n this.outer.className = `icon-outer`;\r\n\r\n /* */\r\n\r\n this.outer.style.left = this.parent.clientWidth - 50 + \"px\";\r\n this.outer.style.top = this.parent.clientHeight - 30 + \"px\";\r\n this.inner = document.createElement(\"div\");\r\n this.inner.className = `icon-inner`;\r\n this.inner.style.left = (this.parent.clientWidth / Math.floor(1 + (Math.random() * 3))) * -1 + \"px\"\r\n this.img = document.createElement(\"img\")\r\n this.img.src = src\r\n this.inner.append(this.img);\r\n this.outer.appendChild(this.inner);\r\n this.parent.appendChild(this.outer);\r\n\r\n this.draw();\r\n }\r\n\r\n flush() {\r\n if (this.parent.contains(this.outer)) {\r\n this.parent.removeChild(this.outer);\r\n }\r\n this.outer = null;\r\n this.inner = null;\r\n }\r\n\r\n draw() {\r\n if (this.done) return;\r\n this.outer.style.transform = \"translateX( \" + this.x + \"px ) translateY( \" + this.y + \"px ) translateZ( 0 ) scale( \" + this.grow + \" )\";\r\n this.outer.style.opacity = this.alpha;\r\n }\r\n\r\n update() {\r\n this.alpha = this.alpha > 0 ? this.alpha - 0.0015 : this.alpha;\r\n this.alpha = this.alpha < 0 ? 0.4 : this.alpha;\r\n\r\n this.x += Math.cos(this.phase / 50) * this.radius;\r\n this.y -= this.speed;\r\n\r\n this.grow += (this.scale - this.grow) / 10;\r\n this.phase += 1;\r\n\r\n this.done = this.y < this.distance || this.alpha <= 0 || this.timestamp + 15000 < Date.now() ? true : false;\r\n //\r\n }\r\n}","import { AppBar, Button, ButtonGroup } from \"@material-ui/core\";\r\nimport React, { useMemo } from \"react\";\r\n\r\nexport const BackstageChatHeader = (props) => {\r\n const { currentChat, disableGroupChat, orderList = [], chatTemplate, chats, missedGroupMessages, clientKey, exhibitor = false, deselectChat = () => null, selectChat } = props;\r\n const undreadEventMessages = useMemo(() => {\r\n let count = 0;\r\n chats.map((c) => {\r\n if (c.seen == false && c.target != currentChat) {\r\n count += c.messages.filter((m) => m.seen == false && m.receiver == clientKey).length;\r\n }\r\n if (c.target == \"ALL\" && c.seen == false && currentChat != \"ALL\") {\r\n count += missedGroupMessages;\r\n }\r\n });\r\n return count > 0;\r\n }, [chats]);\r\n\r\n const undreadBackstageMessages = useMemo(() => {\r\n let count = 0;\r\n chats.map((c) => {\r\n if (c.seen == false && c.target != currentChat) {\r\n count += c.messages.filter((m) => m.seen == false && m.receiver == clientKey).length;\r\n }\r\n if (c.target == \"BACKSTAGE\" && c.seen == false && currentChat != \"BACKSTAGE\") {\r\n count += missedGroupMessages;\r\n }\r\n });\r\n return count > 0;\r\n }, [chats]);\r\n\r\n return (\r\n \r\n \r\n selectChat(\"BACKSTAGE\")}\r\n variant={currentChat == \"BACKSTAGE\" ? \"contained\" : \"\"}\r\n size=\"small\"\r\n style={{ color: \"#fff\", border: 0, backgroundColor: currentChat == \"BACKSTAGE\" ? \"rgb(22 88 197)\" : \"transparent\", borderRadius: currentChat == \"BACKSTAGE\" ? 25 : undefined }}\r\n >\r\n {undreadBackstageMessages ? : null} Backstage\r\n \r\n selectChat(disableGroupChat ? \"NONE2\":\"ALL\")}\r\n variant={currentChat == \"ALL\" ? \"contained\" : \"\"}\r\n size=\"small\"\r\n style={{ color: \"#fff\", border: 0, backgroundColor: currentChat == \"ALL\" || currentChat == \"NONE2\" ? \"rgb(22 88 197)\" : \"transparent\", borderRadius: currentChat == \"ALL\" ? 25 : undefined }}\r\n >\r\n {undreadEventMessages ? : null} Event\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst UndreadMessagesDot = () =>
;\r\n","import { AppBar } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { PersonDetails } from \"./PersonDetails\";\r\n\r\nexport function ChatHeader(props) {\r\n const { chatTemplate, currentChat } = props;\r\n const { header } = chatTemplate;\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { BackstageChatHeader } from \"./BackstageChatHeader\";\r\nimport { ChatFooter } from \"./ChatFooter\";\r\nimport { ChatHeader } from \"./ChatHeader\";\r\nimport { MessageList } from \"./MessageList\";\r\nimport { ScrollToBottomButton } from \"./ScrollToBottomButton\";\r\n\r\nexport function ChatContainer(props) {\r\n const { autoScrollLocked, currentChat, backstage, chatTemplate, chatBlock, anonymous, eventId, parentEventId } = props;\r\n\r\n const { collapsible, hideFooter, hideHeader } = props.settings;\r\n const { container } = chatTemplate;\r\n const { borderRadius, borderColor, borderWidth } = container;\r\n\r\n return (\r\n \r\n {!hideHeader && <>{!backstage ? : }}\r\n {autoScrollLocked && currentChat == \"ALL\" && !(parentEventId == 1427 || eventId == 1427) ? : null}\r\n \r\n {!chatBlock && anonymous != true && !hideFooter ? : null}\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { arrayHelper } from \"../../../helpers/arrayHelper\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport { eventLabelGroupsConstants } from \"../../constants/eventLabelGroups.contansts\";\r\nimport { ChatContainer } from \"./components/ChatContainer\";\r\nimport { backstageChatStyle, chatStyle } from \"./helpers/chat.helper\";\r\nimport ChatBubbleRoundedIcon from \"@material-ui/icons/ChatBubbleRounded\";\r\nimport { Badge, Fab, Tooltip } from \"@material-ui/core\";\r\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { UndreadMessageSnackbar } from \"./components/UnreadMessageSnackbar\";\r\nimport \"./chatModuleStyle.css\";\r\nconst mockChat = [{}];\r\n\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nfunction ChatModule(props) {\r\n const {\r\n eventId,\r\n lang,\r\n allowModeratorChat,\r\n disableGroupChat,\r\n elevateParentContainer = () => null,\r\n hubConnection,\r\n clientKey,\r\n clientName,\r\n settings,\r\n channel,\r\n template,\r\n companyName,\r\n backstage = false,\r\n connected,\r\n preview = false,\r\n } = props;\r\n const [chats, setChats] = useState([]);\r\n const [loaded, setLoaded] = useState(false);\r\n const [currentChat, setCurrentChat] = useState(backstage ? \"BACKSTAGE\" : disableGroupChat ? \"NONE\" : \"ALL\");\r\n const [autoScrollLocked, setAutoScrollLocked] = useState(false);\r\n const [chatConnections, setChatConnections] = useState([]);\r\n const [hiddenMessages, setHiddenMessages] = useState(0);\r\n const [initalScrollPos, setInitalScrollPos] = useState(null);\r\n const [missedGroupMessages, setMissedGroupMessages] = useState(0);\r\n const [messagesToShow, setMessagesToShow] = useState(30);\r\n const [chatBlock, setChatBlock] = useState(false);\r\n const [collapsed, setCollapsed] = useState(settings.collapsible);\r\n\r\n const scrollRef = useRef();\r\n const chatMessageRef = useRef([]);\r\n const lastMessageRef = useRef();\r\n const mountedRef = useRef(true);\r\n const connectionTimer = useRef();\r\n\r\n const prevCurrenChat = usePrevious(currentChat);\r\n\r\n useEffect(() => {\r\n if (preview) return;\r\n init(eventId, eventLabelGroupsConstants.CHAT_LABEL_GROUP, lang);\r\n configureHubEvents();\r\n return () => {\r\n mountedRef.current = false;\r\n lastMessageRef.current = null;\r\n if (connectionTimer.current) {\r\n clearInterval(connectionTimer.current);\r\n connectionTimer.current = null;\r\n }\r\n };\r\n }, []);\r\n\r\n //Initial scroll when chat loaded\r\n useEffect(() => {\r\n if (!autoScrollLocked && chats.length != 0 && lastMessageRef.current && !loaded) {\r\n setLoaded(true);\r\n setTimeout(() => handleScroll(), 500);\r\n }\r\n if (!autoScrollLocked && chats.length != 0 && lastMessageRef.current && currentChat != prevCurrenChat) {\r\n setTimeout(() => handleScroll(), 500);\r\n }\r\n }, [chats, lastMessageRef.current]);\r\n\r\n //Re-assing hubevents when chats has changed\r\n useEffect(() => {\r\n if (hubConnection && mountedRef.current == true) {\r\n hubConnection.on(\"onSendChatMessage\", onSendChatMessage);\r\n hubConnection.on(\"onChatMessageReceived\", onReceiveMessage);\r\n hubConnection.on(\"onLikeMessage\", onLikeMessage);\r\n hubConnection.on(\"onGetChatMessage\", onGetChatMessages);\r\n hubConnection.on(\"onMessageRemoved\", onMessageRemoved);\r\n hubConnection.on(\"onMessageEdit\", onMessageEdit);\r\n hubConnection.on(\"onClearSharedChat\", onClearChatMessages);\r\n hubConnection.on(\"onGetActiveChatConnections\", onGetActiveChatConnections);\r\n hubConnection.on(\"onInteractionExtraSet\", onInteractionExtraSet);\r\n hubConnection.on(\"onExposeHiddenMessages\", onExposeHiddenMessages);\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onSendChatMessage\", onSendChatMessage);\r\n hubConnection.off(\"onChatMessageReceived\", onReceiveMessage);\r\n hubConnection.off(\"onLikeMessage\", onLikeMessage);\r\n hubConnection.off(\"onGetChatMessage\", onGetChatMessages);\r\n hubConnection.off(\"onMessageRemoved\", onMessageRemoved);\r\n hubConnection.off(\"onMessageEdit\", onMessageEdit);\r\n hubConnection.off(\"onClearSharedChat\", onClearChatMessages);\r\n hubConnection.off(\"onGetActiveChatConnections\", onGetActiveChatConnections);\r\n hubConnection.off(\"onInteractionExtraSet\", onInteractionExtraSet);\r\n hubConnection.off(\"onExposeHiddenMessages\", onExposeHiddenMessages);\r\n }\r\n };\r\n });\r\n\r\n const onGetActiveChatConnections = (newChatConnections) => {\r\n if (arrayHelper.compareChanges(chatConnections, newChatConnections, \"clientKey\")) {\r\n setChatConnections(newChatConnections);\r\n }\r\n };\r\n\r\n const onInteractionExtraSet = (extra) => {\r\n if (extra && extra.name == \"ChatBlock\") {\r\n setChatBlock(extra.value == \"True\" ? true : false);\r\n }\r\n };\r\n\r\n const configureHubEvents = () => {\r\n if (hubConnection && mountedRef.current == true) {\r\n hubConnection.invoke(\"getChatMessages\", settings?.requestedEventId ?? eventId, clientKey, channel, backstage);\r\n if (settings?.requestedEventId) {\r\n hubConnection.invoke(\"joinChatGroup\", settings.requestedEventId);\r\n }\r\n updateChatConnections();\r\n\r\n if (!connectionTimer.current) {\r\n connectionTimer.current = setInterval(() => updateChatConnections(), 10000);\r\n }\r\n }\r\n };\r\n\r\n const updateChatConnections = () => {\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"getActiveChatConnections\", settings?.requestedEventId ?? eventId).catch((err) => {});\r\n }\r\n };\r\n\r\n const onMessageEdit = (response) => {\r\n const c = Array.from(chats);\r\n const targetChat = c.find((c) => c.target == \"ALL\");\r\n if (!targetChat) return;\r\n let chatIndex = c.indexOf(targetChat);\r\n let messageIndex = targetChat.messages.indexOf(targetChat.messages.find((r) => r.interactionChatId == response.id));\r\n if (chatIndex > -1 && messageIndex > -1) {\r\n c[chatIndex].messages[messageIndex].message = response.message;\r\n setChats(c);\r\n }\r\n };\r\n\r\n const onMessageRemoved = (response) => {\r\n const c = Array.from(chats);\r\n const targetChat = c.find((c) => c.target == \"ALL\");\r\n if (!targetChat) return;\r\n let chatIndex = c.indexOf(targetChat);\r\n let messageIndex = targetChat.messages.indexOf(targetChat.messages.find((r) => r.interactionChatId == response.id));\r\n if (chatIndex > -1 && messageIndex > -1) {\r\n c[chatIndex].messages[messageIndex].message = response.message;\r\n setChats(c);\r\n }\r\n };\r\n\r\n const onClearChatMessages = () => {\r\n const c = Array.from(chats);\r\n chatConnections.map((c) => {\r\n c.messages = [];\r\n });\r\n setChats(c);\r\n };\r\n\r\n const onGetChatMessages = (c) => {\r\n setChats(c);\r\n if (settings?.requestedEventId) handleScroll(true);\r\n };\r\n\r\n const onExposeHiddenMessages = () => {\r\n const c = Array.from(chats);\r\n c.map((c) => {\r\n if (c.target == \"ALL\") {\r\n debugger;\r\n c.messages.map((m) => {\r\n m.hidden = false;\r\n });\r\n }\r\n });\r\n setChats(c);\r\n setTimeout(() => {\r\n scrollToBottom();\r\n }, 500);\r\n };\r\n\r\n const onReceiveMessage = (message) => {\r\n const c = Array.from(chats);\r\n const targetChat = c.find((c) => c.target == message.sender);\r\n const { senderFirstName, senderLastName } = message;\r\n let hm = hiddenMessages;\r\n\r\n if (targetChat) {\r\n let chatIndex = c.indexOf(targetChat);\r\n if (chatIndex > -1) {\r\n c[chatIndex].messages.push(message);\r\n c[chatIndex].previewText = message.message;\r\n c[chatIndex].previewPrefix = `${senderFirstName} ${senderLastName}`;\r\n c[chatIndex].lastChange = message.inserted;\r\n\r\n if (currentChat && currentChat != c[chatIndex].target) {\r\n c[chatIndex].seen = false;\r\n }\r\n if (currentChat && currentChat == c[chatIndex].target) {\r\n setMessageSeen(currentChat);\r\n }\r\n }\r\n } else {\r\n c.push({\r\n lastChange: message.inserted,\r\n messages: [message],\r\n previewText: message.message,\r\n previewPreFix: `${senderFirstName} ${senderLastName}`,\r\n target: message.sender,\r\n seen: false,\r\n hidden: message.hidden,\r\n });\r\n }\r\n if ((autoScrollLocked && currentChat && message.sender == currentChat) || collapsed) {\r\n hm += 1;\r\n }\r\n setChats(c);\r\n setHiddenMessages(hm);\r\n if (!autoScrollLocked) handleScroll(true);\r\n };\r\n\r\n const onLikeMessage = (messageId) => {\r\n const c = Array.from(chats);\r\n c.map((ci) => {\r\n ci.messages.map((m) => {\r\n if (m.interactionChatId == messageId) {\r\n if (m.likes == null) m.likes = 0;\r\n m.likes += 1;\r\n }\r\n });\r\n });\r\n setChats(c);\r\n };\r\n\r\n const onSendChatMessage = (sentMessage) => {\r\n if (sentMessage.receiver == \"ALL\" && sentMessage.room != props.channel) return;\r\n const { target, receiver, sender, senderFirstName, senderLastName, message, inserted } = sentMessage;\r\n const c = Array.from(chats);\r\n const targetChat = c.find((c) => c.target == receiver);\r\n\r\n let mgm = missedGroupMessages;\r\n let hm = hiddenMessages;\r\n\r\n let chatIndex = c.indexOf(targetChat);\r\n if (targetChat) {\r\n c.map((c) => {\r\n if (c.target == target) {\r\n c.seen = false;\r\n }\r\n });\r\n if (chatIndex > -1) {\r\n c[chatIndex].previewText = message;\r\n c[chatIndex].previewPrefix = senderFirstName + \" \" + senderLastName;\r\n c[chatIndex].lastChange = inserted;\r\n c[chatIndex].messages.push(sentMessage);\r\n c[chatIndex].messages.map((m) => {\r\n if (m.sender == clientKey) {\r\n m.seen = true;\r\n }\r\n });\r\n c[chatIndex].seen = !c[chatIndex].messages.some((m) => m.seen == false);\r\n }\r\n mgm += 1;\r\n } else {\r\n c.push({\r\n lastChange: inserted,\r\n messages: [sentMessage],\r\n previewText: message,\r\n previewPreFix: sender == clientKey ? \"You\" : `${senderFirstName} ${senderLastName}`,\r\n target: receiver,\r\n seen: sender == clientKey ? true : false,\r\n hidden: sentMessage.hidden,\r\n });\r\n }\r\n\r\n //If the autoscroll is locked (you been manually scrolling up) and the sender of the message is the same conversation as the one you have selected\r\n //Or the autoscroll is locked and the receiver is the same conversation and the selected conversation is the group chat\r\n if ((autoScrollLocked && sender == currentChat) || (autoScrollLocked && receiver == currentChat && currentChat == \"ALL\") || collapsed) {\r\n hm += 1;\r\n }\r\n\r\n setChats(c);\r\n setHiddenMessages(hiddenMessages);\r\n setMissedGroupMessages(mgm);\r\n\r\n if (!autoScrollLocked) handleScroll(true);\r\n };\r\n\r\n const setMessageSeen = (target) => {\r\n const c = Array.from(chats);\r\n c.map((c) => {\r\n if (c.target == target) {\r\n c.messages.map((m) => {\r\n m.seen = true;\r\n });\r\n }\r\n });\r\n setChats(c);\r\n if (!connected || !hubConnection || hubConnection.connectionState != 1) return;\r\n hubConnection.invoke(\"setMessageSeen\", eventId, clientKey, target, null);\r\n };\r\n\r\n const likeMessage = (messageId) => {\r\n if (!connected || !hubConnection || hubConnection.connectionState != 1) return;\r\n hubConnection.invoke(\"like\", messageId, eventId);\r\n };\r\n\r\n const selectChat = (target) => {\r\n const c = Array.from(chats);\r\n let selectedChat = c.find((c) => c.target == target);\r\n let cc = currentChat;\r\n if (selectedChat) {\r\n cc = selectedChat.target;\r\n let chatIndex = c.indexOf(c.find((c) => c.target == selectedChat.target));\r\n if (chatIndex > -1) {\r\n c[chatIndex].seen = true;\r\n c[chatIndex].messages.map((m) => {\r\n m.seen = true;\r\n });\r\n }\r\n\r\n if (target != \"ALL\") {\r\n setMessageSeen(target);\r\n }\r\n } else {\r\n cc = target;\r\n c.push({\r\n lastChange: \"\",\r\n messages: [],\r\n previewText: \"\",\r\n previewPreFix: \"\",\r\n target: target,\r\n seen: true,\r\n });\r\n }\r\n\r\n setAutoScrollLocked(false);\r\n setHiddenMessages(0);\r\n setMissedGroupMessages(0);\r\n setCurrentChat(cc);\r\n };\r\n\r\n const scrollToBottom = () => {\r\n const c = Array.from(chats);\r\n let currentChatConversation = c.find((c) => c.target == currentChat);\r\n if (currentChatConversation && !currentChatConversation.seen) {\r\n let index = c.indexOf(currentChatConversation);\r\n if (index > -1) c[index].seen = true;\r\n c.seen = true;\r\n if (currentChat != \"ALL\") {\r\n setMessageSeen(currentChat);\r\n }\r\n }\r\n setHiddenMessages(0);\r\n setMissedGroupMessages(0);\r\n handleScroll(true);\r\n };\r\n\r\n const onScroll = (manual = false) => {\r\n if (manual) {\r\n const c = Array.from(chats);\r\n const scrollTop = scrollRef.current.scrollTop;\r\n if (initalScrollPos >= 150 && scrollTop <= initalScrollPos - 150) {\r\n setAutoScrollLocked(true);\r\n }\r\n\r\n if (initalScrollPos <= scrollTop) {\r\n let currentChatConversation = c.find((c) => c.target == currentChat);\r\n\r\n if (currentChatConversation && !currentChatConversation.seen) {\r\n let index = c.indexOf(currentChatConversation);\r\n if (index > -1) c[index].seen = true;\r\n c.seen = true;\r\n if (c.target != \"ALL\") {\r\n setMessageSeen(currentChat);\r\n }\r\n }\r\n setAutoScrollLocked(false);\r\n setHiddenMessages(0);\r\n }\r\n }\r\n };\r\n\r\n const handleScroll = (toBottom = false) => {\r\n let chatIndex = chats.indexOf(chats.find((c) => c.target == currentChat));\r\n if (chatIndex > -1) {\r\n let index = chats[chatIndex].messages.slice(messagesToShow * -1).length - 1;\r\n if (index > -1 && lastMessageRef.current) {\r\n try {\r\n lastMessageRef.current.scrollIntoView({\r\n block: \"end\",\r\n behavior: \"smooth\",\r\n });\r\n if (autoScrollLocked == true || toBottom == true) setAutoScrollLocked(false);\r\n\r\n if (scrollRef.current) {\r\n setTimeout(() => {\r\n if (scrollRef.current) {\r\n let isp = scrollRef.current.scrollTop;\r\n setInitalScrollPos(isp);\r\n setMissedGroupMessages(0);\r\n }\r\n }, 1500);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const api = useMemo(() => {\r\n const restrictions = (chat) => {\r\n if (!allowModeratorChat && chat.target == \"MODERATOR\") return false;\r\n if (disableGroupChat && chat.target == \"ALL\") return false;\r\n return true;\r\n };\r\n const filteredChats = chats.filter(restrictions);\r\n return {\r\n ...props,\r\n currentChat,\r\n chats: filteredChats,\r\n loaded,\r\n autoScrollLocked,\r\n hiddenMessages,\r\n initalScrollPos,\r\n missedGroupMessages,\r\n messagesToShow,\r\n connectionList: chatConnections,\r\n chatMessageRef,\r\n chatBlock,\r\n scrollRef,\r\n onScroll: onScroll,\r\n lastMessageRef,\r\n selectChat,\r\n preview,\r\n likeMessage,\r\n setMessageSeen,\r\n handleScroll: handleScroll,\r\n scrollToBottom,\r\n };\r\n }, [\r\n props,\r\n currentChat,\r\n props.clientKey,\r\n chats,\r\n lastMessageRef.current,\r\n loaded,\r\n autoScrollLocked,\r\n chatBlock,\r\n hiddenMessages,\r\n initalScrollPos,\r\n missedGroupMessages,\r\n props.interactionAllowOneToOneChat,\r\n messagesToShow,\r\n allowModeratorChat,\r\n disableGroupChat,\r\n chatConnections,\r\n ]);\r\n\r\n const chatTemplate = useMemo(() => (backstage ? backstageChatStyle : chatStyle(template)), [template, backstage]);\r\n\r\n const { header, primaryColor, secondaryColor, badgePillColor } = chatTemplate;\r\n\r\n if ((props.settings.collapsible && collapsed) || (props.settings.collapsible && preview)) {\r\n return (\r\n {\r\n setMissedGroupMessages(0);\r\n setHiddenMessages(0);\r\n setCollapsed(!collapsed);\r\n elevateParentContainer(collapsed);\r\n }}\r\n >\r\n 0 ? \"block\" : \"none\",\r\n }}\r\n />\r\n\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {props.settings.collapsible ? (\r\n {\r\n setMissedGroupMessages(0);\r\n setHiddenMessages(0);\r\n setCollapsed(!collapsed);\r\n elevateParentContainer(collapsed);\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n cms: state.cms,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ChatModule);\r\n","import React, { useRef, useState, useEffect, useMemo } from \"react\";\r\nimport Dailymotion from \"react-dailymotion\";\r\nimport { clickTrackLog } from \"../services/clickTrack.service\";\r\n\r\nexport const DailyMotionPlayer = (props) => {\r\n const [played, setPlayed] = useState(false);\r\n\r\n const { url, eventId, exhibitorId, clientKey, clickTrack = true } = props;\r\n\r\n const extractIdFromUrl = () => {\r\n let startString = \"\";\r\n\r\n try {\r\n if (url.includes(\"https://dai.ly/\")) {\r\n startString = \"https://dai.ly/\";\r\n var tempString = url.replace(startString, \"\");\r\n\r\n return tempString.substring(\r\n 0,\r\n tempString.includes(\"?\") ? tempString.indexOf(\"?\") : tempString.length\r\n );\r\n } else if (url.includes(\"https://www.dailymotion.com/video/\")) {\r\n startString = \"https://www.dailymotion.com/video/\";\r\n var tempString = url.replace(startString, \"\");\r\n\r\n return tempString.substring(\r\n 0,\r\n tempString.includes(\"?\") ? tempString.indexOf(\"?\") : tempString.length\r\n );\r\n }\r\n } catch (error) {\r\n if (!url) return \"\";\r\n }\r\n };\r\n\r\n const onPlay = () => {\r\n if (played) return;\r\n setPlayed(true);\r\n clickTrackLog(\r\n eventId,\r\n exhibitorId,\r\n clientKey,\r\n \"DailyMotionVideo\",\r\n url,\r\n \"Exhibitor\"\r\n );\r\n };\r\n\r\n const id = useMemo(() => {\r\n return extractIdFromUrl();\r\n }, [url]);\r\n\r\n return ;\r\n};\r\n","import Player from \"@vimeo/player\";\r\nimport React, { useRef, useState, useEffect } from \"react\";\r\nimport { clickTrackLog } from \"../services/clickTrack.service\";\r\n\r\nexport const VimeoPlayer = (props) => {\r\n const [played, setPlayed] = useState(false);\r\n const iframeRef = useRef(null);\r\n const playedRef = useRef();\r\n\r\n playedRef.current = played;\r\n\r\n const { url, eventId, exhibitorId, clientKey, clickTrack = true } = props;\r\n\r\n useEffect(() => {\r\n const player = new Player(iframeRef.current);\r\n player.on(\"play\", function () {\r\n if (playedRef.current) return;\r\n setPlayed(true);\r\n clickTrackLog(eventId, exhibitorId, clientKey, \"VimeoVideo\", url, \"Exhibitor\");\r\n });\r\n\r\n return () => {\r\n iframeRef.current = null;\r\n };\r\n }, []);\r\n\r\n return ; */\r\n};\r\n","import React from \"react\";\r\nimport { VideoModule } from \"../digitalArena/modules/VideoModule\";\r\nimport { combineProps } from \"../helpers/objectHelper\";\r\nimport { securityHelper } from \"../helpers/securityHelper\";\r\nimport { DailyMotionPlayer } from \"./DailyMotionPlayer\";\r\nimport { VimeoPlayer } from \"./VimeoPlayer\";\r\nimport { YouTubePlayer } from \"./YouTubePlayer\";\r\n\r\nexport const GenericPlayer = (props) => {\r\n const { url } = props;\r\n\r\n if (!url) return null;\r\n else if (url.includes(\"vimeo\")) return ;\r\n else if (url.includes(\"youtube\") || url.includes('youtu.be'))\r\n return (\r\n
\r\n \r\n
\r\n );\r\n else if (url.includes(\"dailymotion\") || url.includes(\"https://dai.ly/\"))\r\n return (\r\n
\r\n \r\n
\r\n );\r\n else if (url.includes(\"jirango\")) {\r\n return (\r\n \r\n );\r\n } //VIMEO\r\n else\r\n return (\r\n \r\n );\r\n};\r\n","\"use strict\";\r\nimport OT from \"@opentok/client\";\r\n\r\nvar gumNamesToMessages = {\r\n PermissionDeniedError: \"End-user denied permission to hardware devices\",\r\n PermissionDismissedError: \"End-user dismissed permission to hardware devices\",\r\n NotSupportedError: \"A constraint specified is not supported by the browser.\",\r\n ConstraintNotSatisfiedError:\r\n \"It's not possible to satisfy one or more constraints \" +\r\n \"passed into the getUserMedia function\",\r\n OverconstrainedError:\r\n \"Due to changes in the environment, one or more mandatory \" +\r\n \"constraints can no longer be satisfied.\",\r\n NoDevicesFoundError:\r\n \"No voice or video input devices are available on this machine.\",\r\n HardwareUnavailableError:\r\n \"The selected voice or video devices are unavailable. Verify \" +\r\n \"that the chosen devices are not in use by another application.\",\r\n};\r\n\r\nvar isArray =\r\n (typeof Array.isArray && Array.isArray) ||\r\n function (arry) {\r\n return Object.prototype.toString.call(arry) === \"[object Array]\";\r\n };\r\n\r\nvar each =\r\n Array.prototype.forEach ||\r\n function (iter, ctx) {\r\n for (var idx = 0, count = this.length || 0; idx < count; ++idx) {\r\n if (idx in this) {\r\n iter.call(ctx, this[idx], idx);\r\n }\r\n }\r\n };\r\n\r\nvar addClass = function (el, className) {\r\n if (el.classList) {\r\n el.classList.add(className);\r\n } else {\r\n el.className += \" \" + className;\r\n }\r\n};\r\n\r\nvar removeClass = function (el, className) {\r\n if (el.classList) {\r\n el.classList.remove(className);\r\n } else {\r\n el.className = el.className.replace(\r\n new RegExp(\"(^|\\\\b)\" + className.split(\" \").join(\"|\") + \"(\\\\b|$)\", \"gi\"),\r\n \" \"\r\n );\r\n }\r\n};\r\n\r\nvar setPref = function (key, value) {\r\n try {\r\n localStorage.setItem(key, value);\r\n } catch (err) { }\r\n};\r\n\r\nvar getPref = function (key) {\r\n try {\r\n return localStorage.getItem(key);\r\n } catch (err) { }\r\n return undefined;\r\n};\r\n\r\nvar createElement = function (nodeName, attributes, children, doc) {\r\n var element = (doc || document).createElement(nodeName);\r\n\r\n if (attributes) {\r\n for (var name in attributes) {\r\n if (typeof attributes[name] === \"object\") {\r\n if (!element[name]) element[name] = {};\r\n\r\n var subAttrs = attributes[name];\r\n for (var n in subAttrs) {\r\n element[name][n] = subAttrs[n];\r\n }\r\n } else if (name === \"className\") {\r\n element.className = attributes[name];\r\n } else {\r\n element.setAttribute(name, attributes[name]);\r\n }\r\n }\r\n }\r\n\r\n var setChildren = function (child) {\r\n if (typeof child === \"string\") {\r\n element.innerHTML = element.innerHTML + child;\r\n } else {\r\n element.appendChild(child);\r\n }\r\n };\r\n\r\n if (isArray(children)) {\r\n each.call(children, setChildren);\r\n } else if (children) {\r\n setChildren(children);\r\n }\r\n\r\n return element;\r\n};\r\n\r\nvar createDevicePickerController = function (opts, changeHandler) {\r\n var _devicePicker = {},\r\n destroyExistingPublisher,\r\n publisher,\r\n devicesById;\r\n\r\n function onChange() {\r\n destroyExistingPublisher();\r\n\r\n var settings;\r\n\r\n _devicePicker.pickedDevice = devicesById[opts.selectTag.value];\r\n\r\n if (!_devicePicker.pickedDevice) {\r\n return;\r\n }\r\n\r\n settings = {\r\n insertMode: \"append\",\r\n name: _devicePicker.pickedDevice.label,\r\n audioSource: null,\r\n videoSource: null,\r\n width: 220,\r\n height: 170,\r\n fitMode: \"cover\",\r\n style: {\r\n audioLevelDisplayMode: \"off\",\r\n },\r\n showControls: false,\r\n };\r\n\r\n settings[opts.mode] = _devicePicker.pickedDevice.deviceId;\r\n\r\n var widgetTag = opts.previewTag,\r\n audioDisplayTag,\r\n audioDisplayParent;\r\n\r\n if (opts.mode === \"audioSource\") {\r\n opts.previewTag.innerHTML = \"\";\r\n\r\n audioDisplayTag = createElement(\"div\", {\r\n className: \"opentok-hardware-setup-activity-fg\",\r\n style: \"width: 0px;\",\r\n });\r\n\r\n audioDisplayParent = createElement(\r\n \"div\",\r\n {\r\n className: \"opentok-hardware-setup-activity-bg\",\r\n },\r\n audioDisplayTag\r\n );\r\n\r\n widgetTag = createElement(\"div\", { style: \"display: none;\" });\r\n\r\n opts.previewTag.appendChild(widgetTag);\r\n opts.previewTag.appendChild(audioDisplayParent);\r\n }\r\n\r\n var pub = OT.initPublisher(widgetTag, settings);\r\n\r\n pub.on({\r\n accessAllowed: function () {\r\n if (typeof changeHandler === \"function\") {\r\n changeHandler(_devicePicker);\r\n }\r\n },\r\n });\r\n\r\n var movingAvg = null;\r\n\r\n if (opts.mode === \"audioSource\") {\r\n pub.on(\"audioLevelUpdated\", function (event) {\r\n if (movingAvg === null || movingAvg <= event.audioLevel) {\r\n movingAvg = event.audioLevel;\r\n } else {\r\n movingAvg = 0.7 * movingAvg + 0.3 * event.audioLevel;\r\n }\r\n\r\n // 1.5 scaling to map the -30 - 0 dBm range to [0,1]\r\n var logLevel = Math.log(movingAvg) / Math.LN10 / 1.5 + 1;\r\n logLevel = Math.min(Math.max(logLevel, 0), 1);\r\n\r\n var tagCount = audioDisplayTag.parentNode.offsetWidth / 10;\r\n audioDisplayTag.style.width =\r\n Math.ceil(tagCount * logLevel) * 10 + \"px\";\r\n // audioDisplayTag.innerHTML = (logLevel * 100).toFixed(0);\r\n });\r\n }\r\n\r\n publisher = pub;\r\n }\r\n\r\n _devicePicker.cleanup = destroyExistingPublisher = function () {\r\n if (publisher) {\r\n publisher.destroy();\r\n publisher = void 0;\r\n }\r\n };\r\n\r\n var disableSelector = function (opt, str) {\r\n opt.innerHTML = \"\";\r\n opt.appendChild(createElement(\"option\", {}, str));\r\n opt.setAttribute(\"disabled\", \"\");\r\n };\r\n var hideSelector = function (opt, str) {\r\n opt.classList.add(\"hidden\");\r\n opt.parentElement.classList.add(\"nodev\")\r\n opt.insertAdjacentElement('afterend', createElement(\"label\", {}, str))\r\n }\r\n var deviceLabel = function (device) {\r\n if (device.label) {\r\n return device.label;\r\n }\r\n return (\r\n ((opts.mode !== \"audioSource\" && \"Camera\") || \"Mic\") +\r\n \" (\" +\r\n device.deviceId.substring(0, 8) +\r\n \")\"\r\n );\r\n };\r\n\r\n var addDevice = function (device) {\r\n devicesById[device.deviceId] = device;\r\n return createElement(\r\n \"option\",\r\n { value: device.deviceId },\r\n deviceLabel(device)\r\n );\r\n };\r\n\r\n _devicePicker.setDeviceList = function (devices) {\r\n opts.selectTag.innerHTML = \"\";\r\n devicesById = {};\r\n if (devices.length > 0) {\r\n devices.map(addDevice).map(function (tag) {\r\n opts.selectTag.appendChild(tag);\r\n });\r\n opts.selectTag.removeAttribute(\"disabled\");\r\n } else {\r\n disableSelector(opts.selectTag, \"No devices\");\r\n hideSelector(opts.selectTag, \"No Devices\")\r\n }\r\n if (opts.defaultDevice) {\r\n opts.selectTag.value = opts.defaultDevice;\r\n }\r\n onChange();\r\n };\r\n\r\n _devicePicker.setLoading = function () {\r\n disableSelector(opts.selectTag, \"Loading...\");\r\n };\r\n\r\n if (opts.selectTag.addEventListener) {\r\n opts.selectTag.addEventListener(\"change\", onChange, false);\r\n } else if (opts.selectTag.attachEvent) {\r\n opts.selectTag.attachEvent(\"onchange\", onChange);\r\n } else {\r\n opts.selectTag.onchange = onChange();\r\n }\r\n\r\n return _devicePicker;\r\n};\r\n\r\nvar getWindowLocationProtocol = function () {\r\n return window.location.protocol;\r\n};\r\n\r\nvar shouldGetDevices = function (callback) {\r\n OT.getDevices(function (error, devices) {\r\n if (error) {\r\n callback(error);\r\n return;\r\n }\r\n callback(undefined, {\r\n audio: devices.some(function (device) {\r\n return device.kind === \"audioInput\";\r\n }),\r\n video: devices.some(function (device) {\r\n return device.kind === \"videoInput\";\r\n }),\r\n });\r\n });\r\n};\r\n\r\nvar getUserMedia;\r\nif (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\r\n getUserMedia = function (constraints, onStream, onError) {\r\n navigator.mediaDevices.getUserMedia(constraints).then(onStream, onError);\r\n };\r\n} else if (navigator.getUserMedia) {\r\n getUserMedia = navigator.getUserMedia.bind(navigator);\r\n} else if (navigator.mozGetUserMedia) {\r\n getUserMedia = navigator.mozGetUserMedia.bind(navigator);\r\n} else if (navigator.webkitGetUserMedia) {\r\n getUserMedia = navigator.webkitGetUserMedia.bind(navigator);\r\n} else if (window.OTPlugin && window.OTPlugin.getUserMedia) {\r\n getUserMedia = window.OTPlugin.getUserMedia.bind(window.OTPlugin);\r\n}\r\n\r\nvar authenticateForDeviceLabels = function (callback) {\r\n shouldGetDevices(function (error, constraints) {\r\n if (error) {\r\n callback(error);\r\n } else {\r\n if (constraints.video === false && constraints.audio === false) {\r\n callback(new Error(\"There are no audio or video devices available\"));\r\n } else {\r\n if (getWindowLocationProtocol() === \"http:\") {\r\n callback();\r\n } else {\r\n if (!getUserMedia) {\r\n return callback(\r\n new Error(\"getUserMedia not supported in this browser\")\r\n );\r\n }\r\n getUserMedia(\r\n constraints,\r\n function (stream) {\r\n if (\r\n window.MediaStreamTrack &&\r\n window.MediaStreamTrack.prototype.stop\r\n ) {\r\n var tracks = stream.getTracks();\r\n tracks.forEach(function (track) {\r\n track.stop();\r\n });\r\n } else if (stream.stop) {\r\n // older spec\r\n stream.stop();\r\n }\r\n callback();\r\n },\r\n function (error) {\r\n var err = new Error(gumNamesToMessages[error.name]);\r\n err.name = error.name;\r\n callback(err);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport default function createOpentokHardwareSetupComponent(\r\n targetElement,\r\n options,\r\n callback\r\n) {\r\n if (typeof targetElement === \"string\") {\r\n targetElement = document.getElementById(targetElement);\r\n }\r\n\r\n var _hardwareSetup = {},\r\n _options,\r\n state = \"getDevices\",\r\n camera,\r\n microphone,\r\n camSelector,\r\n camPreview,\r\n micSelector,\r\n micPreview,\r\n container,\r\n videoWall;\r\n\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n }\r\n\r\n if (callback == null) {\r\n throw new Error(\r\n \"A completion handler is required when calling \" +\r\n \"createOpentokHardwareSetupComponent\"\r\n );\r\n }\r\n\r\n _options = {\r\n insertMode: options.insertMode || \"replace\",\r\n defaultAudioDevice:\r\n options.defaultAudioDevice || getPref(\"com.opentok.hardwaresetup.audio\"),\r\n defaultVideoDevice:\r\n options.defaultVideoDevice || getPref(\"com.opentok.hardwaresetup.video\"),\r\n };\r\n videoWall = options.videoWall || false;\r\n _hardwareSetup.audioSource = function () {\r\n return microphone && microphone.pickedDevice;\r\n };\r\n\r\n _hardwareSetup.videoSource = function () {\r\n return camera && camera.pickedDevice;\r\n };\r\n\r\n _hardwareSetup.destroy = function () {\r\n if (state === \"destroyed\") {\r\n return;\r\n }\r\n if (camera) {\r\n camera.cleanup();\r\n }\r\n if (microphone) {\r\n microphone.cleanup();\r\n }\r\n if (state === \"chooseDevices\") {\r\n targetElement.parentNode.removeChild(targetElement);\r\n }\r\n state = \"destroyed\";\r\n };\r\n\r\n if (!targetElement) {\r\n callback(new Error(\"No element provided to place component\"));\r\n return;\r\n }\r\n\r\n camSelector = createElement(\"select\", {}, \"\");\r\n camPreview = createElement(\r\n \"div\",\r\n { className: \"opentok-hardware-setup-preview\" },\r\n \"\"\r\n );\r\n if (!videoWall) {\r\n micSelector = createElement(\"select\", {}, \"\");\r\n micPreview = createElement(\r\n \"div\",\r\n { className: \"opentok-hardware-setup-preview\" },\r\n \"\"\r\n );\r\n }\r\n\r\n container = createElement(\"div\", {\r\n className: \"opentok-hardware-setup opentok-hardware-setup-loading\",\r\n });\r\n\r\n var insertMode = _options.insertMode;\r\n if (insertMode !== \"replace\") {\r\n if (insertMode === \"append\") {\r\n targetElement.appendChild(container);\r\n targetElement = container;\r\n } else if (insertMode === \"before\") {\r\n targetElement.parentNode.insertBefore(container, targetElement);\r\n targetElement = container;\r\n } else if (insertMode === \"after\") {\r\n targetElement.parentNode.insertBefore(\r\n container,\r\n targetElement.nextSibling\r\n );\r\n targetElement = container;\r\n }\r\n } else {\r\n targetElement.innerHTML = \"\";\r\n addClass(targetElement, \"opentok-hardware-setup\");\r\n if (!targetElement.getAttribute(\"id\")) {\r\n targetElement.setAttribute(\"id\", container.getAttribute(\"id\"));\r\n }\r\n for (var key in container.style) {\r\n if (!container.style.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n targetElement.style[key] = container.style[key];\r\n }\r\n while (container.childNodes.length > 0) {\r\n targetElement.appendChild(container.firstChild);\r\n }\r\n }\r\n\r\n addClass(targetElement, \"opentok-hardware-setup-loading\");\r\n\r\n authenticateForDeviceLabels(function (err) {\r\n if (err) {\r\n callback(err);\r\n } else {\r\n camera = createDevicePickerController(\r\n {\r\n selectTag: camSelector,\r\n previewTag: camPreview,\r\n mode: \"videoSource\",\r\n defaultDevice: _options.defaultVideoDevice,\r\n },\r\n function (controller) {\r\n setPref(\r\n \"com.opentok.hardwaresetup.video\",\r\n controller.pickedDevice.deviceId\r\n );\r\n }\r\n );\r\n camera.setLoading();\r\n if (!videoWall) {\r\n microphone = createDevicePickerController(\r\n {\r\n selectTag: micSelector,\r\n previewTag: micPreview,\r\n mode: \"audioSource\",\r\n defaultDevice: _options.defaultAudioDevice,\r\n },\r\n function (controller) {\r\n setPref(\r\n \"com.opentok.hardwaresetup.audio\",\r\n controller.pickedDevice.deviceId\r\n );\r\n }\r\n );\r\n microphone.setLoading();\r\n }\r\n\r\n OT.getDevices(function (error, devices) {\r\n if (error) {\r\n callback(error);\r\n return;\r\n }\r\n\r\n if (state === \"destroyed\") {\r\n return; // They destroyed us before we got the devices, bail.\r\n }\r\n\r\n removeClass(container, \"opentok-hardware-setup-loading\");\r\n\r\n container.appendChild(\r\n createElement(\r\n \"div\",\r\n { className: \"setup-camera-wrapper\" },\r\n camPreview\r\n )\r\n );\r\n if (!videoWall) {\r\n container.appendChild(\r\n createElement(\r\n \"div\",\r\n { className: \"setup-mic-wrapper\" },\r\n micPreview\r\n )\r\n );\r\n }\r\n\r\n container.appendChild(\r\n createElement(\"div\", { className: \"opentok-hardware-setup-camera\" }, [\r\n createElement(\r\n \"div\",\r\n { className: \"opentok-hardware-setup-label \" },\r\n ``\r\n ),\r\n createElement(\r\n \"div\",\r\n { className: \"opentok-hardware-setup-selector\" },\r\n camSelector\r\n ),\r\n /* camPreview, */\r\n ])\r\n );\r\n if (!videoWall) {\r\n\r\n container.appendChild(\r\n createElement(\"div\", { className: \"opentok-hardware-setup-mic\" }, [\r\n createElement(\r\n \"div\",\r\n { className: \"opentok-hardware-setup-label\" },\r\n ``\r\n ),\r\n createElement(\r\n \"div\",\r\n { className: \"opentok-hardware-setup-selector\" },\r\n micSelector\r\n ),\r\n /* micPreview, */\r\n ])\r\n );\r\n\r\n }\r\n camera.setDeviceList(\r\n devices.filter(function (device) {\r\n return device.kind === \"videoInput\";\r\n })\r\n );\r\n if (!videoWall) {\r\n\r\n microphone.setDeviceList(\r\n devices.filter(function (device) {\r\n return device.kind === \"audioInput\";\r\n })\r\n );\r\n }\r\n\r\n state = \"chooseDevices\";\r\n\r\n callback(undefined, _hardwareSetup);\r\n });\r\n }\r\n });\r\n\r\n return _hardwareSetup;\r\n}\r\n","export const clientTypeConstants = {\r\n INTERACTION_CLIENT: 'INTERACTION_CLIENT',\r\n INTERACTION_PRESENTER: 'INTERACTION_PRESENTER',\r\n INTERACTION_MODERATOR: 'INTERACTION_MODERATOR',\r\n INTERACTION_MEETING: 'INTERACTION_MEETING',\r\n INTERACTION_STAGE: 'INTERACTION_STAGE',\r\n INTERACTION_CHAT_MODERATOR: 'INTERACTION_CHAT_MODERATOR',\r\n INTERACTION_EXHIBITOR_HOST: 'INTERACTION_EXHIBITOR_HOST',\r\n INTERACTION_EXHIBITOR_VISITOR: 'INTERACTION_EXHIBITOR_VISITOR',\r\n INTERACTION_EDITOR: 'INTERACTION_EDITOR',\r\n INTERACTION_VONAGE_SPEAKER: 'INTERACTION_VONAGE_SPEAKER',\r\n INTERACTION_VONAGE_VIDEOWALL: 'INTERACTION_VONAGE_VIDEOWALL',\r\n INTERACTION_PLAUDIT_PRESENTER: 'INTERACTION_PLAUDIT_PRESENTER',\r\n INTERACTION_CHANNEL_LIST: 'INTERACTION_CHANNEL_LIST'\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport KeyboardArrowLeftIcon from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRightIcon from \"@material-ui/icons/KeyboardArrowRight\";\r\n\r\nconst classes = {\r\n singleSpeaker: {\r\n speakers: { top: 0, left: 0, right: 0, bottom: \"80%\" },\r\n screen: { top: \"20%\", left: 0, right: 0, bottom: 0 },\r\n arrows: { display: \"none\" },\r\n },\r\n multiSpeakersTop: {\r\n speakers: { top: 0, left: 0, right: 0, bottom: \"80%\" },\r\n screen: { top: \"20%\", left: 0, right: 0, bottom: 0 },\r\n arrows: { top: \"1%\", bottom: \"81%\" },\r\n },\r\n multiSpeakersBottom: {\r\n speakers: { bottom: 0, left: 0, right: 0, top: \"80%\" },\r\n screen: { bottom: \"20%\", left: 0, right: 0, top: 0 },\r\n arrows: { bottom: \"1%\", top: \"81%\" },\r\n },\r\n noSpeakers: {\r\n speakers: { display: \"none\" },\r\n screen: { top: 0, left: 0, right: 0, bottom: 0 },\r\n arrows: { display: \"none\" },\r\n },\r\n fullscreen: {\r\n speakers: { display: \"none\" },\r\n screen: { position: \"fixed\", top: 0, left: 0, right: 0, bottom: 0, zIndex: 90, height: \"100%\", width: \"100%\" },\r\n arrows: { display: \"none\" },\r\n },\r\n};\r\n\r\nexport const screenshareLayouts = [\"singleSpeaker\", \"multiSpeakersTop\", \"noSpeakers\", \"multiSpeakersBottom\"];\r\nexport default function VonageScreenshare(props) {\r\n const [speakerCount, setSpeakerCount] = useState(0);\r\n const [isFullscreen, setIsFullscreen] = useState(false);\r\n const [speakerIndex, setSpeakerIndex] = useState(0);\r\n const [currentlyShown, setCurrentlyShown] = useState([]);\r\n const [maxCountToShow, setMaxCountToShow] = useState(5);\r\n const functionsRef = useRef();\r\n useEffect(() => {\r\n document.addEventListener(\"keydown\", handleEsc);\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEsc);\r\n };\r\n }, [isFullscreen]);\r\n\r\n useEffect(() => {\r\n adjustCurrentlyShown();\r\n }, [props.screenshareLayout, props.currentSpotlights]);\r\n function adjustCurrentlyShown() {\r\n const { layoutMode, screenshareLayout, publisher, screensharePublisher, screenshareStream, streams, currentSpotlights } = props;\r\n const containerDiv = document.getElementById(\"vonage-screenshare-speakers\");\r\n const hiddenDiv = document.getElementById(\"vonage-screenshare-hidden\");\r\n if (layoutMode == \"screenshare\") {\r\n if (screenshareLayout == \"singleSpeaker\") {\r\n currentlyShown.length = 0;\r\n if (publisher) {\r\n if (screensharePublisher) {\r\n containerDiv.append(publisher.element);\r\n currentlyShown.push(publisher);\r\n } else hiddenDiv.append(publisher.element);\r\n }\r\n streams.forEach((s) => {\r\n hiddenDiv.append(s.element);\r\n if (typeof s.subscribeToVideo == \"function\") s.subscribeToVideo(false);\r\n });\r\n if (!screensharePublisher) {\r\n var speakerStream = streams.find((s) => s != null && s.stream && s.stream.name === screenshareStream?.stream?.name);\r\n if (speakerStream) {\r\n containerDiv.append(speakerStream.element);\r\n if (typeof speakerStream.subscribeToVideo == \"function\") speakerStream.subscribeToVideo(true);\r\n currentlyShown.push(speakerStream);\r\n }\r\n }\r\n } else if (screenshareLayout == \"noSpeakers\") {\r\n currentlyShown.length = 0;\r\n if (publisher) {\r\n hiddenDiv.append(publisher.element);\r\n }\r\n streams.forEach((s) => {\r\n hiddenDiv.append(s.element);\r\n if (typeof s.subscribeToVideo == \"function\") s.subscribeToVideo(false);\r\n });\r\n } else {\r\n if (publisher) {\r\n hiddenDiv.append(publisher.element);\r\n }\r\n streams.forEach((s) => {\r\n if (typeof s.subscribeToVideo == \"function\") s.subscribeToVideo(false);\r\n hiddenDiv.append(s.element);\r\n });\r\n if (currentSpotlights && currentSpotlights.length > 0) {\r\n if (publisher && currentSpotlights.includes(publisher.stream.name)) {\r\n containerDiv.append(publisher.element);\r\n }\r\n for (const subscriber of streams) {\r\n if (currentSpotlights.includes(subscriber.stream.name)) {\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(true);\r\n containerDiv.append(subscriber.element);\r\n }\r\n }\r\n } else {\r\n for (const subscriber of currentlyShown) {\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(true);\r\n containerDiv.append(subscriber.element);\r\n }\r\n if (currentlyShown.length < maxCountToShow) {\r\n while (currentlyShown.length < maxCountToShow) {\r\n if (hiddenDiv.firstChild) {\r\n if (props.publisher && props.publisher.element == hiddenDiv.firstChild) {\r\n currentlyShown.push(props.publisher);\r\n containerDiv.append(props.publisher.element);\r\n } else {\r\n var newStream = props.streams.find((x) => x.element == hiddenDiv.firstChild);\r\n if (newStream) {\r\n currentlyShown.push(newStream);\r\n if (typeof newStream.subscribeToVideo == \"function\") newStream.subscribeToVideo(true);\r\n containerDiv.append(newStream.element);\r\n }\r\n }\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function handleEsc(e) {\r\n if ((e.key == \"Escape\" || e.key == \"Esc\" || e.keyCode == 27) && isFullscreen) {\r\n e.preventDefault();\r\n toggleFullscreen();\r\n return false;\r\n }\r\n }\r\n useEffect(() => {\r\n props.setFunctionsRef(functionsRef);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(props.layoutMode !== \"screenshare\" && isFullscreen){\r\n setIsFullscreen(false);\r\n }\r\n },[props.layoutMode])\r\n useEffect(() => {\r\n const { streams, publisher } = props;\r\n let count = streams.length;\r\n if (publisher) count += 1;\r\n if (speakerCount != count) setSpeakerCount(count);\r\n functionsRef.current = {\r\n onStreamConnected,\r\n setNewPersonTalking,\r\n onStreamDisconnected,\r\n toggleScreenshareView,\r\n };\r\n });\r\n function scrollSpeakers(direction) {\r\n const { screenshareSpeakersRef } = props;\r\n if (screenshareSpeakersRef && screenshareSpeakersRef.children[0]) {\r\n const scrollTop = screenshareSpeakersRef.scrollTop;\r\n const scrollLeft = screenshareSpeakersRef.scrollLeft;\r\n const margin = screenshareSpeakersRef.children[0].getBoundingClientRect().height * 0.02;\r\n const childHeight = screenshareSpeakersRef.children[0].getBoundingClientRect().height + margin;\r\n const childWidth = screenshareSpeakersRef.children[0].getBoundingClientRect().width + margin;\r\n if (direction == \"up\") {\r\n screenshareSpeakersRef.style.transform = `translateY(${scrollTop - childHeight}px)`;\r\n }\r\n if (direction == \"down\") {\r\n screenshareSpeakersRef.style.transform = `translateY(${scrollTop + childHeight}px)`;\r\n }\r\n if (direction == \"left\") {\r\n if (speakerIndex > 1) {\r\n setSpeakerIndex(speakerIndex - 1);\r\n screenshareSpeakersRef.style.transform = `translateX(${(speakerIndex - 1) * (scrollLeft - childWidth)}px)`;\r\n } else if (speakerIndex == 1) {\r\n setSpeakerIndex(0);\r\n screenshareSpeakersRef.style.transform = `translateX(0px)`;\r\n }\r\n }\r\n if (direction == \"right\") {\r\n if (speakerIndex < speakerCount - 1) {\r\n screenshareSpeakersRef.style.transform = `translateX(${(speakerIndex == 0 ? 1 : speakerIndex + 1) * (scrollLeft - childWidth)}px)`;\r\n setSpeakerIndex(speakerIndex + 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function toggleFullscreen() {\r\n if (isFullscreen == false) {\r\n props.toggleFullscreen(true);\r\n setIsFullscreen(true);\r\n } else {\r\n setIsFullscreen(false);\r\n // props.toggleFullscreen(false)\r\n }\r\n }\r\n function toggleScreenshareView() {\r\n const hiddenDiv = document.getElementById(\"vonage-screenshare-hidden\");\r\n props.streams.forEach((s) => {\r\n if (typeof s.subscribeToVideo == \"function\") s.subscribeToVideo(false);\r\n hiddenDiv.append(s.element);\r\n });\r\n adjustCurrentlyShown();\r\n }\r\n\r\n function onStreamConnected(subscriber) {\r\n if (currentlyShown.length < maxCountToShow) {\r\n currentlyShown.push(subscriber);\r\n if (props.layoutMode == \"screenshare\" && (props.screenshareLayout == \"multiSpeakersTop\" || props.screenshareLayout == \"multiSpeakersBottom\")) {\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(true);\r\n const containerDiv = document.getElementById(\"vonage-screenshare-speakers\");\r\n containerDiv.append(subscriber.element);\r\n }\r\n } else if (props.layoutMode == \"screenshare\" && (props.screenshareLayout == \"multiSpeakersTop\" || props.screenshareLayout == \"multiSpeakersBottom\")) {\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(false);\r\n }\r\n }\r\n function onStreamDisconnected(subscriber) {\r\n let subscriberToRemove = currentlyShown.find((s) => s.widgetId == subscriber.widgetId);\r\n if (subscriberToRemove) {\r\n const containerDiv = document.getElementById(\"vonage-screenshare-speakers\");\r\n const hiddenDiv = document.getElementById(\"vonage-screenshare-hidden\");\r\n currentlyShown.splice(currentlyShown.indexOf(subscriberToRemove), 1);\r\n if (hiddenDiv.firstChild) {\r\n if (props.publisher && props.publisher.element == hiddenDiv.firstChild) {\r\n currentlyShown.push(props.publisher);\r\n if (props.layoutMode == \"screenshare\" && (props.screenshareLayout == \"multiSpeakersTop\" || props.screenshareLayout == \"multiSpeakersBottom\")) {\r\n containerDiv.append(props.publisher.element);\r\n }\r\n } else {\r\n var newStream = props.streams.find((x) => x.element == hiddenDiv.firstChild);\r\n if (newStream) {\r\n currentlyShown.push(newStream);\r\n if (props.layoutMode == \"screenshare\" && (props.screenshareLayout == \"multiSpeakersTop\" || props.screenshareLayout == \"multiSpeakersBottom\")) {\r\n containerDiv.append(newStream.element);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function setNewPersonTalking(subscriber) {\r\n const containerDiv = document.getElementById(\"vonage-screenshare-speakers\");\r\n const hiddenDiv = document.getElementById(\"vonage-screenshare-hidden\");\r\n if (currentlyShown.indexOf(subscriber) != -1 || props.screenshareLayout == \"noSpeakers\" || props.screenshareLayout == \"singleSpeaker\") {\r\n return;\r\n } else if (currentlyShown.length >= maxCountToShow) {\r\n currentlyShown.unshift(subscriber);\r\n let subToRemove = currentlyShown.pop();\r\n if (props.layoutMode == \"screenshare\" && (props.screenshareLayout == \"multiSpeakersTop\" || props.screenshareLayout == \"multiSpeakersBottom\")) {\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(true);\r\n if (typeof subToRemove.subscribeToVideo == \"function\") subToRemove.subscribeToVideo(false);\r\n containerDiv.prepend(subscriber.element);\r\n hiddenDiv.prepend(subToRemove.element);\r\n }\r\n } else {\r\n currentlyShown.unshift(subscriber);\r\n if (props.layoutMode == \"screenshare\" && (props.screenshareLayout == \"multiSpeakersTop\" || props.screenshareLayout == \"multiSpeakersBottom\")) {\r\n containerDiv.prepend(subscriber.element);\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(true);\r\n }\r\n }\r\n }\r\n return (\r\n
\r\n {speakerCount > 5 ? (\r\n \r\n scrollSpeakers(\"left\")}\r\n >\r\n \r\n \r\n scrollSpeakers(\"right\")}\r\n >\r\n \r\n \r\n \r\n ) : null}\r\n props.setScreenshareSpeakersRef(r)}\r\n id=\"vonage-screenshare-speakers\"\r\n className={speakerCount < 5 || props.screenshareLayout == \"singleSpeaker\" ? \"centered-flex no-transform\" : \"\"}\r\n style={classes[isFullscreen ? \"fullscreen\" : props.screenshareLayout].speakers}\r\n >
\r\n props.setScreenshareScreenRef(r)}\r\n id=\"vonage-screenshare-screen\"\r\n className={isFullscreen ? \"screenshare-fullscreen\" : \"\"}\r\n style={classes[isFullscreen ? \"fullscreen\" : props.screenshareLayout].screen}\r\n >\r\n \r\n \r\n
props.setScreenshareHiddenRef(r)} id=\"vonage-screenshare-hidden\" style={{ display: \"none\" }}>
\r\n \r\n );\r\n}\r\n","import LogRocket from \"logrocket\";\r\nimport * as Sentry from \"@sentry/browser\";\r\n\r\nimport { version } from \"../package.json\";\r\n\r\nexport const SENTRY_URL = `https://59af82ca8fa84fa28655ba27dec55b7d@sentry.io/1537128`;\r\nconst ignoreErrorsArray = [\r\n // Random plugins/extensions\r\n 'top.GLOBALS',\r\n // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html\r\n 'originalCreateNotification',\r\n 'ResizeObserver loop completed with undelivered notifications',\r\n 'canvas.contentDocument',\r\n 'MyApp_RemoveAllHighlights',\r\n 'http://tt.epicplay.com',\r\n 'Can\\'t find variable: ZiteReader',\r\n 'jigsaw is not defined',\r\n 'ComboSearch is not defined',\r\n 'http://loading.retry.widdit.com/',\r\n 'atomicFindClose',\r\n // Facebook borked\r\n 'fb_xd_fragment',\r\n // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha)\r\n // See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy\r\n 'bmi_SafeAddOnload',\r\n 'EBCallBackMessageReceived',\r\n // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\r\n 'conduitPage',\r\n // Generic error code from errors outside the security sandbox\r\n // You can delete this if using raven.js > 1.0, which ignores these automatically.\r\n 'Script error.',\r\n `Uncaught (in promise) Error: Error parsing handshake response: Error: Expected a handshake response from the server.`,\r\n `'ResizeObserver' is not defined`,\r\n 'WebSocket closed with status code: 1006 ()',\r\n 'Failed to fetch',\r\n 'Error parsing handshake response: Error: Expected a handshake response from the server.',\r\n 'Invocation canceled due to connection being closed.',\r\n 'Server returned handshake error: Handshake was canceled.',\r\n 'Server timeout elapsed without receiving a message from the server.',\r\n \"Cannot send data if the connection is not in the 'Connected' State.\",\r\n \r\n];\r\nconst ignoreUrlsArray = [\r\n // Facebook flakiness\r\n /graph\\.facebook\\.com/i,\r\n // Facebook blocked\r\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\r\n // Woopra flakiness\r\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\r\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\r\n // Chrome extensions\r\n /extensions\\//i,\r\n /^chrome:\\/\\//i,\r\n // Other plugins\r\n /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\r\n /webappstoolbarba\\.texthelp\\.com\\//i,\r\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i\r\n];\r\nfunction getUser() {\r\n let user = localStorage.getItem(\"user\");\r\n if (user) user = JSON.parse(user);\r\n else return \"NoUser\";\r\n\r\n if (user.userGuid) return user.userGuid;\r\n else return \"NoUser\";\r\n}\r\n\r\nfunction configSentry() {\r\n const environment = process.env.NODE_ENV.toUpperCase();\r\n\r\n if (environment != \"PRODUCTION\") return;\r\n LogRocket.init(\"9aheuz/kinima\");\r\n Sentry.init({\r\n dsn: SENTRY_URL,\r\n ignoreErrors:ignoreErrorsArray,\r\n ignoreUrls:ignoreUrlsArray,\r\n release: version,\r\n allowUrls:[/https?:\\/\\/(www\\.)?jirango\\.com/],\r\n environment: environment,\r\n autoSessionTracking: true,\r\n beforeSend(event, hint) {\r\n const logRocketSession = LogRocket.sessionURL;\r\n \r\n if (logRocketSession !== null && event.extra) {\r\n event.extra[\"LogRocket\"] = logRocketSession;\r\n return event;\r\n } else {\r\n return event;\r\n }\r\n },\r\n });\r\n\r\n /* LogRocket.init(\"1lqgig/jirango\"); */\r\n LogRocket.getSessionURL((sessionURL) => {\r\n Sentry.configureScope((scope) => {\r\n scope.setExtra(\"LogRocket\", sessionURL);\r\n });\r\n });\r\n Sentry.setUser({ id: getUser() });\r\n /* Sentry.configureScope((scope) => {\r\n scope.setExtra(\"sessionURL\", LogRocket.sessionURL);\r\n }); */\r\n /* Sentry.withScope((scope) => {\r\n scope.setLevel(Sentry.Severity.Warning);\r\n Sentry.captureMessage(message);\r\n }); */\r\n\r\n /* if (process.env.NODE_ENV.toLowerCase() === \"production\") {\r\n var logRocket = getInstance();\r\n Raven.setDataCallback((data) => {\r\n data.extra.sessionURL = logRocket.sessionURL;\r\n });\r\n return Raven.config(SENTRY_URL, {\r\n release: version,\r\n stacktrace: true,\r\n environment: process.env.NODE_ENV,\r\n extra: {\r\n user: getUser(),\r\n },\r\n }).install();\r\n } */\r\n}\r\nexport default configSentry();\r\n\r\nexport function logException(ex, context) {\r\n Sentry.captureException(ex, { extra: context, stacktrace: true });\r\n window && window.console && console.error && console.error(ex);\r\n}\r\n\r\n/* export function logException(error, extraContext = {}) {\r\n Sentry.withScope((scope) => {\r\n scope.setUser(getUser());\r\n\r\n if (extraContext.extra) {\r\n Object.keys(extraContext.extra).forEach((key) => {\r\n scope.setExtra(key, extraContext.extra[key]);\r\n });\r\n }\r\n\r\n Sentry.captureException(error);\r\n });\r\n} */\r\n\r\n\r\n\r\n\r\n","import React from \"react\";\r\n\r\nconst PictureDisplay = ({ src, srcset, viewWidth, id, style, className, alt }, ref) => {\r\n return (\r\n \r\n \r\n {alt}\r\n \r\n );\r\n}\r\n\r\nexport default React.forwardRef(PictureDisplay)","export const archiveConstants = {\r\n UNSPLASH: 'UNSPLASH',\r\n FONT: 'FONT',\r\n IMAGE: 'IMAGE',\r\n GRID: 'GRID',\r\n OTHER: 'OTHER',\r\n LIST: 'LIST',\r\n\r\n OTHER_TYPES: [\r\n 'pdf',\r\n 'doc',\r\n 'docx',\r\n 'xls',\r\n 'xlsx'\r\n ],\r\n IMAGE_TYPES: [\r\n 'jpeg',\r\n 'png',\r\n 'gif',\r\n 'svg+xml'\r\n ],\r\n FONT_TYPES: [\r\n \"abf\",\r\n \"acfm\",\r\n \"afm\",\r\n \"amfm\",\r\n \"bdf\",\r\n \"cha\",\r\n \"chr\",\r\n \"compositefont\",\r\n \"dfont\",\r\n \"eot\",\r\n \"etx\",\r\n \"euf\",\r\n \"f3f\",\r\n \"fea\",\r\n \"ffil\",\r\n \"fnt\",\r\n \"fon\",\r\n \"fot\",\r\n \"gdr\",\r\n \"gf\",\r\n \"glif\",\r\n \"gxf\",\r\n \"lwfn\",\r\n \"mcf\",\r\n \"mf\",\r\n \"mxf\",\r\n \"nftr\",\r\n \"odttf\",\r\n \"otf\",\r\n \"pcf\",\r\n \"pfa\",\r\n \"pfb\",\r\n \"pfm\",\r\n \"pfr\",\r\n \"pk\",\r\n \"pmt\",\r\n \"sfd\",\r\n \"sfp\",\r\n \"suit\",\r\n \"t65\",\r\n \"tfm\",\r\n \"ttc\",\r\n \"tte\",\r\n \"ttf\",\r\n \"txf\",\r\n \"ufo\",\r\n \"vfb\",\r\n \"vlw\",\r\n \"vnf\",\r\n \"woff\",\r\n \"woff2\",\r\n \"xfn\",\r\n \"xft\",\r\n \"ytf\",\r\n ]\r\n\r\n}","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport PersonIcon from \"@material-ui/icons/Person\";\r\nimport DesktopWindowsIcon from \"@material-ui/icons/DesktopWindows\";\r\nimport ScreenShareIcon from \"@material-ui/icons/ScreenShare\";\r\n\r\nconst typoStyle = makeStyles((theme) => ({\r\n typography: {\r\n color: \"#eee\",\r\n paddingBottom: \"0.5rem\",\r\n },\r\n}));\r\nconst paperStyle =makeStyles((theme) => ({\r\n paper: {\r\n width: \"auto\",\r\n height: \"auto\",\r\n background: \"#3a3a3a\",\r\n overflow: \"hidden\",\r\n padding: 0,\r\n },\r\n}));\r\nexport default function ScreenshareOptionsPop(props) {\r\n const typographyStyle = typoStyle();\r\n const popoverStyles = paperStyle();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const { layout } = props;\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popover\" : undefined;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n}\r\n\r\nconst SingleSpeaker = ({ onChange, layout }) => {\r\n return (\r\n
onChange(\"singleSpeaker\")} className={\"single-speaker\" + (layout == \"singleSpeaker\" ? \" active\" : \"\")}>\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\nconst MultiSpeakerTop = ({ onChange, layout }) => {\r\n return (\r\n
onChange(\"multiSpeakersTop\")} className={\"single-speaker\" + (layout == \"multiSpeakersTop\" ? \" active\" : \"\")}>\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\nconst MultiSpeakerBottom = ({ onChange, layout }) => {\r\n return (\r\n
onChange(\"multiSpeakersBottom\")} className={\"single-speaker\" + (layout == \"multiSpeakersBottom\" ? \" active\" : \"\")}>\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst NoSpeaker = ({ onChange, layout }) => {\r\n return (\r\n
onChange(\"noSpeakers\")} className={\"single-speaker\" + (layout == \"noSpeakers\" ? \" active\" : \"\")}>\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport OT from \"@opentok/client\";\r\nimport MicIcon from \"@material-ui/icons/Mic\";\r\nimport MicOffIcon from \"@material-ui/icons/MicOff\";\r\nimport VideocamIcon from \"@material-ui/icons/Videocam\";\r\nimport VideocamOffIcon from \"@material-ui/icons/VideocamOff\";\r\nimport ViewComfyIcon from \"@material-ui/icons/ViewComfy\";\r\nimport ViewCompactIcon from \"@material-ui/icons/ViewCompact\";\r\nimport DesktopWindowsIcon from \"@material-ui/icons/DesktopWindows\";\r\nimport DesktopAccessDisabledIcon from \"@material-ui/icons/DesktopAccessDisabled\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport FullscreenIcon from \"@material-ui/icons/Fullscreen\";\r\nimport FullscreenExitIcon from \"@material-ui/icons/FullscreenExit\";\r\nimport { screenshareLayouts } from \"./VonageScreenshare\";\r\nimport ScreenshareOptionsPop from \"./ScreenshareOptionsPop\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport ZoomOutIcon from \"@material-ui/icons/ZoomOut\";\r\nimport ZoomInIcon from \"@material-ui/icons/ZoomIn\";\r\nexport default function VonageControlpanel(props) {\r\n const [isMicOn, setIsMicOn] = useState(false);\r\n const [isCamOn, setIsCamOn] = useState(false);\r\n const [controlLock, setControlLock] = useState(true);\r\n const [isScreenshareEnabled, setIsScreenshareEnabled] = useState(false);\r\n const functionsRef = useRef();\r\n useEffect(() => {\r\n OT.checkScreenSharingCapability((r) => {\r\n setIsScreenshareEnabled(r.supported);\r\n });\r\n setTimeout(() => setControlLock(false), 2000);\r\n props.setFunctionsRef(functionsRef);\r\n return () => {\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.publisher && props.publisher.stream) {\r\n if (props.publisher.stream.hasAudio != isMicOn) setIsMicOn(props.publisher.stream.hasAudio);\r\n if (props.publisher.stream.hasVideo != isCamOn) setIsCamOn(props.publisher.stream.hasVideo);\r\n }\r\n if (props.session) {\r\n props.session.on(\"streamPropertyChanged\", bindPropertyChanges);\r\n }\r\n functionsRef.current = {\r\n setControlLock\r\n };\r\n return () => {\r\n if (props.session) {\r\n props.session.off(\"streamPropertyChanged\", bindPropertyChanges);\r\n }\r\n };\r\n });\r\n function bindPropertyChanges({ changedProperty, newValue, stream }) {\r\n const { publisher } = props;\r\n if (publisher && stream == publisher.stream) {\r\n if (changedProperty == \"hasAudio\") {\r\n setIsMicOn(newValue);\r\n } else if (changedProperty == \"hasVideo\") {\r\n setIsCamOn(newValue);\r\n }\r\n if (!publisher.stream.hasAudio && !publisher.stream.hasVideo) {\r\n props.stopPublisher();\r\n }\r\n }\r\n }\r\n function toggleAudio() {\r\n if (props.publisher) {\r\n props.publisher.publishAudio(!isMicOn);\r\n setControlLock(true);\r\n setTimeout(() => setControlLock(false), 500);\r\n } \r\n else{\r\n setControlLock(true);\r\n props.startPublisher(\"audioOnly\", () => setControlLock(false));\r\n } \r\n\r\n }\r\n function toggleVideo() {\r\n if (props.publisher) {\r\n props.publisher.publishVideo(!isCamOn);\r\n setControlLock(true);\r\n setTimeout(() => setControlLock(false), 500);\r\n } \r\n else{\r\n setControlLock(true);\r\n props.startPublisher(\"videoOnly\", () => setControlLock(false));\r\n } \r\n }\r\n return (\r\n
\r\n {props.session && props.session.capabilities && props.session.capabilities.publish === 1 && (!props.backstage || props.view) ? (\r\n \r\n
\r\n \r\n {isMicOn ? : }\r\n \r\n
\r\n
\r\n \r\n {isCamOn ? : }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {isScreenshareEnabled ? (\r\n
\r\n {props.isSharingMyScreen ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n ) : null}\r\n
\r\n ) : null}\r\n {props.allowFullscreen && ((props.session && props.session.capabilities && props.session.capabilities.publish === 1) || props.streams.length > 0 || props.fullscreen) ? (\r\n
\r\n {props.fullscreen ? : }\r\n
\r\n ) : null}\r\n {!props.moderatorLock && props.screensharePublisher ? (\r\n
\r\n props.changeScreenshareLayout(val)} layout={props.screenshareLayout} />\r\n
\r\n ) : null}\r\n
\r\n );\r\n}\r\n","import { Button, ListItem, ListItemAvatar, ListItemIcon, ListItemText, Tooltip } from \"@material-ui/core\";\r\nimport React, { useEffect, useState, useRef, useMemo } from \"react\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\r\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\n\r\nexport const gridVideoframeOptions = {\r\n width: \"100%\",\r\n height: \"100%\",\r\n insertMode: \"append\",\r\n showControls: false,\r\n};\r\n\r\nexport default function VonageGridView(props) {\r\n const [videoCount, setVideoCount] = useState(0);\r\n const [gridClass, setGridClass] = useState(\"one-row\");\r\n const [currentlyShown, setCurrentlyShown] = useState([]);\r\n const [maxCountToShow, setMaxCountToShow] = useState(9);\r\n const functionsRef = useRef();\r\n const { orderList } = props;\r\n useEffect(() => {\r\n if (props.publisher && props.publisher.stream) {\r\n if (props.streams.length + 1 != videoCount) {\r\n setVideoCount(props.streams.length + 1);\r\n calculateColumns(props.streams.length + 1);\r\n }\r\n } else {\r\n if (props.streams.length != videoCount) {\r\n setVideoCount(props.streams.length);\r\n calculateColumns(props.streams.length);\r\n }\r\n }\r\n functionsRef.current = {\r\n onStreamConnected,\r\n setNewPersonTalking,\r\n onStreamDisconnected,\r\n toggleGridView,\r\n };\r\n });\r\n useEffect(() => {\r\n props.setFunctionsRef(functionsRef);\r\n }, []);\r\n const hiddenSpeakers = useMemo(() => {\r\n let hidden = [];\r\n props.streams.map((s) => {\r\n if (!currentlyShown.find((cs) => cs.stream?.id === s.stream?.id)) hidden.push(s);\r\n });\r\n if (props.publisher && props.publisher.stream && !currentlyShown.find((cs) => cs.stream?.id === props.publisher.stream?.id)) {\r\n hidden.push(props.publisher);\r\n }\r\n return hidden;\r\n }, [currentlyShown.length, props.streams.length, props.publisher]);\r\n\r\n function calculateColumns(vids) {\r\n if (vids <= 1) {\r\n setGridClass(\"one-row-single\");\r\n } else if (vids == 2) {\r\n setGridClass(\"one-row\");\r\n } else if (vids > 2 && vids < 5) {\r\n setGridClass(\"two-row\");\r\n } else if (vids >= 5 && vids < 10) {\r\n setGridClass(\"three-row\");\r\n } else if (vids >= 10 && vids < 13) {\r\n setGridClass(\"three-row wide\");\r\n } else if (vids >= 13 && vids < 17) {\r\n setGridClass(\"four-row\");\r\n } else if (vids >= 17 && vids < 21) {\r\n setGridClass(\"four-row wide\");\r\n } else if (vids >= 21 && vids < 26) {\r\n setGridClass(\"five-row\");\r\n } else if (vids >= 26 && vids < 31) {\r\n setGridClass(\"five-row wide\");\r\n } else if (vids >= 31 && vids < 37) {\r\n setGridClass(\"six-row\");\r\n } else if (vids >= 37 && vids < 43) {\r\n setGridClass(\"six-row wide\");\r\n } else if (vids >= 43 && vids < 50) {\r\n setGridClass(\"seven-row\");\r\n } else {\r\n setGridClass(\"seven-row wide\");\r\n }\r\n }\r\n function toggleGridView() {\r\n const containerDiv = document.getElementById(\"vonage-grid-container\");\r\n for (const subscriber of currentlyShown) {\r\n containerDiv.append(subscriber.element);\r\n if (typeof subscriber.subscribeToVideo == \"function\") {\r\n subscriber.subscribeToVideo(true);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 500);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 1000);\r\n }\r\n }\r\n }\r\n function onStreamConnected(subscriber) {\r\n if (currentlyShown.length < maxCountToShow) {\r\n currentlyShown.push(subscriber);\r\n const containerDiv = document.getElementById(\"vonage-grid-container\");\r\n if (props.layoutMode == \"grid\") {\r\n containerDiv.append(subscriber.element);\r\n if (typeof subscriber.subscribeToVideo == \"function\") {\r\n subscriber.subscribeToVideo(true);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 500);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 1000);\r\n }\r\n }\r\n } else if (props.layoutMode == \"grid\") {\r\n if (typeof subscriber.subscribeToVideo == \"function\") {\r\n subscriber.subscribeToVideo(false);\r\n }\r\n }\r\n\r\n // 10, length\r\n }\r\n function onStreamDisconnected(subscriber) {\r\n let subscriberToRemove = currentlyShown.find((s) => s.widgetId == subscriber.widgetId);\r\n if (subscriberToRemove) {\r\n const containerDiv = document.getElementById(\"vonage-grid-container\");\r\n const hiddenDiv = document.getElementById(\"vonage-grid-hidden\");\r\n\r\n currentlyShown.splice(currentlyShown.indexOf(subscriberToRemove), 1);\r\n\r\n if (hiddenDiv.firstChild) {\r\n if (props.publisher && props.publisher.element == hiddenDiv.firstChild) {\r\n currentlyShown.push(props.publisher);\r\n if (props.layoutMode == \"grid\") {\r\n containerDiv.append(props.publisher.element);\r\n }\r\n } else {\r\n var newStream = props.streams.find((x) => x.element == hiddenDiv.firstChild);\r\n if (newStream) {\r\n currentlyShown.push(newStream);\r\n if (props.layoutMode == \"grid\") {\r\n containerDiv.append(newStream.element);\r\n if (typeof newStream.subscribeToVideo == \"function\") {\r\n newStream.subscribeToVideo(true);\r\n setTimeout(() => newStream.subscribeToVideo(true), 500);\r\n setTimeout(() => newStream.subscribeToVideo(true), 1000);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setNewPersonTalking(subscriber) {\r\n const containerDiv = document.getElementById(\"vonage-grid-container\");\r\n const hiddenDiv = document.getElementById(\"vonage-grid-hidden\");\r\n if (currentlyShown.indexOf(subscriber) != -1) {\r\n return;\r\n } else if (currentlyShown.length >= maxCountToShow) {\r\n currentlyShown.unshift(subscriber);\r\n let subToRemove = currentlyShown.pop();\r\n if (props.layoutMode == \"grid\") {\r\n if (typeof subscriber.subscribeToVideo == \"function\") {\r\n subscriber.subscribeToVideo(true);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 500);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 1000);\r\n }\r\n if (typeof subToRemove.subscribeToVideo == \"function\") {\r\n subToRemove.subscribeToVideo(false);\r\n }\r\n containerDiv.prepend(subscriber.element);\r\n hiddenDiv.prepend(subToRemove.element);\r\n }\r\n } else {\r\n currentlyShown.unshift(subscriber);\r\n if (props.layoutMode == \"grid\") {\r\n containerDiv.prepend(subscriber.element);\r\n if (typeof subscriber.subscribeToVideo == \"function\") {\r\n subscriber.subscribeToVideo(true);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 500);\r\n setTimeout(() => subscriber.subscribeToVideo(true), 1000);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {hiddenSpeakers.length > 0 ? : null}\r\n
\r\n
props.setGridViewHiddenRef(r)} id=\"vonage-grid-hidden\" style={{ display: \"none\" }}>
\r\n
\r\n );\r\n}\r\n\r\nconst HiddenSpeakerlist = ({ hiddenSpeakers = [], showSpeaker, orderList }) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n
\r\n {hiddenSpeakers.length}}\r\n endIcon={Boolean(anchorEl) ? : }\r\n aria-controls=\"simple-menu\"\r\n aria-haspopup=\"true\"\r\n style={{\r\n borderRadius: \"5px\",\r\n background: \"#222222d4\",\r\n padding: \"4px 20px\",\r\n color: \"#fff\",\r\n position: \"absolute\",\r\n right: \"60px\",\r\n bottom: \"20px\",\r\n zIndex: 100,\r\n }}\r\n onClick={handleClick}\r\n >\r\n \r\n \r\n \r\n {hiddenSpeakers.map((h, i) => {\r\n const order = orderList.find((o) => o.badgeNo === h?.stream?.name);\r\n return (\r\n {\r\n showSpeaker(h);\r\n handleClose();\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
\r\n );\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport MenuOpenIcon from \"@material-ui/icons/MenuOpen\";\r\nimport KeyboardArrowUpIcon from \"@material-ui/icons/KeyboardArrowUp\";\r\nimport KeyboardArrowDownIcon from \"@material-ui/icons/KeyboardArrowDown\";\r\nimport KeyboardArrowLeftIcon from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRightIcon from \"@material-ui/icons/KeyboardArrowRight\";\r\n\r\nexport default function VonageSidebar(props) {\r\n const [streamSidebarOpen, setSidebarOpen] = useState(true);\r\n const [speakerIndex, setSpeakerIndex] = useState(0);\r\n useEffect(() => {\r\n // if(props.layoutMode != layoutMode){\r\n // setLayoutMode(layoutMode);\r\n // }\r\n });\r\n\r\n function scrollSidebar(direction) {\r\n const { focusViewStreamsRef } = props;\r\n if (focusViewStreamsRef/* .current */ && focusViewStreamsRef/* .current */.children[0]) {\r\n const scrollTop = focusViewStreamsRef/* .current */.scrollTop;\r\n const margin = focusViewStreamsRef/* .current */.children[0].getBoundingClientRect().height * 0.02;\r\n const childHeight = focusViewStreamsRef/* .current */.children[0].getBoundingClientRect().height + margin;\r\n \r\n if (direction == \"up\") {\r\n if (speakerIndex > 1) {\r\n setSpeakerIndex(speakerIndex - 1);\r\n focusViewStreamsRef/* .current */.style.transform = `translateY(${(speakerIndex - 1) * (scrollTop - childHeight)}px)`;\r\n } else if (speakerIndex == 1) {\r\n setSpeakerIndex(0);\r\n focusViewStreamsRef./* .current */style.transform = `translateY(0px)`;\r\n }\r\n }\r\n if (direction == \"down\") {\r\n if (speakerIndex < props.streams.length - 1) {\r\n focusViewStreamsRef/* .current */.style.transform = `translateY(${(speakerIndex == 0 ? 1 : speakerIndex + 1) * (scrollTop - childHeight)}px)`;\r\n setSpeakerIndex(speakerIndex + 1);\r\n }\r\n }\r\n }\r\n }\r\n return (\r\n
1 && !props.screenshareStream ? \"block\" : \"none\", left: streamSidebarOpen ? \"1%\" : \"-19%\" }}>\r\n scrollSidebar(\"up\")}>\r\n \r\n \r\n scrollSidebar(\"down\")}\r\n >\r\n \r\n \r\n setSidebarOpen(!streamSidebarOpen)}>\r\n {streamSidebarOpen ? : }\r\n \r\n
props.setfocusViewStreamsRef(r)} id=\"vonage-subscribed-streams-container\">
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport VonageSidebar from \"./VonageSidebar\";\r\n\r\nexport const focusedVideoframeOptions = {\r\n width: \"98%\",\r\n height: \"calc(97% / 5)\",\r\n insertMode: \"append\",\r\n showControls: false,\r\n };\r\n \r\nexport default function VonageFocusedView(props) {\r\n\r\n return (
\r\n \r\n
props.setMyStreamRef(r)} style={{display:(props.publisher && props.publisher.stream && !props.screenshareStream ? \"block\": \"none\")}} id=\"vonage-my-stream\" style={{height:props.streams.length == 0 ? \"99%\":null, width:props.streams.length == 0 ? \"99%\":null}}>
\r\n
\r\n
)\r\n}","import React, { useEffect, useState, useRef } from \"react\";\r\nexport default function VonageSpotlightView(props) {\r\n const [videoCount, setVideoCount] = useState(0);\r\n const [gridClass, setGridClass] = useState(\"one-row\");\r\n const [currentSpotlights, setCurrentSpotlights] = useState([]);\r\n const functionsRef = useRef();\r\n const { hubConnection, checkSpotlightLayoutStatus } = props;\r\n useEffect(() => {\r\n functionsRef.current = {\r\n currentSpotlights: [...currentSpotlights],\r\n toggleSpotlightView,\r\n onStreamConnected,\r\n onStreamDisconnected,\r\n };\r\n\r\n if (hubConnection) {\r\n hubConnection.on(\"onVonageGetSpotlights\", onVonageGetSpotlights);\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onVonageGetSpotlights\", onVonageGetSpotlights);\r\n }\r\n };\r\n });\r\n useEffect(() => {\r\n if (props.layoutMode == \"spotlight\") {\r\n toggleSpotlightView();\r\n }\r\n checkSpotlightLayoutStatus();\r\n }, [currentSpotlights]);\r\n useEffect(() => {\r\n props.setFunctionsRef(functionsRef);\r\n hubConnection.invoke(\"vonageGetSpotlights\", props.eventId, props.channel);\r\n }, []);\r\n\r\n function onVonageGetSpotlights(spotlightList) {\r\n setCurrentSpotlights(spotlightList);\r\n }\r\n useEffect(() => {\r\n if (videoCount <= 1) {\r\n setGridClass(\"one-row-single\");\r\n } else if (videoCount == 2) {\r\n setGridClass(\"one-row\");\r\n } else if (videoCount > 2 && videoCount <= 4) {\r\n setGridClass(\"two-row\");\r\n } else if (videoCount >= 5 && videoCount <= 9) {\r\n setGridClass(\"three-row\");\r\n } else if (videoCount >= 10 && videoCount <= 13) {\r\n setGridClass(\"three-row wide\");\r\n } else if (videoCount >= 13 && videoCount < 17) {\r\n setGridClass(\"four-row\");\r\n } else {\r\n setGridClass(\"five-row\");\r\n }\r\n }, [videoCount]);\r\n\r\n function toggleSpotlightView() {\r\n const { streams, publisher } = props;\r\n const containerDiv = document.getElementById(\"vonage-spotlight-container\");\r\n const hiddenDiv = document.getElementById(\"vonage-spotlight-hidden\");\r\n let vidCount = 0;\r\n if (publisher && publisher.stream) {\r\n if (publisher.stream.name && currentSpotlights.includes(publisher.stream.name)) {\r\n containerDiv.append(publisher.element);\r\n vidCount += 1;\r\n } else {\r\n hiddenDiv.append(publisher.element);\r\n }\r\n }\r\n for (const subscriber of streams) {\r\n if (currentSpotlights.indexOf(subscriber.stream?.name) != -1) {\r\n vidCount += 1;\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(true);\r\n containerDiv.append(subscriber.element);\r\n } else {\r\n if (typeof subscriber.subscribeToVideo == \"function\") subscriber.subscribeToVideo(false);\r\n hiddenDiv.append(subscriber.element);\r\n }\r\n }\r\n if (videoCount != vidCount) setVideoCount(vidCount);\r\n\r\n // props.checkSpotlightLayout();\r\n }\r\n function onStreamConnected(subscriber) {\r\n checkSpotlightLayoutStatus();\r\n if (props.layoutMode == \"spotlight\") {\r\n toggleSpotlightView();\r\n }\r\n }\r\n function onStreamDisconnected(subscriber) {\r\n checkSpotlightLayoutStatus();\r\n if (props.layoutMode == \"spotlight\") {\r\n toggleSpotlightView();\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
props.setHiddenRef(r)} id=\"vonage-spotlight-hidden\" style={{ display: \"none\" }}>
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport OT from \"@opentok/client\";\r\nimport \"./VonageStyle.css\";\r\nimport \"./components/VonageHardwareSetup.css\";\r\nimport VonageControlpanel from \"./components/VonageControlpanel\";\r\nimport VonageGridView from \"./components/VonageGridView\";\r\nimport VonageFocusedView from \"./components/VonageFocusedView\";\r\nimport VonageScreenshare from \"./components/VonageScreenshare\";\r\nimport VonageSpotlightView from \"./components/VonageSpotlightView\";\r\nimport VonageSpeakerDialog from \"./components/VonageSpeakerDialog\";\r\nimport createOpentokHardwareSetupComponent from \"./components/VonageHardwareSetup\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../constants/eventLabelGroups.contansts\";\r\n/* import * as bodyPix from \"@tensorflow-models/body-pix\";\r\nimport * as tf from \"@tensorflow/tfjs\";\r\nimport { NonMaxSuppressionV3 } from \"@tensorflow/tfjs\"; */\r\n\r\nconst VonageVideoClientModule = (props) => {\r\n const { hubConnection, lang, settings, clientName, companyName, channel, eventId, clientKey, view, onAir, orderList } = props;\r\n const { allowFullscreen, backstage, backgroundColor } = settings;\r\n const [showSpeakerDialog, setShowSpeakerDialog] = useState(false);\r\n const [showSpeakerDialogButton, setShowSpeakerDialogButton] = useState(false);\r\n const [showHardwareUnavailable, setShowHardwareUnavailable] = useState(false);\r\n const [gridViewFunctions, setGridViewFunctions] = useState(null);\r\n const [spotlightViewFunctions, setSpotlightViewFunctions] = useState(null);\r\n const [screenshareViewFunctions, setScreenshareViewFunctions] = useState(null);\r\n const [controlPanelFunctions, setControlPanelFunctions] = useState(null);\r\n const [hardwareSetupComplete, setHardwareSetupComplete] = useState(false);\r\n const [state, setState] = useState({\r\n token: null,\r\n streams: [],\r\n activeStream: null,\r\n screenshareStream: null,\r\n streamIdToMute: null,\r\n session: null,\r\n publisher: null,\r\n fullscreen: false,\r\n screensharePublisher: null,\r\n focusedStream: null,\r\n mainViewEl: null,\r\n focusViewStreamsRef: null,\r\n layoutMode: backstage ? \"grid\" : localStorage.getItem(\"vvcl\") || \"grid\",\r\n myStreamRef: null,\r\n showSettingsView: false,\r\n hardwareSetup: null,\r\n screenshareLayout: \"singleSpeaker\",\r\n screenshareScreenRef: null,\r\n screenshareSpeakersRef: null,\r\n screenshareHiddenRef: null,\r\n spotlightViewHiddenRef: null,\r\n isModerator: false,\r\n moderatorLock: false,\r\n showControlbar: false,\r\n });\r\n const [showHwSetup, setShowHwSetup] = useState(false);\r\n const [showClickToJoin, setShowClickToJoin] = useState(false);\r\n const [hardwareSetupTimeout, setHardwareSetupTimeout] = useState(false);\r\n\r\n /* const [net, setNet] = useState(null); */\r\n\r\n const stateRef = useRef();\r\n stateRef.current = state;\r\n const onStreamDestroyedRef = useRef();\r\n const onPublisherDestroyedRef = useRef();\r\n\r\n // const videoTag = useRef();\r\n // const canvasTag = useRef();\r\n // const imageTag = useRef();\r\n\r\n const onScreensharePublisherDestroyedRef = useRef();\r\n const { aspectRatio, requestedEventId } = settings;\r\n\r\n useEffect(() => {\r\n init(eventId, eventLabelGroupsConstants.VONAGE_LABEL_GROUP, lang);\r\n if (!localStorage.getItem(\"vvcl\") || localStorage.getItem(\"vvcl\") == \"null\") {\r\n localStorage.setItem(\"vvcl\", \"grid\");\r\n stateRef.current.layoutMode = \"grid\";\r\n }\r\n if (hubConnection && hubConnection.state == 1) {\r\n let sessionType = backstage ? \"SUBSCRIBER\" : \"PUBLISHER\";\r\n if (view) {\r\n if (view == \"LIVE\" && !onAir) {\r\n sessionType = \"SUBSCRIBER\";\r\n } else {\r\n sessionType = \"PUBLISHER\";\r\n }\r\n }\r\n hubConnection.invoke(\"getSessionAndToken\", requestedEventId || eventId, channel, clientKey, sessionType, false);\r\n }\r\n const mainViewEl = document.getElementById(\"vonage-mainview\");\r\n // ro.observe(document.getElementById(\"vonage-module-wrap\"));\r\n\r\n if (backstage && !props.toggleHardwareSetup) {\r\n let audioContextForTest = new AudioContext();\r\n if (audioContextForTest.state === \"suspended\") {\r\n setShowClickToJoin(true);\r\n }\r\n }\r\n else if (props.hardwareSetup) {\r\n setHardwareSetupComplete(true);\r\n }\r\n\r\n setState({ ...stateRef.current, mainViewEl });\r\n\r\n return () => {\r\n if (stateRef.current.session) {\r\n stateRef.current.streams.forEach((s) => {\r\n stateRef.current.session.unsubscribe(s);\r\n });\r\n if (stateRef.current.publisher) stateRef.current.session.unpublish(stateRef.current.publisher);\r\n if (stateRef.current.screensharePublisher) stateRef.current.session.unpublish(stateRef.current.screensharePublisher);\r\n if (stateRef.current.screenshareStream) stateRef.current.session.unsubscribe(stateRef.current.screenshareStream);\r\n stateRef.current.session.disconnect();\r\n }\r\n };\r\n }, []);\r\n useEffect(() => {\r\n if (typeof props.isStudioStream === \"boolean\" && stateRef.current.publisher) {\r\n stateRef.current.publisher.on(\"destroyed\", () => startPublisher(\"restart\"));\r\n stateRef.current.session.unpublish(stateRef.current.publisher);\r\n }\r\n }, [props.isStudioStream]);\r\n useEffect(() => {\r\n const { session } = stateRef.current;\r\n if (hubConnection && hubConnection.state == 1 && session) {\r\n let sessionType = backstage ? \"SUBSCRIBER\" : \"PUBLISHER\";\r\n if (view) {\r\n if (view == \"LIVE\" && !onAir) {\r\n sessionType = \"SUBSCRIBER\";\r\n } else {\r\n sessionType = \"PUBLISHER\";\r\n }\r\n }\r\n if ((sessionType === \"PUBLISHER\" && session.capabilities.publish !== 1) || (sessionType == \"SUBSCRIBER\" && session.capabilities.publish === 1)) {\r\n session.disconnect();\r\n hubConnection.invoke(\"getSessionAndToken\", eventId, channel, clientKey, sessionType, false);\r\n }\r\n }\r\n }, [props.view, props.onAir]);\r\n useEffect(() => {\r\n if (!showHwSetup) {\r\n setHardwareSetupTimeout(true);\r\n setTimeout(() => setHardwareSetupTimeout(false), 1000);\r\n }\r\n }, [showHwSetup]);\r\n useEffect(() => {\r\n if (state.session && !state.session.connection && state.token\r\n && ((backstage && !showClickToJoin && !props.toggleHardwareSetup)\r\n || (backstage && hardwareSetupComplete && props.toggleHardwareSetup)\r\n || (!backstage && hardwareSetupComplete))) {\r\n state.session.connect(state.token, (error) => {\r\n // If the connection is successful, publish to the session\r\n if (error) {\r\n handleError(error);\r\n } else {\r\n if (state.session.capabilities.publish === 1) {\r\n startPublisher();\r\n }\r\n }\r\n });\r\n }\r\n }, [state.session, state.session?.connection, hardwareSetupComplete, state.token, showClickToJoin]);\r\n function checkSpotlightLayoutStatus() {\r\n const { layoutMode, streams, publisher } = stateRef.current;\r\n const currentSpotlights = spotlightViewFunctions?.current?.currentSpotlights;\r\n if (layoutMode != \"spotlight\" && layoutMode != \"screenshare\" && currentSpotlights && currentSpotlights.length > 0) {\r\n let match = false;\r\n if (publisher && publisher.stream && publisher.stream.name && currentSpotlights.includes(publisher.stream.name)) {\r\n toggleLayoutMode(\"spotlight\");\r\n return;\r\n }\r\n for (const spot of spotlightViewFunctions.current.currentSpotlights) {\r\n if (streams.find((s) => s.stream.name == spot)) {\r\n toggleLayoutMode(\"spotlight\");\r\n return;\r\n }\r\n }\r\n } else if (layoutMode == \"spotlight\") {\r\n if (spotlightViewFunctions?.current?.currentSpotlights.length > 0) {\r\n if (publisher && publisher.stream && publisher.stream.name && currentSpotlights.includes(publisher.stream.name)) {\r\n return;\r\n }\r\n for (const spot of spotlightViewFunctions.current.currentSpotlights) {\r\n if (streams.find((s) => s.stream.name == spot)) {\r\n return;\r\n }\r\n }\r\n toggleLayoutMode(localStorage.getItem(\"vvcl\") || \"grid\");\r\n } else if (spotlightViewFunctions?.current?.currentSpotlights.length == 0) {\r\n toggleLayoutMode(localStorage.getItem(\"vvcl\") || \"grid\");\r\n }\r\n }\r\n }\r\n\r\n \r\n function onActivateSpeaker(activeSpeaker) {\r\n if (activeSpeaker.badgeNo == clientKey) setShowSpeakerDialog(true);\r\n }\r\n useEffect(() => {\r\n const { activeStream, layoutMode, session } = stateRef.current;\r\n if (!activeStream && layoutMode == \"focused\") {\r\n setFocusedStream(null);\r\n }\r\n onStreamDestroyedRef.current = onStreamDestroyed;\r\n onPublisherDestroyedRef.current = onPublisherDestroyed;\r\n onScreensharePublisherDestroyedRef.current = onScreensharePublisherDestroyed;\r\n document.addEventListener(\"keydown\", handleEsc);\r\n if (stateRef.current.liveSession) stateRef.current.liveSession.on(\"streamPropertyChanged\", bindPropertyChanges);\r\n if (stateRef.current.backstageSession) stateRef.current.backstageSession.on(\"streamPropertyChanged\", bindPropertyChanges);\r\n window.addEventListener(\"beforeunload\", beforePageUnload);\r\n if (session) {\r\n session.on(\"streamCreated\", onStreamCreated);\r\n session.on(\"sessionConnected\", onSessionConnected);\r\n }\r\n if (hubConnection) {\r\n hubConnection.on(\"onGetSessionAndToken\", onGetSessionAndToken);\r\n hubConnection.on(\"onChangeVonageScreenshareLayout\", onChangeVonageScreenshareLayout);\r\n hubConnection.on(\"onActivateSpeaker\", onActivateSpeaker);\r\n }\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEsc);\r\n if (stateRef.current.liveSession) stateRef.current.liveSession.off(\"streamPropertyChanged\", bindPropertyChanges);\r\n if (stateRef.current.backstageSession) stateRef.current.backstageSession.off(\"streamPropertyChanged\", bindPropertyChanges);\r\n window.removeEventListener(\"beforeunload\", beforePageUnload);\r\n if (session) {\r\n session.off(\"streamCreated\", onStreamCreated);\r\n session.off(\"sessionConnected\", onSessionConnected);\r\n }\r\n if (hubConnection) {\r\n hubConnection.off(\"onGetSessionAndToken\", onGetSessionAndToken);\r\n hubConnection.off(\"onChangeVonageScreenshareLayout\", onChangeVonageScreenshareLayout);\r\n hubConnection.off(\"onActivateSpeaker\", onActivateSpeaker);\r\n }\r\n };\r\n });\r\n\r\n function onGetSessionAndToken(apiKey, sessionId, token) {\r\n const { hardwareSetup } = stateRef.current;\r\n var session = OT.initSession(apiKey, sessionId);\r\n stateRef.current.session = session;\r\n stateRef.current.token = token;\r\n\r\n if (!backstage || props.toggleHardwareSetup) {\r\n if (!hardwareSetup && !props.hardwareSetup) {\r\n initHardwareSetup();\r\n setShowHwSetup(true);\r\n if (props.toggleHardwareSetup && typeof props.toggleHardwareSetup == \"function\") props.toggleHardwareSetup(true);\r\n return;\r\n } else if (!hardwareSetup && props.hardwareSetup) {\r\n initHardwareSetup();\r\n }\r\n }\r\n setState({ ...stateRef.current });\r\n // session.connect(token, (error) => {\r\n // // If the connection is successful, publish to the session\r\n // if (error) {\r\n // handleError(error);\r\n // } else {\r\n // if (session.capabilities.publish === 1) {\r\n // startPublisher();\r\n // }\r\n // }\r\n // });\r\n }\r\n function onSessionConnected(e) {\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"getScreenshareLayout\", eventId, channel);\r\n hubConnection.invoke(\"getArchiveRecording\", eventId, channel);\r\n }\r\n setState({ ...stateRef.current });\r\n }\r\n function onStreamCreated(event) {\r\n if (event.stream.videoType === \"screen\") {\r\n handleScreenshareStream(event);\r\n } else {\r\n handleCameraStream(event);\r\n }\r\n }\r\n function handleScreenshareStream(event) {\r\n const { session, layoutMode } = stateRef.current;\r\n let newScreenshareStream = session.subscribe(event.stream, \"screenshare-container\", {\r\n width: \"auto\",\r\n height: \"100%\",\r\n insertMode: \"append\",\r\n showControls: false,\r\n });\r\n const previousLayout = layoutMode;\r\n newScreenshareStream.on(\"destroyed\", (event) => {\r\n onStreamDestroyedRef.current(event, previousLayout);\r\n });\r\n // screenshareResizeObserver.observe(newScreenshareStream.element);\r\n newScreenshareStream.element.style.aspectRatio = \"16/9\";\r\n setState({ ...stateRef.current, screenshareStream: newScreenshareStream });\r\n toggleLayoutMode(\"screenshare\");\r\n }\r\n function handleCameraStream(event) {\r\n const { streams, session, layoutMode, screenshareLayout } = stateRef.current;\r\n var targetContainer = \"vonage-subscribed-streams-container\";\r\n var targetOptions = {\r\n insertMode: \"append\",\r\n width: \"calc(100% - 10px)\",\r\n height: \"auto\",\r\n showControls: false,\r\n };\r\n if (layoutMode == \"grid\") {\r\n targetContainer = \"vonage-grid-hidden\";\r\n } else if (layoutMode == \"screenshare\") {\r\n if (screenshareLayout == \"singleSpeaker\" || screenshareLayout == \"noSpeaker\") {\r\n targetContainer = \"vonage-screenshare-hidden\";\r\n } else {\r\n targetContainer = \"vonage-screenshare-speakers\";\r\n }\r\n }\r\n let newStream = session.subscribe(event.stream, targetContainer, targetOptions); //här\r\n newStream.on(\"destroyed\", (e) => {\r\n onStreamDestroyedRef.current(e);\r\n });\r\n addMuteButton(newStream);\r\n addNametag(newStream);\r\n speakerDetection(newStream, setSubscriberStartTalking, setSubscriberStopTalking);\r\n newStream.element.addEventListener(\"click\", (t) => setFocusedStream(t.currentTarget));\r\n newStream.element.style.aspectRatio = aspectRatio === \"4:3\" ? \"4/3\" : (aspectRatio === \"16:10\" ? \"16/10\" : \"16/9\")\r\n // ro.observe(newStream.element);\r\n streams.push(newStream);\r\n gridViewFunctions.current.onStreamConnected(newStream);\r\n screenshareViewFunctions.current.onStreamConnected(newStream);\r\n setTimeout(() => checkIfMuted(newStream), 1000);\r\n checkSpotlightLayoutStatus();\r\n setState({ ...stateRef.current }); //gratuitous setstate to trigger re-render\r\n }\r\n function checkIfMuted(newStream) {\r\n if (!newStream.element?.querySelector(\"video\")) {\r\n return setTimeout(() => checkIfMuted(newStream), 1000);\r\n }\r\n var muted = newStream.element.querySelector(\"video\").muted;\r\n if (muted) muteStream(newStream, true);\r\n }\r\n function addNametag(subscriber) {\r\n if (settings && (settings.showNametags === \"ALWAYS\" || settings.showNametags == \"HOVER\")) {\r\n var nametag = document.createElement(\"div\");\r\n nametag.style.position = \"absolute\";\r\n nametag.style.top = \"2%\";\r\n nametag.style.right = \"0px\";\r\n nametag.style.left = \"0px\";\r\n nametag.style.color = \"white\";\r\n nametag.style.textAlign = \"center\";\r\n if (settings.showNametags == \"HOVER\") {\r\n nametag.classList.add(\"show-on-hover\");\r\n }\r\n var order = orderList.find((x) => x.badgeNo == subscriber.stream.name);\r\n let streamName = order ? order.name : \"Guest\";\r\n if (order && order.company) {\r\n streamName += \", \" + order.company;\r\n }\r\n var nameText = document.createElement(\"span\");\r\n nameText.innerText = streamName;\r\n nameText.style.padding = \"4px 10px\";\r\n nameText.style.borderRadius = \"5px\";\r\n nameText.style.backgroundColor = \"#17171794\";\r\n nametag.appendChild(nameText);\r\n subscriber.element.appendChild(nametag);\r\n }\r\n }\r\n function addMuteButton(subscriber) {\r\n var btn = document.createElement(\"button\");\r\n btn.classList.add(\"MuiButtonBase-root\");\r\n btn.classList.add(\"MuiIconButton-root\");\r\n btn.classList.add(\"mute-btn\");\r\n // if (state.layoutMode == \"grid\") {\r\n btn.style.padding = \"5px\";\r\n // }\r\n\r\n btn.setAttribute(\"tabindex\", 0);\r\n btn.setAttribute(\"type\", \"button\");\r\n\r\n var span = document.createElement(\"span\");\r\n span.classList.add(\"MuiIconButton-label\");\r\n btn.appendChild(span);\r\n\r\n var svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\r\n svg.classList.add(\"MuiSvgIcon-root\");\r\n\r\n // if (state.layoutMode == \"grid\") {\r\n svg.style.fontSize = \"1rem\";\r\n // }\r\n svg.setAttribute(\"focusable\", false);\r\n svg.setAttribute(\"viewBox\", \"0 0 24 24\");\r\n svg.setAttribute(\"aria-hidden\", true);\r\n span.appendChild(svg);\r\n\r\n var path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\r\n path.setAttribute(\r\n \"d\",\r\n \"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"\r\n );\r\n svg.appendChild(path);\r\n\r\n btn.addEventListener(\"click\", (e) => {\r\n e.stopPropagation();\r\n if (subscriber.getAudioVolume() > 0) {\r\n muteStream(subscriber, true);\r\n } else {\r\n muteStream(subscriber, false);\r\n }\r\n });\r\n subscriber.element.appendChild(btn);\r\n }\r\n function muteStream(subscriber, state) {\r\n var path = subscriber.element.querySelector(\".mute-btn path\");\r\n if (state) {\r\n subscriber.setAudioVolume(0);\r\n path.setAttribute(\r\n \"d\",\r\n \"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\"\r\n );\r\n } else {\r\n subscriber.setAudioVolume(100);\r\n path.setAttribute(\r\n \"d\",\r\n \"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"\r\n );\r\n if (subscriber.element.querySelector(\"video\").muted) {\r\n subscriber.element.querySelector(\"video\").muted = false;\r\n }\r\n }\r\n }\r\n function setSubscriberStartTalking(subscriber) {\r\n if (stateRef.current.layoutMode == \"focused\") {\r\n if (stateRef.current.activeStream && stateRef.current.activeStream.widgetId != subscriber.widgetId && !stateRef.current.screenshareStream) {\r\n setFocusedStream(subscriber.element);\r\n }\r\n }\r\n\r\n gridViewFunctions.current.setNewPersonTalking(subscriber);\r\n screenshareViewFunctions.current.setNewPersonTalking(subscriber);\r\n\r\n subscriber.element.classList.toggle(\"is-speaking\", true);\r\n }\r\n function setSubscriberStopTalking(subscriber) {\r\n subscriber.element.classList.toggle(\"is-speaking\", false);\r\n }\r\n\r\n function speakerDetection(subscriber, startTalking, stopTalking) {\r\n var activity = null;\r\n subscriber.on(\"audioLevelUpdated\", function (event) {\r\n var now = Date.now();\r\n if (event.audioLevel > 0.04) {\r\n if (!activity) {\r\n activity = { timestamp: now, talking: false };\r\n } else if (activity.talking) {\r\n activity.timestamp = now;\r\n } else if (now - activity.timestamp > 1000) {\r\n // detected audio activity for more than 1s\r\n // for the first time.\r\n activity.talking = true;\r\n if (typeof startTalking === \"function\") {\r\n startTalking(subscriber);\r\n }\r\n }\r\n } else if (activity && now - activity.timestamp > 3000) {\r\n // detected low audio activity for more than 3s\r\n if (activity.talking) {\r\n if (typeof stopTalking === \"function\") {\r\n stopTalking(subscriber);\r\n }\r\n }\r\n activity = null;\r\n }\r\n });\r\n }\r\n\r\n function onStreamDestroyed(event, previousLayout) {\r\n const { streams, screenshareStream, activeStream } = stateRef.current;\r\n if (previousLayout) toggleLayoutMode(previousLayout);\r\n var sIndex = streams.indexOf(streams.find((s) => s.widgetId === event.target.widgetId));\r\n if (sIndex != -1) {\r\n var disconnectedStream = streams.splice(sIndex, 1);\r\n if (disconnectedStream[0]) {\r\n gridViewFunctions.current.onStreamDisconnected(disconnectedStream[0]);\r\n screenshareViewFunctions.current.onStreamDisconnected(disconnectedStream[0]);\r\n spotlightViewFunctions.current.onStreamDisconnected(disconnectedStream[0]);\r\n checkSpotlightLayoutStatus();\r\n }\r\n if (activeStream && activeStream.widgetId === event.target.widgetId) {\r\n setState({ ...stateRef.current, activeStream: null });\r\n if (streams.length > 0) {\r\n setFocusedStream(streams[0].element);\r\n }\r\n } else {\r\n setState({ ...stateRef.current }); //gratuitous setstate to trigger re-render\r\n }\r\n } else if (screenshareStream && screenshareStream.widgetId == event.target.widgetId) {\r\n setState({ ...stateRef.current, screenshareStream: null });\r\n if (activeStream && activeStream.element) setFocusedStream(activeStream.element);\r\n }\r\n }\r\n function initHardwareSetup() {\r\n var hardwareSetup = createOpentokHardwareSetupComponent(\"vonage-setup-done\", { insertMode: \"before\" }, (error) => {\r\n if (error && error == \"NotReadableError\") {\r\n setShowHardwareUnavailable(true);\r\n }\r\n if (error) console.error(error);\r\n });\r\n if (props.setHardwareSetup && typeof props.setHardwareSetup == \"function\") props.setHardwareSetup(hardwareSetup);\r\n setState({ ...stateRef.current, hardwareSetup });\r\n }\r\n function setFocusedStream(el) {\r\n const { layoutMode, focusViewStreamsRef, streams, activeStream, mainViewEl } = stateRef.current;\r\n if (layoutMode != \"focused\") return;\r\n if (typeof el === \"string\") {\r\n let s = streams.find((s) => s.stream.id === el);\r\n if (s) el = s.element;\r\n }\r\n if (focusViewStreamsRef && activeStream) {\r\n // activeStream.element.style.height = \"calc(97% / 5)\";\r\n activeStream.element.style.width = \"98%\";\r\n focusViewStreamsRef.appendChild(activeStream.element);\r\n }\r\n if (!el && streams.length < 1) return;\r\n else if (!el && streams.length > 0) el = streams[0].element;\r\n\r\n const newActiveStream = streams.find((s) => s.element === el);\r\n mainViewEl.appendChild(newActiveStream.element);\r\n newActiveStream.element.style.width = \"100%\";\r\n // calcHeight43(newActiveStream.element);\r\n setState({ ...stateRef.current, activeStream: newActiveStream });\r\n }\r\n function toggleLayoutMode(mode) {\r\n const { streams, publisher, gridViewHiddenRef, focusViewStreamsRef, myStreamRef } = stateRef.current;\r\n if (!gridViewHiddenRef) {\r\n return;\r\n }\r\n setState({ ...stateRef.current, layoutMode: mode, activeStream: null });\r\n if (mode != \"screenshare\" && mode != \"spotlight\") localStorage.setItem(\"vvcl\", mode);\r\n if (mode == \"grid\") {\r\n if (publisher) {\r\n gridViewHiddenRef.appendChild(publisher.element);\r\n }\r\n streams.forEach((s) => {\r\n gridViewHiddenRef.appendChild(s.element);\r\n });\r\n gridViewFunctions.current.toggleGridView();\r\n } else if (mode == \"focused\") {\r\n if (publisher) {\r\n myStreamRef.appendChild(publisher.element);\r\n }\r\n streams.forEach((s) => {\r\n focusViewStreamsRef.appendChild(s.element);\r\n });\r\n } else if (mode == \"screenshare\") {\r\n toggleScreenshareLayout(stateRef.current.screenshareLayout);\r\n } else if (mode == \"spotlight\") {\r\n spotlightViewFunctions.current.toggleSpotlightView();\r\n }\r\n }\r\n function toggleScreenshareLayout(ssLayout) {\r\n const { screenshareStream, screenshareScreenRef, layoutMode, screensharePublisher } = stateRef.current;\r\n setState({ ...stateRef.current, screenshareLayout: ssLayout });\r\n if (layoutMode !== \"screenshare\") return;\r\n let screenShare = screensharePublisher ? screensharePublisher : screenshareStream;\r\n screenshareViewFunctions.current.toggleScreenshareView();\r\n\r\n screenshareScreenRef.appendChild(screenShare.element);\r\n }\r\n function logPublisherStats(publisher) {\r\n let prevStats = {};\r\n const publisherLogTimer = setInterval(() => {\r\n publisher.getStats((error, statsArray) => {\r\n if (error) {\r\n clearInterval(publisherLogTimer);\r\n return console.error(error);\r\n }\r\n statsArray.forEach((statsObj) => {\r\n let prevStatsObj = null;\r\n if (statsObj.connectionId) {\r\n prevStatsObj = prevStats[statsObj.connectionId];\r\n console.log(\"stats for connection\", statsObj.connectionId);\r\n } else {\r\n prevStatsObj = prevStats;\r\n }\r\n const stats = statsObj.stats;\r\n if (prevStatsObj.video) {\r\n var videoBitRate = 8 * (stats.video.bytesSent - prevStatsObj.video.bytesSent);\r\n console.log(\"video bit rate: \", videoBitRate, \"bps\");\r\n var audioBitRate = 8 * (stats.audio.bytesSent - prevStatsObj.audio.bytesSent);\r\n console.log(\"audio bit rate: \", audioBitRate, \"bps\");\r\n }\r\n if (stats.connectionId) {\r\n prevStats[stats.connectionId] = stats;\r\n } else {\r\n prevStats = stats;\r\n }\r\n });\r\n });\r\n }, 1000);\r\n }\r\n async function getMediaTrack(deviceId) {\r\n const stream = await navigator.mediaDevices.getUserMedia({\r\n video: {\r\n deviceId: { exact: deviceId },\r\n aspectRatio: { exact: 1.7777777778 },\r\n height: { ideal: 720 },\r\n }\r\n }).catch(handleError);\r\n const videoTrack = stream.getVideoTracks()[0];\r\n return videoTrack;\r\n }\r\n async function startPublisher(param, callback) {\r\n const { session, layoutMode, hardwareSetup } = stateRef.current;\r\n\r\n var targetContainer = \"vonage-my-stream\";\r\n if (layoutMode == \"grid\") targetContainer = \"vonage-grid-hidden\";\r\n else if (layoutMode == \"screenshare\") {\r\n if (layoutMode == \"singleSpeaker\") targetContainer = \"vonage-screenshare-hidden\";\r\n else targetContainer = \"vonage-screenshare-speaker\";\r\n }\r\n let audioDeviceId = localStorage.getItem(\"com.opentok.hardwaresetup.audio\");\r\n let videoDeviceId = localStorage.getItem(\"com.opentok.hardwaresetup.video\");\r\n\r\n if (stateRef.current.publisher && param != \"restart\") {\r\n stateRef.current.publisher.setVideoSource(videoDeviceId).catch((error) => console.error(error.name));\r\n stateRef.current.publisher.setAudioSource(audioDeviceId).catch((error) => console.error(error.name));\r\n return;\r\n }\r\n else if(stateRef.current.publisher){\r\n stateRef.current.publisher.destroy();\r\n }\r\n \r\n const videoTrack = await getMediaTrack(videoDeviceId);\r\n var options = {\r\n insertMode: \"append\",\r\n width: \"calc(100% - 10px)\",\r\n height: \"auto\",\r\n audioSource: audioDeviceId,\r\n videoSource: videoTrack ? videoTrack : videoDeviceId,\r\n publishAudio: param !== \"videoOnly\" || !videoDeviceId ? true : false,\r\n publishVideo: param !== \"audioOnly\" || !audioDeviceId ? true : false,\r\n showControls: false,\r\n name: clientKey,\r\n fitMode: \"cover\",\r\n mirror: true\r\n };\r\n if (props.isStudioStream === true) {\r\n options.disableAudioProcessing = true;\r\n }\r\n if (typeof param === \"object\") options = { ...options, ...param };\r\n var publisher = OT.initPublisher(targetContainer, { ...options, }, handleError);\r\n publisher.on(\"destroyed\", () => {\r\n onPublisherDestroyedRef.current();\r\n });\r\n session.publish(publisher, async (e) => {\r\n handleError(e);\r\n publisher.element.style.aspectRatio = aspectRatio === \"4:3\" ? \"4/3\" : (aspectRatio === \"16:10\" ? \"16/10\" : \"16/9\")\r\n speakerDetection(publisher, setSubscriberStartTalking, setSubscriberStopTalking);\r\n setState({ ...stateRef.current, publisher });\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"LogPublisherStatus\", session.id, eventId, channel, clientKey, false, \"Start\");\r\n }\r\n gridViewFunctions.current.onStreamConnected(publisher);\r\n screenshareViewFunctions.current.onStreamConnected(publisher);\r\n if (layoutMode == \"screenshare\") {\r\n toggleScreenshareLayout(stateRef.current.screenshareLayout);\r\n }\r\n checkSpotlightLayoutStatus();\r\n if (typeof callback === \"function\") callback();\r\n });\r\n }\r\n function stopPublisher() {\r\n const { publisher, session } = stateRef.current;\r\n if (session && publisher) {\r\n gridViewFunctions.current.onStreamDisconnected(publisher);\r\n session.unpublish(publisher);\r\n setState({ ...stateRef.current, publisher: null });\r\n }\r\n }\r\n function onPublisherDestroyed() {\r\n const { session } = stateRef.current;\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"LogPublisherStatus\", session.id, eventId, channel, clientKey, false, \"Stop\");\r\n }\r\n }\r\n function bindPropertyChanges({ changedProperty, newValue, stream }) {\r\n const { livePublisher, backstagePublisher, onAir, hardwareSetup } = stateRef.current;\r\n let publisher = onAir ? livePublisher : backstagePublisher;\r\n if (stream == publisher.stream) {\r\n if (changedProperty == \"hasAudio\") {\r\n if (props.hardwareSetup) {\r\n props.hardwareSetup.publishAudio = newValue;\r\n } else if (hardwareSetup) {\r\n hardwareSetup.publishAudio = newValue;\r\n }\r\n } else if (changedProperty == \"hasVideo\") {\r\n if (props.hardwareSetup) {\r\n props.hardwareSetup.publishVideo = newValue;\r\n } else if (hardwareSetup) {\r\n hardwareSetup.publishVideo = newValue;\r\n }\r\n }\r\n }\r\n }\r\n function changeVonageScreenshareLayout(newLayout) {\r\n hubConnection.invoke(\"changeVonageScreenshareLayout\", eventId, channel, newLayout);\r\n toggleScreenshareLayout(newLayout);\r\n }\r\n const onChangeVonageScreenshareLayout = (newLayout) => {\r\n toggleScreenshareLayout(newLayout);\r\n };\r\n function startScreenshare() {\r\n const { publisher, session, layoutMode } = stateRef.current;\r\n // Screen sharing is available. Publish the screen.\r\n var screensharePublisher = OT.initPublisher(\r\n \"vonage-screenshare-speakers\",\r\n {\r\n height:\"100%\",\r\n width:\"auto\",\r\n resolution:\"1280x720\",\r\n videoSource: \"screen\",\r\n name: clientKey, //publisher && publisher.stream ? publisher.stream.id : props.clientName,\r\n insertMode: \"append\",\r\n showControls: false,\r\n disableAudioProcessing: false,\r\n },\r\n function (error) {\r\n if (error) {\r\n screensharePublisher.destroy();\r\n handleError(error);\r\n } else {\r\n session.publish(screensharePublisher, function (error) {\r\n if (error) {\r\n handleError(error);\r\n } else {\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"LogPublisherStatus\", session.id, eventId, channel, clientKey, true, \"Start\");\r\n }\r\n screensharePublisher.element.style.aspectRatio=\"16/9\";\r\n toggleLayoutMode(\"screenshare\");\r\n }\r\n });\r\n }\r\n }\r\n );\r\n screensharePublisher.on(\"destroyed\", () => {\r\n onScreensharePublisherDestroyedRef.current();\r\n });\r\n // var test = document.createElement(\"span\");\r\n // test.innerText = \"screenshare\";\r\n // publisher.element.appendChild(test);\r\n // screensharePublisher.element.appendChild(test);\r\n setState({\r\n ...stateRef.current,\r\n screensharePublisher: screensharePublisher,\r\n });\r\n }\r\n function onScreensharePublisherDestroyed() {\r\n stateRef.current.screensharePublisher = null;\r\n setState({ ...stateRef.current, screensharePublisher: null });\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"LogPublisherStatus\", stateRef.current.session.id, eventId, channel, clientKey, true, \"Stop\");\r\n }\r\n let previousLayout = localStorage.getItem(\"vvcl\");\r\n toggleLayoutMode(previousLayout);\r\n }\r\n function stopScreenshare() {\r\n const { screensharePublisher } = stateRef.current;\r\n screensharePublisher.destroy();\r\n }\r\n\r\n function handleError(error) {\r\n if (error) {\r\n console.error(error);\r\n }\r\n }\r\n function handleEsc(e) {\r\n if ((e.key == \"Escape\" || e.key == \"Esc\" || e.keyCode == 27) && stateRef.current.fullscreen) {\r\n e.preventDefault();\r\n toggleFullscreen();\r\n return false;\r\n }\r\n }\r\n function toggleFullscreen(fs) {\r\n if (fs === true && stateRef.current.fullscreen == false) {\r\n setState({ ...stateRef.current, fullscreen: true });\r\n props.fullscreenRef.classList.add(\"vonage-fullscreen\");\r\n // document.getElementById(\"vonage-module-wrap\").classList.add(\"full-height\");\r\n } else if (fs !== true) {\r\n if (props.fullscreenRef) {\r\n setState({ ...stateRef.current, fullscreen: !stateRef.current.fullscreen });\r\n if (stateRef.current.fullscreen == false) {\r\n props.fullscreenRef.classList.add(\"vonage-fullscreen\");\r\n // document.getElementById(\"vonage-module-wrap\").classList.add(\"full-height\");\r\n } else {\r\n props.fullscreenRef.classList.remove(\"vonage-fullscreen\");\r\n // document.getElementById(\"vonage-module-wrap\").classList.remove(\"full-height\");\r\n }\r\n }\r\n }\r\n }\r\n function beforePageUnload() {\r\n const { publisher, screensharePublisher, session } = stateRef.current;\r\n var data = new FormData();\r\n data.set(\"SessionId\", session?.id);\r\n data.set(\"VonagePublishLogId\", 0);\r\n data.set(\"Inserted\", new Date().toISOString());\r\n data.set(\"EventId\", eventId);\r\n if (channel) {\r\n data.set(\"channel\", channel);\r\n }\r\n data.set(\"clientKey\", clientKey);\r\n data.set(\"screenshare\", false);\r\n data.set(\"message\", \"stop\");\r\n\r\n if (publisher) {\r\n navigator.sendBeacon(\"./api/meeting/vPublisherEnd\", data);\r\n }\r\n if (screensharePublisher) {\r\n data.set(\"screenshare\", true);\r\n navigator.sendBeacon(\"./api/meeting/vPublisherEnd\", data);\r\n }\r\n }\r\n\r\n const viewRef = useRef();\r\n useEffect(() => {\r\n viewRef.current.addEventListener(\"mousemove\", resetMoverEvent, { once: true });\r\n }, []);\r\n const resetMoverEvent = () => {\r\n setState({ ...stateRef.current, showControlbar: true });\r\n viewRef.current.removeEventListener(\"mousemove\", resetMoverEvent);\r\n setTimeout(() => {\r\n if (viewRef && viewRef.current) {\r\n setState({ ...stateRef.current, showControlbar: false });\r\n viewRef.current.addEventListener(\"mousemove\", resetMoverEvent, { once: true });\r\n }\r\n }, 5000);\r\n };\r\n if (showClickToJoin) {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n

\r\n setShowClickToJoin(false)}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n if (showHardwareUnavailable)\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n

\r\n window.location.reload()}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n \r\n );\r\n return (\r\n \r\n {\r\n if (r != null && stateRef.current.screenshareSpeakersRef != r) setState({ ...stateRef.current, screenshareSpeakersRef: r });\r\n }}\r\n setScreenshareScreenRef={(r) => {\r\n if (r != null && stateRef.current.screenshareScreenRef != r) setState({ ...stateRef.current, screenshareScreenRef: r });\r\n }}\r\n setScreenshareHiddenRef={(r) => {\r\n if (r != null && stateRef.current.screenshareHiddenRef != r) setState({ ...stateRef.current, screenshareHiddenRef: r });\r\n }}\r\n setFunctionsRef={(r) => {\r\n if (r != null && screenshareViewFunctions != r) setScreenshareViewFunctions(r);\r\n }}\r\n />\r\n {\r\n if (r != null && stateRef.current.focusViewStreamsRef != r) setState({ ...stateRef.current, focusViewStreamsRef: r });\r\n }}\r\n setMyStreamRef={(r) => {\r\n if (r != null && stateRef.current.myStreamRef != r) setState({ ...stateRef.current, myStreamRef: r });\r\n }}\r\n />\r\n {\r\n if (r != null && stateRef.current.spotlightViewHiddenRef != r) setState({ ...stateRef.current, spotlightViewHiddenRef: r });\r\n }}\r\n setFunctionsRef={(r) => {\r\n if (r != null && spotlightViewFunctions != r) setSpotlightViewFunctions(r);\r\n }}\r\n />\r\n {\r\n if (r != null && stateRef.current.gridViewHiddenRef != r) setState({ ...stateRef.current, gridViewHiddenRef: r });\r\n }}\r\n setFunctionsRef={(r) => {\r\n if (r != null && gridViewFunctions != r) setGridViewFunctions(r);\r\n }}\r\n />\r\n {stateRef.current.session ? (\r\n {\r\n if (props.toggleHardwareSetup && typeof props.toggleHardwareSetup == \"function\") props.toggleHardwareSetup(!showHwSetup);\r\n setShowHwSetup(!showHwSetup);\r\n }}\r\n fullscreen={stateRef.current.fullscreen}\r\n allowFullscreen={allowFullscreen}\r\n showControlbar={stateRef.current.showControlbar}\r\n isSomeoneSharingScreen={stateRef.current.screenshareStream != null}\r\n isSharingMyScreen={stateRef.current.screensharePublisher != null}\r\n toggleLayoutMode={toggleLayoutMode}\r\n changeScreenshareLayout={changeVonageScreenshareLayout}\r\n setFunctionsRef={(r) => {\r\n if (r != null && controlPanelFunctions != r) setControlPanelFunctions(r);\r\n }}\r\n />\r\n ) : null}\r\n \r\n \r\n {\r\n setHardwareSetupComplete(true);\r\n setShowHwSetup(false);\r\n\r\n if (props.toggleHardwareSetup && typeof props.toggleHardwareSetup == \"function\") props.toggleHardwareSetup(false);\r\n if (controlPanelFunctions && typeof controlPanelFunctions.current.setControlLock == \"function\") {\r\n controlPanelFunctions.current.setControlLock(true);\r\n setTimeout(() => {\r\n controlPanelFunctions.current.setControlLock(false);\r\n }, 2500);\r\n }\r\n if (state.publisher) {\r\n let newAudioDeviceId = localStorage.getItem(\"com.opentok.hardwaresetup.audio\");\r\n let newVideoDeviceId = localStorage.getItem(\"com.opentok.hardwaresetup.video\");\r\n let newVideoTrack = await getMediaTrack(newVideoDeviceId);\r\n if (newAudioDeviceId !== state.publisher.getAudioSource()?.deviceId) state.publisher.setAudioSource(newAudioDeviceId);\r\n if (newVideoTrack.id !== state.publisher.getVideoSource()?.track?.id) startPublisher(\"restart\");\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {showSpeakerDialog ? (\r\n setShowSpeakerDialog(false)}\r\n setStreamIdToMute={(id) => setState({ ...stateRef.current, streamIdToMute: id })}\r\n />\r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : undefined,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(VonageVideoClientModule);\r\n","import { lsgetItem } from \"./localStorageHelper\";\r\n\r\nexport function authHeader(headers) {\r\n // return authorization header with jwt token\r\n let user = lsgetItem('user'); /* JSON.parse(localStorage.getItem(\"user\")); */\r\n\r\n if (user && user.token) {\r\n if(user.oid === undefined)\r\n user.oid = 0;\r\n if(user.eid === undefined)\r\n user.eid = 0;\r\n if(user.userLang === undefined)\r\n user.userLang = \"swe\"\r\n return { ...headers, Authorization: \"Bearer \" + user.token.toString(), eid: user.eid, oid:user.oid, userLang: user.userLang };\r\n } else {\r\n return headers;\r\n }\r\n}\r\n\r\n\r\n","import { history } from \"./history\";\r\nimport { logException } from \"../sentry.config\";\r\n\r\nexport function handleResponse(response) {\r\n return response.text().then(text => {\r\n if (!response.ok) {\r\n switch (response.status) {\r\n case 400:\r\n /* history.push(\"/404\"); */\r\n break;\r\n case 500:\r\n const error = response.statusText;\r\n console.error('SERVER_ERR_500', error, 'RESPONSE:' + response, \"VALUE\" + text );\r\n logException(error, { response: response, text: text });\r\n \r\n break;\r\n case 404:\r\n history.push(\"/404\");\r\n break;\r\n case 401:\r\n history.push(\"/login\");\r\n break;\r\n default:\r\n break;\r\n }\r\n try {\r\n\r\n let data = text && JSON.parse(text);\r\n const error = (data && data.message) || response.statusText;\r\n return Promise.reject(error);\r\n }\r\n catch{\r\n const error = response.statusText;\r\n console.error('JX_PARSE_ERROR', error, 'RESPONSE:' + response, \"VALUE\" + text);\r\n logException(error, { response: response, text: text });\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n try {\r\n let escapedText = text.replace(/\\\\n/g, \"\\\\n\")\r\n .replace(/\\\\'/g, \"\\\\'\")\r\n .replace(/\\\\\"/g, '\\\\\"')\r\n .replace(/\\\\&/g, \"\\\\&\")\r\n .replace(/\\\\r/g, \"\\\\r\")\r\n .replace(/\\\\t/g, \"\\\\t\")\r\n .replace(/\\\\b/g, \"\\\\b\")\r\n .replace(/\\\\f/g, \"\\\\f\");\r\n /* .replace('%20', ''); */\r\n let data = escapedText && JSON.parse(escapedText);\r\n return data;\r\n }\r\n catch{\r\n const error = response.statusText;\r\n console.error('JX_PARSE_ERROR', error, 'RESPONSE:' + response, \"VALUE\" + text)\r\n logException(error, { response: response, text: text });\r\n return Promise.reject(error);\r\n }\r\n });\r\n}\r\n","import { alertConstants } from '../../constants/alert.constants';\r\n\r\nexport const alertActions = {\r\n success,\r\n error,\r\n info,\r\n clear,\r\n warning\r\n};\r\n\r\nfunction success(title, message) {\r\n return { type: alertConstants.SUCCESS, message, title };\r\n}\r\n\r\nfunction info(title, message) {\r\n return { type: alertConstants.INFO, message, title };\r\n}\r\n\r\nfunction error(title, message) {\r\n return { type: alertConstants.ERROR, message, title };\r\n}\r\n\r\n\r\nfunction warning(title, message) {\r\n return { type: alertConstants.WARNING, message, title };\r\n}\r\n\r\nfunction clear() {\r\n return { type: alertConstants.CLEAR };\r\n}","import React from \"react\";\r\nimport * as Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { generateChartColor, fold } from \"../../../../helpers/chartHelper\";\r\nimport { adjustContentHeight } from \"../../../../helpers/viewPortHelper\";\r\nimport { templateHelper } from \"../../../../cms/areas/template/helpers/templateHelper\";\r\nimport wordCloud from \"highcharts/modules/wordcloud\";\r\n\r\nwordCloud(Highcharts);\r\n\r\nHighcharts.seriesTypes.wordcloud.prototype.deriveFontSize = function (relativeWeight) {\r\n var maxFontSize = 25;\r\n var minFontSize = relativeWeight < 15 ? 15 : relativeWeight;\r\n // Will return a fontSize between 0px and 25px.\r\n return Math.floor(maxFontSize * relativeWeight);\r\n};\r\n\r\nexport const WordCloud = ({ data, questionName, categories, template, size, autoFit = false, showPrecentage = true, presentationOrder }) => {\r\n let colors = [];\r\n if (template.chart.colors) {\r\n colors = [template.chart.colors.color1, template.chart.colors.color2, template.chart.colors.color3, template.chart.colors.color4, template.chart.colors.color5];\r\n }\r\n\r\n const distinctAnswers = data.reduce((acc, text) => {\r\n const key = text.toLowerCase()?.replace(\"\\n\", \"\");\r\n if (acc[key]) {\r\n acc[key].recurrencies = acc[key].recurrencies + 1;\r\n return acc;\r\n }\r\n acc[key] = {\r\n originalText: text,\r\n recurrencies: 1,\r\n };\r\n return acc;\r\n }, {});\r\n\r\n const words = Highcharts.reduce(\r\n Object.entries(distinctAnswers),\r\n function (arr, [text, { originalText, recurrencies }]) {\r\n const scalingFactor = 90 / (Math.max(...Object.entries(distinctAnswers).map(([_, { recurrencies }]) => recurrencies)) || 1);\r\n const weight = Math.round(scalingFactor * recurrencies) + 20;\r\n return [...arr, { weight, name: originalText }];\r\n },\r\n []\r\n );\r\n const options = {\r\n chart: {\r\n backgroundColor: \"transparent\",\r\n height: window.innerHeight * 0.95,\r\n },\r\n title: {\r\n text: questionName,\r\n style: {\r\n fontSize: autoFit ? \"2vh\" : template.title.fontSize,\r\n fontFamily: template.title.fontFamily,\r\n color: template.title.color,\r\n textAlign: autoFit ? \"left\" : \"center\",\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n wordCloud: {\r\n minFontSize: 15,\r\n },\r\n },\r\n series: [\r\n {\r\n type: \"wordcloud\",\r\n data: words,\r\n wordCloud: {\r\n minFontSize: 15,\r\n },\r\n colors: colors,\r\n rotation: {\r\n from: 0,\r\n to: 0,\r\n orientations: 5,\r\n },\r\n },\r\n ],\r\n };\r\n return (\r\n
\r\n ;\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { fold } from \"../../../../helpers/chartHelper\";\r\nimport { adjustContentHeight } from \"../../../../helpers/viewPortHelper\";\r\n\r\nexport const BarChart = ({ data, size, autoFit = false, questionName, categories, template, showPercent = false, showCount = false, presentationOrder }) => {\r\n let dataArr = [];\r\n let colors = [];\r\n if (template.chart.colors) {\r\n colors = [template.chart.colors.color1, template.chart.colors.color2, template.chart.colors.color3, template.chart.colors.color4, template.chart.colors.color5];\r\n }\r\n let colorI = 0;\r\n let totalCount = 0;\r\n for (const a of data) {\r\n totalCount += 1 * a.weight;\r\n }\r\n categories.map((d) => {\r\n let count = 0;\r\n for (const a of data.filter((c) => c.answer === d)) {\r\n count += 1 * a.weight;\r\n }\r\n if (colorI == 4) colorI = 0;\r\n else colorI++;\r\n if (!dataArr.find((da) => da.name === d && (d !== null || d !== \"\"))) {\r\n dataArr.push({\r\n name: d,\r\n y: showPercent ? (count / totalCount) * 100 : count,\r\n percentage: `${(count / totalCount) * 100}`,\r\n count:`${count}`,\r\n color: colors[colorI],\r\n sliced: true,\r\n });\r\n }\r\n });\r\n\r\n if (presentationOrder == \"VOTES\") {\r\n dataArr.sort((a, b) => {\r\n return b.y - a.y;\r\n });\r\n }\r\n\r\n let w = window.innerWidth * (parseInt(template.content.maxWidth) / 100);\r\n let h = adjustContentHeight(window.innerHeight, template.content, template.header, template.footer);\r\n questionName = questionName.length > 50 ? fold(questionName, 50, true).join(\"
\") : questionName;\r\n const options = {\r\n chart: {\r\n backgroundColor: \"transparent\",\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n plotBackgroundColor: \"transparent\",\r\n type: \"bar\",\r\n height: autoFit && size ? size.height * 0.9 : h,\r\n width: autoFit && size ? size.width * 0.9 : w * 0.9,\r\n },\r\n title: {\r\n text: questionName,\r\n style: {\r\n fontSize: autoFit ? \"2vh\" : template.title.fontSize,\r\n fontFamily: template.title.fontFamily,\r\n color: template.title.color,\r\n textAlign: autoFit ? \"left\" : \"center\",\r\n },\r\n },\r\n legend: {\r\n enabled: false,\r\n title: {\r\n text: null,\r\n },\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: showPercent ? 100 : null,\r\n allowDecimals: false,\r\n title: {\r\n text: null,\r\n },\r\n labels: {\r\n style: {\r\n fontSize: autoFit ? \"1.5vh\" : template.label.fontSize,\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color,\r\n },\r\n },\r\n },\r\n xAxis: {\r\n categories: dataArr.map((d) => {\r\n return d.name;\r\n }),\r\n allowDecimals: false,\r\n title: {\r\n text: null,\r\n },\r\n labels: {\r\n style: {\r\n fontSize: autoFit ? \"1.5vh\" : template.label.fontSize,\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color,\r\n },\r\n formatter: function () {\r\n var ret = this.value,\r\n len = ret.length;\r\n let str = ret;\r\n if (len > 40) {\r\n for (let index = Math.round(len / 2); index < len; index++) {\r\n if (ret[index] == \" \") {\r\n return ret.slice(0, index) + \"
\" + ret.slice(index + 1);\r\n }\r\n }\r\n }\r\n return str;\r\n },\r\n },\r\n },\r\n tooltip: {\r\n /* pointFormat: \"
{point.percentage:.1f} %\", */\r\n formatter: function () {\r\n return \"\" + this.point.name + \": \" + this.point.y.toFixed(2) + (showPercent ? \"%\" : \"\");\r\n },\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: \"normal\",\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n series: [\r\n {\r\n dataLabels: {\r\n style: {\r\n fontSize: autoFit ? \"1.3vh\" : \"1.3rem\",\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color,\r\n backgroundColor: \"red\",\r\n },\r\n enabled: true,\r\n formatter: function () {\r\n var pcnt = (this.y / dataArr.map((p) => p.y).reduce((a, b) => a + b, 0)) * 100;\r\n if(showPercent && showCount) return `${Math.round(pcnt)}% (${this.point.count})`\r\n else if(showPercent && !showCount) return `${Math.round(pcnt)}%`\r\n else if(!showPercent && showCount) return `${this.point.count}`\r\n else return \"\"\r\n },\r\n },\r\n colorByPoint: true,\r\n data: dataArr.map((a, b) => {\r\n return a;\r\n }),\r\n showInLegend: false,\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { adjustContentHeight } from \"../../../../helpers/viewPortHelper\";\r\nimport { fold } from \"../../../../helpers/chartHelper\";\r\n\r\nexport const PieChart = ({ data, size, autoFit = false, questionName, showPercent =false, showCount = false, template, categories /* presentationOrder */ }) => {\r\n let dataArr = [];\r\n let colors = [];\r\n if (template.chart.colors) {\r\n colors = [template.chart.colors.color1, template.chart.colors.color2, template.chart.colors.color3, template.chart.colors.color4, template.chart.colors.color5];\r\n }\r\n let colorI = 0;\r\n let totalCount = 0;\r\n for (const a of data) {\r\n totalCount += 1 * (a.weight || 1);\r\n }\r\n categories.map((d) => {\r\n let count = 0;\r\n for (const a of data.filter((c) => c.answer === d)) {\r\n count += 1 * a.weight;\r\n }\r\n if (colorI == 4) colorI = 0;\r\n else colorI++;\r\n if (!dataArr.find((da) => da.name === d && (d !== null || d !== \"\"))) {\r\n dataArr.push({\r\n name: d,\r\n y: count,\r\n percentage: `${(count / totalCount) * 100}`,\r\n count:`${count}`,\r\n color: colors[colorI],\r\n sliced: true,\r\n });\r\n }\r\n });\r\n let w = window.innerWidth * (parseInt(template.content.maxWidth) / 100);\r\n let h = adjustContentHeight(window.innerHeight, template.content, template.header, template.footer);\r\n /* if (presentationOrder == \"VOTES\") {\r\n dataArr.sort((a, b) => {\r\n return b.y - a.y;\r\n });\r\n } */\r\n questionName = questionName.length > 50 ? fold(questionName, 50, true).join(\"
\") : questionName;\r\n const options = {\r\n chart: {\r\n backgroundColor: \"transparent\",\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n plotBackgroundColor: \"transparent\",\r\n type: \"pie\",\r\n height: autoFit && size ? size.height * 0.9 : h,\r\n width: autoFit && size ? size.width * 0.9 : w,\r\n },\r\n title: {\r\n text: questionName,\r\n style: {\r\n fontSize: autoFit ? \"2vh\" : template.title.fontSize,\r\n fontFamily: template.title.fontFamily,\r\n color: template.title.color,\r\n textAlign: autoFit ? \"left\" : \"center\",\r\n },\r\n },\r\n tooltip: {\r\n pointFormat: \"
{point.percentage:.1f} %
{point.y}\",\r\n },\r\n plotOptions: {\r\n pie: {\r\n animation: 2000,\r\n dataLabels: {\r\n enabled: true,\r\n formatter: function () {\r\n var pcnt = (this.y / dataArr.map((p) => p.y).reduce((a, b) => a + b, 0)) * 100;\r\n if(showPercent && showCount) return `${this.point.name} ${Math.round(pcnt)}% (${this.point.count})`\r\n else if(showPercent && !showCount) return `${this.point.name} ${Math.round(pcnt)}%`\r\n else if(!showPercent && showCount) return `${this.point.name} ${this.point.count}`\r\n else return `${this.point.name}`\r\n },\r\n // format: \"{point.name} {point.percentage:.1f}% \",\r\n },\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n series: [\r\n {\r\n dataLabels: {\r\n style: {\r\n fontSize: autoFit ? \"1.3vh\" : template.label.fontSize,\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color,\r\n },\r\n },\r\n colorByPoint: true,\r\n data: dataArr,\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"./TextFlow.css\";\r\nimport { adjustContentHeight } from \"../../../../helpers/viewPortHelper\";\r\n\r\nexport class TextFlow extends React.Component {\r\n \r\n componentDidMount() {\r\n this.handleScroll();\r\n }\r\n componentDidUpdate(prevProps) {\r\n if (this.props.data !== undefined && prevProps.data !== this.props.data) {\r\n this.handleScroll();\r\n }\r\n }\r\n handleScroll = () => {\r\n if (this.props.data.length > 1) this.refs[this.props.data.length - 1].scrollIntoView({ block: \"end\", behavior: \"smooth\" });\r\n };\r\n drawData = () => {\r\n const { data } = this.props;\r\n if (data.length < 1) return [];\r\n return data;\r\n };\r\n render() {\r\n const { data, questionName, showLabel = true, template, isModule, showNames } = this.props;\r\n let h = adjustContentHeight(window.innerHeight, template.content, template.header, template.footer);\r\n return (\r\n
\r\n {showLabel ?\r\n

this.labelRef = r} style={{ ...template.title, padding: \"15px\", textAlign: \"center\" }}>{questionName}

\r\n :null}\r\n
\r\n {this.drawData().map((c, i) => {\r\n return (\r\n \r\n
\r\n {showNames ? {c.name} : null}\r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { fold } from \"../../../../helpers/chartHelper\";\r\nimport { adjustContentHeight } from \"../../../../helpers/viewPortHelper\";\r\n\r\nexport const ColumnChart = ({ data, questionName, categories, template, size = null, showPercent = false, showCount=false, autoFit = false, presentationOrder }) => {\r\n let dataArr = [];\r\n let colors = [];\r\n if (template.chart.colors) {\r\n colors = [template.chart.colors.color1, template.chart.colors.color2, template.chart.colors.color3, template.chart.colors.color4, template.chart.colors.color5];\r\n }\r\n let totalCount = 0;\r\n for (const a of data) {\r\n totalCount += 1 * a.weight;\r\n }\r\n let colorI = 0;\r\n categories.map((d) => {\r\n \r\n let count = 0;\r\n for (const a of data.filter((c) => c.answer === d)) {\r\n count += 1 * a.weight;\r\n }\r\n // let count = data.filter((c) => {\r\n // return c.answer === d;\r\n // }).length;\r\n if (colorI == 4) colorI = 0;\r\n else colorI++;\r\n if (!dataArr.find((da) => da.name === d && (d !== null || d !== \"\"))) {\r\n dataArr.push({\r\n name: d,\r\n y: showPercent ? (count / totalCount) * 100 : count,\r\n percentage: `${(count / totalCount) * 100}`,\r\n count:`${count}`,\r\n color: colors[colorI],\r\n sliced: true,\r\n });\r\n }\r\n });\r\n if (presentationOrder == \"VOTES\") {\r\n dataArr.sort((a, b) => {\r\n return b.y - a.y;\r\n });\r\n }\r\n\r\n let w = window.innerWidth * (parseInt(template.content.maxWidth) / 100);\r\n let h = adjustContentHeight(window.innerHeight, template.content, template.header, template.footer);\r\n\r\n questionName = questionName.length > 50 ? fold(questionName, 50, true).join(\"
\") : questionName;\r\n const options = {\r\n chart: {\r\n backgroundColor: \"transparent\",\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n\r\n plotBackgroundColor: \"transparent\",\r\n type: \"column\",\r\n height: autoFit && size ? size.height * 0.9 : h,\r\n width: autoFit && size ? size.width * 0.9 : w * 0.9,\r\n },\r\n title: {\r\n text: questionName,\r\n style: {\r\n fontSize: autoFit ? \"2vh\" : template.title.fontSize,\r\n fontFamily: template.title.fontFamily,\r\n color: template.title.color,\r\n textAlign: autoFit ? \"left\" : \"center\",\r\n },\r\n },\r\n yAxis: {\r\n min: 0,\r\n max: showPercent ? 100 : null,\r\n title: {\r\n text: null,\r\n },\r\n allowDecimals: false,\r\n labels: {\r\n style: {\r\n fontSize: autoFit ? \"1.5vh\" : template.label.fontSize,\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color,\r\n },\r\n },\r\n },\r\n xAxis: {\r\n categories: dataArr.map((d) => {\r\n return d.name;\r\n }),\r\n allowDecimals: false,\r\n title: {\r\n text: null,\r\n },\r\n labels: {\r\n style: {\r\n fontSize: autoFit ? \"1.5vh\" : template.label.fontSize,\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color,\r\n },\r\n formatter: function () {\r\n var ret = this.value,\r\n len = ret.length;\r\n\r\n let maxL = 11;\r\n const words = ret.split(\" \");\r\n var str = \"\";\r\n for (let index = 0; index < words.length; index++) {\r\n const w = words[index];\r\n if (w.length + 1 >= maxL) {\r\n //br på index¨\r\n let i = w.length - maxL;\r\n if (w.length > 13 && w.length < 15) {\r\n str += w.slice(0, i) + \"-
\" + w.slice(i, w.length);\r\n }\r\n if (w.length > 15 && w.length < 23) {\r\n str += w.slice(0, maxL) + \"-
\" + w.slice(i, w.length);\r\n }\r\n if (w.length > 23 && w.length < 30) {\r\n str += w.slice(0, maxL) + \"-
\" + w.slice(i, w.length);\r\n str += w.slice(0, 23) + \"-
\" + w.slice(i, w.length);\r\n }\r\n } else if (index > 0 && w.length + words[index - 1].length + 2 > maxL) {\r\n str += \"
\" + w + \" \";\r\n } else {\r\n str += w + \" \";\r\n }\r\n }\r\n\r\n return ret;\r\n },\r\n },\r\n },\r\n tooltip: {\r\n pointFormat: \"
{point.percentage:.1f} %\",\r\n },\r\n plotOptions: {\r\n column: {\r\n pointPadding: 0.2,\r\n borderWidth: 0,\r\n /* colors: [generateChartColor(template.chart.colors)] */\r\n },\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n series: [\r\n {\r\n dataLabels: {\r\n style: {\r\n fontSize: autoFit ? \"1.3vh\" : \"1.3rem\",\r\n fontFamily: template.label.fontFamily,\r\n color: template.label.color,\r\n },\r\n enabled: true,\r\n formatter: function () {\r\n var pcnt = (this.y / dataArr.map((p) => p.y).reduce((a, b) => a + b, 0)) * 100;\r\n if(showPercent && showCount) return `${Math.round(pcnt)}% (${this.point.count})`\r\n else if(showPercent && !showCount) return `${Math.round(pcnt)}%`\r\n else if(!showPercent && showCount) return `${this.point.count}`\r\n else return \"\"\r\n },\r\n },\r\n colorByPoint: true,\r\n data: dataArr.map((a) => {\r\n return a;\r\n }),\r\n showInLegend: false,\r\n },\r\n ],\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport SystemLabel from '../../../../system/SystemLabel/SystemLabel';\r\nimport { Col } from 'reactstrap';\r\n\r\n\r\nexport function DisparityChart(props) {\r\n const { clientResponses, importedAttendees, size, autoFit= false, template, question, questionName, presentParticipants = [] } = props;\r\n let importedAttendeesFiltered = Array.from(importedAttendees);\r\n if (question.personType && question.personType > 0) {\r\n importedAttendeesFiltered = importedAttendeesFiltered.filter(a => {\r\n let pTypes = a.personTypes.map(pt => { return pt });\r\n return !pTypes.includes(question.personType);\r\n })\r\n }\r\n\r\n const answered = importedAttendeesFiltered.filter(a => {\r\n return props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n }).length\r\n\r\n const notAnsweredButPresent = presentParticipants.filter(a => {\r\n return !props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n }).length\r\n const notAnswered = importedAttendeesFiltered.filter(a => {\r\n return !props.clientResponses.map(c => { return c.clientKey }).includes(a.badgeNo)\r\n }).length\r\n if (question.type !== 'Option') return null;\r\n return (\r\n
\r\n
\r\n\r\n \r\n
\r\n {questionName}\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {question.questionOption.map((qo, i) => {\r\n return
\r\n \r\n {qo.questionOptionLanguage.find(\r\n ql => ql.languageCode == 'swe'\r\n ).label}\r\n \r\n \r\n
\r\n })}\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n {answered}\r\n \r\n \r\n \r\n \r\n \r\n {presentParticipants.length > 0 && answered > 0 ? Math.round((answered / presentParticipants.length) * 100) + '%' : '0%'}\r\n \r\n \r\n {importedAttendeesFiltered.length > 0 && answered > 0 ? Math.round((answered / importedAttendeesFiltered.length) * 100) + '%' : '0%'}\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {notAnswered}\r\n \r\n \r\n \r\n \r\n \r\n {presentParticipants.length > 0 && notAnsweredButPresent > 0 ? Math.round((notAnsweredButPresent / presentParticipants.length) * 100) + '%' : ''}\r\n \r\n \r\n {importedAttendeesFiltered.length > 0 && notAnswered > 0 ? Math.round((notAnswered / importedAttendeesFiltered.length) * 100) + '%' : ''}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {importedAttendeesFiltered.length}\r\n \r\n \r\n \r\n \r\n \r\n {presentParticipants.length}\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nfunction ClientResponseCount({ clientResponses, questionOption, style, importedAttendees, presentParticipants, autoFit }) {\r\n const responses = clientResponses.filter(cr => cr.answer == questionOption.questionOptionId.toString()).length;\r\n var badgeNoList = [];\r\n importedAttendees.map(ia => {\r\n badgeNoList.push(ia.badgeNo);\r\n })\r\n const answerPersons = [];\r\n clientResponses.filter(cr => cr.answer == questionOption.questionOptionId.toString() && badgeNoList.includes(cr.clientKey)).map(cr => {\r\n if (!answerPersons.includes(cr.clientKey)) {\r\n answerPersons.push(cr.clientKey);\r\n }\r\n });\r\n \r\n\r\n // {importedAttendees.length > 0 && answered > 0 ? Math.round((answered / importedAttendees.length) * 100) + '%' : '0%'}\r\n return \r\n \r\n {responses}\r\n \r\n \r\n {responses > 0 && clientResponses.length > 0 ? Math.round(responses / clientResponses.length * 100) + '%' : '0%'}\r\n \r\n \r\n {answerPersons.length > 0 && presentParticipants.length > 0 ? Math.round(answerPersons.length / presentParticipants.length * 100) + '%' : '0%'}\r\n \r\n \r\n {answerPersons.length > 0 && importedAttendees.length > 0 ? Math.round(answerPersons.length / importedAttendees.length * 100) + '%' : '0%'}\r\n \r\n \r\n}\r\n","export const systemLabelConstants = {\r\n GET_SYSTEM_LABEL_REQUEST: 'GET_SYSTEM_LABEL_REQUEST',\r\n GET_SYSTEM_LABEL_SUCCESS: 'GET_SYSTEM_LABEL_SUCCESS',\r\n GET_SYSTEM_LABEL_FAILURE: 'GET_SYSTEM_LABEL_FAILURE',\r\n\r\n GET_SYSTEM_LABEL_GROUP_REQUEST: 'GET_SYSTEM_LABEL_GROUP_REQUEST',\r\n GET_SYSTEM_LABEL_GROUP_SUCCESS: 'GET_SYSTEM_LABEL_GROUP_SUCCESS',\r\n GET_SYSTEM_LABEL_GROUP_FAILURE: 'GET_SYSTEM_LABEL_GROUP_FAILURE',\r\n\r\n GET_ALL_SYSTEM_LABEL_GROUP_REQUEST: 'GET_ALL_SYSTEM_LABEL_GROUP_REQUEST',\r\n GET_ALL_SYSTEM_LABEL_GROUP_SUCCESS: 'GET_ALL_SYSTEM_LABEL_GROUP_SUCCESS',\r\n GET_ALL_SYSTEM_LABEL_GROUP_FAILURE: 'GET_ALL_SYSTEM_LABEL_GROUP_FAILURE',\r\n\r\n GET_SYSTEM_LABEL_DATA_REQUEST: 'GET_SYSTEM_LABEL_DATA_REQUEST',\r\n GET_SYSTEM_LABEL_DATA_SUCCESS: 'GET_SYSTEM_LABEL_DATA_SUCCESS',\r\n GET_SYSTEM_LABEL_DATA_FAILURE: 'GET_SYSTEM_LABEL_DATA_FAILURE',\r\n\r\n GET_ALL_LABEL_GROUPS_REQUEST: 'GET_ALL_LABEL_GROUPS_REQUEST',\r\n GET_ALL_LABEL_GROUPS_SUCCESS: 'GET_ALL_LABEL_GROUPS_SUCCESS',\r\n GET_ALL_LABEL_GROUPS_FAILURE: 'GET_ALL_LABEL_GROUPS_FAILURE',\r\n \r\n UPDATE_SYSTEM_LABEL_REQUEST: 'UPDATE_SYSTEM_LABEL_REQUEST',\r\n UPDATE_SYSTEM_LABEL_SUCCESS: 'UPDATE_SYSTEM_LABEL_SUCCESS',\r\n UPDATE_SYSTEM_LABEL_FAILURE: 'UPDATE_SYSTEM_LABEL_FAILURE',\r\n\r\n UPDATE_RANGE_SYSTEM_LABEL_REQUEST: 'UPDATE_RANGE_SYSTEM_LABEL_REQUEST',\r\n UPDATE_RANGE_SYSTEM_LABEL_SUCCESS: 'UPDATE_RANGE_SYSTEM_LABEL_SUCCESS',\r\n UPDATE_RANGE_SYSTEM_LABEL_FAILURE: 'UPDATE_RANGE_SYSTEM_LABEL_FAILURE',\r\n\r\n CREATE_SYSTEM_LABEL_REQUEST: 'CREATE_SYSTEM_LABEL_REQUEST',\r\n CREATE_SYSTEM_LABEL_SUCCESS: 'CREATE_SYSTEM_LABEL_SUCCESS',\r\n CREATE_SYSTEM_LABEL_FAILURE: 'CREATE_SYSTEM_LABEL_FAILURE',\r\n\r\n CREATE_LAYOUT_LABEL_REQUEST: 'CREATE_LAYOUT_LABEL_REQUEST',\r\n CREATE_LAYOUT_LABEL_SUCCESS: 'CREATE_LAYOUT_LABEL_SUCCESS',\r\n CREATE_LAYOUT_LABEL_FAILURE: 'CREATE_LAYOUT_LABEL_FAILURE',\r\n\r\n GET_LAYOUT_LABEL_GROUP_REQUEST: 'GET_LAYOUT_LABEL_GROUP_REQUEST',\r\n GET_LAYOUT_LABEL_GROUP_SUCCESS: 'GET_LAYOUT_LABEL_GROUP_SUCCESS',\r\n GET_LAYOUT_LABEL_GROUP_FAILURE: 'GET_LAYOUT_LABEL_GROUP_FAILURE',\r\n //and so on\r\n};","const routes = [\r\n { path: \"/session/client/:id\", labelGroup: \"Interaction.Client\" },\r\n { path: \"/session/moderator/:id\", labelGroup: \"Interaction.Moderator\" },\r\n { path: \"/presenter/:id\", labelGroup: \"Interaction.Presenter\" },\r\n { path: \"/session/stage/:id\", labelGroup: \"Interaction.Stage\" },\r\n { path: \"/digitalarena/:id\", labelGroup: \"Interaction.Client\" },\r\n { path: \"/exhibitor/:id\", labelGroup: \"Exhibitor.Moderator\" },\r\n { path: \"/exhibitor2/:id\", labelGroup: \"Exhibitor.Moderator\" },\r\n { path: \"/booth/:id\", labelGroup: \"Exhibitor.Client\" },\r\n { path: \"/session/chatmoderator/:id\", labelGroup: \"Interaction.ChatModerator\" },\r\n { path: \"/editor/:id\", labelGroup: \"Interaction.Editor\" },\r\n { path: \"/backstage/:id\", labelGroup: \"Interaction.Backstage\" },\r\n { path: \"/channels/:id\", labelGroup: \"Interaction.ChannelList\" },\r\n];\r\nexport default routes;\r\n","import React from \"react\";\r\nimport PictureDisplay from \"../../components/PictureDisplay\"\r\n\r\nexport const ImageModule = (props) => {\r\n const {\r\n url,\r\n opacity,\r\n backgroundColor,\r\n ratio,\r\n linkEnabled,\r\n link,\r\n srcset\r\n } = props.settings;\r\n\r\n const defaultImage = \"https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Untersberg_Mountain_Salzburg_Austria_Landscape_Photography_%28256594075%29.jpeg/1280px-Untersberg_Mountain_Salzburg_Austria_Landscape_Photography_%28256594075%29.jpeg\";\r\n\r\n const imageStyle = { \r\n height: \"auto\",\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n opacity\r\n };\r\n\r\n if (ratio == \"LOCK\") {\r\n return (\r\n <>\r\n {\r\n if (linkEnabled == true && link) {\r\n window.open(link, \"_blank\");\r\n }\r\n }}\r\n >\r\n {url ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n {\r\n if (linkEnabled == true && link) {\r\n window.open(link, \"_blank\");\r\n }\r\n }}\r\n >\r\n \r\n \r\n );\r\n};","\r\nexport const getKey = (searchString, searchParams) => {\r\n for (var key of searchParams.keys()) {\r\n if(searchString.toLowerCase() === key.toLowerCase()){\r\n return key;\r\n }\r\n }\r\n return searchString;\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { IconButton } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport Axios from \"axios\";\r\nimport \"./ZoomStyle.css\";\r\nimport FullscreenIcon from \"@material-ui/icons/Fullscreen\";\r\nimport FullscreenExitIcon from \"@material-ui/icons/FullscreenExit\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport ZoomLogo from \"./zoomLogo.svg\";\r\nimport { isUsingChrome } from \"../../../helpers/browser.helper\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport { ResizeObserver } from \"@juggle/resize-observer\";\r\nfunction usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}\r\n\r\nfunction ZoomModule(props) {\r\n const [resizeObserver, setResizeObserver] = useState(null);\r\n const [isFullscreen, toggleScreenSize] = useState(false);\r\n const [browserAllowed, setBrowser] = useState(false);\r\n const { settings, eventId, enableZoomScreenShare, clientName, preview, template } = props;\r\n const { meetingId, active } = settings;\r\n const isFullscreenRef = useRef();\r\n const prevProps = usePrevious(props);\r\n isFullscreenRef.current = isFullscreen;\r\n const toggleFullscreen = () => {\r\n toggleScreenSize(!isFullscreen);\r\n setTimeout(() => sharingConfig(), 1500);\r\n };\r\n\r\n useEffect(() => {\r\n if (!preview) {\r\n if (meetingId && prevProps && prevProps.settings && meetingId !== prevProps.settings.meetingId) {\r\n initZoom();\r\n }\r\n if (active !== undefined && prevProps && prevProps.settings && prevProps.settings.active === true && active === false) {\r\n if (window.ZoomMtg) {\r\n window.ZoomMtg.leaveMeeting({});\r\n }\r\n }\r\n if (active && prevProps && prevProps.settings && prevProps.settings.active === false && active === true) {\r\n initZoom();\r\n }\r\n }\r\n }, [active, meetingId]);\r\n\r\n useEffect(() => {\r\n if (!preview) {\r\n const { active } = settings;\r\n if (!window.ZoomMtg) {\r\n addReact();\r\n } else if (active) {\r\n initZoom();\r\n }\r\n init(eventId, \"DigitalMeeting.Zoom\", \"swe\");\r\n window.addEventListener(\"beforeunload\", function () {\r\n if (window.ZoomMtg) {\r\n try {\r\n window.ZoomMtg.leaveMeeting({});\r\n } catch (error) {\r\n console.error(\"Could not leave meeting\");\r\n }\r\n }\r\n });\r\n }\r\n setBrowser(isUsingChrome());\r\n return () => {\r\n if (window.ZoomMtg) {\r\n try {\r\n window.ZoomMtg.leaveMeeting({});\r\n } catch (error) {\r\n console.error(\"Could not leave meeting\");\r\n }\r\n }\r\n };\r\n }, []);\r\n\r\n const initZoom = (e) => {\r\n const { settings } = props;\r\n const { meetingId, password, active } = settings;\r\n if (!window.ZoomMtg || !active) return;\r\n if (!meetingId) return;\r\n\r\n window.ZoomMtg.setZoomJSLib(\"https://source.zoom.us/1.8.6/lib\", \"/av\");\r\n window.ZoomMtg.preLoadWasm();\r\n window.ZoomMtg.prepareJssdk();\r\n\r\n Axios.get(`./api/meeting/zoomjoin/${eventId}?meetingNumber=${meetingId}&role=0`)\r\n .then((res) => {\r\n if (res.data.signature !== \"\") {\r\n window.ZoomMtg.init({\r\n leaveUrl: res.data.leaveUrl || window.location.href,\r\n isSupportAV: true,\r\n videoHeader: false,\r\n disableInvite: false,\r\n isSupportChat: false,\r\n /* sharingMode: 'fit', */\r\n isSupportQA: false,\r\n isShowJoiningErrorDialog: false,\r\n screenShare: true,\r\n videoDrag: false,\r\n showMeetingHeader: false,\r\n success: () => {\r\n window.ZoomMtg.join({\r\n signature: res.data.signature,\r\n meetingNumber: meetingId,\r\n userName: clientName || \"Guest\",\r\n apiKey: res.data.apiKey,\r\n userEmail: \"noreply@jirango.com\",\r\n passWord: password,\r\n success: (success) => {\r\n var zoomFrame = document.getElementById(\"zoomFrame\");\r\n var zmmtgRoot = document.getElementById(\"zmmtg-root\");\r\n if (zoomFrame) {\r\n zoomFrame.append(zmmtgRoot);\r\n zmmtgRoot.style.display = \"block\";\r\n }\r\n screenLoaded();\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n },\r\n });\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n },\r\n });\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n\r\n const addReact = () => {\r\n var reactScript = document.createElement(\"script\");\r\n reactScript.src = \"https://source.zoom.us/1.8.6/lib/vendor/react.min.js\";\r\n document.head.appendChild(reactScript);\r\n reactScript.onload = (e) => addReactDom();\r\n };\r\n const addReactDom = () => {\r\n var reactDomScript = document.createElement(\"script\");\r\n reactDomScript.src = \"https://source.zoom.us/1.8.6/lib/vendor/react-dom.min.js\";\r\n document.head.appendChild(reactDomScript);\r\n reactDomScript.onload = (e) => addRedux();\r\n };\r\n const addRedux = () => {\r\n var redux = document.createElement(\"script\");\r\n redux.src = \"https://source.zoom.us/1.8.6/lib/vendor/redux.min.js\";\r\n document.head.appendChild(redux);\r\n redux.onload = (e) => addReduxThunk();\r\n };\r\n const addReduxThunk = () => {\r\n var reduxThunk = document.createElement(\"script\");\r\n reduxThunk.src = \"https://source.zoom.us/1.8.6/lib/vendor/redux-thunk.min.js\";\r\n document.head.appendChild(reduxThunk);\r\n reduxThunk.onload = (e) => addJquery();\r\n };\r\n const addJquery = (response) => {\r\n var jqueryScript = document.createElement(\"script\");\r\n jqueryScript.src = \"https://source.zoom.us/1.8.3/lib/vendor/jquery.min.js\";\r\n document.head.appendChild(jqueryScript);\r\n jqueryScript.onload = (e) => addLodash();\r\n };\r\n const addLodash = (response) => {\r\n var lodashScript = document.createElement(\"script\");\r\n lodashScript.src = \"https://source.zoom.us/1.8.6/lib/vendor/lodash.min.js\";\r\n document.head.appendChild(lodashScript);\r\n lodashScript.onload = (e) => addZoom();\r\n };\r\n const addZoom = (response) => {\r\n var zoomScript = document.createElement(\"script\");\r\n zoomScript.src = \"https://source.zoom.us/zoom-meeting-1.8.6.min.js\";\r\n document.head.appendChild(zoomScript);\r\n zoomScript.onload = (e) => initZoom(e);\r\n };\r\n const sharingConfig = () => {\r\n let sharingCanvas = document.querySelector(\".sharee-container__canvas\");\r\n let canvas = null;\r\n\r\n const { posY, posX, height, width } = props;\r\n let zh = parseFloat(height);\r\n let zw = parseFloat(width);\r\n let x = parseFloat(posX);\r\n let y = parseFloat(posY);\r\n\r\n if (!sharingCanvas /* && !videoCanvas */) {\r\n return;\r\n }\r\n canvas = sharingCanvas;\r\n\r\n let h = window.innerHeight;\r\n let w = window.innerWidth;\r\n\r\n if (isFullscreenRef.current) {\r\n h -= 52;\r\n w = h * 1.777;\r\n let mLeft = (window.innerWidth - w) / 2;\r\n canvas.style.height = h + \"px\";\r\n canvas.style.width = w + \"px\";\r\n canvas.style.maxWidth = w + \"px\";\r\n canvas.style.left = mLeft + \"px\";\r\n canvas.style.marginLeft = \"0px\";\r\n } else {\r\n h = h * (zh / 100);\r\n h -= 52;\r\n w = h * 1.777;\r\n let mLeft = window.innerWidth * (x / 100);\r\n\r\n if (w < window.innerWidth * (zw / 100)) {\r\n let rest = window.innerWidth * (zw / 100) - w;\r\n mLeft = rest;\r\n }\r\n if (window.innerWidth < 1400) {\r\n mLeft = 0;\r\n }\r\n\r\n canvas.style.height = h + \"px\";\r\n canvas.style.width = w + \"px\";\r\n canvas.style.maxWidth = w + \"px\";\r\n canvas.style.left = mLeft / 2 + \"px\";\r\n canvas.style.marginLeft = \"0px\";\r\n }\r\n canvas.style.zoom = 0;\r\n suspensionWindow();\r\n };\r\n const suspensionWindowOnUpdate = () => {\r\n const bFrame = document.getElementsByClassName(\"suspension-img-wrapper\")[1];\r\n let status = -1;\r\n if (bFrame && bFrame.style.zIndex == 0) {\r\n status = 0;\r\n } else if (bFrame && bFrame.style.zIndex == -1) {\r\n status = 1;\r\n }\r\n let suspensionWindows = document.getElementsByClassName(\"suspension-window\");\r\n if (suspensionWindows.length > 0) {\r\n for (let index = 0; index < suspensionWindows.length; index++) {\r\n if (status === 1) {\r\n suspensionWindows[index].style.opacity = 0;\r\n }\r\n if (status === 0) {\r\n suspensionWindows[index].style.opacity = 1;\r\n }\r\n }\r\n }\r\n };\r\n const screenLoaded = () => {\r\n let videoBtn = document.getElementsByClassName(\"join-audio\")[1];\r\n if (videoBtn) {\r\n videoBtn.addEventListener(\"click\", suspensionWindowOnUpdate);\r\n }\r\n setInterval(() => sharingConfig(), 3000);\r\n suspensionWindow();\r\n };\r\n const suspensionWindow = () => {\r\n const { posY, posX, height, width } = props;\r\n\r\n let zh = parseFloat(height);\r\n let zw = parseFloat(width);\r\n let x = parseFloat(posX);\r\n let y = parseFloat(posY);\r\n\r\n if (isFullscreenRef.current) {\r\n zh = 100;\r\n zw = 100;\r\n }\r\n\r\n let h = window.innerHeight;\r\n let w = window.innerWidth;\r\n let videoHeight = h * (zh / 100) * 0.2;\r\n\r\n w = videoHeight * 1.777;\r\n\r\n let cornerRight = 20;\r\n let cornerTop = 20;\r\n\r\n const videoCanvas = document.querySelector(\".active-video-container__wrap\");\r\n\r\n if (!isFullscreenRef.current) {\r\n cornerRight = window.innerWidth * (zw / 100) + window.innerWidth * (x / 100) - window.innerWidth - 20;\r\n cornerTop = window.innerHeight * (y / 100) + 20;\r\n }\r\n if (videoCanvas) {\r\n videoCanvas.style.width = (h * (zh / 100) - 54) * 1.777 + \"px\";\r\n }\r\n var suspW = document.getElementsByClassName(\"suspension-window-container\");\r\n if (suspW.length == 0) setTimeout(() => this.suspensionWindow(), 10000);\r\n for (let index = 0; index < suspW.length; index++) {\r\n suspW[index].style.width = w + \"px\";\r\n suspW[index].style.height = videoHeight + \"px\";\r\n suspW[index].style.right = Math.abs(cornerRight) + \"px\";\r\n suspW[index].style.top = Math.abs(cornerTop) + \"px\";\r\n }\r\n const hardToFindDiv = document.querySelector(\".meeting-app\");\r\n if (hardToFindDiv.children && hardToFindDiv.children.length > 0) {\r\n if (hardToFindDiv.children[2] && hardToFindDiv.children[2].nodeName == \"DIV\") {\r\n // hardToFindDiv.children[2].style.height = zh + \"vh\";\r\n hardToFindDiv.children[2].style.height = hardToFindDiv.clientHeight + \"px\";\r\n const resizeTarget = hardToFindDiv.children[2];\r\n if(!resizeObserver){\r\n const ro = new ResizeObserver((entries, observer) => {\r\n entries.forEach((e, index) => {\r\n resizeTarget.style.height = e.target.clientHeight + \"px\";\r\n });\r\n });\r\n ro.observe(hardToFindDiv);\r\n setResizeObserver(ro);\r\n }\r\n }\r\n }\r\n };\r\n\r\n if (preview) return ;\r\n\r\n return (\r\n \r\n {active ?
: null}\r\n {!active ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n {active ? (\r\n
\r\n {!isFullscreen ? (\r\n toggleFullscreen()}>\r\n \r\n \r\n ) : (\r\n toggleFullscreen()}>\r\n \r\n \r\n )}\r\n
\r\n ) : null}\r\n\r\n
\r\n )\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : undefined,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ZoomModule);\r\n\r\nconst EditorPreview = () => {\r\n return (\r\n
\r\n
\r\n \r\n

\r\n \r\n

\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst NotValidBrowser = () => {\r\n return (\r\n
\r\n
\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n
\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef, useLayoutEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { Avatar } from \"@material-ui/core\";\r\nimport EqualizerIcon from \"@material-ui/icons/Equalizer\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { WordCloud } from \"../../../interaction/presenter/other/WordCloud/WordCloud\";\r\nimport { ColumnChart } from \"../../../interaction/presenter/charts/ColumnChart/ColumnChart\";\r\nimport { BarChart } from \"../../../interaction/presenter/charts/BarChart/BarChart\";\r\nimport { PieChart } from \"../../../interaction/presenter/charts/PieChart/PieChart\";\r\nimport { presenterTypeConstants } from \"../../../interaction/constants/presenterType.constants\";\r\nimport { DisparityChart } from \"../../../interaction/presenter/charts/DisparityChart/DisparityChart\";\r\nimport { TextFlow } from \"../../../interaction/presenter/other/TextFlow/TextFlow\";\r\nimport { useMemo } from \"react\";\r\n\r\nconst convertOptionIdToText = (id, qs, lang) => {\r\n let optionId = parseInt(id);\r\n if (isNaN(optionId)) return id;\r\n let text = id;\r\n try {\r\n text = qs.questionOption.find((o) => o.questionOptionId === optionId).questionOptionLanguage.find((l) => l.languageCode === lang).label;\r\n } catch (error) { }\r\n return text;\r\n};\r\n\r\nconst defaultState = {\r\n activeQuestion: null,\r\n clientResponses: [],\r\n presentParticipants: [],\r\n presentationOrder: \"SORTORDER\",\r\n displayType: \"\",\r\n presenterSettings: {\r\n displayTypeText: \"TEXTFLOW\",\r\n displayTypeOption: \"BARCHART\",\r\n moderationMode: false,\r\n presentationOrder: \"SORTORDER\",\r\n showCount: true,\r\n showPercent: false,\r\n },\r\n size: null,\r\n};\r\nfunction PresenterModule(props) {\r\n const [state, setState] = useState({ ...defaultState });\r\n const wrapperRef = useRef();\r\n const stateRef = useRef();\r\n stateRef.current = state;\r\n const { eventId, lang, hubConnection, preview } = props;\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.Presenter\", lang);\r\n if (hubConnection && !preview) {\r\n hubConnection.invoke(\"getClientQuestions\", eventId, \"INTERACTION_PRESENTER\");\r\n hubConnection.invoke(\"getPresenterSettings\", eventId);\r\n }\r\n return () => { };\r\n }, []);\r\n useEffect(() => {\r\n window.addEventListener(\"resize\", resizeGraph);\r\n if (hubConnection && !preview) {\r\n hubConnection.on(\"onDeployQuestionToPresenter\", onDeployQuestionToPresenter);\r\n hubConnection.on(\"onNewPresentParticipant\", onNewPresentParticipant);\r\n hubConnection.on(\"onUpdatedPresenterSettings\", onUpdatedPresenterSettings);\r\n hubConnection.on(\"onClearDisplay\", onClearDisplay);\r\n hubConnection.on(\"onClearQuestionAnswers\", onClearQuestionAnswers);\r\n hubConnection.on(\"onClientResponse\", onClientResponse);\r\n }\r\n return () => {\r\n if (hubConnection && !preview) {\r\n hubConnection.off(\"onDeployQuestionToPresenter\", onDeployQuestionToPresenter);\r\n hubConnection.off(\"onNewPresentParticipant\", onNewPresentParticipant);\r\n hubConnection.off(\"onUpdatedPresenterSettings\", onUpdatedPresenterSettings);\r\n hubConnection.off(\"onClearDisplay\", onClearDisplay);\r\n hubConnection.off(\"onClearQuestionAnswers\", onClearQuestionAnswers);\r\n hubConnection.off(\"onClientResponse\", onClientResponse);\r\n }\r\n window.removeEventListener(\"resize\", resizeGraph);\r\n };\r\n });\r\n useEffect(() => {\r\n if ((wrapperRef.current && !state.size) || (wrapperRef.current && wrapperRef.current.clientHeight != state.size.height && wrapperRef.current.clientWidth != state.size.width)) {\r\n resizeGraph();\r\n }\r\n }, [wrapperRef.current]);\r\n\r\n const resizeGraph = () => {\r\n if (wrapperRef.current) {\r\n const { clientWidth, clientHeight } = wrapperRef.current;\r\n setState({\r\n ...stateRef.current,\r\n size: {\r\n height: clientHeight,\r\n width: clientWidth,\r\n },\r\n });\r\n }\r\n };\r\n const onClientResponse = (response) => {\r\n const { clientResponses, activeQuestion } = stateRef.current;\r\n let responses = Array.from(\r\n clientResponses.map((a) => {\r\n if (a.type === \"Option\") {\r\n a.answerText = convertOptionIdToText(a.answer);\r\n }\r\n return a;\r\n })\r\n );\r\n const existingResponse = responses.find((r) => {\r\n return r.answerId === response.answerId;\r\n });\r\n if (existingResponse && response.status === 3) {\r\n responses.splice(responses.indexOf(existingResponse), 1);\r\n }\r\n if (response.type === \"Option\") {\r\n response.answerText = convertOptionIdToText(response.answer);\r\n }\r\n if (!existingResponse) {\r\n responses.push(response);\r\n }\r\n if (response && activeQuestion && response.questionId === activeQuestion.questionId) {\r\n setState({ ...stateRef.current, clientResponses: responses });\r\n }\r\n };\r\n const onNewPresentParticipant = (order) => {\r\n const { presentParticipants } = stateRef.current;\r\n if (!presentParticipants.find((x) => x.badgeNo == order.badgeNo)) {\r\n presentParticipants.push(order);\r\n setState({ ...stateRef.current, presentParticipants });\r\n }\r\n };\r\n function onDeployQuestionToPresenter(res) {\r\n // let presenterType = res.question.presenterType || (res.question.type == \"Text\" ? \"WORDCLOUD\" : \"COLUMNCHART\");\r\n setState({\r\n ...stateRef.current,\r\n clientResponses: res.answers,\r\n activeQuestion: res.question,\r\n presentParticipants: res.presentParticipants || [],\r\n // displayType: presenterType,\r\n });\r\n }\r\n function onClearQuestionAnswers(questionId) {\r\n if (stateRef.current.activeQuestion && stateRef.current.activeQuestion.questionId == questionId) {\r\n setState({ ...stateRef.current, clientResponses: [] });\r\n }\r\n }\r\n function onClearDisplay() {\r\n setState({\r\n ...stateRef.current,\r\n activeQuestion: null,\r\n clientResponses: [],\r\n });\r\n }\r\n function onUpdatedPresenterSettings(settings) {\r\n setState({ ...stateRef.current, presenterSettings: settings });\r\n }\r\n const api = {\r\n ...state,\r\n ...props,\r\n };\r\n return (\r\n
(wrapperRef.current = r)}>\r\n {preview ? : }\r\n
\r\n );\r\n}\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : undefined,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(PresenterModule);\r\n\r\nconst setCategories = (question, lang) => {\r\n let categories = [];\r\n try {\r\n categories = question.questionOption.map((qo) => {\r\n return qo.questionOptionLanguage.find((ql) => ql.languageCode == lang).label || qo.questionOptionLanguage[0].label;\r\n });\r\n } catch (error) { }\r\n return categories;\r\n};\r\n\r\nconst FallbackChart = () => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst Chart = (props) => {\r\n const { clientResponses, presenterSettings, activeQuestion, template, lang, size, presentParticipants, orderList, settings } = props;\r\n if (!activeQuestion || !size || !template || !presenterSettings) return ;\r\n const { presentationOrder, showPercent, showCount, showNamesTextflow } = presenterSettings;\r\n const { showLabel } = settings;\r\n const questionType = activeQuestion.type;\r\n const categories = setCategories(activeQuestion, lang);\r\n const groupedTemplate = template;\r\n const presenterType = presenterSettings[\"displayType\" + questionType];\r\n switch (presenterType) {\r\n case presenterTypeConstants.WORDCLOUD:\r\n return (\r\n {\r\n return a.answer;\r\n })}\r\n size={size}\r\n autoFit={true}\r\n questionName={activeQuestion.questionLanguage.find((ql) => ql.languageCode === lang).label}\r\n template={groupedTemplate}\r\n />\r\n );\r\n case presenterTypeConstants.TEXTFLOW:\r\n return (\r\n {\r\n return {answer: a.answer, name:a.clientName};\r\n })}\r\n questionName={activeQuestion.questionLanguage.find((ql) => ql.languageCode === lang).label}\r\n template={groupedTemplate}\r\n isModule={true}\r\n showLabel={showLabel}\r\n showNames={showNamesTextflow}\r\n />\r\n );\r\n case presenterTypeConstants.BARCHART:\r\n return (\r\n {\r\n let answer = convertOptionIdToText(a.answer, activeQuestion, lang);\r\n\r\n return { answer, weight: a.answerWeight };\r\n })}\r\n size={size}\r\n autoFit={true}\r\n categories={categories}\r\n showPercent={showPercent}\r\n showCount={showCount}\r\n questionName={activeQuestion.questionLanguage.find((ql) => ql.languageCode === lang).label}\r\n template={groupedTemplate}\r\n presentationOrder={presentationOrder}\r\n />\r\n );\r\n case presenterTypeConstants.COLUMNCHART:\r\n return (\r\n {\r\n let answer = convertOptionIdToText(a.answer, activeQuestion, lang);\r\n return { answer, weight: a.answerWeight };\r\n })}\r\n size={size}\r\n autoFit={true}\r\n showPercent={showPercent}\r\n showCount={showCount}\r\n categories={categories}\r\n questionName={activeQuestion.questionLanguage.find((ql) => ql.languageCode === lang).label}\r\n template={groupedTemplate}\r\n presentationOrder={presentationOrder}\r\n />\r\n );\r\n case presenterTypeConstants.DISPARITYCHART:\r\n return (\r\n ql.languageCode === lang).label}\r\n importedAttendees={orderList}\r\n clientResponses={clientResponses}\r\n template={groupedTemplate}\r\n autoFit={true}\r\n />\r\n );\r\n case presenterTypeConstants.PIECHART:\r\n return (\r\n {\r\n let answer = convertOptionIdToText(a.answer, activeQuestion, lang);\r\n return { answer, weight: a.answerWeight };\r\n })}\r\n size={size}\r\n categories={categories}\r\n showPercent={showPercent}\r\n showCount={showCount}\r\n presentationOrder={presentationOrder}\r\n autoFit={true}\r\n questionName={activeQuestion.questionLanguage.find((ql) => ql.languageCode === lang).label}\r\n template={groupedTemplate}\r\n />\r\n );\r\n\r\n default:\r\n return ;\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst ButtonModule = (props) => {\r\n const { clientKey, template } = props;\r\n const { url, openInNewWindow, displayText, backgroundColor, color, borderRadius, borderColor, borderWidth, fontSize, useTemplateStyle } = props.settings;\r\n const buttonStyle = {\r\n padding: \"6px 12px\",\r\n minWidth: \"50px\",\r\n width: \"100%\",\r\n height: \"auto\",\r\n\r\n backgroundColor: backgroundColor != \"unset\" && useTemplateStyle ? backgroundColor : template.button.backgroundColor,\r\n borderRadius: borderRadius != \"unset\" && useTemplateStyle ? borderRadius : template.button.borderRadius,\r\n color: color != \"unset\" && useTemplateStyle ? color : template.button.color,\r\n padding: \"6px 12px 6px 12px\",\r\n /* \"&:hover\": {\r\n backgroundColor: \"pink\",\r\n color: \"#eee\",\r\n }, */\r\n borderColor: borderColor != \"unset\" && useTemplateStyle ? borderColor : template.button.borderColor,\r\n fontSize: fontSize != \"unset\" && useTemplateStyle ? fontSize : template.button.fontSize,\r\n borderWidth: borderWidth != \"unset\" && useTemplateStyle ? borderWidth : template.button.borderWidth,\r\n borderStyle: borderWidth != \"unset\" && useTemplateStyle ? \"solid\" : undefined,\r\n };\r\n\r\n let formattedUrl = url;\r\n if (url)\r\n formattedUrl = url\r\n .toString()\r\n .replace(/\\[clientkey\\]/gi, clientKey)\r\n .replace(/\\[badgeno\\]/gi, clientKey);\r\n\r\n if (formattedUrl && !formattedUrl.includes(\"http\") && !formattedUrl.includes('mailto')) formattedUrl = \"https://\" + formattedUrl;\r\n\r\n if (window.location.toString().includes(\"localhost\") && !formattedUrl.includes(\"localhost\") && formattedUrl.includes(\"jirango.com/interaction\")) {\r\n formattedUrl = formattedUrl.replace(\"jirango.com/interaction\", \"localhost:44352\");\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : undefined,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ButtonModule);\r\n","import React from \"react\";\r\n\r\nexport const BlockModule = (props) => {\r\n const { settings } = props;\r\n return
;\r\n};\r\n","import React, { useEffect, useMemo, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { FontBasline } from \"../components/shared/FontBaseline\";\r\nimport { ScrollWrapper } from \"../helpers/module.helper\";\r\nimport axios from \"axios\";\r\n\r\nconst TextModule = (props) => {\r\n const { orderId, eventId, lang, eventName, preview } = props;\r\n const { text } = props.settings;\r\n\r\n let parsedText = text;\r\n if (text && !preview)\r\n parsedText = text\r\n .toString()\r\n .replace(/\\[event\\]/gi, eventName)\r\n .replace(/\\[eventName\\]/gi, eventName);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {/* {parsedText} */}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n fonts: state.cms.fonts,\r\n template: state.template.template ? state.template.template.content : undefined,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(TextModule);\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Button } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport EventLabel2, { init } from \"../../components/EventLabel2/EventLabel2\";\r\nimport { Spinner } from \"reactstrap\";\r\n\r\nconst GroupGeneratorModule = (props) => {\r\n const [isButtonDisabled, setIsButtonDisabled] = useState(false);\r\n const [clicked, setClicked] = useState(false);\r\n const { hubConnection, clientKey, eventId, lang, settings, preview, template } = props;\r\n const { breakoutId, rooms, max, text } = settings;\r\n\r\n const randomButtonFullCheckTimerRef = useRef(null);\r\n\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.GroupGenerator\", lang);\r\n if (hubConnection && !preview) {\r\n hubConnection.on(\"onGetFirstAvailableBreakout\", onGetFirstAvailableBreakout);\r\n hubConnection.on(\"onRandomButtonFullCheck\", onRandomButtonFullCheck);\r\n }\r\n }, []);\r\n\r\n const onRandomButtonFullCheck = ({ code, breakoutId }) => {\r\n if (randomButtonFullCheckTimerRef.current) {\r\n clearInterval(randomButtonFullCheckTimerRef.current);\r\n }\r\n if (code == \"OPEN\" && breakoutId == settings.breakoutId) {\r\n setIsButtonDisabled(false);\r\n } else {\r\n randomButtonFullCheckTimerRef.current = setInterval(randomButtonFullCheck, 15000);\r\n if (code == \"FULL\" && breakoutId == settings.breakoutId) {\r\n setIsButtonDisabled(true);\r\n }\r\n }\r\n setClicked(false);\r\n };\r\n const randomButtonFullCheck = () => {\r\n if (!breakoutId) return;\r\n\r\n hubConnection.invoke(\"getBreakoutChannel\", eventId, breakoutId, rooms, max, clientKey, true);\r\n };\r\n const getFirstAvailableBreakout = () => {\r\n if (!breakoutId) return;\r\n setClicked(true);\r\n hubConnection.invoke(\"getBreakoutChannel\", eventId, breakoutId, rooms, max, clientKey, false);\r\n };\r\n const onGetFirstAvailableBreakout = (code, channel) => {\r\n setClicked(false);\r\n window.location.href = `${window.location.origin}${\r\n !window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\"\r\n }/digitalarena/${code}?clientkey=${clientKey}&channel=${channel}&lang=${lang}`;\r\n };\r\n\r\n return (\r\n getFirstAvailableBreakout()}\r\n >\r\n {isButtonDisabled ? : clicked ? : {text}}\r\n \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : undefined,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(GroupGeneratorModule);\r\n","import React from 'react';\r\nimport AccessTimeIcon from '@material-ui/icons/AccessTime'\r\nimport { formatTime } from '../../../../../helpers/time.helper';\r\n\r\n\r\nexport const TimeStamp = ({ messages, color, timeStamp, lang }) => {\r\n if (!timeStamp) return null;\r\n return (\r\n \r\n \r\n {formatTime(timeStamp, lang)}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport PlayCircleFilledWhiteOutlinedIcon from \"@material-ui/icons/PlayCircleFilledWhiteOutlined\";\r\nimport { GenericPlayer } from \"../../plugins/GenericPlayer\";\r\nimport { embedLink } from \"../../helpers/embed.helper\";\r\n\r\nexport function IframeModule(props) {\r\n const { url } = props.settings;\r\n if (!url) return ;\r\n return (\r\n
\r\n \r\n {/* */}\r\n
\r\n );\r\n}\r\n\r\nconst DefaultVideoFrame = () => (\r\n \r\n \r\n \r\n);\r\n\r\nconst RatioWrapper = ({\r\n children,\r\n height,\r\n width,\r\n aspectRatio,\r\n lockAspectRatio,\r\n bound,\r\n}) => {\r\n if (!lockAspectRatio) return children;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\nconst aspecRatio = (w, h, ratio, bound) => {\r\n const defStyle = { height: \"100%\", width: \"100%\" };\r\n switch (ratio) {\r\n case \"16:9\":\r\n return {\r\n ...defStyle,\r\n /* paddingTop: \"56.2%\", */ maxHeight:\r\n bound.clientWidth * (parseInt(w) / 100) * 0.562,\r\n };\r\n case \"16:10\":\r\n return {\r\n ...defStyle,\r\n maxHeight: bound.clientWidth * (parseInt(w) / 100) * 0.625,\r\n };\r\n case \"4:3\":\r\n return {\r\n ...defStyle,\r\n maxHeight: bound.clientWidth * (parseInt(w) / 100) * 0.75,\r\n };\r\n default:\r\n return defStyle;\r\n }\r\n};\r\n","import React from \"react\";\r\nimport \"video.js\";\r\n\r\nexport function VideoModule(props) {\r\n const { clientKey, settings, loop, hideControl } = props;\r\n const { url, downloadable } = settings;\r\n return (\r\n \r\n \r\n \r\n \r\n

\r\n To view this video please enable JavaScript, and consider upgrading to a web browser that\r\n \r\n supports HTML5 video\r\n \r\n

\r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { InlineEditor } from \"../../components/TinyMCE/InlineEditor\";\r\nimport { ScrollWrapper } from \"../helpers/module.helper\";\r\n\r\nexport function HtmlModule(props) {\r\n const { clientKey, preview, updateModule = () => null } = props;\r\n const { html } = props.settings;\r\n let htmlContent = html;\r\n if (html)\r\n htmlContent = html\r\n .toString()\r\n .replace(/\\[clientkey\\]/gi, clientKey)\r\n .replace(/\\[badgeno\\]/gi, clientKey);\r\n\r\n/* if (!htmlContent) return HTML; */\r\n return (\r\n \r\n {/* {preview ? (\r\n \r\n updateModule({ ...props.settings, html: value })} />\r\n ) : ( */}\r\n
\r\n {/* )} */}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Draggable from \"react-draggable\";\r\nimport OT from \"@opentok/client\";\r\nimport createOpentokHardwareSetupComponent from \"./VonageHardwareSetup\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport CallEndIcon from \"@material-ui/icons/CallEnd\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\r\nimport UnfoldLessIcon from '@material-ui/icons/UnfoldLess';\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport PermCameraMicIcon from \"@material-ui/icons/PermCameraMic\";\r\nimport MicOffIcon from '@material-ui/icons/MicOff';\r\nexport default function VonageSpeakerDialog(props) {\r\n const [hardwareSetup, setHardwareSetup] = useState(null);\r\n const [showHwSetup, setShowHwSetup] = useState(true);\r\n const [publisher, setPublisher] = useState(null);\r\n const [session, setSession] = useState(props.session);\r\n const [collapsed, setCollapsed] = useState(false);\r\n const onDismountRef = useRef();\r\n const { hubConnection, eventId, channel, clientKey, clientName, companyName, videoWall = false, videoWallProps } = props;\r\n\r\n useEffect(() => {\r\n if (hubConnection && hubConnection.state == 1) {\r\n if ((!session || !session.capabilities || session.capabilities.publish !== 1) && !videoWall) {\r\n hubConnection.invoke(\"getSessionAndToken\", eventId, channel, clientKey, \"PUBLISHER\", true);\r\n } else if (videoWall == true) {\r\n const { apiKey, sessionId, token } = videoWallProps;\r\n onGetDialogSessionAndToken(apiKey, sessionId, token);\r\n } else {\r\n setTimeout(() => {\r\n var hardwareSetup = createOpentokHardwareSetupComponent(\"vonage-setup-dialog-done\", { insertMode: \"before\" }, (error) => {\r\n if (error) console.error(error);\r\n });\r\n setHardwareSetup(hardwareSetup);\r\n }, 100);\r\n }\r\n\r\n }\r\n return () => onDismountRef.current()\r\n }, []);\r\n const onDismount = () => {\r\n if (session) {\r\n const { streams, token } = props;\r\n if (streams && streams.length > 0) {\r\n while (streams.length > 0) {\r\n session.unsubscribe(streams[0]);\r\n }\r\n }\r\n if (publisher) session.unpublish(publisher);\r\n hubConnection.off(\"onGetDialogSessionAndToken\", onGetDialogSessionAndToken);\r\n if (hardwareSetup) {\r\n hardwareSetup.destroy();\r\n }\r\n session.disconnect();\r\n if (token) {\r\n session.connect(props.token, function (error) {\r\n // If the connection is successful, publish to the session\r\n if (error) console.error(error);\r\n });\r\n }\r\n }\r\n else {\r\n hubConnection.off(\"onGetDialogSessionAndToken\", onGetDialogSessionAndToken);\r\n }\r\n };\r\n useEffect(() => {\r\n onDismountRef.current = onDismount;\r\n if (hubConnection) {\r\n hubConnection.on(\"onDeactivateSpeaker\", onRemoteHangUp);\r\n hubConnection.on(\"onGetDialogSessionAndToken\", onGetDialogSessionAndToken);\r\n hubConnection.on(\"onKickPersonFromWall\", onKickPersonFromWall);\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onDeactivateSpeaker\", onRemoteHangUp);\r\n hubConnection.off(\"onGetDialogSessionAndToken\", onGetDialogSessionAndToken);\r\n hubConnection.off(\"onKickPersonFromWall\", onKickPersonFromWall);\r\n }\r\n };\r\n });\r\n function onKickPersonFromWall(name, key) {\r\n if (videoWall && videoWallProps.wallName?.toLowerCase() === name.toLowerCase() && clientKey === key && session && publisher) {\r\n session.unpublish(publisher);\r\n if (hardwareSetup) {\r\n hardwareSetup.destroy();\r\n }\r\n if (session) session.disconnect();\r\n props.handleClose();\r\n }\r\n }\r\n function onGetDialogSessionAndToken(apiKey, sessionId, token) {\r\n if (session) {\r\n const { streams } = props;\r\n while (streams.length > 0) {\r\n session.unsubscribe(streams[0]);\r\n }\r\n session.disconnect();\r\n session.connect(token, function (error) {\r\n // If the connection is successful, publish to the session\r\n if (error) {\r\n if (error) console.error(error);\r\n } else {\r\n var hardwareSetup = createOpentokHardwareSetupComponent(\"vonage-setup-dialog-done\", { insertMode: \"before\", videoWall }, (error) => {\r\n if (error) console.error(error);\r\n });\r\n setHardwareSetup(hardwareSetup);\r\n }\r\n });\r\n } else {\r\n var newSession = OT.initSession(apiKey, sessionId);\r\n newSession.connect(token, function (error) {\r\n // If the connection is successful, publish to the session\r\n if (error) {\r\n if (error) console.error(error);\r\n } else {\r\n setSession(newSession);\r\n var hardwareSetup = createOpentokHardwareSetupComponent(\"vonage-setup-dialog-done\", { insertMode: \"before\", videoWall }, (error) => {\r\n if (error) console.error(error);\r\n });\r\n setHardwareSetup(hardwareSetup);\r\n }\r\n });\r\n }\r\n }\r\n function startPublisher(param) {\r\n var targetContainer = \"vonage-publisher-dialog\";\r\n var options = {\r\n insertMode: \"append\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n resolution: '1280x720',\r\n audioSource: hardwareSetup.audioSource(),\r\n videoSource: hardwareSetup.videoSource(),\r\n publishAudio: !videoWall && (param !== \"videoOnly\" || !hardwareSetup.videoSource()) ? true : false,\r\n publishVideo: param !== \"audioOnly\" || !hardwareSetup.audioSource() ? true : false,\r\n showControls: false,\r\n name: clientKey,\r\n };\r\n if (typeof param === \"object\") options = { ...options, ...param };\r\n var publisher = OT.initPublisher(targetContainer, options, (e) => {\r\n if (e) console.error(e);\r\n });\r\n publisher.on(\"destroyed\", onPublisherDestroyed);\r\n session.publish(publisher, (e) => {\r\n if (e) console.error(e);\r\n else {\r\n props.setStreamIdToMute(publisher.stream.id);\r\n }\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"LogPublisherStatus\", session.id, eventId, channel, clientKey, false, \"Start\");\r\n }\r\n });\r\n setPublisher(publisher);\r\n }\r\n function onPublisherDestroyed() {\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"LogPublisherStatus\", session.id, eventId, channel, clientKey, false, \"Stop\");\r\n }\r\n }\r\n function updatePublisherDevices() {\r\n const audioSource = hardwareSetup.audioSource();\r\n const videoSource = hardwareSetup.videoSource();\r\n publisher.setAudioSource(audioSource.deviceId);\r\n publisher.setVideoSource(videoSource.deviceId);\r\n }\r\n\r\n function onRemoteHangUp(badgeNo) {\r\n if (badgeNo == clientKey) {\r\n session.unpublish(publisher);\r\n if (hardwareSetup) {\r\n hardwareSetup.destroy();\r\n }\r\n if (session) session.disconnect();\r\n props.handleClose();\r\n }\r\n }\r\n\r\n function hangUp() {\r\n if (publisher && session) {\r\n session.unpublish(publisher);\r\n }\r\n if (session) session.disconnect();\r\n hardwareSetup.destroy();\r\n if (hubConnection && hubConnection.state == 1) {\r\n hubConnection.invoke(\"deactivateSpeaker\", eventId, clientKey);\r\n }\r\n props.handleClose();\r\n }\r\n const body = document.getElementById(\"view-wrapper\");\r\n return ReactDOM.createPortal(\r\n \r\n \r\n \r\n \r\n \r\n {!publisher ? (\r\n \r\n ) : (\r\n
\r\n
\r\n \r\n {videoWall ? : null}\r\n
\r\n )}\r\n \r\n \r\n {publisher ? (\r\n setCollapsed(!collapsed)}>\r\n {!collapsed ? : }\r\n \r\n ) : null}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {\r\n setShowHwSetup(false);\r\n publisher ? updatePublisherDevices() : startPublisher();\r\n }}\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n {publisher && !showHwSetup && !collapsed ? (\r\n }\r\n style={{ backgroundColor: \"#888\", fontSize: 12, margin: \"auto\", borderRadius: 15, color: \"#fff\", padding: \"6px 15px\" }}\r\n onClick={() => setShowHwSetup(true)}\r\n >\r\n \r\n \r\n ) : null}\r\n {publisher ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n \r\n ,\r\n body\r\n );\r\n}\r\n","import React, { useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { useEffect, useState } from \"react\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\n\r\nconst CountdownModule = (props) => {\r\n const [time, setTime] = useState(\"\");\r\n const [clear, setClear] = useState(false);\r\n const timerRef = useRef();\r\n\r\n const { settings } = props;\r\n const { datetime, color, numberSize, textSize } = settings;\r\n\r\n useEffect(() => {\r\n const t = new Date();\r\n const { eventId, lang } = props;\r\n\r\n timerRef.current = setInterval(() => countdown(t.setSeconds(t.getSeconds() + 1)), 1000);\r\n init(eventId, \"DigitalMeeting.Countdown\", lang || \"swe\");\r\n return () => clearInterval(timerRef.current);\r\n }, []);\r\n useEffect(() => {\r\n const t = new Date();\r\n const { eventId, lang } = props;\r\n if (timerRef.current) clearInterval(timerRef.current);\r\n\r\n timerRef.current = setInterval(() => countdown(t.setSeconds(t.getSeconds() + 1)), 1000);\r\n init(eventId, \"DigitalMeeting.Countdown\", lang || \"swe\");\r\n }, [datetime]);\r\n\r\n const countdown = (currentTime) => {\r\n if (clear) return;\r\n let secondsLeft = (new Date(datetime) - new Date(currentTime)) / 1000;\r\n var delta = Math.abs(datetime - currentTime) / 1000;\r\n var days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n var hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n var minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n var seconds = Math.floor(delta % 60);\r\n\r\n if (secondsLeft <= 0) {\r\n setTime({\r\n days: \"00\",\r\n hours: \"00\",\r\n minutes: \"00\",\r\n seconds: \"00\",\r\n });\r\n /* setClear(true); */\r\n return;\r\n }\r\n\r\n setTime({\r\n days: days < 10 && days > 0 ? \"0\" + days : days,\r\n hours: hours < 10 && hours > 0 ? \"0\" + hours : hours,\r\n minutes: minutes < 10 && minutes > 0 ? \"0\" + minutes : minutes,\r\n seconds: seconds < 10 && seconds > 0 ? \"0\" + seconds : seconds,\r\n });\r\n };\r\n\r\n if (clear) return null;\r\n\r\n const { template } = props;\r\n\r\n if (!template) return null;\r\n\r\n const { content, subtitle } = template.content;\r\n\r\n const timeBadgeStyle = {\r\n /* backgroundColor: content.backgroundColor, */\r\n color,\r\n fontSize: numberSize,\r\n fontFamily: subtitle.fontFamily,\r\n };\r\n const textStyle = {\r\n color,\r\n fontFamily: subtitle.fontFamily,\r\n };\r\n\r\n if (!time) return null;\r\n\r\n const { days, hours, minutes, seconds } = time;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {days}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {hours}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {minutes}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {seconds}\r\n
{\" \"}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template,\r\n cms: state.cms,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(CountdownModule);\r\n","import React from \"react\";\r\nimport { ImageMap } from \"@qiuz/react-image-map\";\r\n\r\nexport const ImageMapModule = (props) => {\r\n const img = \"https://jirangopub.s3.eu-north-1.amazonaws.com/Files/902/MonopolSpelplan3.png\";\r\n const { clientKey } = props;\r\n const { url, data, target } = props.settings;\r\n const mapArea = [\r\n { width: \"8%\", height: \"14.389799635701275%\", left: \"69.06538469363481%\", top: \"2.0036429872495445%\", href: \"https://google.se\" },\r\n { width: \"8.205128205128204%\", height: \"7.285974499089254%\", left: \"68.86025648850661%\", top: \"38.97996357012751%\", href: \"https://aftonbladet.se\" },\r\n ];\r\n\r\n const onMapClick = (area, index) => {\r\n const link = area.href\r\n .toString()\r\n .replace(/\\[clientkey\\]/gi, clientKey)\r\n .replace(/\\[badgeno\\]/gi, clientKey);\r\n window.open(link, target);\r\n };\r\n\r\n\r\n // in hooks\r\n const ImageMapComponent = React.useMemo(() => , [data, url,target]);\r\n\r\n return
{ImageMapComponent}
;\r\n};\r\n","import axios from \"axios\";\r\nimport { connect } from \"react-redux\";\r\nimport React, { useState, useRef, useEffect } from \"react\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../constants/eventLabelGroups.contansts\";\r\nimport { Button, List, ListItem, ListItemAvatar, ListItemText, Tooltip } from \"@material-ui/core\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport InsertCommentIcon from \"@material-ui/icons/InsertComment\";\r\nimport GavelIcon from \"@material-ui/icons/Gavel\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport { ChatAvatar } from \"../ChatModule/components/ChatAvatar\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\n\r\nconst SpeakerControl = (props) => {\r\n const [agenda, setAgenda] = useState([]);\r\n const [speakers, setSpeakers] = useState([]);\r\n const [activeSpeaker, setActiveSpeaker] = useState(null);\r\n const [floorIsGive, setFloorIsGiven] = useState(false);\r\n const { eventId, clientKey, lang, connected, hubConnection, noneAllowedSpeakers, personTypes, template, clientName, preview, settings } = props;\r\n\r\n const { requestedEventId, getAgendaFromOtherEvent, allowRequestTheFloor, allowPointOfOrder, allowRequestLineOfSpeaker } = settings;\r\n\r\n useEffect(() => {\r\n init(eventId, eventLabelGroupsConstants.SPEAKER_CONTROL_LABEL_GROUP, lang);\r\n fetchSpeakers();\r\n fetchAgenda();\r\n configureHubEvents();\r\n }, []);\r\n\r\n const fetchAgenda = () => {\r\n axios\r\n .get(`./api/meeting/agenda/${getAgendaFromOtherEvent && requestedEventId ? requestedEventId : eventId}`)\r\n .then(({ data }) => {\r\n if (!data) return;\r\n const agendaItems = data.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n setAgenda(agendaItems);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n const configureHubEvents = () => {\r\n if (hubConnection) {\r\n hubConnection.on(\"onSpeakersUpdate\", (speakers) => setSpeakers(speakers));\r\n hubConnection.on(\"onActivateSpeaker\", (activeSpeaker) => {\r\n setActiveSpeaker(activeSpeaker);\r\n });\r\n hubConnection.on(\"onDeactivateSpeaker\", () => setActiveSpeaker(null));\r\n hubConnection.on(\"onAgendaUpdate\", (agenda) => {\r\n setAgenda(agenda);\r\n });\r\n hubConnection.on(\"onAgendaClosed\", (speakers) => {\r\n setSpeakers(speakers);\r\n setActiveSpeaker(null);\r\n });\r\n }\r\n };\r\n\r\n const fetchSpeakers = () => {\r\n axios\r\n .get(`./api/meeting/speakers/${eventId}`)\r\n .then(({ data }) => {\r\n if (data) {\r\n setSpeakers(data);\r\n const active = data.find((a) => a.active == true);\r\n if (active) {\r\n const speaker = props.orderList.find((ol) => ol.badgeNo == active.badgeNo);\r\n setActiveSpeaker(speaker);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const unassignRequest = (agendaItemId, parentId = null) => {\r\n if (!connected || !hubConnection || (hubConnection.connectionState != 1 && !preview)) return;\r\n const activeAgenda = agenda.find((a) => a.active == true);\r\n if (!activeAgenda) return;\r\n hubConnection\r\n .invoke(\"removeSpeaker\", {\r\n eventId,\r\n agendaItemId: activeAgenda.agendaItemId,\r\n clientKey,\r\n parentId,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const requestTheFloor = (speakerType, parentId = null) => {\r\n if (!connected || !hubConnection || (hubConnection.connectionState != 1 && !preview)) return;\r\n const activeAgenda = agenda.find((a) => a.active == true);\r\n if (!activeAgenda) return;\r\n hubConnection\r\n .invoke(\"setSpeaker\", {\r\n eventId,\r\n agendaItemId: activeAgenda.agendaItemId,\r\n clientKey,\r\n parentId,\r\n speakerType,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const hasRequestedTheFloor = (agendaId, parentId = null) => {\r\n const activeAgenda = agenda.find((a) => a.active == true);\r\n if (!activeAgenda) return false;\r\n const hasRequested = speakers.find((s) => s.agendaItemId === activeAgenda.agendaItemId && s.badgeNo === clientKey && /* s.parentInteractionSpeakerId === parentId && */ s.closedDateTime === null);\r\n return hasRequested;\r\n };\r\n\r\n const isAuthorizedSpeaker = () => {\r\n if (!clientName || clientName.includes(\"Guest_\")) return false;\r\n return true;\r\n };\r\n const isAllowedSpeaker = () => {\r\n let allowed = true;\r\n if (noneAllowedSpeakers.length > 0 && personTypes) {\r\n noneAllowedSpeakers.map((n) => {\r\n if (personTypes.includes(n)) {\r\n allowed = false;\r\n }\r\n });\r\n }\r\n return allowed;\r\n };\r\n\r\n const api = {\r\n speakers,\r\n agenda,\r\n ...props,\r\n activeSpeaker,\r\n activeAgenda: agenda.find((a) => a.active == true),\r\n speakers,\r\n\r\n isAllowedSpeaker,\r\n isAuthorizedSpeaker,\r\n hasRequestedTheFloor,\r\n requestTheFloor,\r\n unassignRequest,\r\n };\r\n return (\r\n
\r\n {/* {activeSpeaker ? : null} */}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst ActiveSpeaker = (props) => {\r\n const { template, activeSpeaker, settings } = props;\r\n const { fontFamily, fontSize, color, fontWeight } = settings;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n secondary={{activeSpeaker ? activeSpeaker.name : \"\"}}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport function SpeakerControls(props) {\r\n const { hasRequestedTheFloor, active, speakers, isSpeakerActive, unassignRequest, activeAgenda, activeSpeaker, requestTheFloor, settings, orderId, template, preview } = props;\r\n const {\r\n allowPointOfOrder,\r\n borderRadius,\r\n allowRequestLineOfSpeaker,\r\n allowRequestTheFloor,\r\n fontFamily,\r\n fontSize,\r\n color,\r\n buttonBackground,\r\n fontWeight,\r\n background,\r\n overwriteTemplateButtonStyle,\r\n borderColor,\r\n } = settings;\r\n\r\n if (!hasRequestedTheFloor) {\r\n return (\r\n
\r\n {allowPointOfOrder == true ? (\r\n requestTheFloor(3)}\r\n startIcon={}\r\n >\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {allowRequestTheFloor ? (\r\n requestTheFloor(1)}\r\n disabled={orderId == 1}\r\n startIcon={}\r\n >\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {activeSpeaker && allowRequestLineOfSpeaker || preview ? (\r\n }\r\n edge=\"end\"\r\n onClick={() => requestTheFloor(2, speakers.find((s) => s.active == true)?.interactionSpeakerId)}\r\n >\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n }\r\n >\r\n }>\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(SpeakerControl);\r\n","import axios from \"axios\";\r\nimport { connect } from \"react-redux\";\r\nimport React, { useState, useRef, useEffect } from \"react\";\r\nimport EventLabel2, { init } from \"../../components/EventLabel2/EventLabel2\";\r\nimport { combineProps } from \"../../helpers/objectHelper\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport { eventLabelGroupsConstants } from \"../constants/eventLabelGroups.contansts\";\r\nimport { List, ListItem, ListItemAvatar, ListItemText } from \"@material-ui/core\";\r\n\r\nconst DEFAULT_SPEAKER = {\r\n profileImage: \"https://talk.nordea.se/privatebanking/wp-content/uploads/2020/01/elon-musk-royal-society-av-duncan-hull.jpg\",\r\n name: \"Elon Musk\",\r\n company: \"Tesla\",\r\n title: \"CEO\",\r\n};\r\n\r\nconst SpeakerCard = (props) => {\r\n const [agenda, setAgenda] = useState([]);\r\n const [speakers, setSpeakers] = useState([]);\r\n const [activeSpeaker, setActiveSpeaker] = useState(null);\r\n const [floorIsGive, setFloorIsGiven] = useState(false);\r\n const { eventId, clientKey, lang, connected, hubConnection, noneAllowedSpeakers, personTypes, template, companyName, clientName, preview, settings } = props;\r\n\r\n const { requestedEventId, getAgendaFromOtherEvent } = settings;\r\n\r\n useEffect(() => {\r\n init(eventId, eventLabelGroupsConstants.SPEAKER_CARD_LABEL_GROUP, lang);\r\n if (!preview) {\r\n fetchSpeakers();\r\n fetchAgenda();\r\n configureHubEvents();\r\n }\r\n }, []);\r\n\r\n const fetchAgenda = () => {\r\n axios\r\n .get(`./api/meeting/agenda/${getAgendaFromOtherEvent && requestedEventId ? requestedEventId : eventId}`)\r\n .then(({ data }) => {\r\n if (!data) return;\r\n const agendaItems = data.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n setAgenda(agendaItems);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n const configureHubEvents = () => {\r\n if (hubConnection) {\r\n hubConnection.on(\"onSpeakersUpdate\", (speakers) => setSpeakers(speakers));\r\n hubConnection.on(\"onActivateSpeaker\", (activeSpeaker) => {\r\n setActiveSpeaker(activeSpeaker);\r\n });\r\n hubConnection.on(\"onDeactivateSpeaker\", () => setActiveSpeaker(null));\r\n hubConnection.on(\"onAgendaUpdate\", (agenda) => {\r\n setAgenda(agenda);\r\n });\r\n hubConnection.on(\"onAgendaClosed\", (speakers) => {\r\n setSpeakers(speakers);\r\n setActiveSpeaker(null);\r\n });\r\n }\r\n };\r\n\r\n const fetchSpeakers = () => {\r\n axios\r\n .get(`./api/meeting/speakers/${eventId}`)\r\n .then(({ data }) => {\r\n if (data) {\r\n setSpeakers(data);\r\n const active = data.find((a) => a.active == true);\r\n if (active) {\r\n const speaker = props.orderList.find((ol) => ol.badgeNo == active.badgeNo);\r\n setActiveSpeaker(speaker);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const api = {\r\n speakers,\r\n agenda,\r\n ...props,\r\n activeSpeaker: preview ? DEFAULT_SPEAKER : activeSpeaker,\r\n activeAgenda: agenda.find((a) => a.active == true),\r\n speakers,\r\n };\r\n\r\n return ;\r\n};\r\n\r\nconst ActiveSpeaker = (props) => {\r\n const { template, activeSpeaker, settings, orderList, preview, speakers } = props;\r\n const { fontFamily, fontSize, color, fontWeight, background, imageBorderColor, imageSize, imageBorderWidth, containerBorderWidth, containerBorderColor } = settings;\r\n\r\n if (!activeSpeaker) return null;\r\n\r\n const { name, title, company, profileImage } = activeSpeaker;\r\n const speakerLabel = `${name}${title ? \", \" + title : \"\"}${company ? \", \" + company : \"\"}`;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n o.badgeNo == activeSpeaker.badgeNo)?.profileImage ? `url('${orderList.find((o) => o.badgeNo == activeSpeaker.badgeNo)?.profileImage}')` : undefined,\r\n backgroundPosition: \"center\",\r\n backgroundSize: \"cover\",\r\n border: `${imageBorderWidth} solid ${imageBorderColor}`,\r\n width: imageSize,\r\n height: imageSize,\r\n }}\r\n >\r\n {!preview && orderList.find((o) => o.badgeNo == activeSpeaker.badgeNo)?.profileImage ? null : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n secondary={{speakerLabel}}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(SpeakerCard);\r\n","import { List, ListItem, ListItemAvatar, ListItemText, ListSubheader } from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport axios from \"axios\";\r\nimport { ChatAvatar } from \"../ChatModule/components/ChatAvatar\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\nimport { SpeakerNotesOffSharp } from \"@material-ui/icons\";\r\nexport const SpeakerList = (props) => {\r\n const [speakers, setSpeakers] = useState([]);\r\n const [activeSpeakers, setActiveSpeakers] = useState([]);\r\n const [activeAgenda, setActiveAgenda] = useState(null);\r\n\r\n const { eventId, lang, hubConnection, orderList, preview, connectionList } = props;\r\n\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.SpeakerList\", lang);\r\n if (!preview) {\r\n fetchSpeakers();\r\n configureHubEvents();\r\n fetchAgenda();\r\n }\r\n }, []);\r\n\r\n const configureHubEvents = () => {\r\n if (hubConnection) {\r\n hubConnection.on(\"onSpeakersUpdate\", (speakers) => setSpeakers(speakers));\r\n hubConnection.on(\"onActivateSpeaker\", (activeSpeaker) => {\r\n if (activeSpeakers.find((a) => a.badgeNo == activeSpeaker.badgeNo)) {\r\n setActiveSpeakers([...activeSpeakers.splice(activeSpeakers.indexOf(activeSpeaker), 1)]);\r\n } else setActiveSpeakers(...activeSpeakers, activeSpeaker);\r\n });\r\n hubConnection.on(\"onDeactivateSpeaker\", (badgeNo) => setActiveSpeakers([...activeSpeakers.splice(activeSpeakers.indexOf(activeSpeakers.find((a) => a.badgeNo == badgeNo)), 1)]));\r\n }\r\n };\r\n\r\n const fetchSpeakers = () => {\r\n axios\r\n .get(`./api/meeting/speakers/${eventId}`)\r\n .then(({ data }) => {\r\n if (data) {\r\n setSpeakers(data);\r\n const active = data.filter((a) => a.active == true);\r\n\r\n if (active && active.length > 0) setActiveSpeakers([...activeSpeakers, active]);\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n const fetchAgenda = () => {\r\n axios\r\n .get(`./api/meeting/agenda/${eventId}`)\r\n .then(({ data }) => {\r\n if (!data) return;\r\n const agendaItems = data.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n setActiveAgenda(agendaItems.find((a) => a.active == true));\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n return (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\">\r\n \r\n {\" \"}\r\n {speakers.filter((s) => s.closedDateTime == null && s.active != true).length}\r\n \r\n \r\n \r\n {speakers.filter((s) => s.closedDateTime == null && s.active == false).length > 0 ? (\r\n \r\n
{speakers.filter((s) => s.closedDateTime == null && s.active != true).length}{\" \"}\r\n \r\n \r\n } */\r\n >\r\n {speakers\r\n .filter((s) => s.closedDateTime == null && s.active == false && s.agendaItemId == activeAgenda?.agendaItemId)\r\n .sort((a, b) => {\r\n return +new Date(a.inserted) - +new Date(b.inserted);\r\n })\r\n .map((s) => {\r\n const person = orderList.find((o) => o.badgeNo == s.badgeNo);\r\n if (!person) return null;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n ) : null}\r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nexport const EventName = (props) => {\r\n const { eventName, settings } = props;\r\n\r\n return {eventName};\r\n};\r\n","import { IconButton, ListItemText, useMediaQuery } from \"@material-ui/core\";\r\nimport React, { memo, useEffect, useRef, useState } from \"react\";\r\nimport { meetingService } from \"../../../services/meeting/meeting.service\";\r\nimport { MeetingLayout } from \"../../components/MeetingLayout\";\r\nimport json2mq from \"json2mq\";\r\nimport { templateService } from \"../../../services/cms/template/template.service\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport SwipeableDrawer from \"@material-ui/core/SwipeableDrawer\";\r\nimport List from \"@material-ui/core/List\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport clsx from \"clsx\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\n\r\nconst areEqual = (prevProps, nextProps) => {\r\n if (nextProps !== prevProps) {\r\n return false;\r\n } else if (nextProps.moduleChangeKey != prevProps.moduleChangeKey) return false;\r\n return true;\r\n};\r\n\r\nexport const ContentView = memo((props) => {\r\n const [layouts, setLayouts] = useState([]);\r\n const [layout, setLayout] = useState(null);\r\n const [currentTemplate, setCurrentTemplate] = useState(null);\r\n\r\n const layoutRef = useRef(null);\r\n\r\n layoutRef.current = layout;\r\n\r\n const { eventId, moduleChangeKey, hubConnection, settings, preview } = props;\r\n\r\n const { menuOptions } = settings;\r\n\r\n useEffect(() => {\r\n fetchLayouts();\r\n if (hubConnection) hubConnection.on(\"onGetActiveMeetingLayout\", onGetActiveMeetingLayout);\r\n return () => {\r\n if (hubConnection) hubConnection.off(\"onGetActiveMeetingLayout\", onGetActiveMeetingLayout);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!layout) fetchLayouts();\r\n }, [props.layout]);\r\n\r\n useEffect(() => {\r\n if (hubConnection) hubConnection.on(\"onGetActiveMeetingLayout\", onGetActiveMeetingLayout);\r\n return () => {\r\n if (hubConnection) hubConnection.off(\"onGetActiveMeetingLayout\", onGetActiveMeetingLayout);\r\n };\r\n }, [layout]);\r\n\r\n const onGetActiveMeetingLayout = () => {\r\n if (!layoutRef.current) return null;\r\n meetingService.getLayouts(eventId).then((res) => {\r\n setLayout(res.find((d) => d.meetingLayoutId == layoutRef.current.meetingLayoutId));\r\n setLayouts(res);\r\n });\r\n };\r\n\r\n const fetchLayouts = () => {\r\n meetingService.getLayouts(eventId).then((res) => {\r\n setLayout(settings.menuOptions[0] && settings.menuOptions[0].layoutId ? res.find((r) => r.meetingLayoutId == settings.menuOptions[0].layoutId) : null);\r\n setLayouts(res);\r\n });\r\n };\r\n\r\n const moduleIsInLayout = (module) => {\r\n const { meetingModuleId } = module;\r\n return layout.meetingModules.find((mm) => mm.meetingModule.meetingModuleId == meetingModuleId);\r\n };\r\n\r\n const onNavigate = (id, item) => {\r\n const l = layouts.find((l) => l.meetingLayoutId == id);\r\n if (!l && !item.url) return;\r\n else if (item.url && !l) window.open(item.url, \"_blank\");\r\n setLayout(l);\r\n templateService.get(l.templateId).then((res) => {\r\n setCurrentTemplate(res);\r\n });\r\n };\r\n\r\n const moduleBlueprint = (meetingModuleId) => {\r\n const layoutModule = layout.meetingModules.find((mm) => mm.meetingModule.meetingModuleId == meetingModuleId);\r\n if (!layoutModule) return {};\r\n const { posX, posY, height, width, zIndex } = layoutModule;\r\n const requirements = { posX, posY, height, width, zIndex };\r\n return requirements;\r\n };\r\n\r\n const isSmartphone = useMediaQuery(\r\n json2mq({\r\n maxWidth: 600,\r\n })\r\n );\r\n if (!layout && !preview) return null;\r\n const DASettings = {\r\n noneAllowedSpeakers: props.noneAllowedSpeakers,\r\n checkBreakoutVistorMax: props.checkBreakoutVistorMax,\r\n allowChatVideoCall: props.allowChatVideoCall,\r\n allowFullscreen: props.allowFullscreen,\r\n allowSpeaker: props.allowSpeaker,\r\n clientName: props.clientName,\r\n personTypes: props.personTypes,\r\n chatAdmin: props.chatAdmin,\r\n chatAlias: props.chatAlias,\r\n clientInitial: props.clientInitial,\r\n collapsibleAgenda: props.collapsibleAgenda,\r\n parentEventCode: props.parentEventCode,\r\n companyName: props.companyName,\r\n allowModeratorChat: props.allowModeratorChat,\r\n interactionAllowOneToOneChat: props.interactionAllowOneToOneChat,\r\n enableZoomScreenShare: props.enableZoomScreenShare,\r\n dismissConnectionLoss: props.dismissConnectionLoss,\r\n linkedIn: props.linkedIn,\r\n title: props.title,\r\n disableGroupChat: props.disableGroupChat,\r\n anonymous: props.anonymous,\r\n profileImage: props.profileImage,\r\n tickCode: props.tickCode,\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {isSmartphone || (preview && layout?.mobile) ? (\r\n \r\n ) : (\r\n <>\r\n {menuOptions.map((mo) => {\r\n return (\r\n onNavigate(mo.layoutId, mo)}>\r\n {mo.label}\r\n \r\n );\r\n })}\r\n \r\n )}\r\n
\r\n {!preview ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n}, areEqual);\r\n\r\nconst useStyles = makeStyles({\r\n list: {\r\n width: 250,\r\n },\r\n fullList: {\r\n width: \"auto\",\r\n },\r\n});\r\n\r\nconst MobileMenu = ({ menuItems, onNavigate, layout, settings, preview }) => {\r\n const classes = useStyles();\r\n const [state, setState] = React.useState({\r\n top: false,\r\n left: false,\r\n bottom: false,\r\n right: false,\r\n });\r\n\r\n const toggleDrawer = (anchor, open) => (event) => {\r\n if (event && event.type === \"keydown\" && (event.key === \"Tab\" || event.key === \"Shift\")) {\r\n return;\r\n }\r\n\r\n setState({ ...state, [anchor]: open });\r\n };\r\n\r\n const list = (anchor) => (\r\n \r\n \r\n {menuItems.map((item, index) => (\r\n onNavigate(item.layoutId, item)}>\r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n\r\n return (\r\n <>\r\n {[\"left\"].map((anchor) => (\r\n
\r\n \r\n \r\n \r\n {layout?.name}\r\n \r\n {list(anchor)}\r\n \r\n
\r\n ))}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport ZoomOutMapIcon from \"@material-ui/icons/ZoomOutMap\";\r\nimport ArrowUpwardIcon from \"@material-ui/icons/ArrowUpward\";\r\nimport OpacityIcon from \"@material-ui/icons/Opacity\";\r\nimport Crop169Icon from \"@material-ui/icons/Crop169\";\r\nimport Crop54Icon from \"@material-ui/icons/Crop54\";\r\nimport CropLandscapeIcon from \"@material-ui/icons/CropLandscape\";\r\nimport FormatAlignLeftIcon from \"@material-ui/icons/FormatAlignLeft\";\r\nimport FormatAlignCenterIcon from \"@material-ui/icons/FormatAlignCenter\";\r\nimport FormatAlignRightIcon from \"@material-ui/icons/FormatAlignRight\";\r\nimport SettingsOverscanOutlinedIcon from \"@material-ui/icons/SettingsOverscanOutlined\";\r\nimport ImageAspectRatioOutlinedIcon from \"@material-ui/icons/ImageAspectRatioOutlined\";\r\nimport VerticalAlignBottomIcon from \"@material-ui/icons/VerticalAlignBottom\";\r\nimport VerticalAlignCenterIcon from \"@material-ui/icons/VerticalAlignCenter\";\r\nimport VerticalAlignTopIcon from \"@material-ui/icons/VerticalAlignTop\";\r\n\r\nconst HorizontalAlignLeftIcon = () => ;\r\nconst HorizontalAlignCenterIcon = () => ;\r\nconst HorizontalAlignRightIcon = () => ;\r\n\r\nconst onUnitChange = (u, v) => {\r\n let value = v;\r\n if (!value) return value;\r\n if (value.includes(\"%\")) value = value.replace(\"%\", u);\r\n else value = v.replace(/[^0-9\\d.-]/g, \"\") + u;\r\n return value;\r\n};\r\n\r\nexport const imageSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"url\",\r\n label: \"ImageUrl\",\r\n type: \"MULTI_INPUT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"linkEnabled\",\r\n label: \"ImageLinkEnabled\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"link\",\r\n label: \"ImageLink\",\r\n type: \"TEXT\",\r\n showIf: { name: \"linkEnabled\", value: true },\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"ratio\",\r\n label: \"Ratio\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n {\r\n name: \"LOCK\",\r\n label: \"Lock\",\r\n icon: ,\r\n },\r\n {\r\n name: \"AUTO\",\r\n label: \"Auto\",\r\n icon: ,\r\n },\r\n ],\r\n },\r\n /* {\r\n tab: \"ContentSettings\",\r\n name: \"shape\",\r\n label: \"Shape\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"DEFAULT\", label: \"Default\", icon: },\r\n {\r\n name: \"SQUARE\",\r\n label: \"Square\",\r\n icon: ,\r\n },\r\n {\r\n name: \"CIRCLE\",\r\n label: \"Circle\",\r\n icon: ,\r\n },\r\n ],\r\n }, */\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"opacity\",\r\n label: \"Opacity\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 1,\r\n max: 1,\r\n min: 0,\r\n steps: 0.1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\nexport const clientListSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"display\",\r\n label: \"Display\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"connected\", label: \"Connected\", icon: },\r\n { name: \"all\", label: \"All\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"booked\",\r\n label: \"Booked\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"off\", label: \"Off\", icon: },\r\n { name: \"current\", label: \"CurrentRoom\", icon: },\r\n { name: \"breakout\", label: \"SelectedBreakout\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"bookedEventId\",\r\n label: \"BookedBreakout\",\r\n showIf: { name: \"booked\", value: \"breakout\" },\r\n type: \"EVENT_SELECT\",\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showTitle\",\r\n label: \"ShowTitle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showSearchbar\",\r\n label: \"ShowSearchbar\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showAvatar\",\r\n label: \"ShowAvatar\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\nexport const zoomSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"meetingId\",\r\n label: \"MeetingId\",\r\n type: \"text\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"password\",\r\n label: \"Password\",\r\n type: \"text\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"active\",\r\n label: \"StartMeeting\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockAspectRatio\",\r\n label: \"LockAspectRatio\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"aspectRatio\",\r\n label: \"AspectRatio\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: { name: \"lockAspectRatio\", value: true },\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"16:9\", label: \"16:9\", icon: },\r\n { name: \"16:10\", label: \"16:10\", icon: },\r\n { name: \"4:3\", label: \"4:3\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const jitsiSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"meetingName\",\r\n label: \"MeetingName\",\r\n type: \"text\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockAspectRatio\",\r\n label: \"LockAspectRatio\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"aspectRatio\",\r\n label: \"AspectRatio\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: { name: \"lockAspectRatio\", value: true },\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"16:9\", label: \"16:9\", icon: },\r\n { name: \"16:10\", label: \"16:10\", icon: },\r\n { name: \"4:3\", label: \"4:3\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const videoSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"url\",\r\n label: \"VideoUrl\",\r\n type: \"text\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockAspectRatio\",\r\n label: \"LockAspectRatio\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"aspectRatio\",\r\n label: \"AspectRatio\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: { name: \"lockAspectRatio\", value: true },\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"16:9\", label: \"16:9\", icon: },\r\n { name: \"16:10\", label: \"16:10\", icon: },\r\n { name: \"4:3\", label: \"4:3\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const buttonSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"url\",\r\n label: \"Url\",\r\n type: \"LINK_INPUT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayText\",\r\n label: \"ButtonText\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"openInNewWindow\",\r\n label: \"OpenInNewWindow\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"useTemplateStyle\",\r\n label: \"OverwriteTemplateStyle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 50,\r\n min: 1,\r\n },\r\n },\r\n\r\n //boxshadow\r\n];\r\n\r\nexport const textSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"text\",\r\n label: \"Text\",\r\n type: \"TEXTAREA\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"textAlign\",\r\n label: \"TextAlignment\",\r\n type: \"BUTTON_GROUP_SMALL\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"left\", label: \"Left\", icon: },\r\n /* { name: \"SLIDE\", label: \"Slide\", icon: }, */\r\n { name: \"center\", label: \"Center\", icon: },\r\n { name: \"right\", label: \"Right\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n\r\n //boxshadow\r\n];\r\n\r\nexport const blockSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 0,\r\n max: 20,\r\n min: 0,\r\n steps: 0.1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 4,\r\n max: 50,\r\n min: 0,\r\n steps: 0.1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n //boxshadow\r\n];\r\n\r\nexport const groupGeneratorSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"breakoutId\",\r\n label: \"BreakoutId\",\r\n type: \"EVENT_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n /* {\r\n tab: \"ContentSettings\",\r\n name: \"breakoutId\",\r\n label: \"BreakoutId\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n }, */\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"rooms\",\r\n label: \"NumberOfRooms\",\r\n type: \"NUMBER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 3,\r\n max: 1000,\r\n min: 1,\r\n steps: 1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"max\",\r\n label: \"MaxCount\",\r\n type: \"number\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 3,\r\n max: 1000,\r\n min: 1,\r\n steps: 1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"text\",\r\n label: \"ButtonText\",\r\n type: \"text\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const breakoutSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"filterByGroup\",\r\n label: \"FilterEventsByGroup\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showTitle\",\r\n label: \"ShowTitle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"collapsibleDescription\",\r\n label: \"CollapsibleDescription\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showSubtitle\",\r\n label: \"ShowSubtitle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showAvatar\",\r\n label: \"ShowAvatar\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showButton\",\r\n label: \"ShowButton\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"divideTimeslot\",\r\n label: \"DivideRowsByTime\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showAlternativeName\",\r\n label: \"ShowAlternativeName\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\nexport const exhibitorSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"filterByGroup\",\r\n label: \"FilterByGroup\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"carousel\",\r\n label: \"Carousel\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"textLeft\",\r\n label: \"TextToLeft\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"scroll\",\r\n label: \"Scroll\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showText\",\r\n label: \"ShowTextInsteadOfImage\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"oneRow\",\r\n label: \"OneRow\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"colsPerRow\",\r\n label: \"ColsPerRow\",\r\n type: \"NUMBER\",\r\n showIf: { name: \"oneRow\", value: false },\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 3,\r\n max: 12,\r\n min: 1,\r\n steps: 1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"hideText\",\r\n label: \"HideText\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const userCardSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowProfileEdit\",\r\n label: \"AllowProfileEdit\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const imageSourceSettinglist = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"url\",\r\n label: \"ImageSource\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"data\",\r\n label: \"JsonData\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"target\",\r\n label: \"TargetTab\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"_blank\", label: \"NewTab\", icon: },\r\n { name: \"_self\", label: \"SameTab\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const chatSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"hideMessages\",\r\n label: \"HideMessages\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showUserProfileImage\",\r\n label: \"ShowUserProfileImage\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showAllConnections\",\r\n label: \"ShowAllConnections\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showSnackbar\",\r\n label: \"ShowMissedMessageSnackbar\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"hideFooter\",\r\n label: \"HideFooter\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"hideHeader\",\r\n label: \"HideHeader\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"getChatFromEvent\",\r\n label: \"GetChatFromEvent\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"requestedEventId\",\r\n label: \"requestedEventId\",\r\n type: \"EVENT_SELECT\",\r\n showIf: { name: \"getChatFromEvent\", value: true },\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"vertical\",\r\n label: \"VerticalSnackbarPosition\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: { name: \"showSnackbar\", value: true },\r\n prop: \"settings\",\r\n subProp: \"snackbarPostion\",\r\n extra: [\r\n { name: \"top\", label: \"Top\", icon: },\r\n { name: \"bottom\", label: \"Bottom\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"horizontal\",\r\n label: \"HorizontalSnackbarPosition\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: { name: \"showSnackbar\", value: true },\r\n prop: \"settings\",\r\n subProp: \"snackbarPostion\",\r\n extra: [\r\n { name: \"left\", label: \"Left\", icon: },\r\n { name: \"center\", label: \"Center\", icon: },\r\n { name: \"right\", label: \"Right\", icon: },\r\n ],\r\n },\r\n\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const pollModuleSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\nexport const presenterModule = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showLabel\",\r\n label: \"ShowQuestionLabel\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\nexport const vongageSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowFullscreen\",\r\n label: \"AllowFullscreen\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"backstage\",\r\n label: \"UseBackstage\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"requestedEventId\",\r\n label: \"GetStreamFromOtherRoom\",\r\n type: \"EVENT_SELECT\",\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"aspectRatio\",\r\n label: \"AspectRatio\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"16:9\", label: \"16:9\", icon: },\r\n { name: \"16:10\", label: \"16:10\", icon: },\r\n { name: \"4:3\", label: \"4:3\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showNametags\",\r\n label: \"ShowNametags\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n {\r\n name: \"ALWAYS\",\r\n label: \"Always\",\r\n icon: ,\r\n },\r\n {\r\n name: \"NEVER\",\r\n label: \"Never\",\r\n icon: ,\r\n },\r\n {\r\n name: \"HOVER\",\r\n label: \"Hover\",\r\n icon: ,\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport const htmlSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"html\",\r\n label: \"SourceCode\",\r\n type: \"SOURCE_EDITOR\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\nexport const plauditButtonSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"expanded\",\r\n label: \"PlauditExpanded\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"columns\",\r\n label: \"Columns\",\r\n type: \"NUMBER\",\r\n showIf: { name: \"expanded\", value: true },\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 2,\r\n max: 20,\r\n min: 1,\r\n steps: 1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"icons\",\r\n label: \"Icons\",\r\n type: \"ICON_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fabColor\",\r\n label: \"FabColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fabIconColor\",\r\n label: \"FabIconColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"buttonBackgroundColor\",\r\n label: \"ButtonBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"buttonBorderColor\",\r\n label: \"ButtonBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n];\r\nexport const plauditTrackSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n];\r\nexport const agendaSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"hideTitle\",\r\n label: \"HideTitle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"hideSubtitle\",\r\n label: \"HideSubtitle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"hideSpeaker\",\r\n label: \"HideSpeakerCard\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"getAgendaFromOtherEvent\",\r\n label: \"GetAgendaFromOtherEvent\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"requestedEventId\",\r\n label: \"GetAgendaFrom\",\r\n type: \"EVENT_SELECT\",\r\n showIf: { name: \"getAgendaFromOtherEvent\", value: true },\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"collapsibleAgenda\",\r\n label: \"CollapsibleAgenda\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowRequestTheFloor\",\r\n label: \"RequestTheFloor\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowPointOfOrder\",\r\n label: \"PointOfOrder\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowRequestLineOfSpeaker\",\r\n label: \"RequestLineOfSpeaker\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const speakerControlSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowRequestTheFloor\",\r\n label: \"RequestTheFloor\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowPointOfOrder\",\r\n label: \"PointOfOrder\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"allowRequestLineOfSpeaker\",\r\n label: \"RequestLineOfSpeaker\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"overwriteTemplateButtonStyle\",\r\n label: \"OverwriteTempalteButtonStyle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"buttonBackground\",\r\n label: \"ButtonBackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const eventNameSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const contentViewSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"menuOptions\",\r\n label: \"MenuOptions\",\r\n type: \"MENU_EDITOR\",\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n separator: true,\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderColor\",\r\n label: \"MenuBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderWidth\",\r\n label: \"MenuBorderWidth\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"justifyContent\",\r\n label: \"MenuOptionAlignment\",\r\n type: \"BUTTON_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n {\r\n name: \"flex-start\",\r\n label: \"Left\",\r\n icon: ,\r\n },\r\n {\r\n name: \"center\",\r\n label: \"Center\",\r\n icon: ,\r\n },\r\n {\r\n name: \"flex-end\",\r\n label: \"Right\",\r\n icon: ,\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport const speakerCardSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n separator: true,\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"imageSize\",\r\n label: \"ImageSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 70,\r\n units: [\"px\"],\r\n activeUnit: \"px\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n separator: true,\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"imageBorderColor\",\r\n label: \"ImageBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"imageBorderWidth\",\r\n label: \"ImageBorderWidth\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n separator: true,\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"containerBorderColor\",\r\n label: \"ContainerBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"containerBorderWidth\",\r\n label: \"ContainerBorderWidth\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const speakerListSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontFamily\",\r\n label: \"FontFamily\",\r\n type: \"FONTFAMILY_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontWeight\",\r\n label: \"FontWeight\",\r\n type: \"FONTWEIGHT_SELECT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"background\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n separator: true,\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"imageBorderColor\",\r\n label: \"ImageBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"imageBorderWidth\",\r\n label: \"ImageBorderWidth\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n separator: true,\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"containerBorderColor\",\r\n label: \"ContainerBorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"containerBorderWidth\",\r\n label: \"ContainerBorderWidth\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const videoWallSettingsList = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"wallName\",\r\n label: \"WallName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"balanceScreens\",\r\n label: \"BalanceScreens\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"useTemplateStyle\",\r\n label: \"OverwriteTemplateStyle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"backgroundColor\",\r\n label: \"BackgroundColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderColor\",\r\n label: \"BorderColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"fontSize\",\r\n label: \"FontSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderWidth\",\r\n label: \"BorderWidth\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"borderRadius\",\r\n label: \"BorderRadius\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 50,\r\n min: 1,\r\n },\r\n },\r\n];\r\n\r\nexport const genericSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"showSubtitle\",\r\n label: \"ShowSubtitle\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const countdownSettings = [\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"lockPosAndSize\",\r\n label: \"LockPosAndSize\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"show\",\r\n label: \"Show\",\r\n type: \"SWITCH\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"displayName\",\r\n label: \"DisplayName\",\r\n type: \"TEXT\",\r\n showIf: null,\r\n prop: \"module\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"Color\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"datetime\",\r\n label: \"CountdownTime\",\r\n type: \"DATE_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"color\",\r\n label: \"TextColor\",\r\n type: \"COLOR_PICKER\",\r\n showIf: null,\r\n prop: \"settings\",\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"textSize\",\r\n label: \"TextSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"StyleSettings\",\r\n name: \"numberSize\",\r\n label: \"NumberSize\",\r\n type: \"SLIDER\",\r\n prop: \"settings\",\r\n extra: {\r\n defaultValue: 18,\r\n units: [\"vh\", \"px\", \"%\"],\r\n activeUnit: \"vh\",\r\n onUnitChange: onUnitChange,\r\n steps: 1,\r\n max: 100,\r\n min: 1,\r\n },\r\n },\r\n {\r\n tab: \"ContentSettings\",\r\n name: \"entranceAnimation\",\r\n label: \"EntranceAnimation\",\r\n type: \"ANIMATION_GROUP\",\r\n showIf: null,\r\n prop: \"settings\",\r\n extra: [\r\n /* { name: \"GROW\", label: \"Grow\", icon: }, */\r\n { name: \"SLIDE\", label: \"Slide\", icon: },\r\n { name: \"ZOOM\", label: \"Zoom\", icon: },\r\n { name: \"FADE\", label: \"Fade\", icon: },\r\n ],\r\n },\r\n];\r\n\r\nexport const defaultModuleSettings = (module) => {\r\n return {\r\n ...moduleSettings(module),\r\n entranceAnimation: \"ZOOM\",\r\n animationDuration: 2000,\r\n lockPosAndSize: false,\r\n show: true,\r\n };\r\n};\r\n\r\nconst moduleSettings = (type) => {\r\n switch (type) {\r\n case \"Image\":\r\n return image;\r\n case \"Breakouts\":\r\n return breakout;\r\n case \"Agenda\":\r\n return agenda;\r\n case \"ZoomFrame\":\r\n return zoom;\r\n case \"Iframe\":\r\n return iframe;\r\n case \"ClientFrame\":\r\n return {};\r\n case \"JitsiFrame\":\r\n return jitsi;\r\n case \"Video\":\r\n return video;\r\n case \"UserCard\":\r\n return userCard;\r\n case \"ButtonModule\":\r\n return button;\r\n case \"TextModule\":\r\n return text;\r\n case \"VonageVideoClientModule\":\r\n return vonage;\r\n case \"BlockModule\":\r\n return block;\r\n case \"Chat\":\r\n return chat;\r\n case \"Exhibitors\":\r\n return exhibitor;\r\n case \"Connections\":\r\n return {};\r\n case \"GroupGenerator\":\r\n return groupGenerator;\r\n case \"ClientList\":\r\n return clientList;\r\n case \"Poll\":\r\n return poll;\r\n case \"Html\":\r\n return html;\r\n case \"SpeakerControl\":\r\n return speakerControl;\r\n case \"Iframe\":\r\n return {};\r\n case \"ImageMap\":\r\n return imageMap;\r\n case \"CountdownModule\":\r\n return countdown;\r\n case \"VideoWallModule\":\r\n return videoWall;\r\n case \"SpeakerCard\":\r\n return speakerCard;\r\n case \"SpeakerList\":\r\n return speakerList;\r\n case \"EventName\":\r\n return eventName;\r\n case \"ContentView\":\r\n return contentView;\r\n case \"Presenter\":\r\n return presenter;\r\n default:\r\n return {};\r\n }\r\n};\r\n\r\nconst countdown = {\r\n color: \"#000\",\r\n datetime: null,\r\n textSize: 15,\r\n numberSize: 15,\r\n};\r\nconst clientList = {\r\n display: \"connected\",\r\n booked: \"off\",\r\n showTitle: true,\r\n showSearchbar: true,\r\n showAvatar: true,\r\n};\r\nconst exhibitor = {\r\n display: \"GRID\" /*GRID/LIST */,\r\n wrapper: \"NONE\" /*Bottomdialog/Dialog/GROW */,\r\n carousel: false,\r\n showSlideNo: false,\r\n oneRow: false,\r\n collapsible: false,\r\n icon: null,\r\n colsPerRow: 3,\r\n hideText: false,\r\n textLeft: false,\r\n scroll: false,\r\n showText: false,\r\n /* colMaxHeight: \"auto\", */\r\n filterByGroup: \"\",\r\n};\r\n\r\nconst speakerList = {\r\n backgroundColor: \"#fff\",\r\n fontFamily: \"Open Sans\",\r\n color: \"#222\",\r\n fontWeight: \"normal\",\r\n};\r\n\r\nconst breakout = {\r\n display: \"GRID\" /*GRID/LIST */,\r\n wrapper: \"NONE\" /*Bottomdialog/Dialog/GROW */,\r\n collapsible: false,\r\n icon: null,\r\n showTitle: true,\r\n showSubtitle: true,\r\n collapsibleDescription: true,\r\n showAvatar: true,\r\n showButtonIcon: true,\r\n divideTimeslot: false,\r\n filterByGroup: \"\",\r\n showAlternativeName: false,\r\n};\r\n\r\nconst poll = {\r\n collapsible: false,\r\n};\r\nconst presenter = {\r\n showLabel: true,\r\n};\r\nconst block = {\r\n background: \"#fff\",\r\n borderRadius: \"4px\",\r\n borderWidth: \"0px\",\r\n borderColor: \"#fff\",\r\n borderStyle: \"solid\",\r\n boxShadow: \"none\",\r\n};\r\n\r\nconst speakerCard = {\r\n fontFamily: \"inherit\",\r\n fontSize: \"2.2vh\",\r\n color: \"#ff\",\r\n fontWeight: \"normal\",\r\n background: \"#fff\",\r\n\r\n imageBorderWidth: \"8px\",\r\n imageBorderColor: \"#fff\",\r\n imageSize: \"100px\",\r\n containerBorderWidth: \"0px\",\r\n containerBorderColor: \"transparent\",\r\n};\r\n\r\nconst contentView = {\r\n menuOptions: [],\r\n justifyContent: \"center\",\r\n fontFamily: \"inherit\",\r\n fontSize: \"2.2vh\",\r\n color: \"#fff\",\r\n fontWeight: \"normal\",\r\n background: \"#fff\",\r\n borderColor: \"transparent\",\r\n borderWidth: 0,\r\n};\r\n\r\nconst speakerControl = {\r\n allowRequestTheFloor: false,\r\n allowPointOfOrder: false,\r\n allowRequestLineOfSpeaker: false,\r\n overwriteTemplateButtonStyle: false,\r\n fontFamily: \"inherit\",\r\n fontSize: \"2.2vh\",\r\n color: \"#fff\",\r\n buttonBackground: \"red\",\r\n fontWeight: \"normal\",\r\n background: \"#fff\",\r\n borderColor: \"transparent\",\r\n};\r\n\r\nconst agenda = {\r\n hideSpeaker: false,\r\n hideSubtitle: false,\r\n hideTitle: false,\r\n requestedEventId: null,\r\n getAgendaFromOtherEvent: false,\r\n allowRequestTheFloor: false,\r\n allowPointOfOrder: false,\r\n allowRequestLineOfSpeaker: false,\r\n};\r\n\r\nconst eventName = {\r\n fontFamily: \"inherit\",\r\n fontSize: \"2.2vh\",\r\n color: \"#ff\",\r\n letterSpacing: \"1px\",\r\n textTransform: \"none\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"normal\",\r\n};\r\n\r\nconst text = {\r\n fontFamily: \"inherit\",\r\n fontSize: \"2.2vh\",\r\n color: \"#ff\",\r\n letterSpacing: \"1px\",\r\n textTransform: \"none\",\r\n fontWeight: \"normal\",\r\n lineHeight: \"normal\",\r\n text: \"text\",\r\n};\r\n\r\nconst groupGenerator = {\r\n breakoutId: \"\",\r\n rooms: 10,\r\n max: 6,\r\n text: \"ButtonText\",\r\n};\r\n\r\nconst chat = {\r\n showUserProfileImage: false,\r\n collapsible: false,\r\n showAllConnections: false,\r\n showSnackbar: false,\r\n hideFooter: false,\r\n hideHeader: false,\r\n requestedEventId: null,\r\n vertical: \"top\",\r\n horizontal: \"left\",\r\n};\r\n\r\nconst userCard = {\r\n allowProfileEdit: false,\r\n};\r\n\r\nconst button = {\r\n url: \"https://google.se\",\r\n buttonText: \"Text\",\r\n openInNewWindow: false,\r\n useTemplateStyle: false,\r\n backgroundColor: \"unset\",\r\n borderRadius: \"unset\",\r\n color: \"unset\",\r\n padding: \"6px 12px 6px 12px\",\r\n borderColor: \"unset\",\r\n fontSize: \"unset\",\r\n borderWidth: \"unset\",\r\n borderStyle: \"unset\",\r\n};\r\n\r\nconst image = {\r\n url: \"\",\r\n backgroundColor: \"none\",\r\n opacity: 1,\r\n ratio: \"AUTO\",\r\n linkEnabled: false,\r\n link: \"\",\r\n shape: \"DEFAULT\" /* SQUARE / CIRCLE */,\r\n};\r\n\r\nconst html = {\r\n html: \"\",\r\n css: \"\",\r\n};\r\n\r\nconst iframe = {\r\n url: \"\",\r\n aspectRatio: \"16:9\",\r\n lockAspectRatio: false,\r\n};\r\n\r\nconst imageMap = {\r\n url: \"\",\r\n data: \"\",\r\n target: \"\",\r\n};\r\n\r\nconst vonage = {\r\n backgroundColor: \"transparent\",\r\n backstage: false,\r\n requestedEventId: null,\r\n allowFullscreen: true,\r\n showNametags: \"NEVER\",\r\n lockAspectRatio: true,\r\n aspectRatio: \"16:9\",\r\n};\r\n\r\nconst video = {\r\n url: \"\",\r\n aspectRatio: \"16:9\",\r\n lockAspectRatio: false,\r\n};\r\nconst jitsi = {\r\n meetingName: \"\",\r\n aspectRatio: \"16:9\",\r\n lockAspectRatio: false,\r\n};\r\nconst zoom = {\r\n meetingId: \"\",\r\n password: \"\",\r\n aspectRatio: \"16:9\",\r\n lockAspectRatio: false,\r\n active: false,\r\n};\r\n\r\nconst videoWall = {\r\n id: \"\",\r\n balanceScreens: false,\r\n useTemplateStyle: false,\r\n backgroundColor: \"unset\",\r\n borderRadius: \"unset\",\r\n color: \"unset\",\r\n padding: \"6px 12px 6px 12px\",\r\n borderColor: \"unset\",\r\n fontSize: \"unset\",\r\n borderWidth: \"unset\",\r\n borderStyle: \"unset\",\r\n};\r\n\r\n//HTML / BILD / EXHIBITOR/ STREAM /ZOOM /JITSI / AGENDA\r\n","import React, { useEffect, useState } from \"react\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport VonageSpeakerDialog from \"../Vonage/components/VonageSpeakerDialog\";\r\n\r\nexport const VideoWallModule = (props) => {\r\n const [dialogOpen, setDialogOpen] = useState(false);\r\n const [timesKicked, setTimesKicked] = useState(0);\r\n const [videoWallProps, setVideoWallProps] = useState(null);\r\n const [videoWallFull, setVideoWallFull] = useState(false);\r\n const { hubConnection, clientKey, eventId, lang, settings, preview, template, channel } = props;\r\n const { wallName, balanceScreens = false, backgroundColor, color, borderRadius, borderColor, borderWidth, fontSize, useTemplateStyle } = settings;\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.VideoWall\", lang);\r\n\r\n }, []);\r\n useEffect(() => {\r\n if (hubConnection && hubConnection.connectionState == 1) {\r\n hubConnection.on(\"onGetTokenForVideoWall\", onGetTokenForVideoWall);\r\n hubConnection.on(\"onVideoWallFull\", onVideoWallFull);\r\n hubConnection.on(\"onKickPersonFromWall\", onKickPersonFromWall);\r\n }\r\n return () => {\r\n if (hubConnection && hubConnection.connectionState == 1) {\r\n hubConnection.off(\"onGetTokenForVideoWall\", onGetTokenForVideoWall);\r\n hubConnection.off(\"onVideoWallFull\", onVideoWallFull);\r\n hubConnection.off(\"onKickPersonFromWall\", onKickPersonFromWall);\r\n }\r\n }\r\n });\r\n const buttonStyle = {\r\n padding: \"6px 12px\",\r\n minWidth: \"50px\",\r\n width: \"100%\",\r\n height: \"auto\",\r\n\r\n backgroundColor: backgroundColor != \"unset\" && useTemplateStyle ? backgroundColor : template.button.backgroundColor,\r\n borderRadius: borderRadius != \"unset\" && useTemplateStyle ? borderRadius : template.button.borderRadius,\r\n color: color != \"unset\" && useTemplateStyle ? color : template.button.color,\r\n padding: \"6px 12px 6px 12px\",\r\n borderColor: borderColor != \"unset\" && useTemplateStyle ? borderColor : template.button.borderColor,\r\n fontSize: fontSize != \"unset\" && useTemplateStyle ? fontSize : template.button.fontSize,\r\n borderWidth: borderWidth != \"unset\" && useTemplateStyle ? borderWidth : template.button.borderWidth,\r\n borderStyle: borderWidth != \"unset\" && useTemplateStyle ? \"solid\" : undefined,\r\n };\r\n const onKickPersonFromWall = (name, key) => {\r\n if (wallName?.toLowerCase() === name.toLowerCase() && clientKey === key) {\r\n setTimesKicked(timesKicked + 1);\r\n }\r\n }\r\n const onGetTokenForVideoWall = (apiKey, sessionId, token) => {\r\n setVideoWallProps({ apiKey, sessionId, token, wallName });\r\n setDialogOpen(true);\r\n }\r\n const onVideoWallFull = () => {\r\n setVideoWallFull(true);\r\n setTimeout(() => setVideoWallFull(false), 5000);\r\n }\r\n const requestSession = () => {\r\n if (hubConnection && hubConnection.connectionState == 1) {\r\n hubConnection.invoke(\"getTokenForVideoWall\", eventId, wallName.toLowerCase(), clientKey, balanceScreens);\r\n }\r\n };\r\n const handleDialogClose = () => {\r\n setDialogOpen(false);\r\n setVideoWallProps(null);\r\n }\r\n const api = {\r\n ...props,\r\n videoWallProps,\r\n videoWall: true,\r\n handleClose: handleDialogClose\r\n };\r\n return (\r\n
\r\n {dialogOpen && videoWallProps ? : null}\r\n = 5)}\r\n style={template ? { ...template.button, ...buttonStyle } : {}}\r\n onClick={() => requestSession()}\r\n >\r\n {!videoWallFull && (timesKicked < 5) ? : null}\r\n {videoWallFull && (timesKicked < 5) ? : null}\r\n {(timesKicked >= 5) ? : null}\r\n \r\n
\r\n );\r\n};\r\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport SpeedDial from \"@material-ui/lab/SpeedDial\";\r\nimport SpeedDialAction from \"@material-ui/lab/SpeedDialAction\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\nimport { Spinner } from \"reactstrap\";\r\nimport { Fab, IconButton } from \"@material-ui/core\";\r\nimport EmojiEmotionsIcon from \"@material-ui/icons/EmojiEmotions\";\r\nimport { authHeader } from \"../../../helpers/authHeader\";\r\nimport { ScrollWrapper } from \"../../helpers/module.helper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n transform: \"translateZ(0px)\",\r\n flexGrow: 1,\r\n },\r\n exampleWrapper: {\r\n position: \"relative\",\r\n marginTop: theme.spacing(3),\r\n height: 380,\r\n },\r\n radioGroup: {\r\n margin: theme.spacing(1, 0),\r\n },\r\n speedDial: {\r\n position: \"absolute\",\r\n \"&.MuiSpeedDial-directionUp, &.MuiSpeedDial-directionLeft\": {\r\n bottom: theme.spacing(2),\r\n right: theme.spacing(2),\r\n },\r\n \"&.MuiSpeedDial-directionDown, &.MuiSpeedDial-directionRight\": {\r\n top: theme.spacing(2),\r\n left: theme.spacing(2),\r\n },\r\n },\r\n}));\r\n\r\nexport default function PlauditButtons({ hubConnection, connected, connecting, showDiscBtn, reConnect, eventId, eventName, settings, preview, fullscreenRef, template }) {\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n const [spamBlock, setSpamBlock] = useState(false);\r\n const [uploadedFiles, setUploadedFiles] = useState({});\r\n const { expanded = false, columns = 2, icons = \"\", fabColor = \"#3f51b5\", fabIconColor = \"#fff\", buttonBackgroundColor = \"#fff\", buttonBorderColor = \"#aaa\" } = settings;\r\n\r\n const iconList = useMemo(() => {\r\n return icons.split(\";\").filter(x => x !== \"\");\r\n }, [icons])\r\n\r\n var iconsPerColumn = useMemo(() => {\r\n return Number.isInteger(iconList.length / columns) ? iconList.length / columns : (parseInt(iconList.length / columns) + 1)\r\n }, [columns, iconList?.length])\r\n\r\n useEffect(() => {\r\n getUploadedIcons();\r\n }, [])\r\n\r\n const getUploadedIcons = () => {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({}),\r\n };\r\n fetch(\r\n `./api/files/icons/${eventId}`,\r\n requestOptions\r\n ).then((response) =>\r\n response.text().then((text) => {\r\n try {\r\n const storageSummary = JSON.parse(text);\r\n var files = {};\r\n for (const file of storageSummary.files) {\r\n files[file.name] = file.url;\r\n }\r\n setUploadedFiles(files);\r\n } catch (error) {\r\n console.error(\"DOWNLOAD_ERROR\", error);\r\n }\r\n })\r\n );\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const sendReaction = (name, e) => {\r\n if (hubConnection) {\r\n try {\r\n if (open) {\r\n setOpen(false);\r\n }\r\n if (!spamBlock) {\r\n hubConnection.invoke(\"sendReaction\", parseInt(eventId), name).catch(() => { });\r\n setSpamBlock(true);\r\n const targetElement = e.currentTarget;\r\n targetElement.classList.add(\"plaudit-button-click-event\");\r\n setTimeout(() =>{\r\n targetElement.classList.remove(\"plaudit-button-click-event\");\r\n setSpamBlock(false)\r\n }, 500)\r\n }\r\n } catch (error) { }\r\n }\r\n };\r\n\r\n \r\n\r\n const onBtnClick = () => {\r\n if (showDiscBtn && !connected && typeof reConnect === \"function\") {\r\n reConnect();\r\n }\r\n };\r\n\r\n if (!expanded) {\r\n return (\r\n \r\n {connected || (!connected && !showDiscBtn) ? (\r\n }\r\n onClose={handleClose}\r\n FabProps={{\r\n style: {\r\n background: fabColor,\r\n color: fabIconColor\r\n },\r\n }}\r\n onOpen={handleOpen}\r\n open={open}\r\n direction={\"left\"}\r\n >\r\n {iconList\r\n ? iconList\r\n .map((icon) => {\r\n return }\r\n tooltipOpen={false}\r\n tooltipPlacement={\"bottom\"}\r\n tooltipTitle={\"\"}\r\n onClick={(e) => sendReaction(icon, e)}\r\n FabProps={{\r\n style: {\r\n background: \"#00000000\",\r\n boxShadow: \"unset\",\r\n },\r\n }}\r\n />\r\n })\r\n : null}\r\n \r\n ) : (\r\n \r\n {connecting && !connected ? : }\r\n \r\n )}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n {iconList.map((icon) => {\r\n return (\r\n null : (e) => sendReaction(icon, e)}\r\n \r\n onMouseDown={preview ? () => null : (e) => sendReaction(icon, e)}\r\n key={icon}\r\n style={{\r\n width: \"100%\",\r\n aspectRatio: \"1\",\r\n borderWidth: \"2px\",\r\n borderStyle: \"solid\",\r\n borderColor: buttonBorderColor,\r\n borderRadius: \"5px\",\r\n backgroundColor: buttonBackgroundColor,\r\n pointerEvents: preview ? \"none\" : undefined,\r\n position:\"relative\",\r\n overflow:\"hidden\",\r\n transition:\"padding 0.03s linear\"\r\n }}\r\n >\r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/rush.131ca3e6.mp3\";","module.exports = __webpack_public_path__ + \"static/media/ringing.f6423359.mp3\";","module.exports = __webpack_public_path__ + \"static/media/chat.e518c2e0.mp3\";","import { Button, FormControl, FormGroup, FormLabel } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { ScrollWrapper } from \"../../../helpers/module.helper\";\r\n\r\nexport function ButtonOptionQuestion(props) {\r\n const { lang, selectOption, question, answerList, questionList, pollTemplate, preview } = props;\r\n const { questionLanguage, questionId, questionOption } = question;\r\n const { buttonOption, questionTitle } = pollTemplate;\r\n\r\n const {\r\n defaultBorderColor,\r\n defaultTextColor,\r\n defaultBackgroundColor,\r\n checkedBorderColor,\r\n checkedTextColor,\r\n checkedBackgroundColor,\r\n borderRadius,\r\n borderWidth,\r\n borderStyle,\r\n fontFamily,\r\n fontSize,\r\n fontWeight,\r\n margin,\r\n } = buttonOption;\r\n\r\n const checkedStyle = {\r\n borderColor: checkedBorderColor,\r\n color: checkedTextColor,\r\n background: checkedBackgroundColor,\r\n };\r\n\r\n const defaultStyle = {\r\n borderColor: defaultBorderColor,\r\n color: defaultTextColor,\r\n background: defaultBackgroundColor,\r\n };\r\n\r\n let buttonStyle = {\r\n borderRadius,\r\n borderWidth,\r\n borderStyle,\r\n fontFamily,\r\n fontWeight,\r\n fontSize,\r\n minHeight: 20,\r\n margin: `${margin} 0px`,\r\n width: \"100%\",\r\n height: \"auto\",\r\n };\r\n\r\n const label = questionLanguage.find((ql) => ql.languageCode == lang)?.label;\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n \r\n \r\n {questionOption.map((o, i) => {\r\n const selected = answerList.find((al) => al.value == o.questionOptionId && al.questionId == questionId) || (i == 1 && preview);\r\n buttonStyle = selected ? { ...buttonStyle, ...checkedStyle } : { ...buttonStyle, ...defaultStyle };\r\n return (\r\n selectOption(i, !selected ? true : false, questionId)}\r\n >\r\n {o.questionOptionLanguage.find((ql) => ql.languageCode == lang)?.label ?? o.questionOptionLanguage[0].label}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\n\r\n","import { Avatar, FormLabel } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport EqualizerOutlinedIcon from \"@material-ui/icons/EqualizerOutlined\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nexport const NoQuestionPlaceholder = ({ pollTemplate }) => {\r\n const { placeholder } = pollTemplate;\r\n const {\r\n iconColor,\r\n iconBackgroundColor,\r\n fontWeight,\r\n fontFamily,\r\n color,\r\n } = placeholder;\r\n \r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","import { FormControl, FormLabel } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { Input } from \"reactstrap\";\r\nexport function TextQuestion(props) {\r\n const { lang, onTextInput, question, answerList, pollTemplate } = props;\r\n const { questionLanguage, questionId } = question;\r\n const label = questionLanguage.find((ql) => ql.languageCode === lang)?.label ?? questionLanguage?.[0]?.label ?? \"Missing Label\";\r\n const answer = answerList.find((nl) => nl.questionId == questionId);\r\n const { textInput, questionTitle } = pollTemplate;\r\n return (\r\n \r\n \r\n {label}\r\n \r\n onTextInput(questionId, e.target.value)} value={answer ? answer.value : \"\"} type=\"textarea\" />\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { ButtonOptionQuestion } from \"./ButtonOptionQuestion\";\r\nimport { NoQuestionPlaceholder } from \"./NoQuestionPlaceholder\";\r\nimport { TextQuestion } from \"./TextQuestion\";\r\n\r\nexport function Question(props) {\r\n const { questionList, pageNo } = props;\r\n if (!questionList[pageNo - 1]) return null;\r\n const { question } = questionList[pageNo - 1];\r\n switch (question.type) {\r\n case \"Option\":\r\n //Villkor för vad som ska ritas ut\r\n /* return ; */\r\n return ;\r\n case \"Text\":\r\n return ;\r\n default:\r\n return ;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nexport function AnswerSentAlert({ sent }) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Button, Card, CardActions, CardContent, IconButton } from \"@material-ui/core\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport { Question } from \"./Question\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { AnswerSentAlert } from \"./AnswerSentAlert\";\r\nimport { NoQuestionPlaceholder } from \"./NoQuestionPlaceholder\";\r\n\r\nexport function PollModuleContainer(props) {\r\n const { questionList, togglePage, pageNo, valid, answerList, send, pollTemplate, sent, preview } = props;\r\n\r\n const { pagination, sendButton, frame } = pollTemplate;\r\n const question = questionList.length ? (questionList[pageNo - 1] ? questionList[pageNo - 1].question : {}) : {};\r\n\r\n const { questionId } = question;\r\n const answer = answerList.find((nl) => nl.questionId == questionId);\r\n const validateOptionQuestion = () => {\r\n if (!question) return false;\r\n let len = answerList.filter((a) => a.questionId == question.questionId).length;\r\n if (question && question.requiredMin !== null && question.requiredMin > 0) {\r\n if (len < question.requiredMin) {\r\n return false;\r\n }\r\n }\r\n if (question && question.requiredMax !== null && question.requiredMax > 0) {\r\n if (len > question.requiredMax) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n let isValid = false;\r\n const questionType = question ? question.type : null;\r\n if (questionType == \"Option\") {\r\n isValid = validateOptionQuestion();\r\n } else if (questionType == \"Text\") {\r\n isValid = answer ? answer.valid : false;\r\n } else {\r\n isValid = false;\r\n }\r\n return (\r\n \r\n \r\n \r\n {questionList.length > 0 ? : }\r\n \r\n {questionList.length > 0 ? (\r\n \r\n
\r\n {questionList.length > 1 ? (\r\n
\r\n togglePage(pageNo - 1)} style={{ color: pagination.stepColor }} disabled={pageNo == 1} size=\"small\">\r\n \r\n \r\n {`${pageNo} / ${questionList.length}`}\r\n\r\n togglePage(pageNo + 1)} style={{ color: pagination.stepColor }} disabled={pageNo == questionList.length} size=\"small\">\r\n \r\n \r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n","export const pollStyle = (template) => {\r\n if (template && template.interaction.poll) {\r\n const obj = template.interaction.poll;\r\n const placeholder = obj.placeholder;\r\n const frame = obj.frame;\r\n const textInput = obj.textInput;\r\n const sendButton = obj.sendButton;\r\n const pagination = obj.pagination;\r\n const questionTitle = obj.questionTitle;\r\n const buttonOption = obj.buttonOption;\r\n const boxOption = obj.boxOption;\r\n\r\n return {\r\n placeholder: {\r\n iconColor: placeholder.iconColor != \"unset\" ? placeholder.iconColor : \"rgb(90, 96, 227)\",\r\n iconBackgroundColor: placeholder.iconBackgroundColor != \"unset\" ? placeholder.iconBackgroundColor : \"rgb(90, 96, 227, 0.3)\",\r\n color: placeholder.color != \"unset\" ? placeholder.color : \"#222\",\r\n fontWeight: placeholder.fontWeight != \"unset\" ? placeholder.fontWeight : \"500\",\r\n fontFamily: placeholder.fontFamily != \"unset\" ? placeholder.fontFamily : \"Arimo\",\r\n fontSize: \"1rem\",\r\n },\r\n frame: {\r\n borderColor: frame.borderColor != \"unset\" ? frame.borderColor : \"transparent\",\r\n borderWidth: frame.borderWidth != \"unset\" ? frame.borderWidth : \"0px\",\r\n background: frame.background != \"unset\" ? frame.background : \"#fff\",\r\n borderStyle: \"solid\",\r\n borderRadius: frame.borderRadius != \"unset\" ? frame.borderRadius : \"4px\",\r\n boxShadow: \"none\",\r\n },\r\n textInput: {\r\n background: textInput.background != \"unset\" ? textInput.background : \"#fff\",\r\n fontSize: \"1rem\",\r\n color: textInput.color != \"unset\" ? textInput.color : \"#222\",\r\n borderStyle: \"solid\",\r\n borderColor: textInput.borderColor != \"unset\" ? textInput.borderColor : \"#eee\",\r\n borderWidth: textInput.borderWidth != \"unset\" ? textInput.borderWidth : \"1px\",\r\n borderRadius: textInput.borderRadius != \"unset\" ? textInput.borderRadius : \"4px\",\r\n fontWeight: textInput.fontWeight != \"unset\" ? textInput.fontWeight : \"500\",\r\n fontFamily: textInput.fontFamily != \"unset\" ? textInput.fontFamily : \"Arimo\",\r\n },\r\n sendButton: {\r\n color: sendButton.color != \"unset\" ? sendButton.color : \"rgb(90, 96, 227)\",\r\n background: sendButton.background != \"unset\" ? sendButton.background : \"#fff\",\r\n borderColor: sendButton.borderColor != \"unset\" ? sendButton.borderColor : \"#fff\",\r\n fontWeight: sendButton.fontWeight != \"unset\" ? sendButton.fontWeight : \"500\",\r\n borderStyle: \"solid\",\r\n borderWidth: sendButton.borderWidth != \"unset\" ? sendButton.borderWidth : \"0px\",\r\n borderRadius: sendButton.borderRadius != \"unset\" ? sendButton.borderRadius : \"4px\",\r\n fontFamily: sendButton.fontFamily != \"unset\" ? sendButton.fontFamily : \"Arimo\",\r\n fontSize: sendButton.fontSize != \"unset\" ? sendButton.fontSize : \"unset\",\r\n },\r\n pagination: {\r\n stepColor: pagination.stepColor != \"unset\" ? pagination.stepColor : \"#222\",\r\n textColor: pagination.textColor != \"unset\" ? pagination.textColor : \"#222\",\r\n fontFamily: pagination.fontFamily != \"unset\" ? pagination.fontFamily : \"Arimo\",\r\n },\r\n questionTitle: {\r\n fontSize: questionTitle.fontSize != \"unset\" ? questionTitle.fontSize : \"1rem\",\r\n color: questionTitle.color != \"unset\" ? questionTitle.color : \"#222\",\r\n fontWeight: questionTitle.fontWeight != \"unset\" ? questionTitle.fontWeight : \"500\",\r\n fontFamily: questionTitle.fontFamily != \"unset\" ? questionTitle.fontFamily : \"Arimo\",\r\n textAlign: questionTitle.textAlign != \"unset\" ? questionTitle.textAlign : \"left\",\r\n },\r\n buttonOption: {\r\n defaultBorderColor: buttonOption.defaultBorderColor != \"unset\" ? buttonOption.defaultBorderColor : \"rgb(90, 96, 227)\",\r\n defaultTextColor: buttonOption.defaultTextColor != \"unset\" ? buttonOption.defaultTextColor : \"rgb(90, 96, 227)\",\r\n defaultBackgroundColor: buttonOption.defaultBackgroundColor != \"unset\" ? buttonOption.defaultBackgroundColor : \"#fff\",\r\n checkedBorderColor: buttonOption.checkedBorderColor != \"unset\" ? buttonOption.checkedBorderColor : \"rgb(90, 96, 227)\",\r\n checkedTextColor: buttonOption.checkedTextColor != \"unset\" ? buttonOption.checkedTextColor : \"#fff\",\r\n borderStyle: \"solid\",\r\n checkedBackgroundColor: buttonOption.checkedBackgroundColor != \"unset\" ? buttonOption.checkedBackgroundColor : \"rgb(90, 96, 227)\",\r\n borderRadius: buttonOption.borderRadius != \"unset\" ? buttonOption.borderRadius : \"4px\",\r\n borderWidth: \"1px\",\r\n fontSize: buttonOption.fontSize != \"unset\" ? buttonOption.fontSize : \"1rem\",\r\n fontFamily: buttonOption.fontFamily != \"unset\" ? buttonOption.fontFamily : \"Arimo\",\r\n fontWeight: buttonOption.fontWeight != \"unset\" ? buttonOption.fontWeight : \"500\",\r\n margin: buttonOption.margin != \"unset\" ? buttonOption.margin : \"5px\",\r\n },\r\n boxOption: {\r\n checkedColor: boxOption.checkedColor != \"unset\" ? boxOption.checkedColor : \"rgb(90, 96, 227)\",\r\n uncheckedColor: boxOption.uncheckedColor != \"unset\" ? boxOption.uncheckedColor : \"gray\",\r\n },\r\n };\r\n } else {\r\n return {\r\n placeholder: {\r\n iconColor: \"rgb(90, 96, 227)\",\r\n iconBackgroundColor: \"rgb(90, 96, 227, 0.3)\",\r\n color: \"#222\",\r\n fontWeight: \"500\",\r\n fontFamily: \"Arimo\",\r\n fontSize: \"1rem\",\r\n },\r\n frame: {\r\n borderColor: \"transparent\",\r\n borderWidth: \"0px\",\r\n background: \"#fff\",\r\n borderRadius: \"4px\",\r\n boxShadow: \"none\",\r\n },\r\n textInput: {\r\n background: \"#eee\",\r\n fontSize: \"1rem\",\r\n color: \"#222\",\r\n borderColor: \"rgb(90, 96, 227)\",\r\n borderWidth: \"0px\",\r\n borderRadius: \"4px\",\r\n fontWeight: \"500\",\r\n fontFamily: \"Arimo\",\r\n },\r\n sendButton: {\r\n color: \"rgb(90, 96, 227)\",\r\n background: \"#fff\",\r\n borderColor: \"#fff\",\r\n fontWeight: \"500\",\r\n borderWidth: \"0px\",\r\n borderRadius: \"4px\",\r\n fontFamily: \"Arimo\",\r\n },\r\n pagination: {\r\n stepColor: \"#222\",\r\n textColor: \"#222\",\r\n },\r\n questionTitle: {\r\n fontSize: \"1rem\",\r\n color: \"rgb(90, 96, 227)\",\r\n fontWeight: \"bold\",\r\n fontFamily: \"Arimo\",\r\n textAlign: \"left\",\r\n },\r\n buttonOption: {\r\n defaultBorderColor: \"rgb(90, 96, 227)\",\r\n defaultTextColor: \"rgb(90, 96, 227)\",\r\n defaultBackgroundColor: \"#fff\",\r\n checkedBorderColor: \"rgb(90, 96, 227)\",\r\n checkedTextColor: \"#fff\",\r\n checkedBackgroundColor: \"rgb(90, 96, 227)\",\r\n borderRadius: \"4px\",\r\n borderWidth: \"1px\",\r\n fontFamily: \"Arimo\",\r\n fontWeight: \"500\",\r\n },\r\n boxOption: {\r\n checkedColor: \"rgb(90, 96, 227)\",\r\n uncheckedColor: \"rgb(90, 96, 227)\",\r\n },\r\n };\r\n }\r\n};\r\n","export const mockupQuestions = [\r\n {\r\n interactionQuestionId: -1,\r\n questionId: -1,\r\n eventId: -1,\r\n type: \"INTERACTION_CLIENT\",\r\n forced: false,\r\n question: {\r\n questionId: -1,\r\n eventId: 4,\r\n type: \"Unknown\",\r\n sortOrder: 0,\r\n requiredMin: 1,\r\n requiredMax: 1,\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.057\",\r\n inserted: \"2020-03-30T11:30:24.14\",\r\n tag: null,\r\n presenterType: null,\r\n quizAnswer: null,\r\n allowedAnswerCount: null,\r\n inherit: true,\r\n personType: null,\r\n event: null,\r\n questionLanguage: [],\r\n questionOption: [],\r\n },\r\n },\r\n {\r\n interactionQuestionId: -1,\r\n questionId: -1,\r\n eventId: -1,\r\n type: \"INTERACTION_CLIENT\",\r\n forced: false,\r\n question: {\r\n questionId: -1,\r\n eventId: 4,\r\n type: \"Text\",\r\n sortOrder: 0,\r\n requiredMin: 1,\r\n requiredMax: 1,\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.057\",\r\n inserted: \"2020-03-30T11:30:24.14\",\r\n tag: null,\r\n presenterType: null,\r\n quizAnswer: null,\r\n allowedAnswerCount: null,\r\n inherit: true,\r\n personType: null,\r\n event: null,\r\n questionLanguage: [\r\n {\r\n questionLanguageId: -1,\r\n questionId: -1,\r\n languageCode: \"swe\",\r\n label: \"Ställ en fråga\",\r\n subLabel: \"\",\r\n subInput: \"\",\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.07\",\r\n inserted: \"2020-03-30T11:30:24.14\",\r\n },\r\n {\r\n questionLanguageId: -1,\r\n questionId: -1,\r\n languageCode: \"eng\",\r\n label: \"Ask a question\",\r\n subLabel: \"\",\r\n subInput: \"\",\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.07\",\r\n inserted: \"2020-03-30T11:30:24.14\",\r\n },\r\n ],\r\n questionOption: [],\r\n },\r\n },\r\n {\r\n interactionQuestionId: -1,\r\n questionId: -1,\r\n eventId: -1,\r\n type: \"INTERACTION_CLIENT\",\r\n forced: false,\r\n question: {\r\n questionId: -1,\r\n eventId: -1,\r\n type: \"Option\",\r\n sortOrder: 0,\r\n requiredMin: 1,\r\n requiredMax: 1,\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.057\",\r\n inserted: \"2020-03-30T11:30:24.14\",\r\n tag: null,\r\n presenterType: null,\r\n quizAnswer: null,\r\n allowedAnswerCount: null,\r\n inherit: true,\r\n personType: null,\r\n event: null,\r\n questionLanguage: [\r\n {\r\n questionLanguageId: -1,\r\n questionId: -1,\r\n languageCode: \"swe\",\r\n label: \"Välj ett alternativ\",\r\n subLabel: \"\",\r\n subInput: \"\",\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.07\",\r\n inserted: \"2020-03-30T11:30:24.14\",\r\n },\r\n {\r\n questionLanguageId: -1,\r\n questionId: -1,\r\n languageCode: \"eng\",\r\n label: \"Select a option\",\r\n subLabel: \"\",\r\n subInput: \"\",\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.07\",\r\n inserted: \"2020-03-30T11:30:24.14\",\r\n },\r\n ],\r\n questionOption: [\r\n {\r\n questionOptionId: -1,\r\n questionId: -1,\r\n sortOrder: 1,\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.11\",\r\n inserted: \"2020-03-30T11:31:29.89\",\r\n questionOptionLanguage: [\r\n {\r\n questionOptionLanguageId: -1,\r\n questionOptionId: -1,\r\n languageCode: \"swe\",\r\n label: \"Päron\",\r\n updatedUserId: 2,\r\n updated: \"2020-03-30T11:31:29.89\",\r\n inserted: \"2020-03-30T11:31:29.89\",\r\n },\r\n {\r\n questionOptionLanguageId: -1,\r\n questionOptionId: -1,\r\n languageCode: \"eng\",\r\n label: \"Pear\",\r\n updatedUserId: 2,\r\n updated: \"2020-03-30T11:31:29.89\",\r\n inserted: \"2020-03-30T11:31:29.89\",\r\n },\r\n ],\r\n },\r\n {\r\n questionOptionId: -1,\r\n questionId: -1,\r\n sortOrder: 2,\r\n updatedUserId: 1,\r\n updated: \"2020-09-01T09:44:07.11\",\r\n inserted: \"2020-03-30T11:31:29.89\",\r\n questionOptionLanguage: [\r\n {\r\n questionOptionLanguageId: -1,\r\n questionOptionId: -1,\r\n languageCode: \"swe\",\r\n label: \"Äpple\",\r\n updatedUserId: 2,\r\n updated: \"2020-03-30T11:31:29.89\",\r\n inserted: \"2020-03-30T11:31:29.89\",\r\n },\r\n {\r\n questionOptionLanguageId: -1,\r\n questionOptionId: -1,\r\n languageCode: \"eng\",\r\n label: \"Apple\",\r\n updatedUserId: 2,\r\n updated: \"2020-03-30T11:31:29.89\",\r\n inserted: \"2020-03-30T11:31:29.89\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport \"url-search-params-polyfill\";\r\nimport { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { PollModuleContainer } from \"./components/PollModuleContainer\";\r\nimport { pollStyle } from \"./poll.helper\";\r\nimport { mockupQuestions } from \"./mockup/mockupQuestion\";\r\nimport { Badge, Fab, Tooltip } from \"@material-ui/core\";\r\nimport ArrowDropUpIcon from \"@material-ui/icons/ArrowDropUp\";\r\nimport PollIcon from \"@material-ui/icons/Poll\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { escapeHTML } from \"../../../helpers/stringHelper\";\r\n\r\nconst defaultState = {\r\n answerList: [],\r\n questionList: [],\r\n sent: false,\r\n pageNo: 1,\r\n};\r\n\r\nfunction PollModule(props) {\r\n const [state, setState] = useState(defaultState);\r\n const [collapsed, setCollapsed] = useState(props.settings.collapsible);\r\n const { eventId, lang, hubConnection, elevateParentContainer = () => null, personTypes, connected, clientKey, clientName, companyName, preview, template } = props;\r\n\r\n const stateRef = useRef();\r\n\r\n stateRef.current = state;\r\n\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.Client\", lang);\r\n configureHubEvents();\r\n return () => null;\r\n }, []);\r\n useEffect(() => {\r\n if (hubConnection && !preview) {\r\n hubConnection.on(\"onGetActiveQuestions\", onGetActiveQuestions);\r\n hubConnection.on(\"onActivateQuestion\", onActivateQuestion);\r\n hubConnection.on(\"onDeactivateQuestion\", onDeactivateQuestion);\r\n }\r\n return () => {\r\n if (hubConnection && !preview) {\r\n hubConnection.off(\"onGetActiveQuestions\", onGetActiveQuestions);\r\n hubConnection.off(\"onActivateQuestion\", onActivateQuestion);\r\n hubConnection.off(\"onDeactivateQuestion\", onDeactivateQuestion);\r\n }\r\n };\r\n });\r\n const clearAnswerListByQuestionId = (questionId) => {\r\n const answerList = Array.from(stateRef.current.answerList).filter((al) => al.questionId !== questionId);\r\n setState({ ...stateRef.current, answerList });\r\n };\r\n const configureHubEvents = () => {\r\n if (hubConnection && !preview) {\r\n hubConnection.invoke(\"getClientQuestions\", eventId, \"INTERACTION_CLIENT\");\r\n } else {\r\n const questionList = mockupQuestions;\r\n setState({ ...stateRef.current, questionList });\r\n }\r\n };\r\n const onTextInput = (questionId, value) => {\r\n let answerList = Array.from(stateRef.current.answerList);\r\n let answer = answerList.find((nl) => nl.questionId === questionId);\r\n const valid = value.length > 0 && value.length < 4000;\r\n if (answer) {\r\n answer.value = value;\r\n answer.valid = valid;\r\n } else {\r\n answerList.push({ questionId, value, valid });\r\n }\r\n\r\n setState({ ...stateRef.current, answerList });\r\n };\r\n const selectOption = (index, active, questionId) => {\r\n const question = stateRef.current.questionList.find((q) => q.question.questionId == questionId);\r\n let answerList = Array.from(stateRef.current.answerList);\r\n const { questionOption } = question.question;\r\n\r\n if (questionOption === undefined && !questionOption && questionOption !== typeof \"Array\") return null;\r\n\r\n const options = Array.from(questionOption);\r\n\r\n if (question.question.requiredMax === 0 && options.filter((o) => o.active === true).length === 1 && active === true) {\r\n options.map((o) => (o.active = false));\r\n }\r\n if (question.question.requiredMax === 1 && options.filter((o) => o.active === true).length === 1 && active === true) {\r\n options.map((o) => (o.active = false));\r\n answerList = answerList.filter((a) => a.questionId !== questionId);\r\n }\r\n\r\n options[index].active = active;\r\n question.question.questionOption = options;\r\n\r\n if (active) {\r\n answerList.push({ questionId, value: options[index].questionOptionId });\r\n } else {\r\n answerList = answerList.filter((a) => a.value !== options[index].questionOptionId);\r\n }\r\n\r\n const questionList = Array.from(\r\n stateRef.current.questionList.map((ql) => {\r\n if (ql.question.questionId === question.question.questionId) {\r\n ql = question;\r\n }\r\n return ql;\r\n })\r\n );\r\n setState({ ...stateRef.current, questionList, answerList });\r\n };\r\n\r\n const getAnsweredQuestions = (eventId) => {\r\n let answeredQuestions = localStorage.getItem(\"__JIAQ\"); //JirangoInteractionAnsweredQuestions obfuscated!!\r\n if (answeredQuestions) {\r\n answeredQuestions = JSON.parse(answeredQuestions);\r\n } else {\r\n answeredQuestions = [];\r\n }\r\n if (eventId) {\r\n return answeredQuestions.filter((aq) => aq.eventId == eventId);\r\n } else {\r\n return answeredQuestions;\r\n }\r\n };\r\n const getAnsweredCount = (questionId) => {\r\n let questions = getAnsweredQuestions(eventId);\r\n return questions.filter((aq) => aq.questionId == questionId && (aq.clientKey == clientKey || !aq.clientKey)).length;\r\n };\r\n const addAnsweredQuestion = (aq) => {\r\n let answeredQuestions = getAnsweredQuestions();\r\n answeredQuestions.push(aq);\r\n localStorage.setItem(\"__JIAQ\", JSON.stringify(answeredQuestions));\r\n };\r\n const removeAnsweredQuestion = (questionId) => {\r\n let questions = getAnsweredQuestions();\r\n questions = questions.filter((q) => q.questionId != questionId && (q.clientKey == clientKey || !q.clientKey));\r\n localStorage.setItem(\"__JIAQ\", JSON.stringify(questions));\r\n };\r\n const onGetActiveQuestions = (clientQuestionList) => {\r\n let questionList = clientQuestionList;\r\n let pTypes = [];\r\n if (personTypes && personTypes.length > 0) {\r\n pTypes = personTypes;\r\n questionList = questionList.filter((q) => !pTypes.includes(q.question.personType));\r\n }\r\n questionList = questionList.filter((q) => {\r\n var count = getAnsweredCount(q.questionId);\r\n if (q.question.allowedAnswerCount && q.question.allowedAnswerCount <= count) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n });\r\n setState({\r\n ...stateRef.current,\r\n questionList,\r\n });\r\n };\r\n const onActivateQuestion = (clientQuestion, sendTime) => {\r\n const questionList = Array.from(stateRef.current.questionList);\r\n if (clientQuestion.allowedAnswerCount) {\r\n clientQuestion.question.allowedAnswerCount = clientQuestion.allowedAnswerCount;\r\n }\r\n removeAnsweredQuestion(clientQuestion.question.questionId);\r\n questionList.push(clientQuestion);\r\n setState({\r\n ...stateRef.current,\r\n questionList,\r\n answer: \"\",\r\n });\r\n };\r\n const onDeactivateQuestion = (clientQuestion, shouldNotRemove) => {\r\n let pageNo = stateRef.current.pageNo;\r\n let questionList = Array.from(stateRef.current.questionList);\r\n let q = questionList.find((q) => q.question.questionId == clientQuestion.question.questionId);\r\n if (q) {\r\n if (!shouldNotRemove) removeAnsweredQuestion(q.question.questionId);\r\n questionList = questionList.filter((ql) => ql.question.questionId != clientQuestion.question.questionId);\r\n pageNo = pageNo > 1 ? pageNo - 1 : 1;\r\n setState({\r\n ...stateRef.current,\r\n questionList,\r\n pageNo,\r\n });\r\n }\r\n };\r\n const sendOptions = (answers, question, questionId) => {\r\n let answerList = Array.from(stateRef.current.answerList);\r\n let questionList = Array.from(stateRef.current.questionList);\r\n let pageNo = stateRef.current.pageNo;\r\n addAnsweredQuestion({\r\n clientKey,\r\n questionId,\r\n type: question.question.type,\r\n eventId,\r\n answer: \"\",\r\n answerTime: new Date(Date.now()).toISOString(),\r\n });\r\n\r\n answers.map((answer) => {\r\n if (answer) {\r\n hubConnection\r\n .invoke(\"clientResponse\", {\r\n questionId,\r\n type: question.question.type,\r\n eventId,\r\n clientKey,\r\n answer: answer.value,\r\n clientName: clientName ? (companyName || \"\") + \" \" + clientName : \"Guest_\" + clientKey.toString().substr(0, 8),\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n });\r\n let answerCount = getAnsweredCount(questionId);\r\n if (question.question.allowedAnswerCount === null || question.question.allowedAnswerCount <= answerCount) {\r\n questionList = questionList.filter((ql) => ql.question.questionId != questionId);\r\n pageNo = pageNo > 1 ? pageNo - 1 : 1;\r\n }\r\n answerList = answerList.filter((q) => q.questionId != questionId);\r\n\r\n setState({\r\n ...stateRef.current,\r\n questionList,\r\n answerList,\r\n pageNo,\r\n sent: true /* pageNo: stateRef.current.pageNo - 1 */,\r\n });\r\n setTimeout(() => setState({ ...stateRef.current, sent: false }), 3000);\r\n };\r\n const send = (questionId, optionId) => {\r\n if (!connected || !hubConnection || hubConnection.connectionState != 1) return;\r\n let questionList = Array.from(stateRef.current.questionList);\r\n let pageNo = stateRef.current.pageNo;\r\n let answerList = Array.from(stateRef.current.answerList);\r\n let question = questionList.find((ql) => ql.question.questionId === questionId);\r\n\r\n if (answerList.length > 1 && question.question.type == \"Option\") {\r\n return sendOptions(\r\n answerList.filter((al) => al.questionId == questionId),\r\n question,\r\n questionId\r\n );\r\n }\r\n\r\n let answer = answerList.find((al) => al.questionId == questionId);\r\n addAnsweredQuestion({\r\n clientKey,\r\n questionId,\r\n type: question.question.type,\r\n eventId,\r\n answer: optionId ? optionId : answer ? answer.value : \"\",\r\n answerTime: new Date(Date.now()).toISOString(),\r\n });\r\n\r\n if (!optionId && !answer) return;\r\n hubConnection\r\n .invoke(\"clientResponse\", {\r\n questionId,\r\n type: question.question.type,\r\n eventId,\r\n clientKey,\r\n answer: optionId ? optionId : escapeHTML(answer.value),\r\n clientName: clientName ? (companyName || \"\") + \" \" + clientName : \"Guest_\" + clientKey.toString().substr(0, 8),\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n let answerCount = getAnsweredCount(questionId);\r\n if (question.question.allowedAnswerCount === null || question.question.allowedAnswerCount <= answerCount) {\r\n /* onDeactivateQuestion(question, true); */\r\n questionList = questionList.filter((ql) => ql.question.questionId != questionId);\r\n pageNo = pageNo > 1 ? pageNo - 1 : 1;\r\n }\r\n answerList = answerList.filter((q) => q.questionId != questionId);\r\n\r\n setState({\r\n ...stateRef.current,\r\n questionList,\r\n answerList,\r\n sent: true /* pageNo: stateRef.current.pageNo - 1 */,\r\n });\r\n setTimeout(() => setState({ ...stateRef.current, sent: false }), 3000);\r\n };\r\n const togglePage = (pageNo) => setState({ ...stateRef.current, pageNo });\r\n const api = {\r\n send,\r\n ...props,\r\n ...state,\r\n selectOption,\r\n togglePage,\r\n onTextInput,\r\n pollTemplate: pollStyle(template),\r\n };\r\n\r\n const { placeholder } = api.pollTemplate;\r\n\r\n if ((props.settings.collapsible && collapsed) || (props.settings.collapsible && preview)) {\r\n return (\r\n {\r\n setCollapsed(!collapsed);\r\n elevateParentContainer(collapsed);\r\n }}\r\n >\r\n 0 ? \"block\" : \"none\",\r\n }}\r\n />\r\n\r\n \r\n \r\n );\r\n }\r\n return (\r\n <>\r\n {props.settings.collapsible ? (\r\n {\r\n setCollapsed(!collapsed);\r\n elevateParentContainer(collapsed);\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n \r\n
\r\n ) : null}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(PollModule);\r\n","import React from \"react\";\r\nimport { Button, Tooltip } from \"@material-ui/core\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport InsertCommentIcon from \"@material-ui/icons/InsertComment\";\r\nimport GavelIcon from \"@material-ui/icons/Gavel\";\r\n\r\nexport function SpeakerControls(props) {\r\n const { hasRequestedTheFloor, active, isSpeakerActive, unassignRequest, requestPointOfOrder, requestTheFloor, settings, orderId, template } = props;\r\n\r\n const { allowPointOfOrder, allowRequestLineOfSpeaker, allowRequestTheFloor } = settings;\r\n if (!hasRequestedTheFloor) {\r\n return (\r\n
\r\n {active && allowPointOfOrder == true ? (\r\n \r\n ) : null}\r\n {allowRequestTheFloor == true ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n } else {\r\n return allowRequestTheFloor ? (\r\n \r\n ) : null;\r\n }\r\n}\r\n","export const replaceTag = (text, clientkey) => {\r\n if(!text) return text;\r\n return text\r\n .toString()\r\n .replace(/\\[clientkey\\]/gi, clientkey)\r\n .replace(/\\[badgeno\\]/gi, clientkey);\r\n};\r\n","import React from \"react\";\r\nimport InsertCommentIcon from \"@material-ui/icons/InsertComment\";\r\nimport GavelIcon from \"@material-ui/icons/Gavel\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport { SpeakerControls } from \"./SpeakerControls\";\r\nimport { AccordionActions } from \"@material-ui/core\";\r\nimport { replaceTag } from \"../../../../helpers/tag.helper\";\r\n\r\nexport function AgendaItem(props) {\r\n const { rowStyle, textStyle, titleStyle, title, active, styleWrapper, text, status, showSpeakerControl, collapsible, closed, clientKey,settings } = props;\r\n const [expanded, setExpanded] = React.useState(false);\r\n\r\n const handleChange = () => {\r\n if ((collapsible && showSpeakerControl && active) || (collapsible && text)) setExpanded(!expanded);\r\n };\r\n let exp = !collapsible && text ? true : expanded;\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n : null}\r\n aria-controls=\"panel-agenda-content\"\r\n >\r\n
\r\n {showSpeakerControl && closed ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n
{title}
\r\n {!collapsible ? (\r\n
\r\n {/* {styleWrapper} */}\r\n \r\n
\r\n ) : null}\r\n {!collapsible && showSpeakerControl ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n {collapsible ? (\r\n \r\n {/* {styleWrapper} */}\r\n
\r\n \r\n ) : null}\r\n {collapsible && showSpeakerControl ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nexport const AgendaTextWrapper = (props) => {\r\n const { status, getAgendaStyle } = props;\r\n return (\r\n \r\n );\r\n};\r\n","import { Avatar, Button, List, ListItem, ListItemAvatar, ListItemText, Tooltip } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport InsertCommentIcon from \"@material-ui/icons/InsertComment\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { ChatAvatar } from \"../../ChatModule/components/ChatAvatar\";\r\nexport function Speaker(props) {\r\n const { speakers, activeSpeaker, agenda, template, settings, orderList, orderId } = props;\r\n const activeAgendaRow = agenda.find((a) => a.active === true);\r\n if (!activeAgendaRow && !activeSpeaker) return null;\r\n\r\n const { allowPointOfOrder, allowRequestLineOfSpeaker, allowRequestTheFloor } = settings;\r\n\r\n\r\n \r\n\r\n return (\r\n \r\n {speakers\r\n .filter((s) => s.agendaItemId === activeAgendaRow.agendaItemId && s.active === true)\r\n .map((s, i) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n secondary={{activeSpeaker ? activeSpeaker.name : \"\"}}\r\n />\r\n \r\n {allowRequestLineOfSpeaker == true && s.speakerType == 1 ? : null}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n}\r\n\r\nconst ActiveSpeakerControls = (props) => {\r\n const {\r\n isAuthorizedSpeaker,\r\n allowSpeaker,\r\n badgeNo,\r\n template,\r\n speakerType,\r\n clientKey,\r\n interactionSpeakerId,\r\n hasRequestedTheFloor,\r\n requestTheFloor,\r\n isSpeakerActive,\r\n unassignRequest,\r\n agendaItemId,\r\n orderId,\r\n } = props;\r\n if (!isAuthorizedSpeaker() && !allowSpeaker) return null;\r\n if (badgeNo == clientKey && speakerType == 2) return null;\r\n\r\n const hasRequested = hasRequestedTheFloor(agendaItemId, interactionSpeakerId);\r\n if (!hasRequested) {\r\n return (\r\n }\r\n edge=\"end\"\r\n onClick={() => requestTheFloor(agendaItemId, 2, interactionSpeakerId)}\r\n >\r\n }>\r\n \r\n \r\n \r\n );\r\n } else {\r\n const isActiveSpeaker = isSpeakerActive(agendaItemId);\r\n return (\r\n }\r\n onClick={() => unassignRequest(agendaItemId, interactionSpeakerId)}\r\n >\r\n }>\r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n","import { List } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport { ScrollWrapper } from \"../../../helpers/module.helper\";\r\nimport { AgendaItem } from \"./AgendaItem\";\r\nimport { AgendaTextWrapper } from \"./AgendaTextWrapper\";\r\nimport { Speaker } from \"./Speaker\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\n\r\nexport function AgendaContainer(props) {\r\n const {\r\n getAgendaStyle,\r\n speakers,\r\n agenda,\r\n isAllowedSpeaker,\r\n isAuthorizedSpeaker,\r\n hasRequestedTheFloor,\r\n requestTheFloor,\r\n unassignRequest,\r\n template,\r\n clientKey,\r\n isSpeakerActive,\r\n allowSpeaker,\r\n\r\n agendaListRef,\r\n activeAgendaRef,\r\n settings,\r\n } = props;\r\n const collapsibleAgenda = typeof settings.collapsibleAgenda != \"undefined\" ? settings.collapsibleAgenda : props.collapsibleAgenda;\r\n const { hideSubtitle, hideTitle, hideSpeaker } = settings;\r\n\r\n return (\r\n \r\n {hideSpeaker != true ? : null}\r\n {hideTitle != true ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n {hideSubtitle != true ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n \r\n \r\n {agenda\r\n .filter((a) => a.hidden != true)\r\n .map((a, i) => {\r\n let bgColor = template ? template.content.backgroundColor : undefined;\r\n if (a.closedDateTime !== null && template) {\r\n bgColor = template.tcell.borderColor;\r\n }\r\n let status = a.active ? \"ACTIVE\" : a.closedDateTime !== null ? \"PASSED\" : \"DEFAULT\";\r\n let showSpeakerControl = isAuthorizedSpeaker() && allowSpeaker === true && isAllowedSpeaker() && a.closedDateTime == null;\r\n return (\r\n
(status == \"ACTIVE\" ? (activeAgendaRef.current = r) : undefined)}>\r\n }\r\n clientKey={clientKey}\r\n title={a.name}\r\n text={a.text}\r\n collapsible={collapsibleAgenda}\r\n showSpeakerControl={showSpeakerControl}\r\n status={status}\r\n closed={status == \"PASSED\"}\r\n active={status == \"ACTIVE\"}\r\n hasRequestedTheFloor={showSpeakerControl ? hasRequestedTheFloor(a.agendaItemId) : false}\r\n requestPointOfOrder={() => requestTheFloor(a.agendaItemId, 3, null)}\r\n isSpeakerActive={showSpeakerControl ? isSpeakerActive(a.agendaItemId) : false}\r\n requestTheFloor={() => requestTheFloor(a.agendaItemId, 1, null)}\r\n orderId={props.orderId}\r\n settings={settings}\r\n unassignRequest={() => unassignRequest(a.agendaItemId)}\r\n template={props.template}\r\n />\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { fade, makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { connect } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport { eventLabelGroupsConstants } from \"../../constants/eventLabelGroups.contansts\";\r\nimport { AgendaContainer } from \"./components/AgendaContainer\";\r\nimport { init } from \"../../../components/EventLabel2/EventLabel2\";\r\n\r\nfunction AgendaModule(props) {\r\n const [agenda, setAgenda] = useState([]);\r\n const [speakers, setSpeakers] = useState([]);\r\n const [activeSpeaker, setActiveSpeaker] = useState(null);\r\n const [floorIsGive, setFloorIsGiven] = useState(false);\r\n const { eventId, clientKey, lang, connected, hubConnection, noneAllowedSpeakers, personTypes, template, clientName, preview, settings } = props;\r\n\r\n const { requestedEventId, getAgendaFromOtherEvent, allowRequestTheFloor, allowPointOfOrder, allowRequestLineOfSpeaker } = settings;\r\n \r\n const agendaListRef = useRef([]);\r\n const activeAgendaRef = useRef(null);\r\n const stateRef = useRef();\r\n\r\n /* stateRef.current = state; */\r\n\r\n useEffect(() => {\r\n init(eventId, eventLabelGroupsConstants.AGENDA_LABEL_GROUP, lang);\r\n fetchAgenda();\r\n fetchSpeakers();\r\n }, []);\r\n useEffect( () => {\r\n if (hubConnection) {\r\n hubConnection.on(\"onSpeakersUpdate\",onSpeakersUpdate);\r\n hubConnection.on(\"onActivateSpeaker\", onActivateSpeaker);\r\n hubConnection.on(\"onDeactivateSpeaker\", onDeactivateSpeaker );\r\n hubConnection.on(\"onAgendaUpdate\", onAgendaUpdate);\r\n hubConnection.on(\"onAgendaClosed\", onAgendaClosed);\r\n }\r\n return () => {\r\n if (hubConnection) {\r\n hubConnection.off(\"onSpeakersUpdate\",onSpeakersUpdate);\r\n hubConnection.off(\"onActivateSpeaker\", onActivateSpeaker);\r\n hubConnection.off(\"onDeactivateSpeaker\", onDeactivateSpeaker );\r\n hubConnection.off(\"onAgendaUpdate\", onAgendaUpdate);\r\n hubConnection.off(\"onAgendaClosed\", onAgendaClosed);\r\n }\r\n }\r\n })\r\n const onSpeakersUpdate = (speakers) => {\r\n setSpeakers(speakers);\r\n }\r\n const onDeactivateSpeaker = () => {\r\n setActiveSpeaker(null)\r\n }\r\n const onActivateSpeaker = (activeSpeaker) => {\r\n setActiveSpeaker(activeSpeaker);\r\n }\r\n const onAgendaClosed = (speakers) => {\r\n setSpeakers(speakers);\r\n setActiveSpeaker(null);\r\n }\r\n \r\n const onAgendaUpdate = (agenda, agendaEventId) => {\r\n if((getAgendaFromOtherEvent && requestedEventId === agendaEventId) || agendaEventId === eventId){\r\n setAgenda(agenda);\r\n handleScroll();\r\n }\r\n }\r\n const fetchAgenda = () => {\r\n axios\r\n .get(`./api/meeting/agenda/${getAgendaFromOtherEvent && requestedEventId ? requestedEventId : eventId}`)\r\n .then(({ data }) => {\r\n if (!data) return;\r\n const agendaItems = data.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n setAgenda(agendaItems);\r\n handleScroll();\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n const fetchSpeakers = () => {\r\n axios\r\n .get(`./api/meeting/speakers/${eventId}`)\r\n .then(({ data }) => {\r\n if (data) setSpeakers(data);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const handleScroll = () => {\r\n const ref = activeAgendaRef.current;\r\n if (ref) ref.scrollIntoView({ block: \"end\", behavior: \"smooth\" });\r\n };\r\n\r\n const unassignRequest = (agendaItemId, parentId = null) => {\r\n if (!connected || !hubConnection || (hubConnection.connectionState != 1 && !preview)) return;\r\n hubConnection\r\n .invoke(\"removeSpeaker\", {\r\n eventId,\r\n agendaItemId,\r\n clientKey,\r\n parentId,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const requestTheFloor = (agendaItemId, speakerType, parentId = null) => {\r\n if (!connected || !hubConnection || (hubConnection.connectionState != 1 && !preview)) return;\r\n hubConnection\r\n .invoke(\"setSpeaker\", {\r\n eventId,\r\n agendaItemId,\r\n clientKey,\r\n parentId,\r\n speakerType,\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n };\r\n\r\n const hasRequestedTheFloor = (agendaId, parentId = null) => {\r\n const hasRequested = speakers.find((s) => s.agendaItemId === agendaId && s.badgeNo === clientKey && s.parentInteractionSpeakerId === parentId && s.closedDateTime === null);\r\n return hasRequested;\r\n };\r\n const isSpeakerActive = (agendaId, parentId = null) => {\r\n const isActive = speakers.find((s) => s.agendaItemId === agendaId && s.badgeNo === clientKey && s.parentInteractionSpeakerId === parentId && s.closedDateTime === null && s.active === true);\r\n return isActive;\r\n };\r\n const getAgendaStyle = (group, status) => {\r\n switch (group) {\r\n case \"Content\":\r\n if (!template.interaction.agenda) {\r\n return {\r\n margin: 0,\r\n height: \"100%\",\r\n\r\n borderRadius: template ? template.content.borderRadius : undefined,\r\n backgroundColor: template ? template.content.backgroundColor : undefined,\r\n };\r\n } else {\r\n if (template.interaction.agenda && template.interaction.agenda.content) {\r\n return {\r\n ...template.interaction.agenda.content,\r\n margin: 0,\r\n borderStyle: \"solid\",\r\n height: \"100%\",\r\n boxShadow: \"none !important\",\r\n };\r\n }\r\n }\r\n case \"Title\":\r\n if (!template.interaction.agenda) {\r\n return {\r\n ...template.subtitle,\r\n margin: \"10px 15px\",\r\n marginBottom: 12,\r\n fontFamily: template.subtitle.fontFamily,\r\n };\r\n } else {\r\n if (template.interaction.agenda && template.interaction.agenda.title) {\r\n return { ...template.interaction.agenda.title };\r\n }\r\n }\r\n case \"Subtitle\":\r\n if (!template.interaction.agenda) {\r\n return {\r\n ...template.subtitle,\r\n margin: \"10px 15px\",\r\n marginBottom: 12,\r\n fontFamily: template.subtitle.fontFamily,\r\n };\r\n } else {\r\n if (template.interaction.agenda && template.interaction.agenda.subtitle) {\r\n return { ...template.interaction.agenda.subtitle };\r\n }\r\n }\r\n case \"RowFrame\":\r\n if (!template.interaction.agenda) {\r\n return {\r\n margin: \"10px 5px\",\r\n border: status == \"ACTIVE\" ? `3px solid ${template ? template.tcell.borderColor : \"rgba(32, 168, 216, 1)\"}` : \"3px solid transparent\",\r\n opacity: status == \"PASSED\" ? 0.6 : 1,\r\n boxShadow: \"none\",\r\n backgroundColor: status == \"PASSED\" ? template.tcell.borderColor : template.content.backgroundColor,\r\n padding: \"5px\",\r\n };\r\n } else {\r\n if (status == \"DEFAULT\")\r\n return {\r\n ...template.interaction.agenda.agendaItem,\r\n ...template.interaction.agenda.default.item,\r\n borderStyle: \"solid\",\r\n boxShadow: \"none\",\r\n };\r\n if (status == \"ACTIVE\")\r\n return {\r\n ...template.interaction.agenda.agendaItem,\r\n ...template.interaction.agenda.active.item,\r\n borderStyle: \"solid\",\r\n boxShadow: \"none\",\r\n };\r\n if (status == \"PASSED\")\r\n return {\r\n ...template.interaction.agenda.agendaItem,\r\n ...template.interaction.agenda.passed.item,\r\n borderStyle: \"solid\",\r\n boxShadow: \"none\",\r\n };\r\n }\r\n case \"RowTitle\":\r\n if (!template.interaction.agenda) {\r\n return template.text;\r\n } else {\r\n if (status == \"DEFAULT\") return template.interaction.agenda.default.title;\r\n if (status == \"ACTIVE\") return template.interaction.agenda.active.title;\r\n if (status == \"PASSED\") return template.interaction.agenda.passed.title;\r\n }\r\n case \"RowText\":\r\n if (!template.interaction.agenda) {\r\n return undefined;\r\n } else {\r\n if (status == \"DEFAULT\") return template.interaction.agenda.default.text;\r\n if (status == \"ACTIVE\") return template.interaction.agenda.active.text;\r\n if (status == \"PASSED\") return template.interaction.agenda.passed.text;\r\n }\r\n\r\n default:\r\n return undefined;\r\n }\r\n };\r\n\r\n const isAuthorizedSpeaker = () => {\r\n if (!clientName || clientName.includes(\"Guest_\")) return false;\r\n return true;\r\n };\r\n const isAllowedSpeaker = () => {\r\n let allowed = true;\r\n if (noneAllowedSpeakers.length > 0 && personTypes) {\r\n noneAllowedSpeakers.map((n) => {\r\n if (personTypes.includes(n)) {\r\n allowed = false;\r\n }\r\n });\r\n }\r\n return allowed;\r\n };\r\n const api = {\r\n speakers,\r\n agenda,\r\n ...props,\r\n activeSpeaker,\r\n agendaListRef,\r\n isAllowedSpeaker,\r\n isAuthorizedSpeaker,\r\n isSpeakerActive,\r\n getAgendaStyle,\r\n hasRequestedTheFloor,\r\n activeAgendaRef,\r\n requestTheFloor,\r\n unassignRequest,\r\n };\r\n\r\n return ;\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(AgendaModule);\r\n","import React from \"react\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport BlockIcon from '@material-ui/icons/Block'\r\n\r\nexport function ChatBlock({currentChat}) {\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { IconButton, Popover, Tooltip } from \"@material-ui/core\";\r\nimport EventLabel2, { renderText } from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport Picker from \"emoji-picker-react\";\r\nimport MoodIcon from \"@material-ui/icons/Mood\";\r\n\r\nexport function ChatEmojiPicker(props) {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [chosenEmoji, setChosenEmoji] = useState(null);\r\n\r\n const { onTyping, primaryColor, preview } = props;\r\n\r\n const onEmojiClick = (event, emojiObject) => {\r\n onTyping(emojiObject.emoji, true);\r\n handleClose();\r\n };\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"simple-popover\" : undefined;\r\n\r\n return (\r\n /*
*/\r\n <>\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n /*
*/\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { Input } from \"reactstrap\";\r\nimport { renderText } from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport { ChatEmojiPicker } from \"./ChatEmojiPicker\";\r\n\r\nexport function MessageInput(props) {\r\n\r\n const {onTyping, fontFamily, color, inputColor, inputBackground, background, text, preview } = props;\r\n\r\n return (\r\n
\r\n 100 ? ' smooth-shadow floating-input' : '') */}\r\n placeholder={renderText(\"TypeSomething\", eventLabelGroupsConstants.CHAT_LABEL_GROUP)}\r\n autoFocus={true}\r\n disabled={preview}\r\n maxLength={500}\r\n type={/* text.length > 100 ? \"textarea\" : */ \"text\"}\r\n style={{\r\n background,\r\n width: \"85%\",\r\n margin: \"unset\",\r\n backgroundColor: inputBackground,\r\n color: inputColor,\r\n fontFamily,\r\n padding: \"0px 5px 0px 10px\",\r\n }}\r\n value={text}\r\n onChange={(e) => onTyping(e.target.value)}\r\n />\r\n {/* */}\r\n
\r\n );\r\n}\r\n","import { IconButton, Tooltip } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport SendIcon from \"@material-ui/icons/Send\";\r\nimport ThumbUpIcon from \"@material-ui/icons/ThumbUp\";\r\nimport { ChatEmojiPicker } from \"./ChatEmojiPicker\";\r\nimport VideocamRoundedIcon from \"@material-ui/icons/VideocamRounded\";\r\n\r\nexport function MessageTools(props) {\r\n /* const [click, setClick] = React.useState(false);\r\n if (click) throw new Error(\"TEST\"); */\r\n const { text, sendButtonColor, sendMessage, primaryColor, preview, allowChatVideoCall = true, currentChat } = props;\r\n return (\r\n
\r\n \r\n sendMessage()}>\r\n }>\r\n \r\n \r\n \r\n {\r\n sendMessage(\"THUMB_UP\");\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n {currentChat != \"ALL\" && currentChat != \"BACKSTAGE\"? (\r\n {\r\n sendMessage(\"VIDEO_CALL_INVITATION\");\r\n }}\r\n >\r\n }>\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { ChatBlock } from \"./ChatBlock\";\r\nimport { MessageInput } from \"./MessageInput\";\r\nimport { MessageTools } from \"./MessageTools\";\r\n\r\nexport function ChatFooter(props) {\r\n const { chatTemplate, chatBlock, settings, currentChat, clientKey, connected, hubConnection, eventId } = props;\r\n const { footer, primaryColor, sendButtonColor } = chatTemplate;\r\n\r\n\r\n const [text, setText] = useState(\"\");\r\n const onTyping = (t, emoji = false) => {\r\n setText(emoji ? (text ? text + t : t) : t);\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"keyup\", onEnterKeyPressed);\r\n return () => {\r\n document.removeEventListener(\"keyup\", onEnterKeyPressed);\r\n };\r\n }, [text]);\r\n\r\n const onEnterKeyPressed = (e) => {\r\n var e = e || window.event; // for IE to cover IEs window event-object\r\n if (e.which == 13 && text) {\r\n sendMessage();\r\n }\r\n };\r\n const sendMessage = (message) => {\r\n if (!connected || !hubConnection || hubConnection.connectionState != 1) return;\r\n const { currentChat, chatAdmin, chatAlias } = props;\r\n\r\n let target = currentChat == \"ALL\" ? null : currentChat;\r\n let room = props.channel;\r\n let isValid = text && text.length <= 500;\r\n if (hubConnection && (isValid || message)) {\r\n hubConnection.invoke(\r\n \"sendChatMessage\",\r\n parseInt(eventId),\r\n clientKey,\r\n target,\r\n message ? (message == \"VIDEO_CALL_INVITATION\" ? \"VIDEO_CALL_INVITATION\" : \"👍\") : text,\r\n room,\r\n chatAlias || null,\r\n chatAdmin || false,\r\n target === 'ALL' || !target ? settings?.hideMessages ?? false : false\r\n );\r\n setText(\"\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n {(chatBlock && currentChat == \"ALL\") || currentChat == \"NONE\" || currentChat == \"NONE2\" ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import EventLabel2 from \"../../../../../components/EventLabel2/EventLabel2\";\r\nimport React from \"react\";\r\n\r\nimport noResult from \"../../emptyStates/no-result.svg\";\r\nimport { eventLabelGroupsConstants } from \"../../../../constants/eventLabelGroups.contansts\";\r\nexport const NoResultState = () => {\r\n return (\r\n
\r\n \r\n {/* */}\r\n \r\n
\r\n \r\n );\r\n};\r\n","import { Divider, IconButton, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, Badge, Popover, Tooltip } from \"@material-ui/core\";\r\nimport React, { useState, useMemo } from \"react\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport { ScrollWrapper } from \"../../../helpers/module.helper\";\r\nimport { ChatAvatar } from \"./ChatAvatar\";\r\nimport { ChatSearchbar } from \"./ChatSearchbar\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport AddRoundedIcon from \"@material-ui/icons/AddRounded\";\r\nimport { NoResultState } from \"./shared/NoResultState\";\r\nimport { clientTypeConstants } from \"../../../../interaction/constants/clientType.constants\";\r\nimport { PersonInformationPopover } from \"./shared/PersonInformationPopover\";\r\nimport ReactEternalList from \"../../../../components/ReactEternalList/ReactEternalList\";\r\n\r\nexport function PeopleListPopover(props) {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const { icon, tooltipText, chatTemplate, preview, children } = props;\r\n const { primaryColor } = chatTemplate;\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"people-popover\" : undefined;\r\n return (\r\n
\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport function PeopleList(props) {\r\n const [filter, setFilter] = useState(\"\");\r\n const { connectionList, orderList, channel, clientKey, settings, eventId } = props;\r\n const { showAllConnections } = settings;\r\n const clientList = useMemo(() => {\r\n if(showAllConnections) return connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_MEETING);\r\n return connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_MEETING && cl.eventId == eventId && cl.channel == channel);\r\n }, [channel, connectionList]);\r\n const activePeople = useMemo(() => {\r\n return orderList\r\n .filter((ia) => ia.badgeNo != clientKey && ia.orderId != 1 && ia.orderId != 2)\r\n .filter((ia) => {\r\n if (ia.anonymous == true) {\r\n return false;\r\n }\r\n if (!clientList.find((c) => c.clientKey == ia.badgeNo)) {\r\n return false;\r\n }\r\n if (ia.name.toLowerCase().includes(filter.toLowerCase())) {\r\n return true;\r\n }\r\n if (ia.company && ia.company.toLowerCase().includes(filter.toLowerCase())) {\r\n return true;\r\n }\r\n if (ia.title && ia.title.toLowerCase().includes(filter.toLowerCase())) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .sort((a, b) => {\r\n var nameA = a.name.toUpperCase(); // ignore upper and lowercase\r\n var nameB = b.name.toUpperCase(); // ignore upper and lowercase\r\n if (nameA < nameB) {\r\n return -1;\r\n }\r\n if (nameA > nameB) {\r\n return 1;\r\n }\r\n return 0;\r\n })\r\n .map((ia) => {\r\n let inSameRoom = clientList.some((c) => c.clientKey == ia.badgeNo && c.eventId == eventId);\r\n return { ...ia, inSameRoom };\r\n });\r\n }, [filter, orderList, clientList]);\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {activePeople.length > 0 ? (\r\n {\r\n return { ...props, person: o };\r\n })}\r\n updateRate={100}\r\n component={PersonListItem}\r\n compareParam={\"badgeNo\"}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst PersonListItem = (props) => {\r\n const { selectChat, chatTemplate, clientKey, handleClose, person } = props;\r\n\r\n const { profileImage, linkedIn, title, name, company, badgeNo, inSameRoom } = person;\r\n\r\n return (\r\n {\r\n if (clientKey == badgeNo) return;\r\n selectChat(badgeNo);\r\n handleClose();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n }\r\n secondary={\r\n \r\n {title ? {title} : null}\r\n {company ? (\r\n \r\n {title ? \" • \" : \"\"}\r\n {company}\r\n \r\n ) : null}\r\n {/* {title ? `${title} • ${company}` : company} */}\r\n {!inSameRoom ? (\r\n \r\n {title || company ? \" • \" : \"\"}\r\n \r\n \r\n ) : null}\r\n \r\n }\r\n />\r\n \r\n );\r\n};\r\n","import { Badge, Divider, IconButton, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText, Popover, Tooltip } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { formatTime } from \"../../../../helpers/time.helper\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\nimport { ScrollWrapper } from \"../../../helpers/module.helper\";\r\nimport { ChatAvatar } from \"./ChatAvatar\";\r\nimport { ChatSearchbar } from \"./ChatSearchbar\";\r\nimport { NoResultState } from \"./shared/NoResultState\";\r\nimport GroupIcon from \"@material-ui/icons/Group\";\r\nimport VerifiedUserIcon from \"@material-ui/icons/VerifiedUser\";\r\nimport QuestionAnswerIcon from \"@material-ui/icons/QuestionAnswer\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport { PersonInformationPopover } from \"./shared/PersonInformationPopover\";\r\n\r\nexport function ConversationListPopover(props) {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const { icon, tooltipText, chatTemplate, preview, children } = props;\r\n const { primaryColor } = chatTemplate;\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const open = Boolean(anchorEl);\r\n const id = open ? \"conversation-popover\" : undefined;\r\n return (\r\n
\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\nconst BadgeWrapper = (props) => {\r\n const { badgeValue, children, chatTemplate } = props;\r\n const { badgePillColor, secondaryColor } = chatTemplate;\r\n if (!badgeValue) return children;\r\n return (\r\n \r\n {badgeValue}\r\n \r\n }\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nfunction ConversationList(props) {\r\n const [filter, setFilter] = useState(\"\");\r\n const { connectionList, orderList, selectChat, callback, chats } = props;\r\n /* const searchString = (order) => {\r\n if (!filter) return true;\r\n return (\r\n order.name.toLowerCase().includes(filter.toLowerCase()) ||\r\n order.company.toLowerCase().includes(filter.toLowerCase())\r\n );\r\n }; */\r\n const restrictions = (chat) => {\r\n const { allowModeratorChat, disableGroupChat } = props;\r\n if (filter && !orderList.find((order) => (order.name.toLowerCase().includes(filter.toLowerCase()) || order.company.toLowerCase().includes(filter.toLowerCase())) && chat.target == order.badgeNo)) {\r\n return false;\r\n }\r\n if (!allowModeratorChat && chat.target == \"MODERATOR\") return false;\r\n if (disableGroupChat && chat.target == \"ALL\") return false;\r\n return true;\r\n };\r\n const conversations = chats.filter(restrictions);\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n {conversations.length > 0 ? (\r\n conversations.map((c, i) => {\r\n const person = orderList.find((o) => o.badgeNo == c.target);\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nconst ConversationListItem = (props) => {\r\n const { selectChat, person, target, chatTemplate, clientKey, seen, handleClose } = props;\r\n return (\r\n {\r\n selectChat(target);\r\n handleClose();\r\n }}\r\n >\r\n {!seen ?
: null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {conversationReceiver(props)}} secondary={conversationPreviewText(props)} />\r\n \r\n );\r\n};\r\n\r\nconst ChatIcon = ({ target, person }) => {\r\n if (target == `ALL`) return ;\r\n else if (target == `MODERATOR`) return ;\r\n else if (person) return ;\r\n return null;\r\n};\r\n\r\nconst conversationPreviewText = (props) => {\r\n const { lastChange, messages, previewPreFix, senderFirstName, orderList, previewText, person, clientKey } = props;\r\n\r\n let senderOfLastMessage = null;\r\n\r\n if (messages.length == 0) return ;\r\n if (messages.length > 0 && clientKey == messages[messages.length - 1].sender) {\r\n senderOfLastMessage = ;\r\n } else {\r\n const lastMessage = messages[messages.length - 1];\r\n const sender = orderList.find((ol) => ol.badgeNo == lastMessage.sender);\r\n senderOfLastMessage = sender ? sender.name : ;\r\n }\r\n\r\n return (\r\n \r\n {senderOfLastMessage}: {previewText.substring(0, 20)} • {formatTime(lastChange)}\r\n \r\n );\r\n};\r\n\r\nconst conversationReceiver = ({ person, target }) => {\r\n if (target == \"ALL\") return ;\r\n else if (target == \"MODERATOR\") return ;\r\n else if (person) return person.name;\r\n else return \"\";\r\n};\r\n","import React from \"react\";\r\nimport { IconButton, List, ListItem, ListItemAvatar, ListItemSecondaryAction, ListItemText } from \"@material-ui/core\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { ChatAvatar } from \"./ChatAvatar\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { PeopleListPopover } from \"./PeopleList\";\r\nimport { ConversationListPopover } from \"./ConversationList\";\r\nimport GroupIcon from \"@material-ui/icons/Group\";\r\nimport VerifiedUserIcon from \"@material-ui/icons/VerifiedUser\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport { PersonInformationPopover } from \"./shared/PersonInformationPopover\";\r\nimport { UndreadMessageSnackbar } from \"./UnreadMessageSnackbar\";\r\n\r\nexport function PersonDetails(props) {\r\n const { currentChat, orderList = [], chatTemplate, chats, missedGroupMessages, clientKey, settings, exhibitor = false, deselectChat = () => null, interactionAllowOneToOneChat } = props;\r\n\r\n const { showSnackbar } = settings;\r\n\r\n const snackbarPosition = { vertical: settings?.vertical || \"bottom\", horizontal: settings.horizontal || \"left\" };\r\n const { header, primaryColor } = chatTemplate;\r\n const person = orderList.find((o) => o.badgeNo == currentChat);\r\n const undreadMessages = () => {\r\n let count = 0;\r\n chats.map((c) => {\r\n if (c.seen == false && c.target != currentChat) {\r\n count += c.messages.filter((m) => m.seen == false && m.receiver == clientKey).length;\r\n }\r\n if (c.target == \"ALL\" && c.seen == false && currentChat != \"ALL\") {\r\n count += missedGroupMessages;\r\n }\r\n });\r\n return count;\r\n };\r\n return (\r\n <>\r\n {showSnackbar == true ? : false}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!exhibitor ? (\r\n \r\n \r\n {interactionAllowOneToOneChat ? : null}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst TargetName = ({ currentChat, fontWeight, fontFamily, color, fontSize, person, preview }) => {\r\n const textStyle = {\r\n fontWeight,\r\n fontFamily,\r\n fontSize,\r\n color,\r\n width: \"50%\",\r\n };\r\n\r\n if (preview) {\r\n return (\r\n \r\n Kent Kentsson\r\n \r\n }\r\n secondary={\r\n \r\n Bolag AB\r\n \r\n }\r\n />\r\n );\r\n }\r\n if (currentChat == `ALL`) {\r\n return (\r\n \r\n \r\n \r\n }\r\n secondary={null}\r\n />\r\n );\r\n }\r\n if (currentChat == `MODERATOR`) {\r\n return (\r\n \r\n \r\n \r\n }\r\n secondary={\r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n } else if (person) {\r\n return (\r\n \r\n {person.name}\r\n \r\n }\r\n secondary={\r\n \r\n {person.company}\r\n \r\n }\r\n />\r\n );\r\n } else return null;\r\n};\r\n\r\nconst ChatIcon = ({ currentChat, person }) => {\r\n if (currentChat == `ALL`) return ;\r\n else if (currentChat == `MODERATOR`) return ;\r\n else if (person) return person.nameInitials;\r\n return null;\r\n};\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport \"croppie/croppie.css\";\r\nimport { Col, Row, Spinner } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport Slider, { createSliderWithTooltip } from \"rc-slider\";\r\nimport Rotate90DegreesCcwIcon from \"@material-ui/icons/Rotate90DegreesCcw\";\r\nimport { Button, IconButton, LinearProgress } from \"@material-ui/core\";\r\nimport CropIcon from \"@material-ui/icons/Crop\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\n/* import \"./ProfileImageUploader.css\"; */\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport CloudUploadIcon from \"@material-ui/icons/CloudUpload\";\r\nimport { securityHelper } from \"../../../../helpers/securityHelper\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport RotateLeftIcon from \"@material-ui/icons/RotateLeft\";\r\nimport RotateRightIcon from \"@material-ui/icons/RotateRight\";\r\nconst Croppie = require(\"croppie\");\r\nconst SliderWithTooltip = createSliderWithTooltip(Slider);\r\n\r\nconst DEFAULT_IMAGE =\r\n \"https://www.xovi.com/wp-content/plugins/all-in-one-seo-pack/images/default-user-image.png\";\r\n\r\nconst ProfileImageUploader = (props) => {\r\n const [source, setSource] = useState(\"\");\r\n const [isCropping, setIsCropping] = useState(false);\r\n const [imageLoaded, setImageLoaded] = useState(false);\r\n const imgRef = useRef(null);\r\n const fileInputRef = useRef(null);\r\n\r\n useEffect(() => {\r\n setSource(props.source);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (source) setSource(props.source);\r\n }, [props.source]);\r\n\r\n const toBase64 = (file) =>\r\n new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = (error) => reject(error);\r\n });\r\n\r\n const onImageUpload = async (e) => {\r\n const { cms, dispatch, element } = props;\r\n\r\n const file = e.target.files[0];\r\n const result = await toBase64(file).catch((e) => Error(e));\r\n if (result instanceof Error) {\r\n console.error(\"Error: \", result.message);\r\n return;\r\n }\r\n setIsCropping(true);\r\n setSource(result);\r\n\r\n if (fileInputRef.current.files) {\r\n fileInputRef.current.value = \"\";\r\n }\r\n };\r\n const onDelete = () => {\r\n props.onDeleteImage();\r\n };\r\n const setImageOnOrder = (source) => {\r\n setSource(source);\r\n props.setImage(source);\r\n //props.load\r\n };\r\n const onCropped = (source) => {\r\n setIsCropping(false);\r\n setImageOnOrder(source);\r\n };\r\n\r\n const setImageClassName = (type) => {\r\n switch (type) {\r\n case \"SQUARE\":\r\n return \"square--landscape\";\r\n case \"CIRCLE\":\r\n return \"circular--landscape\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n const handleImageLoaded = () => setImageLoaded({ imageLoaded: true });\r\n const { cms, template } = props;\r\n\r\n return (\r\n \r\n {!isCropping && (\r\n \r\n \r\n
\r\n )}\r\n\r\n \r\n {isCropping ? (\r\n setIsCropping(false)}\r\n size={{ height: 800, width: 800 }}\r\n viewport={{ height: 150, width: 150 }}\r\n parentId={securityHelper.createGuid()}\r\n onCropped={onCropped}\r\n backgroundColor={\"#fff\"}\r\n />\r\n ) : null}\r\n\r\n {!isCropping ? (\r\n <>\r\n
\r\n \r\n \r\n }\r\n onClick={() => setIsCropping(true)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n onClick={() => onDelete()}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n ) : null}\r\n \r\n\r\n {\r\n try {\r\n onImageUpload(e);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }}\r\n />\r\n \r\n );\r\n};\r\nfunction mapStateToProps(state) {\r\n return {\r\n form: state.form,\r\n template: state.template.template,\r\n cms: state.cms,\r\n attendee: state.attendee,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ProfileImageUploader);\r\n\r\nclass ProfileImageCropper extends React.Component {\r\n state = {\r\n zoom: 0,\r\n isLoading: false,\r\n };\r\n componentDidMount() {\r\n this.init();\r\n }\r\n init = (reRender = false) => {\r\n const { size, shape, parentId, viewport, backgroundColor } = this.props;\r\n\r\n if (this.cropper) {\r\n this.cropper.destroy();\r\n }\r\n if (size !== null || reRender) {\r\n this.cropper = new Croppie(\r\n document.getElementById(\"croppie-img-\" + parentId),\r\n {\r\n viewport: { ...viewport, type: shape.toLowerCase() },\r\n boundary: viewport,\r\n showZoomer: true,\r\n type: \"base64\",\r\n enableOrientation: true,\r\n }\r\n );\r\n\r\n this.handleZoomOut(0);\r\n let listNodes = document.getElementsByClassName(\"cr-vp-square\");\r\n\r\n if (listNodes[0]) {\r\n listNodes[0].style.boxShadow = `0px 0px 2000px 2000px ${backgroundColor}`;\r\n }\r\n listNodes = document.getElementsByClassName(\"cr-vp-circle\");\r\n if (listNodes[0]) {\r\n listNodes[0].style.boxShadow = `0px 0px 2000px 2000px ${backgroundColor}`;\r\n }\r\n }\r\n };\r\n componentDidUpdate(prevProps) {\r\n const { hideOverlay, size, source, isCropping } = this.props;\r\n if (\r\n hideOverlay !== undefined &&\r\n prevProps.hideOverlay !== hideOverlay &&\r\n hideOverlay == false\r\n ) {\r\n this.init(true);\r\n }\r\n\r\n if (source && prevProps.source !== source) {\r\n this.init();\r\n }\r\n if (isCropping !== isCropping) {\r\n this.init();\r\n }\r\n }\r\n\r\n handleZoomOut = (scale, controlled = false) => {\r\n if (this.cropper !== undefined) {\r\n const cZoom = this.cropper.get().zoom;\r\n if (!controlled && scale === 0) {\r\n this.setState({ zoom: scale }, () => {\r\n this.cropper.setZoom(scale);\r\n });\r\n return;\r\n }\r\n if (controlled === true && scale !== undefined) {\r\n this.setState({ zoom: scale }, () => {\r\n this.cropper.setZoom(scale);\r\n });\r\n return;\r\n }\r\n if (cZoom !== this.state.zoom) {\r\n if (cZoom === 50) {\r\n this.cropper.setZoom(0);\r\n this.setState({ zoom: 0 });\r\n return;\r\n }\r\n this.setState({ zoom: cZoom });\r\n }\r\n }\r\n };\r\n handleResult = () => {\r\n const { size } = this.props;\r\n this.setState({ isLoading: true });\r\n this.cropper\r\n .result({ type: \"base64\", size })\r\n .then((res) => this.handleSave(res));\r\n };\r\n handleSave = (res) => {\r\n const { onCropped } = this.props;\r\n onCropped(res);\r\n };\r\n close = () => {\r\n const { onClose } = this.props;\r\n onClose();\r\n };\r\n rotate = (rotation) => {\r\n this.cropper.rotate(rotation);\r\n };\r\n render() {\r\n const { shape, size, parentId, viewport, hideOverlay, source } = this.props;\r\n return (\r\n \r\n
\r\n {this.state.isLoading ? : null}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n }\r\n onClick={() => this.rotate(90)}\r\n >\r\n \r\n \r\n \r\n \r\n }\r\n onClick={() => this.rotate(-90)}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n }\r\n onClick={() => this.close()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n onClick={() => this.handleResult()}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport { FormGroup, Input, Row, Col, Label } from \"reactstrap\";\r\nimport Axios from \"axios\";\r\nimport { FormControl, FormControlLabel, IconButton } from \"@material-ui/core\";\r\nimport SettingsIcon from \"@material-ui/icons/Settings\";\r\nimport ProfileImageUploader from \"./ProfileImageUploader\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { toTitleCase } from \"../../../../helpers/stringHelper\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport AssignmentIndIcon from \"@material-ui/icons/AssignmentInd\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\n\r\nexport default function UserDetailsEditDialog(props) {\r\n const [personDetails, setPersonDetails] = useState({});\r\n const [open, setOpen] = useState(false);\r\n const [imageUploaded, setImageUploaded] = useState(false);\r\n const [hasChanged, setHasChanged] = useState(false);\r\n const [changeList, setChangeList] = useState({});\r\n const [saved, setSaved] = useState(false);\r\n\r\n const { hubConnection, linkedIn, clientKey, connected, eventId, title, allowedTitle, profileImage, name, anonymous, chatAlias, chatAdmin, personTypes } = props;\r\n\r\n useEffect(() => {\r\n setPersonDetails({ linkedIn, title, profileImage, chatAdmin, chatAlias });\r\n if (hubConnection) {\r\n hubConnection.on(\"onProfileDetailsUpdate\", () => {\r\n setChangeList([]);\r\n setSaved(true);\r\n });\r\n }\r\n }, []);\r\n\r\n const theme = useTheme();\r\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleChange = (path, v) => {\r\n const newChangeList = Array.from(changeList);\r\n\r\n let value = v;\r\n\r\n if (path != \"profileImage\") {\r\n /* value = value.replace(/[\\u00A0-\\u9999<>\\&]/g, function (i) {\r\n return \"&#\" + i.charCodeAt(0) + \";\";\r\n }); */\r\n }\r\n\r\n var index = newChangeList.indexOf(newChangeList.find((nc) => nc.name == toTitleCase(path)));\r\n if (index > -1) {\r\n newChangeList[index].value = value;\r\n } else {\r\n newChangeList.push({ name: toTitleCase(path), value });\r\n }\r\n\r\n setChangeList(newChangeList);\r\n setPersonDetails({ ...personDetails, [path]: value });\r\n setHasChanged(true);\r\n };\r\n\r\n const onDeleteImage = () => {\r\n handleChange(\"profileImage\", \"\");\r\n\r\n deleteImage();\r\n\r\n setHasChanged(true);\r\n\r\n setImageUploaded(false);\r\n };\r\n\r\n const onImageSet = (path, value) => {\r\n setImageUploaded(true);\r\n handleChange(path, value);\r\n };\r\n\r\n const deleteImage = () => {\r\n Axios.delete(`./api/meeting/deleteprofileimage/${clientKey}`).catch((err) => console.error(err));\r\n };\r\n const uploadImage = () => {\r\n Axios.post(`./api/meeting/uploadprofileimage`, {\r\n imageData: personDetails.profileImage,\r\n badgeNo: clientKey,\r\n })\r\n .then(({ data }) => {\r\n const { url } = data;\r\n handleChange(\"profileImage\", url);\r\n let newChangeList = Array.from(changeList);\r\n var index = newChangeList.indexOf(newChangeList.find((nc) => nc.name == \"ProfileImage\"));\r\n if (index > -1) {\r\n newChangeList[index].value = url;\r\n }\r\n\r\n save(newChangeList);\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n\r\n const beforeSave = () => {\r\n const { profileImage, title, linkedIn } = personDetails;\r\n if (profileImage && imageUploaded) {\r\n uploadImage(profileImage);\r\n } else {\r\n save(changeList);\r\n }\r\n };\r\n const save = (requestList = []) => {\r\n if (!connected || !hubConnection || hubConnection.connectionState != 1) return;\r\n hubConnection.invoke(\"updateProfileDetails\", {\r\n eventId,\r\n clientKey,\r\n props: requestList,\r\n });\r\n setHasChanged(false);\r\n setImageUploaded(false);\r\n handleClose();\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n onImageSet(\"profileImage\", v)} source={personDetails.profileImage} />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n handleChange(\"title\", e.target.value)} />\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n handleChange(\"linkedIn\", e.target.value)} />\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n handleChange(\"anonymous\", e.target.checked ? \"True\" : \"False\")}\r\n />\r\n }\r\n label={\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {Array.isArray(personTypes) && personTypes.includes(304) ? (\r\n \r\n \r\n \r\n \r\n handleChange(\"chatAdmin\", e.target.checked ? \"True\" : \"False\")}\r\n />\r\n }\r\n label={\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n ) : null}\r\n {Array.isArray(personTypes) && personTypes.includes(304) && (personDetails.chatAdmin == \"True\" || personDetails.chatAdmin == true) ? (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n handleChange(\"chatAlias\", e.target.value)} />\r\n
\r\n
\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useCallback, useEffect } from \"react\";\r\nimport { fade, makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport List from \"@material-ui/core/List\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport Badge from \"@material-ui/core/Badge\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport Tooltip from \"@material-ui/core/Tooltip\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport { ListItemSecondaryAction, IconButton } from \"@material-ui/core\";\r\nimport Axios from \"axios\";\r\nimport InsertCommentIcon from \"@material-ui/icons/InsertComment\";\r\nimport AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\nimport { templateHelper } from \"../../../cms/areas/template/helpers/templateHelper\";\r\nimport { connect } from \"react-redux\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport { OnlineBadge } from \"../../components/shared/OnlineBadge\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport UserDetailsEditDialog from \"./components/UserDetailsEditDialog\";\r\n\r\nfunction UserCardModule(props) {\r\n const {\r\n clientName,\r\n companyName,\r\n settings,\r\n template,\r\n preview = false,\r\n profileImage,\r\n eventId,\r\n lang,\r\n orderId\r\n } = props;\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.UserCard\", lang);\r\n }, []);\r\n const getStyle = () => {\r\n const obj = template.interaction.userCard;\r\n\r\n if (obj) {\r\n const frame = obj.frame;\r\n const avatar = obj.avatar;\r\n const name = obj.name;\r\n const company = obj.company;\r\n return {\r\n frame: {\r\n background: frame.background != \"unset\" ? frame.background : \"#fff\",\r\n borderColor:\r\n frame.borderColor != \"unset\" ? frame.borderColor : \"unset\",\r\n borderWidth: frame.borderWidth != \"unset\" ? frame.borderWidth : \"0px\",\r\n borderRadius:\r\n frame.borderRadius != \"unset\" ? frame.borderRadius : \"0px\",\r\n boxShadow: \"none\",\r\n borderStyle: \"solid\",\r\n },\r\n avatar: {\r\n background: avatar.background != \"unset\" ? avatar.background : \"#red\",\r\n color: avatar.color != \"unset\" ? avatar.color : \"#fff\",\r\n borderRadius:\r\n avatar.borderRadius != \"unset\" ? avatar.borderRadius : \"50%\",\r\n },\r\n\r\n name: {\r\n fontSize: name.fontSize != \"unset\" ? name.fontSize : \"15px\",\r\n color: name.color != \"unset\" ? name.color : \"#222\",\r\n fontWeight: name.fontWeight != \"unset\" ? name.fontWeight : \"normal\",\r\n fontFamily:\r\n name.fontFamily != \"unset\" ? name.fontFamily : \"Open Sans\",\r\n },\r\n company: {\r\n fontSize: company.fontSize != \"unset\" ? company.fontSize : \"15px\",\r\n color: company.color != \"unset\" ? company.color : \"#222\",\r\n fontWeight:\r\n company.fontWeight != \"unset\" ? company.fontWeight : \"normal\",\r\n fontFamily:\r\n company.fontFamily != \"unset\" ? company.fontFamily : \"Open Sans\",\r\n },\r\n };\r\n } else {\r\n }\r\n };\r\n const setStyle = useCallback(() => getStyle(), [template]);\r\n const style = setStyle();\r\n const { allowProfileEdit } = settings;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {preview ? 'Bruce Wayne' : (clientName || (\r\n \r\n ))}\r\n \r\n }\r\n secondary={\r\n {preview ? 'Waynes Enterprise' : (companyName || \"\")}\r\n }\r\n />\r\n {allowProfileEdit && orderId ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n
\r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template\r\n ? state.template.template.content\r\n : undefined,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(UserCardModule);\r\n","export const exhibitorStyle = (template) => {\r\n if (template && template.interaction.exhibitor) {\r\n const obj = template.interaction.exhibitor;\r\n\r\n const container = obj.frame;\r\n const title = obj.title;\r\n const subtitle = obj.subtitle;\r\n const logo = obj.logo;\r\n return {\r\n frame: {\r\n background:\r\n container && container.background != \"unset\"\r\n ? container.background\r\n : \"rgba(31, 30, 30, 0.4)\",\r\n borderRadius:\r\n container && container.borderRadius != \"unset\"\r\n ? container.borderRadius\r\n : \"4px\",\r\n padding:\r\n container && container.padding != \"unset\"\r\n ? container.padding\r\n : \"10px\",\r\n },\r\n title: {\r\n color: title && title.color != \"unset\" ? title.color : \"#fff\",\r\n fontSize:\r\n title && title.fontSize != \"unset\"\r\n ? title.fontSize\r\n : template.subtitle.fontSize,\r\n fontWeight:\r\n title && title.fontWeight != \"unset\"\r\n ? title.fontWeight\r\n : template.subtitle.fontWeight,\r\n fontFamily:\r\n title && title.fontFamily != \"unset\"\r\n ? title.fontFamily\r\n : template.subtitle.fontFamily,\r\n },\r\n logo: {\r\n background:\r\n logo && logo.background != \"unset\" ? logo.background : \"#fff\",\r\n borderRadius:\r\n logo && logo.borderRadius != \"unset\" ? logo.borderRadius : \"15px\",\r\n width:\r\n logo && logo.width != \"unset\" ? logo.width : \"300px\",\r\n },\r\n subtitle: {\r\n color: subtitle && subtitle.color != \"unset\" ? subtitle.color : \"#fff\",\r\n fontSize:\r\n subtitle && subtitle.fontSize != \"unset\"\r\n ? subtitle.fontSize\r\n : template.text.fontSize,\r\n fontWeight:\r\n subtitle && subtitle.fontWeight != \"unset\"\r\n ? subtitle.fontWeight\r\n : template.text.fontWeight,\r\n fontFamily:\r\n subtitle && subtitle.fontFamily != \"unset\"\r\n ? subtitle.fontFamily\r\n : template.text.fontFamily,\r\n },\r\n };\r\n } else {\r\n return {\r\n frame: {\r\n background: \"rgba(31, 30, 30, 0.4)\",\r\n borderRadius: \"4px\",\r\n padding: \"0px\",\r\n },\r\n logo: { background: \"#fff\" },\r\n title: template.subtitle,\r\n subtitle: template.text,\r\n };\r\n }\r\n};\r\n","import React, { useEffect, useState, useRef, memo, useCallback } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport { combineProps } from \"../../../helpers/objectHelper\";\r\nimport { exhibitorStyle } from \"./exhibitor.helper\";\r\nimport { eventLabelGroupsConstants } from \"../../constants/eventLabelGroups.contansts\";\r\nimport { Carousel as RSCarousel, CarouselItem, CarouselControl, CarouselIndicators, CarouselCaption } from \"reactstrap\";\r\nimport { useMemo } from \"react\";\r\n\r\nconst defaultState = {\r\n exhibitors: [],\r\n};\r\n\r\nfunction ExhibitorModule(props) {\r\n const [state, setState] = useState(defaultState);\r\n const { eventId, lang, template, settings, preview,mobileLayout } = props;\r\n const { filterByGroup, carousel, showText } = settings;\r\n const stateRef = useRef();\r\n stateRef.current = state;\r\n\r\n\r\n\r\n useEffect(() => {\r\n init(eventId, eventLabelGroupsConstants.EXHIBITOR_LABEL_GROUP, lang);\r\n fetchExhibitors();\r\n }, []);\r\n\r\n const fetchExhibitors = () => {\r\n axios.get(`./api/meeting/exhibitor/${eventId}`).then(({ data }) => {\r\n setState({ ...stateRef.current, exhibitors: data });\r\n });\r\n };\r\n const { exhibitors } = state;\r\n\r\n const filterExhibitors = useCallback(() => {\r\n if (!exhibitors || !Array.isArray(exhibitors)) return [];\r\n return [\r\n ...exhibitors\r\n .filter((e) => {\r\n if (filterByGroup) {\r\n if (filterByGroup.includes(\":\")) {\r\n if (e.groupName.includes(\":\")) {\r\n return arrayCompare(e.groupName.split(\":\"), filterByGroup.split(\":\"));\r\n } else {\r\n return filterByGroup.split(\":\").includes(e.groupName);\r\n }\r\n } else {\r\n if (e.groupName.includes(\":\")) {\r\n return e.groupName.split(\":\").includes(filterByGroup);\r\n } else {\r\n return filterByGroup == e.groupName;\r\n }\r\n }\r\n } else return true;\r\n })\r\n .map((e) => {\r\n return e.group.map((g) => {\r\n g.img = g.exhibitorSettings && g.exhibitorSettings.find((x) => x.name == \"LogoImage\") ? g.exhibitorSettings.find((x) => x.name == \"LogoImage\").value : undefined;\r\n return g;\r\n });\r\n })\r\n .flat(),\r\n ];\r\n }, [exhibitors, filterByGroup]);\r\n\r\n const filteredExhibitors = filterExhibitors();\r\n\r\n if (/* !exhibitors || !Array.isArray(exhibitors) || */ !template) return null;\r\n\r\n const api = {\r\n ...state,\r\n ...props,\r\n filteredExhibitors,\r\n exhibitorTemplate: exhibitorStyle(template),\r\n };\r\n\r\n return ;\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ExhibitorModule);\r\n\r\nfunction GridMap(props) {\r\n const { settings, filteredExhibitors, exhibitorTemplate,mobileLayout } = props;\r\n const { hideText, textLeft, scroll, carousel } = settings;\r\n const { frame, title, subtitle, logo } = exhibitorTemplate;\r\n return (\r\n \r\n {!mobileLayout && !hideText ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n {carousel ? (\r\n {\r\n return a.sortOrder - b.sortOrder;\r\n }),\r\n mobileLayout,\r\n logo,\r\n },\r\n ])}\r\n />\r\n ) : (\r\n filteredExhibitors\r\n .sort((a, b) => {\r\n return a.sortOrder - b.sortOrder;\r\n })\r\n .map((c, i) => {\r\n return (\r\n \r\n x.name == \"LogoImage\") ? c.exhibitorSettings.find((x) => x.name == \"LogoImage\").value : undefined,\r\n },\r\n ])}\r\n />\r\n \r\n );\r\n })\r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction GridItem(props) {\r\n const { settings, count, mobileLayout, img, externalLink, logo, exhibitorId, clientKey, name, preview, lang, scroll } = props;\r\n\r\n const { colsPerRow, oneRow, showText } = settings;\r\n let rows = Math.ceil(colsPerRow / count);\r\n let cpr = colsPerRow;\r\n\r\n const { borderRadius, width, background } = logo;\r\n\r\n if (oneRow == true) {\r\n rows = 1;\r\n cpr = count;\r\n }\r\n\r\n const expoNavigation = () => {\r\n if (preview || mobileLayout) return;\r\n\r\n if (externalLink) window.open(externalLink, \"_blank\");\r\n else {\r\n window.open(`${!window.location.href.includes(\"localhost\") ? \"/interaction\" : \"\"}/booth/${exhibitorId.toString(36)}?clientKey=${clientKey}&lang=${lang}`);\r\n }\r\n };\r\n let colWidth = 100 / cpr;\r\n\r\n return (\r\n \r\n
expoNavigation()}>\r\n {img && showText != true ? (\r\n \r\n ) : (\r\n

{name}

\r\n )}\r\n
\r\n \r\n );\r\n}\r\n\r\nfunction arrayCompare(_arr1, _arr2) {\r\n if (!Array.isArray(_arr1) || !Array.isArray(_arr2) || _arr1.length !== _arr2.length) {\r\n return false;\r\n }\r\n\r\n // .concat() to not mutate arguments\r\n const arr1 = _arr1.concat().sort();\r\n const arr2 = _arr2.concat().sort();\r\n\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i] == arr2[i]) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nconst Carousel = ({ items, exhibitorId, clientKey, lang, settings, filterByGroup, logo,mobileLayout }) => {\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const [animating, setAnimating] = useState(false);\r\n const { colsPerRow, oneRow } = settings;\r\n const cols = parseInt(colsPerRow);\r\n const { background, borderRadius } = logo;\r\n\r\n useEffect(() => {\r\n setTimeout(() => next(), 2500);\r\n }, []);\r\n\r\n const expoNavigation = (expo) => {\r\n if (/* preview || */mobileLayout) return;\r\n if (!expo) return;\r\n if (expo.externalLink) window.open(expo.externalLink, \"_blank\");\r\n else {\r\n window.open(`${!window.location.href.includes(\"localhost\") ? \"/interaction\" : \"\"}/booth/${expo.exhibitorId.toString(36)}?clientKey=${clientKey}&lang=${lang}`);\r\n }\r\n };\r\n\r\n const slides = useMemo(() => {\r\n let tempArr = [];\r\n\r\n const pc = 100 / cols;\r\n const slidesCount = Math.ceil(items.length / cols);\r\n for (let index = 0; index < slidesCount; index++) {\r\n let startIndex = index == 0 ? 0 : index * cols;\r\n let endIndex = /* startIndex > items.length ? items.length : */ startIndex + cols;\r\n tempArr.push(\r\n setAnimating(true)} onExited={() => setAnimating(false)} key={index}>\r\n
\r\n {items.slice(startIndex, endIndex).map((im, i) => {\r\n return (\r\n expoNavigation(im)}\r\n style={{\r\n cursor: \"pointer\",\r\n maxHeight: \"100%\",\r\n width: \"100%\",\r\n maxWidth: `calc(${pc + \"%\"} - 10px)`,\r\n maxHeight: \"calc(100% - 50px)\",\r\n display: \"flex\",\r\n background: background,\r\n borderRadius: borderRadius || \"15px\",\r\n padding: \"8px 0px\",\r\n margin: \"0px 5px\",\r\n }}\r\n >\r\n expoNavigation(im)} style={{ cursor: \"pointer\", maxWidth: \"90%\", /* width: \"100%\", */ maxHeight: \"100%\", height: \"auto\", margin: \"auto\" }} src={im.img} />\r\n
\r\n );\r\n })}\r\n \r\n
\r\n );\r\n }\r\n\r\n return tempArr;\r\n }, [items, colsPerRow, filterByGroup]);\r\n\r\n const next = () => {\r\n if (animating) return;\r\n const nextIndex = activeIndex === slides.length - 1 ? 0 : activeIndex + 1;\r\n setActiveIndex(nextIndex);\r\n };\r\n\r\n const previous = () => {\r\n if (animating) return;\r\n const nextIndex = activeIndex === 0 ? slides.length - 1 : activeIndex - 1;\r\n setActiveIndex(nextIndex);\r\n };\r\n\r\n const goToIndex = (newIndex) => {\r\n if (animating) return;\r\n setActiveIndex(newIndex);\r\n };\r\n\r\n if (!items || items.length === 0) return null;\r\n return (\r\n \r\n {slides}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","export const breakoutStyle = (template) => {\r\n if (template && template.interaction.breakouts) {\r\n const obj = template.interaction.breakouts;\r\n\r\n const frame = obj.frame;\r\n const title = obj.title;\r\n const subtitle = obj.subtitle;\r\n const list = obj.list;\r\n const listItem = obj.listItem;\r\n const button = obj.listItem.button;\r\n const avatar = obj.listItem.avatar;\r\n const text = obj.listItem.text;\r\n const readMore = obj.readMore;\r\n const description = obj.description;\r\n const rowDivider = obj.rowDivider;\r\n\r\n return {\r\n frame: {\r\n borderColor: frame.borderColor != \"unset\" ? frame.borderColor : \"unset\",\r\n borderWidth: frame.borderWidth != \"unset\" ? frame.borderWidth : \"0px\",\r\n background: frame.background != \"unset\" ? frame.background : \"#fff\",\r\n borderRadius: frame.borderRadius != \"unset\" ? frame.borderRadius : \"0px\",\r\n boxShadow: \"none\",\r\n borderStyle: \"solid\",\r\n },\r\n title: {\r\n fontSize: title.fontSize != \"unset\" ? title.fontSize : \"23px\",\r\n color: title.color != \"unset\" ? title.color : \"#222\",\r\n fontWeight: title.fontWeight != \"unset\" ? title.fontWeight : \"bold\",\r\n fontFamily: title.fontFamily != \"unset\" ? title.fontFamily : \"Open Sans\",\r\n },\r\n subtitle: {\r\n fontSize: subtitle.fontSize != \"unset\" ? subtitle.fontSize : \"18px\",\r\n color: subtitle.color != \"unset\" ? subtitle.color : \"#222\",\r\n fontWeight: subtitle.fontWeight != \"unset\" ? subtitle.fontWeight : \"normal\",\r\n fontFamily: subtitle.fontFamily != \"unset\" ? subtitle.fontFamily : \"Open Sans\",\r\n },\r\n description: {\r\n fontSize: description.fontSize != \"unset\" ? description.fontSize : \"18px\",\r\n color: description.color != \"unset\" ? description.color : \"#222\",\r\n fontWeight: description.fontWeight != \"unset\" ? description.fontWeight : \"normal\",\r\n fontFamily: description.fontFamily != \"unset\" ? description.fontFamily : \"Open Sans\",\r\n },\r\n rowDivider: {\r\n backgroundColor: rowDivider.backgroundColor != \"unset\" ? rowDivider.backgroundColor : \"#000\",\r\n height: rowDivider.height != \"unset\" ? rowDivider.height : \"0px\",\r\n },\r\n readMore: {\r\n fontSize: readMore.fontSize != \"unset\" ? readMore.fontSize : \"18px\",\r\n color: readMore.color != \"unset\" ? readMore.color : \"#222\",\r\n fontWeight: readMore.fontWeight != \"unset\" ? readMore.fontWeight : \"normal\",\r\n fontFamily: readMore.fontFamily != \"unset\" ? readMore.fontFamily : \"Open Sans\",\r\n },\r\n list: {\r\n marginLeft: list.marginLeft != \"unset\" ? list.marginLeft : \"0px\",\r\n marginRight: list.marginRight != \"unset\" ? list.marginRight : \"0px\",\r\n width: list.width != \"unset\" ? list.width : \"100%\",\r\n },\r\n listItem: {\r\n background: listItem.background != \"unset\" ? listItem.background : \"#fff\",\r\n marginLeft: listItem.marginLeft != \"unset\" ? listItem.marginLeft : \"0px\",\r\n marginRight: listItem.marginRight != \"unset\" ? listItem.marginRight : \"0px\",\r\n borderRadius: listItem.borderRadius != \"unset\" ? listItem.borderRadius : \"0px\",\r\n boxShadow: \"none\",\r\n width: listItem.width != \"unset\" ? listItem.width : \"100%\",\r\n borderStyle: \"solid\",\r\n borderWidth: listItem.borderWidth != \"unset\" ? listItem.borderWidth : \"0px\",\r\n borderColor: listItem.borderColor != \"unset\" ? listItem.borderColor : \"unset\",\r\n border: 0,\r\n borderBottom: `${listItem.borderWidth} solid ${listItem.borderColor}`,\r\n /* width: listItem.width != \"unset\" ? listItem.width : \"100%\", */\r\n text: {\r\n fontSize: text.fontSize != \"unset\" ? text.fontSize : \"15px\",\r\n color: text.color != \"unset\" ? text.color : \"#222\",\r\n fontWeight: text.fontWeight != \"unset\" ? text.fontWeight : \"normal\",\r\n fontFamily: text.fontFamily != \"unset\" ? text.fontFamily : \"Open Sans\",\r\n },\r\n button: {\r\n color: button.color != \"unset\" ? button.color : \"#5a60e3\",\r\n background: \"unset\",\r\n fontSize: button.fontSize != \"unset\" ? button.fontSize : \"15px\",\r\n },\r\n avatar: {\r\n color: avatar.color != \"unset\" ? avatar.color : \"#fff\",\r\n background: avatar.background != \"unset\" ? avatar.background : \"rgb(216 218 253)\",\r\n activeColor: avatar.activeColor != \"unset\" ? avatar.activeColor : \"#fff\",\r\n activeBackground: avatar.activeBackground != \"unset\" ? avatar.activeBackground : \"#5a60e3\",\r\n },\r\n },\r\n };\r\n }\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport axios from \"axios\";\r\nimport { eventLabelGroupsConstants } from \"../../constants/eventLabelGroups.contansts\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { breakoutStyle } from \"./breakout.helper\";\r\nimport { ScrollWrapper } from \"../../helpers/module.helper\";\r\nimport { Avatar, Collapse, IconButton, List, ListItem, ListItemAvatar, ListItemText } from \"@material-ui/core\";\r\nimport MeetingRoomIcon from \"@material-ui/icons/MeetingRoom\";\r\n\r\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\r\n\r\nfunction BreakoutModule(props) {\r\n const [breakouts, setBreakouts] = useState([]);\r\n const [activeBreakouts, setActiveBreakouts] = useState([]);\r\n const { lang, eventId, template, clientKey } = props;\r\n const breakoutRef = useRef();\r\n const timerRef = useRef(null);\r\n breakoutRef.current = breakouts;\r\n useEffect(() => {\r\n init(eventId, eventLabelGroupsConstants.BREAKOUT_LABEL_GROUP, lang);\r\n fetchBreakouts();\r\n return () => {\r\n if (timerRef.current) {\r\n clearInterval(timerRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const fetchBreakouts = () => {\r\n axios.get(`./api/meeting/breakouts/${eventId}?badgeNo=${clientKey}`).then(({ data }) => {\r\n setBreakouts(data);\r\n checkActiveBreakouts();\r\n });\r\n };\r\n const checkActiveBreakouts = () => {\r\n if (!timerRef.current) {\r\n timerRef.current = setInterval(checkActiveBreakouts, 5000);\r\n }\r\n let activeBreakouts = breakoutRef.current.filter((b) => {\r\n return b.timeRule > 0 ? +new Date(b.start) - b.timeRule * 60000 < +new Date() && +new Date(b.end) > +new Date() : true;\r\n });\r\n setActiveBreakouts(activeBreakouts);\r\n };\r\n const api = {\r\n ...props,\r\n activeBreakouts,\r\n breakoutTemplate: breakoutStyle(template),\r\n };\r\n\r\n return ;\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(BreakoutModule);\r\n\r\nconst linkConverter = (link) => {\r\n let convertedLink = link;\r\n if (convertedLink.includes(\"digitalmeeting\")) convertedLink = convertedLink.replace(\"digitalmeeting\", \"digitalarena\");\r\n return convertedLink;\r\n};\r\n\r\nconst BreakoutContainer = (props) => {\r\n const [open, setOpen] = useState({});\r\n const { breakoutTemplate, settings, activeBreakouts, lang, eventId, template } = props;\r\n const { title, subtitle, frame, list, listItem, readMore, description, rowDivider } = breakoutTemplate;\r\n const { avatar, text, button } = listItem;\r\n const { showTitle, showSubtitle, showAvatar, showButton, collapsibleDescription, divideTimeslot, filterByGroup, showAlternativeName = false } = settings;\r\n return (\r\n \r\n {showTitle ? (\r\n \r\n \r\n \r\n ) : null}\r\n {showSubtitle ? (\r\n \r\n \r\n \r\n ) : null}\r\n\r\n \r\n \r\n {activeBreakouts.filter(ab => filterByGroup ? ab.filters.includes(filterByGroup.toLowerCase()) : true).map((b, i) => {\r\n const displayLang = b.eventDisplayLanguage.find((x) => x.languageCode === lang && x.alternative === showAlternativeName)\r\n return (\r\n
\r\n {\r\n e.stopPropagation();\r\n return !b.disabled && b.link && b.allowed && b.eventId != eventId\r\n ? (window.location.href = (!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\") + \"/\" + linkConverter(b.link) + \"&lang=\" + lang)\r\n : null;\r\n }}\r\n >\r\n {showAvatar ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n {b.eventId === 1171 || b.eventId === 2153 || b.eventId === 2154 || b.eventId == 2155 ?\r\n {\"BACK TO MAIN STAGE\"}
} />\r\n :\r\n {displayLang?.name ? displayLang.name : b.name}} />\r\n }\r\n\r\n {b.link && showButton ? (\r\n \r\n {\r\n e.stopPropagation();\r\n window.location.href = (!window.location.toString().includes(\"localhost\") ? \"/interaction\" : \"\") + \"/\" + linkConverter(b.link) + \"&lang=\" + lang;\r\n }}\r\n style={{\r\n padding: 0,\r\n backgroundColor: \"transparent\",\r\n fontSize: button.fontSize + \"!important\",\r\n color: button.color,\r\n }}\r\n >\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n {displayLang?.description ? \r\n <>\r\n {displayLang.description ? (\r\n \r\n
\r\n \r\n ) : null}\r\n {displayLang.description && collapsibleDescription ? (\r\n setOpen({ ...open, [b.eventId]: !open[b.eventId] })}\r\n style={{\r\n ...readMore,\r\n ...listItem,\r\n marginLeft: \"16px\",\r\n marginTop: readMore.marginTop || 0,\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n {open[b.eventId] ? : }\r\n
\r\n ) : null}\r\n \r\n : \r\n <>\r\n {b.description ? (\r\n \r\n
\r\n \r\n ) : null}\r\n {b.description && collapsibleDescription ? (\r\n setOpen({ ...open, [b.eventId]: !open[b.eventId] })}\r\n style={{\r\n ...readMore,\r\n ...listItem,\r\n marginLeft: \"16px\",\r\n marginTop: readMore.marginTop || 0,\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n {open[b.eventId] ? : }\r\n
\r\n ) : null}\r\n \r\n }\r\n\r\n {divideTimeslot ? (\r\n i + 1 <= activeBreakouts.length - 1 && activeBreakouts[i + 1].start != activeBreakouts[i].start ? (\r\n
\r\n ) : null\r\n ) : null}\r\n \r\n );\r\n })}\r\n \r\n
\r\n \r\n );\r\n};\r\n","import React, { memo, useEffect, useMemo } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Card, ListItem, Typography, ListItemAvatar } from \"@material-ui/core\";\r\nimport PeopleIcon from \"@material-ui/icons/People\";\r\nimport EventLabel2, { init } from \"../../../components/EventLabel2/EventLabel2\";\r\nimport { connectionsStyle } from \"./connections.helper\";\r\nimport { clientTypeConstants } from \"../../../interaction/constants/clientType.constants\";\r\nfunction connectionsComparer(prevProps, props) {\r\n return prevProps.template === props.template && prevProps.connectionList && prevProps.connectionList.length === props.connectionList.length\r\n}\r\nconst ConnectionsModule = memo(({ eventId, lang, channel, template, preview, connectionList = [] }) => {\r\n // const { eventId, lang, channel, template, preview, connectionList = [] } = props;\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.Connections\", lang);\r\n }, []);\r\n const { background, borderRadius, borderWidth, borderColor, borderStyle, fontSize, fontWeight, fontFamily, color } = connectionsStyle(template);\r\n\r\n let connections = useMemo(() => {\r\n if (preview) return 106;\r\n return connectionList.filter((cl) => cl.type == clientTypeConstants.INTERACTION_MEETING && cl.channel == channel).length;\r\n }, [connectionList]);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {connections}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n},connectionsComparer);\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n template: state.template.template ? state.template.template.content : null,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ConnectionsModule);\r\n","export const connectionsStyle = (template) => {\r\n if (template && template.interaction.connections) {\r\n return {\r\n background: template.interaction.connections.background,\r\n borderRadius: template.interaction.connections.borderRadius,\r\n borderWidth: template.interaction.connections.borderWidth,\r\n borderColor:\r\n template.interaction.connections.borderColor != \"unset\"\r\n ? template.interaction.connections.borderColor\r\n : \"transparent\",\r\n borderStyle:\r\n template.interaction.connections.borderWidth != \"unset\"\r\n ? \"solid\"\r\n : undefined,\r\n fontSize: template.interaction.connections.fontSize,\r\n fontWeight: template.interaction.connections.fontWeight,\r\n fontFamily: template.interaction.connections.fontFamily,\r\n color: template.interaction.connections.color,\r\n };\r\n } else {\r\n return {\r\n ...template.label,\r\n background: template.content ? template.content.backgroundColor : \"#fff\",\r\n };\r\n }\r\n};\r\n","import React from \"react\";\r\nimport VideocamRoundedIcon from \"@material-ui/icons/VideocamRounded\";\r\nimport { Avatar, Button, Grid, Tooltip } from \"@material-ui/core\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { eventLabelGroupsConstants } from \"../../../constants/eventLabelGroups.contansts\";\r\n\r\nexport const VideoCallMessage = ({ sender, receiver, chatTemplate, ...rest }) => {\r\n const { primaryColor, secondaryColor } = chatTemplate;\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React, { memo, useEffect } from \"react\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\nimport { formatTime } from \"../../../../helpers/time.helper\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport AccessTimeIcon from \"@material-ui/icons/AccessTime\";\r\nimport ThumbUpIcon from \"@material-ui/icons/ThumbUp\";\r\nimport { combineProps } from \"../../../../helpers/objectHelper\";\r\nimport { VideoCallMessage } from \"./VideoCallMessage\";\r\n\r\nexport const MessageBubble = memo(\r\n ({\r\n message = \"\",\r\n timeStamp,\r\n name,\r\n chatAlias,\r\n likes = 0,\r\n chatAdmin,\r\n fromYou,\r\n likeMessage = () => null,\r\n interactionChatId,\r\n chatTemplate,\r\n senderOrderId,\r\n senderFirstName,\r\n orderList,\r\n senderLastName,\r\n senderCompanyName,\r\n sender,\r\n receiver,\r\n lang,\r\n tickCode\r\n }) => {\r\n const { messages, primaryColor } = chatTemplate;\r\n return (\r\n
\r\n \r\n \r\n {message.toString() == \"THUMB_UP\" ? (\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ) : (\r\n \r\n \r\n {parseMessage(message, fromYou, sender, receiver, chatTemplate)}\r\n\r\n (message.toString() != \"THUMB_UP\" ? likeMessage(interactionChatId) : null)}\r\n className={\"liked-message-box\" + (likes < 1 ? \" empty-like\" : \"\")}\r\n >\r\n {\" \"}\r\n {likes > 0 ? likes : \"\"}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nconst SenderNameInfo = memo(({ messages, color, chatAdmin, chatAlias, fromYou, senderCompanyName, senderFirstName, senderLastName, senderOrderId, sender, tickCode }) => {\r\n return (\r\n \r\n {!senderOrderId ?\r\n (sender.toLowerCase().startsWith(\"sneakyspy\") ? :\r\n (sender.startsWith(tickCode) ? :\r\n \r\n )) : chatAdmin == true ? (\r\n chatAlias ? (\r\n chatAlias\r\n ) : (\r\n `${senderFirstName} ${senderLastName}` + (senderCompanyName ? ` • ${senderCompanyName}` : \"\")\r\n )\r\n ) : (\r\n `${senderFirstName} ${senderLastName}` + (senderCompanyName ? ` • ${senderCompanyName}` : \"\")\r\n )}\r\n \r\n );\r\n});\r\n\r\nconst TimeStamp = ({ messages, timeStamp, lang }) => {\r\n if (!timeStamp) return null;\r\n return (\r\n
\r\n \r\n {formatTime(timeStamp, lang)}\r\n
\r\n );\r\n};\r\n\r\nconst parseMessage = (message, fromYou, sender, receiver, chatTemplate) => {\r\n if (message.includes(\"VIDEO_CALL_INVITATION\")) {\r\n return ;\r\n }\r\n if (message.includes(\"JX_ADMIN_REMOVED:\")) return null; /* (\r\n
\r\n \r\n \r\n {\" \"}\r\n \r\n
\r\n ); */\r\n if (message.includes(\"https://\")) return ;\r\n else return message.toString().replace(\"*!\", \"\");\r\n};\r\n\r\nconst ChatLink = ({ text, linkStyle, fromYou = false }) => {\r\n const urlify = () => {\r\n var urlRegex = /(https?:\\/\\/[^\\s]+)/g;\r\n let url = \"\";\r\n text.replace(urlRegex, function (u) {\r\n url = u;\r\n });\r\n return url;\r\n };\r\n const textify = () => {\r\n var urlRegex = /(https?:\\/\\/[^\\s]+)/g;\r\n let style = fromYou ? \"text-decoration: underline; color: #fff;cursor: pointer;\" : \"text-decoration: underline; color: #2a40fe;cursor: pointer;\";\r\n return text.replace(urlRegex, function (url) {\r\n return `${url} `;\r\n });\r\n };\r\n const content = textify();\r\n return
;\r\n};\r\n","import { Avatar } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport ChatOutlinedIcon from \"@material-ui/icons/ChatOutlined\";\r\nimport EventLabel2 from \"../../../../components/EventLabel2/EventLabel2\";\r\n\r\nexport function NoMessagePlaceholder(props) {\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\n//Avatar med chatt icon ... text under\r\n\r\n// \r\n// \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n/* \r\n\r\n */\r\n","import React, { memo, useCallback, useEffect, useMemo } from \"react\";\r\nimport { combineProps, deepClone } from \"../../../../helpers/objectHelper\";\r\nimport { ScrollWrapper } from \"../../../helpers/module.helper\";\r\nimport { ChatAvatar } from \"./ChatAvatar\";\r\nimport { MessageBubble } from \"./MessageBubble\";\r\nimport { NoMessagePlaceholder } from \"./NoMessagePlaceholder\";\r\nimport { ScrollToBottomButton } from \"./ScrollToBottomButton\";\r\nimport PersonRoundedIcon from \"@material-ui/icons/PersonRounded\";\r\nimport { formatTime, isTheSameMinute } from \"../../../../helpers/time.helper\";\r\nimport AccessTimeIcon from \"@material-ui/icons/AccessTime\";\r\nimport { TimeStamp } from \"./shared/TimeStamp\";\r\n\r\nconst MOCK_MESSAGES = [\r\n {\r\n interactionChatId: 1,\r\n eventId: 1,\r\n sender: \"123123\",\r\n receiver: \"ALL\",\r\n message: \"Hej!\",\r\n inserted: \"2021-01-22T14:57:09.2580406\",\r\n senderOrderId: 100000,\r\n senderFirstName: \"Pelle\",\r\n senderLastName: \"Persson\",\r\n senderCompanyName: \"Pelles bolag\",\r\n receiverOrderId: null,\r\n receiverFirstName: null,\r\n receiverLastName: null,\r\n receiverCompanyName: null,\r\n receiverExhibitorId: null,\r\n senderExhibitorId: null,\r\n likes: null,\r\n seen: true,\r\n room: null,\r\n fromYou: true,\r\n },\r\n {\r\n interactionChatId: 2,\r\n eventId: 1,\r\n sender: \"123123\",\r\n receiver: \"ALL\",\r\n message: \"Hej Kent! Kul att se ditt namn här!\",\r\n inserted: \"2021-01-22T14:57:09.2580406\",\r\n senderOrderId: 100000,\r\n senderFirstName: \"Pelle\",\r\n senderLastName: \"Persson\",\r\n senderCompanyName: \"Bolaget BA\",\r\n receiverOrderId: null,\r\n receiverFirstName: null,\r\n receiverLastName: null,\r\n receiverCompanyName: null,\r\n receiverExhibitorId: null,\r\n senderExhibitorId: null,\r\n likes: null,\r\n seen: true,\r\n room: null,\r\n fromYou: false,\r\n },\r\n];\r\n\r\n//Messagelist should only update if new messages is recivied or connectionList has changed\r\nconst areEqual = (prevProps, nextProps) => {\r\n let equal = true;\r\n if (prevProps.connectionList !== nextProps.connectionList) {\r\n equal = false;\r\n }\r\n if (prevProps.chats !== nextProps.chats) {\r\n equal = false;\r\n }\r\n if (prevProps.currentChat !== nextProps.currentChat) {\r\n equal = false;\r\n }\r\n if (\r\n nextProps.chatTemplate &&\r\n prevProps.chatTemplate &&\r\n (prevProps.chatTemplate.primaryColor !== nextProps.chatTemplate.primaryColor ||\r\n prevProps.chatTemplate.secondaryColor !== nextProps.chatTemplate.secondaryColor ||\r\n prevProps.chatTemplate.messages !== nextProps.chatTemplate.messages)\r\n ) {\r\n equal = false;\r\n }\r\n if (nextProps.initalScrollPos !== prevProps.initalScrollPos) {\r\n equal = false;\r\n }\r\n\r\n return equal;\r\n};\r\n\r\nexport const MessageList = memo((props) => {\r\n const {\r\n onScroll,\r\n chatTemplate,\r\n chats,\r\n clientKey,\r\n currentChat,\r\n backstage,\r\n template,\r\n scrollRef,\r\n likeMessage = () => null,\r\n connectionList,\r\n lang,\r\n messagesToShow,\r\n lastMessageRef,\r\n settings,\r\n orderList,\r\n preview,\r\n tickCode\r\n } = props;\r\n const { messages } = chatTemplate;\r\n\r\n const getMessages = useCallback(() => {\r\n if (preview) return MOCK_MESSAGES;\r\n const requestedChat = chats.find((c) => c.target == currentChat);\r\n if (!currentChat || !requestedChat) return [];\r\n return requestedChat.messages; /* .slice(messagesToShow * -1); */\r\n }, [chats, currentChat, messagesToShow]);\r\n\r\n const chatMessages = getMessages()?.filter((m) => {\r\n if(settings.hideMessages){\r\n return m.message.hidden != true;\r\n }\r\n return true;\r\n });\r\n const { showUserProfileImage } = settings;\r\n\r\n\r\n const scrollWrapperProps = {\r\n template,\r\n backstage,\r\n };\r\n return (\r\n \r\n onScroll(true)}\r\n >\r\n {((chats.length > 0 && currentChat) || preview) && chatMessages.length > 0 ? (\r\n chatMessages\r\n .filter((m) => !m.message.includes(\"JX_ADMIN_REMOVED\") && m?.hidden !== true)\r\n .map((m, i) => {\r\n const length = chatMessages.filter((m) => !m.message.includes(\"JX_ADMIN_REMOVED\")).length;\r\n return (\r\n
\r\n {i != 0 && !isTheSameMinute(m.inserted, chatMessages[i - 1].inserted) ? (\r\n \r\n ) : null}\r\n \r\n {showUserProfileImage ? (\r\n
\r\n \r\n \r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n );\r\n })\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n );\r\n}, areEqual);\r\n","import React from 'react';\r\nimport './FloatingChecklist.css'\r\nimport { Col, Row } from 'reactstrap';\r\nimport SystemLabel from '../../system/SystemLabel/SystemLabel';\r\n\r\nexport const FloatingChecklist = ({ list, onCheck }) => {\r\n return
\r\n {list.map((a, i) => {\r\n return
onCheck(a.address)} key={i}>{a.address}
\r\n })}\r\n
\r\n}\r\n\r\nexport const FloatingGenericList = ({ list, onCheck }) => {\r\n return
\r\n {list.map((a, i) => {\r\n return onCheck(a.id)} key={i}>\r\n \r\n {a.name}\r\n \r\n \r\n \r\n \r\n \r\n })}\r\n
\r\n}","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport Axios from \"axios\";\r\nimport { sourceTypes } from \"../../constants/cms/sourceType\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport { Row, Label, Col, Input, FormGroup } from \"reactstrap\";\r\nimport { InputBase, Paper, Button, Tooltip } from \"@material-ui/core\";\r\nimport JirangoSwitch from \"../JirangoSwitch/JirangoSwitch\";\r\nimport SystemLabel from \"../../system/SystemLabel/SystemLabel\";\r\nimport LinkIcon from \"@material-ui/icons/Link\";\r\nimport ViewListIcon from \"@material-ui/icons/ViewList\";\r\nimport { FloatingGenericList } from \"../FloatingChecklist/FloatingChecklist\";\r\nimport { cmsActions } from \"../../store/actions/cms/cms.action\";\r\n\r\nclass LinkManager extends React.Component {\r\n state = {\r\n showSettings: false,\r\n internalPaths: [],\r\n searchKey: \"\",\r\n currentLink: this.props.url || \"\",\r\n domain: \"\",\r\n target: \"_blank\",\r\n appendBadgeNo: false,\r\n showList: false,\r\n };\r\n componentDidMount() {\r\n const { selectedLink } = this.props;\r\n if (selectedLink && typeof selectedLink == {}) {\r\n const { target, link, name } = selectedLink;\r\n this.setState({ target, currentLink: link, displayText: name });\r\n }\r\n this.getInternalPaths();\r\n }\r\n componentDidUpdate(prevProps) {\r\n const { selectedLink } = this.props;\r\n if ((selectedLink && !prevProps.selectedLink) || (selectedLink && prevProps.selectedLink != selectedLink)) {\r\n const { target, link, name } = selectedLink;\r\n this.setState({ target, currentLink: link, displayText: name });\r\n }\r\n if (this.props.isOpen && !prevProps.isOpen) {\r\n this.props.dispatch(cmsActions.blockDeselect(true));\r\n }\r\n }\r\n\r\n editLink = (e) => this.setState({ currentLink: e });\r\n search = (str) => this.setState({ searchKey: str, showList: false });\r\n toggleAlt = () => this.setState({ target: this.state.target == \"_blank\" ? \"_self\" : \"_blank\" });\r\n handleClose = () => {\r\n this.props.toggle();\r\n setTimeout(() => this.props.dispatch(cmsActions.blockDeselect(false)), 2000);\r\n };\r\n setLink = () => {\r\n const { displayText, target, domain, currentLink } = this.state;\r\n this.props.setLink(\r\n currentLink /* {\r\n currentLink,\r\n displayText,\r\n target,\r\n } */\r\n );\r\n this.props.toggle();\r\n };\r\n getInternalPaths = () => {\r\n const { eventId } = this.props;\r\n if (!eventId) return;\r\n Axios.get(`./api/link/${eventId}`).then((res) => {\r\n const { data } = res;\r\n if (data) {\r\n const { pathsObj } = data;\r\n this.setState({\r\n internalPaths: pathsObj.paths,\r\n domain: pathsObj.domain,\r\n });\r\n }\r\n });\r\n };\r\n convertInternalLink = (type, id) => {\r\n const { domain } = this.state;\r\n switch (type) {\r\n case \"AnonymousSurvey\":\r\n if (typeof id === \"string\" && !isNaN(id)) id = parseInt(id);\r\n return domain + \"/cms/survey/\" + id.toString(36);\r\n case \"Form\":\r\n if (typeof id === \"string\" && !isNaN(id)) id = parseInt(id);\r\n\r\n return domain + \"/cms/register/\" + id.toString(36) + \"?badgeNo=[clientKey]\";\r\n case \"Breakout\":\r\n return domain + \"/interaction/digitalarena/\" + id + \"?clientKey=[clientKey]\";\r\n case \"Page\":\r\n if (typeof id === \"string\" && !isNaN(id)) id = parseInt(id);\r\n return domain + \"/cms/p/\" + id.toString(36) + \"?badgeNo=[clientKey]\";\r\n case \"DigitalArena\":\r\n return domain + \"/interaction/digitalarena/\" + id + \"?clientKey=[clientKey]\";\r\n case \"Cms2FORM\":\r\n case \"Cms2PAGE\":\r\n case \"Cms2SURVEY\":\r\n return domain + (!window.location.href.includes(\"localhost\") ? \"/cms\" : \"\") + \"/web/\" + id + \"?badgeNo=[clientKey]\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n selectFromList = (id) => {\r\n const { internalPaths } = this.state;\r\n const internalPath = internalPaths.find((p) => p.id == id);\r\n if (internalPath) {\r\n this.setState({\r\n currentLink: this.convertInternalLink(internalPath.type, id),\r\n displayText: internalPath.name,\r\n searchKey: false,\r\n /* showList: false, */\r\n });\r\n }\r\n };\r\n\r\n toggleMailTo = () => {\r\n if (this.state.currentLink && this.state.currentLink.includes(\"mailto:\")) {\r\n this.setState({ currentLink: this.state.currentLink ? this.state.currentLink.replace(\"mailto:\", \"\") : \"\" });\r\n } else {\r\n this.setState({ currentLink: \"mailto:\" + this.state.currentLink });\r\n }\r\n };\r\n\r\n render() {\r\n const { isOpen } = this.props;\r\n const { searchKey, internalPaths, showList, displayText, currentLink } = this.state;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n this.search(e.target.value);\r\n this.editLink(e.target.value);\r\n }}\r\n />\r\n
\r\n
this.setState({ showList: !this.state.showList })} style={{ padding: \"0px 10px\", cursor: \"pointer\", zIndex: 1 }} aria-label=\"search\">\r\n }>\r\n \r\n \r\n
\r\n \r\n
\r\n {showList && internalPaths.length > 0 ? (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.selectFromList(id)}\r\n list={showList ? internalPaths : internalPaths.filter((p) => p.name.toLowerCase().includes(searchKey.toLowerCase()))}\r\n />\r\n
\r\n \r\n
\r\n \r\n ) : null}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.toggleMailTo()} isChecked={this.state.currentLink ? this.state.currentLink.includes(\"mailto:\") : false} />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { enviroment } = state.cms;\r\n let eventId = null;\r\n if (enviroment === sourceTypes.FORM) {\r\n eventId = state.form.eventId;\r\n }\r\n if (enviroment === sourceTypes.PAGE) {\r\n eventId = state.page.eventId;\r\n }\r\n if (enviroment === sourceTypes.TEMPLATE) {\r\n eventId = state.template.eventId;\r\n }\r\n\r\n if (enviroment === sourceTypes.EMAIL) {\r\n eventId = state.email.eventId;\r\n }\r\n return {\r\n template: state.template.template,\r\n cms: state.cms,\r\n /* eventId, */\r\n };\r\n}\r\nexport default connect(mapStateToProps)(LinkManager);\r\n","import { cmsConstants } from '../../../constants/cms/cms.constants';\r\nimport { authHeader } from '../../../helpers/authHeader';\r\nimport { handleResponse } from '../../../helpers/handleresponse';\r\n\r\nexport const cmsActions = {\r\n setSourceLocation,\r\n setEnviroment,\r\n containerToUpdate,\r\n containerUpdated,\r\n containerAdded,\r\n loadClientFonts,\r\n getClientFonts,\r\n getFonts,\r\n removeFont,\r\n addFont,\r\n alertNewModifications,\r\n globalSavingLoader,\r\n toggleInheritageInfo,\r\n inheritageAffected,\r\n blockDeselect\r\n}\r\n\r\n\r\nfunction globalSavingLoader(isLoading) {\r\n return dispatch => {\r\n dispatch(success(isLoading));\r\n };\r\n function success(model) {\r\n return { type: cmsConstants.GLOBAL_SAVING_LOADER, isLoading};\r\n }\r\n}\r\nfunction blockDeselect(isBlocked) {\r\n return dispatch => {\r\n dispatch(success(isBlocked));\r\n };\r\n function success(model) {\r\n return { type: cmsConstants.BLOCK_DESELECT, isBlocked};\r\n }\r\n}\r\n\r\nfunction alertNewModifications(isModified, source, callback) {\r\n\r\n return dispatch => {\r\n dispatch(success(isModified, source, callback));\r\n };\r\n function success(model) {\r\n return { type: cmsConstants.ALERT_NEW_MODIFICATIONS, isModified, source, callback };\r\n }\r\n}\r\n\r\nfunction loadClientFonts(fonts) {\r\n return dispatch => {\r\n dispatch(success(fonts));\r\n };\r\n function success(fonts) {\r\n return { type: cmsConstants.LOAD_CLIENT_FONTS, fonts };\r\n }\r\n}\r\nfunction removeFont(font) {\r\n return dispatch => {\r\n dispatch(success(font));\r\n };\r\n function success(font) {\r\n return { type: cmsConstants.REMOVE_CLIENT_FONT, font };\r\n }\r\n}\r\nfunction addFont(font) {\r\n return dispatch => {\r\n dispatch(success(font));\r\n };\r\n function success(font) {\r\n return { type: cmsConstants.ADD_CLIENT_FONT, font };\r\n }\r\n}\r\n\r\n\r\nfunction inheritageAffected(isAffected){\r\n return dispatch => {\r\n dispatch(success(isAffected));\r\n };\r\n function success(isAffected) {\r\n return { type: cmsConstants.INHERITAGE_AFFECTED, isAffected };\r\n }\r\n}\r\nfunction toggleInheritageInfo(on){\r\n return dispatch => {\r\n dispatch(success(on));\r\n };\r\n function success(on) {\r\n return { type: cmsConstants.TOGGLE_INHERITAGE_INFO, on };\r\n }\r\n}\r\nfunction getClientFonts(eventId) {\r\n return dispatch => {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n fetch(`./api/files/fonts/${eventId}`, requestOptions)\r\n .then(handleResponse)\r\n .then(data => {\r\n if (data.files !== undefined) {\r\n let clientFonts = [];\r\n data.files.map(f => {\r\n\r\n clientFonts.push({\r\n name: f.name.substring(f.name.lastIndexOf('/') + 1, f.name.lastIndexOf('.') + 1).toString()\r\n .replace(')', '')\r\n .replace('(', '').replace('.', '').replace('1', '').replace('', ''), url: f.url\r\n });\r\n });\r\n dispatch(success(clientFonts));\r\n }\r\n\r\n })\r\n };\r\n function success(fonts) {\r\n return { type: cmsConstants.LOAD_CLIENT_FONTS, fonts };\r\n }\r\n}\r\nfunction getFonts(eventId) {\r\n\r\n return dispatch => {\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: authHeader({ \"Content-Type\": \"application/json\" }),\r\n };\r\n fetch(`./api/files/?format=font`, requestOptions)\r\n .then(handleResponse)\r\n .then(data => {\r\n let clientFonts = [];\r\n if (data.files === undefined) { return; }\r\n data.files.map(f => {\r\n\r\n /* fonts.push(this.convertFont(f.name)); */\r\n clientFonts.push({\r\n name: f.name.substring(f.name.lastIndexOf('/') + 1, f.name.lastIndexOf('.') + 1).toString()\r\n .replace(')', '')\r\n .replace('(', '').replace('.', '').replace('1', '').replace('', ''), url: f.url\r\n });\r\n });\r\n dispatch(success(clientFonts));\r\n\r\n })\r\n };\r\n\r\n /* function success(font) {\r\n return { type: cmsConstants.ADD_CLIENT_FONT, font };\r\n } */\r\n function success(fonts) {\r\n return { type: cmsConstants.LOAD_CLIENT_FONTS, fonts };\r\n }\r\n\r\n}\r\n\r\n\r\n//Remove these?\r\nfunction containerToUpdate(container) {\r\n return dispatch => {\r\n dispatch(success(container));\r\n };\r\n function success(container) {\r\n return { type: cmsConstants.CONTAINER_TO_UPDATE, container };\r\n }\r\n}\r\nfunction containerUpdated() {\r\n return dispatch => {\r\n dispatch(success());\r\n };\r\n function success() {\r\n return { type: cmsConstants.CONTAINER_UPDATED };\r\n }\r\n}\r\nfunction containerAdded(container) {\r\n return dispatch => {\r\n dispatch(success(container));\r\n };\r\n function success(container) {\r\n return { type: cmsConstants.CONTAINER_ADDED, container };\r\n }\r\n}\r\n\r\n\r\nfunction setEnviroment(env, editMode = false, eventId) {\r\n return dispatch => {\r\n dispatch(success(env, editMode));\r\n };\r\n function success(env) {\r\n return { type: cmsConstants.SET_ENVIROMENT, env, editMode, eventId };\r\n }\r\n}\r\n\r\nfunction setSourceLocation(sourceLoc, env) {\r\n return dispatch => {\r\n dispatch(success(sourceLoc, env));\r\n };\r\n function success(sourceLoc, env) {\r\n return { type: cmsConstants.SET_SOURCE_LOCATION, sourceLoc, env };\r\n }\r\n}\r\n","export const questionConstants = {\r\n\r\n GET_QUESTION_BY_EVENT_REQUEST: 'GET_QUESTION_BY_EVENT_REQUEST',\r\n GET_QUESTION_BY_EVENT_SUCCESS: 'GET_QUESTION_BY_EVENT_SUCCESS',\r\n GET_QUESTION_BY_EVENT_FAILURE: 'GET_QUESTION_BY_EVENT_FAILURE',\r\n\r\n UPDATE_QUESTION_REQUEST:\"UPDATE_QUESTION_REQUEST\",\r\n UPDATE_QUESTION_SUCCESS:\"UPDATE_QUESTION_SUCCESS\",\r\n UPDATE_QUESTION_FAILURE:\"UPDATE_QUESTION_FAILURE\",\r\n\r\n UPDATE_QUESTIONS_REQUEST:\"UPDATE_QUESTIONS_REQUEST\",\r\n UPDATE_QUESTIONS_SUCCESS:\"UPDATE_QUESTIONS_SUCCESS\",\r\n UPDATE_QUESTIONS_FAILURE:\"UPDATE_QUESTIONS_FAILURE\",\r\n\r\n CREATE_QUESTION_REQUEST:\"CREATE_QUESTION_REQUEST\",\r\n CREATE_QUESTION_SUCCESS:\"CREATE_QUESTION_SUCCESS\",\r\n CREATE_QUESTION_FAILURE:\"CREATE_QUESTION_FAILURE\",\r\n \r\n DELETE_QUESTIONS_REQUEST:\"DELETE_QUESTIONS_REQUEST\",\r\n DELETE_QUESTIONS_FAILURE:\"DELETE_QUESTIONS_FAILURE\",\r\n DELETE_QUESTIONS_SUCCESS: 'DELETE_QUESTIONS_SUCCESS'\r\n};","export const userConstants = {\r\n LOGIN_REQUEST: 'USERS_LOGIN_REQUEST',\r\n LOGIN_SUCCESS: 'USERS_LOGIN_SUCCESS',\r\n LOGIN_FAILURE: 'USERS_LOGIN_FAILURE',\r\n\r\n REGISTER_REQUEST: 'USERS_REGISTER_REQUEST',\r\n REGISTER_SUCCESS: 'USERS_REGISTER_SUCCESS',\r\n REGISTER_FAILURE: 'USERS_REGISTER_FAILURE',\r\n\r\n LOGOUT: 'USERS_LOGOUT',\r\n\r\n SET_DEFAULT_EVENT_REQUEST:'SET_DEFAULT_EVENT_REQUEST',\r\n SET_DEFAULT_EVENT_SUCCESS:'SET_DEFAULT_EVENT_SUCCESS',\r\n SET_DEFAULT_EVENT_FAILURE:'SET_DEFAULT_EVENT_FAILURE',\r\n\r\n GETALL_REQUEST: 'USERS_GETALL_REQUEST',\r\n GETALL_SUCCESS: 'USERS_GETALL_SUCCESS',\r\n GETALL_FAILURE: 'USERS_GETALL_FAILURE',\r\n\r\n GET_ACCOUNT_DETAILS_REQUEST: 'GET_ACCOUNT_DETAILS_REQUEST',\r\n GET_ACCOUNT_DETAILS_SUCCESS: 'GET_ACCOUNT_DETAILS_SUCCESS',\r\n GET_ACCOUNT_DETAILS_FAILURE: 'GET_ACCOUNT_DETAILS_FAILURE',\r\n\r\n UPDATE_REQUEST: 'USERS_UPDATE_REQUEST',\r\n UPDATE_SUCCESS: 'USERS_UPDATE_SUCCESS',\r\n UPDATE_FAILURE: 'USERS_UPDATE_FAILURE',\r\n TOGGLE_ADMIN_REQUEST:'TOGGLE_ADMIN_REQUEST',\r\n TOGGLE_ADMIN_SUCCESS:'TOGGLE_ADMIN_SUCCESS',\r\n TOGGLE_ADMIN_FAILURE:'TOGGLE_ADMIN_FAILURE',\r\n\r\n \r\n SENDRESETPASSWORDTOKEN_REQUEST: 'SENDRESETPASSWORDTOKEN_REQUEST',\r\n SENDRESETPASSWORDTOKEN_SUCCESS: 'SENDRESETPASSWORDTOKEN_SUCCESS',\r\n SENDRESETPASSWORDTOKEN_FAILURE: 'SENDRESETPASSWORDTOKEN_FAILURE',\r\n\r\n \r\n RESETPASSWORD_REQUEST: 'RESETPASSWORD_UPDATE_REQUEST',\r\n RESETPASSWORD_SUCCESS: 'RESETPASSWORD_UPDATE_SUCCESS',\r\n RESETPASSWORD_FAILURE: 'RESETPASSWORD_UPDATE_FAILURE'\r\n};","export const cmsConstants = {\r\n EDIT_MODE_ON: \"EDIT_MODE_ON\",\r\n EDIT_MODE_OFF: \"EDIT_MODE_OFF\",\r\n SET_ENVIROMENT: \"SET_ENVIROMENT\",\r\n CONTAINER_UPDATED: \"CONTAINER_UPDATED\",\r\n CONTAINER_TO_UPDATE: \"CONTAINER_TO_UPDATE\",\r\n CONTAINER_ADDED: \"CONTAINER_ADDED\",\r\n SET_SOURCE_LOCATION: \"SET_SOURCE_LOCATION\",\r\n LOAD_CLIENT_FONTS: \"LOAD_CLIENT_FONTS\",\r\n REMOVE_CLIENT_FONT: \"REMOVE_CLIENT_FONT\",\r\n ADD_CLIENT_FONT: \"ADD_CLIENT_FONT\",\r\n\r\n ALERT_NEW_MODIFICATIONS: \"ALERT_NEW_MODIFICATIONS\",\r\n GLOBAL_SAVING_LOADER: \"IS_LOADING\",\r\n TOGGLE_INHERITAGE_INFO: 'TOGGLE_INHERITAGE_INFO',\r\n INHERITAGE_AFFECTED: 'INHERITAGE_AFFECTED',\r\n GLOBAL_SAVING_LOADER: \"IS_LOADING\",\r\n BLOCK_DESELECT: 'BLOCK_DESELECT'\r\n};\r\n","import React from 'react';\r\nimport { fade, makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport Badge from '@material-ui/core/Badge';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: 'none',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'block',\r\n },\r\n },\r\n root: {\r\n padding: '2px 4px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n borderBottom: '1px solid gainsboro'\r\n },\r\n input: {\r\n marginLeft: theme.spacing(1),\r\n flex: 1,\r\n },\r\n iconButton: {\r\n padding: 10,\r\n },\r\n divider: {\r\n height: 28,\r\n margin: 4,\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n online: {\r\n background: '#44b700'\r\n },\r\n offline: {\r\n background: 'orangered'\r\n },\r\n}));\r\n\r\nexport const OnlineBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: '#44b700',\r\n color: '#44b700',\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n '&::after': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n animation: '$ripple 1.2s infinite ease-in-out',\r\n border: '1px solid currentColor',\r\n content: '\"\"',\r\n },\r\n },\r\n '@keyframes ripple': {\r\n '0%': {\r\n transform: 'scale(.8)',\r\n opacity: 1,\r\n },\r\n '100%': {\r\n transform: 'scale(2.4)',\r\n opacity: 0,\r\n },\r\n },\r\n}))(Badge);\r\n","import React, { useEffect } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport MailOutlineIcon from \"@material-ui/icons/MailOutline\";\r\n\r\nexport const UndreadMessageSnackbar = ({ position, undreadMessages, ...rest }) => {\r\n const [open, setOpen] = React.useState(undreadMessages > 0);\r\n\r\n /* useEffect(() => {\r\n\r\n }, []); */\r\n\r\n useEffect(() => {\r\n if (undreadMessages > 0 && open == false) {\r\n setOpen(true);\r\n } else {\r\n setOpen(false);\r\n }\r\n }, [undreadMessages]);\r\n\r\n const handleClick = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n\r\n setOpen(false);\r\n };\r\n\r\n const { vertical, horizontal } = position;\r\n return (\r\n
\r\n \r\n \r\n \r\n {undreadMessages}\r\n \r\n \r\n
\r\n }\r\n action={\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n};\r\n","import { Button } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport SystemLabel from \"../../../../system/SystemLabel/SystemLabel\";\r\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\r\n\r\nexport function ScrollToBottomButton({\r\n missedGroupMessages = 0,\r\n scrollToBottom = () => null,\r\n chatTemplate,\r\n}) {\r\n const { primaryColor, secondaryColor } = chatTemplate;\r\n return (\r\n }\r\n >\r\n {missedGroupMessages > 0 ? (\r\n \r\n {missedGroupMessages} {\" \"} {\" \"}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport SystemLabel from \"../system/SystemLabel/SystemLabel\";\r\n\r\nexport const formatTime = (date, lang = null, onlyToday = false) => {\r\n const isSameDay = datesAreOnSameDay(new Date(date), new Date());\r\n \r\n if (isSameDay) {\r\n let formattedDate = new Date(date);\r\n let h = formattedDate.getHours();\r\n let m = formattedDate.getMinutes();\r\n if (m < 10) m = \"0\" + m;\r\n if (h < 10) h = \"0\" + h;\r\n return h + \":\" + m;\r\n } else {\r\n let formattedDate = new Date(date);\r\n let d = formattedDate.getUTCDay().toString().substr(0, 3);\r\n let h = formattedDate.getHours();\r\n let m = formattedDate.getMinutes();\r\n if (m < 10) m = \"0\" + m;\r\n if (h < 10) h = \"0\" + h;\r\n return (\r\n \r\n {dayConverter(d, lang)}{\" \"}\r\n {\" \" + h + \":\" + m}\r\n \r\n );\r\n }\r\n};\r\n\r\nexport const isTheSameMinute = (d1, d2) => {\r\n const date1 = new Date(d1);\r\n const date2 = new Date(d2);\r\n if (\r\n date1.getDate() == date2.getDate() &&\r\n date1.getDay() == date2.getDay() &&\r\n date1.getHours() == date2.getHours() &&\r\n date1.getMinutes() == date2.getMinutes()\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nconst dayConverter = (d, lang) => {\r\n switch (d) {\r\n case \"1\":\r\n return ;\r\n case \"2\":\r\n return ;\r\n case \"3\":\r\n return ;\r\n case \"4\":\r\n return ;\r\n case \"5\":\r\n return ;\r\n case \"6\":\r\n return ;\r\n case \"7\":\r\n return ;\r\n default:\r\n return \"\";\r\n }\r\n};\r\nexport const datesAreOnSameDay = (first, second) =>\r\n first.getFullYear() === second.getFullYear() &&\r\n first.getMonth() === second.getMonth() &&\r\n first.getDate() === second.getDate();\r\n","import { Avatar, Badge, makeStyles } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport { memo } from \"react\";\r\nimport { useMemo } from \"react\";\r\n\r\nconst OnlineBadge = withStyles((theme) => ({\r\n badge: {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n /* boxShadow: `0 0 0 2px ${theme.palette.background.paper}`, */\r\n \"&::after\": {\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\",\r\n borderRadius: \"50%\",\r\n animation: \"$ripple 1.2s infinite ease-in-out\",\r\n border: \"1px solid currentColor\",\r\n content: '\"\"',\r\n },\r\n },\r\n dot: {\r\n width: \"12px\",\r\n height: \"12px\",\r\n borderRadius: \"50%\",\r\n border: \"2px solid #fff\",\r\n },\r\n \"@keyframes ripple\": {\r\n \"0%\": {\r\n transform: \"scale(.8)\",\r\n opacity: 1,\r\n },\r\n \"100%\": {\r\n transform: \"scale(2.4)\",\r\n opacity: 0,\r\n },\r\n },\r\n}))(Badge);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n grow: {\r\n flexGrow: 1,\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n root: {\r\n padding: \"2px 4px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n borderBottom: \"1px solid gainsboro\",\r\n },\r\n input: {\r\n marginLeft: theme.spacing(1),\r\n flex: 1,\r\n },\r\n iconButton: {\r\n padding: 10,\r\n },\r\n divider: {\r\n height: 28,\r\n margin: 4,\r\n },\r\n sectionDesktop: {\r\n display: \"none\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n },\r\n },\r\n sectionMobile: {\r\n display: \"flex\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n online: {\r\n background: \"#44b700\",\r\n },\r\n offline: {\r\n background: \"orangered\",\r\n },\r\n}));\r\n\r\nexport const ChatAvatar = memo(({ primaryColor, children, secondaryColor, target, clientKey, connectionList = [], orderList = [], border = undefined, hideOnlineBadge = false }) => {\r\n const person = useMemo(() => {\r\n return orderList.find((c) => c.badgeNo == target);\r\n }, [target, orderList]);\r\n\r\n const online = useMemo(() => {\r\n return connectionList.find((c) => c.clientKey == target) || clientKey == target;\r\n }, [connectionList]);\r\n\r\n const avatarStyle = {\r\n background: primaryColor || \"initial\",\r\n color: secondaryColor || \"initial\",\r\n border,\r\n };\r\n return online && !hideOnlineBadge ? (\r\n \r\n \r\n {children}\r\n \r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n","import { templateConstants } from \"../../../../constants/cms/template/template.constants\";\r\nimport { alertActions } from \"../../alert.action\";\r\nimport { templateService } from \"../../../../services/cms/template/template.service\";\r\nimport {\r\n deepClone,\r\n checkForTemplateUpdates,\r\n} from \"../../../../helpers/objectHelper\";\r\nimport {\r\n insertGoogleFonts,\r\n insertFonts,\r\n extractFontsFromJson,\r\n} from \"../../../../helpers/fontHelper\";\r\nimport { defaultTemplate } from \"../../../../cms/areas/template/models/defaultTemplate\";\r\nimport { cmsActions } from \"../cms.action\";\r\nimport { menuService } from \"../../../../services/cms/menu/menu.service\";\r\nimport { templateHelper } from \"../../../../cms/areas/template/helpers/templateHelper\";\r\nimport { history } from \"../../../../helpers/history\";\r\nexport const templateActions = {\r\n update,\r\n softUpdate,\r\n create,\r\n select,\r\n getAll,\r\n remove,\r\n get,\r\n getDefaultTemplateByEvent,\r\n checkForUpdates,\r\n deselect,\r\n togglePreviewMode,\r\n};\r\n\r\nfunction togglePreviewMode(device) {\r\n return (dispatch) => {\r\n dispatch(success(device));\r\n };\r\n function success(element, source) {\r\n return { type: templateConstants.TOGGLE_PREVIEW_MODE, device };\r\n }\r\n}\r\n\r\nfunction remove(element, source) {\r\n return (dispatch) => {\r\n dispatch(success(element, source));\r\n };\r\n function success(element, source) {\r\n return {\r\n type: templateConstants.DELETE_TEMPLATE_ELEMENT_SUCCESS,\r\n element,\r\n source,\r\n };\r\n }\r\n}\r\nfunction select(element) {\r\n return (dispatch) => {\r\n dispatch(success(element));\r\n };\r\n function success(element) {\r\n return { type: templateConstants.SELECT_TEMPLATE_ELEMENT, element };\r\n }\r\n}\r\nfunction toggleMenuModal() {\r\n return (dispatch) => {\r\n dispatch(toggle());\r\n };\r\n function toggle() {\r\n return { type: templateConstants.TOGGLE_MENU_MODAL };\r\n }\r\n}\r\nfunction deselect() {\r\n return (dispatch) => {\r\n dispatch(success());\r\n };\r\n function success() {\r\n return { type: templateConstants.DESELECT_SUCCESS };\r\n }\r\n}\r\nfunction softUpdate(template) {\r\n return (dispatch) => {\r\n if (template.inherit === true) {\r\n dispatch(cmsActions.inheritageAffected(true));\r\n }\r\n dispatch(success(template));\r\n };\r\n function success(template) {\r\n return { type: templateConstants.SOFT_UPDATE_TEMPLATE, template };\r\n }\r\n}\r\n\r\nfunction create(eventId, name = null) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n\r\n const newTemplate = {\r\n eventId,\r\n name: name ? name : \"Default Template\",\r\n style: JSON.stringify({ ...defaultTemplate }),\r\n };\r\n\r\n templateService.create(newTemplate).then(\r\n (template) => {\r\n dispatch(success(template));\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: templateConstants.CREATE_TEMPLATE_FAILURE };\r\n }\r\n function success(template) {\r\n return { type: templateConstants.CREATE_TEMPLATE_SUCCESS, template };\r\n }\r\n function failure(error) {\r\n return { type: templateConstants.CREATE_TEMPLATE_FAILURE, error };\r\n }\r\n}\r\n\r\nfunction getAll(eventId, includeInherited = false) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n templateService.getAllByEvent(eventId, includeInherited).then(\r\n (templates) => {\r\n if (templates && templates !== undefined && templates.length > 0) {\r\n const newTemplates = deepClone(templates);\r\n newTemplates.map((t) => {\r\n t.content = JSON.parse(t.content);\r\n t.content = checkForTemplateUpdates(t.content, defaultTemplate);\r\n });\r\n dispatch(success(newTemplates));\r\n }\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: templateConstants.GET_TEMPLATE_BY_EVENT_REQUEST };\r\n }\r\n function success(templates) {\r\n return { type: templateConstants.GET_TEMPLATE_BY_EVENT_SUCCESS, templates };\r\n }\r\n function failure(error) {\r\n return { type: templateConstants.GET_TEMPLATE_BY_EVENT_FAILURE, error };\r\n }\r\n}\r\nfunction getDefaultTemplateByEvent(eventId) {\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n templateService.getDefaultByEvent(eventId).then(\r\n (template) => {\r\n template.content = JSON.parse(template.content);\r\n template.content = checkForTemplateUpdates(\r\n template.content,\r\n defaultTemplate\r\n );\r\n dispatch(success(template));\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: templateConstants.GET_DEFAULT_TEMPLATE_BY_EVENT_REQUEST };\r\n }\r\n function success(template) {\r\n return {\r\n type: templateConstants.GET_DEFAULT_TEMPLATE_BY_EVENT_SUCCESS,\r\n template,\r\n };\r\n }\r\n function failure(error) {\r\n return {\r\n type: templateConstants.GET_DEFAULT_TEMPLATE_BY_EVENT_FAILURE,\r\n error,\r\n };\r\n }\r\n}\r\nfunction checkForUpdates(template, allowOverWrite = false) {\r\n return (dispatch) => {\r\n dispatch(alertActions.clear());\r\n return dispatch(update(template));\r\n };\r\n}\r\nfunction get(templateId) {\r\n return dispatch => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n templateService.get(templateId).then(\r\n (template) => {\r\n /* menuService.getByEvent(template.eventId).then(\r\n menu => { */\r\n if (template && template !== undefined) {\r\n template.content = JSON.parse(template.content);\r\n template.content = checkForTemplateUpdates(\r\n template.content,\r\n defaultTemplate\r\n );\r\n template.content = templateHelper.assignResponsiveStyle(\r\n template.content\r\n );\r\n /* if (template.content.header.content === undefined) template.content.header.content = [];\r\n if (template.content.footer.content === undefined) template.content.footer.content = []; */\r\n dispatch(success(template /* , menu */));\r\n }\r\n /* },\r\n error => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n } */\r\n /* ); */\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: templateConstants.GET_TEMPLATE_REQUEST };\r\n }\r\n function success(template /* , menu */) {\r\n return {\r\n type: templateConstants.GET_TEMPLATE_SUCCESS,\r\n template /* , menu */,\r\n };\r\n }\r\n function failure(error) {\r\n return { type: templateConstants.GETALL_TEMPLATE_FAILURE, error };\r\n }\r\n}\r\nfunction update(template, callback = null) {\r\n const templateDto = {\r\n templateId: template.templateId,\r\n eventId: template.eventId,\r\n name: template.name,\r\n inherit: template.inherit,\r\n style: JSON.stringify(template.content),\r\n fonts: extractFontsFromJson({ content: template.content }),\r\n };\r\n return (dispatch) => {\r\n dispatch(request());\r\n dispatch(alertActions.clear());\r\n templateService.update(templateDto).then(\r\n (t) => {\r\n if (t && t !== undefined) {\r\n t.content = JSON.parse(t.content);\r\n dispatch(success(t));\r\n\r\n if(typeof callback == 'function'){\r\n callback();\r\n }\r\n\r\n }\r\n },\r\n (error) => {\r\n dispatch(failure(error));\r\n dispatch(alertActions.error(error));\r\n }\r\n );\r\n };\r\n\r\n function request() {\r\n return { type: templateConstants.UPDATE_TEMPLATE_REQUEST };\r\n }\r\n function success(template) {\r\n return { type: templateConstants.UPDATE_TEMPLATE_SUCCESS, template };\r\n }\r\n function failure(error) {\r\n return { type: templateConstants.UPDATE_TEMPLATE_FAILURE, error };\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\n\r\nconst AntSwitch = withStyles((theme) => ({\r\n root: {\r\n width: 40,\r\n height: 20,\r\n padding: 0,\r\n display: \"flex\",\r\n borderRadius: 25,\r\n marginLeft: \"auto\",\r\n },\r\n switchBase: {\r\n padding: 2,\r\n /* transition: \"all 0.5s\", */\r\n color: theme.palette.grey[500],\r\n \"&$checked\": {\r\n transform: \"translateX(16px)\",\r\n color: theme.palette.common.white,\r\n \"& + $track\": {\r\n opacity: 1,\r\n backgroundColor: \"#209cc8\",\r\n borderColor: \"#209cc8\",\r\n },\r\n },\r\n },\r\n thumb: {\r\n width: 15,\r\n height: 15,\r\n boxShadow: \"none\",\r\n transform: \"translateX(3px)\",\r\n },\r\n track: {\r\n/* border: `1px solid #3f414c`, */\r\n borderRadius: 16 / 2,\r\n opacity: 1,\r\n backgroundColor: \"#3f414c\",\r\n },\r\n checked: {},\r\n}))(Switch);\r\n\r\nexport default function JirangoSwitch({ onChange, isChecked }) {\r\n return (\r\n \r\n /* */\r\n );\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/firefox.ba56a5d8.svg\";","module.exports = __webpack_public_path__ + \"static/media/opera.df56702c.svg\";","module.exports = __webpack_public_path__ + \"static/media/google_chrome.7841910b.svg\";","module.exports = __webpack_public_path__ + \"static/media/unsplash_logo.4626fa58.svg\";","module.exports = __webpack_public_path__ + \"static/media/zoomLogo.d75e1425.svg\";","module.exports = __webpack_public_path__ + \"static/media/bug.416ceb6c.svg\";","export const sourceTypes = {\r\n PAGE: 'PAGE',\r\n TEMPLATE: 'TEMPLATE',\r\n FORM: 'FORM',\r\n EMAIL: 'EMAIL',\r\n INTERACTION: 'INTERACTION'\r\n\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/zoomIcon.e84c8c16.svg\";","import React from \"react\";\r\nimport { toKebabCase } from \"../../helpers/cssHelper\";\r\nimport { backstageChatStyle } from \"../modules/ChatModule/helpers/chat.helper\";\r\n\r\nexport function CatchWrapper({ children }) {\r\n try {\r\n return children;\r\n } catch (error) {\r\n return

{error}

;\r\n }\r\n}\r\n\r\nconst backstageScrollStyle = `\r\n.jir-scroll::-webkit-scrollbar {\r\n width: 9px !important;\r\n\r\n}\r\n.jir-scroll::-webkit-scrollbar-track {\r\n background: transparent !important;\r\n}\r\n.jir-scroll::-webkit-scrollbar-thumb {\r\n background-color: #4b4b4b !important;\r\n border-radius: 5px !important;\r\n \r\n}\r\n.jir-scroll::-webkit-scrollbar-thumb:hover {\r\n background-color: #4b4b4b !important;\r\n} `;\r\n\r\nexport function ScrollWrapper({ template, children, flexBasis = \"100%\", noStyleWrap = false, backstage = false, height }) {\r\n return (\r\n
\r\n {template ? : null}\r\n {backstage ? : null}\r\n {children}\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport { Editor } from \"@tinymce/tinymce-react\";\r\nimport { classicSettings3, expoSettings, inlineSettings3 } from \"./tinyconfig\";\r\nimport { TinyMCE } from \"tinymce\";\r\nconst getGlobal = function () { return (typeof window !== 'undefined' ? window : global); };\r\nconst setTinymce = function () {\r\n var global = getGlobal();\r\n if(global && !global.tinymce)\r\n global.tinymce = TinyMCE;\r\n};\r\n\r\nconst ExhibitorEditor = (props) => {\r\n const [editor, setEditor] = useState({});\r\n const [cycleEditor, setCycleEditor] = useState(false);\r\n const [archiveOpen, setArchiveOpen] = useState(false);\r\n const [linkHelperOpen, setLinkHelperOpen] = useState(false);\r\n setTinymce();\r\n useEffect(() => {\r\n if (cycleEditor) setCycleEditor(false);\r\n }, [cycleEditor]);\r\n\r\n const onInit = (editor) => setEditor(editor);\r\n const handleKeyUp = () => {\r\n const { value, globalFormat, onChange, path, slimFormat } = props;\r\n var content = editor.getContent();\r\n\r\n if (content !== value) {\r\n if (globalFormat === true) {\r\n onChange(null, content, path);\r\n } else if (slimFormat === true) {\r\n onChange(content, path);\r\n } else {\r\n onChange(content);\r\n }\r\n }\r\n };\r\n const formatImage = () => {\r\n const content = editor.getContent();\r\n props.onChange(content);\r\n };\r\n const onArchiveUseSelect = (url) => {\r\n var image = new Image();\r\n image.crossOrigin = \"anonymous\"; /* THIS WILL MAKE THE IMAGE CROSS-ORIGIN */\r\n image.src = url;\r\n let content = editor.insertContent(`\"_blank\" `);\r\n content = editor.getContent();\r\n props.onChange(content);\r\n };\r\n const onLinkSelect = (url) => {\r\n let content = editor.insertContent(` `);\r\n content = editor.getContent();\r\n };\r\n const { style, value, sourceCode = true, onChange, user, inline = true, expo = false, height, classic = false, showLinkEditor = true } = props;\r\n let tBarCode = inlineSettings3.toolbar;\r\n if (sourceCode) tBarCode = \"code |\" + tBarCode;\r\n if (showLinkEditor) tBarCode = tBarCode + \"| linkHelper\";\r\n return (\r\n <>\r\n onInit(editor, user && user.userLang)}\r\n disabled={false}\r\n init={{\r\n ...classicSettings3,\r\n content_style: style,\r\n width: \"100%\",\r\n height: 500,\r\n }}\r\n onEditorChange={(e) => handleKeyUp()}\r\n />\r\n \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n user: state.authentication.user,\r\n };\r\n}\r\nexport default connect(mapStateToProps)(ExhibitorEditor);\r\n","import React, { useState } from \"react\";\r\nimport AssignmentTurnedInIcon from \"@material-ui/icons/AssignmentTurnedIn\";\r\nimport AssignmentIcon from \"@material-ui/icons/Assignment\";\r\nimport PublishIcon from \"@material-ui/icons/Publish\";\r\nimport { Button, IconButton } from \"@material-ui/core\";\r\nimport CheckIcon from \"@material-ui/icons/Check\";\r\nimport DeleteOutlineIcon from \"@material-ui/icons/DeleteOutline\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { archiveConstants } from \"../contstants/archive.contstants\";\r\nexport function FileStorageHeader(props) {\r\n const [isCopied, toggleCopied] = useState(false);\r\n\r\n const { onUpload, selectedFile, onSelectFile, onDeleteFile, fontEnabled, toggleParent, display } = props;\r\n\r\n const copyLink = () => {\r\n navigator.clipboard.writeText(selectedFile.url);\r\n toggleCopied(true);\r\n setTimeout(() => toggleCopied(false), 3000);\r\n };\r\n const buttonStyle = {\r\n marginRight: 10,\r\n borderRadius: 8,\r\n border: \"1px solid #535562\",\r\n background: \"#4c4e5b\",\r\n padding: \"6px 12px !important\",\r\n marginTop: \"10px !important\",\r\n };\r\n let inputFilter = \"image/*\";\r\n if (display === archiveConstants.FONT)\r\n inputFilter = archiveConstants.FONT_TYPES.map((x) => {\r\n return \".\" + x;\r\n }).join(\",\");\r\n else if (display === archiveConstants.OTHER)\r\n inputFilter = archiveConstants.OTHER_TYPES.map((x) => {\r\n return \".\" + x;\r\n }).join(\",\");\r\n\r\n return (\r\n
\r\n \r\n onUpload(e)} />\r\n\r\n {selectedFile && (selectedFile.type.toString().includes(\"image/\") || selectedFile.type.toString().includes(\"font/\")) ? (\r\n \r\n ) : null}\r\n {selectedFile ? (\r\n \r\n ) : null}\r\n {selectedFile ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { ListGroup, ListGroupItem, Badge } from \"reactstrap\";\r\n/* import UnsplashLogo from \"../../assets/icons/unsplash_logo.svg\"; */\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport List from \"@material-ui/core/List\";\r\nimport unsplashLogo from \"../../../assets/icons/unsplash_logo.svg\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport InsertDriveFileOutlinedIcon from \"@material-ui/icons/InsertDriveFileOutlined\";\r\nimport PhotoLibraryOutlinedIcon from \"@material-ui/icons/PhotoLibraryOutlined\";\r\nimport { archiveConstants } from \"../contstants/archive.contstants\";\r\nimport SystemLabel from \"../../../system/SystemLabel/SystemLabel\";\r\nimport FontDownloadOutlinedIcon from \"@material-ui/icons/FontDownloadOutlined\";\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n maxWidth: 360,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n}));\r\n\r\nexport function FileStorageList(props) {\r\n const classes = useStyles();\r\n const { files, navigate, display } = props;\r\n return (\r\n \r\n \r\n navigate(archiveConstants.IMAGE, archiveConstants.IMAGE_TYPES)\r\n }\r\n >\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n {files\r\n ? files.filter((o) => {\r\n return (\r\n archiveConstants.IMAGE_TYPES.includes(\r\n o.type.substring(o.type.lastIndexOf(\"/\") + 1)\r\n ) && o\r\n );\r\n }).length\r\n : 0}\r\n \r\n \r\n \r\n navigate(archiveConstants.OTHER, archiveConstants.OTHER_TYPES)\r\n }\r\n >\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n {files\r\n ? files.filter((o) => {\r\n return (\r\n o &&\r\n !archiveConstants.IMAGE_TYPES.includes(\r\n o.type.substring(o.type.lastIndexOf(\"/\") + 1)\r\n ) &&\r\n !archiveConstants.FONT_TYPES.includes(\r\n o.type.substring(o.type.lastIndexOf(\"/\") + 1)\r\n )\r\n );\r\n }).length\r\n : 0}\r\n \r\n \r\n\r\n \r\n navigate(archiveConstants.UNSPLASH, archiveConstants.UNSPLASH)\r\n }\r\n >\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n navigate(archiveConstants.FONT, archiveConstants.FONT_TYPES)\r\n }\r\n >\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n {files\r\n ? files.filter((o) => {\r\n return (\r\n archiveConstants.FONT_TYPES.includes(\r\n o.type.substring(o.type.lastIndexOf(\"/\") + 1)\r\n ) && o\r\n );\r\n }).length\r\n : 0}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport InputBase from \"@material-ui/core/InputBase\";\r\nimport { fade, makeStyles } from \"@material-ui/core/styles\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { labelHelper } from \"../../../helpers/labelHelper\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: '#3f414c',\r\n \"&:hover\": {\r\n backgroundColor: '#4d4f5c',\r\n },\r\n marginLeft: 0,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: theme.spacing(1),\r\n width: \"auto\",\r\n },\r\n maxWidth: '96%',\r\n margin: '10px 0px',\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n color: '#eee',\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"12ch\",\r\n \"&:focus\": {\r\n width: \"20ch\",\r\n },\r\n },\r\n },\r\n}));\r\n\r\nexport function FileStorageSearchbar(props) {\r\n const { filterFiles } = props;\r\n const classes = useStyles();\r\n return (\r\n
\r\n
\r\n \r\n
\r\n filterFiles(e.target.value)}\r\n classes={{\r\n root: classes.inputRoot,\r\n input: classes.inputInput,\r\n }}\r\n inputProps={{ \"aria-label\": \"search\" }}\r\n />\r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { Row, Col } from \"reactstrap\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { GridList, GridListTile, GridListTileBar } from \"@material-ui/core\";\r\nimport { FileStorageSearchbar } from \"./FileStorageSearchbar\";\r\nimport PictureDisplay from \"../../PictureDisplay\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"space-around\",\r\n overflow: \"hidden\",\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n gridList: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n maxHeight: \"calc(100vh - 130px)\",\r\n overflowY: \"auto\",\r\n padding: 10,\r\n marginTop: 10,\r\n },\r\n icon: {\r\n color: \"rgba(255, 255, 255, 0.54)\",\r\n },\r\n}));\r\n\r\nexport function FileStorageGrid(props) {\r\n const classes = useStyles();\r\n const [filter, setFilter] = useState(\"\");\r\n const { files = [], selectedFile, onSelect, type, filterType } = props;\r\n return (\r\n \r\n \r\n \r\n {files\r\n .filter((f, i) => {\r\n return (\r\n (filterType.includes(\r\n f.type.substring(f.type.lastIndexOf(\"/\") + 1).toUpperCase()\r\n ) ||\r\n filterType.includes(\r\n f.type.substring(f.type.lastIndexOf(\"/\") + 1).toLowerCase()\r\n )) &&\r\n f.name.toLowerCase().includes(filter.toLowerCase()) &&\r\n f\r\n );\r\n })\r\n .map((f, i) => {\r\n return (\r\n onSelect(f)}\r\n key={i}\r\n style={{ position: \"relative\" }}\r\n >\r\n \r\n {f.type.includes(\"image\") && (\r\n \r\n )}\r\n {f.type.includes(\"font\") ? : null}\r\n {f.type.includes(\"pdf\") ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n \r\n {Math.round(f.size * 0.001 * 10) / 10}\r\n {\" kB \"}\r\n \r\n ) : (\r\n f.type\r\n )\r\n }\r\n />\r\n \r\n {selectedFile && selectedFile.name === f.name && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n}\r\n\r\n{\r\n /* by: {tile.author}}\r\nactionIcon={\r\n \r\n \r\n \r\n}\r\n/> */\r\n}\r\n\r\nconst FontPreview = (file) => {\r\n const { url, name } = file.font;\r\n return (\r\n
\r\n \r\n {convertFont(name)}\r\n

\r\n \r\n {convertFont(name)}\r\n

\r\n \r\n {convertFont(name)}\r\n

\r\n \r\n
\r\n );\r\n};\r\n\r\nconst convertFont = (f) => {\r\n return f\r\n .substring(f.lastIndexOf(\"/\") + 1, f.lastIndexOf(\".\") + 1)\r\n .toString()\r\n .replace(\")\", \"\")\r\n .replace(\"(\", \"\")\r\n .replace(\".\", \"\")\r\n .replace(\"1\", \"\")\r\n .replace(\"\", \"\");\r\n};\r\n","import { GridList, GridListTile, GridListTileBar } from \"@material-ui/core\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport GetAppOutlinedIcon from \"@material-ui/icons/GetAppOutlined\";\r\nimport { FileStorageSearchbar } from \"./FileStorageSearchbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\n/* import \"../style/DownloadFileOverlay.css\";\r\nimport \"../style/Unsplash.css\"; */\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n justifyContent: \"space-around\",\r\n overflow: \"hidden\",\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n gridList: {\r\n width: 500,\r\n height: 450,\r\n },\r\n icon: {\r\n color: \"rgba(255, 255, 255, 0.54)\",\r\n },\r\n}));\r\n\r\nconst MY_ACCESS_KEY =\r\n \"2481e8fefcab0eb5996904a74156419cac77f5eb9d5647c2e943a6b71f9e74e5\";\r\n\r\nexport function UnsplashGallery(props) {\r\n const [files, setFiles] = useState([]);\r\n const classes = useStyles();\r\n useEffect(() => {\r\n downloadUnsplash();\r\n }, []);\r\n\r\n const downloadUnsplash = () => {\r\n fetch(\r\n \"https://api.unsplash.com/photos/?query=event&page=10&per_page=100&client_id=\" +\r\n MY_ACCESS_KEY\r\n )\r\n .then((res) => res.json())\r\n .then((data) => {\r\n setFiles(data);\r\n })\r\n .catch((err) => {\r\n console.error(\"Error happened during fetching!\", err);\r\n });\r\n };\r\n\r\n const filter = (str) => {\r\n if (str !== \"\" && str.length >= 3) {\r\n fetch(\r\n `https://api.unsplash.com/search/photos/?query=${str}&page=10&per_page=100&client_id=${MY_ACCESS_KEY}`\r\n )\r\n .then((res) => res.json())\r\n .then((data) => {\r\n setFiles(data.results);\r\n })\r\n .catch((err) => {\r\n console.error(\"Error happened during fetching!\", err);\r\n });\r\n } else {\r\n downloadUnsplash();\r\n }\r\n };\r\n const { unsplashFile, onSelect, onUnsplashDownload } = props;\r\n return (\r\n \r\n \r\n \r\n {Array.isArray(files)\r\n ? files.map((f, i) => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {f.height + \"x\" + f.width}\r\n \r\n \r\n {\" \"}\r\n {f.user.name}\r\n \r\n \r\n }\r\n subtitle={\r\n \r\n {\" \"}{\" \"}\r\n {f.user.instagram_username}\r\n \r\n }\r\n actionIcon={\r\n onUnsplashDownload(f)}\r\n >\r\n \r\n \r\n }\r\n />\r\n
\r\n );\r\n })\r\n : null}\r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport LinearProgress from \"@material-ui/core/LinearProgress\";\r\n\r\nexport const FilesStorageProgressbar = ({ isCompleted, isUploading }) => {\r\n return !isCompleted && isUploading ? : null;\r\n};\r\n\r\nconst ColorLinearProgress = withStyles({\r\n colorPrimary: {\r\n backgroundColor: \"#17a2b854\",\r\n },\r\n barColorPrimary: {\r\n backgroundColor: \"#17a2b8\",\r\n },\r\n})(LinearProgress);\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport List from \"@material-ui/core/List\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Slide from \"@material-ui/core/Slide\";\r\nimport { FileStorageHeader } from \"./components/FileStorageHeader\";\r\nimport { FileStorageList } from \"./components/FileStorageList\";\r\nimport { Grid, Paper } from \"@material-ui/core\";\r\nimport { DriveEtaRounded } from \"@material-ui/icons\";\r\nimport { FileStorageGrid } from \"./components/FileStorageGrid\";\r\nimport { archiveConstants } from \"./contstants/archive.contstants\";\r\nimport { UnsplashGallery } from \"./components/UnsplashGallery\";\r\nimport { FilesStorageProgressbar } from \"./components/FileStorageProgressbar\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n paper: {\r\n overflow: \"hidden\",\r\n height: '100%'\r\n },\r\n}));\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default function FileStorage(props) {\r\n const classes = useStyles();\r\n const { toggleParent, display } = props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {display === archiveConstants.IMAGE || display === archiveConstants.OTHER || display === archiveConstants.FONT ? (\r\n \r\n ) : null}\r\n {display === archiveConstants.UNSPLASH ? (\r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n
\r\n );\r\n}\r\n","export const securityHelper = {\r\n createGuid,\r\n};\r\n\r\nfunction createGuid() {\r\n return (\r\n Math.random().toString(36).substring(2) + new Date().getTime().toString(36)\r\n );\r\n}\r\n\r\nexport function uuidv4() {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n"],"sourceRoot":""}