{"version":3,"sources":["services/meeting/meeting.service.js","helpers/securityHelper.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","services/core/eventLabelService.js","store/actions/core/eventLabel.action.js","components/EventLabel2/EventLabel2.js","constants/event/event.constants.js","digitalArena/components/fallbacks/ConnectionStatus.js","helpers/objectHelper.js","interaction/constants/presenterType.constants.js","digitalArena/modules/ChatModule/emptyStates/no-result.svg","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","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","system/SystemLabel/SystemLabel.js","digitalArena/constants/eventLabelGroups.contansts.js","digitalArena/components/MeetingLayout.js","components/NotAuthorized.js","digitalArena/modules/SpeakerList.js/SpeakerList.js","components/ReactEternalList/ReactEternalList.js","constants/cms/template/template.constants.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","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","components/FileStorage/contstants/archive.contstants.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","routes.js","constants/system/systemLabels/systemLabels.constants.js","digitalArena/modules/ImageModule.js","digitalArena/modules/ZoomModule/ZoomModule.js","digitalArena/modules/PresenterModule/PresenterModule.js","helpers/UrlHelper.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/EventName.js","digitalArena/modules/ContentView/ContentView.js","digitalArena/modules/VideoWallModule/VideoWallModule.js","digitalArena/modules/Plaudit/PlauditButtons.js","meetingEditor/models/defaultModuleSettings.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","digitalArena/modules/ChatModule/components/ChatAvatar.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","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"],"names":["meetingService","getUserIp","async","axios","get","then","_ref","data","catch","error","console","getLayouts","eventId","concat","_ref5","err","getEventId","eventCode","res","status","id","eventName","name","parentEventId","response","message","toLowerCase","notAuthorized","connected","connecting","getModules","_ref2","map","r","m","settings","length","JSON","parse","checkForUpdates","defaultModuleSettings","moduleType","getActiveLayout","_ref4","getPermissions","_ref3","securityHelper","createGuid","Math","random","toString","substring","Date","getTime","uuidv4","replace","c","defaultState","show","title","type","account","state","arguments","undefined","action","userConstants","GET_ACCOUNT_DETAILS_REQUEST","loading","GET_ACCOUNT_DETAILS_SUCCESS","_objectSpread","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","groups","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","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","find","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","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","groupName","group","CREATE_SYSTEM_LABEL_FAILURE","GET_SYSTEM_LABEL_GROUP_FAILURE","GET_ALL_SYSTEM_LABEL_GROUP_REQUEST","GET_ALL_SYSTEM_LABEL_GROUP_SUCCESS","key","hasOwnProperty","newKey","toUpperCase","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","Array","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","eventLabel","eventLabelsConstants","GET_GROUP_EVENTLABEL_REQUEST","GET_GROUP_EVENTLABEL_SUCCESS","GET_GROUP_EVENTLABEL_FAILURE","CREATE_EVENTLABEL_REQUEST","CREATE_EVENTLABEL_SUCCESS","label","push","CREATE_EVENTLABEL_FAILURE","store","createStore","rootReducer","applyMiddleware","thunkMiddleware","eventLabelService","getGroup","langCode","requestOptions","method","headers","authHeader","fetch","handleResponse","create","languageCode","body","stringify","eventLabelAction","dispatch","request","alertActions","clear","success","failure","labelSettings","creationList","init","includes","renderText","n","g","getState","isArray","value","EventLabel2","React","Component","constructor","getFromGroup","this","props","render","text","createElement","connect","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","setValueToNestedObject","path","valueToChange","endPath","getValueFromNestedObject","valueToGet","getValueFromNestedObjectByParam","params","array","level","isObject","RegExp","Error","checkForTemplateUpdates","target","targetObj","combineProps","objArr","spreadedObj","o","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","getValueFromInput","e","parseColorToRgba","getValue","getValueWithoutUnit","assignResponsiveStyle","responsiveNames","devices","defaultStyle","defaultTemplate","responsive","mainStyle","colors","parseRgbaToHex","rgb","red","hexCode","green","blue","convertRgbStringToHex","hex","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","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","showSpeakerList","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","speakerListApi","orderList","preview","connectionList","presenter","SpeakerList","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","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","_objectWithoutProperties","_excluded","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","multiValue","multiValueLabel","outline","singleValue","option","isSelected","_question$personTypes","_question$personTypes2","setQuestion","placeholderOption","newOption","modalOpen","toggleModal","currentPresenterTypes","_props$selectedQuesti","log","saveRequest","saveQuestion","snackbarHandler","closeSaveRequest","deleteRequest","closeDeleteRequest","toggleQuestionInfo","cQuestion","uQuestion","setSavable","personTypeOptions","labelHelper","getLabel","t","personTypeId","paddingRight","for","labelLangs","copiedLabel","onLabelChange","allowedAnswerCount","requiredMin","requiredMax","Select","styles","isMulti","pt","questionid","presenterType","opt","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","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","onQuestionAdd","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","client","clientPTypes","cpt","typeName","elements","showSpeaker","searchW","searchIconW","inputInputW","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","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","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","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","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","systemLabelService","getAllGroups","hint","labelArray","labelName","labelGroup","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","functions","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","routes","comparePaths","p1","p2","locRegex","pathRegex","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","asOption","asOption2","gName","setGroupName","creating","setCreating","isSaveable","setIsSaveable","isEditable","editLabel","setEditLabel","setLoaded","labelList","activeRoute","currLabel","ctrlKey","field","newLabel","onKeyPressed","keyCode","shiftKey","stopShit","systemLabelId","cancel","onFocus","placement","PopoverHeader","PopoverBody","onKeyDown","InfoOutlinedIcon","nextProps","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","_speakers$filter$sort","activeSpeakers","setActiveSpeakers","setActiveAgenda","presenterSpeakerListRef","fetchAgenda","activeSpeakerPersons","activeSpeakers2","persons","agendaEventId","aAgenda","fetchSpeakers","onAgendaClosed","activeAgendaId","_activeAgenda$agendaI","_agendaItems$find","speakerLabel","borderBottomLeftRadius","borderTopLeftRadius","listItemHeight","setListItemHeight","forceReRender","setForceReRender","renderList","setRenderList","containerRef","dummyElRef","containerTopRef","updateOnScrollRef","recursiveSplit","mid","getParent","updateNodeDimension","node","updateNodeVisibility","isVisible","isNodeVisible","updateRenderList","getChildren","GETALL_TEMPLATE_REQUEST","GETALL_TEMPLATE_SUCCESS","GETALL_TEMPLATE_FAILURE","UNDO_TEMPLATE_CHANGE","REDO_TEMPLATE_CHANGE","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","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","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","UNSPLASH","GRID","OTHER","LIST","OTHER_TYPES","Authorization","ok","statusText","_unused","escapedText","_unused2","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","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","searchString","searchParams","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","_activeSpeaker$parent","setActiveSpeaker","floorIsGive","setFloorIsGiven","noneAllowedSpeakers","getAgendaFromOtherEvent","ol","agendaId","hasRequested","isAllowedSpeaker","isAuthorizedSpeaker","DEFAULT_SPEAKER","ActiveSpeaker","_orderList$find2","_orderList$find3","imageBorderColor","imageSize","imageBorderWidth","containerBorderWidth","containerBorderColor","backgroundImage","secondaryTypographyProps","setLayout","currentTemplate","setCurrentTemplate","layoutRef","moduleChangeKey","onGetActiveMeetingLayout","DASettings","checkBreakoutVistorMax","allowChatVideoCall","chatAdmin","chatAlias","collapsibleAgenda","MobileMenu","menuItems","mo","areEqual","toggleDrawer","anchor","SwipeableDrawer","timesKicked","setTimesKicked","setVideoWallProps","videoWallFull","setVideoWallFull","balanceScreens","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","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","carousel","showSlideNo","oneRow","colsPerRow","hideText","textLeft","showText","filterByGroup","showSubtitle","collapsibleDescription","showButtonIcon","divideTimeslot","showAlternativeName","hideSpeaker","hideSubtitle","hideTitle","showAllConnections","showSnackbar","allowProfileEdit","buttonText","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","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","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","dot","avatarStyle","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","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"],"mappings":"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CI,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,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,QACA,YAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,OACA,cAGR,CACI,GAAM,KACN,KAAQ,cACR,SAAW,EACX,SAAY,CACR,UACA,OACA,SACA,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","file":"static/js/main.0df04aad.chunk.js","sourcesContent":["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","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","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);","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);","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 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 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 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\nimport { SpeakerList } from \"../../../digitalArena/modules/SpeakerList.js/SpeakerList\";\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 showSpeakerList: 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 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 const showSpeakerList = this.state.presenterSettings.showSpeakerList;\r\n if (!question && !showSpeakerList) return null;\r\n else if(showSpeakerList) {\r\n const speakerListApi = {\r\n eventId: this.state.eventId,\r\n lang: this.state.selectedLanguage,\r\n hubConnection: this.hubConnection,\r\n orderList: this.state.importedAttendees,\r\n preview: false,\r\n connectionList: [],\r\n presenter: true,\r\n clientKey: this.state.clientKey,\r\n }\r\n return ;\r\n } \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 multiValue: (provided, state) => ({\r\n ...provided,\r\n backgroundColor: \"#20a8d8\",\r\n }),\r\n multiValueLabel: (provided, state) => ({\r\n ...provided,\r\n color: \"#ffffffde\",\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\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 console.log(props?.selectedQuestion?.questionId, question?.questionId);\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 }, [props.selectedQuestion]);\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\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 personTypeOptions.find((el) => el.value == pt)) ?? []}\r\n onChange={(options) => handleChange(options.map((o) => o.value).join(\":\"), \"personTypes\")}\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()}_${\r\n 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=${\r\n props.tickCode\r\n }${securityHelper.createGuid()}`,\r\n \"_blank\"\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
\r\n \r\n \r\n \r\n \r\n \r\n updatePresenterSettings(\"showSpeakerList\", !presenterSettings.showSpeakerList)} isChecked={!!presenterSettings.showSpeakerList} />\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \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=${\r\n props.tickCode\r\n }${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=${\r\n props.tickCode\r\n }${+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","\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","const setRequestTimer = (time, action) => {\r\n setTimeout(() => action(), time);\r\n};\r\nexport const requestHandler = {\r\n setRequestTimer,\r\n};\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","\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\nexport const chatHelper = {\r\n chatStyle,\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","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","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","import { List, ListItem, ListItemAvatar, ListItemText } from \"@material-ui/core\";\r\nimport React, { useEffect, useMemo, 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 AccountCircleIcon from \"@material-ui/icons/AccountCircle\";\r\n\r\nexport const SpeakerList = ({ eventId, lang, hubConnection, orderList, preview, connectionList, presenter = false, clientKey }) => {\r\n const [speakers, setSpeakers] = useState([]);\r\n const [activeSpeakers, setActiveSpeakers] = useState([]);\r\n const [activeAgenda, setActiveAgenda] = useState(null);\r\n\r\n const presenterSpeakerListRef = React.useRef();\r\n\r\n // const [isOverflowing, setIsOverflowing] = useState(false);\r\n // const [overflowAmount, setOverflowAmount] = useState(0);\r\n\r\n // useEffect(() => {\r\n // const checkOverflow = () => {\r\n // if (presenterSpeakerListRef.current) {\r\n // // Calculate how much the content is overflowing\r\n // const scrollHeight = presenterSpeakerListRef.current.scrollHeight;\r\n // const clientHeight = presenterSpeakerListRef.current.clientHeight;\r\n // const overflowY = scrollHeight - clientHeight;\r\n\r\n // // Check if the div is overflowing on the Y-axis\r\n // const isOverflowingY = overflowY > 0;\r\n // setIsOverflowing(isOverflowingY);\r\n // setOverflowAmount(overflowY); // Set the overflow amount\r\n // }\r\n // };\r\n\r\n // // Initial check for overflow\r\n // checkOverflow();\r\n\r\n // // Create a MutationObserver to watch for DOM changes\r\n // const observer = new MutationObserver(() => {\r\n // checkOverflow();\r\n // });\r\n\r\n // if (presenterSpeakerListRef.current) {\r\n // // Observe the div for any changes in its child nodes, attributes, or subtree\r\n // observer.observe(presenterSpeakerListRef.current, {\r\n // childList: true,\r\n // subtree: true,\r\n // attributes: true,\r\n // });\r\n // }\r\n\r\n // // Cleanup the observer when the component is unmounted\r\n // return () => {\r\n // observer.disconnect();\r\n // };\r\n // }, []);\r\n\r\n useEffect(() => {\r\n init(eventId, \"DigitalMeeting.SpeakerList\", lang);\r\n if (!preview) {\r\n configureHubEvents();\r\n (async () => {\r\n await fetchAgenda();\r\n // await fetchSpeakers();\r\n })();\r\n }\r\n }, []);\r\n\r\n const activeSpeakerPersons = useMemo(() => {\r\n const activeSpeakers2 = speakers.filter((s) => s.active == true && s.agendaItemId == activeAgenda?.agendaItemId);\r\n const persons = [];\r\n for (const speaker of activeSpeakers2) {\r\n const person = orderList.find((o) => o.badgeNo == speaker.badgeNo);\r\n if (person) persons.push(person);\r\n }\r\n return persons;\r\n }, [activeSpeakers, orderList, speakers]);\r\n\r\n const onAgendaUpdate = (agenda, agendaEventId) => {\r\n if (agendaEventId === eventId) {\r\n const aAgenda = agenda.find((a) => a.active == true);\r\n setActiveAgenda(aAgenda);\r\n fetchSpeakers(aAgenda?.agendaItemId);\r\n }\r\n };\r\n\r\n const onAgendaClosed = (speakers) => {\r\n setActiveAgenda(null);\r\n fetchSpeakers();\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(\"onAgendaUpdate\", onAgendaUpdate);\r\n hubConnection.on(\"onAgendaClosed\", onAgendaClosed);\r\n hubConnection.on(\"onDeactivateSpeaker\", (badgeNo) => {\r\n const newSpeakers = activeSpeakers.filter((a) => a.badgeNo != badgeNo);\r\n setActiveSpeakers([...activeSpeakers.splice(activeSpeakers.indexOf(activeSpeakers.find((a) => a.badgeNo == badgeNo)), 1)]);\r\n });\r\n }\r\n };\r\n\r\n const fetchSpeakers = async (activeAgendaId = null) => {\r\n try {\r\n const { data } = await axios.get(`./api/meeting/speakers/${eventId}`);\r\n if (data) {\r\n setSpeakers(data.filter((a) => a.agendaItemId == (activeAgenda?.agendaItemId ?? activeAgendaId) && !a.closedDateTime));\r\n const active = data.filter((a) => a.active == true && a.agendaItemId == activeAgenda?.agendaItemId);\r\n setActiveSpeakers(active);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n const fetchAgenda = async () => {\r\n try {\r\n const { data } = await axios.get(`./api/meeting/agenda/${eventId}`);\r\n if (!data) return;\r\n\r\n const agendaItems = data.sort(function (a, b) {\r\n return a.sortOrder - b.sortOrder;\r\n });\r\n\r\n setActiveAgenda(agendaItems.find((a) => a.active == true));\r\n\r\n fetchSpeakers(agendaItems.find((a) => a.active == true)?.agendaItemId);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n // const bounds = presenterSpeakerListRef?.current?.clientWidth / window.innerWidth;\r\n // const maxPresenterHeight = window.innerHeight * bounds * 0.85;\r\n // const overflowCount = Math.ceil(overflowAmount / 48);\r\n\r\n\r\n return (\r\n <>\r\n {presenter ? (\r\n activeAgenda ? (\r\n
\r\n \r\n {activeAgenda?.name}\r\n \r\n {activeSpeakerPersons.length > 0 && (\r\n <>\r\n \r\n \r\n \r\n \r\n {activeSpeakerPersons.map((person) => {\r\n const { name, title, company } = person;\r\n const speakerLabel = `${title ? title : \"\"}${company && title ? \", \" + company : company ?? \"\"}`;\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 {speakers.filter((s) => s.closedDateTime == null && s.agendaItemId == activeAgenda?.agendaItemId && s.active != true).length}\r\n \r\n \r\n {speakers.filter((s) => s.closedDateTime == null && s.active == false && s.agendaItemId == activeAgenda?.agendaItemId).length > 0\r\n ? speakers\r\n .filter((s) => s.closedDateTime == null && s.active == false && s.agendaItemId == activeAgenda?.agendaItemId)\r\n .sort((a, b) => +new Date(a.inserted) - +new Date(b.inserted))\r\n ?.splice(0, 10)\r\n .map((s, index) => {\r\n const person = orderList.find((o) => o.badgeNo == s.badgeNo);\r\n if (!person) return null;\r\n const { name, title, company } = person;\r\n const speakerLabel = `${title ? title : \"\"}${company && title ? \", \" + company : company ?? \"\"}`;\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 : null}\r\n \r\n
\r\n ) : (\r\n \r\n \r\n \r\n )\r\n ) : (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\">\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\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 );\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 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","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 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)","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","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 { 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\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) => {\r\n return pt;\r\n });\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\r\n .map((c) => {\r\n return c.clientKey;\r\n })\r\n .includes(a.badgeNo);\r\n }).length;\r\n\r\n const notAnsweredButPresent = presentParticipants.filter((a) => {\r\n return !props.clientResponses\r\n .map((c) => {\r\n return c.clientKey;\r\n })\r\n .includes(a.badgeNo);\r\n }).length;\r\n const notAnswered = importedAttendeesFiltered.filter((a) => {\r\n return !props.clientResponses\r\n .map((c) => {\r\n return c.clientKey;\r\n })\r\n .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 {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 {question.questionOption.map((qo, i) => {\r\n return (\r\n
\r\n \r\n{qo.questionOptionLanguage.find((ql) => ql.languageCode == \"swe\")?.label ?? qo.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 \r\n {answered}\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 {notAnswered}\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 {presentParticipants.length}\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\r\n .filter((cr) => cr.answer == questionOption.questionOptionId.toString() && badgeNoList.includes(cr.clientKey))\r\n .map((cr) => {\r\n if (!answerPersons.includes(cr.clientKey)) {\r\n answerPersons.push(cr.clientKey);\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 \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 {answerPersons.length > 0 && presentParticipants.length > 0 ? Math.round((answerPersons.length / presentParticipants.length) * 100) + \"%\" : \"0%\"}\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}\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","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};","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};","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","\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 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\r\n console.log(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 = personTypes?.some((n) => noneAllowedSpeakers.includes(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 isAuthorizedSpeaker,\r\n hasRequestedTheFloor,\r\n requestTheFloor,\r\n unassignRequest,\r\n };\r\n\r\n return (\r\n
\r\n {/* {activeSpeaker ? : null} */}\r\n {isAllowedSpeaker && }\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 { allowPointOfOrder, borderRadius, allowRequestLineOfSpeaker, allowRequestTheFloor, fontFamily, fontSize, color, buttonBackground, fontWeight, background, overwriteTemplateButtonStyle, borderColor } = settings;\r\n if (!activeAgenda) {\r\n return null;\r\n }\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={() => {\r\n const activeSpeaker = speakers.find((s) => s.active == true);\r\n if (activeSpeaker) {\r\n requestTheFloor(2, activeSpeaker.parentInteractionSpeakerId ?? activeSpeaker.interactionSpeakerId);\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 } else {\r\n return (\r\n
\r\n unassignRequest(hasRequestedTheFloor.agendaItemId, hasRequestedTheFloor.parentInteractionSpeakerId)}\r\n startIcon={}\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 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, { 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","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","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};","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 = [], style = {}, 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 ...style,\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","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 { 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"],"sourceRoot":""}