From 2a8fb745eaa8206c277e1216ce06d38cd2ca47b5 Mon Sep 17 00:00:00 2001 From: Kven Ho Date: Mon, 2 Oct 2017 12:44:34 +0800 Subject: [PATCH 01/19] Move assessment and submission [ISDK-75] --- src/services/assessment.service.ts | 160 ++++++++++++++++++++++++++--- src/services/submission.service.ts | 3 +- 2 files changed, 149 insertions(+), 14 deletions(-) diff --git a/src/services/assessment.service.ts b/src/services/assessment.service.ts index a8f7900c..859e35dd 100755 --- a/src/services/assessment.service.ts +++ b/src/services/assessment.service.ts @@ -1,8 +1,9 @@ import { Injectable } from '@angular/core'; import { RequestService } from '../shared/request/request.service'; - +import { Http, Headers } from '@angular/http'; import * as _ from 'lodash'; - +// services +import { CacheService } from '../shared/cache/cache.service'; class Assessment { id: number; context_id: number; @@ -15,6 +16,15 @@ class Answer { choices?: Array; } +export class questionsResult { + required: Boolean; + answer: any; + reviewerAnswer: { + answer: any; + comment: any; + }; +} + export class ChoiceBase { id: number; value?: number; // or choice id, usually same as "id" above @@ -32,11 +42,12 @@ export class QuestionBase { assessment_id: number; name: string; type: string; - file_type?: string; - audience: Array; + description: string; + required: boolean; + audience: string | Array; + file_type?: string | any; choices?: ChoiceBase[]; answer?: any; - required?: boolean; order?: string | number; constructor(id, assessment_id, name, type) { @@ -55,8 +66,12 @@ export class Submission { @Injectable() export class AssessmentService { - constructor(private request: RequestService) {} - + constructor(private cacheService: CacheService, + private request: RequestService, + private http: Http) {} + private prefixUrl: any = this.request.getPrefixUrl(); + private appkey = this.request.getAppkey(); + private assessment_url = 'api/assessments.json'; /** * @description check feedback can show * @type {boolen} @@ -268,9 +283,10 @@ export class AssessmentService { */ public normaliseGroup(group) { // let result = group; - let thisQuestions = group.AssessmentGroupQuestion; - thisQuestions = thisQuestions.map(question => { - return this.normaliseQuestion(question); + let questions = group.AssessmentGroupQuestion; + let thisQuestions = []; + questions.forEach(question => { + thisQuestions.push(this.normaliseQuestion(question)); }); return { @@ -283,6 +299,27 @@ export class AssessmentService { } } + /** + * filter submission by: + * - "submitter" as audience + * - "submitter" as audience && status as "published" + * @name isAccessible + * @param {object} question Single normalised assessment + * object from this.normalise above + */ + public isAccessible(question, status) { + let result = true; + if (question.audience.indexOf('submitter') === -1) { + result = false; + } + + if (result && status === 'published') { + result = false; + } + + return result; + } + /* turn "AssessmentGroupQuestion" array format from: { @@ -326,18 +363,19 @@ export class AssessmentService { }); return { - id: question.id, + id: question.id, // unknown purpose (be careful with this id) assessment_id: question.assessment_question_id, - question_id: question.assessment_question_id, + question_id: question.assessment_question_id, // use this to indicate question group_id: question.assessment_group_id, name: thisQuestion.name, type: thisQuestion.question_type, audience: thisQuestion.audience, + description: thisQuestion.description, file_type: thisQuestion.file_type, required: thisQuestion.is_required, choices: choices, order: question.order, - answer: thisQuestion.answer + answer: thisQuestion.answer, }; } @@ -379,4 +417,100 @@ export class AssessmentService { weight: choice.weight }; } + + /** + * hardcode communication to different server + * @param {[type]} assessment_id [description] + */ + public getPostProgramAssessment(assessment_id) { + // let url = `${this.prefixUrl}api/assessments.json?assessment_id=${assessment_id}&structured=true`; + // let headers = new Headers(); + // headers.append('appkey', this.appkey); + // headers.append('apikey', this.cacheService.getLocalObject('apikey')); + // headers.append('timelineID', this.cacheService.getLocalObject('timelineID')); + return this.request.get(`api/assessments.json?assessment_id=${assessment_id}&structured=true`); + } + + // helpers + public getStatus(questionsResult, submissionResult): string { + let questionsStatus = []; + _.forEach(questionsResult, q => { + if (q.required && q.answer !== null) { + if ( + q.reviewerAnswer !== null && + submissionResult.status !== 'pending approval' && + (q.reviewerAnswer.answer || q.reviewerAnswer.comment) + ) { + questionsStatus.push('reviewed'); + } else { + questionsStatus.push('completed'); + } + } + + if (!q.required && q.answer !== null) { + if ( + q.reviewerAnswer !== null && + submissionResult.status !== 'pending approval' && + (q.reviewerAnswer.answer || q.reviewerAnswer.comment) + ) { + questionsStatus.push('reviewed'); + } else { + questionsStatus.push('completed'); + } + } + + if (q.answer === null) { + questionsStatus.push('incomplete'); + } + }); + + // get final status by checking all questions' statuses + let status = 'incomplete'; + if (_.every(questionsStatus, (v) => { + return (v === 'completed'); + })) { + status = 'completed'; + } + if (_.includes(questionsStatus, 'reviewed')) { + status = 'reviewed'; + } + + return status; + } + + public getSummaries(questionsResult: Array) { + let totalRequiredQuestions = 0; + let answeredQuestions = 0; + let reviewerFeedback = 0; + + _.forEach(questionsResult, (q) => { + // get total number of questions + if (q.required) { + totalRequiredQuestions += 1; + } + + // get total number of answered questions + if (q.required && q.answer && q.answer !== null) { + answeredQuestions += 1; + } + + // get total number of feedback + // If API response, the reviewer's answer and comment are empty, + // front-end don't consider it as a feedback + if ( + q.reviewerAnswer && + q.reviewerAnswer !== null && + !_.isEmpty(q.reviewerAnswer.answer) && + !_.isEmpty(q.reviewerAnswer.comment) + ) { + reviewerFeedback += 1; + } + }); + + return { + totalRequiredQuestions, + answeredQuestions, + reviewerFeedback + }; + } } diff --git a/src/services/submission.service.ts b/src/services/submission.service.ts index 9371f079..47574abb 100755 --- a/src/services/submission.service.ts +++ b/src/services/submission.service.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; import { RequestService } from '../shared/request/request.service'; +import { Observable } from 'rxjs/Observable'; import * as _ from 'lodash'; import * as moment from 'moment'; @@ -211,7 +212,7 @@ export class SubmissionService { * extract reference IDs and prepare Observables to retrieve submissions * @param {array} references References array responded with get_activities() api */ - public getSubmissionsByReferences(references) { + public getSubmissionsByReferences(references: Array<{context_id : Number}>): Array> { let tasks = []; // multiple API requests // get_submissions API to retrieve submitted answer From e4a11c033d220d8b2846e35dc800e211915f1b96 Mon Sep 17 00:00:00 2001 From: Kven Ho Date: Mon, 2 Oct 2017 16:53:48 +0800 Subject: [PATCH 02/19] Fix render error problem [ISDK-75] --- .../assessments/group/assessments-group.html | 21 +- .../group/assessments-group.page.ts | 227 ++++++++---------- 2 files changed, 108 insertions(+), 140 deletions(-) diff --git a/src/pages/assessments/group/assessments-group.html b/src/pages/assessments/group/assessments-group.html index 43f8bcd9..dc0b3ad5 100644 --- a/src/pages/assessments/group/assessments-group.html +++ b/src/pages/assessments/group/assessments-group.html @@ -16,12 +16,13 @@ - +
{{assessmentGroup.name}}
-

+
@@ -30,43 +31,39 @@
{{assessmentGroup.name}}
* - +

-
-
{{ submission | json }}
-
- - +
diff --git a/src/pages/assessments/group/assessments-group.page.ts b/src/pages/assessments/group/assessments-group.page.ts index 7f434f9f..d868be9d 100644 --- a/src/pages/assessments/group/assessments-group.page.ts +++ b/src/pages/assessments/group/assessments-group.page.ts @@ -1,16 +1,15 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { NavParams, NavController, AlertController, LoadingController, Events } from 'ionic-angular'; import { FormBuilder, Validators, FormGroup, FormControl, FormArray } from '@angular/forms'; import { CacheService } from '../../../shared/cache/cache.service'; import { ChoiceBase, QuestionBase, Submission, AssessmentService } from '../../../services/assessment.service'; import * as _ from 'lodash'; - @Component({ selector: 'assessments-group-page', templateUrl: './assessments-group.html', }) -export class AssessmentsGroupPage { +export class AssessmentsGroupPage implements OnInit { questions = []; formGroup; @@ -40,7 +39,7 @@ export class AssessmentsGroupPage { public events: Events ) {} - ionViewDidEnter() { + ngOnInit() { // navigate from activity page this.activity = this.navParams.get('activity') || {}; @@ -49,15 +48,15 @@ export class AssessmentsGroupPage { if (!_.isEmpty(this.event)) { this.activity = this.event; } + } - this.assessment = this.activity.assessment; // required for context_id - this.cacheKey = `assessment.group.${this.assessment.context_id}`; + ionViewDidEnter() { + // use assessment object from activity (required for extracting context_id) + this.assessment = this.activity.assessment; + this.cacheKey = `assessment.group.${this.assessment.context_id}`; this.assessmentGroup = this.navParams.get('assessmentGroup') || {}; this.submission = this.navParams.get('submission') || {}; - - console.log('this.assessmentGroup', this.assessmentGroup); - // preset key used for caching later (locally and remote data) this.canUpdateInput = this.isInputEditable(this.submission); // this.published = this.assessmentService.isPublished(this.submissions); @@ -69,6 +68,10 @@ export class AssessmentsGroupPage { ); } + /** + * @name updateSubmission + * @description trace changes of input for assessment (to avoid extra checking logics) + */ updateSubmission() { this.events.publish('assessment:changes', { changed: true @@ -86,22 +89,6 @@ export class AssessmentsGroupPage { return true; } return false; - // let editable = false; - // _.forEach(this.submissions, (submission) => { - // if (_.isEmpty(submission)) { - // editable = true; - // } else { - // _.forEach(submission, (subm) => { - // if ( - // subm.AssessmentSubmission && - // subm.AssessmentSubmission.status === 'in progress' - // ) { - // editable = true; - // } - // }); - // } - // }); - // return editable; } /** @@ -116,24 +103,32 @@ export class AssessmentsGroupPage { } _.forEach(submission.review, (review) => { + _.forEach(questions, (question, idx) => { - if (review.assessment_question_id === question.id) { - // text type + if (review.assessment_question_id === question.question_id) { + // text type (no merging, text question displayed in plain text) if (question.type === 'text') { questions[idx].review_answer = review; } // oneof type + // combine question, when answered by both reviewer and submitter if (question.type === 'oneof') { questions[idx].review_answer = review; + let submitterAnswer = question.answer; + _.forEach(question.choices, (choice, key) => { - if (choice.id == review.answer && choice.id == question.answer.answer) { - questions[idx].choices[key].name = choice.name + ' (you and reviewer)'; - } - if (choice.id != review.answer && choice.id == question.answer.answer) { - questions[idx].choices[key].name = choice.name + ' (you)'; - } - if (choice.id == review.answer && choice.id != question.answer.answer) { + if (!_.isEmpty(submitterAnswer)) { + if (choice.id == review.answer && choice.id == submitterAnswer.answer) { + questions[idx].choices[key].name = choice.name + ' (you and reviewer)'; + } + else if (choice.id != review.answer && choice.id == submitterAnswer.answer) { + questions[idx].choices[key].name = choice.name + ' (you)'; + } + else if (choice.id == review.answer && choice.id != submitterAnswer.answer) { + questions[idx].choices[key].name = choice.name + ' (reviewer)'; + } + } else if (choice.id == review.answer) { // display reviewer answer questions[idx].choices[key].name = choice.name + ' (reviewer)'; } }); @@ -142,39 +137,6 @@ export class AssessmentsGroupPage { }); }); - // _.forEach(submissions, (submission) => { - // _.forEach(submission, (subm) => { - // - // _.forEach(subm.AssessmentReviewAnswer, (reviewAnswer) => { - // _.forEach(questions, (question, idx) => { - // - // if (reviewAnswer.assessment_question_id === question.id) { - // // text type - // if (question.type === 'text') { - // questions[idx].review_answer = reviewAnswer; - // } - // - // // oneof type - // if (question.type === 'oneof') { - // questions[idx].review_answer = reviewAnswer; - // _.forEach(question.choices, (choice, key) => { - // if (choice.id == reviewAnswer.answer && choice.id == question.answer.answer) { - // questions[idx].choices[key].name = choice.name + ' (you and reviewer)'; - // } - // if (choice.id != reviewAnswer.answer && choice.id == question.answer.answer) { - // questions[idx].choices[key].name = choice.name + ' (you)'; - // } - // if (choice.id == reviewAnswer.answer && choice.id != question.answer.answer) { - // questions[idx].choices[key].name = choice.name + ' (reviewer)'; - // } - // }); - // } - // } - // - // }); - // }); - // }); - // }); return questions; } @@ -236,7 +198,14 @@ export class AssessmentsGroupPage { group['choices'] = new FormGroup(choices); } - result[question.id] = new FormGroup(group); + /** + * id and question_id are different id + * - id = has no obvious purpose + * - question_id must be used as id for submission + * + * but for case like this just for index id + */ + result[question.question_id] = new FormGroup(group); }); return result; @@ -262,22 +231,31 @@ export class AssessmentsGroupPage { return { Assessment: { - id: submission.assessment_id, - context_id: this.getSubmissionContext() + id: submission.assessment_id, + context_id: this.getSubmissionContext() }, AssessmentSubmissionAnswer: answers }; } /** - * @description store assessment answer/progress locally + * @name storeProgress + * @description store assessment answer/progress locally (offline) + * @example format for cached submission + * { + * Assessment: { + * id: 1, + * context_id: 2 + * }, + * AssessmentSubmissionAnswer: Array + * } */ storeProgress = () => { let answers = {}; - _.forEach(this.formGroup, (question, id) => { + _.forEach(this.formGroup, (question, question_id) => { let values = question.getRawValue(), answer = { - assessment_question_id: id, + assessment_question_id: question_id, answer: values.answer || values.comment, // store it if choice answer is available or skip @@ -286,7 +264,7 @@ export class AssessmentsGroupPage { // set empty string to remove answer answer.answer = (answer.answer) ? answer.answer : ''; - answers[id] = answer; + answers[question_id] = answer; }); // final step - store submission locally @@ -308,18 +286,17 @@ export class AssessmentsGroupPage { * @description retrieve saved progress from localStorage */ retrieveProgress = (questions: Array, answers?) => { - let cachedProgress = answers || {}; //this.cache.getLocalObject(this.cacheKey); - - let newQuestions = questions; - let savedProgress = cachedProgress.AssessmentSubmissionAnswer; + let cachedProgress = answers || {}, + newQuestions = questions, + savedProgress = cachedProgress.AssessmentSubmissionAnswer; if (!_.isEmpty(savedProgress)) { - // index "id" is set as question.id in @Function buildFormGroup above - _.forEach(newQuestions, (question, id) => { + // index "id" is set as question.question_id in @Function buildFormGroup above + _.forEach(newQuestions, (question, question_id) => { // check integrity of saved answer (question might get updated) - if (savedProgress[id] && savedProgress[id].assessment_question_id == id) { - newQuestions[id] = this.setValueWith(question, savedProgress[id]); + if (savedProgress[question_id] && savedProgress[question_id].assessment_question_id == question_id) { + newQuestions[question_id] = this.setValueWith(question, savedProgress[question_id]); } }); } @@ -347,58 +324,52 @@ export class AssessmentsGroupPage { } /** - * @description initiate save progress and return to previous page/navigation stack + * @name save + * @description save input (partially post submission) and + * return to previous navigation stack */ save() { let self = this, - loading = this.loadingCtrl.create({ - content: 'Loading...' - }), - // to provide a more descriptive error message (if available) - failAlert = this.alertCtrl.create({ - title: 'Fail to submit.' - }); - - let saveProgress = () => { - this.updateSubmission(); - - loading.present().then(() => { - self.assessmentService.save(self.storeProgress()).subscribe( - response => { - loading.dismiss().then(() => { - self.navCtrl.pop(); - }); - }, - reject => { - loading.dismiss().then(() => { - failAlert.data.title = reject.msg || failAlert.data.title; - failAlert.present().then(() => { - console.log('Unable to save', reject); + loading = this.loadingCtrl.create({ + content: 'Loading...' + }), + // to provide a more descriptive error message (if available) + failAlert = this.alertCtrl.create({ + title: 'Fail to submit.' + }), + saveProgress = () => { + this.updateSubmission(); + + loading.present().then(() => { + self.assessmentService.save(self.storeProgress()).subscribe( + response => { + loading.dismiss().then(() => { + self.navCtrl.pop(); }); - }); - } - ); + }, + reject => { + loading.dismiss().then(() => { + failAlert.data.title = reject.msg || failAlert.data.title; + failAlert.present().then(() => { + console.log('Unable to save', reject); + }); + }); + } + ); + }); + }, + confirmBox = this.alertCtrl.create({ + message: 'You have not completed all required questions. Do you still wish to Save?', + buttons: [ + { + text: 'Yes', + handler: saveProgress + }, + 'No' + ] }); - }; - - let confirmBox = this.alertCtrl.create({ - message: 'You have not completed all required questions. Do you still wish to Save?', - buttons: [ - { - text: 'Yes', - handler: () => { - saveProgress(); - } - }, - { - text: 'No', - handler: () => { - //return false; - } - } - ] - }); + // has all compulsory questions answered? if (!this.isAllQuestionsAnswered()) { confirmBox.present(); } else { From 4d80266904c7f6acb897dd148e0ab33b457d3609 Mon Sep 17 00:00:00 2001 From: Kven Ho Date: Mon, 2 Oct 2017 17:04:59 +0800 Subject: [PATCH 03/19] Fix problem unable to submit [ISDK-75] --- src/pages/assessments/assessments.html | 10 +- src/pages/assessments/assessments.page.ts | 503 ++++++++++------------ 2 files changed, 234 insertions(+), 279 deletions(-) diff --git a/src/pages/assessments/assessments.html b/src/pages/assessments/assessments.html index 02d56f6b..bb0fe09f 100644 --- a/src/pages/assessments/assessments.html +++ b/src/pages/assessments/assessments.html @@ -1,7 +1,6 @@ - \n \n {{ context.title }}\n \n
\n \n\t\t
\n\n

\n
{{ context.score }}
\n\n \n\n \n \n `\n})\nexport class ModalComponent {\n\n context;\n\n constructor(\n public params: NavParams,\n public viewCtrl: ViewController\n ) {\n this.context = this.params.get('context');\n }\n\n ngOnInit() {}\n\n dismiss() {\n this.viewCtrl.dismiss();\n }\n\n gotoScreen(path) {\n this.dismiss();\n\n // if ($state.current.name != route || route !== '') {\n // $state.go(route);\n // }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/modal.component.ts","import { Component, NgZone, OnInit } from '@angular/core';\nimport { NavController, ViewController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ResetpasswordModelPage } from '../../pages/resetpassword-model/resetpassword-model';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-reset-password',\n templateUrl: 'reset-password.html'\n})\nexport class ResetPasswordPage implements OnInit {\n\n emailVal: string;\n keyVal: string;\n\n invalidLinkErrMessage = errMessages.ResetPassword.invalidLink.invalid;\n isLandscaped: boolean = false;\n isPwdMatch: boolean = false;\n minLengthCheck: boolean = true;\n milestone_id: string;\n password: string;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n resetPasswordLoginFailedMessage: any = errMessages.ResetPassword.resetLoginFailed.failed;\n resetPwdFormGroup: any;\n successResetPasswordMessage: any = loadingMessages.SuccessResetPassword.successResetPassword;\n verify_password: string;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n verifyUserMessage = loadingMessages.VerifyUser.verify;\n windowHeight: number = window.innerHeight / 3;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public formBuilder: FormBuilder,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslationService,\n public viewCtrl: ViewController\n ) {\n // validation for both password values: required & minlength is 8\n this.resetPwdFormGroup = formBuilder.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n })\n }\n /**\n * Detect user device type (mobile or desktop) on initial page load\n * Purpose: Initially page loaded, this peice code will detect user screen\n whether is mobile or desktop device (including iPad).\n * @param {}\n * @return A calculated ratio value plus screen innerWidth value to determine\n user screen is mobile device or desktop device. If device is mobile\n device, ngOnInit() will disable landscape mode for mobile device\n */\n ngOnInit() {\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad ResetpasswordPage');\n }\n ionViewWillEnter() {\n this.verifyKeyEmail();\n }\n /**\n * to verify user is whether typed or clicked the email link\n * Purpose: if user is typed the email link key and email, user is not allowed\n to veiw the reset password page and display one error hint screen\n for user. As long as user clicked email link from mailbox, user is\n enabled to view the reset password page\n * @param { key, email }\n * @return if user clicked email link, return reset password page, otherwise,\n return error hint screen\n */\n verifyKeyEmail(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n this.keyVal = key;\n this.emailVal = email;\n const loading = this.loadingCtrl.create({\n content: this.verifyUserMessage\n });\n loading.present();\n this.authService.verifyUserKeyEmail(key, email)\n .subscribe(data => {\n loading.dismiss();\n this.verifySuccess = true;\n console.log(\"valueTrue: \" + this.verifySuccess);\n },\n err => {\n loading.dismiss();\n this.verifySuccess = false;\n console.log(\"valueFalse: \" + this.verifySuccess);\n setTimeout(() => {\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n }, 5000);\n });\n }\n /**\n * to update password in db\n * Purpose: store new password for user\n * @param { key, email, password, verify_password }\n * @return if API request is passed (status code: 200), user password updated\n successfully, otherwise, error hint popup to indicate user password\n update failed\n */\n updatePassword(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n const loading = this.loadingCtrl.create({\n content: this.successResetPasswordMessage\n });\n loading.present().then(() => {\n this.authService.resetUserPassword(key, email, this.password, this.verify_password).subscribe(data => {\n // loading.dismiss();\n // this.navCtrl.push(LoginPage);\n this.authService.loginAuth(email, this.password)\n .subscribe(data => {\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n this.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n loading.dismiss().then(() => {\n this.loginError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n });\n }\n // after password set, auto login error alertbox\n loginError(error) {\n const alertLogin = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.resetPasswordLoginFailedMessage,\n buttons: ['Close']\n });\n alertLogin.present();\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/reset-password/reset-password.ts","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { i18nEN } from './assets/i18n-en';\nimport { i18nCN } from './assets/i18n-cn'; \n@Injectable()\nexport class TranslationService {\n constructor(public translate: TranslateService,){\n translate.addLangs([\"en\", \"cn\"]);\n translate.setDefaultLang(\"en\");\n translate.use(\"en\");\n }\n isTranslated(checkStatus){\n return checkStatus == true ? this.translate.use(\"cn\") : this.translate.use(\"en\")\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.service.ts","import { FormControl } from '@angular/forms';\n\nexport class FormValidator {\n static isValidEmail(formCtrl: FormControl){\n var regexValue = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(formCtrl.value);\n if(regexValue) {\n return null;\n }\n return { \"inValidEmail\": true }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/validators/formValidator.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\nimport { Http, Headers, URLSearchParams, RequestOptions } from '@angular/http';\n@Injectable()\nexport class AuthService {\n appkey: any = this.request.getAppkey();\n prefixUrl: any = this.request.getPrefixUrl();\n AUTH_ENDPOINT: any = this.prefixUrl + 'api/auths.json?action=';\n\n constructor(\n public request: RequestService,\n public http: Http\n ) {}\n\n headerData() {\n let headers = new Headers();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n headers.append('appkey', this.appkey);\n return headers;\n }\n\n getTerms() {\n let options = new RequestOptions({headers: this.headerData()});\n return this.http.get(this.prefixUrl+'api/registration_details.json', options)\n .map(res => res.json());\n }\n\n verifyRegistration(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `email=${data.email}`,\n `key=${data.key}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n register(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `password=${data.password}`,\n `user_id=${data.user_id}`,\n `key=${data.key || 'thisissamplekey'}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n loginAuth(email, password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `data[User][email]=${email}`,\n `data[User][password]=${password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'authentication', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n forgotPassword(email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('email', email);\n return this.http.post(this.AUTH_ENDPOINT+'forgot_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n verifyUserKeyEmail(key, email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n resetUserPassword(key, email, password, verify_password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`,\n `password=${password}`,\n `verify_password=${verify_password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n magicLinkLogin(auth_token){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('auth_token', auth_token);\n return this.http.post(this.prefixUrl+'api/auths.json?', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n getUser() {\n return this.request.get('api/users.json');\n }\n\n isAuthenticated() {\n return true;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/auth.service.ts","import { Component } from '@angular/core';\n\n// Pages\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { RankingsPage } from '../rankings/list/rankings.page';\nimport { SettingsPage } from '../settings/settings.page';\nimport { TestPage } from './test.page';\nimport { EventsListPage } from '../events/list/list.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\n\n@Component({\n templateUrl: 'tabs.html',\n providers: []\n})\nexport class TabsPage {\n // this tells the tabs component which Pages\n // should be each tab's root Page\n ranking: any = RankingsPage;\n // ranking: any = TestPage;\n dashboard: any = ActivitiesListPage;\n settings: any = SettingsPage;\n events: any = EventsListPage;\n\n constructor(\n public translationService: TranslationService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/tabs.page.ts","import { Component } from '@angular/core';\nimport { ViewController, NavParams } from 'ionic-angular';\n\n@Component({\n template: `\n \n \n \n \n \n {{activityData.name}}\n \n \n \n \n

{{ activityData.name }}

\n\n
\n\n

{{ activityData.description || 'No descriptions available.' }}

\n
\n\n \n \n Download\n \n
\n `\n})\n\nexport class ActivitiesViewModalPage {\n activity: any = {};\n activityData: Object = {};\n\n constructor(\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {\n }\n\n ionViewDidEnter(): void {\n this.activity = this.navParams.get('activity');\n this.activityData = this.activity.Activity;\n console.log(this.activity.Activity);\n }\n\n dismiss() {\n let data = { 'foo': 'bar' };\n this.viewCtrl.dismiss(data);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/view/activities-view-modal.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslateService } from '@ngx-translate/core';\n\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n//Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\n\n@Component({\n selector: 'activity-list-popup',\n templateUrl: 'popup.html'\n})\nexport class ActivityListPopupPage {\n\n achievementData: any = null;\n achievementName: string;\n achievementsLoadingErr: any = errMessages.General.loading.load;\n achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n badgeUrl: string;\n description: string;\n enableData: boolean = null;\n loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n points: string;\n unlock_id: any;\n\n constructor(\n public achievementService: AchievementService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {\n this.unlock_id = this.navParams.get('unlock_id');\n // console.log('Unlock id value: ', this.unlock_id);\n }\n\n ionViewWillEnter(){\n let loader = this.loadingCtrl.create({\n content: this.loadingMessage\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.achievementsLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let nothingLoaded = this.toastCtrl.create({\n message: this.achievementsEmptyDataErr,\n duration: 4000,\n position: 'bottom'\n });\n loader.present().then(() => {\n this.achievementService.getAll()\n .subscribe(\n (data) => {\n if (data.length > 0) {\n this.enableData = true;\n this.achievementData = data.find(res => res.Achievement.id === this.unlock_id).Achievement;\n this.achievementName = this.achievementData.name;\n this.badgeUrl = this.achievementData.badge;\n this.description = this.achievementData.description;\n this.points = this.achievementData.points;\n loader.dismiss().then(() => {\n console.log(this.achievementData);\n });\n } else {\n this.enableData = false;\n loader.dismiss().then(() => {\n nothingLoaded.present();\n });\n }\n },\n (err) => {\n this.enableData = false;\n loader.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n )\n });\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/popup.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { GameService } from '../../../services/game.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'rankings-list-page',\n templateUrl: 'rankings.html'\n})\nexport class RankingsPage {\n emptyErrorMessage: any = errMessages.General.loading.load;\n listRankingData: any = [];\n loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n myRankingData: any = [];\n rankingData: any = [];\n totalData: any = [];\n\n constructor(\n public alertCtrl: AlertController,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n ionViewWillEnter(){\n this.RankingData();\n }\n RankingData(){\n const loading = this.loadingCtrl.create({\n content: this.loadingMessages\n });\n const emptyDataAlert = this.alertCtrl.create({\n title: 'Sorry, No data has been found',\n message: this.emptyErrorMessage,\n buttons: ['Close']\n });\n loading.present();\n // @TODO remove later\n let gameId = this.cacheService.getLocalObject('game_id');\n this.gameService.getCharacters(gameId)\n .subscribe((characters) => {\n // Now only have one character per project\n let me = characters.Characters[0];\n this.gameService.getRanking(gameId, me.id)\n .subscribe(\n results => {\n loading.dismiss().then(() => {\n this.totalData = results;\n this.rankingData = this.totalData;\n // We only have 1 character\n if(this.totalData.MyCharacters){\n this.myRankingData = this.totalData.MyCharacters[0] || [];\n }else {\n this.myRankingData = [];\n }\n this.listRankingData = this.totalData.Characters;\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log('err', err);\n emptyDataAlert.present();\n });\n }\n );\n },\n err => {\n loading.dismiss().then(() => {\n console.log('Error: ', err.msg);\n emptyDataAlert.present();\n });\n });\n }\n goRankingDetail(myRanking){\n this.navCtrl.push(RankingDetailsPage, {\n myRanking: myRanking\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/list/rankings.page.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingBadgesPage } from './ranking-badges';\n@Component({\n selector: 'rankings-details-page',\n templateUrl: 'ranking-details.html'\n})\nexport class RankingDetailsPage {\n public userAchievementsData: any = [];\n public achievementBadgeImage = '../assets/img/default/default-badge.png';\n public achievementName = 'Achievement';\n public totalPoints = 0;\n public myRank: any= {};\n\n public emptyAchievementMessage = errMessages.Activities.achievements.empty;\n public loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n public emptyErrorMessage: any = errMessages.General.loading.load;\n constructor(public navCtrl: NavController,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public params: NavParams,\n public achievementService: AchievementService){}\n\n ionViewWillEnter() {\n this.myRank = this.params.get('myRanking');\n this.totalPoints = this.myRank.experience_points;\n\n let loader = this.loadingCtrl.create();\n loader.present().then(() => {\n this.userAchievements()\n .then(() => {\n loader.dismiss();\n }, err => {\n console.log('log::', err);\n });\n });\n\n }\n userAchievements(): Promise {\n return new Promise((resolve, reject) => {\n this.achievementService.getAchievements()\n .subscribe(\n (data) => {\n console.log('achievemnts', data);\n if (data) {\n // Filter achievemnts\n _.forEach(data.Achievement, element => {\n if(element.visibility !== 2){\n this.userAchievementsData.push(element);\n }\n });\n }\n resolve();\n },\n (err) => {\n console.log(\"Error: \", err);\n reject(err);\n }\n );\n });\n }\n goToBadgeDetailsPage(achievementData){\n let goRankingBadgesPopup = this.modalCtrl.create(RankingBadgesPage, { achievement: achievementData });\n goRankingBadgesPopup.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-details.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages'; \nimport * as _ from 'lodash';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n@Component({\n selector: 'ranking-badges',\n templateUrl: 'ranking-badges.html'\n})\nexport class RankingBadgesPage {\n public currentAchievement: any = null;\n public badgeUrl: string = '../assets/img/default/default-badge.png';\n public description: string = \"No Description Yet ..\";\n public points: number = 0;\n public achievementName: string = \"Achievement\";\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n public achievementsLoadingErr: any = errMessages.General.loading.load;\n public achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n constructor(public viewCtrl: ViewController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public loadingCtrl: LoadingController,\n public achievementService: AchievementService,\n public translationService: TranslationService){\n this.currentAchievement = this.navParams.get('achievement');\n console.log(\"currentAchievement: \", this.currentAchievement);\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-badges.ts","import { Component } from '@angular/core';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\n\n@Component({\n selector: 'leaderboard-settings-page',\n templateUrl: 'leaderboard-settings.html'\n})\nexport class LeaderboardSettingsPage {\n isHide: boolean = false;\n useremail: string = this.cacheService.getLocalObject('email') || '';\n username: string = this.cacheService.getLocalObject('name') || '';\n\n constructor(\n public cacheService: CacheService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/leaderboard/leaderboard-settings.page.ts","import { Injectable, Component, ViewChild } from '@angular/core';\nimport { NavController, LoadingController, Slides } from 'ionic-angular';\n\n// Pages\nimport { ActivitiesListPage } from '../../activities/list/list.page';\n\n@Injectable()\n@Component({\n selector: 'tutorial-page',\n templateUrl: 'tutorial.html'\n})\nexport class TutorialPage {\n @ViewChild(Slides) slides: Slides;\n\n indexCounter: number = 0;\n hideNextButton: boolean = false;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n goDashbaord() {\n this.navCtrl.setRoot(ActivitiesListPage);\n }\n goPrev() {\n this.slides.slidePrev();\n this.hideNextButton = false;\n }\n goNext() {\n this.slides.slideNext();\n this.slides.isEnd() == true ? this.hideNextButton = true : this.hideNextButton = false;\n // console.log(this.hideNextButton);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/tutorial/tutorial.page.ts","import { Component, Input } from '@angular/core';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { NavController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\n// pages\nimport { RegisterPage } from '../registration/register.page';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\n\n@Component({\n selector: 'term-condition',\n templateUrl: 'term-condition.html'\n})\nexport class TermConditionPage {\n @Input('content') content?: SafeResourceUrl;\n @Input('user') user: any;\n\n agreed:boolean = false;\n checkAccessMethod: boolean = false;\n disagreeErrMessage = errMessages.TermConditions.disagreement.noAccepted;\n helpEmailMessage = generalVariableMessages.helpMail.email;\n verifyFailedErrMessage = errMessages.TermConditions.verifyFailed.verifyfailed;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public nav: NavController,\n public notificationService: NotificationService,\n public translationService: TranslationService,\n ) {}\n\n accessMethod(){\n return (window.location.href.indexOf('?do=') > -1) ? this.checkAccessMethod = true : this.checkAccessMethod = false\n }\n displayError(errorMessage?: any): void {\n let alert = this.alertCtrl.create({\n title: 'Invalid registration code',\n subTitle: errorMessage,\n buttons: [{\n text: 'Close'\n }]\n });\n alert.present();\n }\n backToSAccountPage() {\n this.nav.popToRoot();\n }\n ionViewDidEnter() {\n console.log(this.user);\n }\n agree(user): void {\n if (this.agreed === true) {\n this.nav.push(RegisterPage, user);\n } else {\n this.notificationService.present(this.disagreeErrMessage);\n }\n }\n /**\n * verify if params from url is allowed to proceed with registration\n */\n verify(): void {\n this.authService.verifyRegistration({\n key: 'test',\n password: 'test'\n }).subscribe(\n res => {\n console.log(res);\n },\n err => {\n this.notificationService.present(this.verifyFailedErrMessage);\n },\n () => {\n this.nav.push(TabsPage);\n }\n );\n }\n /**\n * toggle Read & confirm to proceed next registration page\n */\n toggleAgree(): void {\n this.agreed = !this.agreed;\n }\n navToRegister(): void {\n if (this.agreed === true) {\n console.log(this.nav.getViews());\n }\n }\n onTermError(err): void {\n const supportEmail = this.helpEmailMessage;\n if ((err.data || {}).msg) {\n //@TODO: implement error handling\n console.log({title: \"Unable to register\", template: `Something went wrong, please contact ${supportEmail}.`});\n } else if (err.data.msg.indexOf('already registered') != -1) {\n console.log({\n title: \"Account already registered\",\n template: \"Please log in, or click 'forgot password'\"\n });\n } else {\n console.log({\n title: \"Invalid registration link\",\n template: `Please check your email again, or contact ${supportEmail}`\n });\n }\n }\n // temporary fix for direct signin\n signIn(): void {\n this.nav.push(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-condition.page.ts","import { Component, ViewChild, OnInit, Inject } from '@angular/core';\nimport { NgForm, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NavController, ViewController, AlertController, LoadingController, NavParams } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\nimport { TranslationService } from '../../shared/translation/translation.service';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\nconst supportEmail = generalVariableMessages.helpMail.email;\n\n@Component({\n selector: 'register',\n templateUrl: 'register.html',\n})\nexport class RegisterPage implements OnInit {\n @ViewChild('registrationForm') registrationForm: NgForm;\n\n changeContent: boolean = false;\n clickSuspended: boolean = false;\n invalidUserErrMessage: any = errMessages.Registration.invalidUser.account;\n isPwdMatch: boolean = false;\n milestone_id: string;\n minLengthCheck: boolean = true;\n noPasswordErrMessage: any = errMessages.Registration.noPassword.password;\n password: string;\n passwordMismatchErrMessage: any = errMessages.Registration.mismatch.mismatch;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n pwdMacthBool: boolean = false;\n regForm: any;\n registrationErrMessage: any = errMessages.Registration.error.error;\n registeredErrMessage: any = errMessages.Registration.alreadyRegistered.registered;\n submitted: boolean = false;\n successRegistrationLoading: any = loadingMessages.SuccessRegistration.successRegistration;\n user: any = {\n password: '',\n verify_password: ''\n };\n verify_password: string;\n verifyFailedErrMessage = errMessages.Registration.verifyFailed.verifyfailed;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n\n constructor(\n @Inject(FormBuilder) fb: FormBuilder,\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cache: CacheService,\n public gameService: GameService,\n public loading: LoadingController,\n public milestone: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public notificationService: NotificationService,\n public viewCtrl: ViewController,\n public translationService: TranslationService,\n ) {\n // validation for both password values: required & minlength is 8\n this.regForm = fb.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n });\n }\n\n ngOnInit() {}\n\n displayAlert(message) {\n return this.alertCtrl.create({\n title: 'Test',\n message: message,\n buttons: ['OK']\n });\n }\n onSubmit(form: NgForm):void {\n let self = this;\n self.submitted = true;\n function onRegError(err) {\n if (err.frontendErrorCode === 'SERVER_ERROR') {\n throw 'API endpoint error';\n }\n let message = this.registrationErrMessage + `${supportEmail}`;\n if (err && err.data && err.data.msg) {\n switch (err.data.msg) {\n case 'Invalid user':\n message = this.invalidUserErrMessage + `${supportEmail}`;\n break;\n case 'No password':\n message = this.noPasswordErrMessage;\n break;\n case 'User already registered':\n message = this.registeredErrMessage;\n break;\n }\n }\n self.displayAlert(message).present();\n self.submitted = false;\n }\n\n function onFinally() {\n //@TODO: log something maybe\n // self.navCtrl.push(TabsPage);\n console.log('Final step - log something here');\n }\n if (this.user.password !== this.user.verify_password) {\n this.notificationService.alert({\n title: 'Incorrect Password',\n subTitle: this.passwordMismatchErrMessage,\n buttons: ['Close']\n });\n } else {\n const loading = this.loading.create({\n dismissOnPageChange: true,\n content: this.successRegistrationLoading\n });\n // registration api call: to let user set password and complete registration process\n loading.present().then(() => {\n this.authService.register({\n email: this.cache.getLocal('user.email'),\n key: this.cache.getLocal('user.registration_key'),\n user_id: this.cache.getLocal('user.id'),\n password: this.regForm.get('password').value\n }).subscribe(regRespond => {\n //@TODO: set user data\n regRespond = regRespond.data;\n console.log(regRespond);\n this.cache.setLocalObject('apikey', regRespond.apikey);\n this.cache.setLocalObject('timelineID', regRespond.Timeline.id);\n this.cache.setLocal('gotNewItems', false);\n // after passed registration api call, we come to post_auth api call to let user directly login after registred successfully\n this.authService.loginAuth(this.cache.getLocal('user.email'), this.regForm.get('password').value)\n .subscribe(\n data => {\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cache.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get user data after registration and login\n self.authService.getUser()\n .subscribe(\n data => {\n console.log(data);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after registration and login\n self.milestone.getMilestones()\n .subscribe( data => {\n loading.dismiss().then(() => {\n // console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cache.setLocalObject('milestone_id', data.data[0].id);\n self.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n );\n }, onRegError, onFinally);\n });\n }\n }\n setRegistrationData(data) {\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cache.set(key, datum));\n });\n cacheProcesses.push(this.cache.set('timelineID', data.Timeline.id));\n this.cache.setLocal('timelineID', data.Timeline.id);\n return Observable.from(cacheProcesses);\n }\n goToLogin() {\n this.cache.clear().then(() => {\n this.navCtrl.push(LoginPage);\n });\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/registration/register.page.ts","import { Component, Output, EventEmitter } from '@angular/core';\nimport { Tabs, NavParams, NavController, AlertController, LoadingController, ActionSheetController, ToastController } from 'ionic-angular';\n\n// services\nimport { AssessmentService } from '../../../services/assessment.service';\nimport { EventService } from '../../../services/event.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { AssessmentsGroupPage } from '../../assessments/group/assessments-group.page';\nimport { AssessmentsPage } from '../../assessments/assessments.page';\nimport { EventCheckinPage } from '../checkin/event-checkin.page';\nimport { EventsDownloadPage } from '../download/events-download.page';\nimport { EventsListPage } from '../list/list.page';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as moment from 'moment';\n\nconst terms = {\n booked: 'Booked'\n};\n@Component({\n templateUrl: './events-view.html'\n})\nexport class EventsViewPage {\n booked_text: string = 'Booked';\n bookEventErrMessage: any = errMessages.Events.bookEvents.book;\n bookingStatus: string = '';\n cancelBookingErrMessage: any = errMessages.Events.cancelBooking.cancel;\n completedSubmissions: boolean = false;\n event: any = {};\n justBooked: boolean = false;\n loadings: any = { checkin: true };\n submissions: Array = [];\n\n constructor(\n public actionSheetCtrl: ActionSheetController,\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.event = navParams.get('event');\n }\n\n public availability(event): string {\n return (event.isBooked)? terms.booked : event.remaining_capacity + ' of ' + event.capacity + ' seats available';\n }\n\n ionViewWillEnter() {\n this.loadings.checkin = true;\n this.submissions = []; // reset submissions\n\n if (this.event.References) {\n this.event = Object.assign(this.event, this.extractAssessment(this.event.References));\n }\n\n if (this.event) {\n this.bookingStatus = this.availability(this.event);\n }\n }\n\n ionViewDidEnter() {\n this.completedSubmissions = false;\n this.submissionService.getSubmissions({\n search: {\n context_id: this.event.context_id\n }\n }).subscribe(res => {\n this.loadings.checkin = false;\n res.forEach(submission => {\n submission = this.submissionService.normalise(submission);\n this.submissions.push(submission);\n if (submission.status === 'done') {\n this.completedSubmissions = true;\n }\n });\n }, (err) => {\n this.loadings.checkin = false;\n console.log(err);\n });\n }\n\n /**\n * @name extractAssessment\n * @description each event has only one assessment\n * @param {Array} references References array response from get_activity API\n */\n extractAssessment(references: Array) {\n let ref = references[0];\n ref.Assessment.context_id = ref.context_id;\n\n return {\n assessment: ref.Assessment,\n context_id: ref.context_id\n };\n }\n\n /**\n * Push Download page to ionic nav stack (navigate to attachment download page)\n */\n gotoDownload(event) {\n this.navCtrl.push(EventsDownloadPage, {event});\n }\n\n /**\n * Event booking function\n * @param {object} event Single event object from get_events API response\n */\n checkBookStatus() {\n return false ? (this.event.remaining_capacity == this.event.capacity && this.event.isBooked == false) : (this.event.remaining_capacity != this.event.capacity && this.event.isBooked == true)\n }\n\n book(event): void {\n let earnPoints = this.alertCtrl.create({\n message: `

Congratulations!


\"Congratulations

You have earned 20 points.

`,\n buttons: [\n {\n text: 'OK',\n role: 'OK',\n handler: () => {\n console.log('OK, points earned');\n }\n }\n ]\n });\n\n let bookLoading = this.loadingCtrl.create({\n content: 'Booking ..'\n });\n let bookFailed = this.toastCtrl.create({\n message: this.bookEventErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let bookPopup = this.actionSheetCtrl.create({\n title: `Do you want to book a seat for ${ this.event.title } at ${ moment.utc(this.event.start).local().format(\"dddd, MMM D [at] h:mm A\") }?`,\n buttons:[\n {\n text: 'Cancel',\n role: 'cancel',\n handler: () => {\n this.bookingStatus = this.availability(this.event);\n }\n },\n {\n text: 'Confirm',\n role: 'OK',\n handler: () => {\n bookLoading.present();\n this.eventService.bookEvent(this.event.id)\n .subscribe(\n data => {\n this.justBooked = true;\n if(this.justBooked == true) {\n this.booked_text;\n }\n bookLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n bookLoading.dismiss().then(() => {\n bookFailed.present();\n });\n }\n );\n }\n },\n ]\n });\n bookPopup.present();\n }\n\n /**\n * @note existence of References array determines if an event is\n * a checkin type\n * @description examine event to allow check in\n * @param {Object} event\n */\n allowCheckIn(event) {\n if (event.References && event.References.length > 0) {\n return true;\n }\n return false;\n }\n\n /**\n * Event checkin action\n * @param {Object} event single event object return from get_event API\n */\n checkin(event) {\n let loading = this.loadingCtrl.create({\n content: 'loading checkin...'\n });\n loading.present().then(() => {\n // if submission exist\n loading.dismiss().then(() => {\n // this.navCtrl.push(AssessmentsGroupPage, {\n this.navCtrl.push(AssessmentsPage, {\n event,\n activity: event.activity,\n submissions: this.submissions\n });\n });\n })\n }\n\n /**\n * Event cancel booking action\n * @param\n */\n cancelBooking() {\n let cancelLoading = this.loadingCtrl.create({\n content: 'Cancel Booking ..'\n });\n let cancelFailed = this.toastCtrl.create({\n message: this.cancelBookingErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let cancelBooking = this.actionSheetCtrl.create({\n title: 'Cancel Booking Of This Event?',\n buttons: [\n {\n text: 'Cancel Booking',\n role: 'destructive',\n handler: () => {\n cancelLoading.present();\n this.eventService.cancelEventBooking(this.event.id)\n .subscribe(\n data => {\n cancelLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n cancelLoading.dismiss().then(() => {\n cancelFailed.present();\n });\n }\n )\n }\n },\n {\n text: 'Close',\n role: 'cancel',\n handler: () => {\n // console.log('Close this window ..');\n }\n }\n ]\n });\n cancelBooking.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/view/events-view.page.ts","import { Component, OnInit } from '@angular/core';\nimport { NavController, NavParams, ViewController } from 'ionic-angular';\n\n@Component({\n templateUrl: './events-preview.html'\n})\nexport class EventsPreviewPage implements OnInit {\n file: any = {};\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {}\n\n ngOnInit() {\n this.viewCtrl.setBackButtonText('Done');\n }\n\n ionViewDidEnter() {\n this.file = this.navParams.get('file');\n }\n\n goBack() {\n this.navCtrl.pop();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/download/events-preview.page.ts","import { Component } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { NavController, NavParams, LoadingController, AlertController, ToastController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n\n@Component({\n selector: 'page-forget-password',\n templateUrl: 'forget-password.html'\n})\nexport class ForgetPasswordPage {\n email: string;\n forgotPwdFormGroup: any;\n // loading & error message variables\n sendingEmailLoadingMessage = loadingMessages.SendingEmail.send;\n sentEmailMessagePartOne = loadingMessages.SentMessage.partOne;\n sentEmailMessagePartTwo = loadingMessages.SentMessage.partTwo;\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public translationService: TranslationService,\n public authService: AuthService,\n public toastCtrl: ToastController,\n public formBuilder: FormBuilder\n ) {\n this.forgotPwdFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n });\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad ForgetPasswordPage');\n }\n\n userForgotPassword(){\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.sendingEmailLoadingMessage\n });\n\n let defaultMsg = this.sentEmailMessagePartOne + ` ${this.email} ` + this.sentEmailMessagePartTwo;\n\n loading.present();\n // This part is calling post_forget_password() API from backend\n this.authService.forgotPassword(this.email)\n .subscribe(data => {\n loading.dismiss();\n defaultMsg = data.msg || defaultMsg;\n const successSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n successSMS.present();\n },\n error => {\n loading.dismiss();\n // this.logError(error);\n defaultMsg = error.msg || defaultMsg;\n const errorSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n errorSMS.present();\n }\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/forget-password/forget-password.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController,\n NavParams,\n LoadingController,\n AlertController,\n ModalController,\n ViewController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport * as _ from 'lodash';\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { RequestServiceConfig } from '../../shared/request/request.service';\n// directives\nimport {FormValidator} from '../../shared/validators/formValidator';\n// pages\nimport { TabsPage } from '../../pages/tabs/tabs.page';\nimport { ForgetPasswordPage } from '../../pages/forget-password/forget-password';\n/* This page is for handling user login process */\n@Component({\n selector: 'page-login',\n templateUrl: 'login.html'\n})\nexport class LoginPage {\n public email: string;\n public password: any;\n public userName: string;\n public userImage: string;\n public API_KEY: string;\n public milestone_id: string;\n public loginFormGroup: any;\n public forgetpasswordPage = ForgetPasswordPage;\n public loginLoadingMessages: any = loadingMessages.Login.login;\n public invalidLoginMessage: any = errMessages.Login.login;\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public viewCtrl: ViewController,\n public authService: AuthService,\n public gameService: GameService,\n public translationService: TranslationService,\n public config: RequestServiceConfig,\n public formBuilder: FormBuilder,\n public milestoneService: MilestoneService,\n public cacheService: CacheService\n ) {\n this.navCtrl = navCtrl;\n this.loginFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n password: ['', [Validators.required, Validators.minLength(8)]],\n });\n }\n ionViewCanLeave(): boolean {\n // user is authorized\n console.log('authorized');\n let authorized = true;\n if (authorized){\n return true;\n } else {\n return false;\n }\n }\n /**\n * user login function to authenticate user with email and password\n */\n userLogin() {\n let self = this;\n this.cacheService.clear().then(() => {\n // add loading effect during login process\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessages\n });\n loading.present().then(() => {\n // This part is calling post_auth() API from backend\n this.authService.loginAuth(this.email, this.password)\n .subscribe(data => {\n data = data.data;\n // this.getLogInData(data);\n self.cacheService.setLocalObject('apikey', data.apikey);\n // saved for 3 types of timeline id in order for later use\n self.cacheService.setLocalObject('timelineId', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('teams', data.Teams);\n self.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n self.cacheService.setLocalObject('name', data.User.name);\n self.cacheService.setLocalObject('email', data.User.email);\n self.cacheService.setLocalObject('program_id', data.User.program_id);\n self.cacheService.setLocalObject('project_id', data.User.project_id);\n self.cacheService.setLocalObject('user', data.User);\n },\n err => {\n console.log(err);\n }\n );\n\n this.gameService.getGames()\n .subscribe((data) => {\n if (data.Games) {\n // For now only have one game per project\n self.cacheService.setLocalObject('game_id', data.Games[0].id);\n }\n });\n\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n }, err => {\n loading.dismiss().then(() => {\n this.logError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n });\n });\n }\n /**\n * Insert post_auth() api result into localStorage\n * @param {object} data result from API request\n * @returns Observable/subject\n */\n getLogInData(data){\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cacheService.write(key, datum));\n });\n cacheProcesses.push(this.cacheService.write('timeline_id', data.Timelines[0].Timeline.id));\n cacheProcesses.push(this.cacheService.write('apikey', data.apikey));\n cacheProcesses.push(this.cacheService.write('timelines', data.Timelines));\n cacheProcesses.push(this.cacheService.write('teams', data.Teams));\n this.cacheService.setLocal('apikey', data.apikey);\n this.cacheService.setLocal('timeline_id', data.Timelines[0].Timeline.id);\n console.log(\"cache data: \" + cacheProcesses);\n return Observable.from(cacheProcesses);\n }\n /**\n * Insert get_user() api result into localStorage\n * @param {object} user result from API request\n */\n getUserKeyData(user){\n let userData = {\n 'apikey': user.data.apikey,\n 'timelines': user.data.Timelines\n }\n this.cacheService.write('userData', userData);\n this.cacheService.setLocalObject('userData', userData);\n this.API_KEY = user.data.apikey;\n // console.log(\"Timeline ID: \" + user.data.Timelines[0].Timeline.id);\n // to get API KEY and timeline_id and stored in localStorage\n // then other API calls can directly use (API KEY and timeline_id)\n }\n /**\n * @TODO we'll come back to this logging workflow later in this development\n *\n * This function is used to log unexpected error accountered in the client side\n * @param {object} error result from API request\n */\n logError(error) {\n const alert = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.invalidLoginMessage,\n buttons: ['Close']\n });\n alert.present();\n // handle API calling errors display with alert controller\n }\n /**\n * forget password page link function\n */\n linkToForgetPassword() {\n this.navCtrl.push(this.forgetpasswordPage);\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/login/login.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// pages\nimport { TabsPage } from '../tabs/tabs.page';\nimport { LoginPage } from '../login/login';\n// Others\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-magic-link',\n templateUrl: 'magic-link.html'\n})\nexport class MagicLinkPage {\n auth_token: string;\n loginLoadingMessage: any = loadingMessages.Login.login;\n milestone_id: string;\n misMatchTokenErrMessage: any = errMessages.DirectLink.mismatch;\n verifySuccess = null;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams\n ) {}\n\n ionViewDidLoad() {\n this.auth_token = this.navParams.get('auth_token');\n }\n ionViewWillEnter(){\n this.magicLinkAccess();\n }\n magicLinkAccess(){\n let observable = this.authService.magicLinkLogin(this.auth_token);\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessage\n });\n loading.present();\n observable.subscribe(data => {\n // localStorage.setItem('isAuthenticated', 'true');\n // this.navCtrl.push(TabsPage);\n // console.log(\"Successfully logged in\");\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n const failAlert = this.alertCtrl.create({\n title: 'Magic did NOT happen',\n message: this.misMatchTokenErrMessage,\n buttons: ['Close']\n });\n failAlert.present();\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n // console.log(\"Login failed\");\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/magic-link/magic-link.ts","import { Component } from '@angular/core';\n\n@Component({\n template: ''\n})\nexport class TestPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/test.page.ts","import { Component } from '@angular/core';\nimport { NavParams } from 'ionic-angular';\n\nimport { TranslationService } from '../../../shared/translation/translation.service';\n\nlet _mock = {\n \"id\": 59,\n \"name\": \"Test Achievement\",\n \"description\": \"this is test achievement\",\n \"badge\": \"https://www.filepicker.io/api/file/lRLLzZdwT0OWdxQq0ZJw\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 158,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100,\n \"achieved\": false,\n};\n\n@Component({\n templateUrl: './achievements-view.html'\n})\nexport class AchievementsViewPage {\n\n achievement: any;\n\n constructor(\n public params: NavParams,\n public translationService: TranslationService\n ) {\n this.achievement = {};\n }\n\n ionViewDidEnter() {\n this.achievement = this.params.get('achievement');\n\n // Inject API response\n this.achievement = _mock;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/achievements/view/achievements-view.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController, LoadingController } from 'ionic-angular';\n\nimport { ActivitiesViewPage } from '../../activities/view/activities-view.page';\nimport { ActivityService } from '../../../services/activity.service';\n\ndeclare var _: any;\n\n@Component({\n templateUrl: './list.html'\n})\nexport class ActivitiesClassicListPage {\n public activities: Array = [];\n\n constructor(\n public navCtrl: NavController,\n public activityService: ActivityService,\n public toastCtrl: ToastController,\n public loader: LoadingController\n ) {}\n\n // @TODO: Move to shared function later...\n public _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n /**\n * normalise activities\n */\n public normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = _.merge(act.Activity, {\n activity: act.Activity,\n sequences: act.ActivitySequence,\n Activity: act.Activity,\n ActivitySequence: act.ActivitySequence,\n });\n });\n return result;\n }\n\n _pullData(acts, cb?) {\n let self = this;\n\n this.activityService.getList()\n .toPromise()\n .then(function(activities) {\n let result = [];\n activities.map((act, index) => {\n act = _.merge(act, act.Activity);\n });\n this.activities = activities;\n self.activities = activities;\n\n if (cb) {\n cb();\n }\n }, err => {\n this._error(err);\n console.log('err', err);\n\n if (cb) {\n cb();\n }\n });\n }\n\n public doRefresh(refresher) {\n this._pullData(this.activities, () => {\n if (refresher) {\n refresher.complete();\n }\n });\n }\n\n ionViewDidEnter() {\n\n let loader = this.loader.create();\n let self = this;\n\n loader.present().then(() => {\n this.activityService.getList()\n .subscribe(activities => {\n console.log(self.activities);\n activities = self.normaliseActivities(activities);\n\n self.activities = activities;\n loader.dismiss();\n });\n });\n }\n\n public hasReservation(activity) {\n return false;\n }\n\n public viewTicket(activity) {\n\n }\n\n public book(activity) {\n\n }\n\n public gotoActivity(activity) {\n console.log(activity);\n this.navCtrl.push(ActivitiesViewPage, {activity});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities-classic/list/activities-classic-list.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\n// Services\nimport { AssessmentService } from '../../services/assessment.service';\nimport { SubmissionService } from '../../services/submission.service';\n// Others\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'gallery-page',\n templateUrl: 'gallery.html'\n})\nexport class GalleryPage {\n _mock = {\n avatar: {\n name: 'Jose',\n photo: 'https://unsplash.it/100/100'\n },\n photos: [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ]\n };\n assessments: any;\n avatarName: any;\n avatarPhoto: any;\n name: string;\n photos: any[];\n refresher = null;\n\n constructor(\n public navCtrl: NavController,\n public toastCtrl: ToastController,\n public assessmentService: AssessmentService,\n public submissionService: SubmissionService\n ) {}\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData() {\n this.assessmentService.getAll().toPromise()\n .then((result) => {\n this.assessments = result;\n return this.submissionService.getSubmissions();\n })\n .then((result) => {\n let extractedPhotos = this.submissionService.extractPhotos(result);\n\n if (this.assessments.success || _.isArray(extractedPhotos)) {\n _.forEach(this.assessments.data, (assessment) => {\n if (assessment.Assessment.assessment_type === 'checkin') {\n let foundPhoto = _.find(extractedPhotos, function(p) {\n return p.assessment_id == assessment.Assessment.id;\n });\n\n if (foundPhoto) {\n this.photos.push({\n name: assessment.Assessment.name,\n photo: foundPhoto.photo,\n submitted: moment.utc(foundPhoto.submitted).local().format(\"D-M-YYYY, hA\")\n });\n }\n }\n });\n\n this.photos = _.sortBy(this.photos, 'submitted');\n }\n\n if (this.refresher) {\n this.refresher.complete();\n }\n })\n .catch((err) => {\n if (this.refresher) {\n this.refresher.complete();\n }\n this._error(err)\n });\n }\n\n doRefresh(refresher) {\n this.refresher = refresher;\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n }\n\n ionViewWillEnter() {\n // @TODO We should not block user if no linkedin photo...\n\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n this.photos = [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ];\n console.log('this.photos', this.photos)\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/gallery/gallery.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { MilestoneService } from './milestone.service';\nimport { ActivityService } from './activity.service';\n// Others\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LevelService {\n\n constructor(\n public activityService: ActivityService,\n public milestoneService: MilestoneService\n ) {}\n\n getLevels() {\n let milestones = [];\n let milestoneIds = [];\n\n return new Promise((resolve, reject) => {\n this.milestoneService.getList()\n .toPromise()\n .then((result: any) => {\n milestones = result.data;\n\n // Find unlocked milestones...\n _.forEach(milestones, (milestone) => {\n if (!milestone.is_locked) {\n milestoneIds.push(milestone.id);\n }\n });\n\n return this.activityService.getLevels({\n // @TODO: Should have some way to get data from stroage...\n search: {\n milestone_id: JSON.stringify(milestoneIds),\n has: []\n }\n });\n })\n .then((result: any) => {\n\n _.forEach(result.data, function(activity) {\n\n // Normalise activity data\n activity = this.activityService.normalise(activity);\n\n // Group activity to milestone...\n _.forEach(milestones, function(milestone, key) {\n if (milestone.id === activity.Activity.milestone_id) {\n milestones[key].activity = activity;\n }\n });\n });\n\n resolve(milestones);\n })\n .catch(reject);\n });\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/level.service.ts","import { Component } from '@angular/core';\nimport { NavParams, NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { EventService } from '../../../services/event.service';\nimport { AssessmentService } from '../../../services/assessment.service';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'page-event-checkin',\n templateUrl: './event-checkin.html',\n})\nexport class EventCheckinPage {\n assessment: any;\n assessmentGroup: any;\n checkin: any = {};\n event: any;\n submissions: any;\n user: any = {};\n\n constructor(\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n ) {\n this.event = navParams.get('event');\n this.submissions = navParams.get('submissions');\n this.assessment = navParams.get('assessment');\n this.assessmentGroup = navParams.get('assessmentGroup');\n }\n\n ionViewDidEnter() {\n this.checkin = this.getCheckinAnswer(this.submissions[0]); // event checkin has just single submission\n this.assessment = this.assessmentService.normaliseGroup(this.assessmentGroup);\n this.user = this.cache.getLocalObject('user');\n }\n\n // Only checkin/file upload answer is displayed in check-in view\n public getCheckinAnswer(submission) {\n let result = {};\n submission.answer.forEach(ans => {\n if (typeof ans.answer === 'object') {\n result = ans;\n }\n });\n\n return result;\n }\n\n injectAssessmentToAnswer() {\n this.assessmentGroup.forEach(group => {\n console.log(group);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/checkin/event-checkin.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\nimport { TeamService } from '../../services/team.service';\n// Others\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'team-page',\n templateUrl: 'team.html'\n})\nexport class TeamPage {\n members = [];\n team = {};\n\n constructor(\n public navCtrl: NavController,\n public teamService: TeamService,\n public toastCtrl: ToastController\n ) {}\n\n\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData(refresher?) {\n // @TODO Need inject user team ID\n this.teamService.getTeam()\n .then((result: any) => {\n this.team = result.team;\n this.members = result.members;\n\n if (refresher) {\n refresher.complete();\n }\n })\n .catch((err) => {\n if (refresher) {\n refresher.complete();\n }\n this._error(err);\n });\n }\n\n doRefresh(refresher) {\n this._pullData(refresher);\n }\n\n ionViewWillEnter() {\n this._pullData();\n this.members = [\n {\n name: 'Jose',\n email: 'abcd.example.cc'\n }\n ]\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/team/team.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class TeamService {\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n getTeam(options? : any) {\n return this.request.get('api/teams.json', options).toPromise();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/team.service.ts","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app.module';\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main.ts","// libs\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, ErrorHandler, OnInit } from '@angular/core';\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';\nimport { CacheModule } from '../shared/cache/cache.module';\nimport { NotificationModule } from '../shared/notification/notification.module';\nimport { MyApp } from './app.component';\nimport { FilepickerModule } from '../shared/filepicker/filepicker.module';\nimport { UtilsModule } from '../shared/utils/utils.module';\nimport { TestModule } from '../shared/testModules/test.module';\nimport { HttpModule, Http } from '@angular/http';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from \"@ngx-translate/http-loader\";\nimport { i18nData } from './assets/i18n-en';\nimport { TranslationModule } from '../shared/translation/translation.module';\nimport { MomentModule } from 'angular2-moment';\n\n// services\nimport { AchievementService } from '../services/achievement.service';\nimport { ActivityService } from '../services/activity.service';\nimport { AssessmentService } from '../services/assessment.service';\nimport { AuthService } from '../services/auth.service';\nimport { CharacterService } from '../services/character.service';\nimport { EventService } from '../services/event.service';\nimport { FilepickerService } from '../shared/filepicker/filepicker.service';\nimport { GameService } from '../services/game.service';\nimport { GroupEmitterService } from '../components/questions/group-emitter.service';\nimport { LevelService } from '../services/level.service';\nimport { MilestoneService } from '../services/milestone.service';\nimport { NotificationService } from '../shared/notification/notification.service';\nimport { RequestModule } from '../shared/request/request.module';\nimport { SessionService } from '../services/session.service';\nimport { SubmissionService } from '../services/submission.service';\n\nimport { TeamService } from '../services/team.service';\nimport { WindowRef } from '../shared/window';\n// components\nimport { ModalComponent } from '../shared/notification/modal.component';\nimport { QuestionGroupComponent } from '../components/question-group/question-group.component';\nimport { EventComponent } from '../components/event/event.component';\nimport { LevelComponent } from '../components/level/level';\nimport { LoadingMarkerComponent } from '../components/loadingMarker/loadingMarker';\nimport { LockerComponent } from '../components/locker/locker';\nimport { MemberComponent } from '../components/member/member';\nimport { PhotoComponent } from '../components/photo/photo';\nimport { TermContentComponent } from '../pages/term-condition/term-content.component';\nimport { FileQuestionComponent } from '../components/questions/file';\nimport { OneofQuestionComponent } from '../components/questions/oneof';\nimport { TextQuestionComponent } from '../components/questions/text';\nimport { MultipleQuestionComponent } from '../components/questions/multiple';\nimport { FeedbackComponent } from '../components/questions/feedback';\n// pages\nimport { AchievementsViewPage } from '../pages/achievements/view/achievements-view.page';\nimport { ActivitiesListPage } from '../pages/activities/list/list.page';\nimport { ActivityListPopupPage } from '../pages/activities/list/popup';\nimport { ActivitiesViewModalPage } from '../pages/activities/view/activities-view-modal.page';\nimport { ActivitiesViewPage } from '../pages/activities/view/activities-view.page';\nimport { ActivitiesClassicListPage } from '../pages/activities-classic/list/activities-classic-list.page';\nimport { AssessmentsPage } from '../pages/assessments/assessments.page';\nimport { AssessmentsGroupPage } from '../pages/assessments/group/assessments-group.page';\nimport { EventCheckinPage } from '../pages/events/checkin/event-checkin.page';\nimport { EventsComponent } from '../components/events/events.component';\nimport { EventsDownloadPage } from '../pages/events/download/events-download.page';\nimport { EventsListPage } from '../pages/events/list/list.page';\nimport { EventsPreviewPage } from '../pages/events/download/events-preview.page';\nimport { EventsViewPage } from '../pages/events/view/events-view.page';\nimport { ForgetPasswordPage } from '../pages/forget-password/forget-password';\nimport { GalleryPage } from '../pages/gallery/gallery';\nimport { ItemsPopupPage } from '../pages/assessments/popup/items-popup.page';\nimport { LeaderboardSettingsPage } from '../pages/settings/leaderboard/leaderboard-settings.page';\nimport { LevelsListPage } from '../pages/levels/list/list';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { RankingBadgesPage } from '../pages/rankings/view/ranking-badges';\nimport { RankingDetailsPage } from '../pages/rankings/view/ranking-details.page';\nimport { RankingsPage } from '../pages/rankings/list/rankings.page';\nimport { RegisterPage } from '../pages/registration/register.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { SettingsPage } from '../pages/settings/settings.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { TeamPage } from '../pages/team/team';\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { TestPage } from '../pages/tabs/test.page';\nimport { TutorialPage } from '../pages/settings/tutorial/tutorial.page';\n// custom pipes\nimport { TimeAgoPipe } from '../pipes/timeago';\nimport { UcfirstPipe } from '../pipes/ucfirst.pipe';\nimport { TruncatePipe } from '../pipes/truncate.pipe';\nimport { EscapeHtmlPipe } from '../pipes/keep-html.pipe';\n\n// configs\nimport { default as Configure } from '../configs/config';\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: Http) {\n return new TranslateHttpLoader(http, \"./assets/i18n-\", \".json\");\n}\n\n@NgModule({\n declarations: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n FeedbackComponent,\n FileQuestionComponent,\n ForgetPasswordPage,\n GalleryPage,\n ItemsPopupPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n MemberComponent,\n ModalComponent,\n MultipleQuestionComponent,\n MyApp,\n OneofQuestionComponent,\n PhotoComponent,\n QuestionGroupComponent,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TeamPage,\n TestPage,\n TutorialPage,\n TermConditionPage,\n TermContentComponent,\n TextQuestionComponent,\n TimeAgoPipe,\n TruncatePipe,\n UcfirstPipe,\n EscapeHtmlPipe,\n ],\n imports: [\n BrowserModule,\n CacheModule,\n FormsModule,\n MomentModule,\n NotificationModule,\n UtilsModule,\n TestModule,\n RequestModule.forRoot({\n appKey: Configure.appKey,\n prefixUrl: Configure.prefixUrl\n }),\n FilepickerModule.forRoot({\n apikey: Configure.filestack.apiKey\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [Http]\n }\n }),\n TranslationModule,\n IonicModule.forRoot(MyApp, {}, {\n links: [\n {\n component: LoginPage,\n name: 'Login',\n segment: 'login',\n defaultHistory: [ LoginPage ]\n },\n {\n component: ResetPasswordPage,\n name: 'ResetPassword',\n segment: 'resetpassword', //resetpassword?email=XXX&key=XXX\n defaultHistory: [ ResetPasswordPage ]\n },\n {\n component: MagicLinkPage,\n name: 'MagiclinkPage',\n segment: 'secure/:auth_token', //secure?auth_token=XXXXXX\n defaultHistory: [ MagicLinkPage ]\n },\n {\n component: RegistrationPage,\n name: 'Registration',\n segment: 'registration',\n defaultHistory: [ RegistrationPage ]\n },\n {\n component: TestPage,\n name: 'Testing',\n segment: 'test',\n defaultHistory: [TestPage]\n }\n ]\n })\n ],\n bootstrap: [\n IonicApp\n ],\n entryComponents: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n ForgetPasswordPage,\n ItemsPopupPage,\n GalleryPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n ModalComponent,\n MyApp,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TestPage,\n TermConditionPage,\n TutorialPage,\n TermContentComponent,\n ],\n providers: [\n { provide: AchievementService, useClass: AchievementService },\n { provide: ActivityService, useClass: ActivityService },\n { provide: AssessmentService, useClass: AssessmentService },\n { provide: AuthService, useClass: AuthService },\n { provide: CharacterService, useClass: CharacterService },\n { provide: ErrorHandler, useClass: IonicErrorHandler },\n { provide: EventService, useClass: EventService },\n { provide: FilepickerService, useClass: FilepickerService },\n { provide: LevelService, useClass: LevelService },\n { provide: LocationStrategy , useClass: HashLocationStrategy },\n { provide: MilestoneService, useClass: MilestoneService },\n { provide: NotificationService, useClass: NotificationService },\n { provide: SessionService, useClass: SessionService },\n { provide: SubmissionService, useClass: SubmissionService },\n { provide: TeamService, useClass: TeamService },\n WindowRef,\n GroupEmitterService,\n GameService,\n // { provide: RequestOptions, useClass: CustomRequestOptions }\n ]\n})\nexport class AppModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { NgModule } from '@angular/core';\nimport { CacheService } from './cache.service';\nimport { IonicStorageModule } from '@ionic/storage';\n\n@NgModule({\n imports: [\n IonicStorageModule.forRoot({\n name: '__app-vault',\n driverOrder: ['localstorage']\n })\n ],\n providers: [ CacheService ],\n})\nexport class CacheModule {\n\n constructor() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/cache/cache.module.ts","import { NgModule } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule } from '@angular/common';\n\nimport { NotificationService } from './notification.service';\nimport { NotificationComponent } from './notification.component';\n// import { ModalComponent } from './modal.component';\n\n@NgModule({\n imports: [ CommonModule, IonicModule ],\n declarations: [\n NotificationComponent,\n // ModalComponent,\n ],\n providers: [ NotificationService ],\n exports: [\n NotificationComponent,\n // ModalComponent\n ]\n})\nexport class NotificationModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.module.ts","import { Component } from '@angular/core';\nimport { ModalController } from 'ionic-angular';\n\nimport { NotificationService } from './notification.service';\nimport { ModalComponent } from './modal.component';\n\n@Component({\n selector: 'app-notification',\n template: ``,\n})\nexport class NotificationComponent {\n\n constructor(\n public modalCtrl: ModalController,\n public notificationService: NotificationService\n ) {\n notificationService.modalActivated$.subscribe(\n context => {\n this.show(context)\n }\n );\n }\n\n ngOnInit() {}\n\n /**\n * Show notification modal\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * notification_icon: ?{String},\n * description: {String},\n * score: ?{String},\n * button_label: ?{String},\n * button_function: ?{Function},\n * button_link: ?{String},\n * }\n */\n show(context: any) {\n let modal = this.modalCtrl.create(ModalComponent, { 'context': context });\n modal.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.component.ts","import { Component, ViewChild, OnInit } from '@angular/core';\nimport { Platform, NavController } from 'ionic-angular';\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { AuthService } from '../services/auth.service';\n// pages\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { TestPage } from '../pages/tabs/test.page';\n\n@Component({\n templateUrl: 'app.html',\n})\nexport class MyApp implements OnInit {\n // rootPage: any = RegistrationPage;\n rootPage: any;\n urlParameters: Array = [];\n do = {\n 'registration': RegistrationPage,\n 'login': LoginPage,\n 'resetpassword': ResetPasswordPage,\n 'secure': MagicLinkPage,\n 'test': TestPage\n };\n\n @ViewChild('appNav') nav: NavController;\n constructor(\n platform: Platform,\n authService: AuthService,\n private cache: CacheService\n ) {\n platform.ready().then(() => {\n // Okay, so the platform is ready and our plugins are available.\n // Here you can do any higher level native things you might need.\n // ionic-native is removed, as we dont need to use cordova\n });\n }\n\n ngOnInit() {\n let category = [];\n let page;\n let navParams = {};\n\n if (document.URL.indexOf(\"?\") !== -1) {\n let splitURL = document.URL.split(\"?\");\n let splitParams = splitURL[1].split(\"&\");\n splitParams.forEach(param => {\n let singleURLParam = param.split('=');\n let urlParameter = {\n 'name': singleURLParam[0],\n 'value': singleURLParam[1]\n };\n if (singleURLParam[0] === 'do') {\n page = this.do[singleURLParam[1]];\n }\n category.push(urlParameter);\n navParams[singleURLParam[0]] = singleURLParam[1];\n });\n }\n\n if (page) {\n this.nav.setRoot(page, navParams);\n } else {\n if (this.cache.getLocal('isAuthenticated')) {\n this.nav.setRoot(TabsPage, navParams);\n } else {\n this.nav.setRoot(LoginPage, navParams);\n }\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class GameService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * Get games\n * @param {object} options\n */\n getGames(options = {}) {\n return this.request.get('api/games', options);\n }\n\n /**\n * Get character\n * @param {string} gameId\n * @param {object} options\n */\n getCharacters(gameId, options = {}) {\n options = _.merge({\n search: {\n game_id: gameId\n }\n }, options);\n return this.request.get('api/characters', options);\n }\n\n /**\n * Post character\n * @param {object} data\n */\n postCharacter(data) {\n return this.request.post('api/characters', data, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * Get ranking\n * @param {string} gameId\n * @param {string} characterId\n */\n getRanking(gameId, characterId) {\n return Observable.forkJoin([\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly'\n }\n }),\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly',\n character_id: characterId\n }\n })\n ])\n .map((data: any[]) => {\n let characters = data[0] || [];\n let myCharacter = data[1].Characters || [];\n characters.MyCharacters = myCharacter\n return characters;\n });\n }\n\n /**\n * Get items\n * @param {object} options\n */\n getItems(options?) {\n options = _.merge({\n character_id: null,\n filter: 'all'\n }, options);\n return this.request.get('api/items.json', {search: options});\n }\n\n /**\n * Update items\n * @param {object} options\n */\n postItems(options: any = {\n \"Character\": {\n \"id\": null\n },\n \"Item\": {\n \"id\": null\n }\n }) {\n return this.request.post('api/items.json', options, {'Content-Type': 'application/json'});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/game.service.ts","var map = {\n\t\"./af\": 273,\n\t\"./af.js\": 273,\n\t\"./ar\": 274,\n\t\"./ar-dz\": 275,\n\t\"./ar-dz.js\": 275,\n\t\"./ar-kw\": 276,\n\t\"./ar-kw.js\": 276,\n\t\"./ar-ly\": 277,\n\t\"./ar-ly.js\": 277,\n\t\"./ar-ma\": 278,\n\t\"./ar-ma.js\": 278,\n\t\"./ar-sa\": 279,\n\t\"./ar-sa.js\": 279,\n\t\"./ar-tn\": 280,\n\t\"./ar-tn.js\": 280,\n\t\"./ar.js\": 274,\n\t\"./az\": 281,\n\t\"./az.js\": 281,\n\t\"./be\": 282,\n\t\"./be.js\": 282,\n\t\"./bg\": 283,\n\t\"./bg.js\": 283,\n\t\"./bn\": 284,\n\t\"./bn.js\": 284,\n\t\"./bo\": 285,\n\t\"./bo.js\": 285,\n\t\"./br\": 286,\n\t\"./br.js\": 286,\n\t\"./bs\": 287,\n\t\"./bs.js\": 287,\n\t\"./ca\": 288,\n\t\"./ca.js\": 288,\n\t\"./cs\": 289,\n\t\"./cs.js\": 289,\n\t\"./cv\": 290,\n\t\"./cv.js\": 290,\n\t\"./cy\": 291,\n\t\"./cy.js\": 291,\n\t\"./da\": 292,\n\t\"./da.js\": 292,\n\t\"./de\": 293,\n\t\"./de-at\": 294,\n\t\"./de-at.js\": 294,\n\t\"./de-ch\": 295,\n\t\"./de-ch.js\": 295,\n\t\"./de.js\": 293,\n\t\"./dv\": 296,\n\t\"./dv.js\": 296,\n\t\"./el\": 297,\n\t\"./el.js\": 297,\n\t\"./en-au\": 298,\n\t\"./en-au.js\": 298,\n\t\"./en-ca\": 299,\n\t\"./en-ca.js\": 299,\n\t\"./en-gb\": 300,\n\t\"./en-gb.js\": 300,\n\t\"./en-ie\": 301,\n\t\"./en-ie.js\": 301,\n\t\"./en-nz\": 302,\n\t\"./en-nz.js\": 302,\n\t\"./eo\": 303,\n\t\"./eo.js\": 303,\n\t\"./es\": 304,\n\t\"./es-do\": 305,\n\t\"./es-do.js\": 305,\n\t\"./es.js\": 304,\n\t\"./et\": 306,\n\t\"./et.js\": 306,\n\t\"./eu\": 307,\n\t\"./eu.js\": 307,\n\t\"./fa\": 308,\n\t\"./fa.js\": 308,\n\t\"./fi\": 309,\n\t\"./fi.js\": 309,\n\t\"./fo\": 310,\n\t\"./fo.js\": 310,\n\t\"./fr\": 311,\n\t\"./fr-ca\": 312,\n\t\"./fr-ca.js\": 312,\n\t\"./fr-ch\": 313,\n\t\"./fr-ch.js\": 313,\n\t\"./fr.js\": 311,\n\t\"./fy\": 314,\n\t\"./fy.js\": 314,\n\t\"./gd\": 315,\n\t\"./gd.js\": 315,\n\t\"./gl\": 316,\n\t\"./gl.js\": 316,\n\t\"./gom-latn\": 317,\n\t\"./gom-latn.js\": 317,\n\t\"./he\": 318,\n\t\"./he.js\": 318,\n\t\"./hi\": 319,\n\t\"./hi.js\": 319,\n\t\"./hr\": 320,\n\t\"./hr.js\": 320,\n\t\"./hu\": 321,\n\t\"./hu.js\": 321,\n\t\"./hy-am\": 322,\n\t\"./hy-am.js\": 322,\n\t\"./id\": 323,\n\t\"./id.js\": 323,\n\t\"./is\": 324,\n\t\"./is.js\": 324,\n\t\"./it\": 325,\n\t\"./it.js\": 325,\n\t\"./ja\": 326,\n\t\"./ja.js\": 326,\n\t\"./jv\": 327,\n\t\"./jv.js\": 327,\n\t\"./ka\": 328,\n\t\"./ka.js\": 328,\n\t\"./kk\": 329,\n\t\"./kk.js\": 329,\n\t\"./km\": 330,\n\t\"./km.js\": 330,\n\t\"./kn\": 331,\n\t\"./kn.js\": 331,\n\t\"./ko\": 332,\n\t\"./ko.js\": 332,\n\t\"./ky\": 333,\n\t\"./ky.js\": 333,\n\t\"./lb\": 334,\n\t\"./lb.js\": 334,\n\t\"./lo\": 335,\n\t\"./lo.js\": 335,\n\t\"./lt\": 336,\n\t\"./lt.js\": 336,\n\t\"./lv\": 337,\n\t\"./lv.js\": 337,\n\t\"./me\": 338,\n\t\"./me.js\": 338,\n\t\"./mi\": 339,\n\t\"./mi.js\": 339,\n\t\"./mk\": 340,\n\t\"./mk.js\": 340,\n\t\"./ml\": 341,\n\t\"./ml.js\": 341,\n\t\"./mr\": 342,\n\t\"./mr.js\": 342,\n\t\"./ms\": 343,\n\t\"./ms-my\": 344,\n\t\"./ms-my.js\": 344,\n\t\"./ms.js\": 343,\n\t\"./my\": 345,\n\t\"./my.js\": 345,\n\t\"./nb\": 346,\n\t\"./nb.js\": 346,\n\t\"./ne\": 347,\n\t\"./ne.js\": 347,\n\t\"./nl\": 348,\n\t\"./nl-be\": 349,\n\t\"./nl-be.js\": 349,\n\t\"./nl.js\": 348,\n\t\"./nn\": 350,\n\t\"./nn.js\": 350,\n\t\"./pa-in\": 351,\n\t\"./pa-in.js\": 351,\n\t\"./pl\": 352,\n\t\"./pl.js\": 352,\n\t\"./pt\": 353,\n\t\"./pt-br\": 354,\n\t\"./pt-br.js\": 354,\n\t\"./pt.js\": 353,\n\t\"./ro\": 355,\n\t\"./ro.js\": 355,\n\t\"./ru\": 356,\n\t\"./ru.js\": 356,\n\t\"./sd\": 357,\n\t\"./sd.js\": 357,\n\t\"./se\": 358,\n\t\"./se.js\": 358,\n\t\"./si\": 359,\n\t\"./si.js\": 359,\n\t\"./sk\": 360,\n\t\"./sk.js\": 360,\n\t\"./sl\": 361,\n\t\"./sl.js\": 361,\n\t\"./sq\": 362,\n\t\"./sq.js\": 362,\n\t\"./sr\": 363,\n\t\"./sr-cyrl\": 364,\n\t\"./sr-cyrl.js\": 364,\n\t\"./sr.js\": 363,\n\t\"./ss\": 365,\n\t\"./ss.js\": 365,\n\t\"./sv\": 366,\n\t\"./sv.js\": 366,\n\t\"./sw\": 367,\n\t\"./sw.js\": 367,\n\t\"./ta\": 368,\n\t\"./ta.js\": 368,\n\t\"./te\": 369,\n\t\"./te.js\": 369,\n\t\"./tet\": 370,\n\t\"./tet.js\": 370,\n\t\"./th\": 371,\n\t\"./th.js\": 371,\n\t\"./tl-ph\": 372,\n\t\"./tl-ph.js\": 372,\n\t\"./tlh\": 373,\n\t\"./tlh.js\": 373,\n\t\"./tr\": 374,\n\t\"./tr.js\": 374,\n\t\"./tzl\": 375,\n\t\"./tzl.js\": 375,\n\t\"./tzm\": 376,\n\t\"./tzm-latn\": 377,\n\t\"./tzm-latn.js\": 377,\n\t\"./tzm.js\": 376,\n\t\"./uk\": 378,\n\t\"./uk.js\": 378,\n\t\"./ur\": 379,\n\t\"./ur.js\": 379,\n\t\"./uz\": 380,\n\t\"./uz-latn\": 381,\n\t\"./uz-latn.js\": 381,\n\t\"./uz.js\": 380,\n\t\"./vi\": 382,\n\t\"./vi.js\": 382,\n\t\"./x-pseudo\": 383,\n\t\"./x-pseudo.js\": 383,\n\t\"./yo\": 384,\n\t\"./yo.js\": 384,\n\t\"./zh-cn\": 385,\n\t\"./zh-cn.js\": 385,\n\t\"./zh-hk\": 386,\n\t\"./zh-hk.js\": 386,\n\t\"./zh-tw\": 387,\n\t\"./zh-tw.js\": 387\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 503;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = 503\n// module chunks = 0","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { AlertController } from 'ionic-angular';\n\n@Injectable()\nexport class NotificationService {\n\n private modalActivateSource = new Subject();\n\n modalActivated$ = this.modalActivateSource.asObservable();\n\n constructor(public alertCtrl: AlertController) {}\n\n /**\n * Show alert on page\n * Refer: https://ionicframework.com/docs/api/components/alert/AlertController/\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * subTitle: {String},\n * button: {Array}, // ['OK', 'CANCEL']\n * }\n */\n present(context: any) {\n this.modalActivateSource.next(context);\n }\n\n /**\n * pop up alert box with button\n * @param {Object} content to customise alert box\n */\n public alert(context: any = {\n title: 'Title',\n subTitle: 'Subtitle',\n buttons: ['OK']\n }) {\n let alert = this.alertCtrl.create(context);\n alert.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.service.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport { CacheService } from '../shared/cache/cache.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class MilestoneService {\n appkey = this.request.getAppkey();\n milestones: any = {};\n prefixUrl: any = this.request.getPrefixUrl();\n\n constructor(\n public cacheService: CacheService,\n public http: Http,\n public request: RequestService\n ) {}\n\n getList(options?) {\n let params: URLSearchParams = new URLSearchParams();\n\n if (options && options.search) {\n // @TODO: Move to helper function\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n }\n let timelineId = this.cacheService.getLocal('timeline_id');\n if (timelineId) {\n params.set('timelineId', timelineId);\n }\n\n return this.request.get('api/milestones.json', {search: params});\n }\n\n getMilestones(){\n let headers = new Headers();\n headers.append('appkey', this.appkey);\n headers.append('apikey', this.cacheService.getLocalObject('apikey'));\n headers.append('timelineID', this.cacheService.getLocalObject('timelineID'));\n console.log('TimelineID: '+ this.cacheService.getLocalObject('timelineID'));\n return this.http.get(this.prefixUrl+'api/milestones.json', { headers: headers })\n .map(res => res.json());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/milestone.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n// Others\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\nclass ActivityBase {\n id: number;\n name: string;\n description: string;\n milestone_id?: number;\n deadline?: string;\n end?: string;\n lead_image?: string;\n is_locked?: boolean;\n order?: number;\n instructions?: string;\n video_url?: string;\n}\n\nclass ReferenceAssessmentBase {\n id: number;\n name: string;\n}\n\nclass ReferenceBase {\n context_id: number;\n Assessment: ReferenceAssessmentBase\n}\n\n@Injectable()\nexport class ActivityService {\n cachedActivites = {};\n milestoneID = this.cacheService.getLocalObject('milestone_id');\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService,\n ) {}\n\n getList(options?) {\n let mid = this.cacheService.getLocal('milestone_id');\n\n options = options || {\n search: {\n milestone_id: this.cacheService.getLocal('milestone_id')\n }\n };\n\n if (!this.cachedActivites[mid]) {\n this.cachedActivites[mid] = this.request.get('api/activities.json', options);\n return this.request.get('api/activities.json', options);\n }\n\n return this.cachedActivites[mid];\n }\n\n getLevels(options?: any) {\n let params: URLSearchParams = new URLSearchParams();\n if (options.search) {\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n options.search = params;\n }\n return this.cacheService.read()\n .then((data: any) => {\n if (!options.search.timeline_id && data.user.timeline_id) {\n params.set('timeline_id', data.user.timeline_id);\n options.search = params;\n }\n if (!options.search.project_id && data.user.project_id) {\n params.set('project_id', data.user.project_id);\n options.search = params;\n }\n return this.getList(options).toPromise();\n });\n }\n\n /*\n // commented out - seems not using in any part of the code\n // it was built for currentActivities component in HomePage,\n // no longer using it now\n\n normalise(activity, index) {\n // session\n activity.enabledRSVP = true;\n // survey\n activity.due = false;\n activity.isRunning = false;\n activity.isBookable = false;\n activity.is_locked = activity.Activity.is_locked;\n activity.name = activity.Activity.name;\n activity.id = activity.Activity.id;\n activity.hasSession = false;\n activity.description = activity.Activity.description || 'No description available.';\n // pre-process response data\n activity.start = moment.utc(activity.Activity.start);\n activity.deadline = moment.utc(activity.Activity.deadline);\n activity.end = moment.utc(activity.Activity.end);\n // if sorting is not available, use index instead\n activity.order = activity.Activity.order || index;\n return activity;\n }*/\n\n\n /**\n * normalise activities\n */\n normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = this.normaliseActivity(act);\n });\n return result;\n }\n\n /**\n * normalise single activity object\n */\n normaliseActivity(activity) {\n let thisActivity = activity.Activity,\n normalisedActivity: ActivityBase,\n sequence = this.mergeReferenceToSequence(activity);\n\n if (!activity.Activity) {\n throw \"Incorrect activity API responce (missing Activity object)\";\n }\n\n normalisedActivity = {\n id: activity.Activity.id,\n name: activity.Activity.name,\n description: activity.Activity.description,\n milestone_id: activity.Activity.milestone_id,\n deadline: activity.Activity.deadline,\n end: activity.Activity.end,\n lead_image: activity.Activity.lead_image,\n is_locked: activity.Activity.is_locked,\n order: activity.Activity.order,\n instructions: activity.Activity.instructions,\n video_url: activity.Activity.video_url\n };\n\n activity = _.merge(thisActivity, {\n // front end should use the one with smallcase instead\n activity: normalisedActivity,\n sequence: sequence,\n assessment: this.extractAssessment(sequence),\n\n // raw data (don't touch/edit)\n Activity: activity.Activity,\n ActivitySequence: activity.ActivitySequence,\n References: activity.References\n });\n\n // Normalise activity reference (References object is optional, updated on 6 October 2017)\n if (activity.References) {\n activity.References.forEach((reference, idx) => {\n let referenceAssessment: ReferenceAssessmentBase = {\n id: reference.Assessment.id,\n name: reference.Assessment.name,\n }\n let normalisedReference: ReferenceBase = {\n context_id: reference.context_id,\n Assessment: referenceAssessment\n };\n activity.References[idx] = normalisedReference;\n });\n }\n\n return activity;\n }\n\n /**\n * Turn references array objects to an easier accessible object\n * @param {Array} references array of reference\n * @returns normalised references object\n * @example\n */\n /*\n turns:\n [\n {\n \"context_id\": 25,\n \"Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\"\n }\n },\n {\n \"context_id\": 26,\n \"Assessment\": {\n \"id\": 20,\n \"name\": \"Check-In Workshop 2\"\n }\n },\n ...\n ]\n\n into:\n {\n 19: 25,\n 20: 26\n }\n */\n rebuildReferences(references) {\n let result = {};\n (references || []).forEach(ref => {\n result[ref.Assessment.id] = ref.context_id;\n });\n return result;\n }\n\n /**\n * @name mergeReferenceToSequence\n * @description extract and attach related context_id into assessments\n * @type {Object} activity single activity object\n * @example conversion formats below\n */\n /*\n turns:\n [\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n }\n ]\n\n into:\n {\n \"19\": {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n }\n */\n mergeReferenceToSequence(activity): Object {\n // @NOTE: first \"[0]\" sequence is the assessment of an activity\n let sequence = (activity.ActivitySequence) ? activity.ActivitySequence[0] : {};\n\n // `References` object is optional (modified on 6 October 2017)\n if (activity.References) {\n let refs = this.rebuildReferences(activity.References);\n if (!_.isEmpty(sequence)) {\n // @NOTE: API only support first ActivitySequence atm\n // activity.ActivitySequence.forEach(seq => {\n let modelId = sequence.model_id;\n sequence.context_id = refs[modelId];\n // });\n }\n }\n return sequence;\n }\n\n /*\n turns:\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n\n into:\n {\n \"id\": 19,\n \"context_id\": 25,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n */\n extractAssessment(sequence) {\n let assessment: any = {};\n if (sequence['Assess.Assessment']) {\n assessment = sequence['Assess.Assessment'];\n assessment.context_id = sequence.context_id;\n }\n return assessment;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/activity.service.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SubmissionService {\n targetUrl = 'api/submissions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n // list()\n getSubmissions(options?: any) {\n return this.request.get(this.targetUrl, options);\n }\n\n extractPhotos(data) {\n let photos = [];\n\n _.forEach(data, function(val, key) {\n _.forEach(val.AssessmentSubmissionAnswer, (answer, key) => {\n if (answer.answer && answer.answer.url !== undefined && answer.answer.mimetype !== undefined) {\n if (_.isString(answer.answer.mimetype) && answer.answer.mimetype.indexOf('image') !== -1) {\n // @TODO: I think we need standardise this format...\n photos.push({\n activity_id: val.AssessmentSubmission.activity_id,\n assessment_id: val.AssessmentSubmission.assessment_id,\n photo: answer.answer.url,\n submitted: val.AssessmentSubmission.submitted\n });\n }\n }\n });\n });\n\n return photos;\n }\n/*\n Turns:\n {\n \"AssessmentSubmission\": {\n \"id\": 4,\n \"submitter_id\": 19,\n \"created\": \"2017-07-18 03:28:09\",\n \"modified\": \"2017-07-18 03:28:09\",\n \"status\": \"done\",\n \"assessment_id\": 28,\n \"order\": null,\n \"submitted\": \"2017-07-18 03:28:12\",\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 23,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 26\n },\n \"Assessment\": {\n \"id\": 28,\n \"name\": \"Job Smart Initial Survey\",\n \"description\": \"This survey is a self-assessment of your employability skills. Be honest with yourself and leave room to improve. In the end of the program, you will be asked the same questions at the end of the program. Please take 5 minutes to reflect on your current state.
\",\n \"assessment_type\": \"survey\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:59:47\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentSubmissionAnswer\": [\n {\n \"id\": 10,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 92,\n \"answer\": 235,\n \"score\": \"0\"\n },\n {\n \"id\": 11,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 93,\n \"answer\": 240,\n \"score\": \"0\"\n },\n {\n \"id\": 12,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 94,\n \"answer\": 245,\n \"score\": \"0\"\n },\n {\n \"id\": 13,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 95,\n \"answer\": 250,\n \"score\": \"0\"\n },\n {\n \"id\": 14,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 96,\n \"answer\": 255,\n \"score\": \"0\"\n },\n {\n \"id\": 15,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 97,\n \"answer\": 260,\n \"score\": \"0\"\n },\n {\n \"id\": 16,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 98,\n \"answer\": 265,\n \"score\": \"0\"\n },\n {\n \"id\": 17,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 99,\n \"answer\": 270,\n \"score\": \"0\"\n }\n ],\n \"AssessmentReviewAnswer\": []\n }\n\n into:\n {\n\n }\n */\n normalise(respond) {\n let submission = respond['AssessmentSubmission'];\n let assessment = respond['Assessment'];\n let answer = respond['AssessmentSubmissionAnswer'];\n let review = respond['AssessmentReviewAnswer'];\n\n // preprocess date\n submission.created = moment.utc(submission.created);\n submission.modified = moment.utc(submission.modified);\n\n // submitted\n if (submission.submitted) {\n submission.submitted = moment.utc(submission.submitted);\n }\n\n return _.merge(submission, {\n assessment,\n answer,\n review\n });\n }\n\n /**\n * get assessment answer (submission)\n * @param {array} respond API respond from get_submissions\n */\n getAnswer(respond, activityId?: number) {\n let answer = this.normalise(respond).answer;\n return answer;\n }\n\n /**\n * get review (feedback from moderator)\n */\n getReview(review) {\n return review;\n }\n\n /**\n * extract reference IDs and prepare Observables to retrieve submissions\n * @param {array} references References array responded with get_activities() api\n */\n getSubmissionsByReferences(references) {\n let tasks = []; // multiple API requests\n\n // get_submissions API to retrieve submitted answer\n let getSubmissions = (contextId) => {\n return this.getSubmissions({\n search: {\n context_id: contextId\n }\n });\n };\n // Congregation of get_submissions API Observable with different context_id\n _.forEach(references, reference => {\n if (reference.context_id) {\n return tasks.push(getSubmissions(reference.context_id));\n }\n });\n\n return tasks;\n }\n // get user submissions data\n // @TODO Remove it later\n getSubmissionsData() {\n return this.getSubmissions();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/submission.service.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\n\nimport * as _ from 'lodash';\n\nclass Assessment {\n id: number;\n context_id: number;\n in_progress?: Boolean;\n}\n\nclass Answer {\n assessment_question_id: number;\n answer: String | Object | Array;\n choices?: Array;\n}\n\nexport class ChoiceBase {\n id: number;\n value?: number; // or choice id, usually same as \"id\" above\n name: string;\n description?: string;\n explanation?: string;\n order?: number;\n weight?: number;\n}\n\nexport class QuestionBase {\n id: number;\n question_id: number;\n group_id: number;\n assessment_id: number;\n name: string;\n type: string;\n file_type?: string;\n audience: Array;\n choices?: ChoiceBase[];\n answer?: any;\n required?: boolean;\n order?: string | number;\n\n constructor(id, assessment_id, name, type) {\n this.id = id;\n this.assessment_id = assessment_id;\n this.name = name;\n this.type = type;\n }\n}\n\nexport class Submission {\n Assessment: Assessment;\n AssessmentSubmission?: any;\n AssessmentSubmissionAnswer: Object;\n}\n\n@Injectable()\nexport class AssessmentService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * @description check feedback can show\n * @type {boolen}\n */\n isPublished(submissions: any):boolean {\n let published = false;\n _.forEach(submissions, (submission) => {\n _.forEach(submission, (subm) => {\n if (\n subm.AssessmentSubmission &&\n subm.AssessmentSubmission.status === 'published'\n ) {\n published = true;\n }\n });\n });\n return published;\n }\n\n // listAll()\n getAll(options?: any) {\n return this.request.get('api/assessments.json', options);\n }\n\n /**\n * get question's details\n * example:\n * - for multiple-type question, checkbox data is not available in\n * ActivitySequences (from get_activities API) and get_assessments API\n * - checkbox values (selected checkbox ids are required for post_assessments API) which\n * they are only available in this get_export_assessments api\n *\n * @param {any} options [description]\n */\n getQuestion(options?: any) {\n return this.request.get('api/export_assessments.json', options);\n }\n\n post(assessmentAnswer: Submission) {\n return this.request.post('api/assessment_submissions.json', assessmentAnswer, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * save progress using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n save(assessmentAnswer) {\n assessmentAnswer.Assessment.in_progress = true; // force in_progress\n\n return this.post(assessmentAnswer);\n }\n\n /**\n * submit using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n submit(assessmentAnswer) {\n return this.post(assessmentAnswer);\n }\n\n /*\n Turn API format from:\n {\n \"Assessment\": {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n },\n \"AssessmentGroup\": [\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n }\n },\n ...\n ]\n }\n ]\n }\n\n Into:\n {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n \"groups\": {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"questions\": [\n {\n \"id\": 100,\n \"assessment_question_id\": 100,\n \"assessment_group_id\": 28,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n \"order\": null,\n },\n ...\n ]\n }\n }\n */\n normalise(assessment) {\n let result = assessment.Assessment;\n let thisGroups = assessment.AssessmentGroup;\n\n thisGroups = thisGroups.map(group => {\n return this.normaliseGroup(group);\n });\n\n return {\n id: result.id,\n name: result.name,\n description: result.description,\n assessment_type: result.assessment_type,\n is_team: result.is_team,\n is_repeatable: result.is_repeatable,\n AssessmentGroup: thisGroups\n };\n }\n\n /*\n turn \"AssessmentGroup\" object format from:\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n },\n ...\n ]\n }\n\n into format:\n {\n id: group.id,\n name: group.name,\n description: group.description,\n assessment_id: group.assessment_id,\n order: group.order\n questions: [\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n },\n ...\n ],\n }\n */\n normaliseGroup(group) {\n // let result = group;\n let thisQuestions = group.AssessmentGroupQuestion;\n thisQuestions = thisQuestions.map(question => {\n return this.normaliseQuestion(question);\n });\n\n return {\n id: group.id,\n assessment_id: group.assessment_id,\n name: group.name,\n description: group.description,\n questions: thisQuestions,\n order: group.order,\n }\n }\n\n /*\n turn \"AssessmentGroupQuestion\" array format from:\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n }\n\n into:\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n }\n */\n normaliseQuestion(question): QuestionBase {\n let thisQuestion = question.AssessmentQuestion;\n let choices = thisQuestion.AssessmentQuestionChoice;\n\n choices = choices.map(choice => {\n return this.normaliseChoice(choice);\n });\n\n return {\n id: question.id,\n assessment_id: question.assessment_question_id,\n question_id: question.assessment_question_id,\n group_id: question.assessment_group_id,\n name: thisQuestion.name,\n type: thisQuestion.question_type,\n audience: thisQuestion.audience,\n file_type: thisQuestion.file_type,\n required: thisQuestion.is_required,\n choices: choices,\n order: question.order,\n answer: thisQuestion.answer\n };\n }\n\n /*\n turn \"AssessmentQuestionChoice\" array format from:\n {\n \"id\": 275,\n \"assessment_question_id\": 104,\n \"assessment_choice_id\": 275,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 275,\n \"name\": \"New Choice 1\",\n \"description\": \"bad\"\n }\n }\n\n into:\n {\n \"id\": 275,\n \"value\": 275, // or choice id, usually same as \"id\" above\n \"name\": \"New Choice 1\",\n \"description\": \"bad\",\n \"explanation\": null,\n \"order\": 1,\n \"weight\": \"1\",\n }\n */\n normaliseChoice(choice): ChoiceBase {\n return {\n id: choice.id, // same as assessment_choice_id & AssessmentChoice.id & id\n value: choice.assessment_choice_id, // or choice.id (similar id used as \"assessment_choice_id\")\n name: choice.AssessmentChoice.name,\n description: choice.AssessmentChoice.description,\n explanation: choice.explanation,\n order: choice.order,\n weight: choice.weight\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/assessment.service.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { Http } from '@angular/http';\nimport { NavController, ToastController, LoadingController, ModalController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { AchievementService } from '../../../services/achievement.service';\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { CharacterService } from '../../../services/character.service';\nimport { GameService } from '../../../services/game.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { ActivitiesViewPage } from '../view/activities-view.page';\nimport { ActivityListPopupPage } from './popup';\nimport { ItemsPopupPage } from '../../assessments/popup/items-popup.page';\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// pipes\nimport { TruncatePipe } from '../../../pipes/truncate.pipe';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'activities-list-page',\n templateUrl: 'list.html'\n})\nexport class ActivitiesListPage implements OnInit {\n achievements: any = {\n maxPoint: {},\n obtained: {},\n available: []\n };\n activities: any = [];\n activitiesEmptyDataErr: any = errMessages.Activities.activities.empty;\n activitiesLoadingErr: any = errMessages.General.loading.load;\n anyNewItems: any = this.cacheService.getLocal('gotNewItems');\n characterCurrentExperience: number = 0;\n characterData: any = [];\n currentPercentage: any = '0';\n currentPoints: number = 0;\n filteredSubmissions: any = [];\n initialItems: any = [];\n maxPoints: number = 0;\n newItemsData: any = [];\n returnError: boolean = false;\n percentageValue: number = 0;\n submissionData: any = [];\n submissionPoints: number = 0;\n totalAchievements: any = [];\n\n constructor(\n public achievementService: AchievementService,\n public activityService: ActivityService,\n public cacheService: CacheService,\n public characterService: CharacterService,\n public gameService: GameService,\n public http: Http,\n public loadingCtrl: LoadingController,\n public modalCtrl: ModalController,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.anyNewItems = this.cacheService.getLocal('gotNewItems');\n this.newItemsData = this.cacheService.getLocalObject('allNewItems');\n }\n ngOnInit() {\n this.loadingDashboard();\n }\n // refresher activities\n doRefresh(e) {\n this.loadingDashboard();\n e.complete();\n }\n // display user achievemnt statistics score points\n loadingDashboard() {\n let loadingData = this.loadingCtrl.create({\n content: 'Loading ..'\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.activitiesLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let getActivities = this.activityService.getList();\n loadingData.present().then(() => {\n getActivities.subscribe(\n results => {\n this.activities = results;\n if(this.activities.length == 0){\n this.returnError = true;\n }\n let getCharacter = this.characterService.getCharacter();\n let getSubmission = this.submissionService.getSubmissionsData();\n Observable.forkJoin([getSubmission, getCharacter])\n .subscribe(results => {\n loadingData.dismiss().then(() => {\n this.submissionData = results[0];\n _.forEach(this.submissionData, element => {\n if(element.AssessmentSubmission.status == 'published' || element.AssessmentSubmission.status == 'done'){\n if(element.AssessmentSubmission.moderated_score !== null){\n this.filteredSubmissions.push(element.AssessmentSubmission);\n this.submissionPoints += parseFloat(element.AssessmentSubmission.moderated_score);\n }\n }\n });\n let average_score = (this.submissionPoints/this.filteredSubmissions.length)*100;\n (average_score > 0) ? this.percentageValue = average_score : this.percentageValue = 0;\n this.currentPercentage = this.percentageValue.toFixed(2);\n // console.log('Percent: ', this.currentPercentage); // display as string format\n this.characterData = results[1].Characters[0];\n this.cacheService.setLocal('character_id', this.characterData.id);\n console.log('character id: ', this.characterData.id);\n this.characterCurrentExperience = this.characterData.experience_points;\n // console.log('Experience: ', this.characterCurrentExperience);\n this.gameService.getItems({\n character_id: this.characterData.id\n })\n .subscribe(\n data => {\n this.initialItems = data.Items;\n this.cacheService.setLocalObject('initialItems', this.initialItems);\n console.log('Items Data: ', this.initialItems);\n },\n err => {\n console.log('Items Data error: ', err);\n }\n );\n });\n },\n err => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n },\n error => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n });\n }\n // redirect to activity detail page\n goToDetail(activity: any, id: any){\n this.navCtrl.push(ActivitiesViewPage, {\n achievements: this.achievements,\n activity: activity\n });\n }\n // view the disabled activity popup\n goToPopup(unlock_id: any){\n let disabledActivityPopup = this.modalCtrl.create(ActivityListPopupPage, {unlock_id: unlock_id});\n console.log('Achievement ID: ', unlock_id);\n disabledActivityPopup.present();\n }\n // close modal and display as main page\n closeItemsShwon(){\n this.anyNewItems = !this.cacheService.getLocal('gotNewItems');\n this.cacheService.setLocalObject('allNewItems', []);\n this.cacheService.setLocal('gotNewItems', !this.cacheService.getLocal('gotNewItems'));\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/list.page.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class AchievementService {\n target_model = 'program';\n target_id = this.cacheService.getLocalObject('program_id');\n getMaximumPointsUrl = `api/maximum_points.json?target_model=${this.target_model}&target_id=${this.target_id}`;\n totalAchievementUrl = 'api/achievements.json';\n userAchievementUrl = 'api/user_achievements.json';\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n // List Maximum Point Of Total Achievements\n getMaxPoints(){\n return this.request.get(this.getMaximumPointsUrl);\n }\n\n // List User Achievements\n getAchievements(params = {}) {\n return this.request.get(this.userAchievementUrl);\n }\n\n // List All Achievements\n getAll() {\n return this.request.get(this.totalAchievementUrl);\n }\n\n /*\n turn:\n {\n \"Achievement\": {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 4,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n }\n\n into:\n {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 1,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n */\n normalise(achievement) {\n return achievement.Achievement;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/achievement.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class EventService {\n bookEventUrl = 'api/book_events.json';\n targetUrl = 'api/events.json';\n\n constructor(\n public cache: CacheService,\n public request: RequestService\n ) {}\n\n getEvents(options: Object = {}) {\n options = _.merge({\n search: {\n type: 'session'\n }\n }, options);\n\n return this.request.get(this.targetUrl, options)\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(events) {\n _.forEach(events, (event, idx) => {\n events[idx].isAttended = (event.isBooked === true && moment().isAfter(moment(event.end)));\n // We assume server datetime response is UTC...\n events[idx].startDisplay = moment.utc(event.start).local().format(\"dddd, MMM D [at] h:mm A\");\n });\n\n return events;\n }\n\n /**\n * download attachment by single event object\n * @param {[type]} event [description]\n */\n\n downloadAttachment(event) {\n let url = event.fileUrl;\n // var blob = new Blob([data], { type: 'text/csv' });\n // var url= window.URL.createObjectURL(blob);\n window.open(url);\n }\n\n /**\n * get event using observable\n * @param {integer} eventId single event id\n */\n bookEvent(eventId) {\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('event_id', eventId);\n return this.request.post(this.bookEventUrl, urlSearchParams);\n }\n\n cancelEventBooking(eventId){\n return this.request.delete(this.bookEventUrl + '?event_id=' + eventId);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/event.service.ts","import { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FilepickerConfig, FilepickerService } from './filepicker.service';\nimport { FilePreviewDirective } from './file-preview.directive';\n\n@NgModule({\n imports: [ CommonModule ],\n providers: [\n FilepickerService\n ],\n declarations: [\n FilePreviewDirective\n ],\n exports: [\n FilePreviewDirective,\n CommonModule,\n ]\n})\n\nexport class FilepickerModule {\n constructor(@Optional() @SkipSelf() parentModule: FilepickerModule) {\n if (parentModule) {\n throw new Error('FilepickerModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: FilepickerConfig): ModuleWithProviders {\n return {\n ngModule: FilepickerModule,\n providers: [\n {provide: FilepickerConfig, useValue: config}\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.module.ts","import { Directive, ElementRef, Renderer, Input, OnChanges } from '@angular/core';\nimport { WindowRef } from '../window';\n\n@Directive({\n selector: '[file-preview]'\n})\nexport class FilePreviewDirective implements OnChanges {\n @Input('file-preview') url: string;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer,\n private win: WindowRef\n ) {\n el.nativeElement.style.width = '100%';\n el.nativeElement.style.height = win.nativeWindow.screen.height+'px' || '500px';\n }\n\n ngOnChanges () {\n let el = this.el.nativeElement;\n let url = this.url || el.getAttribute('file-preview');\n\n if (url && url.length > 0) {\n url = url.replace('api/file/', 'api/preview/');\n let iframe = this.renderer.createElement(el, 'iframe');\n\n /* Set full size so it gets size from parrent element */\n iframe.width = '100%';\n iframe.height = '100%';\n\n iframe.src = url;\n } else {\n el.innerHtml = '

Invalid attachment URL found.

';\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/file-preview.directive.ts","import { NgModule } from '@angular/core';\nimport { UtilsService } from './utils.service';\n\n@NgModule({\n providers: [UtilsService]\n})\n\nexport class UtilsModule {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/utils/utils.module.ts","/**\n * Instructions:\n * To use this test module, insert \"my-test\" attribute to your HTML tag.\n * It'll generate a full Ionic Page,\n * so it's recommended to include it only if you need it as single full page/component.\n */\n\nimport { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule} from '@angular/common';\nimport { TestPage } from './pages/test/test.page';\nimport { TestStartPage } from './pages/test/test-start.page';\nimport { TestDirective } from './test.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IonicModule\n ],\n declarations: [\n TestPage,\n TestStartPage,\n TestDirective,\n ],\n exports: [\n TestPage,\n TestStartPage,\n TestDirective,\n CommonModule,\n IonicModule\n ]\n})\n\nexport class TestModule {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.module.ts","import { Component, ViewChild } from '@angular/core';\n// import { TestStartPage } from './test-start.page';\n\n@Component({\n selector: 'full-test',\n template: `\n \n Test page\n \n \n\n \n \n `\n})\nexport class TestPage {\n @ViewChild('something') nav;\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n something() {\n console.log(this.nav);\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test.page.ts","import { Component, ViewChild, ViewChildren } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// pages\nimport { AchievementsViewPage } from '../../../../pages/achievements/view/achievements-view.page';\nimport { AssessmentsGroupPage } from '../../../../pages/assessments/group/assessments-group.page';\nimport { ActivitiesClassicListPage } from '../../../../pages/activities-classic/list/activities-classic-list.page';\nimport { EventsListPage } from '../../../../pages/events/list/list.page';\nimport { EventsDownloadPage } from '../../../../pages/events/download/events-download.page';\nimport { GalleryPage } from '../../../../pages/gallery/gallery';\nimport { LevelsListPage } from '../../../../pages/levels/list/list';\nimport { LoginPage } from '../../../../pages/login/login';\nimport { RegistrationPage } from '../../../../pages/registration/registration.page';\nimport { SettingsPage } from '../../../../pages/settings/settings.page';\nimport { EventCheckinPage } from '../../../../pages/events/checkin/event-checkin.page';\nimport { TeamPage } from '../../../../pages/team/team';\nimport { CelebrationPage } from '../../../../pages/spinwheel/celebration.page';\n\nconst PAGES = [\n {\n name: 'celebration',\n page: CelebrationPage\n },\n {\n name: 'Check-in',\n page: EventCheckinPage,\n params: {\n event: {\n \"id\": 132,\n \"activity_id\": 35,\n \"start\": \"2017-04-01 08:15:00\",\n \"end\": \"2018-03-16 09:15:00\",\n \"location\": \"location\",\n \"title\": \"Year long\",\n \"description\": \"Test\",\n \"capacity\": 40,\n \"remaining_capacity_percentage\": 95,\n \"remaining_capacity\": 38,\n \"isBooked\": true,\n \"files\": [],\n \"References\": [\n {\n \"context_id\": 44,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n }\n }\n ],\n \"isAttended\": false,\n \"startDisplay\": \"Saturday, Apr 1 at 4:15 PM\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"Activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n }\n },\n \"ActivitySequence\": [\n {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n }\n ],\n \"References\": [\n {\n \"context_id\": 43,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\"\n }\n }\n ]\n },\n \"coverUrl\": \"/assets/img/static/event-cover-3.jpg\",\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n },\n \"context_id\": 44\n },\n submissions: [\n {\n \"id\": 20,\n \"submitter_id\": 20,\n \"created\": \"2017-07-28 03:05:36\",\n \"modified\": \"2017-07-28 03:05:38\",\n \"status\": \"in progress\",\n \"assessment_id\": 37,\n \"order\": null,\n \"submitted\": null,\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 132,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 44,\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"answer\": [\n {\n \"id\": 75,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 129,\n \"answer\": 284,\n \"score\": \"0\"\n },\n {\n \"id\": 76,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 132,\n \"answer\": {\n \"filename\": \"stuckhere.png\",\n \"handle\": \"iALqct8jRSuKhVs3NB8C\",\n \"mimetype\": \"image/png\",\n \"originalPath\": \"stuckhere.png\",\n \"size\": 195280,\n \"source\": \"local_file_system\",\n \"url\": \"https://cdn.filestackcontent.com/iALqct8jRSuKhVs3NB8C\",\n \"status\": \"Stored\",\n \"icon\": \"fa-image\",\n \"key\": \"iALqct8jRSuKhVs3NB8C\"\n },\n \"score\": \"0\"\n }\n ],\n \"review\": []\n }\n ]\n }\n },\n {\n name: 'Multiple Choice Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n\n ]\n },\n assessment: {\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Multiple Option Question\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"quiz\",\n \"is_live\": false,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 5,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2016-06-23 06:07:39.681326\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentQuestion\": [\n {\n \"name\": \"1st Multitple Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 140,\n \"assessment_id\": 37\n },\n {\n \"name\": \"2nd Multi Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 141,\n \"assessment_id\": 37,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n ],\n \"AssessmentGroup\": [\n {\n \"id\": 42,\n \"assessment_id\": 37,\n \"name\": \"1st Group\",\n \"description\": \"\",\n \"order\": 1,\n \"review_instructions\": \"\",\n \"restart_numbering\": false,\n \"AssessmentGroupQuestion\": [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n ]\n }\n ],\n\n }\n }\n },\n {\n name: 'Assorted Assessments Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n AssessmentQuestion: {\n id: 4,\n question_type: 'file',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: 'image',\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 5,\n question_type: 'multiple',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'Multiple: 3 choices Questions',\n is_required: true\n }\n },\n\n {\n AssessmentQuestion: {\n\n id: 1,\n question_type: 'oneof',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'SITUATION: The context in which this experience took place',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 2,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 3,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'ACTION: What did I do given the situation and the task?',\n is_required: true\n }\n }\n ]\n },\n assessment: {\n Assessment: {\n id:'temporary_fake_id'\n },\n AssessmentGroupQuestion: []\n\n }\n }\n },\n {\n name: 'Events',\n page: EventsListPage\n },\n {\n name: 'Events Download',\n page: EventsDownloadPage\n },\n {\n name: 'Registration',\n page: RegistrationPage\n },\n {\n name: 'Gallery',\n page: GalleryPage\n },\n {\n name: 'Login',\n page: LoginPage\n },\n {\n name: 'Activities',\n page: ActivitiesClassicListPage\n },\n {\n name: 'Levels',\n page: LevelsListPage\n },\n {\n name: 'Teams',\n page: TeamPage\n },\n {\n name: 'Setting',\n page: SettingsPage\n },\n {\n name: 'Achievement View',\n page: AchievementsViewPage\n }\n];\n\n@Component({\n selector: 'my-test',\n templateUrl: 'test.html'\n})\nexport class TestStartPage {\n items: Array = PAGES;\n\n testPage;\n\n constructor(public nav: NavController) {\n // console.log('ActivitiesClassicListPage', ActivitiesClassicListPage)\n // console.log('??', ActivitiesClassicListPage);\n }\n\n goTo(nav) {\n this.testPage = nav.page;\n\n this.nav.push(nav.page, nav.params || null);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test-start.page.ts","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: './celebration.html'\n})\nexport class CelebrationPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/spinwheel/celebration.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'test-page',\n template: ``\n})\nexport class TestDirective {\n rootPage = null;\n @ViewChild('testPage') nav: NavController;\n\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n goBack() {\n console.log(this.nav);\n this.nav.pop();\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.directive.ts","import { NgModule } from '@angular/core';\nimport { TranslationService } from './translation.service';\n@NgModule({\n providers: [ TranslationService ]\n})\nexport class TranslationModule {}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.module.ts","import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable()\nexport class GroupEmitterService {\n static _emitter: { [ID: string]: EventEmitter };\n\n static get(ID: string): EventEmitter {\n if (!this._emitter[ID]) {\n this._emitter[ID] = new EventEmitter();\n }\n return this._emitter[ID];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/group-emitter.service.ts","import {\n ModuleWithProviders,\n NgModule,\n SkipSelf,\n Optional\n} from '@angular/core';\nimport { HttpModule } from '@angular/http';\nimport { CommonModule} from '@angular/common';\nimport '../rxjs-operators';\nimport { RequestServiceConfig, RequestService } from './request.service';\n\n@NgModule({\n imports: [HttpModule, CommonModule, /* spare a space for appcache module*/],\n providers: [\n RequestService,\n // { provide: RequestOptions, useClass: CustomRequestOption }\n ]\n})\n\nexport class RequestModule {\n constructor(@Optional() @SkipSelf() parentModule: RequestModule) {\n if (parentModule) {\n throw new Error(\n 'CoreModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: RequestServiceConfig): ModuleWithProviders {\n return {\n ngModule: RequestModule,\n providers: [\n {\n provide: RequestServiceConfig, useValue: config\n }\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/request/request.module.ts","// import 'rxjs/Rx'; // adds ALL RxJS statics & operators to Observable\n\n// See node_module/rxjs/Rxjs.js\n// Import just the rxjs statics and operators we need for THIS app.\n\n// Statics\nimport 'rxjs/add/observable/throw';\nimport 'rxjs/add/observable/of';\nimport 'rxjs/add/observable/forkJoin';\nimport 'rxjs/add/observable/from';\n\n// Operators\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/debounceTime';\nimport 'rxjs/add/operator/distinctUntilChanged';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/do';\nimport 'rxjs/add/operator/finally';\n// import 'rxjs/subject';\n// import 'rxjs/add/operator/switchMap';\nimport 'rxjs/add/operator/toPromise';\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/rxjs-operators.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SessionService {\n targetUrl = 'api/sessions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n getSessions() {\n return this.request.get(this.targetUrl)\n .map(response => response.json())\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(session) {\n session.start = moment.utc(session.start);\n session.end = moment.utc(session.end);\n session.isExpired = moment().isAfter(session.end);\n session.isFull = false;\n\n if (session.remaining_capacity === 0) {\n session.isFull = true;\n }\n return session;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/session.service.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\nimport { TruncatePipe } from '../../pipes/truncate.pipe';\n\n@Component({\n selector: 'questionGroup',\n templateUrl: 'question-group.html',\n})\nexport class QuestionGroupComponent {\n @Input() group: any = {};\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/question-group/question-group.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// Services\nimport { EventService } from '../../services/event.service';\n// Others\nimport * as moment from 'moment';\n\n@Component({\n selector: 'event',\n templateUrl: 'event.html'\n})\nexport class EventComponent {\n @Input() event: any;\n\n constructor(\n public eventService: EventService,\n public navCtrl: NavController\n ) {}\n\n // Check event has been booked\n isBookedEvent(event) {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }\n\n // Check event has been booked and attended\n isAttendedEvent(event) {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }\n\n download() {\n this.eventService.downloadAttachment(this.event);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/event/event.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'level',\n templateUrl: 'level.html'\n})\nexport class LevelComponent {\n @Input() level;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoLevel(levelId) {\n // this.navCtrl.push(levelDetail);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/level/level.ts","import { Component } from '@angular/core';\n\n@Component({\n selector: 'loading-marker',\n templateUrl: 'loadingMarker.html'\n})\nexport class LoadingMarkerComponent {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loadingMarker/loadingMarker.ts","import { Component } from '@angular/core';\n\n@Component({\n selector: 'locker',\n templateUrl: 'locker.html'\n})\nexport class LockerComponent {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/locker/locker.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'member',\n templateUrl: 'member.html'\n})\nexport class MemberComponent {\n @Input() member;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public sendEmail(target) {\n alert('Send email to ' + target);\n // var emails = lodash.map($scope.members, 'email');\n // var link = 'mailto:' + lodash.join(emails, ',');\n // window.location.href = link;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/member/member.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'photo',\n templateUrl: 'photo.html'\n})\nexport class PhotoComponent {\n @Input() photo;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoPhoto(photoId) {\n // this.navCtrl.push();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/photo/photo.ts","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AuthService } from '../../services/auth.service';\n\n\nconst TermContent = `

Terms of Use Agreement

\n\n

Welcome! By using this platform managed by Intersective Pty Ltd, you are agreeing to comply with and be bound by the following terms of use. These terms are intended to cover the use of the Practera Platform (the Platform) and activities and tasks closely associated with the use of the Platform. Please review the following terms carefully. If you do not agree to these terms, you should not progress any further, and/or communicate with your organisation’s program coordinator.

\n

1. Acceptance of Agreement. You agree to the terms and conditions outlined in this Terms of Use Agreement (\"Agreement\") with respect to the program platform (the \"Platform\"). This Agreement constitutes the entire and only agreement between us and you, and supersedes all prior or contemporaneous agreements, representations, warranties and understandings with respect to the Platform, the content, products or services provided by or through the Platform, and the subject matter of this Agreement. This Agreement may be amended at any time by us from time to time without specific notice to you. The latest Agreement will be posted on the Platform, and you should review this Agreement prior to using the Platform.\n

\n\n

2. Copyright. The content, organization, graphics, design, compilation, magnetic translation, digital conversion and other matters related to the Platform are protected under applicable copyrights, trademarks and other proprietary (including but not limited to intellectual property) rights. The copying, redistribution, use or publication by you of anysuch matters or any part of the Platform, except as allowed by Section 3, is strictly prohibited. You do not acquire ownership rights to any content, document or other materials viewed through the Platform. The posting of information or materials on the Platform does not constitute a waiver of any right in such information and materials.\n

\n\n

3. Limited Right to Use. The viewing, printing or downloading of any content, graphic, form or document from the Platform grants you only a limited, nonexclusive license for use solely by you for your own personal use and not for republication, distribution, assignment, sublicense, sale, preparation of derivative works or other use. No part of any content, form or document may be reproduced in any form or incorporated into any information retrieval system, electronic or mechanical, other than for your personal use (but not for resale or redistribution).\n

\n\n

4. Editing, Deleting and Modification. We reserve the right in our sole discretion to edit or delete any documents, information or other content appearing on the Platform.\n

\n\n

5. Indemnification. You agree to indemnify, defend and hold us and our partners, staff and affiliates (collectively, \"Affiliated Parties\") harmless from any liability, loss, claim and expense, including reasonable legal fees, related to your violation of this Agreement or use of the Platform.\n

\n\n

6. Nontransferable. Your right to use the Platform is not transferable. Any password or right given to you to obtain information or documents is not transferable.\n

\n\n

7. Disclaimer and Limits. All responsibility or liability for any damages caused by viruses contained within the electronic file containing the form or document is disclaimed. WE WILL NOT BE LIABLE TO YOU FOR ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OF ANY KIND THAT MAY RESULT FROM USE OF OR INABILITY TO USE OUR PLATFORM.\n

\n\n

8. Use of Information. We reserve the right, and you authorize us, to the use and assignment of all information regarding Platform uses by you and all information provided by you in any manner consistent with our Privacy Policy.\n

\n\n

9. Third-Party Access. We may allow access to the platform, or to any information contained within the platform, to thirdparties in our absolute discretion, subject to our Privacy Policy.\n

\n\n

10. Privacy Policy. Our Privacy Policy, as it may change from time to time, is a part of this Agreement.\n

\n\n

11. Links to other Web Sites. The Site contains links to other Web Sites. We are not responsible for the content, accuracy or opinions express in such Web Sites, and such Web Sites are not investigated, monitored or checked for accuracy or completeness by us. Inclusion of any linked Web Site on our Site does not imply approval or endorsement of the linked Web Site by us. If you decide to leave our Site and access these third-party Sites, you do so at your own risk.\n

\n\n

12. License of user content. You grant Intersective and any other users of the platform, an irrevocable, global and perpetual license to use any and all content submitted into the platform, including, without limitation, your documents, deliverables, assignments, class notes, course outlines, submits, posts, uploads, displays, reviews, suggestions, ideas, solutions, questions, answers, messages, images, videos, texts of any kind, or other materials for any purposes whatsoever, including, without limitation, developing, manufacturing and marketing products and services for commercial purposes, without any payment or compensation to you. You further agree that Intersective may give free access to all of your above mentioned user content to other third parties, including, without limitation, affiliates, distributors, other users or potential users. You waive any legal or moral rights you may have in any User Content you submit, even if such User Content is altered or changed in any manner.\n

\n\n

Privacy Policy

\n

1. We respect your privacy. As the manager of the program Platform (“The Platform”) Intersective respects your right to privacy and this policy sets out how we collect and treat your personal information. “Personal information” is information we hold which is identifiable as being about you.\n

\n\n

2. What personal information we collect. We may collect a range of types of personal information from you, including, but not limited to, the following:

\n
    \n
  • name
  • \n
  • demographic information – eg; age, gender, socio-economic status
  • \n
  • psychographic information – eg personality, interests, attitudes, behaviours and opinions
  • \n
  • educational history
  • \n
  • employment history
  • \n
  • student number
  • \n
  • user ideas and comments
  • \n
  • information from enquiries you have made
  • \n
  • communications between program participants
  • \n
  • assessments marks and details
  • \n
  • digital and multimedia
  • \n
\n

\n\n

3. How we collect your personal information. We collect personal information from you in a variety of ways, including: when you interact with us electronically or in person; when you access our website; and when we provide our services to you.\n

\n\n

4. Use of your personal information. We use your information to provide our service to you. We also use it to improve our service and to notify you of opportunities that we think you might be interested in. We do not provide or sell your information to third parties, except that we may provide your information to our program partners who support the provision of our services to you expressly for the purpose of facilitating the delivery of that service.\n

\n\n

5. Disclosure of your personal information overseas. We are likely to disclose your personal information to recipients globally.\n

\n\n

6. Security of your personal information. We take reasonable steps to protect your personal information. However we are not liable for any unauthorised access to this information.\n

\n\n

7. Access to your personal information. You can access and update your personal information by contacting us on {{helpline}}\n

\n\n

8. Complaints about privacy. If you have any complaints about our privacy practices, please feel free to send in details of your complaints to {{helpline}}. We take complaints very seriously and will respond shortly after receiving written notice of your complaint.\n

\n\n

9. Changes. Please be aware that we may change this Privacy Policy in the future. The revised versions will be uploaded onto our website, so please check back from time to time.\n

\n\n

10. Website.

\n

When you visit our website

\n

When you come on to our website we may collect certain information such as browser type, operating system, website visited immediately before coming to our site, etc. This information is used in an aggregated manner to analyse how people use our site, such that we can improve our service.

\n\n

Cookies

\n

As is very common for companies, we use cookies on our website. Cookies are very small files which a website uses to identify you when you come back to the site and to store details about your use of the site. Cookies are not malicious programs that access or damage your computer. We use cookies to improve the experience of people using our website.\nThird party sites\nOur site has links to other websites not owned or controlled by us. We are not responsible for these sites or the consequences of you going on to those sites.

`;\n\n@Component({\n selector: 'term-content',\n template: '
'\n})\nexport class TermContentComponent {\n content: string;\n constructor(public sanitizer: DomSanitizer, public authService: AuthService) {\n this.content = TermContent;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-content.component.ts","import { Component, Input, OnInit, NgZone } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n// Others\nimport { FilepickerService, FilepickerUpload } from '../../shared/filepicker/filepicker.service';\nimport { UtilsService } from '../../shared/utils/utils.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'file-question',\n templateUrl: './file.html'\n})\nexport class FileQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n uploaded: any; // uploaded file (support single only)\n // uploaded: Array = []; // uploaded files\n\n constructor(\n public fs: FilepickerService,\n public util: UtilsService,\n public zone: NgZone\n ) {}\n\n /**\n * @description at file type question initiation,\n * uploaded files is retrieved from cached form (if available)\n */\n ngOnInit() {\n this.uploaded = _.isEmpty(this.form.controls.answer.value) ? false : this.form.controls.answer.value;\n }\n\n /**\n * @description Upload file and trigger ngzone to update this.uploaded variable\n */\n upload(event) {\n let self = this;\n\n this.fs.pick({\n maxFiles: 1,\n storeTo: {\n location: 's3'\n }\n }).then((uploaded: FilepickerUpload) => {\n self.zone.run(() => {\n if (uploaded.filesUploaded.length > 0) {\n let file = uploaded.filesUploaded.shift();\n file.icon = self.util.getIcon(file.mimetype);\n\n // post_assessment_submission API requirement \"key\"\n file.key = file.handle;\n\n self.uploaded = file;\n this.form.controls.answer.setValue(self.uploaded);\n }\n\n if (uploaded.filesFailed.length > 0) {\n console.log(uploaded.filesFailed.length, ' file(s) not uploaded.');\n }\n });\n });\n }\n\n injectIcon = (files: any[]) => {\n let result = [];\n files.forEach((file, index) => {\n file.icon = this.util.getIcon(file.mimetype);\n result.push(file);\n });\n\n return result;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/file.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'oneof-question',\n templateUrl: './oneof.html'\n})\nexport class OneofQuestionComponent implements OnInit {\n @Input() question;\n @Input() form: FormGroup;\n @Input() disabled;\n @Output() oneofForm = new EventEmitter();\n\n constructor() {}\n change(e) {\n this.oneofForm.emit(e);\n }\n\n ngOnInit() {\n // console.log(this.question);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/oneof.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'text-question',\n templateUrl: './text.html'\n})\nexport class TextQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/text.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'multiple-question',\n templateUrl: './multiple.html'\n})\nexport class MultipleQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n change(e) {\n console.log(e);\n console.log(this.question);\n }\n\n ngOnInit() {\n console.log(this.form);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/multiple.ts","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'feedback',\n templateUrl: './feedback.html'\n})\nexport class FeedbackComponent implements OnInit {\n @Input() question;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/feedback.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'events',\n templateUrl: 'events.html'\n})\nexport class EventsComponent {\n @Input() events;\n\n constructor(\n public navCtrl: NavController\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/events/events.component.ts","import { Component, Injectable } from '@angular/core';\nimport { ViewController, LoadingController, NavParams, NavController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { TranslateService } from '@ngx-translate/core';\n// pages\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\n\n@Injectable()\n@Component({\n selector: 'items-popup',\n templateUrl: 'items-popup.html'\n})\nexport class ItemsPopupPage {\n public combinedData: any = [];\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n\n constructor(\n public cacheService: CacheService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {}\n\n ionViewWillEnter() {\n this.combinedData = this.cacheService.getLocalObject('allNewItems');\n }\n\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/popup/items-popup.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController, MenuController } from 'ionic-angular';\n\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { LevelsListPage } from '../levels/list/list';\n\n/* This is side navigation bar which shows after user logged in to the app */\n@Component({\n selector: 'page-sidenav',\n templateUrl: 'sidenav.html'\n})\nexport class SidenavPage {\n @ViewChild('sideNav') sideNav: NavController;\n\n activitiesListPage = ActivitiesListPage;\n levelsListPage = LevelsListPage;\n loginPage = LoginPage;\n rootPage = null;\n tabsPage = TabsPage;\n\n constructor(\n public menuCtrl: MenuController\n ) {\n this.rootPage = LoginPage;\n }\n\n onLoad(page: any) {\n this.sideNav.setRoot(page);\n this.menuCtrl.close();\n } // handles when user login load specific page which selected/clicked by user\n\n onLogout() {\n localStorage.clear();\n this.menuCtrl.close();\n this.sideNav.setRoot(LoginPage);\n } // handles when user logout\n\n isLoggedin() {\n return localStorage.getItem('isAuthenticated') == 'true';\n }\n // this functin is to check if user is logged in, the value is turn to true,\n // navbar shows all listed page links, else navbar only show login link button\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/sidenav/sidenav.ts","import {Pipe, PipeTransform} from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({ name: 'timeago' })\nexport class TimeAgoPipe implements PipeTransform {\n transform(input, p_allowFuture?: any) : any {\n if (!input || input.length === 0) {\n return '';\n }\n\n // treat API date as UTC\n input = moment.utc(input);\n\n var substitute = function (timeStamp, num, strings) {\n // var string = angular.isFunction(timeStamp) ? timeStamp(num, dateDifference) : timeStamp;\n var string = timeStamp;\n var value = (strings.numbers && strings.numbers[num]) || num;\n return string.replace(/%d/i, value);\n },\n nowTime = (new Date()).getTime(),\n date = (new Date(input)).getTime(),\n //refreshMillis= 6e4, //A minute\n allowFuture = p_allowFuture || false,\n strings= {\n prefixAgo: '',\n prefixFromNow: '',\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n seconds: \"less than a minute\",\n minute: \"about a minute\",\n minutes: \"%d minutes\",\n hour: \"about an hour\",\n hours: \"about %d hours\",\n day: \"a day\",\n days: \"%d days\",\n month: \"about a month\",\n months: \"%d months\",\n year: \"about a year\",\n years: \"%d years\",\n wordSeparator: ' '\n },\n dateDifference = nowTime - date,\n words,\n seconds = Math.abs(dateDifference) / 1000,\n minutes = seconds / 60,\n hours = minutes / 60,\n days = hours / 24,\n years = days / 365,\n separator = strings.wordSeparator,\n\n\n prefix = strings.prefixAgo,\n suffix = strings.suffixAgo;\n\n if (allowFuture) {\n if (dateDifference < 0) {\n prefix = strings.prefixFromNow;\n suffix = strings.suffixFromNow;\n }\n }\n\n words = seconds < 45 && substitute(strings.seconds, Math.round(seconds), strings) ||\n seconds < 90 && substitute(strings.minute, 1, strings) ||\n minutes < 45 && substitute(strings.minutes, Math.round(minutes), strings) ||\n minutes < 90 && substitute(strings.hour, 1, strings) ||\n hours < 24 && substitute(strings.hours, Math.round(hours), strings) ||\n hours < 42 && substitute(strings.day, 1, strings) ||\n days < 30 && substitute(strings.days, Math.round(days), strings) ||\n days < 45 && substitute(strings.month, 1, strings) ||\n days < 365 && substitute(strings.months, Math.round(days / 30), strings) ||\n years < 1.5 && substitute(strings.year, 1, strings) ||\n substitute(strings.years, Math.round(years), strings);\n\n prefix.replace(/ /g, '');\n words.replace(/ /g, '');\n suffix.replace(/ /g, '');\n return (prefix+' '+words+' '+suffix+' '+separator);\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/timeago.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ucfirst'\n})\n// replication of PHP native ucfirst()\nexport class UcfirstPipe implements PipeTransform {\n transform(input: string): any {\n let result = '';\n\n // turn first letter of word into upper case\n var capitalizeFirstLetter = function (string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n };\n\n if (input) {\n result = capitalizeFirstLetter(input);\n }\n\n return result;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/ucfirst.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, maxLength: number): string {\n if (value.length < maxLength) {\n return value;\n }\n return value.substring(0, maxLength) + '...';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/truncate.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: 'keepHtml', pure: false })\nexport class EscapeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(content) {\n return this.sanitizer.bypassSecurityTrustHtml(content);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/keep-html.pipe.ts","// Need update read me\n// Copy file to config.ts\nexport default {\n prefixUrl: 'http://local.practera.com:8080/',\n appKey: 'b11ccabf11',\n filestack: {\n apiKey: ''\n },\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/configs/config.ts","import { Component } from '@angular/core';\nimport { NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { EventService } from '../../../services/event.service';\n// pages\nimport { EventsViewPage } from '../view/events-view.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'events-list-page',\n templateUrl: 'list.html'\n})\nexport class EventsListPage {\n activities = {};\n emptyFilterErrMessage = errMessages.Events.filter.empty; // loading & error message variables\n events = []; // ordered events array in filterEvents and to be access through template\n filter = 'browses';\n loadedEvents = []; // Further processed events array, for public use\n noAttendedFilterErrMessage = errMessages.Events.filter.noAttended;\n noBookingsFilterErrMessage = errMessages.Events.filter.noBookings;\n noEvents = false;\n\n constructor(\n public activityService: ActivityService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n /**\n * @name filterEvents\n * @description filter and group events into 3 catergories (attended, my-bookings, browses)\n * attended: expired & booked\n * my-bookings: active event & booked\n * browses: list of available events\n */\n filterEvents() {\n this.noEvents = false;\n switch(this.filter) {\n case 'attended':\n // List all ended event in order of end time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }), 'start', 'desc');\n break;\n case 'my-bookings':\n // List all booked event in order of start time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }), 'start', 'asc');\n break;\n case 'browses':\n // List all not booked and not ended event in order of start time (asc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n // return (moment(event.end).isAfter() && event.isBooked === false);\n // return (moment().isBefore(moment(event.end)) && event.isBooked === false);\n return (moment(event.end).isAfter() && event.isBooked === false);\n }), 'start', 'asc');\n break;\n }\n if (this.events.length === 0) {\n this.noEvents = true;\n }\n return this.events;\n }\n\n // Called when tap on filter tab\n selected(filter) {\n this.filter = filter;\n this.events = this.filterEvents();\n }\n\n // Check total of events, return \"true\" when 0 found\n showNoEventMessage() {\n return (this.noEvents);\n }\n\n /**\n * @name loadEvents\n * @description retrieve events (from get_events) with a list of activity_id (from get_activity)\n * @return {Promise}\n */\n loadEvents(): Promise {\n return new Promise((resolve, reject) => {\n // Get activities IDs\n this.activityService.getList().toPromise()\n .then((activities) => {\n this.activities = {};\n let activityIDs = [];\n _.forEach(activities, (act) => {\n this.activities[act.Activity.id] = act;\n activityIDs.push(act.Activity.id);\n });\n\n // Get event by activityIDs\n this.eventService.getEvents({\n search: {\n activity_id: '[' + _.toString(activityIDs) + ']',\n type: 'session'\n }\n })\n .then((events) => {\n // loadedEvents will never change (public use),\n // it will be used for filtering of events (prep for display/template variable).\n this.loadedEvents = this._injectCover(this._mapWithActivity(events));\n\n // events use to rendering on page\n this.events = _.clone(this.loadedEvents);\n this.filterEvents();\n return resolve();\n }, reject);\n }, reject);\n });\n }\n\n ionViewDidEnter() {\n let loader = this.loadingCtrl.create();\n\n loader.present().then(() => {\n this.loadEvents().then(() => {\n loader.dismiss();\n })\n .catch((err) => {\n console.log(err);\n loader.dismiss();\n });\n });\n }\n\n doRefresh(e) {\n this.loadEvents().then(() => {\n e.complete();\n })\n .catch((err) => {\n console.log('err', err);\n e.complete();\n });\n }\n /**\n * @TODO: remove this once we decided to remove hardcoded images, big size picture is ruining UX because it induces long download time\n *\n * @name _injectCover\n * @description inject hardcoded images by array index number\n * @param {array} events list of event object respond from get_events API\n */\n _injectCover(events) {\n let counts = events.length;\n\n _.forEach(events, (value, key) => {\n let idx = (key % 5) + 1;\n events[key].coverUrl = '/assets/img/static/event-cover-' + idx + '.jpg';\n });\n\n return events;\n }\n\n /**\n * @name _mapWithActivity\n * @description\n * - attach \"activity\" object into each of single \"event\" object\n * - Extract and merge event-activity only\n * - skip non-event activities\n * @param {array} events get_events response\n */\n _mapWithActivity(events) {\n let result = [];\n\n events.forEach(event => {\n let thisActivity = this.activities[event.activity_id];\n thisActivity.References = event.References; // must use event's references\n event.activity = this.activityService.normaliseActivity(thisActivity);\n result.push(event);\n });\n\n return result;\n }\n // Check event allow to check-in\n allowCheckIn(event) {\n return (moment(event.start).isAfter() && moment(event.end).isBefore());\n }\n\n view(event) {\n this.navCtrl.push(EventsViewPage, {\n event\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/list/list.page.ts","import { Injectable, Optional } from '@angular/core';\n\ndeclare var filestack: any; // v3 filestack\ndeclare var filepicker: any; // v2 filestack\n\nexport class FilepickerUpload {\n filesFailed: Array;\n filesUploaded: Array;\n}\n\n@Injectable()\nexport class FilepickerConfig {\n apikey = null;\n}\n\nexport class FilepickerService {\n private filestack: any;\n private filepicker: any;\n version: any;\n\n constructor(@Optional() config: FilepickerConfig) {\n this.filestack = filestack.init(config.apikey);\n this.version = filestack.version;\n\n this.filepicker = filepicker;\n this.filepicker.setKey(config.apikey);\n }\n\n /**\n * display pick/upload popup for file upload,\n * refer to filestack documentation for more config information\n * @link https://www.filestack.com/docs/javascript-api/pick-v3\n * @param {object} config filestack object\n * @return {Promise} single resolved object\n */\n pick(config?): Promise {\n if (!config) {\n config = {\n maxFiles: 5, // default by max 5 files\n storeTo: {\n location: 's3'\n }\n };\n }\n\n return this.filestack.pick(config);\n }\n\n pickV1(file, onSuccess, onError?, onProgress?) {\n this.filepicker.pick(file, success => {\n return onSuccess(success);\n }, onError, onProgress);\n }\n\n getSecurity() {\n return this.filestack.getSecurity();\n }\n\n setSecurity (e) {\n return this.filestack.setSecurity(e);\n }\n\n storeURL (e, t) {\n return this.filestack.storeURL(e, t);\n }\n\n transform (e, t) {\n return this.filestack.transform(e, t);\n }\n\n upload (e, t, n, i) {\n return this.filestack.upload(e, t, n, i);\n }\n\n retrieve (e, t) {\n return this.filestack.retrieve(e, t);\n }\n\n remove (e) {\n return this.filestack.remove(e);\n }\n\n metadata (e, t) {\n return this.filestack.metadata(e, t);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.service.ts"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index adb25002..a9c6e1ba 100755 --- a/package.json +++ b/package.json @@ -18,14 +18,14 @@ "url": "https://github.com/intersective/practera-sdk-ionic" }, "dependencies": { - "@angular/common": "4.1.3", - "@angular/compiler": "4.1.3", - "@angular/compiler-cli": "4.1.3", - "@angular/core": "4.1.3", - "@angular/forms": "4.1.3", - "@angular/http": "4.1.3", - "@angular/platform-browser": "4.1.3", - "@angular/platform-browser-dynamic": "4.1.3", + "@angular/common": "4.4.3", + "@angular/compiler": "4.4.3", + "@angular/compiler-cli": "4.4.3", + "@angular/core": "4.4.3", + "@angular/forms": "4.4.3", + "@angular/http": "4.4.3", + "@angular/platform-browser": "4.4.3", + "@angular/platform-browser-dynamic": "4.4.3", "@ionic/storage": "2.0.1", "@ngx-translate/core": "^7.0.0", "@ngx-translate/http-loader": "^0.1.0", @@ -33,16 +33,16 @@ "angular2-moment": "1.4.0", "d3": "^3.5.17", "font-awesome": "^4.7.0", - "ionic-angular": "~3.5.*", + "ionic-angular": "3.7.0", "ionicons": "3.0.0", "lodash": "^4.13.1", "moment": "^2.17.1", - "rxjs": "5.4.0", + "rxjs": "5.4.3", "sw-toolbox": "3.6.0", - "zone.js": "0.8.12" + "zone.js": "0.8.17" }, "devDependencies": { - "@ionic/app-scripts": "2.0.0", + "@ionic/app-scripts": "^3.0.1", "@types/jasmine": "^2.5.47", "@types/node": "^7.0.13", "angular2-template-loader": "^0.6.2", diff --git a/src/components/loadingMarker/loadingMarker.ts b/src/components/loadingMarker/loadingMarker.ts index a6eeed35..4889d75e 100644 --- a/src/components/loadingMarker/loadingMarker.ts +++ b/src/components/loadingMarker/loadingMarker.ts @@ -1,9 +1,9 @@ -import { Component } from '@angular/core'; +import { Component, Input } from '@angular/core'; @Component({ selector: 'loading-marker', templateUrl: 'loadingMarker.html' }) export class LoadingMarkerComponent { - + @Input() loading: any; } diff --git a/src/pages/activities/list/list.html b/src/pages/activities/list/list.html index 1900f585..bc946958 100644 --- a/src/pages/activities/list/list.html +++ b/src/pages/activities/list/list.html @@ -4,9 +4,9 @@ New Items - @@ -14,6 +14,7 @@ {{ 'ACTIVITY.PAGETITLE' | translate }}
+ +

{{ 'ACTIVITY.PROGRESS' | translate }}

-

{{ currentPercentage }}%

+

{{ currentPercentage }}%

-
+
@@ -41,6 +43,7 @@

{{ characterCurrentExperience }}

+ @@ -55,17 +58,19 @@

{{ characterCurrentExperience }}

{{ activity.Activity.name }}

+

- {{ activity.Activity.name }} -

+ {{ activity.Activity.name }} +

+ @@ -74,15 +79,15 @@

{{ characterCurrentExperience }}

item - item

{{ item.name }} x{{ item.count[0].count }} -

+

- +
diff --git a/src/pages/activities/view/activities-view.page.ts b/src/pages/activities/view/activities-view.page.ts index 2ca2f247..b6f6b45a 100644 --- a/src/pages/activities/view/activities-view.page.ts +++ b/src/pages/activities/view/activities-view.page.ts @@ -21,7 +21,6 @@ export class ActivitiesViewPage { }; activity: any = {}; assessment: any = {}; - assessments: any = {}; loadings = { submissions: false }; @@ -51,7 +50,6 @@ export class ActivitiesViewPage { ionViewDidEnter(): void { // assessment this.activity = this.activityService.normaliseActivity(this.navParams.get('activity') || {}); - this.assessments = this.activity.sequences || []; this.assessment = this.activity.assessment; // submission @@ -64,6 +62,8 @@ export class ActivitiesViewPage { return this.submissionService.normalise(submission); }); this.submissions = _.orderBy(this.submissions, 'created', 'desc'); // latest at top + + this.submissions = this.setSubmissionStatusTitle(this.submissions); } }); @@ -128,7 +128,7 @@ export class ActivitiesViewPage { goAssessment(submission?, opts = { hasSubmission: false }) { if ((this.inProgressSubmission()).length > 0 && opts.hasSubmission === false) { let alert = this.alertCtrl.create({ - title: 'You have a submission in progress.', + title: 'You already have started a new submission! Please tap on "In Progress" below to continue with it.', buttons: ["Ok"] }); alert.present(); @@ -146,4 +146,68 @@ export class ActivitiesViewPage { }); } } + + /** + * @name setSubmissionStatusTitle + * @description refer to assessment status and inject proper UI displayable title for different submissions (in a assessments, multiple submission has no unique title, this function is added to help user identify different submission by title) + * @param {Array} submissions submissions array objects + */ + setSubmissionStatusTitle(submissions: Array) { + let results: Array<{ + name: string, + score: number, + published: boolean, + inprogress: boolean, + moderated_assessment: boolean + }>; + + submissions = submissions.map((submission, index) => { + let result = { + name: '', + score: 0, + published: false, + inprogress: false, + moderated_assessment: false + }; + + if (submission.status == "published") { + result.published = true; + + switch (submission.moderated_score) { + case "1": + result.score = 4; + result.name = "Outstanding"; + break; + case "0.75": + result.score = 3; + result.name = "Commendable"; + break; + case "0.5": + result.score = 2; + result.name = "Competent"; + break; + case "0.25": + result.score = 1; + result.name = "Developing"; + break; + case "0": + result.score = 0; + result.name = "Needs Improvement"; + } + } else if(submission.status == "in progress") { + result.inprogress = true; + } else { + result.inprogress = false; + } + + if (submission.assessment.assessment_type == "moderated") { + result.moderated_assessment = true; + } + + submission.statusTitle = result; + return submission; + }); + + return submissions; + } } diff --git a/src/pages/activities/view/view.html b/src/pages/activities/view/view.html index 18bb82ca..b123f181 100644 --- a/src/pages/activities/view/view.html +++ b/src/pages/activities/view/view.html @@ -46,22 +46,38 @@ - Loading submissions... + - - - -
-

{{ (submission.submitted || submission.created).format() | amDateFormat:"MMM D YYYY, h:mm a" }}

-
-
- - - {{ submission.status }} - + + +

Waiting for Review

+

Done

+

In Progress

+

{{ (submission.submitted || submission.created).format() | amDateFormat:"MMM D YYYY, h:mm a" }}

+
+ + + + 4 + + +
+ + +

{{ submission.statusTitle | truncate: 50 }}

+

{{ submission.statusTitle.name }}

+

{{ (submission.submitted || submission.created).format() | amDateFormat:"MMM D YYYY, h:mm a" }}

+
+ + + {{ submission.statusTitle.score }} + +
diff --git a/yarn.lock b/yarn.lock index 842fbf27..5b441ee0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,88 +2,111 @@ # yarn lockfile v1 -"@angular/common@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.1.3.tgz#e7c4791e32131cf74c239428c2a67daab2eef017" +"@angular-devkit/build-optimizer@0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.0.21.tgz#d3100a179c570d3c45ba02f87486c931e8845e13" + dependencies: + loader-utils "^1.1.0" + source-map "^0.5.6" + typescript "^2.3.3" + webpack-sources "^1.0.1" + +"@angular/common@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.4.3.tgz#f92ac68b02bec5f0e6d3603a843294dc96c96074" + dependencies: + tslib "^1.7.1" -"@angular/compiler-cli@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.1.3.tgz#c2362ffdf65756471481f839fab675bcac213f96" +"@angular/compiler-cli@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.4.3.tgz#183af81f141186b8d660b06429592d40b7540a4a" dependencies: - "@angular/tsc-wrapped" "4.1.3" + "@angular/tsc-wrapped" "4.4.3" minimist "^1.2.0" reflect-metadata "^0.1.2" -"@angular/compiler@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.1.3.tgz#d2dd30853b0cf4a54758b4a314632c231f9c94c3" +"@angular/compiler@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.4.3.tgz#8f01163dad7db3408497d99d387554b6b185ad66" + dependencies: + tslib "^1.7.1" -"@angular/core@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.1.3.tgz#285498eb86ab7d0b6f982f8f9f487ef610013b35" +"@angular/core@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.4.3.tgz#e71d2b07beaacbab48ab7f51d4e2286ea5d70e15" + dependencies: + tslib "^1.7.1" -"@angular/forms@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.1.3.tgz#380ab4c3af84c5d1d748c2a7d04151c7dc8e4982" +"@angular/forms@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.4.3.tgz#25b41bbab58bf1da872411c8517c10d7c5373d8e" + dependencies: + tslib "^1.7.1" -"@angular/http@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.1.3.tgz#eb9d1c302a0172815f9a573310d9be0bdeb845ae" +"@angular/http@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.4.3.tgz#b557ed24144aacc44b136cd477e84d2f57808903" + dependencies: + tslib "^1.7.1" -"@angular/platform-browser-dynamic@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.1.3.tgz#3c13fdcf591d487f6efdc1d46913f280c6d8c2ec" +"@angular/platform-browser-dynamic@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.3.tgz#e41ddd8252432775310eab5940cdd8df0618f084" + dependencies: + tslib "^1.7.1" -"@angular/platform-browser@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.1.3.tgz#4fa1db5119dd178b315ddae5b329bee1a932a5bd" +"@angular/platform-browser@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.4.3.tgz#23f9a45bd3dc7f44d97877fbf8e6032decfc9dcb" + dependencies: + tslib "^1.7.1" -"@angular/tsc-wrapped@4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.1.3.tgz#2d6372c9187bf1621eacd960b94b39c4f95293cd" +"@angular/tsc-wrapped@4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.4.3.tgz#2d3f38210a1d4db03fc86dcf1e095812b85cd119" dependencies: tsickle "^0.21.0" -"@ionic/app-scripts@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@ionic/app-scripts/-/app-scripts-2.0.0.tgz#cb1057c966849d6e6ea837209ebb4ff6fb065f27" +"@ionic/app-scripts@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@ionic/app-scripts/-/app-scripts-3.0.1.tgz#6110a7d6c8ff75ba5acfa37c3389fc269ea301c7" dependencies: + "@angular-devkit/build-optimizer" "0.0.21" autoprefixer "7.1.1" - babili "0.1.2" chalk "1.1.3" chokidar "1.7.0" - clean-css "3.4.27" + clean-css "4.1.9" cross-spawn "5.1.0" express "4.15.3" fs-extra "3.0.1" glob "7.1.1" json-loader "0.5.4" - magic-string "0.19.1" node-sass "4.5.3" os-name "2.0.1" postcss "5.2.17" proxy-middleware "0.15.0" reflect-metadata "^0.1.10" - rollup "0.42.0" + rollup "0.49.2" rollup-plugin-commonjs "8.0.2" rollup-plugin-json "2.3.0" rollup-plugin-node-builtins "2.1.2" rollup-plugin-node-globals "1.1.0" rollup-plugin-node-resolve "3.0.0" rollup-pluginutils "2.0.1" + source-map "^0.5.7" tiny-lr "1.0.4" tslint "^5.5.0" tslint-eslint-rules "4.1.1" - uglify-js "^3.0.23" - webpack "^3.1.0" - ws "1.1.1" + uglify-es "^3.1.0" + webpack "^3.5.5" + ws "1.1.4" xml2js "0.4.17" -"@ionic/cli-utils@1.12.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@ionic/cli-utils/-/cli-utils-1.12.0.tgz#1af2e3e41936b7012acf248f481305907dc7b688" +"@ionic/cli-utils@1.13.1": + version "1.13.1" + resolved "https://registry.yarnpkg.com/@ionic/cli-utils/-/cli-utils-1.13.1.tgz#7360cf7501b804cea98694d322dd9d96da9dc337" dependencies: - archiver "^2.0.3" + archiver "^2.1.0" basic-auth "^1.1.0" body-parser "^1.18.1" chalk "^2.0.0" @@ -91,9 +114,9 @@ ci-info "^1.1.1" cross-spawn "^5.1.0" dargs "^5.1.0" - diff "^3.3.1" + diff "^3.4.0" elementtree "^0.1.7" - express "^4.15.4" + express "^4.16.2" inquirer "^3.3.0" leek "0.0.24" lodash "^4.17.4" @@ -106,17 +129,17 @@ ssh-config "^1.1.1" string-width "^2.1.1" strip-ansi "^4.0.0" - superagent "^3.6.0" + superagent "^3.6.3" tar "^2.2.1" tiny-lr "^1.0.5" - tslib "^1.7.1" + tslib "^1.8.0" uuid "^3.0.1" wrap-ansi "^3.0.1" ws "^3.2.0" -"@ionic/discover@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@ionic/discover/-/discover-0.3.1.tgz#f3e3665ad49de45e2563f97bda328ef4b6f6010a" +"@ionic/discover@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@ionic/discover/-/discover-0.3.3.tgz#fcdb1e933a39c6e16b2eb5edf3dff06c284bd24d" dependencies: netmask "^1.0.6" @@ -177,6 +200,13 @@ accepts@1.3.3, accepts@~1.3.3: mime-types "~2.1.11" negotiator "0.6.1" +accepts@~1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + acorn-dynamic-import@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" @@ -306,9 +336,9 @@ archiver-utils@^1.3.0: normalize-path "^2.0.0" readable-stream "^2.0.0" -archiver@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-2.0.3.tgz#b4360bb584af1437991942716f21d7c523d1dbbd" +archiver@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-2.1.0.tgz#d2df2e8d5773a82c1dcce925ccc41450ea999afd" dependencies: archiver-utils "^1.3.0" async "^2.0.0" @@ -317,7 +347,6 @@ archiver@^2.0.3: lodash "^4.8.0" readable-stream "^2.0.0" tar-stream "^1.5.0" - walkdir "^0.0.11" zip-stream "^1.2.0" are-we-there-yet@~1.1.2: @@ -450,27 +479,6 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -babel-cli@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" - dependencies: - babel-core "^6.24.1" - babel-polyfill "^6.23.0" - babel-register "^6.24.1" - babel-runtime "^6.22.0" - commander "^2.8.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.0.0" - glob "^7.0.0" - lodash "^4.2.0" - output-file-sync "^1.1.0" - path-is-absolute "^1.0.0" - slash "^1.0.0" - source-map "^0.5.0" - v8flags "^2.0.10" - optionalDependencies: - chokidar "^1.6.1" - babel-code-frame@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" @@ -479,293 +487,6 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.0" -babel-core@^6.24.1: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729" - dependencies: - babel-code-frame "^6.22.0" - babel-generator "^6.25.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.25.0" - babel-traverse "^6.25.0" - babel-types "^6.25.0" - babylon "^6.17.2" - convert-source-map "^1.1.0" - debug "^2.1.1" - json5 "^0.5.0" - lodash "^4.2.0" - minimatch "^3.0.2" - path-is-absolute "^1.0.0" - private "^0.1.6" - slash "^1.0.0" - source-map "^0.5.0" - -babel-generator@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.25.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" - trim-right "^1.0.1" - -babel-helper-evaluate-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.1.0.tgz#95d98c4ea36150483db2e7d3ec9e1954a72629cb" - -babel-helper-flip-expressions@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.1.2.tgz#77f6652f9de9c42401d827bd46ebd2109e3ef18a" - -babel-helper-is-nodes-equiv@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" - -babel-helper-is-void-0@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.1.1.tgz#72f21a3abba0bef3837f9174fca731aed9a02888" - -babel-helper-mark-eval-scopes@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.1.1.tgz#4554345edf9f2549427bd2098e530253f8af2992" - -babel-helper-remove-or-void@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.1.1.tgz#9d7e1856dc6fafcb41b283a416730dc1844f66d7" - -babel-helper-to-multiple-sequence-expressions@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.1.1.tgz#5f1b832b39e4acf954e9137f0251395c71196b35" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-minify-builtins@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.1.3.tgz#4f21a7dcb51f91a04ea71d47ff0e8e3b05fec021" - dependencies: - babel-helper-evaluate-path "^0.1.0" - -babel-plugin-minify-constant-folding@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.1.3.tgz#57bd172adf8b8d74ad7c99612eb950414ebea3ca" - dependencies: - babel-helper-evaluate-path "^0.1.0" - -babel-plugin-minify-dead-code-elimination@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.7.tgz#774f536f347b98393a27baa717872968813c342c" - dependencies: - babel-helper-mark-eval-scopes "^0.1.1" - babel-helper-remove-or-void "^0.1.1" - lodash.some "^4.6.0" - -babel-plugin-minify-flip-comparisons@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.1.2.tgz#e286b40b7599b18dfea195071e4279465cfc1884" - dependencies: - babel-helper-is-void-0 "^0.1.1" - -babel-plugin-minify-guarded-expressions@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.1.2.tgz#dfc3d473b0362d9605d3ce0ac1e22328c60d1007" - dependencies: - babel-helper-flip-expressions "^0.1.2" - -babel-plugin-minify-infinity@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.1.2.tgz#5f1cf67ddedcba13c8a00da832542df0091a1cd4" - -babel-plugin-minify-mangle-names@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.1.3.tgz#bfa24661a6794fb03833587e55828b65449e06fe" - dependencies: - babel-helper-mark-eval-scopes "^0.1.1" - -babel-plugin-minify-numeric-literals@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.1.1.tgz#d4b8b0c925f874714ee33ee4b26678583d7ce7fb" - -babel-plugin-minify-replace@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.1.2.tgz#b90b9e71ab4d3b36325629a91beabe13b0b16ac1" - -babel-plugin-minify-simplify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.1.2.tgz#a968f1658fdeb2fc759e81fe331d89829df0f6b9" - dependencies: - babel-helper-flip-expressions "^0.1.2" - babel-helper-is-nodes-equiv "^0.0.1" - babel-helper-to-multiple-sequence-expressions "^0.1.1" - -babel-plugin-minify-type-constructors@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.1.2.tgz#db53c5b76cb8e2fcd45d862f17104c78761337ee" - dependencies: - babel-helper-is-void-0 "^0.1.1" - -babel-plugin-transform-inline-consecutive-adds@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.1.2.tgz#5442e9f1c19c78a7899f8a4dee6fd481f61001f5" - -babel-plugin-transform-member-expression-literals@^6.8.4: - version "6.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.4.tgz#05679bc40596b91293401959aa1620ab1b2be437" - -babel-plugin-transform-merge-sibling-variables@^6.8.5: - version "6.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.5.tgz#03abdf107c61241913eb268ddede6d5bc541862c" - -babel-plugin-transform-minify-booleans@^6.8.2: - version "6.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.2.tgz#8451579f706e702c1e1ab2756de5c8ea369cf07c" - -babel-plugin-transform-property-literals@^6.8.4: - version "6.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.4.tgz#6ad311110b80a192a56efb5ddf4fe3ca6f7a61da" - dependencies: - esutils "^2.0.2" - -babel-plugin-transform-regexp-constructors@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.1.1.tgz#312ab7487cc88a1c62ee25ea1b6087e89b87799c" - -babel-plugin-transform-remove-console@^6.8.4: - version "6.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.4.tgz#41fddac19a729a4c3dd7ef2964eac07b096f9a8f" - -babel-plugin-transform-remove-debugger@^6.8.4: - version "6.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.4.tgz#f85704a08adaa71b55d77005b5b94e9b9df21f6e" - -babel-plugin-transform-remove-undefined@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.1.2.tgz#e1ebf51110f6b1e0665f28382ef73f95e5023652" - -babel-plugin-transform-simplify-comparison-operators@^6.8.4: - version "6.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.4.tgz#2aa24a262d664c8cb3e125a306c798d7a2de08d5" - -babel-plugin-transform-undefined-to-void@^6.8.2: - version "6.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.2.tgz#fe2b1d294eb05e87524eb93724dea6e2c3d66fa1" - -babel-polyfill@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" - dependencies: - babel-runtime "^6.22.0" - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-preset-babili@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/babel-preset-babili/-/babel-preset-babili-0.1.4.tgz#ad9d6651002f5bc3f07cab300781167f54724bf2" - dependencies: - babel-plugin-minify-builtins "^0.1.3" - babel-plugin-minify-constant-folding "^0.1.3" - babel-plugin-minify-dead-code-elimination "^0.1.7" - babel-plugin-minify-flip-comparisons "^0.1.2" - babel-plugin-minify-guarded-expressions "^0.1.2" - babel-plugin-minify-infinity "^0.1.2" - babel-plugin-minify-mangle-names "^0.1.3" - babel-plugin-minify-numeric-literals "^0.1.1" - babel-plugin-minify-replace "^0.1.2" - babel-plugin-minify-simplify "^0.1.2" - babel-plugin-minify-type-constructors "^0.1.2" - babel-plugin-transform-inline-consecutive-adds "^0.1.2" - babel-plugin-transform-member-expression-literals "^6.8.4" - babel-plugin-transform-merge-sibling-variables "^6.8.5" - babel-plugin-transform-minify-booleans "^6.8.2" - babel-plugin-transform-property-literals "^6.8.4" - babel-plugin-transform-regexp-constructors "^0.1.1" - babel-plugin-transform-remove-console "^6.8.4" - babel-plugin-transform-remove-debugger "^6.8.4" - babel-plugin-transform-remove-undefined "^0.1.2" - babel-plugin-transform-simplify-comparison-operators "^6.8.4" - babel-plugin-transform-undefined-to-void "^6.8.2" - lodash.isplainobject "^4.0.6" - -babel-register@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" - dependencies: - babel-core "^6.24.1" - babel-runtime "^6.22.0" - core-js "^2.4.0" - home-or-tmp "^2.0.0" - lodash "^4.2.0" - mkdirp "^0.5.1" - source-map-support "^0.4.2" - -babel-runtime@^6.22.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-template@^6.24.1, babel-template@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.25.0" - babel-types "^6.25.0" - babylon "^6.17.2" - lodash "^4.2.0" - -babel-traverse@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" - dependencies: - babel-code-frame "^6.22.0" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.25.0" - babylon "^6.17.2" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" - dependencies: - babel-runtime "^6.22.0" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babili@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babili/-/babili-0.1.2.tgz#77231b3977272394863936cb88bf7baf276f97f5" - dependencies: - babel-cli "^6.24.1" - babel-preset-babili "^0.1.2" - -babylon@^6.17.2: - version "6.17.4" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" - backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -850,6 +571,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.7" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.7.tgz#ddb048e50d9482790094c13eb3fcfc833ce7ab46" +body-parser@1.18.2, body-parser@^1.18.1: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + body-parser@^1.16.1: version "1.17.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.2.tgz#f8892abc8f9e627d42aedafbca66bf5ab99104ee" @@ -865,21 +601,6 @@ body-parser@^1.16.1: raw-body "~2.2.0" type-is "~1.6.15" -body-parser@^1.18.1: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" - on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" - body@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" @@ -1099,7 +820,7 @@ chalk@^2.0.0, chalk@^2.0.1: escape-string-regexp "^1.0.5" supports-color "^4.0.0" -chokidar@1.7.0, chokidar@^1.4.1, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@1.7.0, chokidar@^1.4.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -1125,12 +846,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -clean-css@3.4.27: - version "3.4.27" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.27.tgz#adef75b31c160ffa5d72f4de67966e2660c1a255" +clean-css@4.1.9: + version "4.1.9" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" dependencies: - commander "2.8.x" - source-map "0.4.x" + source-map "0.5.x" clean-css@4.1.x: version "4.1.7" @@ -1202,16 +922,10 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@2.11.x, commander@^2.8.1, commander@^2.9.0, commander@~2.11.0: +commander@2.11.x, commander@^2.9.0, commander@~2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" -commander@2.8.x: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -1288,10 +1002,6 @@ continuable-cache@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" -convert-source-map@^1.1.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" - cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -1304,7 +1014,7 @@ cookiejar@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" -core-js@^2.2.0, core-js@^2.4.0: +core-js@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" @@ -1420,7 +1130,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@2, debug@^2.1.0, debug@^2.1.1, debug@^2.2.0: +debug@2, debug@^2.1.0, debug@^2.2.0: version "2.6.8" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" dependencies: @@ -1444,12 +1154,18 @@ debug@2.6.7: dependencies: ms "2.0.0" -debug@2.6.9, debug@^2.6.0, debug@~2.6.7: +debug@2.6.9, debug@~2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" +debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1515,12 +1231,6 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" @@ -1529,9 +1239,9 @@ diff@^3.1.0, diff@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9" -diff@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" +diff@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" diffie-hellman@^5.0.0: version "5.0.2" @@ -1910,38 +1620,40 @@ express@4.15.3: utils-merge "1.0.0" vary "~1.1.1" -express@^4.15.4: - version "4.15.5" - resolved "https://registry.yarnpkg.com/express/-/express-4.15.5.tgz#670235ca9598890a5ae8170b83db722b842ed927" +express@^4.16.2: + version "4.16.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" dependencies: - accepts "~1.3.3" + accepts "~1.3.4" array-flatten "1.1.1" + body-parser "1.18.2" content-disposition "0.5.2" - content-type "~1.0.2" + content-type "~1.0.4" cookie "0.3.1" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.1" encodeurl "~1.0.1" escape-html "~1.0.3" - etag "~1.8.0" - finalhandler "~1.0.6" + etag "~1.8.1" + finalhandler "1.1.0" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" - parseurl "~1.3.1" + parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~1.1.5" - qs "6.5.0" + proxy-addr "~2.0.2" + qs "6.5.1" range-parser "~1.2.0" - send "0.15.6" - serve-static "1.12.6" - setprototypeof "1.0.3" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" statuses "~1.3.1" type-is "~1.6.15" - utils-merge "1.0.0" - vary "~1.1.1" + utils-merge "1.0.1" + vary "~1.1.2" extend@3, extend@^3.0.0, extend@~3.0.0: version "3.0.1" @@ -2020,9 +1732,9 @@ finalhandler@1.0.3, finalhandler@~1.0.3: statuses "~1.3.1" unpipe "~1.0.0" -finalhandler@~1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" dependencies: debug "2.6.9" encodeurl "~1.0.1" @@ -2067,9 +1779,9 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.2.0.tgz#9a5e3b9295f980b2623cf64fa238b14cebca707b" +form-data@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" dependencies: asynckit "^0.4.0" combined-stream "^1.0.5" @@ -2091,6 +1803,10 @@ forwarded@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + fresh@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" @@ -2113,10 +1829,6 @@ fs-extra@3.0.1: jsonfile "^3.0.0" universalify "^0.1.0" -fs-readdir-recursive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2233,10 +1945,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^9.0.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - globby@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" @@ -2267,14 +1975,10 @@ globule@^1.0.0: lodash "~4.17.4" minimatch "~3.0.2" -graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6: +graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" @@ -2352,13 +2056,6 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" @@ -2518,32 +2215,26 @@ interpret@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" -invariant@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ionic-angular@~3.5.*: - version "3.5.3" - resolved "https://registry.yarnpkg.com/ionic-angular/-/ionic-angular-3.5.3.tgz#31e2616fa91ca72ee59ce3c11da9ebdced59791a" +ionic-angular@3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/ionic-angular/-/ionic-angular-3.7.0.tgz#eafaeadddcb88adb6f04d37fda6b94cf9808b603" -ionic@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/ionic/-/ionic-3.12.0.tgz#f279f6fbd24237ce3113c416c685e70876090537" +ionic@3.13.2: + version "3.13.2" + resolved "https://registry.yarnpkg.com/ionic/-/ionic-3.13.2.tgz#98cdbd6ba41aeb8f8c2206ab8e1cfb858b5c58db" dependencies: - "@ionic/cli-utils" "1.12.0" - "@ionic/discover" "^0.3.1" + "@ionic/cli-utils" "1.13.1" + "@ionic/discover" "^0.3.3" chalk "^2.0.0" opn "^5.1.0" os-name "^2.0.1" rimraf "^2.6.2" semver "^5.3.0" - tslib "^1.7.1" + tslib "^1.8.0" ionicons@3.0.0: version "3.0.0" @@ -2553,6 +2244,10 @@ ipaddr.js@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" +ipaddr.js@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2753,10 +2448,6 @@ jschardet@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.0.tgz#a61f310306a5a71188e1b1acd08add3cfbb08b1e" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - json-loader@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" @@ -3129,10 +2820,6 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -3149,15 +2836,11 @@ lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" -lodash.some@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - lodash@^3.8.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.8.0, lodash@~4.17.4: +lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.8.0, lodash@~4.17.4: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3172,12 +2855,6 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -3208,18 +2885,18 @@ macos-release@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-1.1.0.tgz#831945e29365b470aa8724b0ab36c8f8959d10fb" -magic-string@0.19.1, magic-string@^0.19.0: - version "0.19.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.19.1.tgz#14d768013caf2ec8fdea16a49af82fc377e75201" - dependencies: - vlq "^0.2.1" - magic-string@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.16.0.tgz#970ebb0da7193301285fb1aa650f39bdd81eb45a" dependencies: vlq "^0.2.1" +magic-string@^0.19.0: + version "0.19.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.19.1.tgz#14d768013caf2ec8fdea16a49af82fc377e75201" + dependencies: + vlq "^0.2.1" + make-error@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.0.tgz#52ad3a339ccf10ce62b4040b708fe707244b8b96" @@ -3297,24 +2974,34 @@ mime-db@~1.29.0: version "1.29.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: version "2.1.16" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: mime-db "~1.29.0" +mime-types@~2.1.16: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + mime@1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" +mime@1.4.1, mime@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + mime@^1.3.4: version "1.3.6" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" -mime@^1.3.6: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -3652,7 +3339,7 @@ os-name@2.0.1, os-name@^2.0.1: macos-release "^1.0.0" win-release "^1.0.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -3663,14 +3350,6 @@ osenv@0, osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -3853,7 +3532,7 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -private@^0.1.6, private@~0.1.5: +private@~0.1.5: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -3889,13 +3568,20 @@ protractor@^5.1.1: webdriver-js-extender "^1.0.0" webdriver-manager "^12.0.6" -proxy-addr@~1.1.4, proxy-addr@~1.1.5: +proxy-addr@~1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" dependencies: forwarded "~0.1.0" ipaddr.js "1.4.0" +proxy-addr@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.5.2" + proxy-middleware@0.15.0, proxy-middleware@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/proxy-middleware/-/proxy-middleware-0.15.0.tgz#a3fdf1befb730f951965872ac2f6074c61477a56" @@ -3942,14 +3628,14 @@ qs@6.4.0, qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" -qs@6.5.0, qs@^6.4.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" - -qs@6.5.1: +qs@6.5.1, qs@^6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@^6.4.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -4106,10 +3792,6 @@ reflect-metadata@^0.1.10, reflect-metadata@^0.1.2: version "0.1.10" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" -regenerator-runtime@^0.10.0: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - regex-cache@^0.4.2: version "0.4.3" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" @@ -4283,11 +3965,9 @@ rollup-pluginutils@^1.5.2: estree-walker "^0.2.1" minimatch "^3.0.2" -rollup@0.42.0: - version "0.42.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.42.0.tgz#56e791b3a2f3dd7190bbb80a375675f2fe0f9b23" - dependencies: - source-map-support "^0.4.0" +rollup@0.49.2: + version "0.49.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.49.2.tgz#a18f07595cde3b11875c9fece45b25ad3b220d1a" rsvp@^3.0.21: version "3.6.2" @@ -4309,13 +3989,13 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" -rxjs@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.0.tgz#a7db14ab157f9d7aac6a56e655e7a3860d39bf26" +rxjs@5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.3.tgz#0758cddee6033d68e0fd53676f0f3596ce3d483f" dependencies: symbol-observable "^1.0.1" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -4414,9 +4094,9 @@ send@0.15.3: range-parser "~1.2.0" statuses "~1.3.1" -send@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/send/-/send-0.15.6.tgz#20f23a9c925b762ab82705fe2f9db252ace47e34" +send@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" dependencies: debug "2.6.9" depd "~1.1.1" @@ -4426,7 +4106,7 @@ send@0.15.6: etag "~1.8.1" fresh "0.5.2" http-errors "~1.6.2" - mime "1.3.4" + mime "1.4.1" ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" @@ -4441,14 +4121,14 @@ serve-static@1.12.3: parseurl "~1.3.1" send "0.15.3" -serve-static@1.12.6: - version "1.12.6" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.6.tgz#b973773f63449934da54e5beba5e31d9f4211577" +serve-static@1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" dependencies: encodeurl "~1.0.1" escape-html "~1.0.3" parseurl "~1.3.2" - send "0.15.6" + send "0.16.1" serviceworker-cache-polyfill@^4.0.0: version "4.0.0" @@ -4470,6 +4150,10 @@ setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.8" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" @@ -4490,10 +4174,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - slice-ansi@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" @@ -4566,13 +4246,7 @@ source-map@0.1.31: dependencies: amdefine ">=0.0.4" -source-map@0.4.x, source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: +source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -4582,6 +4256,20 @@ source-map@^0.1.41: dependencies: amdefine ">=0.0.4" +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -4714,19 +4402,19 @@ strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -superagent@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.6.0.tgz#eb679651057c3462199c7b902b696c25350e1b87" +superagent@^3.6.3: + version "3.7.0" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.7.0.tgz#bd58bfde2cbc5305adb9ccbb6dacba18408629d6" dependencies: component-emitter "^1.2.0" cookiejar "^2.1.0" - debug "^2.6.0" + debug "^3.1.0" extend "^3.0.0" - form-data "^2.1.1" + form-data "^2.3.1" formidable "^1.1.1" methods "^1.1.1" - mime "^1.3.6" - qs "^6.4.0" + mime "^1.4.1" + qs "^6.5.1" readable-stream "^2.0.5" supports-color@^2.0.0: @@ -4853,10 +4541,6 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-fast-properties@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - tough-cookie@~2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" @@ -4867,10 +4551,6 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - ts-loader@^2.0.3: version "2.3.2" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-2.3.2.tgz#b71b9f0d0062c791a654d462140718f9f7817665" @@ -4915,6 +4595,10 @@ tslib@^1.0.0, tslib@^1.7.1: version "1.7.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" +tslib@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.0.tgz#dc604ebad64bcbf696d613da6c954aa0e7ea1eb6" + tslint-eslint-rules@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba" @@ -4981,7 +4665,18 @@ typescript@2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.4.tgz#3d38321828231e434f287514959c37a82b629f42" -uglify-js@3.0.x, uglify-js@^3.0.23: +typescript@^2.3.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d" + +uglify-es@^3.1.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.1.5.tgz#63bae0fd4f9feeda417fee7c0ff685a673819683" + dependencies: + commander "~2.11.0" + source-map "~0.6.1" + +uglify-js@3.0.x: version "3.0.27" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.27.tgz#a97db8c8ba6b9dba4e2f88d86aa9548fa6320034" dependencies: @@ -5073,16 +4768,14 @@ utils-merge@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + uuid@^3.0.0, uuid@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" -v8flags@^2.0.10: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - v8flags@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.0.tgz#4be9604488e0c4123645def705b1848d16b8e01f" @@ -5100,6 +4793,10 @@ vary@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + verror@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" @@ -5120,10 +4817,6 @@ void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" -walkdir@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532" - watchpack@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" @@ -5171,9 +4864,9 @@ webpack-sources@^1.0.1: source-list-map "^2.0.0" source-map "~0.5.3" -webpack@^3.1.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.4.1.tgz#4c3f4f3fb318155a4db0cb6a36ff05c5697418f4" +webpack@^3.5.5: + version "3.8.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" @@ -5264,13 +4957,6 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -ws@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - ws@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" @@ -5278,7 +4964,7 @@ ws@1.1.2: options ">=0.0.5" ultron "1.0.x" -ws@^1.0.1: +ws@1.1.4, ws@^1.0.1: version "1.1.4" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" dependencies: @@ -5436,6 +5122,6 @@ zip-stream@^1.2.0: lodash "^4.8.0" readable-stream "^2.0.0" -zone.js@0.8.12: - version "0.8.12" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.12.tgz#86ff5053c98aec291a0bf4bbac501d694a05cfbb" +zone.js@0.8.17: + version "0.8.17" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.17.tgz#4c5e5185a857da8da793daf3919371c5a36b2a0b" From 375fb446da316e2425ed55743b56213f8c3431b9 Mon Sep 17 00:00:00 2001 From: chaw Date: Tue, 24 Oct 2017 10:44:27 +0800 Subject: [PATCH 10/19] [ISDK-82] some template enhancements --- .sourcemaps/main.js.map | 2 +- src/components/assessments/assessments.html | 3 +-- src/components/loadingMarker/loadingMarker.html | 4 +--- src/components/question/question.html | 4 +--- src/pages/activities/view/view.html | 13 +++++-------- src/pages/assessments/assessments.html | 11 +++++------ 6 files changed, 14 insertions(+), 23 deletions(-) diff --git a/.sourcemaps/main.js.map b/.sourcemaps/main.js.map index f6937966..8ec7b6f2 100644 --- a/.sourcemaps/main.js.map +++ b/.sourcemaps/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/shared/cache/cache.service.ts","../../src/services/character.service.ts","../../src/pages/activities/view/activities-view.page.ts","../../src/pages/assessments/assessments.page.ts","../../src/pages/assessments/group/assessments-group.page.ts","../../src/pages/settings/settings.page.ts","../../src/pages/events/download/events-download.page.ts","../../src/shared/utils/utils.service.ts","../../src/shared/window.ts","../../src/pages/registration/registration.page.ts","../../src/pages/levels/list/list.ts","../../node_modules/@angular/core/@angular lazy","../../src/app/messages.ts","../../src lazy","../../src/shared/request/request.service.ts","../../src/shared/notification/modal.component.ts","../../src/pages/reset-password/reset-password.ts","../../src/shared/translation/translation.service.ts","../../src/shared/validators/formValidator.ts","../../src/services/auth.service.ts","../../src/pages/tabs/tabs.page.ts","../../src/pages/activities/view/activities-view-modal.page.ts","../../src/pages/activities/list/popup.ts","../../src/pages/rankings/list/rankings.page.ts","../../src/pages/rankings/view/ranking-details.page.ts","../../src/pages/rankings/view/ranking-badges.ts","../../src/pages/settings/leaderboard/leaderboard-settings.page.ts","../../src/pages/settings/tutorial/tutorial.page.ts","../../src/pages/term-condition/term-condition.page.ts","../../src/pages/registration/register.page.ts","../../src/pages/events/view/events-view.page.ts","../../src/pages/events/download/events-preview.page.ts","../../src/pages/forget-password/forget-password.ts","../../src/pages/login/login.ts","../../src/pages/magic-link/magic-link.ts","../../src/pages/tabs/test.page.ts","../../src/pages/achievements/view/achievements-view.page.ts","../../src/pages/activities-classic/list/activities-classic-list.page.ts","../../src/pages/gallery/gallery.ts","../../src/services/level.service.ts","../../src/pages/events/checkin/event-checkin.page.ts","../../src/pages/team/team.ts","../../src/services/team.service.ts","../../src/app/main.ts","../../src/app/app.module.ts","../../src/shared/cache/cache.module.ts","../../src/shared/notification/notification.module.ts","../../src/shared/notification/notification.component.ts","../../src/app/app.component.ts","../../src/services/game.service.ts","../../node_modules/moment/locale ^/.//.*$","../../src/shared/notification/notification.service.ts","../../src/services/milestone.service.ts","../../src/services/activity.service.ts","../../src/services/submission.service.ts","../../src/services/assessment.service.ts","../../src/pages/activities/list/list.page.ts","../../src/services/achievement.service.ts","../../src/services/event.service.ts","../../src/shared/filepicker/filepicker.module.ts","../../src/shared/filepicker/file-preview.directive.ts","../../src/shared/utils/utils.module.ts","../../src/shared/testModules/test.module.ts","../../src/shared/testModules/pages/test/test.page.ts","../../src/shared/testModules/pages/test/test-start.page.ts","../../src/pages/spinwheel/celebration.page.ts","../../src/shared/testModules/test.directive.ts","../../src/shared/translation/translation.module.ts","../../src/components/questions/group-emitter.service.ts","../../src/shared/request/request.module.ts","../../src/shared/rxjs-operators.ts","../../src/services/session.service.ts","../../src/components/question-group/question-group.component.ts","../../src/components/event/event.component.ts","../../src/components/level/level.ts","../../src/components/loadingMarker/loadingMarker.ts","../../src/components/locker/locker.ts","../../src/components/member/member.ts","../../src/components/photo/photo.ts","../../src/pages/term-condition/term-content.component.ts","../../src/components/questions/file.ts","../../src/components/questions/oneof.ts","../../src/components/questions/text.ts","../../src/components/questions/multiple.ts","../../src/components/questions/feedback.ts","../../src/components/events/events.component.ts","../../src/pages/assessments/popup/items-popup.page.ts","../../src/pages/sidenav/sidenav.ts","../../src/pipes/timeago.ts","../../src/pipes/ucfirst.pipe.ts","../../src/pipes/truncate.pipe.ts","../../src/pipes/keep-html.pipe.ts","../../src/configs/config.ts","../../src/pages/events/list/list.page.ts","../../src/shared/filepicker/filepicker.service.ts"],"names":[],"mappings":"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gBAAgB,EAAE,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC,CAAC,CAAC;IAC5F,CAAC;IACH,kBAAC;AAAD,CAAC;AA5FY,WAAW;IADvB,iEAAU,EAAE;qCAGO,uFAAc;GAFrB,WAAW,CA4FvB;AA5FuB;;;;;;;;ACTxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"main.js","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Storage } from '@ionic/storage';\n\nimport { Cache } from '../app/cache';\n\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class CacheService {\n\n public localStorage: any;\n public bufferZone = {}; // temporary cached storage in service\n\n constructor(\n public storage: Storage\n ) {\n storage.ready().then(() => {\n console.log('Storage loaded.');\n this.read('*', true).then(content => this.bufferZone = content);\n });\n\n if (!localStorage) {\n throw new Error('Current browser does not support Local Storage');\n }\n this.localStorage = localStorage;\n }\n\n private key = '_app_cache';\n\n set(key, value) {\n return this.storage.set(key, value);\n }\n\n /**\n * get memory cached values by key\n * @param {object||string}\n */\n getCached(key) {\n if (this.bufferZone) {\n return this.bufferZone[key] || null;\n }\n return null;\n }\n\n /**\n * Write data into local storage\n * @param {string} path - path to store data\n * @param {any} content - data to store\n * @return {promise} \n */\n write(path: string, content: any) {\n this.bufferZone = _.set(this.bufferZone, path, content);\n\n return new Promise((resolve, reject) => {\n this.storage.set(this.key, this.bufferZone)\n .then(resolve, reject);\n });\n }\n\n /**\n * Read data into local storage\n * @param {string} path - path to read data\n * @return {promise} \n */\n read(path: string = '*', strict: boolean = false) {\n if (!strict) {\n return new Promise((resolve, reject) => {\n if (!this.bufferZone && path !== '*') {\n return resolve(null);\n }\n\n if (path === '*') {\n return resolve(this.bufferZone);\n }\n\n return resolve(_.get(this.bufferZone, path));\n });\n } else {\n return new Promise((resolve, reject) => {\n this.storage.get(this.key)\n .then((data: Cache) => {\n if (!data && path !== '*') {\n return resolve(null);\n }\n\n if (path === '*') {\n return resolve(data);\n }\n\n return resolve(_.get(data, path));\n }, reject);\n });\n }\n }\n\n public clear(): any {\n return this.storage.clear();\n }\n\n // public remove(cb): any;\n // public length(cb): any;\n // public keys(cb): any;\n // public forEach(cb): any;\n\n // pure localStorage implementation\n public setLocal(key: string, value: string | Boolean): void {\n this.localStorage[key] = value;\n }\n\n public getLocal(key: string): string {\n return this.localStorage[key] || false;\n }\n\n public setLocalObject(key: string, value: any): void {\n this.localStorage[key] = JSON.stringify(value);\n }\n\n public getLocalObject(key: string): any {\n return JSON.parse(this.localStorage[key] || '{}');\n }\n\n public removeLocal(key: string): any {\n this.localStorage.removeItem(key);\n }\n\n public clearLocal(cb): any {\n return cb(this.localStorage.clear());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/cache/cache.service.ts","import { Injectable } from '@angular/core';\n\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class CharacterService {\n charactersAPIEndpoint: any = 'api/characters.json';\n\n constructor(\n public cache: CacheService,\n public request: RequestService\n ) {}\n\n /**\n * Get character\n */\n getCharacter() {\n return this.request.get(this.charactersAPIEndpoint, {\n search: {\n game_id: this.cache.getLocalObject('game_id')\n }\n });\n }\n\n /**\n * Post character\n * @param {object} data\n */\n postCharacter(data) {\n return this.request.post(this.charactersAPIEndpoint, data, {\n 'Content-Type': 'application/json'\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/character.service.ts","import { Component } from '@angular/core';\nimport { ModalController, NavParams, NavController, AlertController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// pages\nimport { ActivitiesViewModalPage } from './activities-view-modal.page';\nimport { AssessmentsPage } from '../../assessments/assessments.page';\nimport { ActivityService } from '../../../services/activity.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// Others\nimport * as _ from 'lodash';\n\n@Component({\n templateUrl: './view.html'\n})\nexport class ActivitiesViewPage {\n achievements: any = {\n available: [],\n obtained: {},\n maxPoints: {}\n };\n activity: any = {};\n assessment: any = {};\n assessments: any = {};\n loadings = {\n submissions: false\n };\n submissions: Array = [];\n\n constructor(\n public activityService: ActivityService,\n public alertCtrl: AlertController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public modalCtrl: ModalController,\n public submissionService: SubmissionService\n ) {}\n\n ionViewWillEnter(): void {\n this.loadings.submissions = true;\n }\n\n // @TODO: use simple mock data for assessment first\n /**\n * on assessment implementation, to do list:\n * - load badges\n * - change icon display based on responded data format\n * - load submission into this.submissions\n * - change template view based on responded data format\n */\n ionViewDidEnter(): void {\n // assessment\n this.activity = this.activityService.normaliseActivity(this.navParams.get('activity') || {});\n this.assessments = this.activity.sequences || [];\n this.assessment = this.activity.assessment;\n\n // submission\n this.submissions = [];\n Observable.forkJoin(this.submissionService.getSubmissionsByReferences(this.activity.References)).subscribe(responses => {\n // turn nested array into single dimension array\n responses.forEach((submissions: Array) => {\n if (submissions.length > 0) {\n this.submissions = submissions.map(submission => {\n return this.submissionService.normalise(submission);\n });\n this.submissions = _.orderBy(this.submissions, 'created', 'desc'); // latest at top\n }\n });\n\n this.loadings.submissions = false;\n });\n\n // badges\n this.achievements = this.navParams.get('achievements');\n this.activity.badges = this.extractBadges();\n this.activity.badges.map((badge, index) => {\n if ((this.activity.id % 3) != 0) {\n badge.disabled = false;\n } else {\n badge.disabled = true;\n }\n });\n }\n\n // extract \"in progress\"\n inProgressSubmission() {\n let result = [];\n (this.submissions || []).forEach(submission => {\n if (submission.status === 'in progress') {\n result.push(submission);\n }\n });\n return result;\n }\n\n public extractBadges(): Array {\n let result = [];\n if (this.achievements.available && this.achievements.available.length > 0) {\n this.achievements.available.forEach(achievement => {\n if (achievement.Achievement.badge) {\n result.push({\n url: achievement.Achievement.badge,\n disabled: false\n });\n }\n });\n }\n return result;\n }\n\n /**\n * @description display activity detail modal page\n */\n openModal() {\n let detailModal = this.modalCtrl.create(ActivitiesViewModalPage, {activity: this.activity});\n detailModal.present();\n }\n\n /**\n * @name goAssessment\n * @description direct to assessment page of a selected activity\n * @param {Object} activity single activity object from the list of\n * activities respond from get_activities API\n * @param {Object} opts optional object with\n * - hasSubmission: to indicateif user is accessing a in\n * progress assessment\n */\n goAssessment(submission?, opts = { hasSubmission: false }) {\n if ((this.inProgressSubmission()).length > 0 && opts.hasSubmission === false) {\n let alert = this.alertCtrl.create({\n title: 'You have a submission in progress.',\n buttons: [\"Ok\"]\n });\n alert.present();\n } else if (opts.hasSubmission === true) {\n this.navCtrl.push(AssessmentsPage, {\n activity: this.activity,\n assessment: this.assessment,\n submissions: this.submissions,\n currentSubmission: submission\n });\n } else {\n this.navCtrl.push(AssessmentsPage, {\n activity: this.activity,\n assessment: this.assessment\n });\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/view/activities-view.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavParams, NavController, Navbar, LoadingController, ModalController, AlertController, Events } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n//services\nimport { AssessmentService } from '../../services/assessment.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { CharacterService } from '../../services/character.service';\nimport { GameService } from '../../services/game.service';\nimport { SubmissionService } from '../../services/submission.service';\nimport { TranslationService } from '../../shared/translation/translation.service';\n// pages\nimport { AssessmentsGroupPage } from './group/assessments-group.page'\nimport { ItemsPopupPage } from './popup/items-popup.page';\nimport { ActivitiesListPage } from '../activities/list/list.page';\n// Others\nimport { confirmMessages, errMessages, loadingMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'assessments-page',\n templateUrl: './assessments.html'\n})\nexport class AssessmentsPage {\n @ViewChild(Navbar) navbar: Navbar;\n\n activity: any = {};\n allItemsData: any = [];\n allowSubmit: boolean = false;\n answers: any = {};\n assessment: any = {};\n assessmentGroups: any = [];\n assessmentQuestions: any = [];\n combinedItems: any = [];\n discardConfirmMessage = confirmMessages.Assessments.DiscardChanges.discard;\n getCharacterID: any = this.cacheService.getLocal('character_id');\n getInitialItems: any = this.cacheService.getLocalObject('initialItems');\n gotNewItems: boolean = false;\n isEventSubmission: boolean = false;\n initialItemsCount: any = {};\n loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n newItemsCount: any = {};\n newItemsData: any = [];\n noItems: boolean = null;\n outputData: any = [];\n submissions: any = [];\n submissionUpdated: boolean = false; // event listener flag\n submitConfirmMessage = confirmMessages.Assessments.SubmitConfirmation.confirm;\n totalItems: any = [];\n\n constructor(\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cacheService: CacheService,\n public characterService: CharacterService,\n public events: Events,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public modalCtrl: ModalController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public translationService: TranslationService\n ) {\n this.activity = this.navParams.get('activity');\n if (!this.activity) {\n throw 'Fatal Error: Activity not available';\n }\n }\n\n ionViewWillEnter() {\n let loader = this.loadingCtrl.create();\n loader.present().then(() => {\n this.loadQuestions()\n .then(() => {\n loader.dismiss();\n }, err => {\n console.log('log::', err);\n })\n .catch((err) => {\n console.log(err);\n loader.dismiss();\n });\n });\n }\n\n /**\n * track if this page need to download assessment manually (extra load)\n */\n traceAssessmentProgress() {\n this.events.subscribe('assessment:changes', (submissionUpdated) => {\n this.submissionUpdated = true;\n });\n }\n\n /**\n * @description mapping assessments and submissions\n * @param {Object} submissions submissions\n * @param {Object} assessments assessments\n */\n mapSubmissionsToAssessment(submissions, assessments) {\n _.forEach(assessments, (group, i) => {\n _.forEach(group, (assessment, j) => {\n\n // normalise\n assessments[i][j] = assessment = this.assessmentService.normalise(assessment);\n\n _.forEach(assessment.AssessmentGroup, (assessmentGroup, k) => {\n _.forEach(assessmentGroup.questions, (question, l) => {\n // Inject empty answer fields\n // We will know thare are no submission when it is null\n assessments[i][j].AssessmentGroup[k].questions[l].answer = null;\n assessments[i][j].AssessmentGroup[k].questions[l].reviewerAnswer = null;\n\n // find submission\n _.forEach(submissions, (submission) => {\n // attach existing submission to assessment group it belongs to\n let group = this.assessmentGroups[i][j].AssessmentGroup[k];\n if (group.assessment_id === submission.assessment_id) {\n this.assessmentGroups[i][j].AssessmentGroup[k].submission = submission;\n }\n\n // find user answer\n _.forEach(submission.answer, (answer) => {\n if (answer.assessment_question_id === question.id) {\n assessments[i][j].AssessmentGroup[k].questions[l].answer = answer;\n }\n });\n\n // find reviewer feedback\n _.forEach(submission.review, (reviewerAnswer) => {\n if (reviewerAnswer.assessment_question_id === question.id) {\n assessments[i][j].AssessmentGroup[k].questions[l].reviewerAnswer = reviewerAnswer;\n }\n });\n });\n\n });\n\n // Summarise basic answer information\n // get total number of questions\n assessments[i][j].AssessmentGroup[k].totalRequiredQuestions = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required) {\n assessments[i][j].AssessmentGroup[k].totalRequiredQuestions += 1;\n }\n });\n\n // get total number of answered questions\n assessments[i][j].AssessmentGroup[k].answeredQuestions = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required && q.answer && q.answer !== null) {\n assessments[i][j].AssessmentGroup[k].answeredQuestions += 1;\n }\n });\n\n // get total number of feedback\n assessments[i][j].AssessmentGroup[k].reviewerFeedback = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n // If API response, the reviewer's answer and comment are empty,\n // front-end don't consider it as a feedback\n if (\n q.reviewerAnswer &&\n q.reviewerAnswer !== null &&\n !_.isEmpty(q.reviewerAnswer.answer) &&\n !_.isEmpty(q.reviewerAnswer.comment)\n ) {\n assessments[i][j].AssessmentGroup[k].reviewerFeedback += 1;\n }\n });\n\n // Set status\n // let status = assessments[i][j].AssessmentGroup[k].status = 'incomplete';\n let questionsStatus = [];\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required && q.answer !== null) {\n if (\n q.reviewerAnswer !== null &&\n assessmentGroup.submission.status !== 'pending approval' &&\n (q.reviewerAnswer.answer || q.reviewerAnswer.comment)\n ) {\n questionsStatus.push('reviewed');\n } else {\n questionsStatus.push('completed');\n }\n }\n\n if (!q.required && q.answer !== null) {\n if (\n q.reviewerAnswer !== null &&\n assessmentGroup.submission.status !== 'pending approval' &&\n (q.reviewerAnswer.answer || q.reviewerAnswer.comment)\n ) {\n questionsStatus.push('reviewed');\n } else {\n questionsStatus.push('completed');\n }\n }\n\n if (q.answer === null) {\n questionsStatus.push('incomplete');\n }\n });\n\n assessments[i][j].AssessmentGroup[k].status = 'incomplete';\n if (_.every(questionsStatus, (v) => {\n return (v === 'completed');\n })) {\n assessments[i][j].AssessmentGroup[k].status = 'completed';\n }\n if (_.includes(questionsStatus, 'reviewed')) {\n assessments[i][j].AssessmentGroup[k].status = 'reviewed';\n }\n });\n });\n });\n\n return assessments;\n }\n\n /**\n * pull submission when required, when:\n * - no submission available in the redirection from activity-view/event-view pages\n * - [save] clicked & saved from assessment-group.page.ts\n *\n * @return {Promise}\n */\n public pullSubmissions(): Promise {\n return new Promise((resolve, reject) => {\n // 2nd batch API requests (get_submissions)\n Observable.forkJoin(\n this.submissionService.getSubmissionsByReferences(\n this.activity.References\n ))\n .subscribe(allSubmissions => {\n // allSubmissions - response format: [ // context_ids\n // [ // assessment group 1\n // assessment1,\n // assessment2,\n // ...\n // ],\n // [ // assessment group 2\n // assessment1,\n // assessment2,\n // ...\n // ],\n // ...\n // ]\n let submissions = [];\n _.forEach(allSubmissions, group => {\n _.forEach(group, (submission) => {\n submissions.push(this.submissionService.normalise(submission));\n });\n });\n\n // check if a submission is specified\n let currentSubmission = this.navParams.get('currentSubmission');\n let filteredSubmissions = [];\n\n submissions.forEach(subm => {\n if (currentSubmission && currentSubmission.id === subm.id) {\n filteredSubmissions.push(subm);\n }\n });\n let hasInProgress = _.find(submissions, {status: 'in progress'}); // 'in progress' never > 1\n let isNew = (!currentSubmission && (filteredSubmissions.length === 0 || !_.isEmpty(hasInProgress)));\n\n if (isNew) { // new submission\n this.submissions = !_.isEmpty(hasInProgress) ? [hasInProgress] : [];\n } else if (!isNew && hasInProgress) { // resume 'in progress'\n filteredSubmissions.push(hasInProgress);\n this.submissions = filteredSubmissions;\n } else if (currentSubmission) { // display current submission\n filteredSubmissions.push(currentSubmission);\n this.submissions = filteredSubmissions;\n }\n resolve(submissions);\n }, (err) => {\n console.log('err', err);\n reject(err);\n });\n });\n }\n\n loadQuestions(): Promise {\n return new Promise((resolve, reject) => {\n\n // get_assessments request with 'assessment_id' & 'structured'\n let getAssessment = (assessmentId) => {\n return this.assessmentService.getAll({\n search: {\n assessment_id: assessmentId,\n structured: true\n }\n });\n };\n\n // Congregation of assessment ids to fulfill get_assessments API's param requirement\n let tasks = [];\n _.forEach(this.activity.References, (reference) => {\n if (\n reference.Assessment &&\n reference.Assessment.id\n ) {\n return tasks.push(getAssessment(reference.Assessment.id));\n }\n });\n\n /**\n * merging submission into question inside of assessment array objects\n * - set question statuses (quantity of total answered)\n * - set submission button status\n */\n let preprocessAssessmentSubmission = () => {\n this.assessmentGroups = this.mapSubmissionsToAssessment(\n this.submissions,\n this.assessmentGroups\n );\n\n // Only allow submit when all required question have answered.\n _.forEach(this.assessmentGroups, groups => {\n _.forEach(groups, assessment => {\n let groupWithAnswers = 0;\n _.forEach(assessment.AssessmentGroup, group => {\n // console.log('group.answeredQuestions', group.answeredQuestions);\n // console.log('group.totalRequiredQuestions', group.totalRequiredQuestions);\n if (group.answeredQuestions >= group.totalRequiredQuestions) {\n groupWithAnswers += 1;\n }\n });\n // console.log('groupWithAnswers', groupWithAnswers, _.size(assessment.AssessmentGroup));\n if (groupWithAnswers >= _.size(assessment.AssessmentGroup)) {\n this.allowSubmit = true;\n }\n });\n });\n\n _.forEach(this.submissions, submission => {\n if (\n submission.status === 'pending review' ||\n submission.status === 'pending approval' ||\n submission.status === 'published' || // moderated type (reviews & published)\n submission.status === 'done' // survey type\n ) {\n this.allowSubmit = false;\n }\n });\n\n resolve({\n assessmentGroups: this.assessmentGroups,\n submissions: this.submissions\n });\n };\n\n // first batch API requests (get_assessments)\n Observable.forkJoin(tasks)\n .subscribe(\n (assessments: any) => {\n this.assessmentGroups = assessments;\n this.submissions = this.navParams.get('submissions');\n\n // check if this is from single submission view\n let currentSubmission = this.navParams.get('currentSubmission');\n if (currentSubmission) {\n this.submissions = [currentSubmission];\n }\n\n // pull new when submission is updated or currentSubmission is empty\n if (this.submissionUpdated || !currentSubmission) {\n this.pullSubmissions().then(res => {\n preprocessAssessmentSubmission();\n }, err => {\n reject(err);\n });\n this.submissionUpdated = false;\n } else {\n preprocessAssessmentSubmission();\n }\n },\n (err) => {\n console.log('err', err);\n reject(err);\n }\n );\n });\n }\n\n\n /**\n * submit answer and change submission status to done\n */\n doSubmit() {\n let loading = this.loadingCtrl.create({\n content: 'Loading...'\n });\n\n loading.present().then(() => {\n let tasks = [];\n _.forEach(this.submissions, (submission) => {\n if (\n submission &&\n submission.assessment_id &&\n submission.context_id &&\n submission.id\n ) {\n tasks.push(this.assessmentService.submit({\n Assessment: {\n id: submission.assessment_id,\n context_id: submission.context_id,\n in_progress: false\n },\n AssessmentSubmission: {\n id: submission.id\n },\n AssessmentSubmissionAnswer: _.map(submission.answer, (answ) => {\n if (answ && answ.assessment_question_id && answ.answer) {\n return {\n assessment_question_id: answ.assessment_question_id,\n answer: answ.answer\n }\n }\n })\n }));\n }\n });\n\n Observable\n .forkJoin(tasks)\n .subscribe(\n (assessments: any) => {\n loading.dismiss().then(_ => {\n this.allowSubmit = false;\n this.popupAfterSubmit();\n });\n },\n err => {\n loading.dismiss().then(_ => {\n console.log('err', err);\n });\n }\n );\n });\n }\n\n clickSubmit() {\n const confirm = this.alertCtrl.create({\n title: 'Submit evidence',\n message: this.submitConfirmMessage,\n buttons: [\n {\n text: 'Okay',\n handler: () => {\n this.doSubmit();\n }\n },\n {\n text: 'Cancel',\n handler: () => {\n console.log('Submit cancelled');\n }\n }\n ]\n });\n confirm.present();\n }\n\n // items popup\n popupAfterSubmit(){\n const loading = this.loadingCtrl.create({\n content: this.loadingMessages\n });\n const alert = this.alertCtrl.create({\n title: 'Submission Successful',\n buttons: [\n {\n text: 'OK',\n handler: () => {\n this.navCtrl.setRoot(ActivitiesListPage); // dashboard page\n }\n }\n ]\n });\n\n // get initial items\n _.forEach(this.getInitialItems, element => {\n let id = element.id;\n if(!this.initialItemsCount[id]){\n this.initialItemsCount[id] = 0;\n }\n this.initialItemsCount[id]++;\n });\n // get latest updated items data api call\n loading.present();\n\n this.gameService.getItems({\n character_id: this.getCharacterID\n })\n .subscribe(\n data => {\n this.newItemsData = data.Items;\n _.forEach(data.Items, (element, index) => {\n let id = element.id;\n if(!this.newItemsCount[id]){\n this.newItemsCount[id] = 0;\n }\n this.newItemsCount[id]++;\n });\n // compare with previous get_characters() results and generate final index value array result\n _.forEach(this.newItemsCount, (element, id) => {\n if(!this.initialItemsCount[id]){\n this.totalItems.push({ 'count': element, 'id': id });\n }else {\n let diffCountVal = element - this.initialItemsCount[id];\n if(diffCountVal > 0){\n this.totalItems.push({ 'count': diffCountVal, 'id': id });\n }\n }\n });\n\n _.forEach(this.totalItems, (element, index) => {\n element.id = parseInt(element.id);\n });\n\n this.allItemsData = _.intersectionBy(this.newItemsData, this.totalItems, 'id');\n // get the final object with item occurance count value\n let groupData = _.groupBy(this.totalItems, 'id');\n if(this.allItemsData.length === 0){\n this.gotNewItems = false;\n this.cacheService.setLocal('gotNewItems', this.gotNewItems);\n loading.onDidDismiss(() => {\n alert.present(); // redirect to dashboard page\n });\n loading.dismiss();\n } else {\n _.map(this.allItemsData, (ele) => {\n this.combinedItems.push(_.extend({count: groupData[ele.id] || []}, ele));\n });\n // display items on dashboard page\n this.gotNewItems = true;\n this.cacheService.setLocal('gotNewItems', this.gotNewItems);\n this.cacheService.setLocalObject('allNewItems', this.combinedItems);\n loading.onDidDismiss(() => {\n this.navCtrl.setRoot(ActivitiesListPage);\n });\n loading.dismiss();\n }\n },\n err => {\n loading.dismiss().then(() => {\n console.log('Err: ', err);\n });\n }\n );\n }\n gotoAssessment(assessmentGroup, activity) {\n this.navCtrl.push(AssessmentsGroupPage, {\n assessmentGroup,\n activity,\n submission: assessmentGroup.submission, // use back the one back from ActivityViewPage\n submissions: this.submissions,\n event: this.navParams.get('event')\n }).then(() => {\n this.traceAssessmentProgress();\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/assessments.page.ts","import { Component } from '@angular/core';\nimport { NavParams, NavController, AlertController, LoadingController, Events } from 'ionic-angular';\nimport { FormBuilder, Validators, FormGroup, FormControl, FormArray } from '@angular/forms';\n\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { ChoiceBase, QuestionBase, Submission, AssessmentService } from '../../../services/assessment.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'assessments-group-page',\n templateUrl: './assessments-group.html',\n})\nexport class AssessmentsGroupPage {\n activity: any;\n answers: any; // to render & display submitted answers\n assessment: any;\n assessmentGroup: any;\n cacheKey: any; // to render & display stored\n canUpdateInput: boolean = false;\n event: any;\n formGroup: any;\n inProgress: any;\n published: boolean = false;\n questions: any = [];\n submission: Submission;\n\n constructor(\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public events: Events,\n public fb: FormBuilder,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams\n ) {}\n\n ionViewDidEnter() {\n // navigate from activity page\n this.activity = this.navParams.get('activity') || {};\n\n // navigate from event page\n this.event = this.navParams.get('event') || {};\n if (!_.isEmpty(this.event)) {\n this.activity = this.event;\n }\n\n this.assessment = this.activity.assessment; // required for context_id\n this.cacheKey = `assessment.group.${this.assessment.context_id}`;\n\n this.assessmentGroup = this.navParams.get('assessmentGroup') || {};\n this.submission = this.navParams.get('submission') || {};\n\n // preset key used for caching later (locally and remote data)\n this.canUpdateInput = this.isInputEditable(this.submission);\n // this.published = this.assessmentService.isPublished(this.submissions);\n this.questions = this.assessmentGroup.questions;\n this.questions = this.mapQuestionsFeedback(this.questions, this.submission);\n this.formGroup = this.retrieveProgress(\n this.buildFormGroup(this.questions),\n this.formInProgressAnswer(this.submission)\n );\n }\n\n updateSubmission() {\n this.events.publish('assessment:changes', {\n changed: true\n });\n }\n\n /**\n * @description check answers are editable\n * Must define submissions first\n * @type {boolen}\n */\n public isInputEditable = (submission):boolean => {\n if (_.isEmpty(submission) || submission.status === 'in progress') {\n return true;\n }\n return false;\n }\n\n /**\n * @description use proper context id based on situation\n *\n * @type {array}\n */\n public mapQuestionsFeedback = (questions, submission):any => {\n if (_.isEmpty(submission) || _.isEmpty(submission.review) || submission.status !== 'published') {\n return questions;\n }\n\n _.forEach(submission.review, (review) => {\n _.forEach(questions, (question, idx) => {\n if (review.assessment_question_id === question.id) {\n // text type\n if (question.type === 'text') {\n questions[idx].review_answer = review;\n }\n\n // oneof type\n if (question.type === 'oneof') {\n questions[idx].review_answer = review;\n _.forEach(question.choices, (choice, key) => {\n if (choice.id == review.answer && choice.id == question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (you and reviewer)';\n }\n if (choice.id != review.answer && choice.id == question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (you)';\n }\n if (choice.id == review.answer && choice.id != question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (reviewer)';\n }\n });\n }\n }\n });\n });\n return questions;\n }\n\n /**\n * @description use proper context id based on situation\n * event's checkin, use event context_id (reference array in get_event)\n * assessment submission, use context_id from get_activity\n *\n * @type {number}\n */\n public getSubmissionContext = ():number => {\n // if event object is available\n if (this.event) {\n return this.event.context_id;\n }\n\n // if \"event\" not available, use assessment instead\n return this.assessment.context_id;\n }\n\n /**\n * check the questions was answered\n * @return {boolen} passed all check\n */\n isAllQuestionsAnswered = () => {\n let passed = true;\n _.forEach(this.formGroup, fg => {\n // check formGroup.validation & each field (answer & comment) validity\n if (!fg.valid && (!fg.controls.answer.valid && !fg.controls.comment.valid)) {\n passed = false;\n }\n });\n return passed;\n };\n\n /**\n * turn a collection of questions into angular's FormGroup to share among components\n * @param {array} questions list of questions from a question group (Assessment group)\n */\n buildFormGroup = (questions) => {\n let result: any = {};\n\n this.questions.forEach(question => {\n let currentAnswer = question.answer || {};\n let group = {\n answer: question.required ?\n new FormControl(currentAnswer.answer || '', Validators.required) : new FormControl(currentAnswer.answer || ''),\n comment: question.required ?\n new FormControl(currentAnswer.comment || '', Validators.required) : new FormControl(currentAnswer.comment || '')\n };\n\n // render choices' FormGroup\n let choices = {};\n if (question.choices && question.type === 'multiple') {\n question.choices.forEach(choice => {\n let answer = (question.choices) ? question.choices[choice.id] : false;\n choices[choice.id] = new FormControl(answer);\n });\n group['choices'] = new FormGroup(choices);\n }\n\n result[question.id] = new FormGroup(group);\n });\n\n return result;\n };\n\n /**\n * turn answer into answer submission format (which is formatted for POST to post_assessment API)\n * @param {object} submission single submission object retrieve from previous page/view\n * @return {object} formatted submission answer\n */\n public formInProgressAnswer(submission): boolean | Submission {\n if (_.isEmpty(submission)) {\n return false;\n }\n\n let answers = {};\n submission.answer.forEach(ans => {\n answers[ans.assessment_question_id] = {\n assessment_question_id: ans.assessment_question_id,\n answer: ans.comment || ans.answer\n }\n });\n\n return {\n Assessment: {\n id: submission.assessment_id,\n context_id: this.getSubmissionContext()\n },\n AssessmentSubmissionAnswer: answers\n };\n }\n\n /**\n * @description store assessment answer/progress locally\n */\n storeProgress = () => {\n let answers = {};\n _.forEach(this.formGroup, (question, id) => {\n let values = question.getRawValue(),\n answer = {\n assessment_question_id: id,\n answer: values.answer || values.comment,\n\n // store it if choice answer is available or skip\n choices: (!_.isEmpty(values.choices)) ? values.choices : null\n };\n\n // set empty string to remove answer\n answer.answer = (answer.answer) ? answer.answer : '';\n answers[id] = answer;\n });\n\n // final step - store submission locally\n let submission = {\n Assessment: {\n id: this.activity.assessment.id,\n context_id: this.activity.assessment.context_id\n },\n AssessmentSubmissionAnswer: answers\n };\n this.submission = submission;\n\n // local cache key\n this.cache.setLocal(this.cacheKey, JSON.stringify(submission));\n return submission;\n };\n\n /**\n * @description retrieve saved progress from localStorage\n */\n retrieveProgress = (questions: Array, answers?) => {\n let cachedProgress = answers || {}; //this.cache.getLocalObject(this.cacheKey);\n\n let newQuestions = questions;\n let savedProgress = cachedProgress.AssessmentSubmissionAnswer;\n\n if (!_.isEmpty(savedProgress)) {\n\n // index \"id\" is set as question.id in @Function buildFormGroup above\n _.forEach(newQuestions, (question, id) => {\n // check integrity of saved answer (question might get updated)\n if (savedProgress[id] && savedProgress[id].assessment_question_id == id) {\n newQuestions[id] = this.setValueWith(question, savedProgress[id]);\n }\n });\n }\n return newQuestions;\n };\n\n /**\n * @description set value to each FormControl differently based on type:\n * - \"text\", \"oneof\" & \"file\" using just \"answer\" field\n * - \"multiple\" answer is stored into \"choices\" FormControl instead\n * @param {FormGroup} question FormGroup for a question\n * @param {Object} answers answer [choices object || string answer]\n */\n public setValueWith(question, answers) {\n if (!_.isEmpty(answers.choices)) {\n question.controls.choices.setValue(answers.choices);\n } else {\n question.controls.answer.setValue(answers.answer || '');\n }\n return question;\n }\n\n displayAlert(opts) {\n return this.alertCtrl.create(opts);\n }\n\n /**\n * @description initiate save progress and return to previous page/navigation stack\n */\n save() {\n let self = this,\n loading = this.loadingCtrl.create({\n content: 'Loading...'\n }),\n // to provide a more descriptive error message (if available)\n failAlert = this.alertCtrl.create({\n title: 'Fail to submit.'\n });\n\n let saveProgress = () => {\n this.updateSubmission();\n\n loading.present().then(() => {\n self.assessmentService.save(self.storeProgress()).subscribe(\n response => {\n loading.dismiss().then(() => {\n self.navCtrl.pop();\n });\n },\n reject => {\n loading.dismiss().then(() => {\n failAlert.data.title = reject.msg || failAlert.data.title;\n failAlert.present().then(() => {\n console.log('Unable to save', reject);\n });\n });\n }\n );\n });\n };\n\n let confirmBox = this.alertCtrl.create({\n message: 'You have not completed all required questions. Do you still wish to Save?',\n buttons: [\n {\n text: 'Yes',\n handler: () => {\n saveProgress();\n }\n },\n {\n text: 'No',\n handler: () => {\n //return false;\n }\n }\n ]\n });\n\n if (!this.isAllQuestionsAnswered()) {\n confirmBox.present();\n } else {\n saveProgress();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/group/assessments-group.page.ts","import { Component } from '@angular/core';\nimport { App, NavController, MenuController, LoadingController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../shared/cache/cache.service';\n// pages\nimport { LeaderboardSettingsPage } from '../settings/leaderboard/leaderboard-settings.page';\nimport { LoginPage } from '../../pages/login/login';\nimport { TutorialPage } from '../settings/tutorial/tutorial.page';\nimport { TermConditionPage } from '../term-condition/term-condition.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n\n@Component({\n selector: 'settings-page',\n templateUrl: 'settings.html'\n})\nexport class SettingsPage {\n helpline: string = \"help@practera.com\";\n logoutMessage: any = loadingMessages.Logout.logout;\n settings: any = [];\n\n constructor(\n public cache: CacheService,\n public menuCtrl: MenuController,\n public navCtrl: NavController,\n public loadingCtrl: LoadingController,\n public translationService: TranslationService,\n public appCtrl: App\n ) {}\n\n getUserEmail() {\n return this.cache.getLocalObject('email') || '';\n }\n goLeaderBoardSettings(){\n this.navCtrl.push(LeaderboardSettingsPage);\n }\n goToTutorial() {\n this.navCtrl.push(TutorialPage);\n }\n goToTermConditions() {\n this.navCtrl.push(TermConditionPage);\n }\n logout() {\n let loader = this.loadingCtrl.create({\n spinner: 'hide',\n content: this.logoutMessage\n });\n loader.present().then(() => {\n this.cache.clear().then(() => {\n localStorage.clear();\n window.location.reload(); // the reason of doing this is because of we need to refresh page content instead of API data cache issue occurs\n loader.dismiss();\n this.navCtrl.push(LoginPage);\n });\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/settings.page.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams } from 'ionic-angular';\n\n// Pages\nimport { EventsPreviewPage } from './events-preview.page';\n// Others\nimport { FilepickerService } from '../../../shared/filepicker/filepicker.service';\nimport { UtilsService } from '../../../shared/utils/utils.service';\nimport { WindowRef } from '../../../shared/window';\n\n@Component({\n templateUrl: './events-download.html'\n})\nexport class EventsDownloadPage {\n event: any = {};\n files: any = [];\n\n constructor(\n public fs: FilepickerService,\n public navCtrl: NavController,\n public params: NavParams,\n public win: WindowRef,\n public utils: UtilsService\n ) {}\n\n ionViewDidEnter() {\n this.event = this.params.get('event');\n this.files = [];\n\n if (this.event && this.event.files) {\n this.files = this.event.files;\n }\n\n this.files.map(file => {\n // zip file type is not viewable in filestack preview\n file.icon = this.utils.getIcon(file.type)\n });\n }\n\n /**\n * preview file with filestack plugin\n * if it is a zip filetype, download the file instead.\n *\n * @param {object} file single file from files array return from get_events in event list page\n */\n view(file) {\n if (this.utils.isCompressed(file.type)) {\n let win = this.win.nativeWindow;\n let openedWindow = win.open(file.url, '_blank');\n } else {\n this.navCtrl.push(EventsPreviewPage, {file: file});\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/download/events-download.page.ts","import { Injectable } from '@angular/core';\n\nconst zipMime = [\n 'application/x-compressed',\n 'application/x-zip-compressed',\n 'application/zip',\n 'multipart/x-zip',\n];\n\n@Injectable()\nexport class UtilsService {\n\n getIcon(mimetype: string) {\n let result: string = '';\n\n if (zipMime.indexOf(mimetype) >= 0) {\n result = 'fa-zip';\n\n // set icon to different document type (excel, word, powerpoint, audio, video)\n } else if (mimetype.indexOf('audio/') >= 0) {\n result = 'fa-sound';\n } else if (mimetype.indexOf('image/') >= 0) {\n result = 'fa-image';\n } else if (mimetype.indexOf('text/') >= 0) {\n result = 'fa-text';\n } else if (mimetype.indexOf('video/') >= 0) {\n result = 'fa-movie';\n } else {\n switch (mimetype) {\n case 'application/pdf':\n result = 'fa-pdf';\n break;\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n result = 'fa-word';\n break;\n case 'application/excel':\n case 'application/vnd.ms-excel':\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n case 'application/x-excel':\n case 'application/x-msexcel':\n result = 'fa-excel';\n break;\n case 'application/mspowerpoint':\n case 'application/vnd.ms-powerpoint':\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n case 'application/x-mspowerpoint':\n result = 'fa-powerpoint';\n break;\n default:\n result = 'fa-file';\n break;\n }\n }\n\n return result;\n }\n\n isCompressed(type: string) {\n if (zipMime.indexOf(type) >= 0) {\n return true;\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/utils/utils.service.ts","import { Injectable } from '@angular/core';\n\nfunction _window():any {\n return window;\n}\n\n@Injectable()\nexport class WindowRef {\n get nativeWindow(): any {\n return _window();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/window.ts","import { Component, OnInit } from '@angular/core';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { NavController, NavParams, AlertController } from 'ionic-angular';\nimport { Observable } from 'rxjs';\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages'; \n// services\nimport { AuthService } from '../../services/auth.service';\nimport { RequestService } from '../../shared/request/request.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\n// pages\nimport { LoginPage } from '../../pages/login/login';\n@Component({\n template: ``,\n})\nexport class RegistrationPage implements OnInit {\n user: Object = {\n email: null,\n key: null\n };\n term: String;\n content: SafeResourceUrl;\n public prefixUrl: any = this.request.getPrefixUrl();\n // loadinbg & error message variables\n public verifyFailedErrMessage = errMessages.Registration.verifyFailed.verifyfailed;\n constructor(\n public nav: NavController,\n public params: NavParams,\n public authService: AuthService,\n public sanitizer: DomSanitizer,\n public notification: NotificationService,\n public translationService: TranslationService,\n public alertCtrl: AlertController,\n public cache: CacheService,\n public request: RequestService) {}\n displayError(errorMessage?: any): void {\n let alert = this.alertCtrl.create({\n title: 'Invalid registration code',\n subTitle: errorMessage || 'Registration Code is invalid, please contact our tech support for assistance.',\n buttons: [{\n text: 'OK',\n handler: () => {\n alert.dismiss().then(() => {\n this.nav.setRoot(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n })\n return false;\n }\n }]\n });\n alert.present();\n }\n ngOnInit() {\n // check if email and activation_code are provided in the url/params\n if (!decodeURIComponent(this.params.get('email')) || !this.params.get('key')) {\n this.displayError();\n } else {\n let email = decodeURIComponent(this.params.get('email')),\n key = this.params.get('key');\n this.authService.verifyRegistration({\n email: email,\n key: key\n }).subscribe(res => {\n this.cache.setLocal('user.email', email);\n this.cache.setLocal('user.registration_key', key);\n this.cache.setLocal('user.id', res.data.User.id);\n this.user = {\n email: email,\n key: key\n };\n Observable.forkJoin([\n this.cache.write('user.email', email),\n this.cache.write('user.registration_key', key),\n this.cache.write('user.id', res.data.User.id)\n ]).subscribe(responds => {\n console.log('RespondsVerify::', responds);\n });\n }, err => {\n console.log(err);\n this.displayError(err.msg);\n });\n }\n }\n ionViewDidEnter(): void {\n this.authService.getTerms().subscribe(res => {\n console.log(\"terms data: \", res);\n this.term = res.terms_description;\n this.content = this.sanitizer.bypassSecurityTrustResourceUrl(this.prefixUrl + res.terms_url);\n });\n this.params.get('test');\n }\n ionViewDidLoad(): void {\n let category = [];\n /*if (document.URL.indexOf(\"?\") !== -1) {\n let splitURL = document.URL.split(\"?\");\n let splitParams = splitURL[1].split(\"&\");\n console.log(splitURL, splitParams);\n splitParams.forEach(param => {\n let singleURLParam = param.split('=');\n let urlParameter = {\n 'name': singleURLParam[0],\n 'value': singleURLParam[1]\n };\n category.push(urlParameter);\n });\n }*/\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/registration/registration.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController, Platform } from 'ionic-angular';\nimport { Http } from '@angular/http';\n\n// Services\nimport { LevelService } from '../../../services/level.service';\n\n@Component({\n selector: 'levels-list-page',\n templateUrl: 'list.html'\n})\nexport class LevelsListPage {\n _mock = [\n {\n id: 1,\n name: 'Rookie'\n },\n {\n id: 2,\n name: 'Cookie'\n }\n ];\n levels = [];\n\n constructor(\n public navCtrl: NavController,\n public levelService: LevelService,\n public platform: Platform,\n public toastCtrl: ToastController\n ) {\n platform.ready().then(() => {});\n }\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData(refresher = null) {\n return this.levelService.getLevels()\n .then((levels: any) => {\n this.levels = levels;\n if (refresher) {\n refresher.complete();\n }\n })\n .catch((err) => {\n this._error(err);\n console.log('err', err);\n if (refresher) {\n refresher.complete();\n }\n });\n }\n\n doRefresh(refresher) {\n this._pullData(refresher);\n // @TODO Remove it when API work\n this.levels = this._mock;\n }\n\n ionViewWillEnter() {\n this._pullData();\n // @TODO Remove it when API work\n this.levels = this._mock;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/levels/list/list.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 176;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/core/@angular lazy\n// module id = 176\n// module chunks = 0","export const confirmMessages = {\n Assessments: {\n DiscardChanges: {\n \"discard\": \"Are you sure you want to discard all changes?\"\n },\n SubmitConfirmation: {\n \"confirm\": \"Are you sure you want to submit this evidence?\"\n }\n }\n}\nexport const errMessages = {\n Activities: {\n activities: {\n \"empty\": \"Whoops... no activity has been setup ...\"\n },\n achievements: {\n \"empty\": \"Whoops... no achievement has been setup ...\"\n },\n assessments: {\n \"empty\": \"Whoops... no assessment has been setup ...\"\n }\n },\n DirectLink: {\n \"mismatch\": \"Oops... The link to log you in appears to be broken. Please login by typing your email and password.\"\n },\n Events: {\n bookEvents: {\n \"book\": \"Whoops, booking of an event has failed, please try again later.\"\n },\n cancelBooking: {\n \"cancel\": \"Whoops, we could not cancel your booking for this event, please try again later.\"\n },\n events: {\n \"empty\": \"Whoops... no event has been setup ...\"\n },\n filter: {\n \"empty\": \"There are no scheduled events available. Please check back later.\",\n \"noBookings\": \"You have no bookings. Tap on 'Browse' and book an event now to enhance your skills.\",\n \"noAttended\": \"You have not attended any events yet.\"\n }\n },\n General: {\n loading: {\n \"load\": \"Whoops, a connection error occurred. Please try again later.\"\n },\n empty: {\n \"empty\": \"Whoops... no data has been setup ...\"\n }\n },\n Login: {\n \"login\": \"Oops... Invalid email or password, please type it again.\"\n },\n PasswordValidation: {\n mismatch: {\n \"mismatch\": \"You must enter matching passwords. Please Try again.\"\n },\n minlength: {\n \"minlength\": \"The minimum length allowed for a password is 8 characters.\"\n }\n },\n Registration: {\n mismatch: {\n \"mismatch\": \"The passwords you have entered do not match each other. Please enter the same password.\"\n },\n error: {\n \"error\": \"Sorry, something has gone wrong in processing your registration. Please try again or contact \" // after the \"contact\", the content will be a variable, please check with Registration/model.ts file to view detail\n },\n invalidUser: {\n \"account\": \"Whoops... You do not have a account. To have one set up please contact \" // after the \"contact\", the content will be a variable, please check with Registration/model.ts file to view detail\n },\n noPassword: {\n \"password\": \"Whoops... Sorry, we have been unable to register you. You must enter a valid password.\"\n },\n alreadyRegistered: {\n \"registered\": \"You have already registered. Please type the email address and password you registered with to login.\"\n },\n verifyFailed: {\n \"verifyfailed\": \"Sorry, verification failed, please resend your email and password.\"\n }\n },\n ResetPassword: {\n resetLoginFailed: {\n \"failed\": \"Whoops, we were unable to reset your password. Please try again.\"\n },\n invalidLink: {\n \"invalid\": \"Oops... The log in link is broken. You will be redirected to the login page. Try again with your username and password.\"\n }\n },\n TermConditions: {\n disagreement: {\n \"noAccepted\": \"You must agree to the Terms and Conditions.\"\n },\n verifyFailed: {\n \"verifyfailed\": \"Oops... Registration verification has failed. Please try again later.\"\n }\n }\n}\nexport const generalVariableMessages = {\n helpMail: {\n \"email\": \"help@support.com\"\n }\n}\nexport const loadingMessages = {\n Login: {\n \"login\": \"Logging in ...\"\n },\n LoadingSpinner: {\n \"loading\": \"Loading ...\"\n },\n Logout: {\n \"logout\": \"See you next time\"\n },\n SendingEmail: {\n \"send\": \"Sending email to us ...\" \n },\n SentMessage: { // the reason why this message has been divided into two parts, because of we have a variable (${this.email}) in the middle of message\n \"partOne\": \"We have sent an email to\",\n \"partTwo\": \"with a link to log into the system - please check your inbox. If you haven't received an email in a few minutes please check the address you entered and your spam folder.\"\n },\n SuccessRegistration: {\n \"successRegistration\": \"Your password has been successfully set. You will now be logged in.\"\n },\n SuccessResetPassword: {\n \"successResetPassword\": \"Password has been changed successfully. Logging in now.\"\n },\n VerifyUser: {\n \"verify\": \"Verifying user identity ...\"\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/messages.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 219;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src lazy\n// module id = 219\n// module chunks = 0","import { Injectable, Optional } from '@angular/core';\nimport { Http, Response, Headers, RequestOptions, RequestOptionsArgs, URLSearchParams } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\nimport * as _ from 'lodash';\nimport { CacheService } from '../../shared/cache/cache.service';\n\n// Definition configure for API request\n// This ONLY definition of class, any changed of value will no effect.\n// Please configuring on `configs/config.ts`.\nexport class RequestServiceConfig {\n appKey = '';\n prefixUrl = 'http://local.practera.com/'\n}\n\n@Injectable()\nexport class RequestService {\n private appkey: string;\n private prefixUrl: string;\n\n private apikey: string;\n private timelineID: number;\n\n constructor (\n @Optional() config: RequestServiceConfig,\n private http: Http,\n private cacheService: CacheService\n ) {\n // Inject appKey and prefixUrl when RequestServiceConfig loaded\n if (config) {\n this.appkey = config.appKey;\n this.prefixUrl = config.prefixUrl;\n }\n }\n\n /**\n * Return current prefixUrl\n * @param {String} prefixUrl\n */\n public getPrefixUrl(){\n return this.prefixUrl;\n }\n\n /**\n * Return current appKey\n * @param {String} appKey\n */\n public getAppkey(){\n return this.appkey;\n }\n\n /**\n * Error handle for API response\n * @param {Error} error\n */\n private handleError (error) {\n let errorFrom = {\n api: 'SERVER_ERROR',\n },\n currentError: any = error.json();\n if (typeof error !== 'object') {\n throw 'Unable to process API respond!';\n }\n if (error.status === 0) { // client unrecoverable error encountered\n currentError.frontendCode = errorFrom.api;\n } else {\n let errorBody = error.json();\n currentError.frontendCode = errorBody.data || errorBody.error;\n }\n return Observable.throw(currentError);\n }\n\n // Inject required fields to header of API request\n appendHeader(customHeader: Object = {\n 'Content-Type': 'application/json',\n 'apikey': null\n }) {\n let headers = new Headers(customHeader);\n\n // Inject apiKey from cached\n let apiKey = this.cacheService.getCached('apikey') ||\n this.cacheService.getLocalObject('apikey');\n if (!_.isEmpty(apiKey)) {\n headers.set('apikey', apiKey);\n }\n\n // Inject timelineID from cached\n let timelineId = this.cacheService.getCached('timelineID') ||\n this.cacheService.getLocalObject('timelineID');\n if (timelineId) {\n headers.set('timelineID', timelineId);\n }\n\n // Inject appKey from config\n if (!_.isUndefined(this.appkey)) {\n headers.set('appkey', this.appkey);\n }\n return headers;\n }\n\n // Set API request options\n setOptions(options) {\n let result = new RequestOptions({ headers: this.appendHeader() });\n let timelineId = this.cacheService.getLocal('timelineID');\n\n let params = new URLSearchParams();\n if (timelineId) {\n params.set('timelineID', timelineId);\n }\n\n if (options && options.search) {\n _.each(options.search, (value, key) => {\n params.set(key, value);\n });\n }\n result.search = params;\n\n return result;\n }\n\n /**\n * Send GET request to server\n * @param {String} endPoint\n * @param {Object} options\n */\n get(endPoint: string = '', options?: any) {\n let opt = this.setOptions(options);\n\n return this.http.get(this.prefixUrl + endPoint, opt)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n /**\n * Send POST request to server\n * @param {String} endPoint\n * @param {Object} data\n * @param {Object} header\n */\n post(endPoint: string, data: any, header = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }) {\n let options = new RequestOptions({ headers: this.appendHeader(header) });\n return this.http.post(this.prefixUrl + endPoint, data, options)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n /**\n * Send DELETE request to server\n * @param {String} endPoint\n * @param {Object} header\n */\n delete(endPoint: string, header?:Object) {\n let options = new RequestOptions({ headers: this.appendHeader(header) });\n return this.http.delete(this.prefixUrl + endPoint, options)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n // Extract response data and convert it to JSON\n extractData(res: Response) {\n let body = res.json();\n return body.data || {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/request/request.service.ts","import { Component } from '@angular/core';\nimport { NavParams, ViewController } from 'ionic-angular';\n\n@Component({\n selector: 'modal',\n template: `\n \n \n \n \n \n {{ context.title }}\n \n
\n \n\t\t
\n\n

\n
{{ context.score }}
\n\n \n\n \n
\n `\n})\nexport class ModalComponent {\n\n context;\n\n constructor(\n public params: NavParams,\n public viewCtrl: ViewController\n ) {\n this.context = this.params.get('context');\n }\n\n ngOnInit() {}\n\n dismiss() {\n this.viewCtrl.dismiss();\n }\n\n gotoScreen(path) {\n this.dismiss();\n\n // if ($state.current.name != route || route !== '') {\n // $state.go(route);\n // }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/modal.component.ts","import { Component, NgZone, OnInit } from '@angular/core';\nimport { NavController, ViewController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ResetpasswordModelPage } from '../../pages/resetpassword-model/resetpassword-model';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-reset-password',\n templateUrl: 'reset-password.html'\n})\nexport class ResetPasswordPage implements OnInit {\n\n emailVal: string;\n keyVal: string;\n\n invalidLinkErrMessage = errMessages.ResetPassword.invalidLink.invalid;\n isLandscaped: boolean = false;\n isPwdMatch: boolean = false;\n minLengthCheck: boolean = true;\n milestone_id: string;\n password: string;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n resetPasswordLoginFailedMessage: any = errMessages.ResetPassword.resetLoginFailed.failed;\n resetPwdFormGroup: any;\n successResetPasswordMessage: any = loadingMessages.SuccessResetPassword.successResetPassword;\n verify_password: string;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n verifyUserMessage = loadingMessages.VerifyUser.verify;\n windowHeight: number = window.innerHeight / 3;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public formBuilder: FormBuilder,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslationService,\n public viewCtrl: ViewController\n ) {\n // validation for both password values: required & minlength is 8\n this.resetPwdFormGroup = formBuilder.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n })\n }\n /**\n * Detect user device type (mobile or desktop) on initial page load\n * Purpose: Initially page loaded, this peice code will detect user screen\n whether is mobile or desktop device (including iPad).\n * @param {}\n * @return A calculated ratio value plus screen innerWidth value to determine\n user screen is mobile device or desktop device. If device is mobile\n device, ngOnInit() will disable landscape mode for mobile device\n */\n ngOnInit() {\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad ResetpasswordPage');\n }\n ionViewWillEnter() {\n this.verifyKeyEmail();\n }\n /**\n * to verify user is whether typed or clicked the email link\n * Purpose: if user is typed the email link key and email, user is not allowed\n to veiw the reset password page and display one error hint screen\n for user. As long as user clicked email link from mailbox, user is\n enabled to view the reset password page\n * @param { key, email }\n * @return if user clicked email link, return reset password page, otherwise,\n return error hint screen\n */\n verifyKeyEmail(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n this.keyVal = key;\n this.emailVal = email;\n const loading = this.loadingCtrl.create({\n content: this.verifyUserMessage\n });\n loading.present();\n this.authService.verifyUserKeyEmail(key, email)\n .subscribe(data => {\n loading.dismiss();\n this.verifySuccess = true;\n console.log(\"valueTrue: \" + this.verifySuccess);\n },\n err => {\n loading.dismiss();\n this.verifySuccess = false;\n console.log(\"valueFalse: \" + this.verifySuccess);\n setTimeout(() => {\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n }, 5000);\n });\n }\n /**\n * to update password in db\n * Purpose: store new password for user\n * @param { key, email, password, verify_password }\n * @return if API request is passed (status code: 200), user password updated\n successfully, otherwise, error hint popup to indicate user password\n update failed\n */\n updatePassword(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n const loading = this.loadingCtrl.create({\n content: this.successResetPasswordMessage\n });\n loading.present().then(() => {\n this.authService.resetUserPassword(key, email, this.password, this.verify_password).subscribe(data => {\n // loading.dismiss();\n // this.navCtrl.push(LoginPage);\n this.authService.loginAuth(email, this.password)\n .subscribe(data => {\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n this.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n loading.dismiss().then(() => {\n this.loginError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n });\n }\n // after password set, auto login error alertbox\n loginError(error) {\n const alertLogin = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.resetPasswordLoginFailedMessage,\n buttons: ['Close']\n });\n alertLogin.present();\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/reset-password/reset-password.ts","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { i18nEN } from './assets/i18n-en';\nimport { i18nCN } from './assets/i18n-cn'; \n@Injectable()\nexport class TranslationService {\n constructor(public translate: TranslateService,){\n translate.addLangs([\"en\", \"cn\"]);\n translate.setDefaultLang(\"en\");\n translate.use(\"en\");\n }\n isTranslated(checkStatus){\n return checkStatus == true ? this.translate.use(\"cn\") : this.translate.use(\"en\")\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.service.ts","import { FormControl } from '@angular/forms';\n\nexport class FormValidator {\n static isValidEmail(formCtrl: FormControl){\n var regexValue = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(formCtrl.value);\n if(regexValue) {\n return null;\n }\n return { \"inValidEmail\": true }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/validators/formValidator.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\nimport { Http, Headers, URLSearchParams, RequestOptions } from '@angular/http';\n@Injectable()\nexport class AuthService {\n appkey: any = this.request.getAppkey();\n prefixUrl: any = this.request.getPrefixUrl();\n AUTH_ENDPOINT: any = this.prefixUrl + 'api/auths.json?action=';\n\n constructor(\n public request: RequestService,\n public http: Http\n ) {}\n\n headerData() {\n let headers = new Headers();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n headers.append('appkey', this.appkey);\n return headers;\n }\n\n getTerms() {\n let options = new RequestOptions({headers: this.headerData()});\n return this.http.get(this.prefixUrl+'api/registration_details.json', options)\n .map(res => res.json());\n }\n\n verifyRegistration(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `email=${data.email}`,\n `key=${data.key}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n register(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `password=${data.password}`,\n `user_id=${data.user_id}`,\n `key=${data.key || 'thisissamplekey'}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n loginAuth(email, password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `data[User][email]=${email}`,\n `data[User][password]=${password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'authentication', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n forgotPassword(email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('email', email);\n return this.http.post(this.AUTH_ENDPOINT+'forgot_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n verifyUserKeyEmail(key, email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n resetUserPassword(key, email, password, verify_password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`,\n `password=${password}`,\n `verify_password=${verify_password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n magicLinkLogin(auth_token){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('auth_token', auth_token);\n return this.http.post(this.prefixUrl+'api/auths.json?', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n getUser() {\n return this.request.get('api/users.json');\n }\n\n isAuthenticated() {\n return true;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/auth.service.ts","import { Component } from '@angular/core';\n\n// Pages\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { RankingsPage } from '../rankings/list/rankings.page';\nimport { SettingsPage } from '../settings/settings.page';\nimport { TestPage } from './test.page';\nimport { EventsListPage } from '../events/list/list.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\n\n@Component({\n templateUrl: 'tabs.html',\n providers: []\n})\nexport class TabsPage {\n // this tells the tabs component which Pages\n // should be each tab's root Page\n ranking: any = RankingsPage;\n // ranking: any = TestPage;\n dashboard: any = ActivitiesListPage;\n settings: any = SettingsPage;\n events: any = EventsListPage;\n\n constructor(\n public translationService: TranslationService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/tabs.page.ts","import { Component } from '@angular/core';\nimport { ViewController, NavParams } from 'ionic-angular';\n\n@Component({\n template: `\n \n \n \n \n \n {{activityData.name}}\n \n \n \n \n

{{ activityData.name }}

\n\n
\n\n

{{ activityData.description || 'No descriptions available.' }}

\n
\n\n \n \n Download\n \n
\n `\n})\n\nexport class ActivitiesViewModalPage {\n activity: any = {};\n activityData: Object = {};\n\n constructor(\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {\n }\n\n ionViewDidEnter(): void {\n this.activity = this.navParams.get('activity');\n this.activityData = this.activity.Activity;\n console.log(this.activity.Activity);\n }\n\n dismiss() {\n let data = { 'foo': 'bar' };\n this.viewCtrl.dismiss(data);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/view/activities-view-modal.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslateService } from '@ngx-translate/core';\n\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n//Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\n\n@Component({\n selector: 'activity-list-popup',\n templateUrl: 'popup.html'\n})\nexport class ActivityListPopupPage {\n\n achievementData: any = null;\n achievementName: string;\n achievementsLoadingErr: any = errMessages.General.loading.load;\n achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n badgeUrl: string;\n description: string;\n enableData: boolean = null;\n loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n points: string;\n unlock_id: any;\n\n constructor(\n public achievementService: AchievementService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {\n this.unlock_id = this.navParams.get('unlock_id');\n // console.log('Unlock id value: ', this.unlock_id);\n }\n\n ionViewWillEnter(){\n let loader = this.loadingCtrl.create({\n content: this.loadingMessage\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.achievementsLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let nothingLoaded = this.toastCtrl.create({\n message: this.achievementsEmptyDataErr,\n duration: 4000,\n position: 'bottom'\n });\n loader.present().then(() => {\n this.achievementService.getAll()\n .subscribe(\n (data) => {\n if (data.length > 0) {\n this.enableData = true;\n this.achievementData = data.find(res => res.Achievement.id === this.unlock_id).Achievement;\n this.achievementName = this.achievementData.name;\n this.badgeUrl = this.achievementData.badge;\n this.description = this.achievementData.description;\n this.points = this.achievementData.points;\n loader.dismiss().then(() => {\n console.log(this.achievementData);\n });\n } else {\n this.enableData = false;\n loader.dismiss().then(() => {\n nothingLoaded.present();\n });\n }\n },\n (err) => {\n this.enableData = false;\n loader.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n )\n });\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/popup.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { GameService } from '../../../services/game.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'rankings-list-page',\n templateUrl: 'rankings.html'\n})\nexport class RankingsPage {\n emptyErrorMessage: any = errMessages.General.loading.load;\n listRankingData: any = [];\n loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n myRankingData: any = [];\n rankingData: any = [];\n totalData: any = [];\n\n constructor(\n public alertCtrl: AlertController,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n ionViewWillEnter(){\n this.RankingData();\n }\n RankingData(){\n const loading = this.loadingCtrl.create({\n content: this.loadingMessages\n });\n const emptyDataAlert = this.alertCtrl.create({\n title: 'Sorry, No data has been found',\n message: this.emptyErrorMessage,\n buttons: ['Close']\n });\n loading.present();\n // @TODO remove later\n let gameId = this.cacheService.getLocalObject('game_id');\n this.gameService.getCharacters(gameId)\n .subscribe((characters) => {\n // Now only have one character per project\n let me = characters.Characters[0];\n this.gameService.getRanking(gameId, me.id)\n .subscribe(\n results => {\n loading.dismiss().then(() => {\n this.totalData = results;\n this.rankingData = this.totalData;\n // We only have 1 character\n if(this.totalData.MyCharacters){\n this.myRankingData = this.totalData.MyCharacters[0] || [];\n }else {\n this.myRankingData = [];\n }\n this.listRankingData = this.totalData.Characters;\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log('err', err);\n emptyDataAlert.present();\n });\n }\n );\n },\n err => {\n loading.dismiss().then(() => {\n console.log('Error: ', err.msg);\n emptyDataAlert.present();\n });\n });\n }\n goRankingDetail(myRanking){\n this.navCtrl.push(RankingDetailsPage, {\n myRanking: myRanking\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/list/rankings.page.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingBadgesPage } from './ranking-badges';\n@Component({\n selector: 'rankings-details-page',\n templateUrl: 'ranking-details.html'\n})\nexport class RankingDetailsPage {\n public userAchievementsData: any = [];\n public achievementBadgeImage = '../assets/img/default/default-badge.png';\n public achievementName = 'Achievement';\n public totalPoints = 0;\n public myRank: any= {};\n\n public emptyAchievementMessage = errMessages.Activities.achievements.empty;\n public loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n public emptyErrorMessage: any = errMessages.General.loading.load;\n constructor(public navCtrl: NavController,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public params: NavParams,\n public achievementService: AchievementService){}\n\n ionViewWillEnter() {\n this.myRank = this.params.get('myRanking');\n this.totalPoints = this.myRank.experience_points;\n\n let loader = this.loadingCtrl.create();\n loader.present().then(() => {\n this.userAchievements()\n .then(() => {\n loader.dismiss();\n }, err => {\n console.log('log::', err);\n });\n });\n\n }\n userAchievements(): Promise {\n return new Promise((resolve, reject) => {\n this.achievementService.getAchievements()\n .subscribe(\n (data) => {\n console.log('achievemnts', data);\n if (data) {\n // Filter achievemnts\n _.forEach(data.Achievement, element => {\n if(element.visibility !== 2){\n this.userAchievementsData.push(element);\n }\n });\n }\n resolve();\n },\n (err) => {\n console.log(\"Error: \", err);\n reject(err);\n }\n );\n });\n }\n goToBadgeDetailsPage(achievementData){\n let goRankingBadgesPopup = this.modalCtrl.create(RankingBadgesPage, { achievement: achievementData });\n goRankingBadgesPopup.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-details.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages'; \nimport * as _ from 'lodash';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n@Component({\n selector: 'ranking-badges',\n templateUrl: 'ranking-badges.html'\n})\nexport class RankingBadgesPage {\n public currentAchievement: any = null;\n public badgeUrl: string = '../assets/img/default/default-badge.png';\n public description: string = \"No Description Yet ..\";\n public points: number = 0;\n public achievementName: string = \"Achievement\";\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n public achievementsLoadingErr: any = errMessages.General.loading.load;\n public achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n constructor(public viewCtrl: ViewController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public loadingCtrl: LoadingController,\n public achievementService: AchievementService,\n public translationService: TranslationService){\n this.currentAchievement = this.navParams.get('achievement');\n console.log(\"currentAchievement: \", this.currentAchievement);\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-badges.ts","import { Component } from '@angular/core';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\n\n@Component({\n selector: 'leaderboard-settings-page',\n templateUrl: 'leaderboard-settings.html'\n})\nexport class LeaderboardSettingsPage {\n isHide: boolean = false;\n useremail: string = this.cacheService.getLocalObject('email') || '';\n username: string = this.cacheService.getLocalObject('name') || '';\n\n constructor(\n public cacheService: CacheService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/leaderboard/leaderboard-settings.page.ts","import { Injectable, Component, ViewChild } from '@angular/core';\nimport { NavController, LoadingController, Slides } from 'ionic-angular';\n\n// Pages\nimport { ActivitiesListPage } from '../../activities/list/list.page';\n\n@Injectable()\n@Component({\n selector: 'tutorial-page',\n templateUrl: 'tutorial.html'\n})\nexport class TutorialPage {\n @ViewChild(Slides) slides: Slides;\n\n indexCounter: number = 0;\n hideNextButton: boolean = false;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n goDashbaord() {\n this.navCtrl.setRoot(ActivitiesListPage);\n }\n goPrev() {\n this.slides.slidePrev();\n this.hideNextButton = false;\n }\n goNext() {\n this.slides.slideNext();\n this.slides.isEnd() == true ? this.hideNextButton = true : this.hideNextButton = false;\n // console.log(this.hideNextButton);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/tutorial/tutorial.page.ts","import { Component, Input } from '@angular/core';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { NavController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\n// pages\nimport { RegisterPage } from '../registration/register.page';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\n\n@Component({\n selector: 'term-condition',\n templateUrl: 'term-condition.html'\n})\nexport class TermConditionPage {\n @Input('content') content?: SafeResourceUrl;\n @Input('user') user: any;\n\n agreed:boolean = false;\n checkAccessMethod: boolean = false;\n disagreeErrMessage = errMessages.TermConditions.disagreement.noAccepted;\n helpEmailMessage = generalVariableMessages.helpMail.email;\n verifyFailedErrMessage = errMessages.TermConditions.verifyFailed.verifyfailed;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public nav: NavController,\n public notificationService: NotificationService,\n public translationService: TranslationService,\n ) {}\n\n accessMethod(){\n return (window.location.href.indexOf('?do=') > -1) ? this.checkAccessMethod = true : this.checkAccessMethod = false\n }\n displayError(errorMessage?: any): void {\n let alert = this.alertCtrl.create({\n title: 'Invalid registration code',\n subTitle: errorMessage,\n buttons: [{\n text: 'Close'\n }]\n });\n alert.present();\n }\n backToSAccountPage() {\n this.nav.popToRoot();\n }\n ionViewDidEnter() {\n console.log(this.user);\n }\n agree(user): void {\n if (this.agreed === true) {\n this.nav.push(RegisterPage, user);\n } else {\n this.notificationService.present(this.disagreeErrMessage);\n }\n }\n /**\n * verify if params from url is allowed to proceed with registration\n */\n verify(): void {\n this.authService.verifyRegistration({\n key: 'test',\n password: 'test'\n }).subscribe(\n res => {\n console.log(res);\n },\n err => {\n this.notificationService.present(this.verifyFailedErrMessage);\n },\n () => {\n this.nav.push(TabsPage);\n }\n );\n }\n /**\n * toggle Read & confirm to proceed next registration page\n */\n toggleAgree(): void {\n this.agreed = !this.agreed;\n }\n navToRegister(): void {\n if (this.agreed === true) {\n console.log(this.nav.getViews());\n }\n }\n onTermError(err): void {\n const supportEmail = this.helpEmailMessage;\n if ((err.data || {}).msg) {\n //@TODO: implement error handling\n console.log({title: \"Unable to register\", template: `Something went wrong, please contact ${supportEmail}.`});\n } else if (err.data.msg.indexOf('already registered') != -1) {\n console.log({\n title: \"Account already registered\",\n template: \"Please log in, or click 'forgot password'\"\n });\n } else {\n console.log({\n title: \"Invalid registration link\",\n template: `Please check your email again, or contact ${supportEmail}`\n });\n }\n }\n // temporary fix for direct signin\n signIn(): void {\n this.nav.push(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-condition.page.ts","import { Component, ViewChild, OnInit, Inject } from '@angular/core';\nimport { NgForm, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NavController, ViewController, AlertController, LoadingController, NavParams } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\nimport { TranslationService } from '../../shared/translation/translation.service';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\nconst supportEmail = generalVariableMessages.helpMail.email;\n\n@Component({\n selector: 'register',\n templateUrl: 'register.html',\n})\nexport class RegisterPage implements OnInit {\n @ViewChild('registrationForm') registrationForm: NgForm;\n\n changeContent: boolean = false;\n clickSuspended: boolean = false;\n invalidUserErrMessage: any = errMessages.Registration.invalidUser.account;\n isPwdMatch: boolean = false;\n milestone_id: string;\n minLengthCheck: boolean = true;\n noPasswordErrMessage: any = errMessages.Registration.noPassword.password;\n password: string;\n passwordMismatchErrMessage: any = errMessages.Registration.mismatch.mismatch;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n pwdMacthBool: boolean = false;\n regForm: any;\n registrationErrMessage: any = errMessages.Registration.error.error;\n registeredErrMessage: any = errMessages.Registration.alreadyRegistered.registered;\n submitted: boolean = false;\n successRegistrationLoading: any = loadingMessages.SuccessRegistration.successRegistration;\n user: any = {\n password: '',\n verify_password: ''\n };\n verify_password: string;\n verifyFailedErrMessage = errMessages.Registration.verifyFailed.verifyfailed;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n\n constructor(\n @Inject(FormBuilder) fb: FormBuilder,\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cache: CacheService,\n public gameService: GameService,\n public loading: LoadingController,\n public milestone: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public notificationService: NotificationService,\n public viewCtrl: ViewController,\n public translationService: TranslationService,\n ) {\n // validation for both password values: required & minlength is 8\n this.regForm = fb.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n });\n }\n\n ngOnInit() {}\n\n displayAlert(message) {\n return this.alertCtrl.create({\n title: 'Test',\n message: message,\n buttons: ['OK']\n });\n }\n onSubmit(form: NgForm):void {\n let self = this;\n self.submitted = true;\n function onRegError(err) {\n if (err.frontendErrorCode === 'SERVER_ERROR') {\n throw 'API endpoint error';\n }\n let message = this.registrationErrMessage + `${supportEmail}`;\n if (err && err.data && err.data.msg) {\n switch (err.data.msg) {\n case 'Invalid user':\n message = this.invalidUserErrMessage + `${supportEmail}`;\n break;\n case 'No password':\n message = this.noPasswordErrMessage;\n break;\n case 'User already registered':\n message = this.registeredErrMessage;\n break;\n }\n }\n self.displayAlert(message).present();\n self.submitted = false;\n }\n\n function onFinally() {\n //@TODO: log something maybe\n // self.navCtrl.push(TabsPage);\n console.log('Final step - log something here');\n }\n if (this.user.password !== this.user.verify_password) {\n this.notificationService.alert({\n title: 'Incorrect Password',\n subTitle: this.passwordMismatchErrMessage,\n buttons: ['Close']\n });\n } else {\n const loading = this.loading.create({\n dismissOnPageChange: true,\n content: this.successRegistrationLoading\n });\n // registration api call: to let user set password and complete registration process\n loading.present().then(() => {\n this.authService.register({\n email: this.cache.getLocal('user.email'),\n key: this.cache.getLocal('user.registration_key'),\n user_id: this.cache.getLocal('user.id'),\n password: this.regForm.get('password').value\n }).subscribe(regRespond => {\n //@TODO: set user data\n regRespond = regRespond.data;\n console.log(regRespond);\n this.cache.setLocalObject('apikey', regRespond.apikey);\n this.cache.setLocalObject('timelineID', regRespond.Timeline.id);\n this.cache.setLocal('gotNewItems', false);\n // after passed registration api call, we come to post_auth api call to let user directly login after registred successfully\n this.authService.loginAuth(this.cache.getLocal('user.email'), this.regForm.get('password').value)\n .subscribe(\n data => {\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cache.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get user data after registration and login\n self.authService.getUser()\n .subscribe(\n data => {\n console.log(data);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after registration and login\n self.milestone.getMilestones()\n .subscribe( data => {\n loading.dismiss().then(() => {\n // console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cache.setLocalObject('milestone_id', data.data[0].id);\n self.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n );\n }, onRegError, onFinally);\n });\n }\n }\n setRegistrationData(data) {\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cache.set(key, datum));\n });\n cacheProcesses.push(this.cache.set('timelineID', data.Timeline.id));\n this.cache.setLocal('timelineID', data.Timeline.id);\n return Observable.from(cacheProcesses);\n }\n goToLogin() {\n this.cache.clear().then(() => {\n this.navCtrl.push(LoginPage);\n });\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/registration/register.page.ts","import { Component, Output, EventEmitter } from '@angular/core';\nimport { Tabs, NavParams, NavController, AlertController, LoadingController, ActionSheetController, ToastController } from 'ionic-angular';\n\n// services\nimport { AssessmentService } from '../../../services/assessment.service';\nimport { EventService } from '../../../services/event.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { AssessmentsGroupPage } from '../../assessments/group/assessments-group.page';\nimport { AssessmentsPage } from '../../assessments/assessments.page';\nimport { EventCheckinPage } from '../checkin/event-checkin.page';\nimport { EventsDownloadPage } from '../download/events-download.page';\nimport { EventsListPage } from '../list/list.page';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as moment from 'moment';\n\nconst terms = {\n booked: 'Booked'\n};\n@Component({\n templateUrl: './events-view.html'\n})\nexport class EventsViewPage {\n booked_text: string = 'Booked';\n bookEventErrMessage: any = errMessages.Events.bookEvents.book;\n bookingStatus: string = '';\n cancelBookingErrMessage: any = errMessages.Events.cancelBooking.cancel;\n completedSubmissions: boolean = false;\n event: any = {};\n justBooked: boolean = false;\n loadings: any = { checkin: true };\n submissions: Array = [];\n\n constructor(\n public actionSheetCtrl: ActionSheetController,\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.event = navParams.get('event');\n }\n\n public availability(event): string {\n return (event.isBooked)? terms.booked : event.remaining_capacity + ' of ' + event.capacity + ' seats available';\n }\n\n ionViewWillEnter() {\n this.loadings.checkin = true;\n this.submissions = []; // reset submissions\n\n if (this.event.References) {\n this.event = Object.assign(this.event, this.extractAssessment(this.event.References));\n }\n\n if (this.event) {\n this.bookingStatus = this.availability(this.event);\n }\n }\n\n ionViewDidEnter() {\n this.completedSubmissions = false;\n this.submissionService.getSubmissions({\n search: {\n context_id: this.event.context_id\n }\n }).subscribe(res => {\n this.loadings.checkin = false;\n res.forEach(submission => {\n submission = this.submissionService.normalise(submission);\n this.submissions.push(submission);\n if (submission.status === 'done') {\n this.completedSubmissions = true;\n }\n });\n }, (err) => {\n this.loadings.checkin = false;\n console.log(err);\n });\n }\n\n /**\n * @name extractAssessment\n * @description each event has only one assessment\n * @param {Array} references References array response from get_activity API\n */\n extractAssessment(references: Array) {\n let ref = references[0];\n ref.Assessment.context_id = ref.context_id;\n\n return {\n assessment: ref.Assessment,\n context_id: ref.context_id\n };\n }\n\n /**\n * Push Download page to ionic nav stack (navigate to attachment download page)\n */\n gotoDownload(event) {\n this.navCtrl.push(EventsDownloadPage, {event});\n }\n\n /**\n * Event booking function\n * @param {object} event Single event object from get_events API response\n */\n checkBookStatus() {\n return false ? (this.event.remaining_capacity == this.event.capacity && this.event.isBooked == false) : (this.event.remaining_capacity != this.event.capacity && this.event.isBooked == true)\n }\n\n book(event): void {\n let earnPoints = this.alertCtrl.create({\n message: `

Congratulations!


\"Congratulations

You have earned 20 points.

`,\n buttons: [\n {\n text: 'OK',\n role: 'OK',\n handler: () => {\n console.log('OK, points earned');\n }\n }\n ]\n });\n\n let bookLoading = this.loadingCtrl.create({\n content: 'Booking ..'\n });\n let bookFailed = this.toastCtrl.create({\n message: this.bookEventErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let bookPopup = this.actionSheetCtrl.create({\n title: `Do you want to book a seat for ${ this.event.title } at ${ moment.utc(this.event.start).local().format(\"dddd, MMM D [at] h:mm A\") }?`,\n buttons:[\n {\n text: 'Cancel',\n role: 'cancel',\n handler: () => {\n this.bookingStatus = this.availability(this.event);\n }\n },\n {\n text: 'Confirm',\n role: 'OK',\n handler: () => {\n bookLoading.present();\n this.eventService.bookEvent(this.event.id)\n .subscribe(\n data => {\n this.justBooked = true;\n if(this.justBooked == true) {\n this.booked_text;\n }\n bookLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n bookLoading.dismiss().then(() => {\n bookFailed.present();\n });\n }\n );\n }\n },\n ]\n });\n bookPopup.present();\n }\n\n /**\n * @note existence of References array determines if an event is\n * a checkin type\n * @description examine event to allow check in\n * @param {Object} event\n */\n allowCheckIn(event) {\n if (event.References && event.References.length > 0) {\n return true;\n }\n return false;\n }\n\n /**\n * Event checkin action\n * @param {Object} event single event object return from get_event API\n */\n checkin(event) {\n let loading = this.loadingCtrl.create({\n content: 'loading checkin...'\n });\n loading.present().then(() => {\n // if submission exist\n loading.dismiss().then(() => {\n // this.navCtrl.push(AssessmentsGroupPage, {\n this.navCtrl.push(AssessmentsPage, {\n event,\n activity: event.activity,\n submissions: this.submissions\n });\n });\n })\n }\n\n /**\n * Event cancel booking action\n * @param\n */\n cancelBooking() {\n let cancelLoading = this.loadingCtrl.create({\n content: 'Cancel Booking ..'\n });\n let cancelFailed = this.toastCtrl.create({\n message: this.cancelBookingErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let cancelBooking = this.actionSheetCtrl.create({\n title: 'Cancel Booking Of This Event?',\n buttons: [\n {\n text: 'Cancel Booking',\n role: 'destructive',\n handler: () => {\n cancelLoading.present();\n this.eventService.cancelEventBooking(this.event.id)\n .subscribe(\n data => {\n cancelLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n cancelLoading.dismiss().then(() => {\n cancelFailed.present();\n });\n }\n )\n }\n },\n {\n text: 'Close',\n role: 'cancel',\n handler: () => {\n // console.log('Close this window ..');\n }\n }\n ]\n });\n cancelBooking.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/view/events-view.page.ts","import { Component, OnInit } from '@angular/core';\nimport { NavController, NavParams, ViewController } from 'ionic-angular';\n\n@Component({\n templateUrl: './events-preview.html'\n})\nexport class EventsPreviewPage implements OnInit {\n file: any = {};\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {}\n\n ngOnInit() {\n this.viewCtrl.setBackButtonText('Done');\n }\n\n ionViewDidEnter() {\n this.file = this.navParams.get('file');\n }\n\n goBack() {\n this.navCtrl.pop();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/download/events-preview.page.ts","import { Component } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { NavController, NavParams, LoadingController, AlertController, ToastController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n\n@Component({\n selector: 'page-forget-password',\n templateUrl: 'forget-password.html'\n})\nexport class ForgetPasswordPage {\n email: string;\n forgotPwdFormGroup: any;\n // loading & error message variables\n sendingEmailLoadingMessage = loadingMessages.SendingEmail.send;\n sentEmailMessagePartOne = loadingMessages.SentMessage.partOne;\n sentEmailMessagePartTwo = loadingMessages.SentMessage.partTwo;\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public translationService: TranslationService,\n public authService: AuthService,\n public toastCtrl: ToastController,\n public formBuilder: FormBuilder\n ) {\n this.forgotPwdFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n });\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad ForgetPasswordPage');\n }\n\n userForgotPassword(){\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.sendingEmailLoadingMessage\n });\n\n let defaultMsg = this.sentEmailMessagePartOne + ` ${this.email} ` + this.sentEmailMessagePartTwo;\n\n loading.present();\n // This part is calling post_forget_password() API from backend\n this.authService.forgotPassword(this.email)\n .subscribe(data => {\n loading.dismiss();\n defaultMsg = data.msg || defaultMsg;\n const successSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n successSMS.present();\n },\n error => {\n loading.dismiss();\n // this.logError(error);\n defaultMsg = error.msg || defaultMsg;\n const errorSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n errorSMS.present();\n }\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/forget-password/forget-password.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController,\n NavParams,\n LoadingController,\n AlertController,\n ModalController,\n ViewController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport * as _ from 'lodash';\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { RequestServiceConfig } from '../../shared/request/request.service';\n// directives\nimport {FormValidator} from '../../shared/validators/formValidator';\n// pages\nimport { TabsPage } from '../../pages/tabs/tabs.page';\nimport { ForgetPasswordPage } from '../../pages/forget-password/forget-password';\n/* This page is for handling user login process */\n@Component({\n selector: 'page-login',\n templateUrl: 'login.html'\n})\nexport class LoginPage {\n public email: string;\n public password: any;\n public userName: string;\n public userImage: string;\n public API_KEY: string;\n public milestone_id: string;\n public loginFormGroup: any;\n public forgetpasswordPage = ForgetPasswordPage;\n public loginLoadingMessages: any = loadingMessages.Login.login;\n public invalidLoginMessage: any = errMessages.Login.login;\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public viewCtrl: ViewController,\n public authService: AuthService,\n public gameService: GameService,\n public translationService: TranslationService,\n public config: RequestServiceConfig,\n public formBuilder: FormBuilder,\n public milestoneService: MilestoneService,\n public cacheService: CacheService\n ) {\n this.navCtrl = navCtrl;\n this.loginFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n password: ['', [Validators.required, Validators.minLength(8)]],\n });\n }\n ionViewCanLeave(): boolean {\n // user is authorized\n console.log('authorized');\n let authorized = true;\n if (authorized){\n return true;\n } else {\n return false;\n }\n }\n /**\n * user login function to authenticate user with email and password\n */\n userLogin() {\n let self = this;\n this.cacheService.clear().then(() => {\n // add loading effect during login process\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessages\n });\n loading.present().then(() => {\n // This part is calling post_auth() API from backend\n this.authService.loginAuth(this.email, this.password)\n .subscribe(data => {\n data = data.data;\n // this.getLogInData(data);\n self.cacheService.setLocalObject('apikey', data.apikey);\n // saved for 3 types of timeline id in order for later use\n self.cacheService.setLocalObject('timelineId', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('teams', data.Teams);\n self.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n self.cacheService.setLocalObject('name', data.User.name);\n self.cacheService.setLocalObject('email', data.User.email);\n self.cacheService.setLocalObject('program_id', data.User.program_id);\n self.cacheService.setLocalObject('project_id', data.User.project_id);\n self.cacheService.setLocalObject('user', data.User);\n },\n err => {\n console.log(err);\n }\n );\n\n this.gameService.getGames()\n .subscribe((data) => {\n if (data.Games) {\n // For now only have one game per project\n self.cacheService.setLocalObject('game_id', data.Games[0].id);\n }\n });\n\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n }, err => {\n loading.dismiss().then(() => {\n this.logError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n });\n });\n }\n /**\n * Insert post_auth() api result into localStorage\n * @param {object} data result from API request\n * @returns Observable/subject\n */\n getLogInData(data){\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cacheService.write(key, datum));\n });\n cacheProcesses.push(this.cacheService.write('timeline_id', data.Timelines[0].Timeline.id));\n cacheProcesses.push(this.cacheService.write('apikey', data.apikey));\n cacheProcesses.push(this.cacheService.write('timelines', data.Timelines));\n cacheProcesses.push(this.cacheService.write('teams', data.Teams));\n this.cacheService.setLocal('apikey', data.apikey);\n this.cacheService.setLocal('timeline_id', data.Timelines[0].Timeline.id);\n console.log(\"cache data: \" + cacheProcesses);\n return Observable.from(cacheProcesses);\n }\n /**\n * Insert get_user() api result into localStorage\n * @param {object} user result from API request\n */\n getUserKeyData(user){\n let userData = {\n 'apikey': user.data.apikey,\n 'timelines': user.data.Timelines\n }\n this.cacheService.write('userData', userData);\n this.cacheService.setLocalObject('userData', userData);\n this.API_KEY = user.data.apikey;\n // console.log(\"Timeline ID: \" + user.data.Timelines[0].Timeline.id);\n // to get API KEY and timeline_id and stored in localStorage\n // then other API calls can directly use (API KEY and timeline_id)\n }\n /**\n * @TODO we'll come back to this logging workflow later in this development\n *\n * This function is used to log unexpected error accountered in the client side\n * @param {object} error result from API request\n */\n logError(error) {\n const alert = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.invalidLoginMessage,\n buttons: ['Close']\n });\n alert.present();\n // handle API calling errors display with alert controller\n }\n /**\n * forget password page link function\n */\n linkToForgetPassword() {\n this.navCtrl.push(this.forgetpasswordPage);\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/login/login.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// pages\nimport { TabsPage } from '../tabs/tabs.page';\nimport { LoginPage } from '../login/login';\n// Others\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-magic-link',\n templateUrl: 'magic-link.html'\n})\nexport class MagicLinkPage {\n auth_token: string;\n loginLoadingMessage: any = loadingMessages.Login.login;\n milestone_id: string;\n misMatchTokenErrMessage: any = errMessages.DirectLink.mismatch;\n verifySuccess = null;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams\n ) {}\n\n ionViewDidLoad() {\n this.auth_token = this.navParams.get('auth_token');\n }\n ionViewWillEnter(){\n this.magicLinkAccess();\n }\n magicLinkAccess(){\n let observable = this.authService.magicLinkLogin(this.auth_token);\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessage\n });\n loading.present();\n observable.subscribe(data => {\n // localStorage.setItem('isAuthenticated', 'true');\n // this.navCtrl.push(TabsPage);\n // console.log(\"Successfully logged in\");\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n const failAlert = this.alertCtrl.create({\n title: 'Magic did NOT happen',\n message: this.misMatchTokenErrMessage,\n buttons: ['Close']\n });\n failAlert.present();\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n // console.log(\"Login failed\");\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/magic-link/magic-link.ts","import { Component } from '@angular/core';\n\n@Component({\n template: ''\n})\nexport class TestPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/test.page.ts","import { Component } from '@angular/core';\nimport { NavParams } from 'ionic-angular';\n\nimport { TranslationService } from '../../../shared/translation/translation.service';\n\nlet _mock = {\n \"id\": 59,\n \"name\": \"Test Achievement\",\n \"description\": \"this is test achievement\",\n \"badge\": \"https://www.filepicker.io/api/file/lRLLzZdwT0OWdxQq0ZJw\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 158,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100,\n \"achieved\": false,\n};\n\n@Component({\n templateUrl: './achievements-view.html'\n})\nexport class AchievementsViewPage {\n\n achievement: any;\n\n constructor(\n public params: NavParams,\n public translationService: TranslationService\n ) {\n this.achievement = {};\n }\n\n ionViewDidEnter() {\n this.achievement = this.params.get('achievement');\n\n // Inject API response\n this.achievement = _mock;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/achievements/view/achievements-view.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController, LoadingController } from 'ionic-angular';\n\nimport { ActivitiesViewPage } from '../../activities/view/activities-view.page';\nimport { ActivityService } from '../../../services/activity.service';\n\ndeclare var _: any;\n\n@Component({\n templateUrl: './list.html'\n})\nexport class ActivitiesClassicListPage {\n public activities: Array = [];\n\n constructor(\n public navCtrl: NavController,\n public activityService: ActivityService,\n public toastCtrl: ToastController,\n public loader: LoadingController\n ) {}\n\n // @TODO: Move to shared function later...\n public _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n /**\n * normalise activities\n */\n public normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = _.merge(act.Activity, {\n activity: act.Activity,\n sequences: act.ActivitySequence,\n Activity: act.Activity,\n ActivitySequence: act.ActivitySequence,\n });\n });\n return result;\n }\n\n _pullData(acts, cb?) {\n let self = this;\n\n this.activityService.getList()\n .toPromise()\n .then(function(activities) {\n let result = [];\n activities.map((act, index) => {\n act = _.merge(act, act.Activity);\n });\n this.activities = activities;\n self.activities = activities;\n\n if (cb) {\n cb();\n }\n }, err => {\n this._error(err);\n console.log('err', err);\n\n if (cb) {\n cb();\n }\n });\n }\n\n public doRefresh(refresher) {\n this._pullData(this.activities, () => {\n if (refresher) {\n refresher.complete();\n }\n });\n }\n\n ionViewDidEnter() {\n\n let loader = this.loader.create();\n let self = this;\n\n loader.present().then(() => {\n this.activityService.getList()\n .subscribe(activities => {\n console.log(self.activities);\n activities = self.normaliseActivities(activities);\n\n self.activities = activities;\n loader.dismiss();\n });\n });\n }\n\n public hasReservation(activity) {\n return false;\n }\n\n public viewTicket(activity) {\n\n }\n\n public book(activity) {\n\n }\n\n public gotoActivity(activity) {\n console.log(activity);\n this.navCtrl.push(ActivitiesViewPage, {activity});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities-classic/list/activities-classic-list.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\n// Services\nimport { AssessmentService } from '../../services/assessment.service';\nimport { SubmissionService } from '../../services/submission.service';\n// Others\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'gallery-page',\n templateUrl: 'gallery.html'\n})\nexport class GalleryPage {\n _mock = {\n avatar: {\n name: 'Jose',\n photo: 'https://unsplash.it/100/100'\n },\n photos: [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ]\n };\n assessments: any;\n avatarName: any;\n avatarPhoto: any;\n name: string;\n photos: any[];\n refresher = null;\n\n constructor(\n public navCtrl: NavController,\n public toastCtrl: ToastController,\n public assessmentService: AssessmentService,\n public submissionService: SubmissionService\n ) {}\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData() {\n this.assessmentService.getAll().toPromise()\n .then((result) => {\n this.assessments = result;\n return this.submissionService.getSubmissions();\n })\n .then((result) => {\n let extractedPhotos = this.submissionService.extractPhotos(result);\n\n if (this.assessments.success || _.isArray(extractedPhotos)) {\n _.forEach(this.assessments.data, (assessment) => {\n if (assessment.Assessment.assessment_type === 'checkin') {\n let foundPhoto = _.find(extractedPhotos, function(p) {\n return p.assessment_id == assessment.Assessment.id;\n });\n\n if (foundPhoto) {\n this.photos.push({\n name: assessment.Assessment.name,\n photo: foundPhoto.photo,\n submitted: moment.utc(foundPhoto.submitted).local().format(\"D-M-YYYY, hA\")\n });\n }\n }\n });\n\n this.photos = _.sortBy(this.photos, 'submitted');\n }\n\n if (this.refresher) {\n this.refresher.complete();\n }\n })\n .catch((err) => {\n if (this.refresher) {\n this.refresher.complete();\n }\n this._error(err)\n });\n }\n\n doRefresh(refresher) {\n this.refresher = refresher;\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n }\n\n ionViewWillEnter() {\n // @TODO We should not block user if no linkedin photo...\n\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n this.photos = [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ];\n console.log('this.photos', this.photos)\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/gallery/gallery.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { MilestoneService } from './milestone.service';\nimport { ActivityService } from './activity.service';\n// Others\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LevelService {\n\n constructor(\n public activityService: ActivityService,\n public milestoneService: MilestoneService\n ) {}\n\n getLevels() {\n let milestones = [];\n let milestoneIds = [];\n\n return new Promise((resolve, reject) => {\n this.milestoneService.getList()\n .toPromise()\n .then((result: any) => {\n milestones = result.data;\n\n // Find unlocked milestones...\n _.forEach(milestones, (milestone) => {\n if (!milestone.is_locked) {\n milestoneIds.push(milestone.id);\n }\n });\n\n return this.activityService.getLevels({\n // @TODO: Should have some way to get data from stroage...\n search: {\n milestone_id: JSON.stringify(milestoneIds),\n has: []\n }\n });\n })\n .then((result: any) => {\n\n _.forEach(result.data, function(activity) {\n\n // Normalise activity data\n activity = this.activityService.normalise(activity);\n\n // Group activity to milestone...\n _.forEach(milestones, function(milestone, key) {\n if (milestone.id === activity.Activity.milestone_id) {\n milestones[key].activity = activity;\n }\n });\n });\n\n resolve(milestones);\n })\n .catch(reject);\n });\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/level.service.ts","import { Component } from '@angular/core';\nimport { NavParams, NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { EventService } from '../../../services/event.service';\nimport { AssessmentService } from '../../../services/assessment.service';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'page-event-checkin',\n templateUrl: './event-checkin.html',\n})\nexport class EventCheckinPage {\n assessment: any;\n assessmentGroup: any;\n checkin: any = {};\n event: any;\n submissions: any;\n user: any = {};\n\n constructor(\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n ) {\n this.event = navParams.get('event');\n this.submissions = navParams.get('submissions');\n this.assessment = navParams.get('assessment');\n this.assessmentGroup = navParams.get('assessmentGroup');\n }\n\n ionViewDidEnter() {\n this.checkin = this.getCheckinAnswer(this.submissions[0]); // event checkin has just single submission\n this.assessment = this.assessmentService.normaliseGroup(this.assessmentGroup);\n this.user = this.cache.getLocalObject('user');\n }\n\n // Only checkin/file upload answer is displayed in check-in view\n public getCheckinAnswer(submission) {\n let result = {};\n submission.answer.forEach(ans => {\n if (typeof ans.answer === 'object') {\n result = ans;\n }\n });\n\n return result;\n }\n\n injectAssessmentToAnswer() {\n this.assessmentGroup.forEach(group => {\n console.log(group);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/checkin/event-checkin.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\nimport { TeamService } from '../../services/team.service';\n// Others\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'team-page',\n templateUrl: 'team.html'\n})\nexport class TeamPage {\n members = [];\n team = {};\n\n constructor(\n public navCtrl: NavController,\n public teamService: TeamService,\n public toastCtrl: ToastController\n ) {}\n\n\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData(refresher?) {\n // @TODO Need inject user team ID\n this.teamService.getTeam()\n .then((result: any) => {\n this.team = result.team;\n this.members = result.members;\n\n if (refresher) {\n refresher.complete();\n }\n })\n .catch((err) => {\n if (refresher) {\n refresher.complete();\n }\n this._error(err);\n });\n }\n\n doRefresh(refresher) {\n this._pullData(refresher);\n }\n\n ionViewWillEnter() {\n this._pullData();\n this.members = [\n {\n name: 'Jose',\n email: 'abcd.example.cc'\n }\n ]\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/team/team.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class TeamService {\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n getTeam(options? : any) {\n return this.request.get('api/teams.json', options).toPromise();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/team.service.ts","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app.module';\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main.ts","// libs\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, ErrorHandler, OnInit } from '@angular/core';\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';\nimport { CacheModule } from '../shared/cache/cache.module';\nimport { NotificationModule } from '../shared/notification/notification.module';\nimport { MyApp } from './app.component';\nimport { FilepickerModule } from '../shared/filepicker/filepicker.module';\nimport { UtilsModule } from '../shared/utils/utils.module';\nimport { TestModule } from '../shared/testModules/test.module';\nimport { HttpModule, Http } from '@angular/http';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from \"@ngx-translate/http-loader\";\nimport { i18nData } from './assets/i18n-en';\nimport { TranslationModule } from '../shared/translation/translation.module';\nimport { MomentModule } from 'angular2-moment';\n\n// services\nimport { AchievementService } from '../services/achievement.service';\nimport { ActivityService } from '../services/activity.service';\nimport { AssessmentService } from '../services/assessment.service';\nimport { AuthService } from '../services/auth.service';\nimport { CharacterService } from '../services/character.service';\nimport { EventService } from '../services/event.service';\nimport { FilepickerService } from '../shared/filepicker/filepicker.service';\nimport { GameService } from '../services/game.service';\nimport { GroupEmitterService } from '../components/questions/group-emitter.service';\nimport { LevelService } from '../services/level.service';\nimport { MilestoneService } from '../services/milestone.service';\nimport { NotificationService } from '../shared/notification/notification.service';\nimport { RequestModule } from '../shared/request/request.module';\nimport { SessionService } from '../services/session.service';\nimport { SubmissionService } from '../services/submission.service';\n\nimport { TeamService } from '../services/team.service';\nimport { WindowRef } from '../shared/window';\n// components\nimport { ModalComponent } from '../shared/notification/modal.component';\nimport { QuestionGroupComponent } from '../components/question-group/question-group.component';\nimport { EventComponent } from '../components/event/event.component';\nimport { LevelComponent } from '../components/level/level';\nimport { LoadingMarkerComponent } from '../components/loadingMarker/loadingMarker';\nimport { LockerComponent } from '../components/locker/locker';\nimport { MemberComponent } from '../components/member/member';\nimport { PhotoComponent } from '../components/photo/photo';\nimport { TermContentComponent } from '../pages/term-condition/term-content.component';\nimport { FileQuestionComponent } from '../components/questions/file';\nimport { OneofQuestionComponent } from '../components/questions/oneof';\nimport { TextQuestionComponent } from '../components/questions/text';\nimport { MultipleQuestionComponent } from '../components/questions/multiple';\nimport { FeedbackComponent } from '../components/questions/feedback';\n// pages\nimport { AchievementsViewPage } from '../pages/achievements/view/achievements-view.page';\nimport { ActivitiesListPage } from '../pages/activities/list/list.page';\nimport { ActivityListPopupPage } from '../pages/activities/list/popup';\nimport { ActivitiesViewModalPage } from '../pages/activities/view/activities-view-modal.page';\nimport { ActivitiesViewPage } from '../pages/activities/view/activities-view.page';\nimport { ActivitiesClassicListPage } from '../pages/activities-classic/list/activities-classic-list.page';\nimport { AssessmentsPage } from '../pages/assessments/assessments.page';\nimport { AssessmentsGroupPage } from '../pages/assessments/group/assessments-group.page';\nimport { EventCheckinPage } from '../pages/events/checkin/event-checkin.page';\nimport { EventsComponent } from '../components/events/events.component';\nimport { EventsDownloadPage } from '../pages/events/download/events-download.page';\nimport { EventsListPage } from '../pages/events/list/list.page';\nimport { EventsPreviewPage } from '../pages/events/download/events-preview.page';\nimport { EventsViewPage } from '../pages/events/view/events-view.page';\nimport { ForgetPasswordPage } from '../pages/forget-password/forget-password';\nimport { GalleryPage } from '../pages/gallery/gallery';\nimport { ItemsPopupPage } from '../pages/assessments/popup/items-popup.page';\nimport { LeaderboardSettingsPage } from '../pages/settings/leaderboard/leaderboard-settings.page';\nimport { LevelsListPage } from '../pages/levels/list/list';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { RankingBadgesPage } from '../pages/rankings/view/ranking-badges';\nimport { RankingDetailsPage } from '../pages/rankings/view/ranking-details.page';\nimport { RankingsPage } from '../pages/rankings/list/rankings.page';\nimport { RegisterPage } from '../pages/registration/register.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { SettingsPage } from '../pages/settings/settings.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { TeamPage } from '../pages/team/team';\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { TestPage } from '../pages/tabs/test.page';\nimport { TutorialPage } from '../pages/settings/tutorial/tutorial.page';\n// custom pipes\nimport { TimeAgoPipe } from '../pipes/timeago';\nimport { UcfirstPipe } from '../pipes/ucfirst.pipe';\nimport { TruncatePipe } from '../pipes/truncate.pipe';\nimport { EscapeHtmlPipe } from '../pipes/keep-html.pipe';\n\n// configs\nimport { default as Configure } from '../configs/config';\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: Http) {\n return new TranslateHttpLoader(http, \"./assets/i18n-\", \".json\");\n}\n\n@NgModule({\n declarations: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n FeedbackComponent,\n FileQuestionComponent,\n ForgetPasswordPage,\n GalleryPage,\n ItemsPopupPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n MemberComponent,\n ModalComponent,\n MultipleQuestionComponent,\n MyApp,\n OneofQuestionComponent,\n PhotoComponent,\n QuestionGroupComponent,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TeamPage,\n TestPage,\n TutorialPage,\n TermConditionPage,\n TermContentComponent,\n TextQuestionComponent,\n TimeAgoPipe,\n TruncatePipe,\n UcfirstPipe,\n EscapeHtmlPipe,\n ],\n imports: [\n BrowserModule,\n CacheModule,\n FormsModule,\n MomentModule,\n NotificationModule,\n UtilsModule,\n TestModule,\n RequestModule.forRoot({\n appKey: Configure.appKey,\n prefixUrl: Configure.prefixUrl\n }),\n FilepickerModule.forRoot({\n apikey: Configure.filestack.apiKey\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [Http]\n }\n }),\n TranslationModule,\n IonicModule.forRoot(MyApp, {}, {\n links: [\n {\n component: LoginPage,\n name: 'Login',\n segment: 'login',\n defaultHistory: [ LoginPage ]\n },\n {\n component: ResetPasswordPage,\n name: 'ResetPassword',\n segment: 'resetpassword', //resetpassword?email=XXX&key=XXX\n defaultHistory: [ ResetPasswordPage ]\n },\n {\n component: MagicLinkPage,\n name: 'MagiclinkPage',\n segment: 'secure/:auth_token', //secure?auth_token=XXXXXX\n defaultHistory: [ MagicLinkPage ]\n },\n {\n component: RegistrationPage,\n name: 'Registration',\n segment: 'registration',\n defaultHistory: [ RegistrationPage ]\n },\n {\n component: TestPage,\n name: 'Testing',\n segment: 'test',\n defaultHistory: [TestPage]\n }\n ]\n })\n ],\n bootstrap: [\n IonicApp\n ],\n entryComponents: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n ForgetPasswordPage,\n ItemsPopupPage,\n GalleryPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n ModalComponent,\n MyApp,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TestPage,\n TermConditionPage,\n TutorialPage,\n TermContentComponent,\n ],\n providers: [\n { provide: AchievementService, useClass: AchievementService },\n { provide: ActivityService, useClass: ActivityService },\n { provide: AssessmentService, useClass: AssessmentService },\n { provide: AuthService, useClass: AuthService },\n { provide: CharacterService, useClass: CharacterService },\n { provide: ErrorHandler, useClass: IonicErrorHandler },\n { provide: EventService, useClass: EventService },\n { provide: FilepickerService, useClass: FilepickerService },\n { provide: LevelService, useClass: LevelService },\n { provide: LocationStrategy , useClass: HashLocationStrategy },\n { provide: MilestoneService, useClass: MilestoneService },\n { provide: NotificationService, useClass: NotificationService },\n { provide: SessionService, useClass: SessionService },\n { provide: SubmissionService, useClass: SubmissionService },\n { provide: TeamService, useClass: TeamService },\n WindowRef,\n GroupEmitterService,\n GameService,\n // { provide: RequestOptions, useClass: CustomRequestOptions }\n ]\n})\nexport class AppModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { NgModule } from '@angular/core';\nimport { CacheService } from './cache.service';\nimport { IonicStorageModule } from '@ionic/storage';\n\n@NgModule({\n imports: [\n IonicStorageModule.forRoot({\n name: '__app-vault',\n driverOrder: ['localstorage']\n })\n ],\n providers: [ CacheService ],\n})\nexport class CacheModule {\n\n constructor() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/cache/cache.module.ts","import { NgModule } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule } from '@angular/common';\n\nimport { NotificationService } from './notification.service';\nimport { NotificationComponent } from './notification.component';\n// import { ModalComponent } from './modal.component';\n\n@NgModule({\n imports: [ CommonModule, IonicModule ],\n declarations: [\n NotificationComponent,\n // ModalComponent,\n ],\n providers: [ NotificationService ],\n exports: [\n NotificationComponent,\n // ModalComponent\n ]\n})\nexport class NotificationModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.module.ts","import { Component } from '@angular/core';\nimport { ModalController } from 'ionic-angular';\n\nimport { NotificationService } from './notification.service';\nimport { ModalComponent } from './modal.component';\n\n@Component({\n selector: 'app-notification',\n template: ``,\n})\nexport class NotificationComponent {\n\n constructor(\n public modalCtrl: ModalController,\n public notificationService: NotificationService\n ) {\n notificationService.modalActivated$.subscribe(\n context => {\n this.show(context)\n }\n );\n }\n\n ngOnInit() {}\n\n /**\n * Show notification modal\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * notification_icon: ?{String},\n * description: {String},\n * score: ?{String},\n * button_label: ?{String},\n * button_function: ?{Function},\n * button_link: ?{String},\n * }\n */\n show(context: any) {\n let modal = this.modalCtrl.create(ModalComponent, { 'context': context });\n modal.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.component.ts","import { Component, ViewChild, OnInit } from '@angular/core';\nimport { Platform, NavController } from 'ionic-angular';\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { AuthService } from '../services/auth.service';\n// pages\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { TestPage } from '../pages/tabs/test.page';\n\n@Component({\n templateUrl: 'app.html',\n})\nexport class MyApp implements OnInit {\n // rootPage: any = RegistrationPage;\n rootPage: any;\n urlParameters: Array = [];\n do = {\n 'registration': RegistrationPage,\n 'login': LoginPage,\n 'resetpassword': ResetPasswordPage,\n 'secure': MagicLinkPage,\n 'test': TestPage\n };\n\n @ViewChild('appNav') nav: NavController;\n constructor(\n platform: Platform,\n authService: AuthService,\n private cache: CacheService\n ) {\n platform.ready().then(() => {\n // Okay, so the platform is ready and our plugins are available.\n // Here you can do any higher level native things you might need.\n // ionic-native is removed, as we dont need to use cordova\n });\n }\n\n ngOnInit() {\n let category = [];\n let page;\n let navParams = {};\n\n if (document.URL.indexOf(\"?\") !== -1) {\n let splitURL = document.URL.split(\"?\");\n let splitParams = splitURL[1].split(\"&\");\n splitParams.forEach(param => {\n let singleURLParam = param.split('=');\n let urlParameter = {\n 'name': singleURLParam[0],\n 'value': singleURLParam[1]\n };\n if (singleURLParam[0] === 'do') {\n page = this.do[singleURLParam[1]];\n }\n category.push(urlParameter);\n navParams[singleURLParam[0]] = singleURLParam[1];\n });\n }\n\n if (page) {\n this.nav.setRoot(page, navParams);\n } else {\n if (this.cache.getLocal('isAuthenticated')) {\n this.nav.setRoot(TabsPage, navParams);\n } else {\n this.nav.setRoot(LoginPage, navParams);\n }\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class GameService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * Get games\n * @param {object} options\n */\n getGames(options = {}) {\n return this.request.get('api/games', options);\n }\n\n /**\n * Get character\n * @param {string} gameId\n * @param {object} options\n */\n getCharacters(gameId, options = {}) {\n options = _.merge({\n search: {\n game_id: gameId\n }\n }, options);\n return this.request.get('api/characters', options);\n }\n\n /**\n * Post character\n * @param {object} data\n */\n postCharacter(data) {\n return this.request.post('api/characters', data, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * Get ranking\n * @param {string} gameId\n * @param {string} characterId\n */\n getRanking(gameId, characterId) {\n return Observable.forkJoin([\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly'\n }\n }),\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly',\n character_id: characterId\n }\n })\n ])\n .map((data: any[]) => {\n let characters = data[0] || [];\n let myCharacter = data[1].Characters || [];\n characters.MyCharacters = myCharacter\n return characters;\n });\n }\n\n /**\n * Get items\n * @param {object} options\n */\n getItems(options?) {\n options = _.merge({\n character_id: null,\n filter: 'all'\n }, options);\n return this.request.get('api/items.json', {search: options});\n }\n\n /**\n * Update items\n * @param {object} options\n */\n postItems(options: any = {\n \"Character\": {\n \"id\": null\n },\n \"Item\": {\n \"id\": null\n }\n }) {\n return this.request.post('api/items.json', options, {'Content-Type': 'application/json'});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/game.service.ts","var map = {\n\t\"./af\": 273,\n\t\"./af.js\": 273,\n\t\"./ar\": 274,\n\t\"./ar-dz\": 275,\n\t\"./ar-dz.js\": 275,\n\t\"./ar-kw\": 276,\n\t\"./ar-kw.js\": 276,\n\t\"./ar-ly\": 277,\n\t\"./ar-ly.js\": 277,\n\t\"./ar-ma\": 278,\n\t\"./ar-ma.js\": 278,\n\t\"./ar-sa\": 279,\n\t\"./ar-sa.js\": 279,\n\t\"./ar-tn\": 280,\n\t\"./ar-tn.js\": 280,\n\t\"./ar.js\": 274,\n\t\"./az\": 281,\n\t\"./az.js\": 281,\n\t\"./be\": 282,\n\t\"./be.js\": 282,\n\t\"./bg\": 283,\n\t\"./bg.js\": 283,\n\t\"./bn\": 284,\n\t\"./bn.js\": 284,\n\t\"./bo\": 285,\n\t\"./bo.js\": 285,\n\t\"./br\": 286,\n\t\"./br.js\": 286,\n\t\"./bs\": 287,\n\t\"./bs.js\": 287,\n\t\"./ca\": 288,\n\t\"./ca.js\": 288,\n\t\"./cs\": 289,\n\t\"./cs.js\": 289,\n\t\"./cv\": 290,\n\t\"./cv.js\": 290,\n\t\"./cy\": 291,\n\t\"./cy.js\": 291,\n\t\"./da\": 292,\n\t\"./da.js\": 292,\n\t\"./de\": 293,\n\t\"./de-at\": 294,\n\t\"./de-at.js\": 294,\n\t\"./de-ch\": 295,\n\t\"./de-ch.js\": 295,\n\t\"./de.js\": 293,\n\t\"./dv\": 296,\n\t\"./dv.js\": 296,\n\t\"./el\": 297,\n\t\"./el.js\": 297,\n\t\"./en-au\": 298,\n\t\"./en-au.js\": 298,\n\t\"./en-ca\": 299,\n\t\"./en-ca.js\": 299,\n\t\"./en-gb\": 300,\n\t\"./en-gb.js\": 300,\n\t\"./en-ie\": 301,\n\t\"./en-ie.js\": 301,\n\t\"./en-nz\": 302,\n\t\"./en-nz.js\": 302,\n\t\"./eo\": 303,\n\t\"./eo.js\": 303,\n\t\"./es\": 304,\n\t\"./es-do\": 305,\n\t\"./es-do.js\": 305,\n\t\"./es.js\": 304,\n\t\"./et\": 306,\n\t\"./et.js\": 306,\n\t\"./eu\": 307,\n\t\"./eu.js\": 307,\n\t\"./fa\": 308,\n\t\"./fa.js\": 308,\n\t\"./fi\": 309,\n\t\"./fi.js\": 309,\n\t\"./fo\": 310,\n\t\"./fo.js\": 310,\n\t\"./fr\": 311,\n\t\"./fr-ca\": 312,\n\t\"./fr-ca.js\": 312,\n\t\"./fr-ch\": 313,\n\t\"./fr-ch.js\": 313,\n\t\"./fr.js\": 311,\n\t\"./fy\": 314,\n\t\"./fy.js\": 314,\n\t\"./gd\": 315,\n\t\"./gd.js\": 315,\n\t\"./gl\": 316,\n\t\"./gl.js\": 316,\n\t\"./gom-latn\": 317,\n\t\"./gom-latn.js\": 317,\n\t\"./he\": 318,\n\t\"./he.js\": 318,\n\t\"./hi\": 319,\n\t\"./hi.js\": 319,\n\t\"./hr\": 320,\n\t\"./hr.js\": 320,\n\t\"./hu\": 321,\n\t\"./hu.js\": 321,\n\t\"./hy-am\": 322,\n\t\"./hy-am.js\": 322,\n\t\"./id\": 323,\n\t\"./id.js\": 323,\n\t\"./is\": 324,\n\t\"./is.js\": 324,\n\t\"./it\": 325,\n\t\"./it.js\": 325,\n\t\"./ja\": 326,\n\t\"./ja.js\": 326,\n\t\"./jv\": 327,\n\t\"./jv.js\": 327,\n\t\"./ka\": 328,\n\t\"./ka.js\": 328,\n\t\"./kk\": 329,\n\t\"./kk.js\": 329,\n\t\"./km\": 330,\n\t\"./km.js\": 330,\n\t\"./kn\": 331,\n\t\"./kn.js\": 331,\n\t\"./ko\": 332,\n\t\"./ko.js\": 332,\n\t\"./ky\": 333,\n\t\"./ky.js\": 333,\n\t\"./lb\": 334,\n\t\"./lb.js\": 334,\n\t\"./lo\": 335,\n\t\"./lo.js\": 335,\n\t\"./lt\": 336,\n\t\"./lt.js\": 336,\n\t\"./lv\": 337,\n\t\"./lv.js\": 337,\n\t\"./me\": 338,\n\t\"./me.js\": 338,\n\t\"./mi\": 339,\n\t\"./mi.js\": 339,\n\t\"./mk\": 340,\n\t\"./mk.js\": 340,\n\t\"./ml\": 341,\n\t\"./ml.js\": 341,\n\t\"./mr\": 342,\n\t\"./mr.js\": 342,\n\t\"./ms\": 343,\n\t\"./ms-my\": 344,\n\t\"./ms-my.js\": 344,\n\t\"./ms.js\": 343,\n\t\"./my\": 345,\n\t\"./my.js\": 345,\n\t\"./nb\": 346,\n\t\"./nb.js\": 346,\n\t\"./ne\": 347,\n\t\"./ne.js\": 347,\n\t\"./nl\": 348,\n\t\"./nl-be\": 349,\n\t\"./nl-be.js\": 349,\n\t\"./nl.js\": 348,\n\t\"./nn\": 350,\n\t\"./nn.js\": 350,\n\t\"./pa-in\": 351,\n\t\"./pa-in.js\": 351,\n\t\"./pl\": 352,\n\t\"./pl.js\": 352,\n\t\"./pt\": 353,\n\t\"./pt-br\": 354,\n\t\"./pt-br.js\": 354,\n\t\"./pt.js\": 353,\n\t\"./ro\": 355,\n\t\"./ro.js\": 355,\n\t\"./ru\": 356,\n\t\"./ru.js\": 356,\n\t\"./sd\": 357,\n\t\"./sd.js\": 357,\n\t\"./se\": 358,\n\t\"./se.js\": 358,\n\t\"./si\": 359,\n\t\"./si.js\": 359,\n\t\"./sk\": 360,\n\t\"./sk.js\": 360,\n\t\"./sl\": 361,\n\t\"./sl.js\": 361,\n\t\"./sq\": 362,\n\t\"./sq.js\": 362,\n\t\"./sr\": 363,\n\t\"./sr-cyrl\": 364,\n\t\"./sr-cyrl.js\": 364,\n\t\"./sr.js\": 363,\n\t\"./ss\": 365,\n\t\"./ss.js\": 365,\n\t\"./sv\": 366,\n\t\"./sv.js\": 366,\n\t\"./sw\": 367,\n\t\"./sw.js\": 367,\n\t\"./ta\": 368,\n\t\"./ta.js\": 368,\n\t\"./te\": 369,\n\t\"./te.js\": 369,\n\t\"./tet\": 370,\n\t\"./tet.js\": 370,\n\t\"./th\": 371,\n\t\"./th.js\": 371,\n\t\"./tl-ph\": 372,\n\t\"./tl-ph.js\": 372,\n\t\"./tlh\": 373,\n\t\"./tlh.js\": 373,\n\t\"./tr\": 374,\n\t\"./tr.js\": 374,\n\t\"./tzl\": 375,\n\t\"./tzl.js\": 375,\n\t\"./tzm\": 376,\n\t\"./tzm-latn\": 377,\n\t\"./tzm-latn.js\": 377,\n\t\"./tzm.js\": 376,\n\t\"./uk\": 378,\n\t\"./uk.js\": 378,\n\t\"./ur\": 379,\n\t\"./ur.js\": 379,\n\t\"./uz\": 380,\n\t\"./uz-latn\": 381,\n\t\"./uz-latn.js\": 381,\n\t\"./uz.js\": 380,\n\t\"./vi\": 382,\n\t\"./vi.js\": 382,\n\t\"./x-pseudo\": 383,\n\t\"./x-pseudo.js\": 383,\n\t\"./yo\": 384,\n\t\"./yo.js\": 384,\n\t\"./zh-cn\": 385,\n\t\"./zh-cn.js\": 385,\n\t\"./zh-hk\": 386,\n\t\"./zh-hk.js\": 386,\n\t\"./zh-tw\": 387,\n\t\"./zh-tw.js\": 387\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 503;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = 503\n// module chunks = 0","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { AlertController } from 'ionic-angular';\n\n@Injectable()\nexport class NotificationService {\n\n private modalActivateSource = new Subject();\n\n modalActivated$ = this.modalActivateSource.asObservable();\n\n constructor(public alertCtrl: AlertController) {}\n\n /**\n * Show alert on page\n * Refer: https://ionicframework.com/docs/api/components/alert/AlertController/\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * subTitle: {String},\n * button: {Array}, // ['OK', 'CANCEL']\n * }\n */\n present(context: any) {\n this.modalActivateSource.next(context);\n }\n\n /**\n * pop up alert box with button\n * @param {Object} content to customise alert box\n */\n public alert(context: any = {\n title: 'Title',\n subTitle: 'Subtitle',\n buttons: ['OK']\n }) {\n let alert = this.alertCtrl.create(context);\n alert.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.service.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport { CacheService } from '../shared/cache/cache.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class MilestoneService {\n appkey = this.request.getAppkey();\n milestones: any = {};\n prefixUrl: any = this.request.getPrefixUrl();\n\n constructor(\n public cacheService: CacheService,\n public http: Http,\n public request: RequestService\n ) {}\n\n getList(options?) {\n let params: URLSearchParams = new URLSearchParams();\n\n if (options && options.search) {\n // @TODO: Move to helper function\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n }\n let timelineId = this.cacheService.getLocal('timeline_id');\n if (timelineId) {\n params.set('timelineId', timelineId);\n }\n\n return this.request.get('api/milestones.json', {search: params});\n }\n\n getMilestones(){\n let headers = new Headers();\n headers.append('appkey', this.appkey);\n headers.append('apikey', this.cacheService.getLocalObject('apikey'));\n headers.append('timelineID', this.cacheService.getLocalObject('timelineID'));\n console.log('TimelineID: '+ this.cacheService.getLocalObject('timelineID'));\n return this.http.get(this.prefixUrl+'api/milestones.json', { headers: headers })\n .map(res => res.json());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/milestone.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n// Others\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\nclass ActivityBase {\n id: number;\n name: string;\n description: string;\n milestone_id?: number;\n deadline?: string;\n end?: string;\n lead_image?: string;\n is_locked?: boolean;\n order?: number;\n instructions?: string;\n video_url?: string;\n}\n\nclass ReferenceAssessmentBase {\n id: number;\n name: string;\n}\n\nclass ReferenceBase {\n context_id: number;\n Assessment: ReferenceAssessmentBase\n}\n\n@Injectable()\nexport class ActivityService {\n cachedActivites = {};\n milestoneID = this.cacheService.getLocalObject('milestone_id');\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService,\n ) {}\n\n getList(options?) {\n let mid = this.cacheService.getLocal('milestone_id');\n\n options = options || {\n search: {\n milestone_id: this.cacheService.getLocal('milestone_id')\n }\n };\n\n if (!this.cachedActivites[mid]) {\n this.cachedActivites[mid] = this.request.get('api/activities.json', options);\n return this.request.get('api/activities.json', options);\n }\n\n return this.cachedActivites[mid];\n }\n\n getLevels(options?: any) {\n let params: URLSearchParams = new URLSearchParams();\n if (options.search) {\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n options.search = params;\n }\n return this.cacheService.read()\n .then((data: any) => {\n if (!options.search.timeline_id && data.user.timeline_id) {\n params.set('timeline_id', data.user.timeline_id);\n options.search = params;\n }\n if (!options.search.project_id && data.user.project_id) {\n params.set('project_id', data.user.project_id);\n options.search = params;\n }\n return this.getList(options).toPromise();\n });\n }\n\n /*\n // commented out - seems not using in any part of the code\n // it was built for currentActivities component in HomePage,\n // no longer using it now\n\n normalise(activity, index) {\n // session\n activity.enabledRSVP = true;\n // survey\n activity.due = false;\n activity.isRunning = false;\n activity.isBookable = false;\n activity.is_locked = activity.Activity.is_locked;\n activity.name = activity.Activity.name;\n activity.id = activity.Activity.id;\n activity.hasSession = false;\n activity.description = activity.Activity.description || 'No description available.';\n // pre-process response data\n activity.start = moment.utc(activity.Activity.start);\n activity.deadline = moment.utc(activity.Activity.deadline);\n activity.end = moment.utc(activity.Activity.end);\n // if sorting is not available, use index instead\n activity.order = activity.Activity.order || index;\n return activity;\n }*/\n\n\n /**\n * normalise activities\n */\n normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = this.normaliseActivity(act);\n });\n return result;\n }\n\n /**\n * normalise single activity object\n */\n normaliseActivity(activity) {\n let thisActivity = activity.Activity,\n normalisedActivity: ActivityBase,\n sequence = this.mergeReferenceToSequence(activity);\n\n if (!activity.Activity) {\n throw \"Incorrect activity API responce (missing Activity object)\";\n }\n\n normalisedActivity = {\n id: activity.Activity.id,\n name: activity.Activity.name,\n description: activity.Activity.description,\n milestone_id: activity.Activity.milestone_id,\n deadline: activity.Activity.deadline,\n end: activity.Activity.end,\n lead_image: activity.Activity.lead_image,\n is_locked: activity.Activity.is_locked,\n order: activity.Activity.order,\n instructions: activity.Activity.instructions,\n video_url: activity.Activity.video_url\n };\n\n activity = _.merge(thisActivity, {\n // front end should use the one with smallcase instead\n activity: normalisedActivity,\n sequence: sequence,\n assessment: this.extractAssessment(sequence),\n\n // raw data (don't touch/edit)\n Activity: activity.Activity,\n ActivitySequence: activity.ActivitySequence,\n References: activity.References\n });\n\n // Normalise activity reference (References object is optional, updated on 6 October 2017)\n if (activity.References) {\n activity.References.forEach((reference, idx) => {\n let referenceAssessment: ReferenceAssessmentBase = {\n id: reference.Assessment.id,\n name: reference.Assessment.name,\n }\n let normalisedReference: ReferenceBase = {\n context_id: reference.context_id,\n Assessment: referenceAssessment\n };\n activity.References[idx] = normalisedReference;\n });\n }\n\n return activity;\n }\n\n /**\n * Turn references array objects to an easier accessible object\n * @param {Array} references array of reference\n * @returns normalised references object\n * @example\n */\n /*\n turns:\n [\n {\n \"context_id\": 25,\n \"Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\"\n }\n },\n {\n \"context_id\": 26,\n \"Assessment\": {\n \"id\": 20,\n \"name\": \"Check-In Workshop 2\"\n }\n },\n ...\n ]\n\n into:\n {\n 19: 25,\n 20: 26\n }\n */\n rebuildReferences(references) {\n let result = {};\n (references || []).forEach(ref => {\n result[ref.Assessment.id] = ref.context_id;\n });\n return result;\n }\n\n /**\n * @name mergeReferenceToSequence\n * @description extract and attach related context_id into assessments\n * @type {Object} activity single activity object\n * @example conversion formats below\n */\n /*\n turns:\n [\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n }\n ]\n\n into:\n {\n \"19\": {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n }\n */\n mergeReferenceToSequence(activity): Object {\n // @NOTE: first \"[0]\" sequence is the assessment of an activity\n let sequence = (activity.ActivitySequence) ? activity.ActivitySequence[0] : {};\n\n // `References` object is optional (modified on 6 October 2017)\n if (activity.References) {\n let refs = this.rebuildReferences(activity.References);\n if (!_.isEmpty(sequence)) {\n // @NOTE: API only support first ActivitySequence atm\n // activity.ActivitySequence.forEach(seq => {\n let modelId = sequence.model_id;\n sequence.context_id = refs[modelId];\n // });\n }\n }\n return sequence;\n }\n\n /*\n turns:\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n\n into:\n {\n \"id\": 19,\n \"context_id\": 25,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n */\n extractAssessment(sequence) {\n let assessment: any = {};\n if (sequence['Assess.Assessment']) {\n assessment = sequence['Assess.Assessment'];\n assessment.context_id = sequence.context_id;\n }\n return assessment;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/activity.service.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SubmissionService {\n targetUrl = 'api/submissions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n // list()\n getSubmissions(options?: any) {\n return this.request.get(this.targetUrl, options);\n }\n\n extractPhotos(data) {\n let photos = [];\n\n _.forEach(data, function(val, key) {\n _.forEach(val.AssessmentSubmissionAnswer, (answer, key) => {\n if (answer.answer && answer.answer.url !== undefined && answer.answer.mimetype !== undefined) {\n if (_.isString(answer.answer.mimetype) && answer.answer.mimetype.indexOf('image') !== -1) {\n // @TODO: I think we need standardise this format...\n photos.push({\n activity_id: val.AssessmentSubmission.activity_id,\n assessment_id: val.AssessmentSubmission.assessment_id,\n photo: answer.answer.url,\n submitted: val.AssessmentSubmission.submitted\n });\n }\n }\n });\n });\n\n return photos;\n }\n/*\n Turns:\n {\n \"AssessmentSubmission\": {\n \"id\": 4,\n \"submitter_id\": 19,\n \"created\": \"2017-07-18 03:28:09\",\n \"modified\": \"2017-07-18 03:28:09\",\n \"status\": \"done\",\n \"assessment_id\": 28,\n \"order\": null,\n \"submitted\": \"2017-07-18 03:28:12\",\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 23,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 26\n },\n \"Assessment\": {\n \"id\": 28,\n \"name\": \"Job Smart Initial Survey\",\n \"description\": \"This survey is a self-assessment of your employability skills. Be honest with yourself and leave room to improve. In the end of the program, you will be asked the same questions at the end of the program. Please take 5 minutes to reflect on your current state.
\",\n \"assessment_type\": \"survey\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:59:47\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentSubmissionAnswer\": [\n {\n \"id\": 10,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 92,\n \"answer\": 235,\n \"score\": \"0\"\n },\n {\n \"id\": 11,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 93,\n \"answer\": 240,\n \"score\": \"0\"\n },\n {\n \"id\": 12,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 94,\n \"answer\": 245,\n \"score\": \"0\"\n },\n {\n \"id\": 13,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 95,\n \"answer\": 250,\n \"score\": \"0\"\n },\n {\n \"id\": 14,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 96,\n \"answer\": 255,\n \"score\": \"0\"\n },\n {\n \"id\": 15,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 97,\n \"answer\": 260,\n \"score\": \"0\"\n },\n {\n \"id\": 16,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 98,\n \"answer\": 265,\n \"score\": \"0\"\n },\n {\n \"id\": 17,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 99,\n \"answer\": 270,\n \"score\": \"0\"\n }\n ],\n \"AssessmentReviewAnswer\": []\n }\n\n into:\n {\n\n }\n */\n normalise(respond) {\n let submission = respond['AssessmentSubmission'];\n let assessment = respond['Assessment'];\n let answer = respond['AssessmentSubmissionAnswer'];\n let review = respond['AssessmentReviewAnswer'];\n\n // preprocess date\n submission.created = moment.utc(submission.created);\n submission.modified = moment.utc(submission.modified);\n\n // submitted\n if (submission.submitted) {\n submission.submitted = moment.utc(submission.submitted);\n }\n\n return _.merge(submission, {\n assessment,\n answer,\n review\n });\n }\n\n /**\n * get assessment answer (submission)\n * @param {array} respond API respond from get_submissions\n */\n getAnswer(respond, activityId?: number) {\n let answer = this.normalise(respond).answer;\n return answer;\n }\n\n /**\n * get review (feedback from moderator)\n */\n getReview(review) {\n return review;\n }\n\n /**\n * extract reference IDs and prepare Observables to retrieve submissions\n * @param {array} references References array responded with get_activities() api\n */\n getSubmissionsByReferences(references) {\n let tasks = []; // multiple API requests\n\n // get_submissions API to retrieve submitted answer\n let getSubmissions = (contextId) => {\n return this.getSubmissions({\n search: {\n context_id: contextId\n }\n });\n };\n // Congregation of get_submissions API Observable with different context_id\n _.forEach(references, reference => {\n if (reference.context_id) {\n return tasks.push(getSubmissions(reference.context_id));\n }\n });\n\n return tasks;\n }\n // get user submissions data\n // @TODO Remove it later\n getSubmissionsData() {\n return this.getSubmissions();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/submission.service.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\n\nimport * as _ from 'lodash';\n\nclass Assessment {\n id: number;\n context_id: number;\n in_progress?: Boolean;\n}\n\nclass Answer {\n assessment_question_id: number;\n answer: String | Object | Array;\n choices?: Array;\n}\n\nexport class ChoiceBase {\n id: number;\n value?: number; // or choice id, usually same as \"id\" above\n name: string;\n description?: string;\n explanation?: string;\n order?: number;\n weight?: number;\n}\n\nexport class QuestionBase {\n id: number;\n question_id: number;\n group_id: number;\n assessment_id: number;\n name: string;\n type: string;\n file_type?: string;\n audience: Array;\n choices?: ChoiceBase[];\n answer?: any;\n required?: boolean;\n order?: string | number;\n\n constructor(id, assessment_id, name, type) {\n this.id = id;\n this.assessment_id = assessment_id;\n this.name = name;\n this.type = type;\n }\n}\n\nexport class Submission {\n Assessment: Assessment;\n AssessmentSubmission?: any;\n AssessmentSubmissionAnswer: Object;\n}\n\n@Injectable()\nexport class AssessmentService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * @description check feedback can show\n * @type {boolen}\n */\n isPublished(submissions: any):boolean {\n let published = false;\n _.forEach(submissions, (submission) => {\n _.forEach(submission, (subm) => {\n if (\n subm.AssessmentSubmission &&\n subm.AssessmentSubmission.status === 'published'\n ) {\n published = true;\n }\n });\n });\n return published;\n }\n\n // listAll()\n getAll(options?: any) {\n return this.request.get('api/assessments.json', options);\n }\n\n /**\n * get question's details\n * example:\n * - for multiple-type question, checkbox data is not available in\n * ActivitySequences (from get_activities API) and get_assessments API\n * - checkbox values (selected checkbox ids are required for post_assessments API) which\n * they are only available in this get_export_assessments api\n *\n * @param {any} options [description]\n */\n getQuestion(options?: any) {\n return this.request.get('api/export_assessments.json', options);\n }\n\n post(assessmentAnswer: Submission) {\n return this.request.post('api/assessment_submissions.json', assessmentAnswer, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * save progress using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n save(assessmentAnswer) {\n assessmentAnswer.Assessment.in_progress = true; // force in_progress\n\n return this.post(assessmentAnswer);\n }\n\n /**\n * submit using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n submit(assessmentAnswer) {\n return this.post(assessmentAnswer);\n }\n\n /*\n Turn API format from:\n {\n \"Assessment\": {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n },\n \"AssessmentGroup\": [\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n }\n },\n ...\n ]\n }\n ]\n }\n\n Into:\n {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n \"groups\": {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"questions\": [\n {\n \"id\": 100,\n \"assessment_question_id\": 100,\n \"assessment_group_id\": 28,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n \"order\": null,\n },\n ...\n ]\n }\n }\n */\n normalise(assessment) {\n let result = assessment.Assessment;\n let thisGroups = assessment.AssessmentGroup;\n\n thisGroups = thisGroups.map(group => {\n return this.normaliseGroup(group);\n });\n\n return {\n id: result.id,\n name: result.name,\n description: result.description,\n assessment_type: result.assessment_type,\n is_team: result.is_team,\n is_repeatable: result.is_repeatable,\n AssessmentGroup: thisGroups\n };\n }\n\n /*\n turn \"AssessmentGroup\" object format from:\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n },\n ...\n ]\n }\n\n into format:\n {\n id: group.id,\n name: group.name,\n description: group.description,\n assessment_id: group.assessment_id,\n order: group.order\n questions: [\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n },\n ...\n ],\n }\n */\n normaliseGroup(group) {\n // let result = group;\n let thisQuestions = group.AssessmentGroupQuestion;\n thisQuestions = thisQuestions.map(question => {\n return this.normaliseQuestion(question);\n });\n\n return {\n id: group.id,\n assessment_id: group.assessment_id,\n name: group.name,\n description: group.description,\n questions: thisQuestions,\n order: group.order,\n }\n }\n\n /*\n turn \"AssessmentGroupQuestion\" array format from:\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n }\n\n into:\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n }\n */\n normaliseQuestion(question): QuestionBase {\n let thisQuestion = question.AssessmentQuestion;\n let choices = thisQuestion.AssessmentQuestionChoice;\n\n choices = choices.map(choice => {\n return this.normaliseChoice(choice);\n });\n\n return {\n id: question.id,\n assessment_id: question.assessment_question_id,\n question_id: question.assessment_question_id,\n group_id: question.assessment_group_id,\n name: thisQuestion.name,\n type: thisQuestion.question_type,\n audience: thisQuestion.audience,\n file_type: thisQuestion.file_type,\n required: thisQuestion.is_required,\n choices: choices,\n order: question.order,\n answer: thisQuestion.answer\n };\n }\n\n /*\n turn \"AssessmentQuestionChoice\" array format from:\n {\n \"id\": 275,\n \"assessment_question_id\": 104,\n \"assessment_choice_id\": 275,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 275,\n \"name\": \"New Choice 1\",\n \"description\": \"bad\"\n }\n }\n\n into:\n {\n \"id\": 275,\n \"value\": 275, // or choice id, usually same as \"id\" above\n \"name\": \"New Choice 1\",\n \"description\": \"bad\",\n \"explanation\": null,\n \"order\": 1,\n \"weight\": \"1\",\n }\n */\n normaliseChoice(choice): ChoiceBase {\n return {\n id: choice.id, // same as assessment_choice_id & AssessmentChoice.id & id\n value: choice.assessment_choice_id, // or choice.id (similar id used as \"assessment_choice_id\")\n name: choice.AssessmentChoice.name,\n description: choice.AssessmentChoice.description,\n explanation: choice.explanation,\n order: choice.order,\n weight: choice.weight\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/assessment.service.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { Http } from '@angular/http';\nimport { NavController, ToastController, LoadingController, ModalController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { AchievementService } from '../../../services/achievement.service';\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { CharacterService } from '../../../services/character.service';\nimport { GameService } from '../../../services/game.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { ActivitiesViewPage } from '../view/activities-view.page';\nimport { ActivityListPopupPage } from './popup';\nimport { ItemsPopupPage } from '../../assessments/popup/items-popup.page';\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// pipes\nimport { TruncatePipe } from '../../../pipes/truncate.pipe';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'activities-list-page',\n templateUrl: 'list.html'\n})\nexport class ActivitiesListPage implements OnInit {\n achievements: any = {\n maxPoint: {},\n obtained: {},\n available: []\n };\n activities: any = [];\n activitiesEmptyDataErr: any = errMessages.Activities.activities.empty;\n activitiesLoadingErr: any = errMessages.General.loading.load;\n anyNewItems: any = this.cacheService.getLocal('gotNewItems');\n characterCurrentExperience: number = 0;\n characterData: any = [];\n currentPercentage: any = '0';\n currentPoints: number = 0;\n filteredSubmissions: any = [];\n initialItems: any = [];\n maxPoints: number = 0;\n newItemsData: any = [];\n returnError: boolean = false;\n percentageValue: number = 0;\n submissionData: any = [];\n submissionPoints: number = 0;\n totalAchievements: any = [];\n\n constructor(\n public achievementService: AchievementService,\n public activityService: ActivityService,\n public cacheService: CacheService,\n public characterService: CharacterService,\n public gameService: GameService,\n public http: Http,\n public loadingCtrl: LoadingController,\n public modalCtrl: ModalController,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.anyNewItems = this.cacheService.getLocal('gotNewItems');\n this.newItemsData = this.cacheService.getLocalObject('allNewItems');\n }\n ngOnInit() {\n this.loadingDashboard();\n }\n // refresher activities\n doRefresh(e) {\n this.loadingDashboard();\n e.complete();\n }\n // display user achievemnt statistics score points\n loadingDashboard() {\n let loadingData = this.loadingCtrl.create({\n content: 'Loading ..'\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.activitiesLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let getActivities = this.activityService.getList();\n loadingData.present().then(() => {\n getActivities.subscribe(\n results => {\n this.activities = results;\n if(this.activities.length == 0){\n this.returnError = true;\n }\n let getCharacter = this.characterService.getCharacter();\n let getSubmission = this.submissionService.getSubmissionsData();\n Observable.forkJoin([getSubmission, getCharacter])\n .subscribe(results => {\n loadingData.dismiss().then(() => {\n this.submissionData = results[0];\n _.forEach(this.submissionData, element => {\n if(element.AssessmentSubmission.status == 'published' || element.AssessmentSubmission.status == 'done'){\n if(element.AssessmentSubmission.moderated_score !== null){\n this.filteredSubmissions.push(element.AssessmentSubmission);\n this.submissionPoints += parseFloat(element.AssessmentSubmission.moderated_score);\n }\n }\n });\n let average_score = (this.submissionPoints/this.filteredSubmissions.length)*100;\n (average_score > 0) ? this.percentageValue = average_score : this.percentageValue = 0;\n this.currentPercentage = this.percentageValue.toFixed(2);\n // console.log('Percent: ', this.currentPercentage); // display as string format\n this.characterData = results[1].Characters[0];\n this.cacheService.setLocal('character_id', this.characterData.id);\n console.log('character id: ', this.characterData.id);\n this.characterCurrentExperience = this.characterData.experience_points;\n // console.log('Experience: ', this.characterCurrentExperience);\n this.gameService.getItems({\n character_id: this.characterData.id\n })\n .subscribe(\n data => {\n this.initialItems = data.Items;\n this.cacheService.setLocalObject('initialItems', this.initialItems);\n console.log('Items Data: ', this.initialItems);\n },\n err => {\n console.log('Items Data error: ', err);\n }\n );\n });\n },\n err => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n },\n error => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n });\n }\n // redirect to activity detail page\n goToDetail(activity: any, id: any){\n this.navCtrl.push(ActivitiesViewPage, {\n achievements: this.achievements,\n activity: activity\n });\n }\n // view the disabled activity popup\n goToPopup(unlock_id: any){\n let disabledActivityPopup = this.modalCtrl.create(ActivityListPopupPage, {unlock_id: unlock_id});\n console.log('Achievement ID: ', unlock_id);\n disabledActivityPopup.present();\n }\n // close modal and display as main page\n closeItemsShwon(){\n this.anyNewItems = !this.cacheService.getLocal('gotNewItems');\n this.cacheService.setLocalObject('allNewItems', []);\n this.cacheService.setLocal('gotNewItems', !this.cacheService.getLocal('gotNewItems'));\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/list.page.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class AchievementService {\n target_model = 'program';\n target_id = this.cacheService.getLocalObject('program_id');\n getMaximumPointsUrl = `api/maximum_points.json?target_model=${this.target_model}&target_id=${this.target_id}`;\n totalAchievementUrl = 'api/achievements.json';\n userAchievementUrl = 'api/user_achievements.json';\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n // List Maximum Point Of Total Achievements\n getMaxPoints(){\n return this.request.get(this.getMaximumPointsUrl);\n }\n\n // List User Achievements\n getAchievements(params = {}) {\n return this.request.get(this.userAchievementUrl);\n }\n\n // List All Achievements\n getAll() {\n return this.request.get(this.totalAchievementUrl);\n }\n\n /*\n turn:\n {\n \"Achievement\": {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 4,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n }\n\n into:\n {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 1,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n */\n normalise(achievement) {\n return achievement.Achievement;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/achievement.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class EventService {\n bookEventUrl = 'api/book_events.json';\n targetUrl = 'api/events.json';\n\n constructor(\n public cache: CacheService,\n public request: RequestService\n ) {}\n\n getEvents(options: Object = {}) {\n options = _.merge({\n search: {\n type: 'session'\n }\n }, options);\n\n return this.request.get(this.targetUrl, options)\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(events) {\n _.forEach(events, (event, idx) => {\n events[idx].isAttended = (event.isBooked === true && moment().isAfter(moment(event.end)));\n // We assume server datetime response is UTC...\n events[idx].startDisplay = moment.utc(event.start).local().format(\"dddd, MMM D [at] h:mm A\");\n });\n\n return events;\n }\n\n /**\n * download attachment by single event object\n * @param {[type]} event [description]\n */\n\n downloadAttachment(event) {\n let url = event.fileUrl;\n // var blob = new Blob([data], { type: 'text/csv' });\n // var url= window.URL.createObjectURL(blob);\n window.open(url);\n }\n\n /**\n * get event using observable\n * @param {integer} eventId single event id\n */\n bookEvent(eventId) {\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('event_id', eventId);\n return this.request.post(this.bookEventUrl, urlSearchParams);\n }\n\n cancelEventBooking(eventId){\n return this.request.delete(this.bookEventUrl + '?event_id=' + eventId);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/event.service.ts","import { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FilepickerConfig, FilepickerService } from './filepicker.service';\nimport { FilePreviewDirective } from './file-preview.directive';\n\n@NgModule({\n imports: [ CommonModule ],\n providers: [\n FilepickerService\n ],\n declarations: [\n FilePreviewDirective\n ],\n exports: [\n FilePreviewDirective,\n CommonModule,\n ]\n})\n\nexport class FilepickerModule {\n constructor(@Optional() @SkipSelf() parentModule: FilepickerModule) {\n if (parentModule) {\n throw new Error('FilepickerModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: FilepickerConfig): ModuleWithProviders {\n return {\n ngModule: FilepickerModule,\n providers: [\n {provide: FilepickerConfig, useValue: config}\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.module.ts","import { Directive, ElementRef, Renderer, Input, OnChanges } from '@angular/core';\nimport { WindowRef } from '../window';\n\n@Directive({\n selector: '[file-preview]'\n})\nexport class FilePreviewDirective implements OnChanges {\n @Input('file-preview') url: string;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer,\n private win: WindowRef\n ) {\n el.nativeElement.style.width = '100%';\n el.nativeElement.style.height = win.nativeWindow.screen.height+'px' || '500px';\n }\n\n ngOnChanges () {\n let el = this.el.nativeElement;\n let url = this.url || el.getAttribute('file-preview');\n\n if (url && url.length > 0) {\n url = url.replace('api/file/', 'api/preview/');\n let iframe = this.renderer.createElement(el, 'iframe');\n\n /* Set full size so it gets size from parrent element */\n iframe.width = '100%';\n iframe.height = '100%';\n\n iframe.src = url;\n } else {\n el.innerHtml = '

Invalid attachment URL found.

';\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/file-preview.directive.ts","import { NgModule } from '@angular/core';\nimport { UtilsService } from './utils.service';\n\n@NgModule({\n providers: [UtilsService]\n})\n\nexport class UtilsModule {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/utils/utils.module.ts","/**\n * Instructions:\n * To use this test module, insert \"my-test\" attribute to your HTML tag.\n * It'll generate a full Ionic Page,\n * so it's recommended to include it only if you need it as single full page/component.\n */\n\nimport { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule} from '@angular/common';\nimport { TestPage } from './pages/test/test.page';\nimport { TestStartPage } from './pages/test/test-start.page';\nimport { TestDirective } from './test.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IonicModule\n ],\n declarations: [\n TestPage,\n TestStartPage,\n TestDirective,\n ],\n exports: [\n TestPage,\n TestStartPage,\n TestDirective,\n CommonModule,\n IonicModule\n ]\n})\n\nexport class TestModule {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.module.ts","import { Component, ViewChild } from '@angular/core';\n// import { TestStartPage } from './test-start.page';\n\n@Component({\n selector: 'full-test',\n template: `\n \n Test page\n \n \n\n \n \n `\n})\nexport class TestPage {\n @ViewChild('something') nav;\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n something() {\n console.log(this.nav);\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test.page.ts","import { Component, ViewChild, ViewChildren } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// pages\nimport { AchievementsViewPage } from '../../../../pages/achievements/view/achievements-view.page';\nimport { AssessmentsGroupPage } from '../../../../pages/assessments/group/assessments-group.page';\nimport { ActivitiesClassicListPage } from '../../../../pages/activities-classic/list/activities-classic-list.page';\nimport { EventsListPage } from '../../../../pages/events/list/list.page';\nimport { EventsDownloadPage } from '../../../../pages/events/download/events-download.page';\nimport { GalleryPage } from '../../../../pages/gallery/gallery';\nimport { LevelsListPage } from '../../../../pages/levels/list/list';\nimport { LoginPage } from '../../../../pages/login/login';\nimport { RegistrationPage } from '../../../../pages/registration/registration.page';\nimport { SettingsPage } from '../../../../pages/settings/settings.page';\nimport { EventCheckinPage } from '../../../../pages/events/checkin/event-checkin.page';\nimport { TeamPage } from '../../../../pages/team/team';\nimport { CelebrationPage } from '../../../../pages/spinwheel/celebration.page';\n\nconst PAGES = [\n {\n name: 'celebration',\n page: CelebrationPage\n },\n {\n name: 'Check-in',\n page: EventCheckinPage,\n params: {\n event: {\n \"id\": 132,\n \"activity_id\": 35,\n \"start\": \"2017-04-01 08:15:00\",\n \"end\": \"2018-03-16 09:15:00\",\n \"location\": \"location\",\n \"title\": \"Year long\",\n \"description\": \"Test\",\n \"capacity\": 40,\n \"remaining_capacity_percentage\": 95,\n \"remaining_capacity\": 38,\n \"isBooked\": true,\n \"files\": [],\n \"References\": [\n {\n \"context_id\": 44,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n }\n }\n ],\n \"isAttended\": false,\n \"startDisplay\": \"Saturday, Apr 1 at 4:15 PM\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"Activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n }\n },\n \"ActivitySequence\": [\n {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n }\n ],\n \"References\": [\n {\n \"context_id\": 43,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\"\n }\n }\n ]\n },\n \"coverUrl\": \"/assets/img/static/event-cover-3.jpg\",\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n },\n \"context_id\": 44\n },\n submissions: [\n {\n \"id\": 20,\n \"submitter_id\": 20,\n \"created\": \"2017-07-28 03:05:36\",\n \"modified\": \"2017-07-28 03:05:38\",\n \"status\": \"in progress\",\n \"assessment_id\": 37,\n \"order\": null,\n \"submitted\": null,\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 132,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 44,\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"answer\": [\n {\n \"id\": 75,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 129,\n \"answer\": 284,\n \"score\": \"0\"\n },\n {\n \"id\": 76,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 132,\n \"answer\": {\n \"filename\": \"stuckhere.png\",\n \"handle\": \"iALqct8jRSuKhVs3NB8C\",\n \"mimetype\": \"image/png\",\n \"originalPath\": \"stuckhere.png\",\n \"size\": 195280,\n \"source\": \"local_file_system\",\n \"url\": \"https://cdn.filestackcontent.com/iALqct8jRSuKhVs3NB8C\",\n \"status\": \"Stored\",\n \"icon\": \"fa-image\",\n \"key\": \"iALqct8jRSuKhVs3NB8C\"\n },\n \"score\": \"0\"\n }\n ],\n \"review\": []\n }\n ]\n }\n },\n {\n name: 'Multiple Choice Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n\n ]\n },\n assessment: {\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Multiple Option Question\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"quiz\",\n \"is_live\": false,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 5,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2016-06-23 06:07:39.681326\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentQuestion\": [\n {\n \"name\": \"1st Multitple Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 140,\n \"assessment_id\": 37\n },\n {\n \"name\": \"2nd Multi Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 141,\n \"assessment_id\": 37,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n ],\n \"AssessmentGroup\": [\n {\n \"id\": 42,\n \"assessment_id\": 37,\n \"name\": \"1st Group\",\n \"description\": \"\",\n \"order\": 1,\n \"review_instructions\": \"\",\n \"restart_numbering\": false,\n \"AssessmentGroupQuestion\": [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n ]\n }\n ],\n\n }\n }\n },\n {\n name: 'Assorted Assessments Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n AssessmentQuestion: {\n id: 4,\n question_type: 'file',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: 'image',\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 5,\n question_type: 'multiple',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'Multiple: 3 choices Questions',\n is_required: true\n }\n },\n\n {\n AssessmentQuestion: {\n\n id: 1,\n question_type: 'oneof',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'SITUATION: The context in which this experience took place',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 2,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 3,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'ACTION: What did I do given the situation and the task?',\n is_required: true\n }\n }\n ]\n },\n assessment: {\n Assessment: {\n id:'temporary_fake_id'\n },\n AssessmentGroupQuestion: []\n\n }\n }\n },\n {\n name: 'Events',\n page: EventsListPage\n },\n {\n name: 'Events Download',\n page: EventsDownloadPage\n },\n {\n name: 'Registration',\n page: RegistrationPage\n },\n {\n name: 'Gallery',\n page: GalleryPage\n },\n {\n name: 'Login',\n page: LoginPage\n },\n {\n name: 'Activities',\n page: ActivitiesClassicListPage\n },\n {\n name: 'Levels',\n page: LevelsListPage\n },\n {\n name: 'Teams',\n page: TeamPage\n },\n {\n name: 'Setting',\n page: SettingsPage\n },\n {\n name: 'Achievement View',\n page: AchievementsViewPage\n }\n];\n\n@Component({\n selector: 'my-test',\n templateUrl: 'test.html'\n})\nexport class TestStartPage {\n items: Array = PAGES;\n\n testPage;\n\n constructor(public nav: NavController) {\n // console.log('ActivitiesClassicListPage', ActivitiesClassicListPage)\n // console.log('??', ActivitiesClassicListPage);\n }\n\n goTo(nav) {\n this.testPage = nav.page;\n\n this.nav.push(nav.page, nav.params || null);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test-start.page.ts","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: './celebration.html'\n})\nexport class CelebrationPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/spinwheel/celebration.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'test-page',\n template: ``\n})\nexport class TestDirective {\n rootPage = null;\n @ViewChild('testPage') nav: NavController;\n\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n goBack() {\n console.log(this.nav);\n this.nav.pop();\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.directive.ts","import { NgModule } from '@angular/core';\nimport { TranslationService } from './translation.service';\n@NgModule({\n providers: [ TranslationService ]\n})\nexport class TranslationModule {}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.module.ts","import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable()\nexport class GroupEmitterService {\n static _emitter: { [ID: string]: EventEmitter };\n\n static get(ID: string): EventEmitter {\n if (!this._emitter[ID]) {\n this._emitter[ID] = new EventEmitter();\n }\n return this._emitter[ID];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/group-emitter.service.ts","import {\n ModuleWithProviders,\n NgModule,\n SkipSelf,\n Optional\n} from '@angular/core';\nimport { HttpModule } from '@angular/http';\nimport { CommonModule} from '@angular/common';\nimport '../rxjs-operators';\nimport { RequestServiceConfig, RequestService } from './request.service';\n\n@NgModule({\n imports: [HttpModule, CommonModule, /* spare a space for appcache module*/],\n providers: [\n RequestService,\n // { provide: RequestOptions, useClass: CustomRequestOption }\n ]\n})\n\nexport class RequestModule {\n constructor(@Optional() @SkipSelf() parentModule: RequestModule) {\n if (parentModule) {\n throw new Error(\n 'CoreModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: RequestServiceConfig): ModuleWithProviders {\n return {\n ngModule: RequestModule,\n providers: [\n {\n provide: RequestServiceConfig, useValue: config\n }\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/request/request.module.ts","// import 'rxjs/Rx'; // adds ALL RxJS statics & operators to Observable\n\n// See node_module/rxjs/Rxjs.js\n// Import just the rxjs statics and operators we need for THIS app.\n\n// Statics\nimport 'rxjs/add/observable/throw';\nimport 'rxjs/add/observable/of';\nimport 'rxjs/add/observable/forkJoin';\nimport 'rxjs/add/observable/from';\n\n// Operators\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/debounceTime';\nimport 'rxjs/add/operator/distinctUntilChanged';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/do';\nimport 'rxjs/add/operator/finally';\n// import 'rxjs/subject';\n// import 'rxjs/add/operator/switchMap';\nimport 'rxjs/add/operator/toPromise';\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/rxjs-operators.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SessionService {\n targetUrl = 'api/sessions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n getSessions() {\n return this.request.get(this.targetUrl)\n .map(response => response.json())\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(session) {\n session.start = moment.utc(session.start);\n session.end = moment.utc(session.end);\n session.isExpired = moment().isAfter(session.end);\n session.isFull = false;\n\n if (session.remaining_capacity === 0) {\n session.isFull = true;\n }\n return session;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/session.service.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\nimport { TruncatePipe } from '../../pipes/truncate.pipe';\n\n@Component({\n selector: 'questionGroup',\n templateUrl: 'question-group.html',\n})\nexport class QuestionGroupComponent {\n @Input() group: any = {};\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/question-group/question-group.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// Services\nimport { EventService } from '../../services/event.service';\n// Others\nimport * as moment from 'moment';\n\n@Component({\n selector: 'event',\n templateUrl: 'event.html'\n})\nexport class EventComponent {\n @Input() event: any;\n\n constructor(\n public eventService: EventService,\n public navCtrl: NavController\n ) {}\n\n // Check event has been booked\n isBookedEvent(event) {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }\n\n // Check event has been booked and attended\n isAttendedEvent(event) {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }\n\n download() {\n this.eventService.downloadAttachment(this.event);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/event/event.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'level',\n templateUrl: 'level.html'\n})\nexport class LevelComponent {\n @Input() level;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoLevel(levelId) {\n // this.navCtrl.push(levelDetail);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/level/level.ts","import { Component } from '@angular/core';\n\n@Component({\n selector: 'loading-marker',\n templateUrl: 'loadingMarker.html'\n})\nexport class LoadingMarkerComponent {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loadingMarker/loadingMarker.ts","import { Component } from '@angular/core';\n\n@Component({\n selector: 'locker',\n templateUrl: 'locker.html'\n})\nexport class LockerComponent {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/locker/locker.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'member',\n templateUrl: 'member.html'\n})\nexport class MemberComponent {\n @Input() member;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public sendEmail(target) {\n alert('Send email to ' + target);\n // var emails = lodash.map($scope.members, 'email');\n // var link = 'mailto:' + lodash.join(emails, ',');\n // window.location.href = link;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/member/member.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'photo',\n templateUrl: 'photo.html'\n})\nexport class PhotoComponent {\n @Input() photo;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoPhoto(photoId) {\n // this.navCtrl.push();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/photo/photo.ts","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AuthService } from '../../services/auth.service';\n\n\nconst TermContent = `

Terms of Use Agreement

\n\n

Welcome! By using this platform managed by Intersective Pty Ltd, you are agreeing to comply with and be bound by the following terms of use. These terms are intended to cover the use of the Practera Platform (the Platform) and activities and tasks closely associated with the use of the Platform. Please review the following terms carefully. If you do not agree to these terms, you should not progress any further, and/or communicate with your organisation’s program coordinator.

\n

1. Acceptance of Agreement. You agree to the terms and conditions outlined in this Terms of Use Agreement (\"Agreement\") with respect to the program platform (the \"Platform\"). This Agreement constitutes the entire and only agreement between us and you, and supersedes all prior or contemporaneous agreements, representations, warranties and understandings with respect to the Platform, the content, products or services provided by or through the Platform, and the subject matter of this Agreement. This Agreement may be amended at any time by us from time to time without specific notice to you. The latest Agreement will be posted on the Platform, and you should review this Agreement prior to using the Platform.\n

\n\n

2. Copyright. The content, organization, graphics, design, compilation, magnetic translation, digital conversion and other matters related to the Platform are protected under applicable copyrights, trademarks and other proprietary (including but not limited to intellectual property) rights. The copying, redistribution, use or publication by you of anysuch matters or any part of the Platform, except as allowed by Section 3, is strictly prohibited. You do not acquire ownership rights to any content, document or other materials viewed through the Platform. The posting of information or materials on the Platform does not constitute a waiver of any right in such information and materials.\n

\n\n

3. Limited Right to Use. The viewing, printing or downloading of any content, graphic, form or document from the Platform grants you only a limited, nonexclusive license for use solely by you for your own personal use and not for republication, distribution, assignment, sublicense, sale, preparation of derivative works or other use. No part of any content, form or document may be reproduced in any form or incorporated into any information retrieval system, electronic or mechanical, other than for your personal use (but not for resale or redistribution).\n

\n\n

4. Editing, Deleting and Modification. We reserve the right in our sole discretion to edit or delete any documents, information or other content appearing on the Platform.\n

\n\n

5. Indemnification. You agree to indemnify, defend and hold us and our partners, staff and affiliates (collectively, \"Affiliated Parties\") harmless from any liability, loss, claim and expense, including reasonable legal fees, related to your violation of this Agreement or use of the Platform.\n

\n\n

6. Nontransferable. Your right to use the Platform is not transferable. Any password or right given to you to obtain information or documents is not transferable.\n

\n\n

7. Disclaimer and Limits. All responsibility or liability for any damages caused by viruses contained within the electronic file containing the form or document is disclaimed. WE WILL NOT BE LIABLE TO YOU FOR ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OF ANY KIND THAT MAY RESULT FROM USE OF OR INABILITY TO USE OUR PLATFORM.\n

\n\n

8. Use of Information. We reserve the right, and you authorize us, to the use and assignment of all information regarding Platform uses by you and all information provided by you in any manner consistent with our Privacy Policy.\n

\n\n

9. Third-Party Access. We may allow access to the platform, or to any information contained within the platform, to thirdparties in our absolute discretion, subject to our Privacy Policy.\n

\n\n

10. Privacy Policy. Our Privacy Policy, as it may change from time to time, is a part of this Agreement.\n

\n\n

11. Links to other Web Sites. The Site contains links to other Web Sites. We are not responsible for the content, accuracy or opinions express in such Web Sites, and such Web Sites are not investigated, monitored or checked for accuracy or completeness by us. Inclusion of any linked Web Site on our Site does not imply approval or endorsement of the linked Web Site by us. If you decide to leave our Site and access these third-party Sites, you do so at your own risk.\n

\n\n

12. License of user content. You grant Intersective and any other users of the platform, an irrevocable, global and perpetual license to use any and all content submitted into the platform, including, without limitation, your documents, deliverables, assignments, class notes, course outlines, submits, posts, uploads, displays, reviews, suggestions, ideas, solutions, questions, answers, messages, images, videos, texts of any kind, or other materials for any purposes whatsoever, including, without limitation, developing, manufacturing and marketing products and services for commercial purposes, without any payment or compensation to you. You further agree that Intersective may give free access to all of your above mentioned user content to other third parties, including, without limitation, affiliates, distributors, other users or potential users. You waive any legal or moral rights you may have in any User Content you submit, even if such User Content is altered or changed in any manner.\n

\n\n

Privacy Policy

\n

1. We respect your privacy. As the manager of the program Platform (“The Platform”) Intersective respects your right to privacy and this policy sets out how we collect and treat your personal information. “Personal information” is information we hold which is identifiable as being about you.\n

\n\n

2. What personal information we collect. We may collect a range of types of personal information from you, including, but not limited to, the following:

\n
    \n
  • name
  • \n
  • demographic information – eg; age, gender, socio-economic status
  • \n
  • psychographic information – eg personality, interests, attitudes, behaviours and opinions
  • \n
  • educational history
  • \n
  • employment history
  • \n
  • student number
  • \n
  • user ideas and comments
  • \n
  • information from enquiries you have made
  • \n
  • communications between program participants
  • \n
  • assessments marks and details
  • \n
  • digital and multimedia
  • \n
\n

\n\n

3. How we collect your personal information. We collect personal information from you in a variety of ways, including: when you interact with us electronically or in person; when you access our website; and when we provide our services to you.\n

\n\n

4. Use of your personal information. We use your information to provide our service to you. We also use it to improve our service and to notify you of opportunities that we think you might be interested in. We do not provide or sell your information to third parties, except that we may provide your information to our program partners who support the provision of our services to you expressly for the purpose of facilitating the delivery of that service.\n

\n\n

5. Disclosure of your personal information overseas. We are likely to disclose your personal information to recipients globally.\n

\n\n

6. Security of your personal information. We take reasonable steps to protect your personal information. However we are not liable for any unauthorised access to this information.\n

\n\n

7. Access to your personal information. You can access and update your personal information by contacting us on {{helpline}}\n

\n\n

8. Complaints about privacy. If you have any complaints about our privacy practices, please feel free to send in details of your complaints to {{helpline}}. We take complaints very seriously and will respond shortly after receiving written notice of your complaint.\n

\n\n

9. Changes. Please be aware that we may change this Privacy Policy in the future. The revised versions will be uploaded onto our website, so please check back from time to time.\n

\n\n

10. Website.

\n

When you visit our website

\n

When you come on to our website we may collect certain information such as browser type, operating system, website visited immediately before coming to our site, etc. This information is used in an aggregated manner to analyse how people use our site, such that we can improve our service.

\n\n

Cookies

\n

As is very common for companies, we use cookies on our website. Cookies are very small files which a website uses to identify you when you come back to the site and to store details about your use of the site. Cookies are not malicious programs that access or damage your computer. We use cookies to improve the experience of people using our website.\nThird party sites\nOur site has links to other websites not owned or controlled by us. We are not responsible for these sites or the consequences of you going on to those sites.

`;\n\n@Component({\n selector: 'term-content',\n template: '
'\n})\nexport class TermContentComponent {\n content: string;\n constructor(public sanitizer: DomSanitizer, public authService: AuthService) {\n this.content = TermContent;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-content.component.ts","import { Component, Input, OnInit, NgZone } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n// Others\nimport { FilepickerService, FilepickerUpload } from '../../shared/filepicker/filepicker.service';\nimport { UtilsService } from '../../shared/utils/utils.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'file-question',\n templateUrl: './file.html'\n})\nexport class FileQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n uploaded: any; // uploaded file (support single only)\n // uploaded: Array = []; // uploaded files\n\n constructor(\n public fs: FilepickerService,\n public util: UtilsService,\n public zone: NgZone\n ) {}\n\n /**\n * @description at file type question initiation,\n * uploaded files is retrieved from cached form (if available)\n */\n ngOnInit() {\n this.uploaded = _.isEmpty(this.form.controls.answer.value) ? false : this.form.controls.answer.value;\n }\n\n /**\n * @description Upload file and trigger ngzone to update this.uploaded variable\n */\n upload(event) {\n let self = this;\n\n this.fs.pick({\n maxFiles: 1,\n storeTo: {\n location: 's3'\n }\n }).then((uploaded: FilepickerUpload) => {\n self.zone.run(() => {\n if (uploaded.filesUploaded.length > 0) {\n let file = uploaded.filesUploaded.shift();\n file.icon = self.util.getIcon(file.mimetype);\n\n // post_assessment_submission API requirement \"key\"\n file.key = file.handle;\n\n self.uploaded = file;\n this.form.controls.answer.setValue(self.uploaded);\n }\n\n if (uploaded.filesFailed.length > 0) {\n console.log(uploaded.filesFailed.length, ' file(s) not uploaded.');\n }\n });\n });\n }\n\n injectIcon = (files: any[]) => {\n let result = [];\n files.forEach((file, index) => {\n file.icon = this.util.getIcon(file.mimetype);\n result.push(file);\n });\n\n return result;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/file.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'oneof-question',\n templateUrl: './oneof.html'\n})\nexport class OneofQuestionComponent implements OnInit {\n @Input() question;\n @Input() form: FormGroup;\n @Input() disabled;\n @Output() oneofForm = new EventEmitter();\n\n constructor() {}\n change(e) {\n this.oneofForm.emit(e);\n }\n\n ngOnInit() {\n // console.log(this.question);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/oneof.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'text-question',\n templateUrl: './text.html'\n})\nexport class TextQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/text.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'multiple-question',\n templateUrl: './multiple.html'\n})\nexport class MultipleQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n change(e) {\n console.log(e);\n console.log(this.question);\n }\n\n ngOnInit() {\n console.log(this.form);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/multiple.ts","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'feedback',\n templateUrl: './feedback.html'\n})\nexport class FeedbackComponent implements OnInit {\n @Input() question;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/feedback.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'events',\n templateUrl: 'events.html'\n})\nexport class EventsComponent {\n @Input() events;\n\n constructor(\n public navCtrl: NavController\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/events/events.component.ts","import { Component, Injectable } from '@angular/core';\nimport { ViewController, LoadingController, NavParams, NavController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { TranslateService } from '@ngx-translate/core';\n// pages\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\n\n@Injectable()\n@Component({\n selector: 'items-popup',\n templateUrl: 'items-popup.html'\n})\nexport class ItemsPopupPage {\n public combinedData: any = [];\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n\n constructor(\n public cacheService: CacheService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {}\n\n ionViewWillEnter() {\n this.combinedData = this.cacheService.getLocalObject('allNewItems');\n }\n\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/popup/items-popup.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController, MenuController } from 'ionic-angular';\n\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { LevelsListPage } from '../levels/list/list';\n\n/* This is side navigation bar which shows after user logged in to the app */\n@Component({\n selector: 'page-sidenav',\n templateUrl: 'sidenav.html'\n})\nexport class SidenavPage {\n @ViewChild('sideNav') sideNav: NavController;\n\n activitiesListPage = ActivitiesListPage;\n levelsListPage = LevelsListPage;\n loginPage = LoginPage;\n rootPage = null;\n tabsPage = TabsPage;\n\n constructor(\n public menuCtrl: MenuController\n ) {\n this.rootPage = LoginPage;\n }\n\n onLoad(page: any) {\n this.sideNav.setRoot(page);\n this.menuCtrl.close();\n } // handles when user login load specific page which selected/clicked by user\n\n onLogout() {\n localStorage.clear();\n this.menuCtrl.close();\n this.sideNav.setRoot(LoginPage);\n } // handles when user logout\n\n isLoggedin() {\n return localStorage.getItem('isAuthenticated') == 'true';\n }\n // this functin is to check if user is logged in, the value is turn to true,\n // navbar shows all listed page links, else navbar only show login link button\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/sidenav/sidenav.ts","import {Pipe, PipeTransform} from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({ name: 'timeago' })\nexport class TimeAgoPipe implements PipeTransform {\n transform(input, p_allowFuture?: any) : any {\n if (!input || input.length === 0) {\n return '';\n }\n\n // treat API date as UTC\n input = moment.utc(input);\n\n var substitute = function (timeStamp, num, strings) {\n // var string = angular.isFunction(timeStamp) ? timeStamp(num, dateDifference) : timeStamp;\n var string = timeStamp;\n var value = (strings.numbers && strings.numbers[num]) || num;\n return string.replace(/%d/i, value);\n },\n nowTime = (new Date()).getTime(),\n date = (new Date(input)).getTime(),\n //refreshMillis= 6e4, //A minute\n allowFuture = p_allowFuture || false,\n strings= {\n prefixAgo: '',\n prefixFromNow: '',\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n seconds: \"less than a minute\",\n minute: \"about a minute\",\n minutes: \"%d minutes\",\n hour: \"about an hour\",\n hours: \"about %d hours\",\n day: \"a day\",\n days: \"%d days\",\n month: \"about a month\",\n months: \"%d months\",\n year: \"about a year\",\n years: \"%d years\",\n wordSeparator: ' '\n },\n dateDifference = nowTime - date,\n words,\n seconds = Math.abs(dateDifference) / 1000,\n minutes = seconds / 60,\n hours = minutes / 60,\n days = hours / 24,\n years = days / 365,\n separator = strings.wordSeparator,\n\n\n prefix = strings.prefixAgo,\n suffix = strings.suffixAgo;\n\n if (allowFuture) {\n if (dateDifference < 0) {\n prefix = strings.prefixFromNow;\n suffix = strings.suffixFromNow;\n }\n }\n\n words = seconds < 45 && substitute(strings.seconds, Math.round(seconds), strings) ||\n seconds < 90 && substitute(strings.minute, 1, strings) ||\n minutes < 45 && substitute(strings.minutes, Math.round(minutes), strings) ||\n minutes < 90 && substitute(strings.hour, 1, strings) ||\n hours < 24 && substitute(strings.hours, Math.round(hours), strings) ||\n hours < 42 && substitute(strings.day, 1, strings) ||\n days < 30 && substitute(strings.days, Math.round(days), strings) ||\n days < 45 && substitute(strings.month, 1, strings) ||\n days < 365 && substitute(strings.months, Math.round(days / 30), strings) ||\n years < 1.5 && substitute(strings.year, 1, strings) ||\n substitute(strings.years, Math.round(years), strings);\n\n prefix.replace(/ /g, '');\n words.replace(/ /g, '');\n suffix.replace(/ /g, '');\n return (prefix+' '+words+' '+suffix+' '+separator);\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/timeago.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ucfirst'\n})\n// replication of PHP native ucfirst()\nexport class UcfirstPipe implements PipeTransform {\n transform(input: string): any {\n let result = '';\n\n // turn first letter of word into upper case\n var capitalizeFirstLetter = function (string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n };\n\n if (input) {\n result = capitalizeFirstLetter(input);\n }\n\n return result;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/ucfirst.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, maxLength: number): string {\n if (value.length < maxLength) {\n return value;\n }\n return value.substring(0, maxLength) + '...';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/truncate.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: 'keepHtml', pure: false })\nexport class EscapeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(content) {\n return this.sanitizer.bypassSecurityTrustHtml(content);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/keep-html.pipe.ts","// Need update read me\n// Copy file to config.ts\nexport default {\n prefixUrl: 'http://local.practera.com:8080/',\n appKey: 'b11ccabf11',\n filestack: {\n apiKey: ''\n },\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/configs/config.ts","import { Component } from '@angular/core';\nimport { NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { EventService } from '../../../services/event.service';\n// pages\nimport { EventsViewPage } from '../view/events-view.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'events-list-page',\n templateUrl: 'list.html'\n})\nexport class EventsListPage {\n activities = {};\n emptyFilterErrMessage = errMessages.Events.filter.empty; // loading & error message variables\n events = []; // ordered events array in filterEvents and to be access through template\n filter = 'browses';\n loadedEvents = []; // Further processed events array, for public use\n noAttendedFilterErrMessage = errMessages.Events.filter.noAttended;\n noBookingsFilterErrMessage = errMessages.Events.filter.noBookings;\n noEvents = false;\n\n constructor(\n public activityService: ActivityService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n /**\n * @name filterEvents\n * @description filter and group events into 3 catergories (attended, my-bookings, browses)\n * attended: expired & booked\n * my-bookings: active event & booked\n * browses: list of available events\n */\n filterEvents() {\n this.noEvents = false;\n switch(this.filter) {\n case 'attended':\n // List all ended event in order of end time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }), 'start', 'desc');\n break;\n case 'my-bookings':\n // List all booked event in order of start time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }), 'start', 'asc');\n break;\n case 'browses':\n // List all not booked and not ended event in order of start time (asc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n // return (moment(event.end).isAfter() && event.isBooked === false);\n // return (moment().isBefore(moment(event.end)) && event.isBooked === false);\n return (moment(event.end).isAfter() && event.isBooked === false);\n }), 'start', 'asc');\n break;\n }\n if (this.events.length === 0) {\n this.noEvents = true;\n }\n return this.events;\n }\n\n // Called when tap on filter tab\n selected(filter) {\n this.filter = filter;\n this.events = this.filterEvents();\n }\n\n // Check total of events, return \"true\" when 0 found\n showNoEventMessage() {\n return (this.noEvents);\n }\n\n /**\n * @name loadEvents\n * @description retrieve events (from get_events) with a list of activity_id (from get_activity)\n * @return {Promise}\n */\n loadEvents(): Promise {\n return new Promise((resolve, reject) => {\n // Get activities IDs\n this.activityService.getList().toPromise()\n .then((activities) => {\n this.activities = {};\n let activityIDs = [];\n _.forEach(activities, (act) => {\n this.activities[act.Activity.id] = act;\n activityIDs.push(act.Activity.id);\n });\n\n // Get event by activityIDs\n this.eventService.getEvents({\n search: {\n activity_id: '[' + _.toString(activityIDs) + ']',\n type: 'session'\n }\n })\n .then((events) => {\n // loadedEvents will never change (public use),\n // it will be used for filtering of events (prep for display/template variable).\n this.loadedEvents = this._injectCover(this._mapWithActivity(events));\n\n // events use to rendering on page\n this.events = _.clone(this.loadedEvents);\n this.filterEvents();\n return resolve();\n }, reject);\n }, reject);\n });\n }\n\n ionViewDidEnter() {\n let loader = this.loadingCtrl.create();\n\n loader.present().then(() => {\n this.loadEvents().then(() => {\n loader.dismiss();\n })\n .catch((err) => {\n console.log(err);\n loader.dismiss();\n });\n });\n }\n\n doRefresh(e) {\n this.loadEvents().then(() => {\n e.complete();\n })\n .catch((err) => {\n console.log('err', err);\n e.complete();\n });\n }\n /**\n * @TODO: remove this once we decided to remove hardcoded images, big size picture is ruining UX because it induces long download time\n *\n * @name _injectCover\n * @description inject hardcoded images by array index number\n * @param {array} events list of event object respond from get_events API\n */\n _injectCover(events) {\n let counts = events.length;\n\n _.forEach(events, (value, key) => {\n let idx = (key % 5) + 1;\n events[key].coverUrl = '/assets/img/static/event-cover-' + idx + '.jpg';\n });\n\n return events;\n }\n\n /**\n * @name _mapWithActivity\n * @description\n * - attach \"activity\" object into each of single \"event\" object\n * - Extract and merge event-activity only\n * - skip non-event activities\n * @param {array} events get_events response\n */\n _mapWithActivity(events) {\n let result = [];\n\n events.forEach(event => {\n let thisActivity = this.activities[event.activity_id];\n thisActivity.References = event.References; // must use event's references\n event.activity = this.activityService.normaliseActivity(thisActivity);\n result.push(event);\n });\n\n return result;\n }\n // Check event allow to check-in\n allowCheckIn(event) {\n return (moment(event.start).isAfter() && moment(event.end).isBefore());\n }\n\n view(event) {\n this.navCtrl.push(EventsViewPage, {\n event\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/list/list.page.ts","import { Injectable, Optional } from '@angular/core';\n\ndeclare var filestack: any; // v3 filestack\ndeclare var filepicker: any; // v2 filestack\n\nexport class FilepickerUpload {\n filesFailed: Array;\n filesUploaded: Array;\n}\n\n@Injectable()\nexport class FilepickerConfig {\n apikey = null;\n}\n\nexport class FilepickerService {\n private filestack: any;\n private filepicker: any;\n version: any;\n\n constructor(@Optional() config: FilepickerConfig) {\n this.filestack = filestack.init(config.apikey);\n this.version = filestack.version;\n\n this.filepicker = filepicker;\n this.filepicker.setKey(config.apikey);\n }\n\n /**\n * display pick/upload popup for file upload,\n * refer to filestack documentation for more config information\n * @link https://www.filestack.com/docs/javascript-api/pick-v3\n * @param {object} config filestack object\n * @return {Promise} single resolved object\n */\n pick(config?): Promise {\n if (!config) {\n config = {\n maxFiles: 5, // default by max 5 files\n storeTo: {\n location: 's3'\n }\n };\n }\n\n return this.filestack.pick(config);\n }\n\n pickV1(file, onSuccess, onError?, onProgress?) {\n this.filepicker.pick(file, success => {\n return onSuccess(success);\n }, onError, onProgress);\n }\n\n getSecurity() {\n return this.filestack.getSecurity();\n }\n\n setSecurity (e) {\n return this.filestack.setSecurity(e);\n }\n\n storeURL (e, t) {\n return this.filestack.storeURL(e, t);\n }\n\n transform (e, t) {\n return this.filestack.transform(e, t);\n }\n\n upload (e, t, n, i) {\n return this.filestack.upload(e, t, n, i);\n }\n\n retrieve (e, t) {\n return this.filestack.retrieve(e, t);\n }\n\n remove (e) {\n return this.filestack.remove(e);\n }\n\n metadata (e, t) {\n return this.filestack.metadata(e, t);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.service.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../../src/shared/cache/cache.service.ts","../../src/services/character.service.ts","../../src/pages/activities/view/activities-view.page.ts","../../src/pages/assessments/assessments.page.ts","../../src/pages/assessments/group/assessments-group.page.ts","../../src/pages/settings/settings.page.ts","../../src/pages/events/download/events-download.page.ts","../../src/shared/utils/utils.service.ts","../../src/shared/window.ts","../../src/pages/registration/registration.page.ts","../../src/pages/levels/list/list.ts","../../node_modules/@angular/core/@angular lazy","../../src/app/messages.ts","../../src lazy","../../src/shared/request/request.service.ts","../../src/shared/notification/modal.component.ts","../../src/pages/reset-password/reset-password.ts","../../src/shared/translation/translation.service.ts","../../src/shared/validators/formValidator.ts","../../src/services/auth.service.ts","../../src/pages/tabs/tabs.page.ts","../../src/pages/activities/view/activities-view-modal.page.ts","../../src/pages/activities/list/popup.ts","../../src/pages/rankings/list/rankings.page.ts","../../src/pages/rankings/view/ranking-details.page.ts","../../src/pages/rankings/view/ranking-badges.ts","../../src/pages/settings/leaderboard/leaderboard-settings.page.ts","../../src/pages/settings/tutorial/tutorial.page.ts","../../src/pages/term-condition/term-condition.page.ts","../../src/pages/registration/register.page.ts","../../src/pages/events/view/events-view.page.ts","../../src/pages/events/download/events-preview.page.ts","../../src/pages/forget-password/forget-password.ts","../../src/pages/login/login.ts","../../src/pages/magic-link/magic-link.ts","../../src/pages/tabs/test.page.ts","../../src/pages/achievements/view/achievements-view.page.ts","../../src/pages/activities-classic/list/activities-classic-list.page.ts","../../src/pages/gallery/gallery.ts","../../src/services/level.service.ts","../../src/pages/events/checkin/event-checkin.page.ts","../../src/pages/team/team.ts","../../src/services/team.service.ts","../../src/app/main.ts","../../src/app/app.module.ts","../../src/shared/cache/cache.module.ts","../../src/shared/notification/notification.module.ts","../../src/shared/notification/notification.component.ts","../../src/app/app.component.ts","../../src/services/game.service.ts","../../node_modules/moment/locale ^/.//.*$","../../src/shared/notification/notification.service.ts","../../src/services/milestone.service.ts","../../src/services/activity.service.ts","../../src/services/submission.service.ts","../../src/services/assessment.service.ts","../../src/pages/activities/list/list.page.ts","../../src/services/achievement.service.ts","../../src/services/event.service.ts","../../src/shared/filepicker/filepicker.module.ts","../../src/shared/filepicker/file-preview.directive.ts","../../src/shared/utils/utils.module.ts","../../src/shared/testModules/test.module.ts","../../src/shared/testModules/pages/test/test.page.ts","../../src/shared/testModules/pages/test/test-start.page.ts","../../src/pages/spinwheel/celebration.page.ts","../../src/shared/testModules/test.directive.ts","../../src/shared/translation/translation.module.ts","../../src/components/questions/group-emitter.service.ts","../../src/shared/request/request.module.ts","../../src/shared/rxjs-operators.ts","../../src/services/session.service.ts","../../src/components/question-group/question-group.component.ts","../../src/components/event/event.component.ts","../../src/components/level/level.ts","../../src/components/loadingMarker/loadingMarker.ts","../../src/components/locker/locker.ts","../../src/components/member/member.ts","../../src/components/photo/photo.ts","../../src/pages/term-condition/term-content.component.ts","../../src/components/questions/file.ts","../../src/components/questions/oneof.ts","../../src/components/questions/text.ts","../../src/components/questions/multiple.ts","../../src/components/questions/feedback.ts","../../src/components/events/events.component.ts","../../src/pages/assessments/popup/items-popup.page.ts","../../src/pages/sidenav/sidenav.ts","../../src/pipes/timeago.ts","../../src/pipes/ucfirst.pipe.ts","../../src/pipes/truncate.pipe.ts","../../src/pipes/keep-html.pipe.ts","../../src/configs/config.ts","../../src/pages/events/list/list.page.ts","../../src/shared/filepicker/filepicker.service.ts"],"names":[],"mappings":"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AU,OAOT;QAPS;YACR,WAAW,EAAE;gBACX,IAAI,EAAE,IAAI;aACX;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;aACX;SACF;QACC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC,CAAC,CAAC;IAC5F,CAAC;IACH,kBAAC;AAAD,CAAC;AA5FY,WAAW;IADvB,iEAAU,EAAE;qCAGO,uFAAc;GAFrB,WAAW,CA4FvB;AA5FuB;;;;;;;;ACTxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wB;;;;;;;;;;;;;;;;;;;;;;ACtP2C;AACD;AACM;AAGhD,IAAa,mBAAmB;IAM9B,6BAAmB,SAA0B;QAA1B,cAAS,GAAT,SAAS,CAAiB;QAJrC,wBAAmB,GAAG,IAAI,qDAAO,EAAO,CAAC;QAEjD,oBAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;IAEV,CAAC;IAEjD;;;;;;;;;;OAUG;IACH,qCAAO,GAAP,UAAQ,OAAY;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,mCAAK,GAAZ,UAAa,OAIZ;QAJY;YACX,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,CAAC,IAAI,CAAC;SAChB;QACC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IACH,0BAAC;AAAD,CAAC;AAnCY,mBAAmB;IAD/B,iEAAU,EAAE;qCAOmB,sEAAe;GANlC,mBAAmB,CAmC/B;AAnC+B;;;;;;;;;;;;;;;;;;;;;;;;;ACLc;AACiB;AAE/D,SAAS;AAC0D;AACN;AACjC;AAG5B,IAAa,gBAAgB;IAK3B,0BACS,YAA0B,EAC1B,IAAU,EACV,OAAuB;QAFvB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,SAAI,GAAJ,IAAI,CAAM;QACV,YAAO,GAAP,OAAO,CAAgB;QAPhC,WAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,eAAU,GAAQ,EAAE,CAAC;QACrB,cAAS,GAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAM1C,CAAC;IAEJ,kCAAO,GAAP,UAAQ,OAAQ;QACd,IAAI,MAAM,GAAoB,IAAI,sEAAe,EAAE,CAAC;QAEpD,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9B,iCAAiC;YACjC,+CAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAC,KAAK,EAAE,GAAG;gBACnC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3D,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IACnE,CAAC;IAED,wCAAa,GAAb;QACE,IAAI,OAAO,GAAG,IAAI,8DAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,cAAc,GAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;aACpE,GAAG,CAAC,aAAG,IAAI,UAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC,CAAC;IACrC,CAAC;IACH,uBAAC;AAAD,CAAC;AArCY,gBAAgB;IAD5B,iEAAU,EAAE;qCAOY,iFAAY;QACpB,2DAAI;QACD,uFAAc;GARrB,gBAAgB,CAqC5B;AArC4B;;;;;;;;;;;;;;;;;;;;;;;;;ACTiB;AACE;AAEhD,WAAW;AACkD;AACM;AAGvC;AAE5B;IAAA;IAYA,CAAC;IAAD,mBAAC;AAAD,CAAC;AAED;IAAA;IAGA,CAAC;IAAD,8BAAC;AAAD,CAAC;AAED;IAAA;IAGA,CAAC;IAAD,oBAAC;AAAD,CAAC;AAGD,IAAa,eAAe;IAI1B,yBACS,YAA0B,EAC1B,OAAuB;QADvB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAgB;QALhC,oBAAe,GAAG,EAAE,CAAC;QACrB,gBAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAK5D,CAAC;IAEJ,iCAAO,GAAP,UAAQ,OAAQ;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAErD,OAAO,GAAG,OAAO,IAAI;YACnB,MAAM,EAAE;gBACN,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC;aACzD;SACF,CAAC;QAEF,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YAC7E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,mCAAS,GAAT,UAAU,OAAa;QAAvB,iBAoBC;QAnBC,IAAI,MAAM,GAAoB,IAAI,sEAAe,EAAE,CAAC;QACpD,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACnB,+CAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAC,KAAK,EAAE,GAAG;gBACnC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;aAC5B,IAAI,CAAC,UAAC,IAAS;YACd,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,CAAC;YACD,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/C,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAGH;;OAEG;IACH,6CAAmB,GAAnB,UAAoB,UAAU;QAA9B,iBAOC;QANC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG,EAAE,KAAK;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,2CAAiB,GAAjB,UAAkB,QAAQ;QACxB,IAAI,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAChC,kBAAgC,EAChC,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAEvD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvB,MAAM,2DAA2D,CAAC;QACpE,CAAC;QAED,kBAAkB,GAAG;YACnB,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACxB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAC5B,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW;YAC1C,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY;YAC5C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ;YACpC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG;YAC1B,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU;YACxC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;YACtC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;YAC9B,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY;YAC5C,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;SACvC,CAAC;QAEF,QAAQ,GAAI,6CAAO,CAAC,YAAY,EAAE;YAChC,sDAAsD;YACtD,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAE5C,8BAA8B;YAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC,CAAC;QAEH,0FAA0F;QAC1F,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YACxB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS,EAAE,GAAG;gBACzC,IAAI,mBAAmB,GAA4B;oBACjD,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE;oBAC3B,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI;iBAChC;gBACD,IAAI,mBAAmB,GAAkB;oBACvC,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,UAAU,EAAE,mBAAmB;iBAChC,CAAC;gBACF,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,2CAAiB,GAAjB,UAAkB,UAAU;QAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAG;YAC5B,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiFG;IACF,kDAAwB,GAAxB,UAAyB,QAAQ;QAChC,+DAA+D;QAC/D,IAAI,QAAQ,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAE/E,+DAA+D;QAC/D,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YACxB,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,CAAC,+CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzB,qDAAqD;gBACrD,6CAA6C;gBAC3C,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBAChC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEG;IACF,2CAAiB,GAAjB,UAAkB,QAAQ;QACzB,IAAI,UAAU,GAAQ,EAAE,CAAC;QACzB,EAAE,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAClC,UAAU,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC3C,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,UAAU,CAAC;IACpB,CAAC;IACH,sBAAC;AAAD,CAAC;AAhXY,eAAe;IAD3B,iEAAU,EAAE;qCAMY,iFAAY;QACjB,uFAAc;GANrB,eAAe,CAgX3B;AAhX2B;;;;;;;;;;;;;;;;;;;;;;;;;ACnCe;AAE3C,SAAS;AAC0D;AACvC;AACK;AAGjC,IAAa,iBAAiB;IAG5B,2BACS,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;QAHhC,cAAS,GAAG,sBAAsB,CAAC;IAIhC,CAAC;IAEJ,SAAS;IACT,0CAAc,GAAd,UAAe,OAAa;QAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,yCAAa,GAAb,UAAc,IAAI;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,+CAAS,CAAC,IAAI,EAAE,UAAS,GAAG,EAAE,GAAG;YAC/B,+CAAS,CAAC,GAAG,CAAC,0BAA0B,EAAE,UAAC,MAAM,EAAE,GAAG;gBACpD,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;oBAC7F,EAAE,CAAC,CAAC,gDAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzF,oDAAoD;wBACpD,MAAM,CAAC,IAAI,CAAC;4BACV,WAAW,EAAE,GAAG,CAAC,oBAAoB,CAAC,WAAW;4BACjD,aAAa,EAAE,GAAG,CAAC,oBAAoB,CAAC,aAAa;4BACrD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;4BACxB,SAAS,EAAE,GAAG,CAAC,oBAAoB,CAAC,SAAS;yBAC9C,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoIG;IACF,qCAAS,GAAT,UAAU,OAAO;QACd,IAAI,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACjD,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACnD,IAAI,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAE/C,kBAAkB;QAClB,UAAU,CAAC,OAAO,GAAG,2CAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACpD,UAAU,CAAC,QAAQ,GAAG,2CAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEtD,YAAY;QACZ,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YACzB,UAAU,CAAC,SAAS,GAAG,2CAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,6CAAO,CAAC,UAAU,EAAE;YACzB,UAAU;YACV,MAAM;YACN,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,qCAAS,GAAT,UAAU,OAAO,EAAE,UAAmB;QACpC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,qCAAS,GAAT,UAAU,MAAM;QACd,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,sDAA0B,GAA1B,UAA2B,UAAU;QAArC,iBAmBC;QAlBC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,wBAAwB;QAExC,mDAAmD;QACnD,IAAI,cAAc,GAAG,UAAC,SAAS;YAC7B,MAAM,CAAC,KAAI,CAAC,cAAc,CAAC;gBACzB,MAAM,EAAE;oBACN,UAAU,EAAE,SAAS;iBACtB;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QACF,2EAA2E;QAC3E,+CAAS,CAAC,UAAU,EAAE,mBAAS;YAC7B,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IACD,4BAA4B;IAC5B,wBAAwB;IACxB,8CAAkB,GAAlB;QACE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IACH,wBAAC;AAAD,CAAC;AAzOY,iBAAiB;IAD7B,iEAAU,EAAE;qCAKO,uFAAc;GAJrB,iBAAiB,CAyO7B;AAzO6B;;;;;;;;;;;;;;;;;;;;;;;;;;ACRa;AACwB;AAEvC;AAE5B;IAAA;IAIA,CAAC;IAAD,iBAAC;AAAD,CAAC;AAED;IAAA;IAIA,CAAC;IAAD,aAAC;AAAD,CAAC;AAED;IAAA;IAQA,CAAC;IAAD,iBAAC;AAAD,CAAC;;AAED;IAcE,sBAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI;QACvC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC;;AAED;IAAA;IAIA,CAAC;IAAD,iBAAC;AAAD,CAAC;;AAGD,IAAa,iBAAiB;IAC5B,2BACS,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAC7B,CAAC;IAEJ;;;OAGG;IACF,uCAAW,GAAX,UAAY,WAAgB;QAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,+CAAS,CAAC,WAAW,EAAE,UAAC,UAAU;YAChC,+CAAS,CAAC,UAAU,EAAE,UAAC,IAAI;gBACzB,EAAE,CAAC,CACD,IAAI,CAAC,oBAAoB;oBACzB,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,WACvC,CAAC,CAAC,CAAC;oBACD,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAEF,YAAY;IACZ,kCAAM,GAAN,UAAO,OAAa;QAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;OASG;IACH,uCAAW,GAAX,UAAY,OAAa;QACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,gCAAI,GAAJ,UAAK,gBAA4B;QAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,EAAE;YAC5E,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,gCAAI,GAAJ,UAAK,gBAAgB;QACnB,gBAAgB,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,oBAAoB;QAEpE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,kCAAM,GAAN,UAAO,gBAAgB;QACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyEG;IACH,qCAAS,GAAT,UAAU,UAAU;QAApB,iBAiBC;QAhBC,IAAI,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC;QAE5C,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,eAAK;YAC/B,MAAM,CAAC,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,eAAe,EAAE,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,0CAAc,GAAd,UAAe,KAAK;QAApB,iBAeC;QAdC,sBAAsB;QACtB,IAAI,aAAa,GAAG,KAAK,CAAC,uBAAuB,CAAC;QAClD,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,kBAAQ;YACxC,MAAM,CAAC,KAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,aAAa;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,6CAAiB,GAAjB,UAAkB,QAAQ;QAA1B,iBAsBC;QArBC,IAAI,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC;QAC/C,IAAI,OAAO,GAAG,YAAY,CAAC,wBAAwB,CAAC;QAEpD,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAM;YAC1B,MAAM,CAAC,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,aAAa,EAAE,QAAQ,CAAC,sBAAsB;YAC9C,WAAW,EAAE,QAAQ,CAAC,sBAAsB;YAC5C,QAAQ,EAAE,QAAQ,CAAC,mBAAmB;YACtC,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,aAAa;YAChC,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,QAAQ,EAAE,YAAY,CAAC,WAAW;YAClC,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,2CAAe,GAAf,UAAgB,MAAM;QACpB,MAAM,CAAC;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,MAAM,CAAC,oBAAoB;YAClC,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI;YAClC,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,WAAW;YAChD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IACH,wBAAC;AAAD,CAAC;AAvUY,iBAAiB;IAD7B,iEAAU,EAAE;qCAGO,uFAAc;GAFrB,iBAAiB,CAuU7B;AAvU6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxD2B;AACpB;AAC8D;AACtD;AAE7C,WAAW;AAC0D;AACM;AACR;AACI;AACV;AACY;AACzE,QAAQ;AAC0D;AAClB;AAES;AAGzD,SAAS;AAC4D;AACgB;AACzD;AAM5B,IAAa,kBAAkB;IAwB7B,4BACS,kBAAsC,EACtC,eAAgC,EAChC,YAA0B,EAC1B,gBAAkC,EAClC,WAAwB,EACxB,IAAU,EACV,WAA8B,EAC9B,SAA0B,EAC1B,OAAsB,EACtB,iBAAoC,EACpC,SAA0B,EAC1B,kBAAsC;QAXtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,gBAAW,GAAX,WAAW,CAAa;QACxB,SAAI,GAAJ,IAAI,CAAM;QACV,gBAAW,GAAX,WAAW,CAAmB;QAC9B,cAAS,GAAT,SAAS,CAAiB;QAC1B,YAAO,GAAP,OAAO,CAAe;QACtB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,cAAS,GAAT,SAAS,CAAiB;QAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;QAnC/C,iBAAY,GAAQ;YAClB,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;SACd,CAAC;QACF,eAAU,GAAQ,EAAE,CAAC;QACrB,2BAAsB,GAAQ,mEAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QACtE,yBAAoB,GAAQ,mEAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7D,gBAAW,GAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC7D,+BAA0B,GAAW,CAAC,CAAC;QACvC,kBAAa,GAAQ,EAAE,CAAC;QACxB,sBAAiB,GAAQ,GAAG,CAAC;QAC7B,kBAAa,GAAW,CAAC,CAAC;QAC1B,wBAAmB,GAAQ,EAAE,CAAC;QAC9B,iBAAY,GAAQ,EAAE,CAAC;QACvB,cAAS,GAAW,CAAC,CAAC;QACtB,iBAAY,GAAQ,EAAE,CAAC;QACvB,gBAAW,GAAY,KAAK,CAAC;QAC7B,oBAAe,GAAW,CAAC,CAAC;QAC5B,mBAAc,GAAQ,EAAE,CAAC;QACzB,qBAAgB,GAAW,CAAC,CAAC;QAC7B,sBAAiB,GAAQ,EAAE,CAAC;QAgB1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IACD,qCAAQ,GAAR;QACE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IACD,uBAAuB;IACvB,sCAAS,GAAT,UAAU,CAAC;QACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,CAAC,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC;IACD,kDAAkD;IAClD,6CAAgB,GAAhB;QAAA,iBAqEC;QApEC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACxC,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,oBAAoB;YAClC,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACnD,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YACzB,aAAa,CAAC,SAAS,CACrB,iBAAO;gBACH,KAAI,CAAC,UAAU,GAAG,OAAO,CAAC;gBAC1B,EAAE,EAAC,KAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,EAAC;oBAC9B,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBACD,IAAI,YAAY,GAAG,KAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;gBACxD,IAAI,aAAa,GAAG,KAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;gBAChE,2DAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;qBAC/C,SAAS,CAAC,iBAAO;oBAChB,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;wBACzB,KAAI,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACjC,gDAAS,CAAC,KAAI,CAAC,cAAc,EAAE,iBAAO;4BACpC,EAAE,EAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,IAAI,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,IAAI,MAAM,CAAC,EAAC;gCACtG,EAAE,EAAC,OAAO,CAAC,oBAAoB,CAAC,eAAe,KAAK,IAAI,CAAC,EAAC;oCACxD,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;oCAC5D,KAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;gCACpF,CAAC;4BACH,CAAC;wBACH,CAAC,CAAC,CAAC;wBACH,IAAI,aAAa,GAAG,CAAC,KAAI,CAAC,gBAAgB,GAAC,KAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAC,GAAG,CAAC;wBAChF,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,eAAe,GAAG,aAAa,GAAG,KAAI,CAAC,eAAe,GAAG,CAAC,CAAC;wBACtF,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACzD,gFAAgF;wBAChF,KAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC9C,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;wBAClE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;wBACrD,KAAI,CAAC,0BAA0B,GAAG,KAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;wBACvE,gEAAgE;wBAChE,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;4BACxB,YAAY,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE;yBACpC,CAAC;6BACD,SAAS,CACR,cAAI;4BACF,KAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;4BAC/B,KAAI,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;4BACpE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC;wBACjD,CAAC,EACD,aAAG;4BACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;wBACzC,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC,EACD,aAAG;oBACD,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;wBACzB,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC1B,CAAC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;YACJ,CAAC,EACD,eAAK;gBACH,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;oBACzB,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mCAAmC;IACnC,uCAAU,GAAV,UAAW,QAAa,EAAE,EAAO;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uFAAkB,EAAE;YACpC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IACD,mCAAmC;IACnC,sCAAS,GAAT,UAAU,SAAc;QACtB,IAAI,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,sEAAqB,EAAE,EAAC,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC3C,qBAAqB,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IACD,uCAAuC;IACvC,4CAAe,GAAf;QACE,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,wEAAQ,CAAC,CAAC;IACjC,CAAC;IACH,yBAAC;AAAD,CAAC;AA5IY,kBAAkB;IAJ9B,gEAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;OACR;KACzB,CAAC;4FA0B+C;QACrB,kFAAe;QAClB,qFAAY;QACR,4EAAgB;QACrB,4DAAW;QAClB,wEAAI;QACG,uEAAiB;QACnB,qEAAe;QACjB,uFAAa;QACH,uEAAiB;QACzB,oGAAe;QACN,eAAkB;AAwGhD;SA5IY,kBAAkB,U;;;;;;;;;;;;;;;;;;;;;AC5BY;AAE3C,WAAW;AACkD;AACM;AAGnE,IAAa,kBAAkB;IAO7B,4BACS,YAA0B,EAC1B,OAAuB;QADvB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAgB;QARhC,iBAAY,GAAG,SAAS,CAAC;QACzB,cAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC3D,wBAAmB,GAAG,0CAAwC,IAAI,CAAC,YAAY,mBAAc,IAAI,CAAC,SAAW,CAAC;QAC9G,wBAAmB,GAAG,uBAAuB,CAAC;QAC9C,uBAAkB,GAAG,4BAA4B,CAAC;IAK/C,CAAC;IAEJ,2CAA2C;IAC3C,yCAAY,GAAZ;QACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED,yBAAyB;IACzB,4CAAe,GAAf,UAAgB,MAAW;QAAX,oCAAW;QACzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;IACxB,mCAAM,GAAN;QACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACF,sCAAS,GAAT,UAAU,WAAW;QACpB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;IACjC,CAAC;IACH,yBAAC;AAAD,CAAC;AA/DY,kBAAkB;IAD9B,iEAAU,EAAE;qCASY,iFAAY;QACjB,uFAAc;GATrB,kBAAkB,CA+D9B;AA/D8B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPe;AACE;AAEhD,SAAS;AACoD;AACM;AACvC;AACK;AAGjC,IAAa,YAAY;IAIvB,sBACS,KAAmB,EACnB,OAAuB;QADvB,UAAK,GAAL,KAAK,CAAc;QACnB,YAAO,GAAP,OAAO,CAAgB;QALhC,iBAAY,GAAG,sBAAsB,CAAC;QACtC,cAAS,GAAG,iBAAiB,CAAC;IAK3B,CAAC;IAEJ,gCAAS,GAAT,UAAU,OAAoB;QAApB,sCAAoB;QAC5B,OAAO,GAAG,6CAAO,CAAC;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;aAChB;SACF,EAAE,OAAO,CAAC,CAAC;QAEZ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;aAC/C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;aACpB,SAAS,EAAE,CAAC;IACf,CAAC;IAED,iCAAU,GAAV,UAAW,MAAM;QACf,+CAAS,CAAC,MAAM,EAAE,UAAC,KAAK,EAAE,GAAG;YAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,oCAAM,EAAE,CAAC,OAAO,CAAC,oCAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1F,+CAA+C;YAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,2CAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IAEH,yCAAkB,GAAlB,UAAmB,KAAK;QACtB,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,qDAAqD;QACrD,6CAA6C;QAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,gCAAS,GAAT,UAAU,OAAO;QACf,IAAI,eAAe,GAAG,IAAI,sEAAe,EAAE,CAAC;QAC5C,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC;IAED,yCAAkB,GAAlB,UAAmB,OAAO;QACxB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC;IACzE,CAAC;IACH,mBAAC;AAAD,CAAC;AAxDY,YAAY;IADxB,iEAAU,EAAE;qCAMK,iFAAY;QACV,uFAAc;GANrB,YAAY,CAwDxB;AAxDwB;;;;;;;;;;;;;;;;;;;;;;;;;;ACVyD;AACnC;AAC4B;AACX;AAgBhE,IAAa,gBAAgB;IAC3B,0BAAoC,YAA8B;QAChE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAEM,wBAAO,GAAd,UAAe,MAAwB;QACrC,MAAM,CAAC;YACL,QAAQ,EAAE,kBAAgB;YAC1B,SAAS,EAAE;gBACT,EAAC,OAAO,EAAE,6EAAgB,EAAE,QAAQ,EAAE,MAAM,EAAC;aAC9C;SACF;IACH,CAAC;IACH,uBAAC;AAAD,CAAC;AAfY,gBAAgB;IAd5B,+DAAQ,CAAC;QACR,OAAO,EAAE,CAAE,qEAAY,CAAE;QACzB,SAAS,EAAE;YACT,8EAAiB;SAClB;QACD,YAAY,EAAE;YACZ,qFAAoB;SACrB;QACD,OAAO,EAAE;YACP,qFAAoB;YACpB,qEAAY;SACb;KACF,CAAC;IAGa,0EAAQ,EAAE,GAAE,0EAAQ,EAAE;qCAAe,gBAAgB;GADvD,gBAAgB,CAe5B;AAf4B;;;;;;;;;;;;;;;;;;;;;;ACnBqD;AAC5C;AAKtC,IAAa,oBAAoB;IAG/B,8BACU,EAAc,EACd,QAAkB,EAClB,GAAc;QAFd,OAAE,GAAF,EAAE,CAAY;QACd,aAAQ,GAAR,QAAQ,CAAU;QAClB,QAAG,GAAH,GAAG,CAAW;QAEtB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACtC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,GAAC,IAAI,IAAI,OAAO,CAAC;IACjF,CAAC;IAED,0CAAW,GAAX;QACE,IAAI,EAAE,GAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAChC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEtD,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAEvD,yDAAyD;YACzD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YAEvB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACnB,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,EAAE,CAAC,SAAS,GAAG,sCAAsC,CAAC;QACxD,CAAC;IACH,CAAC;IACH,2BAAC;AAAD,CAAC;AA5BwB;IAAtB,4DAAK,CAAC,cAAc,CAAC;;iDAAa;AADxB,oBAAoB;IAHhC,gEAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;qCAKc,yDAAU;QACJ,uDAAQ;QACb,0DAAS;GANb,oBAAoB,CA6BhC;AA7BgC;;;;;;;;;;;;;;;;;;ACNQ;AACM;AAM/C,IAAa,WAAW;IAAxB;IAEA,CAAC;IAAD,kBAAC;AAAD,CAAC;AAFY,WAAW;IAJvB,+DAAQ,CAAC;QACR,SAAS,EAAE,CAAC,oEAAY,CAAC;KAC1B,CAAC;GAEW,WAAW,CAEvB;AAFuB;;;;;;;;;;;;;;;ACPxB;AAAA;;;;;GAKG;;;;;;;AAE+E;AACtC;AACE;AACI;AACW;AACZ;AAqBjD,IAAa,UAAU;IAAvB;IACA,CAAC;IAAD,iBAAC;AAAD,CAAC;AADY,UAAU;IAnBtB,+DAAQ,CAAC;QACR,OAAO,EAAE;YACP,qEAAY;YACZ,kEAAW;SACZ;QACD,YAAY,EAAE;YACZ,uEAAQ;YACR,kFAAa;YACb,sEAAa;SACd;QACD,OAAO,EAAE;YACP,uEAAQ;YACR,kFAAa;YACb,sEAAa;YACb,qEAAY;YACZ,kEAAW;SACZ;KACF,CAAC;GAEW,UAAU,CACtB;AADsB;;;;;;;;;;;;;;;;;;;;ACjC8B;AACrD,qDAAqD;AAcrD,IAAa,QAAQ;IAArB;IASA,CAAC;IAPD;;SAEK;IAEH,4BAAS,GAAT;QACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACH,eAAC;AAAD,CAAC;AARyB;IAAvB,gEAAS,CAAC,WAAW,CAAC;;qCAAK;AADjB,QAAQ;IAZpB,gEAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,yLAQK;KAChB,CAAC;GACW,QAAQ,CASpB;AAToB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf8C;AACrB;AAE9C,QAAQ;AAC0F;AACA;AACiB;AAC1C;AACmB;AAC5B;AACI;AACV;AAC0B;AACZ;AACe;AAChC;AACwB;AAE/E,IAAM,KAAK,GAAG;IACZ;QACE,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,2FAAe;KACtB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mGAAgB;QACtB,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE,qBAAqB;gBAC9B,KAAK,EAAE,qBAAqB;gBAC5B,UAAU,EAAE,UAAU;gBACtB,OAAO,EAAE,WAAW;gBACpB,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,EAAE;gBACd,+BAA+B,EAAE,EAAE;gBACnC,oBAAoB,EAAE,EAAE;gBACxB,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE;oBACZ;wBACE,YAAY,EAAE,EAAE;wBAChB,YAAY,EAAE;4BACZ,IAAI,EAAE,EAAE;4BACR,MAAM,EAAE,oBAAoB;4BAC5B,YAAY,EAAE,EAAE;yBACjB;qBACF;iBACF;gBACD,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,4BAA4B;gBAC5C,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE;oBACR,cAAc,EAAE,CAAC;oBACjB,MAAM,EAAE,YAAY;oBACpB,aAAa,EAAE,EAAE;oBACjB,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,EAAE;oBACf,OAAO,EAAE,IAAI;oBACb,cAAc,EAAE,EAAE;oBAClB,WAAW,EAAE,KAAK;oBAClB,OAAO,EAAE,qBAAqB;oBAC9B,KAAK,EAAE,qBAAqB;oBAC5B,UAAU,EAAE,qBAAqB;oBACjC,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE;wBACR,cAAc,EAAE,CAAC;wBACjB,MAAM,EAAE,YAAY;wBACpB,aAAa,EAAE,EAAE;wBACjB,YAAY,EAAE,IAAI;wBAClB,WAAW,EAAE,EAAE;wBACf,OAAO,EAAE,IAAI;wBACb,cAAc,EAAE,EAAE;wBAClB,WAAW,EAAE,KAAK;wBAClB,OAAO,EAAE,qBAAqB;wBAC9B,KAAK,EAAE,qBAAqB;wBAC5B,UAAU,EAAE,qBAAqB;qBAClC;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE;wBACR,aAAa,EAAE,EAAE;wBACjB,OAAO,EAAE,mBAAmB;wBAC5B,UAAU,EAAE,EAAE;wBACd,OAAO,EAAE,CAAC;wBACV,WAAW,EAAE,KAAK;wBAClB,mBAAmB,EAAE;4BACnB,IAAI,EAAE,EAAE;4BACR,MAAM,EAAE,oBAAoB;4BAC5B,aAAa,EAAE,wBAAwB;4BACvC,iBAAiB,EAAE,SAAS;4BAC5B,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,KAAK;4BAChB,YAAY,EAAE,SAAS;4BACvB,eAAe,EAAE,CAAC;4BAClB,YAAY,EAAE,CAAC;4BACf,SAAS,EAAE,KAAK;4BAChB,cAAc,EAAE,IAAI;4BACpB,uBAAuB,EAAE,CAAC;4BAC1B,yBAAyB,EAAE,EAAE;4BAC7B,eAAe,EAAE,EAAE;4BACnB,cAAc,EAAE,MAAM;4BACtB,iBAAiB,EAAE,IAAI;4BACvB,SAAS,EAAE,4BAA4B;4BACvC,UAAU,EAAE,qBAAqB;4BACjC,qBAAqB,EAAE,IAAI;4BAC3B,eAAe,EAAE,KAAK;4BACtB,aAAa,EAAE,CAAC;4BAChB,aAAa,EAAE,QAAQ;4BACvB,aAAa,EAAE,QAAQ;4BACvB,uBAAuB,EAAE,IAAI;4BAC7B,WAAW,EAAE,IAAI;4BACjB,sBAAsB,EAAE,KAAK;4BAC7B,YAAY,EAAE,EAAE;yBACjB;wBACD,YAAY,EAAE,EAAE;qBACjB;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,EAAE;wBACR,MAAM,EAAE,oBAAoB;wBAC5B,aAAa,EAAE,wBAAwB;wBACvC,iBAAiB,EAAE,SAAS;wBAC5B,SAAS,EAAE,IAAI;wBACf,SAAS,EAAE,KAAK;wBAChB,YAAY,EAAE,SAAS;wBACvB,eAAe,EAAE,CAAC;wBAClB,YAAY,EAAE,CAAC;wBACf,SAAS,EAAE,KAAK;wBAChB,cAAc,EAAE,IAAI;wBACpB,uBAAuB,EAAE,CAAC;wBAC1B,yBAAyB,EAAE,EAAE;wBAC7B,eAAe,EAAE,EAAE;wBACnB,cAAc,EAAE,MAAM;wBACtB,iBAAiB,EAAE,IAAI;wBACvB,SAAS,EAAE,4BAA4B;wBACvC,UAAU,EAAE,qBAAqB;wBACjC,qBAAqB,EAAE,IAAI;wBAC3B,eAAe,EAAE,KAAK;wBACtB,aAAa,EAAE,CAAC;wBAChB,aAAa,EAAE,QAAQ;wBACvB,aAAa,EAAE,QAAQ;wBACvB,uBAAuB,EAAE,IAAI;wBAC7B,WAAW,EAAE,IAAI;wBACjB,sBAAsB,EAAE,KAAK;wBAC7B,YAAY,EAAE,EAAE;qBACjB;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE;wBACR,cAAc,EAAE,CAAC;wBACjB,MAAM,EAAE,YAAY;wBACpB,aAAa,EAAE,EAAE;wBACjB,YAAY,EAAE,IAAI;wBAClB,WAAW,EAAE,EAAE;wBACf,OAAO,EAAE,IAAI;wBACb,cAAc,EAAE,EAAE;wBAClB,WAAW,EAAE,KAAK;wBAClB,OAAO,EAAE,qBAAqB;wBAC9B,KAAK,EAAE,qBAAqB;wBAC5B,UAAU,EAAE,qBAAqB;wBACjC,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE;4BACR,cAAc,EAAE,CAAC;4BACjB,MAAM,EAAE,YAAY;4BACpB,aAAa,EAAE,EAAE;4BACjB,YAAY,EAAE,IAAI;4BAClB,WAAW,EAAE,EAAE;4BACf,OAAO,EAAE,IAAI;4BACb,cAAc,EAAE,EAAE;4BAClB,WAAW,EAAE,KAAK;4BAClB,OAAO,EAAE,qBAAqB;4BAC9B,KAAK,EAAE,qBAAqB;4BAC5B,UAAU,EAAE,qBAAqB;yBAClC;wBACD,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE;4BACR,aAAa,EAAE,EAAE;4BACjB,OAAO,EAAE,mBAAmB;4BAC5B,UAAU,EAAE,EAAE;4BACd,OAAO,EAAE,CAAC;4BACV,WAAW,EAAE,KAAK;4BAClB,mBAAmB,EAAE;gCACnB,IAAI,EAAE,EAAE;gCACR,MAAM,EAAE,oBAAoB;gCAC5B,aAAa,EAAE,wBAAwB;gCACvC,iBAAiB,EAAE,SAAS;gCAC5B,SAAS,EAAE,IAAI;gCACf,SAAS,EAAE,KAAK;gCAChB,YAAY,EAAE,SAAS;gCACvB,eAAe,EAAE,CAAC;gCAClB,YAAY,EAAE,CAAC;gCACf,SAAS,EAAE,KAAK;gCAChB,cAAc,EAAE,IAAI;gCACpB,uBAAuB,EAAE,CAAC;gCAC1B,yBAAyB,EAAE,EAAE;gCAC7B,eAAe,EAAE,EAAE;gCACnB,cAAc,EAAE,MAAM;gCACtB,iBAAiB,EAAE,IAAI;gCACvB,SAAS,EAAE,4BAA4B;gCACvC,UAAU,EAAE,qBAAqB;gCACjC,qBAAqB,EAAE,IAAI;gCAC3B,eAAe,EAAE,KAAK;gCACtB,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,QAAQ;gCACvB,aAAa,EAAE,QAAQ;gCACvB,uBAAuB,EAAE,IAAI;gCAC7B,WAAW,EAAE,IAAI;gCACjB,sBAAsB,EAAE,KAAK;gCAC7B,YAAY,EAAE,EAAE;6BACjB;4BACD,YAAY,EAAE,EAAE;yBACjB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,EAAE;4BACR,MAAM,EAAE,oBAAoB;4BAC5B,aAAa,EAAE,wBAAwB;4BACvC,iBAAiB,EAAE,SAAS;4BAC5B,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,KAAK;4BAChB,YAAY,EAAE,SAAS;4BACvB,eAAe,EAAE,CAAC;4BAClB,YAAY,EAAE,CAAC;4BACf,SAAS,EAAE,KAAK;4BAChB,cAAc,EAAE,IAAI;4BACpB,uBAAuB,EAAE,CAAC;4BAC1B,yBAAyB,EAAE,EAAE;4BAC7B,eAAe,EAAE,EAAE;4BACnB,cAAc,EAAE,MAAM;4BACtB,iBAAiB,EAAE,IAAI;4BACvB,SAAS,EAAE,4BAA4B;4BACvC,UAAU,EAAE,qBAAqB;4BACjC,qBAAqB,EAAE,IAAI;4BAC3B,eAAe,EAAE,KAAK;4BACtB,aAAa,EAAE,CAAC;4BAChB,aAAa,EAAE,QAAQ;4BACvB,aAAa,EAAE,QAAQ;4BACvB,uBAAuB,EAAE,IAAI;4BAC7B,WAAW,EAAE,IAAI;4BACjB,sBAAsB,EAAE,KAAK;4BAC7B,YAAY,EAAE,EAAE;yBACjB;qBACF;oBACD,kBAAkB,EAAE;wBAClB;4BACE,IAAI,EAAE,EAAE;4BACR,aAAa,EAAE,EAAE;4BACjB,OAAO,EAAE,mBAAmB;4BAC5B,UAAU,EAAE,EAAE;4BACd,OAAO,EAAE,CAAC;4BACV,WAAW,EAAE,KAAK;4BAClB,mBAAmB,EAAE;gCACnB,IAAI,EAAE,EAAE;gCACR,MAAM,EAAE,oBAAoB;gCAC5B,aAAa,EAAE,wBAAwB;gCACvC,iBAAiB,EAAE,SAAS;gCAC5B,SAAS,EAAE,IAAI;gCACf,SAAS,EAAE,KAAK;gCAChB,YAAY,EAAE,SAAS;gCACvB,eAAe,EAAE,CAAC;gCAClB,YAAY,EAAE,CAAC;gCACf,SAAS,EAAE,KAAK;gCAChB,cAAc,EAAE,IAAI;gCACpB,uBAAuB,EAAE,CAAC;gCAC1B,yBAAyB,EAAE,EAAE;gCAC7B,eAAe,EAAE,EAAE;gCACnB,cAAc,EAAE,MAAM;gCACtB,iBAAiB,EAAE,IAAI;gCACvB,SAAS,EAAE,4BAA4B;gCACvC,UAAU,EAAE,qBAAqB;gCACjC,qBAAqB,EAAE,IAAI;gCAC3B,eAAe,EAAE,KAAK;gCACtB,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,QAAQ;gCACvB,aAAa,EAAE,QAAQ;gCACvB,uBAAuB,EAAE,IAAI;gCAC7B,WAAW,EAAE,IAAI;gCACjB,sBAAsB,EAAE,KAAK;gCAC7B,YAAY,EAAE,EAAE;6BACjB;4BACD,YAAY,EAAE,EAAE;yBACjB;qBACF;oBACD,YAAY,EAAE;wBACZ;4BACE,YAAY,EAAE,EAAE;4BAChB,YAAY,EAAE;gCACZ,IAAI,EAAE,EAAE;gCACR,MAAM,EAAE,oBAAoB;6BAC7B;yBACF;qBACF;iBACF;gBACD,UAAU,EAAE,sCAAsC;gBAClD,YAAY,EAAE;oBACZ,IAAI,EAAE,EAAE;oBACR,MAAM,EAAE,oBAAoB;oBAC5B,YAAY,EAAE,EAAE;iBACjB;gBACD,YAAY,EAAE,EAAE;aACjB;YACD,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,EAAE;oBACR,cAAc,EAAE,EAAE;oBAClB,SAAS,EAAE,qBAAqB;oBAChC,UAAU,EAAE,qBAAqB;oBACjC,QAAQ,EAAE,aAAa;oBACvB,eAAe,EAAE,EAAE;oBACnB,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,IAAI;oBACf,YAAY,EAAE,CAAC;oBACf,aAAa,EAAE,GAAG;oBAClB,OAAO,EAAE,IAAI;oBACb,iBAAiB,EAAE,GAAG;oBACtB,cAAc,EAAE,IAAI;oBACpB,cAAc,EAAE,GAAG;oBACnB,aAAa,EAAE,CAAC;oBAChB,YAAY,EAAE,EAAE;oBAChB,YAAY,EAAE;wBACZ,IAAI,EAAE,EAAE;wBACR,MAAM,EAAE,oBAAoB;wBAC5B,aAAa,EAAE,wBAAwB;wBACvC,iBAAiB,EAAE,SAAS;wBAC5B,SAAS,EAAE,IAAI;wBACf,SAAS,EAAE,KAAK;wBAChB,YAAY,EAAE,SAAS;wBACvB,eAAe,EAAE,CAAC;wBAClB,YAAY,EAAE,CAAC;wBACf,SAAS,EAAE,KAAK;wBAChB,cAAc,EAAE,IAAI;wBACpB,uBAAuB,EAAE,CAAC;wBAC1B,yBAAyB,EAAE,EAAE;wBAC7B,eAAe,EAAE,EAAE;wBACnB,cAAc,EAAE,MAAM;wBACtB,iBAAiB,EAAE,IAAI;wBACvB,SAAS,EAAE,4BAA4B;wBACvC,UAAU,EAAE,qBAAqB;wBACjC,qBAAqB,EAAE,IAAI;wBAC3B,eAAe,EAAE,KAAK;wBACtB,aAAa,EAAE,CAAC;wBAChB,aAAa,EAAE,QAAQ;wBACvB,aAAa,EAAE,QAAQ;wBACvB,YAAY,EAAE;4BACZ,OAAO,EAAE,KAAK;4BACd,aAAa,EAAE,IAAI;4BACnB,QAAQ,EAAE,IAAI;4BACd,aAAa,EAAE,IAAI;4BACnB,OAAO,EAAE,KAAK;4BACd,MAAM,EAAE,KAAK;4BACb,UAAU,EAAE,KAAK;yBAClB;wBACD,uBAAuB,EAAE,IAAI;wBAC7B,WAAW,EAAE,IAAI;wBACjB,sBAAsB,EAAE,KAAK;qBAC9B;oBACD,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,EAAE;4BACR,0BAA0B,EAAE,EAAE;4BAC9B,SAAS,EAAE,IAAI;4BACf,wBAAwB,EAAE,GAAG;4BAC7B,QAAQ,EAAE,GAAG;4BACb,OAAO,EAAE,GAAG;yBACb;wBACD;4BACE,IAAI,EAAE,EAAE;4BACR,0BAA0B,EAAE,EAAE;4BAC9B,SAAS,EAAE,IAAI;4BACf,wBAAwB,EAAE,GAAG;4BAC7B,QAAQ,EAAE;gCACR,UAAU,EAAE,eAAe;gCAC3B,QAAQ,EAAE,sBAAsB;gCAChC,UAAU,EAAE,WAAW;gCACvB,cAAc,EAAE,eAAe;gCAC/B,MAAM,EAAE,MAAM;gCACd,QAAQ,EAAE,mBAAmB;gCAC7B,KAAK,EAAE,uDAAuD;gCAC9D,QAAQ,EAAE,QAAQ;gCAClB,MAAM,EAAE,UAAU;gCAClB,KAAK,EAAE,sBAAsB;6BAC9B;4BACD,OAAO,EAAE,GAAG;yBACb;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,6GAAoB;QAC1B,MAAM,EAAE;YACN,eAAe,EAAE;gBACf,uBAAuB,EAAE;oBACrB;wBACE,IAAI,EAAE,GAAG;wBACT,qBAAqB,EAAE,EAAE;wBACzB,wBAAwB,EAAE,GAAG;wBAC7B,OAAO,EAAE,IAAI;wBACb,oBAAoB,EAAE;4BACpB,IAAI,EAAE,GAAG;4BACT,eAAe,EAAE,EAAE;4BACnB,MAAM,EAAE,wBAAwB;4BAChC,aAAa,EAAE,EAAE;4BACjB,MAAM,EAAE,EAAE;4BACV,OAAO,EAAE,GAAG;4BACZ,eAAe,EAAE,UAAU;4BAC3B,aAAa,EAAE,KAAK;4BACpB,aAAa,EAAE,IAAI;4BACnB,UAAU,EAAE,8BAA8B;4BAC1C,QAAQ,EAAE,IAAI;4BACd,WAAW,EAAE,IAAI;4BACjB,0BAA0B,EAAE;gCAC1B;oCACE,IAAI,EAAE,GAAG;oCACT,wBAAwB,EAAE,GAAG;oCAC7B,sBAAsB,EAAE,GAAG;oCAC3B,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAClB,IAAI,EAAE,GAAG;wCACT,MAAM,EAAE,cAAc;wCACtB,aAAa,EAAE,EAAE;qCAClB;iCACF;gCACD;oCACE,IAAI,EAAE,GAAG;oCACT,wBAAwB,EAAE,GAAG;oCAC7B,sBAAsB,EAAE,GAAG;oCAC3B,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAClB,IAAI,EAAE,GAAG;wCACT,MAAM,EAAE,cAAc;wCACtB,aAAa,EAAE,EAAE;qCAClB;iCACF;gCACD;oCACE,IAAI,EAAE,GAAG;oCACT,wBAAwB,EAAE,GAAG;oCAC7B,sBAAsB,EAAE,GAAG;oCAC3B,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAClB,IAAI,EAAE,GAAG;wCACT,MAAM,EAAE,cAAc;wCACtB,aAAa,EAAE,EAAE;qCAClB;iCACF;6BACF;yBACF;qBACF;oBACD;wBACE,IAAI,EAAE,GAAG;wBACT,qBAAqB,EAAE,EAAE;wBACzB,wBAAwB,EAAE,GAAG;wBAC7B,OAAO,EAAE,IAAI;wBACb,oBAAoB,EAAE;4BAClB,IAAI,EAAE,GAAG;4BACT,eAAe,EAAE,EAAE;4BACnB,MAAM,EAAE,oBAAoB;4BAC5B,aAAa,EAAE,EAAE;4BACjB,MAAM,EAAE,EAAE;4BACV,OAAO,EAAE,GAAG;4BACZ,eAAe,EAAE,UAAU;4BAC3B,aAAa,EAAE,KAAK;4BACpB,aAAa,EAAE,IAAI;4BACnB,UAAU,EAAE,8BAA8B;4BAC1C,QAAQ,EAAE,IAAI;4BACd,WAAW,EAAE,IAAI;4BACjB,0BAA0B,EAAE;gCACxB;oCACI,IAAI,EAAE,GAAG;oCACT,wBAAwB,EAAE,GAAG;oCAC7B,sBAAsB,EAAE,GAAG;oCAC3B,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,GAAG;wCACT,MAAM,EAAE,kBAAkB;wCAC1B,aAAa,EAAE,EAAE;qCACpB;iCACJ;gCACD;oCACI,IAAI,EAAE,GAAG;oCACT,wBAAwB,EAAE,GAAG;oCAC7B,sBAAsB,EAAE,GAAG;oCAC3B,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,GAAG;wCACT,MAAM,EAAE,MAAM;wCACd,aAAa,EAAE,EAAE;qCACpB;iCACJ;gCACD;oCACI,IAAI,EAAE,GAAG;oCACT,wBAAwB,EAAE,GAAG;oCAC7B,sBAAsB,EAAE,GAAG;oCAC3B,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,GAAG;wCACT,MAAM,EAAE,YAAY;wCACpB,aAAa,EAAE,EAAE;qCACpB;iCACJ;gCACD;oCACI,IAAI,EAAE,GAAG;oCACT,wBAAwB,EAAE,GAAG;oCAC7B,sBAAsB,EAAE,GAAG;oCAC3B,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,GAAG;wCACT,MAAM,EAAE,gBAAgB;wCACxB,aAAa,EAAE,EAAE;qCACpB;iCACJ;6BACJ;yBACJ;qBACF;iBAEF;aACF;YACH,UAAU,EAAE;gBACV,YAAY,EAAE;oBACV,IAAI,EAAE,EAAE;oBACR,MAAM,EAAE,0BAA0B;oBAClC,aAAa,EAAE,wBAAwB;oBACvC,iBAAiB,EAAE,MAAM;oBACzB,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,SAAS;oBACvB,eAAe,EAAE,CAAC;oBAClB,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE,KAAK;oBAChB,cAAc,EAAE,IAAI;oBACpB,uBAAuB,EAAE,CAAC;oBAC1B,yBAAyB,EAAE,EAAE;oBAC7B,eAAe,EAAE,EAAE;oBACnB,cAAc,EAAE,MAAM;oBACtB,iBAAiB,EAAE,IAAI;oBACvB,SAAS,EAAE,4BAA4B;oBACvC,UAAU,EAAE,4BAA4B;oBACxC,qBAAqB,EAAE,IAAI;oBAC3B,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,CAAC;oBAChB,aAAa,EAAE,QAAQ;oBACvB,aAAa,EAAE,QAAQ;oBACvB,YAAY,EAAE;wBACV,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE,IAAI;wBACnB,QAAQ,EAAE,IAAI;wBACd,aAAa,EAAE,IAAI;wBACnB,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,KAAK;qBACpB;oBACD,uBAAuB,EAAE,IAAI;oBAC7B,WAAW,EAAE,IAAI;oBACjB,sBAAsB,EAAE,KAAK;iBAChC;gBACD,oBAAoB,EAAE;oBACpB;wBACE,MAAM,EAAE,wBAAwB;wBAChC,eAAe,EAAE,UAAU;wBAC3B,WAAW,EAAE,IAAI;wBACjB,UAAU,EAAE,8BAA8B;wBAC1C,IAAI,EAAE,GAAG;wBACT,eAAe,EAAE,EAAE;qBACpB;oBACD;wBACE,MAAM,EAAE,oBAAoB;wBAC5B,eAAe,EAAE,UAAU;wBAC3B,WAAW,EAAE,IAAI;wBACjB,UAAU,EAAE,8BAA8B;wBAC1C,IAAI,EAAE,GAAG;wBACT,eAAe,EAAE,EAAE;wBACnB,0BAA0B,EAAE;4BAC1B;gCACE,IAAI,EAAE,GAAG;gCACT,wBAAwB,EAAE,GAAG;gCAC7B,sBAAsB,EAAE,GAAG;gCAC3B,OAAO,EAAE,CAAC;gCACV,QAAQ,EAAE,GAAG;gCACb,aAAa,EAAE,IAAI;gCACnB,kBAAkB,EAAE;oCAChB,IAAI,EAAE,GAAG;oCACT,MAAM,EAAE,kBAAkB;oCAC1B,aAAa,EAAE,EAAE;iCACpB;6BACF;4BACD;gCACE,IAAI,EAAE,GAAG;gCACT,wBAAwB,EAAE,GAAG;gCAC7B,sBAAsB,EAAE,GAAG;gCAC3B,OAAO,EAAE,CAAC;gCACV,QAAQ,EAAE,GAAG;gCACb,aAAa,EAAE,IAAI;gCACnB,kBAAkB,EAAE;oCAChB,IAAI,EAAE,GAAG;oCACT,MAAM,EAAE,MAAM;oCACd,aAAa,EAAE,EAAE;iCACpB;6BACF;4BACD;gCACE,IAAI,EAAE,GAAG;gCACT,wBAAwB,EAAE,GAAG;gCAC7B,sBAAsB,EAAE,GAAG;gCAC3B,OAAO,EAAE,CAAC;gCACV,QAAQ,EAAE,GAAG;gCACb,aAAa,EAAE,IAAI;gCACnB,kBAAkB,EAAE;oCAChB,IAAI,EAAE,GAAG;oCACT,MAAM,EAAE,YAAY;oCACpB,aAAa,EAAE,EAAE;iCACpB;6BACF;4BACD;gCACE,IAAI,EAAE,GAAG;gCACT,wBAAwB,EAAE,GAAG;gCAC7B,sBAAsB,EAAE,GAAG;gCAC3B,OAAO,EAAE,CAAC;gCACV,QAAQ,EAAE,GAAG;gCACb,aAAa,EAAE,IAAI;gCACnB,kBAAkB,EAAE;oCAChB,IAAI,EAAE,GAAG;oCACT,MAAM,EAAE,gBAAgB;oCACxB,aAAa,EAAE,EAAE;iCACpB;6BACF;yBACF;qBACF;iBACF;gBACD,iBAAiB,EAAE;oBACjB;wBACI,IAAI,EAAE,EAAE;wBACR,eAAe,EAAE,EAAE;wBACnB,MAAM,EAAE,WAAW;wBACnB,aAAa,EAAE,EAAE;wBACjB,OAAO,EAAE,CAAC;wBACV,qBAAqB,EAAE,EAAE;wBACzB,mBAAmB,EAAE,KAAK;wBAC1B,yBAAyB,EAAE;4BAC3B;gCACE,IAAI,EAAE,GAAG;gCACT,qBAAqB,EAAE,EAAE;gCACzB,wBAAwB,EAAE,GAAG;gCAC7B,OAAO,EAAE,IAAI;gCACb,oBAAoB,EAAE;oCACpB,IAAI,EAAE,GAAG;oCACT,eAAe,EAAE,EAAE;oCACnB,MAAM,EAAE,wBAAwB;oCAChC,aAAa,EAAE,EAAE;oCACjB,MAAM,EAAE,EAAE;oCACV,OAAO,EAAE,GAAG;oCACZ,eAAe,EAAE,UAAU;oCAC3B,aAAa,EAAE,KAAK;oCACpB,aAAa,EAAE,IAAI;oCACnB,UAAU,EAAE,8BAA8B;oCAC1C,QAAQ,EAAE,IAAI;oCACd,WAAW,EAAE,IAAI;oCACjB,0BAA0B,EAAE;wCAC1B;4CACE,IAAI,EAAE,GAAG;4CACT,wBAAwB,EAAE,GAAG;4CAC7B,sBAAsB,EAAE,GAAG;4CAC3B,OAAO,EAAE,CAAC;4CACV,QAAQ,EAAE,GAAG;4CACb,aAAa,EAAE,IAAI;4CACnB,kBAAkB,EAAE;gDAClB,IAAI,EAAE,GAAG;gDACT,MAAM,EAAE,cAAc;gDACtB,aAAa,EAAE,EAAE;6CAClB;yCACF;wCACD;4CACE,IAAI,EAAE,GAAG;4CACT,wBAAwB,EAAE,GAAG;4CAC7B,sBAAsB,EAAE,GAAG;4CAC3B,OAAO,EAAE,CAAC;4CACV,QAAQ,EAAE,GAAG;4CACb,aAAa,EAAE,IAAI;4CACnB,kBAAkB,EAAE;gDAClB,IAAI,EAAE,GAAG;gDACT,MAAM,EAAE,cAAc;gDACtB,aAAa,EAAE,EAAE;6CAClB;yCACF;wCACD;4CACE,IAAI,EAAE,GAAG;4CACT,wBAAwB,EAAE,GAAG;4CAC7B,sBAAsB,EAAE,GAAG;4CAC3B,OAAO,EAAE,CAAC;4CACV,QAAQ,EAAE,GAAG;4CACb,aAAa,EAAE,IAAI;4CACnB,kBAAkB,EAAE;gDAClB,IAAI,EAAE,GAAG;gDACT,MAAM,EAAE,cAAc;gDACtB,aAAa,EAAE,EAAE;6CAClB;yCACF;qCACF;iCACF;6BACF;4BACD;gCACI,IAAI,EAAE,GAAG;gCACT,qBAAqB,EAAE,EAAE;gCACzB,wBAAwB,EAAE,GAAG;gCAC7B,OAAO,EAAE,IAAI;gCACb,oBAAoB,EAAE;oCAClB,IAAI,EAAE,GAAG;oCACT,eAAe,EAAE,EAAE;oCACnB,MAAM,EAAE,oBAAoB;oCAC5B,aAAa,EAAE,EAAE;oCACjB,MAAM,EAAE,EAAE;oCACV,OAAO,EAAE,GAAG;oCACZ,eAAe,EAAE,UAAU;oCAC3B,aAAa,EAAE,KAAK;oCACpB,aAAa,EAAE,IAAI;oCACnB,UAAU,EAAE,8BAA8B;oCAC1C,QAAQ,EAAE,IAAI;oCACd,WAAW,EAAE,IAAI;oCACjB,0BAA0B,EAAE;wCACxB;4CACI,IAAI,EAAE,GAAG;4CACT,wBAAwB,EAAE,GAAG;4CAC7B,sBAAsB,EAAE,GAAG;4CAC3B,OAAO,EAAE,CAAC;4CACV,QAAQ,EAAE,GAAG;4CACb,aAAa,EAAE,IAAI;4CACnB,kBAAkB,EAAE;gDAChB,IAAI,EAAE,GAAG;gDACT,MAAM,EAAE,kBAAkB;gDAC1B,aAAa,EAAE,EAAE;6CACpB;yCACJ;wCACD;4CACI,IAAI,EAAE,GAAG;4CACT,wBAAwB,EAAE,GAAG;4CAC7B,sBAAsB,EAAE,GAAG;4CAC3B,OAAO,EAAE,CAAC;4CACV,QAAQ,EAAE,GAAG;4CACb,aAAa,EAAE,IAAI;4CACnB,kBAAkB,EAAE;gDAChB,IAAI,EAAE,GAAG;gDACT,MAAM,EAAE,MAAM;gDACd,aAAa,EAAE,EAAE;6CACpB;yCACJ;wCACD;4CACI,IAAI,EAAE,GAAG;4CACT,wBAAwB,EAAE,GAAG;4CAC7B,sBAAsB,EAAE,GAAG;4CAC3B,OAAO,EAAE,CAAC;4CACV,QAAQ,EAAE,GAAG;4CACb,aAAa,EAAE,IAAI;4CACnB,kBAAkB,EAAE;gDAChB,IAAI,EAAE,GAAG;gDACT,MAAM,EAAE,YAAY;gDACpB,aAAa,EAAE,EAAE;6CACpB;yCACJ;wCACD;4CACI,IAAI,EAAE,GAAG;4CACT,wBAAwB,EAAE,GAAG;4CAC7B,sBAAsB,EAAE,GAAG;4CAC3B,OAAO,EAAE,CAAC;4CACV,QAAQ,EAAE,GAAG;4CACb,aAAa,EAAE,IAAI;4CACnB,kBAAkB,EAAE;gDAChB,IAAI,EAAE,GAAG;gDACT,MAAM,EAAE,gBAAgB;gDACxB,aAAa,EAAE,EAAE;6CACpB;yCACJ;qCACJ;iCACJ;6BACF;yBACF;qBACF;iBACJ;aAEF;SACF;KACF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,6GAAoB;QAC1B,MAAM,EAAE;YACN,eAAe,EAAE;gBACf,uBAAuB,EAAE;oBACvB;wBACE,kBAAkB,EAAE;4BAClB,EAAE,EAAE,CAAC;4BACL,aAAa,EAAE,MAAM;4BACrB,QAAQ,EAAE,8BAA8B;4BACxC,SAAS,EAAE,OAAO;4BAClB,wBAAwB,EAAE,EAAE;4BAC5B,OAAO,EAAE;gCACP,SAAS,EAAE,EAAE;gCACb,QAAQ,EAAE,EAAE;6BACb;4BACD,IAAI,EAAE,2DAA2D;4BACjE,WAAW,EAAE,IAAI;yBAClB;qBACF;oBACD;wBACE,kBAAkB,EAAE;4BAClB,EAAE,EAAE,CAAC;4BACL,aAAa,EAAE,UAAU;4BACzB,QAAQ,EAAE,8BAA8B;4BACxC,SAAS,EAAE,IAAI;4BACf,wBAAwB,EAAE;gCACxB;oCACI,IAAI,EAAE,CAAC;oCACP,wBAAwB,EAAE,CAAC;oCAC3B,sBAAsB,EAAE,CAAC;oCACzB,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,CAAC;wCACP,MAAM,EAAE,QAAQ;wCAChB,aAAa,EAAE,EAAE;qCACpB;iCACJ;gCACD;oCACI,IAAI,EAAE,CAAC;oCACP,wBAAwB,EAAE,CAAC;oCAC3B,sBAAsB,EAAE,CAAC;oCACzB,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,CAAC;wCACP,MAAM,EAAE,QAAQ;wCAChB,aAAa,EAAE,EAAE;qCACpB;iCACJ;gCACD;oCACI,IAAI,EAAE,CAAC;oCACP,wBAAwB,EAAE,CAAC;oCAC3B,sBAAsB,EAAE,CAAC;oCACzB,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,CAAC;wCACP,MAAM,EAAE,QAAQ;wCAChB,aAAa,EAAE,EAAE;qCACpB;iCACJ;6BACF;4BACD,OAAO,EAAE;gCACP,SAAS,EAAE,EAAE;gCACb,QAAQ,EAAE,EAAE;6BACb;4BACD,IAAI,EAAE,+BAA+B;4BACrC,WAAW,EAAE,IAAI;yBAClB;qBACF;oBAED;wBACE,kBAAkB,EAAE;4BAElB,EAAE,EAAE,CAAC;4BACL,aAAa,EAAE,OAAO;4BACtB,QAAQ,EAAE,8BAA8B;4BACxC,SAAS,EAAE,IAAI;4BACf,wBAAwB,EAAE;gCACxB;oCACI,IAAI,EAAE,CAAC;oCACP,wBAAwB,EAAE,CAAC;oCAC3B,sBAAsB,EAAE,CAAC;oCACzB,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,CAAC;wCACP,MAAM,EAAE,QAAQ;wCAChB,aAAa,EAAE,EAAE;qCACpB;iCACJ;gCACD;oCACI,IAAI,EAAE,CAAC;oCACP,wBAAwB,EAAE,CAAC;oCAC3B,sBAAsB,EAAE,CAAC;oCACzB,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,CAAC;wCACP,MAAM,EAAE,QAAQ;wCAChB,aAAa,EAAE,EAAE;qCACpB;iCACJ;gCACD;oCACI,IAAI,EAAE,CAAC;oCACP,wBAAwB,EAAE,CAAC;oCAC3B,sBAAsB,EAAE,CAAC;oCACzB,OAAO,EAAE,CAAC;oCACV,QAAQ,EAAE,GAAG;oCACb,aAAa,EAAE,IAAI;oCACnB,kBAAkB,EAAE;wCAChB,IAAI,EAAE,CAAC;wCACP,MAAM,EAAE,QAAQ;wCAChB,aAAa,EAAE,EAAE;qCACpB;iCACJ;6BACF;4BACD,OAAO,EAAE;gCACP,SAAS,EAAE,EAAE;gCACb,QAAQ,EAAE,EAAE;6BACb;4BACD,IAAI,EAAE,4DAA4D;4BAClE,WAAW,EAAE,IAAI;yBAClB;qBACF;oBACD;wBACE,kBAAkB,EAAE;4BAClB,EAAE,EAAE,CAAC;4BACL,aAAa,EAAE,MAAM;4BACrB,QAAQ,EAAE,8BAA8B;4BACxC,SAAS,EAAE,IAAI;4BACf,wBAAwB,EAAE,EAAE;4BAC5B,OAAO,EAAE;gCACP,SAAS,EAAE,EAAE;gCACb,QAAQ,EAAE,EAAE;6BACb;4BACD,IAAI,EAAE,2DAA2D;4BACjE,WAAW,EAAE,IAAI;yBAClB;qBACF;oBACD;wBACE,kBAAkB,EAAE;4BAClB,EAAE,EAAE,CAAC;4BACL,aAAa,EAAE,MAAM;4BACrB,QAAQ,EAAE,8BAA8B;4BACxC,SAAS,EAAE,IAAI;4BACf,wBAAwB,EAAE,EAAE;4BAC5B,OAAO,EAAE;gCACP,SAAS,EAAE,EAAE;gCACb,QAAQ,EAAE,EAAE;6BACb;4BACD,IAAI,EAAE,yDAAyD;4BAC/D,WAAW,EAAE,IAAI;yBAClB;qBACF;iBACF;aACF;YACD,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,EAAE,EAAC,mBAAmB;iBACvB;gBACD,uBAAuB,EAAE,EAAE;aAE5B;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,oFAAc;KACrB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,uGAAkB;KACzB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,gGAAgB;KACvB;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,2EAAW;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,qEAAS;KAChB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,8HAAyB;KAChC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,+EAAc;KACrB;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,mEAAQ;KACf;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,oFAAY;KACnB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,6GAAoB;KAC3B;CACF,CAAC;AAMF,IAAa,aAAa;IAKxB,uBAAmB,GAAkB;QAAlB,QAAG,GAAH,GAAG,CAAe;QAJrC,UAAK,GAAe,KAAK,CAAC;QAKxB,sEAAsE;QACtE,gDAAgD;IAClD,CAAC;IAED,4BAAI,GAAJ,UAAK,GAAG;QACN,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IACH,oBAAC;AAAD,CAAC;AAfY,aAAa;IAJzB,gEAAS,CAAC;QACT,QAAQ,EAAE,SAAS;OACK;KACzB,CAAC;kBAMqC;AAUtC;SAfY,aAAa,qB;;;;;;;;;;;;;;;;ACv/BgB;AAK1C,IAAa,eAAe;IAA5B;IAEA,CAAC;IAAD,sBAAC;AAAD,CAAC;AAFY,eAAe;IAH3B,gEAAS,CAAC;MACwB;KAClC,CAAC;AAGD;SAFY,eAAe,oB;;;;;;;;;;;;;;;;;;;;ACLyB;AACP;AAM9C,IAAa,aAAa;IAJ1B;QAKE,aAAQ,GAAG,IAAI,CAAC;IAWlB,CAAC;IARD;;SAEK;IAEH,8BAAM,GAAN;QACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACjB,CAAC;IACH,oBAAC;AAAD,CAAC;AAVwB;IAAtB,gEAAS,CAAC,UAAU,CAAC;8BAAM,oEAAa;0CAAC;AAF/B,aAAa;IAJzB,gEAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,mDAAiD;KAC5D,CAAC;GACW,aAAa,CAYzB;AAZyB;;;;;;;;;;;;;;;;;;ACPe;AACkB;AAI3D,IAAa,iBAAiB;IAA9B;IAAgC,CAAC;IAAD,wBAAC;AAAD,CAAC;AAApB,iBAAiB;IAH7B,+DAAQ,CAAC;QACR,SAAS,EAAE,CAAE,gFAAkB,CAAE;KAClC,CAAC;GACW,iBAAiB,CAAG;AAAH;;;;;;;;;;;;;;;;;ACL2B;AAGzD,IAAa,mBAAmB;IAAhC;IASA,CAAC;IANQ,uBAAG,GAAV,UAAW,EAAU;QACnB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,2DAAY,EAAE,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IACH,0BAAC;AAAD,CAAC;AATY,mBAAmB;IAD/B,iEAAU,EAAE;GACA,mBAAmB,CAS/B;AAT+B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACET;AACoB;AACG;AACnB;AAC8C;AAUzE,IAAa,aAAa;IACxB,uBAAoC,YAA2B;QAC7D,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEM,qBAAO,GAAd,UAAe,MAA4B;QACzC,MAAM,CAAC;YACL,QAAQ,EAAE,eAAa;YACvB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,8EAAoB,EAAE,QAAQ,EAAE,MAAM;iBAChD;aACF;SACF;IACH,CAAC;IACH,oBAAC;AAAD,CAAC;AAlBY,aAAa;IARzB,+DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,iEAAU,EAAE,qEAAY,EAAyC;QAC3E,SAAS,EAAE;YACT,wEAAc;SAEf;KACF,CAAC;IAGa,0EAAQ,EAAE,GAAE,0EAAQ,EAAE;qCAAe,aAAa;GADpD,aAAa,CAkBzB;AAlByB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnB1B;AAAA;AAAA,uEAAuE;AAEvE,+BAA+B;AAC/B,mEAAmE;AAEnE,UAAU;AACyB;AACH;AACM;AACJ;AAElC,YAAY;AACqB;AACO;AACQ;AACjB;AACD;AACK;AACnC,yBAAyB;AACzB,wCAAwC;AACH;;;;;;;;;;;;;;;;;;;;;;;ACpBS;AAG9C,SAAS;AAC0D;AAClC;AAGjC,IAAa,cAAc;IAGzB,wBACS,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;QAHhC,cAAS,GAAG,mBAAmB,CAAC;IAI7B,CAAC;IAEJ,oCAAW,GAAX;QACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;aACpC,GAAG,CAAC,kBAAQ,IAAI,eAAQ,CAAC,IAAI,EAAE,EAAf,CAAe,CAAC;aAChC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;aACpB,SAAS,EAAE,CAAC;IACjB,CAAC;IAED,mCAAU,GAAV,UAAW,OAAO;QAChB,OAAO,CAAC,KAAK,GAAG,2CAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,GAAG,2CAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,oCAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QAEvB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC;IAEH,qBAAC;AAAD,CAAC;AA1BY,cAAc;IAD1B,iEAAU,EAAE;qCAKO,uFAAc;GAJrB,cAAc,CA0B1B;AA1B0B;;;;;;;;;;;;;;;;;;;;;ACRsB;AACH;AAQ9C,IAAa,sBAAsB;IAGjC,gCACS,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QAHtB,UAAK,GAAQ,EAAE,CAAC;IAItB,CAAC;IAEJ,yCAAQ,GAAR,cAAY,CAAC;IACf,6BAAC;AAAD,CAAC;AAPU;IAAR,4DAAK,EAAE;;qDAAiB;AADd,sBAAsB;IAJlC,gEAAS,CAAC;QACT,QAAQ,EAAE,eAAe;OACS;KACnC,CAAC;2BAK+B;AAIhC;SARY,sBAAsB,qB;;;;;;;;;;;;;;;;;;;;;;;ACTc;AACH;AAE9C,WAAW;AACiD;AAC5D,SAAS;AACwB;AAMjC,IAAa,cAAc;IAGzB,wBACS,YAA0B,EAC1B,OAAsB;QADtB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAe;IAC5B,CAAC;IAEJ,8BAA8B;IAC9B,sCAAa,GAAb,UAAc,KAAK;QACjB,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,oCAAM,EAAE,CAAC,QAAQ,CAAC,oCAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,2CAA2C;IAC3C,wCAAe,GAAf,UAAgB,KAAK;QACnB,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,oCAAM,EAAE,CAAC,OAAO,CAAC,oCAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,iCAAQ,GAAR;QACE,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACH,qBAAC;AAAD,CAAC;AApBU;IAAR,4DAAK,EAAE;;6CAAY;AADT,cAAc;IAJ1B,gEAAS,CAAC;QACT,QAAQ,EAAE,OAAO;OACQ;KAC1B,CAAC;8EAKmC;QACjB,WAAa;AAgBhC;SArBY,cAAc,oB;;;;;;;;;;;;;;;;;;;;ACZsB;AACH;AAM9C,IAAa,cAAc;IAGzB,wBACS,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAC5B,CAAC;IAEG,kCAAS,GAAhB,UAAiB,OAAO;QACtB,kCAAkC;IACpC,CAAC;IACH,qBAAC;AAAD,CAAC;AATU;IAAR,4DAAK,EAAE;;6CAAO;AADJ,cAAc;IAJ1B,gEAAS,CAAC;QACT,QAAQ,EAAE,OAAO;OACQ;KAC1B,CAAC;mBAK+B;AAMhC;SAVY,cAAc,U;;;;;;;;;;;;;;;;;;;ACPsB;AAMjD,IAAa,sBAAsB;IAAnC;IAEA,CAAC;IAAD,6BAAC;AAAD,CAAC;AADU;IAAR,4DAAK,EAAE;;uDAAc;AADX,sBAAsB;IAJlC,gEAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;MACO;KAClC,CAAC;AAGD;SAFY,sBAAsB,U;;;;;;;;;;;;;;;;ACNO;AAM1C,IAAa,eAAe;IAA5B;IAEA,CAAC;IAAD,sBAAC;AAAD,CAAC;AAFY,eAAe;IAJ3B,gEAAS,CAAC;QACT,QAAQ,EAAE,QAAQ;MACQ;KAC3B,CAAC;AAGD;SAFY,eAAe,U;;;;;;;;;;;;;;;;;;;;ACNqB;AACH;AAM9C,IAAa,eAAe;IAG1B,yBACS,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAC5B,CAAC;IAEG,mCAAS,GAAhB,UAAiB,MAAM;QACrB,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC;QACjC,oDAAoD;QACpD,mDAAmD;QACnD,+BAA+B;IACjC,CAAC;IACH,sBAAC;AAAD,CAAC;AAZU;IAAR,4DAAK,EAAE;;+CAAQ;AADL,eAAe;IAJ3B,gEAAS,CAAC;QACT,QAAQ,EAAE,QAAQ;OACQ;KAC3B,CAAC;oBAK+B;AAShC;SAbY,eAAe,U;;;;;;;;;;;;;;;;;;;;ACPqB;AACH;AAM9C,IAAa,cAAc;IAGzB,wBACS,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAC5B,CAAC;IAEG,kCAAS,GAAhB,UAAiB,OAAO;QACtB,uBAAuB;IACzB,CAAC;IACH,qBAAC;AAAD,CAAC;AATU;IAAR,4DAAK,EAAE;;6CAAO;AADJ,cAAc;IAJ1B,gEAAS,CAAC;QACT,QAAQ,EAAE,OAAO;OACQ;KAC1B,CAAC;mBAK+B;AAMhC;SAVY,cAAc,U;;;;;;;;;;;;;;;;;;;;;ACPe;AACe;AACC;AAG1D,IAAM,WAAW,GAAG,8sSAuF+I,CAAC;AAMpK,IAAa,oBAAoB;IAE/B,8BAAmB,SAAuB,EAAS,WAAwB;QAAxD,cAAS,GAAT,SAAS,CAAc;QAAS,gBAAW,GAAX,WAAW,CAAa;QACzE,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IAC7B,CAAC;IACH,2BAAC;AAAD,CAAC;AALY,oBAAoB;IAJhC,gEAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,mCAAmC;KAC9C,CAAC;qCAG8B,+EAAY,EAAsB,2EAAW;GAFhE,oBAAoB,CAKhC;AALgC;;;;;;;;;;;;;;;;;;;;;;;;;AClGgC;AACtB;AAE3C,SAAS;AACwF;AACjC;AACpC;AAM5B,IAAa,qBAAqB;IAMhC,+CAA+C;IAE/C,+BACS,EAAqB,EACrB,IAAkB,EAClB,IAAY;QAHrB,iBAII;QAHK,OAAE,GAAF,EAAE,CAAmB;QACrB,SAAI,GAAJ,IAAI,CAAc;QAClB,SAAI,GAAJ,IAAI,CAAQ;QA0CrB,eAAU,GAAG,UAAC,KAAY;YACxB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;gBACxB,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC;QAChB,CAAC,CAAC;IAjDC,CAAC;IAEJ;;;OAGG;IACH,wCAAQ,GAAR;QACE,IAAI,CAAC,QAAQ,GAAG,+CAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;IACvG,CAAC;IAED;;OAEG;IACH,sCAAM,GAAN,UAAO,KAAK;QAAZ,iBA0BC;QAzBC,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;aACf;SACF,CAAC,CAAC,IAAI,CAAC,UAAC,QAA0B;YACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACZ,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAE7C,mDAAmD;oBACnD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;oBAEvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,CAAC;gBAED,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAWH,4BAAC;AAAD,CAAC;AA7DU;IAAR,4DAAK,EAAE;;uDAAU;AACT;IAAR,4DAAK,EAAE;;uDAAU;AACT;IAAR,4DAAK,EAAE;8BAAO,iEAAS;mDAAC;AAHd,qBAAqB;IAJjC,gEAAS,CAAC;QACT,QAAQ,EAAE,eAAe;OACC;KAC3B,CAAC;0FAU8B;QACf,uDAAY;QACZ,MAAM;AAmDtB;SA9DY,qBAAqB,E;;;;;;;;;;;;;;;;;;;;ACZ6C;AACpC;AAM3C,IAAa,sBAAsB;IAMjC;QAFU,cAAS,GAAG,IAAI,2DAAY,EAAE,CAAC;IAE1B,CAAC;IAChB,uCAAM,GAAN,UAAO,CAAC;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,yCAAQ,GAAR;QACE,8BAA8B;IAChC,CAAC;IACH,6BAAC;AAAD,CAAC;AAbU;IAAR,4DAAK,EAAE;;wDAAU;AACT;IAAR,4DAAK,EAAE;8BAAO,iEAAS;oDAAC;AAChB;IAAR,4DAAK,EAAE;;wDAAU;AACR;IAAT,6DAAM,EAAE;;yDAAgC;AAJ9B,sBAAsB;IAJlC,gEAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;OACC;KAC5B,CAAC;;AAeD;SAdY,sBAAsB,E;;;;;;;;;;;;;;;;;;;;ACPsB;AACd;AAM3C,IAAa,qBAAqB;IAKhC;IAAe,CAAC;IAEhB,wCAAQ,GAAR,cAAY,CAAC;IACf,4BAAC;AAAD,CAAC;AAPU;IAAR,4DAAK,EAAE;;uDAAU;AACT;IAAR,4DAAK,EAAE;;uDAAU;AACT;IAAR,4DAAK,EAAE;8BAAO,iEAAS;mDAAC;AAHd,qBAAqB;IAJjC,gEAAS,CAAC;QACT,QAAQ,EAAE,eAAe;OACC;KAC3B,CAAC;;AASD;SARY,qBAAqB,E;;;;;;;;;;;;;;;;;;;;ACP6C;AACpC;AAM3C,IAAa,yBAAyB;IAKpC;IAAe,CAAC;IAEhB,0CAAM,GAAN,UAAO,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,4CAAQ,GAAR;QACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACH,gCAAC;AAAD,CAAC;AAdU;IAAR,4DAAK,EAAE;;2DAAU;AACT;IAAR,4DAAK,EAAE;;2DAAU;AACT;IAAR,4DAAK,EAAE;8BAAO,iEAAS;uDAAC;AAHd,yBAAyB;IAJrC,gEAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;OACC;KAC/B,CAAC;;AAgBD;SAfY,yBAAyB,E;;;;;;;;;;;;;;;;;;;ACPmB;AAMzD,IAAa,iBAAiB;IAG5B;IAAe,CAAC;IAEhB,oCAAQ,GAAR,cAAY,CAAC;IACf,wBAAC;AAAD,CAAC;AALU;IAAR,4DAAK,EAAE;;mDAAU;AADP,iBAAiB;IAJ7B,gEAAS,CAAC;QACT,QAAQ,EAAE,UAAU;OACU;KAC/B,CAAC;;AAOD;SANY,iBAAiB,U;;;;;;;;;;;;;;;;;;;;ACNmB;AACH;AAM9C,IAAa,eAAe;IAG1B,yBACS,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAC5B,CAAC;IACN,sBAAC;AAAD,CAAC;AALU;IAAR,4DAAK,EAAE;;+CAAQ;AADL,eAAe;IAJ3B,gEAAS,CAAC;QACT,QAAQ,EAAE,QAAQ;OACQ;KAC3B,CAAC;oBAK+B;AAEhC;SANY,eAAe,oB;;;;;;;;;;;;;;;;;;;;;;;;ACP0B;AACsC;AAE5F,WAAW;AACwD;AACZ;AACvD,QAAQ;AACiD;AAGY;AAQrE,IAAa,cAAc;IAIzB,wBACS,YAA0B,EAC1B,WAA8B,EAC9B,OAAsB,EACtB,SAAoB,EACpB,kBAAoC,EACpC,QAAwB;QALxB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,gBAAW,GAAX,WAAW,CAAmB;QAC9B,YAAO,GAAP,OAAO,CAAe;QACtB,cAAS,GAAT,SAAS,CAAW;QACpB,uBAAkB,GAAlB,kBAAkB,CAAkB;QACpC,aAAQ,GAAR,QAAQ,CAAgB;QAT1B,iBAAY,GAAQ,EAAE,CAAC;QACvB,mBAAc,GAAQ,sEAAe,CAAC,cAAc,CAAC,OAAO,CAAC;IASjE,CAAC;IAEJ,yCAAgB,GAAhB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,gCAAgC;IAChC,mCAAU,GAAV;QACE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uEAAQ,CAAC,CAAC;IACjC,CAAC;IACH,qBAAC;AAAD,CAAC;AAtBY,cAAc;IAL1B,iEAAU,EAAE;IACZ,gEAAS,CAAC;QACT,QAAQ,EAAE,aAAa;OACQ;KAChC,CAAC;iFAMmC;QACb,qEAAiB;QACrB,iEAAa;QACX,6EAAS;QACA,uEAAgB;QAC1B,WAAc;AAYlC;SAtBY,cAAc,qB;;;;;;;;;;;;;;;;;;;;;;;;AClB0B;AACS;AAE9D,QAAQ;AACmC;AACE;AACqB;AACb;AAErD,6EAA6E;AAK7E,IAAa,WAAW;IAStB,qBACS,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;QAPjC,uBAAkB,GAAG,sFAAkB,CAAC;QACxC,mBAAc,GAAG,yEAAc,CAAC;QAChC,cAAS,GAAG,+DAAS,CAAC;QACtB,aAAQ,GAAG,IAAI,CAAC;QAChB,aAAQ,GAAG,iEAAQ,CAAC;QAKlB,IAAI,CAAC,QAAQ,GAAG,+DAAS,CAAC;IAC5B,CAAC;IAED,4BAAM,GAAN,UAAO,IAAS;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,EAAC,4EAA4E;IAE9E,8BAAQ,GAAR;QACE,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,+DAAS,CAAC,CAAC;IAClC,CAAC,EAAC,2BAA2B;IAE7B,gCAAU,GAAV;QACE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC;IAC3D,CAAC;IAGH,kBAAC;AAAD,CAAC;AA9BuB;IAArB,gEAAS,CAAC,SAAS,CAAC;8BAAU,oEAAa;4CAAC;AADlC,WAAW;IAJvB,gEAAS,CAAC;QACT,QAAQ,EAAE,cAAc;OACG;KAC5B,CAAC;gBAWiC;AAqBlC;SA/BY,WAAW,e;;;;;;;;;;;;;;;;;;ACd0B;AACjB;AAGjC,IAAa,WAAW;IAAxB;IA2EA,CAAC;IA1EC,+BAAS,GAAT,UAAU,KAAK,EAAE,aAAmB;QAClC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,EAAE,CAAC;QACZ,CAAC;QAED,wBAAwB;QACxB,KAAK,GAAG,2CAAU,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,UAAU,GAAG,UAAU,SAAS,EAAE,GAAG,EAAE,OAAO;YAC1C,2FAA2F;YAC3F,IAAI,MAAM,GAAG,SAAS,CAAC;YACvB,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,EACD,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAChC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;QAClC,gCAAgC;QAChC,WAAW,GAAG,aAAa,IAAI,KAAK,EACpC,OAAO,GAAE;YACL,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,UAAU;YACzB,OAAO,EAAE,oBAAoB;YAC7B,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,gBAAgB;YACvB,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,UAAU;YACjB,aAAa,EAAE,GAAG;SACrB,EACD,cAAc,GAAG,OAAO,GAAG,IAAI,EAC/B,KAAK,EACL,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,EACzC,OAAO,GAAG,OAAO,GAAG,EAAE,EACtB,KAAK,GAAG,OAAO,GAAG,EAAE,EACpB,IAAI,GAAG,KAAK,GAAG,EAAE,EACjB,KAAK,GAAG,IAAI,GAAG,GAAG,EAClB,SAAS,GAAG,OAAO,CAAC,aAAa,EAGjC,MAAM,GAAG,OAAO,CAAC,SAAS,EAC1B,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QAE/B,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;gBAC/B,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YACnC,CAAC;QACL,CAAC;QAED,KAAK,GAAG,OAAO,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YACjF,OAAO,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;YACtD,OAAO,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YACzE,OAAO,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;YACpD,KAAK,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;YACnE,KAAK,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC;YACjD,IAAI,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;YAChE,IAAI,GAAG,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC;YAClD,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC;YACxE,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;YACnD,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,MAAM,GAAC,GAAG,GAAC,KAAK,GAAC,GAAG,GAAC,MAAM,GAAC,GAAG,GAAC,SAAS,CAAC,CAAC;IAErD,CAAC;IACH,kBAAC;AAAD,CAAC;AA3EY,WAAW;IADvB,2DAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;GACb,WAAW,CA2EvB;AA3EuB;;;;;;;;;;;;;;;;;ACJ4B;AAMpD,IAAa,WAAW;IADxB,sCAAsC;IACtC;IAeA,CAAC;IAdC,+BAAS,GAAT,UAAU,KAAa;QACrB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,4CAA4C;QAC5C,IAAI,qBAAqB,GAAG,UAAU,MAAM;YAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACH,kBAAC;AAAD,CAAC;AAfY,WAAW;IAJvB,2DAAI,CAAC;QACJ,IAAI,EAAE,SAAS;KAChB,CAAC;IACF,sCAAsC;GACzB,WAAW,CAevB;AAfuB;;;;;;;;;;;;;;;;;ACN4B;AAIpD,IAAa,YAAY;IAAzB;IAOA,CAAC;IANC,gCAAS,GAAT,UAAU,KAAa,EAAE,SAAiB;QACxC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;IAC/C,CAAC;IACH,mBAAC;AAAD,CAAC;AAPY,YAAY;IAHxB,2DAAI,CAAC;QACJ,IAAI,EAAE,UAAU;KACjB,CAAC;GACW,YAAY,CAOxB;AAPwB;;;;;;;;;;;;;;;;;;;;;ACJ2B;AACK;AAGzD,IAAa,cAAc;IACzB,wBAAoB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAC3C,CAAC;IAED,kCAAS,GAAT,UAAU,OAAO;QACf,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IACH,qBAAC;AAAD,CAAC;AAPY,cAAc;IAD1B,2DAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;qCAEP,+EAAY;GADhC,cAAc,CAO1B;AAP0B;;;;;;;;;ACJ3B,sBAAsB;AACtB,yBAAyB;AACzB,yDAAe;IACb,SAAS,EAAE,iCAAiC;IAC5C,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE;QACT,MAAM,EAAE,wBAAwB;KACjC;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRyC;AACuB;AAEjE,WAAW;AAC0D;AACN;AAC/D,QAAQ;AACkD;AAC1D,SAAS;AAC4D;AACpC;AACL;AAM5B,IAAa,cAAc;IAUzB,wBACS,eAAgC,EAChC,YAA0B,EAC1B,WAA8B,EAC9B,OAAsB;QAHtB,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,gBAAW,GAAX,WAAW,CAAmB;QAC9B,YAAO,GAAP,OAAO,CAAe;QAb/B,eAAU,GAAG,EAAE,CAAC;QAChB,0BAAqB,GAAG,kEAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,oCAAoC;QAC7F,WAAM,GAAG,EAAE,CAAC,CAAC,yEAAyE;QACtF,WAAM,GAAG,SAAS,CAAC;QACnB,iBAAY,GAAG,EAAE,CAAC,CAAC,iDAAiD;QACpE,+BAA0B,GAAG,kEAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAClE,+BAA0B,GAAG,kEAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAClE,aAAQ,GAAG,KAAK,CAAC;IAOd,CAAC;IAEJ;;;;;;OAMG;IACH,qCAAY,GAAZ;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACnB,KAAK,UAAU;gBACb,mDAAmD;gBACnD,IAAI,CAAC,MAAM,GAAG,+CAAS,CAAC,8CAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,UAAC,KAAK;oBACxD,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,oCAAM,EAAE,CAAC,OAAO,CAAC,oCAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1E,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACrB,KAAK,CAAC;YACR,KAAK,aAAa;gBAChB,sDAAsD;gBACtD,IAAI,CAAC,MAAM,GAAG,+CAAS,CAAC,8CAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,UAAC,KAAK;oBACxD,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,oCAAM,EAAE,CAAC,QAAQ,CAAC,oCAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3E,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACpB,KAAK,CAAC;YACR,KAAK,SAAS;gBACZ,uEAAuE;gBACvE,IAAI,CAAC,MAAM,GAAG,+CAAS,CAAC,8CAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,UAAC,KAAK;oBACxD,oEAAoE;oBACpE,6EAA6E;oBAC7E,MAAM,CAAC,CAAC,oCAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;gBACnE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACpB,KAAK,CAAC;QACV,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,gCAAgC;IAChC,iCAAQ,GAAR,UAAS,MAAM;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;IAED,oDAAoD;IACpD,2CAAkB,GAAlB;QACE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,mCAAU,GAAV;QAAA,iBA+BC;QA9BC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,qBAAqB;YACrB,KAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE;iBACzC,IAAI,CAAC,UAAC,UAAU;gBACf,KAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,+CAAS,CAAC,UAAU,EAAE,UAAC,GAAG;oBACxB,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;oBACvC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,2BAA2B;gBAC3B,KAAI,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC1B,MAAM,EAAE;wBACN,WAAW,EAAE,GAAG,GAAG,gDAAU,CAAC,WAAW,CAAC,GAAG,GAAG;wBAChD,IAAI,EAAE,SAAS;qBAChB;iBACF,CAAC;qBACD,IAAI,CAAC,UAAC,MAAM;oBACX,+CAA+C;oBAC/C,gFAAgF;oBAChF,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAErE,kCAAkC;oBAClC,KAAI,CAAC,MAAM,GAAG,6CAAO,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC;oBACzC,KAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC,EAAE,MAAM,CAAC,CAAC;YACb,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wCAAe,GAAf;QAAA,iBAYC;QAXC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAEvC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YACpB,KAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;gBACrB,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC;iBACD,KAAK,CAAC,UAAC,GAAG;gBACT,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAS,GAAT,UAAU,CAAC;QACT,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;YACrB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC;aACD,KAAK,CAAC,UAAC,GAAG;YACT,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACxB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IACD;;;;;;OAMG;IACF,qCAAY,GAAZ,UAAa,MAAM;QAClB,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE3B,+CAAS,CAAC,MAAM,EAAE,UAAC,KAAK,EAAE,GAAG;YAC3B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,iCAAiC,GAAG,GAAG,GAAG,MAAM,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACF,yCAAgB,GAAhB,UAAiB,MAAM;QAAvB,iBAWA;QAVC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,CAAC,OAAO,CAAC,eAAK;YAClB,IAAI,YAAY,GAAG,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACtD,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,8BAA8B;YAC1E,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACD,gCAAgC;IAChC,qCAAY,GAAZ,UAAa,KAAK;QAChB,MAAM,CAAC,CAAC,oCAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,oCAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,6BAAI,GAAJ,UAAK,KAAK;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,8EAAc,EAAE;YAChC,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IACH,qBAAC;AAAD,CAAC;AA9KY,cAAc;IAJ1B,gEAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;OACJ;KACzB,CAAC;sFAYyC;QAClB,wEAAY;QACb,sEAAiB;QACrB,WAAa;AAgKhC;SA9KY,cAAc,c;;;;;;;;;;;;;;;;;;;;;;;;ACjB0B;AAKrD;IAAA;IAGA,CAAC;IAAD,uBAAC;AAAD,CAAC;;AAGD,IAAa,gBAAgB;IAD7B;QAEE,WAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAAD,uBAAC;AAAD,CAAC;AAFY,gBAAgB;IAD5B,iEAAU,EAAE;GACA,gBAAgB,CAE5B;AAF4B;AAI7B,IAAa,iBAAiB;IAK5B,2BAAwB,MAAwB;QAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAEjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,gCAAI,GAAJ,UAAK,MAAO;QACV,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG;gBACP,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE;oBACP,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,kCAAM,GAAN,UAAO,IAAI,EAAE,SAAS,EAAE,OAAQ,EAAE,UAAW;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAO;YAChC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1B,CAAC;IAED,uCAAW,GAAX;QACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED,uCAAW,GAAX,UAAa,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,oCAAQ,GAAR,UAAU,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,qCAAS,GAAT,UAAW,CAAC,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,kCAAM,GAAN,UAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,oCAAQ,GAAR,UAAU,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,kCAAM,GAAN,UAAQ,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,oCAAQ,GAAR,UAAU,CAAC,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IACH,wBAAC;AAAD,CAAC;AAtEY,iBAAiB;IAKf,0EAAQ,EAAE;qCAAS,gBAAgB;GALrC,iBAAiB,CAsE7B;AAtE6B","file":"main.js","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Storage } from '@ionic/storage';\n\nimport { Cache } from '../app/cache';\n\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class CacheService {\n\n public localStorage: any;\n public bufferZone = {}; // temporary cached storage in service\n\n constructor(\n public storage: Storage\n ) {\n storage.ready().then(() => {\n console.log('Storage loaded.');\n this.read('*', true).then(content => this.bufferZone = content);\n });\n\n if (!localStorage) {\n throw new Error('Current browser does not support Local Storage');\n }\n this.localStorage = localStorage;\n }\n\n private key = '_app_cache';\n\n set(key, value) {\n return this.storage.set(key, value);\n }\n\n /**\n * get memory cached values by key\n * @param {object||string}\n */\n getCached(key) {\n if (this.bufferZone) {\n return this.bufferZone[key] || null;\n }\n return null;\n }\n\n /**\n * Write data into local storage\n * @param {string} path - path to store data\n * @param {any} content - data to store\n * @return {promise} \n */\n write(path: string, content: any) {\n this.bufferZone = _.set(this.bufferZone, path, content);\n\n return new Promise((resolve, reject) => {\n this.storage.set(this.key, this.bufferZone)\n .then(resolve, reject);\n });\n }\n\n /**\n * Read data into local storage\n * @param {string} path - path to read data\n * @return {promise} \n */\n read(path: string = '*', strict: boolean = false) {\n if (!strict) {\n return new Promise((resolve, reject) => {\n if (!this.bufferZone && path !== '*') {\n return resolve(null);\n }\n\n if (path === '*') {\n return resolve(this.bufferZone);\n }\n\n return resolve(_.get(this.bufferZone, path));\n });\n } else {\n return new Promise((resolve, reject) => {\n this.storage.get(this.key)\n .then((data: Cache) => {\n if (!data && path !== '*') {\n return resolve(null);\n }\n\n if (path === '*') {\n return resolve(data);\n }\n\n return resolve(_.get(data, path));\n }, reject);\n });\n }\n }\n\n public clear(): any {\n return this.storage.clear();\n }\n\n // public remove(cb): any;\n // public length(cb): any;\n // public keys(cb): any;\n // public forEach(cb): any;\n\n // pure localStorage implementation\n public setLocal(key: string, value: string | Boolean): void {\n this.localStorage[key] = value;\n }\n\n public getLocal(key: string): string {\n return this.localStorage[key] || false;\n }\n\n public setLocalObject(key: string, value: any): void {\n this.localStorage[key] = JSON.stringify(value);\n }\n\n public getLocalObject(key: string): any {\n return JSON.parse(this.localStorage[key] || '{}');\n }\n\n public removeLocal(key: string): any {\n this.localStorage.removeItem(key);\n }\n\n public clearLocal(cb): any {\n return cb(this.localStorage.clear());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/cache/cache.service.ts","import { Injectable } from '@angular/core';\n\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class CharacterService {\n charactersAPIEndpoint: any = 'api/characters.json';\n\n constructor(\n public cache: CacheService,\n public request: RequestService\n ) {}\n\n /**\n * Get character\n */\n getCharacter() {\n return this.request.get(this.charactersAPIEndpoint, {\n search: {\n game_id: this.cache.getLocalObject('game_id')\n }\n });\n }\n\n /**\n * Post character\n * @param {object} data\n */\n postCharacter(data) {\n return this.request.post(this.charactersAPIEndpoint, data, {\n 'Content-Type': 'application/json'\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/character.service.ts","import { Component } from '@angular/core';\nimport { ModalController, NavParams, NavController, AlertController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// pages\nimport { ActivitiesViewModalPage } from './activities-view-modal.page';\nimport { AssessmentsPage } from '../../assessments/assessments.page';\nimport { ActivityService } from '../../../services/activity.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// Others\nimport * as _ from 'lodash';\n\n@Component({\n templateUrl: './view.html'\n})\nexport class ActivitiesViewPage {\n achievements: any = {\n available: [],\n obtained: {},\n maxPoints: {}\n };\n activity: any = {};\n assessment: any = {};\n loadings = {\n submissions: false\n };\n submissions: Array = [];\n\n constructor(\n public activityService: ActivityService,\n public alertCtrl: AlertController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public modalCtrl: ModalController,\n public submissionService: SubmissionService\n ) {}\n\n ionViewWillEnter(): void {\n this.loadings.submissions = true;\n }\n\n // @TODO: use simple mock data for assessment first\n /**\n * on assessment implementation, to do list:\n * - load badges\n * - change icon display based on responded data format\n * - load submission into this.submissions\n * - change template view based on responded data format\n */\n ionViewDidEnter(): void {\n // assessment\n this.activity = this.activityService.normaliseActivity(this.navParams.get('activity') || {});\n this.assessment = this.activity.assessment;\n\n // submission\n this.submissions = [];\n Observable.forkJoin(this.submissionService.getSubmissionsByReferences(this.activity.References)).subscribe(responses => {\n // turn nested array into single dimension array\n responses.forEach((submissions: Array) => {\n if (submissions.length > 0) {\n this.submissions = submissions.map(submission => {\n return this.submissionService.normalise(submission);\n });\n this.submissions = _.orderBy(this.submissions, 'created', 'desc'); // latest at top\n\n this.submissions = this.setSubmissionStatusTitle(this.submissions);\n }\n });\n\n this.loadings.submissions = false;\n });\n\n // badges\n this.achievements = this.navParams.get('achievements');\n this.activity.badges = this.extractBadges();\n this.activity.badges.map((badge, index) => {\n if ((this.activity.id % 3) != 0) {\n badge.disabled = false;\n } else {\n badge.disabled = true;\n }\n });\n }\n\n // extract \"in progress\"\n inProgressSubmission() {\n let result = [];\n (this.submissions || []).forEach(submission => {\n if (submission.status === 'in progress') {\n result.push(submission);\n }\n });\n return result;\n }\n\n public extractBadges(): Array {\n let result = [];\n if (this.achievements.available && this.achievements.available.length > 0) {\n this.achievements.available.forEach(achievement => {\n if (achievement.Achievement.badge) {\n result.push({\n url: achievement.Achievement.badge,\n disabled: false\n });\n }\n });\n }\n return result;\n }\n\n /**\n * @description display activity detail modal page\n */\n openModal() {\n let detailModal = this.modalCtrl.create(ActivitiesViewModalPage, {activity: this.activity});\n detailModal.present();\n }\n\n /**\n * @name goAssessment\n * @description direct to assessment page of a selected activity\n * @param {Object} activity single activity object from the list of\n * activities respond from get_activities API\n * @param {Object} opts optional object with\n * - hasSubmission: to indicateif user is accessing a in\n * progress assessment\n */\n goAssessment(submission?, opts = { hasSubmission: false }) {\n if ((this.inProgressSubmission()).length > 0 && opts.hasSubmission === false) {\n let alert = this.alertCtrl.create({\n title: 'You already have started a new submission! Please tap on \"In Progress\" below to continue with it.',\n buttons: [\"Ok\"]\n });\n alert.present();\n } else if (opts.hasSubmission === true) {\n this.navCtrl.push(AssessmentsPage, {\n activity: this.activity,\n assessment: this.assessment,\n submissions: this.submissions,\n currentSubmission: submission\n });\n } else {\n this.navCtrl.push(AssessmentsPage, {\n activity: this.activity,\n assessment: this.assessment\n });\n }\n }\n\n /**\n * @name setSubmissionStatusTitle\n * @description refer to assessment status and inject proper UI displayable title for different submissions (in a assessments, multiple submission has no unique title, this function is added to help user identify different submission by title)\n * @param {Array} submissions submissions array objects\n */\n setSubmissionStatusTitle(submissions: Array) {\n let results: Array<{\n name: string,\n score: number,\n published: boolean,\n inprogress: boolean,\n moderated_assessment: boolean\n }>;\n\n submissions = submissions.map((submission, index) => {\n let result = {\n name: '',\n score: 0,\n published: false,\n inprogress: false,\n moderated_assessment: false\n };\n\n if (submission.status == \"published\") {\n result.published = true;\n\n switch (submission.moderated_score) {\n case \"1\":\n result.score = 4;\n result.name = \"Outstanding\";\n break;\n case \"0.75\":\n result.score = 3;\n result.name = \"Commendable\";\n break;\n case \"0.5\":\n result.score = 2;\n result.name = \"Competent\";\n break;\n case \"0.25\":\n result.score = 1;\n result.name = \"Developing\";\n break;\n case \"0\":\n result.score = 0;\n result.name = \"Needs Improvement\";\n }\n } else if(submission.status == \"in progress\") {\n result.inprogress = true;\n } else {\n result.inprogress = false;\n }\n\n if (submission.assessment.assessment_type == \"moderated\") {\n result.moderated_assessment = true;\n }\n\n submission.statusTitle = result;\n return submission;\n });\n\n return submissions;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/view/activities-view.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavParams, NavController, Navbar, LoadingController, ModalController, AlertController, Events } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n//services\nimport { AssessmentService } from '../../services/assessment.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { CharacterService } from '../../services/character.service';\nimport { GameService } from '../../services/game.service';\nimport { SubmissionService } from '../../services/submission.service';\nimport { TranslationService } from '../../shared/translation/translation.service';\n// pages\nimport { AssessmentsGroupPage } from './group/assessments-group.page'\nimport { ItemsPopupPage } from './popup/items-popup.page';\nimport { ActivitiesListPage } from '../activities/list/list.page';\n// Others\nimport { confirmMessages, errMessages, loadingMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'assessments-page',\n templateUrl: './assessments.html'\n})\nexport class AssessmentsPage {\n @ViewChild(Navbar) navbar: Navbar;\n\n activity: any = {};\n allItemsData: any = [];\n allowSubmit: boolean = false;\n answers: any = {};\n assessment: any = {};\n assessmentGroups: any = [];\n assessmentQuestions: any = [];\n combinedItems: any = [];\n discardConfirmMessage = confirmMessages.Assessments.DiscardChanges.discard;\n getCharacterID: any = this.cacheService.getLocal('character_id');\n getInitialItems: any = this.cacheService.getLocalObject('initialItems');\n gotNewItems: boolean = false;\n isEventSubmission: boolean = false;\n initialItemsCount: any = {};\n loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n newItemsCount: any = {};\n newItemsData: any = [];\n noItems: boolean = null;\n outputData: any = [];\n submissions: any = [];\n submissionUpdated: boolean = false; // event listener flag\n submitConfirmMessage = confirmMessages.Assessments.SubmitConfirmation.confirm;\n totalItems: any = [];\n\n constructor(\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cacheService: CacheService,\n public characterService: CharacterService,\n public events: Events,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public modalCtrl: ModalController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public translationService: TranslationService\n ) {\n this.activity = this.navParams.get('activity');\n if (!this.activity) {\n throw 'Fatal Error: Activity not available';\n }\n }\n\n ionViewWillEnter() {\n let loader = this.loadingCtrl.create();\n loader.present().then(() => {\n this.loadQuestions()\n .then(() => {\n loader.dismiss();\n }, err => {\n console.log('log::', err);\n })\n .catch((err) => {\n console.log(err);\n loader.dismiss();\n });\n });\n }\n\n /**\n * track if this page need to download assessment manually (extra load)\n */\n traceAssessmentProgress() {\n this.events.subscribe('assessment:changes', (submissionUpdated) => {\n this.submissionUpdated = true;\n });\n }\n\n /**\n * @description mapping assessments and submissions\n * @param {Object} submissions submissions\n * @param {Object} assessments assessments\n */\n mapSubmissionsToAssessment(submissions, assessments) {\n _.forEach(assessments, (group, i) => {\n _.forEach(group, (assessment, j) => {\n\n // normalise\n assessments[i][j] = assessment = this.assessmentService.normalise(assessment);\n\n _.forEach(assessment.AssessmentGroup, (assessmentGroup, k) => {\n _.forEach(assessmentGroup.questions, (question, l) => {\n // Inject empty answer fields\n // We will know thare are no submission when it is null\n assessments[i][j].AssessmentGroup[k].questions[l].answer = null;\n assessments[i][j].AssessmentGroup[k].questions[l].reviewerAnswer = null;\n\n // find submission\n _.forEach(submissions, (submission) => {\n // attach existing submission to assessment group it belongs to\n let group = this.assessmentGroups[i][j].AssessmentGroup[k];\n if (group.assessment_id === submission.assessment_id) {\n this.assessmentGroups[i][j].AssessmentGroup[k].submission = submission;\n }\n\n // find user answer\n _.forEach(submission.answer, (answer) => {\n if (answer.assessment_question_id === question.id) {\n assessments[i][j].AssessmentGroup[k].questions[l].answer = answer;\n }\n });\n\n // find reviewer feedback\n _.forEach(submission.review, (reviewerAnswer) => {\n if (reviewerAnswer.assessment_question_id === question.id) {\n assessments[i][j].AssessmentGroup[k].questions[l].reviewerAnswer = reviewerAnswer;\n }\n });\n });\n\n });\n\n // Summarise basic answer information\n // get total number of questions\n assessments[i][j].AssessmentGroup[k].totalRequiredQuestions = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required) {\n assessments[i][j].AssessmentGroup[k].totalRequiredQuestions += 1;\n }\n });\n\n // get total number of answered questions\n assessments[i][j].AssessmentGroup[k].answeredQuestions = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required && q.answer && q.answer !== null) {\n assessments[i][j].AssessmentGroup[k].answeredQuestions += 1;\n }\n });\n\n // get total number of feedback\n assessments[i][j].AssessmentGroup[k].reviewerFeedback = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n // If API response, the reviewer's answer and comment are empty,\n // front-end don't consider it as a feedback\n if (\n q.reviewerAnswer &&\n q.reviewerAnswer !== null &&\n !_.isEmpty(q.reviewerAnswer.answer) &&\n !_.isEmpty(q.reviewerAnswer.comment)\n ) {\n assessments[i][j].AssessmentGroup[k].reviewerFeedback += 1;\n }\n });\n\n // Set status\n // let status = assessments[i][j].AssessmentGroup[k].status = 'incomplete';\n let questionsStatus = [];\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required && q.answer !== null) {\n if (\n q.reviewerAnswer !== null &&\n assessmentGroup.submission.status !== 'pending approval' &&\n (q.reviewerAnswer.answer || q.reviewerAnswer.comment)\n ) {\n questionsStatus.push('reviewed');\n } else {\n questionsStatus.push('completed');\n }\n }\n\n if (!q.required && q.answer !== null) {\n if (\n q.reviewerAnswer !== null &&\n assessmentGroup.submission.status !== 'pending approval' &&\n (q.reviewerAnswer.answer || q.reviewerAnswer.comment)\n ) {\n questionsStatus.push('reviewed');\n } else {\n questionsStatus.push('completed');\n }\n }\n\n if (q.answer === null) {\n questionsStatus.push('incomplete');\n }\n });\n\n assessments[i][j].AssessmentGroup[k].status = 'incomplete';\n if (_.every(questionsStatus, (v) => {\n return (v === 'completed');\n })) {\n assessments[i][j].AssessmentGroup[k].status = 'completed';\n }\n if (_.includes(questionsStatus, 'reviewed')) {\n assessments[i][j].AssessmentGroup[k].status = 'reviewed';\n }\n });\n });\n });\n\n return assessments;\n }\n\n /**\n * pull submission when required, when:\n * - no submission available in the redirection from activity-view/event-view pages\n * - [save] clicked & saved from assessment-group.page.ts\n *\n * @return {Promise}\n */\n public pullSubmissions(): Promise {\n return new Promise((resolve, reject) => {\n // 2nd batch API requests (get_submissions)\n Observable.forkJoin(\n this.submissionService.getSubmissionsByReferences(\n this.activity.References\n ))\n .subscribe(allSubmissions => {\n // allSubmissions - response format: [ // context_ids\n // [ // assessment group 1\n // assessment1,\n // assessment2,\n // ...\n // ],\n // [ // assessment group 2\n // assessment1,\n // assessment2,\n // ...\n // ],\n // ...\n // ]\n let submissions = [];\n _.forEach(allSubmissions, group => {\n _.forEach(group, (submission) => {\n submissions.push(this.submissionService.normalise(submission));\n });\n });\n\n // check if a submission is specified\n let currentSubmission = this.navParams.get('currentSubmission');\n let filteredSubmissions = [];\n\n submissions.forEach(subm => {\n if (currentSubmission && currentSubmission.id === subm.id) {\n filteredSubmissions.push(subm);\n }\n });\n let hasInProgress = _.find(submissions, {status: 'in progress'}); // 'in progress' never > 1\n let isNew = (!currentSubmission && (filteredSubmissions.length === 0 || !_.isEmpty(hasInProgress)));\n\n if (isNew) { // new submission\n this.submissions = !_.isEmpty(hasInProgress) ? [hasInProgress] : [];\n } else if (!isNew && hasInProgress) { // resume 'in progress'\n filteredSubmissions.push(hasInProgress);\n this.submissions = filteredSubmissions;\n } else if (currentSubmission) { // display current submission\n filteredSubmissions.push(currentSubmission);\n this.submissions = filteredSubmissions;\n }\n resolve(submissions);\n }, (err) => {\n console.log('err', err);\n reject(err);\n });\n });\n }\n\n loadQuestions(): Promise {\n return new Promise((resolve, reject) => {\n\n // get_assessments request with 'assessment_id' & 'structured'\n let getAssessment = (assessmentId) => {\n return this.assessmentService.getAll({\n search: {\n assessment_id: assessmentId,\n structured: true\n }\n });\n };\n\n // Congregation of assessment ids to fulfill get_assessments API's param requirement\n let tasks = [];\n _.forEach(this.activity.References, (reference) => {\n if (\n reference.Assessment &&\n reference.Assessment.id\n ) {\n return tasks.push(getAssessment(reference.Assessment.id));\n }\n });\n\n /**\n * merging submission into question inside of assessment array objects\n * - set question statuses (quantity of total answered)\n * - set submission button status\n */\n let preprocessAssessmentSubmission = () => {\n this.assessmentGroups = this.mapSubmissionsToAssessment(\n this.submissions,\n this.assessmentGroups\n );\n\n // Only allow submit when all required question have answered.\n _.forEach(this.assessmentGroups, groups => {\n _.forEach(groups, assessment => {\n let groupWithAnswers = 0;\n _.forEach(assessment.AssessmentGroup, group => {\n // console.log('group.answeredQuestions', group.answeredQuestions);\n // console.log('group.totalRequiredQuestions', group.totalRequiredQuestions);\n if (group.answeredQuestions >= group.totalRequiredQuestions) {\n groupWithAnswers += 1;\n }\n });\n // console.log('groupWithAnswers', groupWithAnswers, _.size(assessment.AssessmentGroup));\n if (groupWithAnswers >= _.size(assessment.AssessmentGroup)) {\n this.allowSubmit = true;\n }\n });\n });\n\n _.forEach(this.submissions, submission => {\n if (\n submission.status === 'pending review' ||\n submission.status === 'pending approval' ||\n submission.status === 'published' || // moderated type (reviews & published)\n submission.status === 'done' // survey type\n ) {\n this.allowSubmit = false;\n }\n });\n\n resolve({\n assessmentGroups: this.assessmentGroups,\n submissions: this.submissions\n });\n };\n\n // first batch API requests (get_assessments)\n Observable.forkJoin(tasks)\n .subscribe(\n (assessments: any) => {\n this.assessmentGroups = assessments;\n this.submissions = this.navParams.get('submissions');\n\n // check if this is from single submission view\n let currentSubmission = this.navParams.get('currentSubmission');\n if (currentSubmission) {\n this.submissions = [currentSubmission];\n }\n\n // pull new when submission is updated or currentSubmission is empty\n if (this.submissionUpdated || !currentSubmission) {\n this.pullSubmissions().then(res => {\n preprocessAssessmentSubmission();\n }, err => {\n reject(err);\n });\n this.submissionUpdated = false;\n } else {\n preprocessAssessmentSubmission();\n }\n },\n (err) => {\n console.log('err', err);\n reject(err);\n }\n );\n });\n }\n\n\n /**\n * submit answer and change submission status to done\n */\n doSubmit() {\n let loading = this.loadingCtrl.create({\n content: 'Loading...'\n });\n\n loading.present().then(() => {\n let tasks = [];\n _.forEach(this.submissions, (submission) => {\n if (\n submission &&\n submission.assessment_id &&\n submission.context_id &&\n submission.id\n ) {\n tasks.push(this.assessmentService.submit({\n Assessment: {\n id: submission.assessment_id,\n context_id: submission.context_id,\n in_progress: false\n },\n AssessmentSubmission: {\n id: submission.id\n },\n AssessmentSubmissionAnswer: _.map(submission.answer, (answ) => {\n if (answ && answ.assessment_question_id && answ.answer) {\n return {\n assessment_question_id: answ.assessment_question_id,\n answer: answ.answer\n }\n }\n })\n }));\n }\n });\n\n Observable\n .forkJoin(tasks)\n .subscribe(\n (assessments: any) => {\n loading.dismiss().then(_ => {\n this.allowSubmit = false;\n this.popupAfterSubmit();\n });\n },\n err => {\n loading.dismiss().then(_ => {\n console.log('err', err);\n });\n }\n );\n });\n }\n\n clickSubmit() {\n const confirm = this.alertCtrl.create({\n title: 'Submit evidence',\n message: this.submitConfirmMessage,\n buttons: [\n {\n text: 'Okay',\n handler: () => {\n this.doSubmit();\n }\n },\n {\n text: 'Cancel',\n handler: () => {\n console.log('Submit cancelled');\n }\n }\n ]\n });\n confirm.present();\n }\n\n // items popup\n popupAfterSubmit(){\n const loading = this.loadingCtrl.create({\n content: this.loadingMessages\n });\n const alert = this.alertCtrl.create({\n title: 'Submission Successful',\n buttons: [\n {\n text: 'OK',\n handler: () => {\n this.navCtrl.setRoot(ActivitiesListPage); // dashboard page\n }\n }\n ]\n });\n\n // get initial items\n _.forEach(this.getInitialItems, element => {\n let id = element.id;\n if(!this.initialItemsCount[id]){\n this.initialItemsCount[id] = 0;\n }\n this.initialItemsCount[id]++;\n });\n // get latest updated items data api call\n loading.present();\n\n this.gameService.getItems({\n character_id: this.getCharacterID\n })\n .subscribe(\n data => {\n this.newItemsData = data.Items;\n _.forEach(data.Items, (element, index) => {\n let id = element.id;\n if(!this.newItemsCount[id]){\n this.newItemsCount[id] = 0;\n }\n this.newItemsCount[id]++;\n });\n // compare with previous get_characters() results and generate final index value array result\n _.forEach(this.newItemsCount, (element, id) => {\n if(!this.initialItemsCount[id]){\n this.totalItems.push({ 'count': element, 'id': id });\n }else {\n let diffCountVal = element - this.initialItemsCount[id];\n if(diffCountVal > 0){\n this.totalItems.push({ 'count': diffCountVal, 'id': id });\n }\n }\n });\n\n _.forEach(this.totalItems, (element, index) => {\n element.id = parseInt(element.id);\n });\n\n this.allItemsData = _.intersectionBy(this.newItemsData, this.totalItems, 'id');\n // get the final object with item occurance count value\n let groupData = _.groupBy(this.totalItems, 'id');\n if(this.allItemsData.length === 0){\n this.gotNewItems = false;\n this.cacheService.setLocal('gotNewItems', this.gotNewItems);\n loading.onDidDismiss(() => {\n alert.present(); // redirect to dashboard page\n });\n loading.dismiss();\n } else {\n _.map(this.allItemsData, (ele) => {\n this.combinedItems.push(_.extend({count: groupData[ele.id] || []}, ele));\n });\n // display items on dashboard page\n this.gotNewItems = true;\n this.cacheService.setLocal('gotNewItems', this.gotNewItems);\n this.cacheService.setLocalObject('allNewItems', this.combinedItems);\n loading.onDidDismiss(() => {\n this.navCtrl.setRoot(ActivitiesListPage);\n });\n loading.dismiss();\n }\n },\n err => {\n loading.dismiss().then(() => {\n console.log('Err: ', err);\n });\n }\n );\n }\n gotoAssessment(assessmentGroup, activity) {\n this.navCtrl.push(AssessmentsGroupPage, {\n assessmentGroup,\n activity,\n submission: assessmentGroup.submission, // use back the one back from ActivityViewPage\n submissions: this.submissions,\n event: this.navParams.get('event')\n }).then(() => {\n this.traceAssessmentProgress();\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/assessments.page.ts","import { Component } from '@angular/core';\nimport { NavParams, NavController, AlertController, LoadingController, Events } from 'ionic-angular';\nimport { FormBuilder, Validators, FormGroup, FormControl, FormArray } from '@angular/forms';\n\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { ChoiceBase, QuestionBase, Submission, AssessmentService } from '../../../services/assessment.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'assessments-group-page',\n templateUrl: './assessments-group.html',\n})\nexport class AssessmentsGroupPage {\n activity: any;\n answers: any; // to render & display submitted answers\n assessment: any;\n assessmentGroup: any;\n cacheKey: any; // to render & display stored\n canUpdateInput: boolean = false;\n event: any;\n formGroup: any;\n inProgress: any;\n published: boolean = false;\n questions: any = [];\n submission: Submission;\n\n constructor(\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public events: Events,\n public fb: FormBuilder,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams\n ) {}\n\n ionViewDidEnter() {\n // navigate from activity page\n this.activity = this.navParams.get('activity') || {};\n\n // navigate from event page\n this.event = this.navParams.get('event') || {};\n if (!_.isEmpty(this.event)) {\n this.activity = this.event;\n }\n\n this.assessment = this.activity.assessment; // required for context_id\n this.cacheKey = `assessment.group.${this.assessment.context_id}`;\n\n this.assessmentGroup = this.navParams.get('assessmentGroup') || {};\n this.submission = this.navParams.get('submission') || {};\n\n // preset key used for caching later (locally and remote data)\n this.canUpdateInput = this.isInputEditable(this.submission);\n // this.published = this.assessmentService.isPublished(this.submissions);\n this.questions = this.assessmentGroup.questions;\n this.questions = this.mapQuestionsFeedback(this.questions, this.submission);\n this.formGroup = this.retrieveProgress(\n this.buildFormGroup(this.questions),\n this.formInProgressAnswer(this.submission)\n );\n }\n\n updateSubmission() {\n this.events.publish('assessment:changes', {\n changed: true\n });\n }\n\n /**\n * @description check answers are editable\n * Must define submissions first\n * @type {boolen}\n */\n public isInputEditable = (submission):boolean => {\n if (_.isEmpty(submission) || submission.status === 'in progress') {\n return true;\n }\n return false;\n }\n\n /**\n * @description use proper context id based on situation\n *\n * @type {array}\n */\n public mapQuestionsFeedback = (questions, submission):any => {\n if (_.isEmpty(submission) || _.isEmpty(submission.review) || submission.status !== 'published') {\n return questions;\n }\n\n _.forEach(submission.review, (review) => {\n _.forEach(questions, (question, idx) => {\n if (review.assessment_question_id === question.id) {\n // text type\n if (question.type === 'text') {\n questions[idx].review_answer = review;\n }\n\n // oneof type\n if (question.type === 'oneof') {\n questions[idx].review_answer = review;\n _.forEach(question.choices, (choice, key) => {\n if (choice.id == review.answer && choice.id == question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (you and reviewer)';\n }\n if (choice.id != review.answer && choice.id == question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (you)';\n }\n if (choice.id == review.answer && choice.id != question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (reviewer)';\n }\n });\n }\n }\n });\n });\n return questions;\n }\n\n /**\n * @description use proper context id based on situation\n * event's checkin, use event context_id (reference array in get_event)\n * assessment submission, use context_id from get_activity\n *\n * @type {number}\n */\n public getSubmissionContext = ():number => {\n // if event object is available\n if (this.event) {\n return this.event.context_id;\n }\n\n // if \"event\" not available, use assessment instead\n return this.assessment.context_id;\n }\n\n /**\n * check the questions was answered\n * @return {boolen} passed all check\n */\n isAllQuestionsAnswered = () => {\n let passed = true;\n _.forEach(this.formGroup, fg => {\n // check formGroup.validation & each field (answer & comment) validity\n if (!fg.valid && (!fg.controls.answer.valid && !fg.controls.comment.valid)) {\n passed = false;\n }\n });\n return passed;\n };\n\n /**\n * turn a collection of questions into angular's FormGroup to share among components\n * @param {array} questions list of questions from a question group (Assessment group)\n */\n buildFormGroup = (questions) => {\n let result: any = {};\n\n this.questions.forEach(question => {\n let currentAnswer = question.answer || {};\n let group = {\n answer: question.required ?\n new FormControl(currentAnswer.answer || '', Validators.required) : new FormControl(currentAnswer.answer || ''),\n comment: question.required ?\n new FormControl(currentAnswer.comment || '', Validators.required) : new FormControl(currentAnswer.comment || '')\n };\n\n // render choices' FormGroup\n let choices = {};\n if (question.choices && question.type === 'multiple') {\n question.choices.forEach(choice => {\n let answer = (question.choices) ? question.choices[choice.id] : false;\n choices[choice.id] = new FormControl(answer);\n });\n group['choices'] = new FormGroup(choices);\n }\n\n result[question.id] = new FormGroup(group);\n });\n\n return result;\n };\n\n /**\n * turn answer into answer submission format (which is formatted for POST to post_assessment API)\n * @param {object} submission single submission object retrieve from previous page/view\n * @return {object} formatted submission answer\n */\n public formInProgressAnswer(submission): boolean | Submission {\n if (_.isEmpty(submission)) {\n return false;\n }\n\n let answers = {};\n submission.answer.forEach(ans => {\n answers[ans.assessment_question_id] = {\n assessment_question_id: ans.assessment_question_id,\n answer: ans.comment || ans.answer\n }\n });\n\n return {\n Assessment: {\n id: submission.assessment_id,\n context_id: this.getSubmissionContext()\n },\n AssessmentSubmissionAnswer: answers\n };\n }\n\n /**\n * @description store assessment answer/progress locally\n */\n storeProgress = () => {\n let answers = {};\n _.forEach(this.formGroup, (question, id) => {\n let values = question.getRawValue(),\n answer = {\n assessment_question_id: id,\n answer: values.answer || values.comment,\n\n // store it if choice answer is available or skip\n choices: (!_.isEmpty(values.choices)) ? values.choices : null\n };\n\n // set empty string to remove answer\n answer.answer = (answer.answer) ? answer.answer : '';\n answers[id] = answer;\n });\n\n // final step - store submission locally\n let submission = {\n Assessment: {\n id: this.activity.assessment.id,\n context_id: this.activity.assessment.context_id\n },\n AssessmentSubmissionAnswer: answers\n };\n this.submission = submission;\n\n // local cache key\n this.cache.setLocal(this.cacheKey, JSON.stringify(submission));\n return submission;\n };\n\n /**\n * @description retrieve saved progress from localStorage\n */\n retrieveProgress = (questions: Array, answers?) => {\n let cachedProgress = answers || {}; //this.cache.getLocalObject(this.cacheKey);\n\n let newQuestions = questions;\n let savedProgress = cachedProgress.AssessmentSubmissionAnswer;\n\n if (!_.isEmpty(savedProgress)) {\n\n // index \"id\" is set as question.id in @Function buildFormGroup above\n _.forEach(newQuestions, (question, id) => {\n // check integrity of saved answer (question might get updated)\n if (savedProgress[id] && savedProgress[id].assessment_question_id == id) {\n newQuestions[id] = this.setValueWith(question, savedProgress[id]);\n }\n });\n }\n return newQuestions;\n };\n\n /**\n * @description set value to each FormControl differently based on type:\n * - \"text\", \"oneof\" & \"file\" using just \"answer\" field\n * - \"multiple\" answer is stored into \"choices\" FormControl instead\n * @param {FormGroup} question FormGroup for a question\n * @param {Object} answers answer [choices object || string answer]\n */\n public setValueWith(question, answers) {\n if (!_.isEmpty(answers.choices)) {\n question.controls.choices.setValue(answers.choices);\n } else {\n question.controls.answer.setValue(answers.answer || '');\n }\n return question;\n }\n\n displayAlert(opts) {\n return this.alertCtrl.create(opts);\n }\n\n /**\n * @description initiate save progress and return to previous page/navigation stack\n */\n save() {\n let self = this,\n loading = this.loadingCtrl.create({\n content: 'Loading...'\n }),\n // to provide a more descriptive error message (if available)\n failAlert = this.alertCtrl.create({\n title: 'Fail to submit.'\n });\n\n let saveProgress = () => {\n this.updateSubmission();\n\n loading.present().then(() => {\n self.assessmentService.save(self.storeProgress()).subscribe(\n response => {\n loading.dismiss().then(() => {\n self.navCtrl.pop();\n });\n },\n reject => {\n loading.dismiss().then(() => {\n failAlert.data.title = reject.msg || failAlert.data.title;\n failAlert.present().then(() => {\n console.log('Unable to save', reject);\n });\n });\n }\n );\n });\n };\n\n let confirmBox = this.alertCtrl.create({\n message: 'You have not completed all required questions. Do you still wish to Save?',\n buttons: [\n {\n text: 'Yes',\n handler: () => {\n saveProgress();\n }\n },\n {\n text: 'No',\n handler: () => {\n //return false;\n }\n }\n ]\n });\n\n if (!this.isAllQuestionsAnswered()) {\n confirmBox.present();\n } else {\n saveProgress();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/group/assessments-group.page.ts","import { Component } from '@angular/core';\nimport { App, NavController, MenuController, LoadingController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../shared/cache/cache.service';\n// pages\nimport { LeaderboardSettingsPage } from '../settings/leaderboard/leaderboard-settings.page';\nimport { LoginPage } from '../../pages/login/login';\nimport { TutorialPage } from '../settings/tutorial/tutorial.page';\nimport { TermConditionPage } from '../term-condition/term-condition.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n\n@Component({\n selector: 'settings-page',\n templateUrl: 'settings.html'\n})\nexport class SettingsPage {\n helpline: string = \"help@practera.com\";\n logoutMessage: any = loadingMessages.Logout.logout;\n settings: any = [];\n\n constructor(\n public cache: CacheService,\n public menuCtrl: MenuController,\n public navCtrl: NavController,\n public loadingCtrl: LoadingController,\n public translationService: TranslationService,\n public appCtrl: App\n ) {}\n\n getUserEmail() {\n return this.cache.getLocalObject('email') || '';\n }\n goLeaderBoardSettings(){\n this.navCtrl.push(LeaderboardSettingsPage);\n }\n goToTutorial() {\n this.navCtrl.push(TutorialPage);\n }\n goToTermConditions() {\n this.navCtrl.push(TermConditionPage);\n }\n logout() {\n let loader = this.loadingCtrl.create({\n spinner: 'hide',\n content: this.logoutMessage\n });\n loader.present().then(() => {\n this.cache.clear().then(() => {\n localStorage.clear();\n window.location.reload(); // the reason of doing this is because of we need to refresh page content instead of API data cache issue occurs\n loader.dismiss();\n this.navCtrl.push(LoginPage);\n });\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/settings.page.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams } from 'ionic-angular';\n\n// Pages\nimport { EventsPreviewPage } from './events-preview.page';\n// Others\nimport { FilepickerService } from '../../../shared/filepicker/filepicker.service';\nimport { UtilsService } from '../../../shared/utils/utils.service';\nimport { WindowRef } from '../../../shared/window';\n\n@Component({\n templateUrl: './events-download.html'\n})\nexport class EventsDownloadPage {\n event: any = {};\n files: any = [];\n\n constructor(\n public fs: FilepickerService,\n public navCtrl: NavController,\n public params: NavParams,\n public win: WindowRef,\n public utils: UtilsService\n ) {}\n\n ionViewDidEnter() {\n this.event = this.params.get('event');\n this.files = [];\n\n if (this.event && this.event.files) {\n this.files = this.event.files;\n }\n\n this.files.map(file => {\n // zip file type is not viewable in filestack preview\n file.icon = this.utils.getIcon(file.type)\n });\n }\n\n /**\n * preview file with filestack plugin\n * if it is a zip filetype, download the file instead.\n *\n * @param {object} file single file from files array return from get_events in event list page\n */\n view(file) {\n if (this.utils.isCompressed(file.type)) {\n let win = this.win.nativeWindow;\n let openedWindow = win.open(file.url, '_blank');\n } else {\n this.navCtrl.push(EventsPreviewPage, {file: file});\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/download/events-download.page.ts","import { Injectable } from '@angular/core';\n\nconst zipMime = [\n 'application/x-compressed',\n 'application/x-zip-compressed',\n 'application/zip',\n 'multipart/x-zip',\n];\n\n@Injectable()\nexport class UtilsService {\n\n getIcon(mimetype: string) {\n let result: string = '';\n\n if (zipMime.indexOf(mimetype) >= 0) {\n result = 'fa-zip';\n\n // set icon to different document type (excel, word, powerpoint, audio, video)\n } else if (mimetype.indexOf('audio/') >= 0) {\n result = 'fa-sound';\n } else if (mimetype.indexOf('image/') >= 0) {\n result = 'fa-image';\n } else if (mimetype.indexOf('text/') >= 0) {\n result = 'fa-text';\n } else if (mimetype.indexOf('video/') >= 0) {\n result = 'fa-movie';\n } else {\n switch (mimetype) {\n case 'application/pdf':\n result = 'fa-pdf';\n break;\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n result = 'fa-word';\n break;\n case 'application/excel':\n case 'application/vnd.ms-excel':\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n case 'application/x-excel':\n case 'application/x-msexcel':\n result = 'fa-excel';\n break;\n case 'application/mspowerpoint':\n case 'application/vnd.ms-powerpoint':\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n case 'application/x-mspowerpoint':\n result = 'fa-powerpoint';\n break;\n default:\n result = 'fa-file';\n break;\n }\n }\n\n return result;\n }\n\n isCompressed(type: string) {\n if (zipMime.indexOf(type) >= 0) {\n return true;\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/utils/utils.service.ts","import { Injectable } from '@angular/core';\n\nfunction _window():any {\n return window;\n}\n\n@Injectable()\nexport class WindowRef {\n get nativeWindow(): any {\n return _window();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/window.ts","import { Component, OnInit } from '@angular/core';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { NavController, NavParams, AlertController } from 'ionic-angular';\nimport { Observable } from 'rxjs';\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages'; \n// services\nimport { AuthService } from '../../services/auth.service';\nimport { RequestService } from '../../shared/request/request.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\n// pages\nimport { LoginPage } from '../../pages/login/login';\n@Component({\n template: ``,\n})\nexport class RegistrationPage implements OnInit {\n user: Object = {\n email: null,\n key: null\n };\n term: String;\n content: SafeResourceUrl;\n public prefixUrl: any = this.request.getPrefixUrl();\n // loadinbg & error message variables\n public verifyFailedErrMessage = errMessages.Registration.verifyFailed.verifyfailed;\n constructor(\n public nav: NavController,\n public params: NavParams,\n public authService: AuthService,\n public sanitizer: DomSanitizer,\n public notification: NotificationService,\n public translationService: TranslationService,\n public alertCtrl: AlertController,\n public cache: CacheService,\n public request: RequestService) {}\n displayError(errorMessage?: any): void {\n let alert = this.alertCtrl.create({\n title: 'Invalid registration code',\n subTitle: errorMessage || 'Registration Code is invalid, please contact our tech support for assistance.',\n buttons: [{\n text: 'OK',\n handler: () => {\n alert.dismiss().then(() => {\n this.nav.setRoot(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n })\n return false;\n }\n }]\n });\n alert.present();\n }\n ngOnInit() {\n // check if email and activation_code are provided in the url/params\n if (!decodeURIComponent(this.params.get('email')) || !this.params.get('key')) {\n this.displayError();\n } else {\n let email = decodeURIComponent(this.params.get('email')),\n key = this.params.get('key');\n this.authService.verifyRegistration({\n email: email,\n key: key\n }).subscribe(res => {\n this.cache.setLocal('user.email', email);\n this.cache.setLocal('user.registration_key', key);\n this.cache.setLocal('user.id', res.data.User.id);\n this.user = {\n email: email,\n key: key\n };\n Observable.forkJoin([\n this.cache.write('user.email', email),\n this.cache.write('user.registration_key', key),\n this.cache.write('user.id', res.data.User.id)\n ]).subscribe(responds => {\n console.log('RespondsVerify::', responds);\n });\n }, err => {\n console.log(err);\n this.displayError(err.msg);\n });\n }\n }\n ionViewDidEnter(): void {\n this.authService.getTerms().subscribe(res => {\n console.log(\"terms data: \", res);\n this.term = res.terms_description;\n this.content = this.sanitizer.bypassSecurityTrustResourceUrl(this.prefixUrl + res.terms_url);\n });\n this.params.get('test');\n }\n ionViewDidLoad(): void {\n let category = [];\n /*if (document.URL.indexOf(\"?\") !== -1) {\n let splitURL = document.URL.split(\"?\");\n let splitParams = splitURL[1].split(\"&\");\n console.log(splitURL, splitParams);\n splitParams.forEach(param => {\n let singleURLParam = param.split('=');\n let urlParameter = {\n 'name': singleURLParam[0],\n 'value': singleURLParam[1]\n };\n category.push(urlParameter);\n });\n }*/\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/registration/registration.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController, Platform } from 'ionic-angular';\nimport { Http } from '@angular/http';\n\n// Services\nimport { LevelService } from '../../../services/level.service';\n\n@Component({\n selector: 'levels-list-page',\n templateUrl: 'list.html'\n})\nexport class LevelsListPage {\n _mock = [\n {\n id: 1,\n name: 'Rookie'\n },\n {\n id: 2,\n name: 'Cookie'\n }\n ];\n levels = [];\n\n constructor(\n public navCtrl: NavController,\n public levelService: LevelService,\n public platform: Platform,\n public toastCtrl: ToastController\n ) {\n platform.ready().then(() => {});\n }\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData(refresher = null) {\n return this.levelService.getLevels()\n .then((levels: any) => {\n this.levels = levels;\n if (refresher) {\n refresher.complete();\n }\n })\n .catch((err) => {\n this._error(err);\n console.log('err', err);\n if (refresher) {\n refresher.complete();\n }\n });\n }\n\n doRefresh(refresher) {\n this._pullData(refresher);\n // @TODO Remove it when API work\n this.levels = this._mock;\n }\n\n ionViewWillEnter() {\n this._pullData();\n // @TODO Remove it when API work\n this.levels = this._mock;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/levels/list/list.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 176;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/core/@angular lazy\n// module id = 176\n// module chunks = 0","export const confirmMessages = {\n Assessments: {\n DiscardChanges: {\n \"discard\": \"Are you sure you want to discard all changes?\"\n },\n SubmitConfirmation: {\n \"confirm\": \"Are you sure you want to submit this evidence?\"\n }\n }\n}\nexport const errMessages = {\n Activities: {\n activities: {\n \"empty\": \"Whoops... no activity has been setup ...\"\n },\n achievements: {\n \"empty\": \"Whoops... no achievement has been setup ...\"\n },\n assessments: {\n \"empty\": \"Whoops... no assessment has been setup ...\"\n }\n },\n DirectLink: {\n \"mismatch\": \"Oops... The link to log you in appears to be broken. Please login by typing your email and password.\"\n },\n Events: {\n bookEvents: {\n \"book\": \"Whoops, booking of an event has failed, please try again later.\"\n },\n cancelBooking: {\n \"cancel\": \"Whoops, we could not cancel your booking for this event, please try again later.\"\n },\n events: {\n \"empty\": \"Whoops... no event has been setup ...\"\n },\n filter: {\n \"empty\": \"There are no scheduled events available. Please check back later.\",\n \"noBookings\": \"You have no bookings. Tap on 'Browse' and book an event now to enhance your skills.\",\n \"noAttended\": \"You have not attended any events yet.\"\n }\n },\n General: {\n loading: {\n \"load\": \"Whoops, a connection error occurred. Please try again later.\"\n },\n empty: {\n \"empty\": \"Whoops... no data has been setup ...\"\n }\n },\n Login: {\n \"login\": \"Oops... Invalid email or password, please type it again.\"\n },\n PasswordValidation: {\n mismatch: {\n \"mismatch\": \"You must enter matching passwords. Please Try again.\"\n },\n minlength: {\n \"minlength\": \"The minimum length allowed for a password is 8 characters.\"\n }\n },\n Registration: {\n mismatch: {\n \"mismatch\": \"The passwords you have entered do not match each other. Please enter the same password.\"\n },\n error: {\n \"error\": \"Sorry, something has gone wrong in processing your registration. Please try again or contact \" // after the \"contact\", the content will be a variable, please check with Registration/model.ts file to view detail\n },\n invalidUser: {\n \"account\": \"Whoops... You do not have a account. To have one set up please contact \" // after the \"contact\", the content will be a variable, please check with Registration/model.ts file to view detail\n },\n noPassword: {\n \"password\": \"Whoops... Sorry, we have been unable to register you. You must enter a valid password.\"\n },\n alreadyRegistered: {\n \"registered\": \"You have already registered. Please type the email address and password you registered with to login.\"\n },\n verifyFailed: {\n \"verifyfailed\": \"Sorry, verification failed, please resend your email and password.\"\n }\n },\n ResetPassword: {\n resetLoginFailed: {\n \"failed\": \"Whoops, we were unable to reset your password. Please try again.\"\n },\n invalidLink: {\n \"invalid\": \"Oops... The log in link is broken. You will be redirected to the login page. Try again with your username and password.\"\n }\n },\n TermConditions: {\n disagreement: {\n \"noAccepted\": \"You must agree to the Terms and Conditions.\"\n },\n verifyFailed: {\n \"verifyfailed\": \"Oops... Registration verification has failed. Please try again later.\"\n }\n }\n}\nexport const generalVariableMessages = {\n helpMail: {\n \"email\": \"help@support.com\"\n }\n}\nexport const loadingMessages = {\n Login: {\n \"login\": \"Logging in ...\"\n },\n LoadingSpinner: {\n \"loading\": \"Loading ...\"\n },\n Logout: {\n \"logout\": \"See you next time\"\n },\n SendingEmail: {\n \"send\": \"Sending email to us ...\" \n },\n SentMessage: { // the reason why this message has been divided into two parts, because of we have a variable (${this.email}) in the middle of message\n \"partOne\": \"We have sent an email to\",\n \"partTwo\": \"with a link to log into the system - please check your inbox. If you haven't received an email in a few minutes please check the address you entered and your spam folder.\"\n },\n SuccessRegistration: {\n \"successRegistration\": \"Your password has been successfully set. You will now be logged in.\"\n },\n SuccessResetPassword: {\n \"successResetPassword\": \"Password has been changed successfully. Logging in now.\"\n },\n VerifyUser: {\n \"verify\": \"Verifying user identity ...\"\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/messages.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 219;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src lazy\n// module id = 219\n// module chunks = 0","import { Injectable, Optional } from '@angular/core';\nimport { Http, Response, Headers, RequestOptions, RequestOptionsArgs, URLSearchParams } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\nimport * as _ from 'lodash';\nimport { CacheService } from '../../shared/cache/cache.service';\n\n// Definition configure for API request\n// This ONLY definition of class, any changed of value will no effect.\n// Please configuring on `configs/config.ts`.\nexport class RequestServiceConfig {\n appKey = '';\n prefixUrl = 'http://local.practera.com/'\n}\n\n@Injectable()\nexport class RequestService {\n private appkey: string;\n private prefixUrl: string;\n\n private apikey: string;\n private timelineID: number;\n\n constructor (\n @Optional() config: RequestServiceConfig,\n private http: Http,\n private cacheService: CacheService\n ) {\n // Inject appKey and prefixUrl when RequestServiceConfig loaded\n if (config) {\n this.appkey = config.appKey;\n this.prefixUrl = config.prefixUrl;\n }\n }\n\n /**\n * Return current prefixUrl\n * @param {String} prefixUrl\n */\n public getPrefixUrl(){\n return this.prefixUrl;\n }\n\n /**\n * Return current appKey\n * @param {String} appKey\n */\n public getAppkey(){\n return this.appkey;\n }\n\n /**\n * Error handle for API response\n * @param {Error} error\n */\n private handleError (error) {\n let errorFrom = {\n api: 'SERVER_ERROR',\n },\n currentError: any = error.json();\n if (typeof error !== 'object') {\n throw 'Unable to process API respond!';\n }\n if (error.status === 0) { // client unrecoverable error encountered\n currentError.frontendCode = errorFrom.api;\n } else {\n let errorBody = error.json();\n currentError.frontendCode = errorBody.data || errorBody.error;\n }\n return Observable.throw(currentError);\n }\n\n // Inject required fields to header of API request\n appendHeader(customHeader: Object = {\n 'Content-Type': 'application/json',\n 'apikey': null\n }) {\n let headers = new Headers(customHeader);\n\n // Inject apiKey from cached\n let apiKey = this.cacheService.getCached('apikey') ||\n this.cacheService.getLocalObject('apikey');\n if (!_.isEmpty(apiKey)) {\n headers.set('apikey', apiKey);\n }\n\n // Inject timelineID from cached\n let timelineId = this.cacheService.getCached('timelineID') ||\n this.cacheService.getLocalObject('timelineID');\n if (timelineId) {\n headers.set('timelineID', timelineId);\n }\n\n // Inject appKey from config\n if (!_.isUndefined(this.appkey)) {\n headers.set('appkey', this.appkey);\n }\n return headers;\n }\n\n // Set API request options\n setOptions(options) {\n let result = new RequestOptions({ headers: this.appendHeader() });\n let timelineId = this.cacheService.getLocal('timelineID');\n\n let params = new URLSearchParams();\n if (timelineId) {\n params.set('timelineID', timelineId);\n }\n\n if (options && options.search) {\n _.each(options.search, (value, key) => {\n params.set(key, value);\n });\n }\n result.search = params;\n\n return result;\n }\n\n /**\n * Send GET request to server\n * @param {String} endPoint\n * @param {Object} options\n */\n get(endPoint: string = '', options?: any) {\n let opt = this.setOptions(options);\n\n return this.http.get(this.prefixUrl + endPoint, opt)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n /**\n * Send POST request to server\n * @param {String} endPoint\n * @param {Object} data\n * @param {Object} header\n */\n post(endPoint: string, data: any, header = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }) {\n let options = new RequestOptions({ headers: this.appendHeader(header) });\n return this.http.post(this.prefixUrl + endPoint, data, options)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n /**\n * Send DELETE request to server\n * @param {String} endPoint\n * @param {Object} header\n */\n delete(endPoint: string, header?:Object) {\n let options = new RequestOptions({ headers: this.appendHeader(header) });\n return this.http.delete(this.prefixUrl + endPoint, options)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n // Extract response data and convert it to JSON\n extractData(res: Response) {\n let body = res.json();\n return body.data || {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/request/request.service.ts","import { Component } from '@angular/core';\nimport { NavParams, ViewController } from 'ionic-angular';\n\n@Component({\n selector: 'modal',\n template: `\n \n \n \n \n \n {{ context.title }}\n \n
\n \n\t\t
\n\n

\n
{{ context.score }}
\n\n \n\n \n
\n `\n})\nexport class ModalComponent {\n\n context;\n\n constructor(\n public params: NavParams,\n public viewCtrl: ViewController\n ) {\n this.context = this.params.get('context');\n }\n\n ngOnInit() {}\n\n dismiss() {\n this.viewCtrl.dismiss();\n }\n\n gotoScreen(path) {\n this.dismiss();\n\n // if ($state.current.name != route || route !== '') {\n // $state.go(route);\n // }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/modal.component.ts","import { Component, NgZone, OnInit } from '@angular/core';\nimport { NavController, ViewController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ResetpasswordModelPage } from '../../pages/resetpassword-model/resetpassword-model';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-reset-password',\n templateUrl: 'reset-password.html'\n})\nexport class ResetPasswordPage implements OnInit {\n\n emailVal: string;\n keyVal: string;\n\n invalidLinkErrMessage = errMessages.ResetPassword.invalidLink.invalid;\n isLandscaped: boolean = false;\n isPwdMatch: boolean = false;\n minLengthCheck: boolean = true;\n milestone_id: string;\n password: string;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n resetPasswordLoginFailedMessage: any = errMessages.ResetPassword.resetLoginFailed.failed;\n resetPwdFormGroup: any;\n successResetPasswordMessage: any = loadingMessages.SuccessResetPassword.successResetPassword;\n verify_password: string;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n verifyUserMessage = loadingMessages.VerifyUser.verify;\n windowHeight: number = window.innerHeight / 3;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public formBuilder: FormBuilder,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslationService,\n public viewCtrl: ViewController\n ) {\n // validation for both password values: required & minlength is 8\n this.resetPwdFormGroup = formBuilder.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n })\n }\n /**\n * Detect user device type (mobile or desktop) on initial page load\n * Purpose: Initially page loaded, this peice code will detect user screen\n whether is mobile or desktop device (including iPad).\n * @param {}\n * @return A calculated ratio value plus screen innerWidth value to determine\n user screen is mobile device or desktop device. If device is mobile\n device, ngOnInit() will disable landscape mode for mobile device\n */\n ngOnInit() {\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad ResetpasswordPage');\n }\n ionViewWillEnter() {\n this.verifyKeyEmail();\n }\n /**\n * to verify user is whether typed or clicked the email link\n * Purpose: if user is typed the email link key and email, user is not allowed\n to veiw the reset password page and display one error hint screen\n for user. As long as user clicked email link from mailbox, user is\n enabled to view the reset password page\n * @param { key, email }\n * @return if user clicked email link, return reset password page, otherwise,\n return error hint screen\n */\n verifyKeyEmail(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n this.keyVal = key;\n this.emailVal = email;\n const loading = this.loadingCtrl.create({\n content: this.verifyUserMessage\n });\n loading.present();\n this.authService.verifyUserKeyEmail(key, email)\n .subscribe(data => {\n loading.dismiss();\n this.verifySuccess = true;\n console.log(\"valueTrue: \" + this.verifySuccess);\n },\n err => {\n loading.dismiss();\n this.verifySuccess = false;\n console.log(\"valueFalse: \" + this.verifySuccess);\n setTimeout(() => {\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n }, 5000);\n });\n }\n /**\n * to update password in db\n * Purpose: store new password for user\n * @param { key, email, password, verify_password }\n * @return if API request is passed (status code: 200), user password updated\n successfully, otherwise, error hint popup to indicate user password\n update failed\n */\n updatePassword(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n const loading = this.loadingCtrl.create({\n content: this.successResetPasswordMessage\n });\n loading.present().then(() => {\n this.authService.resetUserPassword(key, email, this.password, this.verify_password).subscribe(data => {\n // loading.dismiss();\n // this.navCtrl.push(LoginPage);\n this.authService.loginAuth(email, this.password)\n .subscribe(data => {\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n this.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n loading.dismiss().then(() => {\n this.loginError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n });\n }\n // after password set, auto login error alertbox\n loginError(error) {\n const alertLogin = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.resetPasswordLoginFailedMessage,\n buttons: ['Close']\n });\n alertLogin.present();\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/reset-password/reset-password.ts","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { i18nEN } from './assets/i18n-en';\nimport { i18nCN } from './assets/i18n-cn'; \n@Injectable()\nexport class TranslationService {\n constructor(public translate: TranslateService,){\n translate.addLangs([\"en\", \"cn\"]);\n translate.setDefaultLang(\"en\");\n translate.use(\"en\");\n }\n isTranslated(checkStatus){\n return checkStatus == true ? this.translate.use(\"cn\") : this.translate.use(\"en\")\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.service.ts","import { FormControl } from '@angular/forms';\n\nexport class FormValidator {\n static isValidEmail(formCtrl: FormControl){\n var regexValue = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(formCtrl.value);\n if(regexValue) {\n return null;\n }\n return { \"inValidEmail\": true }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/validators/formValidator.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\nimport { Http, Headers, URLSearchParams, RequestOptions } from '@angular/http';\n@Injectable()\nexport class AuthService {\n appkey: any = this.request.getAppkey();\n prefixUrl: any = this.request.getPrefixUrl();\n AUTH_ENDPOINT: any = this.prefixUrl + 'api/auths.json?action=';\n\n constructor(\n public request: RequestService,\n public http: Http\n ) {}\n\n headerData() {\n let headers = new Headers();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n headers.append('appkey', this.appkey);\n return headers;\n }\n\n getTerms() {\n let options = new RequestOptions({headers: this.headerData()});\n return this.http.get(this.prefixUrl+'api/registration_details.json', options)\n .map(res => res.json());\n }\n\n verifyRegistration(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `email=${data.email}`,\n `key=${data.key}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n register(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `password=${data.password}`,\n `user_id=${data.user_id}`,\n `key=${data.key || 'thisissamplekey'}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n loginAuth(email, password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `data[User][email]=${email}`,\n `data[User][password]=${password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'authentication', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n forgotPassword(email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('email', email);\n return this.http.post(this.AUTH_ENDPOINT+'forgot_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n verifyUserKeyEmail(key, email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n resetUserPassword(key, email, password, verify_password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`,\n `password=${password}`,\n `verify_password=${verify_password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n magicLinkLogin(auth_token){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('auth_token', auth_token);\n return this.http.post(this.prefixUrl+'api/auths.json?', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n getUser() {\n return this.request.get('api/users.json');\n }\n\n isAuthenticated() {\n return true;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/auth.service.ts","import { Component } from '@angular/core';\n\n// Pages\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { RankingsPage } from '../rankings/list/rankings.page';\nimport { SettingsPage } from '../settings/settings.page';\nimport { TestPage } from './test.page';\nimport { EventsListPage } from '../events/list/list.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\n\n@Component({\n templateUrl: 'tabs.html',\n providers: []\n})\nexport class TabsPage {\n // this tells the tabs component which Pages\n // should be each tab's root Page\n ranking: any = RankingsPage;\n // ranking: any = TestPage;\n dashboard: any = ActivitiesListPage;\n settings: any = SettingsPage;\n events: any = EventsListPage;\n\n constructor(\n public translationService: TranslationService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/tabs.page.ts","import { Component } from '@angular/core';\nimport { ViewController, NavParams } from 'ionic-angular';\n\n@Component({\n template: `\n \n \n \n \n \n {{activityData.name}}\n \n \n \n \n

{{ activityData.name }}

\n\n
\n\n

{{ activityData.description || 'No descriptions available.' }}

\n
\n\n \n \n Download\n \n
\n `\n})\n\nexport class ActivitiesViewModalPage {\n activity: any = {};\n activityData: Object = {};\n\n constructor(\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {\n }\n\n ionViewDidEnter(): void {\n this.activity = this.navParams.get('activity');\n this.activityData = this.activity.Activity;\n console.log(this.activity.Activity);\n }\n\n dismiss() {\n let data = { 'foo': 'bar' };\n this.viewCtrl.dismiss(data);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/view/activities-view-modal.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslateService } from '@ngx-translate/core';\n\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n//Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\n\n@Component({\n selector: 'activity-list-popup',\n templateUrl: 'popup.html'\n})\nexport class ActivityListPopupPage {\n\n achievementData: any = null;\n achievementName: string;\n achievementsLoadingErr: any = errMessages.General.loading.load;\n achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n badgeUrl: string;\n description: string;\n enableData: boolean = null;\n loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n points: string;\n unlock_id: any;\n\n constructor(\n public achievementService: AchievementService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {\n this.unlock_id = this.navParams.get('unlock_id');\n // console.log('Unlock id value: ', this.unlock_id);\n }\n\n ionViewWillEnter(){\n let loader = this.loadingCtrl.create({\n content: this.loadingMessage\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.achievementsLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let nothingLoaded = this.toastCtrl.create({\n message: this.achievementsEmptyDataErr,\n duration: 4000,\n position: 'bottom'\n });\n loader.present().then(() => {\n this.achievementService.getAll()\n .subscribe(\n (data) => {\n if (data.length > 0) {\n this.enableData = true;\n this.achievementData = data.find(res => res.Achievement.id === this.unlock_id).Achievement;\n this.achievementName = this.achievementData.name;\n this.badgeUrl = this.achievementData.badge;\n this.description = this.achievementData.description;\n this.points = this.achievementData.points;\n loader.dismiss().then(() => {\n console.log(this.achievementData);\n });\n } else {\n this.enableData = false;\n loader.dismiss().then(() => {\n nothingLoaded.present();\n });\n }\n },\n (err) => {\n this.enableData = false;\n loader.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n )\n });\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/popup.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { GameService } from '../../../services/game.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'rankings-list-page',\n templateUrl: 'rankings.html'\n})\nexport class RankingsPage {\n emptyErrorMessage: any = errMessages.General.loading.load;\n listRankingData: any = [];\n loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n myRankingData: any = [];\n rankingData: any = [];\n totalData: any = [];\n\n constructor(\n public alertCtrl: AlertController,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n ionViewWillEnter(){\n this.RankingData();\n }\n RankingData(){\n const loading = this.loadingCtrl.create({\n content: this.loadingMessages\n });\n const emptyDataAlert = this.alertCtrl.create({\n title: 'Sorry, No data has been found',\n message: this.emptyErrorMessage,\n buttons: ['Close']\n });\n loading.present();\n // @TODO remove later\n let gameId = this.cacheService.getLocalObject('game_id');\n this.gameService.getCharacters(gameId)\n .subscribe((characters) => {\n // Now only have one character per project\n let me = characters.Characters[0];\n this.gameService.getRanking(gameId, me.id)\n .subscribe(\n results => {\n loading.dismiss().then(() => {\n this.totalData = results;\n this.rankingData = this.totalData;\n // We only have 1 character\n if(this.totalData.MyCharacters){\n this.myRankingData = this.totalData.MyCharacters[0] || [];\n }else {\n this.myRankingData = [];\n }\n this.listRankingData = this.totalData.Characters;\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log('err', err);\n emptyDataAlert.present();\n });\n }\n );\n },\n err => {\n loading.dismiss().then(() => {\n console.log('Error: ', err.msg);\n emptyDataAlert.present();\n });\n });\n }\n goRankingDetail(myRanking){\n this.navCtrl.push(RankingDetailsPage, {\n myRanking: myRanking\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/list/rankings.page.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingBadgesPage } from './ranking-badges';\n@Component({\n selector: 'rankings-details-page',\n templateUrl: 'ranking-details.html'\n})\nexport class RankingDetailsPage {\n public userAchievementsData: any = [];\n public achievementBadgeImage = '../assets/img/default/default-badge.png';\n public achievementName = 'Achievement';\n public totalPoints = 0;\n public myRank: any= {};\n\n public emptyAchievementMessage = errMessages.Activities.achievements.empty;\n public loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n public emptyErrorMessage: any = errMessages.General.loading.load;\n constructor(public navCtrl: NavController,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public params: NavParams,\n public achievementService: AchievementService){}\n\n ionViewWillEnter() {\n this.myRank = this.params.get('myRanking');\n this.totalPoints = this.myRank.experience_points;\n\n let loader = this.loadingCtrl.create();\n loader.present().then(() => {\n this.userAchievements()\n .then(() => {\n loader.dismiss();\n }, err => {\n console.log('log::', err);\n });\n });\n\n }\n userAchievements(): Promise {\n return new Promise((resolve, reject) => {\n this.achievementService.getAchievements()\n .subscribe(\n (data) => {\n console.log('achievemnts', data);\n if (data) {\n // Filter achievemnts\n _.forEach(data.Achievement, element => {\n if(element.visibility !== 2){\n this.userAchievementsData.push(element);\n }\n });\n }\n resolve();\n },\n (err) => {\n console.log(\"Error: \", err);\n reject(err);\n }\n );\n });\n }\n goToBadgeDetailsPage(achievementData){\n let goRankingBadgesPopup = this.modalCtrl.create(RankingBadgesPage, { achievement: achievementData });\n goRankingBadgesPopup.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-details.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages'; \nimport * as _ from 'lodash';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n@Component({\n selector: 'ranking-badges',\n templateUrl: 'ranking-badges.html'\n})\nexport class RankingBadgesPage {\n public currentAchievement: any = null;\n public badgeUrl: string = '../assets/img/default/default-badge.png';\n public description: string = \"No Description Yet ..\";\n public points: number = 0;\n public achievementName: string = \"Achievement\";\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n public achievementsLoadingErr: any = errMessages.General.loading.load;\n public achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n constructor(public viewCtrl: ViewController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public loadingCtrl: LoadingController,\n public achievementService: AchievementService,\n public translationService: TranslationService){\n this.currentAchievement = this.navParams.get('achievement');\n console.log(\"currentAchievement: \", this.currentAchievement);\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-badges.ts","import { Component } from '@angular/core';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\n\n@Component({\n selector: 'leaderboard-settings-page',\n templateUrl: 'leaderboard-settings.html'\n})\nexport class LeaderboardSettingsPage {\n isHide: boolean = false;\n useremail: string = this.cacheService.getLocalObject('email') || '';\n username: string = this.cacheService.getLocalObject('name') || '';\n\n constructor(\n public cacheService: CacheService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/leaderboard/leaderboard-settings.page.ts","import { Injectable, Component, ViewChild } from '@angular/core';\nimport { NavController, LoadingController, Slides } from 'ionic-angular';\n\n// Pages\nimport { ActivitiesListPage } from '../../activities/list/list.page';\n\n@Injectable()\n@Component({\n selector: 'tutorial-page',\n templateUrl: 'tutorial.html'\n})\nexport class TutorialPage {\n @ViewChild(Slides) slides: Slides;\n\n indexCounter: number = 0;\n hideNextButton: boolean = false;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n goDashbaord() {\n this.navCtrl.setRoot(ActivitiesListPage);\n }\n goPrev() {\n this.slides.slidePrev();\n this.hideNextButton = false;\n }\n goNext() {\n this.slides.slideNext();\n this.slides.isEnd() == true ? this.hideNextButton = true : this.hideNextButton = false;\n // console.log(this.hideNextButton);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/tutorial/tutorial.page.ts","import { Component, Input } from '@angular/core';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { NavController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\n// pages\nimport { RegisterPage } from '../registration/register.page';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\n\n@Component({\n selector: 'term-condition',\n templateUrl: 'term-condition.html'\n})\nexport class TermConditionPage {\n @Input('content') content?: SafeResourceUrl;\n @Input('user') user: any;\n\n agreed:boolean = false;\n checkAccessMethod: boolean = false;\n disagreeErrMessage = errMessages.TermConditions.disagreement.noAccepted;\n helpEmailMessage = generalVariableMessages.helpMail.email;\n verifyFailedErrMessage = errMessages.TermConditions.verifyFailed.verifyfailed;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public nav: NavController,\n public notificationService: NotificationService,\n public translationService: TranslationService,\n ) {}\n\n accessMethod(){\n return (window.location.href.indexOf('?do=') > -1) ? this.checkAccessMethod = true : this.checkAccessMethod = false\n }\n displayError(errorMessage?: any): void {\n let alert = this.alertCtrl.create({\n title: 'Invalid registration code',\n subTitle: errorMessage,\n buttons: [{\n text: 'Close'\n }]\n });\n alert.present();\n }\n backToSAccountPage() {\n this.nav.popToRoot();\n }\n ionViewDidEnter() {\n console.log(this.user);\n }\n agree(user): void {\n if (this.agreed === true) {\n this.nav.push(RegisterPage, user);\n } else {\n this.notificationService.present(this.disagreeErrMessage);\n }\n }\n /**\n * verify if params from url is allowed to proceed with registration\n */\n verify(): void {\n this.authService.verifyRegistration({\n key: 'test',\n password: 'test'\n }).subscribe(\n res => {\n console.log(res);\n },\n err => {\n this.notificationService.present(this.verifyFailedErrMessage);\n },\n () => {\n this.nav.push(TabsPage);\n }\n );\n }\n /**\n * toggle Read & confirm to proceed next registration page\n */\n toggleAgree(): void {\n this.agreed = !this.agreed;\n }\n navToRegister(): void {\n if (this.agreed === true) {\n console.log(this.nav.getViews());\n }\n }\n onTermError(err): void {\n const supportEmail = this.helpEmailMessage;\n if ((err.data || {}).msg) {\n //@TODO: implement error handling\n console.log({title: \"Unable to register\", template: `Something went wrong, please contact ${supportEmail}.`});\n } else if (err.data.msg.indexOf('already registered') != -1) {\n console.log({\n title: \"Account already registered\",\n template: \"Please log in, or click 'forgot password'\"\n });\n } else {\n console.log({\n title: \"Invalid registration link\",\n template: `Please check your email again, or contact ${supportEmail}`\n });\n }\n }\n // temporary fix for direct signin\n signIn(): void {\n this.nav.push(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-condition.page.ts","import { Component, ViewChild, OnInit, Inject } from '@angular/core';\nimport { NgForm, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NavController, ViewController, AlertController, LoadingController, NavParams } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\nimport { TranslationService } from '../../shared/translation/translation.service';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\nconst supportEmail = generalVariableMessages.helpMail.email;\n\n@Component({\n selector: 'register',\n templateUrl: 'register.html',\n})\nexport class RegisterPage implements OnInit {\n @ViewChild('registrationForm') registrationForm: NgForm;\n\n changeContent: boolean = false;\n clickSuspended: boolean = false;\n invalidUserErrMessage: any = errMessages.Registration.invalidUser.account;\n isPwdMatch: boolean = false;\n milestone_id: string;\n minLengthCheck: boolean = true;\n noPasswordErrMessage: any = errMessages.Registration.noPassword.password;\n password: string;\n passwordMismatchErrMessage: any = errMessages.Registration.mismatch.mismatch;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n pwdMacthBool: boolean = false;\n regForm: any;\n registrationErrMessage: any = errMessages.Registration.error.error;\n registeredErrMessage: any = errMessages.Registration.alreadyRegistered.registered;\n submitted: boolean = false;\n successRegistrationLoading: any = loadingMessages.SuccessRegistration.successRegistration;\n user: any = {\n password: '',\n verify_password: ''\n };\n verify_password: string;\n verifyFailedErrMessage = errMessages.Registration.verifyFailed.verifyfailed;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n\n constructor(\n @Inject(FormBuilder) fb: FormBuilder,\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cache: CacheService,\n public gameService: GameService,\n public loading: LoadingController,\n public milestone: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public notificationService: NotificationService,\n public viewCtrl: ViewController,\n public translationService: TranslationService,\n ) {\n // validation for both password values: required & minlength is 8\n this.regForm = fb.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n });\n }\n\n ngOnInit() {}\n\n displayAlert(message) {\n return this.alertCtrl.create({\n title: 'Test',\n message: message,\n buttons: ['OK']\n });\n }\n onSubmit(form: NgForm):void {\n let self = this;\n self.submitted = true;\n function onRegError(err) {\n if (err.frontendErrorCode === 'SERVER_ERROR') {\n throw 'API endpoint error';\n }\n let message = this.registrationErrMessage + `${supportEmail}`;\n if (err && err.data && err.data.msg) {\n switch (err.data.msg) {\n case 'Invalid user':\n message = this.invalidUserErrMessage + `${supportEmail}`;\n break;\n case 'No password':\n message = this.noPasswordErrMessage;\n break;\n case 'User already registered':\n message = this.registeredErrMessage;\n break;\n }\n }\n self.displayAlert(message).present();\n self.submitted = false;\n }\n\n function onFinally() {\n //@TODO: log something maybe\n // self.navCtrl.push(TabsPage);\n console.log('Final step - log something here');\n }\n if (this.user.password !== this.user.verify_password) {\n this.notificationService.alert({\n title: 'Incorrect Password',\n subTitle: this.passwordMismatchErrMessage,\n buttons: ['Close']\n });\n } else {\n const loading = this.loading.create({\n dismissOnPageChange: true,\n content: this.successRegistrationLoading\n });\n // registration api call: to let user set password and complete registration process\n loading.present().then(() => {\n this.authService.register({\n email: this.cache.getLocal('user.email'),\n key: this.cache.getLocal('user.registration_key'),\n user_id: this.cache.getLocal('user.id'),\n password: this.regForm.get('password').value\n }).subscribe(regRespond => {\n //@TODO: set user data\n regRespond = regRespond.data;\n console.log(regRespond);\n this.cache.setLocalObject('apikey', regRespond.apikey);\n this.cache.setLocalObject('timelineID', regRespond.Timeline.id);\n this.cache.setLocal('gotNewItems', false);\n // after passed registration api call, we come to post_auth api call to let user directly login after registred successfully\n this.authService.loginAuth(this.cache.getLocal('user.email'), this.regForm.get('password').value)\n .subscribe(\n data => {\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cache.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get user data after registration and login\n self.authService.getUser()\n .subscribe(\n data => {\n console.log(data);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after registration and login\n self.milestone.getMilestones()\n .subscribe( data => {\n loading.dismiss().then(() => {\n // console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cache.setLocalObject('milestone_id', data.data[0].id);\n self.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n );\n }, onRegError, onFinally);\n });\n }\n }\n setRegistrationData(data) {\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cache.set(key, datum));\n });\n cacheProcesses.push(this.cache.set('timelineID', data.Timeline.id));\n this.cache.setLocal('timelineID', data.Timeline.id);\n return Observable.from(cacheProcesses);\n }\n goToLogin() {\n this.cache.clear().then(() => {\n this.navCtrl.push(LoginPage);\n });\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/registration/register.page.ts","import { Component, Output, EventEmitter } from '@angular/core';\nimport { Tabs, NavParams, NavController, AlertController, LoadingController, ActionSheetController, ToastController } from 'ionic-angular';\n\n// services\nimport { AssessmentService } from '../../../services/assessment.service';\nimport { EventService } from '../../../services/event.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { AssessmentsGroupPage } from '../../assessments/group/assessments-group.page';\nimport { AssessmentsPage } from '../../assessments/assessments.page';\nimport { EventCheckinPage } from '../checkin/event-checkin.page';\nimport { EventsDownloadPage } from '../download/events-download.page';\nimport { EventsListPage } from '../list/list.page';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as moment from 'moment';\n\nconst terms = {\n booked: 'Booked'\n};\n@Component({\n templateUrl: './events-view.html'\n})\nexport class EventsViewPage {\n booked_text: string = 'Booked';\n bookEventErrMessage: any = errMessages.Events.bookEvents.book;\n bookingStatus: string = '';\n cancelBookingErrMessage: any = errMessages.Events.cancelBooking.cancel;\n completedSubmissions: boolean = false;\n event: any = {};\n justBooked: boolean = false;\n loadings: any = { checkin: true };\n submissions: Array = [];\n\n constructor(\n public actionSheetCtrl: ActionSheetController,\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.event = navParams.get('event');\n }\n\n public availability(event): string {\n return (event.isBooked)? terms.booked : event.remaining_capacity + ' of ' + event.capacity + ' seats available';\n }\n\n ionViewWillEnter() {\n this.loadings.checkin = true;\n this.submissions = []; // reset submissions\n\n if (this.event.References) {\n this.event = Object.assign(this.event, this.extractAssessment(this.event.References));\n }\n\n if (this.event) {\n this.bookingStatus = this.availability(this.event);\n }\n }\n\n ionViewDidEnter() {\n this.completedSubmissions = false;\n this.submissionService.getSubmissions({\n search: {\n context_id: this.event.context_id\n }\n }).subscribe(res => {\n this.loadings.checkin = false;\n res.forEach(submission => {\n submission = this.submissionService.normalise(submission);\n this.submissions.push(submission);\n if (submission.status === 'done') {\n this.completedSubmissions = true;\n }\n });\n }, (err) => {\n this.loadings.checkin = false;\n console.log(err);\n });\n }\n\n /**\n * @name extractAssessment\n * @description each event has only one assessment\n * @param {Array} references References array response from get_activity API\n */\n extractAssessment(references: Array) {\n let ref = references[0];\n ref.Assessment.context_id = ref.context_id;\n\n return {\n assessment: ref.Assessment,\n context_id: ref.context_id\n };\n }\n\n /**\n * Push Download page to ionic nav stack (navigate to attachment download page)\n */\n gotoDownload(event) {\n this.navCtrl.push(EventsDownloadPage, {event});\n }\n\n /**\n * Event booking function\n * @param {object} event Single event object from get_events API response\n */\n checkBookStatus() {\n return false ? (this.event.remaining_capacity == this.event.capacity && this.event.isBooked == false) : (this.event.remaining_capacity != this.event.capacity && this.event.isBooked == true)\n }\n\n book(event): void {\n let earnPoints = this.alertCtrl.create({\n message: `

Congratulations!


\"Congratulations

You have earned 20 points.

`,\n buttons: [\n {\n text: 'OK',\n role: 'OK',\n handler: () => {\n console.log('OK, points earned');\n }\n }\n ]\n });\n\n let bookLoading = this.loadingCtrl.create({\n content: 'Booking ..'\n });\n let bookFailed = this.toastCtrl.create({\n message: this.bookEventErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let bookPopup = this.actionSheetCtrl.create({\n title: `Do you want to book a seat for ${ this.event.title } at ${ moment.utc(this.event.start).local().format(\"dddd, MMM D [at] h:mm A\") }?`,\n buttons:[\n {\n text: 'Cancel',\n role: 'cancel',\n handler: () => {\n this.bookingStatus = this.availability(this.event);\n }\n },\n {\n text: 'Confirm',\n role: 'OK',\n handler: () => {\n bookLoading.present();\n this.eventService.bookEvent(this.event.id)\n .subscribe(\n data => {\n this.justBooked = true;\n if(this.justBooked == true) {\n this.booked_text;\n }\n bookLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n bookLoading.dismiss().then(() => {\n bookFailed.present();\n });\n }\n );\n }\n },\n ]\n });\n bookPopup.present();\n }\n\n /**\n * @note existence of References array determines if an event is\n * a checkin type\n * @description examine event to allow check in\n * @param {Object} event\n */\n allowCheckIn(event) {\n if (event.References && event.References.length > 0) {\n return true;\n }\n return false;\n }\n\n /**\n * Event checkin action\n * @param {Object} event single event object return from get_event API\n */\n checkin(event) {\n let loading = this.loadingCtrl.create({\n content: 'loading checkin...'\n });\n loading.present().then(() => {\n // if submission exist\n loading.dismiss().then(() => {\n // this.navCtrl.push(AssessmentsGroupPage, {\n this.navCtrl.push(AssessmentsPage, {\n event,\n activity: event.activity,\n submissions: this.submissions\n });\n });\n })\n }\n\n /**\n * Event cancel booking action\n * @param\n */\n cancelBooking() {\n let cancelLoading = this.loadingCtrl.create({\n content: 'Cancel Booking ..'\n });\n let cancelFailed = this.toastCtrl.create({\n message: this.cancelBookingErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let cancelBooking = this.actionSheetCtrl.create({\n title: 'Cancel Booking Of This Event?',\n buttons: [\n {\n text: 'Cancel Booking',\n role: 'destructive',\n handler: () => {\n cancelLoading.present();\n this.eventService.cancelEventBooking(this.event.id)\n .subscribe(\n data => {\n cancelLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n cancelLoading.dismiss().then(() => {\n cancelFailed.present();\n });\n }\n )\n }\n },\n {\n text: 'Close',\n role: 'cancel',\n handler: () => {\n // console.log('Close this window ..');\n }\n }\n ]\n });\n cancelBooking.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/view/events-view.page.ts","import { Component, OnInit } from '@angular/core';\nimport { NavController, NavParams, ViewController } from 'ionic-angular';\n\n@Component({\n templateUrl: './events-preview.html'\n})\nexport class EventsPreviewPage implements OnInit {\n file: any = {};\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {}\n\n ngOnInit() {\n this.viewCtrl.setBackButtonText('Done');\n }\n\n ionViewDidEnter() {\n this.file = this.navParams.get('file');\n }\n\n goBack() {\n this.navCtrl.pop();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/download/events-preview.page.ts","import { Component } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { NavController, NavParams, LoadingController, AlertController, ToastController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n\n@Component({\n selector: 'page-forget-password',\n templateUrl: 'forget-password.html'\n})\nexport class ForgetPasswordPage {\n email: string;\n forgotPwdFormGroup: any;\n // loading & error message variables\n sendingEmailLoadingMessage = loadingMessages.SendingEmail.send;\n sentEmailMessagePartOne = loadingMessages.SentMessage.partOne;\n sentEmailMessagePartTwo = loadingMessages.SentMessage.partTwo;\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public translationService: TranslationService,\n public authService: AuthService,\n public toastCtrl: ToastController,\n public formBuilder: FormBuilder\n ) {\n this.forgotPwdFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n });\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad ForgetPasswordPage');\n }\n\n userForgotPassword(){\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.sendingEmailLoadingMessage\n });\n\n let defaultMsg = this.sentEmailMessagePartOne + ` ${this.email} ` + this.sentEmailMessagePartTwo;\n\n loading.present();\n // This part is calling post_forget_password() API from backend\n this.authService.forgotPassword(this.email)\n .subscribe(data => {\n loading.dismiss();\n defaultMsg = data.msg || defaultMsg;\n const successSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n successSMS.present();\n },\n error => {\n loading.dismiss();\n // this.logError(error);\n defaultMsg = error.msg || defaultMsg;\n const errorSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n errorSMS.present();\n }\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/forget-password/forget-password.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController,\n NavParams,\n LoadingController,\n AlertController,\n ModalController,\n ViewController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport * as _ from 'lodash';\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { RequestServiceConfig } from '../../shared/request/request.service';\n// directives\nimport {FormValidator} from '../../shared/validators/formValidator';\n// pages\nimport { TabsPage } from '../../pages/tabs/tabs.page';\nimport { ForgetPasswordPage } from '../../pages/forget-password/forget-password';\n/* This page is for handling user login process */\n@Component({\n selector: 'page-login',\n templateUrl: 'login.html'\n})\nexport class LoginPage {\n public email: string;\n public password: any;\n public userName: string;\n public userImage: string;\n public API_KEY: string;\n public milestone_id: string;\n public loginFormGroup: any;\n public forgetpasswordPage = ForgetPasswordPage;\n public loginLoadingMessages: any = loadingMessages.Login.login;\n public invalidLoginMessage: any = errMessages.Login.login;\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public viewCtrl: ViewController,\n public authService: AuthService,\n public gameService: GameService,\n public translationService: TranslationService,\n public config: RequestServiceConfig,\n public formBuilder: FormBuilder,\n public milestoneService: MilestoneService,\n public cacheService: CacheService\n ) {\n this.navCtrl = navCtrl;\n this.loginFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n password: ['', [Validators.required, Validators.minLength(8)]],\n });\n }\n ionViewCanLeave(): boolean {\n // user is authorized\n console.log('authorized');\n let authorized = true;\n if (authorized){\n return true;\n } else {\n return false;\n }\n }\n /**\n * user login function to authenticate user with email and password\n */\n userLogin() {\n let self = this;\n this.cacheService.clear().then(() => {\n // add loading effect during login process\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessages\n });\n loading.present().then(() => {\n // This part is calling post_auth() API from backend\n this.authService.loginAuth(this.email, this.password)\n .subscribe(data => {\n data = data.data;\n // this.getLogInData(data);\n self.cacheService.setLocalObject('apikey', data.apikey);\n // saved for 3 types of timeline id in order for later use\n self.cacheService.setLocalObject('timelineId', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('teams', data.Teams);\n self.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n self.cacheService.setLocalObject('name', data.User.name);\n self.cacheService.setLocalObject('email', data.User.email);\n self.cacheService.setLocalObject('program_id', data.User.program_id);\n self.cacheService.setLocalObject('project_id', data.User.project_id);\n self.cacheService.setLocalObject('user', data.User);\n },\n err => {\n console.log(err);\n }\n );\n\n this.gameService.getGames()\n .subscribe((data) => {\n if (data.Games) {\n // For now only have one game per project\n self.cacheService.setLocalObject('game_id', data.Games[0].id);\n }\n });\n\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n }, err => {\n loading.dismiss().then(() => {\n this.logError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n });\n });\n }\n /**\n * Insert post_auth() api result into localStorage\n * @param {object} data result from API request\n * @returns Observable/subject\n */\n getLogInData(data){\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cacheService.write(key, datum));\n });\n cacheProcesses.push(this.cacheService.write('timeline_id', data.Timelines[0].Timeline.id));\n cacheProcesses.push(this.cacheService.write('apikey', data.apikey));\n cacheProcesses.push(this.cacheService.write('timelines', data.Timelines));\n cacheProcesses.push(this.cacheService.write('teams', data.Teams));\n this.cacheService.setLocal('apikey', data.apikey);\n this.cacheService.setLocal('timeline_id', data.Timelines[0].Timeline.id);\n console.log(\"cache data: \" + cacheProcesses);\n return Observable.from(cacheProcesses);\n }\n /**\n * Insert get_user() api result into localStorage\n * @param {object} user result from API request\n */\n getUserKeyData(user){\n let userData = {\n 'apikey': user.data.apikey,\n 'timelines': user.data.Timelines\n }\n this.cacheService.write('userData', userData);\n this.cacheService.setLocalObject('userData', userData);\n this.API_KEY = user.data.apikey;\n // console.log(\"Timeline ID: \" + user.data.Timelines[0].Timeline.id);\n // to get API KEY and timeline_id and stored in localStorage\n // then other API calls can directly use (API KEY and timeline_id)\n }\n /**\n * @TODO we'll come back to this logging workflow later in this development\n *\n * This function is used to log unexpected error accountered in the client side\n * @param {object} error result from API request\n */\n logError(error) {\n const alert = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.invalidLoginMessage,\n buttons: ['Close']\n });\n alert.present();\n // handle API calling errors display with alert controller\n }\n /**\n * forget password page link function\n */\n linkToForgetPassword() {\n this.navCtrl.push(this.forgetpasswordPage);\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/login/login.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// pages\nimport { TabsPage } from '../tabs/tabs.page';\nimport { LoginPage } from '../login/login';\n// Others\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-magic-link',\n templateUrl: 'magic-link.html'\n})\nexport class MagicLinkPage {\n auth_token: string;\n loginLoadingMessage: any = loadingMessages.Login.login;\n milestone_id: string;\n misMatchTokenErrMessage: any = errMessages.DirectLink.mismatch;\n verifySuccess = null;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams\n ) {}\n\n ionViewDidLoad() {\n this.auth_token = this.navParams.get('auth_token');\n }\n ionViewWillEnter(){\n this.magicLinkAccess();\n }\n magicLinkAccess(){\n let observable = this.authService.magicLinkLogin(this.auth_token);\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessage\n });\n loading.present();\n observable.subscribe(data => {\n // localStorage.setItem('isAuthenticated', 'true');\n // this.navCtrl.push(TabsPage);\n // console.log(\"Successfully logged in\");\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n const failAlert = this.alertCtrl.create({\n title: 'Magic did NOT happen',\n message: this.misMatchTokenErrMessage,\n buttons: ['Close']\n });\n failAlert.present();\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n // console.log(\"Login failed\");\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/magic-link/magic-link.ts","import { Component } from '@angular/core';\n\n@Component({\n template: ''\n})\nexport class TestPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/test.page.ts","import { Component } from '@angular/core';\nimport { NavParams } from 'ionic-angular';\n\nimport { TranslationService } from '../../../shared/translation/translation.service';\n\nlet _mock = {\n \"id\": 59,\n \"name\": \"Test Achievement\",\n \"description\": \"this is test achievement\",\n \"badge\": \"https://www.filepicker.io/api/file/lRLLzZdwT0OWdxQq0ZJw\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 158,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100,\n \"achieved\": false,\n};\n\n@Component({\n templateUrl: './achievements-view.html'\n})\nexport class AchievementsViewPage {\n\n achievement: any;\n\n constructor(\n public params: NavParams,\n public translationService: TranslationService\n ) {\n this.achievement = {};\n }\n\n ionViewDidEnter() {\n this.achievement = this.params.get('achievement');\n\n // Inject API response\n this.achievement = _mock;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/achievements/view/achievements-view.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController, LoadingController } from 'ionic-angular';\n\nimport { ActivitiesViewPage } from '../../activities/view/activities-view.page';\nimport { ActivityService } from '../../../services/activity.service';\n\ndeclare var _: any;\n\n@Component({\n templateUrl: './list.html'\n})\nexport class ActivitiesClassicListPage {\n public activities: Array = [];\n\n constructor(\n public navCtrl: NavController,\n public activityService: ActivityService,\n public toastCtrl: ToastController,\n public loader: LoadingController\n ) {}\n\n // @TODO: Move to shared function later...\n public _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n /**\n * normalise activities\n */\n public normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = _.merge(act.Activity, {\n activity: act.Activity,\n sequences: act.ActivitySequence,\n Activity: act.Activity,\n ActivitySequence: act.ActivitySequence,\n });\n });\n return result;\n }\n\n _pullData(acts, cb?) {\n let self = this;\n\n this.activityService.getList()\n .toPromise()\n .then(function(activities) {\n let result = [];\n activities.map((act, index) => {\n act = _.merge(act, act.Activity);\n });\n this.activities = activities;\n self.activities = activities;\n\n if (cb) {\n cb();\n }\n }, err => {\n this._error(err);\n console.log('err', err);\n\n if (cb) {\n cb();\n }\n });\n }\n\n public doRefresh(refresher) {\n this._pullData(this.activities, () => {\n if (refresher) {\n refresher.complete();\n }\n });\n }\n\n ionViewDidEnter() {\n\n let loader = this.loader.create();\n let self = this;\n\n loader.present().then(() => {\n this.activityService.getList()\n .subscribe(activities => {\n console.log(self.activities);\n activities = self.normaliseActivities(activities);\n\n self.activities = activities;\n loader.dismiss();\n });\n });\n }\n\n public hasReservation(activity) {\n return false;\n }\n\n public viewTicket(activity) {\n\n }\n\n public book(activity) {\n\n }\n\n public gotoActivity(activity) {\n console.log(activity);\n this.navCtrl.push(ActivitiesViewPage, {activity});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities-classic/list/activities-classic-list.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\n// Services\nimport { AssessmentService } from '../../services/assessment.service';\nimport { SubmissionService } from '../../services/submission.service';\n// Others\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'gallery-page',\n templateUrl: 'gallery.html'\n})\nexport class GalleryPage {\n _mock = {\n avatar: {\n name: 'Jose',\n photo: 'https://unsplash.it/100/100'\n },\n photos: [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ]\n };\n assessments: any;\n avatarName: any;\n avatarPhoto: any;\n name: string;\n photos: any[];\n refresher = null;\n\n constructor(\n public navCtrl: NavController,\n public toastCtrl: ToastController,\n public assessmentService: AssessmentService,\n public submissionService: SubmissionService\n ) {}\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData() {\n this.assessmentService.getAll().toPromise()\n .then((result) => {\n this.assessments = result;\n return this.submissionService.getSubmissions();\n })\n .then((result) => {\n let extractedPhotos = this.submissionService.extractPhotos(result);\n\n if (this.assessments.success || _.isArray(extractedPhotos)) {\n _.forEach(this.assessments.data, (assessment) => {\n if (assessment.Assessment.assessment_type === 'checkin') {\n let foundPhoto = _.find(extractedPhotos, function(p) {\n return p.assessment_id == assessment.Assessment.id;\n });\n\n if (foundPhoto) {\n this.photos.push({\n name: assessment.Assessment.name,\n photo: foundPhoto.photo,\n submitted: moment.utc(foundPhoto.submitted).local().format(\"D-M-YYYY, hA\")\n });\n }\n }\n });\n\n this.photos = _.sortBy(this.photos, 'submitted');\n }\n\n if (this.refresher) {\n this.refresher.complete();\n }\n })\n .catch((err) => {\n if (this.refresher) {\n this.refresher.complete();\n }\n this._error(err)\n });\n }\n\n doRefresh(refresher) {\n this.refresher = refresher;\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n }\n\n ionViewWillEnter() {\n // @TODO We should not block user if no linkedin photo...\n\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n this.photos = [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ];\n console.log('this.photos', this.photos)\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/gallery/gallery.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { MilestoneService } from './milestone.service';\nimport { ActivityService } from './activity.service';\n// Others\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LevelService {\n\n constructor(\n public activityService: ActivityService,\n public milestoneService: MilestoneService\n ) {}\n\n getLevels() {\n let milestones = [];\n let milestoneIds = [];\n\n return new Promise((resolve, reject) => {\n this.milestoneService.getList()\n .toPromise()\n .then((result: any) => {\n milestones = result.data;\n\n // Find unlocked milestones...\n _.forEach(milestones, (milestone) => {\n if (!milestone.is_locked) {\n milestoneIds.push(milestone.id);\n }\n });\n\n return this.activityService.getLevels({\n // @TODO: Should have some way to get data from stroage...\n search: {\n milestone_id: JSON.stringify(milestoneIds),\n has: []\n }\n });\n })\n .then((result: any) => {\n\n _.forEach(result.data, function(activity) {\n\n // Normalise activity data\n activity = this.activityService.normalise(activity);\n\n // Group activity to milestone...\n _.forEach(milestones, function(milestone, key) {\n if (milestone.id === activity.Activity.milestone_id) {\n milestones[key].activity = activity;\n }\n });\n });\n\n resolve(milestones);\n })\n .catch(reject);\n });\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/level.service.ts","import { Component } from '@angular/core';\nimport { NavParams, NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { EventService } from '../../../services/event.service';\nimport { AssessmentService } from '../../../services/assessment.service';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'page-event-checkin',\n templateUrl: './event-checkin.html',\n})\nexport class EventCheckinPage {\n assessment: any;\n assessmentGroup: any;\n checkin: any = {};\n event: any;\n submissions: any;\n user: any = {};\n\n constructor(\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n ) {\n this.event = navParams.get('event');\n this.submissions = navParams.get('submissions');\n this.assessment = navParams.get('assessment');\n this.assessmentGroup = navParams.get('assessmentGroup');\n }\n\n ionViewDidEnter() {\n this.checkin = this.getCheckinAnswer(this.submissions[0]); // event checkin has just single submission\n this.assessment = this.assessmentService.normaliseGroup(this.assessmentGroup);\n this.user = this.cache.getLocalObject('user');\n }\n\n // Only checkin/file upload answer is displayed in check-in view\n public getCheckinAnswer(submission) {\n let result = {};\n submission.answer.forEach(ans => {\n if (typeof ans.answer === 'object') {\n result = ans;\n }\n });\n\n return result;\n }\n\n injectAssessmentToAnswer() {\n this.assessmentGroup.forEach(group => {\n console.log(group);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/checkin/event-checkin.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\nimport { TeamService } from '../../services/team.service';\n// Others\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'team-page',\n templateUrl: 'team.html'\n})\nexport class TeamPage {\n members = [];\n team = {};\n\n constructor(\n public navCtrl: NavController,\n public teamService: TeamService,\n public toastCtrl: ToastController\n ) {}\n\n\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData(refresher?) {\n // @TODO Need inject user team ID\n this.teamService.getTeam()\n .then((result: any) => {\n this.team = result.team;\n this.members = result.members;\n\n if (refresher) {\n refresher.complete();\n }\n })\n .catch((err) => {\n if (refresher) {\n refresher.complete();\n }\n this._error(err);\n });\n }\n\n doRefresh(refresher) {\n this._pullData(refresher);\n }\n\n ionViewWillEnter() {\n this._pullData();\n this.members = [\n {\n name: 'Jose',\n email: 'abcd.example.cc'\n }\n ]\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/team/team.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class TeamService {\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n getTeam(options? : any) {\n return this.request.get('api/teams.json', options).toPromise();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/team.service.ts","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app.module';\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main.ts","// libs\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, ErrorHandler, OnInit } from '@angular/core';\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';\nimport { CacheModule } from '../shared/cache/cache.module';\nimport { NotificationModule } from '../shared/notification/notification.module';\nimport { MyApp } from './app.component';\nimport { FilepickerModule } from '../shared/filepicker/filepicker.module';\nimport { UtilsModule } from '../shared/utils/utils.module';\nimport { TestModule } from '../shared/testModules/test.module';\nimport { HttpModule, Http } from '@angular/http';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from \"@ngx-translate/http-loader\";\nimport { i18nData } from './assets/i18n-en';\nimport { TranslationModule } from '../shared/translation/translation.module';\nimport { MomentModule } from 'angular2-moment';\n\n// services\nimport { AchievementService } from '../services/achievement.service';\nimport { ActivityService } from '../services/activity.service';\nimport { AssessmentService } from '../services/assessment.service';\nimport { AuthService } from '../services/auth.service';\nimport { CharacterService } from '../services/character.service';\nimport { EventService } from '../services/event.service';\nimport { FilepickerService } from '../shared/filepicker/filepicker.service';\nimport { GameService } from '../services/game.service';\nimport { GroupEmitterService } from '../components/questions/group-emitter.service';\nimport { LevelService } from '../services/level.service';\nimport { MilestoneService } from '../services/milestone.service';\nimport { NotificationService } from '../shared/notification/notification.service';\nimport { RequestModule } from '../shared/request/request.module';\nimport { SessionService } from '../services/session.service';\nimport { SubmissionService } from '../services/submission.service';\n\nimport { TeamService } from '../services/team.service';\nimport { WindowRef } from '../shared/window';\n// components\nimport { ModalComponent } from '../shared/notification/modal.component';\nimport { QuestionGroupComponent } from '../components/question-group/question-group.component';\nimport { EventComponent } from '../components/event/event.component';\nimport { LevelComponent } from '../components/level/level';\nimport { LoadingMarkerComponent } from '../components/loadingMarker/loadingMarker';\nimport { LockerComponent } from '../components/locker/locker';\nimport { MemberComponent } from '../components/member/member';\nimport { PhotoComponent } from '../components/photo/photo';\nimport { TermContentComponent } from '../pages/term-condition/term-content.component';\nimport { FileQuestionComponent } from '../components/questions/file';\nimport { OneofQuestionComponent } from '../components/questions/oneof';\nimport { TextQuestionComponent } from '../components/questions/text';\nimport { MultipleQuestionComponent } from '../components/questions/multiple';\nimport { FeedbackComponent } from '../components/questions/feedback';\n// pages\nimport { AchievementsViewPage } from '../pages/achievements/view/achievements-view.page';\nimport { ActivitiesListPage } from '../pages/activities/list/list.page';\nimport { ActivityListPopupPage } from '../pages/activities/list/popup';\nimport { ActivitiesViewModalPage } from '../pages/activities/view/activities-view-modal.page';\nimport { ActivitiesViewPage } from '../pages/activities/view/activities-view.page';\nimport { ActivitiesClassicListPage } from '../pages/activities-classic/list/activities-classic-list.page';\nimport { AssessmentsPage } from '../pages/assessments/assessments.page';\nimport { AssessmentsGroupPage } from '../pages/assessments/group/assessments-group.page';\nimport { EventCheckinPage } from '../pages/events/checkin/event-checkin.page';\nimport { EventsComponent } from '../components/events/events.component';\nimport { EventsDownloadPage } from '../pages/events/download/events-download.page';\nimport { EventsListPage } from '../pages/events/list/list.page';\nimport { EventsPreviewPage } from '../pages/events/download/events-preview.page';\nimport { EventsViewPage } from '../pages/events/view/events-view.page';\nimport { ForgetPasswordPage } from '../pages/forget-password/forget-password';\nimport { GalleryPage } from '../pages/gallery/gallery';\nimport { ItemsPopupPage } from '../pages/assessments/popup/items-popup.page';\nimport { LeaderboardSettingsPage } from '../pages/settings/leaderboard/leaderboard-settings.page';\nimport { LevelsListPage } from '../pages/levels/list/list';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { RankingBadgesPage } from '../pages/rankings/view/ranking-badges';\nimport { RankingDetailsPage } from '../pages/rankings/view/ranking-details.page';\nimport { RankingsPage } from '../pages/rankings/list/rankings.page';\nimport { RegisterPage } from '../pages/registration/register.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { SettingsPage } from '../pages/settings/settings.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { TeamPage } from '../pages/team/team';\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { TestPage } from '../pages/tabs/test.page';\nimport { TutorialPage } from '../pages/settings/tutorial/tutorial.page';\n// custom pipes\nimport { TimeAgoPipe } from '../pipes/timeago';\nimport { UcfirstPipe } from '../pipes/ucfirst.pipe';\nimport { TruncatePipe } from '../pipes/truncate.pipe';\nimport { EscapeHtmlPipe } from '../pipes/keep-html.pipe';\n\n// configs\nimport { default as Configure } from '../configs/config';\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: Http) {\n return new TranslateHttpLoader(http, \"./assets/i18n-\", \".json\");\n}\n\n@NgModule({\n declarations: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n FeedbackComponent,\n FileQuestionComponent,\n ForgetPasswordPage,\n GalleryPage,\n ItemsPopupPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n MemberComponent,\n ModalComponent,\n MultipleQuestionComponent,\n MyApp,\n OneofQuestionComponent,\n PhotoComponent,\n QuestionGroupComponent,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TeamPage,\n TestPage,\n TutorialPage,\n TermConditionPage,\n TermContentComponent,\n TextQuestionComponent,\n TimeAgoPipe,\n TruncatePipe,\n UcfirstPipe,\n EscapeHtmlPipe,\n ],\n imports: [\n BrowserModule,\n CacheModule,\n FormsModule,\n MomentModule,\n NotificationModule,\n UtilsModule,\n TestModule,\n RequestModule.forRoot({\n appKey: Configure.appKey,\n prefixUrl: Configure.prefixUrl\n }),\n FilepickerModule.forRoot({\n apikey: Configure.filestack.apiKey\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [Http]\n }\n }),\n TranslationModule,\n IonicModule.forRoot(MyApp, {}, {\n links: [\n {\n component: LoginPage,\n name: 'Login',\n segment: 'login',\n defaultHistory: [ LoginPage ]\n },\n {\n component: ResetPasswordPage,\n name: 'ResetPassword',\n segment: 'resetpassword', //resetpassword?email=XXX&key=XXX\n defaultHistory: [ ResetPasswordPage ]\n },\n {\n component: MagicLinkPage,\n name: 'MagiclinkPage',\n segment: 'secure/:auth_token', //secure?auth_token=XXXXXX\n defaultHistory: [ MagicLinkPage ]\n },\n {\n component: RegistrationPage,\n name: 'Registration',\n segment: 'registration',\n defaultHistory: [ RegistrationPage ]\n },\n {\n component: TestPage,\n name: 'Testing',\n segment: 'test',\n defaultHistory: [TestPage]\n }\n ]\n })\n ],\n bootstrap: [\n IonicApp\n ],\n entryComponents: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n ForgetPasswordPage,\n ItemsPopupPage,\n GalleryPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n ModalComponent,\n MyApp,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TestPage,\n TermConditionPage,\n TutorialPage,\n TermContentComponent,\n ],\n providers: [\n { provide: AchievementService, useClass: AchievementService },\n { provide: ActivityService, useClass: ActivityService },\n { provide: AssessmentService, useClass: AssessmentService },\n { provide: AuthService, useClass: AuthService },\n { provide: CharacterService, useClass: CharacterService },\n { provide: ErrorHandler, useClass: IonicErrorHandler },\n { provide: EventService, useClass: EventService },\n { provide: FilepickerService, useClass: FilepickerService },\n { provide: LevelService, useClass: LevelService },\n { provide: LocationStrategy , useClass: HashLocationStrategy },\n { provide: MilestoneService, useClass: MilestoneService },\n { provide: NotificationService, useClass: NotificationService },\n { provide: SessionService, useClass: SessionService },\n { provide: SubmissionService, useClass: SubmissionService },\n { provide: TeamService, useClass: TeamService },\n WindowRef,\n GroupEmitterService,\n GameService,\n // { provide: RequestOptions, useClass: CustomRequestOptions }\n ]\n})\nexport class AppModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { NgModule } from '@angular/core';\nimport { CacheService } from './cache.service';\nimport { IonicStorageModule } from '@ionic/storage';\n\n@NgModule({\n imports: [\n IonicStorageModule.forRoot({\n name: '__app-vault',\n driverOrder: ['localstorage']\n })\n ],\n providers: [ CacheService ],\n})\nexport class CacheModule {\n\n constructor() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/cache/cache.module.ts","import { NgModule } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule } from '@angular/common';\n\nimport { NotificationService } from './notification.service';\nimport { NotificationComponent } from './notification.component';\n// import { ModalComponent } from './modal.component';\n\n@NgModule({\n imports: [ CommonModule, IonicModule ],\n declarations: [\n NotificationComponent,\n // ModalComponent,\n ],\n providers: [ NotificationService ],\n exports: [\n NotificationComponent,\n // ModalComponent\n ]\n})\nexport class NotificationModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.module.ts","import { Component } from '@angular/core';\nimport { ModalController } from 'ionic-angular';\n\nimport { NotificationService } from './notification.service';\nimport { ModalComponent } from './modal.component';\n\n@Component({\n selector: 'app-notification',\n template: ``,\n})\nexport class NotificationComponent {\n\n constructor(\n public modalCtrl: ModalController,\n public notificationService: NotificationService\n ) {\n notificationService.modalActivated$.subscribe(\n context => {\n this.show(context)\n }\n );\n }\n\n ngOnInit() {}\n\n /**\n * Show notification modal\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * notification_icon: ?{String},\n * description: {String},\n * score: ?{String},\n * button_label: ?{String},\n * button_function: ?{Function},\n * button_link: ?{String},\n * }\n */\n show(context: any) {\n let modal = this.modalCtrl.create(ModalComponent, { 'context': context });\n modal.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.component.ts","import { Component, ViewChild, OnInit } from '@angular/core';\nimport { Platform, NavController } from 'ionic-angular';\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { AuthService } from '../services/auth.service';\n// pages\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { TestPage } from '../pages/tabs/test.page';\n\n@Component({\n templateUrl: 'app.html',\n})\nexport class MyApp implements OnInit {\n // rootPage: any = RegistrationPage;\n rootPage: any;\n urlParameters: Array = [];\n do = {\n 'registration': RegistrationPage,\n 'login': LoginPage,\n 'resetpassword': ResetPasswordPage,\n 'secure': MagicLinkPage,\n 'test': TestPage\n };\n\n @ViewChild('appNav') nav: NavController;\n constructor(\n platform: Platform,\n authService: AuthService,\n private cache: CacheService\n ) {\n platform.ready().then(() => {\n // Okay, so the platform is ready and our plugins are available.\n // Here you can do any higher level native things you might need.\n // ionic-native is removed, as we dont need to use cordova\n });\n }\n\n ngOnInit() {\n let category = [];\n let page;\n let navParams = {};\n\n if (document.URL.indexOf(\"?\") !== -1) {\n let splitURL = document.URL.split(\"?\");\n let splitParams = splitURL[1].split(\"&\");\n splitParams.forEach(param => {\n let singleURLParam = param.split('=');\n let urlParameter = {\n 'name': singleURLParam[0],\n 'value': singleURLParam[1]\n };\n if (singleURLParam[0] === 'do') {\n page = this.do[singleURLParam[1]];\n }\n category.push(urlParameter);\n navParams[singleURLParam[0]] = singleURLParam[1];\n });\n }\n\n if (page) {\n this.nav.setRoot(page, navParams);\n } else {\n if (this.cache.getLocal('isAuthenticated')) {\n this.nav.setRoot(TabsPage, navParams);\n } else {\n this.nav.setRoot(LoginPage, navParams);\n }\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class GameService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * Get games\n * @param {object} options\n */\n getGames(options = {}) {\n return this.request.get('api/games', options);\n }\n\n /**\n * Get character\n * @param {string} gameId\n * @param {object} options\n */\n getCharacters(gameId, options = {}) {\n options = _.merge({\n search: {\n game_id: gameId\n }\n }, options);\n return this.request.get('api/characters', options);\n }\n\n /**\n * Post character\n * @param {object} data\n */\n postCharacter(data) {\n return this.request.post('api/characters', data, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * Get ranking\n * @param {string} gameId\n * @param {string} characterId\n */\n getRanking(gameId, characterId) {\n return Observable.forkJoin([\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly'\n }\n }),\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly',\n character_id: characterId\n }\n })\n ])\n .map((data: any[]) => {\n let characters = data[0] || [];\n let myCharacter = data[1].Characters || [];\n characters.MyCharacters = myCharacter\n return characters;\n });\n }\n\n /**\n * Get items\n * @param {object} options\n */\n getItems(options?) {\n options = _.merge({\n character_id: null,\n filter: 'all'\n }, options);\n return this.request.get('api/items.json', {search: options});\n }\n\n /**\n * Update items\n * @param {object} options\n */\n postItems(options: any = {\n \"Character\": {\n \"id\": null\n },\n \"Item\": {\n \"id\": null\n }\n }) {\n return this.request.post('api/items.json', options, {'Content-Type': 'application/json'});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/game.service.ts","var map = {\n\t\"./af\": 273,\n\t\"./af.js\": 273,\n\t\"./ar\": 274,\n\t\"./ar-dz\": 275,\n\t\"./ar-dz.js\": 275,\n\t\"./ar-kw\": 276,\n\t\"./ar-kw.js\": 276,\n\t\"./ar-ly\": 277,\n\t\"./ar-ly.js\": 277,\n\t\"./ar-ma\": 278,\n\t\"./ar-ma.js\": 278,\n\t\"./ar-sa\": 279,\n\t\"./ar-sa.js\": 279,\n\t\"./ar-tn\": 280,\n\t\"./ar-tn.js\": 280,\n\t\"./ar.js\": 274,\n\t\"./az\": 281,\n\t\"./az.js\": 281,\n\t\"./be\": 282,\n\t\"./be.js\": 282,\n\t\"./bg\": 283,\n\t\"./bg.js\": 283,\n\t\"./bn\": 284,\n\t\"./bn.js\": 284,\n\t\"./bo\": 285,\n\t\"./bo.js\": 285,\n\t\"./br\": 286,\n\t\"./br.js\": 286,\n\t\"./bs\": 287,\n\t\"./bs.js\": 287,\n\t\"./ca\": 288,\n\t\"./ca.js\": 288,\n\t\"./cs\": 289,\n\t\"./cs.js\": 289,\n\t\"./cv\": 290,\n\t\"./cv.js\": 290,\n\t\"./cy\": 291,\n\t\"./cy.js\": 291,\n\t\"./da\": 292,\n\t\"./da.js\": 292,\n\t\"./de\": 293,\n\t\"./de-at\": 294,\n\t\"./de-at.js\": 294,\n\t\"./de-ch\": 295,\n\t\"./de-ch.js\": 295,\n\t\"./de.js\": 293,\n\t\"./dv\": 296,\n\t\"./dv.js\": 296,\n\t\"./el\": 297,\n\t\"./el.js\": 297,\n\t\"./en-au\": 298,\n\t\"./en-au.js\": 298,\n\t\"./en-ca\": 299,\n\t\"./en-ca.js\": 299,\n\t\"./en-gb\": 300,\n\t\"./en-gb.js\": 300,\n\t\"./en-ie\": 301,\n\t\"./en-ie.js\": 301,\n\t\"./en-nz\": 302,\n\t\"./en-nz.js\": 302,\n\t\"./eo\": 303,\n\t\"./eo.js\": 303,\n\t\"./es\": 304,\n\t\"./es-do\": 305,\n\t\"./es-do.js\": 305,\n\t\"./es.js\": 304,\n\t\"./et\": 306,\n\t\"./et.js\": 306,\n\t\"./eu\": 307,\n\t\"./eu.js\": 307,\n\t\"./fa\": 308,\n\t\"./fa.js\": 308,\n\t\"./fi\": 309,\n\t\"./fi.js\": 309,\n\t\"./fo\": 310,\n\t\"./fo.js\": 310,\n\t\"./fr\": 311,\n\t\"./fr-ca\": 312,\n\t\"./fr-ca.js\": 312,\n\t\"./fr-ch\": 313,\n\t\"./fr-ch.js\": 313,\n\t\"./fr.js\": 311,\n\t\"./fy\": 314,\n\t\"./fy.js\": 314,\n\t\"./gd\": 315,\n\t\"./gd.js\": 315,\n\t\"./gl\": 316,\n\t\"./gl.js\": 316,\n\t\"./gom-latn\": 317,\n\t\"./gom-latn.js\": 317,\n\t\"./he\": 318,\n\t\"./he.js\": 318,\n\t\"./hi\": 319,\n\t\"./hi.js\": 319,\n\t\"./hr\": 320,\n\t\"./hr.js\": 320,\n\t\"./hu\": 321,\n\t\"./hu.js\": 321,\n\t\"./hy-am\": 322,\n\t\"./hy-am.js\": 322,\n\t\"./id\": 323,\n\t\"./id.js\": 323,\n\t\"./is\": 324,\n\t\"./is.js\": 324,\n\t\"./it\": 325,\n\t\"./it.js\": 325,\n\t\"./ja\": 326,\n\t\"./ja.js\": 326,\n\t\"./jv\": 327,\n\t\"./jv.js\": 327,\n\t\"./ka\": 328,\n\t\"./ka.js\": 328,\n\t\"./kk\": 329,\n\t\"./kk.js\": 329,\n\t\"./km\": 330,\n\t\"./km.js\": 330,\n\t\"./kn\": 331,\n\t\"./kn.js\": 331,\n\t\"./ko\": 332,\n\t\"./ko.js\": 332,\n\t\"./ky\": 333,\n\t\"./ky.js\": 333,\n\t\"./lb\": 334,\n\t\"./lb.js\": 334,\n\t\"./lo\": 335,\n\t\"./lo.js\": 335,\n\t\"./lt\": 336,\n\t\"./lt.js\": 336,\n\t\"./lv\": 337,\n\t\"./lv.js\": 337,\n\t\"./me\": 338,\n\t\"./me.js\": 338,\n\t\"./mi\": 339,\n\t\"./mi.js\": 339,\n\t\"./mk\": 340,\n\t\"./mk.js\": 340,\n\t\"./ml\": 341,\n\t\"./ml.js\": 341,\n\t\"./mr\": 342,\n\t\"./mr.js\": 342,\n\t\"./ms\": 343,\n\t\"./ms-my\": 344,\n\t\"./ms-my.js\": 344,\n\t\"./ms.js\": 343,\n\t\"./my\": 345,\n\t\"./my.js\": 345,\n\t\"./nb\": 346,\n\t\"./nb.js\": 346,\n\t\"./ne\": 347,\n\t\"./ne.js\": 347,\n\t\"./nl\": 348,\n\t\"./nl-be\": 349,\n\t\"./nl-be.js\": 349,\n\t\"./nl.js\": 348,\n\t\"./nn\": 350,\n\t\"./nn.js\": 350,\n\t\"./pa-in\": 351,\n\t\"./pa-in.js\": 351,\n\t\"./pl\": 352,\n\t\"./pl.js\": 352,\n\t\"./pt\": 353,\n\t\"./pt-br\": 354,\n\t\"./pt-br.js\": 354,\n\t\"./pt.js\": 353,\n\t\"./ro\": 355,\n\t\"./ro.js\": 355,\n\t\"./ru\": 356,\n\t\"./ru.js\": 356,\n\t\"./sd\": 357,\n\t\"./sd.js\": 357,\n\t\"./se\": 358,\n\t\"./se.js\": 358,\n\t\"./si\": 359,\n\t\"./si.js\": 359,\n\t\"./sk\": 360,\n\t\"./sk.js\": 360,\n\t\"./sl\": 361,\n\t\"./sl.js\": 361,\n\t\"./sq\": 362,\n\t\"./sq.js\": 362,\n\t\"./sr\": 363,\n\t\"./sr-cyrl\": 364,\n\t\"./sr-cyrl.js\": 364,\n\t\"./sr.js\": 363,\n\t\"./ss\": 365,\n\t\"./ss.js\": 365,\n\t\"./sv\": 366,\n\t\"./sv.js\": 366,\n\t\"./sw\": 367,\n\t\"./sw.js\": 367,\n\t\"./ta\": 368,\n\t\"./ta.js\": 368,\n\t\"./te\": 369,\n\t\"./te.js\": 369,\n\t\"./tet\": 370,\n\t\"./tet.js\": 370,\n\t\"./th\": 371,\n\t\"./th.js\": 371,\n\t\"./tl-ph\": 372,\n\t\"./tl-ph.js\": 372,\n\t\"./tlh\": 373,\n\t\"./tlh.js\": 373,\n\t\"./tr\": 374,\n\t\"./tr.js\": 374,\n\t\"./tzl\": 375,\n\t\"./tzl.js\": 375,\n\t\"./tzm\": 376,\n\t\"./tzm-latn\": 377,\n\t\"./tzm-latn.js\": 377,\n\t\"./tzm.js\": 376,\n\t\"./uk\": 378,\n\t\"./uk.js\": 378,\n\t\"./ur\": 379,\n\t\"./ur.js\": 379,\n\t\"./uz\": 380,\n\t\"./uz-latn\": 381,\n\t\"./uz-latn.js\": 381,\n\t\"./uz.js\": 380,\n\t\"./vi\": 382,\n\t\"./vi.js\": 382,\n\t\"./x-pseudo\": 383,\n\t\"./x-pseudo.js\": 383,\n\t\"./yo\": 384,\n\t\"./yo.js\": 384,\n\t\"./zh-cn\": 385,\n\t\"./zh-cn.js\": 385,\n\t\"./zh-hk\": 386,\n\t\"./zh-hk.js\": 386,\n\t\"./zh-tw\": 387,\n\t\"./zh-tw.js\": 387\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 503;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = 503\n// module chunks = 0","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { AlertController } from 'ionic-angular';\n\n@Injectable()\nexport class NotificationService {\n\n private modalActivateSource = new Subject();\n\n modalActivated$ = this.modalActivateSource.asObservable();\n\n constructor(public alertCtrl: AlertController) {}\n\n /**\n * Show alert on page\n * Refer: https://ionicframework.com/docs/api/components/alert/AlertController/\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * subTitle: {String},\n * button: {Array}, // ['OK', 'CANCEL']\n * }\n */\n present(context: any) {\n this.modalActivateSource.next(context);\n }\n\n /**\n * pop up alert box with button\n * @param {Object} content to customise alert box\n */\n public alert(context: any = {\n title: 'Title',\n subTitle: 'Subtitle',\n buttons: ['OK']\n }) {\n let alert = this.alertCtrl.create(context);\n alert.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.service.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport { CacheService } from '../shared/cache/cache.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class MilestoneService {\n appkey = this.request.getAppkey();\n milestones: any = {};\n prefixUrl: any = this.request.getPrefixUrl();\n\n constructor(\n public cacheService: CacheService,\n public http: Http,\n public request: RequestService\n ) {}\n\n getList(options?) {\n let params: URLSearchParams = new URLSearchParams();\n\n if (options && options.search) {\n // @TODO: Move to helper function\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n }\n let timelineId = this.cacheService.getLocal('timeline_id');\n if (timelineId) {\n params.set('timelineId', timelineId);\n }\n\n return this.request.get('api/milestones.json', {search: params});\n }\n\n getMilestones(){\n let headers = new Headers();\n headers.append('appkey', this.appkey);\n headers.append('apikey', this.cacheService.getLocalObject('apikey'));\n headers.append('timelineID', this.cacheService.getLocalObject('timelineID'));\n console.log('TimelineID: '+ this.cacheService.getLocalObject('timelineID'));\n return this.http.get(this.prefixUrl+'api/milestones.json', { headers: headers })\n .map(res => res.json());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/milestone.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n// Others\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\nclass ActivityBase {\n id: number;\n name: string;\n description: string;\n milestone_id?: number;\n deadline?: string;\n end?: string;\n lead_image?: string;\n is_locked?: boolean;\n order?: number;\n instructions?: string;\n video_url?: string;\n}\n\nclass ReferenceAssessmentBase {\n id: number;\n name: string;\n}\n\nclass ReferenceBase {\n context_id: number;\n Assessment: ReferenceAssessmentBase\n}\n\n@Injectable()\nexport class ActivityService {\n cachedActivites = {};\n milestoneID = this.cacheService.getLocalObject('milestone_id');\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService,\n ) {}\n\n getList(options?) {\n let mid = this.cacheService.getLocal('milestone_id');\n\n options = options || {\n search: {\n milestone_id: this.cacheService.getLocal('milestone_id')\n }\n };\n\n if (!this.cachedActivites[mid]) {\n this.cachedActivites[mid] = this.request.get('api/activities.json', options);\n return this.request.get('api/activities.json', options);\n }\n\n return this.cachedActivites[mid];\n }\n\n getLevels(options?: any) {\n let params: URLSearchParams = new URLSearchParams();\n if (options.search) {\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n options.search = params;\n }\n return this.cacheService.read()\n .then((data: any) => {\n if (!options.search.timeline_id && data.user.timeline_id) {\n params.set('timeline_id', data.user.timeline_id);\n options.search = params;\n }\n if (!options.search.project_id && data.user.project_id) {\n params.set('project_id', data.user.project_id);\n options.search = params;\n }\n return this.getList(options).toPromise();\n });\n }\n\n /*\n // commented out - seems not using in any part of the code\n // it was built for currentActivities component in HomePage,\n // no longer using it now\n\n normalise(activity, index) {\n // session\n activity.enabledRSVP = true;\n // survey\n activity.due = false;\n activity.isRunning = false;\n activity.isBookable = false;\n activity.is_locked = activity.Activity.is_locked;\n activity.name = activity.Activity.name;\n activity.id = activity.Activity.id;\n activity.hasSession = false;\n activity.description = activity.Activity.description || 'No description available.';\n // pre-process response data\n activity.start = moment.utc(activity.Activity.start);\n activity.deadline = moment.utc(activity.Activity.deadline);\n activity.end = moment.utc(activity.Activity.end);\n // if sorting is not available, use index instead\n activity.order = activity.Activity.order || index;\n return activity;\n }*/\n\n\n /**\n * normalise activities\n */\n normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = this.normaliseActivity(act);\n });\n return result;\n }\n\n /**\n * normalise single activity object\n */\n normaliseActivity(activity) {\n let thisActivity = activity.Activity,\n normalisedActivity: ActivityBase,\n sequence = this.mergeReferenceToSequence(activity);\n\n if (!activity.Activity) {\n throw \"Incorrect activity API responce (missing Activity object)\";\n }\n\n normalisedActivity = {\n id: activity.Activity.id,\n name: activity.Activity.name,\n description: activity.Activity.description,\n milestone_id: activity.Activity.milestone_id,\n deadline: activity.Activity.deadline,\n end: activity.Activity.end,\n lead_image: activity.Activity.lead_image,\n is_locked: activity.Activity.is_locked,\n order: activity.Activity.order,\n instructions: activity.Activity.instructions,\n video_url: activity.Activity.video_url\n };\n\n activity = _.merge(thisActivity, {\n // front end should use the one with smallcase instead\n activity: normalisedActivity,\n sequence: sequence,\n assessment: this.extractAssessment(sequence),\n\n // raw data (don't touch/edit)\n Activity: activity.Activity,\n ActivitySequence: activity.ActivitySequence,\n References: activity.References\n });\n\n // Normalise activity reference (References object is optional, updated on 6 October 2017)\n if (activity.References) {\n activity.References.forEach((reference, idx) => {\n let referenceAssessment: ReferenceAssessmentBase = {\n id: reference.Assessment.id,\n name: reference.Assessment.name,\n }\n let normalisedReference: ReferenceBase = {\n context_id: reference.context_id,\n Assessment: referenceAssessment\n };\n activity.References[idx] = normalisedReference;\n });\n }\n\n return activity;\n }\n\n /**\n * Turn references array objects to an easier accessible object\n * @param {Array} references array of reference\n * @returns normalised references object\n * @example\n */\n /*\n turns:\n [\n {\n \"context_id\": 25,\n \"Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\"\n }\n },\n {\n \"context_id\": 26,\n \"Assessment\": {\n \"id\": 20,\n \"name\": \"Check-In Workshop 2\"\n }\n },\n ...\n ]\n\n into:\n {\n 19: 25,\n 20: 26\n }\n */\n rebuildReferences(references) {\n let result = {};\n (references || []).forEach(ref => {\n result[ref.Assessment.id] = ref.context_id;\n });\n return result;\n }\n\n /**\n * @name mergeReferenceToSequence\n * @description extract and attach related context_id into assessments\n * @type {Object} activity single activity object\n * @example conversion formats below\n */\n /*\n turns:\n [\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n }\n ]\n\n into:\n {\n \"19\": {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n }\n */\n mergeReferenceToSequence(activity): Object {\n // @NOTE: first \"[0]\" sequence is the assessment of an activity\n let sequence = (activity.ActivitySequence) ? activity.ActivitySequence[0] : {};\n\n // `References` object is optional (modified on 6 October 2017)\n if (activity.References) {\n let refs = this.rebuildReferences(activity.References);\n if (!_.isEmpty(sequence)) {\n // @NOTE: API only support first ActivitySequence atm\n // activity.ActivitySequence.forEach(seq => {\n let modelId = sequence.model_id;\n sequence.context_id = refs[modelId];\n // });\n }\n }\n return sequence;\n }\n\n /*\n turns:\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n\n into:\n {\n \"id\": 19,\n \"context_id\": 25,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n */\n extractAssessment(sequence) {\n let assessment: any = {};\n if (sequence['Assess.Assessment']) {\n assessment = sequence['Assess.Assessment'];\n assessment.context_id = sequence.context_id;\n }\n return assessment;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/activity.service.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SubmissionService {\n targetUrl = 'api/submissions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n // list()\n getSubmissions(options?: any) {\n return this.request.get(this.targetUrl, options);\n }\n\n extractPhotos(data) {\n let photos = [];\n\n _.forEach(data, function(val, key) {\n _.forEach(val.AssessmentSubmissionAnswer, (answer, key) => {\n if (answer.answer && answer.answer.url !== undefined && answer.answer.mimetype !== undefined) {\n if (_.isString(answer.answer.mimetype) && answer.answer.mimetype.indexOf('image') !== -1) {\n // @TODO: I think we need standardise this format...\n photos.push({\n activity_id: val.AssessmentSubmission.activity_id,\n assessment_id: val.AssessmentSubmission.assessment_id,\n photo: answer.answer.url,\n submitted: val.AssessmentSubmission.submitted\n });\n }\n }\n });\n });\n\n return photos;\n }\n/*\n Turns:\n {\n \"AssessmentSubmission\": {\n \"id\": 4,\n \"submitter_id\": 19,\n \"created\": \"2017-07-18 03:28:09\",\n \"modified\": \"2017-07-18 03:28:09\",\n \"status\": \"done\",\n \"assessment_id\": 28,\n \"order\": null,\n \"submitted\": \"2017-07-18 03:28:12\",\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 23,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 26\n },\n \"Assessment\": {\n \"id\": 28,\n \"name\": \"Job Smart Initial Survey\",\n \"description\": \"This survey is a self-assessment of your employability skills. Be honest with yourself and leave room to improve. In the end of the program, you will be asked the same questions at the end of the program. Please take 5 minutes to reflect on your current state.
\",\n \"assessment_type\": \"survey\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:59:47\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentSubmissionAnswer\": [\n {\n \"id\": 10,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 92,\n \"answer\": 235,\n \"score\": \"0\"\n },\n {\n \"id\": 11,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 93,\n \"answer\": 240,\n \"score\": \"0\"\n },\n {\n \"id\": 12,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 94,\n \"answer\": 245,\n \"score\": \"0\"\n },\n {\n \"id\": 13,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 95,\n \"answer\": 250,\n \"score\": \"0\"\n },\n {\n \"id\": 14,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 96,\n \"answer\": 255,\n \"score\": \"0\"\n },\n {\n \"id\": 15,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 97,\n \"answer\": 260,\n \"score\": \"0\"\n },\n {\n \"id\": 16,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 98,\n \"answer\": 265,\n \"score\": \"0\"\n },\n {\n \"id\": 17,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 99,\n \"answer\": 270,\n \"score\": \"0\"\n }\n ],\n \"AssessmentReviewAnswer\": []\n }\n\n into:\n {\n\n }\n */\n normalise(respond) {\n let submission = respond['AssessmentSubmission'];\n let assessment = respond['Assessment'];\n let answer = respond['AssessmentSubmissionAnswer'];\n let review = respond['AssessmentReviewAnswer'];\n\n // preprocess date\n submission.created = moment.utc(submission.created);\n submission.modified = moment.utc(submission.modified);\n\n // submitted\n if (submission.submitted) {\n submission.submitted = moment.utc(submission.submitted);\n }\n\n return _.merge(submission, {\n assessment,\n answer,\n review\n });\n }\n\n /**\n * get assessment answer (submission)\n * @param {array} respond API respond from get_submissions\n */\n getAnswer(respond, activityId?: number) {\n let answer = this.normalise(respond).answer;\n return answer;\n }\n\n /**\n * get review (feedback from moderator)\n */\n getReview(review) {\n return review;\n }\n\n /**\n * extract reference IDs and prepare Observables to retrieve submissions\n * @param {array} references References array responded with get_activities() api\n */\n getSubmissionsByReferences(references) {\n let tasks = []; // multiple API requests\n\n // get_submissions API to retrieve submitted answer\n let getSubmissions = (contextId) => {\n return this.getSubmissions({\n search: {\n context_id: contextId\n }\n });\n };\n // Congregation of get_submissions API Observable with different context_id\n _.forEach(references, reference => {\n if (reference.context_id) {\n return tasks.push(getSubmissions(reference.context_id));\n }\n });\n\n return tasks;\n }\n // get user submissions data\n // @TODO Remove it later\n getSubmissionsData() {\n return this.getSubmissions();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/submission.service.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\n\nimport * as _ from 'lodash';\n\nclass Assessment {\n id: number;\n context_id: number;\n in_progress?: Boolean;\n}\n\nclass Answer {\n assessment_question_id: number;\n answer: String | Object | Array;\n choices?: Array;\n}\n\nexport class ChoiceBase {\n id: number;\n value?: number; // or choice id, usually same as \"id\" above\n name: string;\n description?: string;\n explanation?: string;\n order?: number;\n weight?: number;\n}\n\nexport class QuestionBase {\n id: number;\n question_id: number;\n group_id: number;\n assessment_id: number;\n name: string;\n type: string;\n file_type?: string;\n audience: Array;\n choices?: ChoiceBase[];\n answer?: any;\n required?: boolean;\n order?: string | number;\n\n constructor(id, assessment_id, name, type) {\n this.id = id;\n this.assessment_id = assessment_id;\n this.name = name;\n this.type = type;\n }\n}\n\nexport class Submission {\n Assessment: Assessment;\n AssessmentSubmission?: any;\n AssessmentSubmissionAnswer: Object;\n}\n\n@Injectable()\nexport class AssessmentService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * @description check feedback can show\n * @type {boolen}\n */\n isPublished(submissions: any):boolean {\n let published = false;\n _.forEach(submissions, (submission) => {\n _.forEach(submission, (subm) => {\n if (\n subm.AssessmentSubmission &&\n subm.AssessmentSubmission.status === 'published'\n ) {\n published = true;\n }\n });\n });\n return published;\n }\n\n // listAll()\n getAll(options?: any) {\n return this.request.get('api/assessments.json', options);\n }\n\n /**\n * get question's details\n * example:\n * - for multiple-type question, checkbox data is not available in\n * ActivitySequences (from get_activities API) and get_assessments API\n * - checkbox values (selected checkbox ids are required for post_assessments API) which\n * they are only available in this get_export_assessments api\n *\n * @param {any} options [description]\n */\n getQuestion(options?: any) {\n return this.request.get('api/export_assessments.json', options);\n }\n\n post(assessmentAnswer: Submission) {\n return this.request.post('api/assessment_submissions.json', assessmentAnswer, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * save progress using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n save(assessmentAnswer) {\n assessmentAnswer.Assessment.in_progress = true; // force in_progress\n\n return this.post(assessmentAnswer);\n }\n\n /**\n * submit using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n submit(assessmentAnswer) {\n return this.post(assessmentAnswer);\n }\n\n /*\n Turn API format from:\n {\n \"Assessment\": {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n },\n \"AssessmentGroup\": [\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n }\n },\n ...\n ]\n }\n ]\n }\n\n Into:\n {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n \"groups\": {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"questions\": [\n {\n \"id\": 100,\n \"assessment_question_id\": 100,\n \"assessment_group_id\": 28,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n \"order\": null,\n },\n ...\n ]\n }\n }\n */\n normalise(assessment) {\n let result = assessment.Assessment;\n let thisGroups = assessment.AssessmentGroup;\n\n thisGroups = thisGroups.map(group => {\n return this.normaliseGroup(group);\n });\n\n return {\n id: result.id,\n name: result.name,\n description: result.description,\n assessment_type: result.assessment_type,\n is_team: result.is_team,\n is_repeatable: result.is_repeatable,\n AssessmentGroup: thisGroups\n };\n }\n\n /*\n turn \"AssessmentGroup\" object format from:\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n },\n ...\n ]\n }\n\n into format:\n {\n id: group.id,\n name: group.name,\n description: group.description,\n assessment_id: group.assessment_id,\n order: group.order\n questions: [\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n },\n ...\n ],\n }\n */\n normaliseGroup(group) {\n // let result = group;\n let thisQuestions = group.AssessmentGroupQuestion;\n thisQuestions = thisQuestions.map(question => {\n return this.normaliseQuestion(question);\n });\n\n return {\n id: group.id,\n assessment_id: group.assessment_id,\n name: group.name,\n description: group.description,\n questions: thisQuestions,\n order: group.order,\n }\n }\n\n /*\n turn \"AssessmentGroupQuestion\" array format from:\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n }\n\n into:\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n }\n */\n normaliseQuestion(question): QuestionBase {\n let thisQuestion = question.AssessmentQuestion;\n let choices = thisQuestion.AssessmentQuestionChoice;\n\n choices = choices.map(choice => {\n return this.normaliseChoice(choice);\n });\n\n return {\n id: question.id,\n assessment_id: question.assessment_question_id,\n question_id: question.assessment_question_id,\n group_id: question.assessment_group_id,\n name: thisQuestion.name,\n type: thisQuestion.question_type,\n audience: thisQuestion.audience,\n file_type: thisQuestion.file_type,\n required: thisQuestion.is_required,\n choices: choices,\n order: question.order,\n answer: thisQuestion.answer\n };\n }\n\n /*\n turn \"AssessmentQuestionChoice\" array format from:\n {\n \"id\": 275,\n \"assessment_question_id\": 104,\n \"assessment_choice_id\": 275,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 275,\n \"name\": \"New Choice 1\",\n \"description\": \"bad\"\n }\n }\n\n into:\n {\n \"id\": 275,\n \"value\": 275, // or choice id, usually same as \"id\" above\n \"name\": \"New Choice 1\",\n \"description\": \"bad\",\n \"explanation\": null,\n \"order\": 1,\n \"weight\": \"1\",\n }\n */\n normaliseChoice(choice): ChoiceBase {\n return {\n id: choice.id, // same as assessment_choice_id & AssessmentChoice.id & id\n value: choice.assessment_choice_id, // or choice.id (similar id used as \"assessment_choice_id\")\n name: choice.AssessmentChoice.name,\n description: choice.AssessmentChoice.description,\n explanation: choice.explanation,\n order: choice.order,\n weight: choice.weight\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/assessment.service.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { Http } from '@angular/http';\nimport { NavController, ToastController, LoadingController, ModalController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { AchievementService } from '../../../services/achievement.service';\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { CharacterService } from '../../../services/character.service';\nimport { GameService } from '../../../services/game.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { ActivitiesViewPage } from '../view/activities-view.page';\nimport { ActivityListPopupPage } from './popup';\nimport { ItemsPopupPage } from '../../assessments/popup/items-popup.page';\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// pipes\nimport { TruncatePipe } from '../../../pipes/truncate.pipe';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'activities-list-page',\n templateUrl: 'list.html'\n})\nexport class ActivitiesListPage implements OnInit {\n achievements: any = {\n maxPoint: {},\n obtained: {},\n available: []\n };\n activities: any = [];\n activitiesEmptyDataErr: any = errMessages.Activities.activities.empty;\n activitiesLoadingErr: any = errMessages.General.loading.load;\n anyNewItems: any = this.cacheService.getLocal('gotNewItems');\n characterCurrentExperience: number = 0;\n characterData: any = [];\n currentPercentage: any = '0';\n currentPoints: number = 0;\n filteredSubmissions: any = [];\n initialItems: any = [];\n maxPoints: number = 0;\n newItemsData: any = [];\n returnError: boolean = false;\n percentageValue: number = 0;\n submissionData: any = [];\n submissionPoints: number = 0;\n totalAchievements: any = [];\n\n constructor(\n public achievementService: AchievementService,\n public activityService: ActivityService,\n public cacheService: CacheService,\n public characterService: CharacterService,\n public gameService: GameService,\n public http: Http,\n public loadingCtrl: LoadingController,\n public modalCtrl: ModalController,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.anyNewItems = this.cacheService.getLocal('gotNewItems');\n this.newItemsData = this.cacheService.getLocalObject('allNewItems');\n }\n ngOnInit() {\n this.loadingDashboard();\n }\n // refresher activities\n doRefresh(e) {\n this.loadingDashboard();\n e.complete();\n }\n // display user achievemnt statistics score points\n loadingDashboard() {\n let loadingData = this.loadingCtrl.create({\n content: 'Loading ..'\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.activitiesLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let getActivities = this.activityService.getList();\n loadingData.present().then(() => {\n getActivities.subscribe(\n results => {\n this.activities = results;\n if(this.activities.length == 0){\n this.returnError = true;\n }\n let getCharacter = this.characterService.getCharacter();\n let getSubmission = this.submissionService.getSubmissionsData();\n Observable.forkJoin([getSubmission, getCharacter])\n .subscribe(results => {\n loadingData.dismiss().then(() => {\n this.submissionData = results[0];\n _.forEach(this.submissionData, element => {\n if(element.AssessmentSubmission.status == 'published' || element.AssessmentSubmission.status == 'done'){\n if(element.AssessmentSubmission.moderated_score !== null){\n this.filteredSubmissions.push(element.AssessmentSubmission);\n this.submissionPoints += parseFloat(element.AssessmentSubmission.moderated_score);\n }\n }\n });\n let average_score = (this.submissionPoints/this.filteredSubmissions.length)*100;\n (average_score > 0) ? this.percentageValue = average_score : this.percentageValue = 0;\n this.currentPercentage = this.percentageValue.toFixed(2);\n // console.log('Percent: ', this.currentPercentage); // display as string format\n this.characterData = results[1].Characters[0];\n this.cacheService.setLocal('character_id', this.characterData.id);\n console.log('character id: ', this.characterData.id);\n this.characterCurrentExperience = this.characterData.experience_points;\n // console.log('Experience: ', this.characterCurrentExperience);\n this.gameService.getItems({\n character_id: this.characterData.id\n })\n .subscribe(\n data => {\n this.initialItems = data.Items;\n this.cacheService.setLocalObject('initialItems', this.initialItems);\n console.log('Items Data: ', this.initialItems);\n },\n err => {\n console.log('Items Data error: ', err);\n }\n );\n });\n },\n err => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n },\n error => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n });\n }\n // redirect to activity detail page\n goToDetail(activity: any, id: any){\n this.navCtrl.push(ActivitiesViewPage, {\n achievements: this.achievements,\n activity: activity\n });\n }\n // view the disabled activity popup\n goToPopup(unlock_id: any){\n let disabledActivityPopup = this.modalCtrl.create(ActivityListPopupPage, {unlock_id: unlock_id});\n console.log('Achievement ID: ', unlock_id);\n disabledActivityPopup.present();\n }\n // close modal and display as main page\n closeItemsShwon(){\n this.anyNewItems = !this.cacheService.getLocal('gotNewItems');\n this.cacheService.setLocalObject('allNewItems', []);\n this.cacheService.setLocal('gotNewItems', !this.cacheService.getLocal('gotNewItems'));\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/list.page.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class AchievementService {\n target_model = 'program';\n target_id = this.cacheService.getLocalObject('program_id');\n getMaximumPointsUrl = `api/maximum_points.json?target_model=${this.target_model}&target_id=${this.target_id}`;\n totalAchievementUrl = 'api/achievements.json';\n userAchievementUrl = 'api/user_achievements.json';\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n // List Maximum Point Of Total Achievements\n getMaxPoints(){\n return this.request.get(this.getMaximumPointsUrl);\n }\n\n // List User Achievements\n getAchievements(params = {}) {\n return this.request.get(this.userAchievementUrl);\n }\n\n // List All Achievements\n getAll() {\n return this.request.get(this.totalAchievementUrl);\n }\n\n /*\n turn:\n {\n \"Achievement\": {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 4,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n }\n\n into:\n {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 1,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n */\n normalise(achievement) {\n return achievement.Achievement;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/achievement.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class EventService {\n bookEventUrl = 'api/book_events.json';\n targetUrl = 'api/events.json';\n\n constructor(\n public cache: CacheService,\n public request: RequestService\n ) {}\n\n getEvents(options: Object = {}) {\n options = _.merge({\n search: {\n type: 'session'\n }\n }, options);\n\n return this.request.get(this.targetUrl, options)\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(events) {\n _.forEach(events, (event, idx) => {\n events[idx].isAttended = (event.isBooked === true && moment().isAfter(moment(event.end)));\n // We assume server datetime response is UTC...\n events[idx].startDisplay = moment.utc(event.start).local().format(\"dddd, MMM D [at] h:mm A\");\n });\n\n return events;\n }\n\n /**\n * download attachment by single event object\n * @param {[type]} event [description]\n */\n\n downloadAttachment(event) {\n let url = event.fileUrl;\n // var blob = new Blob([data], { type: 'text/csv' });\n // var url= window.URL.createObjectURL(blob);\n window.open(url);\n }\n\n /**\n * get event using observable\n * @param {integer} eventId single event id\n */\n bookEvent(eventId) {\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('event_id', eventId);\n return this.request.post(this.bookEventUrl, urlSearchParams);\n }\n\n cancelEventBooking(eventId){\n return this.request.delete(this.bookEventUrl + '?event_id=' + eventId);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/event.service.ts","import { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FilepickerConfig, FilepickerService } from './filepicker.service';\nimport { FilePreviewDirective } from './file-preview.directive';\n\n@NgModule({\n imports: [ CommonModule ],\n providers: [\n FilepickerService\n ],\n declarations: [\n FilePreviewDirective\n ],\n exports: [\n FilePreviewDirective,\n CommonModule,\n ]\n})\n\nexport class FilepickerModule {\n constructor(@Optional() @SkipSelf() parentModule: FilepickerModule) {\n if (parentModule) {\n throw new Error('FilepickerModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: FilepickerConfig): ModuleWithProviders {\n return {\n ngModule: FilepickerModule,\n providers: [\n {provide: FilepickerConfig, useValue: config}\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.module.ts","import { Directive, ElementRef, Renderer, Input, OnChanges } from '@angular/core';\nimport { WindowRef } from '../window';\n\n@Directive({\n selector: '[file-preview]'\n})\nexport class FilePreviewDirective implements OnChanges {\n @Input('file-preview') url: string;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer,\n private win: WindowRef\n ) {\n el.nativeElement.style.width = '100%';\n el.nativeElement.style.height = win.nativeWindow.screen.height+'px' || '500px';\n }\n\n ngOnChanges () {\n let el = this.el.nativeElement;\n let url = this.url || el.getAttribute('file-preview');\n\n if (url && url.length > 0) {\n url = url.replace('api/file/', 'api/preview/');\n let iframe = this.renderer.createElement(el, 'iframe');\n\n /* Set full size so it gets size from parrent element */\n iframe.width = '100%';\n iframe.height = '100%';\n\n iframe.src = url;\n } else {\n el.innerHtml = '

Invalid attachment URL found.

';\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/file-preview.directive.ts","import { NgModule } from '@angular/core';\nimport { UtilsService } from './utils.service';\n\n@NgModule({\n providers: [UtilsService]\n})\n\nexport class UtilsModule {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/utils/utils.module.ts","/**\n * Instructions:\n * To use this test module, insert \"my-test\" attribute to your HTML tag.\n * It'll generate a full Ionic Page,\n * so it's recommended to include it only if you need it as single full page/component.\n */\n\nimport { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule} from '@angular/common';\nimport { TestPage } from './pages/test/test.page';\nimport { TestStartPage } from './pages/test/test-start.page';\nimport { TestDirective } from './test.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IonicModule\n ],\n declarations: [\n TestPage,\n TestStartPage,\n TestDirective,\n ],\n exports: [\n TestPage,\n TestStartPage,\n TestDirective,\n CommonModule,\n IonicModule\n ]\n})\n\nexport class TestModule {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.module.ts","import { Component, ViewChild } from '@angular/core';\n// import { TestStartPage } from './test-start.page';\n\n@Component({\n selector: 'full-test',\n template: `\n \n Test page\n \n \n\n \n \n `\n})\nexport class TestPage {\n @ViewChild('something') nav;\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n something() {\n console.log(this.nav);\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test.page.ts","import { Component, ViewChild, ViewChildren } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// pages\nimport { AchievementsViewPage } from '../../../../pages/achievements/view/achievements-view.page';\nimport { AssessmentsGroupPage } from '../../../../pages/assessments/group/assessments-group.page';\nimport { ActivitiesClassicListPage } from '../../../../pages/activities-classic/list/activities-classic-list.page';\nimport { EventsListPage } from '../../../../pages/events/list/list.page';\nimport { EventsDownloadPage } from '../../../../pages/events/download/events-download.page';\nimport { GalleryPage } from '../../../../pages/gallery/gallery';\nimport { LevelsListPage } from '../../../../pages/levels/list/list';\nimport { LoginPage } from '../../../../pages/login/login';\nimport { RegistrationPage } from '../../../../pages/registration/registration.page';\nimport { SettingsPage } from '../../../../pages/settings/settings.page';\nimport { EventCheckinPage } from '../../../../pages/events/checkin/event-checkin.page';\nimport { TeamPage } from '../../../../pages/team/team';\nimport { CelebrationPage } from '../../../../pages/spinwheel/celebration.page';\n\nconst PAGES = [\n {\n name: 'celebration',\n page: CelebrationPage\n },\n {\n name: 'Check-in',\n page: EventCheckinPage,\n params: {\n event: {\n \"id\": 132,\n \"activity_id\": 35,\n \"start\": \"2017-04-01 08:15:00\",\n \"end\": \"2018-03-16 09:15:00\",\n \"location\": \"location\",\n \"title\": \"Year long\",\n \"description\": \"Test\",\n \"capacity\": 40,\n \"remaining_capacity_percentage\": 95,\n \"remaining_capacity\": 38,\n \"isBooked\": true,\n \"files\": [],\n \"References\": [\n {\n \"context_id\": 44,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n }\n }\n ],\n \"isAttended\": false,\n \"startDisplay\": \"Saturday, Apr 1 at 4:15 PM\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"Activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n }\n },\n \"ActivitySequence\": [\n {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n }\n ],\n \"References\": [\n {\n \"context_id\": 43,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\"\n }\n }\n ]\n },\n \"coverUrl\": \"/assets/img/static/event-cover-3.jpg\",\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n },\n \"context_id\": 44\n },\n submissions: [\n {\n \"id\": 20,\n \"submitter_id\": 20,\n \"created\": \"2017-07-28 03:05:36\",\n \"modified\": \"2017-07-28 03:05:38\",\n \"status\": \"in progress\",\n \"assessment_id\": 37,\n \"order\": null,\n \"submitted\": null,\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 132,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 44,\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"answer\": [\n {\n \"id\": 75,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 129,\n \"answer\": 284,\n \"score\": \"0\"\n },\n {\n \"id\": 76,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 132,\n \"answer\": {\n \"filename\": \"stuckhere.png\",\n \"handle\": \"iALqct8jRSuKhVs3NB8C\",\n \"mimetype\": \"image/png\",\n \"originalPath\": \"stuckhere.png\",\n \"size\": 195280,\n \"source\": \"local_file_system\",\n \"url\": \"https://cdn.filestackcontent.com/iALqct8jRSuKhVs3NB8C\",\n \"status\": \"Stored\",\n \"icon\": \"fa-image\",\n \"key\": \"iALqct8jRSuKhVs3NB8C\"\n },\n \"score\": \"0\"\n }\n ],\n \"review\": []\n }\n ]\n }\n },\n {\n name: 'Multiple Choice Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n\n ]\n },\n assessment: {\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Multiple Option Question\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"quiz\",\n \"is_live\": false,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 5,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2016-06-23 06:07:39.681326\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentQuestion\": [\n {\n \"name\": \"1st Multitple Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 140,\n \"assessment_id\": 37\n },\n {\n \"name\": \"2nd Multi Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 141,\n \"assessment_id\": 37,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n ],\n \"AssessmentGroup\": [\n {\n \"id\": 42,\n \"assessment_id\": 37,\n \"name\": \"1st Group\",\n \"description\": \"\",\n \"order\": 1,\n \"review_instructions\": \"\",\n \"restart_numbering\": false,\n \"AssessmentGroupQuestion\": [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n ]\n }\n ],\n\n }\n }\n },\n {\n name: 'Assorted Assessments Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n AssessmentQuestion: {\n id: 4,\n question_type: 'file',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: 'image',\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 5,\n question_type: 'multiple',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'Multiple: 3 choices Questions',\n is_required: true\n }\n },\n\n {\n AssessmentQuestion: {\n\n id: 1,\n question_type: 'oneof',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'SITUATION: The context in which this experience took place',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 2,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 3,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'ACTION: What did I do given the situation and the task?',\n is_required: true\n }\n }\n ]\n },\n assessment: {\n Assessment: {\n id:'temporary_fake_id'\n },\n AssessmentGroupQuestion: []\n\n }\n }\n },\n {\n name: 'Events',\n page: EventsListPage\n },\n {\n name: 'Events Download',\n page: EventsDownloadPage\n },\n {\n name: 'Registration',\n page: RegistrationPage\n },\n {\n name: 'Gallery',\n page: GalleryPage\n },\n {\n name: 'Login',\n page: LoginPage\n },\n {\n name: 'Activities',\n page: ActivitiesClassicListPage\n },\n {\n name: 'Levels',\n page: LevelsListPage\n },\n {\n name: 'Teams',\n page: TeamPage\n },\n {\n name: 'Setting',\n page: SettingsPage\n },\n {\n name: 'Achievement View',\n page: AchievementsViewPage\n }\n];\n\n@Component({\n selector: 'my-test',\n templateUrl: 'test.html'\n})\nexport class TestStartPage {\n items: Array = PAGES;\n\n testPage;\n\n constructor(public nav: NavController) {\n // console.log('ActivitiesClassicListPage', ActivitiesClassicListPage)\n // console.log('??', ActivitiesClassicListPage);\n }\n\n goTo(nav) {\n this.testPage = nav.page;\n\n this.nav.push(nav.page, nav.params || null);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test-start.page.ts","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: './celebration.html'\n})\nexport class CelebrationPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/spinwheel/celebration.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'test-page',\n template: ``\n})\nexport class TestDirective {\n rootPage = null;\n @ViewChild('testPage') nav: NavController;\n\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n goBack() {\n console.log(this.nav);\n this.nav.pop();\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.directive.ts","import { NgModule } from '@angular/core';\nimport { TranslationService } from './translation.service';\n@NgModule({\n providers: [ TranslationService ]\n})\nexport class TranslationModule {}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.module.ts","import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable()\nexport class GroupEmitterService {\n static _emitter: { [ID: string]: EventEmitter };\n\n static get(ID: string): EventEmitter {\n if (!this._emitter[ID]) {\n this._emitter[ID] = new EventEmitter();\n }\n return this._emitter[ID];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/group-emitter.service.ts","import {\n ModuleWithProviders,\n NgModule,\n SkipSelf,\n Optional\n} from '@angular/core';\nimport { HttpModule } from '@angular/http';\nimport { CommonModule} from '@angular/common';\nimport '../rxjs-operators';\nimport { RequestServiceConfig, RequestService } from './request.service';\n\n@NgModule({\n imports: [HttpModule, CommonModule, /* spare a space for appcache module*/],\n providers: [\n RequestService,\n // { provide: RequestOptions, useClass: CustomRequestOption }\n ]\n})\n\nexport class RequestModule {\n constructor(@Optional() @SkipSelf() parentModule: RequestModule) {\n if (parentModule) {\n throw new Error(\n 'CoreModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: RequestServiceConfig): ModuleWithProviders {\n return {\n ngModule: RequestModule,\n providers: [\n {\n provide: RequestServiceConfig, useValue: config\n }\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/request/request.module.ts","// import 'rxjs/Rx'; // adds ALL RxJS statics & operators to Observable\n\n// See node_module/rxjs/Rxjs.js\n// Import just the rxjs statics and operators we need for THIS app.\n\n// Statics\nimport 'rxjs/add/observable/throw';\nimport 'rxjs/add/observable/of';\nimport 'rxjs/add/observable/forkJoin';\nimport 'rxjs/add/observable/from';\n\n// Operators\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/debounceTime';\nimport 'rxjs/add/operator/distinctUntilChanged';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/do';\nimport 'rxjs/add/operator/finally';\n// import 'rxjs/subject';\n// import 'rxjs/add/operator/switchMap';\nimport 'rxjs/add/operator/toPromise';\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/rxjs-operators.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SessionService {\n targetUrl = 'api/sessions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n getSessions() {\n return this.request.get(this.targetUrl)\n .map(response => response.json())\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(session) {\n session.start = moment.utc(session.start);\n session.end = moment.utc(session.end);\n session.isExpired = moment().isAfter(session.end);\n session.isFull = false;\n\n if (session.remaining_capacity === 0) {\n session.isFull = true;\n }\n return session;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/session.service.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\nimport { TruncatePipe } from '../../pipes/truncate.pipe';\n\n@Component({\n selector: 'questionGroup',\n templateUrl: 'question-group.html',\n})\nexport class QuestionGroupComponent {\n @Input() group: any = {};\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/question-group/question-group.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// Services\nimport { EventService } from '../../services/event.service';\n// Others\nimport * as moment from 'moment';\n\n@Component({\n selector: 'event',\n templateUrl: 'event.html'\n})\nexport class EventComponent {\n @Input() event: any;\n\n constructor(\n public eventService: EventService,\n public navCtrl: NavController\n ) {}\n\n // Check event has been booked\n isBookedEvent(event) {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }\n\n // Check event has been booked and attended\n isAttendedEvent(event) {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }\n\n download() {\n this.eventService.downloadAttachment(this.event);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/event/event.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'level',\n templateUrl: 'level.html'\n})\nexport class LevelComponent {\n @Input() level;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoLevel(levelId) {\n // this.navCtrl.push(levelDetail);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/level/level.ts","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'loading-marker',\n templateUrl: 'loadingMarker.html'\n})\nexport class LoadingMarkerComponent {\n @Input() loading: any;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loadingMarker/loadingMarker.ts","import { Component } from '@angular/core';\n\n@Component({\n selector: 'locker',\n templateUrl: 'locker.html'\n})\nexport class LockerComponent {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/locker/locker.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'member',\n templateUrl: 'member.html'\n})\nexport class MemberComponent {\n @Input() member;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public sendEmail(target) {\n alert('Send email to ' + target);\n // var emails = lodash.map($scope.members, 'email');\n // var link = 'mailto:' + lodash.join(emails, ',');\n // window.location.href = link;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/member/member.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'photo',\n templateUrl: 'photo.html'\n})\nexport class PhotoComponent {\n @Input() photo;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoPhoto(photoId) {\n // this.navCtrl.push();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/photo/photo.ts","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AuthService } from '../../services/auth.service';\n\n\nconst TermContent = `

Terms of Use Agreement

\n\n

Welcome! By using this platform managed by Intersective Pty Ltd, you are agreeing to comply with and be bound by the following terms of use. These terms are intended to cover the use of the Practera Platform (the Platform) and activities and tasks closely associated with the use of the Platform. Please review the following terms carefully. If you do not agree to these terms, you should not progress any further, and/or communicate with your organisation’s program coordinator.

\n

1. Acceptance of Agreement. You agree to the terms and conditions outlined in this Terms of Use Agreement (\"Agreement\") with respect to the program platform (the \"Platform\"). This Agreement constitutes the entire and only agreement between us and you, and supersedes all prior or contemporaneous agreements, representations, warranties and understandings with respect to the Platform, the content, products or services provided by or through the Platform, and the subject matter of this Agreement. This Agreement may be amended at any time by us from time to time without specific notice to you. The latest Agreement will be posted on the Platform, and you should review this Agreement prior to using the Platform.\n

\n\n

2. Copyright. The content, organization, graphics, design, compilation, magnetic translation, digital conversion and other matters related to the Platform are protected under applicable copyrights, trademarks and other proprietary (including but not limited to intellectual property) rights. The copying, redistribution, use or publication by you of anysuch matters or any part of the Platform, except as allowed by Section 3, is strictly prohibited. You do not acquire ownership rights to any content, document or other materials viewed through the Platform. The posting of information or materials on the Platform does not constitute a waiver of any right in such information and materials.\n

\n\n

3. Limited Right to Use. The viewing, printing or downloading of any content, graphic, form or document from the Platform grants you only a limited, nonexclusive license for use solely by you for your own personal use and not for republication, distribution, assignment, sublicense, sale, preparation of derivative works or other use. No part of any content, form or document may be reproduced in any form or incorporated into any information retrieval system, electronic or mechanical, other than for your personal use (but not for resale or redistribution).\n

\n\n

4. Editing, Deleting and Modification. We reserve the right in our sole discretion to edit or delete any documents, information or other content appearing on the Platform.\n

\n\n

5. Indemnification. You agree to indemnify, defend and hold us and our partners, staff and affiliates (collectively, \"Affiliated Parties\") harmless from any liability, loss, claim and expense, including reasonable legal fees, related to your violation of this Agreement or use of the Platform.\n

\n\n

6. Nontransferable. Your right to use the Platform is not transferable. Any password or right given to you to obtain information or documents is not transferable.\n

\n\n

7. Disclaimer and Limits. All responsibility or liability for any damages caused by viruses contained within the electronic file containing the form or document is disclaimed. WE WILL NOT BE LIABLE TO YOU FOR ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OF ANY KIND THAT MAY RESULT FROM USE OF OR INABILITY TO USE OUR PLATFORM.\n

\n\n

8. Use of Information. We reserve the right, and you authorize us, to the use and assignment of all information regarding Platform uses by you and all information provided by you in any manner consistent with our Privacy Policy.\n

\n\n

9. Third-Party Access. We may allow access to the platform, or to any information contained within the platform, to thirdparties in our absolute discretion, subject to our Privacy Policy.\n

\n\n

10. Privacy Policy. Our Privacy Policy, as it may change from time to time, is a part of this Agreement.\n

\n\n

11. Links to other Web Sites. The Site contains links to other Web Sites. We are not responsible for the content, accuracy or opinions express in such Web Sites, and such Web Sites are not investigated, monitored or checked for accuracy or completeness by us. Inclusion of any linked Web Site on our Site does not imply approval or endorsement of the linked Web Site by us. If you decide to leave our Site and access these third-party Sites, you do so at your own risk.\n

\n\n

12. License of user content. You grant Intersective and any other users of the platform, an irrevocable, global and perpetual license to use any and all content submitted into the platform, including, without limitation, your documents, deliverables, assignments, class notes, course outlines, submits, posts, uploads, displays, reviews, suggestions, ideas, solutions, questions, answers, messages, images, videos, texts of any kind, or other materials for any purposes whatsoever, including, without limitation, developing, manufacturing and marketing products and services for commercial purposes, without any payment or compensation to you. You further agree that Intersective may give free access to all of your above mentioned user content to other third parties, including, without limitation, affiliates, distributors, other users or potential users. You waive any legal or moral rights you may have in any User Content you submit, even if such User Content is altered or changed in any manner.\n

\n\n

Privacy Policy

\n

1. We respect your privacy. As the manager of the program Platform (“The Platform”) Intersective respects your right to privacy and this policy sets out how we collect and treat your personal information. “Personal information” is information we hold which is identifiable as being about you.\n

\n\n

2. What personal information we collect. We may collect a range of types of personal information from you, including, but not limited to, the following:

\n
    \n
  • name
  • \n
  • demographic information – eg; age, gender, socio-economic status
  • \n
  • psychographic information – eg personality, interests, attitudes, behaviours and opinions
  • \n
  • educational history
  • \n
  • employment history
  • \n
  • student number
  • \n
  • user ideas and comments
  • \n
  • information from enquiries you have made
  • \n
  • communications between program participants
  • \n
  • assessments marks and details
  • \n
  • digital and multimedia
  • \n
\n

\n\n

3. How we collect your personal information. We collect personal information from you in a variety of ways, including: when you interact with us electronically or in person; when you access our website; and when we provide our services to you.\n

\n\n

4. Use of your personal information. We use your information to provide our service to you. We also use it to improve our service and to notify you of opportunities that we think you might be interested in. We do not provide or sell your information to third parties, except that we may provide your information to our program partners who support the provision of our services to you expressly for the purpose of facilitating the delivery of that service.\n

\n\n

5. Disclosure of your personal information overseas. We are likely to disclose your personal information to recipients globally.\n

\n\n

6. Security of your personal information. We take reasonable steps to protect your personal information. However we are not liable for any unauthorised access to this information.\n

\n\n

7. Access to your personal information. You can access and update your personal information by contacting us on {{helpline}}\n

\n\n

8. Complaints about privacy. If you have any complaints about our privacy practices, please feel free to send in details of your complaints to {{helpline}}. We take complaints very seriously and will respond shortly after receiving written notice of your complaint.\n

\n\n

9. Changes. Please be aware that we may change this Privacy Policy in the future. The revised versions will be uploaded onto our website, so please check back from time to time.\n

\n\n

10. Website.

\n

When you visit our website

\n

When you come on to our website we may collect certain information such as browser type, operating system, website visited immediately before coming to our site, etc. This information is used in an aggregated manner to analyse how people use our site, such that we can improve our service.

\n\n

Cookies

\n

As is very common for companies, we use cookies on our website. Cookies are very small files which a website uses to identify you when you come back to the site and to store details about your use of the site. Cookies are not malicious programs that access or damage your computer. We use cookies to improve the experience of people using our website.\nThird party sites\nOur site has links to other websites not owned or controlled by us. We are not responsible for these sites or the consequences of you going on to those sites.

`;\n\n@Component({\n selector: 'term-content',\n template: '
'\n})\nexport class TermContentComponent {\n content: string;\n constructor(public sanitizer: DomSanitizer, public authService: AuthService) {\n this.content = TermContent;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-content.component.ts","import { Component, Input, OnInit, NgZone } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n// Others\nimport { FilepickerService, FilepickerUpload } from '../../shared/filepicker/filepicker.service';\nimport { UtilsService } from '../../shared/utils/utils.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'file-question',\n templateUrl: './file.html'\n})\nexport class FileQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n uploaded: any; // uploaded file (support single only)\n // uploaded: Array = []; // uploaded files\n\n constructor(\n public fs: FilepickerService,\n public util: UtilsService,\n public zone: NgZone\n ) {}\n\n /**\n * @description at file type question initiation,\n * uploaded files is retrieved from cached form (if available)\n */\n ngOnInit() {\n this.uploaded = _.isEmpty(this.form.controls.answer.value) ? false : this.form.controls.answer.value;\n }\n\n /**\n * @description Upload file and trigger ngzone to update this.uploaded variable\n */\n upload(event) {\n let self = this;\n\n this.fs.pick({\n maxFiles: 1,\n storeTo: {\n location: 's3'\n }\n }).then((uploaded: FilepickerUpload) => {\n self.zone.run(() => {\n if (uploaded.filesUploaded.length > 0) {\n let file = uploaded.filesUploaded.shift();\n file.icon = self.util.getIcon(file.mimetype);\n\n // post_assessment_submission API requirement \"key\"\n file.key = file.handle;\n\n self.uploaded = file;\n this.form.controls.answer.setValue(self.uploaded);\n }\n\n if (uploaded.filesFailed.length > 0) {\n console.log(uploaded.filesFailed.length, ' file(s) not uploaded.');\n }\n });\n });\n }\n\n injectIcon = (files: any[]) => {\n let result = [];\n files.forEach((file, index) => {\n file.icon = this.util.getIcon(file.mimetype);\n result.push(file);\n });\n\n return result;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/file.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'oneof-question',\n templateUrl: './oneof.html'\n})\nexport class OneofQuestionComponent implements OnInit {\n @Input() question;\n @Input() form: FormGroup;\n @Input() disabled;\n @Output() oneofForm = new EventEmitter();\n\n constructor() {}\n change(e) {\n this.oneofForm.emit(e);\n }\n\n ngOnInit() {\n // console.log(this.question);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/oneof.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'text-question',\n templateUrl: './text.html'\n})\nexport class TextQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/text.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'multiple-question',\n templateUrl: './multiple.html'\n})\nexport class MultipleQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n change(e) {\n console.log(e);\n console.log(this.question);\n }\n\n ngOnInit() {\n console.log(this.form);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/multiple.ts","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'feedback',\n templateUrl: './feedback.html'\n})\nexport class FeedbackComponent implements OnInit {\n @Input() question;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/feedback.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'events',\n templateUrl: 'events.html'\n})\nexport class EventsComponent {\n @Input() events;\n\n constructor(\n public navCtrl: NavController\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/events/events.component.ts","import { Component, Injectable } from '@angular/core';\nimport { ViewController, LoadingController, NavParams, NavController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { TranslateService } from '@ngx-translate/core';\n// pages\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\n\n@Injectable()\n@Component({\n selector: 'items-popup',\n templateUrl: 'items-popup.html'\n})\nexport class ItemsPopupPage {\n public combinedData: any = [];\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n\n constructor(\n public cacheService: CacheService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {}\n\n ionViewWillEnter() {\n this.combinedData = this.cacheService.getLocalObject('allNewItems');\n }\n\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/popup/items-popup.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController, MenuController } from 'ionic-angular';\n\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { LevelsListPage } from '../levels/list/list';\n\n/* This is side navigation bar which shows after user logged in to the app */\n@Component({\n selector: 'page-sidenav',\n templateUrl: 'sidenav.html'\n})\nexport class SidenavPage {\n @ViewChild('sideNav') sideNav: NavController;\n\n activitiesListPage = ActivitiesListPage;\n levelsListPage = LevelsListPage;\n loginPage = LoginPage;\n rootPage = null;\n tabsPage = TabsPage;\n\n constructor(\n public menuCtrl: MenuController\n ) {\n this.rootPage = LoginPage;\n }\n\n onLoad(page: any) {\n this.sideNav.setRoot(page);\n this.menuCtrl.close();\n } // handles when user login load specific page which selected/clicked by user\n\n onLogout() {\n localStorage.clear();\n this.menuCtrl.close();\n this.sideNav.setRoot(LoginPage);\n } // handles when user logout\n\n isLoggedin() {\n return localStorage.getItem('isAuthenticated') == 'true';\n }\n // this functin is to check if user is logged in, the value is turn to true,\n // navbar shows all listed page links, else navbar only show login link button\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/sidenav/sidenav.ts","import {Pipe, PipeTransform} from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({ name: 'timeago' })\nexport class TimeAgoPipe implements PipeTransform {\n transform(input, p_allowFuture?: any) : any {\n if (!input || input.length === 0) {\n return '';\n }\n\n // treat API date as UTC\n input = moment.utc(input);\n\n var substitute = function (timeStamp, num, strings) {\n // var string = angular.isFunction(timeStamp) ? timeStamp(num, dateDifference) : timeStamp;\n var string = timeStamp;\n var value = (strings.numbers && strings.numbers[num]) || num;\n return string.replace(/%d/i, value);\n },\n nowTime = (new Date()).getTime(),\n date = (new Date(input)).getTime(),\n //refreshMillis= 6e4, //A minute\n allowFuture = p_allowFuture || false,\n strings= {\n prefixAgo: '',\n prefixFromNow: '',\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n seconds: \"less than a minute\",\n minute: \"about a minute\",\n minutes: \"%d minutes\",\n hour: \"about an hour\",\n hours: \"about %d hours\",\n day: \"a day\",\n days: \"%d days\",\n month: \"about a month\",\n months: \"%d months\",\n year: \"about a year\",\n years: \"%d years\",\n wordSeparator: ' '\n },\n dateDifference = nowTime - date,\n words,\n seconds = Math.abs(dateDifference) / 1000,\n minutes = seconds / 60,\n hours = minutes / 60,\n days = hours / 24,\n years = days / 365,\n separator = strings.wordSeparator,\n\n\n prefix = strings.prefixAgo,\n suffix = strings.suffixAgo;\n\n if (allowFuture) {\n if (dateDifference < 0) {\n prefix = strings.prefixFromNow;\n suffix = strings.suffixFromNow;\n }\n }\n\n words = seconds < 45 && substitute(strings.seconds, Math.round(seconds), strings) ||\n seconds < 90 && substitute(strings.minute, 1, strings) ||\n minutes < 45 && substitute(strings.minutes, Math.round(minutes), strings) ||\n minutes < 90 && substitute(strings.hour, 1, strings) ||\n hours < 24 && substitute(strings.hours, Math.round(hours), strings) ||\n hours < 42 && substitute(strings.day, 1, strings) ||\n days < 30 && substitute(strings.days, Math.round(days), strings) ||\n days < 45 && substitute(strings.month, 1, strings) ||\n days < 365 && substitute(strings.months, Math.round(days / 30), strings) ||\n years < 1.5 && substitute(strings.year, 1, strings) ||\n substitute(strings.years, Math.round(years), strings);\n\n prefix.replace(/ /g, '');\n words.replace(/ /g, '');\n suffix.replace(/ /g, '');\n return (prefix+' '+words+' '+suffix+' '+separator);\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/timeago.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ucfirst'\n})\n// replication of PHP native ucfirst()\nexport class UcfirstPipe implements PipeTransform {\n transform(input: string): any {\n let result = '';\n\n // turn first letter of word into upper case\n var capitalizeFirstLetter = function (string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n };\n\n if (input) {\n result = capitalizeFirstLetter(input);\n }\n\n return result;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/ucfirst.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, maxLength: number): string {\n if (value.length < maxLength) {\n return value;\n }\n return value.substring(0, maxLength) + '...';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/truncate.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: 'keepHtml', pure: false })\nexport class EscapeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(content) {\n return this.sanitizer.bypassSecurityTrustHtml(content);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/keep-html.pipe.ts","// Need update read me\n// Copy file to config.ts\nexport default {\n prefixUrl: 'http://local.practera.com:8080/',\n appKey: 'b11ccabf11',\n filestack: {\n apiKey: 'AlG6WszEEQ96DAjq4hOv1z'\n },\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/configs/config.ts","import { Component } from '@angular/core';\nimport { NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { EventService } from '../../../services/event.service';\n// pages\nimport { EventsViewPage } from '../view/events-view.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'events-list-page',\n templateUrl: 'list.html'\n})\nexport class EventsListPage {\n activities = {};\n emptyFilterErrMessage = errMessages.Events.filter.empty; // loading & error message variables\n events = []; // ordered events array in filterEvents and to be access through template\n filter = 'browses';\n loadedEvents = []; // Further processed events array, for public use\n noAttendedFilterErrMessage = errMessages.Events.filter.noAttended;\n noBookingsFilterErrMessage = errMessages.Events.filter.noBookings;\n noEvents = false;\n\n constructor(\n public activityService: ActivityService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n /**\n * @name filterEvents\n * @description filter and group events into 3 catergories (attended, my-bookings, browses)\n * attended: expired & booked\n * my-bookings: active event & booked\n * browses: list of available events\n */\n filterEvents() {\n this.noEvents = false;\n switch(this.filter) {\n case 'attended':\n // List all ended event in order of end time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }), 'start', 'desc');\n break;\n case 'my-bookings':\n // List all booked event in order of start time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }), 'start', 'asc');\n break;\n case 'browses':\n // List all not booked and not ended event in order of start time (asc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n // return (moment(event.end).isAfter() && event.isBooked === false);\n // return (moment().isBefore(moment(event.end)) && event.isBooked === false);\n return (moment(event.end).isAfter() && event.isBooked === false);\n }), 'start', 'asc');\n break;\n }\n if (this.events.length === 0) {\n this.noEvents = true;\n }\n return this.events;\n }\n\n // Called when tap on filter tab\n selected(filter) {\n this.filter = filter;\n this.events = this.filterEvents();\n }\n\n // Check total of events, return \"true\" when 0 found\n showNoEventMessage() {\n return (this.noEvents);\n }\n\n /**\n * @name loadEvents\n * @description retrieve events (from get_events) with a list of activity_id (from get_activity)\n * @return {Promise}\n */\n loadEvents(): Promise {\n return new Promise((resolve, reject) => {\n // Get activities IDs\n this.activityService.getList().toPromise()\n .then((activities) => {\n this.activities = {};\n let activityIDs = [];\n _.forEach(activities, (act) => {\n this.activities[act.Activity.id] = act;\n activityIDs.push(act.Activity.id);\n });\n\n // Get event by activityIDs\n this.eventService.getEvents({\n search: {\n activity_id: '[' + _.toString(activityIDs) + ']',\n type: 'session'\n }\n })\n .then((events) => {\n // loadedEvents will never change (public use),\n // it will be used for filtering of events (prep for display/template variable).\n this.loadedEvents = this._injectCover(this._mapWithActivity(events));\n\n // events use to rendering on page\n this.events = _.clone(this.loadedEvents);\n this.filterEvents();\n return resolve();\n }, reject);\n }, reject);\n });\n }\n\n ionViewDidEnter() {\n let loader = this.loadingCtrl.create();\n\n loader.present().then(() => {\n this.loadEvents().then(() => {\n loader.dismiss();\n })\n .catch((err) => {\n console.log(err);\n loader.dismiss();\n });\n });\n }\n\n doRefresh(e) {\n this.loadEvents().then(() => {\n e.complete();\n })\n .catch((err) => {\n console.log('err', err);\n e.complete();\n });\n }\n /**\n * @TODO: remove this once we decided to remove hardcoded images, big size picture is ruining UX because it induces long download time\n *\n * @name _injectCover\n * @description inject hardcoded images by array index number\n * @param {array} events list of event object respond from get_events API\n */\n _injectCover(events) {\n let counts = events.length;\n\n _.forEach(events, (value, key) => {\n let idx = (key % 5) + 1;\n events[key].coverUrl = '/assets/img/static/event-cover-' + idx + '.jpg';\n });\n\n return events;\n }\n\n /**\n * @name _mapWithActivity\n * @description\n * - attach \"activity\" object into each of single \"event\" object\n * - Extract and merge event-activity only\n * - skip non-event activities\n * @param {array} events get_events response\n */\n _mapWithActivity(events) {\n let result = [];\n\n events.forEach(event => {\n let thisActivity = this.activities[event.activity_id];\n thisActivity.References = event.References; // must use event's references\n event.activity = this.activityService.normaliseActivity(thisActivity);\n result.push(event);\n });\n\n return result;\n }\n // Check event allow to check-in\n allowCheckIn(event) {\n return (moment(event.start).isAfter() && moment(event.end).isBefore());\n }\n\n view(event) {\n this.navCtrl.push(EventsViewPage, {\n event\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/list/list.page.ts","import { Injectable, Optional } from '@angular/core';\n\ndeclare var filestack: any; // v3 filestack\ndeclare var filepicker: any; // v2 filestack\n\nexport class FilepickerUpload {\n filesFailed: Array;\n filesUploaded: Array;\n}\n\n@Injectable()\nexport class FilepickerConfig {\n apikey = null;\n}\n\nexport class FilepickerService {\n private filestack: any;\n private filepicker: any;\n version: any;\n\n constructor(@Optional() config: FilepickerConfig) {\n this.filestack = filestack.init(config.apikey);\n this.version = filestack.version;\n\n this.filepicker = filepicker;\n this.filepicker.setKey(config.apikey);\n }\n\n /**\n * display pick/upload popup for file upload,\n * refer to filestack documentation for more config information\n * @link https://www.filestack.com/docs/javascript-api/pick-v3\n * @param {object} config filestack object\n * @return {Promise} single resolved object\n */\n pick(config?): Promise {\n if (!config) {\n config = {\n maxFiles: 5, // default by max 5 files\n storeTo: {\n location: 's3'\n }\n };\n }\n\n return this.filestack.pick(config);\n }\n\n pickV1(file, onSuccess, onError?, onProgress?) {\n this.filepicker.pick(file, success => {\n return onSuccess(success);\n }, onError, onProgress);\n }\n\n getSecurity() {\n return this.filestack.getSecurity();\n }\n\n setSecurity (e) {\n return this.filestack.setSecurity(e);\n }\n\n storeURL (e, t) {\n return this.filestack.storeURL(e, t);\n }\n\n transform (e, t) {\n return this.filestack.transform(e, t);\n }\n\n upload (e, t, n, i) {\n return this.filestack.upload(e, t, n, i);\n }\n\n retrieve (e, t) {\n return this.filestack.retrieve(e, t);\n }\n\n remove (e) {\n return this.filestack.remove(e);\n }\n\n metadata (e, t) {\n return this.filestack.metadata(e, t);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.service.ts"],"sourceRoot":""} \ No newline at end of file diff --git a/src/components/assessments/assessments.html b/src/components/assessments/assessments.html index eacf4122..767684ec 100644 --- a/src/components/assessments/assessments.html +++ b/src/components/assessments/assessments.html @@ -7,9 +7,8 @@ {{ assessment['Assess.Assessment'].name }} -
-
+
diff --git a/src/components/loadingMarker/loadingMarker.html b/src/components/loadingMarker/loadingMarker.html index 741668b2..1fbeb05d 100644 --- a/src/components/loadingMarker/loadingMarker.html +++ b/src/components/loadingMarker/loadingMarker.html @@ -1,8 +1,6 @@
-
-
-

transclude?

+
diff --git a/src/components/question/question.html b/src/components/question/question.html index fdea7806..b4606d1c 100644 --- a/src/components/question/question.html +++ b/src/components/question/question.html @@ -8,9 +8,7 @@ {{ question.name }}
-
- -
+
diff --git a/src/pages/activities/view/view.html b/src/pages/activities/view/view.html index b123f181..b63b8685 100644 --- a/src/pages/activities/view/view.html +++ b/src/pages/activities/view/view.html @@ -46,7 +46,9 @@ - + +

Loading submissions...

+
@@ -57,13 +59,8 @@

In Progress

{{ (submission.submitted || submission.created).format() | amDateFormat:"MMM D YYYY, h:mm a" }}

- - - - 4 - + + diff --git a/src/pages/assessments/assessments.html b/src/pages/assessments/assessments.html index 02d56f6b..8fa71aaf 100644 --- a/src/pages/assessments/assessments.html +++ b/src/pages/assessments/assessments.html @@ -11,10 +11,10 @@ -
-
+
+
- +

{{ assessment.name }}

@@ -22,10 +22,9 @@

{{ assessment.name }}

+ (click)="gotoAssessment(group, activity)">
From adaaecaa7353f8f4f82c5947eb78bad43bf09326 Mon Sep 17 00:00:00 2001 From: chaw Date: Tue, 24 Oct 2017 11:41:41 +0800 Subject: [PATCH 11/19] [ISDK-82] corrected usage of grid system --- src/pages/activities/view/view.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pages/activities/view/view.html b/src/pages/activities/view/view.html index b63b8685..5dd993fd 100644 --- a/src/pages/activities/view/view.html +++ b/src/pages/activities/view/view.html @@ -51,30 +51,30 @@ - + - +

Waiting for Review

Done

In Progress

{{ (submission.submitted || submission.created).format() | amDateFormat:"MMM D YYYY, h:mm a" }}

-
- + + - +
- +

{{ submission.statusTitle | truncate: 50 }}

{{ submission.statusTitle.name }}

{{ (submission.submitted || submission.created).format() | amDateFormat:"MMM D YYYY, h:mm a" }}

-
- + + {{ submission.statusTitle.score }} - +
From 32db9af4347dfd8974dd96a33b1d649a4faac161 Mon Sep 17 00:00:00 2001 From: chaw Date: Mon, 6 Nov 2017 12:57:30 +0800 Subject: [PATCH 12/19] removed map file this is generated locally at code compilation --- .sourcemaps/main.js.map | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .sourcemaps/main.js.map diff --git a/.sourcemaps/main.js.map b/.sourcemaps/main.js.map deleted file mode 100644 index 8ec7b6f2..00000000 --- a/.sourcemaps/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/shared/cache/cache.service.ts","../../src/services/character.service.ts","../../src/pages/activities/view/activities-view.page.ts","../../src/pages/assessments/assessments.page.ts","../../src/pages/assessments/group/assessments-group.page.ts","../../src/pages/settings/settings.page.ts","../../src/pages/events/download/events-download.page.ts","../../src/shared/utils/utils.service.ts","../../src/shared/window.ts","../../src/pages/registration/registration.page.ts","../../src/pages/levels/list/list.ts","../../node_modules/@angular/core/@angular lazy","../../src/app/messages.ts","../../src lazy","../../src/shared/request/request.service.ts","../../src/shared/notification/modal.component.ts","../../src/pages/reset-password/reset-password.ts","../../src/shared/translation/translation.service.ts","../../src/shared/validators/formValidator.ts","../../src/services/auth.service.ts","../../src/pages/tabs/tabs.page.ts","../../src/pages/activities/view/activities-view-modal.page.ts","../../src/pages/activities/list/popup.ts","../../src/pages/rankings/list/rankings.page.ts","../../src/pages/rankings/view/ranking-details.page.ts","../../src/pages/rankings/view/ranking-badges.ts","../../src/pages/settings/leaderboard/leaderboard-settings.page.ts","../../src/pages/settings/tutorial/tutorial.page.ts","../../src/pages/term-condition/term-condition.page.ts","../../src/pages/registration/register.page.ts","../../src/pages/events/view/events-view.page.ts","../../src/pages/events/download/events-preview.page.ts","../../src/pages/forget-password/forget-password.ts","../../src/pages/login/login.ts","../../src/pages/magic-link/magic-link.ts","../../src/pages/tabs/test.page.ts","../../src/pages/achievements/view/achievements-view.page.ts","../../src/pages/activities-classic/list/activities-classic-list.page.ts","../../src/pages/gallery/gallery.ts","../../src/services/level.service.ts","../../src/pages/events/checkin/event-checkin.page.ts","../../src/pages/team/team.ts","../../src/services/team.service.ts","../../src/app/main.ts","../../src/app/app.module.ts","../../src/shared/cache/cache.module.ts","../../src/shared/notification/notification.module.ts","../../src/shared/notification/notification.component.ts","../../src/app/app.component.ts","../../src/services/game.service.ts","../../node_modules/moment/locale ^/.//.*$","../../src/shared/notification/notification.service.ts","../../src/services/milestone.service.ts","../../src/services/activity.service.ts","../../src/services/submission.service.ts","../../src/services/assessment.service.ts","../../src/pages/activities/list/list.page.ts","../../src/services/achievement.service.ts","../../src/services/event.service.ts","../../src/shared/filepicker/filepicker.module.ts","../../src/shared/filepicker/file-preview.directive.ts","../../src/shared/utils/utils.module.ts","../../src/shared/testModules/test.module.ts","../../src/shared/testModules/pages/test/test.page.ts","../../src/shared/testModules/pages/test/test-start.page.ts","../../src/pages/spinwheel/celebration.page.ts","../../src/shared/testModules/test.directive.ts","../../src/shared/translation/translation.module.ts","../../src/components/questions/group-emitter.service.ts","../../src/shared/request/request.module.ts","../../src/shared/rxjs-operators.ts","../../src/services/session.service.ts","../../src/components/question-group/question-group.component.ts","../../src/components/event/event.component.ts","../../src/components/level/level.ts","../../src/components/loadingMarker/loadingMarker.ts","../../src/components/locker/locker.ts","../../src/components/member/member.ts","../../src/components/photo/photo.ts","../../src/pages/term-condition/term-content.component.ts","../../src/components/questions/file.ts","../../src/components/questions/oneof.ts","../../src/components/questions/text.ts","../../src/components/questions/multiple.ts","../../src/components/questions/feedback.ts","../../src/components/events/events.component.ts","../../src/pages/assessments/popup/items-popup.page.ts","../../src/pages/sidenav/sidenav.ts","../../src/pipes/timeago.ts","../../src/pipes/ucfirst.pipe.ts","../../src/pipes/truncate.pipe.ts","../../src/pipes/keep-html.pipe.ts","../../src/configs/config.ts","../../src/pages/events/list/list.page.ts","../../src/shared/filepicker/filepicker.service.ts"],"names":[],"mappings":"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AU,OAOT;QAPS;YACR,WAAW,EAAE;gBACX,IAAI,EAAE,IAAI;aACX;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;aACX;SACF;QACC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC,CAAC,CAAC;IAC5F,CAAC;IACH,kBAAC;AAAD,CAAC;AA5FY,WAAW;IADvB,iEAAU,EAAE;qCAGO,uFAAc;GAFrB,WAAW,CA4FvB;AA5FuB;;;;;;;;ACTxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","file":"main.js","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Storage } from '@ionic/storage';\n\nimport { Cache } from '../app/cache';\n\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class CacheService {\n\n public localStorage: any;\n public bufferZone = {}; // temporary cached storage in service\n\n constructor(\n public storage: Storage\n ) {\n storage.ready().then(() => {\n console.log('Storage loaded.');\n this.read('*', true).then(content => this.bufferZone = content);\n });\n\n if (!localStorage) {\n throw new Error('Current browser does not support Local Storage');\n }\n this.localStorage = localStorage;\n }\n\n private key = '_app_cache';\n\n set(key, value) {\n return this.storage.set(key, value);\n }\n\n /**\n * get memory cached values by key\n * @param {object||string}\n */\n getCached(key) {\n if (this.bufferZone) {\n return this.bufferZone[key] || null;\n }\n return null;\n }\n\n /**\n * Write data into local storage\n * @param {string} path - path to store data\n * @param {any} content - data to store\n * @return {promise} \n */\n write(path: string, content: any) {\n this.bufferZone = _.set(this.bufferZone, path, content);\n\n return new Promise((resolve, reject) => {\n this.storage.set(this.key, this.bufferZone)\n .then(resolve, reject);\n });\n }\n\n /**\n * Read data into local storage\n * @param {string} path - path to read data\n * @return {promise} \n */\n read(path: string = '*', strict: boolean = false) {\n if (!strict) {\n return new Promise((resolve, reject) => {\n if (!this.bufferZone && path !== '*') {\n return resolve(null);\n }\n\n if (path === '*') {\n return resolve(this.bufferZone);\n }\n\n return resolve(_.get(this.bufferZone, path));\n });\n } else {\n return new Promise((resolve, reject) => {\n this.storage.get(this.key)\n .then((data: Cache) => {\n if (!data && path !== '*') {\n return resolve(null);\n }\n\n if (path === '*') {\n return resolve(data);\n }\n\n return resolve(_.get(data, path));\n }, reject);\n });\n }\n }\n\n public clear(): any {\n return this.storage.clear();\n }\n\n // public remove(cb): any;\n // public length(cb): any;\n // public keys(cb): any;\n // public forEach(cb): any;\n\n // pure localStorage implementation\n public setLocal(key: string, value: string | Boolean): void {\n this.localStorage[key] = value;\n }\n\n public getLocal(key: string): string {\n return this.localStorage[key] || false;\n }\n\n public setLocalObject(key: string, value: any): void {\n this.localStorage[key] = JSON.stringify(value);\n }\n\n public getLocalObject(key: string): any {\n return JSON.parse(this.localStorage[key] || '{}');\n }\n\n public removeLocal(key: string): any {\n this.localStorage.removeItem(key);\n }\n\n public clearLocal(cb): any {\n return cb(this.localStorage.clear());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/cache/cache.service.ts","import { Injectable } from '@angular/core';\n\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class CharacterService {\n charactersAPIEndpoint: any = 'api/characters.json';\n\n constructor(\n public cache: CacheService,\n public request: RequestService\n ) {}\n\n /**\n * Get character\n */\n getCharacter() {\n return this.request.get(this.charactersAPIEndpoint, {\n search: {\n game_id: this.cache.getLocalObject('game_id')\n }\n });\n }\n\n /**\n * Post character\n * @param {object} data\n */\n postCharacter(data) {\n return this.request.post(this.charactersAPIEndpoint, data, {\n 'Content-Type': 'application/json'\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/character.service.ts","import { Component } from '@angular/core';\nimport { ModalController, NavParams, NavController, AlertController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// pages\nimport { ActivitiesViewModalPage } from './activities-view-modal.page';\nimport { AssessmentsPage } from '../../assessments/assessments.page';\nimport { ActivityService } from '../../../services/activity.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// Others\nimport * as _ from 'lodash';\n\n@Component({\n templateUrl: './view.html'\n})\nexport class ActivitiesViewPage {\n achievements: any = {\n available: [],\n obtained: {},\n maxPoints: {}\n };\n activity: any = {};\n assessment: any = {};\n loadings = {\n submissions: false\n };\n submissions: Array = [];\n\n constructor(\n public activityService: ActivityService,\n public alertCtrl: AlertController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public modalCtrl: ModalController,\n public submissionService: SubmissionService\n ) {}\n\n ionViewWillEnter(): void {\n this.loadings.submissions = true;\n }\n\n // @TODO: use simple mock data for assessment first\n /**\n * on assessment implementation, to do list:\n * - load badges\n * - change icon display based on responded data format\n * - load submission into this.submissions\n * - change template view based on responded data format\n */\n ionViewDidEnter(): void {\n // assessment\n this.activity = this.activityService.normaliseActivity(this.navParams.get('activity') || {});\n this.assessment = this.activity.assessment;\n\n // submission\n this.submissions = [];\n Observable.forkJoin(this.submissionService.getSubmissionsByReferences(this.activity.References)).subscribe(responses => {\n // turn nested array into single dimension array\n responses.forEach((submissions: Array) => {\n if (submissions.length > 0) {\n this.submissions = submissions.map(submission => {\n return this.submissionService.normalise(submission);\n });\n this.submissions = _.orderBy(this.submissions, 'created', 'desc'); // latest at top\n\n this.submissions = this.setSubmissionStatusTitle(this.submissions);\n }\n });\n\n this.loadings.submissions = false;\n });\n\n // badges\n this.achievements = this.navParams.get('achievements');\n this.activity.badges = this.extractBadges();\n this.activity.badges.map((badge, index) => {\n if ((this.activity.id % 3) != 0) {\n badge.disabled = false;\n } else {\n badge.disabled = true;\n }\n });\n }\n\n // extract \"in progress\"\n inProgressSubmission() {\n let result = [];\n (this.submissions || []).forEach(submission => {\n if (submission.status === 'in progress') {\n result.push(submission);\n }\n });\n return result;\n }\n\n public extractBadges(): Array {\n let result = [];\n if (this.achievements.available && this.achievements.available.length > 0) {\n this.achievements.available.forEach(achievement => {\n if (achievement.Achievement.badge) {\n result.push({\n url: achievement.Achievement.badge,\n disabled: false\n });\n }\n });\n }\n return result;\n }\n\n /**\n * @description display activity detail modal page\n */\n openModal() {\n let detailModal = this.modalCtrl.create(ActivitiesViewModalPage, {activity: this.activity});\n detailModal.present();\n }\n\n /**\n * @name goAssessment\n * @description direct to assessment page of a selected activity\n * @param {Object} activity single activity object from the list of\n * activities respond from get_activities API\n * @param {Object} opts optional object with\n * - hasSubmission: to indicateif user is accessing a in\n * progress assessment\n */\n goAssessment(submission?, opts = { hasSubmission: false }) {\n if ((this.inProgressSubmission()).length > 0 && opts.hasSubmission === false) {\n let alert = this.alertCtrl.create({\n title: 'You already have started a new submission! Please tap on \"In Progress\" below to continue with it.',\n buttons: [\"Ok\"]\n });\n alert.present();\n } else if (opts.hasSubmission === true) {\n this.navCtrl.push(AssessmentsPage, {\n activity: this.activity,\n assessment: this.assessment,\n submissions: this.submissions,\n currentSubmission: submission\n });\n } else {\n this.navCtrl.push(AssessmentsPage, {\n activity: this.activity,\n assessment: this.assessment\n });\n }\n }\n\n /**\n * @name setSubmissionStatusTitle\n * @description refer to assessment status and inject proper UI displayable title for different submissions (in a assessments, multiple submission has no unique title, this function is added to help user identify different submission by title)\n * @param {Array} submissions submissions array objects\n */\n setSubmissionStatusTitle(submissions: Array) {\n let results: Array<{\n name: string,\n score: number,\n published: boolean,\n inprogress: boolean,\n moderated_assessment: boolean\n }>;\n\n submissions = submissions.map((submission, index) => {\n let result = {\n name: '',\n score: 0,\n published: false,\n inprogress: false,\n moderated_assessment: false\n };\n\n if (submission.status == \"published\") {\n result.published = true;\n\n switch (submission.moderated_score) {\n case \"1\":\n result.score = 4;\n result.name = \"Outstanding\";\n break;\n case \"0.75\":\n result.score = 3;\n result.name = \"Commendable\";\n break;\n case \"0.5\":\n result.score = 2;\n result.name = \"Competent\";\n break;\n case \"0.25\":\n result.score = 1;\n result.name = \"Developing\";\n break;\n case \"0\":\n result.score = 0;\n result.name = \"Needs Improvement\";\n }\n } else if(submission.status == \"in progress\") {\n result.inprogress = true;\n } else {\n result.inprogress = false;\n }\n\n if (submission.assessment.assessment_type == \"moderated\") {\n result.moderated_assessment = true;\n }\n\n submission.statusTitle = result;\n return submission;\n });\n\n return submissions;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/view/activities-view.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavParams, NavController, Navbar, LoadingController, ModalController, AlertController, Events } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n//services\nimport { AssessmentService } from '../../services/assessment.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { CharacterService } from '../../services/character.service';\nimport { GameService } from '../../services/game.service';\nimport { SubmissionService } from '../../services/submission.service';\nimport { TranslationService } from '../../shared/translation/translation.service';\n// pages\nimport { AssessmentsGroupPage } from './group/assessments-group.page'\nimport { ItemsPopupPage } from './popup/items-popup.page';\nimport { ActivitiesListPage } from '../activities/list/list.page';\n// Others\nimport { confirmMessages, errMessages, loadingMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'assessments-page',\n templateUrl: './assessments.html'\n})\nexport class AssessmentsPage {\n @ViewChild(Navbar) navbar: Navbar;\n\n activity: any = {};\n allItemsData: any = [];\n allowSubmit: boolean = false;\n answers: any = {};\n assessment: any = {};\n assessmentGroups: any = [];\n assessmentQuestions: any = [];\n combinedItems: any = [];\n discardConfirmMessage = confirmMessages.Assessments.DiscardChanges.discard;\n getCharacterID: any = this.cacheService.getLocal('character_id');\n getInitialItems: any = this.cacheService.getLocalObject('initialItems');\n gotNewItems: boolean = false;\n isEventSubmission: boolean = false;\n initialItemsCount: any = {};\n loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n newItemsCount: any = {};\n newItemsData: any = [];\n noItems: boolean = null;\n outputData: any = [];\n submissions: any = [];\n submissionUpdated: boolean = false; // event listener flag\n submitConfirmMessage = confirmMessages.Assessments.SubmitConfirmation.confirm;\n totalItems: any = [];\n\n constructor(\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cacheService: CacheService,\n public characterService: CharacterService,\n public events: Events,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public modalCtrl: ModalController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public translationService: TranslationService\n ) {\n this.activity = this.navParams.get('activity');\n if (!this.activity) {\n throw 'Fatal Error: Activity not available';\n }\n }\n\n ionViewWillEnter() {\n let loader = this.loadingCtrl.create();\n loader.present().then(() => {\n this.loadQuestions()\n .then(() => {\n loader.dismiss();\n }, err => {\n console.log('log::', err);\n })\n .catch((err) => {\n console.log(err);\n loader.dismiss();\n });\n });\n }\n\n /**\n * track if this page need to download assessment manually (extra load)\n */\n traceAssessmentProgress() {\n this.events.subscribe('assessment:changes', (submissionUpdated) => {\n this.submissionUpdated = true;\n });\n }\n\n /**\n * @description mapping assessments and submissions\n * @param {Object} submissions submissions\n * @param {Object} assessments assessments\n */\n mapSubmissionsToAssessment(submissions, assessments) {\n _.forEach(assessments, (group, i) => {\n _.forEach(group, (assessment, j) => {\n\n // normalise\n assessments[i][j] = assessment = this.assessmentService.normalise(assessment);\n\n _.forEach(assessment.AssessmentGroup, (assessmentGroup, k) => {\n _.forEach(assessmentGroup.questions, (question, l) => {\n // Inject empty answer fields\n // We will know thare are no submission when it is null\n assessments[i][j].AssessmentGroup[k].questions[l].answer = null;\n assessments[i][j].AssessmentGroup[k].questions[l].reviewerAnswer = null;\n\n // find submission\n _.forEach(submissions, (submission) => {\n // attach existing submission to assessment group it belongs to\n let group = this.assessmentGroups[i][j].AssessmentGroup[k];\n if (group.assessment_id === submission.assessment_id) {\n this.assessmentGroups[i][j].AssessmentGroup[k].submission = submission;\n }\n\n // find user answer\n _.forEach(submission.answer, (answer) => {\n if (answer.assessment_question_id === question.id) {\n assessments[i][j].AssessmentGroup[k].questions[l].answer = answer;\n }\n });\n\n // find reviewer feedback\n _.forEach(submission.review, (reviewerAnswer) => {\n if (reviewerAnswer.assessment_question_id === question.id) {\n assessments[i][j].AssessmentGroup[k].questions[l].reviewerAnswer = reviewerAnswer;\n }\n });\n });\n\n });\n\n // Summarise basic answer information\n // get total number of questions\n assessments[i][j].AssessmentGroup[k].totalRequiredQuestions = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required) {\n assessments[i][j].AssessmentGroup[k].totalRequiredQuestions += 1;\n }\n });\n\n // get total number of answered questions\n assessments[i][j].AssessmentGroup[k].answeredQuestions = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required && q.answer && q.answer !== null) {\n assessments[i][j].AssessmentGroup[k].answeredQuestions += 1;\n }\n });\n\n // get total number of feedback\n assessments[i][j].AssessmentGroup[k].reviewerFeedback = 0;\n _.forEach(assessmentGroup.questions, (q) => {\n // If API response, the reviewer's answer and comment are empty,\n // front-end don't consider it as a feedback\n if (\n q.reviewerAnswer &&\n q.reviewerAnswer !== null &&\n !_.isEmpty(q.reviewerAnswer.answer) &&\n !_.isEmpty(q.reviewerAnswer.comment)\n ) {\n assessments[i][j].AssessmentGroup[k].reviewerFeedback += 1;\n }\n });\n\n // Set status\n // let status = assessments[i][j].AssessmentGroup[k].status = 'incomplete';\n let questionsStatus = [];\n _.forEach(assessmentGroup.questions, (q) => {\n if (q.required && q.answer !== null) {\n if (\n q.reviewerAnswer !== null &&\n assessmentGroup.submission.status !== 'pending approval' &&\n (q.reviewerAnswer.answer || q.reviewerAnswer.comment)\n ) {\n questionsStatus.push('reviewed');\n } else {\n questionsStatus.push('completed');\n }\n }\n\n if (!q.required && q.answer !== null) {\n if (\n q.reviewerAnswer !== null &&\n assessmentGroup.submission.status !== 'pending approval' &&\n (q.reviewerAnswer.answer || q.reviewerAnswer.comment)\n ) {\n questionsStatus.push('reviewed');\n } else {\n questionsStatus.push('completed');\n }\n }\n\n if (q.answer === null) {\n questionsStatus.push('incomplete');\n }\n });\n\n assessments[i][j].AssessmentGroup[k].status = 'incomplete';\n if (_.every(questionsStatus, (v) => {\n return (v === 'completed');\n })) {\n assessments[i][j].AssessmentGroup[k].status = 'completed';\n }\n if (_.includes(questionsStatus, 'reviewed')) {\n assessments[i][j].AssessmentGroup[k].status = 'reviewed';\n }\n });\n });\n });\n\n return assessments;\n }\n\n /**\n * pull submission when required, when:\n * - no submission available in the redirection from activity-view/event-view pages\n * - [save] clicked & saved from assessment-group.page.ts\n *\n * @return {Promise}\n */\n public pullSubmissions(): Promise {\n return new Promise((resolve, reject) => {\n // 2nd batch API requests (get_submissions)\n Observable.forkJoin(\n this.submissionService.getSubmissionsByReferences(\n this.activity.References\n ))\n .subscribe(allSubmissions => {\n // allSubmissions - response format: [ // context_ids\n // [ // assessment group 1\n // assessment1,\n // assessment2,\n // ...\n // ],\n // [ // assessment group 2\n // assessment1,\n // assessment2,\n // ...\n // ],\n // ...\n // ]\n let submissions = [];\n _.forEach(allSubmissions, group => {\n _.forEach(group, (submission) => {\n submissions.push(this.submissionService.normalise(submission));\n });\n });\n\n // check if a submission is specified\n let currentSubmission = this.navParams.get('currentSubmission');\n let filteredSubmissions = [];\n\n submissions.forEach(subm => {\n if (currentSubmission && currentSubmission.id === subm.id) {\n filteredSubmissions.push(subm);\n }\n });\n let hasInProgress = _.find(submissions, {status: 'in progress'}); // 'in progress' never > 1\n let isNew = (!currentSubmission && (filteredSubmissions.length === 0 || !_.isEmpty(hasInProgress)));\n\n if (isNew) { // new submission\n this.submissions = !_.isEmpty(hasInProgress) ? [hasInProgress] : [];\n } else if (!isNew && hasInProgress) { // resume 'in progress'\n filteredSubmissions.push(hasInProgress);\n this.submissions = filteredSubmissions;\n } else if (currentSubmission) { // display current submission\n filteredSubmissions.push(currentSubmission);\n this.submissions = filteredSubmissions;\n }\n resolve(submissions);\n }, (err) => {\n console.log('err', err);\n reject(err);\n });\n });\n }\n\n loadQuestions(): Promise {\n return new Promise((resolve, reject) => {\n\n // get_assessments request with 'assessment_id' & 'structured'\n let getAssessment = (assessmentId) => {\n return this.assessmentService.getAll({\n search: {\n assessment_id: assessmentId,\n structured: true\n }\n });\n };\n\n // Congregation of assessment ids to fulfill get_assessments API's param requirement\n let tasks = [];\n _.forEach(this.activity.References, (reference) => {\n if (\n reference.Assessment &&\n reference.Assessment.id\n ) {\n return tasks.push(getAssessment(reference.Assessment.id));\n }\n });\n\n /**\n * merging submission into question inside of assessment array objects\n * - set question statuses (quantity of total answered)\n * - set submission button status\n */\n let preprocessAssessmentSubmission = () => {\n this.assessmentGroups = this.mapSubmissionsToAssessment(\n this.submissions,\n this.assessmentGroups\n );\n\n // Only allow submit when all required question have answered.\n _.forEach(this.assessmentGroups, groups => {\n _.forEach(groups, assessment => {\n let groupWithAnswers = 0;\n _.forEach(assessment.AssessmentGroup, group => {\n // console.log('group.answeredQuestions', group.answeredQuestions);\n // console.log('group.totalRequiredQuestions', group.totalRequiredQuestions);\n if (group.answeredQuestions >= group.totalRequiredQuestions) {\n groupWithAnswers += 1;\n }\n });\n // console.log('groupWithAnswers', groupWithAnswers, _.size(assessment.AssessmentGroup));\n if (groupWithAnswers >= _.size(assessment.AssessmentGroup)) {\n this.allowSubmit = true;\n }\n });\n });\n\n _.forEach(this.submissions, submission => {\n if (\n submission.status === 'pending review' ||\n submission.status === 'pending approval' ||\n submission.status === 'published' || // moderated type (reviews & published)\n submission.status === 'done' // survey type\n ) {\n this.allowSubmit = false;\n }\n });\n\n resolve({\n assessmentGroups: this.assessmentGroups,\n submissions: this.submissions\n });\n };\n\n // first batch API requests (get_assessments)\n Observable.forkJoin(tasks)\n .subscribe(\n (assessments: any) => {\n this.assessmentGroups = assessments;\n this.submissions = this.navParams.get('submissions');\n\n // check if this is from single submission view\n let currentSubmission = this.navParams.get('currentSubmission');\n if (currentSubmission) {\n this.submissions = [currentSubmission];\n }\n\n // pull new when submission is updated or currentSubmission is empty\n if (this.submissionUpdated || !currentSubmission) {\n this.pullSubmissions().then(res => {\n preprocessAssessmentSubmission();\n }, err => {\n reject(err);\n });\n this.submissionUpdated = false;\n } else {\n preprocessAssessmentSubmission();\n }\n },\n (err) => {\n console.log('err', err);\n reject(err);\n }\n );\n });\n }\n\n\n /**\n * submit answer and change submission status to done\n */\n doSubmit() {\n let loading = this.loadingCtrl.create({\n content: 'Loading...'\n });\n\n loading.present().then(() => {\n let tasks = [];\n _.forEach(this.submissions, (submission) => {\n if (\n submission &&\n submission.assessment_id &&\n submission.context_id &&\n submission.id\n ) {\n tasks.push(this.assessmentService.submit({\n Assessment: {\n id: submission.assessment_id,\n context_id: submission.context_id,\n in_progress: false\n },\n AssessmentSubmission: {\n id: submission.id\n },\n AssessmentSubmissionAnswer: _.map(submission.answer, (answ) => {\n if (answ && answ.assessment_question_id && answ.answer) {\n return {\n assessment_question_id: answ.assessment_question_id,\n answer: answ.answer\n }\n }\n })\n }));\n }\n });\n\n Observable\n .forkJoin(tasks)\n .subscribe(\n (assessments: any) => {\n loading.dismiss().then(_ => {\n this.allowSubmit = false;\n this.popupAfterSubmit();\n });\n },\n err => {\n loading.dismiss().then(_ => {\n console.log('err', err);\n });\n }\n );\n });\n }\n\n clickSubmit() {\n const confirm = this.alertCtrl.create({\n title: 'Submit evidence',\n message: this.submitConfirmMessage,\n buttons: [\n {\n text: 'Okay',\n handler: () => {\n this.doSubmit();\n }\n },\n {\n text: 'Cancel',\n handler: () => {\n console.log('Submit cancelled');\n }\n }\n ]\n });\n confirm.present();\n }\n\n // items popup\n popupAfterSubmit(){\n const loading = this.loadingCtrl.create({\n content: this.loadingMessages\n });\n const alert = this.alertCtrl.create({\n title: 'Submission Successful',\n buttons: [\n {\n text: 'OK',\n handler: () => {\n this.navCtrl.setRoot(ActivitiesListPage); // dashboard page\n }\n }\n ]\n });\n\n // get initial items\n _.forEach(this.getInitialItems, element => {\n let id = element.id;\n if(!this.initialItemsCount[id]){\n this.initialItemsCount[id] = 0;\n }\n this.initialItemsCount[id]++;\n });\n // get latest updated items data api call\n loading.present();\n\n this.gameService.getItems({\n character_id: this.getCharacterID\n })\n .subscribe(\n data => {\n this.newItemsData = data.Items;\n _.forEach(data.Items, (element, index) => {\n let id = element.id;\n if(!this.newItemsCount[id]){\n this.newItemsCount[id] = 0;\n }\n this.newItemsCount[id]++;\n });\n // compare with previous get_characters() results and generate final index value array result\n _.forEach(this.newItemsCount, (element, id) => {\n if(!this.initialItemsCount[id]){\n this.totalItems.push({ 'count': element, 'id': id });\n }else {\n let diffCountVal = element - this.initialItemsCount[id];\n if(diffCountVal > 0){\n this.totalItems.push({ 'count': diffCountVal, 'id': id });\n }\n }\n });\n\n _.forEach(this.totalItems, (element, index) => {\n element.id = parseInt(element.id);\n });\n\n this.allItemsData = _.intersectionBy(this.newItemsData, this.totalItems, 'id');\n // get the final object with item occurance count value\n let groupData = _.groupBy(this.totalItems, 'id');\n if(this.allItemsData.length === 0){\n this.gotNewItems = false;\n this.cacheService.setLocal('gotNewItems', this.gotNewItems);\n loading.onDidDismiss(() => {\n alert.present(); // redirect to dashboard page\n });\n loading.dismiss();\n } else {\n _.map(this.allItemsData, (ele) => {\n this.combinedItems.push(_.extend({count: groupData[ele.id] || []}, ele));\n });\n // display items on dashboard page\n this.gotNewItems = true;\n this.cacheService.setLocal('gotNewItems', this.gotNewItems);\n this.cacheService.setLocalObject('allNewItems', this.combinedItems);\n loading.onDidDismiss(() => {\n this.navCtrl.setRoot(ActivitiesListPage);\n });\n loading.dismiss();\n }\n },\n err => {\n loading.dismiss().then(() => {\n console.log('Err: ', err);\n });\n }\n );\n }\n gotoAssessment(assessmentGroup, activity) {\n this.navCtrl.push(AssessmentsGroupPage, {\n assessmentGroup,\n activity,\n submission: assessmentGroup.submission, // use back the one back from ActivityViewPage\n submissions: this.submissions,\n event: this.navParams.get('event')\n }).then(() => {\n this.traceAssessmentProgress();\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/assessments.page.ts","import { Component } from '@angular/core';\nimport { NavParams, NavController, AlertController, LoadingController, Events } from 'ionic-angular';\nimport { FormBuilder, Validators, FormGroup, FormControl, FormArray } from '@angular/forms';\n\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { ChoiceBase, QuestionBase, Submission, AssessmentService } from '../../../services/assessment.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'assessments-group-page',\n templateUrl: './assessments-group.html',\n})\nexport class AssessmentsGroupPage {\n activity: any;\n answers: any; // to render & display submitted answers\n assessment: any;\n assessmentGroup: any;\n cacheKey: any; // to render & display stored\n canUpdateInput: boolean = false;\n event: any;\n formGroup: any;\n inProgress: any;\n published: boolean = false;\n questions: any = [];\n submission: Submission;\n\n constructor(\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public events: Events,\n public fb: FormBuilder,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams\n ) {}\n\n ionViewDidEnter() {\n // navigate from activity page\n this.activity = this.navParams.get('activity') || {};\n\n // navigate from event page\n this.event = this.navParams.get('event') || {};\n if (!_.isEmpty(this.event)) {\n this.activity = this.event;\n }\n\n this.assessment = this.activity.assessment; // required for context_id\n this.cacheKey = `assessment.group.${this.assessment.context_id}`;\n\n this.assessmentGroup = this.navParams.get('assessmentGroup') || {};\n this.submission = this.navParams.get('submission') || {};\n\n // preset key used for caching later (locally and remote data)\n this.canUpdateInput = this.isInputEditable(this.submission);\n // this.published = this.assessmentService.isPublished(this.submissions);\n this.questions = this.assessmentGroup.questions;\n this.questions = this.mapQuestionsFeedback(this.questions, this.submission);\n this.formGroup = this.retrieveProgress(\n this.buildFormGroup(this.questions),\n this.formInProgressAnswer(this.submission)\n );\n }\n\n updateSubmission() {\n this.events.publish('assessment:changes', {\n changed: true\n });\n }\n\n /**\n * @description check answers are editable\n * Must define submissions first\n * @type {boolen}\n */\n public isInputEditable = (submission):boolean => {\n if (_.isEmpty(submission) || submission.status === 'in progress') {\n return true;\n }\n return false;\n }\n\n /**\n * @description use proper context id based on situation\n *\n * @type {array}\n */\n public mapQuestionsFeedback = (questions, submission):any => {\n if (_.isEmpty(submission) || _.isEmpty(submission.review) || submission.status !== 'published') {\n return questions;\n }\n\n _.forEach(submission.review, (review) => {\n _.forEach(questions, (question, idx) => {\n if (review.assessment_question_id === question.id) {\n // text type\n if (question.type === 'text') {\n questions[idx].review_answer = review;\n }\n\n // oneof type\n if (question.type === 'oneof') {\n questions[idx].review_answer = review;\n _.forEach(question.choices, (choice, key) => {\n if (choice.id == review.answer && choice.id == question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (you and reviewer)';\n }\n if (choice.id != review.answer && choice.id == question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (you)';\n }\n if (choice.id == review.answer && choice.id != question.answer.answer) {\n questions[idx].choices[key].name = choice.name + ' (reviewer)';\n }\n });\n }\n }\n });\n });\n return questions;\n }\n\n /**\n * @description use proper context id based on situation\n * event's checkin, use event context_id (reference array in get_event)\n * assessment submission, use context_id from get_activity\n *\n * @type {number}\n */\n public getSubmissionContext = ():number => {\n // if event object is available\n if (this.event) {\n return this.event.context_id;\n }\n\n // if \"event\" not available, use assessment instead\n return this.assessment.context_id;\n }\n\n /**\n * check the questions was answered\n * @return {boolen} passed all check\n */\n isAllQuestionsAnswered = () => {\n let passed = true;\n _.forEach(this.formGroup, fg => {\n // check formGroup.validation & each field (answer & comment) validity\n if (!fg.valid && (!fg.controls.answer.valid && !fg.controls.comment.valid)) {\n passed = false;\n }\n });\n return passed;\n };\n\n /**\n * turn a collection of questions into angular's FormGroup to share among components\n * @param {array} questions list of questions from a question group (Assessment group)\n */\n buildFormGroup = (questions) => {\n let result: any = {};\n\n this.questions.forEach(question => {\n let currentAnswer = question.answer || {};\n let group = {\n answer: question.required ?\n new FormControl(currentAnswer.answer || '', Validators.required) : new FormControl(currentAnswer.answer || ''),\n comment: question.required ?\n new FormControl(currentAnswer.comment || '', Validators.required) : new FormControl(currentAnswer.comment || '')\n };\n\n // render choices' FormGroup\n let choices = {};\n if (question.choices && question.type === 'multiple') {\n question.choices.forEach(choice => {\n let answer = (question.choices) ? question.choices[choice.id] : false;\n choices[choice.id] = new FormControl(answer);\n });\n group['choices'] = new FormGroup(choices);\n }\n\n result[question.id] = new FormGroup(group);\n });\n\n return result;\n };\n\n /**\n * turn answer into answer submission format (which is formatted for POST to post_assessment API)\n * @param {object} submission single submission object retrieve from previous page/view\n * @return {object} formatted submission answer\n */\n public formInProgressAnswer(submission): boolean | Submission {\n if (_.isEmpty(submission)) {\n return false;\n }\n\n let answers = {};\n submission.answer.forEach(ans => {\n answers[ans.assessment_question_id] = {\n assessment_question_id: ans.assessment_question_id,\n answer: ans.comment || ans.answer\n }\n });\n\n return {\n Assessment: {\n id: submission.assessment_id,\n context_id: this.getSubmissionContext()\n },\n AssessmentSubmissionAnswer: answers\n };\n }\n\n /**\n * @description store assessment answer/progress locally\n */\n storeProgress = () => {\n let answers = {};\n _.forEach(this.formGroup, (question, id) => {\n let values = question.getRawValue(),\n answer = {\n assessment_question_id: id,\n answer: values.answer || values.comment,\n\n // store it if choice answer is available or skip\n choices: (!_.isEmpty(values.choices)) ? values.choices : null\n };\n\n // set empty string to remove answer\n answer.answer = (answer.answer) ? answer.answer : '';\n answers[id] = answer;\n });\n\n // final step - store submission locally\n let submission = {\n Assessment: {\n id: this.activity.assessment.id,\n context_id: this.activity.assessment.context_id\n },\n AssessmentSubmissionAnswer: answers\n };\n this.submission = submission;\n\n // local cache key\n this.cache.setLocal(this.cacheKey, JSON.stringify(submission));\n return submission;\n };\n\n /**\n * @description retrieve saved progress from localStorage\n */\n retrieveProgress = (questions: Array, answers?) => {\n let cachedProgress = answers || {}; //this.cache.getLocalObject(this.cacheKey);\n\n let newQuestions = questions;\n let savedProgress = cachedProgress.AssessmentSubmissionAnswer;\n\n if (!_.isEmpty(savedProgress)) {\n\n // index \"id\" is set as question.id in @Function buildFormGroup above\n _.forEach(newQuestions, (question, id) => {\n // check integrity of saved answer (question might get updated)\n if (savedProgress[id] && savedProgress[id].assessment_question_id == id) {\n newQuestions[id] = this.setValueWith(question, savedProgress[id]);\n }\n });\n }\n return newQuestions;\n };\n\n /**\n * @description set value to each FormControl differently based on type:\n * - \"text\", \"oneof\" & \"file\" using just \"answer\" field\n * - \"multiple\" answer is stored into \"choices\" FormControl instead\n * @param {FormGroup} question FormGroup for a question\n * @param {Object} answers answer [choices object || string answer]\n */\n public setValueWith(question, answers) {\n if (!_.isEmpty(answers.choices)) {\n question.controls.choices.setValue(answers.choices);\n } else {\n question.controls.answer.setValue(answers.answer || '');\n }\n return question;\n }\n\n displayAlert(opts) {\n return this.alertCtrl.create(opts);\n }\n\n /**\n * @description initiate save progress and return to previous page/navigation stack\n */\n save() {\n let self = this,\n loading = this.loadingCtrl.create({\n content: 'Loading...'\n }),\n // to provide a more descriptive error message (if available)\n failAlert = this.alertCtrl.create({\n title: 'Fail to submit.'\n });\n\n let saveProgress = () => {\n this.updateSubmission();\n\n loading.present().then(() => {\n self.assessmentService.save(self.storeProgress()).subscribe(\n response => {\n loading.dismiss().then(() => {\n self.navCtrl.pop();\n });\n },\n reject => {\n loading.dismiss().then(() => {\n failAlert.data.title = reject.msg || failAlert.data.title;\n failAlert.present().then(() => {\n console.log('Unable to save', reject);\n });\n });\n }\n );\n });\n };\n\n let confirmBox = this.alertCtrl.create({\n message: 'You have not completed all required questions. Do you still wish to Save?',\n buttons: [\n {\n text: 'Yes',\n handler: () => {\n saveProgress();\n }\n },\n {\n text: 'No',\n handler: () => {\n //return false;\n }\n }\n ]\n });\n\n if (!this.isAllQuestionsAnswered()) {\n confirmBox.present();\n } else {\n saveProgress();\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/group/assessments-group.page.ts","import { Component } from '@angular/core';\nimport { App, NavController, MenuController, LoadingController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../shared/cache/cache.service';\n// pages\nimport { LeaderboardSettingsPage } from '../settings/leaderboard/leaderboard-settings.page';\nimport { LoginPage } from '../../pages/login/login';\nimport { TutorialPage } from '../settings/tutorial/tutorial.page';\nimport { TermConditionPage } from '../term-condition/term-condition.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n\n@Component({\n selector: 'settings-page',\n templateUrl: 'settings.html'\n})\nexport class SettingsPage {\n helpline: string = \"help@practera.com\";\n logoutMessage: any = loadingMessages.Logout.logout;\n settings: any = [];\n\n constructor(\n public cache: CacheService,\n public menuCtrl: MenuController,\n public navCtrl: NavController,\n public loadingCtrl: LoadingController,\n public translationService: TranslationService,\n public appCtrl: App\n ) {}\n\n getUserEmail() {\n return this.cache.getLocalObject('email') || '';\n }\n goLeaderBoardSettings(){\n this.navCtrl.push(LeaderboardSettingsPage);\n }\n goToTutorial() {\n this.navCtrl.push(TutorialPage);\n }\n goToTermConditions() {\n this.navCtrl.push(TermConditionPage);\n }\n logout() {\n let loader = this.loadingCtrl.create({\n spinner: 'hide',\n content: this.logoutMessage\n });\n loader.present().then(() => {\n this.cache.clear().then(() => {\n localStorage.clear();\n window.location.reload(); // the reason of doing this is because of we need to refresh page content instead of API data cache issue occurs\n loader.dismiss();\n this.navCtrl.push(LoginPage);\n });\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/settings.page.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams } from 'ionic-angular';\n\n// Pages\nimport { EventsPreviewPage } from './events-preview.page';\n// Others\nimport { FilepickerService } from '../../../shared/filepicker/filepicker.service';\nimport { UtilsService } from '../../../shared/utils/utils.service';\nimport { WindowRef } from '../../../shared/window';\n\n@Component({\n templateUrl: './events-download.html'\n})\nexport class EventsDownloadPage {\n event: any = {};\n files: any = [];\n\n constructor(\n public fs: FilepickerService,\n public navCtrl: NavController,\n public params: NavParams,\n public win: WindowRef,\n public utils: UtilsService\n ) {}\n\n ionViewDidEnter() {\n this.event = this.params.get('event');\n this.files = [];\n\n if (this.event && this.event.files) {\n this.files = this.event.files;\n }\n\n this.files.map(file => {\n // zip file type is not viewable in filestack preview\n file.icon = this.utils.getIcon(file.type)\n });\n }\n\n /**\n * preview file with filestack plugin\n * if it is a zip filetype, download the file instead.\n *\n * @param {object} file single file from files array return from get_events in event list page\n */\n view(file) {\n if (this.utils.isCompressed(file.type)) {\n let win = this.win.nativeWindow;\n let openedWindow = win.open(file.url, '_blank');\n } else {\n this.navCtrl.push(EventsPreviewPage, {file: file});\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/download/events-download.page.ts","import { Injectable } from '@angular/core';\n\nconst zipMime = [\n 'application/x-compressed',\n 'application/x-zip-compressed',\n 'application/zip',\n 'multipart/x-zip',\n];\n\n@Injectable()\nexport class UtilsService {\n\n getIcon(mimetype: string) {\n let result: string = '';\n\n if (zipMime.indexOf(mimetype) >= 0) {\n result = 'fa-zip';\n\n // set icon to different document type (excel, word, powerpoint, audio, video)\n } else if (mimetype.indexOf('audio/') >= 0) {\n result = 'fa-sound';\n } else if (mimetype.indexOf('image/') >= 0) {\n result = 'fa-image';\n } else if (mimetype.indexOf('text/') >= 0) {\n result = 'fa-text';\n } else if (mimetype.indexOf('video/') >= 0) {\n result = 'fa-movie';\n } else {\n switch (mimetype) {\n case 'application/pdf':\n result = 'fa-pdf';\n break;\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n result = 'fa-word';\n break;\n case 'application/excel':\n case 'application/vnd.ms-excel':\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n case 'application/x-excel':\n case 'application/x-msexcel':\n result = 'fa-excel';\n break;\n case 'application/mspowerpoint':\n case 'application/vnd.ms-powerpoint':\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n case 'application/x-mspowerpoint':\n result = 'fa-powerpoint';\n break;\n default:\n result = 'fa-file';\n break;\n }\n }\n\n return result;\n }\n\n isCompressed(type: string) {\n if (zipMime.indexOf(type) >= 0) {\n return true;\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/utils/utils.service.ts","import { Injectable } from '@angular/core';\n\nfunction _window():any {\n return window;\n}\n\n@Injectable()\nexport class WindowRef {\n get nativeWindow(): any {\n return _window();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/window.ts","import { Component, OnInit } from '@angular/core';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { NavController, NavParams, AlertController } from 'ionic-angular';\nimport { Observable } from 'rxjs';\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages'; \n// services\nimport { AuthService } from '../../services/auth.service';\nimport { RequestService } from '../../shared/request/request.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\n// pages\nimport { LoginPage } from '../../pages/login/login';\n@Component({\n template: ``,\n})\nexport class RegistrationPage implements OnInit {\n user: Object = {\n email: null,\n key: null\n };\n term: String;\n content: SafeResourceUrl;\n public prefixUrl: any = this.request.getPrefixUrl();\n // loadinbg & error message variables\n public verifyFailedErrMessage = errMessages.Registration.verifyFailed.verifyfailed;\n constructor(\n public nav: NavController,\n public params: NavParams,\n public authService: AuthService,\n public sanitizer: DomSanitizer,\n public notification: NotificationService,\n public translationService: TranslationService,\n public alertCtrl: AlertController,\n public cache: CacheService,\n public request: RequestService) {}\n displayError(errorMessage?: any): void {\n let alert = this.alertCtrl.create({\n title: 'Invalid registration code',\n subTitle: errorMessage || 'Registration Code is invalid, please contact our tech support for assistance.',\n buttons: [{\n text: 'OK',\n handler: () => {\n alert.dismiss().then(() => {\n this.nav.setRoot(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n })\n return false;\n }\n }]\n });\n alert.present();\n }\n ngOnInit() {\n // check if email and activation_code are provided in the url/params\n if (!decodeURIComponent(this.params.get('email')) || !this.params.get('key')) {\n this.displayError();\n } else {\n let email = decodeURIComponent(this.params.get('email')),\n key = this.params.get('key');\n this.authService.verifyRegistration({\n email: email,\n key: key\n }).subscribe(res => {\n this.cache.setLocal('user.email', email);\n this.cache.setLocal('user.registration_key', key);\n this.cache.setLocal('user.id', res.data.User.id);\n this.user = {\n email: email,\n key: key\n };\n Observable.forkJoin([\n this.cache.write('user.email', email),\n this.cache.write('user.registration_key', key),\n this.cache.write('user.id', res.data.User.id)\n ]).subscribe(responds => {\n console.log('RespondsVerify::', responds);\n });\n }, err => {\n console.log(err);\n this.displayError(err.msg);\n });\n }\n }\n ionViewDidEnter(): void {\n this.authService.getTerms().subscribe(res => {\n console.log(\"terms data: \", res);\n this.term = res.terms_description;\n this.content = this.sanitizer.bypassSecurityTrustResourceUrl(this.prefixUrl + res.terms_url);\n });\n this.params.get('test');\n }\n ionViewDidLoad(): void {\n let category = [];\n /*if (document.URL.indexOf(\"?\") !== -1) {\n let splitURL = document.URL.split(\"?\");\n let splitParams = splitURL[1].split(\"&\");\n console.log(splitURL, splitParams);\n splitParams.forEach(param => {\n let singleURLParam = param.split('=');\n let urlParameter = {\n 'name': singleURLParam[0],\n 'value': singleURLParam[1]\n };\n category.push(urlParameter);\n });\n }*/\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/registration/registration.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController, Platform } from 'ionic-angular';\nimport { Http } from '@angular/http';\n\n// Services\nimport { LevelService } from '../../../services/level.service';\n\n@Component({\n selector: 'levels-list-page',\n templateUrl: 'list.html'\n})\nexport class LevelsListPage {\n _mock = [\n {\n id: 1,\n name: 'Rookie'\n },\n {\n id: 2,\n name: 'Cookie'\n }\n ];\n levels = [];\n\n constructor(\n public navCtrl: NavController,\n public levelService: LevelService,\n public platform: Platform,\n public toastCtrl: ToastController\n ) {\n platform.ready().then(() => {});\n }\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData(refresher = null) {\n return this.levelService.getLevels()\n .then((levels: any) => {\n this.levels = levels;\n if (refresher) {\n refresher.complete();\n }\n })\n .catch((err) => {\n this._error(err);\n console.log('err', err);\n if (refresher) {\n refresher.complete();\n }\n });\n }\n\n doRefresh(refresher) {\n this._pullData(refresher);\n // @TODO Remove it when API work\n this.levels = this._mock;\n }\n\n ionViewWillEnter() {\n this._pullData();\n // @TODO Remove it when API work\n this.levels = this._mock;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/levels/list/list.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 176;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/core/@angular lazy\n// module id = 176\n// module chunks = 0","export const confirmMessages = {\n Assessments: {\n DiscardChanges: {\n \"discard\": \"Are you sure you want to discard all changes?\"\n },\n SubmitConfirmation: {\n \"confirm\": \"Are you sure you want to submit this evidence?\"\n }\n }\n}\nexport const errMessages = {\n Activities: {\n activities: {\n \"empty\": \"Whoops... no activity has been setup ...\"\n },\n achievements: {\n \"empty\": \"Whoops... no achievement has been setup ...\"\n },\n assessments: {\n \"empty\": \"Whoops... no assessment has been setup ...\"\n }\n },\n DirectLink: {\n \"mismatch\": \"Oops... The link to log you in appears to be broken. Please login by typing your email and password.\"\n },\n Events: {\n bookEvents: {\n \"book\": \"Whoops, booking of an event has failed, please try again later.\"\n },\n cancelBooking: {\n \"cancel\": \"Whoops, we could not cancel your booking for this event, please try again later.\"\n },\n events: {\n \"empty\": \"Whoops... no event has been setup ...\"\n },\n filter: {\n \"empty\": \"There are no scheduled events available. Please check back later.\",\n \"noBookings\": \"You have no bookings. Tap on 'Browse' and book an event now to enhance your skills.\",\n \"noAttended\": \"You have not attended any events yet.\"\n }\n },\n General: {\n loading: {\n \"load\": \"Whoops, a connection error occurred. Please try again later.\"\n },\n empty: {\n \"empty\": \"Whoops... no data has been setup ...\"\n }\n },\n Login: {\n \"login\": \"Oops... Invalid email or password, please type it again.\"\n },\n PasswordValidation: {\n mismatch: {\n \"mismatch\": \"You must enter matching passwords. Please Try again.\"\n },\n minlength: {\n \"minlength\": \"The minimum length allowed for a password is 8 characters.\"\n }\n },\n Registration: {\n mismatch: {\n \"mismatch\": \"The passwords you have entered do not match each other. Please enter the same password.\"\n },\n error: {\n \"error\": \"Sorry, something has gone wrong in processing your registration. Please try again or contact \" // after the \"contact\", the content will be a variable, please check with Registration/model.ts file to view detail\n },\n invalidUser: {\n \"account\": \"Whoops... You do not have a account. To have one set up please contact \" // after the \"contact\", the content will be a variable, please check with Registration/model.ts file to view detail\n },\n noPassword: {\n \"password\": \"Whoops... Sorry, we have been unable to register you. You must enter a valid password.\"\n },\n alreadyRegistered: {\n \"registered\": \"You have already registered. Please type the email address and password you registered with to login.\"\n },\n verifyFailed: {\n \"verifyfailed\": \"Sorry, verification failed, please resend your email and password.\"\n }\n },\n ResetPassword: {\n resetLoginFailed: {\n \"failed\": \"Whoops, we were unable to reset your password. Please try again.\"\n },\n invalidLink: {\n \"invalid\": \"Oops... The log in link is broken. You will be redirected to the login page. Try again with your username and password.\"\n }\n },\n TermConditions: {\n disagreement: {\n \"noAccepted\": \"You must agree to the Terms and Conditions.\"\n },\n verifyFailed: {\n \"verifyfailed\": \"Oops... Registration verification has failed. Please try again later.\"\n }\n }\n}\nexport const generalVariableMessages = {\n helpMail: {\n \"email\": \"help@support.com\"\n }\n}\nexport const loadingMessages = {\n Login: {\n \"login\": \"Logging in ...\"\n },\n LoadingSpinner: {\n \"loading\": \"Loading ...\"\n },\n Logout: {\n \"logout\": \"See you next time\"\n },\n SendingEmail: {\n \"send\": \"Sending email to us ...\" \n },\n SentMessage: { // the reason why this message has been divided into two parts, because of we have a variable (${this.email}) in the middle of message\n \"partOne\": \"We have sent an email to\",\n \"partTwo\": \"with a link to log into the system - please check your inbox. If you haven't received an email in a few minutes please check the address you entered and your spam folder.\"\n },\n SuccessRegistration: {\n \"successRegistration\": \"Your password has been successfully set. You will now be logged in.\"\n },\n SuccessResetPassword: {\n \"successResetPassword\": \"Password has been changed successfully. Logging in now.\"\n },\n VerifyUser: {\n \"verify\": \"Verifying user identity ...\"\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/messages.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 219;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src lazy\n// module id = 219\n// module chunks = 0","import { Injectable, Optional } from '@angular/core';\nimport { Http, Response, Headers, RequestOptions, RequestOptionsArgs, URLSearchParams } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\nimport * as _ from 'lodash';\nimport { CacheService } from '../../shared/cache/cache.service';\n\n// Definition configure for API request\n// This ONLY definition of class, any changed of value will no effect.\n// Please configuring on `configs/config.ts`.\nexport class RequestServiceConfig {\n appKey = '';\n prefixUrl = 'http://local.practera.com/'\n}\n\n@Injectable()\nexport class RequestService {\n private appkey: string;\n private prefixUrl: string;\n\n private apikey: string;\n private timelineID: number;\n\n constructor (\n @Optional() config: RequestServiceConfig,\n private http: Http,\n private cacheService: CacheService\n ) {\n // Inject appKey and prefixUrl when RequestServiceConfig loaded\n if (config) {\n this.appkey = config.appKey;\n this.prefixUrl = config.prefixUrl;\n }\n }\n\n /**\n * Return current prefixUrl\n * @param {String} prefixUrl\n */\n public getPrefixUrl(){\n return this.prefixUrl;\n }\n\n /**\n * Return current appKey\n * @param {String} appKey\n */\n public getAppkey(){\n return this.appkey;\n }\n\n /**\n * Error handle for API response\n * @param {Error} error\n */\n private handleError (error) {\n let errorFrom = {\n api: 'SERVER_ERROR',\n },\n currentError: any = error.json();\n if (typeof error !== 'object') {\n throw 'Unable to process API respond!';\n }\n if (error.status === 0) { // client unrecoverable error encountered\n currentError.frontendCode = errorFrom.api;\n } else {\n let errorBody = error.json();\n currentError.frontendCode = errorBody.data || errorBody.error;\n }\n return Observable.throw(currentError);\n }\n\n // Inject required fields to header of API request\n appendHeader(customHeader: Object = {\n 'Content-Type': 'application/json',\n 'apikey': null\n }) {\n let headers = new Headers(customHeader);\n\n // Inject apiKey from cached\n let apiKey = this.cacheService.getCached('apikey') ||\n this.cacheService.getLocalObject('apikey');\n if (!_.isEmpty(apiKey)) {\n headers.set('apikey', apiKey);\n }\n\n // Inject timelineID from cached\n let timelineId = this.cacheService.getCached('timelineID') ||\n this.cacheService.getLocalObject('timelineID');\n if (timelineId) {\n headers.set('timelineID', timelineId);\n }\n\n // Inject appKey from config\n if (!_.isUndefined(this.appkey)) {\n headers.set('appkey', this.appkey);\n }\n return headers;\n }\n\n // Set API request options\n setOptions(options) {\n let result = new RequestOptions({ headers: this.appendHeader() });\n let timelineId = this.cacheService.getLocal('timelineID');\n\n let params = new URLSearchParams();\n if (timelineId) {\n params.set('timelineID', timelineId);\n }\n\n if (options && options.search) {\n _.each(options.search, (value, key) => {\n params.set(key, value);\n });\n }\n result.search = params;\n\n return result;\n }\n\n /**\n * Send GET request to server\n * @param {String} endPoint\n * @param {Object} options\n */\n get(endPoint: string = '', options?: any) {\n let opt = this.setOptions(options);\n\n return this.http.get(this.prefixUrl + endPoint, opt)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n /**\n * Send POST request to server\n * @param {String} endPoint\n * @param {Object} data\n * @param {Object} header\n */\n post(endPoint: string, data: any, header = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }) {\n let options = new RequestOptions({ headers: this.appendHeader(header) });\n return this.http.post(this.prefixUrl + endPoint, data, options)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n /**\n * Send DELETE request to server\n * @param {String} endPoint\n * @param {Object} header\n */\n delete(endPoint: string, header?:Object) {\n let options = new RequestOptions({ headers: this.appendHeader(header) });\n return this.http.delete(this.prefixUrl + endPoint, options)\n .map(this.extractData)\n .catch(this.handleError);\n }\n\n // Extract response data and convert it to JSON\n extractData(res: Response) {\n let body = res.json();\n return body.data || {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/request/request.service.ts","import { Component } from '@angular/core';\nimport { NavParams, ViewController } from 'ionic-angular';\n\n@Component({\n selector: 'modal',\n template: `\n \n \n \n \n \n {{ context.title }}\n \n
\n \n\t\t
\n\n

\n
{{ context.score }}
\n\n \n\n \n
\n `\n})\nexport class ModalComponent {\n\n context;\n\n constructor(\n public params: NavParams,\n public viewCtrl: ViewController\n ) {\n this.context = this.params.get('context');\n }\n\n ngOnInit() {}\n\n dismiss() {\n this.viewCtrl.dismiss();\n }\n\n gotoScreen(path) {\n this.dismiss();\n\n // if ($state.current.name != route || route !== '') {\n // $state.go(route);\n // }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/modal.component.ts","import { Component, NgZone, OnInit } from '@angular/core';\nimport { NavController, ViewController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ResetpasswordModelPage } from '../../pages/resetpassword-model/resetpassword-model';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-reset-password',\n templateUrl: 'reset-password.html'\n})\nexport class ResetPasswordPage implements OnInit {\n\n emailVal: string;\n keyVal: string;\n\n invalidLinkErrMessage = errMessages.ResetPassword.invalidLink.invalid;\n isLandscaped: boolean = false;\n isPwdMatch: boolean = false;\n minLengthCheck: boolean = true;\n milestone_id: string;\n password: string;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n resetPasswordLoginFailedMessage: any = errMessages.ResetPassword.resetLoginFailed.failed;\n resetPwdFormGroup: any;\n successResetPasswordMessage: any = loadingMessages.SuccessResetPassword.successResetPassword;\n verify_password: string;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n verifyUserMessage = loadingMessages.VerifyUser.verify;\n windowHeight: number = window.innerHeight / 3;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public formBuilder: FormBuilder,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslationService,\n public viewCtrl: ViewController\n ) {\n // validation for both password values: required & minlength is 8\n this.resetPwdFormGroup = formBuilder.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n })\n }\n /**\n * Detect user device type (mobile or desktop) on initial page load\n * Purpose: Initially page loaded, this peice code will detect user screen\n whether is mobile or desktop device (including iPad).\n * @param {}\n * @return A calculated ratio value plus screen innerWidth value to determine\n user screen is mobile device or desktop device. If device is mobile\n device, ngOnInit() will disable landscape mode for mobile device\n */\n ngOnInit() {\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad ResetpasswordPage');\n }\n ionViewWillEnter() {\n this.verifyKeyEmail();\n }\n /**\n * to verify user is whether typed or clicked the email link\n * Purpose: if user is typed the email link key and email, user is not allowed\n to veiw the reset password page and display one error hint screen\n for user. As long as user clicked email link from mailbox, user is\n enabled to view the reset password page\n * @param { key, email }\n * @return if user clicked email link, return reset password page, otherwise,\n return error hint screen\n */\n verifyKeyEmail(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n this.keyVal = key;\n this.emailVal = email;\n const loading = this.loadingCtrl.create({\n content: this.verifyUserMessage\n });\n loading.present();\n this.authService.verifyUserKeyEmail(key, email)\n .subscribe(data => {\n loading.dismiss();\n this.verifySuccess = true;\n console.log(\"valueTrue: \" + this.verifySuccess);\n },\n err => {\n loading.dismiss();\n this.verifySuccess = false;\n console.log(\"valueFalse: \" + this.verifySuccess);\n setTimeout(() => {\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n }, 5000);\n });\n }\n /**\n * to update password in db\n * Purpose: store new password for user\n * @param { key, email, password, verify_password }\n * @return if API request is passed (status code: 200), user password updated\n successfully, otherwise, error hint popup to indicate user password\n update failed\n */\n updatePassword(){\n let key = this.navParams.get('key'),\n email = decodeURIComponent(this.navParams.get('email'));\n const loading = this.loadingCtrl.create({\n content: this.successResetPasswordMessage\n });\n loading.present().then(() => {\n this.authService.resetUserPassword(key, email, this.password, this.verify_password).subscribe(data => {\n // loading.dismiss();\n // this.navCtrl.push(LoginPage);\n this.authService.loginAuth(email, this.password)\n .subscribe(data => {\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n this.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n loading.dismiss().then(() => {\n this.loginError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n });\n }\n // after password set, auto login error alertbox\n loginError(error) {\n const alertLogin = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.resetPasswordLoginFailedMessage,\n buttons: ['Close']\n });\n alertLogin.present();\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/reset-password/reset-password.ts","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { i18nEN } from './assets/i18n-en';\nimport { i18nCN } from './assets/i18n-cn'; \n@Injectable()\nexport class TranslationService {\n constructor(public translate: TranslateService,){\n translate.addLangs([\"en\", \"cn\"]);\n translate.setDefaultLang(\"en\");\n translate.use(\"en\");\n }\n isTranslated(checkStatus){\n return checkStatus == true ? this.translate.use(\"cn\") : this.translate.use(\"en\")\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.service.ts","import { FormControl } from '@angular/forms';\n\nexport class FormValidator {\n static isValidEmail(formCtrl: FormControl){\n var regexValue = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(formCtrl.value);\n if(regexValue) {\n return null;\n }\n return { \"inValidEmail\": true }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/validators/formValidator.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\nimport { Http, Headers, URLSearchParams, RequestOptions } from '@angular/http';\n@Injectable()\nexport class AuthService {\n appkey: any = this.request.getAppkey();\n prefixUrl: any = this.request.getPrefixUrl();\n AUTH_ENDPOINT: any = this.prefixUrl + 'api/auths.json?action=';\n\n constructor(\n public request: RequestService,\n public http: Http\n ) {}\n\n headerData() {\n let headers = new Headers();\n headers.append('Content-Type', 'application/x-www-form-urlencoded');\n headers.append('appkey', this.appkey);\n return headers;\n }\n\n getTerms() {\n let options = new RequestOptions({headers: this.headerData()});\n return this.http.get(this.prefixUrl+'api/registration_details.json', options)\n .map(res => res.json());\n }\n\n verifyRegistration(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `email=${data.email}`,\n `key=${data.key}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n register(data) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `password=${data.password}`,\n `user_id=${data.user_id}`,\n `key=${data.key || 'thisissamplekey'}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'registration', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n loginAuth(email, password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `data[User][email]=${email}`,\n `data[User][password]=${password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'authentication', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n forgotPassword(email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('email', email);\n return this.http.post(this.AUTH_ENDPOINT+'forgot_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n verifyUserKeyEmail(key, email){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'verify_reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n resetUserPassword(key, email, password, verify_password) {\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams([\n `key=${key}`,\n `email=${email}`,\n `password=${password}`,\n `verify_password=${verify_password}`\n ].join('&'));\n return this.http.post(this.AUTH_ENDPOINT+'reset_password', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n magicLinkLogin(auth_token){\n let options = new RequestOptions({headers: this.headerData()});\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('auth_token', auth_token);\n return this.http.post(this.prefixUrl+'api/auths.json?', urlSearchParams.toString(), options)\n .map(res => res.json());\n }\n\n getUser() {\n return this.request.get('api/users.json');\n }\n\n isAuthenticated() {\n return true;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/auth.service.ts","import { Component } from '@angular/core';\n\n// Pages\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { RankingsPage } from '../rankings/list/rankings.page';\nimport { SettingsPage } from '../settings/settings.page';\nimport { TestPage } from './test.page';\nimport { EventsListPage } from '../events/list/list.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\n\n@Component({\n templateUrl: 'tabs.html',\n providers: []\n})\nexport class TabsPage {\n // this tells the tabs component which Pages\n // should be each tab's root Page\n ranking: any = RankingsPage;\n // ranking: any = TestPage;\n dashboard: any = ActivitiesListPage;\n settings: any = SettingsPage;\n events: any = EventsListPage;\n\n constructor(\n public translationService: TranslationService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/tabs.page.ts","import { Component } from '@angular/core';\nimport { ViewController, NavParams } from 'ionic-angular';\n\n@Component({\n template: `\n \n \n \n \n \n {{activityData.name}}\n \n \n \n \n

{{ activityData.name }}

\n\n
\n\n

{{ activityData.description || 'No descriptions available.' }}

\n
\n\n \n \n Download\n \n
\n `\n})\n\nexport class ActivitiesViewModalPage {\n activity: any = {};\n activityData: Object = {};\n\n constructor(\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {\n }\n\n ionViewDidEnter(): void {\n this.activity = this.navParams.get('activity');\n this.activityData = this.activity.Activity;\n console.log(this.activity.Activity);\n }\n\n dismiss() {\n let data = { 'foo': 'bar' };\n this.viewCtrl.dismiss(data);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/view/activities-view-modal.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslateService } from '@ngx-translate/core';\n\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n//Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\n\n@Component({\n selector: 'activity-list-popup',\n templateUrl: 'popup.html'\n})\nexport class ActivityListPopupPage {\n\n achievementData: any = null;\n achievementName: string;\n achievementsLoadingErr: any = errMessages.General.loading.load;\n achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n badgeUrl: string;\n description: string;\n enableData: boolean = null;\n loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n points: string;\n unlock_id: any;\n\n constructor(\n public achievementService: AchievementService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {\n this.unlock_id = this.navParams.get('unlock_id');\n // console.log('Unlock id value: ', this.unlock_id);\n }\n\n ionViewWillEnter(){\n let loader = this.loadingCtrl.create({\n content: this.loadingMessage\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.achievementsLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let nothingLoaded = this.toastCtrl.create({\n message: this.achievementsEmptyDataErr,\n duration: 4000,\n position: 'bottom'\n });\n loader.present().then(() => {\n this.achievementService.getAll()\n .subscribe(\n (data) => {\n if (data.length > 0) {\n this.enableData = true;\n this.achievementData = data.find(res => res.Achievement.id === this.unlock_id).Achievement;\n this.achievementName = this.achievementData.name;\n this.badgeUrl = this.achievementData.badge;\n this.description = this.achievementData.description;\n this.points = this.achievementData.points;\n loader.dismiss().then(() => {\n console.log(this.achievementData);\n });\n } else {\n this.enableData = false;\n loader.dismiss().then(() => {\n nothingLoaded.present();\n });\n }\n },\n (err) => {\n this.enableData = false;\n loader.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n )\n });\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/popup.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { GameService } from '../../../services/game.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'rankings-list-page',\n templateUrl: 'rankings.html'\n})\nexport class RankingsPage {\n emptyErrorMessage: any = errMessages.General.loading.load;\n listRankingData: any = [];\n loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n myRankingData: any = [];\n rankingData: any = [];\n totalData: any = [];\n\n constructor(\n public alertCtrl: AlertController,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n ionViewWillEnter(){\n this.RankingData();\n }\n RankingData(){\n const loading = this.loadingCtrl.create({\n content: this.loadingMessages\n });\n const emptyDataAlert = this.alertCtrl.create({\n title: 'Sorry, No data has been found',\n message: this.emptyErrorMessage,\n buttons: ['Close']\n });\n loading.present();\n // @TODO remove later\n let gameId = this.cacheService.getLocalObject('game_id');\n this.gameService.getCharacters(gameId)\n .subscribe((characters) => {\n // Now only have one character per project\n let me = characters.Characters[0];\n this.gameService.getRanking(gameId, me.id)\n .subscribe(\n results => {\n loading.dismiss().then(() => {\n this.totalData = results;\n this.rankingData = this.totalData;\n // We only have 1 character\n if(this.totalData.MyCharacters){\n this.myRankingData = this.totalData.MyCharacters[0] || [];\n }else {\n this.myRankingData = [];\n }\n this.listRankingData = this.totalData.Characters;\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log('err', err);\n emptyDataAlert.present();\n });\n }\n );\n },\n err => {\n loading.dismiss().then(() => {\n console.log('Error: ', err.msg);\n emptyDataAlert.present();\n });\n });\n }\n goRankingDetail(myRanking){\n this.navCtrl.push(RankingDetailsPage, {\n myRanking: myRanking\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/list/rankings.page.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController, ModalController } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingBadgesPage } from './ranking-badges';\n@Component({\n selector: 'rankings-details-page',\n templateUrl: 'ranking-details.html'\n})\nexport class RankingDetailsPage {\n public userAchievementsData: any = [];\n public achievementBadgeImage = '../assets/img/default/default-badge.png';\n public achievementName = 'Achievement';\n public totalPoints = 0;\n public myRank: any= {};\n\n public emptyAchievementMessage = errMessages.Activities.achievements.empty;\n public loadingMessages: any = loadingMessages.LoadingSpinner.loading;\n public emptyErrorMessage: any = errMessages.General.loading.load;\n constructor(public navCtrl: NavController,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public params: NavParams,\n public achievementService: AchievementService){}\n\n ionViewWillEnter() {\n this.myRank = this.params.get('myRanking');\n this.totalPoints = this.myRank.experience_points;\n\n let loader = this.loadingCtrl.create();\n loader.present().then(() => {\n this.userAchievements()\n .then(() => {\n loader.dismiss();\n }, err => {\n console.log('log::', err);\n });\n });\n\n }\n userAchievements(): Promise {\n return new Promise((resolve, reject) => {\n this.achievementService.getAchievements()\n .subscribe(\n (data) => {\n console.log('achievemnts', data);\n if (data) {\n // Filter achievemnts\n _.forEach(data.Achievement, element => {\n if(element.visibility !== 2){\n this.userAchievementsData.push(element);\n }\n });\n }\n resolve();\n },\n (err) => {\n console.log(\"Error: \", err);\n reject(err);\n }\n );\n });\n }\n goToBadgeDetailsPage(achievementData){\n let goRankingBadgesPopup = this.modalCtrl.create(RankingBadgesPage, { achievement: achievementData });\n goRankingBadgesPopup.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-details.page.ts","import { Component } from '@angular/core';\nimport { ViewController, ToastController, LoadingController, NavParams } from 'ionic-angular';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../../app/messages'; \nimport * as _ from 'lodash';\n// services\nimport { AchievementService } from '../../../services/achievement.service';\n// pages\nimport { RankingDetailsPage } from '../view/ranking-details.page';\n@Component({\n selector: 'ranking-badges',\n templateUrl: 'ranking-badges.html'\n})\nexport class RankingBadgesPage {\n public currentAchievement: any = null;\n public badgeUrl: string = '../assets/img/default/default-badge.png';\n public description: string = \"No Description Yet ..\";\n public points: number = 0;\n public achievementName: string = \"Achievement\";\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n public achievementsLoadingErr: any = errMessages.General.loading.load;\n public achievementsEmptyDataErr: any = errMessages.Activities.achievements.empty;\n constructor(public viewCtrl: ViewController,\n public navParams: NavParams,\n public toastCtrl: ToastController,\n public loadingCtrl: LoadingController,\n public achievementService: AchievementService,\n public translationService: TranslationService){\n this.currentAchievement = this.navParams.get('achievement');\n console.log(\"currentAchievement: \", this.currentAchievement);\n }\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/rankings/view/ranking-badges.ts","import { Component } from '@angular/core';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\n\n@Component({\n selector: 'leaderboard-settings-page',\n templateUrl: 'leaderboard-settings.html'\n})\nexport class LeaderboardSettingsPage {\n isHide: boolean = false;\n useremail: string = this.cacheService.getLocalObject('email') || '';\n username: string = this.cacheService.getLocalObject('name') || '';\n\n constructor(\n public cacheService: CacheService\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/leaderboard/leaderboard-settings.page.ts","import { Injectable, Component, ViewChild } from '@angular/core';\nimport { NavController, LoadingController, Slides } from 'ionic-angular';\n\n// Pages\nimport { ActivitiesListPage } from '../../activities/list/list.page';\n\n@Injectable()\n@Component({\n selector: 'tutorial-page',\n templateUrl: 'tutorial.html'\n})\nexport class TutorialPage {\n @ViewChild(Slides) slides: Slides;\n\n indexCounter: number = 0;\n hideNextButton: boolean = false;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n goDashbaord() {\n this.navCtrl.setRoot(ActivitiesListPage);\n }\n goPrev() {\n this.slides.slidePrev();\n this.hideNextButton = false;\n }\n goNext() {\n this.slides.slideNext();\n this.slides.isEnd() == true ? this.hideNextButton = true : this.hideNextButton = false;\n // console.log(this.hideNextButton);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/settings/tutorial/tutorial.page.ts","import { Component, Input } from '@angular/core';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { NavController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\n// pages\nimport { RegisterPage } from '../registration/register.page';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\n\n@Component({\n selector: 'term-condition',\n templateUrl: 'term-condition.html'\n})\nexport class TermConditionPage {\n @Input('content') content?: SafeResourceUrl;\n @Input('user') user: any;\n\n agreed:boolean = false;\n checkAccessMethod: boolean = false;\n disagreeErrMessage = errMessages.TermConditions.disagreement.noAccepted;\n helpEmailMessage = generalVariableMessages.helpMail.email;\n verifyFailedErrMessage = errMessages.TermConditions.verifyFailed.verifyfailed;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public nav: NavController,\n public notificationService: NotificationService,\n public translationService: TranslationService,\n ) {}\n\n accessMethod(){\n return (window.location.href.indexOf('?do=') > -1) ? this.checkAccessMethod = true : this.checkAccessMethod = false\n }\n displayError(errorMessage?: any): void {\n let alert = this.alertCtrl.create({\n title: 'Invalid registration code',\n subTitle: errorMessage,\n buttons: [{\n text: 'Close'\n }]\n });\n alert.present();\n }\n backToSAccountPage() {\n this.nav.popToRoot();\n }\n ionViewDidEnter() {\n console.log(this.user);\n }\n agree(user): void {\n if (this.agreed === true) {\n this.nav.push(RegisterPage, user);\n } else {\n this.notificationService.present(this.disagreeErrMessage);\n }\n }\n /**\n * verify if params from url is allowed to proceed with registration\n */\n verify(): void {\n this.authService.verifyRegistration({\n key: 'test',\n password: 'test'\n }).subscribe(\n res => {\n console.log(res);\n },\n err => {\n this.notificationService.present(this.verifyFailedErrMessage);\n },\n () => {\n this.nav.push(TabsPage);\n }\n );\n }\n /**\n * toggle Read & confirm to proceed next registration page\n */\n toggleAgree(): void {\n this.agreed = !this.agreed;\n }\n navToRegister(): void {\n if (this.agreed === true) {\n console.log(this.nav.getViews());\n }\n }\n onTermError(err): void {\n const supportEmail = this.helpEmailMessage;\n if ((err.data || {}).msg) {\n //@TODO: implement error handling\n console.log({title: \"Unable to register\", template: `Something went wrong, please contact ${supportEmail}.`});\n } else if (err.data.msg.indexOf('already registered') != -1) {\n console.log({\n title: \"Account already registered\",\n template: \"Please log in, or click 'forgot password'\"\n });\n } else {\n console.log({\n title: \"Invalid registration link\",\n template: `Please check your email again, or contact ${supportEmail}`\n });\n }\n }\n // temporary fix for direct signin\n signIn(): void {\n this.nav.push(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-condition.page.ts","import { Component, ViewChild, OnInit, Inject } from '@angular/core';\nimport { NgForm, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NavController, ViewController, AlertController, LoadingController, NavParams } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { NotificationService } from '../../shared/notification/notification.service';\nimport { TranslationService } from '../../shared/translation/translation.service';\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\n// Others\nimport { loadingMessages, errMessages, generalVariableMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\nconst supportEmail = generalVariableMessages.helpMail.email;\n\n@Component({\n selector: 'register',\n templateUrl: 'register.html',\n})\nexport class RegisterPage implements OnInit {\n @ViewChild('registrationForm') registrationForm: NgForm;\n\n changeContent: boolean = false;\n clickSuspended: boolean = false;\n invalidUserErrMessage: any = errMessages.Registration.invalidUser.account;\n isPwdMatch: boolean = false;\n milestone_id: string;\n minLengthCheck: boolean = true;\n noPasswordErrMessage: any = errMessages.Registration.noPassword.password;\n password: string;\n passwordMismatchErrMessage: any = errMessages.Registration.mismatch.mismatch;\n passwordMismatchMessage: any = errMessages.PasswordValidation.mismatch.mismatch;\n passwordMinlengthMessage: any = errMessages.PasswordValidation.minlength.minlength;\n pwdMacthBool: boolean = false;\n regForm: any;\n registrationErrMessage: any = errMessages.Registration.error.error;\n registeredErrMessage: any = errMessages.Registration.alreadyRegistered.registered;\n submitted: boolean = false;\n successRegistrationLoading: any = loadingMessages.SuccessRegistration.successRegistration;\n user: any = {\n password: '',\n verify_password: ''\n };\n verify_password: string;\n verifyFailedErrMessage = errMessages.Registration.verifyFailed.verifyfailed;\n verifyPwd: boolean = false;\n verifySuccess: boolean = null;\n\n constructor(\n @Inject(FormBuilder) fb: FormBuilder,\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cache: CacheService,\n public gameService: GameService,\n public loading: LoadingController,\n public milestone: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams,\n public notificationService: NotificationService,\n public viewCtrl: ViewController,\n public translationService: TranslationService,\n ) {\n // validation for both password values: required & minlength is 8\n this.regForm = fb.group({\n password: ['', [Validators.minLength(8), Validators.required]],\n verify_password: ['', [Validators.minLength(8), Validators.required]],\n });\n }\n\n ngOnInit() {}\n\n displayAlert(message) {\n return this.alertCtrl.create({\n title: 'Test',\n message: message,\n buttons: ['OK']\n });\n }\n onSubmit(form: NgForm):void {\n let self = this;\n self.submitted = true;\n function onRegError(err) {\n if (err.frontendErrorCode === 'SERVER_ERROR') {\n throw 'API endpoint error';\n }\n let message = this.registrationErrMessage + `${supportEmail}`;\n if (err && err.data && err.data.msg) {\n switch (err.data.msg) {\n case 'Invalid user':\n message = this.invalidUserErrMessage + `${supportEmail}`;\n break;\n case 'No password':\n message = this.noPasswordErrMessage;\n break;\n case 'User already registered':\n message = this.registeredErrMessage;\n break;\n }\n }\n self.displayAlert(message).present();\n self.submitted = false;\n }\n\n function onFinally() {\n //@TODO: log something maybe\n // self.navCtrl.push(TabsPage);\n console.log('Final step - log something here');\n }\n if (this.user.password !== this.user.verify_password) {\n this.notificationService.alert({\n title: 'Incorrect Password',\n subTitle: this.passwordMismatchErrMessage,\n buttons: ['Close']\n });\n } else {\n const loading = this.loading.create({\n dismissOnPageChange: true,\n content: this.successRegistrationLoading\n });\n // registration api call: to let user set password and complete registration process\n loading.present().then(() => {\n this.authService.register({\n email: this.cache.getLocal('user.email'),\n key: this.cache.getLocal('user.registration_key'),\n user_id: this.cache.getLocal('user.id'),\n password: this.regForm.get('password').value\n }).subscribe(regRespond => {\n //@TODO: set user data\n regRespond = regRespond.data;\n console.log(regRespond);\n this.cache.setLocalObject('apikey', regRespond.apikey);\n this.cache.setLocalObject('timelineID', regRespond.Timeline.id);\n this.cache.setLocal('gotNewItems', false);\n // after passed registration api call, we come to post_auth api call to let user directly login after registred successfully\n this.authService.loginAuth(this.cache.getLocal('user.email'), this.regForm.get('password').value)\n .subscribe(\n data => {\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cache.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get user data after registration and login\n self.authService.getUser()\n .subscribe(\n data => {\n console.log(data);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after registration and login\n self.milestone.getMilestones()\n .subscribe( data => {\n loading.dismiss().then(() => {\n // console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cache.setLocalObject('milestone_id', data.data[0].id);\n self.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n });\n },\n err => {\n loading.dismiss().then(() => {\n console.log(err);\n });\n }\n );\n }, onRegError, onFinally);\n });\n }\n }\n setRegistrationData(data) {\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cache.set(key, datum));\n });\n cacheProcesses.push(this.cache.set('timelineID', data.Timeline.id));\n this.cache.setLocal('timelineID', data.Timeline.id);\n return Observable.from(cacheProcesses);\n }\n goToLogin() {\n this.cache.clear().then(() => {\n this.navCtrl.push(LoginPage);\n });\n }\n // check password minmimum length\n checkMinLength(){\n return (this.password.length < 8 || this.verify_password.length < 8) ? this.minLengthCheck = true : this.minLengthCheck = false;\n }\n // check password mismacth issue\n verifyPwdKeyUp() {\n return this.verifyPwd = true;\n }\n pwdMatchCheck() {\n return this.password != this.verify_password ? this.isPwdMatch = true : this.isPwdMatch = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/registration/register.page.ts","import { Component, Output, EventEmitter } from '@angular/core';\nimport { Tabs, NavParams, NavController, AlertController, LoadingController, ActionSheetController, ToastController } from 'ionic-angular';\n\n// services\nimport { AssessmentService } from '../../../services/assessment.service';\nimport { EventService } from '../../../services/event.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { AssessmentsGroupPage } from '../../assessments/group/assessments-group.page';\nimport { AssessmentsPage } from '../../assessments/assessments.page';\nimport { EventCheckinPage } from '../checkin/event-checkin.page';\nimport { EventsDownloadPage } from '../download/events-download.page';\nimport { EventsListPage } from '../list/list.page';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as moment from 'moment';\n\nconst terms = {\n booked: 'Booked'\n};\n@Component({\n templateUrl: './events-view.html'\n})\nexport class EventsViewPage {\n booked_text: string = 'Booked';\n bookEventErrMessage: any = errMessages.Events.bookEvents.book;\n bookingStatus: string = '';\n cancelBookingErrMessage: any = errMessages.Events.cancelBooking.cancel;\n completedSubmissions: boolean = false;\n event: any = {};\n justBooked: boolean = false;\n loadings: any = { checkin: true };\n submissions: Array = [];\n\n constructor(\n public actionSheetCtrl: ActionSheetController,\n public alertCtrl: AlertController,\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navParams: NavParams,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.event = navParams.get('event');\n }\n\n public availability(event): string {\n return (event.isBooked)? terms.booked : event.remaining_capacity + ' of ' + event.capacity + ' seats available';\n }\n\n ionViewWillEnter() {\n this.loadings.checkin = true;\n this.submissions = []; // reset submissions\n\n if (this.event.References) {\n this.event = Object.assign(this.event, this.extractAssessment(this.event.References));\n }\n\n if (this.event) {\n this.bookingStatus = this.availability(this.event);\n }\n }\n\n ionViewDidEnter() {\n this.completedSubmissions = false;\n this.submissionService.getSubmissions({\n search: {\n context_id: this.event.context_id\n }\n }).subscribe(res => {\n this.loadings.checkin = false;\n res.forEach(submission => {\n submission = this.submissionService.normalise(submission);\n this.submissions.push(submission);\n if (submission.status === 'done') {\n this.completedSubmissions = true;\n }\n });\n }, (err) => {\n this.loadings.checkin = false;\n console.log(err);\n });\n }\n\n /**\n * @name extractAssessment\n * @description each event has only one assessment\n * @param {Array} references References array response from get_activity API\n */\n extractAssessment(references: Array) {\n let ref = references[0];\n ref.Assessment.context_id = ref.context_id;\n\n return {\n assessment: ref.Assessment,\n context_id: ref.context_id\n };\n }\n\n /**\n * Push Download page to ionic nav stack (navigate to attachment download page)\n */\n gotoDownload(event) {\n this.navCtrl.push(EventsDownloadPage, {event});\n }\n\n /**\n * Event booking function\n * @param {object} event Single event object from get_events API response\n */\n checkBookStatus() {\n return false ? (this.event.remaining_capacity == this.event.capacity && this.event.isBooked == false) : (this.event.remaining_capacity != this.event.capacity && this.event.isBooked == true)\n }\n\n book(event): void {\n let earnPoints = this.alertCtrl.create({\n message: `

Congratulations!


\"Congratulations

You have earned 20 points.

`,\n buttons: [\n {\n text: 'OK',\n role: 'OK',\n handler: () => {\n console.log('OK, points earned');\n }\n }\n ]\n });\n\n let bookLoading = this.loadingCtrl.create({\n content: 'Booking ..'\n });\n let bookFailed = this.toastCtrl.create({\n message: this.bookEventErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let bookPopup = this.actionSheetCtrl.create({\n title: `Do you want to book a seat for ${ this.event.title } at ${ moment.utc(this.event.start).local().format(\"dddd, MMM D [at] h:mm A\") }?`,\n buttons:[\n {\n text: 'Cancel',\n role: 'cancel',\n handler: () => {\n this.bookingStatus = this.availability(this.event);\n }\n },\n {\n text: 'Confirm',\n role: 'OK',\n handler: () => {\n bookLoading.present();\n this.eventService.bookEvent(this.event.id)\n .subscribe(\n data => {\n this.justBooked = true;\n if(this.justBooked == true) {\n this.booked_text;\n }\n bookLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n bookLoading.dismiss().then(() => {\n bookFailed.present();\n });\n }\n );\n }\n },\n ]\n });\n bookPopup.present();\n }\n\n /**\n * @note existence of References array determines if an event is\n * a checkin type\n * @description examine event to allow check in\n * @param {Object} event\n */\n allowCheckIn(event) {\n if (event.References && event.References.length > 0) {\n return true;\n }\n return false;\n }\n\n /**\n * Event checkin action\n * @param {Object} event single event object return from get_event API\n */\n checkin(event) {\n let loading = this.loadingCtrl.create({\n content: 'loading checkin...'\n });\n loading.present().then(() => {\n // if submission exist\n loading.dismiss().then(() => {\n // this.navCtrl.push(AssessmentsGroupPage, {\n this.navCtrl.push(AssessmentsPage, {\n event,\n activity: event.activity,\n submissions: this.submissions\n });\n });\n })\n }\n\n /**\n * Event cancel booking action\n * @param\n */\n cancelBooking() {\n let cancelLoading = this.loadingCtrl.create({\n content: 'Cancel Booking ..'\n });\n let cancelFailed = this.toastCtrl.create({\n message: this.cancelBookingErrMessage,\n duration: 5000,\n position: 'bottom'\n });\n let cancelBooking = this.actionSheetCtrl.create({\n title: 'Cancel Booking Of This Event?',\n buttons: [\n {\n text: 'Cancel Booking',\n role: 'destructive',\n handler: () => {\n cancelLoading.present();\n this.eventService.cancelEventBooking(this.event.id)\n .subscribe(\n data => {\n cancelLoading.dismiss().then(() => {\n this.navCtrl.popToRoot(EventsListPage);\n });\n },\n err => {\n cancelLoading.dismiss().then(() => {\n cancelFailed.present();\n });\n }\n )\n }\n },\n {\n text: 'Close',\n role: 'cancel',\n handler: () => {\n // console.log('Close this window ..');\n }\n }\n ]\n });\n cancelBooking.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/view/events-view.page.ts","import { Component, OnInit } from '@angular/core';\nimport { NavController, NavParams, ViewController } from 'ionic-angular';\n\n@Component({\n templateUrl: './events-preview.html'\n})\nexport class EventsPreviewPage implements OnInit {\n file: any = {};\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public viewCtrl: ViewController\n ) {}\n\n ngOnInit() {\n this.viewCtrl.setBackButtonText('Done');\n }\n\n ionViewDidEnter() {\n this.file = this.navParams.get('file');\n }\n\n goBack() {\n this.navCtrl.pop();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/download/events-preview.page.ts","import { Component } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { NavController, NavParams, LoadingController, AlertController, ToastController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { AuthService } from '../../services/auth.service';\n// directives\nimport { FormValidator } from '../../shared/validators/formValidator';\n// Others\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n\n@Component({\n selector: 'page-forget-password',\n templateUrl: 'forget-password.html'\n})\nexport class ForgetPasswordPage {\n email: string;\n forgotPwdFormGroup: any;\n // loading & error message variables\n sendingEmailLoadingMessage = loadingMessages.SendingEmail.send;\n sentEmailMessagePartOne = loadingMessages.SentMessage.partOne;\n sentEmailMessagePartTwo = loadingMessages.SentMessage.partTwo;\n\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public translationService: TranslationService,\n public authService: AuthService,\n public toastCtrl: ToastController,\n public formBuilder: FormBuilder\n ) {\n this.forgotPwdFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n });\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad ForgetPasswordPage');\n }\n\n userForgotPassword(){\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.sendingEmailLoadingMessage\n });\n\n let defaultMsg = this.sentEmailMessagePartOne + ` ${this.email} ` + this.sentEmailMessagePartTwo;\n\n loading.present();\n // This part is calling post_forget_password() API from backend\n this.authService.forgotPassword(this.email)\n .subscribe(data => {\n loading.dismiss();\n defaultMsg = data.msg || defaultMsg;\n const successSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n successSMS.present();\n },\n error => {\n loading.dismiss();\n // this.logError(error);\n defaultMsg = error.msg || defaultMsg;\n const errorSMS = this.toastCtrl.create({\n message: defaultMsg,\n duration: 5000\n });\n errorSMS.present();\n }\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/forget-password/forget-password.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController,\n NavParams,\n LoadingController,\n AlertController,\n ModalController,\n ViewController } from 'ionic-angular';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport * as _ from 'lodash';\nimport { TranslationService } from '../../shared/translation/translation.service';\nimport { loadingMessages, errMessages } from '../../app/messages';\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { MilestoneService } from '../../services/milestone.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { RequestServiceConfig } from '../../shared/request/request.service';\n// directives\nimport {FormValidator} from '../../shared/validators/formValidator';\n// pages\nimport { TabsPage } from '../../pages/tabs/tabs.page';\nimport { ForgetPasswordPage } from '../../pages/forget-password/forget-password';\n/* This page is for handling user login process */\n@Component({\n selector: 'page-login',\n templateUrl: 'login.html'\n})\nexport class LoginPage {\n public email: string;\n public password: any;\n public userName: string;\n public userImage: string;\n public API_KEY: string;\n public milestone_id: string;\n public loginFormGroup: any;\n public forgetpasswordPage = ForgetPasswordPage;\n public loginLoadingMessages: any = loadingMessages.Login.login;\n public invalidLoginMessage: any = errMessages.Login.login;\n constructor(\n public navCtrl: NavController,\n public navParams: NavParams,\n public loadingCtrl: LoadingController,\n public alertCtrl: AlertController,\n public modalCtrl: ModalController,\n public viewCtrl: ViewController,\n public authService: AuthService,\n public gameService: GameService,\n public translationService: TranslationService,\n public config: RequestServiceConfig,\n public formBuilder: FormBuilder,\n public milestoneService: MilestoneService,\n public cacheService: CacheService\n ) {\n this.navCtrl = navCtrl;\n this.loginFormGroup = formBuilder.group({\n email: ['', [FormValidator.isValidEmail,\n Validators.required]],\n password: ['', [Validators.required, Validators.minLength(8)]],\n });\n }\n ionViewCanLeave(): boolean {\n // user is authorized\n console.log('authorized');\n let authorized = true;\n if (authorized){\n return true;\n } else {\n return false;\n }\n }\n /**\n * user login function to authenticate user with email and password\n */\n userLogin() {\n let self = this;\n this.cacheService.clear().then(() => {\n // add loading effect during login process\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessages\n });\n loading.present().then(() => {\n // This part is calling post_auth() API from backend\n this.authService.loginAuth(this.email, this.password)\n .subscribe(data => {\n data = data.data;\n // this.getLogInData(data);\n self.cacheService.setLocalObject('apikey', data.apikey);\n // saved for 3 types of timeline id in order for later use\n self.cacheService.setLocalObject('timelineId', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n self.cacheService.setLocalObject('teams', data.Teams);\n self.cacheService.setLocal('gotNewItems', false);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n self.cacheService.setLocalObject('name', data.User.name);\n self.cacheService.setLocalObject('email', data.User.email);\n self.cacheService.setLocalObject('program_id', data.User.program_id);\n self.cacheService.setLocalObject('project_id', data.User.project_id);\n self.cacheService.setLocalObject('user', data.User);\n },\n err => {\n console.log(err);\n }\n );\n\n this.gameService.getGames()\n .subscribe((data) => {\n if (data.Games) {\n // For now only have one game per project\n self.cacheService.setLocalObject('game_id', data.Games[0].id);\n }\n });\n\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n loading.dismiss().then(() => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n self.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n this.navCtrl.push(TabsPage).then(() => {\n this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page\n window.history.replaceState({}, '', window.location.origin);\n });\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n }, err => {\n loading.dismiss().then(() => {\n this.logError(err);\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n });\n });\n });\n }\n /**\n * Insert post_auth() api result into localStorage\n * @param {object} data result from API request\n * @returns Observable/subject\n */\n getLogInData(data){\n let cacheProcesses = [];\n _.forEach(data, (datum, key) => {\n cacheProcesses.push(this.cacheService.write(key, datum));\n });\n cacheProcesses.push(this.cacheService.write('timeline_id', data.Timelines[0].Timeline.id));\n cacheProcesses.push(this.cacheService.write('apikey', data.apikey));\n cacheProcesses.push(this.cacheService.write('timelines', data.Timelines));\n cacheProcesses.push(this.cacheService.write('teams', data.Teams));\n this.cacheService.setLocal('apikey', data.apikey);\n this.cacheService.setLocal('timeline_id', data.Timelines[0].Timeline.id);\n console.log(\"cache data: \" + cacheProcesses);\n return Observable.from(cacheProcesses);\n }\n /**\n * Insert get_user() api result into localStorage\n * @param {object} user result from API request\n */\n getUserKeyData(user){\n let userData = {\n 'apikey': user.data.apikey,\n 'timelines': user.data.Timelines\n }\n this.cacheService.write('userData', userData);\n this.cacheService.setLocalObject('userData', userData);\n this.API_KEY = user.data.apikey;\n // console.log(\"Timeline ID: \" + user.data.Timelines[0].Timeline.id);\n // to get API KEY and timeline_id and stored in localStorage\n // then other API calls can directly use (API KEY and timeline_id)\n }\n /**\n * @TODO we'll come back to this logging workflow later in this development\n *\n * This function is used to log unexpected error accountered in the client side\n * @param {object} error result from API request\n */\n logError(error) {\n const alert = this.alertCtrl.create({\n title: 'Login Failed ..',\n message: this.invalidLoginMessage,\n buttons: ['Close']\n });\n alert.present();\n // handle API calling errors display with alert controller\n }\n /**\n * forget password page link function\n */\n linkToForgetPassword() {\n this.navCtrl.push(this.forgetpasswordPage);\n this.viewCtrl.dismiss();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/login/login.ts","import { Component } from '@angular/core';\nimport { NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';\n\n// services\nimport { AuthService } from '../../services/auth.service';\nimport { CacheService } from '../../shared/cache/cache.service';\nimport { GameService } from '../../services/game.service';\nimport { MilestoneService } from '../../services/milestone.service';\n// pages\nimport { TabsPage } from '../tabs/tabs.page';\nimport { LoginPage } from '../login/login';\n// Others\nimport { loadingMessages, errMessages } from '../../app/messages';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'page-magic-link',\n templateUrl: 'magic-link.html'\n})\nexport class MagicLinkPage {\n auth_token: string;\n loginLoadingMessage: any = loadingMessages.Login.login;\n milestone_id: string;\n misMatchTokenErrMessage: any = errMessages.DirectLink.mismatch;\n verifySuccess = null;\n\n constructor(\n public alertCtrl: AlertController,\n public authService: AuthService,\n public cacheService: CacheService,\n public gameService: GameService,\n public loadingCtrl: LoadingController,\n public milestoneService: MilestoneService,\n public navCtrl: NavController,\n public navParams: NavParams\n ) {}\n\n ionViewDidLoad() {\n this.auth_token = this.navParams.get('auth_token');\n }\n ionViewWillEnter(){\n this.magicLinkAccess();\n }\n magicLinkAccess(){\n let observable = this.authService.magicLinkLogin(this.auth_token);\n const loading = this.loadingCtrl.create({\n dismissOnPageChange: true,\n content: this.loginLoadingMessage\n });\n loading.present();\n observable.subscribe(data => {\n // localStorage.setItem('isAuthenticated', 'true');\n // this.navCtrl.push(TabsPage);\n // console.log(\"Successfully logged in\");\n data = data.data;\n this.cacheService.setLocalObject('apikey', data.apikey);\n this.cacheService.setLocalObject('timelineID', data.Timelines[0].Timeline.id);\n this.cacheService.setLocalObject('teams', data.Teams);\n // get game_id data after login\n this.gameService.getGames()\n .subscribe(\n data => {\n console.log(\"game data: \", data);\n _.map(data, (element) => {\n console.log(\"game id: \", element[0].id);\n this.cacheService.setLocal('game_id', element[0].id);\n });\n },\n err => {\n console.log(\"game err: \", err);\n }\n );\n // get milestone data after login\n this.authService.getUser()\n .subscribe(\n data => {\n this.cacheService.setLocalObject('name', data.User.name);\n this.cacheService.setLocalObject('email', data.User.email);\n this.cacheService.setLocalObject('program_id', data.User.program_id);\n this.cacheService.setLocalObject('project_id', data.User.project_id);\n },\n err => {\n console.log(err);\n }\n );\n // get milestone data after login\n this.milestoneService.getMilestones()\n .subscribe(\n data => {\n console.log(data.data[0].id);\n this.milestone_id = data.data[0].id;\n this.cacheService.setLocalObject('milestone_id', data.data[0].id);\n console.log(\"milestone id: \" + data.data[0].id);\n loading.dismiss();\n this.navCtrl.push(TabsPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n },\n err => {\n console.log(err);\n }\n )\n this.cacheService.write('isAuthenticated', true);\n this.cacheService.setLocal('isAuthenticated', true);\n },\n err => {\n const failAlert = this.alertCtrl.create({\n title: 'Magic did NOT happen',\n message: this.misMatchTokenErrMessage,\n buttons: ['Close']\n });\n failAlert.present();\n this.navCtrl.push(LoginPage).then(() => {\n window.history.replaceState({}, '', window.location.origin);\n });\n // console.log(\"Login failed\");\n this.cacheService.removeLocal('isAuthenticated');\n this.cacheService.write('isAuthenticated', false);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/magic-link/magic-link.ts","import { Component } from '@angular/core';\n\n@Component({\n template: ''\n})\nexport class TestPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/tabs/test.page.ts","import { Component } from '@angular/core';\nimport { NavParams } from 'ionic-angular';\n\nimport { TranslationService } from '../../../shared/translation/translation.service';\n\nlet _mock = {\n \"id\": 59,\n \"name\": \"Test Achievement\",\n \"description\": \"this is test achievement\",\n \"badge\": \"https://www.filepicker.io/api/file/lRLLzZdwT0OWdxQq0ZJw\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 158,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100,\n \"achieved\": false,\n};\n\n@Component({\n templateUrl: './achievements-view.html'\n})\nexport class AchievementsViewPage {\n\n achievement: any;\n\n constructor(\n public params: NavParams,\n public translationService: TranslationService\n ) {\n this.achievement = {};\n }\n\n ionViewDidEnter() {\n this.achievement = this.params.get('achievement');\n\n // Inject API response\n this.achievement = _mock;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/achievements/view/achievements-view.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController, LoadingController } from 'ionic-angular';\n\nimport { ActivitiesViewPage } from '../../activities/view/activities-view.page';\nimport { ActivityService } from '../../../services/activity.service';\n\ndeclare var _: any;\n\n@Component({\n templateUrl: './list.html'\n})\nexport class ActivitiesClassicListPage {\n public activities: Array = [];\n\n constructor(\n public navCtrl: NavController,\n public activityService: ActivityService,\n public toastCtrl: ToastController,\n public loader: LoadingController\n ) {}\n\n // @TODO: Move to shared function later...\n public _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n /**\n * normalise activities\n */\n public normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = _.merge(act.Activity, {\n activity: act.Activity,\n sequences: act.ActivitySequence,\n Activity: act.Activity,\n ActivitySequence: act.ActivitySequence,\n });\n });\n return result;\n }\n\n _pullData(acts, cb?) {\n let self = this;\n\n this.activityService.getList()\n .toPromise()\n .then(function(activities) {\n let result = [];\n activities.map((act, index) => {\n act = _.merge(act, act.Activity);\n });\n this.activities = activities;\n self.activities = activities;\n\n if (cb) {\n cb();\n }\n }, err => {\n this._error(err);\n console.log('err', err);\n\n if (cb) {\n cb();\n }\n });\n }\n\n public doRefresh(refresher) {\n this._pullData(this.activities, () => {\n if (refresher) {\n refresher.complete();\n }\n });\n }\n\n ionViewDidEnter() {\n\n let loader = this.loader.create();\n let self = this;\n\n loader.present().then(() => {\n this.activityService.getList()\n .subscribe(activities => {\n console.log(self.activities);\n activities = self.normaliseActivities(activities);\n\n self.activities = activities;\n loader.dismiss();\n });\n });\n }\n\n public hasReservation(activity) {\n return false;\n }\n\n public viewTicket(activity) {\n\n }\n\n public book(activity) {\n\n }\n\n public gotoActivity(activity) {\n console.log(activity);\n this.navCtrl.push(ActivitiesViewPage, {activity});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities-classic/list/activities-classic-list.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\n// Services\nimport { AssessmentService } from '../../services/assessment.service';\nimport { SubmissionService } from '../../services/submission.service';\n// Others\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'gallery-page',\n templateUrl: 'gallery.html'\n})\nexport class GalleryPage {\n _mock = {\n avatar: {\n name: 'Jose',\n photo: 'https://unsplash.it/100/100'\n },\n photos: [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ]\n };\n assessments: any;\n avatarName: any;\n avatarPhoto: any;\n name: string;\n photos: any[];\n refresher = null;\n\n constructor(\n public navCtrl: NavController,\n public toastCtrl: ToastController,\n public assessmentService: AssessmentService,\n public submissionService: SubmissionService\n ) {}\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData() {\n this.assessmentService.getAll().toPromise()\n .then((result) => {\n this.assessments = result;\n return this.submissionService.getSubmissions();\n })\n .then((result) => {\n let extractedPhotos = this.submissionService.extractPhotos(result);\n\n if (this.assessments.success || _.isArray(extractedPhotos)) {\n _.forEach(this.assessments.data, (assessment) => {\n if (assessment.Assessment.assessment_type === 'checkin') {\n let foundPhoto = _.find(extractedPhotos, function(p) {\n return p.assessment_id == assessment.Assessment.id;\n });\n\n if (foundPhoto) {\n this.photos.push({\n name: assessment.Assessment.name,\n photo: foundPhoto.photo,\n submitted: moment.utc(foundPhoto.submitted).local().format(\"D-M-YYYY, hA\")\n });\n }\n }\n });\n\n this.photos = _.sortBy(this.photos, 'submitted');\n }\n\n if (this.refresher) {\n this.refresher.complete();\n }\n })\n .catch((err) => {\n if (this.refresher) {\n this.refresher.complete();\n }\n this._error(err)\n });\n }\n\n doRefresh(refresher) {\n this.refresher = refresher;\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n }\n\n ionViewWillEnter() {\n // @TODO We should not block user if no linkedin photo...\n\n this._pullData();\n\n // @TODO Remove it later...\n this.avatarName = this._mock.avatar.name;\n this.avatarPhoto = this._mock.avatar.photo;\n this.photos = [\n {\n name: 'Test 1',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 2',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 3',\n photo: 'https://unsplash.it/50/50'\n },\n {\n name: 'Test 4',\n photo: 'https://unsplash.it/50/50'\n }\n ];\n console.log('this.photos', this.photos)\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/gallery/gallery.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { MilestoneService } from './milestone.service';\nimport { ActivityService } from './activity.service';\n// Others\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LevelService {\n\n constructor(\n public activityService: ActivityService,\n public milestoneService: MilestoneService\n ) {}\n\n getLevels() {\n let milestones = [];\n let milestoneIds = [];\n\n return new Promise((resolve, reject) => {\n this.milestoneService.getList()\n .toPromise()\n .then((result: any) => {\n milestones = result.data;\n\n // Find unlocked milestones...\n _.forEach(milestones, (milestone) => {\n if (!milestone.is_locked) {\n milestoneIds.push(milestone.id);\n }\n });\n\n return this.activityService.getLevels({\n // @TODO: Should have some way to get data from stroage...\n search: {\n milestone_id: JSON.stringify(milestoneIds),\n has: []\n }\n });\n })\n .then((result: any) => {\n\n _.forEach(result.data, function(activity) {\n\n // Normalise activity data\n activity = this.activityService.normalise(activity);\n\n // Group activity to milestone...\n _.forEach(milestones, function(milestone, key) {\n if (milestone.id === activity.Activity.milestone_id) {\n milestones[key].activity = activity;\n }\n });\n });\n\n resolve(milestones);\n })\n .catch(reject);\n });\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/level.service.ts","import { Component } from '@angular/core';\nimport { NavParams, NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { EventService } from '../../../services/event.service';\nimport { AssessmentService } from '../../../services/assessment.service';\n// Others\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'page-event-checkin',\n templateUrl: './event-checkin.html',\n})\nexport class EventCheckinPage {\n assessment: any;\n assessmentGroup: any;\n checkin: any = {};\n event: any;\n submissions: any;\n user: any = {};\n\n constructor(\n public assessmentService: AssessmentService,\n public cache: CacheService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n ) {\n this.event = navParams.get('event');\n this.submissions = navParams.get('submissions');\n this.assessment = navParams.get('assessment');\n this.assessmentGroup = navParams.get('assessmentGroup');\n }\n\n ionViewDidEnter() {\n this.checkin = this.getCheckinAnswer(this.submissions[0]); // event checkin has just single submission\n this.assessment = this.assessmentService.normaliseGroup(this.assessmentGroup);\n this.user = this.cache.getLocalObject('user');\n }\n\n // Only checkin/file upload answer is displayed in check-in view\n public getCheckinAnswer(submission) {\n let result = {};\n submission.answer.forEach(ans => {\n if (typeof ans.answer === 'object') {\n result = ans;\n }\n });\n\n return result;\n }\n\n injectAssessmentToAnswer() {\n this.assessmentGroup.forEach(group => {\n console.log(group);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/checkin/event-checkin.page.ts","import { Component } from '@angular/core';\nimport { NavController, ToastController } from 'ionic-angular';\n\nimport { TeamService } from '../../services/team.service';\n// Others\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'team-page',\n templateUrl: 'team.html'\n})\nexport class TeamPage {\n members = [];\n team = {};\n\n constructor(\n public navCtrl: NavController,\n public teamService: TeamService,\n public toastCtrl: ToastController\n ) {}\n\n\n\n // @TODO: Move to shared function later...\n _error(err) {\n let toast = this.toastCtrl.create({\n message: err,\n duration: 5000,\n position: 'bottom',\n dismissOnPageChange: true\n });\n\n toast.onDidDismiss(() => {\n console.log('Dismissed toast');\n });\n\n toast.present();\n }\n\n _pullData(refresher?) {\n // @TODO Need inject user team ID\n this.teamService.getTeam()\n .then((result: any) => {\n this.team = result.team;\n this.members = result.members;\n\n if (refresher) {\n refresher.complete();\n }\n })\n .catch((err) => {\n if (refresher) {\n refresher.complete();\n }\n this._error(err);\n });\n }\n\n doRefresh(refresher) {\n this._pullData(refresher);\n }\n\n ionViewWillEnter() {\n this._pullData();\n this.members = [\n {\n name: 'Jose',\n email: 'abcd.example.cc'\n }\n ]\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/team/team.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class TeamService {\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n getTeam(options? : any) {\n return this.request.get('api/teams.json', options).toPromise();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/team.service.ts","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app.module';\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main.ts","// libs\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, ErrorHandler, OnInit } from '@angular/core';\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';\nimport { CacheModule } from '../shared/cache/cache.module';\nimport { NotificationModule } from '../shared/notification/notification.module';\nimport { MyApp } from './app.component';\nimport { FilepickerModule } from '../shared/filepicker/filepicker.module';\nimport { UtilsModule } from '../shared/utils/utils.module';\nimport { TestModule } from '../shared/testModules/test.module';\nimport { HttpModule, Http } from '@angular/http';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from \"@ngx-translate/http-loader\";\nimport { i18nData } from './assets/i18n-en';\nimport { TranslationModule } from '../shared/translation/translation.module';\nimport { MomentModule } from 'angular2-moment';\n\n// services\nimport { AchievementService } from '../services/achievement.service';\nimport { ActivityService } from '../services/activity.service';\nimport { AssessmentService } from '../services/assessment.service';\nimport { AuthService } from '../services/auth.service';\nimport { CharacterService } from '../services/character.service';\nimport { EventService } from '../services/event.service';\nimport { FilepickerService } from '../shared/filepicker/filepicker.service';\nimport { GameService } from '../services/game.service';\nimport { GroupEmitterService } from '../components/questions/group-emitter.service';\nimport { LevelService } from '../services/level.service';\nimport { MilestoneService } from '../services/milestone.service';\nimport { NotificationService } from '../shared/notification/notification.service';\nimport { RequestModule } from '../shared/request/request.module';\nimport { SessionService } from '../services/session.service';\nimport { SubmissionService } from '../services/submission.service';\n\nimport { TeamService } from '../services/team.service';\nimport { WindowRef } from '../shared/window';\n// components\nimport { ModalComponent } from '../shared/notification/modal.component';\nimport { QuestionGroupComponent } from '../components/question-group/question-group.component';\nimport { EventComponent } from '../components/event/event.component';\nimport { LevelComponent } from '../components/level/level';\nimport { LoadingMarkerComponent } from '../components/loadingMarker/loadingMarker';\nimport { LockerComponent } from '../components/locker/locker';\nimport { MemberComponent } from '../components/member/member';\nimport { PhotoComponent } from '../components/photo/photo';\nimport { TermContentComponent } from '../pages/term-condition/term-content.component';\nimport { FileQuestionComponent } from '../components/questions/file';\nimport { OneofQuestionComponent } from '../components/questions/oneof';\nimport { TextQuestionComponent } from '../components/questions/text';\nimport { MultipleQuestionComponent } from '../components/questions/multiple';\nimport { FeedbackComponent } from '../components/questions/feedback';\n// pages\nimport { AchievementsViewPage } from '../pages/achievements/view/achievements-view.page';\nimport { ActivitiesListPage } from '../pages/activities/list/list.page';\nimport { ActivityListPopupPage } from '../pages/activities/list/popup';\nimport { ActivitiesViewModalPage } from '../pages/activities/view/activities-view-modal.page';\nimport { ActivitiesViewPage } from '../pages/activities/view/activities-view.page';\nimport { ActivitiesClassicListPage } from '../pages/activities-classic/list/activities-classic-list.page';\nimport { AssessmentsPage } from '../pages/assessments/assessments.page';\nimport { AssessmentsGroupPage } from '../pages/assessments/group/assessments-group.page';\nimport { EventCheckinPage } from '../pages/events/checkin/event-checkin.page';\nimport { EventsComponent } from '../components/events/events.component';\nimport { EventsDownloadPage } from '../pages/events/download/events-download.page';\nimport { EventsListPage } from '../pages/events/list/list.page';\nimport { EventsPreviewPage } from '../pages/events/download/events-preview.page';\nimport { EventsViewPage } from '../pages/events/view/events-view.page';\nimport { ForgetPasswordPage } from '../pages/forget-password/forget-password';\nimport { GalleryPage } from '../pages/gallery/gallery';\nimport { ItemsPopupPage } from '../pages/assessments/popup/items-popup.page';\nimport { LeaderboardSettingsPage } from '../pages/settings/leaderboard/leaderboard-settings.page';\nimport { LevelsListPage } from '../pages/levels/list/list';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { RankingBadgesPage } from '../pages/rankings/view/ranking-badges';\nimport { RankingDetailsPage } from '../pages/rankings/view/ranking-details.page';\nimport { RankingsPage } from '../pages/rankings/list/rankings.page';\nimport { RegisterPage } from '../pages/registration/register.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { SettingsPage } from '../pages/settings/settings.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { TeamPage } from '../pages/team/team';\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { TestPage } from '../pages/tabs/test.page';\nimport { TutorialPage } from '../pages/settings/tutorial/tutorial.page';\n// custom pipes\nimport { TimeAgoPipe } from '../pipes/timeago';\nimport { UcfirstPipe } from '../pipes/ucfirst.pipe';\nimport { TruncatePipe } from '../pipes/truncate.pipe';\nimport { EscapeHtmlPipe } from '../pipes/keep-html.pipe';\n\n// configs\nimport { default as Configure } from '../configs/config';\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: Http) {\n return new TranslateHttpLoader(http, \"./assets/i18n-\", \".json\");\n}\n\n@NgModule({\n declarations: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n FeedbackComponent,\n FileQuestionComponent,\n ForgetPasswordPage,\n GalleryPage,\n ItemsPopupPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n MemberComponent,\n ModalComponent,\n MultipleQuestionComponent,\n MyApp,\n OneofQuestionComponent,\n PhotoComponent,\n QuestionGroupComponent,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TeamPage,\n TestPage,\n TutorialPage,\n TermConditionPage,\n TermContentComponent,\n TextQuestionComponent,\n TimeAgoPipe,\n TruncatePipe,\n UcfirstPipe,\n EscapeHtmlPipe,\n ],\n imports: [\n BrowserModule,\n CacheModule,\n FormsModule,\n MomentModule,\n NotificationModule,\n UtilsModule,\n TestModule,\n RequestModule.forRoot({\n appKey: Configure.appKey,\n prefixUrl: Configure.prefixUrl\n }),\n FilepickerModule.forRoot({\n apikey: Configure.filestack.apiKey\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [Http]\n }\n }),\n TranslationModule,\n IonicModule.forRoot(MyApp, {}, {\n links: [\n {\n component: LoginPage,\n name: 'Login',\n segment: 'login',\n defaultHistory: [ LoginPage ]\n },\n {\n component: ResetPasswordPage,\n name: 'ResetPassword',\n segment: 'resetpassword', //resetpassword?email=XXX&key=XXX\n defaultHistory: [ ResetPasswordPage ]\n },\n {\n component: MagicLinkPage,\n name: 'MagiclinkPage',\n segment: 'secure/:auth_token', //secure?auth_token=XXXXXX\n defaultHistory: [ MagicLinkPage ]\n },\n {\n component: RegistrationPage,\n name: 'Registration',\n segment: 'registration',\n defaultHistory: [ RegistrationPage ]\n },\n {\n component: TestPage,\n name: 'Testing',\n segment: 'test',\n defaultHistory: [TestPage]\n }\n ]\n })\n ],\n bootstrap: [\n IonicApp\n ],\n entryComponents: [\n AchievementsViewPage,\n ActivitiesClassicListPage,\n ActivitiesListPage,\n ActivitiesViewModalPage,\n ActivitiesViewPage,\n ActivityListPopupPage,\n AssessmentsGroupPage,\n AssessmentsPage,\n EventCheckinPage,\n EventComponent,\n EventsComponent,\n EventsDownloadPage,\n EventsListPage,\n EventsPreviewPage,\n EventsViewPage,\n ForgetPasswordPage,\n ItemsPopupPage,\n GalleryPage,\n LeaderboardSettingsPage,\n LevelComponent,\n LevelsListPage,\n LoadingMarkerComponent,\n LockerComponent,\n LoginPage,\n MagicLinkPage,\n ModalComponent,\n MyApp,\n RankingBadgesPage,\n RankingDetailsPage,\n RankingsPage,\n RegisterPage,\n RegistrationPage,\n ResetPasswordPage,\n SettingsPage,\n SidenavPage,\n TabsPage,\n TestPage,\n TermConditionPage,\n TutorialPage,\n TermContentComponent,\n ],\n providers: [\n { provide: AchievementService, useClass: AchievementService },\n { provide: ActivityService, useClass: ActivityService },\n { provide: AssessmentService, useClass: AssessmentService },\n { provide: AuthService, useClass: AuthService },\n { provide: CharacterService, useClass: CharacterService },\n { provide: ErrorHandler, useClass: IonicErrorHandler },\n { provide: EventService, useClass: EventService },\n { provide: FilepickerService, useClass: FilepickerService },\n { provide: LevelService, useClass: LevelService },\n { provide: LocationStrategy , useClass: HashLocationStrategy },\n { provide: MilestoneService, useClass: MilestoneService },\n { provide: NotificationService, useClass: NotificationService },\n { provide: SessionService, useClass: SessionService },\n { provide: SubmissionService, useClass: SubmissionService },\n { provide: TeamService, useClass: TeamService },\n WindowRef,\n GroupEmitterService,\n GameService,\n // { provide: RequestOptions, useClass: CustomRequestOptions }\n ]\n})\nexport class AppModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { NgModule } from '@angular/core';\nimport { CacheService } from './cache.service';\nimport { IonicStorageModule } from '@ionic/storage';\n\n@NgModule({\n imports: [\n IonicStorageModule.forRoot({\n name: '__app-vault',\n driverOrder: ['localstorage']\n })\n ],\n providers: [ CacheService ],\n})\nexport class CacheModule {\n\n constructor() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/cache/cache.module.ts","import { NgModule } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule } from '@angular/common';\n\nimport { NotificationService } from './notification.service';\nimport { NotificationComponent } from './notification.component';\n// import { ModalComponent } from './modal.component';\n\n@NgModule({\n imports: [ CommonModule, IonicModule ],\n declarations: [\n NotificationComponent,\n // ModalComponent,\n ],\n providers: [ NotificationService ],\n exports: [\n NotificationComponent,\n // ModalComponent\n ]\n})\nexport class NotificationModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.module.ts","import { Component } from '@angular/core';\nimport { ModalController } from 'ionic-angular';\n\nimport { NotificationService } from './notification.service';\nimport { ModalComponent } from './modal.component';\n\n@Component({\n selector: 'app-notification',\n template: ``,\n})\nexport class NotificationComponent {\n\n constructor(\n public modalCtrl: ModalController,\n public notificationService: NotificationService\n ) {\n notificationService.modalActivated$.subscribe(\n context => {\n this.show(context)\n }\n );\n }\n\n ngOnInit() {}\n\n /**\n * Show notification modal\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * notification_icon: ?{String},\n * description: {String},\n * score: ?{String},\n * button_label: ?{String},\n * button_function: ?{Function},\n * button_link: ?{String},\n * }\n */\n show(context: any) {\n let modal = this.modalCtrl.create(ModalComponent, { 'context': context });\n modal.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.component.ts","import { Component, ViewChild, OnInit } from '@angular/core';\nimport { Platform, NavController } from 'ionic-angular';\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { AuthService } from '../services/auth.service';\n// pages\nimport { TermConditionPage } from '../pages/term-condition/term-condition.page';\nimport { SidenavPage } from '../pages/sidenav/sidenav';\nimport { ResetPasswordPage } from '../pages/reset-password/reset-password';\nimport { TabsPage } from '../pages/tabs/tabs.page';\nimport { RegistrationPage } from '../pages/registration/registration.page';\nimport { LoginPage } from '../pages/login/login';\nimport { MagicLinkPage } from '../pages/magic-link/magic-link';\nimport { TestPage } from '../pages/tabs/test.page';\n\n@Component({\n templateUrl: 'app.html',\n})\nexport class MyApp implements OnInit {\n // rootPage: any = RegistrationPage;\n rootPage: any;\n urlParameters: Array = [];\n do = {\n 'registration': RegistrationPage,\n 'login': LoginPage,\n 'resetpassword': ResetPasswordPage,\n 'secure': MagicLinkPage,\n 'test': TestPage\n };\n\n @ViewChild('appNav') nav: NavController;\n constructor(\n platform: Platform,\n authService: AuthService,\n private cache: CacheService\n ) {\n platform.ready().then(() => {\n // Okay, so the platform is ready and our plugins are available.\n // Here you can do any higher level native things you might need.\n // ionic-native is removed, as we dont need to use cordova\n });\n }\n\n ngOnInit() {\n let category = [];\n let page;\n let navParams = {};\n\n if (document.URL.indexOf(\"?\") !== -1) {\n let splitURL = document.URL.split(\"?\");\n let splitParams = splitURL[1].split(\"&\");\n splitParams.forEach(param => {\n let singleURLParam = param.split('=');\n let urlParameter = {\n 'name': singleURLParam[0],\n 'value': singleURLParam[1]\n };\n if (singleURLParam[0] === 'do') {\n page = this.do[singleURLParam[1]];\n }\n category.push(urlParameter);\n navParams[singleURLParam[0]] = singleURLParam[1];\n });\n }\n\n if (page) {\n this.nav.setRoot(page, navParams);\n } else {\n if (this.cache.getLocal('isAuthenticated')) {\n this.nav.setRoot(TabsPage, navParams);\n } else {\n this.nav.setRoot(LoginPage, navParams);\n }\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class GameService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * Get games\n * @param {object} options\n */\n getGames(options = {}) {\n return this.request.get('api/games', options);\n }\n\n /**\n * Get character\n * @param {string} gameId\n * @param {object} options\n */\n getCharacters(gameId, options = {}) {\n options = _.merge({\n search: {\n game_id: gameId\n }\n }, options);\n return this.request.get('api/characters', options);\n }\n\n /**\n * Post character\n * @param {object} data\n */\n postCharacter(data) {\n return this.request.post('api/characters', data, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * Get ranking\n * @param {string} gameId\n * @param {string} characterId\n */\n getRanking(gameId, characterId) {\n return Observable.forkJoin([\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly'\n }\n }),\n this.getCharacters(gameId, {\n search: {\n action: 'ranking',\n period: 'monthly',\n character_id: characterId\n }\n })\n ])\n .map((data: any[]) => {\n let characters = data[0] || [];\n let myCharacter = data[1].Characters || [];\n characters.MyCharacters = myCharacter\n return characters;\n });\n }\n\n /**\n * Get items\n * @param {object} options\n */\n getItems(options?) {\n options = _.merge({\n character_id: null,\n filter: 'all'\n }, options);\n return this.request.get('api/items.json', {search: options});\n }\n\n /**\n * Update items\n * @param {object} options\n */\n postItems(options: any = {\n \"Character\": {\n \"id\": null\n },\n \"Item\": {\n \"id\": null\n }\n }) {\n return this.request.post('api/items.json', options, {'Content-Type': 'application/json'});\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/game.service.ts","var map = {\n\t\"./af\": 273,\n\t\"./af.js\": 273,\n\t\"./ar\": 274,\n\t\"./ar-dz\": 275,\n\t\"./ar-dz.js\": 275,\n\t\"./ar-kw\": 276,\n\t\"./ar-kw.js\": 276,\n\t\"./ar-ly\": 277,\n\t\"./ar-ly.js\": 277,\n\t\"./ar-ma\": 278,\n\t\"./ar-ma.js\": 278,\n\t\"./ar-sa\": 279,\n\t\"./ar-sa.js\": 279,\n\t\"./ar-tn\": 280,\n\t\"./ar-tn.js\": 280,\n\t\"./ar.js\": 274,\n\t\"./az\": 281,\n\t\"./az.js\": 281,\n\t\"./be\": 282,\n\t\"./be.js\": 282,\n\t\"./bg\": 283,\n\t\"./bg.js\": 283,\n\t\"./bn\": 284,\n\t\"./bn.js\": 284,\n\t\"./bo\": 285,\n\t\"./bo.js\": 285,\n\t\"./br\": 286,\n\t\"./br.js\": 286,\n\t\"./bs\": 287,\n\t\"./bs.js\": 287,\n\t\"./ca\": 288,\n\t\"./ca.js\": 288,\n\t\"./cs\": 289,\n\t\"./cs.js\": 289,\n\t\"./cv\": 290,\n\t\"./cv.js\": 290,\n\t\"./cy\": 291,\n\t\"./cy.js\": 291,\n\t\"./da\": 292,\n\t\"./da.js\": 292,\n\t\"./de\": 293,\n\t\"./de-at\": 294,\n\t\"./de-at.js\": 294,\n\t\"./de-ch\": 295,\n\t\"./de-ch.js\": 295,\n\t\"./de.js\": 293,\n\t\"./dv\": 296,\n\t\"./dv.js\": 296,\n\t\"./el\": 297,\n\t\"./el.js\": 297,\n\t\"./en-au\": 298,\n\t\"./en-au.js\": 298,\n\t\"./en-ca\": 299,\n\t\"./en-ca.js\": 299,\n\t\"./en-gb\": 300,\n\t\"./en-gb.js\": 300,\n\t\"./en-ie\": 301,\n\t\"./en-ie.js\": 301,\n\t\"./en-nz\": 302,\n\t\"./en-nz.js\": 302,\n\t\"./eo\": 303,\n\t\"./eo.js\": 303,\n\t\"./es\": 304,\n\t\"./es-do\": 305,\n\t\"./es-do.js\": 305,\n\t\"./es.js\": 304,\n\t\"./et\": 306,\n\t\"./et.js\": 306,\n\t\"./eu\": 307,\n\t\"./eu.js\": 307,\n\t\"./fa\": 308,\n\t\"./fa.js\": 308,\n\t\"./fi\": 309,\n\t\"./fi.js\": 309,\n\t\"./fo\": 310,\n\t\"./fo.js\": 310,\n\t\"./fr\": 311,\n\t\"./fr-ca\": 312,\n\t\"./fr-ca.js\": 312,\n\t\"./fr-ch\": 313,\n\t\"./fr-ch.js\": 313,\n\t\"./fr.js\": 311,\n\t\"./fy\": 314,\n\t\"./fy.js\": 314,\n\t\"./gd\": 315,\n\t\"./gd.js\": 315,\n\t\"./gl\": 316,\n\t\"./gl.js\": 316,\n\t\"./gom-latn\": 317,\n\t\"./gom-latn.js\": 317,\n\t\"./he\": 318,\n\t\"./he.js\": 318,\n\t\"./hi\": 319,\n\t\"./hi.js\": 319,\n\t\"./hr\": 320,\n\t\"./hr.js\": 320,\n\t\"./hu\": 321,\n\t\"./hu.js\": 321,\n\t\"./hy-am\": 322,\n\t\"./hy-am.js\": 322,\n\t\"./id\": 323,\n\t\"./id.js\": 323,\n\t\"./is\": 324,\n\t\"./is.js\": 324,\n\t\"./it\": 325,\n\t\"./it.js\": 325,\n\t\"./ja\": 326,\n\t\"./ja.js\": 326,\n\t\"./jv\": 327,\n\t\"./jv.js\": 327,\n\t\"./ka\": 328,\n\t\"./ka.js\": 328,\n\t\"./kk\": 329,\n\t\"./kk.js\": 329,\n\t\"./km\": 330,\n\t\"./km.js\": 330,\n\t\"./kn\": 331,\n\t\"./kn.js\": 331,\n\t\"./ko\": 332,\n\t\"./ko.js\": 332,\n\t\"./ky\": 333,\n\t\"./ky.js\": 333,\n\t\"./lb\": 334,\n\t\"./lb.js\": 334,\n\t\"./lo\": 335,\n\t\"./lo.js\": 335,\n\t\"./lt\": 336,\n\t\"./lt.js\": 336,\n\t\"./lv\": 337,\n\t\"./lv.js\": 337,\n\t\"./me\": 338,\n\t\"./me.js\": 338,\n\t\"./mi\": 339,\n\t\"./mi.js\": 339,\n\t\"./mk\": 340,\n\t\"./mk.js\": 340,\n\t\"./ml\": 341,\n\t\"./ml.js\": 341,\n\t\"./mr\": 342,\n\t\"./mr.js\": 342,\n\t\"./ms\": 343,\n\t\"./ms-my\": 344,\n\t\"./ms-my.js\": 344,\n\t\"./ms.js\": 343,\n\t\"./my\": 345,\n\t\"./my.js\": 345,\n\t\"./nb\": 346,\n\t\"./nb.js\": 346,\n\t\"./ne\": 347,\n\t\"./ne.js\": 347,\n\t\"./nl\": 348,\n\t\"./nl-be\": 349,\n\t\"./nl-be.js\": 349,\n\t\"./nl.js\": 348,\n\t\"./nn\": 350,\n\t\"./nn.js\": 350,\n\t\"./pa-in\": 351,\n\t\"./pa-in.js\": 351,\n\t\"./pl\": 352,\n\t\"./pl.js\": 352,\n\t\"./pt\": 353,\n\t\"./pt-br\": 354,\n\t\"./pt-br.js\": 354,\n\t\"./pt.js\": 353,\n\t\"./ro\": 355,\n\t\"./ro.js\": 355,\n\t\"./ru\": 356,\n\t\"./ru.js\": 356,\n\t\"./sd\": 357,\n\t\"./sd.js\": 357,\n\t\"./se\": 358,\n\t\"./se.js\": 358,\n\t\"./si\": 359,\n\t\"./si.js\": 359,\n\t\"./sk\": 360,\n\t\"./sk.js\": 360,\n\t\"./sl\": 361,\n\t\"./sl.js\": 361,\n\t\"./sq\": 362,\n\t\"./sq.js\": 362,\n\t\"./sr\": 363,\n\t\"./sr-cyrl\": 364,\n\t\"./sr-cyrl.js\": 364,\n\t\"./sr.js\": 363,\n\t\"./ss\": 365,\n\t\"./ss.js\": 365,\n\t\"./sv\": 366,\n\t\"./sv.js\": 366,\n\t\"./sw\": 367,\n\t\"./sw.js\": 367,\n\t\"./ta\": 368,\n\t\"./ta.js\": 368,\n\t\"./te\": 369,\n\t\"./te.js\": 369,\n\t\"./tet\": 370,\n\t\"./tet.js\": 370,\n\t\"./th\": 371,\n\t\"./th.js\": 371,\n\t\"./tl-ph\": 372,\n\t\"./tl-ph.js\": 372,\n\t\"./tlh\": 373,\n\t\"./tlh.js\": 373,\n\t\"./tr\": 374,\n\t\"./tr.js\": 374,\n\t\"./tzl\": 375,\n\t\"./tzl.js\": 375,\n\t\"./tzm\": 376,\n\t\"./tzm-latn\": 377,\n\t\"./tzm-latn.js\": 377,\n\t\"./tzm.js\": 376,\n\t\"./uk\": 378,\n\t\"./uk.js\": 378,\n\t\"./ur\": 379,\n\t\"./ur.js\": 379,\n\t\"./uz\": 380,\n\t\"./uz-latn\": 381,\n\t\"./uz-latn.js\": 381,\n\t\"./uz.js\": 380,\n\t\"./vi\": 382,\n\t\"./vi.js\": 382,\n\t\"./x-pseudo\": 383,\n\t\"./x-pseudo.js\": 383,\n\t\"./yo\": 384,\n\t\"./yo.js\": 384,\n\t\"./zh-cn\": 385,\n\t\"./zh-cn.js\": 385,\n\t\"./zh-hk\": 386,\n\t\"./zh-hk.js\": 386,\n\t\"./zh-tw\": 387,\n\t\"./zh-tw.js\": 387\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 503;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = 503\n// module chunks = 0","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { AlertController } from 'ionic-angular';\n\n@Injectable()\nexport class NotificationService {\n\n private modalActivateSource = new Subject();\n\n modalActivated$ = this.modalActivateSource.asObservable();\n\n constructor(public alertCtrl: AlertController) {}\n\n /**\n * Show alert on page\n * Refer: https://ionicframework.com/docs/api/components/alert/AlertController/\n * @param {Object} context\n * @example context\n * {\n * title: {String},\n * subTitle: {String},\n * button: {Array}, // ['OK', 'CANCEL']\n * }\n */\n present(context: any) {\n this.modalActivateSource.next(context);\n }\n\n /**\n * pop up alert box with button\n * @param {Object} content to customise alert box\n */\n public alert(context: any = {\n title: 'Title',\n subTitle: 'Subtitle',\n buttons: ['OK']\n }) {\n let alert = this.alertCtrl.create(context);\n alert.present();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/notification/notification.service.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport { CacheService } from '../shared/cache/cache.service';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class MilestoneService {\n appkey = this.request.getAppkey();\n milestones: any = {};\n prefixUrl: any = this.request.getPrefixUrl();\n\n constructor(\n public cacheService: CacheService,\n public http: Http,\n public request: RequestService\n ) {}\n\n getList(options?) {\n let params: URLSearchParams = new URLSearchParams();\n\n if (options && options.search) {\n // @TODO: Move to helper function\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n }\n let timelineId = this.cacheService.getLocal('timeline_id');\n if (timelineId) {\n params.set('timelineId', timelineId);\n }\n\n return this.request.get('api/milestones.json', {search: params});\n }\n\n getMilestones(){\n let headers = new Headers();\n headers.append('appkey', this.appkey);\n headers.append('apikey', this.cacheService.getLocalObject('apikey'));\n headers.append('timelineID', this.cacheService.getLocalObject('timelineID'));\n console.log('TimelineID: '+ this.cacheService.getLocalObject('timelineID'));\n return this.http.get(this.prefixUrl+'api/milestones.json', { headers: headers })\n .map(res => res.json());\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/milestone.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n// Others\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\nclass ActivityBase {\n id: number;\n name: string;\n description: string;\n milestone_id?: number;\n deadline?: string;\n end?: string;\n lead_image?: string;\n is_locked?: boolean;\n order?: number;\n instructions?: string;\n video_url?: string;\n}\n\nclass ReferenceAssessmentBase {\n id: number;\n name: string;\n}\n\nclass ReferenceBase {\n context_id: number;\n Assessment: ReferenceAssessmentBase\n}\n\n@Injectable()\nexport class ActivityService {\n cachedActivites = {};\n milestoneID = this.cacheService.getLocalObject('milestone_id');\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService,\n ) {}\n\n getList(options?) {\n let mid = this.cacheService.getLocal('milestone_id');\n\n options = options || {\n search: {\n milestone_id: this.cacheService.getLocal('milestone_id')\n }\n };\n\n if (!this.cachedActivites[mid]) {\n this.cachedActivites[mid] = this.request.get('api/activities.json', options);\n return this.request.get('api/activities.json', options);\n }\n\n return this.cachedActivites[mid];\n }\n\n getLevels(options?: any) {\n let params: URLSearchParams = new URLSearchParams();\n if (options.search) {\n _.forEach(options.search, (value, key) => {\n params.set(key, value);\n });\n options.search = params;\n }\n return this.cacheService.read()\n .then((data: any) => {\n if (!options.search.timeline_id && data.user.timeline_id) {\n params.set('timeline_id', data.user.timeline_id);\n options.search = params;\n }\n if (!options.search.project_id && data.user.project_id) {\n params.set('project_id', data.user.project_id);\n options.search = params;\n }\n return this.getList(options).toPromise();\n });\n }\n\n /*\n // commented out - seems not using in any part of the code\n // it was built for currentActivities component in HomePage,\n // no longer using it now\n\n normalise(activity, index) {\n // session\n activity.enabledRSVP = true;\n // survey\n activity.due = false;\n activity.isRunning = false;\n activity.isBookable = false;\n activity.is_locked = activity.Activity.is_locked;\n activity.name = activity.Activity.name;\n activity.id = activity.Activity.id;\n activity.hasSession = false;\n activity.description = activity.Activity.description || 'No description available.';\n // pre-process response data\n activity.start = moment.utc(activity.Activity.start);\n activity.deadline = moment.utc(activity.Activity.deadline);\n activity.end = moment.utc(activity.Activity.end);\n // if sorting is not available, use index instead\n activity.order = activity.Activity.order || index;\n return activity;\n }*/\n\n\n /**\n * normalise activities\n */\n normaliseActivities(activities): Array {\n let result = [];\n\n activities.forEach((act, index) => {\n result[index] = this.normaliseActivity(act);\n });\n return result;\n }\n\n /**\n * normalise single activity object\n */\n normaliseActivity(activity) {\n let thisActivity = activity.Activity,\n normalisedActivity: ActivityBase,\n sequence = this.mergeReferenceToSequence(activity);\n\n if (!activity.Activity) {\n throw \"Incorrect activity API responce (missing Activity object)\";\n }\n\n normalisedActivity = {\n id: activity.Activity.id,\n name: activity.Activity.name,\n description: activity.Activity.description,\n milestone_id: activity.Activity.milestone_id,\n deadline: activity.Activity.deadline,\n end: activity.Activity.end,\n lead_image: activity.Activity.lead_image,\n is_locked: activity.Activity.is_locked,\n order: activity.Activity.order,\n instructions: activity.Activity.instructions,\n video_url: activity.Activity.video_url\n };\n\n activity = _.merge(thisActivity, {\n // front end should use the one with smallcase instead\n activity: normalisedActivity,\n sequence: sequence,\n assessment: this.extractAssessment(sequence),\n\n // raw data (don't touch/edit)\n Activity: activity.Activity,\n ActivitySequence: activity.ActivitySequence,\n References: activity.References\n });\n\n // Normalise activity reference (References object is optional, updated on 6 October 2017)\n if (activity.References) {\n activity.References.forEach((reference, idx) => {\n let referenceAssessment: ReferenceAssessmentBase = {\n id: reference.Assessment.id,\n name: reference.Assessment.name,\n }\n let normalisedReference: ReferenceBase = {\n context_id: reference.context_id,\n Assessment: referenceAssessment\n };\n activity.References[idx] = normalisedReference;\n });\n }\n\n return activity;\n }\n\n /**\n * Turn references array objects to an easier accessible object\n * @param {Array} references array of reference\n * @returns normalised references object\n * @example\n */\n /*\n turns:\n [\n {\n \"context_id\": 25,\n \"Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\"\n }\n },\n {\n \"context_id\": 26,\n \"Assessment\": {\n \"id\": 20,\n \"name\": \"Check-In Workshop 2\"\n }\n },\n ...\n ]\n\n into:\n {\n 19: 25,\n 20: 26\n }\n */\n rebuildReferences(references) {\n let result = {};\n (references || []).forEach(ref => {\n result[ref.Assessment.id] = ref.context_id;\n });\n return result;\n }\n\n /**\n * @name mergeReferenceToSequence\n * @description extract and attach related context_id into assessments\n * @type {Object} activity single activity object\n * @example conversion formats below\n */\n /*\n turns:\n [\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n }\n ]\n\n into:\n {\n \"19\": {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n }\n */\n mergeReferenceToSequence(activity): Object {\n // @NOTE: first \"[0]\" sequence is the assessment of an activity\n let sequence = (activity.ActivitySequence) ? activity.ActivitySequence[0] : {};\n\n // `References` object is optional (modified on 6 October 2017)\n if (activity.References) {\n let refs = this.rebuildReferences(activity.References);\n if (!_.isEmpty(sequence)) {\n // @NOTE: API only support first ActivitySequence atm\n // activity.ActivitySequence.forEach(seq => {\n let modelId = sequence.model_id;\n sequence.context_id = refs[modelId];\n // });\n }\n }\n return sequence;\n }\n\n /*\n turns:\n {\n \"id\": 52,\n \"activity_id\": 22,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 19,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 19,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"context_id\": 25\n }\n\n into:\n {\n \"id\": 19,\n \"context_id\": 25,\n \"name\": \"Check-In Workshop 1\",\n \"description\": \"Check in to your first workshop here
\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:54:22\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n }\n */\n extractAssessment(sequence) {\n let assessment: any = {};\n if (sequence['Assess.Assessment']) {\n assessment = sequence['Assess.Assessment'];\n assessment.context_id = sequence.context_id;\n }\n return assessment;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/activity.service.ts","import { Injectable } from '@angular/core';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SubmissionService {\n targetUrl = 'api/submissions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n // list()\n getSubmissions(options?: any) {\n return this.request.get(this.targetUrl, options);\n }\n\n extractPhotos(data) {\n let photos = [];\n\n _.forEach(data, function(val, key) {\n _.forEach(val.AssessmentSubmissionAnswer, (answer, key) => {\n if (answer.answer && answer.answer.url !== undefined && answer.answer.mimetype !== undefined) {\n if (_.isString(answer.answer.mimetype) && answer.answer.mimetype.indexOf('image') !== -1) {\n // @TODO: I think we need standardise this format...\n photos.push({\n activity_id: val.AssessmentSubmission.activity_id,\n assessment_id: val.AssessmentSubmission.assessment_id,\n photo: answer.answer.url,\n submitted: val.AssessmentSubmission.submitted\n });\n }\n }\n });\n });\n\n return photos;\n }\n/*\n Turns:\n {\n \"AssessmentSubmission\": {\n \"id\": 4,\n \"submitter_id\": 19,\n \"created\": \"2017-07-18 03:28:09\",\n \"modified\": \"2017-07-18 03:28:09\",\n \"status\": \"done\",\n \"assessment_id\": 28,\n \"order\": null,\n \"submitted\": \"2017-07-18 03:28:12\",\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 23,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 26\n },\n \"Assessment\": {\n \"id\": 28,\n \"name\": \"Job Smart Initial Survey\",\n \"description\": \"This survey is a self-assessment of your employability skills. Be honest with yourself and leave room to improve. In the end of the program, you will be asked the same questions at the end of the program. Please take 5 minutes to reflect on your current state.
\",\n \"assessment_type\": \"survey\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"assessment\",\n \"review_scope_id\": null,\n \"created\": \"2016-02-01 04:45:21.573033\",\n \"modified\": \"2016-10-25 23:59:47\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": null,\n \"review_type\": null,\n \"review_role\": null,\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentSubmissionAnswer\": [\n {\n \"id\": 10,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 92,\n \"answer\": 235,\n \"score\": \"0\"\n },\n {\n \"id\": 11,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 93,\n \"answer\": 240,\n \"score\": \"0\"\n },\n {\n \"id\": 12,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 94,\n \"answer\": 245,\n \"score\": \"0\"\n },\n {\n \"id\": 13,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 95,\n \"answer\": 250,\n \"score\": \"0\"\n },\n {\n \"id\": 14,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 96,\n \"answer\": 255,\n \"score\": \"0\"\n },\n {\n \"id\": 15,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 97,\n \"answer\": 260,\n \"score\": \"0\"\n },\n {\n \"id\": 16,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 98,\n \"answer\": 265,\n \"score\": \"0\"\n },\n {\n \"id\": 17,\n \"assessment_submission_id\": 4,\n \"comment\": null,\n \"assessment_question_id\": 99,\n \"answer\": 270,\n \"score\": \"0\"\n }\n ],\n \"AssessmentReviewAnswer\": []\n }\n\n into:\n {\n\n }\n */\n normalise(respond) {\n let submission = respond['AssessmentSubmission'];\n let assessment = respond['Assessment'];\n let answer = respond['AssessmentSubmissionAnswer'];\n let review = respond['AssessmentReviewAnswer'];\n\n // preprocess date\n submission.created = moment.utc(submission.created);\n submission.modified = moment.utc(submission.modified);\n\n // submitted\n if (submission.submitted) {\n submission.submitted = moment.utc(submission.submitted);\n }\n\n return _.merge(submission, {\n assessment,\n answer,\n review\n });\n }\n\n /**\n * get assessment answer (submission)\n * @param {array} respond API respond from get_submissions\n */\n getAnswer(respond, activityId?: number) {\n let answer = this.normalise(respond).answer;\n return answer;\n }\n\n /**\n * get review (feedback from moderator)\n */\n getReview(review) {\n return review;\n }\n\n /**\n * extract reference IDs and prepare Observables to retrieve submissions\n * @param {array} references References array responded with get_activities() api\n */\n getSubmissionsByReferences(references) {\n let tasks = []; // multiple API requests\n\n // get_submissions API to retrieve submitted answer\n let getSubmissions = (contextId) => {\n return this.getSubmissions({\n search: {\n context_id: contextId\n }\n });\n };\n // Congregation of get_submissions API Observable with different context_id\n _.forEach(references, reference => {\n if (reference.context_id) {\n return tasks.push(getSubmissions(reference.context_id));\n }\n });\n\n return tasks;\n }\n // get user submissions data\n // @TODO Remove it later\n getSubmissionsData() {\n return this.getSubmissions();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/submission.service.ts","import { Injectable } from '@angular/core';\nimport { RequestService } from '../shared/request/request.service';\n\nimport * as _ from 'lodash';\n\nclass Assessment {\n id: number;\n context_id: number;\n in_progress?: Boolean;\n}\n\nclass Answer {\n assessment_question_id: number;\n answer: String | Object | Array;\n choices?: Array;\n}\n\nexport class ChoiceBase {\n id: number;\n value?: number; // or choice id, usually same as \"id\" above\n name: string;\n description?: string;\n explanation?: string;\n order?: number;\n weight?: number;\n}\n\nexport class QuestionBase {\n id: number;\n question_id: number;\n group_id: number;\n assessment_id: number;\n name: string;\n type: string;\n file_type?: string;\n audience: Array;\n choices?: ChoiceBase[];\n answer?: any;\n required?: boolean;\n order?: string | number;\n\n constructor(id, assessment_id, name, type) {\n this.id = id;\n this.assessment_id = assessment_id;\n this.name = name;\n this.type = type;\n }\n}\n\nexport class Submission {\n Assessment: Assessment;\n AssessmentSubmission?: any;\n AssessmentSubmissionAnswer: Object;\n}\n\n@Injectable()\nexport class AssessmentService {\n constructor(\n public request: RequestService\n ) {}\n\n /**\n * @description check feedback can show\n * @type {boolen}\n */\n isPublished(submissions: any):boolean {\n let published = false;\n _.forEach(submissions, (submission) => {\n _.forEach(submission, (subm) => {\n if (\n subm.AssessmentSubmission &&\n subm.AssessmentSubmission.status === 'published'\n ) {\n published = true;\n }\n });\n });\n return published;\n }\n\n // listAll()\n getAll(options?: any) {\n return this.request.get('api/assessments.json', options);\n }\n\n /**\n * get question's details\n * example:\n * - for multiple-type question, checkbox data is not available in\n * ActivitySequences (from get_activities API) and get_assessments API\n * - checkbox values (selected checkbox ids are required for post_assessments API) which\n * they are only available in this get_export_assessments api\n *\n * @param {any} options [description]\n */\n getQuestion(options?: any) {\n return this.request.get('api/export_assessments.json', options);\n }\n\n post(assessmentAnswer: Submission) {\n return this.request.post('api/assessment_submissions.json', assessmentAnswer, {\n 'Content-Type': 'application/json'\n });\n }\n\n /**\n * save progress using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n save(assessmentAnswer) {\n assessmentAnswer.Assessment.in_progress = true; // force in_progress\n\n return this.post(assessmentAnswer);\n }\n\n /**\n * submit using \"post\" function AssessmentService.post()\n * @param {Object} assessmentAnswer\n */\n submit(assessmentAnswer) {\n return this.post(assessmentAnswer);\n }\n\n /*\n Turn API format from:\n {\n \"Assessment\": {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n },\n \"AssessmentGroup\": [\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n }\n },\n ...\n ]\n }\n ]\n }\n\n Into:\n {\n \"id\": 29,\n \"name\": \"Check-in 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_team\": false,\n \"is_repeatable\": false\n \"groups\": {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"questions\": [\n {\n \"id\": 100,\n \"assessment_question_id\": 100,\n \"assessment_group_id\": 28,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"AssessmentQuestionChoice\": []\n \"order\": null,\n },\n ...\n ]\n }\n }\n */\n normalise(assessment) {\n let result = assessment.Assessment;\n let thisGroups = assessment.AssessmentGroup;\n\n thisGroups = thisGroups.map(group => {\n return this.normaliseGroup(group);\n });\n\n return {\n id: result.id,\n name: result.name,\n description: result.description,\n assessment_type: result.assessment_type,\n is_team: result.is_team,\n is_repeatable: result.is_repeatable,\n AssessmentGroup: thisGroups\n };\n }\n\n /*\n turn \"AssessmentGroup\" object format from:\n {\n \"id\": 28,\n \"name\": \"Group 1\",\n \"description\": \"\",\n \"order\": 1,\n \"assessment_id\": 29,\n \"AssessmentGroupQuestion\": [\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n },\n ...\n ]\n }\n\n into format:\n {\n id: group.id,\n name: group.name,\n description: group.description,\n assessment_id: group.assessment_id,\n order: group.order\n questions: [\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n },\n ...\n ],\n }\n */\n normaliseGroup(group) {\n // let result = group;\n let thisQuestions = group.AssessmentGroupQuestion;\n thisQuestions = thisQuestions.map(question => {\n return this.normaliseQuestion(question);\n });\n\n return {\n id: group.id,\n assessment_id: group.assessment_id,\n name: group.name,\n description: group.description,\n questions: thisQuestions,\n order: group.order,\n }\n }\n\n /*\n turn \"AssessmentGroupQuestion\" array format from:\n {\n \"assessment_question_id\": 100,\n \"order\": null,\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"AssessmentQuestion\": {\n \"id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"questions\": []\n }\n }\n\n into:\n {\n \"id\": 100,\n \"assessment_group_id\": 28,\n \"assessment_question_id\": 100,\n \"name\": \"Selfie\",\n \"description\": \"\",\n \"question_type\": \"file\",\n \"file_type\": \"image\",\n \"is_required\": false,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"choices\": []\n \"order\": null,\n }\n */\n normaliseQuestion(question): QuestionBase {\n let thisQuestion = question.AssessmentQuestion;\n let choices = thisQuestion.AssessmentQuestionChoice;\n\n choices = choices.map(choice => {\n return this.normaliseChoice(choice);\n });\n\n return {\n id: question.id,\n assessment_id: question.assessment_question_id,\n question_id: question.assessment_question_id,\n group_id: question.assessment_group_id,\n name: thisQuestion.name,\n type: thisQuestion.question_type,\n audience: thisQuestion.audience,\n file_type: thisQuestion.file_type,\n required: thisQuestion.is_required,\n choices: choices,\n order: question.order,\n answer: thisQuestion.answer\n };\n }\n\n /*\n turn \"AssessmentQuestionChoice\" array format from:\n {\n \"id\": 275,\n \"assessment_question_id\": 104,\n \"assessment_choice_id\": 275,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 275,\n \"name\": \"New Choice 1\",\n \"description\": \"bad\"\n }\n }\n\n into:\n {\n \"id\": 275,\n \"value\": 275, // or choice id, usually same as \"id\" above\n \"name\": \"New Choice 1\",\n \"description\": \"bad\",\n \"explanation\": null,\n \"order\": 1,\n \"weight\": \"1\",\n }\n */\n normaliseChoice(choice): ChoiceBase {\n return {\n id: choice.id, // same as assessment_choice_id & AssessmentChoice.id & id\n value: choice.assessment_choice_id, // or choice.id (similar id used as \"assessment_choice_id\")\n name: choice.AssessmentChoice.name,\n description: choice.AssessmentChoice.description,\n explanation: choice.explanation,\n order: choice.order,\n weight: choice.weight\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/assessment.service.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { Http } from '@angular/http';\nimport { NavController, ToastController, LoadingController, ModalController } from 'ionic-angular';\nimport { Observable } from 'rxjs/Observable';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { AchievementService } from '../../../services/achievement.service';\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { CharacterService } from '../../../services/character.service';\nimport { GameService } from '../../../services/game.service';\nimport { SubmissionService } from '../../../services/submission.service';\n// pages\nimport { ActivitiesViewPage } from '../view/activities-view.page';\nimport { ActivityListPopupPage } from './popup';\nimport { ItemsPopupPage } from '../../assessments/popup/items-popup.page';\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// pipes\nimport { TruncatePipe } from '../../../pipes/truncate.pipe';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport { TranslationService } from '../../../shared/translation/translation.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'activities-list-page',\n templateUrl: 'list.html'\n})\nexport class ActivitiesListPage implements OnInit {\n achievements: any = {\n maxPoint: {},\n obtained: {},\n available: []\n };\n activities: any = [];\n activitiesEmptyDataErr: any = errMessages.Activities.activities.empty;\n activitiesLoadingErr: any = errMessages.General.loading.load;\n anyNewItems: any = this.cacheService.getLocal('gotNewItems');\n characterCurrentExperience: number = 0;\n characterData: any = [];\n currentPercentage: any = '0';\n currentPoints: number = 0;\n filteredSubmissions: any = [];\n initialItems: any = [];\n maxPoints: number = 0;\n newItemsData: any = [];\n returnError: boolean = false;\n percentageValue: number = 0;\n submissionData: any = [];\n submissionPoints: number = 0;\n totalAchievements: any = [];\n\n constructor(\n public achievementService: AchievementService,\n public activityService: ActivityService,\n public cacheService: CacheService,\n public characterService: CharacterService,\n public gameService: GameService,\n public http: Http,\n public loadingCtrl: LoadingController,\n public modalCtrl: ModalController,\n public navCtrl: NavController,\n public submissionService: SubmissionService,\n public toastCtrl: ToastController,\n public translationService: TranslationService\n ) {\n this.anyNewItems = this.cacheService.getLocal('gotNewItems');\n this.newItemsData = this.cacheService.getLocalObject('allNewItems');\n }\n ngOnInit() {\n this.loadingDashboard();\n }\n // refresher activities\n doRefresh(e) {\n this.loadingDashboard();\n e.complete();\n }\n // display user achievemnt statistics score points\n loadingDashboard() {\n let loadingData = this.loadingCtrl.create({\n content: 'Loading ..'\n });\n let loadingFailed = this.toastCtrl.create({\n message: this.activitiesLoadingErr,\n duration: 4000,\n position: 'bottom'\n });\n let getActivities = this.activityService.getList();\n loadingData.present().then(() => {\n getActivities.subscribe(\n results => {\n this.activities = results;\n if(this.activities.length == 0){\n this.returnError = true;\n }\n let getCharacter = this.characterService.getCharacter();\n let getSubmission = this.submissionService.getSubmissionsData();\n Observable.forkJoin([getSubmission, getCharacter])\n .subscribe(results => {\n loadingData.dismiss().then(() => {\n this.submissionData = results[0];\n _.forEach(this.submissionData, element => {\n if(element.AssessmentSubmission.status == 'published' || element.AssessmentSubmission.status == 'done'){\n if(element.AssessmentSubmission.moderated_score !== null){\n this.filteredSubmissions.push(element.AssessmentSubmission);\n this.submissionPoints += parseFloat(element.AssessmentSubmission.moderated_score);\n }\n }\n });\n let average_score = (this.submissionPoints/this.filteredSubmissions.length)*100;\n (average_score > 0) ? this.percentageValue = average_score : this.percentageValue = 0;\n this.currentPercentage = this.percentageValue.toFixed(2);\n // console.log('Percent: ', this.currentPercentage); // display as string format\n this.characterData = results[1].Characters[0];\n this.cacheService.setLocal('character_id', this.characterData.id);\n console.log('character id: ', this.characterData.id);\n this.characterCurrentExperience = this.characterData.experience_points;\n // console.log('Experience: ', this.characterCurrentExperience);\n this.gameService.getItems({\n character_id: this.characterData.id\n })\n .subscribe(\n data => {\n this.initialItems = data.Items;\n this.cacheService.setLocalObject('initialItems', this.initialItems);\n console.log('Items Data: ', this.initialItems);\n },\n err => {\n console.log('Items Data error: ', err);\n }\n );\n });\n },\n err => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n },\n error => {\n loadingData.dismiss().then(() => {\n loadingFailed.present();\n });\n }\n );\n });\n }\n // redirect to activity detail page\n goToDetail(activity: any, id: any){\n this.navCtrl.push(ActivitiesViewPage, {\n achievements: this.achievements,\n activity: activity\n });\n }\n // view the disabled activity popup\n goToPopup(unlock_id: any){\n let disabledActivityPopup = this.modalCtrl.create(ActivityListPopupPage, {unlock_id: unlock_id});\n console.log('Achievement ID: ', unlock_id);\n disabledActivityPopup.present();\n }\n // close modal and display as main page\n closeItemsShwon(){\n this.anyNewItems = !this.cacheService.getLocal('gotNewItems');\n this.cacheService.setLocalObject('allNewItems', []);\n this.cacheService.setLocal('gotNewItems', !this.cacheService.getLocal('gotNewItems'));\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/activities/list/list.page.ts","import { Injectable } from '@angular/core';\n\n// Services\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\n\n@Injectable()\nexport class AchievementService {\n target_model = 'program';\n target_id = this.cacheService.getLocalObject('program_id');\n getMaximumPointsUrl = `api/maximum_points.json?target_model=${this.target_model}&target_id=${this.target_id}`;\n totalAchievementUrl = 'api/achievements.json';\n userAchievementUrl = 'api/user_achievements.json';\n\n constructor(\n public cacheService: CacheService,\n public request: RequestService\n ) {}\n\n // List Maximum Point Of Total Achievements\n getMaxPoints(){\n return this.request.get(this.getMaximumPointsUrl);\n }\n\n // List User Achievements\n getAchievements(params = {}) {\n return this.request.get(this.userAchievementUrl);\n }\n\n // List All Achievements\n getAll() {\n return this.request.get(this.totalAchievementUrl);\n }\n\n /*\n turn:\n {\n \"Achievement\": {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 4,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n }\n\n into:\n {\n \"id\": 1,\n \"name\": \"test\",\n \"description\": \"\",\n \"badge\": \"https://www.filepicker.io/api/file/test\",\n \"visibility\": 1,\n \"condition\": \"AND\",\n \"model\": \"Program\",\n \"model_id\": 1,\n \"is_default\": false,\n \"scope\": \"individual\",\n \"points\": 100\n }\n */\n normalise(achievement) {\n return achievement.Achievement;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/achievement.service.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// others\nimport { CacheService } from '../shared/cache/cache.service';\nimport { RequestService } from '../shared/request/request.service';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class EventService {\n bookEventUrl = 'api/book_events.json';\n targetUrl = 'api/events.json';\n\n constructor(\n public cache: CacheService,\n public request: RequestService\n ) {}\n\n getEvents(options: Object = {}) {\n options = _.merge({\n search: {\n type: 'session'\n }\n }, options);\n\n return this.request.get(this.targetUrl, options)\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(events) {\n _.forEach(events, (event, idx) => {\n events[idx].isAttended = (event.isBooked === true && moment().isAfter(moment(event.end)));\n // We assume server datetime response is UTC...\n events[idx].startDisplay = moment.utc(event.start).local().format(\"dddd, MMM D [at] h:mm A\");\n });\n\n return events;\n }\n\n /**\n * download attachment by single event object\n * @param {[type]} event [description]\n */\n\n downloadAttachment(event) {\n let url = event.fileUrl;\n // var blob = new Blob([data], { type: 'text/csv' });\n // var url= window.URL.createObjectURL(blob);\n window.open(url);\n }\n\n /**\n * get event using observable\n * @param {integer} eventId single event id\n */\n bookEvent(eventId) {\n let urlSearchParams = new URLSearchParams();\n urlSearchParams.append('event_id', eventId);\n return this.request.post(this.bookEventUrl, urlSearchParams);\n }\n\n cancelEventBooking(eventId){\n return this.request.delete(this.bookEventUrl + '?event_id=' + eventId);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/event.service.ts","import { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FilepickerConfig, FilepickerService } from './filepicker.service';\nimport { FilePreviewDirective } from './file-preview.directive';\n\n@NgModule({\n imports: [ CommonModule ],\n providers: [\n FilepickerService\n ],\n declarations: [\n FilePreviewDirective\n ],\n exports: [\n FilePreviewDirective,\n CommonModule,\n ]\n})\n\nexport class FilepickerModule {\n constructor(@Optional() @SkipSelf() parentModule: FilepickerModule) {\n if (parentModule) {\n throw new Error('FilepickerModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: FilepickerConfig): ModuleWithProviders {\n return {\n ngModule: FilepickerModule,\n providers: [\n {provide: FilepickerConfig, useValue: config}\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.module.ts","import { Directive, ElementRef, Renderer, Input, OnChanges } from '@angular/core';\nimport { WindowRef } from '../window';\n\n@Directive({\n selector: '[file-preview]'\n})\nexport class FilePreviewDirective implements OnChanges {\n @Input('file-preview') url: string;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer,\n private win: WindowRef\n ) {\n el.nativeElement.style.width = '100%';\n el.nativeElement.style.height = win.nativeWindow.screen.height+'px' || '500px';\n }\n\n ngOnChanges () {\n let el = this.el.nativeElement;\n let url = this.url || el.getAttribute('file-preview');\n\n if (url && url.length > 0) {\n url = url.replace('api/file/', 'api/preview/');\n let iframe = this.renderer.createElement(el, 'iframe');\n\n /* Set full size so it gets size from parrent element */\n iframe.width = '100%';\n iframe.height = '100%';\n\n iframe.src = url;\n } else {\n el.innerHtml = '

Invalid attachment URL found.

';\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/file-preview.directive.ts","import { NgModule } from '@angular/core';\nimport { UtilsService } from './utils.service';\n\n@NgModule({\n providers: [UtilsService]\n})\n\nexport class UtilsModule {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/utils/utils.module.ts","/**\n * Instructions:\n * To use this test module, insert \"my-test\" attribute to your HTML tag.\n * It'll generate a full Ionic Page,\n * so it's recommended to include it only if you need it as single full page/component.\n */\n\nimport { ModuleWithProviders, NgModule, SkipSelf, Optional } from '@angular/core';\nimport { IonicModule } from 'ionic-angular';\nimport { CommonModule} from '@angular/common';\nimport { TestPage } from './pages/test/test.page';\nimport { TestStartPage } from './pages/test/test-start.page';\nimport { TestDirective } from './test.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n IonicModule\n ],\n declarations: [\n TestPage,\n TestStartPage,\n TestDirective,\n ],\n exports: [\n TestPage,\n TestStartPage,\n TestDirective,\n CommonModule,\n IonicModule\n ]\n})\n\nexport class TestModule {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.module.ts","import { Component, ViewChild } from '@angular/core';\n// import { TestStartPage } from './test-start.page';\n\n@Component({\n selector: 'full-test',\n template: `\n \n Test page\n \n \n\n \n \n `\n})\nexport class TestPage {\n @ViewChild('something') nav;\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n something() {\n console.log(this.nav);\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test.page.ts","import { Component, ViewChild, ViewChildren } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// pages\nimport { AchievementsViewPage } from '../../../../pages/achievements/view/achievements-view.page';\nimport { AssessmentsGroupPage } from '../../../../pages/assessments/group/assessments-group.page';\nimport { ActivitiesClassicListPage } from '../../../../pages/activities-classic/list/activities-classic-list.page';\nimport { EventsListPage } from '../../../../pages/events/list/list.page';\nimport { EventsDownloadPage } from '../../../../pages/events/download/events-download.page';\nimport { GalleryPage } from '../../../../pages/gallery/gallery';\nimport { LevelsListPage } from '../../../../pages/levels/list/list';\nimport { LoginPage } from '../../../../pages/login/login';\nimport { RegistrationPage } from '../../../../pages/registration/registration.page';\nimport { SettingsPage } from '../../../../pages/settings/settings.page';\nimport { EventCheckinPage } from '../../../../pages/events/checkin/event-checkin.page';\nimport { TeamPage } from '../../../../pages/team/team';\nimport { CelebrationPage } from '../../../../pages/spinwheel/celebration.page';\n\nconst PAGES = [\n {\n name: 'celebration',\n page: CelebrationPage\n },\n {\n name: 'Check-in',\n page: EventCheckinPage,\n params: {\n event: {\n \"id\": 132,\n \"activity_id\": 35,\n \"start\": \"2017-04-01 08:15:00\",\n \"end\": \"2018-03-16 09:15:00\",\n \"location\": \"location\",\n \"title\": \"Year long\",\n \"description\": \"Test\",\n \"capacity\": 40,\n \"remaining_capacity_percentage\": 95,\n \"remaining_capacity\": 38,\n \"isBooked\": true,\n \"files\": [],\n \"References\": [\n {\n \"context_id\": 44,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n }\n }\n ],\n \"isAttended\": false,\n \"startDisplay\": \"Saturday, Apr 1 at 4:15 PM\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"Activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\",\n \"activity\": {\n \"id\": 35,\n \"milestone_id\": 9,\n \"name\": \"Test Event\",\n \"description\": \"\",\n \"lead_image\": null,\n \"video_url\": \"\",\n \"order\": null,\n \"instructions\": \"\",\n \"is_locked\": false,\n \"start\": \"2016-10-22 13:00:01\",\n \"end\": \"2019-07-18 13:59:59\",\n \"deadline\": \"2019-07-18 13:59:59\"\n },\n \"sequence\": {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n },\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n }\n },\n \"ActivitySequence\": [\n {\n \"id\": 77,\n \"activity_id\": 35,\n \"model\": \"Assess.Assessment\",\n \"model_id\": 37,\n \"order\": 0,\n \"is_locked\": false,\n \"Assess.Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false,\n \"context_id\": 43\n },\n \"context_id\": 43\n }\n ],\n \"References\": [\n {\n \"context_id\": 43,\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\"\n }\n }\n ]\n },\n \"coverUrl\": \"/assets/img/static/event-cover-3.jpg\",\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"context_id\": 44\n },\n \"context_id\": 44\n },\n submissions: [\n {\n \"id\": 20,\n \"submitter_id\": 20,\n \"created\": \"2017-07-28 03:05:36\",\n \"modified\": \"2017-07-28 03:05:38\",\n \"status\": \"in progress\",\n \"assessment_id\": 37,\n \"order\": null,\n \"submitted\": null,\n \"team_id\": null,\n \"program_id\": 4,\n \"activity_id\": 132,\n \"score\": null,\n \"moderated_score\": \"0\",\n \"publish_date\": null,\n \"review_score\": \"0\",\n \"timeline_id\": 5,\n \"context_id\": 44,\n \"assessment\": {\n \"id\": 37,\n \"name\": \"Event Assessment 1\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"checkin\",\n \"is_live\": true,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 4,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2017-07-25 16:20:27\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"answer\": [\n {\n \"id\": 75,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 129,\n \"answer\": 284,\n \"score\": \"0\"\n },\n {\n \"id\": 76,\n \"assessment_submission_id\": 20,\n \"comment\": null,\n \"assessment_question_id\": 132,\n \"answer\": {\n \"filename\": \"stuckhere.png\",\n \"handle\": \"iALqct8jRSuKhVs3NB8C\",\n \"mimetype\": \"image/png\",\n \"originalPath\": \"stuckhere.png\",\n \"size\": 195280,\n \"source\": \"local_file_system\",\n \"url\": \"https://cdn.filestackcontent.com/iALqct8jRSuKhVs3NB8C\",\n \"status\": \"Stored\",\n \"icon\": \"fa-image\",\n \"key\": \"iALqct8jRSuKhVs3NB8C\"\n },\n \"score\": \"0\"\n }\n ],\n \"review\": []\n }\n ]\n }\n },\n {\n name: 'Multiple Choice Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n\n ]\n },\n assessment: {\n \"Assessment\": {\n \"id\": 37,\n \"name\": \"Multiple Option Question\",\n \"description\": \"Needs a description...\",\n \"assessment_type\": \"quiz\",\n \"is_live\": false,\n \"is_team\": false,\n \"score_type\": \"numeric\",\n \"experience_id\": 2,\n \"program_id\": 5,\n \"deleted\": false,\n \"deleted_date\": null,\n \"comparison_group_size\": 3,\n \"comparison_group_points\": 10,\n \"review_period\": 72,\n \"review_scope\": \"team\",\n \"review_scope_id\": null,\n \"created\": \"2016-06-23 06:07:39.681326\",\n \"modified\": \"2016-06-23 06:07:39.681326\",\n \"review_instructions\": null,\n \"is_repeatable\": false,\n \"num_reviews\": 1,\n \"review_type\": \"single\",\n \"review_role\": \"mentor\",\n \"visibility\": {\n \"guest\": false,\n \"participant\": true,\n \"mentor\": true,\n \"coordinator\": true,\n \"admin\": false,\n \"team\": false,\n \"sysadmin\": false\n },\n \"auto_assign_reviewers\": null,\n \"parent_id\": null,\n \"auto_publish_reviews\": false\n },\n \"AssessmentQuestion\": [\n {\n \"name\": \"1st Multitple Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 140,\n \"assessment_id\": 37\n },\n {\n \"name\": \"2nd Multi Question\",\n \"question_type\": \"multiple\",\n \"file_type\": null,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"id\": 141,\n \"assessment_id\": 37,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n ],\n \"AssessmentGroup\": [\n {\n \"id\": 42,\n \"assessment_id\": 37,\n \"name\": \"1st Group\",\n \"description\": \"\",\n \"order\": 1,\n \"review_instructions\": \"\",\n \"restart_numbering\": false,\n \"AssessmentGroupQuestion\": [\n {\n \"id\": 140,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 140,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 140,\n \"assessment_id\": 37,\n \"name\": \"1st Multitple Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 283,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 283,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 283,\n \"name\": \"New Choice 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 284,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 284,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 284,\n \"name\": \"New Choice 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 285,\n \"assessment_question_id\": 140,\n \"assessment_choice_id\": 285,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 285,\n \"name\": \"New Choice 3\",\n \"description\": \"\"\n }\n }\n ]\n }\n },\n {\n \"id\": 141,\n \"assessment_group_id\": 42,\n \"assessment_question_id\": 141,\n \"order\": null,\n \"AssessmentQuestion\": {\n \"id\": 141,\n \"assessment_id\": 37,\n \"name\": \"2nd Multi Question\",\n \"description\": \"\",\n \"hint\": \"\",\n \"score\": \"1\",\n \"question_type\": \"multiple\",\n \"has_comment\": false,\n \"is_required\": true,\n \"audience\": \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n \"answer\": null,\n \"file_type\": null,\n \"AssessmentQuestionChoice\": [\n {\n \"id\": 286,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 286,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 286,\n \"name\": \"One of the first\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 287,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 287,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 287,\n \"name\": \"2nd \",\n \"description\": \"\"\n }\n },\n {\n \"id\": 288,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 288,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 288,\n \"name\": \"3rd Choice\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 289,\n \"assessment_question_id\": 141,\n \"assessment_choice_id\": 289,\n \"order\": 4,\n \"weight\": \"0\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 289,\n \"name\": \"Select me too!\",\n \"description\": \"\"\n }\n }\n ]\n }\n }\n ]\n }\n ],\n\n }\n }\n },\n {\n name: 'Assorted Assessments Questions',\n page: AssessmentsGroupPage,\n params: {\n assessmentGroup: {\n AssessmentGroupQuestion: [\n {\n AssessmentQuestion: {\n id: 4,\n question_type: 'file',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: 'image',\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 5,\n question_type: 'multiple',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'Multiple: 3 choices Questions',\n is_required: true\n }\n },\n\n {\n AssessmentQuestion: {\n\n id: 1,\n question_type: 'oneof',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [\n {\n \"id\": 1,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 1,\n \"order\": 1,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 1,\n \"name\": \"Test 1\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 2,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 2,\n \"order\": 2,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 2,\n \"name\": \"Test 2\",\n \"description\": \"\"\n }\n },\n {\n \"id\": 3,\n \"assessment_question_id\": 5,\n \"assessment_choice_id\": 3,\n \"order\": 3,\n \"weight\": \"1\",\n \"explanation\": null,\n \"AssessmentChoice\": {\n \"id\": 3,\n \"name\": \"Test 3\",\n \"description\": \"\"\n }\n }\n ],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'SITUATION: The context in which this experience took place',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 2,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'TASK: What was actually required of me in that situation?',\n is_required: true\n }\n },\n {\n AssessmentQuestion: {\n id: 3,\n question_type: 'text',\n audience: \"[\\\"reviewer\\\",\\\"submitter\\\"]\",\n file_type: null,\n AssessmentQuestionChoice: [],\n answers: {\n submitter: [],\n reviewer: [],\n },\n name: 'ACTION: What did I do given the situation and the task?',\n is_required: true\n }\n }\n ]\n },\n assessment: {\n Assessment: {\n id:'temporary_fake_id'\n },\n AssessmentGroupQuestion: []\n\n }\n }\n },\n {\n name: 'Events',\n page: EventsListPage\n },\n {\n name: 'Events Download',\n page: EventsDownloadPage\n },\n {\n name: 'Registration',\n page: RegistrationPage\n },\n {\n name: 'Gallery',\n page: GalleryPage\n },\n {\n name: 'Login',\n page: LoginPage\n },\n {\n name: 'Activities',\n page: ActivitiesClassicListPage\n },\n {\n name: 'Levels',\n page: LevelsListPage\n },\n {\n name: 'Teams',\n page: TeamPage\n },\n {\n name: 'Setting',\n page: SettingsPage\n },\n {\n name: 'Achievement View',\n page: AchievementsViewPage\n }\n];\n\n@Component({\n selector: 'my-test',\n templateUrl: 'test.html'\n})\nexport class TestStartPage {\n items: Array = PAGES;\n\n testPage;\n\n constructor(public nav: NavController) {\n // console.log('ActivitiesClassicListPage', ActivitiesClassicListPage)\n // console.log('??', ActivitiesClassicListPage);\n }\n\n goTo(nav) {\n this.testPage = nav.page;\n\n this.nav.push(nav.page, nav.params || null);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/pages/test/test-start.page.ts","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: './celebration.html'\n})\nexport class CelebrationPage {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/spinwheel/celebration.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'test-page',\n template: ``\n})\nexport class TestDirective {\n rootPage = null;\n @ViewChild('testPage') nav: NavController;\n\n/* constructor(page: TestStartPage) {\n this.rootPage = page;\n }*/\n\n goBack() {\n console.log(this.nav);\n this.nav.pop();\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/testModules/test.directive.ts","import { NgModule } from '@angular/core';\nimport { TranslationService } from './translation.service';\n@NgModule({\n providers: [ TranslationService ]\n})\nexport class TranslationModule {}\n\n\n// WEBPACK FOOTER //\n// ./src/shared/translation/translation.module.ts","import { Injectable, EventEmitter } from '@angular/core';\n\n@Injectable()\nexport class GroupEmitterService {\n static _emitter: { [ID: string]: EventEmitter };\n\n static get(ID: string): EventEmitter {\n if (!this._emitter[ID]) {\n this._emitter[ID] = new EventEmitter();\n }\n return this._emitter[ID];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/group-emitter.service.ts","import {\n ModuleWithProviders,\n NgModule,\n SkipSelf,\n Optional\n} from '@angular/core';\nimport { HttpModule } from '@angular/http';\nimport { CommonModule} from '@angular/common';\nimport '../rxjs-operators';\nimport { RequestServiceConfig, RequestService } from './request.service';\n\n@NgModule({\n imports: [HttpModule, CommonModule, /* spare a space for appcache module*/],\n providers: [\n RequestService,\n // { provide: RequestOptions, useClass: CustomRequestOption }\n ]\n})\n\nexport class RequestModule {\n constructor(@Optional() @SkipSelf() parentModule: RequestModule) {\n if (parentModule) {\n throw new Error(\n 'CoreModule is already loaded. Import it in the AppModule only');\n }\n }\n\n static forRoot(config: RequestServiceConfig): ModuleWithProviders {\n return {\n ngModule: RequestModule,\n providers: [\n {\n provide: RequestServiceConfig, useValue: config\n }\n ]\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/request/request.module.ts","// import 'rxjs/Rx'; // adds ALL RxJS statics & operators to Observable\n\n// See node_module/rxjs/Rxjs.js\n// Import just the rxjs statics and operators we need for THIS app.\n\n// Statics\nimport 'rxjs/add/observable/throw';\nimport 'rxjs/add/observable/of';\nimport 'rxjs/add/observable/forkJoin';\nimport 'rxjs/add/observable/from';\n\n// Operators\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/debounceTime';\nimport 'rxjs/add/operator/distinctUntilChanged';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/operator/do';\nimport 'rxjs/add/operator/finally';\n// import 'rxjs/subject';\n// import 'rxjs/add/operator/switchMap';\nimport 'rxjs/add/operator/toPromise';\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/rxjs-operators.ts","import { Injectable } from '@angular/core';\nimport { URLSearchParams } from '@angular/http';\n\n// Others\nimport { RequestService } from '../shared/request/request.service';\nimport * as moment from 'moment';\n\n@Injectable()\nexport class SessionService {\n targetUrl = 'api/sessions.json';\n\n constructor(\n public request: RequestService\n ) {}\n\n getSessions() {\n return this.request.get(this.targetUrl)\n .map(response => response.json())\n .map(this._normalise)\n .toPromise();\n }\n\n _normalise(session) {\n session.start = moment.utc(session.start);\n session.end = moment.utc(session.end);\n session.isExpired = moment().isAfter(session.end);\n session.isFull = false;\n\n if (session.remaining_capacity === 0) {\n session.isFull = true;\n }\n return session;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/session.service.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\nimport { TruncatePipe } from '../../pipes/truncate.pipe';\n\n@Component({\n selector: 'questionGroup',\n templateUrl: 'question-group.html',\n})\nexport class QuestionGroupComponent {\n @Input() group: any = {};\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/question-group/question-group.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n// Services\nimport { EventService } from '../../services/event.service';\n// Others\nimport * as moment from 'moment';\n\n@Component({\n selector: 'event',\n templateUrl: 'event.html'\n})\nexport class EventComponent {\n @Input() event: any;\n\n constructor(\n public eventService: EventService,\n public navCtrl: NavController\n ) {}\n\n // Check event has been booked\n isBookedEvent(event) {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }\n\n // Check event has been booked and attended\n isAttendedEvent(event) {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }\n\n download() {\n this.eventService.downloadAttachment(this.event);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/event/event.component.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'level',\n templateUrl: 'level.html'\n})\nexport class LevelComponent {\n @Input() level;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoLevel(levelId) {\n // this.navCtrl.push(levelDetail);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/level/level.ts","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'loading-marker',\n templateUrl: 'loadingMarker.html'\n})\nexport class LoadingMarkerComponent {\n @Input() loading: any;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loadingMarker/loadingMarker.ts","import { Component } from '@angular/core';\n\n@Component({\n selector: 'locker',\n templateUrl: 'locker.html'\n})\nexport class LockerComponent {\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/locker/locker.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'member',\n templateUrl: 'member.html'\n})\nexport class MemberComponent {\n @Input() member;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public sendEmail(target) {\n alert('Send email to ' + target);\n // var emails = lodash.map($scope.members, 'email');\n // var link = 'mailto:' + lodash.join(emails, ',');\n // window.location.href = link;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/member/member.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'photo',\n templateUrl: 'photo.html'\n})\nexport class PhotoComponent {\n @Input() photo;\n\n constructor(\n public navCtrl: NavController\n ) {}\n\n public gotoPhoto(photoId) {\n // this.navCtrl.push();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/photo/photo.ts","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { AuthService } from '../../services/auth.service';\n\n\nconst TermContent = `

Terms of Use Agreement

\n\n

Welcome! By using this platform managed by Intersective Pty Ltd, you are agreeing to comply with and be bound by the following terms of use. These terms are intended to cover the use of the Practera Platform (the Platform) and activities and tasks closely associated with the use of the Platform. Please review the following terms carefully. If you do not agree to these terms, you should not progress any further, and/or communicate with your organisation’s program coordinator.

\n

1. Acceptance of Agreement. You agree to the terms and conditions outlined in this Terms of Use Agreement (\"Agreement\") with respect to the program platform (the \"Platform\"). This Agreement constitutes the entire and only agreement between us and you, and supersedes all prior or contemporaneous agreements, representations, warranties and understandings with respect to the Platform, the content, products or services provided by or through the Platform, and the subject matter of this Agreement. This Agreement may be amended at any time by us from time to time without specific notice to you. The latest Agreement will be posted on the Platform, and you should review this Agreement prior to using the Platform.\n

\n\n

2. Copyright. The content, organization, graphics, design, compilation, magnetic translation, digital conversion and other matters related to the Platform are protected under applicable copyrights, trademarks and other proprietary (including but not limited to intellectual property) rights. The copying, redistribution, use or publication by you of anysuch matters or any part of the Platform, except as allowed by Section 3, is strictly prohibited. You do not acquire ownership rights to any content, document or other materials viewed through the Platform. The posting of information or materials on the Platform does not constitute a waiver of any right in such information and materials.\n

\n\n

3. Limited Right to Use. The viewing, printing or downloading of any content, graphic, form or document from the Platform grants you only a limited, nonexclusive license for use solely by you for your own personal use and not for republication, distribution, assignment, sublicense, sale, preparation of derivative works or other use. No part of any content, form or document may be reproduced in any form or incorporated into any information retrieval system, electronic or mechanical, other than for your personal use (but not for resale or redistribution).\n

\n\n

4. Editing, Deleting and Modification. We reserve the right in our sole discretion to edit or delete any documents, information or other content appearing on the Platform.\n

\n\n

5. Indemnification. You agree to indemnify, defend and hold us and our partners, staff and affiliates (collectively, \"Affiliated Parties\") harmless from any liability, loss, claim and expense, including reasonable legal fees, related to your violation of this Agreement or use of the Platform.\n

\n\n

6. Nontransferable. Your right to use the Platform is not transferable. Any password or right given to you to obtain information or documents is not transferable.\n

\n\n

7. Disclaimer and Limits. All responsibility or liability for any damages caused by viruses contained within the electronic file containing the form or document is disclaimed. WE WILL NOT BE LIABLE TO YOU FOR ANY INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OF ANY KIND THAT MAY RESULT FROM USE OF OR INABILITY TO USE OUR PLATFORM.\n

\n\n

8. Use of Information. We reserve the right, and you authorize us, to the use and assignment of all information regarding Platform uses by you and all information provided by you in any manner consistent with our Privacy Policy.\n

\n\n

9. Third-Party Access. We may allow access to the platform, or to any information contained within the platform, to thirdparties in our absolute discretion, subject to our Privacy Policy.\n

\n\n

10. Privacy Policy. Our Privacy Policy, as it may change from time to time, is a part of this Agreement.\n

\n\n

11. Links to other Web Sites. The Site contains links to other Web Sites. We are not responsible for the content, accuracy or opinions express in such Web Sites, and such Web Sites are not investigated, monitored or checked for accuracy or completeness by us. Inclusion of any linked Web Site on our Site does not imply approval or endorsement of the linked Web Site by us. If you decide to leave our Site and access these third-party Sites, you do so at your own risk.\n

\n\n

12. License of user content. You grant Intersective and any other users of the platform, an irrevocable, global and perpetual license to use any and all content submitted into the platform, including, without limitation, your documents, deliverables, assignments, class notes, course outlines, submits, posts, uploads, displays, reviews, suggestions, ideas, solutions, questions, answers, messages, images, videos, texts of any kind, or other materials for any purposes whatsoever, including, without limitation, developing, manufacturing and marketing products and services for commercial purposes, without any payment or compensation to you. You further agree that Intersective may give free access to all of your above mentioned user content to other third parties, including, without limitation, affiliates, distributors, other users or potential users. You waive any legal or moral rights you may have in any User Content you submit, even if such User Content is altered or changed in any manner.\n

\n\n

Privacy Policy

\n

1. We respect your privacy. As the manager of the program Platform (“The Platform”) Intersective respects your right to privacy and this policy sets out how we collect and treat your personal information. “Personal information” is information we hold which is identifiable as being about you.\n

\n\n

2. What personal information we collect. We may collect a range of types of personal information from you, including, but not limited to, the following:

\n
    \n
  • name
  • \n
  • demographic information – eg; age, gender, socio-economic status
  • \n
  • psychographic information – eg personality, interests, attitudes, behaviours and opinions
  • \n
  • educational history
  • \n
  • employment history
  • \n
  • student number
  • \n
  • user ideas and comments
  • \n
  • information from enquiries you have made
  • \n
  • communications between program participants
  • \n
  • assessments marks and details
  • \n
  • digital and multimedia
  • \n
\n

\n\n

3. How we collect your personal information. We collect personal information from you in a variety of ways, including: when you interact with us electronically or in person; when you access our website; and when we provide our services to you.\n

\n\n

4. Use of your personal information. We use your information to provide our service to you. We also use it to improve our service and to notify you of opportunities that we think you might be interested in. We do not provide or sell your information to third parties, except that we may provide your information to our program partners who support the provision of our services to you expressly for the purpose of facilitating the delivery of that service.\n

\n\n

5. Disclosure of your personal information overseas. We are likely to disclose your personal information to recipients globally.\n

\n\n

6. Security of your personal information. We take reasonable steps to protect your personal information. However we are not liable for any unauthorised access to this information.\n

\n\n

7. Access to your personal information. You can access and update your personal information by contacting us on {{helpline}}\n

\n\n

8. Complaints about privacy. If you have any complaints about our privacy practices, please feel free to send in details of your complaints to {{helpline}}. We take complaints very seriously and will respond shortly after receiving written notice of your complaint.\n

\n\n

9. Changes. Please be aware that we may change this Privacy Policy in the future. The revised versions will be uploaded onto our website, so please check back from time to time.\n

\n\n

10. Website.

\n

When you visit our website

\n

When you come on to our website we may collect certain information such as browser type, operating system, website visited immediately before coming to our site, etc. This information is used in an aggregated manner to analyse how people use our site, such that we can improve our service.

\n\n

Cookies

\n

As is very common for companies, we use cookies on our website. Cookies are very small files which a website uses to identify you when you come back to the site and to store details about your use of the site. Cookies are not malicious programs that access or damage your computer. We use cookies to improve the experience of people using our website.\nThird party sites\nOur site has links to other websites not owned or controlled by us. We are not responsible for these sites or the consequences of you going on to those sites.

`;\n\n@Component({\n selector: 'term-content',\n template: '
'\n})\nexport class TermContentComponent {\n content: string;\n constructor(public sanitizer: DomSanitizer, public authService: AuthService) {\n this.content = TermContent;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/term-condition/term-content.component.ts","import { Component, Input, OnInit, NgZone } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n// Others\nimport { FilepickerService, FilepickerUpload } from '../../shared/filepicker/filepicker.service';\nimport { UtilsService } from '../../shared/utils/utils.service';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'file-question',\n templateUrl: './file.html'\n})\nexport class FileQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n uploaded: any; // uploaded file (support single only)\n // uploaded: Array = []; // uploaded files\n\n constructor(\n public fs: FilepickerService,\n public util: UtilsService,\n public zone: NgZone\n ) {}\n\n /**\n * @description at file type question initiation,\n * uploaded files is retrieved from cached form (if available)\n */\n ngOnInit() {\n this.uploaded = _.isEmpty(this.form.controls.answer.value) ? false : this.form.controls.answer.value;\n }\n\n /**\n * @description Upload file and trigger ngzone to update this.uploaded variable\n */\n upload(event) {\n let self = this;\n\n this.fs.pick({\n maxFiles: 1,\n storeTo: {\n location: 's3'\n }\n }).then((uploaded: FilepickerUpload) => {\n self.zone.run(() => {\n if (uploaded.filesUploaded.length > 0) {\n let file = uploaded.filesUploaded.shift();\n file.icon = self.util.getIcon(file.mimetype);\n\n // post_assessment_submission API requirement \"key\"\n file.key = file.handle;\n\n self.uploaded = file;\n this.form.controls.answer.setValue(self.uploaded);\n }\n\n if (uploaded.filesFailed.length > 0) {\n console.log(uploaded.filesFailed.length, ' file(s) not uploaded.');\n }\n });\n });\n }\n\n injectIcon = (files: any[]) => {\n let result = [];\n files.forEach((file, index) => {\n file.icon = this.util.getIcon(file.mimetype);\n result.push(file);\n });\n\n return result;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/file.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'oneof-question',\n templateUrl: './oneof.html'\n})\nexport class OneofQuestionComponent implements OnInit {\n @Input() question;\n @Input() form: FormGroup;\n @Input() disabled;\n @Output() oneofForm = new EventEmitter();\n\n constructor() {}\n change(e) {\n this.oneofForm.emit(e);\n }\n\n ngOnInit() {\n // console.log(this.question);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/oneof.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'text-question',\n templateUrl: './text.html'\n})\nexport class TextQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/text.ts","import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'multiple-question',\n templateUrl: './multiple.html'\n})\nexport class MultipleQuestionComponent implements OnInit {\n @Input() question;\n @Input() disabled;\n @Input() form: FormGroup;\n\n constructor() {}\n\n change(e) {\n console.log(e);\n console.log(this.question);\n }\n\n ngOnInit() {\n console.log(this.form);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/multiple.ts","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'feedback',\n templateUrl: './feedback.html'\n})\nexport class FeedbackComponent implements OnInit {\n @Input() question;\n\n constructor() {}\n\n ngOnInit() {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/questions/feedback.ts","import { Component, Input } from '@angular/core';\nimport { NavController } from 'ionic-angular';\n\n@Component({\n selector: 'events',\n templateUrl: 'events.html'\n})\nexport class EventsComponent {\n @Input() events;\n\n constructor(\n public navCtrl: NavController\n ) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/events/events.component.ts","import { Component, Injectable } from '@angular/core';\nimport { ViewController, LoadingController, NavParams, NavController } from 'ionic-angular';\n\n// services\nimport { CacheService } from '../../../shared/cache/cache.service';\nimport { TranslateService } from '@ngx-translate/core';\n// pages\nimport { TabsPage } from '../../../pages/tabs/tabs.page';\n// Others\nimport { i18nData } from '../../../app/i18n-en';\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as _ from 'lodash';\n\n@Injectable()\n@Component({\n selector: 'items-popup',\n templateUrl: 'items-popup.html'\n})\nexport class ItemsPopupPage {\n public combinedData: any = [];\n public loadingMessage: any = loadingMessages.LoadingSpinner.loading;\n\n constructor(\n public cacheService: CacheService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController,\n public navParams: NavParams,\n public translationService: TranslateService,\n public viewCtrl: ViewController\n ) {}\n\n ionViewWillEnter() {\n this.combinedData = this.cacheService.getLocalObject('allNewItems');\n }\n\n // close disbaled activity popup\n closeModal() {\n this.viewCtrl.dismiss();\n this.navCtrl.setRoot(TabsPage);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/assessments/popup/items-popup.page.ts","import { Component, ViewChild } from '@angular/core';\nimport { NavController, MenuController } from 'ionic-angular';\n\n// pages\nimport { LoginPage } from '../login/login';\nimport { TabsPage } from '../tabs/tabs.page';\nimport { ActivitiesListPage } from '../activities/list/list.page';\nimport { LevelsListPage } from '../levels/list/list';\n\n/* This is side navigation bar which shows after user logged in to the app */\n@Component({\n selector: 'page-sidenav',\n templateUrl: 'sidenav.html'\n})\nexport class SidenavPage {\n @ViewChild('sideNav') sideNav: NavController;\n\n activitiesListPage = ActivitiesListPage;\n levelsListPage = LevelsListPage;\n loginPage = LoginPage;\n rootPage = null;\n tabsPage = TabsPage;\n\n constructor(\n public menuCtrl: MenuController\n ) {\n this.rootPage = LoginPage;\n }\n\n onLoad(page: any) {\n this.sideNav.setRoot(page);\n this.menuCtrl.close();\n } // handles when user login load specific page which selected/clicked by user\n\n onLogout() {\n localStorage.clear();\n this.menuCtrl.close();\n this.sideNav.setRoot(LoginPage);\n } // handles when user logout\n\n isLoggedin() {\n return localStorage.getItem('isAuthenticated') == 'true';\n }\n // this functin is to check if user is logged in, the value is turn to true,\n // navbar shows all listed page links, else navbar only show login link button\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/sidenav/sidenav.ts","import {Pipe, PipeTransform} from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({ name: 'timeago' })\nexport class TimeAgoPipe implements PipeTransform {\n transform(input, p_allowFuture?: any) : any {\n if (!input || input.length === 0) {\n return '';\n }\n\n // treat API date as UTC\n input = moment.utc(input);\n\n var substitute = function (timeStamp, num, strings) {\n // var string = angular.isFunction(timeStamp) ? timeStamp(num, dateDifference) : timeStamp;\n var string = timeStamp;\n var value = (strings.numbers && strings.numbers[num]) || num;\n return string.replace(/%d/i, value);\n },\n nowTime = (new Date()).getTime(),\n date = (new Date(input)).getTime(),\n //refreshMillis= 6e4, //A minute\n allowFuture = p_allowFuture || false,\n strings= {\n prefixAgo: '',\n prefixFromNow: '',\n suffixAgo: \"ago\",\n suffixFromNow: \"from now\",\n seconds: \"less than a minute\",\n minute: \"about a minute\",\n minutes: \"%d minutes\",\n hour: \"about an hour\",\n hours: \"about %d hours\",\n day: \"a day\",\n days: \"%d days\",\n month: \"about a month\",\n months: \"%d months\",\n year: \"about a year\",\n years: \"%d years\",\n wordSeparator: ' '\n },\n dateDifference = nowTime - date,\n words,\n seconds = Math.abs(dateDifference) / 1000,\n minutes = seconds / 60,\n hours = minutes / 60,\n days = hours / 24,\n years = days / 365,\n separator = strings.wordSeparator,\n\n\n prefix = strings.prefixAgo,\n suffix = strings.suffixAgo;\n\n if (allowFuture) {\n if (dateDifference < 0) {\n prefix = strings.prefixFromNow;\n suffix = strings.suffixFromNow;\n }\n }\n\n words = seconds < 45 && substitute(strings.seconds, Math.round(seconds), strings) ||\n seconds < 90 && substitute(strings.minute, 1, strings) ||\n minutes < 45 && substitute(strings.minutes, Math.round(minutes), strings) ||\n minutes < 90 && substitute(strings.hour, 1, strings) ||\n hours < 24 && substitute(strings.hours, Math.round(hours), strings) ||\n hours < 42 && substitute(strings.day, 1, strings) ||\n days < 30 && substitute(strings.days, Math.round(days), strings) ||\n days < 45 && substitute(strings.month, 1, strings) ||\n days < 365 && substitute(strings.months, Math.round(days / 30), strings) ||\n years < 1.5 && substitute(strings.year, 1, strings) ||\n substitute(strings.years, Math.round(years), strings);\n\n prefix.replace(/ /g, '');\n words.replace(/ /g, '');\n suffix.replace(/ /g, '');\n return (prefix+' '+words+' '+suffix+' '+separator);\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/timeago.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ucfirst'\n})\n// replication of PHP native ucfirst()\nexport class UcfirstPipe implements PipeTransform {\n transform(input: string): any {\n let result = '';\n\n // turn first letter of word into upper case\n var capitalizeFirstLetter = function (string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n };\n\n if (input) {\n result = capitalizeFirstLetter(input);\n }\n\n return result;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/ucfirst.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: string, maxLength: number): string {\n if (value.length < maxLength) {\n return value;\n }\n return value.substring(0, maxLength) + '...';\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/truncate.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: 'keepHtml', pure: false })\nexport class EscapeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(content) {\n return this.sanitizer.bypassSecurityTrustHtml(content);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/keep-html.pipe.ts","// Need update read me\n// Copy file to config.ts\nexport default {\n prefixUrl: 'http://local.practera.com:8080/',\n appKey: 'b11ccabf11',\n filestack: {\n apiKey: 'AlG6WszEEQ96DAjq4hOv1z'\n },\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/configs/config.ts","import { Component } from '@angular/core';\nimport { NavController, LoadingController } from 'ionic-angular';\n\n// services\nimport { ActivityService } from '../../../services/activity.service';\nimport { EventService } from '../../../services/event.service';\n// pages\nimport { EventsViewPage } from '../view/events-view.page';\n// Others\nimport { loadingMessages, errMessages } from '../../../app/messages';\nimport * as moment from 'moment';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'events-list-page',\n templateUrl: 'list.html'\n})\nexport class EventsListPage {\n activities = {};\n emptyFilterErrMessage = errMessages.Events.filter.empty; // loading & error message variables\n events = []; // ordered events array in filterEvents and to be access through template\n filter = 'browses';\n loadedEvents = []; // Further processed events array, for public use\n noAttendedFilterErrMessage = errMessages.Events.filter.noAttended;\n noBookingsFilterErrMessage = errMessages.Events.filter.noBookings;\n noEvents = false;\n\n constructor(\n public activityService: ActivityService,\n public eventService: EventService,\n public loadingCtrl: LoadingController,\n public navCtrl: NavController\n ) {}\n\n /**\n * @name filterEvents\n * @description filter and group events into 3 catergories (attended, my-bookings, browses)\n * attended: expired & booked\n * my-bookings: active event & booked\n * browses: list of available events\n */\n filterEvents() {\n this.noEvents = false;\n switch(this.filter) {\n case 'attended':\n // List all ended event in order of end time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isAfter(moment(event.end)));\n }), 'start', 'desc');\n break;\n case 'my-bookings':\n // List all booked event in order of start time (desc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n return (event.isBooked === true && moment().isBefore(moment(event.end)));\n }), 'start', 'asc');\n break;\n case 'browses':\n // List all not booked and not ended event in order of start time (asc)\n this.events = _.orderBy(_.filter(this.loadedEvents, (event) => {\n // return (moment(event.end).isAfter() && event.isBooked === false);\n // return (moment().isBefore(moment(event.end)) && event.isBooked === false);\n return (moment(event.end).isAfter() && event.isBooked === false);\n }), 'start', 'asc');\n break;\n }\n if (this.events.length === 0) {\n this.noEvents = true;\n }\n return this.events;\n }\n\n // Called when tap on filter tab\n selected(filter) {\n this.filter = filter;\n this.events = this.filterEvents();\n }\n\n // Check total of events, return \"true\" when 0 found\n showNoEventMessage() {\n return (this.noEvents);\n }\n\n /**\n * @name loadEvents\n * @description retrieve events (from get_events) with a list of activity_id (from get_activity)\n * @return {Promise}\n */\n loadEvents(): Promise {\n return new Promise((resolve, reject) => {\n // Get activities IDs\n this.activityService.getList().toPromise()\n .then((activities) => {\n this.activities = {};\n let activityIDs = [];\n _.forEach(activities, (act) => {\n this.activities[act.Activity.id] = act;\n activityIDs.push(act.Activity.id);\n });\n\n // Get event by activityIDs\n this.eventService.getEvents({\n search: {\n activity_id: '[' + _.toString(activityIDs) + ']',\n type: 'session'\n }\n })\n .then((events) => {\n // loadedEvents will never change (public use),\n // it will be used for filtering of events (prep for display/template variable).\n this.loadedEvents = this._injectCover(this._mapWithActivity(events));\n\n // events use to rendering on page\n this.events = _.clone(this.loadedEvents);\n this.filterEvents();\n return resolve();\n }, reject);\n }, reject);\n });\n }\n\n ionViewDidEnter() {\n let loader = this.loadingCtrl.create();\n\n loader.present().then(() => {\n this.loadEvents().then(() => {\n loader.dismiss();\n })\n .catch((err) => {\n console.log(err);\n loader.dismiss();\n });\n });\n }\n\n doRefresh(e) {\n this.loadEvents().then(() => {\n e.complete();\n })\n .catch((err) => {\n console.log('err', err);\n e.complete();\n });\n }\n /**\n * @TODO: remove this once we decided to remove hardcoded images, big size picture is ruining UX because it induces long download time\n *\n * @name _injectCover\n * @description inject hardcoded images by array index number\n * @param {array} events list of event object respond from get_events API\n */\n _injectCover(events) {\n let counts = events.length;\n\n _.forEach(events, (value, key) => {\n let idx = (key % 5) + 1;\n events[key].coverUrl = '/assets/img/static/event-cover-' + idx + '.jpg';\n });\n\n return events;\n }\n\n /**\n * @name _mapWithActivity\n * @description\n * - attach \"activity\" object into each of single \"event\" object\n * - Extract and merge event-activity only\n * - skip non-event activities\n * @param {array} events get_events response\n */\n _mapWithActivity(events) {\n let result = [];\n\n events.forEach(event => {\n let thisActivity = this.activities[event.activity_id];\n thisActivity.References = event.References; // must use event's references\n event.activity = this.activityService.normaliseActivity(thisActivity);\n result.push(event);\n });\n\n return result;\n }\n // Check event allow to check-in\n allowCheckIn(event) {\n return (moment(event.start).isAfter() && moment(event.end).isBefore());\n }\n\n view(event) {\n this.navCtrl.push(EventsViewPage, {\n event\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/events/list/list.page.ts","import { Injectable, Optional } from '@angular/core';\n\ndeclare var filestack: any; // v3 filestack\ndeclare var filepicker: any; // v2 filestack\n\nexport class FilepickerUpload {\n filesFailed: Array;\n filesUploaded: Array;\n}\n\n@Injectable()\nexport class FilepickerConfig {\n apikey = null;\n}\n\nexport class FilepickerService {\n private filestack: any;\n private filepicker: any;\n version: any;\n\n constructor(@Optional() config: FilepickerConfig) {\n this.filestack = filestack.init(config.apikey);\n this.version = filestack.version;\n\n this.filepicker = filepicker;\n this.filepicker.setKey(config.apikey);\n }\n\n /**\n * display pick/upload popup for file upload,\n * refer to filestack documentation for more config information\n * @link https://www.filestack.com/docs/javascript-api/pick-v3\n * @param {object} config filestack object\n * @return {Promise} single resolved object\n */\n pick(config?): Promise {\n if (!config) {\n config = {\n maxFiles: 5, // default by max 5 files\n storeTo: {\n location: 's3'\n }\n };\n }\n\n return this.filestack.pick(config);\n }\n\n pickV1(file, onSuccess, onError?, onProgress?) {\n this.filepicker.pick(file, success => {\n return onSuccess(success);\n }, onError, onProgress);\n }\n\n getSecurity() {\n return this.filestack.getSecurity();\n }\n\n setSecurity (e) {\n return this.filestack.setSecurity(e);\n }\n\n storeURL (e, t) {\n return this.filestack.storeURL(e, t);\n }\n\n transform (e, t) {\n return this.filestack.transform(e, t);\n }\n\n upload (e, t, n, i) {\n return this.filestack.upload(e, t, n, i);\n }\n\n retrieve (e, t) {\n return this.filestack.retrieve(e, t);\n }\n\n remove (e) {\n return this.filestack.remove(e);\n }\n\n metadata (e, t) {\n return this.filestack.metadata(e, t);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/filepicker/filepicker.service.ts"],"sourceRoot":""} \ No newline at end of file From 9599660b9c64fecf6ab958aad72eabc2435455cc Mon Sep 17 00:00:00 2001 From: chaw Date: Mon, 6 Nov 2017 16:22:39 +0800 Subject: [PATCH 13/19] [ISDK-92] santitise resource url first --- .../view/activities-view-modal.page.ts | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/pages/activities/view/activities-view-modal.page.ts b/src/pages/activities/view/activities-view-modal.page.ts index 03a60716..de9f5009 100644 --- a/src/pages/activities/view/activities-view-modal.page.ts +++ b/src/pages/activities/view/activities-view-modal.page.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { ViewController, NavParams } from 'ionic-angular'; +import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; @Component({ template: ` @@ -16,33 +17,45 @@ import { ViewController, NavParams } from 'ionic-angular';

{{ activityData.name }}

-
-

{{ activityData.description || 'No descriptions available.' }}

- - - Download - + + + + +
` }) export class ActivitiesViewModalPage { activity: any = {}; - activityData: Object = {}; + activityData: { + name?: string; + video_url?: string; + content?: string; + description?: string; + } = {}; + + resourceUrl: SafeResourceUrl = null; constructor( public navParams: NavParams, - public viewCtrl: ViewController + public viewCtrl: ViewController, + public santitizer: DomSanitizer ) { } ionViewDidEnter(): void { this.activity = this.navParams.get('activity'); this.activityData = this.activity.Activity; + if (this.activityData) { + this.resourceUrl = this.santitizer.bypassSecurityTrustResourceUrl(this.activityData.video_url) || null; + } console.log(this.activity.Activity); } @@ -50,4 +63,5 @@ export class ActivitiesViewModalPage { let data = { 'foo': 'bar' }; this.viewCtrl.dismiss(data); } + } From 6b806304e312200a1187441d0cc2cb8f64222abc Mon Sep 17 00:00:00 2001 From: chaw Date: Tue, 7 Nov 2017 10:32:18 +0800 Subject: [PATCH 14/19] [ISDK-82] fixed by using ng4 interpolate binding --- src/pages/activities/view/activities-view-modal.page.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/activities/view/activities-view-modal.page.ts b/src/pages/activities/view/activities-view-modal.page.ts index de9f5009..5e15d25c 100644 --- a/src/pages/activities/view/activities-view-modal.page.ts +++ b/src/pages/activities/view/activities-view-modal.page.ts @@ -24,7 +24,7 @@ import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; From 15f7a61215ec67ce831a7860acf8c2c01e0353bf Mon Sep 17 00:00:00 2001 From: chaw Date: Mon, 13 Nov 2017 23:25:22 +0800 Subject: [PATCH 15/19] [ISDK-94] change type indicator --- .../activities/view/activities-view.page.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/pages/activities/view/activities-view.page.ts b/src/pages/activities/view/activities-view.page.ts index b6f6b45a..455df018 100644 --- a/src/pages/activities/view/activities-view.page.ts +++ b/src/pages/activities/view/activities-view.page.ts @@ -153,16 +153,14 @@ export class ActivitiesViewPage { * @param {Array} submissions submissions array objects */ setSubmissionStatusTitle(submissions: Array) { - let results: Array<{ - name: string, - score: number, - published: boolean, - inprogress: boolean, - moderated_assessment: boolean - }>; - submissions = submissions.map((submission, index) => { - let result = { + let result: { + name: string, + score: number, + published: boolean, + inprogress: boolean, + moderated_assessment: boolean + } = { name: '', score: 0, published: false, From 4a0c1a9a26cc85b8ca8e96a7fdee8e79fc0ef17f Mon Sep 17 00:00:00 2001 From: chaw Date: Mon, 13 Nov 2017 23:28:16 +0800 Subject: [PATCH 16/19] [ISDK-94] return empty if none provided --- src/pages/activities/view/view.html | 4 +--- src/pipes/truncate.pipe.ts | 5 +++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/pages/activities/view/view.html b/src/pages/activities/view/view.html index 5dd993fd..037d473a 100644 --- a/src/pages/activities/view/view.html +++ b/src/pages/activities/view/view.html @@ -71,9 +71,7 @@

{{ submission.statusTitle.name }}

{{ (submission.submitted || submission.created).format() | amDateFormat:"MMM D YYYY, h:mm a" }}

- - {{ submission.statusTitle.score }} - + {{ submission.statusTitle.score }} diff --git a/src/pipes/truncate.pipe.ts b/src/pipes/truncate.pipe.ts index f5b56e08..e0dc40aa 100644 --- a/src/pipes/truncate.pipe.ts +++ b/src/pipes/truncate.pipe.ts @@ -4,9 +4,14 @@ import { Pipe, PipeTransform } from '@angular/core'; }) export class TruncatePipe implements PipeTransform { transform(value: string, maxLength: number): string { + if (!value) { // if empty, return default value + return value; + } + if (value.length < maxLength) { return value; } + return value.substring(0, maxLength) + '...'; } } From f4ec3f8529e6624ed42f54e28dd470e52145688d Mon Sep 17 00:00:00 2001 From: chaw Date: Tue, 14 Nov 2017 12:04:18 +0800 Subject: [PATCH 17/19] [ISDK-82] respond message from server --- src/shared/request/request.service.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/shared/request/request.service.ts b/src/shared/request/request.service.ts index 903fb2ab..939d4657 100755 --- a/src/shared/request/request.service.ts +++ b/src/shared/request/request.service.ts @@ -44,26 +44,36 @@ export class RequestService { public getAppkey(){ return this.appkey; } + /** * Error handle for API response * @param {Error} error */ private handleError(error) { - let errorFrom = { - api: 'SERVER_ERROR', - }, - currentError: any = error; + let errorFrom = { api: 'SERVER_ERROR' }, + currentError: any = error; + if (typeof error !== 'object') { throw 'Unable to process API respond!'; } + + let errorBody = error.body || error.error; + if (typeof errorBody == 'string') { + errorBody = JSON.parse(errorBody); + } + + /* @TODO: error tracking - logging feature coming soon if (error.status === 0) { // client unrecoverable error encountered currentError.frontendCode = errorFrom.api; } else { - let errorBody = error.body; currentError.frontendCode = errorBody.data || errorBody.error; } return Observable.throw(currentError); + */ + + return Observable.throw(errorBody); } + // Inject required fields to header of API request appendHeader(customHeader: any = { 'contentType': 'application/json', From fb3f5820e7a16d40a7e5b8d5d42368ad22fb2da2 Mon Sep 17 00:00:00 2001 From: chaw Date: Wed, 22 Nov 2017 01:53:23 +0800 Subject: [PATCH 18/19] updated yarn --- yarn.lock | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 285 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8f4003e1..98cd89c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -265,6 +265,12 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + aproba@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" @@ -276,6 +282,12 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" @@ -362,12 +374,22 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" +async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + async@^2.1.2: version "2.5.0" resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" dependencies: lodash "^4.14.0" +async@^2.1.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" @@ -403,6 +425,77 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.0" +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-generator@^6.18.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -864,6 +957,10 @@ core-js@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" +core-js@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + core-js@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" @@ -989,6 +1086,18 @@ debug@2.6.7: dependencies: ms "2.0.0" +debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -997,6 +1106,12 @@ deep-extend@~0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + deferred-leveldown@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz#2cef1f111e1c57870d8bbb8af2650e587cd2f5b4" @@ -1054,6 +1169,12 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" @@ -1295,6 +1416,10 @@ esprima-fb@~3001.0001.0000-dev-harmony-fb, esprima-fb@~3001.1.0-dev-harmony-fb: version "3001.1.0-dev-harmony-fb" resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -1468,6 +1593,13 @@ filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -1671,6 +1803,10 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + globby@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" @@ -1705,6 +1841,16 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +handlebars@^4.0.3: + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" @@ -1905,6 +2051,12 @@ interpret@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" +invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -2075,11 +2227,78 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" +istanbul-api@^1.1.8: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620" + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.1.0" + istanbul-lib-instrument "^1.9.1" + istanbul-lib-report "^1.1.2" + istanbul-lib-source-maps "^1.2.2" + istanbul-reports "^1.1.3" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" + +istanbul-lib-hook@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.1.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425" + dependencies: + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10" + dependencies: + handlebars "^4.0.3" + +jasmine-core@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" + jasmine-core@~2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.7.0.tgz#50ff8c4f92d8ef5c0b2c1b846dd263ed85152091" -jasmine-spec-reporter@^4.0.0: +jasmine-spec-reporter@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz#1d632aec0341670ad324f92ba84b4b32b35e9e22" dependencies: @@ -2101,14 +2320,25 @@ js-base64@^2.1.8, js-base64@^2.1.9: version "2.1.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" -js-tokens@^3.0.0: +js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" +js-yaml@^3.7.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + json-loader@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" @@ -2180,13 +2410,26 @@ jszip@^3.1.3: pako "~1.0.2" readable-stream "~2.0.6" -karma-chrome-launcher@^2.0.0: +karma-chrome-launcher@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" dependencies: fs-access "^1.0.0" which "^1.2.1" +karma-cli@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" + dependencies: + resolve "^1.1.6" + +karma-coverage-istanbul-reporter@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.3.0.tgz#d142cd9c55731c9e363ef7374e8ef1a31bebfadb" + dependencies: + istanbul-api "^1.1.8" + minimatch "^3.0.4" + karma-jasmine-html-reporter@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz#48a8e5ef18807617ee2b5e33c1194c35b439524c" @@ -2197,6 +2440,13 @@ karma-jasmine@^1.0.2, karma-jasmine@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" +karma-junit-reporter@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz#4f9c40cedfb1a395f8aef876abf96189917c6396" + dependencies: + path-is-absolute "^1.0.0" + xmlbuilder "8.2.2" + karma-sourcemap-loader@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" @@ -2213,7 +2463,7 @@ karma-webpack@^2.0.5: source-map "^0.1.41" webpack-dev-middleware "^1.0.11" -karma@^1.6.0: +karma@^1.7.1: version "1.7.1" resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" dependencies: @@ -2459,6 +2709,12 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -2604,7 +2860,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -2863,7 +3119,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.3: +once@^1.3.0, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -3353,6 +3609,10 @@ reflect-metadata@^0.1.10, reflect-metadata@^0.1.2: version "0.1.10" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + regex-cache@^0.4.2: version "0.4.3" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" @@ -3743,7 +4003,7 @@ source-map@^0.1.41: dependencies: amdefine ">=0.0.4" -source-map@^0.4.2: +source-map@^0.4.2, source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: @@ -3771,6 +4031,10 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + sshpk@^1.7.0: version "1.13.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" @@ -3889,7 +4153,7 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.2.3: +supports-color@^3.1.2, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: @@ -3989,6 +4253,10 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + tough-cookie@~2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" @@ -3999,6 +4267,10 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + ts-loader@^2.3.7: version "2.3.7" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-2.3.7.tgz#a9028ced473bee12f28a75f9c5b139979d33f2fc" @@ -4127,7 +4399,7 @@ uglify-js@3.1.x: commander "~2.11.0" source-map "~0.6.1" -uglify-js@^2.8.29: +uglify-js@^2.6, uglify-js@^2.8.29: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: @@ -4418,6 +4690,10 @@ xml2js@0.4.4: sax "0.6.x" xmlbuilder ">=1.0.0" +xmlbuilder@8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" + xmlbuilder@>=1.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.1.tgz#91cd70897755363eba57c12ddeeab4a341a61f65" From adbdfd971bf9e4f0dd8ad75ed3cb71e18278c3a8 Mon Sep 17 00:00:00 2001 From: chaw Date: Wed, 22 Nov 2017 09:09:27 +0800 Subject: [PATCH 19/19] [ISDK-82] proper params type added --- src/pages/assessments/assessments.page.ts | 6 ++---- src/pages/login/login.ts | 25 +++++++++++++---------- src/services/assessment.service.ts | 12 ++++++++--- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/pages/assessments/assessments.page.ts b/src/pages/assessments/assessments.page.ts index 904053e2..3880cdaf 100644 --- a/src/pages/assessments/assessments.page.ts +++ b/src/pages/assessments/assessments.page.ts @@ -289,10 +289,8 @@ export class AssessmentsPage { let getAssessment = (assessmentId) => { // @TODO: we might need to pass in submission id (if available) to get properly filtered assessmnet questions return this.assessmentService.getAll({ - search: { - assessment_id: assessmentId, - structured: true - } + assessment_id: assessmentId, + structured: true }); }; diff --git a/src/pages/login/login.ts b/src/pages/login/login.ts index cf5012fb..77b380e4 100644 --- a/src/pages/login/login.ts +++ b/src/pages/login/login.ts @@ -32,16 +32,19 @@ import { RequestServiceConfig } from '../../shared/request/request.service'; }) export class LoginPage { - email: string; - password: any; - userName: string; - userImage: string; + API_KEY: string; - milestone_id: string; - loginFormGroup: any; + email: string; forgetpasswordPage = ForgetPasswordPage; - loginLoadingMessages: any = loadingMessages.Login.login; + gameID: string = null; invalidLoginMessage: any = errMessages.Login.login; + loginFormGroup: any; + loginLoadingMessages: any = loadingMessages.Login.login; + milestone_id: string; + password: any; + userData: any = []; + userImage: string; + userName: string; constructor( public config: RequestServiceConfig, @@ -96,7 +99,7 @@ export class LoginPage { loading.dismiss().then(() => { // results[0] game API data this.gameID = results[0].Games[0].id; - if(this.gameID){ + if(this.gameID) { this.cacheService.setLocal('game_id', this.gameID); } // results[1] user API data @@ -115,7 +118,7 @@ export class LoginPage { } this.navCtrl.setRoot(TabsPage).then(() => { this.viewCtrl.dismiss(); // close the login modal and go to dashaboard page - window.history.replaceState({}, '', window.location.origin); // reformat current url + window.history.replaceState({}, '', window.location.origin); // reformat current url }); }); }, @@ -191,7 +194,7 @@ export class LoginPage { /** * forget password page link function */ - linkToForgetPassword() { - this.modalCtrl.create(this.forgetpasswordPage).present(); // go to forgot password modal window + linkToForgetPassword() { + this.modalCtrl.create(this.forgetpasswordPage).present(); // go to forgot password modal window } } diff --git a/src/services/assessment.service.ts b/src/services/assessment.service.ts index 722df12e..980829e1 100755 --- a/src/services/assessment.service.ts +++ b/src/services/assessment.service.ts @@ -89,8 +89,14 @@ export class AssessmentService { return published; } - // listAll() - getAll(options?: any) { + /** + * get all list of assessment questions available under a assessment in structured manner + * @param {Object} options params provided to obtain specific kind of response + */ + getAll(options?: { + assessment_id: number, + structured?: boolean + }) { return this.request.get('api/assessments.json', { search: options }); } @@ -208,7 +214,7 @@ export class AssessmentService { */ normalise(assessment) { let result = assessment.Assessment; - let thisGroups = assessment.AssessmentGroup; + let thisGroups = assessment.AssessmentGroup || assessment.AssessmentQuestion; thisGroups = thisGroups.map(group => { return this.normaliseGroup(group);