{"version":3,"sources":["bera.js","init.site.js","app.site.js","services.site.js","dir.article-list.js","ctrl.article-meta.js","ctrl.auth-link.js","ctrl.comment-button.js","ctrl.comment-list.js","ctrl.course-enrollments.js","ctrl.course-modules.js","ctrl.course-offers.js","ctrl.course-offers-new.js","ctrl.course-platform-stream.js","ctrl.course-stream.js","ctrl.course-video.js","ctrl.footerlinks.js","dir.compare-to.js","dir.credit-card-mask.js","dir.ng-avatar-input.js","dir.ng-cast-integer.js","dir.ng-cep.js","dir.ng-cnpj.js","dir.ng-content-editable.js","dir.ng-cpf.js","dir.ng-enter.js","dir.ng-focus.js","dir.ng-fullname.js","dir.ng-group-select.js","dir.ng-image-input.js","dir.ng-input-slug.js","dir.ng-input-suggest.js","dir.ng-input-video-extract.js","dir.ng-post-select.js","dir.ng-rich-text.js","dir.ng-select-collection.js","dir.ng-tag-input.js","dir.ng-username.js","dir.ng-website.js","dir.regex-mask.js","dir.snippet-custom-crop.js","ctrl.headerlinks.js","ctrl.image-crop-rectangle.js","ctrl.image-crop-square.js","ctrl.invite-box.js","ctrl.ivs-player.js","ctrl.list-itens.js","ctrl.main-banner.js","ctrl.modal-give-hardware-access.js","ctrl.modal-stream-hardware-settings.js","ctrl.monthFilter.js","ctrl.new-questions-nps.js","ctrl.nps-modal.js","ctrl.platform-stream.js","ctrl.post-actions.js","ctrl.recipe-description.js","ctrl.recipe-infos.js","ctrl.recipe-ingredients.js","ctrl.recipe-pictures.js","ctrl.recipe-stage-step.js","ctrl.recipe-stages.js","ctrl.recorded-video.js","ctrl.send-feedback.js","ctrl.share-buttons.js","ctrl.snippet-bio-card.js","ctrl.snippet-blog-list.js","ctrl.snippet-post-list.js","ctrl.snippet-user-list.js","ctrl.tag-list.js","ctrl.user-counters.js","ctrl.user-follow.js","ctrl.user-share.js","helper.timeSince.js","jquery.PageScrollIndicator.js","jquery.articleShareOptions.js","jquery.loadmore.js","jquery.responsiveVideos.js","ng-confirm.js","ng-pagination.js","ctrl.articles.js","init.article.js","ctrl.user.js","ctrl.search.js"],"names":["w","d","s","window","localStorage","getItem","bera","bera_url","socket","ls","gss","gsu","signedUser","JSON","parse","_addJS","path","h","getElementsByTagName","j","createElement","async","src","parentNode","insertBefore","_addCSS","rel","type","href","appendChild","_bcp","_bcsetup","project_id","shared_page_id","bcp","main_page_id","shared_posts","host","location","metrics_endpoint","metrics_database","Metrics","json","ogss","ogsu","read_tag","document","getElementById","author_tag","action_tag","getElementsByClassName","init","revalidateSession","createJSON","session","sendData","stringify","postData","save","req","createXMLHTTPObject","open","config","setRequestHeader","onreadystatechange","readyState","status","setItem","send","err","replace","projectid","in_database","in_version","userid","value","customer","contact","in_referer_time","last","in_session_count","count","in_session_start","start","in_session_elapsed","elapsed","in_session_last","last_session","in_visit","visit","in_view_count","url","pathname","referer","resolution","screen","availWidth","availHeight","language","navigator","userLanguage","body","getAttribute","abtest","undefined","author","read_tag_visible","tg_read","local_origin","parent","referrer","_qsget","length","utmca","utm_campaign","utmso","utm_source","utmco","utm_content","utmme","utm_medium","utmte","utm_term","gclid","gclsrc","Object","keys","landing","bck","indexOf","in_arrive","ms","referral_user","nvgGetSegment","gender","age","education","marital","income","connection","everyone","city","region","country","interest","product","brand","career","everybuyer","nvg_gender","nvg_age","nvg_education","nvg_marital","nvg_income","nvg_connection","nvg_everyone","nvg_city","nvg_region","nvg_country","nvg_interest","nvg_product","nvg_brand","nvg_career","nvg_everybuyer","e","ts","Date","getTime","gss_expires","gsu_expires","_uniq","expires","parseInt","_bmsession","last_visit","read_tag_posY","test","top","tagName","toLowerCase","offsetTop","offsetParent","mode","vpH","st","calibrate","y","res","de","documentElement","innerWidth","innerHeight","isNaN","clientHeight","pageYOffset","Math","max","scrollTop","_bmtrack","removeEventListener","addEventListener","prop","json_update","k","linkListener","attribute","i","n","field","_hideSurvey","id","Survey","_surveyJobs","survey_inserteds","job","validateShow","rule","users","userIds","user_id","surveyStage","push","cod","validCod","tmp","atob","split","index","console","log","iframe","survey","className","survey_head","color","survey_footer","survey_call","survey_html","iframe_insert","firstChild","contentWindow","write","close","XMLHttpFactories","XMLHttpRequest","ActiveXObject","xmlhttp","uuid","performance","now","memory","totalJSHeapSize","usedJSHeapSize","jsHeapSizeLimit","userAgent","c","r","random","floor","toString","name","regex","RegExp","results","exec","decodeURIComponent","metrics","App","toast","t","error","Materialize","toastError","$","addClass","authToken","app","angular","module","$translateProvider","translations","settings","translate","determinePreferredLanguage","hasOwnProperty","useSanitizeValueStrategy","useMissingTranslationHandler","factory","translationID","uses","constant","protocol","hostname","$sceDelegateProvider","resourceUrlWhitelist","$compileProvider","debugInfoEnabled","showGroupActions","each","group","inProtectView","hasClass","groupId","attr","userData","find","groups","signup_pending","currentCookie","cookie","removeClass","can_create_posts","hash","reload","openFAB","sideNav","menuWidth","edge","closeOnClick","draggable","position","click","toggleClass","hide","setSideNav","width","acc","classList","toggle","panel","nextElementSibling","style","maxHeight","scrollHeight","$win","$sideNavSlideOut","on","event","has","target","is","resize","sidebar_width","wrap","row_width","new_sidebar","new_left","diff","css","animate","left","offset","trigger","leanModal","tooltip","show","setTimeout","video","ifrmae","after","height","allowfullscreen","frameborder","remove","headerSearchBar","callSearch","callSearchStatus","callSearchStatusSearch","callSearchStatusClose","closeSideNav","sideNavOverlay","slideToggle","focus","carouselButton","carouselButtonPrev","carouselButtonNext","append","scroll","display","delegate","showMore","showMoreContent","showMoreIcon","biocard","biocard_control","biocard_hide_control","clearTimeout","biocardUser","biocardHtml","get","resp","html","unserialize","params","pieces","pair","l","initMaterialize","material_select","characterCounter","collapsible","tabs","getNextPage","finalPage","fixSidebar","sideInitial","sidebar_obj","sidebar_height","direction","bottom","dataURLtoFile","dataurl","arr","mime","match","bstr","u8arr","Uint8Array","charCodeAt","extArr","filename","File","String","prototype","toCamelCase","str","parts","charAt","toUpperCase","substring","TXT","appCtrl","$scope","$translate","$window","PROJECT_PATH","USER_PATH","Api","$timeout","$cookies","ROLES","$rootScope","ngProgressFactory","$http","then","result","ADM","label","EDITOR","OWNER","USR","month","getMonth","coininserted","readings","initiateFirebaseMessage","serviceWorkerRegistration","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","firebase","initializeApp","messaging","useServiceWorker","requestPermission","getToken","vapidKey","currentToken","currentUser","fcm_token","post","token","catch","serviceWorker","register","reg","info","deferredPrompt","isIOS","monthly_readings","image_path","user_path","articleIsVoted","loaded","progressbar","createInstance","ApiCallsRequested","$fixLogoMobile","linkMatch","contentType","question","link","list","raw","recipe","$on","complete","errorMessages","text","show_write_button","show_write_edit","BCSETUP","project_data","communityPrivacy","policies","community_privacy","warning","slideDown","change_title","title","back","header_title","parents","header_back","setDataAuth","data","setDate","getDate","put","openConpass","conpass","lang","script","onload","conpassObj","email","Conpass","startFlow","head","showFB","user","authenticated","isadmin","role","courses","is_group_adm","is_course_adm","tags","btoa","join","domain","image","avatar","response","phoneAuthentication","element","logout","clear","removeLocal","removeItem","banned","completeProfileSaving","completeProfile","payload","Form","slug","$setValidity","$invalid","userFields","user_fields","fieldKey","$$controls","$name","$modelValue","error_code","control","invite","emails","inputEmail","ev","err_max","keyCode","invitemail","trim","removeEmail","splice","sendInvite","closeModal","USER_INVITE_FAIL","newWindow","PopupCenter","dualScreenLeft","screenLeft","screenX","dualScreenTop","screenTop","screenY","clientWidth","openPopupOrModal","isChrome","chrome","webstore","isIE","documentMode","isEdge","StyleMedia","isMobileDevice","orientation","colorContrast","textXL","accessibility_control","changeUser","openInbox","openMessages","new_messages","show_withdrawal","showEmailConfirmationBar","syncDataCall","sendInvites","syncData","action","ret","pending_email_verification","unread_total","conversations","conversationKey","map","participants","dispatcher","p","header_conversations","header_messages","appcookie","_t","substr","phone_number","newuser","fields","openForm","filter","f","value_exists","project_has_access","user_value","is_required","sort","a","b","openModal","dismissible","$watch","queryString","search","tokenLogin","newCommunity","subscribeCourse","emailSignup","loadingMailLogin","authentication_token","project_hash","redirectUrl","redirect_url","newUrl","URL","searchParams","delete","next","current","reloadNow","closeWindowLogin","origin","urlRedirect","message","onpopstate","exp","closed","first","prsd","date","closePaywall","paywallbarclosed","authModal","encodeURIComponent","ready","history","pushState","resendVerificationEmail","openCrop","file","modal","reader","FileReader","onloadend","$apply","cropper","extension","pop","sourceImage","croppedImage","readAsDataURL","openMessage","user_image","translationId","userMessage","USER_INVALID_EMPTY_MESSAGE","message_sent","ifr","firstElementChild","navbar","navigation","slide_out","sub_nav","querySelector","newHeight","newTop","close_sidenav","marginTop","visibility","hideTooltipWrite","showInstallPrompt","prompt","formSearchSubmit","encodeURI","showPopCookies","checkCookies","acceptCookies","$inject","unsubscribeCtrl","digest_id","mail_settings","isDisabled","stripHttp","item","stripHtml","controller","directive","require","scope","ngModelCtrl","fromUser","transformedInput","$setViewValue","$render","$parsers","ngModel","REGEX_DOMAIN","$validators","invalid_custom_url","input","$isEmpty","API","$q","$filter","$exceptionHandler","request","method","moduleFunction","canceler","defer","$broadcast","timeout","promise","codeMessage","errorCode","msg","error_id","error_message","stack","Error","details","error_details","detail","cancel","resolve","interceptor","$location","headers","Authorization","siteid","formNotify","form","errors","forEach","$error","errorType","m","errorLabel","$$attr","errorText","logErrorModel","$injector","myExceptionHandler","exception","cause","http","devicePixelRatio","typeError","event_type","event_data","$httpProvider","interceptors","$compile","page","totalRecords","recordsPerPage","totalPages","page_id","hasPosts","pageid","haveMoreArticle","urlforloadmore","welcome","getNumbersOfArticle","article_count","ceil","groupLoadMore","skip","loadmore","paginationNext","loc","currentPath","newvalue","oldvalue","groupSignup","brk","group_id","$parent","navGroup","groupSlug","restrict","elm","args","ngArticleMeta","timeSince","publishDate","humanTime","readTime","template","checkauth","bind","counter","ngCommentButton","plural","comment_total_show","comment_order","isCourseAdmin","isCourse","article_id","commentList","$anchorScroll","comment_author_image","staticUrl","showReplyIndex","up_comment","reply","canHide","addComment","commentText","comment","isReply","comment_id","replyText","$commentcounter","newComment","_id","author_name","created","dwvote","upvote","replies","reply_limit","reply_total","hasBmtrack","comment_replies","comments","unshift","openReplyForm","syncComments","comment_page","comment_partial","comment_total","loadingMoreComments","lastCommentTime","listComment","total","countComments","getCommentsSince","commentTime","since","toISOString","requestTotal","newComments","some","oldComment","mergeRepliesAsChildren","newReplies","fatherComment","showReply","replyForm","val","loadMore","commentUpvote","bmtrackId","vote","hideComment","hasReplies","repliesLength","courseModules","modules","escape","courseVideo","video_src","course","apiPathmonetization","courseloading","currentTab","monetizations","isEditOffer","link2offer","link2CartOffer","newOffer","haveAnAffiliate","monetization","ngInit","courseId","getAllPricingForCurrentCourse","toogleOffer","copy2clipboard","el","setAttribute","selected","getSelection","rangeCount","getRangeAt","select","execCommand","removeChild","removeAllRanges","addRange","products","enabled","setNewOffer","newUser","editOffer","linkOffer","product_id","removeOffer","primary","changes","offer","courses_group","payment_methods","selectClass","defaultMonetization","payment_type","currency","description","entity_id","installments_allowed","teste_period","interval_count","isMonetizationPrimary","amount_value","amount","trial_days","override_entity_status","course_group_id","affiliate_user","company","affiliate_percentage_value","loadCoursesGroup","preAddUser","changeIntervalCount","intervalCount","payment_bank","checkPaymentMethod","installments","savePaymentModal","changeClass","saveOffer","entity_type","round","affiliate_user_id","removePayment","model","copyClipboard","$observe","links","listLinks","otherModelValue","attributes","compareTo","modelValue","$validate","attrs","ctrl","clearValue","rawValue","slice","format","cleanValue","formatedValue","$formatters","formatter","parser","formattedValue","$viewValue","Upload","url_image","events","cropHost","wrap_w","ori_k","crop","cropped","dataUrltoBlob","x","cep","viewValue","prefix","getAddress","cnpj","numeros","digitos","soma","resultado","pos","tamanho","digitos_iguais","read","cpf","add","rev","which","$eval","ngEnter","preventDefault","fullname","update","change","obj","rules","rulesPosition","size","mh","tip","url_original_image","v1","v2","ONLY_IMAGE_FILES","Slug","newValue","slugify","callback","all_groups","responsePath","autocomplete","source","cb","query","term","itens","subtitle","accountId","account_id","companyDocument","company_document","companyName","company_name","minLength","ui","validateVideo","videoUrl","video_data","thumbnail_url","removeVideo","callValidateVideo","isCoursePost","contentTypes","load","content_type","plan","post_types_feature_enabled","types","labelType","contentTypesTranslate","string","setPlaceholder","checked","ReqAndUpload","ngRichText","ngPlaceholder","content","objId","editing","editorConfig","buttonCfg","embed","allowedContent","disallowedContent","embedUrlTemplate","toolbars","buttons","tabIndex","styles","selections","AlloyEditor","SelectionTest","embedHtml","cfg","editor","editable","currentEditor","getData","update_readtime","ngLoading","uploading","removeAttr","upload","currentContent","setData","loading","onbeforeunload","confirm","strip","innerHTML","textContent","innerText","countWords","normalizedText","words","wordIndex","total_words","readtime","ngLabel","ngTarget","valueForItem","entity","ngSelectCollection","check","maxTags","newtag","tag","normalize","tag_error","compile","tElement","tAttrs","pre","preLink","returnValue","postLink","username","pattern","website","displayMask","sanitizationMask","validationMask","backspace","regexMask","sanitizationRegex","validationRegex","cropArray","sourceImageRect","dataURI","myArray","sourceImageSquare","sendNewInvite","inviteEmail","invites_sent","$interval","videoJSPlayer","ivsPlayer","newMessage","messages","viewers","disabledChat","countViewers","stop","classId","stream","viewer_count","initialAttendance","attendance_type","continousAttendance","loadAndPlay","loader","deferred","promises","onerror","reject","loadScript","loadCSS","readyCallback","getIVSPlayer","videoContainerEl","playerState","getIVSEvents","PlayerState","playerEventType","PlayerEventType","paused","IDLE","READY","setDisableChat","BUFFERING","PLAYING","isLiveLowLatency","getLiveLatency","ENDED","INITIALIZED","ERROR","warn","TEXT_METADATA_CUE","cue","userId","scrollToBottom","enableIVSQualityPlugin","volume","outerHeight","toggleCanBeCompletedStreaming","all","registerIVSTech","videojs","registerIVSQualityPlugin","techOrder","controlBar","playToggle","replay","pictureInPictureToggle","parseUrls","userInput","urlRegExp","formattedMessage","formattedMatch","startsWith","sendMessage","courseClassId","frontMessage","dispose","items","button","addListItem","removeListItem","textSize","theme","alignment","imageMobile","verifyHardwarePermissions","hardwareType","permissions","state","hasHardwarePermissions","instantMeter","meterRefresh","resolutions","aidResolution","mediaDevices","enumerateDevices","hardwareInfo","handleError","openModalHardwareSettings","startHardwareTest","deviceInfo","kind","audioInputSelected","aidAudioInputSelected","videoSelected","aidVideoSelected","changeSelectedDevice","device","selectedDevice","closedList","changeSelectedResolution","stopTests","AudioContext","webkitAudioContext","audioContext","alert","audioSource","deviceId","videoSource","constraints","audio","exact","getUserMedia","handleSuccess","srcObject","soundMeter","SoundMeter","connectToSource","setInterval","instant","toFixed","stylizeDots","getTracks","track","clearInterval","saveHardwareChanges","changeHardwareSettings","context","createScriptProcessor","that","onaudioprocess","inputBuffer","getChannelData","sum","clipCount","abs","sqrt","mic","createMediaStreamSource","connect","destination","disconnect","meter","months","dateObj","toLocaleString","year","getFullYear","numMonth","full_month","setMonth","report","full_year","showAddQuestion","newQuestion","question_text","question_type","question_context","addQuestion","saveQuestion","onClose","classnps","transition","end","nps","classRate","classDescription","decription","questions","available_questions","onCloseModal","sendNPS","checkValue","checkNPS","loadingNPS","npsClass","course_module_id","module_id","selectCourseGroup","class_id","course_id","rate","question_id","postNPS","shareCam","shareAudio","shareScreen","disabledRecord","startRecord","showLoading","defaultWidthCanvas","defaultHeightCanvas","worker","Worker","mediaRecorder","player","streamPlaybackUrl","streamServerUrl","streamKey","_stream","canvasVideoStream","startedStream","displayVideoElement","userVideoElement","canvasElement","startDefaultResolution","captureStream","resizeCanvas","onmessage","canvasAnimation","dropdown","startedLive","startStreaming","reloadStream","getOverlaidVideoStreams","openHardwareSettings","stopShare","shareType","getVideoTracks","toggleButtonStartedLive","activeCanvasShare","typeOfVideoElement","def","play","typeOfShare","getStream","addAudioStream","userAudioTrack","getAudioTracks","addTrack","baseTime","fps","resizeVideo","camWidth","videoWidth","camHeight","videoHeight","camRatio","outHeight","outWidth","drawImage","fillStyle","fillRect","videoElement","dx","dy","widthRatio","heightRatio","ratio","min","clearRect","getContext","shareRequest","toggleAudio","toggleCam","getDisplayMedia","frameRate","ideal","oninactive","echoCancellation","camSource","verifyStream","hasStopped","ivsConnection","IVSPlayer","isPlayerSupported","create","setMuted","code","metadataText","isOpen","ws","OPEN","WebSocket","onclose","capturedStream","outputStream","MediaStream","MediaRecorder","mimeType","videoBitsPerSecond","audioBitsPerSecond","browserName","nameOffset","verOffset","lastIndexOf","fullScreen","div","webkitRequestFullscreen","msRequestFullScreen","requestFullscreen","__upvote","__gocomment","__openBookmark","upvotecount","commentcount","inform_sent","informReady","motive","obs","motive_other","published","sendInform","upvoted","up_article","bookmarked","bookmarked_articles","gocomment","openBookmark","bookmark","searchList","bookmarks","addBookmark","list_id","public","$likecounter","article","portions","total_time","ingredients","stages","time_mask","informations","sortableOptions","unities","new_ingredient","addIngredient","stage","item_stage","linked_ingredients","removeConfirm","removeStage","removeIngredient","stage_idex","editStep","saveStep","getNameIngredient","unit","unit_item","quantity","changeInputQuantity","unit_text","getConstants","new_step","bcp_static_path","static_path","addStepDescription","steps","removeStep","step","collapsibleIcon","new_stage","setStageIngredient","addStage","index_item","stage_index","findIndex","editStage","saveStage","sortStep","recordedVideo","feedback_sent","feedbackReady","feedback","meta","social","outerHTML","showWhatsapp","navigatorShare","share","nativeShare","elements","FOLLOW","user_follow","follow","follow_user","total_follow","blog_data","HOSTNAME","default_blog","articles","currentPage","noresults","list_filter","count_filter","filters","kw","listPosts","param","searchStatus","searchKw","concat","moveList","move_articles","moveReady","moveNoresults","manageMove","move","user_data","hidecontrols","hideaction","currentUserIsAdmin","role_label","owner","is_recurrence","subscription_recurrence_date","suspended","subscription_suspended","block","formatCNPJ","newVal","changeRoleCourse","remove_role","custom","cancel_unsubscribe_request","monetization_iugu_purchases","subscriptionSuspension","monetization_iugu_active_subscription_id","coursesAccessEmail","addDays","subscriptionId","days","changeOwner","author_id","getTags","following","followers","myself","followUserSaving","facebook","google","twitter","linkedin","pinterest","youtube","instagram","$elements","contents","time","constructor","time_formats","seconds","list_choice","dt","PageScrollIndicator","progressBarLocation","contentToTrack","opt","winHeight","$_comments","$_offset","commentTop","topDiff","articleShareOptions","$shareOptions","navHeight","loadmoreLoading","responsiveVideos","$target","fixVideoEmbed","ignore","agree","dialog","$new","changePage","qs","newpath","finishedReading","midReading","linked_group","isFollow","showTooltipWrite","showTooltipLike","hideTooltipLike","writeContainer","closeWriteContainer","fixedWriteContainer","mouseup","userFollow","noPosts","userCanMessage","searchCtrl","tag_id","tag_search","tag_added","tag_follow","tag_title","changeMode","search_type","itemCount","searchCourse","category"],"mappings":"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","sourcesContent":["/*\r\n* 2016-08-17, Curitiba - Brazil\r\n* Author: rcmonteiro \r\n* Description: Analytics and Survey scripts\r\n*/\r\n(function (w, d, s) {\r\n // Validate prereqs\r\n if (!window.localStorage || typeof window.localStorage.getItem !== 'function') return false;\r\n var bera = w;\r\n var bera_url = 'https://berajs.beracode.com';\r\n var socket = false, ls = false, gss = false, gsu = false;\r\n var signedUser = window.localStorage.getItem('session') ? JSON.parse(window.localStorage.getItem('session')) : false;\r\n\r\n bera._addJS = function (path) {\r\n var h = d.getElementsByTagName(s)[0], j = d.createElement(s);\r\n j.async = true;\r\n j.src = path;\r\n h.parentNode.insertBefore(j, h);\r\n return j;\r\n }\r\n bera._addCSS = function (path) {\r\n var h = d.getElementsByTagName('head')[0], j = d.createElement('link');\r\n j.rel = 'stylesheet';\r\n j.type = 'text/css';\r\n j.href = path;\r\n h.appendChild(j);\r\n return j;\r\n }\r\n\r\n // Load project configs\r\n if (w._bcp) {\r\n w._bcsetup = {\r\n project_id: w._bcp,\r\n shared_page_id: w.bcp.main_page_id,\r\n shared_posts: w.bcp.main_page_id,\r\n host: w.location.host,\r\n metrics_endpoint: 'https://must.beracode.com',\r\n metrics_database: 0\r\n }\r\n }\r\n\r\n // START ---- Metrics ---- //\r\n bera.Metrics = function () {\r\n var json = false;\r\n var ogss = false;\r\n var ogsu = false;\r\n var read_tag = document.getElementById('bm-read-tag');\r\n var author_tag = document.getElementById('bm-author-tag');\r\n var action_tag = document.getElementsByClassName('bm-action');\r\n\r\n this.init = function () {\r\n revalidateSession();\r\n if (ogss && ogsu) createJSON();\r\n if (json && json.session) {\r\n sendData(JSON.stringify(json), true);\r\n }\r\n }\r\n\r\n var sendData = function (postData, save) {\r\n try {\r\n var req = createXMLHTTPObject();\r\n if (!req) {\r\n return;\r\n }\r\n req.open('POST', bera.config.metrics_endpoint, true);\r\n req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\r\n req.onreadystatechange = function () {\r\n if (req.readyState != 4) return;\r\n if (req.status != 200 && req.status != 304) {\r\n return;\r\n }\r\n if (req.status == 200) {\r\n if (save) {\r\n ls.setItem(gss, JSON.stringify(ogss));\r\n ls.setItem(gsu, JSON.stringify(ogsu));\r\n }\r\n }\r\n }\r\n if (req.readyState == 4) {\r\n return;\r\n }\r\n req.send(postData);\r\n } catch (err) {\r\n return false;\r\n }\r\n }\r\n\r\n var createJSON = function () {\r\n if (!w.location.host || w.location.host.replace(/^www\\./, '') !== bera.config.host) return false;\r\n json = {\r\n projectid: bera.config.project_id,\r\n in_database: bera.config.metrics_database,\r\n in_version: '2',\r\n userid: ogsu.value ? ogsu.value : 0,\r\n session: ogss.value ? ogss.value : 0,\r\n customer: 0,\r\n contact: 0,\r\n in_referer_time: ogss.last ? ogss.last : 0,\r\n in_session_count: ogss.count ? ogss.count : 0,\r\n in_session_start: ogss.start ? ogss.start : 0,\r\n in_session_elapsed: ogss.elapsed ? ogss.elapsed : 0,\r\n in_session_last: ogss.last_session ? ogss.last_session : 0,\r\n in_visit: ogss.visit ? ogss.visit : 0,\r\n in_view_count: ogsu.count ? ogsu.count : 0,\r\n host: w.location.host ? window.location.host.replace(/^www\\./, '') : false,\r\n url: w.location.pathname ? w.location.pathname : false,\r\n referer: '',\r\n resolution: w.screen.availWidth ? (w.screen.availWidth + 'x' + w.screen.availHeight) : 0,\r\n language: navigator.language || navigator.userLanguage\r\n }\r\n // CRM variables\r\n if (ogsu.customer) {\r\n json.customer = ogsu.customer;\r\n }\r\n if (ogsu.contact) {\r\n json.contact = ogsu.contact;\r\n }\r\n // A/B Tests\r\n if (document.body.getAttribute('data-bm-ab') && document.body.getAttribute('data-bm-ab') !== null) {\r\n var abtest = document.body.getAttribute('data-bm-ab');\r\n json['tg_abtest_' + abtest] = 1;\r\n }\r\n // Author\r\n if (author_tag != undefined) {\r\n if (author_tag.getAttribute('data-author') !== null) {\r\n json.author = author_tag.getAttribute('data-author');\r\n }\r\n }\r\n // Read tag\r\n if (read_tag_visible('static')) {\r\n json.tg_read = 1;\r\n }\r\n\r\n // Local storage for user origin\r\n var local_origin = {};\r\n\r\n // Referer track\r\n if (parent.document.referrer) {\r\n json.referer = parent.document.referrer;\r\n }\r\n var bcp = bera._qsget('_bcp');\r\n\r\n if (bcp && bcp.length > 1) {\r\n json.referer = 'bcp:' + bcp;\r\n }\r\n\r\n var utmca = bera._qsget('utm_campaign');\r\n if (utmca && utmca.length > 1) {\r\n json.utm_campaign = utmca;\r\n local_origin.utm_campaign = utmca;\r\n }\r\n var utmso = bera._qsget('utm_source');\r\n if (utmso && utmso.length > 1) {\r\n json.utm_source = utmso;\r\n local_origin.utm_source = utmso;\r\n }\r\n var utmco = bera._qsget('utm_content');\r\n if (utmco && utmco.length > 1) {\r\n json.utm_content = utmco;\r\n local_origin.utm_content = utmco;\r\n }\r\n var utmme = bera._qsget('utm_medium');\r\n if (utmme && utmme.length > 1) {\r\n json.utm_medium = utmme;\r\n local_origin.utm_medium = utmme;\r\n }\r\n var utmte = bera._qsget('utm_term');\r\n if (utmte && utmte.length > 1) {\r\n json.utm_term = utmte;\r\n local_origin.utm_term = utmte;\r\n }\r\n\r\n var gclid = bera._qsget('gclid');\r\n if (gclid && gclid.length > 1) {\r\n json.gclid = gclid;\r\n local_origin.gclid = gclid;\r\n }\r\n var gclsrc = bera._qsget('gclsrc');\r\n if (gclsrc && gclsrc.length > 1) {\r\n json.gclsrc = gclsrc;\r\n local_origin.gclsrc = gclsrc;\r\n }\r\n\r\n // Add origin data, if utm is present\r\n if (Object.keys(local_origin).length > 0) {\r\n local_origin.landing = w.location.pathname;\r\n local_origin.referer = parent.document.referrer;\r\n window.localStorage.setItem('local_origin', JSON.stringify(local_origin));\r\n }\r\n\r\n var bck = bera._qsget('_bck');\r\n if (bck && bck.length > 1) {\r\n json.referer = 'bck:' + bck;\r\n }\r\n if (json.host && json.url && (!json.referer || (json.referer.indexOf(json.host) === -1))) {\r\n json.in_arrive = 1;\r\n // Check referral convertion\r\n var ms = bera._qsget('_ms');\r\n if (ms && ms.length > 1) {\r\n json.referral_user = ms;\r\n json.referer = 'ms:' + ms;\r\n }\r\n } else if (json.referer) {\r\n json.referer = json.referer.replace(/http[s]?:\\/\\//, '').replace(json.host, '').replace(/^www\\./, '');\r\n }\r\n\r\n // Navegg integration\r\n try {\r\n if (nvgGetSegment !== undefined && typeof nvgGetSegment === 'function') {\r\n var gender = nvgGetSegment('gender');\r\n var age = nvgGetSegment('age');\r\n var education = nvgGetSegment('education');\r\n var marital = nvgGetSegment('marital');\r\n var income = nvgGetSegment('income');\r\n var connection = nvgGetSegment('connection');\r\n var everyone = nvgGetSegment('cluster');\r\n var city = nvgGetSegment('city');\r\n var region = nvgGetSegment('region');\r\n var country = nvgGetSegment('country');\r\n var interest = nvgGetSegment('interest');\r\n var product = nvgGetSegment('product');\r\n var brand = nvgGetSegment('brand');\r\n var career = nvgGetSegment('career');\r\n var everybuyer = nvgGetSegment('everybuyer');\r\n if (gender) json.nvg_gender = gender;\r\n if (age) json.nvg_age = age;\r\n if (education) json.nvg_education = education;\r\n if (marital) json.nvg_marital = marital;\r\n if (income) json.nvg_income = income;\r\n if (connection) json.nvg_connection = connection;\r\n if (everyone) json.nvg_everyone = everyone;\r\n if (city) json.nvg_city = city;\r\n if (region) json.nvg_region = region;\r\n if (country) json.nvg_country = country;\r\n if (interest) json.nvg_interest = interest;\r\n if (product) json.nvg_product = product;\r\n if (brand) json.nvg_brand = brand;\r\n if (career) json.nvg_career = career;\r\n if (everybuyer) json.nvg_everybuyer = everybuyer;\r\n }\r\n } catch (e) {\r\n }\r\n ;\r\n\r\n };\r\n\r\n var revalidateSession = function () {\r\n var ts = new Date().getTime();\r\n var gss_expires = 1800;\r\n var gsu_expires = 2592000;\r\n ogss = JSON.parse(ls.getItem(gss));\r\n ogsu = JSON.parse(ls.getItem(gsu));\r\n if (ogsu == undefined) {\r\n ogsu = {\r\n value: bera._uniq(),\r\n expires: gsu_expires * 1000 + ts,\r\n count: 0,\r\n visit: 1,\r\n start: ts\r\n }\r\n } else {\r\n if (ogsu.expires && parseInt(ogsu.expires) < ts) {\r\n ogsu.value = bera._uniq();\r\n ogsu.count = 0;\r\n ogsu.visit = 1;\r\n ogsu.start = ts;\r\n }\r\n }\r\n ogsu.expires = gsu_expires * 1000 + ts;\r\n ogsu.count++;\r\n if (w._bmsession && w._bmsession.customer) {\r\n ogsu.customer = w._bmsession.customer;\r\n }\r\n var last_visit = ogsu.visit > 0 ? parseInt(ogsu.visit) : false;\r\n if (!last_visit) {\r\n if (ogss.visit && ogss.visit > 0) {\r\n last_visit = ogss.visit;\r\n }\r\n }\r\n if (ogss == undefined) {\r\n ogss = {\r\n value: bera._uniq(),\r\n expires: gss_expires * 1000 + ts,\r\n count: 0,\r\n elapsed: 0,\r\n visit: last_visit,\r\n start: ts,\r\n last_session: 0,\r\n last: 0\r\n }\r\n } else {\r\n if (ogss.expires && parseInt(ogss.expires) < ts) {\r\n ogss.value = bera._uniq();\r\n ogss.count = 0;\r\n ogss.last_session = ogss.start;\r\n ogss.visit = last_visit + 1;\r\n ogss.start = ts;\r\n ogss.elapsed = 0;\r\n ogsu.visit = last_visit + 1;\r\n }\r\n }\r\n ogss.expires = gss_expires * 1000 + ts;\r\n ogss.last = (ts - ogss.start) - ogss.elapsed;\r\n ogss.elapsed = ts - ogss.start;\r\n ogss.count++;\r\n if (!ogss.visit) {\r\n ogss.visit = 2;\r\n }\r\n }\r\n var read_tag_posY = function () {\r\n var test = read_tag, top = 0;\r\n while (!!test && test.tagName.toLowerCase() !== \"body\") {\r\n top += test.offsetTop;\r\n test = test.offsetParent;\r\n }\r\n return top;\r\n }\r\n var read_tag_visible = function (mode) {\r\n if (!read_tag) {\r\n return false;\r\n }\r\n var vpH = 0, st, calibrate = 100, y, res, de = document.documentElement;\r\n if (!!window.innerWidth) {\r\n vpH = window.innerHeight;\r\n } else if (de && !isNaN(de.clientHeight)) {\r\n vpH = de.clientHeight;\r\n }\r\n st = window.pageYOffset ? window.pageYOffset : Math.max(document.documentElement.scrollTop, document.body.scrollTop);\r\n y = read_tag_posY() - calibrate;\r\n res = !(y > (vpH + st));\r\n if (res) {\r\n if (!json.tg_read && mode !== 'static') {\r\n w._bmtrack('read');\r\n }\r\n window.removeEventListener('scroll', read_tag_visible);\r\n }\r\n return res;\r\n }\r\n // Check read conversion\r\n if (read_tag && !json.tg_read) {\r\n window.addEventListener('scroll', read_tag_visible);\r\n }\r\n\r\n // Track tag action\r\n w._bmtrack = function (prop) {\r\n var type = typeof prop;\r\n var json_update = {};\r\n if (type == 'object') {\r\n for (var k in prop) {\r\n if (prop[k].indexOf('tg_') !== 0) {\r\n prop[k] = 'tg_' + prop[k];\r\n }\r\n json_update[prop[k]] = 1;\r\n }\r\n } else {\r\n if (prop.indexOf('tg_') !== 0) {\r\n prop = 'tg_' + prop;\r\n }\r\n json_update[prop] = 1;\r\n }\r\n json_update.projectid = json.projectid;\r\n json_update.session = json.session;\r\n json_update.in_database = json.in_database;\r\n json_update.in_version = json.in_version;\r\n json_update.in_session_count = json.in_session_count;\r\n sendData(JSON.stringify(json_update));\r\n }\r\n\r\n // Links conversions\r\n var linkListener = function (attribute) {\r\n for (var i = 0, n = action_tag.length; i < n; i++) {\r\n action_tag[i].addEventListener(\"mouseup\", function () {\r\n if (this.getAttribute('data-tag') !== null) {\r\n field = this.getAttribute('data-tag');\r\n w._bmtrack(field);\r\n }\r\n });\r\n }\r\n }\r\n if (action_tag && action_tag.length > 0) {\r\n linkListener();\r\n }\r\n\r\n }\r\n // END ---- Metrics ---- //\r\n\r\n // START ---- Survey ---- //\r\n w._hideSurvey = function (id) {\r\n window.localStorage.setItem('_bss' + id, 'hide');\r\n }\r\n bera.Survey = function () {\r\n this.init = function () {\r\n if (w._surveyJobs) {\r\n var survey_inserteds = [];\r\n for (var j in w._surveyJobs) {\r\n var job = w._surveyJobs[j] ? w._surveyJobs[j] : false;\r\n if (job) {\r\n var validateShow = window.localStorage && window.localStorage.getItem('_bss' + job.id) ? window.localStorage.getItem('_bss' + job.id) : 'false';\r\n if (validateShow != 'hide' && job.rule == 'userIds' && job.users != undefined && job.users.length > 0 && signedUser) {\r\n var userIds = job.users;\r\n if (userIds.indexOf(signedUser.user_id) !== -1) {\r\n surveyStage(j);\r\n if (job.type !== 'embed') survey_inserteds.push(job.type);\r\n }\r\n }\r\n // Check if landing page is requested with cod, then store cod on local storage\r\n var cod = bera._qsget('cod');\r\n if (cod && cod.length > 1) {\r\n window.localStorage.setItem('_bsscod', cod);\r\n }\r\n if (window.localStorage.getItem('_bsscod') !== undefined) {\r\n cod = window.localStorage.getItem('_bsscod');\r\n }\r\n validCod = false;\r\n if (cod !== undefined) {\r\n var tmp = atob(cod);\r\n if (tmp !== undefined) {\r\n tmp = tmp.split('|');\r\n if (tmp[0] !== undefined && tmp[1] !== undefined) validCod = true;\r\n }\r\n }\r\n if (validateShow != 'hide' && job.rule == 'byCod' && validCod) {\r\n surveyStage(j);\r\n }\r\n // else if(job.rule=='everyone') {\r\n // if(survey_inserteds.indexOf(job.type)===-1) {\r\n // surveyStage(j);\r\n // if(job.type!=='embed') survey_inserteds.push(job.type);\r\n // }\r\n // } else if(job.rule=='customer' && ls.getItem(gsu)) {\r\n // var user = JSON.parse(ls.getItem(gsu));\r\n // if(user.customer) {\r\n // if(survey_inserteds.indexOf(job.type)===-1) {\r\n // surveyStage(j);\r\n // if(job.type!=='embed') survey_inserteds.push(job.type);\r\n // }\r\n // }\r\n // }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var surveyStage = function (index) {\r\n console.log('index', index);\r\n bera._addCSS(bera_url + '/css/beracode.css');\r\n var iframe = document.createElement('iframe');\r\n var survey = w._surveyJobs[index];\r\n iframe.id = '_bss' + survey.id;\r\n iframe.className = 'bc-iframe survey-close survey-open ng-hide';\r\n var survey_head = '\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n ';\r\n var survey_footer = '\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \\\r\n ';\r\n var survey_call = '
\\\r\n

\\\r\n \\\r\n \\\r\n
';\r\n var survey_html = '
\\\r\n
\\\r\n

{{survey_title}}

\\\r\n
{{question.question}}
\\\r\n
{{question.rules}}
\\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n = 48 && event.charCode <= 57\" name=\"type_text\" type=\"{{question.type}}\" class=\"validate\" data-ng-model=\"survey_answers[question.code]\" data-ng-blur=\"survey_answer(question)\" ng-model-options=\"{ updateOn: \\'blur\\' }\">\\\r\n \\\r\n
\\\r\n
\\\r\n \\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n \\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n \\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n {{option.label}}\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n {{option.label}}\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n

{{survey_title}}

\\\r\n
Resultado
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n Continuar mais tarde\\\r\n X\\\r\n \\\r\n \\\r\n \\\r\n
\\\r\n
';\r\n if (survey.type !== 'embed' && survey.type !== 'modal') survey_html = survey_call + survey_html;\r\n // iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(survey_html);\r\n iframe.src = 'about:blank';\r\n var iframe_insert = false;\r\n if (survey.type == 'embed') {\r\n if (document.getElementById('survey-' + survey.id)) {\r\n document.getElementById('survey-' + survey.id).appendChild(iframe);\r\n iframe_insert = true;\r\n }\r\n } else {\r\n // document.body.appendChild(iframe);\r\n document.body.insertBefore(iframe, document.body.firstChild);\r\n iframe_insert = true;\r\n }\r\n if (iframe_insert) {\r\n iframe.contentWindow.document.open();\r\n iframe.contentWindow.document.write(survey_head + survey_html + survey_footer);\r\n iframe.contentWindow.document.close();\r\n }\r\n }\r\n }\r\n // END ---- Survey ---- //\r\n\r\n /* UTILZ */\r\n // HTTP Request\r\n var createXMLHTTPObject = function () {\r\n var XMLHttpFactories = [\r\n function () {\r\n return new XMLHttpRequest()\r\n },\r\n function () {\r\n return new ActiveXObject(\"Msxml2.XMLHTTP\")\r\n },\r\n function () {\r\n return new ActiveXObject(\"Msxml3.XMLHTTP\")\r\n },\r\n function () {\r\n return new ActiveXObject(\"Microsoft.XMLHTTP\")\r\n }\r\n ];\r\n var xmlhttp = false;\r\n for (var i = 0; i < XMLHttpFactories.length; i++) {\r\n try {\r\n xmlhttp = XMLHttpFactories[i]();\r\n } catch (e) {\r\n continue;\r\n }\r\n break;\r\n }\r\n return xmlhttp;\r\n }\r\n // UniqID\r\n bera._uniq = function () {\r\n var uuid = false;\r\n try {\r\n var d = new Date().getTime();\r\n if (window.performance && typeof window.performance.now === 'function') {\r\n d += performance.now();\r\n }\r\n if (window.performance && window.performance.memory) {\r\n d += window.performance.memory.totalJSHeapSize ? window.performance.memory.totalJSHeapSize : 0;\r\n d += window.performance.memory.usedJSHeapSize ? window.performance.memory.usedJSHeapSize : 0;\r\n d += window.performance.memory.jsHeapSizeLimit ? window.performance.memory.jsHeapSizeLimit : 0;\r\n }\r\n if (navigator && navigator.userAgent) {\r\n d += navigator.userAgent.length;\r\n }\r\n if (window.screen && window.screen.availWidth) {\r\n d += window.screen.availWidth + window.screen.availHeight;\r\n }\r\n if (window.innerWidth) {\r\n d += window.innerWidth + window.innerHeight;\r\n }\r\n var uuid = 'xxxxxxxxxxxxxxxxxxxxxxxx'.replace(/x/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (r).toString(16);\r\n });\r\n return uuid;\r\n } catch (err) {\r\n return false;\r\n }\r\n }\r\n // Get query string\r\n bera._qsget = function (name) {\r\n var url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) {\r\n return false;\r\n }\r\n if (!results[2]) {\r\n return false;\r\n }\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n if (w._bcsetup.project_id) {\r\n bera.config = w._bcsetup;\r\n gss = 'gss' + bera.config.project_id;\r\n gsu = 'gsu' + bera.config.project_id;\r\n ls = w.localStorage;\r\n ls.setItem('_bcsetup', JSON.stringify(w._bcsetup));\r\n // BeraMetrics\r\n var metrics = new bera.Metrics();\r\n metrics.init();\r\n\r\n // BeraSurvey\r\n var survey = new bera.Survey();\r\n survey.init();\r\n }\r\n\r\n})(window, document, 'script');\r\n","var App = {\n // Materialize Toast Wrapper\n toast: function (s, t) {\n t = typeof t === 'undefined' ? 3000 : t;\n if (typeof s === 'undefined') {\n // alert('Toast não definido')\n // throw 'Toast não definido'\n return console.error('Toast não definido');\n }\n Materialize.toast(s, t);\n },\n toastError: function (s, t) {\n this.toast(s, t);\n $('#toast-container .toast').addClass('is-error');\n }\n};\n\n(function () {\n if (localStorage.getItem('communitySquid/community_squid/auth-token')) {\n var authToken = JSON.parse(localStorage.getItem('communitySquid/community_squid/auth-token'));\n localStorage.setItem('auth-token', authToken);\n }\n\n if (localStorage.getItem('communitySquid/community_squid/session')) {\n var session = localStorage.getItem('communitySquid/community_squid/session');\n localStorage.setItem('session', session);\n }\n\n const app = angular\n .module('app.main', ['ui.materialize', 'ngResource', 'ngCookies', 'ngLocale', 'ngMessages', 'ngSanitize', 'ngProgress', 'pascalprecht.translate'])\n .config([\n '$translateProvider',\n function ($translateProvider) {\n // add translation table\n $translateProvider.translations(bcp.settings.language, window.translate);\n // $translateProvider.translations('en',window.translate['en']);\n $translateProvider.determinePreferredLanguage(function () {\n if (window.hasOwnProperty('bcp') && bcp.settings.language) {\n return bcp.settings.language;\n }\n return 'pt-br';\n });\n // $translateProvider.forceAsyncReload(true);\n $translateProvider.useSanitizeValueStrategy(null);\n $translateProvider.useMissingTranslationHandler('customTranslationHandler');\n }\n ])\n .factory('customTranslationHandler', function () {\n return function (translationID, uses) {\n // return the following text as a translation 'result' - this will be\n // displayed instead of the language key.\n return ' ';\n };\n })\n .constant('HOSTNAME', `${window.location.protocol}//${window.location.hostname}`)\n .constant('PROJECT_PATH', `//${_bcp}.redesign.static-01.com`)\n .constant('USER_PATH', '//users.redesign.static-01.com')\n .constant('API', 'https://api.squidcommunity.com')\n .config(function ($sceDelegateProvider) {\n $sceDelegateProvider.resourceUrlWhitelist([\n 'self',\n '*://www.youtube.com/**',\n '*://youtube.com/**',\n '*://youtu.be/**',\n '*://www.vimeo.com/**',\n '*://vimeo.com/**',\n '*://player.vimeo.com/**',\n '*://connect.stripe.com/**',\n '*://dashboard.stripe.com/**',\n '*://docs.google.com/presentation**'\n ]);\n })\n .config([\n '$compileProvider',\n ($compileProvider) => {\n $compileProvider.debugInfoEnabled(false);\n }\n ]);\n})();\n\n// Check for available actions for groups\nvar showGroupActions = function () {\n $('.group-action').each(function () {\n var group = $(this);\n var inProtectView = group.hasClass('protect') ? true : false;\n var groupId = group.attr('data-group');\n var userData = window.localStorage.getItem('session') ? JSON.parse(window.localStorage.getItem('session')) : false;\n group.find('a.group-btn').addClass('hide');\n // Check for invalid access to a protected group\n if (\n (group.attr('data-protect') === '1' && !userData) ||\n !userData.hasOwnProperty('groups') ||\n !userData.groups.hasOwnProperty(groupId) ||\n (userData.groups[groupId].hasOwnProperty('signup_pending') && userData.groups[groupId].signup_pending === true)\n ) {\n var currentCookie = document.cookie;\n document.cookie = `auth-page=deleted; Path=${window.location.pathname}; Secure; Expires=${new Date(Date.now() - 1000)}`;\n }\n\n // User not signed\n if (!userData) {\n if (group.attr('data-signup') === '0') group.find('a.group-closed').removeClass('hide');\n else group.find('a.group-signup').removeClass('hide');\n } else if (userData) {\n // Check if user has access to this group\n if (userData.groups.hasOwnProperty(groupId)) {\n $('.join-group-box').each(function () {\n $('.join-group-box').addClass('hide');\n $('.join-group-sidebar').addClass('hide');\n });\n if (userData.groups[groupId].hasOwnProperty('signup_pending') && userData.groups[groupId].signup_pending === true) group.find('a.group-pending').removeClass('hide');\n else {\n if (userData.groups[groupId].hasOwnProperty('can_create_posts') && userData.groups[groupId].can_create_posts === true) group.find('a.group-post').removeClass('hide');\n if (userData.groups[groupId].hasOwnProperty('hash') && inProtectView) {\n document.cookie = userData.groups[groupId].hash;\n window.location.reload();\n }\n group.find('a.group-signed').removeClass('hide');\n }\n } else {\n if (group.attr('data-signup') === '0') group.find('a.group-closed').removeClass('hide');\n else group.find('a.group-signup').removeClass('hide');\n }\n }\n });\n};\n\n$(function () {\n showGroupActions();\n\n // fab button share\n $('.fixed-action-btn.share-options').openFAB();\n\n //SideNav\n $('.editor-page .button-collapse-editor').sideNav({\n menuWidth: 280,\n edge: 'right',\n closeOnClick: false,\n draggable: true\n });\n\n if ($('body').hasClass('paineladm-content')) {\n $('.button-collapse').sideNav({\n menuWidth: 280,\n closeOnClick: true\n });\n } else {\n $('.button-collapse').sideNav({\n menuWidth: 280,\n closeOnClick: false\n });\n }\n\n // article read list scroll top btn effect\n if ($('body').scrollTop() > $('.list-item--container').position.top) {\n $('.list-item--container .list-item--outputcontainer:first-child').removeClass('selected');\n $('.list-item--container .list-item--outputcontainer:first-child').addClass('selected');\n }\n\n // button collapse sidenav tablet mobile\n $('.side-nav.side-nav-general a.close-sidenav').click(function () {\n $('.side-nav.side-nav-general a.close-sidenav').toggleClass('active');\n $('.side-nav.side-nav-general a.close-sidenav i').toggleClass('show hide');\n });\n\n $('.menu-user').click(function () {\n $('.newcontent-link').removeClass('active');\n $('#newcontent-sidenav').hide();\n });\n\n $('.user_header-avatar .dropdown-button').click(() => {\n $('.navbar-fixed').addClass('user-options-active');\n });\n\n $('#user-options').click(() => {\n $('.navbar-fixed').removeClass('user-options-active');\n });\n\n function setSideNav() {\n if ($('body').hasClass('paineladm-content') && $(window).width() >= 992) {\n $('body.paineladm-content').removeClass('side-nav-hide');\n $('.side-nav.side-nav-general').removeClass('hide-nav');\n $('.button-collapse-desktop i').removeClass('fa fa-bars').addClass('fal fa-times');\n } else if ($('body').hasClass('paineladm-content') && $(window).width() < 992) {\n $('body').removeClass('side-nav-hide side-nav-mode');\n $('.side-nav.side-nav-general').removeClass('hide-nav show-nav');\n } else {\n $('body').removeClass('side-nav-hide side-nav-mode');\n $('.side-nav.side-nav-general').removeClass('hide-nav show-nav');\n }\n }\n\n setSideNav();\n\n // accordion\n var acc = document.getElementsByClassName('accordion-box');\n var i;\n\n for (i = 0; i < acc.length; i++) {\n acc[i].addEventListener('click', function () {\n this.classList.toggle('active');\n var panel = this.nextElementSibling;\n if (panel.style.maxHeight) {\n panel.style.maxHeight = null;\n } else {\n panel.style.maxHeight = panel.scrollHeight + 'px';\n }\n });\n }\n\n // click on overlay change close-sidenav icon\n $(function () {\n var $win = $(window);\n var $sideNavSlideOut = $('#slide-out');\n\n $win.on('click.Bst', function (event) {\n if (($sideNavSlideOut.has(event.target).length && !$(event.target).hasClass('collapsible-header') && $(event.target).is('a')) || $(event.target).attr('id') === 'sidenav-overlay') {\n $('.side-nav.side-nav-general a.close-sidenav').removeClass('active');\n $('.side-nav.side-nav-general a.close-sidenav i.fa-bars').removeClass('hide').addClass('show');\n $('.side-nav.side-nav-general a.close-sidenav i.fa-times').removeClass('show').addClass('hide');\n }\n });\n });\n\n $(window).resize(function () {\n setSideNav();\n });\n\n $('.button-collapse-desktop').click(function () {\n var sidebar_width = 280;\n var wrap = 1000.5;\n var row_width = $('.row').width(),\n new_sidebar = false,\n new_left = false;\n var diff = wrap + sidebar_width - $(window).width();\n $('.side-nav.side-nav-general').toggleClass('hide-nav show-nav');\n $('body').toggleClass('side-nav-hide side-nav-mode');\n if ($('.side-nav-general').hasClass('show-nav')) {\n new_sidebar = 0.333333333333 * (row_width - diff);\n new_left = (0.333333333333 * (row_width + diff) - new_sidebar) / 2;\n $('.nav-header .button-collapse-desktop i').removeClass('fa fa-bars').addClass('fal fa-times');\n if ($('main .sidebar_wrap').css('position') !== 'relative' && $('main .sidebar_wrap').length > 0) {\n if ($(window).width() <= wrap + sidebar_width) {\n $('main .sidebar_wrap').animate(\n {\n width: new_sidebar,\n left: $('main .sidebar_wrap').offset().left + new_left\n },\n 300,\n function () {\n $('main .sidebar_wrap').css({\n width: 0.333333333333 * $('.row').width(),\n left: $('main .posts-container').offset().left + $('main .posts-container').width() + 20\n });\n }\n );\n } else {\n $('main .sidebar_wrap').animate(\n {\n left: $('main .sidebar_wrap').offset().left + 140\n },\n 300,\n function () {\n $('main .sidebar_wrap').css({\n width: 0.333333333333 * $('.row').width(),\n left: $('main .posts-container').offset().left + $('main .posts-container').width() + 20\n });\n }\n );\n }\n }\n } else {\n new_sidebar = 0.333333333333 * (row_width + diff);\n new_left = (new_sidebar - 0.333333333333 * (row_width - diff)) / 2;\n $('.nav-header .button-collapse-desktop i').removeClass('fal fa-times').addClass('fa fa-bars');\n if ($('main .sidebar_wrap').css('position') !== 'relative' && $('main .sidebar_wrap').length > 0) {\n if ($(window).width() <= wrap + sidebar_width) {\n $('main .sidebar_wrap').animate(\n {\n width: new_sidebar,\n left: $('main .sidebar_wrap').offset().left - new_left\n },\n 300,\n function () {\n $('main .sidebar_wrap').css({\n width: 0.333333333333 * $('.row').width(),\n left: $('main .posts-container').offset().left + $('main .posts-container').width() + 20\n });\n }\n );\n } else {\n $('main .sidebar_wrap').animate(\n {\n left: $('main .sidebar_wrap').offset().left - 140\n },\n 300,\n function () {\n $('main .sidebar_wrap').css({\n width: 0.333333333333 * $('.row').width(),\n left: $('main .posts-container').offset().left + $('main .posts-container').width() + 20\n });\n }\n );\n }\n }\n }\n $('.side-nav ul.open > li > a').trigger('click');\n return false;\n });\n\n // the \"href\" attribute of .modal-trigger must specify the modal ID that wants to be triggered\n $('.modal-trigger').leanModal();\n\n // avatar actions\n $(function () {\n $('[data-toggle=\"tooltip\"]').tooltip();\n });\n $('#fadeInOut').on('click', function () {\n $('.uploadCompleteOverlay').show().addClass('animated zoomIn');\n setTimeout(function () {\n $('.uploadCompleteOverlay').addClass('zoomOut');\n }, 2000);\n setTimeout(function () {\n $('.uploadCompleteOverlay').removeClass('animated zoomIn zoomOut').hide();\n }, 3000);\n });\n\n $('img.ta-insert-video').each(function () {\n var video = $(this);\n var ifrmae = video.after(\n $(' '\n }\n})\n","angular.module('app.main').directive('footerLinks', function() {\n return {\n restrict: 'A',\n scope: {\n links: '='\n },\n controller: function ($scope) {\n var listLinks = $scope.links;\n\n listLinks.forEach(link => {\n link.label = link.label.split('#39;').join(\"'\");\n link.label = link.label.split('39;').join(\"'\");\n });\n\n setTimeout(function () {\n $scope.$apply(function ($scope) {\n $scope.links = listLinks;\n });\n }, 1000);\n },\n template:'
'\n }\n})\n","angular.module('app.main').directive('compareTo', function () {\n return {\n require: 'ngModel',\n scope: {\n otherModelValue: '=compareTo'\n },\n link: function (scope, element, attributes, ngModel) {\n ngModel.$validators.compareTo = function (modelValue) {\n return modelValue == scope.otherModelValue\n }\n scope.$watch('otherModelValue', function () {\n ngModel.$validate()\n })\n }\n }\n})\n","angular.module('app.main').directive('creditCardMask', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (scope, element, attrs, ctrl) {\n let clearValue = function (rawValue) {\n return rawValue.toString().replace(/[^0-9]/g, '').slice(0, 17);\n };\n\n let format = function (cleanValue) {\n let formatedValue;\n\n formatedValue = ('' + cleanValue).replace(/(\\d\\d\\d\\d)(\\d\\d?\\d?\\d?)(\\d?\\d?\\d?\\d?)(\\d?\\d?\\d?\\d?)/, '$1 $2 $3 $4') || '';\n\n return formatedValue.trim().replace(/[^0-9]$/, '');\n };\n\n\n ctrl.$formatters.push(function formatter(value) {\n if (ctrl.$isEmpty(value)) {\n return value;\n }\n\n let cleanValue = clearValue(value.toString(), attrs);\n return format(cleanValue);\n });\n\n ctrl.$parsers.push(function parser(value) {\n if (ctrl.$isEmpty(value)) {\n return value;\n }\n\n let cleanValue = clearValue(value.toString(), attrs);\n let formattedValue = format(cleanValue);\n\n if (ctrl.$viewValue !== formattedValue) {\n ctrl.$setViewValue(formattedValue);\n ctrl.$render();\n }\n\n return cleanValue;\n });\n }\n };\n});\n","angular.module('app.main').directive('ngAvatarInput', function (USER_PATH, Upload) {\n return {\n restrict: 'A',\n scope: {\n image: '=',\n user: '='\n },\n replace: true,\n link: function (scope, element) {\n scope.$watch('image', function () {\n if (scope.image && typeof scope.image === 'string') scope.url_image = scope.image ? `${USER_PATH}/${scope.user}/m/images/${scope.image}` : ''\n })\n var events = scope.events\n scope.$watch('file', function () {\n if (scope.file != undefined) {\n var reader = new FileReader()\n $('#profileCropModal').openModal()\n reader.onloadend = function () {\n scope.croppedImage = null\n scope.extension = scope.file.name.split('.').pop()\n scope.$apply(function ($scope) {\n scope.sourceImage = reader.result\n var cropHost = element.find('canvas')\n window.setTimeout(function () {\n var wrap_w = element.find('.modal-content').width()\n var ori_k = cropHost.attr('width') / cropHost.attr('height')\n cropHost.attr('width', ori_k * 350)\n cropHost.attr('height', 350)\n }, 500)\n })\n }\n reader.readAsDataURL(scope.file)\n }\n })\n\n scope.crop = function () {\n var cropped = scope.croppedImage\n var d = new Date().getTime()\n scope.image = Upload.dataUrltoBlob(cropped, d + '.' + scope.extension)\n scope.url_image = scope.image\n $('#profileCropModal').closeModal()\n }\n },\n template:'

{{ \\'SHARED.AVATARINPUT_CUSTOMCUT\\' | translate }}

'\n }\n})\n","angular.module('app.main').directive('ngCastInteger', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (scope, element, attrs, ngModel) {\n ngModel.$parsers.unshift(function (value, x, y) {\n return parseInt(value, 10)\n })\n }\n }\n})\n","angular.module('app.main').directive('ngCep', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n scope: {\n data: '=ngCep'\n },\n link: function (scope, element, attr, ctrl) {\n ctrl.$validators.cep = function (modelValue, viewValue) {\n if (modelValue) {\n var prefix = attr.ngModel.split('.')[1].split('_')[0]\n var error = false\n var cep = modelValue.replace(/\\.|\\-/g, '')\n if (cep.length < 8) {\n return false\n } else {\n scope.$parent.getAddress(cep, scope.data, prefix)\n }\n return true\n }\n return true\n }\n }\n }\n})\n","angular.module('app.main').directive('ngCnpj', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (scope, element, attr, ctrl) {\n ctrl.$validators.cnpj = function (modelValue, viewValue) {\n if (modelValue) {\n var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais\n var cnpj = modelValue.replace(/\\.|\\-|\\//g, '')\n digitos_iguais = 1\n if (cnpj.length < 14 && cnpj.length < 15) { return false }\n for (i = 0; i < cnpj.length - 1; i++) {\n if (cnpj.charAt(i) != cnpj.charAt(i + 1)) {\n digitos_iguais = 0\n break\n }\n }\n if (!digitos_iguais) {\n tamanho = cnpj.length - 2\n numeros = cnpj.substring(0, tamanho)\n digitos = cnpj.substring(tamanho)\n soma = 0\n pos = tamanho - 7\n for (i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--\n if (pos < 2) {\n pos = 9\n }\n }\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11\n if (resultado != digitos.charAt(0)) { return false }\n tamanho = tamanho + 1\n numeros = cnpj.substring(0, tamanho)\n soma = 0\n pos = tamanho - 7\n for (i = tamanho; i >= 1; i--) {\n soma += numeros.charAt(tamanho - i) * pos--\n if (pos < 2) { pos = 9 }\n }\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11\n if (resultado != digitos.charAt(1)) { return false }\n } else {\n return false\n }\n return true\n }\n return false\n }\n }\n }\n})\n","angular.module('app.main').directive('ngContentEditable', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (scope, element, attrs, ngModel) {\n element.attr('contenteditable', 'true')\n\n function read () {\n var html = element.html().replace(/ /g, ' ')\n ngModel.$setViewValue(html)\n }\n ngModel.$render = function () {\n element.html(ngModel.$viewValue || '')\n }\n element.bind('blur change', function () {\n scope.$apply(read)\n })\n }\n }\n})\n","angular.module('app.main').directive('ngCpf', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n scope: true,\n link: function (scope, element, attr, ctrl) {\n ctrl.$validators.cpf = function (modelValue, viewValue) {\n ctrl.$setValidity('alreadyinuse', true)\n if (modelValue) {\n var cpf = modelValue.replace('/\\.|\\-/g', '').trim()\n if (cpf.length != 11 ||\n cpf == '00000000000' ||\n cpf == '11111111111' ||\n cpf == '22222222222' ||\n cpf == '33333333333' ||\n cpf == '44444444444' ||\n cpf == '55555555555' ||\n cpf == '66666666666' ||\n cpf == '77777777777' ||\n cpf == '88888888888' ||\n cpf == '99999999999') {\n return false\n }\n var add = 0\n for (var i = 0; i < 9; i++) {\n add += parseInt(cpf.charAt(i)) * (10 - i)\n }\n var rev = 11 - (add % 11)\n if (rev == 10 || rev == 11) {\n rev = 0\n }\n if (rev != parseInt(cpf.charAt(9))) {\n return false\n }\n add = 0\n for (i = 0; i < 10; i++) {\n add += parseInt(cpf.charAt(i)) * (11 - i)\n }\n rev = 11 - (add % 11)\n if (rev == 10 || rev == 11) {\n rev = 0\n }\n if (rev != parseInt(cpf.charAt(10))) {\n return false\n }\n return true\n }\n return false\n }\n }\n }\n})\n","angular.module('app.main').directive('ngEnter', function () {\n return function (scope, element, attrs) {\n element.bind('keydown', function (e) {\n if (e.which === 13) {\n scope.$apply(function () {\n return scope.$eval(attrs.ngEnter, {'e': e})\n })\n e.preventDefault()\n }\n })\n }\n})\n","angular.module('app.main').directive('ngFocus', function () {\n return {\n scope: { trigger: '=ngFocus' },\n link: function (scope, element) {\n scope.$watch('trigger', function (value) {\n if (value === true) {\n element[0].focus()\n scope.trigger = false\n }\n })\n }\n }\n})\n","angular.module('app.main').directive('ngFullname', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (scope, element, attrs, ctrl) {\n ctrl.$validators.fullname = function (modelValue, viewValue) {\n if (modelValue) {\n var fullname = modelValue.trim().split(' ')\n if (fullname.length < 2) return false\n if (fullname[0].trim() < 2 || fullname[1].trim() < 2) return false\n return true\n }\n return false\n }\n }\n }\n})\n","angular.module('app.main').directive('ngGroupSelect', function () {\n return {\n restrict: 'A',\n scope: {\n model: '=ngModel',\n target: '=ngTarget',\n groups: '=ngGroups',\n update: '=?',\n mode: '@ngMode'\n },\n link: function (scope, element, attr) {\n scope.change = function (obj) {\n scope.target = obj.model.id;\n if (typeof scope.update === 'function') {\n scope.update(obj.model);\n }\n }\n },\n template:'

{{ groups[0].title }}

1\" input-field class=\"group-choice ml10 right\">
'\n }\n})\n","angular.module('app.main').directive('ngImageInput', function (PROJECT_PATH, USER_PATH) {\n return {\n restrict: 'A',\n scope: {\n image: '=',\n rules: '@',\n rulesPosition: '@',\n size: '@',\n maxHeight: '@',\n user: '='\n },\n replace: true,\n link: function (scope) {\n var arr = scope.size.split('x')\n scope.w = arr[0] !== 'auto' ? `${arr[0]}px` : 'auto'\n scope.h = arr[1] !== 'auto' ? `${arr[1]}px` : 'auto'\n scope.mh = scope.maxHeight ? `${scope.maxHeight}px` : scope.h\n if (arr[0] >= 360) scope.tip = true\n else scope.tip = false\n scope.url_image = ''\n scope.url_original_image = ''\n\n scope.selected = function (v1, v2) {\n if (scope.image && /image\\//.test(scope.image.type)) {\n scope.url_image = scope.image\n } else {\n if (scope.image) Materialize.toast(TXT.ONLY_IMAGE_FILES, 3000)\n scope.url_image = ''\n scope.image = ''\n scope.url_original_image = ''\n }\n }\n\n scope.$watch('image', function () {\n var path = scope.user ? `${USER_PATH}/${scope.user}` : PROJECT_PATH\n scope.url_image = scope.image ? `${path}/l/images/${scope.image}` : ''\n scope.url_original_image = scope.image && typeof scope.image === 'string' ? `${path}/images/${scope.image}` : ''\n })\n },\n template:'
{{ \\'SHARED.IMAGEINPUT_CLICK\\' | translate }} {{ rules }}
'\n }\n})","angular.module('app.main').directive('ngInputSlug', function (Slug) {\n return {\n restrict: 'A',\n scope: {\n model: '=ngModel'\n },\n link: function (scope, element, attr) {\n scope.$watch('model', function (newValue) {\n if (newValue) newValue = Slug.slugify(newValue)\n if (scope.model !== newValue && newValue) {\n scope.model = newValue\n }\n })\n }\n }\n})\n","angular.module('app.main').directive('ngInputSuggest', function (Api) {\n return {\n restrict: 'A',\n scope: {\n label: '=ngModel',\n fields: '=',\n response: '@',\n id: '@',\n callback: '=',\n },\n replace: true,\n link: function (scope, element, attr) {\n var all_groups = {};\n var fields = scope.fields ? scope.fields : { title: 'title', id: '_id' };\n var responsePath = scope.response ? scope.response : 'response';\n $(`#${attr.id}`).autocomplete({\n source: function (val, cb) {\n var query = attr.query.replace('suggestKW', val.term);\n Api.get(query, function (err, resp) {\n var data = [];\n var itens = [];\n if (responsePath.indexOf('.') > 0) {\n var current = resp;\n responsePath.split('.').forEach(function (p) {\n current = current[p];\n });\n itens = current;\n } else {\n itens = resp[responsePath];\n }\n if (!err) {\n for (var i in itens) {\n data.push({\n label:\n itens[i][fields.title] +\n (fields.subtitle ? ' - ' + itens[i][fields.subtitle] : ''),\n accountId: itens[i][fields.account_id],\n companyDocument: itens[i][fields.company_document],\n companyName: itens[i][fields.company_name],\n id: itens[i][fields.id],\n });\n }\n }\n if (itens.length === 0) data = [{ label: 'Nenhum resultado' }];\n cb(data);\n });\n },\n minLength: 1,\n select: function (event, ui) {\n if (ui.item.hasOwnProperty('id')) {\n scope.callback(ui.item);\n } else {\n scope.label = '';\n }\n },\n });\n },\n };\n});\n","angular.module('app.main').directive('ngInputVideoExtract', function ($http, $timeout) {\n return {\n restrict: 'A',\n scope: {\n model: '=ngModel'\n },\n link: function (scope, element, attr) {\n var validateVideo = function (videoUrl) {\n if (videoUrl && /docs.google.com\\/presentation/.test(videoUrl)) {\n scope.video_data = {\n title: 'Google Slides',\n url: videoUrl,\n thumbnail_url: 'https://blogs.shu.ac.uk/shutel/files/2014/08/GSlides.png'\n };\n return;\n }\n \n if (!videoUrl || !/youtube.com\\/watch|vimeo.com|youtu.be\\//.test(videoUrl)) {\n scope.video_data = ''\n return false\n }\n\n $http.get('https://noembed.com/embed?url=' + encodeURI(videoUrl)).then(function (response) {\n if (response.status === 200) {\n scope.video_data = response.data\n }\n }, function (response) {\n scope.video_data = ''\n })\n }\n\n scope.removeVideo = function() {\n scope.video_data = ''\n scope.model = '';\n }\n\n scope.callValidateVideo = null\n scope.$watch('model', function (videoUrl) {\n if (scope.callValidateVideo) {\n $timeout.cancel(scope.callValidateVideo);\n } \n scope.video_data = '';\n scope.callValidateVideo = $timeout(function () {\n validateVideo(videoUrl);\n }, 1000)\n })\n },\n template:'
'\n }\n})\n","angular.module('app.main').directive('ngPostSelect', function ($translate) {\n return {\n restrict: 'A',\n scope: {\n target: '=ngTarget',\n isCoursePost: '=ngIsCourse',\n update: '=?'\n },\n link: function (scope, element, attr) {\n var contentTypes = ['post', 'question', 'link', 'list', 'raw', 'recipe']\n var bcp = window.bcp\n scope.load = function () {\n if (bcp &&\n bcp.hasOwnProperty('settings') &&\n bcp.settings.hasOwnProperty('policies') &&\n bcp.settings.policies.hasOwnProperty('content_type')) contentTypes = bcp.settings.policies.content_type\n if (!bcp.plan.post_types_feature_enabled || scope.isCoursePost) {\n contentTypes = ['post'];\n }\n scope.types = []\n if (contentTypes.length === 1) {\n scope.model = contentTypes[0]\n $translate('GLOBAL.' + contentTypes[0].toUpperCase()).then(function (result) {\n scope.labelType = result;\n }, function (translationId) {\n scope.labelType = translationId;\n });\n } else {\n scope.labelType = '';\n const contentTypesTranslate = []\n for (var i in contentTypes) {\n const string = 'GLOBAL.' + contentTypes[i].toUpperCase();\n contentTypesTranslate.push(string)\n scope.types.push({\n value: contentTypes[i],\n title: string\n });\n }\n $translate(contentTypesTranslate).then(function (translations) {\n for (var i in contentTypesTranslate) {\n scope.types[i].title = translations[contentTypesTranslate[i]]\n }\n });\n }\n }\n\n scope.load();\n\n scope.change = function (obj) {\n if (obj.model) {\n scope.target = obj.model.value\n if (typeof scope.update === 'function') {\n scope.update(obj.model.value);\n }\n if (scope.$parent.hasOwnProperty('setPlaceholder')) {\n scope.$parent.setPlaceholder(scope.target)\n }\n }\n }\n scope.$watch('target', function (checked) {\n if (contentTypes.length > 1) {\n for (var i in contentTypes) {\n if (checked === scope.types[i].value) {\n scope.model = scope.types[i]\n }\n }\n }\n })\n scope.$watch('isCoursePost', function (isCoursePost) {\n scope.isCoursePost = isCoursePost\n scope.load();\n })\n },\n template:'

{{ labelType }}

'\n }\n})\n","angular.module('app.main').directive('ngRichText', function ($timeout, ReqAndUpload, PROJECT_PATH, $translate) {\n return {\n restrict: 'A',\n scope: {\n ngRichText: '=',\n ngPlaceholder: '@',\n content: '=ngModel'\n },\n link: function (scope, element, attr) {\n scope.objId = attr.id\n var editing = false\n\n // Rich text settings\n var editorConfig = {}\n if (attr.ngRichText === 'full') {\n editorConfig = {\n buttonCfg: {\n embed: {\n label: 'Inserir vídeo Youtube/Vimeo'\n }\n },\n allowedContent:\n 'h2 h3 h4 h5 h6 p blockquote strong em u ul ol li;' +\n 'a[!href,target];' +\n 'hr;' +\n 'iframe;' +\n 'img(left,right)[!src,alt,width,height,style]{width,height};' +\n 'del ins pre cite;',\n disallowedContent: 'h1',\n embedUrlTemplate: 'https://noembed.com/embed?url={url}&callback={callback}&maxwidth=680',\n toolbars: {\n add: {\n buttons: ['image', 'embed', 'hline', 'link'],\n tabIndex: 2\n },\n styles: {\n selections: [{\n name: 'link',\n buttons: ['linkEdit'],\n test: AlloyEditor.SelectionTest.link\n },\n {\n name: 'embed',\n buttons: ['embedEdit', 'youtubeLive', 'embedEditHtml'],\n test: AlloyEditor.SelectionTest.embed\n },\n {\n name: 'embedEditHtml',\n buttons: ['embedEditHtml'],\n test: AlloyEditor.SelectionTest.embedHtml\n },\n {\n name: 'image',\n buttons: ['link', 'imageAlt'],\n test: AlloyEditor.SelectionTest.image\n },\n {\n name: 'text',\n buttons: [{\n name: 'styles',\n cfg: {\n styles: [\n // {\n // name: 'Head 1',\n // style: { element: 'h1' }\n // },\n {\n name: 'Head 2',\n style: { element: 'h2' }\n },\n {\n name: 'Head 3',\n style: { element: 'h3' }\n }\n ]\n }\n }, 'bold', 'italic', 'underline', 'quote', 'ol', 'ul', 'link'],\n test: AlloyEditor.SelectionTest.text\n }],\n tabIndex: 1\n }\n }\n };\n if (scope.$parent.currentUser.isadmin) {\n editorConfig.toolbars.add.buttons.push('embedEditHtml');\n }\n } else {\n editorConfig = {\n allowedContent:\n 'h2 h3 h4 h5 h6 p blockquote strong em u;' +\n 'a[!href];' +\n 'hr;' +\n 'img(left,right)[!src,alt,width,height,style]{width,height};' +\n 'del ins pre cite;',\n disallowedContent: 'h1',\n toolbars: {\n styles: {\n selections: [{\n name: 'link',\n buttons: ['linkEdit'],\n test: AlloyEditor.SelectionTest.link\n },\n {\n name: 'image',\n buttons: ['link'],\n test: AlloyEditor.SelectionTest.image\n },\n {\n name: 'text',\n buttons: ['styles', 'bold', 'italic', 'underline', 'link'],\n test: AlloyEditor.SelectionTest.text\n }],\n tabIndex: 1\n }\n }\n }\n }\n\n // Declare editor\n var editor = AlloyEditor.editable(scope.objId, editorConfig)\n var currentEditor = editor.get('nativeEditor')\n\n // Set current scope on editor changes\n currentEditor.on('actionPerformed', function (event) {\n $timeout(function () {\n scope.content = currentEditor.getData()\n update_readtime()\n }, 500)\n editing = true\n attr.ngLoading = 3\n })\n currentEditor.on('change', function (event) {\n $timeout(function () {\n scope.content = currentEditor.getData()\n update_readtime()\n }, 500)\n editing = true\n attr.ngLoading = 3\n })\n\n // Upload images by paste\n currentEditor.on('paste', function (ev) {\n $timeout(function () {\n $('img[data-cke-saved-src]').each(function () {\n var image = $(this).attr('data-cke-saved-src')\n if (image.indexOf('base64') > 0) {\n scope.$parent.uploading = true\n var file = dataURLtoFile(image)\n var el = $(this)\n if (file.size > 15000000) {\n el.attr('src', '').removeAttr('data-cke-saved-src')\n $translate(`MESSAGES.OVER15MB`).then(function (result) {\n App.toast(result, 3000)\n });\n return;\n }\n ReqAndUpload.upload(file, 'project').then(function (filename) {\n if (filename) {\n el.attr('src', `${PROJECT_PATH}/l/images/${filename}`).removeAttr('data-cke-saved-src')\n scope.$parent.uploading = false\n scope.content = currentEditor.getData()\n }\n })\n }\n })\n }, 0)\n })\n\n // InsertHtml, in the end:

\n currentEditor.on('insertHtml', function (event) {\n $timeout(function () {\n var currentContent = editor.get('nativeEditor').getData()\n if (currentContent.substr(currentContent.length - 4, 4) !== '

') {\n currentContent = currentContent + '

'\n currentEditor.setData(currentContent)\n scope.content = currentContent\n }\n }, 1000)\n })\n\n // Upload image, after added by editor controls\n currentEditor.on('imageAdd', function (ev) {\n var file = ev.data.file\n var el = ev.data.el\n scope.$parent.uploading = true\n if (file.size > 15000000) {\n ev.data.el['$'].src = '';\n $translate(`MESSAGES.OVER15MB`).then(function (result) {\n App.toast(result, 3000)\n });\n return;\n }\n ReqAndUpload.upload(file, 'project').then(function (filename) {\n if (filename) {\n ev.data.el['$'].src = `${PROJECT_PATH}/l/images/${filename}`\n scope.$parent.uploading = false\n scope.content = currentEditor.getData()\n }\n })\n })\n\n // Set editor content, after API call, mark as saved\n if (attr.hasOwnProperty('ngLoading')) {\n attr.$observe('ngLoading', function (loading) {\n if (loading == 0) {\n\n currentEditor.setData(scope.content)\n editing = false\n } else if (loading == 2) {\n editing = false\n }\n })\n }\n\n // Exit without saving\n window.onbeforeunload = function (e) {\n if (editing) {\n return 'Você não salvou as alterações, deseja realmente descartar?'\n }\n }\n scope.$parent.$on('$locationChangeStart', function (event) {\n if (editing) {\n if (!window.confirm('Você não salvou as alterações, deseja realmente descartar?')) {\n event.preventDefault()\n }\n }\n })\n\n // Update read time and word count\n var update_readtime = function () {\n function strip(html) {\n var tmp = document.createElement('div')\n\n // Add filter before strip\n // html = filter(html);\n\n tmp.innerHTML = html\n\n if (tmp.textContent == '' && typeof tmp.innerText === 'undefined') {\n return ''\n }\n\n return tmp.textContent || tmp.innerText\n }\n\n function countWords(text) {\n var normalizedText = text\n .replace(/(\\r\\n|\\n|\\r)/gm, ' ')\n .replace(/\\>/gm, '> ')\n .replace(/^\\s+|\\s+$/g, '')\n .replace(' ', ' ')\n\n normalizedText = strip(normalizedText)\n\n var words = normalizedText.split(/\\s+/)\n\n for (var wordIndex = words.length - 1; wordIndex >= 0; wordIndex--) {\n if (words[wordIndex].match(/^([\\s\\t\\r\\n]*)$/)) {\n words.splice(wordIndex, 1)\n }\n }\n\n return (words.length)\n }\n\n var content = currentEditor.getData()\n var words = countWords(content)\n scope.$parent.total_words = words\n scope.$parent.readtime = Math.ceil(words / 150)\n }\n }\n // template:'
'\n }\n})\n","angular.module('app.main').directive('ngSelectCollection', function (Api) {\n return {\n restrict: 'A',\n scope: {\n target: '=ngTarget',\n label: '=ngLabel',\n data: '=ngData'\n },\n link: function (scope, element, attr) {\n scope.itens = [{\n title: '',\n value: ''\n }]\n\n scope.label = attr.ngLabel;\n scope.target = attr.ngTarget;\n scope.model = {};\n\n if(!attr.valueForItem) attr.valueForItem = 'id';\n\n // Load itens from collection\n var entity = attr.ngSelectCollection\n if (entity) {\n Api.get(`${entity}?page_size=100`, function (err, resp) {\n if (!err) {\n if (resp.response.data.length > 0) scope.itens = [];\n for (var i in resp.response.data) {\n scope.itens.push({\n value: resp.response.data[i][attr.valueForItem],\n title: resp.response.data[i].name\n })\n }\n if (scope.target) {\n check(scope.target)\n } else {\n scope.model = scope.itens[0];\n }\n }\n })\n }\n\n var check = function (checked) {\n if (scope.itens && scope.itens.length > 0) {\n for (var i in scope.itens) {\n if (checked === scope.itens[i].value) {\n scope.model = scope.itens[i];\n }\n }\n }\n }\n\n scope.change = function (obj) {\n scope.target = obj.model.value\n }\n scope.$watch('target', function (checked) {\n if (checked) check(checked)\n })\n scope.$watch('data', function (data) {\n if (data) {\n scope.itens = []\n for (var i in data) {\n scope.itens.push({ title: data[i].title, value: data[i].id })\n }\n }\n })\n },\n template:'
'\n }\n})\n","angular.module('app.main').directive('ngTagInput', function ($timeout) {\n return {\n restrict: 'A',\n scope: {\n tags: '=',\n maxTags: '@'\n },\n link: function (scope) {\n scope.add = function (ev) {\n var err_max = false\n if (ev.keyCode == 13 || ev.keyCode == 188 || ev.keyCode == 191) {\n if (scope.newtag) {\n scope.newtag = scope.newtag.replace('#', '')\n scope.newtag = scope.newtag.replace(';', ',')\n }\n var arr = scope.newtag ? scope.newtag.split(',') : []\n for (var k in arr) {\n var tag = arr[k].trim().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n if (scope.tags && scope.tags.length >= scope.maxTags) {\n err_max = true\n }\n if (!scope.tags || (tag.length > 1 && scope.tags.length < 5)) {\n if (!scope.tags) scope.tags = []\n if (scope.tags.indexOf(tag) == -1) scope.tags.push(tag)\n scope.tag_error = false\n }\n }\n if (err_max) {\n Materialize.toast('Max 5 tags', 3000)\n }\n scope.newtag = ''\n }\n return false\n }\n scope.remove = function (tag) {\n var index = scope.tags.indexOf(tag)\n if (index > -1) scope.tags.splice(index, 1)\n if (scope.tags.length == 0) scope.tag_error = true\n }\n },\n template:'
0\" class=\"row mb0\">
{{tag}}
  • {{errorMessage.text}}

{{ \\'SHARED.TAGINPUT_ADD5TAGS\\' | translate }}

'\n }\n})","angular.module('app.main').directive('ngUsername', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function (tElement, tAttrs) {\n return {\n pre: function preLink (scope, element, attrs, ctrl) {\n element.bind('keypress', function (e) {\n ctrl.$setValidity('alreadyinuse', true)\n var k = e.which || e.keyCode\n if (\n (k >= 97 && k <= 122) ||\n (k >= 65 && k <= 90) ||\n (k >= 48 && k <= 57) ||\n (k == 0) ||\n (k == 8) ||\n (k == 45)\n ) {} else {\n if (e.preventDefault) e.preventDefault()\n e.returnValue = false\n }\n })\n },\n post: function postLink (scope, element, attrs, ctrl) {\n ctrl.$validators.username = function (modelValue, viewValue) {\n if (modelValue) {\n var pattern = /^[0-9a-zA-z_]{3,20}$/i\n if (!pattern.test(modelValue)) return false\n return true\n }\n return false\n }\n }\n }\n }\n }\n})\n","angular.module('app.main').directive('ngWebsite', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function (scope, element, attrs, ctrl) {\n ctrl.$validators.website = function (modelValue, viewValue) {\n if (modelValue) {\n var pattern = /^(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i\n if (!pattern.test(modelValue)) return false\n return true\n }\n return true\n }\n }\n }\n})\n","angular.module('app.main').directive('regexMask', function () {\n return {\n restrict: 'A',\n require: 'ngModel',\n scope: {\n displayMask: '=',\n sanitizationMask: '=',\n validationMask: '='\n },\n link: function (scope, element, attrs, ctrl) {\n let backspace = false;\n element.bind('keydown', function (event) {\n backspace = event.keyCode === 8;\n });\n let clearValue = function (rawValue) {\n if (scope.sanitizationMask) {\n let regex = new RegExp(scope.sanitizationMask, 'g');\n rawValue = rawValue.toString().replace(regex, '');\n }\n if (scope.displayMask && scope.displayMask[2]) {\n rawValue = rawValue.substr(0, parseInt(scope.displayMask[2]));\n }\n return rawValue;\n };\n\n let format = function (cleanValue) {\n if (scope.displayMask && scope.displayMask[0] && scope.displayMask[1]) {\n let formattedValue;\n let regex = new RegExp(scope.displayMask[0], 'g');\n formattedValue = ('' + cleanValue).replace(regex, scope.displayMask[1]) || '';\n return formattedValue.trim();\n }\n return cleanValue;\n };\n\n ctrl.$formatters.push(function (value) {\n if (ctrl.$isEmpty(value)) {\n return value;\n }\n\n let cleanValue = clearValue(value.toString());\n return format(cleanValue);\n });\n\n ctrl.$parsers.push(function (value) {\n if (ctrl.$isEmpty(value) || backspace) {\n return value;\n }\n\n let cleanValue = clearValue(value.toString());\n let formattedValue = format(cleanValue);\n\n if (ctrl.$viewValue !== formattedValue) {\n ctrl.$setViewValue(formattedValue);\n ctrl.$render();\n }\n\n return cleanValue;\n });\n\n ctrl.$validators.regexMask = function (value) {\n if (ctrl.$isEmpty(value) || !scope.validationMask || !scope.sanitizationMask) {\n return true;\n }\n let sanitizationRegex = new RegExp(scope.sanitizationMask, 'g');\n let validationRegex = new RegExp(scope.validationMask, 'g');\n\n let cleanValue = value.replace(sanitizationRegex, '');\n\n return validationRegex.test(cleanValue);\n }\n }\n };\n});\n","angular.module('app.main').directive('snippetCustomCrop', function (Upload, $timeout, PROJECT_PATH) {\n return {\n restrict: 'A',\n scope: {\n obj: '@ngObject',\n field: '@ngField',\n modal: '@ngModal',\n cropper: '=ngCropper'\n },\n link: function (scope, element) {\n scope.crop = function () {\n var cropped = scope.cropper.croppedImage\n var d = new Date().getTime()\n scope.$parent[scope.obj][scope.field] = Upload.dataUrltoBlob(cropped, d + '.' + scope.cropper.extension)\n scope.$parent[scope.obj]['url_' + scope.field] = scope.$parent[scope.obj][scope.field]\n $('#' + scope.modal).closeModal()\n }\n // scope.$apply();\n },\n template:'

{{ \\'SHARED.AVATARINPUT_CUSTOMCUT\\' | translate }}

'\n }\n})\n","angular.module('app.main').directive('headerLinks', function() {\n return {\n restrict: 'A',\n scope: {\n links: '='\n },\n template:'
'\n };\n})\n","angular.module('app.main').directive('ngImageCropRectangleModal', function (Upload, $timeout, PROJECT_PATH) {\n return {\n restrict: 'A',\n scope: {\n image: '=',\n },\n replace: true,\n link: function (scope, element) {\n\n scope.cropArray = null;\n scope.url_original_image = '';\n scope.$watch('image', function () {\n if (scope.image && typeof scope.image === 'string') {\n scope.url_image ? scope.url_image = scope.image : scope.url_image = `${PROJECT_PATH}/m/images/${scope.image}`;\n scope.url_original_image = scope.image ? `${PROJECT_PATH}/images/${scope.image}` : '';\n }\n })\n var events = scope.events\n scope.$watch('file', function () {\n if (scope.file != undefined) {\n var reader = new FileReader()\n $('#rectangleCropModal').openModal()\n reader.onloadend = function () {\n scope.extension = scope.file.name.split('.').pop()\n scope.$apply(function ($scope) {\n scope.sourceImageRect = reader.result\n var cropHost = element.find('canvas')\n window.setTimeout(function () {\n var wrap_w = element.find('.modal-content').width()\n var ori_k = cropHost.attr('width') / cropHost.attr('height')\n cropHost.attr('width', ori_k * 350)\n cropHost.attr('height', 350)\n }, 500)\n })\n }\n reader.readAsDataURL(scope.file)\n }\n })\n \n scope.crop = function () {\n var cropped = null;\n cropped = scope.cropArray[0].dataURI; \n var d = new Date().getTime()\n scope.image = Upload.dataUrltoBlob(cropped, d + '.' + scope.extension)\n scope.url_image = scope.image\n $('#rectangleCropModal').closeModal()\n }\n },\n template:'

{{ \\'SHARED.AVATARINPUT_CUSTOMCUT\\' | translate }}

'\n }\n })\n ","angular.module('app.main').directive('ngImageCropSquareModal', function (Upload, $timeout, PROJECT_PATH) {\n return {\n restrict: 'A',\n scope: {\n image: '=',\n },\n replace: true,\n link: function (scope, element) {\n\n scope.croppedImage = '';\n scope.url_original_image = '';\n scope.myArray = '';\n scope.$watch('image', function () {\n if (scope.image && typeof scope.image === 'string') {\n scope.url_image ? scope.url_image = scope.image : scope.url_image = `${PROJECT_PATH}/m/images/${scope.image}`;\n scope.url_original_image = scope.image ? `${PROJECT_PATH}/images/${scope.image}` : '';\n }\n })\n var events = scope.events\n scope.$watch('file', function () {\n if (scope.file != undefined) {\n var reader = new FileReader()\n $('#squareCropModal').openModal()\n reader.onloadend = function () {\n scope.croppedImage = null\n scope.extension = scope.file.name.split('.').pop()\n scope.$apply(function ($scope) {\n scope.sourceImageSquare = reader.result\n var cropHost = element.find('canvas')\n window.setTimeout(function () {\n var wrap_w = element.find('.modal-content').width()\n var ori_k = cropHost.attr('width') / cropHost.attr('height')\n cropHost.attr('width', ori_k * 350)\n cropHost.attr('height', 350)\n }, 500)\n })\n }\n reader.readAsDataURL(scope.file)\n }\n })\n\n scope.crop = function () {\n var cropped = null;\n\n cropped = scope.croppedImage;\n\n var d = new Date().getTime()\n scope.image = Upload.dataUrltoBlob(cropped, d + '.' + scope.extension)\n scope.url_image = scope.image\n $('#squareCropModal').closeModal()\n }\n },\n template:'

{{ \\'SHARED.AVATARINPUT_CUSTOMCUT\\' | translate }}

'\n }\n})\n ","angular.module('app.main').directive('inviteBox', function(Api, $translate) {\n return {\n restrict: 'A',\n scope: true,\n link: function ($scope) {\n $scope.sendNewInvite = function() {\n if(!$scope.inviteEmail || $scope.inviteEmail.length===0) {\n $translate('MESSAGES.USER_INVITE_INVALID_EMPTY_EMAIL').then(function (result) {\n App.toast(result, 3000);\n });\n return;\n }\n const emails = {emails: [$scope.inviteEmail]}\n Api.post('user/invite', emails, function(err, resp) {\n if(!err) {\n $translate('MESSAGES.USER_INVITE_SUCCESS').then(function (result) {\n App.toast(result, 3000);\n });\n $scope.invite.emails = [];\n $scope.inviteEmail = '';\n $scope.$parent.$parent.currentUser.invites_sent = $scope.$parent.$parent.currentUser.invites_sent +1;\n } else {\n $translate('MESSAGES.USER_INVITE_FAIL').then(function (result) {\n App.toast(result, 3000);\n });\n }\n });\n }\n },\n template:'
{{ \\'SHARED.INVITEBOX_TITLE\\' | translate}}
= 50\"> {{ \\'SHARED.INVITEBOX_LIMITINVITE\\' | translate}}
'\n }\n})\n","angular.module('app.main').directive('ivsPlayer', ['$q', 'Api', '$translate', '$timeout', '$interval', function ($q, Api, $translate, $timeout, $interval) {\n return {\n restrict: 'A',\n scope: true,\n replace: true,\n link: function (scope, element, attr) {\n let videoJSPlayer;\n let ivsPlayer;\n let user = scope.$parent.currentUser\n scope.newMessage = '';\n scope.messages = [];\n scope.viewers = 0;\n scope.disabledChat = true;\n\n scope.countViewers = function () {\n const stop = $interval(function () {\n Api.get(`stream/info/${scope.$parent.classId}`, function (err, result) {\n if (!err) {\n scope.viewers = result.response.data.stream.viewer_count;\n }\n });\n }, 20000)\n }\n\n scope.initialAttendance = function () {\n Api.post(`course-classes/${scope.$parent.classId}/attendance/users/${user.user_id}`,\n {attendance_type: \"initial\"},\n function (err, result) {\n });\n }\n\n scope.continousAttendance = function () {\n const stop = $interval(function () {\n Api.post(`course-classes/${scope.$parent.classId}/attendance/users/${user.user_id}`,\n {attendance_type: \"continuous\"},\n function (err, result) {\n });\n }, 60000)\n }\n\n const loadAndPlay = function () {\n videoJSPlayer.src(scope.video_src);\n }\n\n const loader = function (createElement) {\n return function (url) {\n const deferred = $q.defer();\n if (promises.indexOf(url) === -1) {\n const element = createElement(url);\n element.onload = element.onreadystatechange = function (e) {\n if (element.readyState && element.readyState !== 'complete' && element.readyState !== 'loaded') {\n return;\n }\n deferred.resolve(e);\n };\n element.onerror = function (e) {\n deferred.reject(e);\n };\n promises.push(deferred.promise);\n }\n\n return deferred.promise;\n };\n }\n\n const loadScript = loader(function (src) {\n const script = document.createElement('script');\n script.src = src;\n document.body.appendChild(script);\n return script;\n });\n\n const loadCSS = loader(function (href) {\n const style = document.createElement('link');\n style.rel = 'stylesheet';\n style.type = 'text/css';\n style.href = href;\n document.head.appendChild(style);\n return style;\n });\n\n const readyCallback = function () {\n window.videoJSPlayer = videoJSPlayer;\n ivsPlayer = videoJSPlayer.getIVSPlayer();\n const videoContainerEl = document.querySelector('#amazon-ivs-videojs');\n const playerState = videoJSPlayer.getIVSEvents().PlayerState;\n const playerEventType = videoJSPlayer.getIVSEvents().PlayerEventType;\n\n videoContainerEl.addEventListener(\"click\", () => {\n if (videoJSPlayer.paused()) {\n videoContainerEl.classList.remove(\"vjs-has-started\");\n } else {\n videoContainerEl.classList.add(\"vjs-has-started\");\n }\n });\n\n ivsPlayer.addEventListener(playerState.IDLE, function () {\n console.log(\"Player State - IDLE\");\n });\n\n ivsPlayer.addEventListener(playerState.READY, function () {\n console.log(\"Player State - READY\");\n setDisableChat(false);\n });\n\n ivsPlayer.addEventListener(playerState.BUFFERING, function () {\n console.log(\"Player State - BUFFERING\");\n });\n\n ivsPlayer.addEventListener(playerState.PLAYING, () => {\n console.log(\"Player State - PLAYING\");\n\n $timeout(function () {\n setDisableChat(false);\n }, 100);\n\n setTimeout(() => {\n console.log(`This stream is ${ivsPlayer.isLiveLowLatency() ? '' : 'not '}playing in ultra low latency mode`);\n console.log(`Stream Latency: ${ivsPlayer.getLiveLatency()}s`);\n }, 5000);\n });\n\n ivsPlayer.addEventListener(playerState.ENDED, function () {\n console.log(\"Player State - ENDED\");\n $timeout(function () {\n loadAndPlay();\n }, 5000);\n\n $timeout(function () {\n setDisableChat(true);\n }, 100);\n });\n\n ivsPlayer.addEventListener(playerEventType.INITIALIZED, (type, source) => {\n console.log(\"Player Event - INITIALIZED: \", type, source);\n scope.initialAttendance();\n });\n\n ivsPlayer.addEventListener(playerEventType.ERROR, (type, source) => {\n console.warn(\"Player Event - ERROR: \", type, source);\n $timeout(function () {\n loadAndPlay();\n }, 3000)\n });\n\n ivsPlayer.addEventListener(playerEventType.TEXT_METADATA_CUE, (cue) => {\n const message = JSON.parse(cue.text);\n if (message.userId !== user.user_id) {\n scope.messages.push(JSON.parse(cue.text));\n scrollToBottom();\n }\n });\n\n videoJSPlayer.enableIVSQualityPlugin();\n videoJSPlayer.volume(0.5);\n scope.video_src = attr.ivsPlayer;\n loadAndPlay();\n };\n\n const scrollToBottom = function () {\n $timeout(function () {\n $('.messages').scrollTop($('.messages-content').outerHeight() + 50);\n }, 10);\n }\n\n const setDisableChat = function (value) {\n scope.disabledChat = value;\n scope.$parent.toggleCanBeCompletedStreaming(value)\n }\n\n let promises = [];\n loadCSS('/utils/public/video-js/video-js.min.css');\n loadScript('/utils/public/video-js/video.min.js');\n loadScript('https://player.live-video.net/1.2.0/amazon-ivs-videojs-tech.min.js');\n loadScript('https://player.live-video.net/1.2.0/amazon-ivs-quality-plugin.min.js');\n\n $q.all(promises).then(function () {\n registerIVSTech(videojs);\n registerIVSQualityPlugin(videojs);\n\n videoJSPlayer = videojs(\"amazon-ivs-videojs\", {\n techOrder: [\"AmazonIVS\"],\n controlBar: {\n playToggle: {\n replay: false\n },\n pictureInPictureToggle: false\n }\n });\n videoJSPlayer.ready(readyCallback);\n scope.countViewers();\n scope.continousAttendance();\n });\n\n attr.$observe('ivsPlayer', function () {\n scope.video_src = attr.ivsPlayer;\n setDisableChat(true)\n scope.messages = [];\n if (videoJSPlayer) {\n loadAndPlay();\n }\n });\n\n scope.parseUrls = function (userInput) {\n const urlRegExp = /(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_.~#?&//=]*)/g;\n let formattedMessage = userInput.replace(urlRegExp, (match) => {\n let formattedMatch = match;\n if (!match.startsWith('http')) {\n formattedMatch = `http://${match}`;\n }\n return `${match}`;\n });\n return formattedMessage;\n }\n\n scope.sendMessage = function (message) {\n if (!message) {\n return;\n }\n const data = {\n courseClassId: scope.$parent.classId,\n message: message\n }\n const frontMessage = {\n message: message,\n userId: user.user_id,\n name: user.name,\n image: user.image\n };\n\n scope.newMessage = '';\n Api.post('stream/metadata', data, function (err, result) {\n if (err) {\n $translate('MESSAGES.ERROR_THE_MESSAGE').then((result) => App.toastError(result, 5000));\n return\n }\n scope.messages.push(frontMessage);\n scrollToBottom();\n });\n }\n\n scope.$on('$destroy', function () {\n if (ivsPlayer) {\n ivsPlayer.delete()\n }\n if (videoJSPlayer) {\n videoJSPlayer.dispose()\n }\n });\n },\n template:'
{{message.name}}
{{viewers}}
{{newMessage.length}}/200
'\n }\n}]);\n","angular.module('app.main').directive('ngListItems', function($compile, $translate) {\n return {\n restrict: 'A',\n scope: {\n items: '=',\n form: '='\n },\n replace: true,\n link: function ($scope, elm, attr) {\n $scope.css = attr.css;\n $scope.items = [ {} ];\n \n $translate(`SHARED.LIST_ITEM_BUTTON_DEFAULT`).then(function (result) {\n $scope.items[0].button = result;\n });\n $scope.addListItem = function(){\n \n $translate(`SHARED.LIST_ITEM_BUTTON_DEFAULT`).then(function (result) {\n let item = {}\n item.button = result;\n $scope.items.push(item);\n setTimeout(function(){ \n $compile($('#image_'+($scope.items.length-1)))($scope) \n }, 100)\n });\n \n \n }\n\n $scope.removeListItem = function(index){\n $scope.items.splice(index,1);\n }\n\n $scope.selected = function (item) {\n if(item.image.size > 8000000) {\n item.url_image = ''\n item.image = ''\n $translate(`MESSAGES.OVER15MB`).then(function (result) {\n App.toast(result, 3000)\n });\n return;\n }\n if (item.image && /image\\//.test(item.image.type)) item.url_image = item.image\n else {\n if (item.image) {\n $translate(`MESSAGES.ONLY_IMAGE_FILES`).then(function (result) {\n App.toast(result, 3000)\n });\n }\n item.url_image = ''\n item.image = ''\n }\n }\n\n },\n template:'
{{\\'SHARED.IMAGEINPUT_CLICK\\' | translate}} {{ rules }}
  • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
{{\\'SHARED.ITEM\\' | translate}} #{{$index+1}}
  • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
  • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
  • {{\\'MESSAGES.ERROR_INVALID_URL\\' | translate}}
'\n }\n})","angular.module('app.main').directive('mainBanner', function (PROJECT_PATH, $timeout) {\n return {\n restrict: 'A',\n scope: {\n url: '@',\n text: '@',\n textSize: '@',\n button: '@',\n theme: '@',\n alignment: '@',\n image: '@',\n imageMobile: '@'\n },\n link: function (scope) {\n if (window.innerWidth < 500 && scope.imageMobile) scope.image = scope.imageMobile\n scope.url_image = scope.image ? (PROJECT_PATH + '/l/images/' + scope.image) : false\n // if(!scope.$parent.currentUser) {\n // sideInitial();\n // }\n },\n template:''\n }\n})\n","angular.module('app.main').directive('modalGiveHardwareAccess', ['$q', 'Api', '$translate', '$timeout', '$interval', function ($q, Api, $translate, $timeout, $interval) {\n return {\n restrict: 'A',\n scope: true,\n replace: true,\n link: function (scope, element, attr) {\n verifyHardwarePermissions('microphone');\n verifyHardwarePermissions('camera');\n\n // navigator.mediaDevices.getUserMedia({audio: true, video: true}).then(e => console.log(e)).catch(e => console.log(e))\n\n /**\n * verify hardware if hardware permissions is denied\n * @param {string} hardwareType\n */\n function verifyHardwarePermissions(hardwareType) {\n navigator.permissions.query({ name: hardwareType }).then(result => {\n if (result.state === 'denied') {\n scope.$parent.hasHardwarePermissions = false;\n }\n });\n }\n },\n template:'

'\n };\n}]);\n","angular.module('app.main').directive('modalStreamHardwareSettings', ['$q', 'Api', '$translate', '$timeout', '$interval', function ($q, Api, $translate, $timeout, $interval) {\n return {\n restrict: 'A',\n scope: true,\n replace: true,\n link: function (scope, element, attr) {\n $(document).ready(function () {\n $('.collapsible').collapsible();\n });\n\n const instantMeter = document.querySelector('#instant meter');\n let meterRefresh = null;\n scope.resolutions = [\n {value: '480p', label: '480P (852x480)', resolution: {width: 852, height: 480}},\n {value: '720P', label: '720P (1280x720)', resolution: {width: 1280, height: 720}}\n ]\n if (window.screen.height >= 720) {\n scope.aidResolution = scope.resolutions[1]\n } else {\n scope.aidResolution = scope.resolutions[0]\n }\n\n navigator.mediaDevices.enumerateDevices().then(hardwareInfo).catch(handleError);\n\n navigator.mediaDevices.addEventListener('devicechange', event => {\n navigator.mediaDevices.enumerateDevices().then(hardwareInfo).catch(handleError);\n });\n\n /**\n * watch to open hardware modal\n */\n scope.$parent.$watch('openModalHardwareSettings', function () {\n if (scope.$parent.openModalHardwareSettings) {\n startHardwareTest();\n }\n });\n\n function hardwareInfo(deviceInfo) {\n scope.deviceInfo = deviceInfo;\n\n for (let i = 0; i !== scope.deviceInfo.length; ++i) {\n const deviceInfo = scope.deviceInfo[i];\n if (deviceInfo.kind === 'audioinput' && !scope.$parent.audioInputSelected) {\n scope.$parent.audioInputSelected = deviceInfo;\n scope.aidAudioInputSelected = deviceInfo;\n } else if (deviceInfo.kind === 'videoinput' && !scope.$parent.videoSelected) {\n scope.$parent.videoSelected = deviceInfo;\n scope.aidVideoSelected = deviceInfo;\n }\n }\n scope.$apply();\n }\n\n scope.changeSelectedDevice = function (device, selectedDevice) {\n if (device !== scope[selectedDevice]) {\n scope[selectedDevice] = device;\n startHardwareTest();\n }\n\n };\n\n scope.closedList = function (classList) {\n $(`.collapsible.collapsible-accordion.${classList} .active`).removeClass('active');\n $(`.collapsible.collapsible-accordion.${classList} .collapsible-body`).hide();\n }\n\n scope.changeSelectedResolution = function (resolution) {\n scope.aidResolution = resolution\n };\n\n function startHardwareTest() {\n if (window.stream) {\n scope.stopTests();\n }\n try {\n window.AudioContext = window.AudioContext || window.webkitAudioContext;\n window.audioContext = new AudioContext();\n } catch (e) {\n alert('Web Audio API not supported.');\n }\n\n const audioSource = scope.aidAudioInputSelected.deviceId;\n const videoSource = scope.aidVideoSelected.deviceId;\n const constraints = {\n audio: {deviceId: audioSource ? {exact: audioSource} : undefined},\n video: {deviceId: videoSource ? {exact: videoSource} : undefined}\n };\n navigator.mediaDevices.getUserMedia(constraints).then(handleSuccess).catch(handleError);\n }\n\n function handleSuccess(stream) {\n navigator.mediaDevices.enumerateDevices().then(hardwareInfo).catch(handleError);\n const video = document.getElementById('stream-test-cam');\n window.stream = stream;\n video.srcObject = stream;\n const soundMeter = window.soundMeter = new SoundMeter(window.audioContext);\n soundMeter.connectToSource(stream, function (e) {\n if (e) {\n alert(e);\n return;\n }\n meterRefresh = setInterval(() => {\n instantMeter.value = soundMeter.instant.toFixed(2);\n stylizeDots(instantMeter.value);\n }, 100);\n });\n }\n\n /**\n * Stop all the tests\n */\n scope.stopTests = function () {\n scope.$parent.openModalHardwareSettings = false;\n window.stream.getTracks().forEach(track => track.stop());\n if (window.soundMeter) {\n window.soundMeter.stop();\n }\n clearInterval(meterRefresh);\n };\n\n /**\n * Apply hardware changes\n */\n scope.saveHardwareChanges = function () {\n scope.stopTests();\n scope.$parent.changeHardwareSettings(scope.aidVideoSelected, scope.aidAudioInputSelected, scope.aidResolution.resolution);\n };\n\n function handleError(error) {\n console.log('navigator.MediaDevices.getUserMedia error: ', error.message, error.name);\n }\n\n function SoundMeter(context) {\n this.context = context;\n this.instant = 0.0;\n this.script = context.createScriptProcessor(2048, 1, 1);\n const that = this;\n this.script.onaudioprocess = function (event) {\n const input = event.inputBuffer.getChannelData(0);\n let i;\n let sum = 0.0;\n let clipCount = 0;\n for (i = 0; i < input.length; ++i) {\n sum += input[i] * input[i];\n if (Math.abs(input[i]) > 0.99) {\n clipCount += 1;\n }\n }\n that.instant = Math.sqrt(sum / input.length) * 7;\n };\n }\n\n SoundMeter.prototype.connectToSource = function (stream, callback) {\n try {\n this.mic = this.context.createMediaStreamSource(stream);\n this.mic.connect(this.script);\n this.script.connect(this.context.destination);\n if (typeof callback !== 'undefined') {\n callback(null);\n }\n } catch (e) {\n console.error(e);\n if (typeof callback !== 'undefined') {\n callback(e);\n }\n }\n };\n\n SoundMeter.prototype.stop = function () {\n this.mic.disconnect();\n this.script.disconnect();\n };\n\n function stylizeDots(meter) {\n if (meter === 0.0) {\n $(\".meter-1\").css(\n \"background\", 'rgb(0 0 0 / 25%)'\n );\n }\n if (meter >= 0.01 && meter <= 0.25) {\n $(\".meter-1\").css(\n \"background\", '#ffb900'\n );\n }\n if (meter >= 0.26) {\n $(\".meter-1\").css(\n \"background\", '#107c10'\n );\n }\n if (meter < 0.40) {\n $(\".meter-2\").css(\n \"background\", 'rgb(0 0 0 / 25%)'\n );\n }\n if (meter >= 0.40) {\n $(\".meter-2\").css(\n \"background\", '#107c10'\n );\n }\n if (meter < 0.55) {\n $(\".meter-3\").css(\n \"background\", 'rgb(0 0 0 / 25%)'\n );\n }\n if (meter >= 0.55) {\n $(\".meter-3\").css(\n \"background\", '#107c10'\n );\n }\n }\n },\n template:'

  • {{ aidVideoSelected.label }}

    • {{ deviceInfo.label }}
  • {{ aidResolution.label }}

    • {{ resolution.label }}
  • {{ aidAudioInputSelected.label }}

    • {{ deviceInfo.label }}
'\n };\n}]);\n","angular.module('app.main').directive('monthFilter', function() {\n return {\n restrict: 'A',\n scope: false,\n link: function(scope,element) {\n // Filters for range \n scope.months = [];\n var dateObj = new Date();\n for(var x=1; x<=12; x++) {\n var language = bcp.settings.language === 'en' ? 'en-us' : language === 'pt' ? 'pt-br' : 'pt-br';\n var month = dateObj.toLocaleString(language, { month: 'long' });\n var year = dateObj.getFullYear();\n var numMonth = dateObj.getMonth()+1;\n var id = dateObj.getFullYear().toString() + (numMonth<10?'0'+numMonth.toString():numMonth.toString());\n if(x==1) {\n scope.month = id;\n scope.full_month = month + '/' + year;\n }\n scope.months.push({ id: id, label: month+'/'+year });\n dateObj.setMonth(dateObj.getMonth()-1);\n }\n\n scope.report = function() {\n var month = parseInt(scope.month.substr(4,2))-1;\n var year = parseInt(scope.month.substr(0,4));\n var dateObj = new Date(year,month);\n var full_month = dateObj.toLocaleString(language, { month: 'long' });\n var full_year = dateObj.getFullYear();\n scope.full_month = full_month + '/' + full_year;\n }\n },\n template:'
'\n };\n})\n","angular.module('app.main').directive('ngNewQuestionsNps', function (Api, $translate) {\n return {\n restrict: 'E',\n scope: {},\n replace: true,\n link: function (scope, elm, attr) {\n scope.showAddQuestion = true;\n scope.question = {};\n\n scope.newQuestion = () => {\n scope.question = {\n question_text: '',\n question_type: 'nps',\n question_context: 'class',\n is_required: true\n };\n scope.showAddQuestion = !scope.showAddQuestion;\n };\n\n scope.addQuestion = () => {\n if (scope.question.question_text.length > 0) {\n scope.$parent.saveQuestion(scope.question);\n scope.showAddQuestion = true;\n }\n };\n\n scope.onClose = () => {\n scope.question = {\n question_text: '',\n question_type: 'nps',\n question_context: 'class',\n is_required: true\n };\n scope.showAddQuestion = true;\n };\n },\n template:'
{{ \\'GLOBAL.ADD_QUESTION_NPS\\' | translate }}

'\n };\n});\n","angular.module('app.main').directive('ngNpsModal', function ($q, Api, $translate, formNotify) {\n return {\n restrict: 'E',\n scope: {\n classnps: '='\n },\n replace: true,\n link: function (scope, elm, attr) {\n scope.transition = 0;\n scope.end = false;\n scope.nps = {\n classRate: null,\n classDescription: ''\n };\n scope.decription = '';\n scope.questions = [];\n\n scope.$watch(\n 'classnps',\n function () {\n if (scope.classnps) {\n scope.questions = scope.classnps.available_questions;\n scope.end = false;\n }\n },\n true\n );\n\n scope.onCloseModal = () => {\n $('#npsModal').closeModal();\n scope.transition = 0;\n scope.nps = {\n classRate: null,\n description: ''\n };\n };\n\n scope.onClose = () => {\n scope.end = true;\n scope.sendNPS();\n };\n\n scope.checkValue = (index) => {\n return scope.transition === index || scope.transition > index;\n };\n\n scope.checkNPS = () => {\n if (scope.nps.classRate) {\n return false;\n }\n return true;\n };\n\n scope.sendNPS = () => {\n let index = scope.transition;\n if (scope.questions[index].question_type === 'text' && !scope.nps.description) {\n if (scope.questions[index].is_required) {\n $translate('MESSAGES.MESSAGE_NPS_REQUIRED').then(function (result) {\n App.toastError(result, 5000);\n });\n return;\n } else {\n scope.transition = scope.transition + 1;\n return;\n }\n }\n if (scope.questions[index].question_type === 'nps' && !scope.nps.classRate) {\n if (scope.questions[index].is_required) {\n $translate('MESSAGES.MESSAGE_NPS_REQUIRED').then(function (result) {\n App.toastError(result, 5000);\n });\n return;\n } else {\n scope.transition = scope.transition + 1;\n return;\n }\n }\n scope.loadingNPS = true;\n const npsClass = {\n course_module_id: scope.classnps.module_id,\n course_group_id: scope.selectCourseGroup,\n class_id: scope.classnps.id,\n course_id: scope.classnps.course_id,\n project_id: scope.classnps.project_id,\n rate: scope.nps.classRate,\n description: scope.nps.description,\n question_id: scope.questions[index].id\n };\n postNPS(npsClass);\n };\n\n const postNPS = (nps) => {\n Api.post('user_experience_review', nps, function (err, resp) {\n scope.loadingNPS = false;\n scope.transition = scope.transition + 1;\n\n scope.nps = {\n classRate: null,\n description: ''\n };\n if (!err) {\n if (scope.end) {\n $translate('GLOBAL.SATISFACTION_SURVEY_SUCCESSFULLY').then(function (result) {\n App.toast(result, 5000);\n });\n $('#npsModal').closeModal();\n scope.transition = 0;\n }\n }\n });\n return;\n };\n },\n template:'

{{\\'GLOBAL.SATISFACTION_SURVEY\\' | translate}}

{{ quest.question_text }}

🙁

{{\\'GLOBAL.BAD\\' | translate}}

🤩

{{\\'GLOBAL.EXCELENT\\' | translate}}

  • {{\\'GLOBAL.MAXLENGTH_FIELD\\' | translate}} Max. 500
'\n };\n});\n","angular.module('app.main').directive('platformStream', ['$q', 'Api', '$translate', '$timeout', '$interval', '$window', function ($q, Api, $translate, $timeout, $interval) {\n return {\n restrict: 'A', scope: true, replace: true, link: function (scope, element, attr) {\n scope.audioInputSelected;\n scope.videoSelected;\n scope.newMessage = '';\n scope.viewers = 0;\n scope.disabledChat = true;\n scope.viewers = 0;\n scope.shareCam = true;\n scope.shareAudio = true;\n scope.shareScreen = false;\n scope.hasHardwarePermissions = true;\n scope.newMessage = '';\n scope.messages = [];\n scope.disabledRecord = true;\n scope.startRecord = true;\n scope.showLoading = false;\n let user = scope.$parent.currentUser\n let defaultWidthCanvas = 1280;\n let defaultHeightCanvas = 720;\n let worker = new Worker('/utils/public/worker-timer.js');\n let socket;\n let mediaRecorder;\n let player;\n let promises = [];\n let streamPlaybackUrl;\n let streamServerUrl;\n let streamKey;\n let _stream;\n let context;\n let canvasVideoStream;\n let startedStream = false;\n let displayVideoElement = document.getElementById('display-video');\n let userVideoElement = document.getElementById('user-video');\n let canvasElement = document.getElementById('canvas');\n scope.video = document.getElementById('capture-video');\n scope.video.volume = 0;\n\n startDefaultResolution();\n\n function startDefaultResolution() {\n if (window.screen.height >= 720) {\n defaultWidthCanvas = 1280;\n defaultHeightCanvas = 720;\n } else {\n defaultWidthCanvas = 852;\n defaultHeightCanvas = 480;\n }\n\n canvasVideoStream = canvasElement.captureStream(30);\n scope.video.srcObject = canvasVideoStream;\n resizeCanvas()\n }\n\n worker.onmessage = function () {\n if (startedStream) {\n canvasAnimation();\n }\n }\n\n $('.dropdown-trigger').dropdown();\n $('.collapsible').collapsible();\n\n scope.$watch('hasHardwarePermissions', function () {\n if (!scope.hasHardwarePermissions) {\n $('#giveHardwareAccess').openModal();\n }\n });\n\n scope.$parent.$watch('startedLive', function () {\n if (scope.$parent.startedLive === true) {\n startStreaming();\n }\n });\n\n attr.$observe('streamPlaybackUrl', function () {\n streamPlaybackUrl = attr.streamPlaybackUrl;\n setDisableChat(true);\n scope.messages = [];\n });\n\n attr.$observe('streamServerUrl', function () {\n streamServerUrl = attr.streamServerUrl;\n });\n\n attr.$observe('streamKey', function () {\n streamKey = attr.streamKey;\n });\n\n scope.changeHardwareSettings = function (videoSelected, audioInputSelected, resolution) {\n let reloadStream = false\n if (resolution.height !== defaultHeightCanvas || resolution.width !== defaultWidthCanvas) {\n defaultWidthCanvas = resolution.width;\n defaultHeightCanvas = resolution.height;\n }\n\n if (scope.audioInputSelected.deviceId !== audioInputSelected.deviceId) {\n scope.audioInputSelected = audioInputSelected;\n reloadStream = true\n }\n\n if (scope.videoSelected.deviceId !== videoSelected.deviceId) {\n scope.videoSelected = videoSelected;\n reloadStream = true\n }\n\n if (reloadStream) {\n getOverlaidVideoStreams()\n }\n }\n\n /**\n * Open modal hardware settings\n */\n scope.openHardwareSettings = function () {\n if (scope.hasHardwarePermissions) {\n $('#streamSettings').openModal();\n scope.openModalHardwareSettings = true;\n } else {\n $('#giveHardwareAccess').openModal();\n }\n };\n\n /**\n * set global shareScreen or shareCam to false\n * if shareCam is active call function to draw new canvas\n * @param {string} shareType\n */\n function stopShare(shareType) {\n scope[shareType] = false;\n\n if (shareType === 'shareCam') {\n userVideoElement.srcObject.getVideoTracks().forEach(track => track.stop());\n }\n\n if (shareType === 'shareScreen') {\n displayVideoElement.srcObject.getTracks().forEach(track => track.stop());\n }\n\n if (!scope.shareCam && !scope.shareAudio && !scope.shareScreen) {\n scope.$parent.toggleButtonStartedLive(false)\n }\n }\n\n function activeCanvasShare(stream, typeOfVideoElement) {\n const def = $q.defer();\n typeOfVideoElement.srcObject = stream;\n typeOfVideoElement.play().then(() => {\n def.resolve();\n });\n return def.promise;\n }\n\n function getOverlaidVideoStreams(typeOfShare) {\n let typeOfVideoElement = typeOfShare === 'shareScreen' ? displayVideoElement : userVideoElement;\n\n getStream(typeOfShare).then(function (stream) {\n scope[typeOfShare] = true;\n activeCanvasShare(stream, typeOfVideoElement).then(function () {\n if (scope.shareScreen && (scope.shareCam || scope.shareAudio)) {\n typeOfVideoElement = displayVideoElement;\n }\n startedStream = true;\n addAudioStream();\n }, function () {\n handleError();\n });\n if (scope.shareCam || scope.shareAudio || scope.shareScreen) {\n scope.$parent.toggleButtonStartedLive(true)\n }\n }, function (stream) {\n handleError(stream);\n });\n }\n\n function addAudioStream() {\n if (userVideoElement.srcObject) {\n const userAudioTrack = userVideoElement.srcObject.getAudioTracks()[0];\n canvasVideoStream.addTrack(userAudioTrack);\n }\n }\n\n let baseTime = Date.now();\n let fps = 1000 / 30;\n\n function canvasAnimation() {\n let now = Date.now();\n let check = now - baseTime;\n if (check / fps >= 1) {\n baseTime = now;\n if (scope.shareScreen && scope.shareCam) {\n resizeVideo(context, displayVideoElement)\n const camWidth = userVideoElement.videoWidth;\n const camHeight = userVideoElement.videoHeight;\n const camRatio = camWidth / camHeight;\n const outHeight = canvasElement.height / 4;\n const outWidth = outHeight * camRatio;\n context.drawImage(userVideoElement, canvasElement.width - outWidth - 2, canvasElement.height - outHeight - 2, outWidth, outHeight);\n } else if (scope.shareScreen) {\n resizeVideo(context, displayVideoElement)\n } else if (scope.shareCam) {\n resizeVideo(context, userVideoElement)\n } else {\n context.fillStyle = \"#000000\";\n context.fillRect(0, 0, defaultWidthCanvas, defaultHeightCanvas);\n }\n }\n }\n\n function resizeVideo(context, videoElement) {\n let dx = 0;\n let dy = 0;\n let outWidth = canvasElement.width;\n let outHeight = canvasElement.height;\n let widthRatio = outWidth / videoElement.videoWidth;\n let heightRatio = outHeight / videoElement.videoHeight;\n let ratio = Math.min(widthRatio, heightRatio);\n\n outWidth = videoElement.videoWidth * ratio;\n outHeight = videoElement.videoHeight * ratio;\n\n if (canvasElement.width > outWidth) {\n dx = (canvasElement.width - outWidth) / 2;\n }\n if (canvasElement.height > outHeight) {\n dy = (canvasElement.height - outHeight) / 2;\n }\n\n context.clearRect(0, 0, canvasElement.width, canvasElement.height);\n context.drawImage(videoElement, dx, dy, outWidth, outHeight);\n }\n\n function resizeCanvas() {\n if (window.screen.height > window.screen.width) {\n canvasElement.width = defaultHeightCanvas;\n canvasElement.height = defaultWidthCanvas;\n } else {\n canvasElement.width = defaultWidthCanvas;\n canvasElement.height = defaultHeightCanvas;\n }\n\n context = canvasElement.getContext(\"2d\");\n }\n\n scope.shareRequest = function (typeOfShare) {\n if (scope.hasHardwarePermissions) {\n if (!scope[typeOfShare]) {\n scope.disabledRecord = false;\n getOverlaidVideoStreams(typeOfShare);\n } else {\n stopShare(typeOfShare);\n }\n } else {\n $('#giveHardwareAccess').openModal();\n }\n };\n\n scope.toggleAudio = function () {\n if (scope.hasHardwarePermissions) {\n if (_stream) {\n _stream.getAudioTracks().forEach(track => track.enabled = !scope.shareAudio);\n scope.shareAudio = !scope.shareAudio\n }\n } else {\n $('#giveHardwareAccess').openModal();\n }\n };\n\n scope.toggleCam = function () {\n if (scope.hasHardwarePermissions) {\n if (_stream) {\n _stream.getVideoTracks().forEach(track => track.enabled = !scope.shareCam);\n scope.shareCam = !scope.shareCam\n }\n } else {\n $('#giveHardwareAccess').openModal();\n }\n };\n\n function getStream(typeOfShare) {\n const def = $q.defer();\n\n if (typeOfShare === 'shareScreen') {\n navigator.mediaDevices.getDisplayMedia({\n video: {\n frameRate: {ideal: 30, max: 60}\n },\n audio: true\n }).then((stream) => {\n stream.oninactive = () => {\n stopShare(typeOfShare);\n scope.$apply();\n };\n def.resolve(stream);\n });\n } else {\n const constraints = {\n audio: true,\n video: true\n };\n\n const audioSource = scope.audioInputSelected ? scope.audioInputSelected.deviceId : undefined;\n constraints.audio = {\n deviceId: {exact: audioSource},\n echoCancellation: true\n }\n\n const camSource = scope.videoSelected ? scope.videoSelected.deviceId : undefined;\n constraints.video = {\n width: {min: 160, ideal: 640, max: 1280},\n height: {min: 120, ideal: 480, max: 720},\n deviceId: {exact: camSource},\n frameRate: {ideal: 15, max: 30}\n }\n\n if (_stream) {\n _stream.getTracks().forEach(track => {\n track.stop();\n });\n }\n navigator.mediaDevices.getUserMedia(constraints).then((stream) => {\n _stream = stream;\n if (!scope.shareCam) {\n _stream.getVideoTracks().forEach(track => track.enabled = false);\n }\n if (!scope.shareAudio) {\n _stream.getAudioTracks().forEach(track => track.enabled = false);\n }\n def.resolve(stream);\n }).catch((e) => {\n console.log('error', e)\n });\n }\n return def.promise;\n }\n\n function handleError(error) {\n console.log(error.message, error.name);\n verifyStream(error.name);\n }\n\n function verifyStream(hasStopped) {\n if (hasStopped === 'NotAllowedError' && scope.shareScreen) {\n scope.shareScreen = false;\n }\n }\n\n scope.countViewers = function () {\n const stop = $interval(function () {\n Api.get(`stream/info/${scope.$parent.classId}`, function (err, result) {\n if (!err) {\n scope.viewers = result.response.data.stream.viewer_count;\n }\n });\n }, 20000);\n };\n\n function loader(createElement) {\n return function (url) {\n const deferred = $q.defer();\n if (promises.indexOf(url) === -1) {\n const element = createElement(url);\n element.onload = element.onreadystatechange = function (e) {\n if (element.readyState && element.readyState !== 'complete' && element.readyState !== 'loaded') {\n return;\n }\n deferred.resolve(e);\n };\n element.onerror = function (e) {\n deferred.reject(e);\n };\n promises.push(deferred.promise);\n }\n return deferred.promise;\n };\n }\n\n const loadScript = loader(function (src) {\n const script = document.createElement('script');\n script.src = src;\n document.body.appendChild(script);\n return script;\n });\n\n loadScript('https://player.live-video.net/1.4.1/amazon-ivs-player.min.js');\n\n $q.all(promises).then(function () {\n });\n\n function ivsConnection() {\n if (IVSPlayer.isPlayerSupported && streamPlaybackUrl) {\n player = IVSPlayer.create();\n player.load(streamPlaybackUrl);\n player.play();\n player.setMuted(true);\n\n const PlayerState = IVSPlayer.PlayerState;\n const PlayerEventType = IVSPlayer.PlayerEventType;\n\n player.addEventListener(PlayerState.IDLE, function () {\n console.log(\"Player State - IDLE\");\n });\n\n player.addEventListener(PlayerState.READY, function () {\n console.log(\"Player State - READY\");\n setDisableChat(false);\n scope.showLoading = false;\n });\n\n player.addEventListener(PlayerState.BUFFERING, function () {\n console.log(\"Player State - BUFFERING\");\n });\n\n player.addEventListener(PlayerState.PLAYING, function () {\n console.log(\"Player State - PLAYING\");\n scope.showLoading = false;\n $timeout(function () {\n setDisableChat(false);\n }, 100);\n });\n player.addEventListener(PlayerState.ENDED, function () {\n console.log(\"Player State - ENDED\");\n scope.showLoading = true;\n $timeout(function () {\n startStreaming()\n }, 2000)\n\n $timeout(function () {\n setDisableChat(true);\n }, 100);\n });\n\n player.addEventListener(PlayerEventType.ERROR, function (err) {\n console.warn(\"Player Event - ERROR:\", err);\n if (err && err.code !== 404) {\n scope.showLoading = true;\n }\n $timeout(function () {\n player.load(streamPlaybackUrl);\n player.play();\n }, 2000)\n });\n\n player.addEventListener(PlayerEventType.TEXT_METADATA_CUE, function (cue) {\n const message = JSON.parse(cue.text);\n const metadataText = cue.text;\n\n if (message.userId !== user.user_id) {\n scope.messages.push(JSON.parse(cue.text));\n scrollToBottom();\n }\n\n console.log(`Player Event - TEXT_METADATA_CUE: \"${metadataText}\". Observed after playback started.`);\n });\n\n scope.countViewers();\n }\n }\n\n function scrollToBottom() {\n $timeout(function () {\n $('.messages').scrollTop($('.messages-content').outerHeight() + 50);\n }, 10);\n };\n\n\n const setDisableChat = function (value) {\n scope.disabledChat = value;\n scope.$parent.toggleCanBeCompletedStreaming(value)\n }\n\n scope.parseUrls = function (userInput) {\n const urlRegExp = /(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_.~#?&//=]*)/g;\n let formattedMessage = userInput.replace(urlRegExp, (match) => {\n let formattedMatch = match;\n if (!match.startsWith('http')) {\n formattedMatch = `http://${match}`;\n }\n return `${match}`;\n });\n return formattedMessage;\n };\n\n scope.sendMessage = function (message) {\n if (!message) {\n return;\n }\n\n const data = {\n courseClassId: scope.$parent.classId, message: message\n };\n\n const frontMessage = {\n message: message,\n userId: scope.$parent.currentUser.user_id,\n name: scope.$parent.currentUser.name,\n image: scope.$parent.currentUser.image\n };\n\n scope.newMessage = '';\n Api.post('stream/metadata', data, function (err, result) {\n if (err) {\n $translate('MESSAGES.ERROR_THE_MESSAGE').then((result) => App.toastError(result, 5000));\n return;\n }\n\n scope.messages.push(frontMessage);\n scrollToBottom();\n });\n };\n\n function isOpen(ws) {\n return ws.readyState === ws.OPEN;\n }\n\n /**\n * set stream to the RTMPS converter send to ivs\n */\n function startStreaming() {\n const url = `wss://ivs-upstream.duopana.com:443/rtmps/${streamServerUrl}${streamKey}`;\n socket = new WebSocket(url);\n\n socket.onerror = err => {\n $translate('COURSE.EAD_STREAM_CONNECTION_ERROR').then((result) => App.toastError(result, 5000));\n console.log(\"ERROR-\", err)\n };\n socket.onclose = e => {\n if (!scope.showLoading) {\n $translate('COURSE.EAD_STREAM_CONNECTION_CLOSE').then((result) => App.toastError(result, 10000));\n }\n console.log(\"CLOSE-\", e)\n };\n socket.addEventListener('open', function open(data) {\n console.log(\"Open!!!\", data)\n });\n\n let capturedStream = scope.video.captureStream(30);\n let outputStream = new MediaStream();\n [capturedStream].forEach(function (s) {\n s.getTracks().forEach(function (t) {\n outputStream.addTrack(t);\n });\n });\n\n mediaRecorder = new MediaRecorder(outputStream, {\n mimeType: 'video/webm; codecs=h264,opus',\n videoBitsPerSecond: 3000000,\n audioBitsPerSecond: 128000,\n });\n\n\n mediaRecorder.addEventListener('dataavailable', (e) => {\n if (isOpen(socket)) {\n socket.send(e.data);\n }\n });\n\n mediaRecorder.start(1000);\n\n if (streamPlaybackUrl) {\n ivsConnection();\n }\n }\n\n let userAgent = navigator.userAgent;\n let browserName;\n let nameOffset, verOffset;\n\n if ((verOffset = userAgent.indexOf(\"OPR\")) != -1) {\n browserName = \"Opera\";\n } else if ((verOffset = userAgent.indexOf(\"MSIE\")) != -1) {\n browserName = \"Microsoft Internet Explorer\";\n } else if ((verOffset = userAgent.indexOf(\"Edg\")) != -1) {\n browserName = \"Microsoft Edge\";\n } else if ((verOffset = userAgent.indexOf(\"Chrome\")) != -1) {\n browserName = \"Chrome\";\n } else if ((verOffset = userAgent.indexOf(\"Firefox\")) != -1) {\n browserName = \"Firefox\";\n } else if ((verOffset = userAgent.indexOf(\"Safari\")) != -1) {\n browserName = \"Safari\";\n } else if ((nameOffset = userAgent.lastIndexOf(' ') + 1) < (verOffset = userAgent.lastIndexOf('/'))) {\n browserName = userAgent.substring(nameOffset, verOffset);\n }\n\n scope.fullScreen = function (id) {\n const div = document.getElementById(id);\n if (browserName = 'Safari') {\n div.webkitRequestFullscreen();\n } else if (browserName = 'Microsoft Internet Explorer') {\n div.msRequestFullScreen();\n } else {\n div.requestFullscreen();\n }\n };\n\n getOverlaidVideoStreams()\n\n scope.$on('$destroy', function () {\n if (userVideoElement.srcObject) {\n userVideoElement.srcObject.getTracks().forEach(track => track.stop());\n }\n if (displayVideoElement.srcObject) {\n displayVideoElement.srcObject.getTracks().forEach(track => track.stop());\n }\n if (player) {\n player.delete()\n }\n if (mediaRecorder) {\n mediaRecorder.stop()\n }\n if (socket) {\n socket.close()\n }\n });\n },\n template:'

{{viewers}}

{{\\'COURSE.EAD_STREAM_CONNECTION_LOAD\\' | translate}}
{{message.name}}
{{viewers}}
{{newMessage.length}}/200
'\n };\n}]);\n","let __upvote\nlet __gocomment\nlet __openBookmark\n\nangular.module('app.main').directive('postActions', function (Api, $translate) {\n return {\n restrict: 'A',\n scope: {\n id: '@id',\n upvotecount: '@upvotecount',\n commentcount: '@commentcount',\n // $parent.upvoted: '@',\n url: '@url',\n mode: '@',\n },\n controller: function ($scope) {\n $scope.data = {}\n $scope.inform_sent = false\n $scope.informReady = function () {\n $scope.inform_sent = false\n $scope.data.name = $scope.$parent.currentUser ? $scope.$parent.currentUser.name : ''\n $scope.data.email = $scope.$parent.currentUser ? $scope.$parent.currentUser.email : ''\n $scope.data.motive = ''\n $scope.data.obs = ''\n $scope.data.motive_other = ''\n $scope.data.article_id = $scope.$parent.article_id\n $scope.data.title = $('h1[itemprop=\"headline\"]').text()\n $scope.data.author = $('span.author-name a').attr('href').replace(/\\//, '')\n $scope.data.link = window.location.href.split('/').pop()\n $scope.data.published = $('.post__title span.author-time span.date-time').attr('data-timestamp')\n $translate('SHARED.NOT_REGISTER').then(function (result) {\n $scope.data.username = $scope.$parent.currentUser && $scope.$parent.currentUser.slug ? $scope.$parent.currentUser.slug : result\n });\n\n }\n $scope.sendInform = function (data) {\n if (!$scope.data.motive) {\n $translate('SHARED.SEND_INFO_ERROR').then(function (result) {\n Materialize.toast(result, 2000)\n });\n\n return\n }\n if ($scope.$parent.currentUser && $scope.$parent.currentUser.user_id) {\n data.user_id = $scope.$parent.currentUser.user_id\n }\n data.article_id = $scope.id;\n Api.post('article/report', data, function (err, result) {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function') _bmtrack('article_reject')\n $scope.inform_sent = true\n })\n }\n\n $scope.$parent.upvoted = false\n if ($scope.$parent.currentUser && $scope.$parent.currentUser.up_article) {\n if ($scope.$parent.currentUser.up_article.indexOf($scope.id) > -1) {\n $scope.$parent.upvoted = true\n }\n }\n\n $scope.$parent.bookmarked = false\n if ($scope.$parent.currentUser && $scope.$parent.currentUser.bookmarked_articles) {\n if ($scope.$parent.currentUser.bookmarked_articles.indexOf($scope.id) > -1) {\n $scope.$parent.bookmarked = true;\n }\n }\n\n $scope.gocomment = function () {\n window.location.href = window.location.href.split('#')[0] + '#comments'\n }\n __openBookmark = $scope.openBookmark = function () {\n if (!$scope.$parent.currentUser) {\n $scope.$parent.authModal('bookmark')\n } else {\n $scope.bookmark();\n }\n }\n $scope.searchList = ''\n var user = $scope.$parent.currentUser ? $scope.$parent.currentUser : false\n $scope.bookmarks = user.bookmark ? user.bookmark : []\n // Create list\n $scope.addBookmark = function (list) {\n if (list == undefined) {\n $translate('SHARED.ERROR_LIST_NAME').then(function (result) {\n Materialize.toast(result, 2000)\n });\n Api.post('user/bookmark_save', list, function (err, data) {\n if (!err) {\n var list_id = data.response\n if ($scope.bookmarks.indexOf(list_id) == -1) {\n $scope.bookmarks.push({ _id: list_id, title: list.title, public: list.public ? 1 : 0, count: 0 })\n user.bookmark = $scope.bookmarks\n $scope.$parent.changeUser(user)\n $scope.item.title = ''\n }\n } else {\n // Materialize.toast(TXT[data.response], 2000)\n }\n })\n }\n }//\n // Add item in list\n $scope.bookmark = function (index) {\n if (!user) {\n $scope.$parent.authModal('bookmark')\n } else {\n if ($scope.$parent.bookmarked) {\n Api.delete(`user/bookmarks/article/${$scope.id}`, function (err, data) {\n if (data.status && data.status == 200) {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function')\n _bmtrack('bookmark')\n user.bookmark = $scope.bookmarks\n $scope.$parent.bookmarked = false;\n $scope.$parent.changeUser(user)\n }\n })\n } else {\n Api.put(`user/bookmarks`, { article_id: $scope.id }, function (err, data) {\n if (data.status && data.status == 200) {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function')\n _bmtrack('bookmark')\n user.bookmark = $scope.bookmarks\n $scope.$parent.bookmarked = true;\n $scope.$parent.changeUser(user)\n }\n })\n }\n }\n }\n __upvote = $scope.upvote = function () {\n if (!$scope.$parent.currentUser) {\n ''\n $scope.$parent.authModal('upvote')\n } else {\n Api.post('article/vote', { article_id: $scope.id, action: 'up' }, function (err, data) {\n if (data.status) {\n var index = $scope.$parent.currentUser.up_article.indexOf($scope.id)\n if (index == -1) {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function') _bmtrack('upvote_article')\n $scope.$parent.currentUser.up_article.push($scope.id)\n $scope.$parent.changeUser($scope.$parent.currentUser)\n $scope.upvotecount = parseInt($scope.upvotecount) + 1\n $scope.$parent.upvoted = true\n // $scope.articleIsVoted = true;\n } else {\n $scope.$parent.currentUser.up_article.splice(index, 1)\n $scope.$parent.changeUser($scope.$parent.currentUser)\n $scope.upvotecount = parseInt($scope.upvotecount) - 1\n $scope.$parent.upvoted = false\n }\n // App.toast(TXT[data.response], 2000)\n }\n // xunxo do xunxo pra atualizar o contador de likes\n const $likecounter = $('.likecounter')\n if ($likecounter.length > 0) {\n $likecounter.html(\n $scope.$parent.upvoted ? +$likecounter.html() + 1 : +$likecounter.html() - 1\n )\n }\n })\n }\n }\n },\n template:'

{{ \\'SHARED.POSTACTIONS_MODAL_TITLE\\' | translate }}

{{ \\'SHARED.POSTACTIONS_MODAL_CREATEANEWLIST\\' | translate }}
  • {{errorMessage.text}}

{{ \\'SHARED.POSTACTIONS_MODAL_ADVICEPUBLICLIST\\' | translate }}
{{ \\'SHARED.POSTACTIONS_MODAL_REPORTABUSE\\' | translate }}

{{ \\'SHARED.POSTACTIONS_MODAL_TKSREPORT\\' | translate }}
{{ \\'SHARED.POSTACTIONS_MODAL_OURTEAM\\' | translate }}

{{ \\'SHARED.POSTACTIONS_MODAL_COMPLETEINFO\\' | translate }}

  • {{errorMessage.text}}
  • {{errorMessage.text}}
{{ \\'SHARED.POSTACTIONS_MODAL_WHY\\' | translate }}

  • {{errorMessage.text}}
{{ \\'SHARED.POSTACTIONS_MODAL_REMARKSOPTIONAL\\' | translate }}
  • {{errorMessage.text}}
{{ \\'GLOBAL.BTN_CLOSE\\' | translate }}
'\n }\n})\n","angular.module('app.main').directive('ngRecipeDescription', function($compile, $translate) {\n return {\n restrict: 'A',\n scope: {\n article: '=ngArticle',\n form: '='\n },\n replace: true,\n link: function (scope, elm, attr) {\n const recipe = {\n portions: '',\n total_time: '',\n description:'',\n ingredients: [],\n stages: [],\n \n };\n scope.article.recipe = scope.article.recipe ? scope.article.recipe : recipe;\n\n scope.time_mask = \"^([0-9][0-9]):[0-9][0-9]$\";\n \n\n\n },\n template:'
  • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
{{\\'SHARED.PORTIONS\\' | translate}}
  • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
  • {{\\'GLOBAL.TIME_FIELD\\' | translate }}
horas:min
  • {{\\'GLOBAL.MAXLENGTH_FIELD\\' | translate}} Max. 500
'\n }\n})","angular.module('app.main').directive('ngRecipeInfos', function($compile, $translate) {\n return {\n restrict: 'A',\n scope: {\n article: '=ngArticle',\n form: '='\n },\n replace: true,\n link: function ($scope, elm, attr) {\n $scope.informations = \"\";\n },\n template:'
'\n }\n})","angular.module('app.main').directive('ngRecipeIngredients', function(Api, $compile, $translate) {\n return {\n restrict: 'A',\n scope: {\n article: '=ngArticle',\n form: '='\n },\n replace: true,\n link: function (scope, elm, attr) {\n\n // Change sort\n scope.sort = function () {\n let sort = [];\n $('.collection-sortable-ingredient > li').each(function () {\n sort.push($(this));\n });\n\n scope.article.recipe.ingredients = sort;\n };\n scope.sortableOptions = {\n update: function (e, ui) {\n scope.sort();\n },\n };\n\n scope.ingredients = (scope.article.recipe && scope.article.recipe.ingredients)? scope.article.recipe.ingredients : [];\n scope.item = null;\n scope.unities = [];\n scope.new_ingredient = {\n \"name\" : \"\",\n \"quantity\" : \"\",\n \"unit\" : \"\",\n \"stage\":\"\",\n \"editable\": false,\n \"unit_text\": false,\n };\n \n scope.addIngredient = function(){\n if (scope.new_ingredient.name.length) {\n\n if (!scope.new_ingredient.stage.length){\n return $translate('SHARED.STEPS_INGREDIENT_ERROR_MESSAGE').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n scope.ingredients.push(scope.new_ingredient);\n const index = scope.ingredients.indexOf(scope.new_ingredient);\n\n scope.ingredients[index].stage.forEach(function(item){\n let item_stage = scope.article.recipe.stages.find(x => x.title === item);\n item_stage.linked_ingredients.push(index);\n });\n scope.new_ingredient = {\n \"name\" : \"\",\n \"quantity\" : \"\",\n \"unit\" : \"\",\n \"stage\": \"\"\n };\n scope.article.recipe.ingredients = scope.ingredients;\n }\n else {\n return $translate('SHARED.INGREDIENT_ERROR_MESSAGE').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n };\n\n scope.removeConfirm = function(item){\n if (item.stage.length) {\n $('#modalRemoveIngredient').openModal();\n scope.item = item;\n return\n }\n return $scope.removeStage(stage);\n };\n\n scope.removeIngredient = function(item){\n $('#modalRemoveIngredient').closeModal()\n const index = scope.article.recipe.ingredients.indexOf(item);\n scope.article.recipe.ingredients[index].stage.forEach(function(item){\n let item_stage = scope.article.recipe.stages.find(x => x.title === item);\n let stage_idex = item_stage.linked_ingredients.indexOf(index);\n item_stage.linked_ingredients.splice(stage_idex, 1);\n });\n\n scope.ingredients.splice(index,1);\n scope.article.recipe.ingredients = scope.ingredients;\n };\n\n scope.editStep = function(item){\n item.editable = true;\n };\n\n scope.saveStep = function(item){\n if (item.name.length) {\n\n if (!item.stage.length){\n return $translate('SHARED.STEPS_INGREDIENT_ERROR_MESSAGE').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n item.editable = false;\n }\n else {\n return $translate('SHARED.INGREDIENT_ERROR_MESSAGE').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n };\n\n scope.getNameIngredient = function(item) {\n try {\n if (item.unit) {\n let unit_item = scope.unities.find(x => x.name === item.unit);\n return `${item.quantity} ${unit_item.unit} - ${item.name} (${item.stage})`;\n }\n else {\n return `${item.name}`;\n }\n } catch (e){\n return \"\";\n }\n\n };\n\n scope.changeInputQuantity = function() {\n if (scope.new_ingredient.unit === \"cup\" || scope.new_ingredient.unit === \"coffe_cup\" || scope.new_ingredient.unit === \"tea_cup\" || scope.new_ingredient.unit === \"saucer\"){\n scope.new_ingredient.unit_text = true;\n }\n else {\n scope.new_ingredient.unit_text = false;\n }\n }\n\n const getConstants = function () {\n\n Api.get('constants/?types=recipe_ingredient_units', function (err, ret) {\n if (!err) {\n scope.unities = ret.response.data;\n }\n\n })\n };\n getConstants();\n\n },\n template:'
{{\\'SHARED.INGREDIENTES_RECIPE_DECRIPTION\\' | translate}}
  • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
  • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
    • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
    • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}

{{ \\'SHARED.MODAL_HEADER_REMOVE_INGREDIENT\\' | translate }}

{{ \\'SHARED.MODAL_REMOVE_INGREDIENT\\' | translate }}: {{ s }},

{{ \\'SHARED.MODAL_REMOVE_INGREDIENT2\\' | translate }}

{{ \\'GLOBAL.BTN_CANCEL\\' | translate }}
'\n }\n})\n","angular.module('app.main').directive('ngRecipePictures', function($compile, $translate) {\n return {\n restrict: 'A',\n scope: {\n article: '=ngArticle',\n form: '='\n },\n replace: true,\n link: function ($scope, elm, attr) {\n $scope.new_step = {\n \"description\" : '',\n \"image\" : '',\n \"url_image\": '',\n \"open\": false,\n };\n\n $scope.bcp_static_path = window.bcp.static_path;\n\n $scope.addStepDescription = function(stage){\n if ($scope.new_step.description.length > 0) {\n if (!stage.steps) stage.steps = [];\n stage.steps.push($scope.new_step);\n $scope.new_step = {\n \"description\" : '',\n \"image\" : '',\n \"url_image\": '',\n };\n }\n else {\n return $translate('CONTENT.ARTICLE_INVALID_RECIPE_STEP').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n };\n\n $scope.selected = function (item) {\n\n if(item.image.size > 8000000) {\n item.image = ''\n $translate(`MESSAGES.OVER15MB`).then(function (result) {\n App.toast(result, 3000)\n });\n return;\n }\n if (item.image && /image\\//.test(item.image.type)){\n item.url_image = item.image\n }\n else {\n if (item.image) {\n $translate(`MESSAGES.ONLY_IMAGE_FILES`).then(function (result) {\n App.toast(result, 3000)\n });\n }\n item.image = ''\n }\n }\n },\n template:'
{{\\'SHARED.PICTURES_RECIPE_DESCRIPTION\\' | translate}}
1:1
16:9
'\n }\n})","angular.module('app.main').directive('ngRecipeStageStep', function($compile, $translate) {\n return {\n restrict: 'A',\n scope: {\n article: '=ngArticle',\n form: '='\n },\n replace: true,\n link: function ($scope, elm, attr) {\n $scope.new_step = {\n \"description\" : '',\n \"image\" : '',\n \"url_image\": '',\n \"open\": false,\n };\n\n $scope.bcp_static_path = window.bcp.static_path;\n\n $(document).ready(function(){\n $('.collapsible').collapsible();\n });\n $scope.addStepDescription = function(stage){\n if ($scope.new_step.description.length > 0) {\n if (!stage.steps) stage.steps = [];\n stage.steps.push($scope.new_step);\n $scope.new_step = {\n \"description\" : '',\n \"image\" : '',\n \"url_image\": '',\n };\n }\n else {\n return $translate('CONTENT.ARTICLE_INVALID_RECIPE_STEP').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n };\n\n $scope.removeStep = function(stage, step){\n const index = stage.steps.indexOf(step);\n stage.steps.splice(index,1);\n };\n\n $scope.editStep = function(step){\n step.editable = true;\n };\n\n $scope.saveStep = function(step){\n step.editable = false;\n };\n\n $scope.collapsibleIcon = function (step) {\n step.open = !step.open;\n }\n $scope.selected = function (item) {\n\n if(item.image.size > 8000000) {\n item.image = ''\n $translate(`MESSAGES.OVER15MB`).then(function (result) {\n App.toast(result, 3000)\n });\n return;\n }\n if (item.image && /image\\//.test(item.image.type)) item.url_image = item.image\n else {\n if (item.image) {\n $translate(`MESSAGES.ONLY_IMAGE_FILES`).then(function (result) {\n App.toast(result, 3000)\n });\n }\n item.image = ''\n }\n }\n },\n template:'
{{\\'SHARED.STEPS_DESCRIPTION_HELP_RECIPE_TITLE\\' | translate}} {{\\'SHARED.RECIPE_STEP_REQUIRED\\' | translate}}
  • {{stage.title}}
    • {{ \\'CONTENT.ADD_IMAGE\\' | translate }}
      • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
    • {{ \\'CONTENT.ADD_IMAGE_OPTIONAL\\' | translate }}
      • {{\\'GLOBAL.REQUIRED_FIELD\\' | translate}}
'\n }\n})","angular.module('app.main').directive('ngRecipeStages', function($compile, $translate) {\n return {\n restrict: 'A',\n scope: {\n article: '=ngArticle',\n form: '='\n },\n replace: true,\n link: function ($scope, elm, attr) {\n $scope.stages = ($scope.article.recipe && $scope.article.recipe.stages)? $scope.article.recipe.stages : [];\n $scope.stage = null;\n\n $scope.new_stage = {\n \"title\" : '',\n \"linked_ingredients\" : [],\n \"steps\" : [],\n \"editable\": false,\n };\n\n // Set stage in ingredient item\n $scope.setStageIngredient = function() {\n $scope.stages.forEach(function (element) {\n element.linked_ingredients.forEach(function (item) {\n if (!$scope.article.recipe.ingredients[item].stage){\n $scope.article.recipe.ingredients[item].stage = [];\n }\n $scope.article.recipe.ingredients[item].stage.push(element.title);\n })\n });\n }\n\n $scope.setStageIngredient();\n \n $scope.addStage = function(){\n if ($scope.new_stage.title.length > 0) {\n $scope.stages.push($scope.new_stage);\n $scope.new_stage = {\n \"title\" : '',\n \"linked_ingredients\" : [],\n \"steps\" : [],\n \"editable\": false,\n };\n $scope.article.recipe.stages = $scope.stages;\n }\n else {\n return $translate('SHARED.STEPS_ERROR_MESSAGE').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n };\n\n $scope.removeConfirm = function(stage){\n if (stage.linked_ingredients.length) {\n $('#modalRemoveStage').openModal();\n $scope.stage = stage;\n return\n }\n return $scope.removeStage(stage);\n };\n\n $scope.removeStage = function(stage){\n $('#modalRemoveStage').closeModal()\n const index = $scope.stages.indexOf(stage);\n\n $scope.article.recipe.stages[index].linked_ingredients.forEach(function(index_item) {\n const stage_index = $scope.article.recipe.ingredients[index_item].stage.findIndex(x => x === stage.title);\n $scope.article.recipe.ingredients[index_item].stage.splice(stage_index, 1);\n });\n $scope.stages.splice(index,1);\n \n $scope.article.recipe.stages = $scope.stages;\n\n };\n\n $scope.editStage = function(stage){\n stage.editable = true;\n };\n\n $scope.saveStage = function(stage){\n stage.editable = false;\n };\n\n // Change sort\n $scope.sort = function () {\n let sortStep = [];\n $('.collection-sortable-stage > li').each(function () {\n sortStep.push($(this));\n });\n $scope.article.recipe.stages = sortStep;\n };\n $scope.sortableOptions = {\n update: function (e, ui) {\n $scope.sort();\n },\n };\n },\n template:'
{{\\'SHARED.STEPS_RECIPE_DECRIPTION\\' | translate}}
  • {{\\'GLOBAL.MAXLENGTH_FIELD\\' | translate}} Max. 100
  • {{stage.title}}

{{ \\'SHARED.MODAL_HEADER_REMOVE_STAGE\\' | translate }}

{{ \\'SHARED.MODAL_REMOVE_STAGE\\' | translate }}

{{ \\'GLOBAL.BTN_CANCEL\\' | translate }}
'\n }\n})","angular.module('app.main').directive('recordedVideo', ['$q', 'Api', '$translate', '$timeout', function ($q, Api, $translate, $timeout) {\n return {\n restrict: 'A',\n scope: true,\n replace: true,\n link: function (scope, element, attr) {\n let videoJSPlayer;\n\n const loadAndPlay = function () {\n videoJSPlayer.src(scope.video_src);\n }\n\n const loader = function (createElement) {\n return function (url) {\n const deferred = $q.defer();\n if (promises.indexOf(url) === -1) {\n const element = createElement(url);\n element.onload = element.onreadystatechange = function (e) {\n if (element.readyState && element.readyState !== 'complete' && element.readyState !== 'loaded') {\n return;\n }\n deferred.resolve(e);\n };\n element.onerror = function (e) {\n deferred.reject(e);\n };\n promises.push(deferred.promise);\n }\n\n return deferred.promise;\n };\n }\n\n const loadScript = loader(function (src) {\n const script = document.createElement('script');\n script.src = src;\n document.body.appendChild(script);\n return script;\n });\n\n const loadCSS = loader(function (href) {\n const style = document.createElement('link');\n style.rel = 'stylesheet';\n style.type = 'text/css';\n style.href = href;\n document.head.appendChild(style);\n return style;\n });\n\n const readyCallback = function () {\n window.videoJSPlayer = videoJSPlayer;\n const recordedVideo = videoJSPlayer.getIVSPlayer();\n const videoContainerEl = document.querySelector('#amazon-ivs-videojs');\n const playerState = videoJSPlayer.getIVSEvents().PlayerState;\n const playerEventType = videoJSPlayer.getIVSEvents().PlayerEventType;\n\n videoContainerEl.addEventListener(\"click\", () => {\n if (videoJSPlayer.paused()) {\n videoContainerEl.classList.remove(\"vjs-has-started\");\n } else {\n videoContainerEl.classList.add(\"vjs-has-started\");\n }\n });\n\n videoJSPlayer.enableIVSQualityPlugin();\n videoJSPlayer.volume(0.5);\n scope.video_src = attr.recordedVideo;\n loadAndPlay();\n };\n\n let promises = [];\n loadCSS('/utils/public/video-js/video-js.min.css');\n loadScript('/utils/public/video-js/video.min.js');\n loadScript('https://player.live-video.net/1.2.0/amazon-ivs-videojs-tech.min.js');\n loadScript('https://player.live-video.net/1.2.0/amazon-ivs-quality-plugin.min.js');\n\n $q.all(promises).then(function () {\n registerIVSTech(videojs);\n registerIVSQualityPlugin(videojs);\n\n videoJSPlayer = videojs(\"amazon-ivs-videojs\", {\n techOrder: [\"AmazonIVS\"],\n controlBar: {\n playToggle: {\n replay: false\n },\n pictureInPictureToggle: false\n }\n });\n videoJSPlayer.ready(readyCallback);\n });\n\n attr.$observe('recordedVideo', function () {\n scope.video_src = attr.recordedVideo;\n if (videoJSPlayer) {\n loadAndPlay();\n }\n });\n\n scope.$on('$destroy', function () {\n if(videoJSPlayer){\n videoJSPlayer.dispose()\n }\n });\n },\n template:'
'\n }\n}]);\n","angular.module('app.main').directive('sendFeedback', function (Api) {\n return {\n restrict: 'A',\n controller: function ($scope) {\n $scope.feedback_sent = false\n $scope.data = {}\n $scope.feedbackReady = function () {\n $scope.data.name = $scope.$parent.currentUser ? $scope.$parent.currentUser.name : ''\n $scope.data.email = $scope.$parent.currentUser ? $scope.$parent.currentUser.email : ''\n $scope.data.message = ''\n $scope.feedback_sent = false\n }\n\n // Send feedback\n $scope.feedback = function (data) {\n if ($scope.$parent.currentUser && $scope.$parent.currentUser.user_id) {\n data.user_id = $scope.$parent.currentUser.user_id\n }\n Api.post('common/feedback', data, function (err, result) {\n $scope.feedback_sent = true\n if (_bmtrack && typeof _bmtrack === 'function') {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function') _bmtrack('lead')\n }\n })\n }\n },\n template:'

{{ \\'SHARED.SENDFEEDBACK_TITLE\\' | translate }}

{{ \\'SHARED.SENDFEEDBACK_SUCCESS\\' | translate }}

{{ \\'SHARED.SENDFEEDBACK_TKS\\' | translate }}

{{ \\'SHARED.SENDFEEDBACK_REVIEW\\' | translate }}

  • {{errorMessage.text}}
  • {{errorMessage.text}}
  • {{errorMessage.text}}
{{ \\'GLOBAL.BTN_CANCEL\\' | translate }} {{ \\'GLOBAL.BTN_CLOSE\\' | translate }}
'\n }\n})\n","angular.module('app.main').directive('shareButtons', function ($window) {\n return {\n restrict: 'A',\n controller: function ($scope) {\n var meta = $window.document.getElementsByTagName('meta')\n $scope.social = {}\n $scope.social.url = ''\n $scope.social.title = ''\n $scope.social.description = ''\n $scope.social.image = ''\n\n for (var k in meta) {\n var item = meta[k]\n if (item.outerHTML) {\n if (item.outerHTML.indexOf('og:title') !== -1) $scope.social.title = item.content\n if (item.outerHTML.indexOf('og:image') !== -1) $scope.social.image = item.content\n if (item.outerHTML.indexOf('og:url') !== -1) $scope.social.url = item.content + '?utm_campaign=' + user_id\n if (item.outerHTML.indexOf('og:description') !== -1) $scope.social.description = item.content\n }\n }\n\n var userAgent = $window.navigator.userAgent\n $scope.showWhatsapp = /android|iphone/i.test(userAgent)\n $scope.navigatorShare = navigator.share;\n\n // Share buttons\n $scope.share = function (social) {\n\n var url = ''\n if (social == 'facebook') {\n url = 'http://www.facebook.com/sharer.php?u=URL'\n } else if (social == 'twitter') {\n url = 'http://twitter.com/intent/tweet?text=TITLE+URL'\n } else if (social == 'linkedin') {\n url = 'http://www.linkedin.com/shareArticle?mini=true&url=URL&title=TITLE'\n } else if (social == 'google') {\n url = 'https://plus.google.com/share?url=URL'\n } else if (social == 'pinterest') {\n url = 'http://pinterest.com/pin/create/button/?url=URL&media=IMAGE&description=DESCRIPTION'\n } else if (social == 'whatsapp') {\n url = 'whatsapp://send?text=URL'\n }\n\n url = url.replace(/TITLE/, encodeURIComponent($scope.social.title))\n url = url.replace(/URL/, encodeURIComponent($scope.social.url + `&utm_source=${social}_share&utm_medium=social`))\n url = url.replace(/DESCRIPTION/, encodeURIComponent($scope.social.description))\n url = url.replace(/IMAGE/, encodeURIComponent($scope.social.image))\n\n $window.open(url, 'sharer', 'toolbar=0,status=0,width=400,height=300' + ',top=' + (($window.innerHeight - 300) / 2) + ',left=' + (($window.innerWidth - 400) / 2))\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function') _bmtrack('share')\n }\n\n $scope.nativeShare = function() {\n navigator.share({\n title: $scope.social.title,\n url: $scope.social.url \n });\n }\n },\n template:''\n }\n})\n","angular.module('app.main').directive('snippetBioCard', function ($compile, $window, Api, $timeout, $translate) {\n return {\n restrict: 'A',\n scope: {\n user: '@'\n },\n link: function (scope, elements) {\n // $.get('https://static-01.com/users/'+scope.user+'/name.end',function(resp) {\n // $('.biocard-'+scope.user).find('.biocard-name').html(resp);\n // });\n // $.get('https://static-01.com/users/'+scope.user+'/image.end',function(resp) {\n // $('.biocard-'+scope.user).find('.biocard-image').html(resp);\n // });\n // $.get('https://static-01.com/users/'+scope.user+'/info.end',function(resp) {\n // $('.biocard-'+scope.user).find('.biocard-info').html(resp);\n // });\n // $.get('https://static-01.com/users/'+scope.user+'/counters_'+_bcp+'.end',function(resp) {\n // $('.biocard-'+scope.user).find('.biocard-counters').html(resp);\n // $compile($('.biocard-'+scope.user).find('.biocard-counters').contents())(scope);\n // });\n\n $translate('GLOBAL.FOLLOW').then(function (result) {\n scope.FOLLOW = result\n });\n\n var user_follow = []\n var user_id = scope.user\n\n // Check if user is followed\n if (!scope.$parent.currentUser) {\n $translate('GLOBAL.FOLLOW').then(function (result) {\n scope.FOLLOW = result\n });\n } else {\n user_follow = scope.$parent.currentUser && scope.$parent.currentUser.follow ? scope.$parent.currentUser.follow : []\n if (user_id == scope.$parent.currentUser.user_id) {\n $translate('GLOBAL.EDIT').then(function (result) {\n scope.FOLLOW = result\n });\n } else if (user_follow.indexOf(user_id) == -1) {\n $translate('GLOBAL.FOLLOW').then(function (result) {\n scope.FOLLOW = result\n });\n } else {\n $translate('GLOBAL.FOLLOWING').then(function (result) {\n scope.FOLLOW = result\n });\n }\n }\n\n // Follow / Unfollow user\n scope.follow_user = function () {\n var user = scope.$parent.currentUser\n if (!scope.$parent.currentUser) {\n var user_image = $('.biocard-' + scope.user).find('.biocard-image img') ? $('.biocard-' + scope.user + ':eq(0)').find('.biocard-image img').attr('src') : 'https://cd01.redesign.static-01.com/images/avatar-bg.png'\n if ($('.biocard-' + scope.user).find('.biocard-name').length) {\n scope.$parent.authModal('follow_user', user_image, $('.biocard-' + scope.user + ':eq(0)').find('.biocard-name').text())\n } else {\n $translate('GLOBAL.THIS_USER').then(function (result) {\n scope.$parent.authModal('follow_user', user_image, result)\n }, function (translationId) {\n scope.$parent.authModal('follow_user', user_image, translationId)\n });\n }\n } else if (scope.$parent.currentUser.user_id == user_id) {\n $window.location.href = '/manage.app#!/panel/profile'\n } else {\n Api.get(`user/follow/${user_id}`, function (err, data) {\n var total_follow = Math.round($('.biocard-' + user_id + ':eq(0)').find('.biocard-counters .followed-count').text())\n if (data.status) {\n if (data.response == 'USER_FOLLOW_REMOVED') {\n user_follow.splice(user_follow.indexOf(user_id), 1)\n scope.FOLLOW = 'SEGUIR'\n $('.biocard-' + user_id).find('.biocard-counters .followed-count').html(total_follow - 1)\n user.follow = user_follow\n scope.$parent.changeUser(user)\n } else if (data.response == 'USER_FOLLOW_ADDED') {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function') _bmtrack('user_follow')\n if (user_follow.indexOf(scope.user_id) == -1) user_follow.push(user_id)\n scope.FOLLOW = 'SEGUINDO'\n $('.biocard-' + user_id).find('.biocard-counters .followed-count').html(total_follow + 1)\n user.follow = user_follow\n scope.$parent.changeUser(user)\n } else {\n Materialize.toast(TXT[data.response], 2000)\n }\n }\n })\n }\n }\n },\n template:'

'\n }\n})\n","angular.module('app.main').directive('snippetBlogList', function (Api, $timeout, ROLES, PROJECT_PATH) {\n return {\n restrict: 'A',\n scope: {\n blog_data: '=ngBlog',\n context: '@ngContext'\n },\n link: function (scope, element) {\n scope.ROLES = ROLES\n scope.image_path = PROJECT_PATH\n },\n template:'
{{blog_data.title}} ({{ \\'SHARED.SNIPPETBLOGLIST_YOUARE\\' | translate }} {{ ROLES[ blog_data.owner ? \\'OWNER\\' : blog_data.role ].label}}) {{blog_data.title}} ({{ \\'SHARED.SNIPPETBLOGLIST_YOUARE\\' | translate }} {{ ROLES[ blog_data.owner ? \\'OWNER\\' : blog_data.role ].label}}) {{ blog_data.url | stripHttp }}
'\n }\n})\n","angular.module('app.main').directive('snippetPostList', function (Api, $timeout, PROJECT_PATH, HOSTNAME,$translate) {\n return {\n restrict: 'A',\n scope: {\n page_id: '=ngGroup',\n user_id: '=ngAuthor'\n },\n link: function (scope, element) {\n scope.hostname = HOSTNAME\n scope.image_path = PROJECT_PATH\n scope.default_blog = scope.$parent.BCSETUP.shared_posts\n // Default settings\n scope.articles = []\n scope.currentPage = 1\n scope.noresults = false\n scope.last = true\n var list_filter = {\n 'page_size': 20\n }\n var count_filter = {}\n // Filters for posts\n scope.filters = [\n { title: '', count: 0, value: 'SELF' },\n { title: '', count: 0, value: 'ALL' },\n { title: '', count: 0, value: 'PENDING' }\n ]\n $translate('SHARED.MY_PUBLICATIONS').then(function (result) {\n scope.filters[0] = result\n });\n $translate('SHARED.ALL_PUBLICATIONS').then(function (result) {\n scope.filters[1] = result\n });\n $translate('SHARED.TO_APPROVE').then(function (result) {\n scope.filters[2] = result\n });\n \n // Text search\n scope.search = function (mode, kw) {\n if (!scope.kw){\n return $translate('SHARED.POST_LIST_ERROR_SEARCH').then(function (result) {\n Materialize.toast(result, 2000)\n });\n }\n scope.listPosts(1, mode)\n }\n\n scope.next = function (page, mode, kw) {\n page++\n scope.listPosts(page, mode, kw)\n }\n\n // Post counter\n var counter = function (obj) {\n count_filter.filter = obj.value\n Api.get(`article/counter?${$.param(count_filter)}`, function (err, data) {\n if (!err) obj.count = data.response\n })\n }\n\n // Post list\n scope.listPosts = function (page, mode, kw) {\n if (!page) page = 1\n if (mode != undefined && mode != null) {\n if (page == 1) {\n scope.articles = []\n }\n list_filter.mode = mode\n list_filter.filter = kw\n list_filter.page = page\n scope.searchStatus = mode\n list_filter.page = page\n list_filter.type = 'blog'\n scope.last = true\n scope.currentPage = page\n scope.searchKw = kw\n Api.get(`article/list?${$.param(list_filter)}`, function (err, resp) {\n if (!err) {\n scope.noresults = resp.response.data.length > 0 ? false : true\n scope.articles = scope.articles.concat(resp.response.data)\n scope.last = resp.response.total == scope.articles.length ? true : false\n }\n })\n // Only get totals for filters\n for (var i = 0; i < scope.filters.length; i++) {\n counter(scope.filters[i])\n }\n }\n }\n // Call post list for ALL articles on first page\n scope.searchStatus = 'SELF'\n if (scope.user_id) {\n list_filter['user-id'] = scope.user_id\n scope.searchStatus = 'ALL'\n }\n if (scope.page_id) {\n list_filter['id'] = scope.page_id\n scope.searchStatus = 'ALL'\n }\n scope.listPosts(1, scope.searchStatus)\n\n // Delete post\n scope.delete = function (article_id, page, status, kw) {\n Api.delete(`article/delete/${article_id}`, function (err, data) {\n if (!err) {\n $translate('MESSAGES.'+data.response).then(function (result) {\n Materialize.toast(result, 2000)\n });\n scope.listPosts(page, status, kw)\n }\n })\n }\n scope.moveList = []\n scope.move_articles = []\n scope.moveReady = function () {\n Api.get(`article/list?user_id=${scope.$parent.currentUser.user_id}¬_page_id=${scope.page_id}&status=PUBLISHED`, function (err, resp) {\n if (!err) {\n scope.moveList = resp.response.data\n scope.moveNoresults = resp.response.data.length == 0 ? true : false\n }\n })\n }\n scope.manageMove = function (article_id) {\n if (scope.move_articles.indexOf(article_id) === -1) {\n scope.move_articles.push(article_id)\n } else {\n delete scope.move_articles[scope.move_articles.indexOf(article_id)]\n }\n }\n // Move posts\n scope.move = function (page_id, articles) {\n Api.post('article/move', {page_id: page_id, articles: articles}, function (err, data) {\n if (!err) {\n $translate('MESSAGES.SUCESS_MIGRATE_ARTICLES').then(function (result) {\n Materialize.toast(result, 2000)\n });\n $('#importposts').closeModal()\n scope.listPosts(1, scope.searchStatus)\n }\n })\n }\n },\n template:'
{{ \\'SHARED.SNIPPETPOSTLIST_IMPORT\\' | translate }}

{{ \\'SHARED.SNIPPETPOSTLIST_IMPORT\\' | translate }}

{{ \\'SHARED.SNIPPETPOSTLIST_TRANSFERTO\\' | translate }} {{hostname}}/{{ \\'SHARED.SNIPPETPOSTLIST_NEWBLOGURL\\' | translate }}/

{{ \\'SHARED.SNIPPETPOSTLIST_SELECT\\' | translate }}

{{ \\'GLOBAL.BTN_CANCEL\\' | translate }}
{{ \\'GLOBAL.LOAD\\' | translate }}
'\n }\n})\n","angular.module('app.main').directive('snippetUserList', function (Api, $timeout, ROLES, PROJECT_PATH, $translate, $compile, $filter) {\n return {\n restrict: 'A',\n scope: {\n user_data: '=ngUser',\n mode: '@ngMode',\n context: '@ngContext',\n hidecontrols: '@ngHideControls',\n hideaction: '@ngHideAction',\n page_id: '=ngPageId',\n course_id: '=ngCourseId'\n },\n link: function (scope, element) {\n let template ='
\"{{user_data.name}}\"
{{user_data.name}} ({{user_data.role_label}}) ({{ \\'SHARED.SNIPPETUSERLIST_ROLE_MODERATOR\\' | translate }})

{{ user_data.job }} - {{ user_data.company }}

@{{ user_data.slug }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_ACTIVE\\' | translate }} - {{ user_data.subscription_recurrence_date | date:\\'dd/MM/yyyy\\' }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_LIFETIME\\' | translate }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_INACTIVE\\' | translate }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_BATCH_SIGNUP\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_INTEGRATION\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_NOT_MONETIZED\\' | translate }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SNIPPETUSERLIST_SUBSCRIPTIONSUSPENSION_MESSAGE\\' | translate }} {{ user_data.subscription_recurrence_date | date:\\'dd/MM/yyyy\\' }}
{{user_data.email}}
';\n if (scope.mode === 'table') {\n template =' \"\" {{user_data.name}} ({{user_data.role_label}}) ({{ \\'SHARED.SNIPPETUSERLIST_ROLE_MODERATOR\\' | translate }})

{{ user_data.job }} - {{ user_data.company }}

@{{ user_data.slug }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_ACTIVE\\' | translate }} - {{ user_data.subscription_recurrence_date | date:\\'dd/MM/yyyy\\' }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_LIFETIME\\' | translate }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_INACTIVE\\' | translate }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_BATCH_SIGNUP\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_INTEGRATION\\' | translate }} {{ \\'SHARED.SUBSCRIPTION_RECURRENCE_STATUS_NOT_MONETIZED\\' | translate }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{ \\'SHARED.SNIPPETUSERLIST_SUBSCRIPTIONSUSPENSION_MESSAGE\\' | translate }} {{ user_data.subscription_recurrence_date | date:\\'dd/MM/yyyy\\' }} {{user_data.email}}
';\n } else if (scope.mode === 'account') {\n template ='
\"{{user_data.user_name}}\"
{{user_data.user_name}}
@{{ user_data.user_slug }}
{{user_data.user_email}}

CNPJ:

Razão Social: {{ user_data.company_name }}

';\n } else if (scope.mode === 'simple') {\n template ='
\"{{user_data.name}}\"
{{user_data.name}}

{{ user_data.job }} - {{ user_data.company }}

@{{ user_data.slug }} - {{ \\'SHARED.SNIPPETUSERLIST_BLOCKED\\' | translate }} {{user_data.email}}
';\n }\n let html = $compile(template)(scope);\n element.html(html);\n\n // scope.currentUserIsAdmin = scope.$parent.currentUser.role === 'ADM';\n\n scope.currentUserIsAdmin =\n scope.$parent.currentUser && (scope.$parent.currentUser.role === 'ADM' || (scope.$parent.currentUser.courses && scope.$parent.currentUser.courses[scope.$parent.id] && scope.$parent.currentUser.courses[scope.$parent.id].role === 'ADM'));\n\n if (scope.user_data && scope.user_data.id) {\n scope.user_data._id = scope.user_data.id;\n }\n\n if (scope.user_data && scope.user_data.role && scope.user_data.role_label == undefined) {\n if (scope.user_data.owner) {\n scope.user_data.role = 'OWNER';\n }\n\n scope.user_data.role_label = ROLES[scope.user_data.role].label;\n }\n\n if (scope.user_data && scope.user_data.course && scope.user_data.course.role && scope.user_data.role_label == undefined) {\n if (scope.user_data.course.owner) {\n scope.user_data.role = 'OWNER';\n }\n\n scope.user_data.role_label = ROLES[scope.user_data.course.role].label;\n }\n\n scope.is_recurrence = !!(scope.user_data && scope.user_data.subscription_recurrence_date);\n scope.suspended = !!(scope.user_data && scope.user_data.subscription_suspended);\n\n if (scope.context == undefined) scope.context = 'manage';\n\n scope.image_path = PROJECT_PATH;\n\n // Block / Unblock user\n scope.block = function (banned) {\n if (banned == 0) {\n Api.post(`user/block/${scope.user_data._id}`, function (err, resp) {\n $translate('MESSAGES.USER_BLOCKED').then(function (result) {\n Materialize.toast(result, 3000);\n });\n scope.user_data.banned = 1;\n });\n } else {\n Api.delete(`user/unblock/${scope.user_data._id}`, function (err, resp) {\n $translate('MESSAGES.USER_UNBLOCKED').then(function (result) {\n Materialize.toast(result, 3000);\n });\n scope.user_data.banned = 0;\n });\n }\n };\n\n // Change role\n scope.role = function (role) {\n var payload = {\n role: role\n };\n if (scope.page_id != undefined) payload.page_id = scope.page_id;\n Api.put(`user/role/${scope.user_data._id}`, payload, function (err, resp) {\n if (!err && resp.status === 200) {\n $translate('MESSAGES.ROLE_UPDATED').then(function (result) {\n Materialize.toast(result, 3000);\n });\n scope.user_data.role = role;\n scope.user_data.role_label = ROLES[role].label;\n }\n });\n };\n\n scope.formatCNPJ = function (value) {\n if (value) {\n let newVal = value.replace(/\\D/g, '');\n return newVal.replace(/^(\\d{0,2})(\\d{0,3})(\\d{0,3})(\\d{0,4})(\\d{0,2})/, '$1.$2.$3/$4-$5');\n }\n };\n // Change enrollment\n scope.changeRoleCourse = function (role) {\n var payload = {\n role: role\n };\n Api.put(`courses/${scope.course_id}/users/${scope.user_data._id}/enrollment`, payload, function (err, resp) {\n if (!err && resp.status === 200) {\n scope.user_data.role = role;\n scope.user_data.course.role = role;\n scope.user_data.role_label = ROLES[role].label;\n if (role === 'EDITOR') {\n return scope.role('ADM');\n }\n\n $translate('MESSAGES.ROLE_UPDATED').then(function (result) {\n Materialize.toast(result, 3000);\n });\n } else {\n $translate('MESSAGES.ROLE_UPDATED_ERROR').then(function (result) {\n App.toastError(result, 3000);\n });\n }\n });\n };\n\n // delete role\n scope.remove_role = function (custom) {\n if (!custom) {\n Api.put(`user/link_to_group/${scope.user_data._id}`, { action: 'delete', page_id: scope.page_id }, function (err, resp) {\n $translate('MESSAGES.ROLE_UPDATED').then(function (result) {\n Materialize.toast(result, 3000);\n });\n scope.user_data.role = undefined;\n scope.user_data.role_label = undefined;\n if (scope.context == 'authors' && scope.$parent.list != undefined) scope.$parent.list(1);\n });\n } else {\n scope.$parent.remove_role(scope.user_data._id);\n }\n };\n\n //UNDO_CANCEL\n scope.cancel_unsubscribe_request = function () {\n scope.$parent.cancel_unsubscribe_request(scope.user_data.monetization_iugu_purchases[0].id);\n };\n\n scope.subscriptionSuspension = function () {\n scope.$parent.subscriptionSuspension(scope.user_data.monetization_iugu_active_subscription_id);\n };\n\n scope.coursesAccessEmail = function () {\n scope.$parent.coursesAccessEmail(scope.user_data.monetization_iugu_purchases[0].id);\n };\n\n scope.addDays = function (subscriptionId) {\n Api.put(`monetization/recurrences/${subscriptionId}/extra-days`, { days: 30 }, function (err, resp) {\n if (!err) {\n $translate('MESSAGES.USER_ADD_DAYS').then(function (result) {\n Materialize.toast(result, 3000);\n });\n }\n });\n };\n\n // Change ownership\n scope.changeOwner = function (user_id) {\n var payload = {\n user_id: user_id\n };\n Api.put(`blogs/change_owner/${scope.page_id}`, payload, function (err, resp) {\n if (!err) {\n $translate('MESSAGES.SUCESS_PROPERTY_CHANGE').then(function (result) {\n Materialize.toast(result, 3000);\n });\n scope.$parent.list(1);\n scope.$parent.group.author_id = user_id;\n }\n });\n };\n\n $timeout(function () {\n scope.$apply();\n $('.dropdown-button').dropdown();\n }, 0);\n if (scope.mode == 'detail') {\n $timeout(function () {\n $('.dropdown-button').dropdown();\n }, 1000);\n }\n }\n };\n});\n","angular.module('app.main').directive('ngTagList', function (Api) {\n return {\n restrict: 'A',\n scope: false,\n link: function (scope, element, attr) {\n var getTags = function (tags) {\n var payload = { tags: JSON.parse(tags) }\n Api.post('tag/list', payload, function (err, ret) {\n if (!err) scope.tags = ret.response\n })\n }\n attr.$observe('tags', function (tags) {\n if (tags) getTags(tags)\n })\n },\n template:'
'\n }\n})\n","angular.module('app.main').directive('userCounters', function () {\n return {\n restrict: 'A',\n scope: {\n slug: '@slug',\n articles: '@articles',\n following: '@following',\n followers: '@followers'\n },\n template:'

{{ \\'SHARED.SNIPPETBIOCARD_FOLLOWERS\\' | translate }}

{{followers}}

{{ \\'SHARED.SNIPPETBIOCARD_FOLLOWING\\' | translate }}

{{following}}

{{ \\'SHARED.SNIPPETBIOCARD_PUBLICATIONS\\' | translate }}

{{articles}}
'\n }\n})\n","angular.module('app.main').directive('userFollow', function (Api, $window, $translate) {\n return {\n restrict: 'A',\n scope: {\n myself: '@',\n following: '@',\n follow: '@',\n user: '@'\n },\n replace: true,\n controller: function ($scope) {\n $scope.FOLLOW = $scope.follow;\n $scope.followUserSaving = false;\n var user_follow = [];\n var user_id = $scope.user;\n\n\n\n // Check if user is followed\n if (!$scope.$parent.currentUser) { $scope.FOLLOW = $scope.follow } else {\n user_follow = $scope.$parent.currentUser && $scope.$parent.currentUser.follow ? $scope.$parent.currentUser.follow : []\n if (user_id == $scope.$parent.currentUser.user_id) {\n $scope.FOLLOW = $scope.myself\n } else if (user_follow.indexOf(user_id) == -1) {\n $scope.FOLLOW = $scope.follow\n } else {\n $scope.FOLLOW = $scope.following\n }\n }\n\n $translate($scope.FOLLOW).then(function (result) {\n $scope.FOLLOW = result;\n }, function (translationId) {\n $scope.FOLLOW = translationId;\n });\n\n\n // Follow / Unfollow user\n $scope.follow_user = function () {\n var user = $scope.$parent.currentUser\n if (!$scope.$parent.currentUser) {\n var user_image = $('.headerbox-avatar img') ? $('.headerbox-avatar:eq(0) img').attr('src') : 'https://cd01.redesign.static-01.com/images/avatar-bg.png'\n if (!$('.author-publisher h1').length) {\n $translate('GLOBAL.THIS_USER').then(function (result) {\n $scope.$parent.authModal('follow_user', user_image, result)\n }, function (translationId) {\n $scope.$parent.authModal('follow_user', user_image, translationId)\n });\n } else {\n $scope.$parent.authModal('follow_user', user_image, $('.author-publisher:eq(0) h1').text())\n }\n } else if ($scope.$parent.currentUser.user_id == user_id) {\n $window.location.href = '/manage.app#!/panel/profile'\n } else {\n $scope.followUserSaving = true;\n Api.get(`user/follow/${user_id}`, function (err, data) {\n if (data.status) {\n if (data.response == 'USER_FOLLOW_REMOVED') {\n user_follow.splice(user_follow.indexOf(user_id), 1)\n $translate($scope.follow).then(function (result) {\n $scope.FOLLOW = result\n });\n $('.followed-count').html(Math.round($('.counters .followed-count').text()) - 1)\n user.follow = user_follow\n $scope.$parent.changeUser(user)\n } else if (data.response == 'USER_FOLLOW_ADDED') {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function') _bmtrack('user_follow')\n if (user_follow.indexOf($scope.user_id) == -1) user_follow.push(user_id)\n $translate($scope.following).then(function (result) {\n $scope.FOLLOW = result\n });\n $('.followed-count').html(Math.round($('.counters .followed-count').text()) + 1)\n user.follow = user_follow\n $scope.$parent.changeUser(user)\n } else {\n $translate('MESSAGES.' + data.response).then(function (result) {\n Materialize.toast(result, 3000)\n });\n }\n }\n $scope.followUserSaving = false;\n })\n }\n }\n },\n template:' {{FOLLOW}} '\n }\n})\n","angular.module('app.main').directive('userShare', function($window,Api, $timeout, $compile) {\n return {\n restrict: 'A',\n scope: {\n facebook: '@facebook',\n google: '@google',\n twitter: '@twitter',\n linkedin: '@linkedin',\n pinterest: '@pinterest',\n youtube: '@youtube',\n instagram: '@instagram',\n website: '@website',\n user_id: '@user',\n },\n link: function($scope,$elements) {\n $scope.show = true;\n if($scope.$parent.currentUser && $scope.$parent.currentUser.user_id==$scope.user_id) {\n $scope.show = false;\n }\n\n $timeout(function() {\n $compile($elements.contents())($scope);\n },1000);\n },\n template:' '\n }\n})\n","// https://stackoverflow.com/questions/3177836/how-to-format-time-since-xxx-e-g-4-minutes-ago-similar-to-stack-exchange-site\nfunction timeSince (time) {\n var token = ''\n let months = ['GLOBAL.JAN','GLOBAL.FEB','GLOBAL.MAR','GLOBAL.APR',\n 'GLOBAL.MAY','GLOBAL.JUNE','GLOBAL.JULY','GLOBAL.AUG','GLOBAL.SEP','GLOBAL.OCT',\n 'GLOBAL.NOV','GLOBAL.DEC']\n\n switch (typeof time) {\n case 'number':\n break\n case 'string':\n time = +new Date(time)\n break\n case 'object':\n if (time.constructor === Date) time = time.getTime()\n break\n default:\n time = +new Date()\n }\n var time_formats = [\n [60, 'seg', 1], // 60\n // [120, '1 min atrás', 'daqui há 1 min'], // 60*2\n [120, 'há 1 min', 'daqui há 1 min'], // 60*2\n [3600, 'min', 60], // 60*60, 60\n // [7200, '1 hora atrás', 'daqui há 1 hora'], // 60*60*2\n [7200, 'GLOBAL.HOUR_AGO', 'daqui há 1 hora'], // 60*60*2\n // [86400, 'horas', 3600], // 60*60*24, 60*60\n [86400, 'h', 3600], // 60*60*24, 60*60\n // [172800, 'Ontem', 'Amanhã'], // 60*60*24*2\n // [604800, 'dias', 86400], // 60*60*24*7, 60*60*24\n // [1209600, 'Último semana', 'Próxima semana'], // 60*60*24*7*4*2\n // [2419200, 'semanas', 604800], // 60*60*24*7*4, 60*60*24*7\n // [4838400, 'Último mês', 'Próximo mês'], // 60*60*24*7*4*2\n // [29030400, 'months', 2419200], // 60*60*24*7*4*12, 60*60*24*7*4\n // [58060800, 'Último ano', 'Próximo ano'], // 60*60*24*7*4*12*2\n [2903040000, 'anos', 29030400], // 60*60*24*7*4*12*100, 60*60*24*7*4*12\n // [5806080000, 'Último século', 'Próximo século'], // 60*60*24*7*4*12*100*2\n [58060800000, 'séculos', 2903040000] // 60*60*24*7*4*12*100*20, 60*60*24*7*4*12*100\n ]\n\n var seconds = (+new Date() - time) / 1000,\n list_choice = 1\n\n // if (seconds == 0) {\n if (seconds < 60) {\n return{\n date: 'GLOBAL.RIGHT_NOW',\n month: \"\"\n }\n \n }\n if (seconds > 86400 && seconds < 2903040000) {\n var dt = new Date(time)\n return{\n date: dt.getDate(),\n month: months[dt.getMonth()]\n }\n }\n // if (seconds < 0) {\n // seconds = Math.abs(seconds);\n // token = 'from now';\n // list_choice = 2;\n // }\n var i = 0\n var format\n while (format = time_formats[i++]) {\n if (seconds < format[0]) {\n if (typeof format[2] === 'string') {\n return {\n month: format[list_choice]\n }\n } else {\n let date = Math.floor(seconds / format[2]) + ' ' + format[1];\n return {\n date: date,\n month: 'GLOBAL.AGO'\n };\n }\n }\n }\n return time\n}\n","var PageScrollIndicator = function (progressBarLocation, contentToTrack, opt) {\n // var $progressContElement = $(\"
\")\n\n // var $progressBarElement = $(\"
\")\n // $progressBarElement.css('width', '0%')\n\n // $progressContElement.append($progressBarElement)\n\n // $(progressBarLocation).prepend($progressContElement)\n\n // $(window).on('scroll', function () {\n // var containerHeight = $(contentToTrack).innerHeight()\n // var pageHeight = $(window).height()\n // var adjustedHeight = containerHeight - pageHeight\n // var progress = (($(window).scrollTop() / adjustedHeight) * 100)\n // $progressBarElement.css('width', progress + '%')\n // })\n\n $(window).on('scroll', function () {\n\n var scrollTop = $(window).scrollTop();\n var winHeight = $(window).height();\n var $_comments = $('#comments');\n var $_offset = $_comments.offset();\n if (typeof ($_offset) === 'undefined') {\n return;\n }\n var commentTop = $('#comments').offset().top;\n\n if ((commentTop - winHeight) < scrollTop) {\n $('#fixed-comment-bar').hide()\n } else {\n $('#fixed-comment-bar').show()\n }\n })\n\n // scroll indicator absolute to fixed\n $(window).on('scroll', function () {\n if (!$('#progress-cont').length) {\n return;\n }\n var scroll = $(window).scrollTop() + opt.topDiff\n var article = $('article.post').offset()\n var height = $('article.post').height() + article.top + 400\n if (scroll > article.top && scroll < height) {\n $('#progress-cont').show().css({\n 'top': 250,\n 'right': 72,\n 'position': 'fixed',\n 'display': 'block'\n })\n } else if (scroll > height) {\n $('#progress-cont').hide()\n } else {\n $('#progress-cont').show().removeAttr('style')\n }\n }).scroll()\n}\n","var articleShareOptions = function (target, opt) {\n var $shareOptions = $(target)\n\n // no target found\n if ($shareOptions.length === 0) {\n return false\n }\n\n var navHeight = $('nav.navigation').height()\n\n // Fix Video Embed\n // Share buttons\n $(window).on('scroll', function () {\n var scroll = $(window).scrollTop() + opt.topDiff\n var article = $('article.post').offset()\n var height = $('article.post').height() + article.top + 400\n\n if (scroll > article.top && scroll < height) {\n $shareOptions.show().css({\n 'top': 165,\n 'left': article.left - 47,\n 'position': 'fixed'\n })\n }\n else if (scroll > height) {\n $shareOptions.hide()\n }\n else {\n $shareOptions.show().removeAttr('style')\n }\n }).scroll()\n\n $shareOptions.find('.share-options--item.dropdown-button').addClass('active')\n $shareOptions.find('#social-list.dropdown-content').addClass('active').css({\n 'opacity': 1,\n 'display': 'block',\n 'margin-top': 55\n })\n}\n","var loadmoreLoading = false\nvar loadmore = function (url, cb) {\n $('main .posts:last').find('article').addClass('ng-loaded')\n\n if (loadmoreLoading) return\n\n // set loading true\n loadmoreLoading = true\n\n // show loading\n $('#loadingAnimation').show()\n\n // hide loadmore button\n $('#loadMoreButton').hide()\n\n $.post(url, function (resp) {\n // set loading true\n $('#loadingAnimation').hide()\n\n // load articles\n if (resp !== '') {\n // add posts in list\n $('#postList').append(resp)\n\n // set loading false\n loadmoreLoading = false\n\n // show loadmore button\n $('#loadMoreButton').show()\n }\n // no more articles\n else {\n // hide loadmore button\n $('#loadMoreButton').hide()\n\n // shot toast\n App.toast('Não há mais artigos.')\n }\n\n cb && cb()\n })\n}\n","var responsiveVideos = function (target) {\n var $target = $(target)\n\n // no targets found\n if ($target.length === 0) {\n return false\n }\n\n // Fix Video Embed\n var fixVideoEmbed = function () {\n var w = $(target).width()\n var h = w / (16 / 9)\n $('[data-ae-embed-url] iframe').each(function () {\n var src = $(this).attr('src')\n if (src.indexOf('facebook.com/') > 0 && src.indexOf('?href=') > 0) {\n var videoUrl = src.split('?')[1].split('&').map(function (n) { return n = n.split('='), this[n[0]] = n[1], this }.bind({}))[0]\n if (videoUrl.hasOwnProperty('width') && videoUrl.hasOwnProperty('height')) {\n var videoHeight = parseInt(videoUrl.height)\n var videoWidth = parseInt(videoUrl.width)\n if (videoWidth > videoHeight) {\n $(this).css({'width': `${w}px`, 'height': `${h}px`})\n } else {\n $(this).css({'width': `${h}px`, 'height': `${w}px`})\n }\n }\n }\n else if (src.indexOf('facebook.com/') > 0) {\n $(this).css({'width': `${w}px`, 'height': `${h}px`})\n }\n else if (src.indexOf('youtube.com/') > 0) {\n $(this).css({'width': `${w}px`, 'height': `${h}px`})\n }\n })\n }\n\n // go!\n fixVideoEmbed()\n\n // fix on window resize\n $(window).resize(fixVideoEmbed)\n}\n","angular.module('app.main').directive('ngConfirm', function ($compile, $timeout) {\n return {\n restrict: 'A',\n scope: {\n message: '@ngConfirmMessage',\n title: '@ngConfirmTitle',\n action: '&ngConfirmClick',\n ignore: '=ngIgnore',\n agree: '@agree',\n cancel: '@cancel',\n dialog: '@ngConfirmDialog',\n },\n link: function (scope, element, attrs) {\n element.bind('click', function () {\n if (scope.ignore) {\n $timeout(function () {\n scope.$apply(scope.action())\n }, 0, false)\n } else {\n var title = scope.title ? '
' + scope.title + '
' : ''\n\n if (scope.dialog) { \n var template = '
' + title + '

' + scope.message + '

'\n } else {\n var template = '
' + title + '

' + scope.message + '

'\n }\n\n var modal = document.createElement('DIV')\n modal.innerHTML = template\n modal.setAttribute('id', 'modalConfirmOverlay')\n document.body.appendChild(modal)\n\n scope.confirm = function () {\n $timeout(function () {\n scope.$apply(scope.action())\n document.getElementById('modalConfirmOverlay').remove()\n }, 0, false)\n }\n scope.cancel = function () {\n document.getElementById('modalConfirmOverlay').remove()\n }\n $compile(modal)(scope.$new())\n }\n })\n }\n }\n})\n","angular.module('app.main').directive('pagination', function() {\n return {\n restrict: 'E',\n controller: function($scope) {\n $scope.changePage = function(page) {\n var path = window.location.pathname.split('/');\n var last = path.pop();\n var qs = '';\n if(window.location.href.indexOf('?')>-1) {\n qs = '?'+window.location.href.split('?').pop();\n }\n var newpath = '';\n if(parseInt(last)>0) {\n newpath = path.join('/') + '/' + page;\n } else {\n if(window.location.pathname=='/')\n newpath = window.location.pathname + page;\n else\n newpath = window.location.pathname + '/' + page;\n }\n window.location.href = newpath+qs;\n }\n }\n }\n})\n","angular.module('app.main').controller('articlesCtrl', function ($scope, Api, $window, $translate) {\n var user = {};\n var user_id = 0;\n var finishedReading = false;\n var midReading = false;\n\n // TODO get from article\n // var author = articleData.author\n var author = {\n _id: $('#bm-author-tag[data-author]').attr('data-author') || false,\n name: $('.article-user-bio:eq(0) .user-desc h2').text() || 'GLOBAL.THIS_USER',\n avatar: $('.article-user-bio:eq(0) .user-img img').attr('src') || 'https://cd01.redesign.static-01.com/images/avatar-bg.png'\n };\n\n $translate(author.name).then(\n function (result) {\n author.name = result;\n },\n function (translationId) {\n author.name = translationId;\n }\n );\n\n $scope.owner = false;\n $scope.linked_group = false;\n\n // User logged in\n if ($scope.currentUser) {\n user = $scope.currentUser;\n }\n if (user && user.user_id) {\n user_id = user.user_id;\n }\n if (author._id === user_id || user.role === 'ADM') {\n $scope.$parent.show_write_edit = $scope.article_id;\n }\n\n // Follow / Unfollow user\n $translate('GLOBAL.FOLLOW').then(function (result) {\n $scope.FOLLOW = result;\n });\n $scope.isFollow = false;\n var user_follow = [];\n\n // Check if user is followed\n if (!$scope.$parent.currentUser) {\n $translate('GLOBAL.FOLLOW').then(function (result) {\n $scope.FOLLOW = result;\n });\n } else {\n user_follow = $scope.currentUser && $scope.currentUser.follow ? $scope.currentUser.follow : [];\n if (author._id == $scope.currentUser.user_id) {\n $translate('GLOBAL.EDIT').then(function (result) {\n $scope.FOLLOW = result;\n });\n } else if (user_follow.indexOf(author._id) == -1) {\n $translate('GLOBAL.FOLLOW').then(function (result) {\n $scope.FOLLOW = result;\n });\n } else {\n $translate('GLOBAL.FOLLOWING').then(function (result) {\n $scope.FOLLOW = result;\n });\n $scope.isFollow = true;\n }\n }\n $scope.follow_user = function () {\n var user = $scope.currentUser;\n if (!$scope.currentUser) {\n $scope.authModal('follow_user', author.avatar, author.name);\n } else if ($scope.currentUser.user_id == author._id) {\n $window.location.href = '/manage.app#!/panel/profile';\n } else {\n Api.get(`user/follow/${author._id}`, function (err, data) {\n if (data.status) {\n if (data.response == 'USER_FOLLOW_REMOVED') {\n user_follow.splice(user_follow.indexOf(author._id), 1);\n $translate('GLOBAL.FOLLOW').then(function (result) {\n $scope.FOLLOW = result;\n });\n $('.followed-count').html(Math.round($('.followed-count').text()) - 1);\n user.follow = user_follow;\n $scope.changeUser(user);\n } else if (data.response == 'USER_FOLLOW_ADDED') {\n if (window.hasOwnProperty('_bmtrack') && typeof _bmtrack === 'function') {\n _bmtrack('user_follow');\n }\n if (user_follow.indexOf(author._id) == -1) {\n user_follow.push(author._id);\n }\n $translate('GLOBAL.FOLLOWING').then(function (result) {\n $scope.FOLLOW = result;\n });\n $('.followed-count').html(Math.round($('.article-user-bio .followed-count').text()) + 1);\n user.follow = user_follow;\n $scope.changeUser(user);\n } else {\n App.toast(data.response, 2000);\n }\n }\n });\n }\n };\n\n $scope.$watch('currentUser', function (newvalue, oldvalue) {\n if (newvalue) {\n var groupId = null;\n $('.group-action').each(function () {\n groupId = $(this).attr('data-group');\n });\n if (groupId) {\n $scope.groupSignup(groupId, oldvalue !== false);\n }\n }\n });\n\n // Signup in groups\n $scope.groupSignup = function (id, brk = false) {\n if (!$scope.currentUser) {\n $scope.authModal();\n } else {\n if (brk) {\n return;\n }\n Api.post('user/link_to_group', { group_id: id }, function (err, ret) {\n if (!err) {\n if (ret.response === 'SIGNUP_PENDING') {\n $('#groupPending').openModal();\n }\n $scope.$parent.syncData(showGroupActions);\n } else {\n if (ret.response.error_code === 'USER_ALREADY_IN_GROUP') {\n window.location.reload();\n }\n }\n });\n }\n };\n\n $scope.showTooltipWrite = () => {\n $('.lightbox-tooltip--write').css({ display: 'flex' });\n setTimeout(() => $('.lightbox-tooltip--write').css({ display: 'none' }), 7000);\n };\n\n $scope.showTooltipLike = () => {\n $('.lightbox-tooltip--like').css({ display: 'flex' });\n setTimeout(() => $('.lightbox-tooltip--like').css({ display: 'none' }), 5000);\n };\n\n $scope.hideTooltipLike = () => $('.lightbox-tooltip--like').css({ display: 'none' });\n\n $(window).scroll(() => {\n if ($(window).scrollTop() + $(window).height() >= $('.main-post').height() && !finishedReading) {\n finishedReading = true;\n setTimeout(() => $scope.showTooltipWrite(), 1000);\n }\n if ($(window).scrollTop() + $(window).height() >= $(document).height() / 2 && !midReading) {\n midReading = true;\n setTimeout(() => $scope.showTooltipLike(), 1000);\n }\n });\n});\n","// TODO identify article page intead course and article read\n$(function () {\n // identify article page\n if ($('#fullArticle').length === 0) {\n return false\n }\n\n // comment on focus\n var writeContainer = $('.write-comment .input-field textarea')\n writeContainer.on('focusin', function () {\n $(this).parent().parent().addClass('active-field').find('textarea');\n })\n\n var closeWriteContainer = $('.btn-close-field')\n closeWriteContainer.on('click', function () {\n $(this).parent().removeClass('active-field')\n })\n\n // var closeReplyContainer = $('.reply-container .btn-close-field')\n // closeReplyContainer.on('click', function () {\n // $(this).parent().parent().addClass('ng-hide')\n // })\n\n var fixedWriteContainer = $('.fixed-write-comment')\n $(document).mouseup(function (e) {\n if (!fixedWriteContainer.is(e.target)\n && fixedWriteContainer.has(e.target).length === 0) {\n fixedWriteContainer.find('.write-comment').removeClass('active-field')\n }\n })\n\n // Fix height\n var maxHeight = 0\n $('.section.recomendadas .post-recomendado .post').each(function () {\n if (maxHeight < $(this).height()) maxHeight = $(this).height()\n })\n $('.section.recomendadas .post-recomendado .post').height(maxHeight)\n\n responsiveVideos('.post__content')\n articleShareOptions('.share-options', { topDiff: 72 })\n PageScrollIndicator('#fullArticle', '.page-post', { topDiff: 200 })\n})\n","angular.module('app.main').controller('userCtrl', function ($scope, Api, $compile, $timeout) {\n var user_id = $('body').attr('data-source')\n if (user_id != $scope.currentUser.user_id) $scope.show = true\n var scroll = $(window).scrollTop(), trigger = $('body').height() - 1000\n // var sidebar_obj = $('main .sidebar_wrap')\n // var sidebar_height = sidebar_obj.height()\n // var sidebar_width = sidebar_obj.outerWidth(true)\n\n var hasPosts = $('main article').length > 0 ? true : false\n var userFollow = $scope.currentUser && $scope.currentUser.follow && $scope.currentUser.follow.indexOf(user_id) !== -1 ? true : false\n\n $scope.noPosts = (!userFollow && user_id != $scope.currentUser.user_id && !hasPosts) ? true : false\n $scope.welcome = (user_id == $scope.currentUser.user_id && !hasPosts) ? true : false\n\n // $scope.finalPage = $('main .posts:last').find('article').length < 10 ? true : false\n\n $scope.haveMoreArticle = false;\n\n var page = 1\n var totalRecords = 0\n var recordsPerPage = 20\n var totalPages = 0\n $scope.getNextPage = function () {\n page++\n $scope.haveMoreArticle = totalPages > page\n\n loadmore('/API/merge/article?&user_id=' + user_id + '&page=' + page, function () {\n $compile($('#postList'))($scope)\n })\n }\n\n $scope.getNumbersOfArticle = function () {\n if ($scope.currentUser) {\n Api.get(`article/count/user/${$scope.currentUser.user_id}`, (error, response) => {\n if (!error) {\n $scope.userCanMessage = response.article_count >= 1;\n }\n });\n }\n\n if (user_id) {\n Api.get(`article/count/user/${user_id}`, function (err, ret) {\n if (err) {\n $scope.haveMoreArticle = false;\n }\n totalRecords = ret.article_count;\n totalPages = Math.ceil(totalRecords / recordsPerPage);\n $scope.haveMoreArticle = totalPages > page;\n });\n }\n }\n $scope.getNumbersOfArticle();\n\n if ($('main article').length >= 10) {\n $(window).on('scroll', fixSidebar).scroll()\n $(window).resize(function () {\n fixSidebar()\n // Change to absolute\n if ($('.row').length) {\n sidebar_obj.css({\n 'left': $('main .posts-container').offset().left + $('main .posts-container').width() + 20,\n 'width': 0.333333333333 * $('.row').width()\n })\n }\n })\n }\n\n // Link fix to user without image\n if ($('.profile_user .profile_user-name span.author-image a').length == 0) {\n $('.profile_user .profile_user-name span.author-image').click(function () {\n window.location.href = $('.author-publisher h1 a').attr('href')\n })\n }\n})\n","angular.module('app.main').controller('searchCtrl', function searchCtrl($scope, Api, $cookies, $compile, $window, $timeout, $translate) {\n var user = $scope.currentUser\n var tag_id = false\n\n $scope.tag_search = {}\n $scope.tag_added = true\n $scope.tag_follow = ''\n $scope.mode = ''\n\n var _qsget = function (name) {\n var url = window.location.href\n name = name.replace(/[\\[\\]]/g, '\\\\$&')\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\n results = regex.exec(url)\n if (!results) {\n return false\n }\n if (!results[2]) {\n return false\n }\n return decodeURIComponent(results[2].replace(/\\+/g, ' '))\n }\n\n // Fixed sidebar\n // var max = 0, sticky = false;\n // $timeout(function() {\n // if($('.sidebar_blog').height()>$(window).height()) {\n // max = $('.sidebar_blog').height()-$(window).height();\n // $('.sidebar_blog').stick_in_parent({offset_top:72})\n // .on(\"sticky_kit:bottom\", function(e) {\n // $timeout(function() {\n // $('.sidebar_blog').css({'top':'-'+max+'px','position':'fixed','bottom':'auto'});\n // },30);\n // });\n // sticky = true;\n // }\n // },0);\n\n // Get tag_id\n const url = window.location.href\n if (url.split('/').pop() == 't' ||\n (url.split('/').splice(-2, 1) == 't' && url.split('/').length === 6)) {\n $scope.mode = 'tag'\n $scope.tag_title = false;\n if (url.split('/').length === 6) {\n $scope.tag_title = url.split('/').splice(-3, 1)\n } else {\n $scope.tag_title = url.split('/').splice(-2, 1)\n }\n\n if ($scope.tag_title) {\n Api.get(`common/get_tagid/${$scope.tag_title}`, function (err, data) {\n if (!err) {\n $scope.tag_search.id = data.response._id\n $scope.tag_search.title = data.response.title\n $scope.tag_title = data.response.title\n if (user && user.tags.indexOf($scope.tag_search.id) == -1) {\n $scope.tag_added = false\n $translate('GLOBAL.FOLLOW').then(function (result) {\n $scope.tag_follow = result;\n });\n }\n else if (!user) {\n $translate('GLOBAL.FOLLOW').then(function (result) {\n $scope.tag_follow = result;\n });\n } else {\n $translate('GLOBAL.FOLLOWING').then(function (result) {\n $scope.tag_follow = result;\n });\n }\n }\n })\n }\n } else if (url.indexOf('?kw') !== -1) {\n $scope.mode = 'search'\n }\n\n $scope.add = function () {\n if (!user.tags) {\n window.location.reload();\n }\n var index = user.tags.indexOf($scope.tag_search.id)\n if (index == -1) {\n $translate('PROJECT.TAG_SEARCH_ADD_SUCCESS').then(function (result) {\n App.toast(result, 2000)\n });\n\n $translate('GLOBAL.FOLLOWING').then(function (result) {\n $scope.tag_follow = result;\n });\n $scope.tag_added = true\n user.tags.push($scope.tag_search.id)\n var data = {\n tags: user.tags\n }\n $scope.changeUser(user)\n Api.post('user/update', data, function (err, resp) {\n if (!err) {\n var expires = new Date()\n expires.setDate(expires.getDate() + 365)\n $cookies.put('_t', btoa(user.tags.join(',')), { path: '/', domain: $window.location.host.replace(/www/i, ''), expires: expires })\n }\n })\n } else {\n $translate('PROJECT.TAG_SEARCH_DELETE_SUCCESS').then(function (result) {\n App.toast(result, 2000)\n });\n $translate('GLOBAL.FOLLOW').then(function (result) {\n $scope.tag_follow = result;\n })\n $scope.tag_added = false\n user.tags.splice(index, 1)\n var data = {\n tags: user.tags\n }\n $scope.changeUser(user)\n Api.post('user/update', data, function (err, resp) {\n if (!err) {\n var expires = new Date()\n expires.setDate(expires.getDate() + 365)\n $cookies.put('_t', btoa(user.tags.join(',')), { path: '/', domain: $window.location.host.replace(/www/i, ''), expires: expires })\n }\n })\n }\n }\n\n $scope.changeMode = function (mode) {\n var kw = _qsget('kw')\n var url = `/search?kw=${kw}&type=${mode}`\n window.location.href = url\n }\n\n $scope.search_type = _qsget('type') || 'articles'\n var itemCount = 0\n if ($scope.search_type == 'articles') {\n itemCount = $('.list-items article').length\n } else {\n itemCount = $('.list-items li.collection-item').length\n }\n if (itemCount > 0) {\n $('#search_noresults').hide()\n } else {\n $('#search_noresults').show()\n }\n\n $scope.searchCourse = function (kw, category) {\n var url = null;\n if (category) url = `/courses/${category}/c`;\n else url = `/courses`;\n if (kw) url += `?kw=${kw}`;\n window.location.href = url;\n }\n\n})\n"]}