{"version":3,"file":"sm.portal.vm.placementTest.sat.min.js","names":["jQuery","undefined","sm","window","portal","extend","vm","placementTest","SATViewModel","options","settings","PlacementTestType","ID","TestDate","Reading","Math","Writing","Essay","Composite","Mode","Index","self","this","ko","observable","validatedObservable","Touched","Clone","Copy","data","Clear","ScoreSummary","computed","utility","getResourceValue","AnythingPopulated","isNullOrEmpty","ExtractATO","smapi","admissions","SATModel","required","params","message","constant","validate_FieldRequired_Key","smLocalDate","validate_MustBeADate_Key","min","formatString","validate_GreaterOrEqualThan0_Key","max","validate_LessOrEqualThan0_Key","digit","validate_MustBeNumeric_Key","ModelErrors","validation","group","IsVMValid","length","Completed"],"sources":["assets/js/viewmodels/admissions/sm.portal.vm.placementTest.sat.js"],"mappings":"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","ignoreList":[],"sourcesContent":["/// \r\n\r\n(function (jQuery, undefined) {\r\n var sm = window.sm = window.sm || {};\r\n var windowProxy;\r\n var actionQueue = [];\r\n\r\n if (typeof sm.portal === \"undefined\") {\r\n jQuery.extend(sm, { portal: {} });\r\n }\r\n if (typeof sm.portal.vm === \"undefined\") {\r\n jQuery.extend(sm.portal, { vm: {} });\r\n }\r\n if (typeof sm.portal.vm.placementTest === \"undefined\") {\r\n jQuery.extend(sm.portal.vm, { placementTest: {} });\r\n }\r\n\r\n /**************************************/\r\n // SAT View Model\r\n // Holds the SAT Scores\r\n /**************************************/\r\n function SATViewModel(options) {\r\n var defaults = {\r\n PlacementTestType: 'SAT',\r\n ID: 0,\r\n TestDate: null,\r\n Reading: 0,\r\n Math: 0,\r\n Writing: 0,\r\n Essay: 0,\r\n Composite: 0,\r\n Mode: 'Add',\r\n Index: 0\r\n };\r\n var settings = jQuery.extend({}, defaults, options);\r\n\r\n // Self-Identification\r\n var self = this;\r\n\r\n this.PlacementTestType = ko.observable(settings.PlacementTestType);\r\n this.Index = ko.observable(settings.Index);\r\n this.ID = ko.observable(settings.ID);\r\n this.TestDate = ko.validatedObservable(settings.TestDate);\r\n this.Reading = ko.validatedObservable(settings.Reading);\r\n this.Math = ko.validatedObservable(settings.Math);\r\n this.Writing = ko.validatedObservable(settings.Writing);\r\n this.Essay = ko.validatedObservable(settings.Essay);\r\n this.Composite = ko.validatedObservable(settings.Composite);\r\n\r\n // add/edit mode\r\n this.Mode = ko.observable(settings.Mode);\r\n\r\n /*** TEST PROPERTIES ***/\r\n this.Touched = ko.observable(false);\r\n this.Clone = function () {\r\n return new sm.portal.vm.placementTest.SATViewModel({\r\n ID: this.ID(),\r\n TestDate: this.TestDate(),\r\n Math: this.Math(),\r\n Writing: this.Writing(),\r\n Reading: this.Reading(),\r\n Essay: this.Essay(),\r\n Composite: this.Composite(),\r\n Mode: this.Mode(),\r\n Index: this.Index()\r\n });\r\n };\r\n this.Copy = function (data) {\r\n return new sm.portal.vm.placementTest.SATViewModel({\r\n ID: data.ID(),\r\n TestDate: data.TestDate(),\r\n Math: data.Math(),\r\n Writing: data.Writing(),\r\n Reading: data.Reading(),\r\n Essay: data.Essay(),\r\n Composite: data.Composite(),\r\n Index: data.Index()\r\n });\r\n }\r\n this.Clear = function () {\r\n this.ID('');\r\n this.TestDate('');\r\n this.Math('');\r\n this.Writing('');\r\n this.Reading('');\r\n this.Essay('');\r\n this.Composite('');\r\n this.Index(0);\r\n this.Mode('Add');\r\n } \r\n /*** TEST PROPERTIES ***/\r\n\r\n /*** COMPUTED PROPERTIES ***/\r\n this.ScoreSummary = ko.computed(function () {\r\n return sm.portal.utility.getResourceValue('Math') + 'Math: ' + this.Math() +\r\n ', ' + sm.portal.utility.getResourceValue('Essay') + ': ' + this.Essay() +\r\n ', ' + sm.portal.utility.getResourceValue('Reading') + ': ' + this.Reading() +\r\n ', ' + sm.portal.utility.getResourceValue('Writing') + ': ' + this.Writing() +\r\n ', ' + sm.portal.utility.getResourceValue('Composite') + ': ' + this.Composite();\r\n }, this);\r\n this.AnythingPopulated = ko.computed(function () {\r\n\r\n if (!sm.portal.utility.isNullOrEmpty(self.TestDate())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(self.Reading())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(self.Math())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(self.Writing())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(self.Essay())) return true;\r\n if (!sm.portal.utility.isNullOrEmpty(self.Composite())) return true;\r\n\r\n return false;\r\n\r\n }, this);\r\n /*** COMPUTED PROPERTIES ***/\r\n\r\n /*** SECTION PROPERTIES ***/\r\n this.ExtractATO = function () {\r\n // [EXTEND] New fields added to view model need to be updated here\r\n return new smapi.admissions.SATModel({\r\n ID: self.ID(),\r\n TestDate: self.TestDate(),\r\n Reading: self.Reading(),\r\n Math: self.Math(),\r\n Writing: self.Writing(),\r\n Essay: self.Essay(),\r\n Composite: self.Composite()\r\n });\r\n };\r\n /*** SECTION PROPERTIES ***/\r\n\r\n /*** VALIDATION METHODS ***/\r\n this.TestDate.extend({\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n smLocalDate: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeADate_Key)\r\n }\r\n });\r\n this.Reading.extend({\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterOrEqualThan0_Key), '0')\r\n },\r\n max: {\r\n params: 1600,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessOrEqualThan0_Key), '1600')\r\n },\r\n digit: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Math.extend({\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterOrEqualThan0_Key), '0')\r\n },\r\n max: {\r\n params: 1600,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessOrEqualThan0_Key), '1600')\r\n },\r\n digit: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Writing.extend({\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterOrEqualThan0_Key), '0')\r\n },\r\n max: {\r\n params: 1600,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessOrEqualThan0_Key), '1600')\r\n },\r\n digit: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Essay.extend({\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterOrEqualThan0_Key), '0')\r\n },\r\n max: {\r\n params: 1600,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessOrEqualThan0_Key), '1600')\r\n },\r\n digit: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n this.Composite.extend({\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n min: {\r\n params: 0,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_GreaterOrEqualThan0_Key), '0')\r\n },\r\n max: {\r\n params: 1600,\r\n message: sm.portal.utility.formatString(sm.portal.utility.getResourceValue(smapi.constant.validate_LessOrEqualThan0_Key), '1600')\r\n },\r\n digit: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_MustBeNumeric_Key)\r\n }\r\n });\r\n\r\n // Set Model Grouping for validation\r\n this.ModelErrors = ko.validation.group(this);\r\n // Check if Model is valid \r\n // (will NOT validate attached models, unless we\r\n // init that in ui.js - currently it has performance problems)\r\n this.IsVMValid = function () {\r\n if (this.ModelErrors().length == 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n this.Completed = ko.computed(function () {\r\n var isCompleted = this.IsVMValid() && (this.AnythingPopulated() || this.Touched());\r\n return isCompleted;\r\n }, this);\r\n /*** VALIDATION METHODS ***/\r\n\r\n return self;\r\n }\r\n\r\n jQuery.extend(true, sm.portal.vm.placementTest, {\r\n SATViewModel: SATViewModel,\r\n });\r\n\r\n})(jQuery);"]}