define("pages/open-course/common/data/courseData",["require","exports","module","q","underscore","bundles/naptime/handleResponse","js/lib/memoize","pages/open-course/common/coursesApi"],function(require,exports,module){var e=require("q"),_=require("underscore"),r=require("bundles/naptime/handleResponse"),n=require("js/lib/memoize"),s=require("pages/open-course/common/coursesApi"),t=["instructorIds","partnerIds","_links"].join(","),o=["partners.v1(squareLogo,rectangularLogo)","instructors.v1(fullName)","overridePartnerLogos","sessionsEnabledAt","domainTypes","premiumExperienceVariant"].join(","),i=function getCourse(r){if(!r.elements)throw new Error("Course data missing from response");var e=r.elements[0];return e.instructors=_(e.instructorIds).map(function(e){return r.getLinkedObject("instructorIds",e)}),e.universities=_(e.partnerIds).map(function(e){return r.getLinkedObject("partnerIds",e)}),e};exports.fromSlug=n(function(n){if(!n)return e.reject("Missing courseSlug argument");return e(s.get("",{data:{q:"slug",slug:n&&n.toLowerCase(),includes:t,fields:o}})).then(r).then(i)}),exports.fromId=n(function(n){if(!n)return e.reject("Missing courseId argument");return e(s.get(n,{data:{includes:t,fields:o}})).then(r).then(i)})});
define("bundles/teach-course/lib/TeachBannerUtils",["require","exports","module","q","js/lib/api","bundles/phoenix/template/models/userIdentity","bundles/teach-course/lib/CourseUtils","pages/open-course/common/data/courseData","pages/open-course/common/promises/memberships","bundles/teach-course/lib/TeachInstrumentation"],function(require,exports,module){var e=require("q"),i=require("js/lib/api"),r=i("/api/reports.v1",{type:"rest"}),n=require("bundles/phoenix/template/models/userIdentity"),s=require("bundles/teach-course/lib/CourseUtils"),o=require("pages/open-course/common/data/courseData"),d=require("pages/open-course/common/promises/memberships"),a=require("bundles/teach-course/lib/TeachInstrumentation"),u="up.teach_banner",t="teachVisitedAt",l=10080,c={getBannerData:function getBannerData(){var e=this;return this.getTeachingCourse().spread(function(t,r){return[t,r,e.getLearnerCounts(t,r)]})},getVisitedTimestamp:function getVisitedTimestamp(){return localStorage[t]},setVisitedTimestamp:function setVisitedTimestamp(){localStorage[t]=Date.now()},shouldShow:function shouldShow(){var e=this.getVisitedTimestamp();if(e){var t=new Date(parseInt(e)),r=new Date(Date.now()),n=60*r.getHours()+r.getMinutes(),s=60*t.getHours()+t.getMinutes(),o=n-s;return o>l}return!0},getTeachingCourse:function getTeachingCourse(){var t=n.get("id");if(!t)return e.reject();return d(t).then(function(r){var t=r.find(function(e){return e.hasTeachingRole()});if(t&&"UNIVERSITY_ADMIN"!==t.get("courseRole")){var n=t.get("courseId");return[t,o.fromId(n)]}return e.reject()}).spread(function(r,t){return s.isLaunched(t)?[r,t]:e.reject()})},getLearnerCounts:function getLearnerCounts(n,t){var s=this;return e(r.get("Course~"+t.id+"~activity_learner_counts")).then(function(r){return s.validateLearnerCountsResponse(r)?r.elements[0].body:e.reject({membership:n,course:t})})},validateLearnerCountsResponse:function validateLearnerCountsResponse(e){return e.elements&&e.elements[0]&&e.elements[0].body&&e.elements[0].body.latest&&e.elements[0].body.latest.starter_ever_count&&e.elements[0].body.latest.active_learner_past_1w_count&&e.elements[0].body.latest.visitor_ever_count&&e.elements[0].body["1w_ago"]&&e.elements[0].body["1w_ago"].starter_ever_count},getWeeklyNewLearnerCount:function getWeeklyNewLearnerCount(e){return e.latest.starter_ever_count-e["1w_ago"].starter_ever_count},getWeeklyActiveLearnerCount:function getWeeklyActiveLearnerCount(e){return e.latest.active_learner_past_1w_count},getTotalLearnerCount:function getTotalLearnerCount(e){return e.latest.visitor_ever_count},recordDismiss:function recordDismiss(e){this.record("click","dismiss",e)},recordLinkClick:function recordLinkClick(e,t){this.record("click","link",e,t)},recordShow:function recordShow(e){this.record("render","",e)},record:function record(e,t,r,n){a.record({schema:u,action:e,key:t},r,n)}};module.exports=c});