1(self.webpackChunkcodecombat=self.webpackChunkcodecombat||[]).push([[6998],{600397:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,s,a,i=[],c=!0,u=!1;try{if(s=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=s.call(n)).done)&&(i.push(r.value),i.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw o}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key),r)}}function c(e){var t=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t);if("object"!=r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==r(t)?t:t+""}function u(e,t,n){return t=p(t),function(e,t){if(t&&("object"==r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,l()?Reflect.construct(t,n||[],p(e).constructor):t.apply(e,n))}function l(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(l=function(){return!!e})()}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}var d;n(471413);var h=n(976911),m=n(249449),g=n(444705),y=n(318038),v=n(523402),b=n(299498);e.exports=((d=function(e){function t(){return a(this,t),u(this,t,arguments)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}(t,e),r=t,s=[{key:"initialize",value:function(e,t){var n=this;this.loading=!0;var r=new m({_id:t}).fetch(),s=b.getQueryVariable("campaign");this.name=b.getQueryVariable("username");var a=(new y).fetchForCampaign(s,{}),i=a.then((function(e){return Promise.all(e.map((function(e){return e._id})).map(n.fetchLevelSession))}));return this.courseStats={levels:{numDone:0},linesOfCode:0,courseComplete:!0},Promise.all([r,a,i]).then((function(){var e=Array.from(arguments.length<=0?void 0:arguments[0]),t=o(e,3),r=(t[0],t[1]),s=t[2];return s=s.map((function(e){return new g(e)})),r=r.map((function(e){return new v(e)})),n.concepts=n.loadConcepts(r),n.courseStats=n.reduceSessionStats(s,r),n.loading=!1,n.render()}))}},{key:"backgroundImage",value:function(){return"/images/pages/user/certificates/backgrounds/background-hoc.png"}},{key:"getMedallion",value:function(){return"/images/pages/user/certificates/medallions/medallion-gd3.png"}},{key:"onClickPrintButton",value:function(){return window.print()}},{key:"userName",value:function(){return this.name||"Lorem Ipsum Name"}},{key:"getCodeLanguageName",value:function(){return"Python"}},{key:"loadConcepts",value:function(e){var t=e.map((function(e){return e.get("concepts")})).reduce((function(e,t){return e.concat(t)}),[]),n=[];return new Set(t).forEach((function(e){return n.push(e)})),n}},{key:"getConcepts",value:function(){return this.concepts}},{key:"fetchLevelSession",value:function(e){var t="/db/level/".concat(e,"/session");return(new g).fetch({url:t})}},{key:"reduceSessionStats",value:function(e,t){return e.reduce((function(e,n,r){return e.levels.numDone+=1,e.linesOfCode+=n.countOriginalLinesOfCode(t[r]),e}),this.courseStats)}}],c=[{key:"initClass",value:function(){this.prototype.id="certificates-view",this.prototype.template=n(897814),this.prototype.events={"click .print-btn":"onClickPrintButton"}}}],s&&i(r.prototype,s),c&&i(r,c),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,s,c}(h)).initClass(),d)}
1,203629:(e,t,n)=>{"use strict";var r,o=n(619755);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function i(e){var t=function(e,t){if("object"!=s(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t);if("object"!=s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==s(t)?t:t+""}function c(e,t,n){return t=l(t),function(e,t){if(t&&("object"==s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,u()?Reflect.construct(t,n||[],l(e).constructor):t.apply(e,n))}function u(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(u=function(){return!!e})()}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}n(471413);var f=n(976911),d=n(249449),h=n(609838),m=n(573131),g=n(967950),y=n(759075),v=n(318038),b=n(579483),w=n(34088),k=n(299498),S=n(86856),C=n(7288);function O(e,t){return null!=e?t(e):void 0}e.exports=((r=function(e){function t(e,n){var r,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(o=c(this,t,[e])).userID=n,o.utils=k,o.callOz=k.getQueryVariable("callOz"),o.userID===me.id?(o.user=me,k.isCodeCombat&&!k.showOzaria()&&o.setHero()):(o.user=new d({_id:o.userID}),o.user.fetch(),o.supermodel.trackModel(o.user),k.isCodeCombat&&!k.showOzaria()&&o.listenToOnce(o.user,"sync",(function(){return"function"==typeof o.setHero?o.setHero():void 0})),o.user.fetchNameForClassmate({success:function(e){return o.studentName=d.broadName(e),"function"==typeof o.render?o.render():void 0}}));var s=k.getQueryVariable("class");s&&(o.classroom=new h({_id:s}),o.classroom.fetch(),o.supermodel.trackModel(o.classroom),o.listenToOnce(o.classroom,"sync",o.onClassroomLoaded));var a=k.getQueryVariable("course");a&&(o.course=new m({_id:a}),o.course.fetch({callOz:o.callOz}),o.supermodel.trackModel(o.course));var i=k.getQueryVariable("campaign-id");i&&(o.campaign=new g({_id:i}),o.campaign.fetch(),o.supermodel.trackModel(o.campaign)),o.courseInstanceID=k.getQueryVariable("course-instance"),o.sessions=new y,o.courseInstanceID?(o.supermodel.trackRequest(o.sessions.fetchForCourseInstance(o.courseInstanceID,{userID:o.userID,data:{project:"state.complete,level.original,playtime,changed,code,codeLanguage,team"}})),o.listenToOnce(o.sessions,"sync",o.calculateStats)):i?(o.supermodel.trackRequest(o.sessions.fetchForCampaign(i,{data:{userId:o.userID,noLanguageFilter:!0}})),o.listenToOnce(o.sessions,"sync",o.calculateCampaignStats)):a&&o.userID&&(o.supermodel.trackRequest(o.sessions.fetchForCourse({courseId:a,userId:o.userID},{callOz:o.callOz})),o.listenToOnce(o.sessions,"sync",o.calculateCourseStats)),o.courseLevels=new v,s&&a&&(o.supermodel.trackRequest(o.courseLevels.fetchForClassroomAndCourse(s,a,{data:{project:"concepts,practice,assessment,primerLanguage,type,slug,name,original,description,shareable,i18n,thangs.id,thangs.components.config.programmableMethods"}})),o.listenToOnce(o.courseLevels,"sync",o.calculateStats));var u=9e7;return null!==(r=features)&&void 0!==r&&r.chinaUx&&(o.certificateNumber=(o.hashString(o.user.id+o.courseInstanceID)%u+u)%u+1e7),o.currentLang=me.get("preferredLanguage",!0),o.needLanguageToggle="en"!==o.currentLang.split("-")[0],o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),r=t,s=[{key:"getTitle",value:function(){var e;return"Anonymous"!==(null===(e=this.user)||void 0===e?void 0:e.broadName())&&this.user?"Certificate: ".concat(this.user.broadName()):"Certificate"}},{key:"hashString",value:function(e){return function(e,t,n){for(var r=[],o=0<t,s=t,a=0;o?a<s:a>s;o?a++:a--)r.push(a);return r}(0,e.length).map((function(t){return e.charCodeAt(t)})).reduce((function(e,t){return(e<<5)+e+t}),5381)}},{key:"setHero",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t||(t=k.getQueryVariable("hero")||O(this.user.get("heroConfig"),(function(e){return e.thangType}))||b.heroes.captain),this.thangType=new w,this.supermodel.trackRequest(this.thangType.fetchLatest
1Version(t,{data:{project:"slug,version,original,extendedName,heroClass"}})),this.thangType.once("sync",(function(t){if(!["armando-hoyos","brown-rat-hero","captain","champion","code-ninja","duelist","goliath","guardian","knight","ned-fulmer","nick","raider","samurai","stalwart"].includes(e.thangType.get("slug")))return e.setHero(b.heroes.captain)}))}},{key:"onClassroomLoaded",value:function(){var e=this;if(this.calculateStats(),me.id!==this.classroom.get("ownerID"))return new d({_id:this.classroom.get("ownerID")}).fetchNameForClassmate({success:function(t){return e.teacherName=d.broadName(t),"function"==typeof e.render?e.render():void 0}});this.teacherName=me.broadName()}},{key:"getCodeLanguageName",value:function(){return this.classroom?this.course&&/web-dev-1/.test(this.course.get("slug"))?"HTML/CSS":this.course&&/web-dev/.test(this.course.get("slug"))?"HTML/CSS/JS":this.classroom.capitalizeLanguageName():"Code"}},{key:"calculateStats",value:function(){var e=this;if(this.classroom.loaded&&this.sessions.loaded&&this.courseLevels.loaded&&(this.course.isHackStackCourse()?(this.courseStats=this.classroom.statsForAIProjects(this.sessions,this.course.id),this.courseStats.isAI=!0):this.courseStats=this.classroom.statsForSessions(this.sessions,this.course.id,this.courseLevels),this.courseStats.levels.project)){var t=this.sessions.find((function(t){return t.get("level").original===e.courseStats.levels.project.get("original")}));if(t)return this.projectLink="".concat(window.location.origin,"/play/").concat(this.courseStats.levels.project.get("type"),"-level/").concat(t.id),S("/db/level.session/short-link",{method:"POST",json:{url:this.projectLink}}).then((function(t){return e.projectShortLink=t.shortLink,e.render()}))}}},{key:"calculateCourseStats",value:function(){var e=0;this.sessions.forEach((function(t){var n;e+=null!=(n=t.get("playtime"))?n:0})),this.courseStats={playtime:e}}},{key:"calculateCampaignStats",value:function(){if(this.sessions){this.courseStats={};for(var e=0,t=0,n=0,r=Array.from(null!=this.sessions?this.sessions.models:void 0);n<r.length;n++){var o,s=r[n];e+=null!=(o=s.get("state").complete)?o:{1:0};var a=s.get("code"),i="";a&&(i=(null!=a["hero-placeholder-1"]?a["hero-placeholder-1"].plan:void 0)||(null!=a["hero-placeholder"]?a["hero-placeholder"].plan:void 0));var c=(i||"").split(/\n+/).length;t+=c>1?c-1:0}return this.courseStats={levels:{numDone:e},linesOfCode:t},this.campaignConcepts=_.map(O(this.campaign.get("description"),(function(e){return e.split(",")})),(function(e){return e.trim()})),this.render()}}},{key:"onClickPrintButton",value:function(){return window.print()}},{key:"onClickToggleButton",value:function(){var e=this,t="en";return"en"===this.currentLang.split("-")[0]&&(t=me.get("preferredLanguage",!0)),this.currentLang=t,o.i18n.changeLanguage(t,(function(){return C.load(t).then((function(){return e.render()}))}))}},{key:"afterRender",value:function(){return this.autoSizeText(".student-name")}},{key:"autoSizeText",value:function(e){return this.$(e).each((function(e,t){return function(){for(var e=[];t.scrollWidth>t.offsetWidth||t.scrollHeight>t.offsetHeight;){var n=.95*parseFloat(o(t).css("font-size").slice(0,-2))+"px";e.push(o(t).css("font-size",n))}return e}()}))}}],i=[{key:"initClass",value:function(){this.prototype.id="certificates-view",this.prototype.template=n(613845),this.prototype.events={"click .print-btn":"onClickPrintButton","click .toggle-btn":"onClickToggleButton"}}}],s&&a(r.prototype,s),i&&a(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,s,i}(f)).initClass(),r)},897814:(e,t,n)=>{var r=n(477055);e.exports=function(e){var t,n="",o=e||{};return function(e){n+='<style>@page {\n margin-top: 0.5in;\n margin-left: 0;\n margin-right: 0;\n margin-bottom: 0;\n}\n\n@page:first {\n margin-top: 0in;\n}\n\nbody {\n user-select: none;\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n -o-user-select: none;\n}\n\n@media print {\n a[href]:after {\n content: none;\n }\n a[href] {\n color: #0b63bc !important;\n text-decoration: underline;\n }\n}\n</style><div class="style-flat"><div class="menu"><div class="print-btn btn btn-success">Print</div></div><div class="certificate">',e.loading||(n=n+'<img class="certificate-background"'+r.attr("src",e.backgroundImage(),!0,!0)+">"),n=n+"<div"+r.attr("class",r.classes(["certificate-contents"+(e.courseStats&&!e.courseStats.courseComplete?" in-progress":"")],[!0]),!1,!0)+'><img class="logo-img" src="/images/pages/base/logo.png"><div class="certificate-text-container">',e.loading||!e.courseStats?n+='<h1 class="loading-indicator" data-i18n="common.loading"></h1>':(e.courseStats.courseComplete?n+='<h3 class="certificate-of-completion" data-i18n="user.certificate_of_completion"></h3>':n+='<h3 class="certificate-of-completion" data-i18n="teacher.in_progress"></h3>',n=n+'<h1 class="student-name">'+r.escape(null==(t=e.userName())?"":t)+'</h1><h4 class="course-name"><span data-i18n="user.certificate_for"></span><span>'+r.escape(null==(t=" ")?"":t)+'</span><span data-i18n="hoc_2018.title"></span></h4><div class="code-results outcome-section"><h3 class="learned-title" data-i18n="user.certificate_stats"></h3><ul class="list-unstyled"><li><span>'+r.escape(null==(t=e.courseStats.linesOfCode)?"":t)+"</span><span>"+r.escape(null==(t=" ")?"":t)+'</span><span data-i18n="user.certificate_lines_of"></span><span>'+r.escape(null==(t=" ")?"":t)+"</span><span>"+r.escape(null==(t=e.getCodeLanguageName())?"":t)+"</span></li><li><span>"+r.escape(null==(t=e.courseStats.levels.numDone)?"":t)+"</span><span>"+r.escape(null==(t=" ")?"":t)+'</span><span data-i18n="user.certificate_levels_completed"></span></li>',e.projectLink&&(n=n+'<li><span data-i18n="teacher.project"></span><span>'+r.escape(null==(t=": ")?"":t)+"</span>
1<a"+r.attr("href",e.projectLink,!0,!0)+">"+r.escape(null==(t=(e.projectShortLink||e.projectLink).replace(/^https?:\/\//,""))?"":t)+"</a></li>"),n+='</ul></div><div class="concepts-learned outcome-section"><h3 class="learned-title" data-i18n="courses.concepts"></h3><ul class="list-unstyled">',function(){var t=e.getConcepts().slice().reverse().slice(0,7);if("number"==typeof t.length)for(var o=0,s=t.length;o<s;o++)"create_playable_game"!=(a=t[o])&&"create_sharable_web_page"!=a&&"create_sharable_interactive_web_page"!=a?n=n+"<li"+r.attr("data-i18n","concepts."+a,!0,!0)+"></li>":n+='\x3c!-- Too wide, weird "concepts", we\'ll just skip--\x3e';else for(var o in s=0,t){var a;s++,"create_playable_game"!=(a=t[o])&&"create_sharable_web_page"!=a&&"create_sharable_interactive_web_page"!=a?n=n+"<li"+r.attr("data-i18n","concepts."+a,!0,!0)+"></li>":n+='\x3c!-- Too wide, weird "concepts", we\'ll just skip--\x3e'}}.call(this),n+="</ul></div>",e.teacherName&&(n=n+'<div class="teacher-info"><span data-i18n="courses.teacher"></span><span>'+r.escape(null==(t=": ")?"":t)+"</span><span>"+r.escape(null==(t=e.teacherName)?"":t)+"</span></div>"),n=n+'<div class="course-ribbon"><img'+r.attr("src",e.getMedallion(),!0,!0)+'><h3 style="top: 0.5in;" data-i18n="hoc_2018.acronym"></h3></div>'),n+="</div></div></div></div>"}.call(this,"view"in o?o.view:"undefined"!=typeof view?view:void 0),n}}}]); 2//# sourceMappingURL=CertificatesView-11b96f23a83b08b6326f.bundle.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.