{"version":3,"sources":["webpack:///./src/home/AssistantSlider.vue","webpack:///./src/home/AssistantSlider.vue?4e06","webpack:///./src/home/AssistantSlider.vue?af9a","webpack:///./src/home/AssistantSlider.vue?9135","webpack:///./src/messaging/ConversationDetails.vue","webpack:///./src/messaging/SendMessage.vue","webpack:///./src/messaging/emojisTable.ts","webpack:///./src/messaging/AskForPayment.vue","webpack:///./src/messaging/additionalPaymentRequestWebServices.ts","webpack:///./src/messaging/AskForPayment.vue?1e9e","webpack:///./src/messaging/AskForPayment.vue?e582","webpack:///./src/messaging/AskForPayment.vue?f8ba","webpack:///./src/components/Giphy.vue","webpack:///./src/components/Giphy.vue?409a","webpack:///./src/components/Giphy.vue?7a5b","webpack:///./src/components/Giphy.vue?65af","webpack:///./src/messaging/ActiveConversationMessages.vue","webpack:///./src/messaging/ActiveConversationMessages.vue?e65a","webpack:///./src/messaging/ActiveConversationMessages.vue?0fd0","webpack:///./src/messaging/ActiveConversationMessages.vue?31ba","webpack:///./src/messaging/SendMessage.vue?80ff","webpack:///./src/messaging/SendMessage.vue?f53f","webpack:///./src/messaging/SendMessage.vue?72d7","webpack:///./src/messaging/InterlocutorTopDetails.vue","webpack:///./src/messaging/InterlocutorTopDetails.vue?566b","webpack:///./src/messaging/InterlocutorTopDetails.vue?e848","webpack:///./src/messaging/InterlocutorTopDetails.vue?fb45","webpack:///./src/messaging/StartVideoCall.vue","webpack:///./src/messaging/StartVideoCall.vue?1bc2","webpack:///./src/messaging/StartVideoCall.vue?853e","webpack:///./src/messaging/StartVideoCall.vue?64c7","webpack:///./src/messaging/MessageList.vue","webpack:///./src/messaging/AdditionalPaymentRequestDetailsAndButtons.vue","webpack:///./src/messaging/AdditionalPaymentRequestDetailsAndButtons.vue?e338","webpack:///./src/messaging/AdditionalPaymentRequestDetailsAndButtons.vue?bcbd","webpack:///./src/messaging/AdditionalPaymentRequestDetailsAndButtons.vue?2136","webpack:///./src/messaging/MessageList.vue?7732","webpack:///./src/messaging/MessageList.vue?afa0","webpack:///./src/messaging/MessageList.vue?5b85","webpack:///./src/messaging/InterlocutorSideDetails.vue","webpack:///./src/messaging/InterlocutorSideDetails.vue?5ff8","webpack:///./src/messaging/InterlocutorSideDetails.vue?6c94","webpack:///./src/messaging/InterlocutorSideDetails.vue?c449","webpack:///./src/messaging/AdditionalPaymentRequestList.vue","webpack:///./src/messaging/AdditionalPaymentRequestListItem.vue","webpack:///./src/messaging/AdditionalPaymentRequestListItem.vue?ada5","webpack:///./src/messaging/AdditionalPaymentRequestListItem.vue?569c","webpack:///./src/messaging/AdditionalPaymentRequestListItem.vue?e0fa","webpack:///./src/messaging/AdditionalPaymentRequestList.vue?4071","webpack:///./src/messaging/AdditionalPaymentRequestList.vue?7443","webpack:///./src/messaging/AdditionalPaymentRequestList.vue?df80","webpack:///./src/messaging/ConversationDetails.vue?9c4d","webpack:///./src/messaging/ConversationDetails.vue?84b0","webpack:///./src/messaging/ConversationDetails.vue?21ce","webpack:///./src/messaging/ConversationList.vue","webpack:///./src/messaging/ConversationListItemView.vue","webpack:///./src/messaging/ConversationListItemView.vue?e5d4","webpack:///./src/messaging/ConversationListItemView.vue?f345","webpack:///./src/messaging/ConversationListItemView.vue?c779","webpack:///./src/messaging/ConversationList.vue?2240","webpack:///./src/messaging/ConversationList.vue?85a4","webpack:///./src/messaging/ConversationList.vue?77a4","webpack:///./src/views/Conversations.vue","webpack:///./src/views/Conversations.vue?5c57","webpack:///./src/views/Conversations.vue?aa62","webpack:///./src/views/Conversations.vue?2ca4","webpack:///./src/components/AvailabilityIndicator.vue","webpack:///./src/components/AvailabilityIndicator.vue?5c85","webpack:///./src/components/AvailabilityIndicator.vue?b44f","webpack:///./src/components/AvailabilityIndicator.vue?81c7","webpack:///./src/views/Call.vue","webpack:///./src/components/Jitsi.vue","webpack:///./src/components/Jitsi.vue?486b","webpack:///./src/components/Jitsi.vue?7cd4","webpack:///./src/components/Jitsi.vue?f9ae","webpack:///./src/views/Call.vue?2c31","webpack:///./src/views/Call.vue?ad22","webpack:///./src/views/Call.vue?a04f","webpack:///./src/messaging/videoCallWebServices.ts"],"names":["render","_vm","this","_c","_self","_setupProxy","directives","name","rawName","value","assistants","length","expression","staticClass","attrs","perPageCustom","_l","assistant","key","id","imagesUrl","photoId","firstName","onlineStatus","_v","_s","$t","_e","lastName","city","staticRenderFns","AssistantSlider","Vue","constructor","type","data","getNewestAssistants","e","getBaseImagesUrl","__decorate","Prop","default","Component","components","Carousel","Slide","component","interlocutor","interlocutorName","isUserClient","on","onClickToggleUserData","interlocutorId","undefined","chargedCoins","toFixed","userHasCoins","class","personDataShown","isOtherUserAvailable","otherUserStatus","$event","preventDefault","userCanConverse","toggleEmojiPicker","model","attachments","callback","$$v","toggleGifPicker","gifPickerShown","sendGif","attachment","remove","isLoading","sendMessageText","indexOf","_k","keyCode","ctrlKey","shiftKey","altKey","metaKey","onSubmit","apply","arguments","newline","hidePickers","analyzeText","form","message","$set","isConversationActive","onFinishChatting","emojiPickerShown","addEmoji","emojisTable","replaceEmojis","text","keys","Object","forEach","k","replace","modifiers","showDialog","ref","scopedSlots","_u","fn","submit","hide","proxy","amount","description","url","getList","fromUserId","toUserId","axios","get","params","create","post","acceptIntoEscrow","put","reject","finalApprove","AskForPayment","$refs","show","then","finally","catch","error","pushError","response","isSearching","queryChange","query","queryResults","gifUrl","handleGif","Giphy","timeout","apiKey","process","clearTimeout","setTimeout","searchGifs","onImgClick","lang","getLanguage","giphyUrl","fetch","json","result","map","x","images","preview_gif","freeCharactersLeft","ActiveConversationMessages","store","state","messaging","conversations","SendMessage","emojiViewScroll","getters","module","user","accountType","AccountType","Client","interlocutorInfo","getBaseServiceUrl","event","findPos","obj","curtop","offsetParent","offsetTop","target","window","scrollTo","emoji","native","attachmentId","filter","a","authorization","token","finishConversation","sendMessage","attachmentsResponse","sendAttachments","file","handleNewSimpleMessage","trim","validationResult","validateMessage","messageToSend","tempMessage","Math","round","random","content","dateSent","Date","toString","dispatch","addTempSentMessage","sendMessageResult","handleSendMessageResult","errorMessage","validateResponse","ValidateMessageResult","MessageContainsContactInformation","msgBoxConfirmResult","$bvModal","msgBoxConfirm","title","size","buttonSize","okVariant","okTitle","cancelTitle","footerClass","hideHeaderClose","centered","mounted","addEventListener","Picker","VueUploadComponent","InterlocutorTopDetails","DetailsBase","photos","find","p","AssistantDetails","AvailabilityIndicator","onClick","StartVideoCall","start","$router","push","messageList","isMine","isAttachment","attachmentName","attachmentLink","attachmentBlobName","additionalPaymentRequestId","getAdditionalPaymentRequestText","additionalPaymentRequest","isGif","staticStyle","isConversationEnding","_f","avatarId","userName","isAccepted","isRejected","accept","isFinalAccepted","finalizePayment","request","AdditionalPaymentRequestDetailsAndButtons","dateApproved","dateRejected","dateFinalApproved","$root","$on","$toasted","position","action","toastObject","goAway","alert","MessageList","updated","scrollToLatestMessage","conversationId","blobName","getConversationAttachmentsUrl","additionalPaymentRequestStatus","AdditionalPaymentRequestStatus","New","comment","Approved","FinalApproved","Rejected","messages","sort","b","getTime","m","$el","getElementsByClassName","messagesWindow","scrollTop","scrollHeight","offsetHeight","children","childElementCount","AssistantAvatar","available","userRatingInfo","educationDetails","educationLevel","languages","index","languageName","languageCode","languageLevel","level","domProps","cityExists","countryExist","country","address","hourlyRate","InterlocutorSideDetails","EducationLevel","Higher","Student","code","getLanguageName","getLevelOptionTranslation","status","OnlineStatus","Available","displayHeight","height","RatingStars","requests","variant","AdditionalPaymentRequestListItem","AdditionalPaymentRequestList","loadData","assistantId","Assistant","clientId","$watch","alreadyExisting","r","unshift","loadBalance","ConversationDetails","clearStatusInterval","clearActivityInterval","Offline","onIdChanged","beforeDestroy","commit","setActiveModuleName","scrollMessageListToEnd","loadConversation","startMonitoringUserStatus","callOnInterval","Promise","resolve","statusText","config","headers","Watch","conversationList","conversation","activeConversationId","interlocutorAvatarId","hasUnreadMessage","lastMessageContent","dateOfLastMessage","formatDate","ConversationListItemView","unreadMessages","toDateString","lastMessageDateSent","lastMessageIsConversationEnding","lastMessageIsAttachment","interlocutorFirstName","interlocutorLastName","ConversationList","$route","conversationListItems","loadConversationListItems","isLowResultion","innerWidth","isUserAssistant","onClickToggleConversations","assistantSearchRedirectUrl","conversationListIsShown","Conversations","assistantSearchUrlToRedirect","busy","offline","Busy","videoCallId","_m","Jitsi","api","pingIntervalHandle","pingIntervalInSeconds","loadScript","maxHeight","domain","getJitsiDomain","options","roomName","configOverwrite","disableDeepLinking","interfaceConfigOverwrite","MOBILE_APP_PROMO","HIDE_INVITE_MORE_HEADER","RECENT_LIST_ENABLED","SHOW_JITSI_WATERMARK","DISABLE_PRESENCE_STATUS","DISPLAY_WELCOME_PAGE_CONTENT","ENABLE_DIAL_OUT","filmStripOnly","GENERATE_ROOMNAMES_ON_WELCOME_PAGE","INITIAL_TOOLBAR_TIMEOUT","SHOW_POWERED_BY","SHOW_WATERMARK_FOR_GUESTS","width","clientWidth","parentNode","document","querySelector","userInfo","displayName","JitsiMeetExternalAPI","info","duration","startPinging","clearInterval","dispose","end","setInterval","performPing","numberOfParticipants","getNumberOfParticipants","ping","Call","callDetails","userId","loadAssistantInfo","getAssistantInformation"],"mappings":"yHAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACG,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASC,MAAOR,EAAIS,WAAWC,OAAS,EAAGC,WAAW,0BAA0BC,YAAY,oBAAoB,CAACV,EAAG,WAAW,CAACW,MAAM,CAAC,UAAW,EAAK,mBAAoB,EAAM,mBAAoB,EAAK,cAAgBb,EAAIc,gBAAgBd,EAAIe,GAAIf,EAAIS,YAAY,SAASO,GAAW,OAAOd,EAAG,QAAQ,CAACe,IAAID,EAAUE,IAAI,CAAChB,EAAG,IAAI,CAACU,YAAY,yBAAyBC,MAAM,CAAC,KAAQ,cAAaG,EAAUE,KAAO,CAAChB,EAAG,MAAM,CAACU,YAAY,WAAWC,MAAM,CAAC,IAAO,GAAEb,EAAImB,YAAYH,EAAUI,SAAW,sBAAsB,IAAMJ,EAAUK,aAAyC,IAA3BL,EAAUM,aAAoBpB,EAAG,OAAO,CAACU,YAAY,+BAA+B,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,eAAezB,EAAI0B,KAAiC,IAA3BV,EAAUM,aAAoBpB,EAAG,OAAO,CAACU,YAAY,8BAA8B,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,cAAczB,EAAI0B,KAAKxB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACU,YAAY,kBAAkB,CAACV,EAAG,OAAO,CAACU,YAAY,kBAAkB,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAI,GAAER,EAAUK,aAAaL,EAAUW,SAAWX,EAAUW,SAAS,GAAI,SAASzB,EAAG,OAAO,CAACU,YAAY,kBAAkB,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGR,EAAUY,SAAS1B,EAAG,IAAI,CAACU,YAAY,cAAcC,MAAM,CAAC,KAAQ,cAAaG,EAAUE,KAAO,CAAClB,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,mBAAmBvB,EAAG,IAAI,CAACU,YAAY,eAAeC,MAAM,CAAC,KAAQ,cAAaG,EAAUE,mBAAmB,CAAClB,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,+BAA8B,IAAI,IAEh8CI,EAAkB,G,4DCYtB,IAAqBC,EAArB,cAA6CC,OAA7CC,c,oBAGI,KAAAvB,WAAkC,GAErB,gBACT,GAAkB,WAAdR,KAAKgC,KAST,IACI,MAAM,KAAEC,SAAeC,iBAEvBlC,KAAKQ,WAAayB,EAEtB,MAAOE,SAbH,IACE,MAAM,KAAEF,SAAeC,iBAEvBlC,KAAKQ,WAAayB,EAClB,MAAOE,KAYJ,gBACV,OAAOC,iBAGO,oBACb,MAAO,CACH,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,KAAM,GACP,CAAC,KAAM,GACP,CAAC,KAAM,IACP,CAAC,KAAM,IACP,CAAC,KAAM,IACP,CAAC,KAAM,IACP,CAAC,KAAM,IACP,CAAC,KAAM,IACP,CAAC,KAAM,IACP,CAAC,KAAM,OA1CiBC,gBAA/BC,eAAM,CAAEC,QAAS,aAAc,2BADfV,EAAe,gBANnCW,eAAU,CACTC,WAAY,CACVC,uBACAC,qBAGiBd,WCdqX,I,YCOtYe,EAAY,eACd,EACA9C,EACA8B,GACA,EACA,KACA,KACA,MAIa,OAAAgB,E,6CClBf,IAAI9C,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACA,EAAG,MAAM,CAACU,YAAY,iCAAiC,CAACV,EAAG,MAAM,CAACU,YAAY,oBAAoB,CAACV,EAAG,MAAM,CAACU,YAAY,OAAO,CAAEZ,EAAI8C,aAAc5C,EAAG,MAAM,CAACU,YAAY,kBAAkB,CAACV,EAAG,mBAAmB,CAACW,MAAM,CAAC,UAAYb,EAAI8C,gBAAgB,CAAC9C,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAI+C,qBAAqB,GAAG/C,EAAI0B,KAAKxB,EAAG,MAAM,EAAEF,EAAIgD,aAA4IhD,EAAI0B,MAAKxB,EAAG,WAAW,CAACU,YAAY,qBAAqBC,MAAM,CAAC,QAAU,WAAWoC,GAAG,CAAC,MAAQjD,EAAIkD,wBAAwB,CAAChD,EAAG,SAAS,CAACW,MAAM,CAAC,KAAO,aAAa,IAAI,KAAKX,EAAG,eAAe,CAACW,MAAM,CAAC,eAAiBb,EAAImD,kBAAkBjD,EAAG,eAAe,CAACW,MAAM,CAAC,eAAiBb,EAAImD,mBAAmB,GAAGjD,EAAG,kCAAkC,CAACW,MAAM,CAAC,eAAiBb,EAAImD,kBAAkBjD,EAAG,MAAM,CAACU,YAAY,SAAS,CAACV,EAAG,MAAM,CAACU,YAAY,oBAAoB,MAAuBwC,IAArBpD,EAAIqD,aAA4BnD,EAAG,MAAM,CAACU,YAAY,eAAe,CAACV,EAAG,QAAQF,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,gBAAgB,KAAKzB,EAAIwB,GAAGxB,EAAIqD,aAAaC,QAAQ,IAAI,OAAOtD,EAAI0B,KAAM1B,EAAIgD,eAAiB/C,KAAKsD,aAAcrD,EAAG,IAAI,CAACU,YAAY,eAAeC,MAAM,CAAC,KAAO,kBAAkB,CAACb,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,oBAAoBzB,EAAI0B,UAAU,GAAGxB,EAAG,MAAM,CAACU,YAAY,4DAA4D4C,MAAM,CAAC,WAAYxD,EAAIyD,kBAAkB,CAACvD,EAAG,MAAM,CAACU,YAAY,sBAAsBqC,GAAG,CAAC,MAAQjD,EAAIkD,wBAAwB,CAAChD,EAAG,SAAS,CAACW,MAAM,CAAC,KAAO,QAAQ,GAAGX,EAAG,4BAA4B,CAACW,MAAM,CAAC,qBAAuBb,EAAI0D,qBAAqB,eAAiB1D,EAAImD,eAAe,OAASnD,EAAI2D,oBAAoB,MAE9uD9B,EAAkB,G,gDCFlB9B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACA,EAAG,SAAS,CAACU,YAAY,OAAOqC,GAAG,CAAC,OAAS,SAASW,GAAQA,EAAOC,oBAAqB,CAAE7D,EAAI8D,gBAAiB5D,EAAG,MAAM,CAACU,YAAY,kBAAkB,CAACV,EAAG,SAAS,CAACU,YAAY,OAAOC,MAAM,CAAC,QAAU,UAAU,KAAO,cAAc,cAAc,QAAQoC,GAAG,CAAC,MAAQjD,EAAI+D,qBAAqB7D,EAAG,uBAAuB,CAACW,MAAM,CAAC,KAAO,cAAc,SAAW,IAAImD,MAAM,CAACxD,MAAOR,EAAIiE,YAAaC,SAAS,SAAUC,GAAMnE,EAAIiE,YAAYE,GAAKxD,WAAW,gBAAgB,CAACT,EAAG,SAAS,CAACU,YAAY,OAAOC,MAAM,CAAC,QAAU,UAAU,KAAO,YAAY,cAAc,WAAW,GAAGX,EAAG,UAAU,CAACU,YAAY,YAAYC,MAAM,CAAC,QAAU,WAAWoC,GAAG,CAAC,MAAQjD,EAAIoE,kBAAkB,CAACpE,EAAIuB,GAAG,SAAWvB,EAAIgD,aAA4EhD,EAAI0B,KAAlExB,EAAG,kBAAkB,CAACW,MAAM,CAAC,SAAWb,EAAImD,kBAA2BjD,EAAG,QAAQ,CAACG,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASC,MAAOR,EAAIqE,eAAgB1D,WAAW,mBAAmBE,MAAM,CAAC,WAAab,EAAIsE,WAActE,EAAI8C,aAAc5C,EAAG,+BAA+B,CAACW,MAAM,CAAC,eAAiBb,EAAImD,kBAAkBnD,EAAI0B,KAAKxB,EAAG,MAAM,CAACU,YAAY,aAAaC,MAAM,CAAC,GAAM,YAAWb,EAAImD,iBAAmB,CAACnD,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,0BAA0B,GAAGzB,EAAI0B,KAAK1B,EAAIe,GAAIf,EAAIiE,aAAa,SAASM,GAAY,OAAOrE,EAAG,IAAI,CAACe,IAAIsD,EAAWrD,GAAGN,YAAY,QAAQ,CAACV,EAAG,SAAS,CAACU,YAAY,OAAOC,MAAM,CAAC,KAAO,WAAW,cAAc,OAAO,QAAU,WAAWoC,GAAG,CAAC,MAAQ,SAASW,GAAQ,OAAO5D,EAAIwE,OAAOD,EAAWrD,QAAQlB,EAAIuB,GAAGvB,EAAIwB,GAAG+C,EAAWjE,MAAM,MAAM,MAAKJ,EAAG,kBAAkB,CAACW,MAAM,CAAC,KAAO,IAAI,WAAW,IAAI,SAAWb,EAAIyE,YAAczE,EAAI8D,gBAAgB,SAAW,GAAG,YAAc9D,EAAI0E,iBAAiBzB,GAAG,CAAC,QAAU,CAAC,SAASW,GAAQ,OAAIA,EAAO3B,KAAK0C,QAAQ,QAAQ3E,EAAI4E,GAAGhB,EAAOiB,QAAQ,QAAQ,GAAGjB,EAAO3C,IAAI,SAAgB,MAAK2C,EAAOC,iBAAoBD,EAAOkB,SAASlB,EAAOmB,UAAUnB,EAAOoB,QAAQpB,EAAOqB,QAAe,KAAYjF,EAAIkF,SAASC,MAAM,KAAMC,aAAY,SAASxB,GAAQ,OAAIA,EAAO3B,KAAK0C,QAAQ,QAAQ3E,EAAI4E,GAAGhB,EAAOiB,QAAQ,QAAQ,GAAGjB,EAAO3C,IAAI,SAAgB,KAAS2C,EAAOmB,SAAwBnB,EAAOkB,SAASlB,EAAOoB,QAAQpB,EAAOqB,QAAe,KAAYjF,EAAIqF,QAAQF,MAAM,KAAMC,WAAjG,OAA8G,MAAQpF,EAAIsF,YAAY,OAAStF,EAAIuF,aAAavB,MAAM,CAACxD,MAAOR,EAAIwF,KAAKC,QAASvB,SAAS,SAAUC,GAAMnE,EAAI0F,KAAK1F,EAAIwF,KAAM,UAAWrB,IAAMxD,WAAW,kBAAkBT,EAAG,MAAM,CAACU,YAAY,WAAW,CAACV,EAAG,WAAW,CAACU,YAAY,mBAAmBC,MAAM,CAAC,SAAWb,EAAIyE,YACx+EzE,EAAI8D,iBACwB,IAA5B9D,EAAIwF,KAAKC,QAAQ/E,QAA2C,IAA3BV,EAAIiE,YAAYvD,OAAc,QAAU,UAAU,GAAK,eAAeuC,GAAG,CAAC,MAAQjD,EAAIkF,WAAW,CAAClF,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,YAAazB,EAAIgD,cAAgBhD,EAAI2F,qBAAsBzF,EAAG,MAAM,CAACU,YAAY,uBAAuBC,MAAM,CAAC,QAAU,mBAAmBoC,GAAG,CAAC,MAAQjD,EAAI4F,mBAAmB,CAAC5F,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIyB,GAAG,aAAa,OAAOzB,EAAI0B,MAAM,IAAI,GAAGxB,EAAG,MAAM,CAACU,YAAY,eAAe,CAACV,EAAG,SAAS,CAACG,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASC,MAAOR,EAAI6F,iBAAkBlF,WAAW,qBAAqBE,MAAM,CAAC,MAAQ,oBAAoBoC,GAAG,CAAC,OAASjD,EAAI8F,aAAa,IAAI,IAE5mBjE,EAAkB,G,6DCJtB,MAAMkE,EAAwC,CAC1C,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,MAGGC,EAAiBC,IAC1B,MAAMC,EAAOC,OAAOD,KAAKH,GAIzB,OAHAG,EAAKE,QAAQC,IACTJ,EAAOA,EAAKK,QAAQD,EAAGN,EAAYM,MAEhCJ,G,yBChBPlG,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,OAAO,CAACG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,oBAAoBgG,UAAU,CAAC,OAAQ,KAAQ3F,YAAY,kBAAkBC,MAAM,CAAC,MAAQb,EAAIyB,GAAG,uCAAuC,CAACvB,EAAG,SAAS,CAACW,MAAM,CAAC,KAAO,cAAc,QAAU,UAAU,cAAc,QAAQoC,GAAG,CAAC,MAAQjD,EAAIwG,cAActG,EAAG,UAAU,CAACuG,IAAI,QAAQ5F,MAAM,CAAC,KAAO,KAAK,MAAQb,EAAIyB,GAAG,sCAAsCiF,YAAY1G,EAAI2G,GAAG,CAAC,CAAC1F,IAAI,eAAe2F,GAAG,WAAW,MAAO,CAAC1G,EAAG,WAAW,CAACU,YAAY,cAAcC,MAAM,CAAC,QAAU,UAAU,SAAWb,EAAIyE,WAAWxB,GAAG,CAAC,MAAQjD,EAAI6G,SAAS,CAAE7G,EAAIyE,UAAWvE,EAAG,SAAS,CAACU,YAAY,UAAUC,MAAM,CAAC,KAAO,aAAa,UAAY,WAAWb,EAAI0B,KAAK1B,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIyB,GAAG,WAAW,MAAM,GAAGvB,EAAG,WAAW,CAACU,YAAY,cAAcC,MAAM,CAAC,QAAU,mBAAmBoC,GAAG,CAAC,MAAQ,SAASW,GAAQ,OAAO5D,EAAI8G,UAAU,CAAC9G,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIyB,GAAG,WAAW,SAASsF,OAAM,MAAS,CAAC7G,EAAG,SAAS,CAAC+C,GAAG,CAAC,OAAS,SAASW,GAAgC,OAAxBA,EAAOC,iBAAwB7D,EAAI6G,OAAO1B,MAAM,KAAMC,cAAc,CAAClF,EAAG,eAAe,CAACW,MAAM,CAAC,MAAWb,EAAIyB,GAAG,UAAT,IAAsB,YAAY,SAAS,YAAczB,EAAIyB,GAAG,uCAAuC,CAACvB,EAAG,eAAe,CAACW,MAAM,CAAC,GAAK,SAAS,KAAO,SAAS,KAAO,SAAS,KAAO,OAAO,SAAWb,EAAIyE,UAAU,SAAW,IAAIT,MAAM,CAACxD,MAAOR,EAAIgE,MAAMgD,OAAQ9C,SAAS,SAAUC,GAAMnE,EAAI0F,KAAK1F,EAAIgE,MAAO,SAAUG,IAAMxD,WAAW,mBAAmB,GAAGT,EAAG,eAAe,CAACW,MAAM,CAAC,MAAWb,EAAIyB,GAAG,eAAT,IAA2B,YAAY,gBAAgB,CAACvB,EAAG,kBAAkB,CAACW,MAAM,CAAC,GAAK,cAAc,KAAO,cAAc,SAAWb,EAAIyE,UAAU,SAAW,GAAG,YAAiBzE,EAAIyB,GAAG,8DAAT,OAA6EuC,MAAM,CAACxD,MAAOR,EAAIgE,MAAMiD,YAAa/C,SAAS,SAAUC,GAAMnE,EAAI0F,KAAK1F,EAAIgE,MAAO,cAAeG,IAAMxD,WAAW,wBAAwB,IAAI,IAAI,IAAI,IAEz6DkB,EAAkB,G,iCCEtB,MAAMqF,EAAM,wEAwBN,SAAUC,EAAQC,EAAoBC,GACxC,OAAOC,IAAcC,IAAgC,GAAGL,EAAO,CAC3DM,OAAQ,CACJJ,aACAC,cAKN,SAAUI,EAAOzD,GACnB,OAAOsD,IAAcI,KAAa,GAAGR,EAAOlD,GAG1C,SAAU2D,EAAiBzG,GAC7B,OAAOoG,IAAcM,IAAI,GAAGV,KAAOhG,YAGjC,SAAU2G,EAAO3G,GACnB,OAAOoG,IAAcM,IAAI,GAAGV,KAAOhG,YAGjC,SAAU4G,EAAa5G,GACzB,OAAOoG,IAAcM,IAAI,GAAGV,KAAOhG,mBCzCvC,IAAqB6G,EAArB,cAA2ChG,OAA3CC,c,oBAGI,KAAAgC,MAAQ,CAAEiD,YAAa,GAAID,OAAQ,KACnC,KAAAvC,WAAY,EAEZ+B,aACKvG,KAAK+H,MAAM,SAAiBC,OAC7BhI,KAAK+D,MAAQ,CAAEiD,YAAa,GAAID,OAAQ,KAE5CF,OACK7G,KAAK+H,MAAM,SAAiBlB,OAEjCD,SACQ5G,KAAK+D,MAAMiD,aAAgBhH,KAAK+D,MAAMgD,QAI1C/G,KAAKwE,WAAY,EACjBgD,EAAO,CACHJ,SAAUpH,KAAKoH,SACfJ,YAAahH,KAAK+D,MAAMiD,YACxBD,OAAQ/G,KAAK+D,MAAMgD,SAEtBkB,KAAK,KACFjI,KAAK6G,SAERqB,QAAQ,KACLlI,KAAKwE,WAAY,IAEpB2D,MAAMC,IAAQ,QACXC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,MAhBzCC,eAAUrI,KAAKwB,GAAG,0CAdlBa,gBAAPC,kBAAO,+BADSwF,EAAa,gBAJjCtF,eAAU,CACPC,WAAY,MAGKqF,WCTmX,I,YCOpYlF,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX9C,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,SAAS,CAACV,EAAG,eAAe,CAACW,MAAM,CAAC,YAAcb,EAAIyB,GAAG,kBAAkB,SAAWzB,EAAIwI,aAAavF,GAAG,CAAC,OAASjD,EAAIyI,aAAazE,MAAM,CAACxD,MAAOR,EAAI0I,MAAOxE,SAAS,SAAUC,GAAMnE,EAAI0I,MAAMvE,GAAKxD,WAAW,WAAWX,EAAIe,GAAIf,EAAI2I,cAAc,SAASC,GAAQ,OAAO1I,EAAG,MAAM,CAACe,IAAI2H,EAAO/H,MAAM,CAAC,IAAM+H,EAAO,MAAQ,QAAQ3F,GAAG,CAAC,MAAQ,SAASW,GAAQ,OAAO5D,EAAI6I,UAAUD,WAAe,IAE1f/G,EAAkB,G,YCgBtB,IAAqBiH,EAArB,cAAmC/G,OAAnCC,c,oBAGE,KAAA0G,MAAgB,GAChB,KAAAC,aAAyB,GACzB,KAAAH,aAAc,EACd,KAAAO,aAA2B3F,EAE3B,KAAA4F,OAASC,mCAETR,YAAYjI,GACNP,KAAK8I,SACPG,aAAajJ,KAAK8I,SAEpB9I,KAAK8I,QAAUI,WAAW,KACxBlJ,KAAKmJ,cACJ,KAGLP,UAAU3B,GACJjH,KAAKoJ,YACPpJ,KAAKoJ,WAAWnC,GAIZkC,aACN,MAAME,EAAOC,iBACPC,EAAW,gDAAgDvJ,KAAK+I,YAAY/I,KAAKyI,yCAAyCY,IAEhIrJ,KAAKuI,aAAc,EACnBiB,MAAMD,GACHtB,KAAMK,GAAaA,EAASmB,QAC5BxB,KAAMyB,IACL1J,KAAK0I,aAAegB,EAAOzH,KAAK0H,IAAKC,GAAMA,EAAEC,OAAOC,YAAY7C,OAEjEiB,QAAQ,KACPlI,KAAKuI,aAAc,IAEpBJ,MAAOC,IAAS,QACfC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,OAtCvC/F,gBAAPC,kBAAO,iCADWuG,EAAK,gBADzBrG,QACoBqG,WClB2W,ICO5X,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX/I,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAQJ,EAAIgK,oBAAsBhK,EAAIgK,mBAAqB,EAAG9J,EAAG,OAAO,CAACU,YAAY,gCAAgC,CAACZ,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIyB,GAAG,4BAA6B,CAACzB,EAAIgK,mBAAmB1G,QAAQ,MAAM,OAAOtD,EAAI0B,MAElTG,EAAkB,GCGtB,IAAqBoI,EAArB,cAAwDlI,OAGhC,yBACpB,OAAOmI,OAAMC,MAAMC,UAAUC,cAAcpK,KAAKkD,gBAAgB6G,qBAH1D1H,gBAAPC,kBAAO,qCADW0H,EAA0B,gBAD9CxH,QACoBwH,WCLgY,ICOjZ,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCef,IAAqBK,EAArB,cAAyCvI,OAAzCC,c,oBAGE,KAAAwD,KAAO,CACLC,QAAS,IAEX,KAAAhB,WAAY,EACZ,KAAAoB,kBAAmB,EACnB,KAAAxB,gBAAiB,EACjB,KAAAJ,YAAwB,GACxB,KAAAsG,gBAA0B,EAEV,mBACd,OAAOL,OAAMM,QAAQC,OAAOC,KAAMC,cAAgBC,OAAYC,OAGhD,mBACd,OAAOX,OAAMM,QAAQJ,UAAUU,iBAAiB7K,KAAKkD,gBAGzC,iBACZ,OAAO4H,iBAGThH,kBAAkBiH,GAChB,SAASC,EAAQC,GACf,IAAIC,EAAS,EACb,GAAID,EAAIE,aACN,GACED,GAAUD,EAAIG,gBACNH,EAAMA,EAAIE,cAEtB,OAAOD,EAELlL,KAAK6D,kBACF7D,KAAK4F,mBACR5F,KAAKsK,gBAAkBU,EAAQD,EAAMM,QAAyB,IAC9DC,OAAOC,SAAS,EAAGvL,KAAKsK,kBAE1BtK,KAAK4F,kBAAoB5F,KAAK4F,kBAIlCzB,kBACEnE,KAAKoE,gBAAkBpE,KAAKoE,eAG9BiB,cACErF,KAAK4F,kBAAmB,EACxB5F,KAAKoE,gBAAiB,EAGxByB,SAAS2F,GACPxL,KAAKuF,KAAKC,SAAWgG,EAAMC,OAG7BnG,cACEtF,KAAKuF,KAAKC,QAAUO,EAAc/F,KAAKuF,KAAKC,SAG9CjB,OAAOmH,GACL1L,KAAKgE,YAAchE,KAAKgE,YAAY2H,OAAQC,GAAMA,EAAE3K,KAAOyK,GAGlD,cACT,MAAO,CACLG,cAAe,UAAU5B,OAAMM,QAAQC,OAAOC,KAAMqB,OAIxC,mBACd,OAAOxI,iBAGU,sBACjB,OAAIO,eAAgB7D,KAAKkD,gBAChBlD,KAAKwB,GAAG,sBAGbxB,KAAK+C,aACF/C,KAAKsD,cAAiBtD,KAAK0F,0BAAhC,EACS1F,KAAKwB,GAAG,qDAGVxB,KAAKwB,GAAG,mCAInB4D,UACEpF,KAAKuF,KAAKC,SAAW,KAGvBG,mBACEoG,eAAmB/L,KAAKkD,gBAAgBiF,MAAOC,IAAS,QACtDC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,KAI/B,uBACNpI,KAAKgM,cAGI,oBAIf,GAHAhM,KAAKqF,cACLrF,KAAKwE,WAAY,EAEbxE,KAAKgE,YAAYvD,OAAS,EAC5B,IACE,MAAMwL,QAA4BC,eAChClM,KAAKkD,eACLlD,KAAKgE,YAAY2F,IAAKiC,GAAMA,EAAEO,aAE1BC,eAAuBH,EAAoBhK,MACjDjC,KAAKgE,YAAc,GACnB,MAAOoE,GAAO,QACdC,gBAAW,UAAAD,EAAcE,gBAAd,mBAAwBrG,YAAxB,eAA8BmG,QAASA,GARpD,QAUEpI,KAAKwE,WAAY,EAIrB,GAAIxE,KAAKuF,KAAKC,QAAS,CAErBxF,KAAKuF,KAAKC,QAAUxF,KAAKuF,KAAKC,QAAQ6G,OAEtC,MAAMC,QAAyBtM,KAAKuM,kBACpC,IAAKD,EACH,OAGF,MAAME,EAAgBxM,KAAKuF,KAAKC,QAChCxF,KAAKuF,KAAKC,QAAU,GAEpB,MAAMiH,EAAuB,CAC3BxL,GAAI,QAAQyL,KAAKC,MAAsB,IAAhBD,KAAKE,UAC5BC,QAASL,EACTM,UAAU,IAAIC,MAAOC,WACrB7F,WAAY8C,OAAMM,QAAQC,OAAOC,KAAMxJ,GACvCmG,SAAUpH,KAAKkD,sBAEX+G,OAAMgD,SAAS9C,UAAU+C,mBAAmB,CAChD1H,QAASiH,IAGX,IACE,MAAMU,QAA0BnB,eAAYhM,KAAKkD,eAAgBsJ,SAC3DY,eAAwBD,EAAkBlL,MAEhD,MAAOmG,GAAO,QACd,MAAMiF,GAAgB,UAAAjF,EAAcE,gBAAd,mBAAwBrG,YAAxB,eAA8BmG,QAASA,EACtC,2BAAjBiF,EACFhF,eAAUrI,KAAKwB,GAAG,6DACQ,0CAAjB6L,EACThF,eAAUrI,KAAKwB,GAAG,uDAElB6G,eAAUgF,GAXhB,QAcErN,KAAKwE,WAAY,IAKF,wBACnB,IACE,MAAM8I,QAAyBf,eAAgBvM,KAAKuF,KAAKC,SACzD,GAAI8H,EAAiBrL,MAAQsL,OAAsBC,kCAAmC,CACpF,MAAMC,QAA4BzN,KAAK0N,SAASC,cAC9C3N,KAAKwB,GAAG,sJAAsJwL,WAC9J,CACEY,MAAO5N,KAAKwB,GAAG,6BAA6BwL,WAC5Ca,KAAM,KACNC,WAAY,KACZC,UAAW,SACXC,QAAShO,KAAKwB,GAAG,eAAewL,WAChCiB,YAAajO,KAAKwB,GAAG,UAAUwL,WAC/BkB,YAAa,MACbC,iBAAiB,EACjBC,UAAU,IAGd,QAASX,EAGT,OAAO,EAET,MAAOrF,GACP,OAAO,EAvBT,QAyBEpI,KAAKwE,WAAY,GAIrB6J,UACE/C,OAAOgD,iBAAiB,SAAU,KAC5BtO,KAAK4F,kBACP0F,OAAOC,SAAS,EAAGvL,KAAKsK,mBAK9BjG,QAAQsE,GACN3I,KAAKqF,cACLrF,KAAKwE,WAAY,EAEjBH,eAAQrE,KAAKkD,eAAgByF,GAC1BV,KAAMK,IACL8D,eAAuB,CAAC9D,EAASrG,OAAOkG,UAEzCD,QAAQ,KACPlI,KAAKwE,WAAY,IAElB2D,MAAOC,IAAS,QACfC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,KAI5B,sBACjB,OAAOvE,eAAgB7D,KAAKkD,gBAGN,2BACtB,OAAO+G,OAAMM,QAAQJ,UAAUzE,qBAAqB1F,KAAKkD,kBA7NnDb,gBAAPC,kBAAO,qCADW+H,EAAW,gBAT/B7H,eAAU,CACTC,WAAY,CACV8L,mBACAC,uBACA1G,gBACAe,QACAmB,iCAGiBK,WCjCiX,KCOlY,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBXvK,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,4BAA4B,CAACV,EAAG,OAAO,CAACU,YAAY,mCAAmC,CAACZ,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAI+C,kBAAkB,UAElPlB,GAAkB,G,uCCatB,IAAqB6M,GAArB,cAAoDC,QAIrC,gBACX,OAAOzE,OAAMM,QAAQJ,UAAUU,iBAAiB7K,KAAKkD,gBAGnC,+BAClB,MAAO,aAAGlD,KAAKe,iBAAR,aAAG,EAAgBK,aAAnB,UAAgCpB,KAAKe,iBAArC,aAAgC,EAAgBW,SAAS,MAGrD,gBACX,OAAOU,iBAGG,yBACV,iBAAOpC,KAAKe,iBAAZ,iBAAO,EAAgB4N,cAAvB,iBAAO,EAAwBC,KAAMC,IAAM,UAA3C,aAAO,EAA2C5N,KAhB5CoB,gBAAPC,kBAAO,sCACAD,gBAAPC,kBAAO,8BAFWmM,GAAsB,gBAN1CjM,eAAU,CACTC,WAAY,CACVqM,yBACAC,kCAGiBN,cCf4X,MCO7Y,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,kCClBX3O,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,WAAW,CAACU,YAAY,mBAAmBC,MAAM,CAAC,SAAWb,EAAIyE,YAAczE,EAAI0D,qBAAqB,QAAU,UAAU,GAAK,cAAcT,GAAG,CAAC,MAAQjD,EAAIiP,UAAU,CAAC/O,EAAG,SAAS,CAACU,YAAY,QAAQC,MAAM,CAAC,KAAO,uBAAuBX,EAAG,OAAO,CAACF,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,aAAa,IAE5XI,GAAkB,G,aCItB,IAAqBqN,GAArB,cAA4CnN,OAA5CC,c,oBAGE,KAAAyC,WAAY,EAEZwK,UACEhP,KAAKwE,WAAY,EAEjB0K,gBAAMlP,KAAKkD,gBACR+E,KAAMK,IACLtI,KAAKmP,QAAQC,KAAK,uBAAuB9G,EAASrG,MAAQkG,MAAM,UAEjED,QAAQ,KACPlI,KAAKwE,WAAY,IAElB2D,MAAOC,IAAS,QACfC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,OAfvC/F,gBAAPC,kBAAO,sCACAD,gBAAPC,kBAAO,4CAFW2M,GAAc,gBADlCzM,QACoByM,cCNoX,MCOrY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBXnP,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,gBAAgBZ,EAAIe,GAAIf,EAAIsP,aAAa,SAAS7J,GAAS,OAAOvF,EAAG,MAAM,CAACe,IAAIwE,EAAQvE,GAAGsC,MAAO,sBAAoBiC,EAAQ8J,OAAS,OAAS,WAAY,CAACrP,EAAG,MAAM,CAACsD,MAAO,8BAA6BiC,EAAQ8J,OAAS,OAAS,WAAa,CAAE9J,EAAQA,QAAQ+J,aAActP,EAAG,MAAM,CAACU,YAAY,cAAc,CAACV,EAAG,OAAO,CAACU,YAAY,mBAAmBV,EAAG,OAAO,CAACU,YAAY,mBAAmB,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGiE,EAAQA,QAAQgK,mBAAmBvP,EAAG,IAAI,CAACU,YAAY,sBAAsBC,MAAM,CAAC,KAAOb,EAAI0P,eAAejK,EAAQA,QAAQkK,yBAA0BlK,EAAQA,QAAQmK,2BAA4B1P,EAAG,MAAM,CAACF,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAI6P,gCAAgCpK,EAAQA,UAAU,KAAKvF,EAAG,MAAM,CAACU,YAAY,mBAAmB,CAACV,EAAG,iDAAiD,CAACW,MAAM,CAAC,QAAU4E,EAAQA,QAAQqK,4BAA4B5P,EAAG,MAAM,CAACU,YAAY,WAAW,KAAM6E,EAAQA,QAAQsK,MAAO7P,EAAG,MAAM,CAACU,YAAY,cAAcoP,YAAY,CAAC,MAAQ,SAASnP,MAAM,CAAC,IAAM4E,EAAQA,QAAQmD,UAAW5I,EAAIiQ,qBAAqBxK,GAAUvF,EAAG,IAAI,CAACA,EAAG,IAAI,CAACF,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,4BAA4BvB,EAAG,IAAI,CAACU,YAAY,QAAQ,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGiE,EAAQA,QAAQqH,YAAY5M,EAAG,OAAO,CAACU,YAAY,QAAQ,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIkQ,GAAG,aAAPlQ,CAAqB,IAAIgN,KAAKvH,EAAQA,QAAQsH,UAAU,2BAA2B7M,EAAG,MAAM,CAACU,YAAY,aAAa,CAAE6E,EAAQ8J,OAAQ,CAACrP,EAAG,mBAAmB,CAACW,MAAM,CAAC,UAAYb,EAAI0K,KAAK,QAAU1K,EAAI0K,KAAKyF,YAAYjQ,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIoQ,cAAc,CAAClQ,EAAG,mBAAmB,CAACW,MAAM,CAAC,UAAYb,EAAIgB,aAAad,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAI+C,uBAAuB,QAAO,IAEzuDlB,GAAkB,GCFlB9B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,sCAAsC,EAAEZ,EAAIgD,cAAiBhD,EAAIqQ,YAAerQ,EAAIsQ,WAAmYtQ,EAAI0B,KAA3XxB,EAAG,IAAI,CAACG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,oBAAoBgG,UAAU,CAAC,OAAQ,KAAQ3F,YAAY,iBAAiBC,MAAM,CAAC,MAAQb,EAAIyB,GAAG,8HAA8H,SAAWzB,EAAIyE,WAAWxB,GAAG,CAAC,MAAQjD,EAAIuQ,SAAS,CAACvQ,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIyB,GAAG,qBAAqB,OAAiBzB,EAAIgD,cAAgBhD,EAAIqQ,aAAerQ,EAAIwQ,gBAAiBtQ,EAAG,IAAI,CAACU,YAAY,mBAAmBC,MAAM,CAAC,SAAWb,EAAIyE,WAAWxB,GAAG,CAAC,MAAQjD,EAAIyQ,kBAAkB,CAACzQ,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIyB,GAAG,qBAAqB,OAAOzB,EAAI0B,KAAO1B,EAAIqQ,YAAerQ,EAAIsQ,WAA6LtQ,EAAI0B,KAArLxB,EAAG,IAAI,CAACU,YAAY,iBAAiBC,MAAM,CAAC,SAAWb,EAAIyE,WAAWxB,GAAG,CAAC,MAAQjD,EAAI6H,SAAS,CAAC7H,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIgD,aAAehD,EAAIyB,GAAG,UAAYzB,EAAIyB,GAAG,WAAW,QAAiBzB,EAAIqQ,YAAerQ,EAAIwQ,iBAAoBxQ,EAAIgD,aAAoFhD,EAAI0B,KAA1ExB,EAAG,OAAO,CAACU,YAAY,UAAU,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,eAAyBzB,EAAIwQ,gBAAiBtQ,EAAG,OAAO,CAACU,YAAY,UAAU,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,YAAYzB,EAAI0B,KAAM1B,EAAIsQ,WAAYpQ,EAAG,OAAO,CAACU,YAAY,UAAU,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,gBAAgBzB,EAAI0B,KAAKxB,EAAG,UAAU,CAACU,YAAY,SAASC,MAAM,CAAC,QAAU,UAAU,KAAO,KAAK,CAACX,EAAG,SAAS,CAACW,MAAM,CAAC,KAAO,cAAc,cAAc,UAAUb,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAI0Q,QAAQ1J,QAAQ,MAAM,IAAI,IAEniDnF,GAAkB,GCQtB,IAAqB8O,GAArB,cAAuE5O,OAAvEC,c,oBAME,KAAAyC,WAAY,EAHI,mBACd,OAAOyF,OAAMM,QAAQC,OAAOC,KAAMC,cAAgBC,OAAYC,OAIlD,iBACZ,QAAS5K,KAAKyQ,QAAQE,aAGV,iBACZ,QAAS3Q,KAAKyQ,QAAQG,aAGL,sBACjB,QAAS5Q,KAAKyQ,QAAQI,kBAGb,cACT,OAAG7Q,KAAKuQ,iBAGLvQ,KAAKqQ,WAFC,QAKF,GAGThC,UACErO,KAAK8Q,MAAMC,IAAI,sBAAwBN,IAClCzQ,KAAKyQ,QAAQxP,IAAMwP,EAAQxP,KAC5BjB,KAAKyQ,QAAQG,aAAeH,EAAQG,aACpC5Q,KAAKyQ,QAAQE,aAAeF,EAAQE,aACpC3Q,KAAKyQ,QAAQI,kBAAoBJ,EAAQI,qBAK/CP,SACEtQ,KAAKwE,WAAY,EACjBkD,EAAiB1H,KAAKyQ,QAAQxP,IAC3BgH,KAAK,KACJjI,KAAKyQ,QAAQE,cAAe,IAAI5D,MAAOC,aAExC9E,QAAQ,KACPlI,KAAKwE,WAAY,IAElB2D,MAAOC,IAAS,QACqB,uBAA5B,OAALA,QAAK,IAALA,GAAA,UAAAA,EAAOE,gBAAP,mBAAiBrG,YAAjB,eAAuBmG,OACxBpI,KAAKgR,SAAS5I,MACZpI,KAAKwB,GAAG,wFAAwFwL,WAChG,CACEiE,SAAU,gBACVC,OAAQ,CACFlL,KAAMhG,KAAKwB,GAAG,gBAAgBwL,WAC9BgC,QAAS,CAAC7M,EAAGgP,KACTnR,KAAKmP,QAAQC,KAAK,iBAAiBjH,MAAM,QACzCgJ,EAAYC,aAK1B/I,eAAUrI,KAAKwB,GAAG,0DAA0DwL,cAKpFpF,SACE5H,KAAKwE,WAAY,EACjBoD,EAAO5H,KAAKyQ,QAAQxP,IACjBgH,KAAK,KACJjI,KAAKyQ,QAAQG,cAAe,IAAI7D,MAAOC,aAExC9E,QAAQ,KACPlI,KAAKwE,WAAY,IAElB2D,MAAMC,IACLC,eAAUD,KAIhBoI,kBACExQ,KAAKwE,WAAY,EACjBqD,EAAa7H,KAAKyQ,QAAQxP,IACvBgH,KAAK,KACJjI,KAAKyQ,QAAQI,mBAAoB,IAAI9D,MAAOC,aAE7C9E,QAAQ,KACPlI,KAAKwE,WAAY,IAElB2D,MAAMC,IACLiJ,MAAMjJ,OA5FJ/F,gBAAPC,kBAAO,+BADWoO,GAAyC,gBAH7DlO,eAAU,CACTC,WAAY,MAEOiO,cCV+Y,MCOha,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,qBCCf,IAAqBY,GAArB,cAAyCxP,OAGvCyP,UACEvR,KAAKwR,wBAGC,WACN,OAAOvH,OAAMM,QAAQC,OAAOC,KAElB,uBACV,MAAO,aAAGzK,KAAKyK,YAAR,aAAG,EAAWrJ,aAAd,UAA2BpB,KAAKyK,YAAhC,aAA2B,EAAW/I,SAAS,MAG3C,gBACX,OAAOU,iBAGI,gBACX,OAAO6H,OAAMM,QAAQJ,UAAUU,iBAAiB7K,KAAKyR,gBAGnC,+BAClB,MAAO,aAAGzR,KAAKe,iBAAR,aAAG,EAAgBK,aAAnB,UAAgCpB,KAAKe,iBAArC,aAAgC,EAAgBW,SAAS,MAGlE6N,aAAa/J,GACX,OAAOA,EAAQA,QAAQgK,eAGzBQ,qBAAqBxK,GACnB,OAAOA,EAAQA,QAAQwK,qBAGzBP,eAAeiC,GACb,MAAO,GAAGC,mBAAkCD,IAG9C9B,gCAAgCpK,GAC9B,OAAOA,EAAQoM,gCACb,KAAKC,OAA+BC,IAClC,MAAO,GAAG9R,KAAKwB,GAAG,2BAA2BgE,EAAQqK,yBAAyBkC,UAChF,KAAKF,OAA+BG,SAClC,MAAO,GAAGhS,KAAKwB,GAAG,0CAA0CgE,EAAQqK,yBAAyBkC,UAC/F,KAAKF,OAA+BI,cAClC,MAAO,GAAGjS,KAAKwB,GAAG,uCAAuCgE,EAAQqK,yBAAyBkC,UAC5F,KAAKF,OAA+BK,SAClC,MAAO,GAAGlS,KAAKwB,GAAG,gCAAgCgE,EAAQqK,yBAAyBkC,WAK1E,wBACb,MAAMI,EAAQ,UACZlI,OAAMC,MAAMC,UAAUC,cAAcpK,KAAKyR,uBAD7B,aACZ,EAA0DU,SAC5D,OAAKA,EAGEA,EACJC,KAAK,CAACxG,EAAGyG,IACD,IAAItF,KAAKnB,EAAEkB,UAAUwF,UAAY,IAAIvF,KAAKsF,EAAEvF,UAAUwF,WAE9D3I,IAAK4I,IACG,CACL/M,QAAS+M,EACTjD,OAAQiD,EAAEpL,aAAe8C,OAAMM,QAAQC,OAAOC,KAAMxJ,MATjD,GAcHuQ,wBACN,IAAKxR,KAAKwS,IAAIC,uBAAwB,OACtC,MAAMC,EAAiB1S,KAAKwS,IAExBE,IAI6B,IAA7BA,EAAeC,WACjBD,EAAeE,aACbF,EAAeC,UACfD,EAAeG,aACfH,EAAeI,SAASJ,EAAeK,kBAAoB,GAC1DH,aAAe,KAElBF,EAAenH,SAAS,EAAGmH,EAAeE,gBApFtCvQ,gBAAPC,kBAAO,sCADWgP,GAAW,gBAN/B9O,eAAU,CACTC,WAAY,CACViO,6CACAsC,4BAGiB1B,cCnBiX,MCOlY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBXxR,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,6BAA6B,CAAGZ,EAAIgB,UAA8Gd,EAAG,MAAM,CAACA,EAAG,MAAM,CAACU,YAAY,OAAO,CAAEZ,EAAIkT,UAAWhT,EAAG,MAAM,CAACU,YAAY,kBAAkB,CAACV,EAAG,KAAKF,EAAIuB,GAAG,KAAKrB,EAAG,OAAO,CAACF,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,oBAAoBzB,EAAI0B,KAAKxB,EAAG,mBAAmB,CAACW,MAAM,CAAC,OAASb,EAAImD,eAAe,UAAYnD,EAAIgB,UAAU,gBAAiB,KAAQd,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAI+C,qBAAqB7C,EAAG,eAAe,CAACW,MAAM,CAAC,cAAe,EAAM,WAAab,EAAIgB,UAAUmS,kBAAmBnT,EAAIgD,cAAgBhD,EAAIgB,UAAUoS,iBAAkBlT,EAAG,MAAM,CAACU,YAAY,qBAAqB,CAACV,EAAG,OAAO,CAACU,YAAY,iBAAiB,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,cAAc,OAAOzB,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIqT,iBAAkBrT,EAAIgB,UAAUoS,iBAAkBlT,EAAG,OAAO,CAACF,EAAIuB,GAAG,KAAKvB,EAAIwB,GAAGxB,EAAIgB,UAAUoS,qBAAqBpT,EAAI0B,OAAO1B,EAAI0B,KAAM1B,EAAIgD,cAAgBhD,EAAIgB,UAAUsS,WAAatT,EAAIgB,UAAUsS,UAAU5S,OAAQR,EAAG,MAAM,CAACU,YAAY,WAAW,CAACV,EAAG,OAAO,CAACU,YAAY,iBAAiB,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,cAAc,OAAOzB,EAAIe,GAAIf,EAAIgB,UAAUsS,WAAW,SAAShK,EAAKiK,GAAO,OAAOrT,EAAG,OAAO,CAACe,IAAIsS,GAAO,CAACvT,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAIwT,aAAalK,EAAKmK,eAAe,IAAIzT,EAAIwB,GAAGxB,EAAI0T,cAAcpK,EAAKqK,SAAUJ,EAAQ,IAAMvT,EAAIgB,UAAUsS,UAAU5S,OAAQ,CAACV,EAAIuB,GAAG,MAAMvB,EAAI0B,MAAM,OAAM,GAAG1B,EAAI0B,KAAKxB,EAAG,MAAM,CAACU,YAAY,cAAcgT,SAAS,CAAC,UAAY5T,EAAIwB,IAAIxB,EAAIgB,UAAUiG,aAAe,IAAIX,QAAQ,KAAM,UAAY,OAAQtG,EAAIgD,aAAc9C,EAAG,IAAI,CAACW,MAAM,CAAC,KAAQ,cAAab,EAAImD,iBAAmB,CAACnD,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,mBAAmBzB,EAAI0B,MAAM,GAAI1B,EAAIgD,aAAc9C,EAAG,MAAM,CAACU,YAAY,UAAU,CAAEZ,EAAI6T,WAAY3T,EAAG,OAAO,CAACU,YAAY,aAAaZ,EAAI0B,KAAK1B,EAAIuB,GAAG,KAAMvB,EAAI8T,aAAc,CAAC9T,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAI+T,SAAS,OAAO/T,EAAI0B,KAAK1B,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIgB,UAAUgT,QAAQpS,KAAKtB,MAAM,KAAMN,EAAIgB,UAAUiT,WAAY/T,EAAG,OAAO,CAACU,YAAY,UAAU,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIgB,UAAUiT,YAAY,SAAS/T,EAAG,OAAO,CAACU,YAAY,cAAc,CAACZ,EAAIuB,GAAG,SAASvB,EAAI0B,MAAM,GAAG1B,EAAI0B,OAAv/DxB,EAAG,SAAS,CAACU,YAAY,OAAOC,MAAM,CAAC,KAAO,aAAa,UAAY,QAAQ,aAAa,QAAm6D,IAEhqEgB,GAAkB,G,oDCoBtB,IAAqBqS,GAArB,cAAqDvF,QAMtC,gBACX,OAAOzE,OAAMM,QAAQJ,UAAUU,iBAAiB7K,KAAKkD,gBAGrC,2BAChB,iBAAQlD,KAAKe,iBAAb,aAAQ,EAAgBqS,gBACtB,KAAKc,QAAeC,OAClB,OAAOnU,KAAKwB,GAAG,UACjB,KAAK0S,QAAeE,QAClB,OAAOpU,KAAKwB,GAAG,WACjB,KAAK0S,QAAeE,QAClB,OAAOpU,KAAKwB,GAAG,SACjB,QACE,QAIN+R,aAAac,GACX,OAAOC,eAAgBD,GAGzBZ,cAAcC,GACZ,OAAOa,gBAA0BvU,KAAM0T,GAGrB,+BAClB,MAAO,aAAG1T,KAAKe,iBAAR,aAAG,EAAgBK,aAAnB,UAAgCpB,KAAKe,iBAArC,aAAgC,EAAgBW,SAAS,MAGtD,gBACZ,OAAO1B,KAAKwU,SAAWC,QAAaC,UAGpB,yBACd,OAAO,UAAAzK,EAAA,KAAMM,QAAQC,OAAOC,YAArB,eAA2BC,eAAgBC,OAAYC,OAGlD,yBACZ,QAAQ,UAAC5K,KAAKe,iBAAN,iBAAC,EAAgBgT,eAAjB,QAAC,EAAyBpS,MAEpB,2BACd,QAAQ,UAAC3B,KAAKe,iBAAN,iBAAC,EAAgBgT,eAAjB,QAAC,EAAyBD,SAEzB,sBACT,MAA4C,QAArC,UAAA9T,KAAKe,iBAAL,mBAAgBgT,eAAhB,eAAyBD,SAAkB9T,KAAKwB,GAAG,UAAW,GAG7D,mBACR,OAAOmT,gBAAa,UAAC3U,KAAKe,iBAAN,aAAC,EAAgB6T,UArD/BvS,gBAAPC,kBAAO,oCACAD,gBAAPC,kBAAO,sCACAD,gBAAPC,kBAAO,4CACAD,gBAAPC,kBAAO,8BAJW2R,GAAuB,gBAN3CzR,eAAU,CACTC,WAAY,CACVuQ,wBACA6B,wBAGiBZ,cCtB6X,MCO9Y,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBXnU,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAQJ,EAAI+U,SAASrU,OAAS,EAAGR,EAAG,MAAM,CAACU,YAAY,oBAAoB,CAACV,EAAG,SAAS,CAACU,YAAY,0BAA0BC,MAAM,CAAC,UAAU,GAAG,OAASb,EAAIyB,GAAG,sBAAsB,CAACvB,EAAG,eAAe,CAACW,MAAM,CAAC,MAAQ,KAAKb,EAAIe,GAAIf,EAAI+U,UAAU,SAASrE,GAAS,OAAOxQ,EAAG,uCAAuC,CAACe,IAAIyP,EAAQxP,GAAGL,MAAM,CAAC,QAAU6P,QAAa,IAAI,IAAI,GAAG1Q,EAAI0B,MAE5cG,GAAkB,GCFlB9B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,oBAAoB,CAACW,MAAM,CAAC,QAAUb,EAAIgV,UAAU,CAAChV,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAI0Q,QAAQsB,SAAS,KAAK9R,EAAG,iDAAiD,CAACW,MAAM,CAAC,QAAUb,EAAI0Q,YAAY,IAEtR7O,GAAkB,GCWtB,IAAqBoT,GAArB,cAA8DlT,OAG5C,mBACd,OAAOmI,OAAMM,QAAQC,OAAOC,KAAMC,cAAgBC,OAAYC,OAElD,iBACZ,QAAS5K,KAAKyQ,QAAQE,aAGV,iBACZ,QAAS3Q,KAAKyQ,QAAQG,aAGL,sBACjB,QAAS5Q,KAAKyQ,QAAQI,kBAGb,cACT,OAAG7Q,KAAKuQ,iBAGLvQ,KAAKqQ,WAFC,QAKF,KAxBDhO,gBAAPC,kBAAO,+BADW0S,GAAgC,gBALpDxS,eAAU,CACTC,WAAY,CACViO,iDAGiBsE,cCbsY,MCOvZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCLf,IAAqBC,GAArB,cAA0DnT,OAA1DC,c,oBAGE,KAAAgC,MAAQ,CAAEiD,YAAa,GAAID,OAAQ,KACnC,KAAAvC,WAAY,EACZ,KAAAsQ,SAAuC,GAEvB,mBACd,OAAO7K,OAAMM,QAAQC,OAAOC,KAAMC,cAAgBC,OAAYC,OAGhEsK,WACE,MAAMC,EAAclL,OAAMM,QAAQC,OAAOC,KAAMC,aAAeC,OAAYyK,UACxEnL,OAAMM,QAAQC,OAAOC,KAAMxJ,GAAKjB,KAAKkD,eACjCmS,EAAWF,GAAenV,KAAKkD,eAAiB+G,OAAMM,QAAQC,OAAOC,KAAMxJ,GAAKjB,KAAKkD,eAC3FlD,KAAKwE,WAAY,EACjB0C,EAAQiO,EAAaE,GAChBpN,KAAMK,IACHtI,KAAK8U,SAAWxM,EAASrG,OAE5BiG,QAAQ,KACLlI,KAAKwE,WAAY,IAEpB2D,MAAMC,IAAQ,QACbC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,KAIjDiG,UACErO,KAAKkV,WAELlV,KAAKsV,OAAO,IAAMtV,KAAKkD,eAAgB,KACrClD,KAAKkV,aAGPlV,KAAK8Q,MAAMC,IAAI,sBAAwBN,IACrC,MAAM8E,EAAkBvV,KAAK8U,SAASlG,KAAK4G,GAAKA,EAAEvU,IAAMwP,EAAQxP,IAC5DsU,GAGFA,EAAgB3E,aAAeH,EAAQG,aACvC2E,EAAgB5E,aAAeF,EAAQE,aACvC4E,EAAgB1E,kBAAoBJ,EAAQI,mBAJ5C7Q,KAAK8U,SAASW,QAAQhF,GAMxBxG,OAAMgD,SAASzC,OAAOkL,cAAcvN,MAAM,YA3CtC9F,gBAAPC,kBAAO,sCADW2S,GAA4B,gBALhDzS,eAAU,CACTC,WAAY,CACVuS,wCAGiBC,cCbkY,MCOnZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCYf,IAAqBU,GAArB,cAAiD7T,OAAjDC,c,oBAIE,KAAA6T,oBAAkC,OAClC,KAAAC,sBAAoC,OACpC,KAAAnS,gBAAgC+Q,QAAaqB,QAE7C,KAAAtS,iBAAkB,EAClB,KAAAgB,WAAY,EACZ,KAAAgB,QAAU,GAEM,mBACd,OAAOyE,OAAMM,QAAQJ,UAAUU,iBAAiB7K,KAAKkD,gBAGnC,+BAClB,MAAO,aAAGlD,KAAK6C,oBAAR,aAAG,EAAmBzB,aAAtB,UAAmCpB,KAAK6C,oBAAxC,aAAmC,EAAmBnB,SAAS,MAGxEuB,wBACEjD,KAAKwD,iBAAmBxD,KAAKwD,gBAGN,kCACvB,OAAO,UAAAyG,EAAA,KAAMM,QAAQC,OAAOC,YAArB,eAA2BC,eAAgBC,OAAYyK,UAGhD,mBACd,OAAOnL,OAAMM,QAAQC,OAAOC,KAAMC,cAAgBC,OAAYC,OAGhD,mBACd,OAAOtH,iBAGO,yBACd,iBAAO2G,OAAMC,MAAMC,UAAUC,cAAcpK,KAAKkD,uBAAhD,aAAO,EAA0DE,aAGtD,gBACX,OAAOhB,iBAGI,sBACLpC,KAAK+V,cAGW,2BACtB,OAAO/V,KAAK0D,kBAAoB+Q,QAAaC,UAG/CsB,gBACEhW,KAAK4V,sBACL5V,KAAK6V,wBAIU,4BACf5L,OAAMgM,OAAOzL,OAAO0L,oBAAoBlW,KAAKwB,GAAG,aAChDxB,KAAK4V,sBAEL5V,KAAKmW,yBACLnW,KAAKwE,WAAY,QAEXyF,OAAMgD,SAAS9C,UAAUiM,iBAAiB,CAAElT,eAAgBlD,KAAKkD,iBACvE+G,OAAMgM,OAAOzL,OAAO0L,oBAAoB,aAAGlW,KAAK6C,oBAAR,aAAG,EAAmBzB,aAAtB,UAAmCpB,KAAK6C,oBAAxC,aAAmC,EAAmBnB,cAAc1B,KAAKwB,GAAG,eAEpHxB,KAAKmW,yBACLnW,KAAKwE,WAAY,EAEjB,IACExE,KAAKqW,4BACL,MAAOjO,GAAO,QACdC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,EAAO,CAC9CwF,MAAO5N,KAAKwB,GAAG,4CAKrB6U,4BACErW,KAAK4V,oBAAsBU,gBACzB,IACOtW,KAAKkD,gBAAmBlD,KAAK6C,aAS3BxB,gBAAarB,KAAKkD,gBARhBqT,QAAQC,QAAQ,CACrBvU,KAAMwS,QAAaqB,QACnBtB,OAAQ,IACRiC,WAAY,GACZC,OAAQ,GACRC,aAASxT,IAKf,IACCqR,IACCxU,KAAK0D,gBAAkB8Q,IAKT,6BACZxU,KAAKmP,QAAQC,KAAK,SAASpP,KAAKkD,gBAGhCiT,yBACN,MAAMzD,EAAiB1S,KAAKwS,IAAIC,uBAC9B,gBACA,GACFC,EAAenH,SAAS,EAAGmH,EAAeE,gBA5GpCvQ,gBAAPC,kBAAO,sCAyDRD,gBADCuU,eAAM,mBACP,iCA1DmBjB,GAAmB,gBAZvCnT,eAAU,CACTC,WAAY,CACV4H,eACA4E,kBACAR,0BACAK,yBACAmF,2BACA3C,eACA2D,gCACAjC,4BAGiB2C,cC9ByX,MCO1Y,GAAY,eACd,GACA7V,EACA8B,GACA,EACA,KACA,KACA,MAIa,U,6CClBf,IAAI9B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACA,EAAG,eAAeF,EAAIe,GAAIf,EAAI8W,kBAAkB,SAASC,GAAc,OAAO7W,EAAG,oBAAoB,CAACe,IAAI8V,EAAa5T,eAAetC,MAAM,CAAC,OAASkW,EAAa5T,iBAAmBnD,EAAIgX,qBAAqB,GAAM,kBAAiBD,EAAa5T,iBAAmB,CAACjD,EAAG,8BAA8B,CAACW,MAAM,CAAC,aAAekW,MAAiB,MAAK,IAAI,IAE/blV,EAAkB,G,oCCFlB9B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,0BAA0B,CAACV,EAAG,MAAM,CAACU,YAAY,WAAWC,MAAM,CAAC,IAAO,GAAEb,EAAImB,YAAYnB,EAAIiX,sBAAwB,yBAAyB/W,EAAG,MAAM,CAACU,YAAY,WAAW,CAACV,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACZ,EAAIuB,GAAG,IAAIvB,EAAIwB,GAAGxB,EAAI+C,kBAAkB,KAAK7C,EAAG,OAAO,CAACG,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASC,MAAOR,EAAIkX,iBAAkBvW,WAAW,yBAAyBT,EAAG,MAAM,CAACU,YAAY,QAAQ,CAACV,EAAG,OAAO,CAACsD,MAAO,mCAAkCxD,EAAIkX,iBAAmB,SAAW,KAAM,CAAClX,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAImX,uBAAuBjX,EAAG,OAAO,CAACU,YAAY,QAAQ,CAACZ,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIkQ,GAAG,aAAPlQ,CAAqBA,EAAIoX,kBAAkBpX,EAAIqX,uBAEzuBxV,EAAkB,GCItB,IAAqByV,EAArB,cAAsDvV,OAGhC,uBAClB,OAAO9B,KAAK8W,aAAaQ,eAAiB,EAG/B,gBACX,OAAOlV,iBAGK,iBACZ,OAAO,IAAI2K,KAAK/M,KAAKmX,mBAAmBI,kBACtC,IAAIxK,MAAOwK,eACT,QACA,QAGe,wBACnB,OAAO,IAAIxK,KAAK/M,KAAK8W,aAAaU,qBAGd,yBACpB,OAAGxX,KAAK8W,aAAaW,gCACZzX,KAAKwB,GAAG,sBAGbxB,KAAK8W,aAAaY,wBACb,IAAI1X,KAAKwB,GAAG,iBAGjBxB,KAAK8W,aAAaW,gCACb,MAGFzX,KAAK8W,aAAaI,mBAGP,+BAClB,MAAO,aAAGlX,KAAK8W,oBAAR,aAAG,EAAmBa,yBAAtB,UAA+C3X,KAAK8W,oBAApD,aAA+C,EAAmBc,qBAAqB,MAGxE,2BACtB,OAAO5X,KAAK8W,aAAaE,uBA1CnB3U,gBAAPC,kBAAO,mCADW+U,EAAwB,gBAD5C7U,QACoB6U,WCN8X,I,YCO/YzU,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,gCCNf,IAAqBiV,EAArB,cAA8C/V,OAA9CC,c,oBACE,KAAAyC,WAAY,EAEY,2BACtB,OAAOxE,KAAK8X,OAAOvQ,OAAOtG,GAGR,uBAClB,OAAOgJ,OAAMC,MAAMC,UAAU4N,sBAAsB3F,KACjD,CAACxG,EAAGyG,IACF,IAAItF,KAAKsF,EAAEmF,qBAAqBlF,UAChC,IAAIvF,KAAKnB,EAAE4L,qBAAqBlF,WAIzB,gBACX,OAAOlQ,iBAGI,gBACXpC,KAAKwE,WAAY,EACjB,UACQyF,OAAMgD,SAAS9C,UAAU6N,4BAC/B,MAAO5P,GAAO,QACdC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,EAAO,CAC9CwF,MAAO5N,KAAKwB,GAAG,2CAJnB,QAOExB,KAAKwE,WAAY,EACjB,MAAMyT,EAAiB3M,OAAO4M,WAAa,IAEtClY,KAAK8X,OAAOvQ,OAAOtG,KAAMjB,KAAK6W,iBAAiBpW,QAAWwX,SACvDjY,KAAKmP,QAAQC,KAAK,kBAAkBpP,KAAK6W,iBAAiB,GAAG3T,mBAhCtD2U,EAAgB,gBALpCrV,eAAU,CACTC,WAAY,CACV4U,+BAGiBQ,WCZsX,ICOvY,EAAY,eACd,EACA/X,EACA8B,GACA,EACA,KACA,KACA,MAIa,S,kDClBf,IAAI9B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,iBAAiB,CAACV,EAAG,MAAM,CAACU,YAAY,kCAAkC,CAAGZ,EAAIoY,gBAAiEpY,EAAI0B,KAApDxB,EAAG,kBAAkB,CAACW,MAAM,CAAC,KAAO,aAAsB,GAAGX,EAAG,MAAM,CAACU,YAAY,0BAA0B,CAACV,EAAG,MAAM,CAACU,YAAY,8CAA8CqC,GAAG,CAAC,MAAQjD,EAAIqY,6BAA6B,CAACnY,EAAG,SAAS,CAACW,MAAM,CAAC,KAAO,WAAW,KAAKX,EAAG,MAAM,CAACU,YAAY,0BAA0B,CAACV,EAAG,MAAM,CAACsD,MAAO,gCAA+BxD,EAAI2F,qBAAkC,GAAX,WAAiB,CAAI3F,EAAIsY,2BAA4BpY,EAAG,WAAW,CAACW,MAAM,CAAC,QAAU,WAAWoC,GAAG,CAAC,MAAQ,KAAQjD,EAAIoP,QAAQC,KAAKrP,EAAIsY,+BAAgC,CAACpY,EAAG,SAAS,CAACU,YAAY,OAAOC,MAAM,CAAC,KAAO,gBAAgBb,EAAIuB,GAAGvB,EAAIwB,GAAGxB,EAAIyB,GAAG,uBAAuB,MAAM,GAAGzB,EAAI0B,KAAKxB,EAAG,oBAAoB,CAACU,YAAY,oBAAoB4C,MAAM,CAAE,WAAYxD,EAAIuY,4BAA6B,GAAIvY,EAAI+X,OAAOvQ,OAAOtG,GAAIhB,EAAG,uBAAuB,CAACU,YAAY,uBAAuBC,MAAM,CAAC,eAAiBb,EAAI+X,OAAOvQ,OAAOtG,MAAMlB,EAAI0B,MAAM,MAEhoCG,EAAkB,G,gGCctB,IAAqB2W,EAArB,cAA2CzW,aAA3CC,c,oBACE,KAAAuW,yBAA0B,EAEP,4BACjB,OAAO,UAAArO,EAAA,KAAMM,QAAQC,OAAOC,YAArB,eAA2BC,eAAgBC,OAAYyK,UAGxC,2BACtB,QAASpV,KAAK8X,OAAOvQ,OAAOtG,GAGA,iCAC5B,OAAOgJ,OAAMM,QAAQC,OAAOgO,6BAG9BJ,6BACEpY,KAAKsY,yBAA2BtY,KAAKsY,0BAhBpBC,EAAa,gBAPjC/V,eAAU,CACTC,WAAY,CACVoV,wBACAlC,2BACA9T,2BAGiB0W,WChBmX,I,YCOpY3V,EAAY,eACd,EACA9C,EACA8B,GACA,EACA,KACA,KACA,MAIa,aAAAgB,E,2CClBf,IAAI9C,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACU,YAAY,0BAA0B,CAAEZ,EAAIkT,UAAWhT,EAAG,SAAS,CAACG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,oBAAoBgG,UAAU,CAAC,OAAQ,KAAQ1F,MAAM,CAAC,KAAO,cAAc,QAAU,UAAU,MAAQb,EAAIyB,GAAG,gBAAgBzB,EAAI0B,KAAM1B,EAAI0Y,KAAMxY,EAAG,SAAS,CAACG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,oBAAoBgG,UAAU,CAAC,OAAQ,KAAQ1F,MAAM,CAAC,KAAO,cAAc,QAAU,SAAS,MAAQb,EAAIyB,GAAG,WAAWzB,EAAI0B,KAAM1B,EAAI2Y,QAASzY,EAAG,SAAS,CAACG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,oBAAoBgG,UAAU,CAAC,OAAQ,KAAQ1F,MAAM,CAAC,KAAO,cAAc,QAAU,OAAO,MAAQb,EAAIyB,GAAG,cAAczB,EAAI0B,MAAM,IAE1tBG,EAAkB,G,oCCGtB,IAAqBmN,EAArB,cAAmDjN,OAGpC,gBACX,OAAO9B,KAAKwU,SAAWC,OAAaC,UAG9B,WACN,OAAO1U,KAAKwU,SAAWC,OAAakE,KAG3B,cACT,OAAO3Y,KAAKwU,SAAWC,OAAaqB,UAX9BzT,gBAAPC,kBAAO,6BADWyM,EAAqB,gBADzCvM,QACoBuM,WCL2X,I,YCO5YnM,EAAY,eACd,EACA9C,EACA8B,GACA,EACA,KACA,KACA,MAIa,OAAAgB,E,kDClBf,IAAI9C,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACA,EAAG,OAAO,CAACA,EAAG,UAAU,CAACU,YAAY,2BAA2B,CAACV,EAAG,cAAc,CAACU,YAAY,SAAS,CAAIZ,EAAImD,eAAgBjD,EAAG,QAAQ,CAACW,MAAM,CAAC,eAAiBb,EAAImD,eAAe,YAAcnD,EAAI+X,OAAOvQ,OAAOqR,eAAe7Y,EAAI0B,MAAM,IAAI,QAE1VG,EAAkB,G,oCCFlB9B,EAAS,WAAkB,IAAIC,EAAIC,KAAQD,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOJ,EAAI8Y,GAAG,IAEnGjX,EAAkB,CAAC,WAAY,IAAI7B,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAUF,EAAIG,MAAMC,YAAY,OAAOF,EAAG,MAAM,CAACA,EAAG,MAAM,CAACW,MAAM,CAAC,GAAK,c,gDCOpI,IAAqBkY,EAArB,cAAmChX,OAAnCC,c,oBAIU,KAAAgX,SAAuB5V,EACvB,KAAA6V,wBAAiD7V,EACxC,KAAA8V,sBAAwB,EAE5B,sBACJnX,OAAYoX,WAAW,uCAE9B,MAAMC,EAAY,IACZC,EAASC,iBACTC,EAAU,CACdC,SAAUvZ,KAAK4Y,YACfY,gBAAiB,CACfC,oBAAoB,GAEtBC,yBAA0B,CACxBC,kBAAkB,EAClBC,yBAAyB,EACzBC,qBAAqB,EACrBC,sBAAsB,EACtBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,iBAAiB,EACjBC,eAAe,EACfC,oCAAoC,EACpCC,wBAAyB,EACzBC,iBAAiB,EACjBC,2BAA2B,GAE7BC,MAAOva,KAAKwS,IAAIgI,YAChB5F,OACE5U,KAAKwS,IAAIgI,YAAcrB,EAAYA,EAAYnZ,KAAKwS,IAAIgI,YAC1DC,WAAYC,SAASC,cAAc,SACnCC,SAAU,CACRC,YAAa5Q,OAAMM,QAAQC,OAAOC,KAAMrJ,YAG5CpB,KAAK+Y,IAAM,IAAI+B,qBAAqB1B,EAAQE,GAC5CtZ,KAAK+Y,IAAIzK,iBAAiB,sBAAuB,KAC/CtO,KAAKgR,SAAS+J,KAAK,aAAc,CAAEC,SAAU,MAC7Chb,KAAKmP,QAAQC,KAAK,kBAAkBpP,KAAKkD,gBAAkBiF,MAAM,UAEnEnI,KAAK+Y,IAAIzK,iBAAiB,kBAAmB,KAC3CtO,KAAKgR,SAAS+J,KAAK,iCAAkC,CAAEC,SAAU,MACjEhb,KAAKmP,QAAQC,KAAK,kBAAkBpP,KAAKkD,gBAAkBiF,MAAM,UAGnEnI,KAAKib,eAGPjF,gBACMhW,KAAKgZ,oBACPkC,cAAclb,KAAKgZ,oBAErBhZ,KAAK+Y,IAAIoC,UACTC,eAAIpb,KAAK4Y,aAAa3Q,KAAK,KACzBgC,OAAMgD,SAASzC,OAAOkL,cAAcvN,MAAM,UACzCA,MAAM,QAGX8S,eACEjb,KAAKgZ,mBAAqBqC,YACxB,IAAMrb,KAAKsb,cACkB,IAA7Btb,KAAKiZ,uBAITqC,cACE,MAAMC,EAAuBvb,KAAK+Y,IAAIyC,0BAClCD,EAAuB,GACzBE,eAAKzb,KAAK4Y,aAAazQ,MAAM,UAxEzB9F,gBAAPC,kBAAO,qCACAD,gBAAPC,kBAAO,kCAFWwW,EAAK,gBADzBtW,QACoBsW,WCT2W,I,YCO5XlW,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,gCCEf,IAAqB8Y,EAArB,cAAkC5Z,OAAlCC,c,oBACU,KAAAmB,eAAgC,KACxC,KAAAL,aAAqC,KAErCwL,UACEpE,OAAMgM,OAAOzL,OAAO0L,oBAAoBlW,KAAKwB,GAAG,eAEhDma,eAAY3b,KAAK8X,OAAOvQ,OAAOqR,aAE9B3Q,KAAMK,IACL,MAAMsT,EAAS3R,OAAMM,QAAQC,OAAOC,KAAMxJ,GAM1C,OALAjB,KAAKkD,eACHoF,EAASrG,KAAKkF,aAAeyU,EACzBtT,EAASrG,KAAKmF,SACdkB,EAASrG,KAAKkF,WAEbnH,KAAK6b,kBAAkB7b,KAAKkD,kBAEpCiF,MAAOC,IAAS,QACfC,gBAAU,UAAAD,EAAME,gBAAN,mBAAgBrG,YAAhB,eAAsBmG,QAASA,KAIrCyT,kBAAkB3Y,GACxB,OAAO4Y,eAAwB5Y,GAAgB+E,KAAMK,IAAY,QAC/DtI,KAAK6C,aAAeyF,EAASrG,KAC7BgI,OAAMgM,OAAOzL,OAAO0L,oBAClB,aAAGlW,KAAK6C,oBAAR,aAAG,EAAmBzB,aAAtB,UACEpB,KAAK6C,oBADP,aACE,EAAmBnB,cACf1B,KAAKwB,GAAG,qBA7BDka,EAAI,gBAPxBlZ,eAAU,CACTC,WAAY,CACVoV,wBACAlC,2BACAmD,YAGiB4C,WCpB0W,ICO3X,EAAY,eACd,EACA5b,EACA8B,GACA,EACA,KACA,KACA,MAIa,e,2CClBf,iKAGA,MAAMqF,EAAM,yDAaN,SAAUiI,EAAMhM,GAClB,OAAOmE,IAAcI,KAAa,GAAGR,KAAO/D,KAG1C,SAAUyY,EAAY/C,GACxB,OAAOvR,IAAcC,IAAoB,GAAGL,KAAO2R,KAGjD,SAAU6C,EAAK7C,GACjB,OAAOvR,IAAcM,IAAI,GAAGV,KAAO2R,UAGjC,SAAUwC,EAAIxC,GAChB,OAAOvR,IAAcM,IAAI,GAAGV,KAAO2R","file":"js/conversation~21833f8f.878f2b54.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.assistants.length > 0),expression:\"assistants.length > 0\"}],staticClass:\"assistant-slider\"},[_c('carousel',{attrs:{\"autoplay\":true,\"paginationEnabled\":false,\"navigationEnabled\":true,\"perPageCustom\":_vm.perPageCustom}},_vm._l((_vm.assistants),function(assistant){return _c('slide',{key:assistant.id},[_c('a',{staticClass:\"assistant-slider__item\",attrs:{\"href\":`/assistant/${assistant.id}`}},[_c('img',{staticClass:\"card-img\",attrs:{\"src\":`${_vm.imagesUrl}${assistant.photoId || 'default'}_150px.jpg`,\"alt\":assistant.firstName}}),(assistant.onlineStatus === 0)?_c('span',{staticClass:\"assistant-status is-offline\"},[_vm._v(_vm._s(_vm.$t(\"Offline\")))]):_vm._e(),(assistant.onlineStatus === 1)?_c('span',{staticClass:\"assistant-status is-online\"},[_vm._v(_vm._s(_vm.$t(\"Online\")))]):_vm._e(),_c('div',[_c('div',{staticClass:\"assistant-data\"},[_c('span',{staticClass:\"assistant-name\"},[_vm._v(_vm._s(`${assistant.firstName} ${assistant.lastName ? assistant.lastName[0]: ''}`))]),_c('span',{staticClass:\"assistant-city\"},[_vm._v(_vm._s(assistant.city))]),_c('a',{staticClass:\"see-profile\",attrs:{\"href\":`/assistant/${assistant.id}`}},[_vm._v(_vm._s(_vm.$t('See profile')))]),_c('a',{staticClass:\"send-message\",attrs:{\"href\":`/assistant/${assistant.id}/sendMessage`}},[_vm._v(_vm._s(_vm.$t('Send message')))])])])])])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {Component, Prop, Vue} from \"vue-property-decorator\";\nimport { AssistantListItem } from \"../assistants/assistantsWebServices\";\nimport { getNewestAssistants } from \"../assistants/searchWebServices\";\nimport { getBaseImagesUrl } from \"../helpers/settingsHelper\";\nimport { Carousel, Slide } from \"vue-carousel\";\n\n\n@Component({\n components: {\n Carousel,\n Slide\n }\n})\nexport default class AssistantSlider extends Vue {\n @Prop( { default: 'default' } ) type!: string;\n\n assistants: AssistantListItem[] = [];\n\n async mounted() {\n if (this.type === 'active') {\n try {\n const { data } = await getNewestAssistants()\n\n this.assistants = data;\n } catch (e) {}\n\n return\n }\n try {\n const { data } = await getNewestAssistants()\n\n this.assistants = data;\n }\n catch (e) {}\n }\n\n get imagesUrl() {\n return getBaseImagesUrl();\n }\n\n get perPageCustom() {\n return [\n [480, 3], \n [600, 4], \n [750, 5], \n [800, 6], \n [920, 7], \n [1050, 8], \n [1170, 9], \n [1300, 10],\n [1440, 11],\n [1570, 12],\n [1700, 13],\n [1850, 14],\n [1990, 15],\n [2150, 16],\n [2250, 17],\n ];\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssistantSlider.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssistantSlider.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssistantSlider.vue?vue&type=template&id=10627d19&\"\nimport script from \"./AssistantSlider.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssistantSlider.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"conversation-details__content\"},[_c('div',{staticClass:\"content__padding\"},[_c('div',{staticClass:\"top\"},[(_vm.interlocutor)?_c('div',{staticClass:\"top__user-data\"},[_c('assistant-avatar',{attrs:{\"assistant\":_vm.interlocutor}}),[_vm._v(_vm._s(_vm.interlocutorName))]],2):_vm._e(),_c('div',[(_vm.isUserClient && false)?_c('start-video-call',{attrs:{\"interlocutorId\":_vm.interlocutorId,\"isOtherUserAvailable\":_vm.isOtherUserAvailable}}):_vm._e(),_c('b-button',{staticClass:\"btn-show-user-data\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.onClickToggleUserData}},[_c('b-icon',{attrs:{\"icon\":\"person\"}})],1)],1)]),_c('message-list',{attrs:{\"conversationId\":_vm.interlocutorId}}),_c('send-message',{attrs:{\"interlocutorId\":_vm.interlocutorId}})],1),_c('additional-payment-request-list',{attrs:{\"interlocutorId\":_vm.interlocutorId}}),_c('div',{staticClass:\"coins\"},[_c('div',{staticClass:\"content__padding\"},[(_vm.chargedCoins !== undefined)?_c('div',{staticClass:\"coins-spend\"},[_c('span'),_vm._v(_vm._s(_vm.$t('Coins spent'))+\": \"+_vm._s(_vm.chargedCoins.toFixed(2))+\" \")]):_vm._e(),(_vm.isUserClient && !this.userHasCoins)?_c('a',{staticClass:\"btn-up-coins\",attrs:{\"href\":\"/transactions\"}},[_vm._v(_vm._s(_vm.$t(\"Top up coins\")))]):_vm._e()])])],1),_c('div',{staticClass:\"conversation-details__data interlocutor-side-details-wrap\",class:{'is-shown': _vm.personDataShown}},[_c('div',{staticClass:\"btn-close-user-data\",on:{\"click\":_vm.onClickToggleUserData}},[_c('b-icon',{attrs:{\"icon\":\"x\"}})],1),_c('interlocutor-side-details',{attrs:{\"isInterlocutorActive\":_vm.isOtherUserAvailable,\"interlocutorId\":_vm.interlocutorId,\"status\":_vm.otherUserStatus}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('b-form',{staticClass:\"mt-5\",on:{\"submit\":function($event){$event.preventDefault();}}},[(_vm.userCanConverse)?_c('div',{staticClass:\"h4 actionIcons\"},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"variant\":\"primary\",\"icon\":\"emoji-smile\",\"aria-hidden\":\"true\"},on:{\"click\":_vm.toggleEmojiPicker}}),_c('vue-upload-component',{attrs:{\"name\":\"attachments\",\"multiple\":\"\"},model:{value:(_vm.attachments),callback:function ($$v) {_vm.attachments=$$v},expression:\"attachments\"}},[_c('b-icon',{staticClass:\"ml-2\",attrs:{\"variant\":\"primary\",\"icon\":\"paperclip\",\"aria-hidden\":\"true\"}})],1),_c('b-badge',{staticClass:\"gifPicker\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.toggleGifPicker}},[_vm._v(\"GIF\")]),(!_vm.isUserClient)?_c('ask-for-payment',{attrs:{\"toUserId\":_vm.interlocutorId}}):_vm._e(),_c('giphy',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.gifPickerShown),expression:\"gifPickerShown\"}],attrs:{\"onImgClick\":_vm.sendGif}}),(!!_vm.interlocutor)?_c('active-conversation-messages',{attrs:{\"interlocutorId\":_vm.interlocutorId}}):_vm._e(),_c('div',{staticClass:\"btn-report\",attrs:{\"to\":`/support/${_vm.interlocutorId}`}},[_vm._v(_vm._s(_vm.$t(\"Report spam/abuse\")))])],1):_vm._e(),_vm._l((_vm.attachments),function(attachment){return _c('p',{key:attachment.id,staticClass:\"ml-3\"},[_c('b-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"x-square\",\"aria-hidden\":\"true\",\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.remove(attachment.id)}}}),_vm._v(_vm._s(attachment.name)+\" \")],1)}),_c('b-form-textarea',{attrs:{\"rows\":\"1\",\"max-rows\":\"5\",\"disabled\":_vm.isLoading || !_vm.userCanConverse,\"required\":\"\",\"placeholder\":_vm.sendMessageText},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.onSubmit.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if($event.ctrlKey||$event.altKey||$event.metaKey)return null;return _vm.newline.apply(null, arguments)}],\"click\":_vm.hidePickers,\"update\":_vm.analyzeText},model:{value:(_vm.form.message),callback:function ($$v) {_vm.$set(_vm.form, \"message\", $$v)},expression:\"form.message\"}}),_c('div',{staticClass:\"buttons\"},[_c('b-button',{staticClass:\"primary btn-send\",attrs:{\"disabled\":_vm.isLoading ||\n !_vm.userCanConverse ||\n (_vm.form.message.length === 0 && _vm.attachments.length === 0),\"variant\":\"primary\",\"id\":\"submitLogin\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t(\"Send\")))]),(_vm.isUserClient && _vm.isConversationActive)?_c('div',{staticClass:\"primary btn-end-chat\",attrs:{\"variant\":\"outline-primary\"},on:{\"click\":_vm.onFinishChatting}},[_vm._v(\" \"+_vm._s(_vm.$t(\"End chat\"))+\" \")]):_vm._e()],1)],2),_c('div',{staticClass:\"emojiPicker\"},[_c('picker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.emojiPickerShown),expression:\"emojiPickerShown\"}],attrs:{\"title\":\"Pick your emoji…\"},on:{\"select\":_vm.addEmoji}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const emojisTable: { [id: string]: string } = {\n \":D\": \"😁\",\n \":P\": \"😜\",\n \":)\": \"😀\",\n \":(\": \"☹️\",\n \":/\": \"😏\",\n \":*\": \"😗\",\n \";*\": \"😘\",\n \"<3\": \"❤️\",\n}\n\nexport const replaceEmojis = (text: string) => {\n const keys = Object.keys(emojisTable);\n keys.forEach(k => {\n text = text.replace(k, emojisTable[k])\n });\n return text;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"ask-for-payment\",attrs:{\"title\":_vm.$t('Request for an additional payment')}},[_c('b-icon',{attrs:{\"icon\":\"credit-card\",\"variant\":\"primary\",\"aria-hidden\":\"true\"},on:{\"click\":_vm.showDialog}}),_c('b-modal',{ref:\"modal\",attrs:{\"size\":\"lg\",\"title\":_vm.$t('Request for an additional payment')},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.isLoading},on:{\"click\":_vm.submit}},[(_vm.isLoading)?_c('b-icon',{staticClass:\"spinner\",attrs:{\"icon\":\"three-dots\",\"animation\":\"throb\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(\"Submit\"))+\" \")],1),_c('b-button',{staticClass:\"float-right\",attrs:{\"variant\":\"outline-primary\"},on:{\"click\":function($event){return _vm.hide()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Cancel\"))+\" \")])]},proxy:true}])},[_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('b-form-group',{attrs:{\"label\":`${_vm.$t('Amount')}:`,\"label-for\":\"amount\",\"description\":_vm.$t('How many coins are you requesting')}},[_c('b-form-input',{attrs:{\"id\":\"amount\",\"type\":\"number\",\"name\":\"amount\",\"step\":\"0.01\",\"disabled\":_vm.isLoading,\"required\":\"\"},model:{value:(_vm.model.amount),callback:function ($$v) {_vm.$set(_vm.model, \"amount\", $$v)},expression:\"model.amount\"}})],1),_c('b-form-group',{attrs:{\"label\":`${_vm.$t('Description')}:`,\"label-for\":\"description\"}},[_c('b-form-textarea',{attrs:{\"id\":\"description\",\"name\":\"description\",\"disabled\":_vm.isLoading,\"required\":\"\",\"placeholder\":`${_vm.$t('Tell your client what is it you are asking the payment for')}...`},model:{value:(_vm.model.description),callback:function ($$v) {_vm.$set(_vm.model, \"description\", $$v)},expression:\"model.description\"}})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { User } from '@/serviceClients/userWebServices';\nimport * as axios from 'axios';\nimport { AdditionalPaymentRequestStatus } from './messagingWebServices';\n\nconst url = `${process.env.VUE_APP_API_URL}/additionalpaymentrequest`;\n\nexport interface AdditionalPaymentRequest\n{\n id: string;\n fromUserId: string;\n toUserId: string;\n comment: string;\n dateCreated: string;\n dateApproved?: string;\n dateRejected?: string;\n dateFinalApproved?: string;\n amount: number;\n status: AdditionalPaymentRequestStatus;\n toUser?: User;\n fromUser?: User;\n}\nexport interface SaveAdditionalPaymentRequestRequest\n{\n toUserId: string;\n description: string;\n amount: number;\n}\n\nexport function getList(fromUserId: string, toUserId: string) {\n return axios.default.get(`${url}`, {\n params: {\n fromUserId,\n toUserId\n }\n });\n}\n\nexport function create(model: SaveAdditionalPaymentRequestRequest) {\n return axios.default.post(`${url}`, model);\n}\n\nexport function acceptIntoEscrow(id: string) {\n return axios.default.put(`${url}/${id}/accept`);\n}\n\nexport function reject(id: string) {\n return axios.default.put(`${url}/${id}/reject`);\n}\n\nexport function finalApprove(id: string) {\n return axios.default.put(`${url}/${id}/final-approve`);\n}","\nimport { pushError } from \"@/core\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { create } from \"./additionalPaymentRequestWebServices\";\n\n@Component({\n components: {\n }\n})\nexport default class AskForPayment extends Vue {\n @Prop() toUserId!: string;\n\n model = { description: \"\", amount: 100 }\n isLoading = false;\n\n showDialog() {\n (this.$refs['modal'] as any).show();\n this.model = { description: \"\", amount: 100 };\n }\n hide() {\n (this.$refs['modal'] as any).hide();\n }\n submit() {\n if(!this.model.description || !this.model.amount) {\n pushError(this.$t(\"Please enter amount and description\"));\n return;\n }\n this.isLoading = true;\n create({\n toUserId: this.toUserId,\n description: this.model.description,\n amount: this.model.amount\n })\n .then(() => {\n this.hide();\n })\n .finally(() => {\n this.isLoading = false;\n })\n .catch(error => {\n pushError(error.response?.data?.error || error);\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AskForPayment.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AskForPayment.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AskForPayment.vue?vue&type=template&id=6b5dbc15&\"\nimport script from \"./AskForPayment.vue?vue&type=script&lang=ts&\"\nexport * from \"./AskForPayment.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"giphy\"},[_c('b-form-input',{attrs:{\"placeholder\":_vm.$t('Search GIFs...'),\"disabled\":_vm.isSearching},on:{\"update\":_vm.queryChange},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}}),_vm._l((_vm.queryResults),function(gifUrl){return _c('img',{key:gifUrl,attrs:{\"src\":gifUrl,\"width\":\"100%\"},on:{\"click\":function($event){return _vm.handleGif(gifUrl)}}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { pushError } from \"@/core\";\nimport { getLanguage } from \"@/core/translate\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\ntype GiphyResult = {\n data: {\n type: \"gif\";\n embed_url: string;\n images: {\n preview_gif: {\n url: string;\n };\n };\n }[];\n};\n\n@Component\nexport default class Giphy extends Vue {\n @Prop() onImgClick?: (url: string) => any;\n\n query: string = \"\";\n queryResults: string[] = [];\n isSearching = false;\n timeout?: NodeJS.Timeout = undefined;\n\n apiKey = process.env.VUE_APP_GIPHY_API_KEY!;\n\n queryChange(value: string) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() => {\n this.searchGifs();\n }, 1000);\n }\n\n handleGif(url: string) {\n if (this.onImgClick) {\n this.onImgClick(url);\n }\n }\n\n private searchGifs() {\n const lang = getLanguage();\n const giphyUrl = `https://api.giphy.com/v1/gifs/search?api_key=${this.apiKey}&q=${this.query}&limit=25&offset=0&rating=g&lang=${lang}`;\n\n this.isSearching = true;\n fetch(giphyUrl)\n .then((response) => response.json())\n .then((result: GiphyResult) => {\n this.queryResults = result.data.map((x) => x.images.preview_gif.url);\n })\n .finally(() => {\n this.isSearching = false;\n })\n .catch((error) => {\n pushError(error.response?.data?.error || error);\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Giphy.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Giphy.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Giphy.vue?vue&type=template&id=0744ce0f&\"\nimport script from \"./Giphy.vue?vue&type=script&lang=ts&\"\nexport * from \"./Giphy.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.freeCharactersLeft && _vm.freeCharactersLeft > 0)?_c('span',{staticClass:\"active-conversation-messages\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Free characters left: {0}\", [_vm.freeCharactersLeft.toFixed(0)]))+\" \")]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport store from \"@/store\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\n\n@Component\nexport default class ActiveConversationMessages extends Vue {\n @Prop() interlocutorId!: string;\n\n get freeCharactersLeft() {\n return store.state.messaging.conversations[this.interlocutorId].freeCharactersLeft;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActiveConversationMessages.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActiveConversationMessages.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActiveConversationMessages.vue?vue&type=template&id=207f4ae6&\"\nimport script from \"./ActiveConversationMessages.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActiveConversationMessages.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport store from \"../store/index\";\nimport {\n finishConversation,\n Message,\n sendAttachments,\n sendGif,\n sendMessage,\n validateMessage,\n ValidateMessageResult,\n} from \"./messagingWebServices\";\nimport { AccountType } from \"@/register/registerModel\";\nimport { userCanConverse, userHasCoins } from \"./helpers\";\nimport { handleNewSimpleMessage, handleSendMessageResult } from \"./messagingHandlers\";\nimport { Picker } from \"emoji-mart-vue\";\nimport { replaceEmojis } from \"./emojisTable\";\nimport { getBaseServiceUrl } from \"@/helpers/settingsHelper\";\nimport VueUploadComponent from \"vue-upload-component\";\nimport AskForPayment from \"./AskForPayment.vue\";\nimport { pushError } from \"@/core\";\nimport Giphy from \"@/components/Giphy.vue\";\nimport ActiveConversationMessages from \"./ActiveConversationMessages.vue\";\n\n@Component({\n components: {\n Picker,\n VueUploadComponent,\n AskForPayment,\n Giphy,\n ActiveConversationMessages\n },\n})\nexport default class SendMessage extends Vue {\n @Prop() interlocutorId!: string;\n\n form = {\n message: \"\",\n };\n isLoading = false;\n emojiPickerShown = false;\n gifPickerShown = false;\n attachments: VUFile[] = [];\n emojiViewScroll: number = 0;\n\n get isUserClient() {\n return store.getters.module.user!.accountType === AccountType.Client;\n }\n\n get interlocutor() {\n return store.getters.messaging.interlocutorInfo(this.interlocutorId)\n }\n\n get serviceUrl() {\n return getBaseServiceUrl();\n }\n\n toggleEmojiPicker(event: Event) {\n function findPos(obj: HTMLElement): number {\n var curtop = 0;\n if (obj.offsetParent) {\n do {\n curtop += obj.offsetTop;\n } while ((obj = obj.offsetParent as HTMLElement));\n }\n return curtop;\n }\n if (this.userCanConverse) {\n if (!this.emojiPickerShown) {\n this.emojiViewScroll = findPos(event.target as HTMLElement) + 120;\n window.scrollTo(0, this.emojiViewScroll);\n }\n this.emojiPickerShown = !this.emojiPickerShown;\n }\n }\n\n toggleGifPicker() {\n this.gifPickerShown = !this.gifPickerShown;\n }\n\n hidePickers() {\n this.emojiPickerShown = false;\n this.gifPickerShown = false;\n }\n\n addEmoji(emoji: { native: string }) {\n this.form.message += emoji.native;\n }\n\n analyzeText() {\n this.form.message = replaceEmojis(this.form.message);\n }\n\n remove(attachmentId: string) {\n this.attachments = this.attachments.filter((a) => a.id !== attachmentId);\n }\n\n get headers() {\n return {\n authorization: `Bearer ${store.getters.module.user!.token}`,\n };\n }\n\n get userHasCoins() {\n return userHasCoins();\n }\n\n get sendMessageText() {\n if (userCanConverse(this.interlocutorId)) {\n return this.$t(\"Send a new message\");\n }\n\n if (this.isUserClient) {\n if (!this.userHasCoins && !this.isConversationActive) {\n return this.$t(\"You have to top up the coins before conversation.\");\n }\n } else {\n return this.$t(\"Client has not started chatting\");\n }\n }\n\n newline() {\n this.form.message += \"\\n\";\n }\n\n onFinishChatting() {\n finishConversation(this.interlocutorId).catch((error) => {\n pushError(error.response?.data?.error || error);\n });\n }\n\n async onSubmit() {\n await this.sendMessage();\n }\n\n async sendMessage() {\n this.hidePickers();\n this.isLoading = true;\n\n if (this.attachments.length > 0) {\n try {\n const attachmentsResponse = await sendAttachments(\n this.interlocutorId,\n this.attachments.map((a) => a.file))\n\n await handleNewSimpleMessage(attachmentsResponse.data)\n this.attachments = [];\n } catch (error) {\n pushError((error as any).response?.data?.error || error);\n } finally {\n this.isLoading = false\n }\n }\n\n if (this.form.message) {\n \n this.form.message = this.form.message.trim();\n\n const validationResult = await this.validateMessage()\n if (!validationResult) {\n return\n }\n\n const messageToSend = this.form.message\n this.form.message = \"\";\n\n const tempMessage: Message = {\n id: `temp-${Math.round(Math.random() * 100000000)}`,\n content: messageToSend,\n dateSent: new Date().toString(),\n fromUserId: store.getters.module.user!.id,\n toUserId: this.interlocutorId,\n } as Message\n await store.dispatch.messaging.addTempSentMessage({\n message: tempMessage\n })\n\n try {\n const sendMessageResult = await sendMessage(this.interlocutorId, messageToSend)\n await handleSendMessageResult(sendMessageResult.data)\n\n } catch (error) {\n const errorMessage = (error as any).response?.data?.error || error;\n if (errorMessage === \"ClientDoesNotHaveCoins\") {\n pushError(this.$t(\"Client does not have enough coins to cover your message.\"));\n } else if (errorMessage === \"ConversationNotStartedOrClientOffline\") {\n pushError(this.$t(\"Client is offline or conversation has not started.\"));\n } else {\n pushError(errorMessage);\n }\n } finally {\n this.isLoading = false;\n }\n }\n }\n\n async validateMessage(): Promise {\n try {\n const validateResponse = await validateMessage(this.form.message)\n if (validateResponse.data == ValidateMessageResult.MessageContainsContactInformation) {\n const msgBoxConfirmResult = await this.$bvModal.msgBoxConfirm(\n this.$t(\"Providing email or phone number is only allowed if is needed as a part of service. Otherwise all the communication has to go through AssistantLine\").toString(),\n {\n title: this.$t(\"Terms of Service reminder\").toString(),\n size: 'sm',\n buttonSize: 'sm',\n okVariant: 'danger',\n okTitle: this.$t(\"Send anyway\").toString(),\n cancelTitle: this.$t(\"Cancel\").toString(),\n footerClass: 'p-2',\n hideHeaderClose: false,\n centered: true,\n })\n \n return !!msgBoxConfirmResult\n \n } else {\n return true\n }\n } catch (error) {\n return false\n } finally {\n this.isLoading = false\n }\n }\n\n mounted() {\n window.addEventListener(\"scroll\", () => {\n if (this.emojiPickerShown) {\n window.scrollTo(0, this.emojiViewScroll);\n }\n })\n }\n\n sendGif(gifUrl: string) {\n this.hidePickers();\n this.isLoading = true;\n\n sendGif(this.interlocutorId, gifUrl)\n .then((response) => {\n handleNewSimpleMessage([response.data]).catch()\n })\n .finally(() => {\n this.isLoading = false;\n })\n .catch((error) => {\n pushError(error.response?.data?.error || error);\n });\n }\n\n get userCanConverse() {\n return userCanConverse(this.interlocutorId);\n }\n\n get isConversationActive() {\n return store.getters.messaging.isConversationActive(this.interlocutorId)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendMessage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SendMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SendMessage.vue?vue&type=template&id=03fe5ab0&\"\nimport script from \"./SendMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SendMessage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"interlocutor-top-details\"},[_c('span',{staticClass:\"mr-2 interlocutor-name d-inline\"},[_vm._v(\" \"+_vm._s(_vm.interlocutorName)+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from \"vue-property-decorator\";\nimport AssistantDetails from \"@/assistants/Details.vue\";\nimport { DetailsBase } from \"@/assistants/DetailsBase\";\nimport AvailabilityIndicator from \"@/components/AvailabilityIndicator.vue\";\nimport { OnlineStatus } from \"@/serviceClients/userStatusWebServices\";\nimport { getBaseImagesUrl } from \"@/helpers/settingsHelper\";\nimport store from \"@/store\";\n\n@Component({\n components: {\n AssistantDetails,\n AvailabilityIndicator,\n },\n})\nexport default class InterlocutorTopDetails extends DetailsBase {\n @Prop() interlocutorId!: string;\n @Prop() status!: OnlineStatus;\n\n get assistant() {\n return store.getters.messaging.interlocutorInfo(this.interlocutorId);\n }\n\n get interlocutorName() {\n return `${this.assistant?.firstName} ${this.assistant?.lastName[0]}.`\n }\n\n get imagesUrl() {\n return getBaseImagesUrl();\n }\n\n get avatarId() {\n return this.assistant?.photos?.find((p) => true)?.id;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterlocutorTopDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterlocutorTopDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InterlocutorTopDetails.vue?vue&type=template&id=4f60cef6&\"\nimport script from \"./InterlocutorTopDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./InterlocutorTopDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-button',{staticClass:\"primary btn-call\",attrs:{\"disabled\":_vm.isLoading || !_vm.isOtherUserAvailable,\"variant\":\"primary\",\"id\":\"startVideo\"},on:{\"click\":_vm.onClick}},[_c('b-icon',{staticClass:\"video\",attrs:{\"icon\":\"camera-video-fill\"}}),_c('span',[_vm._v(_vm._s(_vm.$t('Call')))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { start } from \"./videoCallWebServices\";\nimport { pushError } from \"@/core\";\n\n@Component\nexport default class StartVideoCall extends Vue {\n @Prop() interlocutorId!: string;\n @Prop() isOtherUserAvailable!: boolean;\n isLoading = false;\n\n onClick() {\n this.isLoading = true;\n\n start(this.interlocutorId)\n .then((response) => {\n this.$router.push(`/conversations/call/${response.data}`).catch(() => { /* noop */ });\n })\n .finally(() => {\n this.isLoading = false;\n })\n .catch((error) => {\n pushError(error.response?.data?.error || error);\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartVideoCall.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartVideoCall.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StartVideoCall.vue?vue&type=template&id=4816bd15&\"\nimport script from \"./StartVideoCall.vue?vue&type=script&lang=ts&\"\nexport * from \"./StartVideoCall.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"message-list\"},_vm._l((_vm.messageList),function(message){return _c('div',{key:message.id,class:`message-list-item ${message.isMine ? 'mine' : 'theirs'}`},[_c('div',{class:`message-list-item-content ${ message.isMine ? 'mine' : 'theirs' }`},[(message.message.isAttachment)?_c('div',{staticClass:\"attachment\"},[_c('span',{staticClass:\"attachment-img\"}),_c('span',{staticClass:\"attachment-text\"},[_vm._v(_vm._s(message.message.attachmentName))]),_c('a',{staticClass:\"attachment-download\",attrs:{\"href\":_vm.attachmentLink(message.message.attachmentBlobName)}})]):(message.message.additionalPaymentRequestId)?_c('div',[_vm._v(\" \"+_vm._s(_vm.getAdditionalPaymentRequestText(message.message))+\" \"),_c('div',{staticClass:\"payment-request\"},[_c('additional-payment-request-details-and-buttons',{attrs:{\"request\":message.message.additionalPaymentRequest}}),_c('div',{staticClass:\"clear\"})],1)]):(message.message.isGif)?_c('img',{staticClass:\"message-img\",staticStyle:{\"width\":\"200px\"},attrs:{\"src\":message.message.gifUrl}}):(_vm.isConversationEnding(message))?_c('p',[_c('i',[_vm._v(_vm._s(_vm.$t(\"Conversation ended\")))])]):_c('p',{staticClass:\"text\"},[_vm._v(_vm._s(message.message.content))]),_c('span',{staticClass:\"date\"},[_vm._v(_vm._s(_vm._f(\"dateFormat\")(new Date(message.message.dateSent),\"YYYY.MM.DD, hh:mm\")))])]),_c('div',{staticClass:\"user-data\"},[(message.isMine)?[_c('assistant-avatar',{attrs:{\"assistant\":_vm.user,\"photoId\":_vm.user.avatarId}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.userName))])]:[_c('assistant-avatar',{attrs:{\"assistant\":_vm.assistant}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.interlocutorName))])]],2)])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"additional-payment-request-details\"},[(_vm.isUserClient && !_vm.isAccepted && !_vm.isRejected)?_c('a',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"btn btn-accept\",attrs:{\"title\":_vm.$t('Confirm transfer of funds into deposit. After you confirm the transaction, funds will be transfered to assistants account.'),\"disabled\":_vm.isLoading},on:{\"click\":_vm.accept}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Accept (deposit)\"))+\" \")]):_vm._e(),(_vm.isUserClient && _vm.isAccepted && !_vm.isFinalAccepted)?_c('a',{staticClass:\"btn btn-finalize\",attrs:{\"disabled\":_vm.isLoading},on:{\"click\":_vm.finalizePayment}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Finalize payment\"))+\" \")]):_vm._e(),(!_vm.isAccepted && !_vm.isRejected)?_c('a',{staticClass:\"btn btn-cancel\",attrs:{\"disabled\":_vm.isLoading},on:{\"click\":_vm.reject}},[_vm._v(\" \"+_vm._s(_vm.isUserClient ? _vm.$t(\"Reject\") : _vm.$t(\"Cancel\"))+\" \")]):_vm._e(),(_vm.isAccepted && !_vm.isFinalAccepted && !_vm.isUserClient)?_c('span',{staticClass:\"status\"},[_vm._v(_vm._s(_vm.$t(\"Pending\")))]):_vm._e(),(_vm.isFinalAccepted)?_c('span',{staticClass:\"status\"},[_vm._v(_vm._s(_vm.$t(\"Paid\")))]):_vm._e(),(_vm.isRejected)?_c('span',{staticClass:\"status\"},[_vm._v(_vm._s(_vm.$t(\"Rejected\")))]):_vm._e(),_c('b-badge',{staticClass:\"amount\",attrs:{\"variant\":\"primary\",\"pill\":\"\"}},[_c('b-icon',{attrs:{\"icon\":\"credit-card\",\"aria-hidden\":\"true\"}}),_vm._v(\" \"+_vm._s(_vm.request.amount)+\" \")],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { pushError } from \"@/core\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { AccountType } from \"../register/registerModel\";\nimport store from \"../store\";\nimport { AdditionalPaymentRequest, getList, reject, acceptIntoEscrow, finalApprove } from \"./additionalPaymentRequestWebServices\";\n\n@Component({\n components: {},\n})\nexport default class AdditionalPaymentRequestDetailsAndButtons extends Vue {\n @Prop() request!: AdditionalPaymentRequest;\n\n get isUserClient() {\n return store.getters.module.user!.accountType === AccountType.Client;\n }\n isLoading = false;\n\n get isAccepted() {\n return !!this.request.dateApproved;\n }\n\n get isRejected() {\n return !!this.request.dateRejected;\n }\n\n get isFinalAccepted() {\n return !!this.request.dateFinalApproved;\n }\n\n get variant() {\n if(this.isFinalAccepted) {\n return \"light\";\n }\n if(this.isRejected) {\n return \"light\";\n }\n return \"\";\n }\n\n mounted() {\n this.$root.$on(\"PaymentRequestSaved\", (request: AdditionalPaymentRequest) => {\n if(this.request.id == request.id) {\n this.request.dateRejected = request.dateRejected;\n this.request.dateApproved = request.dateApproved;\n this.request.dateFinalApproved = request.dateFinalApproved;\n }\n });\n }\n\n accept() {\n this.isLoading = true;\n acceptIntoEscrow(this.request.id)\n .then(() => {\n this.request.dateApproved = new Date().toString();\n })\n .finally(() => {\n this.isLoading = false;\n })\n .catch((error) => {\n if(error?.response?.data?.error === \"InsufficientFunds\") {\n this.$toasted.error(\n this.$t(\"You don't have sufficient funds to pay for this request. Please top up your account.\").toString(),\n {\n position: 'bottom-center',\n action: {\n text: this.$t('Top up coins').toString(),\n onClick: (e, toastObject) => {\n this.$router.push(`/transactions`).catch(() => { /* noop */ });\n toastObject.goAway();\n }\n }\n });\n } else {\n pushError(this.$t(\"An error occured during the payment. Please try again.\").toString());\n }\n });\n }\n\n reject() {\n this.isLoading = true;\n reject(this.request.id)\n .then(() => {\n this.request.dateRejected = new Date().toString();\n })\n .finally(() => {\n this.isLoading = false;\n })\n .catch(error => {\n pushError(error);\n });\n }\n\n finalizePayment() {\n this.isLoading = true;\n finalApprove(this.request.id)\n .then(() => {\n this.request.dateFinalApproved = new Date().toString();\n })\n .finally(() => {\n this.isLoading = false;\n })\n .catch(error => {\n alert(error);\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalPaymentRequestDetailsAndButtons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalPaymentRequestDetailsAndButtons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdditionalPaymentRequestDetailsAndButtons.vue?vue&type=template&id=862d25d8&\"\nimport script from \"./AdditionalPaymentRequestDetailsAndButtons.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdditionalPaymentRequestDetailsAndButtons.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { getBaseImagesUrl, getConversationAttachmentsUrl } from \"@/helpers/settingsHelper\";\nimport store from \"@/store\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { AdditionalPaymentRequestStatus, Message } from \"./messagingWebServices\";\nimport AdditionalPaymentRequestDetailsAndButtons from \"./AdditionalPaymentRequestDetailsAndButtons.vue\";\nimport AssistantAvatar from \"../assistants/AssistantAvatar.vue\";\n\ninterface MessageListItem {\n message: Message,\n isMine: boolean\n}\n\n@Component({\n components: {\n AdditionalPaymentRequestDetailsAndButtons,\n AssistantAvatar\n }\n})\nexport default class MessageList extends Vue {\n @Prop() conversationId!: string;\n\n updated() {\n this.scrollToLatestMessage()\n }\n\n get user() {\n return store.getters.module.user\n }\n get userName() {\n return `${this.user?.firstName} ${this.user?.lastName[0]}.`\n }\n\n get imagesUrl() {\n return getBaseImagesUrl();\n }\n\n get assistant() {\n return store.getters.messaging.interlocutorInfo(this.conversationId);\n }\n\n get interlocutorName() {\n return `${this.assistant?.firstName} ${this.assistant?.lastName[0]}.`\n }\n\n isAttachment(message: MessageListItem) {\n return message.message.attachmentName;\n }\n\n isConversationEnding(message: MessageListItem) {\n return message.message.isConversationEnding;\n }\n\n attachmentLink(blobName: string) {\n return `${getConversationAttachmentsUrl()}${blobName}`;\n }\n\n getAdditionalPaymentRequestText(message: Message) {\n switch(message.additionalPaymentRequestStatus) {\n case AdditionalPaymentRequestStatus.New:\n return `${this.$t(\"New payment request\")}: ${message.additionalPaymentRequest.comment}`;\n case AdditionalPaymentRequestStatus.Approved:\n return `${this.$t(\"Payment request accepted (deposit)\")}: ${message.additionalPaymentRequest.comment}`;\n case AdditionalPaymentRequestStatus.FinalApproved:\n return `${this.$t(\"Payment request approved (paid)\")}: ${message.additionalPaymentRequest.comment}`;\n case AdditionalPaymentRequestStatus.Rejected:\n return `${this.$t(\"Payment request rejected\")}: ${message.additionalPaymentRequest.comment}`;\n\n }\n }\n\n get messageList() : MessageListItem[] {\n const messages: Message[] | undefined =\n store.state.messaging.conversations[this.conversationId]?.messages;\n if (!messages) {\n return [];\n }\n return messages\n .sort((a, b) => {\n return new Date(a.dateSent).getTime() - new Date(b.dateSent).getTime();\n })\n .map((m) => {\n return {\n message: m,\n isMine: m.fromUserId === store.getters.module.user!.id,\n };\n });\n }\n\n private scrollToLatestMessage(): void {\n if (!this.$el.getElementsByClassName) return; // can happen if not yet mounted\n const messagesWindow = this.$el as HTMLElement;\n\n if(!messagesWindow) {\n return\n }\n\n if (messagesWindow.scrollTop === 0 ||\n messagesWindow.scrollHeight -\n messagesWindow.scrollTop -\n messagesWindow.offsetHeight -\n messagesWindow.children[messagesWindow.childElementCount - 1]\n .scrollHeight < 15\n ) {\n messagesWindow.scrollTo(0, messagesWindow.scrollHeight);\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MessageList.vue?vue&type=template&id=4027af4e&\"\nimport script from \"./MessageList.vue?vue&type=script&lang=ts&\"\nexport * from \"./MessageList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"interlocutor-side-details\"},[(!_vm.assistant)?_c('b-icon',{staticClass:\"ml-4\",attrs:{\"icon\":\"three-dots\",\"animation\":\"cylon\",\"font-scale\":\"3\"}}):_c('div',[_c('div',{staticClass:\"top\"},[(_vm.available)?_c('div',{staticClass:\"user-available\"},[_c('i'),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('Available!')))])]):_vm._e(),_c('assistant-avatar',{attrs:{\"userId\":_vm.interlocutorId,\"assistant\":_vm.assistant,\"galleryEnabled\":true}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.interlocutorName))]),_c('rating-stars',{attrs:{\"ratingEnable\":false,\"ratingInfo\":_vm.assistant.userRatingInfo}}),(_vm.isUserClient && _vm.assistant.educationDetails)?_c('div',{staticClass:\"details education\"},[_c('span',{staticClass:\"color-primary\"},[_vm._v(_vm._s(_vm.$t(\"Education\"))+\":\")]),_vm._v(\" \"+_vm._s(_vm.educationLevel)),(_vm.assistant.educationDetails)?_c('span',[_vm._v(\", \"+_vm._s(_vm.assistant.educationDetails))]):_vm._e()]):_vm._e(),(_vm.isUserClient && _vm.assistant.languages && _vm.assistant.languages.length)?_c('div',{staticClass:\"details\"},[_c('span',{staticClass:\"color-primary\"},[_vm._v(_vm._s(_vm.$t(\"Languages\"))+\":\")]),_vm._l((_vm.assistant.languages),function(lang,index){return _c('span',{key:index},[_vm._v(\" \"+_vm._s(_vm.languageName(lang.languageCode))+\" \"+_vm._s(_vm.languageLevel(lang.level))),(index + 1 !== _vm.assistant.languages.length)?[_vm._v(\",\")]:_vm._e()],2)})],2):_vm._e(),_c('div',{staticClass:\"description\",domProps:{\"innerHTML\":_vm._s((_vm.assistant.description || '').replace('\\n', '
') || '')}}),(_vm.isUserClient)?_c('a',{attrs:{\"href\":`/assistant/${_vm.interlocutorId}`}},[_vm._v(_vm._s(_vm.$t(\"See profile\")))]):_vm._e()],1),(_vm.isUserClient)?_c('div',{staticClass:\"bottom\"},[(_vm.cityExists)?_c('span',{staticClass:\"location\"}):_vm._e(),_vm._v(\" \"),(_vm.countryExist)?[_vm._v(_vm._s(_vm.country)+\", \")]:_vm._e(),_vm._v(_vm._s(_vm.assistant.address.city.name)+\" \"),(_vm.assistant.hourlyRate)?_c('span',{staticClass:\"salary\"},[_vm._v(_vm._s(_vm.assistant.hourlyRate)+\" USD/\"),_c('span',{staticClass:\"color-gray\"},[_vm._v(\"h\")])]):_vm._e()],2):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n AssistantInfo,\n} from \"@/assistants/assistantsWebServices\";\nimport { AccountType } from \"@/register/registerModel\";\nimport store from \"@/store\";\nimport { Component, Prop } from \"vue-property-decorator\";\nimport { DetailsBase } from \"../assistants/DetailsBase\";\nimport AssistantAvatar from \"../assistants/AssistantAvatar.vue\";\nimport { displayHeight } from \"@/accountSetup/assistantHeightHelper\";\nimport { OnlineStatus } from \"@/serviceClients/userStatusWebServices\";\nimport { getLanguageName } from \"@/core/translate\";\nimport {EducationLevel, LanguageLevel} from \"@/accountSetup/accountSetupService\";\nimport {getLevelOptionTranslation} from \"@/accountSetup/languageLevelHelper\";\nimport RatingStars from \"@/assistants/RatingStars.vue\";\n\n@Component({\n components: {\n AssistantAvatar,\n RatingStars\n }\n})\nexport default class InterlocutorSideDetails extends DetailsBase {\n @Prop() interlocutor!: AssistantInfo;\n @Prop() interlocutorId!: string;\n @Prop() isInterlocutorActive!: boolean;\n @Prop() status!: OnlineStatus;\n\n get assistant() {\n return store.getters.messaging.interlocutorInfo(this.interlocutorId);\n }\n\n get educationLevel() {\n switch (this.assistant?.educationLevel) {\n case EducationLevel.Higher:\n return this.$t(\"Higher\");\n case EducationLevel.Student:\n return this.$t(\"Student\");\n case EducationLevel.Student:\n return this.$t(\"Other\");\n default:\n return undefined;\n }\n }\n\n languageName(code: string) {\n return getLanguageName(code);\n }\n\n languageLevel(level: LanguageLevel) {\n return getLevelOptionTranslation(this, level);\n }\n\n get interlocutorName() {\n return `${this.assistant?.firstName} ${this.assistant?.lastName[0]}.`\n }\n\n\tget available() {\n\t\treturn this.status === OnlineStatus.Available;\n\t}\n\n get isUserClient() {\n return store.getters.module.user?.accountType === AccountType.Client;\n }\n\n get cityExists() {\n return !!this.assistant?.address?.city\n }\n get countryExist() {\n return !!this.assistant?.address?.country\n }\n get country() {\n return this.assistant?.address?.country === 'PL'? this.$t('Poland'): ''\n }\n\n get height() {\n return displayHeight(this.assistant?.height)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterlocutorSideDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterlocutorSideDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InterlocutorSideDetails.vue?vue&type=template&id=92d68778&\"\nimport script from \"./InterlocutorSideDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./InterlocutorSideDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.requests.length > 0)?_c('div',{staticClass:\"content__padding\"},[_c('b-card',{staticClass:\"additional-payment-list\",attrs:{\"no-body\":\"\",\"header\":_vm.$t('Payment requests')}},[_c('b-list-group',{attrs:{\"flush\":\"\"}},_vm._l((_vm.requests),function(request){return _c('additional-payment-request-list-item',{key:request.id,attrs:{\"request\":request}})}),1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-list-group-item',{attrs:{\"variant\":_vm.variant}},[_vm._v(\" \"+_vm._s(_vm.request.comment)+\" \"),_c('additional-payment-request-details-and-buttons',{attrs:{\"request\":_vm.request}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { pushError } from \"@/core\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { AccountType } from \"../register/registerModel\";\nimport store from \"../store\";\nimport { AdditionalPaymentRequest } from \"./additionalPaymentRequestWebServices\";\nimport AdditionalPaymentRequestDetailsAndButtons from \"./AdditionalPaymentRequestDetailsAndButtons.vue\";\n\n@Component({\n components: {\n AdditionalPaymentRequestDetailsAndButtons\n },\n})\nexport default class AdditionalPaymentRequestListItem extends Vue {\n @Prop() request!: AdditionalPaymentRequest;\n\n get isUserClient() {\n return store.getters.module.user!.accountType === AccountType.Client;\n }\n get isAccepted() {\n return !!this.request.dateApproved;\n }\n\n get isRejected() {\n return !!this.request.dateRejected;\n }\n\n get isFinalAccepted() {\n return !!this.request.dateFinalApproved;\n }\n\n get variant() {\n if(this.isFinalAccepted) {\n return \"light\";\n }\n if(this.isRejected) {\n return \"light\";\n }\n return \"\";\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalPaymentRequestListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalPaymentRequestListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdditionalPaymentRequestListItem.vue?vue&type=template&id=c1e42f0c&\"\nimport script from \"./AdditionalPaymentRequestListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdditionalPaymentRequestListItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { AccountType } from \"../register/registerModel\";\nimport store from \"../store\";\nimport { AdditionalPaymentRequest, getList, reject } from \"./additionalPaymentRequestWebServices\";\nimport AdditionalPaymentRequestListItem from \"./AdditionalPaymentRequestListItem.vue\";\nimport { pushError } from \"@/core\";\n\n@Component({\n components: {\n AdditionalPaymentRequestListItem\n },\n})\nexport default class AdditionalPaymentRequestList extends Vue {\n @Prop() interlocutorId!: string;\n\n model = { description: \"\", amount: 100 };\n isLoading = false;\n requests: AdditionalPaymentRequest[] = [];\n\n get isUserClient() {\n return store.getters.module.user!.accountType === AccountType.Client;\n }\n\n loadData() {\n const assistantId = store.getters.module.user!.accountType == AccountType.Assistant\n ? store.getters.module.user!.id : this.interlocutorId;\n const clientId = assistantId == this.interlocutorId ? store.getters.module.user!.id : this.interlocutorId;\n this.isLoading = true;\n getList(assistantId, clientId)\n .then((response) => {\n this.requests = response.data;\n })\n .finally(() => {\n this.isLoading = false;\n })\n .catch(error => {\n pushError(error.response?.data?.error || error);\n });\n }\n\n mounted() {\n this.loadData();\n\n this.$watch(() => this.interlocutorId, () => {\n this.loadData();\n });\n\n this.$root.$on(\"PaymentRequestSaved\", (request: AdditionalPaymentRequest) => {\n const alreadyExisting = this.requests.find(r => r.id == request.id);\n if(!alreadyExisting) {\n this.requests.unshift(request);\n } else {\n alreadyExisting.dateRejected = request.dateRejected;\n alreadyExisting.dateApproved = request.dateApproved;\n alreadyExisting.dateFinalApproved = request.dateFinalApproved;\n }\n store.dispatch.module.loadBalance().catch(() => { /* noop */ });\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalPaymentRequestList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalPaymentRequestList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdditionalPaymentRequestList.vue?vue&type=template&id=8f8dba04&\"\nimport script from \"./AdditionalPaymentRequestList.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdditionalPaymentRequestList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { getBaseImagesUrl } from \"@/helpers/settingsHelper\";\nimport store from \"@/store\";\nimport SendMessage from \"./SendMessage.vue\";\nimport InterlocutorTopDetails from \"./InterlocutorTopDetails.vue\";\nimport callOnInterval from \"../helpers/callOnInterval\";\nimport { onlineStatus, OnlineStatus } from \"@/serviceClients/userStatusWebServices\";\nimport StartVideoCall from \"./StartVideoCall.vue\";\nimport { AccountType } from \"@/register/registerModel\";\nimport AssistantDetails from \"@/assistants/Details.vue\";\nimport MessageList from \"@/messaging/MessageList.vue\";\nimport InterlocutorSideDetails from \"./InterlocutorSideDetails.vue\";\nimport AdditionalPaymentRequestList from \"./AdditionalPaymentRequestList.vue\";\nimport { pushError } from \"@/core\";\nimport { userHasCoins } from \"./helpers\";\nimport AssistantAvatar from \"@/assistants/AssistantAvatar.vue\";\n\n@Component({\n components: {\n SendMessage,\n StartVideoCall,\n InterlocutorTopDetails,\n AssistantDetails,\n InterlocutorSideDetails,\n MessageList,\n AdditionalPaymentRequestList,\n AssistantAvatar\n },\n})\nexport default class ConversationDetails extends Vue {\n @Prop() interlocutorId!: string;\n\n // property isn't reactive if undefined :( hence null\n clearStatusInterval: () => void = () => {};\n clearActivityInterval: () => void = () => {};\n otherUserStatus: OnlineStatus = OnlineStatus.Offline;\n\n personDataShown = false\n isLoading = true;\n message = \"\";\n\n get interlocutor() {\n return store.getters.messaging.interlocutorInfo(this.interlocutorId)\n }\n\n get interlocutorName() {\n return `${this.interlocutor?.firstName} ${this.interlocutor?.lastName[0]}.`\n }\n\n onClickToggleUserData() {\n this.personDataShown = !this.personDataShown\n }\n\n get isLoggedInAsAssistant() {\n return store.getters.module.user?.accountType === AccountType.Assistant;\n }\n\n get isUserClient() {\n return store.getters.module.user!.accountType === AccountType.Client;\n }\n\n get userHasCoins() {\n return userHasCoins();\n }\n\n get chargedCoins() {\n return store.state.messaging.conversations[this.interlocutorId]?.chargedCoins;\n }\n\n get imagesUrl() {\n return getBaseImagesUrl()\n }\n\n async mounted() {\n await this.onIdChanged()\n }\n\n get isOtherUserAvailable() {\n return this.otherUserStatus === OnlineStatus.Available;\n }\n\n beforeDestroy() {\n this.clearStatusInterval();\n this.clearActivityInterval();\n }\n\n @Watch(\"interlocutorId\")\n async onIdChanged() {\n store.commit.module.setActiveModuleName(this.$t(\"Messages\"));\n this.clearStatusInterval();\n\n this.scrollMessageListToEnd();\n this.isLoading = true;\n\n await store.dispatch.messaging.loadConversation({ interlocutorId: this.interlocutorId })\n store.commit.module.setActiveModuleName(`${this.interlocutor?.firstName} ${this.interlocutor?.lastName} - ${this.$t('Messages')}`);\n\n this.scrollMessageListToEnd();\n this.isLoading = false;\n\n try {\n this.startMonitoringUserStatus();\n } catch (error) {\n pushError(error.response?.data?.error || error, {\n title: this.$t(\"An error occurred while fetching data\"),\n });\n }\n }\n\n startMonitoringUserStatus() {\n this.clearStatusInterval = callOnInterval(\n () => {\n if (!this.interlocutorId || !this.interlocutor) {\n return Promise.resolve({\n data: OnlineStatus.Offline,\n status: 200,\n statusText: \"\",\n config: {},\n headers: undefined,\n });\n }\n return onlineStatus(this.interlocutorId);\n },\n 2000,\n (status) => {\n this.otherUserStatus = status;\n }\n );\n }\n\n async startVideoCall() {\n await this.$router.push(`/call/${this.interlocutorId}`);\n }\n\n private scrollMessageListToEnd() {\n const messagesWindow = this.$el.getElementsByClassName(\n \"message-list\"\n )[0] as HTMLElement;\n messagesWindow.scrollTo(0, messagesWindow.scrollHeight);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConversationDetails.vue?vue&type=template&id=fc57c85c&\"\nimport script from \"./ConversationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConversationDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('b-list-group',_vm._l((_vm.conversationList),function(conversation){return _c('b-list-group-item',{key:conversation.interlocutorId,attrs:{\"active\":conversation.interlocutorId === _vm.activeConversationId,\"to\":`/conversations/${conversation.interlocutorId}`}},[_c('conversation-list-item-view',{attrs:{\"conversation\":conversation}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"conversation-list-item\"},[_c('img',{staticClass:\"card-img\",attrs:{\"src\":`${_vm.imagesUrl}${_vm.interlocutorAvatarId || 'default'}_150px.jpg`}}),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"name\"},[_vm._v(\" \"+_vm._s(_vm.interlocutorName)+\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasUnreadMessage),expression:\"hasUnreadMessage\"}]})]),_c('div',{staticClass:\"text\"},[_c('span',{class:`d-none d-sm-block last-message ${ _vm.hasUnreadMessage ? 'unread' : ''}`},[_vm._v(_vm._s(_vm.lastMessageContent))]),_c('span',{staticClass:\"data\"},[_vm._v(_vm._s(_vm._f(\"dateFormat\")(_vm.dateOfLastMessage,_vm.formatDate)))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { ConversationListItem } from \"./messagingWebServices\";\nimport { getBaseImagesUrl } from \"../helpers/settingsHelper\";\n\n@Component\nexport default class ConversationListItemView extends Vue {\n @Prop() conversation!: ConversationListItem;\n\n get hasUnreadMessage() {\n return this.conversation.unreadMessages > 0\n }\n\n get imagesUrl() {\n return getBaseImagesUrl();\n }\n\n get formatDate() {\n return new Date(this.dateOfLastMessage).toDateString() ===\n new Date().toDateString()\n ? \"hh:mm\"\n : \"DD.MM\";\n }\n\n get dateOfLastMessage() {\n return new Date(this.conversation.lastMessageDateSent);\n }\n\n get lastMessageContent() {\n if(this.conversation.lastMessageIsConversationEnding) {\n return this.$t(\"Conversation ended\");\n }\n\n if (this.conversation.lastMessageIsAttachment) {\n return `(${this.$t(\"attachment\")})`;\n }\n\n if (this.conversation.lastMessageIsConversationEnding) {\n return 'gif';\n }\n\n return this.conversation.lastMessageContent;\n }\n\n get interlocutorName() {\n return `${this.conversation?.interlocutorFirstName} ${this.conversation?.interlocutorLastName[0]}.`\n }\n\n get interlocutorAvatarId() {\n return this.conversation.interlocutorAvatarId;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationListItemView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationListItemView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConversationListItemView.vue?vue&type=template&id=25dee228&\"\nimport script from \"./ConversationListItemView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConversationListItemView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { getBaseImagesUrl } from \"../helpers/settingsHelper\";\nimport ConversationListItemView from \"./ConversationListItemView.vue\";\nimport { pushError } from \"@/core\";\nimport store from \"@/store\";\n\n@Component({\n components: {\n ConversationListItemView,\n },\n})\nexport default class ConversationList extends Vue {\n isLoading = true;\n\n get activeConversationId() {\n return this.$route.params.id;\n }\n\n get conversationList() {\n return store.state.messaging.conversationListItems.sort(\n (a, b) =>\n new Date(b.lastMessageDateSent).getTime() -\n new Date(a.lastMessageDateSent).getTime()\n );\n }\n\n get imagesUrl() {\n return getBaseImagesUrl();\n }\n\n async mounted() {\n this.isLoading = true;\n try {\n await store.dispatch.messaging.loadConversationListItems()\n } catch (error) {\n pushError(error.response?.data?.error || error, {\n title: this.$t(\"An error occurred while fetching data\"),\n });\n } finally {\n this.isLoading = false;\n const isLowResultion = window.innerWidth < 768;\n\n if (!this.$route.params.id && this.conversationList.length && !isLowResultion) {\n await this.$router.push(`/conversations/${this.conversationList[0].interlocutorId}`)\n }\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConversationList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConversationList.vue?vue&type=template&id=c9820fcc&\"\nimport script from \"./ConversationList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConversationList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"conversations\"},[_c('div',{staticClass:\"conversations__assistants-list\"},[(!_vm.isUserAssistant)?_c('AssistantSlider',{attrs:{\"type\":\"active\"}}):_vm._e()],1),_c('div',{staticClass:\"conversations__content\"},[_c('div',{staticClass:\"btn btn-primary btn-show-conversations-list\",on:{\"click\":_vm.onClickToggleConversations}},[_c('b-icon',{attrs:{\"icon\":\"list\"}})],1)]),_c('div',{staticClass:\"conversations__content\"},[_c('div',{class:`conversation-list-container ${!_vm.isConversationActive ? 'active' : ''}`},[(!!_vm.assistantSearchRedirectUrl)?_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":() => { _vm.$router.push(_vm.assistantSearchRedirectUrl) }}},[_c('b-icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"arrow-left\"}}),_vm._v(_vm._s(_vm.$t(\"Back to assistants\"))+\" \")],1):_vm._e(),_c('conversation-list',{staticClass:\"conversation-list\",class:{ 'is-shown': _vm.conversationListIsShown }})],1),(_vm.$route.params.id)?_c('conversation-details',{staticClass:\"conversation-details\",attrs:{\"interlocutorId\":_vm.$route.params.id}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\";\nimport ConversationList from \"@/messaging/ConversationList.vue\";\nimport ConversationDetails from \"@/messaging/ConversationDetails.vue\";\nimport Component from \"vue-class-component\";\nimport store from \"@/store\";\nimport AssistantSlider from \"@/home/AssistantSlider.vue\";\nimport {AccountType} from \"@/register/registerModel\";\n\n@Component({\n components: {\n ConversationList,\n ConversationDetails,\n AssistantSlider\n },\n})\nexport default class Conversations extends Vue {\n conversationListIsShown = false;\n\n get isUserAssistant() {\n return store.getters.module.user?.accountType === AccountType.Assistant;\n }\n\n get isConversationActive() {\n return !!this.$route.params.id;\n }\n\n get assistantSearchRedirectUrl() {\n return store.getters.module.assistantSearchUrlToRedirect\n }\n\n onClickToggleConversations() {\n this.conversationListIsShown = !this.conversationListIsShown\n\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Conversations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Conversations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Conversations.vue?vue&type=template&id=24ade014&\"\nimport script from \"./Conversations.vue?vue&type=script&lang=ts&\"\nexport * from \"./Conversations.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"availability-indicator\"},[(_vm.available)?_c('b-icon',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"icon\":\"circle-fill\",\"variant\":\"success\",\"title\":_vm.$t('Available')}}):_vm._e(),(_vm.busy)?_c('b-icon',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"icon\":\"circle-fill\",\"variant\":\"danger\",\"title\":_vm.$t('Busy')}}):_vm._e(),(_vm.offline)?_c('b-icon',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"icon\":\"circle-fill\",\"variant\":\"dark\",\"title\":_vm.$t('Offline')}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { OnlineStatus } from \"@/serviceClients/userStatusWebServices\";\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\n\n@Component\nexport default class AvailabilityIndicator extends Vue {\n @Prop() status!: OnlineStatus;\n\n get available() {\n return this.status === OnlineStatus.Available;\n }\n\n get busy() {\n return this.status === OnlineStatus.Busy;\n }\n\n get offline() {\n return this.status === OnlineStatus.Offline;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityIndicator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityIndicator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AvailabilityIndicator.vue?vue&type=template&id=0acb9c00&\"\nimport script from \"./AvailabilityIndicator.vue?vue&type=script&lang=ts&\"\nexport * from \"./AvailabilityIndicator.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('main',[_c('section',{staticClass:\"section-bg call-section\"},[_c('b-container',{staticClass:\"h-100\"},[(!!_vm.interlocutorId)?_c('jitsi',{attrs:{\"interlocutorId\":_vm.interlocutorId,\"videoCallId\":_vm.$route.params.videoCallId}}):_vm._e()],1)],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{attrs:{\"id\":\"meet\"}})])\n}]\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport store from \"../store/index\";\nimport { ping, end } from \"../messaging/videoCallWebServices\";\nimport { getJitsiDomain } from \"../helpers/settingsHelper\";\n\ndeclare const JitsiMeetExternalAPI: any;\n\n@Component\nexport default class Jitsi extends Vue {\n @Prop() private interlocutorId!: string;\n @Prop() private videoCallId!: string;\n\n private api: any | undefined = undefined;\n private pingIntervalHandle: NodeJS.Timeout | undefined = undefined;\n private readonly pingIntervalInSeconds = 5;\n\n async mounted() {\n await (Vue as any).loadScript('https://meet.jit.si/external_api.js');\n\n const maxHeight = 700;\n const domain = getJitsiDomain();\n const options = {\n roomName: this.videoCallId,\n configOverwrite: {\n disableDeepLinking: true,\n },\n interfaceConfigOverwrite: {\n MOBILE_APP_PROMO: false,\n HIDE_INVITE_MORE_HEADER: true,\n RECENT_LIST_ENABLED: false,\n SHOW_JITSI_WATERMARK: false,\n DISABLE_PRESENCE_STATUS: true,\n DISPLAY_WELCOME_PAGE_CONTENT: false,\n ENABLE_DIAL_OUT: false,\n filmStripOnly: false,\n GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,\n INITIAL_TOOLBAR_TIMEOUT: 1,\n SHOW_POWERED_BY: false,\n SHOW_WATERMARK_FOR_GUESTS: false,\n },\n width: this.$el.clientWidth,\n height:\n this.$el.clientWidth > maxHeight ? maxHeight : this.$el.clientWidth,\n parentNode: document.querySelector(\"#meet\"),\n userInfo: {\n displayName: store.getters.module.user!.firstName,\n },\n };\n this.api = new JitsiMeetExternalAPI(domain, options);\n this.api.addEventListener(\"videoConferenceLeft\", () => {\n this.$toasted.info(\"Call ended\", { duration: 2000 });\n this.$router.push(`/conversations/${this.interlocutorId}`).catch(() => { /* noop */ });\n });\n this.api.addEventListener(\"participantLeft\", () => {\n this.$toasted.info(\"Call ended by the other person\", { duration: 2000 });\n this.$router.push(`/conversations/${this.interlocutorId}`).catch(() => { /* noop */ });\n });\n\n this.startPinging();\n }\n\n beforeDestroy() {\n if (this.pingIntervalHandle) {\n clearInterval(this.pingIntervalHandle);\n }\n this.api.dispose();\n end(this.videoCallId).then(() => {\n store.dispatch.module.loadBalance().catch(() => { /* noop */ });\n }).catch(() => { /* better stay silent */ });\n }\n\n startPinging() {\n this.pingIntervalHandle = setInterval(\n () => this.performPing(),\n this.pingIntervalInSeconds * 1000\n );\n }\n\n performPing() {\n const numberOfParticipants = this.api.getNumberOfParticipants();\n if (numberOfParticipants > 1) {\n ping(this.videoCallId).catch(() => { /* no need to bother user here */ });\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Jitsi.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Jitsi.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Jitsi.vue?vue&type=template&id=7492650f&\"\nimport script from \"./Jitsi.vue?vue&type=script&lang=ts&\"\nexport * from \"./Jitsi.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport ConversationList from \"@/messaging/ConversationList.vue\";\nimport ConversationDetails from \"@/messaging/ConversationDetails.vue\";\nimport Jitsi from \"@/components/Jitsi.vue\";\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\nimport { callDetails } from \"@/messaging/videoCallWebServices\";\nimport store from \"@/store\";\nimport {\n AssistantInfo,\n getAssistantInformation,\n} from \"@/assistants/assistantsWebServices\";\nimport { pushError } from \"../core\";\n\n@Component({\n components: {\n ConversationList,\n ConversationDetails,\n Jitsi,\n },\n})\nexport default class Call extends Vue {\n private interlocutorId: string | null = null;\n interlocutor: AssistantInfo | null = null;\n\n mounted() {\n store.commit.module.setActiveModuleName(this.$t(\"Video call\"));\n\n callDetails(this.$route.params.videoCallId)\n \n .then((response) => {\n const userId = store.getters.module.user!.id;\n this.interlocutorId =\n response.data.fromUserId === userId\n ? response.data.toUserId\n : response.data.fromUserId;\n\n return this.loadAssistantInfo(this.interlocutorId);\n })\n .catch((error) => {\n pushError(error.response?.data?.error || error);\n });\n }\n\n private loadAssistantInfo(interlocutorId: string) {\n return getAssistantInformation(interlocutorId).then((response) => {\n this.interlocutor = response.data;\n store.commit.module.setActiveModuleName(\n `${this.interlocutor?.firstName} ${\n this.interlocutor?.lastName\n } - ${this.$t(\"Video call\")}`\n );\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Call.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Call.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Call.vue?vue&type=template&id=2c1751cd&\"\nimport script from \"./Call.vue?vue&type=script&lang=ts&\"\nexport * from \"./Call.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import * as axios from 'axios';\nimport { User } from './messagingWebServices';\n\nconst url = `${process.env.VUE_APP_API_URL}/videoCall`;\n\nexport interface VideoCallModel{\n fromUserId: string;\n toUserId: string;\n isEndedAndBilled: boolean;\n}\nexport interface IncomingCallModel\n{\n fromUser: User;\n videoCallId: string;\n}\n\nexport function start(interlocutorId: string) {\n return axios.default.post(`${url}/${interlocutorId}`);\n}\n\nexport function callDetails(videoCallId: string){\n return axios.default.get(`${url}/${videoCallId}`);\n}\n\nexport function ping(videoCallId: string) {\n return axios.default.put(`${url}/${videoCallId}/ping`);\n}\n\nexport function end(videoCallId: string) {\n return axios.default.put(`${url}/${videoCallId}/end`);\n}\n"],"sourceRoot":""}