{"version":3,"file":"sm.portal.vm.placementTest.toefl.min.js","names":["jQuery","sm","window","portal","extend","vm","placementTest","TOEFLViewModel","options","settings","PlacementTestType","ID","TestDate","Score","Mode","Index","self","this","ko","observable","validatedObservable","Touched","Clone","Copy","data","Clear","ScoreSummary","computed","utility","getResourceValue","AnythingPopulated","isNullOrEmpty","ExtractATO","smapi","admissions","TOEFLModel","required","params","message","constant","validate_FieldRequired_Key","smLocalDate","validate_MustBeADate_Key","number","validate_MustBeNumeric_Key","ModelErrors","validation","group","IsVMValid","length","Completed"],"sources":["assets/js/viewmodels/admissions/sm.portal.vm.placementTest.toefl.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 // TOEFL View Model\r\n // Holds the TOEFL Scores\r\n /**************************************/\r\n function TOEFLViewModel(options) {\r\n var defaults = {\r\n PlacementTestType: 'TOEFL',\r\n ID: 0,\r\n TestDate: null,\r\n Score: 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.Score = ko.validatedObservable(settings.Score);\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.TOEFLViewModel({\r\n ID: this.ID(),\r\n TestDate: this.TestDate(),\r\n Score: this.Score(),\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.TOEFLViewModel({\r\n ID: data.ID(),\r\n TestDate: data.TestDate(),\r\n Score: data.Score(),\r\n Mode: data.Mode(),\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.Score('');\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('Score') + ': ' + this.Score();\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.Score())) 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.TOEFLModel({\r\n ID: self.ID(),\r\n TestDate: self.TestDate(),\r\n Score: self.Score(), \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.Score.extend({\r\n required: {\r\n params: true,\r\n message: sm.portal.utility.getResourceValue(smapi.constant.validate_FieldRequired_Key)\r\n },\r\n number: {\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 TOEFLViewModel: TOEFLViewModel,\r\n });\r\n\r\n})(jQuery);"]}