{"version":3,"file":"sm.portal.vm.termsConditions.min.js","names":["jQuery","sm","window","portal","extend","vm","TermsConditionsViewModel","termsType","container","masterModel","self","this","applicationViewModel","Title","ko","observable","TermsType","LocationID","UpdateData","TermsMessage","sectionIncluded","DataLoaded","DataLoading","Touched","DataContainer","DataLoadErrorCount","TermsList","observableArray","ShouldDisplay","computed","length","IsRequired","required","i","Initialize","LoadModel","Payload","Config","viewModel","SetSectionsConfigData","Array","TermsConditions","item","TermsConditionsDocumentViewModel","push","sectionsToAdd","sectionsToRemove","section","MaintainSections","smapi","constant","applicationDebugFlag","console","log","GetModelData","blockui","applicationMID","personMID","callback","utility","isNullOrEmpty","allCustomData","BeforeTerms","AfterTerms","blockUI","url","_baseApiUri","formatString","ajax","type","dataType","contentType","headers","processData","crossDomain","xhrFields","withCredentials","success","data","textStatus","jqXHR","page","application","modelDataResponseHandler","error","exception","modelErrorHandler","handleErrorWithMessages","CheckInclusion","access","ApiContainerModel","Status","ValidationTitle","ValidationMessages","result","InclusionResult","BlockContainer","block","message","getResourceValue","UnBlockContainer","unblock","SetFocus","ProcessOnServer","ExtractATO","termsHistory","termDocument","Paragraphs","j","termParagraph","ato","TermsConditionsHistoryFacadeModel","IsAccepted","Accepted","ProcessObjectID","ParagraphSortOrder","SortOrder","TermsConditionsDocumentID","ID","TermsConditionsParagraphVersionID","ParagraphVersionID","PersonID","ProcessTypeID","ModelErrors","validation","group","IsVMValid","Completed","isCompleted"],"sources":["assets/js/viewmodels/admissions/sm.portal.vm.termsConditions.js"],"mappings":"CAEA,SAAWA,GACP,IAAIC,EAAKC,OAAOD,GAAKC,OAAOD,IAAM,CAAC,OAIV,IAAdA,EAAGE,QACVH,EAAOI,OAAOH,EAAI,CAAEE,OAAQ,CAAC,SAEL,IAAjBF,EAAGE,OAAOE,IACjBL,EAAOI,OAAOH,EAAGE,OAAQ,CAAEE,GAAI,CAAC,IA4RpCL,EAAOI,QAAO,EAAMH,EAAGE,OAAOE,GAAI,CAC9BC,yBAtRJ,SAAkCC,EAAWC,EAAWC,GAGpD,IAAIC,EAAOC,KACPC,EAAuBH,EA8Q3B,OA3QAE,KAAKE,MAAQC,GAAGC,aAChBJ,KAAKK,UAAYF,GAAGC,WAAWR,GAC/BI,KAAKM,WAAaH,GAAGC,aACrBJ,KAAKO,WAAaJ,GAAGC,YAAW,GAChCJ,KAAKQ,aAAeL,GAAGC,WAAW,IAClCJ,KAAKS,gBAAkBN,GAAGC,YAAW,GAIrCJ,KAAKU,WAAaP,GAAGC,YAAW,GAChCJ,KAAKW,YAAcR,GAAGC,YAAW,GACjCJ,KAAKY,QAAUT,GAAGC,YAAW,GAC7BJ,KAAKa,cAAgBV,GAAGC,WAAWP,GACnCG,KAAKc,mBAAqBX,GAAGC,WAAW,GAIxCJ,KAAKe,UAAYZ,GAAGa,kBAIpBhB,KAAKiB,cAAgBd,GAAGe,UAAS,WAC7B,OAAIlB,KAAKe,YAAYI,OAAS,CAKlC,GAAGnB,MAEHA,KAAKoB,WAAajB,GAAGe,UAAS,WAE1B,IADA,IAAIG,GAAW,EACNC,EAAI,EAAGA,EAAItB,KAAKe,YAAYI,OAAQG,IACrCtB,KAAKe,YAAYO,GAAGF,eACpBC,GAAW,GAInB,OAAOA,CAEX,GAAGrB,MAOHA,KAAKuB,WAAa,WAClB,EACAvB,KAAKwB,UAAY,SAAU3B,GAOvB,GALIA,GAAaA,EAAU4B,SAAW5B,EAAU4B,QAAQC,QACpDC,UAAUC,sBAAsBhC,EAAWC,EAAU4B,QAAQC,QAEjE1B,KAAKe,UAAUc,SAE0B,MAArChC,EAAU4B,QAAQK,gBAAyB,CAE3C,IAAK,IAAIR,EAAI,EAAGA,EAAIzB,EAAU4B,QAAQK,gBAAgBX,OAAQG,IAAK,CAC/D,IAAIS,EAAO,IAAIzC,EAAGE,OAAOE,GAAGsC,iCAAiCpC,GAC7DmC,EAAKP,UAAU3B,EAAU4B,QAAQK,gBAAgBR,IACjDtB,KAAKe,UAAUkB,KAAKF,EACxB,CAEIlC,EAAU4B,QAAQK,gBAAgBX,OAAS,GAC3CnB,KAAKM,WAAWT,EAAU4B,QAAQK,gBAAgB,GAAGxB,WAE7D,CAUA,GARsC,MAAlCT,EAAU4B,QAAQjB,cAClBR,KAAKQ,aAAaX,EAAU4B,QAAQjB,cAGxCR,KAAKW,aAAY,GACjBX,KAAKU,YAAW,GAChBV,KAAKO,YAAW,GAEY,MAAxBN,EAA8B,CAC9B,IAAIiC,EAAgBL,QAChBM,EAAmBN,QACnB7B,KAAKe,YAAYI,OAAS,EAC1Be,EAAcD,KAAK,CAAEG,QAASpC,KAAKK,YAAagB,SAAUrB,KAAKoB,eAG/De,EAAiBF,KAAKjC,KAAKK,aAG/BJ,EAAqBoC,iBAAiBH,EAAeC,EACzD,CAEIG,MAAMC,SAASC,sBAAwBC,QAAQC,IAAI,kDAC3D,EAEA1C,KAAK2C,aAAe,SAAUC,EAASC,EAAgBC,EAAWC,GAE9D,GAAK/C,KAAKU,cAAiBV,KAAKW,cA2C5BoC,GAAYA,QA3C+B,CAG3C,GADA/C,KAAKW,aAAY,IACbrB,EAAGE,OAAOwD,QAAQC,cAActB,UAAUuB,iBAAkB,CAC5D,GAAqB,eAAlBlD,KAAKK,YAGJ,OAFAN,EAAKyB,UAAUG,UAAUuB,gBAAgBC,kBACzCJ,GAAYA,EAASpB,UAAUuB,gBAAgBC,cAGnD,GAAqB,cAAlBnD,KAAKK,YAGJ,OAFAN,EAAKyB,UAAUG,UAAUuB,gBAAgBE,iBACzCL,GAAYA,EAASpB,UAAUuB,gBAAgBE,YAGvD,CACIR,GAAWvD,EAAOgE,UACtB,IAAIC,EAAMC,YAAcjE,EAAGE,OAAOwD,QAAQQ,aAAa,yEAA0EX,EAAgB7C,KAAKK,aAEtJhB,EAAOoE,KAAK,CACRH,IAAKA,EACLI,KAAM,MACNC,SAAU,OACVC,YAAa,kCACbC,QAAS,CACL,gBAAiB,KAErBC,aAAa,EACbC,aAAa,EAEbC,UAAW,CACPC,iBAAiB,GAErBC,QAAS,SAAUC,EAAMC,EAAYC,GACjC/E,EAAGE,OAAO8E,KAAKC,YAAYC,yBAAyBzE,EAAMoE,EAAMtB,EAAgBC,GAChFC,GAAYA,EAASoB,EACzB,EACAM,MAAO,SAAUJ,EAAOK,GACpBpF,EAAGE,OAAO8E,KAAKC,YAAYI,kBAAkB5E,EAAMsE,GACnD/E,EAAGE,OAAO8E,KAAKC,YAAYK,wBAAwB7E,EAAMsE,EAAO,SAChEtB,GAAYA,GAChB,GAER,CAGJ,EACA/C,KAAK6E,eAAiB,SAAUhC,EAAgBC,GAC5C,IAAG/C,EAAKU,kBAAR,CAEA,IAAI6C,EAAMC,YAAcjE,EAAGE,OAAOwD,QAAQQ,aAAa,oFAAqFX,EAAgB7C,KAAKK,aAEjKhB,EAAOoE,KAAK,CACRH,IAAKA,EACLI,KAAM,MACNC,SAAU,OACVC,YAAa,kCACbC,QAAS,CACL,gBAAiB,KAErBC,aAAa,EACbC,aAAa,EAEbC,UAAW,CACPC,iBAAiB,GAErBC,QAAS,SAAUC,EAAMC,EAAYC,GACjCtE,EAAKU,iBAAgB,GACrB,IAAIZ,EAAY,IAAIyC,MAAMwC,OAAOC,kBAAkBZ,EAAKa,OAAQb,EAAK1C,QAAS0C,EAAKc,gBAAiBd,EAAKe,oBACzG,GAAmB,WAAff,EAAKa,OAAqB,CAC1B,IAAIG,EAAStF,EAAU4B,QAAQ2D,gBAC3BlD,EAAgBL,QAChBM,EAAmBN,QAGvB,OADAY,QAAQC,IAAI,wBAA0B3C,EAAKM,YAAc,KAAO8E,GACxDA,GACJ,IAAK,WACDjD,EAAcD,KAAK,CAAEG,QAASrC,EAAKM,YAAagB,SAAUtB,EAAKqB,eAC/DrB,EAAKQ,YAAW,GAChBR,EAAKY,aAAY,GACjBZ,EAAKW,YAAW,GAChB,MACJ,IAAK,WACDwB,EAAcD,KAAK,CAAEG,QAASrC,EAAKM,YAAagB,SAAUtB,EAAKqB,eAC/D,MACJ,IAAK,UACDe,EAAiBF,KAAKlC,EAAKM,aAGnCoC,QAAQC,IAAI,6BACZzC,EAAqBoC,iBAAiBH,EAAeC,EACzD,CACJ,EACAsC,MAAO,SAAUJ,EAAOK,GACpBpF,EAAGE,OAAO8E,KAAKC,YAAYI,kBAAkB5E,EAAMsE,EACvD,GA/C6B,CAiDrC,EACArE,KAAKqF,eAAiB,WAClBhG,EAAO,IAAMU,EAAKc,iBAAiByE,MAAM,CAAEC,QAASjG,EAAGE,OAAOwD,QAAQwC,iBAAiB,YAC3F,EACAxF,KAAKyF,iBAAmB,WACpBpG,EAAO,IAAMU,EAAKc,iBAAiB6E,UACnC/D,UAAUgE,UACd,EACA3F,KAAK4F,gBAAkB,WACnB,OAAO,CACX,EACA5F,KAAK6F,WAAa,WACd,IAAIC,EAAejE,QAEnB,GAAI7B,KAAKe,YAAYI,OAAS,EAC1B,IAAK,IAAIG,EAAI,EAAGA,EAAItB,KAAKe,YAAYI,OAAQG,IAAK,CAC9C,IAAIyE,EAAe/F,KAAKe,YAAYO,GACpC,GAAIyE,EAAaC,aAAa7E,OAAS,EACnC,IAAK,IAAI8E,EAAI,EAAGA,EAAIF,EAAaC,aAAa7E,OAAQ8E,IAAK,CACvD,IAAIC,EAAgBH,EAAaC,aAAaC,GAE1CE,EAAM,IAAI7G,EAAGE,OAAOE,GAAG0G,kCAAkC,CACzDC,WAAYH,EAAcI,WAC1BC,gBAAiB,EACjBC,mBAAoBN,EAAcO,YAClCnG,WAAYN,KAAKM,aACjBoG,0BAA2BX,EAAaY,KACxCC,kCAAmCV,EAAcW,qBACjDC,SAAU,KACVC,cAAe,IAGnBjB,EAAa7D,KAAKkE,EACtB,CAGR,CAGJ,OAAOL,CACX,EAMA9F,KAAKgH,YAAc7G,GAAG8G,WAAWC,MAAMlH,MAIvCA,KAAKmH,UAAY,WACb,OAAiC,GAA7BnH,KAAKgH,cAAc7F,MAK3B,EACAnB,KAAKoH,UAAYjH,GAAGe,UAAS,WAEzB,IAAImG,EAGJ,GAFAA,EAAcrH,KAAKmH,YAGf,IAAK,IAAI7F,EAAI,EAAGA,EAAItB,KAAKe,YAAYI,OAAQG,IAAK,CAE9C,IADWtB,KAAKe,YAAYO,GAClB8F,YACN,OAAO,CAEf,CAGJ,OAAOC,CAEX,GAAGrH,MAIID,CACX,GAMH,CAzSD,CAySGV","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\r\n /**************************************/\r\n // Terms and Conditions View Model\r\n // Terms and Conditions Processing Information\r\n /**************************************/\r\n function TermsConditionsViewModel(termsType, container, masterModel) {\r\n\r\n // Self-Identification\r\n var self = this;\r\n var applicationViewModel = masterModel;\r\n\r\n /*** PROPERTIES ***/\r\n this.Title = ko.observable();\r\n this.TermsType = ko.observable(termsType);\r\n this.LocationID = ko.observable();\r\n this.UpdateData = ko.observable(false);\r\n this.TermsMessage = ko.observable(\"\");\r\n this.sectionIncluded = ko.observable(false);\r\n /*** PROPERTIES ***/\r\n\r\n /*** SECTION PROPERTIES ***/\r\n this.DataLoaded = ko.observable(false);\r\n this.DataLoading = ko.observable(false);\r\n this.Touched = ko.observable(false);\r\n this.DataContainer = ko.observable(container);\r\n this.DataLoadErrorCount = ko.observable(0);\r\n /*** SECTION PROPERTIES ***/\r\n\r\n /*** LIST DATA PROPERTIES ***/\r\n this.TermsList = ko.observableArray();\r\n /*** LIST DATA PROPERTIES ***/\r\n\r\n /*** COMPUTED PROPERTIES ***/\r\n this.ShouldDisplay = ko.computed(function () {\r\n if (this.TermsList().length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }, this);\r\n\r\n this.IsRequired = ko.computed(function () {\r\n var required = false;\r\n for (var i = 0; i < this.TermsList().length; i++) {\r\n if (this.TermsList()[i].IsRequired()) {\r\n required = true;\r\n }\r\n }\r\n\r\n return required;\r\n\r\n }, this);\r\n /*** COMPUTED PROPERTIES ***/\r\n\r\n /*** METHODS ***/\r\n /*** METHODS ***/\r\n\r\n /*** SECTION METHODS ***/\r\n this.Initialize = function () {\r\n };\r\n this.LoadModel = function (container) {\r\n // update application section configurations\r\n if (container && container.Payload && container.Payload.Config) {\r\n viewModel.SetSectionsConfigData(termsType, container.Payload.Config);\r\n }\r\n this.TermsList(Array());\r\n\r\n if (container.Payload.TermsConditions != null) {\r\n\r\n for (var i = 0; i < container.Payload.TermsConditions.length; i++) {\r\n var item = new sm.portal.vm.TermsConditionsDocumentViewModel(termsType);\r\n item.LoadModel(container.Payload.TermsConditions[i]);\r\n this.TermsList.push(item);\r\n }\r\n\r\n if (container.Payload.TermsConditions.length > 0) {\r\n this.LocationID(container.Payload.TermsConditions[0].LocationID);\r\n }\r\n }\r\n\r\n if (container.Payload.TermsMessage != null) {\r\n this.TermsMessage(container.Payload.TermsMessage);\r\n }\r\n\r\n this.DataLoading(false);\r\n this.DataLoaded(true);\r\n this.UpdateData(false);\r\n\r\n if (applicationViewModel != null) {\r\n var sectionsToAdd = Array();\r\n var sectionsToRemove = Array();\r\n if (this.TermsList().length > 0) {\r\n sectionsToAdd.push({ section: this.TermsType(), required: this.IsRequired() });\r\n }\r\n else {\r\n sectionsToRemove.push(this.TermsType());\r\n }\r\n\r\n applicationViewModel.MaintainSections(sectionsToAdd, sectionsToRemove);\r\n }\r\n\r\n if (smapi.constant.applicationDebugFlag) { console.log('[TermsConditionsComposedDocumentVM] Data Loaded'); }\r\n };\r\n\r\n this.GetModelData = function (blockui, applicationMID, personMID, callback) {\r\n \r\n if (!this.DataLoaded() && !this.DataLoading()) {\r\n\r\n this.DataLoading(true);\r\n if(!sm.portal.utility.isNullOrEmpty(viewModel.allCustomData())) {\r\n if(this.TermsType()==\"BeforeTerms\"){\r\n self.LoadModel(viewModel.allCustomData().BeforeTerms);\r\n callback && callback(viewModel.allCustomData().BeforeTerms);\r\n return;\r\n }\r\n if(this.TermsType()==\"AfterTerms\"){\r\n self.LoadModel(viewModel.allCustomData().AfterTerms);\r\n callback && callback(viewModel.allCustomData().AfterTerms);\r\n return;\r\n }\r\n }\r\n if (blockui) { jQuery.blockUI(); }\r\n var url = _baseApiUri + sm.portal.utility.formatString('api/studentportal/getapplicationsection?sectionName={1}&attemptmid={0}', applicationMID, this.TermsType());\r\n\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n sm.portal.page.application.modelDataResponseHandler(self, data, applicationMID, personMID);\r\n callback && callback(data);\r\n },\r\n error: function (jqXHR, exception) {\r\n sm.portal.page.application.modelErrorHandler(self, jqXHR);\r\n sm.portal.page.application.handleErrorWithMessages(self, jqXHR, 'fetch');\r\n callback && callback();\r\n }\r\n });\r\n } else {\r\n callback && callback();\r\n }\r\n };\r\n this.CheckInclusion = function (applicationMID, personMID) {\r\n if(self.sectionIncluded()) return;\r\n \r\n var url = _baseApiUri + sm.portal.utility.formatString('api/studentportal/CheckApplicationSectionInclusion?sectionName={1}&attemptmid={0}', applicationMID, this.TermsType());\r\n\r\n jQuery.ajax({\r\n url: url,\r\n type: 'GET',\r\n dataType: 'json',\r\n contentType: 'application/json; charset=utf-8',\r\n headers: {\r\n \"x-api-version\": '1' //,\r\n },\r\n processData: false,\r\n crossDomain: true,\r\n\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: function (data, textStatus, jqXHR) {\r\n self.sectionIncluded(true);\r\n var container = new smapi.access.ApiContainerModel(data.Status, data.Payload, data.ValidationTitle, data.ValidationMessages);\r\n if (data.Status == 'success') {\r\n var result = container.Payload.InclusionResult;\r\n var sectionsToAdd = Array();\r\n var sectionsToRemove = Array();\r\n\r\n console.log('Inclusion Result for ' + self.TermsType() + ': ' + result);\r\n switch (result) {\r\n case \"Included\":\r\n sectionsToAdd.push({ section: self.TermsType(), required: self.IsRequired() });\r\n self.UpdateData(true);\r\n self.DataLoading(false);\r\n self.DataLoaded(false);\r\n break;\r\n case \"Required\":\r\n sectionsToAdd.push({ section: self.TermsType(), required: self.IsRequired() });\r\n break;\r\n case \"Exclude\":\r\n sectionsToRemove.push(self.TermsType());\r\n break;\r\n }\r\n console.log('Calling Maintain Sections');\r\n applicationViewModel.MaintainSections(sectionsToAdd, sectionsToRemove);\r\n }\r\n },\r\n error: function (jqXHR, exception) {\r\n sm.portal.page.application.modelErrorHandler(self, jqXHR);\r\n }\r\n });\r\n };\r\n this.BlockContainer = function () {\r\n jQuery(\"#\" + self.DataContainer()).block({ message: sm.portal.utility.getResourceValue('Loading') });\r\n };\r\n this.UnBlockContainer = function () {\r\n jQuery(\"#\" + self.DataContainer()).unblock();\r\n viewModel.SetFocus();\r\n };\r\n this.ProcessOnServer = function () {\r\n return true;\r\n };\r\n this.ExtractATO = function () {\r\n var termsHistory = Array();\r\n\r\n if (this.TermsList().length > 0) {\r\n for (var i = 0; i < this.TermsList().length; i++) {\r\n var termDocument = this.TermsList()[i];\r\n if (termDocument.Paragraphs().length > 0) {\r\n for (var j = 0; j < termDocument.Paragraphs().length; j++) {\r\n var termParagraph = termDocument.Paragraphs()[j];\r\n\r\n var ato = new sm.portal.vm.TermsConditionsHistoryFacadeModel({\r\n IsAccepted: termParagraph.Accepted(),\r\n ProcessObjectID: 0,\r\n ParagraphSortOrder: termParagraph.SortOrder(),\r\n LocationID: this.LocationID(),\r\n TermsConditionsDocumentID: termDocument.ID(),\r\n TermsConditionsParagraphVersionID: termParagraph.ParagraphVersionID(),\r\n PersonID: null,\r\n ProcessTypeID: 0\r\n });\r\n\r\n termsHistory.push(ato);\r\n }\r\n\r\n }\r\n }\r\n }\r\n // [EXTEND] New fields added to view model need to be updated here\r\n return termsHistory;\r\n };\r\n /*** SECTION METHODS ***/\r\n\r\n /*** VALIDATION METHODS ***/\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\r\n var isCompleted = true;\r\n isCompleted = this.IsVMValid();\r\n\r\n if (isCompleted) {\r\n for (var i = 0; i < this.TermsList().length; i++) {\r\n var term = this.TermsList()[i];\r\n if (!term.Completed()) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return isCompleted;\r\n\r\n }, this);\r\n /*** VALIDATION METHODS ***/\r\n\r\n\r\n return self;\r\n };\r\n\r\n jQuery.extend(true, sm.portal.vm, {\r\n TermsConditionsViewModel: TermsConditionsViewModel,\r\n });\r\n\r\n})(jQuery);"]}